diff --git a/.hgignore b/.hgignore new file mode 100644 index 000000000..1b921a54a --- /dev/null +++ b/.hgignore @@ -0,0 +1,6 @@ +syntax: glob + +packages +repository +*/*/download +*/*/work-* diff --git a/FormatVersions b/FormatVersions new file mode 100644 index 000000000..313ad77a1 --- /dev/null +++ b/FormatVersions @@ -0,0 +1,2 @@ +# contains the format versions used by this ports tree +RecipeFormatVersion=1 diff --git a/app-admin/keepassx/additional-files/keepassx.rdef b/app-admin/keepassx/additional-files/keepassx.rdef new file mode 100644 index 000000000..2ca7d82b6 --- /dev/null +++ b/app-admin/keepassx/additional-files/keepassx.rdef @@ -0,0 +1,62 @@ + +resource app_flags B_SINGLE_LAUNCH | B_ARGV_ONLY; + +resource app_version { + major = 2, + middle = 0, + minor = 0, + + variety = B_APPV_ALPHA, + internal = 5, + + short_info = "Qt password manager", + long_info = "" +}; + +resource app_signature "application/x-vnd.keepassx"; + +resource file_types message; + +resource vector_icon { + $"6E6369660404007F050005FF0200060240810E3D757BBD7874408335CB76E94C" + $"216A00226E23FF63AB3A0A0216B40BCB63B40BCB63B40BCB63B46ECB70B46ECB" + $"70B4EFCB9DB548CB85B4D5CB85B548CB85B8DCCB80B8DCCB80B91ECB8130CAD0" + $"B932CB00BA04CA25BAE7C959BA57C9B3BAE7C959BD80C944BD80C944BE02C943" + $"BEC6C8BCBEC6C940BEC6C8BCBF65C858BF65C858BF65C858C219CB19C219CB19" + $"C245CB46C2BECB6CC280CB61C2BECB6CC339CB8CC339CB8CC483CB89C71DCB73" + $"C594CB75C79FCB73C809CAC9C7B9CB37C7EBC943C7EDC638C7FAC74CC7E4C5F6" + $"C79AC587C7C9C5B7C6DFC4C8C4D9C289C594C348C6C0C206C979C019C840C128" + $"CAB3BF0BCB8DBBC8CB8DBDBECB8D32CADBB78ECB7CB8C2CAD9B78BCAD7B786CA" + $"D9B788C8B0B76FB40BCB63AFA4CB42B40BCB63021CC3F6B334C3F6B334BFF3B3" + $"34BC9ABA9DBCA5B687BB4AB948B8B0B69CB9FAB7F2B882B66BB7FCB64FB83FB6" + $"4FB7FCB64FB430B64FB430B64FB3ADB64FB335B74FB335B6C9B335B74FB335BB" + $"36B335BB36B335BB7AB380BBEDB351BBBEB51ABD8AB848C0CCB6AFBF2BB848C0" + $"CCB37EC5ADB37EC5ADB350C5DCB335C660B335C61EB335C660B335CA3DB335CA" + $"3DB335CAC3B430CB3DB3ADCB3DB430CB3DB804CB3DB804CB3DB847CB3DB8B8CA" + $"F0B889CB21B95ECA43BAB457BA09C997BAB457BD5857BD5857BDDB57BE53C7EB" + $"BE53C871BE53C7EBBE53C6F3BE53C6F3BE53C6F3C23FCAF2C23FCAF2C26ECB21" + $"C2F1CB3DC2AFCB3DC2F1CB3DC6C3CB3DC6C3CB3DC747CB3DC7BECA3DC7BECAC3" + $"C7BECA3DC7BEC660C7BEC660C7BEC61EC775C5ADC7A3C5DCC652C484C40CC230" + $"C52FC35AC80D46CB4FBAB1CB4FBEC7CB4FB694C3F6B334C7FFB334C3F6B33406" + $"17FFF3F7F4FC3FC3F6B433C3F6B433C075B433BD93BAB1BD93B71EBD93BB54BD" + $"DEBC82BDB3BBEEBDDEBC82BD7ABCE9BD7ABCE9BBA7BB09B7FCB74FB9CCB931B7" + $"FCB74FB430B430BB36B430BB36B606BD10B9ABC0CAB7D8BEEEB7D8C2A7B430C6" + $"60B604C483B430C660CA3DB804CA3DB804CA3DB8C5C975BA4BC7EBB989C8B0BA" + $"4BC7EBBD58C4DDBDABC4DDBDABC4DDBF6DC6A8C2F1CA3DC12FC872C2F1CA3DC6" + $"C3C6C3C660C6C3C660C4F0C483C14AC0CAC31DC2A7C14AC0CAC16CC0A8C16CC0" + $"A8C234C100C3F6C133C310C133C778C133CA54BAB1CA54BE43CA54B71FC3F6B4" + $"33C776B433C3F6B4330603378000C34B8000C3488000C34BC34F8000C34F8000" + $"C34F8000C34C0603338000B0028000AD1E8000B00280008000AFFE8000AFFE80" + $"00AA520617BF928684E43FC3F6B591C3F6B591C12DB591BEEABAB1BEEAB7DBBE" + $"EABB79BF65BCE1BF17BC37BF65BCE1BD7ABED5B76EB8ACB587BAA5BB8FC0CAB5" + $"87C6EFC8E0B776B9BCC68FBC03C380BE38C37EC8E0C56DC6EFBF65C0CAC12BBE" + $"FBC12BBEFBC1F8BF85C3F6BFD6C2EEBFD6C6BEBFD6C8FEBAB1C8FEBD87C8FEB7" + $"DBC3F6B591C6BEB591C3F6B5910204C7AABA18C7AAB8D1C7AA35C582BC68C6B3" + $"BC68C451BC68C35ABA18C35A35C35AB8D1C5822CC4512CC6B32C0204C7AABA18" + $"C7AAB8D1C7AA35C582BC68C6B3BC68C451BC68C35ABA18C35A35C35AB8D1C582" + $"2CC4512CC6B32C0204C710B9C8C710B8DCC710BAB3C56BBB73C654BB73C482BB" + $"73C3C5B9C8C3C5BAB3C3C5B8DCC56BB81DC482B81DC654B81D0204C710B9C8C7" + $"10B8DCC710BAB3C56BBB73C654BB73C482BB73C3C5B9C8C3C5BAB3C3C5B8DCC5" + $"6BB81DC482B81DC654B81D080A000100000A010101000A0203020304000A0301" + $"05000A010106000A0101071001178000040A020108000A010109100117800004" +}; diff --git a/app-admin/keepassx/keepassx-2.0a5.recipe b/app-admin/keepassx/keepassx-2.0a5.recipe new file mode 100644 index 000000000..f033585f2 --- /dev/null +++ b/app-admin/keepassx/keepassx-2.0a5.recipe @@ -0,0 +1,85 @@ +SUMMARY="Qt password manager" +DESCRIPTION=" +KeePassX is an application for people with extremly high demands on secure \ +personal data management. It has a light interface, is cross platform and \ +published under the terms of the GNU General Public License. +KeePassX saves many different information e.g. user names, passwords, urls, \ +attachments and comments in one single database. For a better management \ +user-defined titles and icons can be specified for each single entry. \ +Furthermore the entries are sorted in groups, which are customizable as well. \ +The integrated search function allows to search in a single group or the \ +complete database. +KeePassX offers a little utility for secure password generation. The password \ +generator is very customizable, fast and easy to use. Especially someone who \ +generates passwords frequently will appreciate this feature. +" +HOMEPAGE="http://www.keepassx.org/" +SRC_URI="git+https://github.com/keepassx/keepassx.git#2.0-alpha5" +COPYRIGHT=" + 2010-2012, Felix Geyer + 2011-2012, Florian Geyer + 2012, Tobias Tangemann + 2007, Trolltech ASA + 2012, Intel Corporation + 2012, Nokia Corporation and/or its subsidiary(-ies) + 2000-2008, Tom Sato + " + +LICENSE="GNU GPL v2" +REVISION="2" +ARCHITECTURES="x86" + +PROVIDES=" + keepassx = $portVersion + app:keepassx = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + lib:libgcrypt + lib:libQtCore + lib:libQtGui + lib:libz + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:libz + devel:libgcrypt + devel:libQtCore + devel:libQtGui + " + +BUILD_PREREQUIRES=" + cmd:cmake + cmd:make + cmd:g++ + cmd:qmake + cmd:moc + cmd:xres + " + +PATCHES="keepassx-2.0a5.patchset" + +BUILD() +{ + cmake -DCMAKE_INSTALL_PREFIX=$prefix \ + -DCMAKE_INSTALL_DATAROOTDIR=$dataDir \ + -DWITH_TESTS=off . + + make $jobArgs + + rc $portDir/additional-files/keepassx.rdef \ + -o $sourceDir/src/keepassx.rsrc + + xres -o $sourceDir/src/keepassx $sourceDir/src/keepassx.rsrc + mimeset -f $sourceDir/src/keepassx +} + +INSTALL() +{ + make install + mkdir -p $appsDir + mv $binDir/keepassx $appsDir/KeePassX + addAppDeskbarSymlink $appsDir/KeePassX KeePassX +} diff --git a/app-admin/keepassx/patches/keepassx-2.0a5.patchset b/app-admin/keepassx/patches/keepassx-2.0a5.patchset new file mode 100644 index 000000000..61eab5e36 --- /dev/null +++ b/app-admin/keepassx/patches/keepassx-2.0a5.patchset @@ -0,0 +1,103 @@ +From a31497e5c3979dcbe76dd3df98db191506f6f26e Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Thu, 28 Nov 2013 01:27:03 -0700 +Subject: Add Haiku support + + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 3ec6023..1acfb25 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -148,7 +148,7 @@ if(WITH_TESTS) + endif(WITH_TESTS) + + set(QT_REQUIRED_MODULES QtCore QtGui QtTest) +-if(UNIX AND NOT APPLE) ++if(UNIX AND NOT APPLE AND NOT HAIKU) + set(QT_REQUIRED_MODULES ${QT_REQUIRED_MODULES} QtDBus) + endif() + +diff --git a/share/CMakeLists.txt b/share/CMakeLists.txt +index 06b6a52..930a0cd 100644 +--- a/share/CMakeLists.txt ++++ b/share/CMakeLists.txt +@@ -17,11 +17,11 @@ file(GLOB DATABASE_ICONS icons/database/*.png) + + install(FILES ${DATABASE_ICONS} DESTINATION ${DATA_INSTALL_DIR}/icons/database) + +-if(UNIX AND NOT APPLE) ++if(UNIX AND NOT APPLE AND NOT HAIKU) + install(DIRECTORY icons/application/ DESTINATION share/icons/hicolor + FILES_MATCHING PATTERN "keepassx.png" PATTERN "keepassx.svgz") + install(FILES linux/keepassx.desktop DESTINATION share/applications) +-endif(UNIX AND NOT APPLE) ++endif(UNIX AND NOT APPLE AND NOT HAIKU) + + if(APPLE) + install(FILES macosx/keepassx.icns DESTINATION ${DATA_INSTALL_DIR}) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 176ecb3..4facf63 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -216,7 +216,7 @@ target_link_libraries(${PROGNAME} + ${GCRYPT_LIBRARIES} + ${ZLIB_LIBRARIES}) + +-if(UNIX AND NOT APPLE) ++if(UNIX AND NOT APPLE AND NOT HAIKU) + target_link_libraries(${PROGNAME} ${QT_QTDBUS_LIBRARY}) + endif() + +diff --git a/src/config-keepassx.h.cmake b/src/config-keepassx.h.cmake +index 479a5f6..0841d21 100644 +--- a/src/config-keepassx.h.cmake ++++ b/src/config-keepassx.h.cmake +@@ -9,6 +9,8 @@ + + #define KEEPASSX_PLUGIN_DIR "${PLUGIN_INSTALL_DIR}" + ++#define KEEPASSX_DATA_DIR "${DATA_INSTALL_DIR}" ++ + #cmakedefine HAVE_PR_SET_DUMPABLE 1 + #cmakedefine HAVE_RLIMIT_CORE 1 + #cmakedefine HAVE_PT_DENY_ATTACH 1 +diff --git a/src/core/FilePath.cpp b/src/core/FilePath.cpp +index dd300ec..968269f 100644 +--- a/src/core/FilePath.cpp ++++ b/src/core/FilePath.cpp +@@ -137,6 +137,10 @@ FilePath::FilePath() + else if (testSetDir(QCoreApplication::applicationDirPath() + "/share")) { + } + #endif ++#ifdef KEEPASSX_DATA_DIR ++ else if (testSetDir(QString(KEEPASSX_DATA_DIR))) { ++ } ++#endif + + if (m_dataPath.isEmpty()) { + qWarning("FilePath::DataPath: can't find data dir"); +diff --git a/src/gui/Clipboard.cpp b/src/gui/Clipboard.cpp +index eb77d2b..958eacb 100644 +--- a/src/gui/Clipboard.cpp ++++ b/src/gui/Clipboard.cpp +@@ -21,7 +21,7 @@ + #include + #include + +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC) && !defined(Q_OS_HAIKU) + #include + #include + #endif +@@ -70,7 +70,7 @@ void Clipboard::clearClipboard() + clipboard->clear(QClipboard::Selection); + } + +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC) && !defined(Q_OS_HAIKU) + QDBusMessage message = QDBusMessage::createMethodCall("org.kde.klipper", "/klipper", "", "clearClipboardHistory"); + QDBusConnection::sessionBus().send(message); + #endif +-- +1.8.3.4 + diff --git a/app-admin/pwgen/pwgen-2.06.recipe b/app-admin/pwgen/pwgen-2.06.recipe index 36dcee239..f17975be6 100644 --- a/app-admin/pwgen/pwgen-2.06.recipe +++ b/app-admin/pwgen/pwgen-2.06.recipe @@ -1,19 +1,59 @@ -DESCRIPTION="pwgen - password generator" +SUMMARY="pwgen - password generator" +DESCRIPTION=" +The pwgen program generates passwords which are designed to be easily \ +memorized by humans, while being as secure as possible. Human- memorable \ +passwords are never going to be as secure as completely completely random \ +passwords. In particular, passwords generated by pwgen without the -s option \ +should not be used in places where the password could be attacked via an \ +off-line brute-force attack. On the other hand, completely randomly generated \ +passwords have a tendency to be written down, and are subject to being \ +compromised in that fashion. +The pwgen program is designed to be used both interactively, and in shell \ +scripts. Hence, its default behavior differs depending on whether the standard \ +output is a tty device or a pipe to another program. Used interactively, pwgen \ +will display a screenful of passwords, allowing the user to pick a single \ +password, and then quickly erase the screen. This prevents someone from being \ +able to 'shoulder surf' the user's chosen password. +" HOMEPAGE="http://sourceforge.net/projects/pwgen" -SRC_URI="http://voxel.dl.sourceforge.net/sourceforge/pwgen/pwgen-2.06.tar.gz" -CHECKSUM_MD5="935aebcbe610fbc9de8125e7b7d71297" +SRC_URI="http://sourceforge.net/projects/pwgen/files/pwgen/2.06/pwgen-2.06.tar.gz" +CHECKSUM_SHA256="61598c9e3a0f7eb2e7367d4ecc71522c4f16a7d41ed31db29e3afee8d9843454" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" +ARCHITECTURES="x86 x86_gcc2 x86_64" +COPYRIGHT="2001-2006 by Theodore Ts'o + 2001-2003 Christophe Devine + 2005 by Olivier Guerrier + " + +LICENSE="GNU GPL v2" + +PROVIDES=" + pwgen = $portVersion + cmd:pwgen = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:autoconf + cmd:make + cmd:gcc + " + BUILD() { - cd pwgen-2.06 - ./configure --prefix=`finddir B_COMMON_DIRECTORY` + autoconf + runConfigure ./configure make } INSTALL() { - cd pwgen-2.06 make install } diff --git a/app-arch/arc/arc-5.21o.recipe b/app-arch/arc/arc-5.21o.recipe deleted file mode 100644 index 7da918287..000000000 --- a/app-arch/arc/arc-5.21o.recipe +++ /dev/null @@ -1,23 +0,0 @@ -DESCRIPTION="Create & extract files from DOS .ARC files" -HOMEPAGE="http://arc.sourceforge.net/" -SRC_URI="http://sunet.dl.sourceforge.net/project/arc/arc/arc-5.21o/arc-5.21o.tgz" -CHECKSUM_MD5="3b30c739b42b2fe8ac4ec0a05f34f284" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd arc-5.21o - make -} - -INSTALL() -{ - cd arc-5.21o - 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" -COPYRIGHT="1985-2009 Thom Henderson" diff --git a/app-arch/arc/arc-5.21p.recipe b/app-arch/arc/arc-5.21p.recipe new file mode 100644 index 000000000..ec7f29b62 --- /dev/null +++ b/app-arch/arc/arc-5.21p.recipe @@ -0,0 +1,45 @@ +SUMMARY="Create & extract files from DOS .ARC files" +DESCRIPTION=" +Create & extract files from DOS .ARC files +" +HOMEPAGE="http://arc.sourceforge.net/" +LICENSE="GNU GPL v2" +COPYRIGHT="1985-2009 Thom Henderson" +SRC_URI="http://sourceforge.net/projects/arc/files/arc/arc-5.21p/arc-5.21p.tar.gz" +CHECKSUM_SHA256="eacf870a245f155a4ba8c6f8e0fbb2e8a267aafa157f56ba7a8cb1d74fd8b5a1" +REVISION="1" +ARCHITECTURES="x86 ?x86_gcc2 ?x86_64" + +PATCHES="arc-5.21p.patchset" + +PROVIDES=" + arc = $portVersion + cmd:arc = $portVersion + cmd:marc = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_REQUIRES=" + cmd:make + cmd:gcc + " + +BUILD() +{ + make +} + +INSTALL() +{ + mkdir -p $binDir + cp -af arc marc $binDir + mkdir -p $manDir/man1 + cp -af arc.1 marc.1 $manDir/man1 +} diff --git a/app-arch/arc/patches/arc-5.21o.patch b/app-arch/arc/patches/arc-5.21o.patch deleted file mode 100644 index cb390b670..000000000 --- a/app-arch/arc/patches/arc-5.21o.patch +++ /dev/null @@ -1,131 +0,0 @@ -diff -Naur arc-5.21o.orig/Makefile arc-5.21o/Makefile ---- arc-5.21o.orig/Makefile 2009-11-23 21:01:04.000000000 +0000 -+++ arc-5.21o/Makefile 2009-11-23 21:59:58.000000000 +0000 -@@ -38,14 +38,14 @@ - #SYSTEM = -DBSD=1 - SYSTEM = -DSYSV=1 - --OPT = -O -+OPT = -O2 -DNEED_ALPHASORT - # For MWC 3.0 on the Atari ST, use: - #CFLAGS = -VCOMPAC -VPEEP - CFLAGS = $(OPT) $(SYSTEM) - - # GNU's gcc is very nice, if you've got it. Otherwise just cc. - #CC = cgcc -mshort -mbaserel --CC = cc -+#CC = cc - - # tmclock is only needed on Unix systems... - TMCLOCK = tmclock.o -diff -Naur arc-5.21o.orig/arcdos.c arc-5.21o/arcdos.c ---- arc-5.21o.orig/arcdos.c 2009-11-23 21:01:04.000000000 +0000 -+++ arc-5.21o/arcdos.c 2009-11-23 21:26:18.000000000 +0000 -@@ -33,7 +33,7 @@ - #if BSD - #include - #else --#include /* Sys V. Bleah. */ -+#include /* Sys V. Bleah. */ - #if NEED_TIMEVAL - struct timeval { - long tv_sec; -diff -Naur arc-5.21o.orig/arcmisc.c arc-5.21o/arcmisc.c ---- arc-5.21o.orig/arcmisc.c 2009-11-23 21:01:04.000000000 +0000 -+++ arc-5.21o/arcmisc.c 2009-11-23 22:22:03.000000000 +0000 -@@ -8,6 +8,8 @@ - #include "arc.h" - - #include -+#include -+#include - #if BSD - #include - #endif -@@ -211,6 +213,73 @@ - - #endif - -+#if UNIX -+ -+#define DIRSIZ(d) (sizeof(struct dirent) + strlen(d->d_name) + 1) -+#define INITIAL_SIZE 30 -+ -+int -+scandir(name, dirlist, selector, sorter) -+ const char *name; -+ struct dirent ***dirlist; -+ int (*selector)(); -+ int (*sorter)(); -+{ -+ static struct dirent *E; -+ struct dirent **names; -+ DIR *Dp; -+ int i; -+ int size = INITIAL_SIZE; -+ -+ if (!(names = (struct dirent **) malloc(size * sizeof names[0])) || -+ access(name, R_OK | X_OK) || !(Dp = opendir(name))) -+ return -1; -+ -+ /* Read entries in the directory. */ -+ -+ for (i = 0; (E = readdir(Dp)); ) -+ if (selector == NULL || (*selector)(E)) -+ { -+ /* User wants them all, or he wants this one. */ -+ if (++i >= size) -+ { -+ size <<= 1; -+ names = (struct dirent **) realloc(names, -+ size * sizeof names[0]); -+ if (names == NULL) -+ { -+ closedir(Dp); -+ free(&names); -+ return(-1); -+ } -+ } -+ -+ /* Copy the entry. */ -+ names[i - 1] = (struct dirent *) malloc(DIRSIZ(E)); -+ if (names[i - 1] == NULL) -+ { -+ closedir(Dp); -+ free(&names); -+ return(-1); -+ } -+ strcpy(names[i - 1]->d_name, E->d_name); -+ } -+ -+ /* Close things off. */ -+ names = (struct dirent **) realloc(names, -+ (i + 1) * sizeof names[0]); -+ names[i] = 0; -+ *dirlist = names; -+ closedir(Dp); -+ -+ /* Sort? */ -+ if (i && sorter) -+ qsort((char *)names, i, sizeof names[0], sorter); -+ -+ return i; -+} -+#endif -+ - VOID - upper(string) - char *string; -@@ -309,9 +378,10 @@ - static char **NameList; - static char namecopy[STRLEN], *dirname; - #if UNIX -- int alphasort(); -- int scandir(); -+ //int alphasort(); -+ //int scandir(); - #endif /* UNIX */ -+ - int fmatch(); - static int Nnum = 0, ii; - diff --git a/app-arch/arc/patches/arc-5.21p.patchset b/app-arch/arc/patches/arc-5.21p.patchset new file mode 100644 index 000000000..7361207da --- /dev/null +++ b/app-arch/arc/patches/arc-5.21p.patchset @@ -0,0 +1,45 @@ +From 6a8719729899cb89bdd1ae5602ab882eb832644e Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Sun, 24 Nov 2013 18:37:38 -0700 +Subject: Minor Haiku fixes + + +diff --git a/Makefile b/Makefile +index c6273d0..d4b6a86 100644 +--- a/Makefile ++++ b/Makefile +@@ -39,9 +39,9 @@ PROG = + # (See the Sysvarcstuf shar file) + #SYSTEM = -DGEMDOS=1 -fstrength-reduce -fomit-frame-pointer -finline-functions -fdefer-pop -mpcrel + #SYSTEM = -DBSD=1 +-SYSTEM = -DSYSV=1 ++SYSTEM = -DSYSV=1 -DHAIKU=1 + +-OPT = -O -Wall ++OPT = -O2 -Wall + # For MWC 3.0 on the Atari ST, use: + #CFLAGS = -VCOMPAC -VPEEP + CFLAGS = $(OPT) $(SYSTEM) +@@ -137,4 +137,4 @@ install: all + install -s -m 0755 -D marc $(DESTDIR)$(PREFIX)/bin/marc + install -m 0644 -D arc.1 $(DESTDIR)$(PREFIX)/share/man/man1/arc.1 + install -m 0644 -D marc.1 $(DESTDIR)$(PREFIX)/share/man/man1/marc.1 +- +\ No newline at end of file ++ +diff --git a/arcdos.c b/arcdos.c +index a47e6f1..4743ac3 100644 +--- a/arcdos.c ++++ b/arcdos.c +@@ -30,7 +30,7 @@ + #if UNIX + #include + #include +-#if BSD ++#if BSD || HAIKU + #include + #else + #include /* Sys V. Bleah. */ +-- +1.8.3.4 + diff --git a/app-arch/bzip2/bzip2-1.0.6.recipe b/app-arch/bzip2/bzip2-1.0.6.recipe index 9a16b40a6..b6b8b6462 100644 --- a/app-arch/bzip2/bzip2-1.0.6.recipe +++ b/app-arch/bzip2/bzip2-1.0.6.recipe @@ -1,15 +1,27 @@ SUMMARY="bzip2 data compression utilities and libraries" -DESCRIPTION="bzip2 is a freely available, patent free (see below), high-quality data compressor. It typically compresses files to within 10% to 15% of the best available techniques (the PPM family of statistical compressors), whilst being around twice as fast at compression and six times faster at decompression." +DESCRIPTION=" +bzip2 is a patent free, high-quality data compressor. It typically compresses \ +files to within 10% to 15% of the best available techniques (the PPM family of \ +statistical compressors), whilst being around twice as fast at compression and \ +six times faster at decompression. bzip2 supports recovery from media errors \ +as well. Its command line flags are similar to those of GNU Gzip. +" HOMEPAGE="http://www.bzip.org/" LICENSE="bzip2" COPYRIGHT="1996-2010 Julian R Seward" SRC_URI="http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz" -CHECKSUM_MD5="00b516f4704d4a7cb50a1d97e6e8e15b" -REVISION="4" -ARCHITECTURES="x86_gcc2 x86 x86_64" +CHECKSUM_SHA256="a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd" +REVISION="5" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" +SECONDARY_ARCHITECTURES="x86 x86_gcc2" PROVIDES=" - bzip2 = $portVersion compat >= 1 + bzip2$secondaryArchSuffix = $portVersion compat >= 1 + lib:libbz2$secondaryArchSuffix = $portVersion compat >= 1.0 + " + +if [ -z "$secondaryArchSuffix" ]; then +PROVIDES="$PROVIDES cmd:bzcat = $portVersion compat >= 1 cmd:bzcmp = $portVersion compat >= 1 cmd:bzdiff = $portVersion compat >= 1 @@ -21,23 +33,23 @@ PROVIDES=" cmd:bzless = $portVersion compat >= 1 cmd:bzmore = $portVersion compat >= 1 cmd:bunzip2 = $portVersion compat >= 1 - lib:libbz2 = $portVersion compat >= 1.0 " +fi + REQUIRES=" - haiku >= $haikuVersion + haiku$secondaryArchSuffix >= $haikuVersion " BUILD_REQUIRES=" " BUILD_PREREQUIRES=" - haiku_devel >= $haikuVersion + haiku${secondaryArchSuffix}_devel >= $haikuVersion cmd:ar - cmd:gcc - cmd:ld + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix cmd:make cmd:sed " -SOURCE_DIR="$portVersionedName" BUILD() { @@ -50,8 +62,16 @@ INSTALL() { make install PREFIX=$prefix + mkdir -p $libDir + + #move the static library to the right dir for secondary arch builds + if [ -n "$secondaryArchSuffix" ];then + mv $prefix/lib/libbz2.a $libDir + fi + # also install shared lib - cp -a libbz2.so.1.0.6 libbz2.so.1.0 $libDir + ln -sf libbz2.so.1.0.6 libbz2.so + cp -a libbz2.so.1.0.6 libbz2.so.1.0 libbz2.so $libDir # move man pages mkdir -p $manDir @@ -70,14 +90,20 @@ INSTALL() # devel package packageEntries devel \ $developDir + + #remove bin commands and man pages when building for secondary arch + if [ -n "$secondaryArchSuffix" ];then + rm -rf $prefix/bin + rm -rf $manDir + fi } # ----- devel package ------------------------------------------------------- PROVIDES_devel=" - bzip2_devel = $portVersion compat >= 1 - devel:libbz2 = $portVersion compat >= 1.0 + bzip2${secondaryArchSuffix}_devel = $portVersion compat >= 1 + devel:libbz2$secondaryArchSuffix = $portVersion compat >= 1.0 " REQUIRES_devel=" - bzip2 == $portVersion base + bzip2$secondaryArchSuffix == $portVersion base " diff --git a/app-arch/cabextract/cabextract-1.2.recipe b/app-arch/cabextract/cabextract-1.2.recipe deleted file mode 100644 index 1897cb9c0..000000000 --- a/app-arch/cabextract/cabextract-1.2.recipe +++ /dev/null @@ -1,21 +0,0 @@ -DESCRIPTION="A program to extract Microsoft Cabinet Files." -HOMEPAGE="http://www.cabextract.org.uk" -SRC_URI="http://www.cabextract.org.uk/cabextract-1.2.tar.gz" -CHECKSUM_MD5="dc421a690648b503265c82ade84e143e" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd cabextract-1.2 - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd cabextract-1.2 - make install -} -LICENSE="GNU GPL v2" -COPYRIGHT="2000-2006 Stuart Caie" diff --git a/app-arch/cabextract/cabextract-1.3.recipe b/app-arch/cabextract/cabextract-1.3.recipe deleted file mode 100644 index 9a711b005..000000000 --- a/app-arch/cabextract/cabextract-1.3.recipe +++ /dev/null @@ -1,21 +0,0 @@ -DESCRIPTION="A program to extract Microsoft Cabinet Files." -HOMEPAGE="http://www.cabextract.org.uk" -SRC_URI="http://www.cabextract.org.uk/cabextract-1.3.tar.gz" -CHECKSUM_MD5="cb9a4a38470d2a71a0275968e7eb64d3" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd cabextract-1.3 - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd cabextract-1.3 - make install -} -LICENSE="GNU GPL v2" -COPYRIGHT="2000-2010 Stuart Caie" diff --git a/app-arch/cabextract/cabextract-1.4.recipe b/app-arch/cabextract/cabextract-1.4.recipe new file mode 100644 index 000000000..0c6466083 --- /dev/null +++ b/app-arch/cabextract/cabextract-1.4.recipe @@ -0,0 +1,43 @@ +SUMMARY="A program to extract Microsoft Cabinet Files" +DESCRIPTION=" +cabextract is Free Software for extracting Microsoft cabinet files, also \ +called .CAB files. cabextract is distributed under the GPL license. It is \ +based on the portable LGPL libmspack library. cabextract supports all special \ +features and all compression formats of Microsoft cabinet files. +" +HOMEPAGE="http://www.cabextract.org.uk" +LICENSE="GNU GPL v2" +COPYRIGHT="2000-2011 Stuart Caie" +SRC_URI="http://www.cabextract.org.uk/cabextract-1.4.tar.gz" +CHECKSUM_SHA256="f7ba8ba2c2d71912846eaaa2bed9200a7722ef0addeec32db7471c350a48e41e" +REVISION="1" +ARCHITECTURES="x86 ?x86_gcc2 ?x86_64" + +PROVIDES=" + cabextract = $portVersion + cmd:cabextract = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:make + cmd:gcc + " + +BUILD() +{ + runConfigure ./configure + make +} + +INSTALL() +{ + make install +} diff --git a/app-arch/cpio/cpio-2.10.recipe b/app-arch/cpio/cpio-2.10.recipe index c22619dc0..a1d3caf2b 100644 --- a/app-arch/cpio/cpio-2.10.recipe +++ b/app-arch/cpio/cpio-2.10.recipe @@ -1,32 +1,71 @@ -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" +SUMMARY="GNU cpio copies files into or out of a cpio or tar archive" +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. + +GNU cpio supports the following archive formats: binary, old ASCII, \ +new ASCII, crc, HPUX binary, HPUX old ASCII, old tar, and POSIX.1 tar. \ +The tar format is provided for compatability with the tar program. \ +By default, cpio creates binary format archives, for compatibility \ +with older cpio programs. When extracting from archives, cpio automatically \ +recognizes which kind of archive it is reading and can read archives created \ +on machines with a different byte-order. +" +HOMEPAGE="http://www.gnu.org/software/cpio/cpio.html" +COPYRIGHT="1988-2009 Free Software Foundation, Inc." +LICENSE="GNU GPL v3" SRC_URI="http://ftp.gnu.org/gnu/cpio/cpio-2.10.tar.gz" -CHECKSUM_MD5="351ab3d38d8949913e478cc23b9d6ad4" +CHECKSUM_SHA256="2a2da2dbb741a75b9a374ceca46036ac3f3c3698e3756b9e3cd44edac8536ba5" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" +ARCHITECTURES="x86 ?x86_gcc2" + +PATCHES="cpio-2.10.patch" + +PROVIDES=" + cpio = $portVersion + cmd:cpio = $portVersion compat >= 2 + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:awk + cmd:make + cmd:gcc + cmd:ld + " + +PATCH() +{ + sed -i 's/restrict//g' gnu/string.in.h +} + BUILD() { - cd cpio-2.10 - 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 +# TODO: The patch already contains a fix for libnetwork not being auto-detected, +# but rebuilding the build system seems to be severely broken for gnulib (gnu/). +# Maybe the included gnulib needs to be replaced by a newer version. +# libtoolize --force --copy --install +# aclocal +# autoconf + LIBS=-lnetwork runConfigure ./configure + make $jobArgs } INSTALL() { - cd cpio-2.10 make install + + rm $libDir/charset.alias } 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.recipe b/app-arch/cpio/cpio-2.11.recipe index cbcda6e09..999e30367 100644 --- a/app-arch/cpio/cpio-2.11.recipe +++ b/app-arch/cpio/cpio-2.11.recipe @@ -1,5 +1,17 @@ -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" +SUMMARY="GNU cpio copies files into or out of a cpio or tar archive" +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. + +GNU cpio supports the following archive formats: binary, old ASCII, \ +new ASCII, crc, HPUX binary, HPUX old ASCII, old tar, and POSIX.1 tar. \ +The tar format is provided for compatability with the tar program. \ +By default, cpio creates binary format archives, for compatibility \ +with older cpio programs. When extracting from archives, cpio automatically \ +recognizes which kind of archive it is reading and can read archives created \ +on machines with a different byte-order. +" +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" diff --git a/app-arch/cpio/patches/cpio-2.10.patch b/app-arch/cpio/patches/cpio-2.10.patch index c81bad271..2863d708a 100644 --- a/app-arch/cpio/patches/cpio-2.10.patch +++ b/app-arch/cpio/patches/cpio-2.10.patch @@ -35,7 +35,7 @@ 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; ++ char *slash; mode_t tmpmode; mode_t invert_permissions; int we_are_root = getuid () == 0; diff --git a/app-arch/cpio/patches/cpio-2.11.patch b/app-arch/cpio/patches/cpio-2.11.patch index bc25253d3..09ec2d50d 100644 --- a/app-arch/cpio/patches/cpio-2.11.patch +++ b/app-arch/cpio/patches/cpio-2.11.patch @@ -17,7 +17,7 @@ diff -urN cpio-2.11/src/makepath.c cpio-2.11-haiku/src/makepath.c char *dirpath; /* A copy we can scribble NULs on. */ struct stat stats; int retval = 0; -+ char *slash; ++ char *slash; mode_t tmpmode; mode_t invert_permissions; int we_are_root = getuid () == 0; diff --git a/app-arch/fastjar/fastjar-0.98.recipe b/app-arch/fastjar/fastjar-0.98.recipe index b881de5aa..3ed7d949d 100644 --- a/app-arch/fastjar/fastjar-0.98.recipe +++ b/app-arch/fastjar/fastjar-0.98.recipe @@ -1,23 +1,54 @@ -DESCRIPTION="A jar program written in C" +SUMMARY="A jar(java archive) program written in C" +DESCRIPTION=" +FastJar is an attempt at creating a feature-for-feature copy of Sun's JDK's \ +'jar' command. Sun's jar (or Blackdown's for that matter) is written entirely \ +in Java which makes it dog slow. Since FastJar is written in C, it can create \ +the same .jar file as Sun's tool in a fraction of the time. +" HOMEPAGE="https://savannah.nongnu.org/projects/fastjar" -SRC_URI="http://mirror.its.uidaho.edu/pub/savannah/fastjar/fastjar-0.98.tar.gz" -CHECKSUM_MD5="d2d264d343d4d0e1575832cc1023c3bf" -REVISION="2" -STATUS_HAIKU="stable" -DEPEND="" +LICENSE="GNU GPL v2" +COPYRIGHT="1999-2001 Bryan Burns, Cory Jon Hollingsworth, Matthias Klose (documentation) + 2007-2009 Dalibor Topic" +SRC_URI="http://download.savannah.gnu.org/releases/fastjar/fastjar-0.98.tar.gz" +CHECKSUM_SHA256="f156abc5de8658f22ee8f08d7a72c88f9409ebd8c7933e9466b0842afeb2f145" +REVISION="1" +ARCHITECTURES="x86 ?x86_gcc2 ?x86_64" + +PROVIDES=" + fastjar = $portVersion + cmd:fastjar = $portVersion + cmd:grepjar = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + lib:libz + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:libz + " + +BUILD_PREREQUIRES=" + cmd:autoreconf + cmd:autoconf + cmd:aclocal + cmd:automake + cmd:libtoolize + cmd:make + cmd:gcc + " + BUILD() { - cd fastjar-0.98 autoreconf -vfi - configure --prefix=`finddir B_COMMON_DIRECTORY` + runConfigure ./configure make } INSTALL() { - cd fastjar-0.98 make install + rm -rf $libDir } -LICENSE="GNU GPL v2" -COPYRIGHT="1999-2001 Bryan Burns, Cory Jon Hollingsworth, Matthias Klose (documentation) - 2007-2009 Dalibor Topic" diff --git a/app-arch/gzip/gzip-1.2.4a.recipe b/app-arch/gzip/gzip-1.2.4a.recipe index a48ec2e18..41c28df97 100644 --- a/app-arch/gzip/gzip-1.2.4a.recipe +++ b/app-arch/gzip/gzip-1.2.4a.recipe @@ -1,5 +1,10 @@ -DESCRIPTION="GNU zip" -HOMEPAGE="http://www.gzip.org/" +SUMMARY="gzip compression utilities and libraries" +DESCRIPTION=" +gzip (GNU zip) is a compression utility designed to be a \ +replacement for compress. It provides better compression than compress \ +and although bzip2 produces smaller files is not as fast as bzip2 is. +" +HOMEPAGE="http://www.gzip.org/" SRC_URI="ftp://ftp.gnu.org/gnu/gzip/gzip-1.2.4a.tar.gz" CHECKSUM_MD5="39053e044b18ecd0627f80fbe7cfeaad" REVISION="1" diff --git a/app-arch/gzip/gzip-1.3.12.recipe b/app-arch/gzip/gzip-1.3.12.recipe index e3fb7a487..6698f89c6 100644 --- a/app-arch/gzip/gzip-1.3.12.recipe +++ b/app-arch/gzip/gzip-1.3.12.recipe @@ -1,5 +1,10 @@ -DESCRIPTION="GNU zip" -HOMEPAGE="http://www.gzip.org/" +SUMMARY="gzip compression utilities and libraries" +DESCRIPTION=" +gzip (GNU zip) is a compression utility designed to be a \ +replacement for compress. It provides better compression than compress \ +and although bzip2 produces smaller files is not as fast as bzip2 is. +" +HOMEPAGE="http://www.gzip.org/" SRC_URI="ftp://ftp.gnu.org/gnu/gzip/gzip-1.3.12.tar.gz" CHECKSUM_MD5="b5bac2d21840ae077e0217bc5e4845b1" REVISION="1" diff --git a/app-arch/gzip/gzip-1.4.recipe b/app-arch/gzip/gzip-1.4.recipe index 0dbe2f094..fe8532ed1 100644 --- a/app-arch/gzip/gzip-1.4.recipe +++ b/app-arch/gzip/gzip-1.4.recipe @@ -1,4 +1,9 @@ -DESCRIPTION="GNU zip" +SUMMARY="gzip compression utilities and libraries" +DESCRIPTION=" +gzip (GNU zip) is a compression utility designed to be a \ +replacement for compress. It provides better compression than compress \ +and although bzip2 produces smaller files is not as fast as bzip2 is. +" HOMEPAGE="http://www.gzip.org/" SRC_URI="ftp://ftp.gnu.org/gnu/gzip/gzip-1.4.tar.gz" CHECKSUM_MD5="e381b8506210c794278f5527cba0e765" diff --git a/app-arch/ha/ha-0999.recipe b/app-arch/ha/ha-0999.recipe index 04b3d130f..0b7d0d31e 100644 --- a/app-arch/ha/ha-0999.recipe +++ b/app-arch/ha/ha-0999.recipe @@ -1,10 +1,37 @@ -DESCRIPTION="The HA archiver using the HSC compression method" -HOMEPAGE="http://packages.debian.org/squeeze/ha" -SRC_URI="ftp://ftp.freebsd.org/pub/FreeBSD/ports/distfiles/ha0999.tgz" +SUMMARY="The HA archiver using the HSC compression method" +DESCRIPTION=" +The HA archiver using the HSC compression method +" +LICENSE="GNU GPL v2" +COPYRIGHT="1993-1995 Harri Hirvola" +HOMEPAGE="https://code.google.com/p/ak-various-projects/" +SRC_URI="https://ak-various-projects.googlecode.com/files/ha0999.tgz" +CHECKSUM_SHA256="641417d256f645c92fe1ee042b9c133b5173d33d540af99ed4932f7d79a30228" REVISION="1" -CHECKSUM_MD5="77f3266a451712bec55d60df67f61486" -STATUS_HAIKU="stable" -DEPEND="" +ARCHITECTURES="x86 ?x86_gcc2 ?x86_64" + +PROVIDES=" + ha = $portVersion + cmd:ha = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:make + cmd:gcc + " + +# This is intentionally empty to make haikuporter happy with the +# way the source tarball is packaged +SOURCE_DIR="" + BUILD() { make -f makefile.nix @@ -12,9 +39,6 @@ BUILD() INSTALL() { - mkdir -p ${DESTDIR}/`finddir B_COMMON_BIN_DIRECTORY` - cp ha ${DESTDIR}/`finddir B_COMMON_BIN_DIRECTORY`/ha + mkdir -p $binDir + cp -af ha $binDir } - -LICENSE="GNU GPL v2" -COPYRIGHT="1993-1995 Harri Hirvola" diff --git a/app-arch/ha/patches/ha-0999.patch b/app-arch/ha/patches/ha-0999.patch deleted file mode 100644 index 3b2359f00..000000000 --- a/app-arch/ha/patches/ha-0999.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -Naur nix.orig/machine.c nix/machine.c ---- nix/machine.c 2009-11-24 15:27:43.000000000 +0000 -+++ nix/machine.c 2009-11-24 15:23:26.000000000 +0000 -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - #include - #include - #include diff --git a/app-arch/lha/lha-1.14i.recipe b/app-arch/lha/lha-1.14i.recipe index 4052ba216..340107828 100644 --- a/app-arch/lha/lha-1.14i.recipe +++ b/app-arch/lha/lha-1.14i.recipe @@ -1,32 +1,58 @@ -DESCRIPTION="Archive files using LZSS and Huffman compression (.lzh files)" +SUMMARY="Archive files using LZSS and Huffman compression (.lzh files)" +DESCRIPTION=" +Archive files using LZSS and Huffman compression (.lzh files) +" +LICENSE="lha" +COPYRIGHT="1991, Masaru Oki + 1993-1995, Nobutaka Watazaki + 2000, Tsugio Okamoto et al." HOMEPAGE="http://sourceforge.jp/projects/lha/" SRC_URI="http://jaist.dl.sourceforge.jp/lha/22231/lha-1.14i-ac20050924p1.tar.gz" -CHECKSUM_MD5="9f52430410928ba4390a73a41a36d56f" +CHECKSUM_SHA256="b5261e9f98538816aa9e64791f23cb83f1632ecda61f02e54b6749e9ca5e9ee4" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" +ARCHITECTURES="x86 ?x86_gcc2 ?x86_64" + +PROVIDES=" + lha = $portVersion + cmd:lha = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:autoreconf + cmd:autoconf + cmd:automake + cmd:aclocal + cmd:autoheader + cmd:libtoolize + cmd:make + cmd:gcc + " + +PATCHES="lha-1.14i.patchset" + +SOURCE_DIR="lha-1.14i-ac20050924p1" + BUILD() { - cd lha-1.14i-ac20050924p1 autoreconf -vfi - ./configure --prefix=`finddir B_COMMON_DIRECTORY`/ + runConfigure ./configure make } INSTALL() { - cd lha-1.14i-ac20050924p1 - make install DESTDIR=${DESTDIR} - + make install } TEST() { - cd lha-1.14i-ac20050924p1 make check } - -LICENSE="lha" -COPYRIGHT="1991, Masaru Oki - 1993-1995, Nobutaka Watazaki - 2000, Tsugio Okamoto et al." diff --git a/app-arch/lha/patches/lha-1.14i.patchset b/app-arch/lha/patches/lha-1.14i.patchset new file mode 100644 index 000000000..85795d25d --- /dev/null +++ b/app-arch/lha/patches/lha-1.14i.patchset @@ -0,0 +1,58 @@ +From d6ee6e73f4d5db9e15580bfa746a0e885bbd9218 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Sun, 24 Nov 2013 19:28:57 -0700 +Subject: Updates for newer autotools and misc fixes + + +diff --git a/configure.ac b/configure.ac +index 5161979..cb0524a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3,7 +3,7 @@ AC_INIT([LHa for UNIX], 1.14i-ac20050924p1, arai@users.sourceforge.jp, lha) + AC_CANONICAL_HOST + AC_CANONICAL_TARGET + AM_INIT_AUTOMAKE +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADERS([config.h]) + + AC_DEFINE_UNQUOTED(PLATFORM, "$ac_cv_host", + [the type of system on which the package will run.]) +@@ -14,7 +14,6 @@ AC_PROG_GCC_TRADITIONAL + AC_PROG_INSTALL + AC_PROG_MAKE_SET + AC_MINIX +-AM_C_PROTOTYPES + AC_SYS_LARGEFILE + + # Checks for libraries. +diff --git a/src/prototypes.h b/src/prototypes.h +index 79e1330..cd456eb 100644 +--- a/src/prototypes.h ++++ b/src/prototypes.h +@@ -70,10 +70,10 @@ void temporary_to_new_archive_file P_((size_t new_archive_size)); + void cmd_add P_((void)); + void cmd_delete P_((void)); + /* lharc.c */ +-void message P_((char *fmt, ...)); +-void warning P_((char *fmt, ...)); +-void error P_((char *fmt, ...)); +-void fatal_error P_((char *fmt, ...)); ++//void message P_((char *fmt, ...)); ++//void warning P_((char *fmt, ...)); ++//void error P_((char *fmt, ...)); ++//void fatal_error P_((char *fmt, ...)); + void cleanup P_((void)); + RETSIGTYPE interrupt P_((int signo)); + void *xmalloc P_((size_t size)); +@@ -122,7 +122,7 @@ unsigned int decode P_((struct interfacing *interface)); + size_t copyfile P_((FILE *f1, FILE *f2, size_t size, int text_flg, unsigned int *crcp)); + int encode_stored_crc P_((FILE *ifp, FILE *ofp, size_t size, size_t *original_size_var, size_t *write_size_var)); + boolean archive_is_msdos_sfx1 P_((char *name)); +-int xsnprintf P_((char *dest, size_t size, char *fmt, ...)); ++//int xsnprintf P_((char *dest, size_t size, char *fmt, ...)); + char *xstrchr P_((const char *s, int c)); + char *xstrrchr P_((const char *s, int c)); + char *xmemchr P_((const char *s, int c, size_t n)); +-- +1.8.3.4 + diff --git a/app-arch/libarchive/libarchive-2.8.3.recipe b/app-arch/libarchive/libarchive-2.8.3.recipe deleted file mode 100644 index 27e342a7c..000000000 --- a/app-arch/libarchive/libarchive-2.8.3.recipe +++ /dev/null @@ -1,33 +0,0 @@ -DESCRIPTION="C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats." -HOMEPAGE="http://code.google.com/p/libarchive/" -SRC_URI="http://libarchive.googlecode.com/files/libarchive-2.8.3.zip" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -CHECKSUM_MD5="e4fb38b224f623e1cf1122631bf35b82" -BUILD() -{ - cd libarchive-2.8.3 - libtoolize --force --copy --install - aclocal -I build/autoconf - autoconf - automake - chmod 755 configure - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd libarchive-2.8.3 - make install -} - -TEST() -{ - cd libarchive-2.8.3 - make check -} - -LICENSE="BSD (2-clause)" -COPYRIGHT="2003-2009 Tim Kientzle" diff --git a/app-arch/libarchive/libarchive-2.8.4.recipe b/app-arch/libarchive/libarchive-2.8.4.recipe deleted file mode 100644 index 01d29a599..000000000 --- a/app-arch/libarchive/libarchive-2.8.4.recipe +++ /dev/null @@ -1,33 +0,0 @@ -DESCRIPTION="C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats." -HOMEPAGE="http://code.google.com/p/libarchive/" -SRC_URI="http://libarchive.googlecode.com/files/libarchive-2.8.4.tar.gz" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -CHECKSUM_MD5="83b237a542f27969a8d68ac217dc3796" -BUILD() -{ - cd libarchive-2.8.4 - libtoolize --force --copy --install - aclocal -I build/autoconf - autoconf - automake - chmod 755 configure - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd libarchive-2.8.4 - make install -} - -TEST() -{ - cd libarchive-2.8.4 - make check -} - -LICENSE="BSD (2-clause)" -COPYRIGHT="2003-2009 Tim Kientzle" diff --git a/app-arch/libarchive/libarchive-2.8.5.recipe b/app-arch/libarchive/libarchive-2.8.5.recipe deleted file mode 100644 index 4a816b54f..000000000 --- a/app-arch/libarchive/libarchive-2.8.5.recipe +++ /dev/null @@ -1,37 +0,0 @@ -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.recipe b/app-arch/libarchive/libarchive-3.0.3.recipe deleted file mode 100644 index 6f782a822..000000000 --- a/app-arch/libarchive/libarchive-3.0.3.recipe +++ /dev/null @@ -1,37 +0,0 @@ -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/libarchive/libarchive-3.1.2.recipe b/app-arch/libarchive/libarchive-3.1.2.recipe new file mode 100644 index 000000000..1e2e9d781 --- /dev/null +++ b/app-arch/libarchive/libarchive-3.1.2.recipe @@ -0,0 +1,117 @@ +SUMMARY="C library and tools for working with many archive formats." +DESCRIPTION=" +The libarchive library features: +* Support for a variety of archive and compression formats. +* Robust automatic format detection, including archive/compression \ +combinations such as tar.gz. +* Zero-copy internal architecture for high performance. +* Streaming architecture eliminates all limits on size of archive, limits on \ +entry sizes depend on particular formats. +* Carefully factored code to minimize bloat when programs are statically linked. +* Growing test suite ? to verify correctness of new ports. +* Works on most POSIX-like systems +* Supports Windows, including Cygwin, MinGW, and Visual Studio. +The bsdtar and bscpio command-line utilities are feature- and \ +performance-competitive with other tar and cpio implementations: +* Reads a variety of formats, including tar, pax, cpio, zip, xar, lha, ar, \ +cab, mtree, rar, and ISO images. +* Writes tar, pax, cpio, zip, xar, ar, ISO, mtree, and shar archives +* Automatically handles archives compressed with gzip, bzip2, lzip, xz, lzma, \ +or compress. +* Unique format conversion feature. +" +LICENSE="BSD (2-clause)" +COPYRIGHT="2003-2013 Tim Kientzle" +HOMEPAGE="http://www.libarchive.org/" +SRC_URI="http://www.libarchive.org/downloads/libarchive-3.1.2.tar.gz" +CHECKSUM_SHA256="eb87eacd8fe49e8d90c8fdc189813023ccc319c5e752b01fb6ad0cc7b2c53d5e" +REVISION="1" +ARCHITECTURES="x86" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +# On x86_gcc2 we don't want to install the commands in bin//, but in bin/. +commandSuffix=$secondaryArchSuffix +commandBinDir=$binDir +if [ "$targetArchitecture" = x86_gcc2 ]; then + commandSuffix= + commandBinDir=$prefix/bin +fi + +PROVIDES=" + libarchive$secondaryArchSuffix = $portVersion compat >= 3.0 + cmd:bsdtar$commandSuffix = $portVersion compat >= 3.0 + cmd:bsdcpio$commandSuffix = $portVersion compat >= 3.0 + lib:libarchive$secondaryArchSuffix = $portVersion compat >= 3.0 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:liblzma$secondaryArchSuffix + lib:libxml2$secondaryArchSuffix + lib:libssl$secondaryArchSuffix + lib:libcrypto$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libbz2$secondaryArchSuffix + " + +BUILD_REQUIRES=" + devel:liblzma$secondaryArchSuffix + devel:libxml2$secondaryArchSuffix + devel:libssl$secondaryArchSuffix + devel:libcrypto$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:libbz2$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:libtoolize + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:xml2_config + " + +PROVIDES_devel=" + libarchive${secondaryArchSuffix}_devel = $portVersion compat >= 3.0 + devel:libarchive$secondaryArchSuffix = $portVersion compat >= 3.0 + " + +REQUIRES_devel=" + libarchive$secondaryArchSuffix == $portVersion + " + +PATCHES="libarchive-3.1.2.patchset" + + +BUILD() +{ + libtoolize -fci + aclocal -I build/autoconf + automake --add-missing + autoconf + runConfigure --omit-dirs binDir ./configure --bindir=$commandBinDir + make $jobArgs +} + +INSTALL() +{ + make install + prepareInstalledDevelLibs libarchive + fixPkgconfig + packageEntries devel $developDir $manDir/man3 +} + +TEST() +{ + make check +} diff --git a/app-arch/libarchive/patches/libarchive-3.1.2.patchset b/app-arch/libarchive/patches/libarchive-3.1.2.patchset new file mode 100644 index 000000000..59fb64998 --- /dev/null +++ b/app-arch/libarchive/patches/libarchive-3.1.2.patchset @@ -0,0 +1,21 @@ +From e3947009a6fee8dfd0ac635812df2825cdc8c338 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Sat, 26 Oct 2013 18:36:43 -0600 +Subject: Check libgnu for xattr functions on Haiku + + +diff --git a/configure.ac b/configure.ac +index 73944d3..9bfdaa2 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -569,6 +569,7 @@ if test "x$enable_xattr" != "xno"; then + AC_CHECK_HEADERS([attr/xattr.h]) + AC_CHECK_HEADERS([sys/xattr.h sys/ea.h]) + AC_CHECK_LIB(attr,setxattr) ++ AC_CHECK_LIB(gnu,setxattr) + AC_CHECK_FUNCS([extattr_get_file extattr_list_file]) + AC_CHECK_FUNCS([extattr_set_fd extattr_set_file]) + AC_CHECK_FUNCS([fgetxattr flistxattr fsetxattr getxattr]) +-- +1.8.3.4 + diff --git a/app-arch/lz4/lz4-r117.recipe b/app-arch/lz4/lz4-r117.recipe new file mode 100644 index 000000000..d515d5dac --- /dev/null +++ b/app-arch/lz4/lz4-r117.recipe @@ -0,0 +1,69 @@ +SUMMARY="lz4 data compression utilities and libraries" +DESCRIPTION=" +LZ4 is a very fast lossless compression algorithm, providing compression speed \ +at 400 MB/s per core, scalable with multi-cores CPU. It also features an \ +extremely fast decoder, with speed in multiple GB/s per core, typically \ +reaching RAM speed limits on multi-core systems. +" +HOMEPAGE="https://code.google.com/p/lz4/" +LICENSE="BSD (2-clause)" +COPYRIGHT="2011-2014, Yann Collet" +SRC_URI="https://github.com/Cyan4973/lz4/archive/r117.tar.gz" +SRC_FILENAME="$portVersionedName.tar.gz" +CHECKSUM_SHA256="c4ca70bf6711021d5ae64e79469a619a4e5899a4c7e07e665f3eb3a517cd029d" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86 x86_gcc2" + +PATCHES="lz4-$portVersion.patchset" + +PROVIDES=" + lz4${secondaryArchSuffix} = $portVersion + lib:liblz4${secondaryArchSuffix} = 1.0.0 compat >= 1 + " + +if [ -z "$secondaryArchSuffix" ]; then +PROVIDES="$PROVIDES + cmd:lz4 = $portVersion + cmd:lz4c = $portVersion + cmd:lz4cat = $portVersion + " +fi + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:ar + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +BUILD() +{ + make $jobArgs all +} + +INSTALL() +{ + make install LIBDIR=$libDir INCLUDEDIR=$includeDir \ + BINDIR=$binDir MANDIR=$manDir + prepareInstalledDevelLibs liblz4 + + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + lz4${secondaryArchSuffix}_devel = $portVersion + devel:liblz4$secondaryArchSuffix = 1.0.0 compat >= 1 + " +REQUIRES_devel=" + lz4${secondaryArchSuffix} == $portVersion base + " diff --git a/app-arch/lz4/patches/lz4-r117.patchset b/app-arch/lz4/patches/lz4-r117.patchset new file mode 100644 index 000000000..4ec483daf --- /dev/null +++ b/app-arch/lz4/patches/lz4-r117.patchset @@ -0,0 +1,173 @@ +From 9c137ea48247801d309d867244820833685e2477 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Thu, 15 May 2014 16:14:06 +0000 +Subject: undef _PACKED (defined in Bebuild.h) + + +diff --git a/lz4.c b/lz4.c +index fd229ef..9284bbf 100644 +--- a/lz4.c ++++ b/lz4.c +@@ -188,6 +188,7 @@ + typedef unsigned long long U64; + #endif + ++#undef _PACKED + #if defined(__GNUC__) && !defined(LZ4_FORCE_UNALIGNED_ACCESS) + # define _PACKED __attribute__ ((packed)) + #else +diff --git a/lz4hc.c b/lz4hc.c +index e84de2b..cb72ef8 100644 +--- a/lz4hc.c ++++ b/lz4hc.c +@@ -158,6 +158,7 @@ + typedef unsigned long long U64; + #endif + ++#undef _PACKED + #if defined(__GNUC__) && !defined(LZ4_FORCE_UNALIGNED_ACCESS) + # define _PACKED __attribute__ ((packed)) + #else +diff --git a/programs/xxhash.c b/programs/xxhash.c +index 8304ec2..d4aa50e 100644 +--- a/programs/xxhash.c ++++ b/programs/xxhash.c +@@ -110,6 +110,7 @@ FORCE_INLINE void* XXH_memcpy(void* dest, const void* src, size_t size) { return + typedef unsigned long long U64; + #endif + ++#undef _PACKED + #if defined(__GNUC__) && !defined(XXH_USE_UNALIGNED_ACCESS) + # define _PACKED __attribute__ ((packed)) + #else +-- +1.8.3.4 + + +From 83f35b4005aa62773f52a843d3f515854baaf787 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Thu, 15 May 2014 16:18:40 +0000 +Subject: PAGE_SIZE is already defined on Haiku + + +diff --git a/programs/fuzzer.c b/programs/fuzzer.c +index ba4f960..fa84aec 100644 +--- a/programs/fuzzer.c ++++ b/programs/fuzzer.c +@@ -53,6 +53,7 @@ + #define SEQ_MSK ((NUM_SEQ) - 1) + #define MOD_SEQ(x) ((((x) >> 8) & 255) == 0) + #define NEW_SEQ(x) ((((x) >> 10) %10) == 0) ++#undef PAGE_SIZE + #define PAGE_SIZE 4096 + #define ROUND_PAGE(x) (((x) + PAGE_SIZE - 1) & ~(PAGE_SIZE - 1)) + #define PRIME1 2654435761U +-- +1.8.3.4 + + +From fbc8cf911a39fa5d64db09f5a3cf3d54f8614a24 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Thu, 15 May 2014 16:20:36 +0000 +Subject: Haiku install support + + +diff --git a/Makefile b/Makefile +index e5797c7..c976c95 100644 +--- a/Makefile ++++ b/Makefile +@@ -106,7 +106,7 @@ clean: + + + #make install option is reserved to Linux & OSX targets +-ifneq (,$(filter $(shell uname),Linux Darwin)) ++ifneq (,$(filter $(shell uname),Linux Darwin Haiku)) + + install: liblz4 + @install -d -m 755 $(DESTDIR)$(LIBDIR)/ $(DESTDIR)$(INCLUDEDIR)/ +diff --git a/programs/Makefile b/programs/Makefile +index 8ec0b85..aa5926b 100644 +--- a/programs/Makefile ++++ b/programs/Makefile +@@ -37,8 +37,8 @@ CC:=$(CC) + CFLAGS+= -std=c99 -O3 -Wall -W -Wundef -DLZ4_VERSION=\"$(RELEASE)\" + FLAGS= -I.. $(CFLAGS) + +-BINDIR=$(PREFIX)/bin +-MANDIR=$(PREFIX)/share/man/man1 ++#BINDIR=$(PREFIX)/bin ++#MANDIR=$(PREFIX)/share/man/man1 + LZ4DIR=.. + + TEST_FILES = COPYING +@@ -83,7 +83,7 @@ clean: + @echo Cleaning completed + + +-ifneq (,$(filter $(shell uname),Linux Darwin)) ++ifneq (,$(filter $(shell uname),Linux Darwin, Haiku)) + + install: lz4 lz4c + @echo Installing binaries +-- +1.8.3.4 + + +From 52f22e57e55cc5f4dbaab5dc9acae3491916b306 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Fri, 16 May 2014 14:16:07 +0000 +Subject: gcc2 doesn't know std=c99 + + +diff --git a/Makefile b/Makefile +index c976c95..4964a59 100644 +--- a/Makefile ++++ b/Makefile +@@ -39,7 +39,7 @@ LIBVER=$(LIBVER_MAJOR).$(LIBVER_MINOR).$(LIBVER_PATCH) + DESTDIR= + PREFIX=/usr + CC:=$(CC) +-CFLAGS+= -I. -std=c99 -O3 -Wall -W -Wundef -DLZ4_VERSION=\"$(RELEASE)\" ++CFLAGS+= -I. -O3 -Wall -W -Wundef -DLZ4_VERSION=\"$(RELEASE)\" + + LIBDIR=$(PREFIX)/lib + INCLUDEDIR=$(PREFIX)/include +diff --git a/programs/Makefile b/programs/Makefile +index aa5926b..e380c35 100644 +--- a/programs/Makefile ++++ b/programs/Makefile +@@ -34,7 +34,7 @@ RELEASE=r116 + DESTDIR= + PREFIX=/usr + CC:=$(CC) +-CFLAGS+= -std=c99 -O3 -Wall -W -Wundef -DLZ4_VERSION=\"$(RELEASE)\" ++CFLAGS+= -O3 -Wall -W -Wundef -DLZ4_VERSION=\"$(RELEASE)\" + FLAGS= -I.. $(CFLAGS) + + #BINDIR=$(PREFIX)/bin +-- +1.8.3.4 + + +From bf73e35f83ed099523193493e77dd3b342937d89 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Fri, 16 May 2014 14:20:25 +0000 +Subject: we don't want 32-bit versions + + +diff --git a/programs/Makefile b/programs/Makefile +index e380c35..b89410f 100644 +--- a/programs/Makefile ++++ b/programs/Makefile +@@ -53,7 +53,7 @@ endif + + default: lz4 lz4c + +-all: lz4 lz4c lz4c32 fuzzer fuzzer32 fullbench fullbench32 ++all: lz4 lz4c fuzzer fullbench + + lz4: $(LZ4DIR)/lz4.c $(LZ4DIR)/lz4hc.c bench.c xxhash.c lz4io.c lz4cli.c + $(CC) $(FLAGS) -DDISABLE_LZ4C_LEGACY_OPTIONS $^ -o $@$(EXT) +-- +1.8.3.4 + diff --git a/app-arch/p7zip/p7zip-9.13.recipe b/app-arch/p7zip/p7zip-9.13.recipe index be3ab5200..de8bdead4 100644 --- a/app-arch/p7zip/p7zip-9.13.recipe +++ b/app-arch/p7zip/p7zip-9.13.recipe @@ -1,8 +1,12 @@ SUMMARY="7-zip file compression program" -DESCRIPTION="p7zip is a port of 7za.exe for POSIX systems like Unix (Linux, Solaris, OpenBSD, FreeBSD, Cygwin, AIX, ...), MacOS X and also for BeOS and Amiga." +DESCRIPTION="p7zip is a port of 7za.exe (command line 7-Zip) for POSIX systems. 7-Zip is a file archiver with a high compression ratio in 7z format with LZMA and LZMA2 compression. It provides a compression ratio that is 2-10% better than the ratio provided by PKZip and WinZip, and features AES-256 encryption in 7z and ZIP formats. 7-Zip also self-extracts files in 7z format. + +Supported Formats: +- Packing/Unpacking: 7z, XZ, BZIP2, GZIP, TAR, ZIP, and WIM +- Unpacking Only: ARJ, CAB, CHM, CPIO, CramFS, DEB, DMG, FAT, HFS, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, RAR, RPM, SquashFS, UDF, VHD, WIM, XAR, and Z." HOMEPAGE="http://p7zip.sourceforge.net" SRC_URI="http://downloads.sourceforge.net/project/p7zip/p7zip/9.13/p7zip_9.13_src_all.tar.bz2" -CHECKSUM_MD5="8ddb5053db3b1f2696407d01be145779" +CHECKSUM_SHA256="fc9c0fa2eabd367d6adbc3ea07bb305dbdc1f68717eea362c8c074b91c03d923" LICENSE="GNU LGPL v2.1" COPYRIGHT="1999-2010 7-Zip Igor Pavlov." REVISION="2" diff --git a/app-arch/p7zip/p7zip-9.20.1.recipe b/app-arch/p7zip/p7zip-9.20.1.recipe index 27974a978..b612f3456 100644 --- a/app-arch/p7zip/p7zip-9.20.1.recipe +++ b/app-arch/p7zip/p7zip-9.20.1.recipe @@ -1,8 +1,11 @@ SUMMARY="7-zip file compression program" -DESCRIPTION="p7zip is a port of 7za.exe for POSIX systems like Unix (Linux, Solaris, OpenBSD, FreeBSD, Cygwin, AIX, ...), MacOS X and also for BeOS and Amiga." +DESCRIPTION=" +p7zip is a port of 7za.exe for POSIX systems like Unix (Linux, Solaris, \ +OpenBSD, FreeBSD, Cygwin, AIX, ...), MacOS X and also for BeOS and Amiga. +" 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" -CHECKSUM_MD5="bd6caaea567dc0d995c990c5cc883c89" +CHECKSUM_SHA256="49557e7ffca08100f9fc687f4dfc5aea703ca207640c76d9dee7b66f03cb4782" LICENSE="GNU LGPL v2.1" COPYRIGHT="1999-2011 7-Zip Igor Pavlov." REVISION="5" diff --git a/app-arch/pigz/pigz-2.1.6.recipe b/app-arch/pigz/pigz-2.1.6.recipe deleted file mode 100644 index 5beb18652..000000000 --- a/app-arch/pigz/pigz-2.1.6.recipe +++ /dev/null @@ -1,31 +0,0 @@ -DESCRIPTION="pigz" -HOMEPAGE="http://www.zlib.net/pigz" -SRC_URI="http://www.zlib.net/pigz/pigz-2.1.6.tar.gz" -CHECKSUM_MD5="cbe9030c4be3d0ef2438ee5f8b169ca4" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd pigz-2.1.6 - sed -i 's/-lpthread/ /g' Makefile - sed -i 's/ln -f pigz unpigz/cp pigz unpigz/' Makefile - make -} - -INSTALL() -{ - cd pigz-2.1.6 - mkdir -p ${DESTDIR}`finddir B_COMMON_BIN_DIRECTORY` - cp pigz ${DESTDIR}`finddir B_COMMON_BIN_DIRECTORY`/pigz - cp unpigz ${DESTDIR}`finddir B_COMMON_BIN_DIRECTORY`/unpigz -} - -TEST() -{ - cd pigz-2.1.6 - make test -} - -LICENSE="Zlib" -COPYRIGHT="2008 Mark Adler" diff --git a/app-arch/pigz/pigz-2.3.1.recipe b/app-arch/pigz/pigz-2.3.1.recipe new file mode 100644 index 000000000..a4bbb2611 --- /dev/null +++ b/app-arch/pigz/pigz-2.3.1.recipe @@ -0,0 +1,64 @@ +SUMMARY="A parallel implementation of gzip for multi-processor machines" +DESCRIPTION=" +pigz, which stands for Parallel Implementation of GZip, is a fully functional \ +replacement for gzip that exploits multiple processors and multiple cores to \ +the hilt when compressing data. + +pigz was written by Mark Adler, and uses the zlib and pthread libraries. + +This version of pigz is written to be portable across Unix-style operating \ +systems that provide the zlib and pthread libraries. +" +LICENSE="Zlib" +COPYRIGHT="2008-2013 Mark Adler" +HOMEPAGE="http://www.zlib.net/pigz" +SRC_URI="http://www.zlib.net/pigz/pigz-2.3.1.tar.gz" +CHECKSUM_SHA256="629b0ce5422a3978f31742bf8275d0be2f84987140d18f390f1e3b4e46e0af54" +REVISION="1" +ARCHITECTURES="x86 ?x86_gcc2 ?x86_64" + +PROVIDES=" + pigz = $portVersion + cmd:pigz = $portVersion + cmd:unpigz = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + lib:libz + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:libz + " + +BUILD_PREREQUIRES=" + cmd:make + cmd:gcc + " + +PATCH() +{ + sed -i 's/-lm//g' Makefile + sed -i 's/-lpthread//g' Makefile + sed -i 's/ln -f/ln -sf/g' Makefile +} + +BUILD() +{ + make +} + +INSTALL() +{ + mkdir -p $binDir + cp -af pigz unpigz $binDir + mkdir -p $manDir/man1 + cp -af pigz.1 $manDir/man1 +} + +TEST() +{ + make test +} diff --git a/app-arch/sharutils/patches/sharutils-4.14.patchset b/app-arch/sharutils/patches/sharutils-4.14.patchset new file mode 100644 index 000000000..7a2ab8b03 --- /dev/null +++ b/app-arch/sharutils/patches/sharutils-4.14.patchset @@ -0,0 +1,55 @@ +From ddc3088b56acff9a92dd611bc35989cbea8ba580 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Sun, 24 Nov 2013 19:58:36 -0700 +Subject: Include config.h before other headers + + +diff --git a/src/scribble.c b/src/scribble.c +index 57fa9d0..26e820b 100644 +--- a/src/scribble.c ++++ b/src/scribble.c +@@ -1,4 +1,5 @@ + ++#include "config.h" + #include + #include + #include "scribble.h" +-- +1.8.3.4 + + +From a9cb54731100e3d642a38721d655340d7ba47778 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Mon, 14 Apr 2014 18:36:36 +0000 +Subject: gcc2 fix + + +diff --git a/configure b/configure +index 98d81a5..b7af1ec 100755 +--- a/configure ++++ b/configure +@@ -17612,6 +17612,8 @@ if ac_fn_c_try_compile "$LINENO"; then : + else + ac_cv_header_stdbool_h=no + fi ++ac_cv_header_stdbool_h=yes ++ + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 +diff --git a/src/uuencode.c b/src/uuencode.c +index 370726e..bbf259d 100644 +--- a/src/uuencode.c ++++ b/src/uuencode.c +@@ -249,7 +249,7 @@ process_opts (int argc, char ** argv, int * mode) + if (HAVE_OPT(ENCODE_FILE_NAME)) + { + size_t nmlen = strlen (output_name); +- size_t bfsz = nmlen + (nmlen / 3) + 4;; ++ size_t bfsz = nmlen + (nmlen / 3) + 4; + char * p = malloc (bfsz); + if (p == NULL) + fserr (UUENCODE_EXIT_FAILURE, "malloc", _("file name")); +-- +1.8.3.4 + diff --git a/app-arch/sharutils/sharutils-4.10.recipe b/app-arch/sharutils/sharutils-4.10.recipe deleted file mode 100644 index c81ae0831..000000000 --- a/app-arch/sharutils/sharutils-4.10.recipe +++ /dev/null @@ -1,27 +0,0 @@ -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" -STATUS_HAIKU="stable" -DEPEND="" -MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." -BUILD() -{ - cd sharutils-4.10 - COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` - ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --infodir=$COMMON_DOCS/info \ - --mandir=$COMMON_DOCS/man \ - --disable-nls - make -} - -INSTALL() -{ - cd sharutils-4.10 - make install -} - -LICENSE="GNU GPL v3" -COPYRIGHT="1990-2010 Free Software Foundation, Inc." diff --git a/app-arch/sharutils/sharutils-4.14.recipe b/app-arch/sharutils/sharutils-4.14.recipe new file mode 100644 index 000000000..62e5a4d99 --- /dev/null +++ b/app-arch/sharutils/sharutils-4.14.recipe @@ -0,0 +1,64 @@ +SUMMARY="sharutils" +DESCRIPTION=" +GNU shar makes so-called shell archives out of many files, preparing them for \ +transmission by electronic mail services. A shell archive is a collection of \ +files that can be unpacked by /bin/sh. A wide range of features provide \ +extensive flexibility in manufacturing shars and in specifying shar smartness. \ +For example, shar may compress files, uuencode binary files, split long files \ +and construct multi-part mailings, ensure correct unsharing order, and provide \ +simplistic checksums. +GNU unshar scans a set of mail messages looking for the start of shell \ +archives. It will automatically strip off the mail headers and other \ +introductory text. The archive bodies are then unpacked by a copy of the \ +shell. unshar may also process files containing concatenated shell archives. +" +HOMEPAGE="http://www.gnu.org/software/sharutils/" +LICENSE="GNU GPL v3" +COPYRIGHT="1990-2013 Free Software Foundation, Inc." +SRC_URI="http://ftp.gnu.org/gnu/sharutils/sharutils-4.14.tar.gz" +CHECKSUM_SHA256="90f5107c167cfd1b299bb211828d2586471087863dbed698f53109cd5f717208" +REVISION="1" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + sharutils$secondaryArchSuffix = $portVersion + cmd:shar$secondaryArchSuffix = $portVersion + cmd:unshar$secondaryArchSuffix = $portVersion + cmd:uudecode$secondaryArchSuffix = $portVersion + cmd:uuencode$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:awk + cmd:make + cmd:which + cmd:bison + cmd:makeinfo + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + " + +PATCHES="sharutils-4.14.patchset" + +BUILD() +{ + runConfigure ./configure \ + --disable-nls + make +} + +INSTALL() +{ + make install + rm -rf $libDir +} diff --git a/app-arch/sharutils/sharutils-4.6.3.recipe b/app-arch/sharutils/sharutils-4.6.3.recipe deleted file mode 100644 index 9adb9d2ee..000000000 --- a/app-arch/sharutils/sharutils-4.6.3.recipe +++ /dev/null @@ -1,19 +0,0 @@ -DESCRIPTION="sharutils" -HOMEPAGE="http://www.gnu.org/software/sharutils/" -SRC_URI="ftp://ftp.gnu.org/gnu/sharutils/REL-4.6.3/sharutils-4.6.3.tar.gz" -CHECKSUM_MD5="74127a560e59be6dfa8b59993eb0ca91" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd sharutils-4.6.3 - ./configure --prefix=/boot/home/common - make -} - -INSTALL() -{ - cd sharutils-4.6.3 - make install -} diff --git a/app-arch/tar/patches/tar-1.27.1.patchset b/app-arch/tar/patches/tar-1.27.1.patchset new file mode 100644 index 000000000..0af126885 --- /dev/null +++ b/app-arch/tar/patches/tar-1.27.1.patchset @@ -0,0 +1,147 @@ +From 25395e3fa0b01a898b6e6ae456c8eef3c66849f1 Mon Sep 17 00:00:00 2001 +From: Jonathan Schleifer +Date: Thu, 20 Mar 2014 14:52:58 +0100 +Subject: Patches from tar-1.26 + + +diff --git a/src/common.h b/src/common.h +index 42fd539..633ca19 100644 +--- a/src/common.h ++++ b/src/common.h +@@ -192,6 +192,8 @@ GLOBAL enum old_files old_files_option; + + GLOBAL bool keep_directory_symlink_option; + ++GLOBAL bool simulate_hardlinks_option; ++ + /* Specified file name for incremental list. */ + GLOBAL const char *listed_incremental_option; + /* Incremental dump level */ +diff --git a/src/extract.c b/src/extract.c +index 9b6b7f9..26b027f 100644 +--- a/src/extract.c ++++ b/src/extract.c +@@ -33,6 +33,8 @@ static bool we_are_root; /* true if our effective uid == 0 */ + 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 +@@ -1268,6 +1270,38 @@ extract_link (char *file_name, int typeflag) + 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)) +@@ -1357,6 +1391,13 @@ extract_symlink (char *file_name, int typeflag) + #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 --git a/src/tar.c b/src/tar.c +index 4f5017d..2dd5200 100644 +--- a/src/tar.c ++++ b/src/tar.c +@@ -457,6 +457,8 @@ static struct argp_option options[] = { + {"check-device", CHECK_DEVICE_OPTION, NULL, 0, + N_("check device numbers when creating incremental archives (default)"), + GRID+1 }, ++ {"replace-hardlinks", 'Q', 0, 0, ++ N_("replace hardlinks with corresponding symlink when extracting"), GRID+1 }, + #undef GRID + + #define GRID 30 +@@ -1756,6 +1758,10 @@ parse_opt (int key, char *arg, struct argp_state *state) + set_archive_format (arg); + break; + ++ case 'Q': ++ simulate_hardlinks_option = true; ++ break; ++ + case INDEX_FILE_OPTION: + index_file_name = arg; + break; +@@ -2253,6 +2259,7 @@ decode_options (int argc, char **argv) + unquote_option = true; + tar_sparse_major = 1; + tar_sparse_minor = 0; ++ simulate_hardlinks_option = false; + + owner_option = -1; owner_name_option = NULL; + group_option = -1; group_name_option = NULL; +-- +1.8.3.4 + + +From 6f729d50ba6ca87c6cd33d87462884d90d4504c0 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Fri, 28 Mar 2014 21:44:58 +0100 +Subject: gcc2 build fix. + + +diff --git a/lib/wordsplit.h b/lib/wordsplit.h +index b48e3cd..d286ffb 100644 +--- a/lib/wordsplit.h ++++ b/lib/wordsplit.h +@@ -33,10 +33,8 @@ struct wordsplit + const char *ws_comment; + const char *ws_escape; + void (*ws_alloc_die) (struct wordsplit * wsp); +- void (*ws_error) (const char *, ...) +- __attribute__ ((__format__ (__printf__, 1, 2))); +- void (*ws_debug) (const char *, ...) +- __attribute__ ((__format__ (__printf__, 1, 2))); ++ void (*ws_error) (const char *, ...); ++ void (*ws_debug) (const char *, ...); + + const char **ws_env; + const char *(*ws_getvar) (const char *, size_t, void *); +-- +1.8.3.4 + diff --git a/app-arch/tar/tar-1.26.recipe b/app-arch/tar/tar-1.26.recipe index 4bb2b7dd7..d5b53a11f 100644 --- a/app-arch/tar/tar-1.26.recipe +++ b/app-arch/tar/tar-1.26.recipe @@ -1,21 +1,20 @@ SUMMARY="Saves and restores files to/from a tape or disk archive." DESCRIPTION=" - The Tar program provides the ability to create tar archives, as well as - various other kinds of manipulation. For example, you can use Tar on - previously created archives to extract files, to store additional files, - or to update or list files which were already stored. - - Initially, tar archives were used to store files conveniently on magnetic - tape. The name "Tar" comes from this use; it stands for tape archiver. - Despite the utility's name, Tar can direct its output to available - devices, files, or other programs (using pipes), it can even access remote - devices or files (as archives). - " +The Tar program provides the ability to create tar archives, as well as \ +various other kinds of manipulation. For example, you can use Tar on \ +previously created archives to extract files, to store additional files, or to \ +update or list files which were already stored. +Initially, tar archives were used to store files conveniently on magnetic \ +tape. The name "Tar" comes from this use; it stands for tape archiver. Despite \ +the utility's name, Tar can direct its output to available devices, files, or \ +other programs (using pipes), it can even access remote devices or files (as \ +archives). +" HOMEPAGE="http://www.gnu.org/software/tar/" COPYRIGHT="1990-2011 Free Software Foundation, Inc." LICENSE="GNU GPL v3" SRC_URI="http://ftp.gnu.org/gnu/tar/tar-1.26.tar.bz2" -CHECKSUM_MD5="2cee42a2ff4f1cd4f9298eeeb2264519" +CHECKSUM_SHA256="5a5369f464502a598e938029c310d4b3abd51e6bb8dfd045663e61c8ea9f6d41" REVISION="6" ARCHITECTURES="x86_gcc2 x86 x86_64" @@ -43,7 +42,6 @@ BUILD_PREREQUIRES=" defineDebugInfoPackage tar \ $binDir/tar -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/app-arch/tar/tar-1.27.1.recipe b/app-arch/tar/tar-1.27.1.recipe new file mode 100644 index 000000000..49f1036d3 --- /dev/null +++ b/app-arch/tar/tar-1.27.1.recipe @@ -0,0 +1,61 @@ +SUMMARY="Saves and restores files to/from a tape or disk archive." +DESCRIPTION=" +The Tar program provides the ability to create tar archives, as well as \ +various other kinds of manipulation. For example, you can use Tar on \ +previously created archives to extract files, to store additional files, or to \ +update or list files which were already stored. +Initially, tar archives were used to store files conveniently on magnetic \ +tape. The name \"Tar\" comes from this use; it stands for tape archiver. Despite \ +the utility's name, Tar can direct its output to available devices, files, or \ +other programs (using pipes), it can even access remote devices or files (as \ +archives). +" +HOMEPAGE="http://www.gnu.org/software/tar/" +COPYRIGHT="1990-2011 Free Software Foundation, Inc." +LICENSE="GNU GPL v3" +SRC_URI="http://ftp.gnu.org/gnu/tar/tar-1.27.1.tar.bz2" +CHECKSUM_SHA256="9b0fb3ce8512059337add0da5f8f0f7d7647f2201f5ece24581d620ea60337c6" +REVISION="2" +ARCHITECTURES="x86_gcc2 ?x86 x86_64 arm" + +PATCHES="tar-1.27.1.patchset" + +PROVIDES=" + tar = $portVersion compat >= 1 + cmd:tar = $portVersion compat >= 1 + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:automake + cmd:autoreconf + cmd:gcc + cmd:ld + cmd:make + cmd:sed + " + +defineDebugInfoPackage tar \ + $binDir/tar + + +BUILD() +{ + runConfigure ./configure \ + --disable-nls \ + --disable-gcc-warnings \ + LDFLAGS="-lnetwork" \ + FORCE_UNSAFE_CONFIGURE=1 + make $jobArgs +} + +INSTALL() +{ + make install + + rm $libDir/charset.alias +} diff --git a/app-arch/unrar/patches/unrar-5.0.14.patchset b/app-arch/unrar/patches/unrar-5.0.14.patchset new file mode 100644 index 000000000..ba93fa0e2 --- /dev/null +++ b/app-arch/unrar/patches/unrar-5.0.14.patchset @@ -0,0 +1,95 @@ +From a24228db5eb4450d185904b3a3795bffa28ce5f7 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Mon, 14 Apr 2014 16:24:18 +0000 +Subject: initial haiku patch + + +diff --git a/archive.hpp b/archive.hpp +index 95645ed..377b779 100644 +--- a/archive.hpp ++++ b/archive.hpp +@@ -67,7 +67,6 @@ class Archive:public File + size_t SearchSubBlock(const wchar *Type); + size_t SearchRR(); + void WriteBlock(HEADER_TYPE HeaderType,BaseBlock *wb=NULL,bool OnlySetSize=false,bool NonFinalWrite=false); +- void SetBlockSize(HEADER_TYPE HeaderType,BaseBlock *wb=NULL) {WriteBlock(HeaderType,wb,true);} + size_t ReadHeader(); + void CheckArc(bool EnableBroken); + void CheckOpen(const wchar *Name); +diff --git a/makefile b/makefile +index dfb3efb..bc6419a 100644 +--- a/makefile ++++ b/makefile +@@ -7,8 +7,12 @@ CXXFLAGS=-O2 + LIBFLAGS=-fPIC + DEFINES=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DRAR_SMP + STRIP=strip +-LDFLAGS=-pthread ++LDFLAGS=-lbsd + DESTDIR=/usr ++RC=rc ++XRES=xres ++MIMESET=mimeset ++DESTDIR=(shell finddir B_SYSTEM_DIRECTORY) + + # Linux using LCC + #CXX=lcc +@@ -116,12 +120,14 @@ install: install-unrar + 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) +diff --git a/os.hpp b/os.hpp +index ed76a19..41594be 100644 +--- a/os.hpp ++++ b/os.hpp +@@ -187,6 +187,15 @@ + #endif + #endif + ++#ifdef __HAIKU__ ++ #include ++ #if LITTLE_ENDIAN ++ #undef BIG_ENDIAN ++ #elif BIG_ENDIAN ++ #undef LITTLE_ENDIAN ++ #endif ++#endif ++ + #if defined(__sparc) || defined(sparc) || defined(__hpux) + #ifndef BIG_ENDIAN + #define BIG_ENDIAN +diff --git a/unrar.rdef b/unrar.rdef +new file mode 100644 +index 0000000..79411da +--- /dev/null ++++ b/unrar.rdef +@@ -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 = 5, ++ middle = 0, ++ minor = 4, ++ variety = 0, ++ internal = 0, ++ short_info = "5.0.4", ++ long_info = "5.0.4 Alexander Roshal" ++}; +-- +1.8.3.4 + diff --git a/app-arch/unrar/patches/unrar-5.1.5.patchset b/app-arch/unrar/patches/unrar-5.1.5.patchset new file mode 100644 index 000000000..16e4d7e4e --- /dev/null +++ b/app-arch/unrar/patches/unrar-5.1.5.patchset @@ -0,0 +1,95 @@ +From ebe959af19ad3f72d3119444f9afc0ab15caaa7a Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Mon, 12 May 2014 18:07:44 +0000 +Subject: initial Haiku patch + + +diff --git a/archive.hpp b/archive.hpp +index 1d8444b..252b850 100644 +--- a/archive.hpp ++++ b/archive.hpp +@@ -67,7 +67,6 @@ class Archive:public File + size_t SearchSubBlock(const wchar *Type); + size_t SearchRR(); + void WriteBlock(HEADER_TYPE HeaderType,BaseBlock *wb=NULL,bool OnlySetSize=false,bool NonFinalWrite=false); +- void SetBlockSize(HEADER_TYPE HeaderType,BaseBlock *wb=NULL) {WriteBlock(HeaderType,wb,true);} + size_t ReadHeader(); + void CheckArc(bool EnableBroken); + void CheckOpen(const wchar *Name); +diff --git a/makefile b/makefile +index 3c38027..5d69089 100644 +--- a/makefile ++++ b/makefile +@@ -7,8 +7,12 @@ CXXFLAGS=-O2 + LIBFLAGS=-fPIC + DEFINES=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DRAR_SMP + STRIP=strip +-LDFLAGS=-pthread ++LDFLAGS=-lbsd + DESTDIR=/usr ++RC=rc ++XRES=xres ++MIMESET=mimeset ++DESTDIR=(shell finddir B_SYSTEM_DIRECTORY) + + # Linux using LCC + #CXX=lcc +@@ -116,12 +120,14 @@ install: install-unrar + 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) +diff --git a/os.hpp b/os.hpp +index 95fa5d6..2ae36ba 100644 +--- a/os.hpp ++++ b/os.hpp +@@ -189,6 +189,15 @@ + #endif + #endif + ++#ifdef __HAIKU__ ++ #include ++ #if LITTLE_ENDIAN ++ #undef BIG_ENDIAN ++ #elif BIG_ENDIAN ++ #undef LITTLE_ENDIAN ++ #endif ++#endif ++ + #if defined(__sparc) || defined(sparc) || defined(__hpux) + #ifndef BIG_ENDIAN + #define BIG_ENDIAN +diff --git a/unrar.rdef b/unrar.rdef +new file mode 100644 +index 0000000..28bb5e2 +--- /dev/null ++++ b/unrar.rdef +@@ -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 = 5, ++ middle = 1, ++ minor = 5, ++ variety = 0, ++ internal = 0, ++ short_info = "5.1.5", ++ long_info = "5.1.5 Alexander Roshal" ++}; +-- +1.8.3.4 + diff --git a/app-arch/unrar/unrar-4.2.4.recipe b/app-arch/unrar/unrar-4.2.4.recipe index 661ff0454..804eabbab 100644 --- a/app-arch/unrar/unrar-4.2.4.recipe +++ b/app-arch/unrar/unrar-4.2.4.recipe @@ -1,9 +1,29 @@ SUMMARY="Uncompress rar files" +DESCRIPTION=" +Unrar decompresses rar files. It is a powerful archive manager that can backup \ +your data and reduce the size of email attachments. Unrar can decompress the \ +following file formats: +- RAR +- ZIP +- CAB +- ARJ +- JZH +- TAR +- GZ and TAR.GZ +- BZ2 and TAR.BZ2 +- ACE +- UUE +- JAR (Java Archive) +- ISO +- 7Z +- XZ +- Z (Unix Compress) +" HOMEPAGE="http://www.rarlab.com/" SRC_URI="http://www.rarlab.com/rar/unrarsrc-4.2.4.tar.gz" +CHECKSUM_SHA256="9432bf798e5f7123f3060f37b75b7c07f36f0091305f46473dcae9154f8cd686" REVISION="1" ARCHITECTURES="x86_gcc2 x86" -CHECKSUM_MD5="8ea9d1b4139474b282d76e627a2de3e4" PROVIDES=" unrar = $portVersion @@ -31,4 +51,3 @@ INSTALL() LICENSE="UnRAR" COPYRIGHT="Alexander Roshal" -DESCRIPTION="Uncompress rar files" diff --git a/app-arch/unrar/unrar-5.0.14.recipe b/app-arch/unrar/unrar-5.0.14.recipe new file mode 100644 index 000000000..0b5d2ea72 --- /dev/null +++ b/app-arch/unrar/unrar-5.0.14.recipe @@ -0,0 +1,56 @@ +SUMMARY="Uncompress rar files" +DESCRIPTION=" +Unrar decompresses rar files. It is a powerful archive manager that can backup \ +your data and reduce the size of email attachments. Unrar can decompress the \ +following file formats: +- RAR +- ZIP +- CAB +- ARJ +- JZH +- TAR +- GZ and TAR.GZ +- BZ2 and TAR.BZ2 +- ACE +- UUE +- JAR (Java Archive) +- ISO +- 7Z +- XZ +- Z (Unix Compress) +" +HOMEPAGE="http://www.rarlab.com/" +SRC_URI="http://www.rarlab.com/rar/unrarsrc-$portVersion.tar.gz" +CHECKSUM_SHA256="e276ea30a2dc9b8961a4268772e5b6caccaa984664e2d5255a43fcb0f5d59806" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" + +PATCHES="unrar-5.0.14.patchset" + +PROVIDES=" + unrar = $portVersion + cmd:unrar = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + cmd:make + cmd:g++ + " + +SOURCE_DIR="unrar" +BUILD() +{ + make DESTDIR=$prefix +} + +INSTALL() +{ + make DESTDIR=$prefix install +} + +LICENSE="UnRAR" +COPYRIGHT="Alexander Roshal" diff --git a/app-arch/unrar/unrar-5.1.5.recipe b/app-arch/unrar/unrar-5.1.5.recipe new file mode 100644 index 000000000..09777cfb2 --- /dev/null +++ b/app-arch/unrar/unrar-5.1.5.recipe @@ -0,0 +1,56 @@ +SUMMARY="Uncompress rar files" +DESCRIPTION=" +Unrar decompresses rar files. It is a powerful archive manager that can backup \ +your data and reduce the size of email attachments. Unrar can decompress the \ +following file formats: +- RAR +- ZIP +- CAB +- ARJ +- JZH +- TAR +- GZ and TAR.GZ +- BZ2 and TAR.BZ2 +- ACE +- UUE +- JAR (Java Archive) +- ISO +- 7Z +- XZ +- Z (Unix Compress) +" +HOMEPAGE="http://www.rarlab.com/" +SRC_URI="http://www.rarlab.com/rar/unrarsrc-$portVersion.tar.gz" +CHECKSUM_SHA256="2224ced8288553392abe94e410e29d2570bfdfea22af51125d3984548a5034cb" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" + +PATCHES="unrar-$portVersion.patchset" + +PROVIDES=" + unrar = $portVersion + cmd:unrar = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + cmd:make + cmd:g++ + " + +SOURCE_DIR="unrar" +BUILD() +{ + make DESTDIR=$prefix +} + +INSTALL() +{ + make DESTDIR=$prefix install +} + +LICENSE="UnRAR" +COPYRIGHT="Alexander Roshal" diff --git a/app-arch/unzip/unzip-6.0.recipe b/app-arch/unzip/unzip-6.0.recipe index b2cd86962..90d29b697 100644 --- a/app-arch/unzip/unzip-6.0.recipe +++ b/app-arch/unzip/unzip-6.0.recipe @@ -1,5 +1,10 @@ -DESCRIPTION="unzip" -HOMEPAGE="http://www.info-zip.org/UnZip.html" +SUMMARY="Extraction utility for zip archives." +DESCRIPTION=" +UnZip is an extraction utility for archives compressed in \ +.zip format (zipfiles). UnZip can list or extract files from an archive \ +or test its integrity. +" +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" diff --git a/app-arch/xar/patches/xar-1.5.2.patch b/app-arch/xar/patches/xar-1.5.2.patch deleted file mode 100644 index 31d503ffb..000000000 --- a/app-arch/xar/patches/xar-1.5.2.patch +++ /dev/null @@ -1,24 +0,0 @@ -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/patches/xar-1.5.2.patchset b/app-arch/xar/patches/xar-1.5.2.patchset new file mode 100644 index 000000000..6445ad04f --- /dev/null +++ b/app-arch/xar/patches/xar-1.5.2.patchset @@ -0,0 +1,88 @@ +From f1df8eee79076b29537b7d8a4b909c2c87299225 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Sun, 24 Nov 2013 20:15:58 -0700 +Subject: applying patch xar-1.5.2.patch + + +diff --git a/lib/darwinattr.c b/lib/darwinattr.c +index d3bf136..94206d7 100644 +--- a/lib/darwinattr.c ++++ b/lib/darwinattr.c +@@ -40,7 +40,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include "xar.h" +diff --git a/lib/stat.c b/lib/stat.c +index dddb1d4..41634bc 100644 +--- a/lib/stat.c ++++ b/lib/stat.c +@@ -53,7 +53,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +-- +1.8.3.4 + + +From adddad2e4b7bd548ba8a84a4bd44ed8fe298deef Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Sun, 24 Nov 2013 20:46:25 -0700 +Subject: Search for xattr support on Haiku + + +diff --git a/configure.ac b/configure.ac +index 5c905fa..f3e0d5a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -184,6 +184,7 @@ AC_SUBST([enable_autogen]) + AC_TRY_COMPILE([#include + #include ], [acl_t a], [AC_DEFINE([HAVE_SYS_ACL_H],[1], [define if you have sys/acl.h and it has a working acl_t type])]) + AC_CHECK_HEADERS(ext2fs/ext2_fs.h sys/statfs.h sys/xattr.h sys/param.h sys/extattr.h libutil.h) ++AC_SEARCH_LIBS(getxattr, gnu) + AC_CHECK_FUNCS(lgetxattr) + AC_CHECK_FUNCS(lsetxattr) + AC_CHECK_FUNCS(getxattr) +@@ -197,6 +198,8 @@ AC_CHECK_FUNCS(statvfs) + AC_CHECK_FUNCS(statfs) + AC_CHECK_FUNCS(strmode) + ++AC_SEARCH_LIBS(strsep, bsd) ++ + AC_CHECK_MEMBERS([struct statfs.f_fstypename],,,[#include + #include + #include ]) +diff --git a/lib/linuxattr.c b/lib/linuxattr.c +index 29d8147..fd4f8e7 100644 +--- a/lib/linuxattr.c ++++ b/lib/linuxattr.c +@@ -135,7 +135,7 @@ int32_t xar_linuxattr_write(xar_t x, xar_file_t f, void *buf, size_t len, void * + + int32_t xar_linuxattr_archive(xar_t x, xar_file_t f, const char* file, const char *buffer, size_t len) + { +-#if defined(HAVE_SYS_XATTR_H) && defined(HAVE_LGETXATTR) && !defined(__APPLE__) ++#if defined(HAVE_SYS_XATTR_H) && defined(HAVE_LGETXATTR) && !defined(__APPLE__) && !defined(__HAIKU__) + char *i, *buf = NULL; + int ret, retval=0, bufsz = 1024; + struct statfs sfs; +@@ -200,7 +200,7 @@ BAIL: + + int32_t xar_linuxattr_extract(xar_t x, xar_file_t f, const char* file, char *buffer, size_t len) + { +-#if defined HAVE_SYS_XATTR_H && defined(HAVE_LSETXATTR) && !defined(__APPLE__) ++#if defined HAVE_SYS_XATTR_H && defined(HAVE_LSETXATTR) && !defined(__APPLE__) && !defined(__HAIKU__) + const char *fsname = "bogus"; + struct statfs sfs; + int eaopt = 0; +-- +1.8.3.4 + diff --git a/app-arch/xar/xar-1.5.2.recipe b/app-arch/xar/xar-1.5.2.recipe index 2835e1565..5e53622bf 100644 --- a/app-arch/xar/xar-1.5.2.recipe +++ b/app-arch/xar/xar-1.5.2.recipe @@ -1,27 +1,86 @@ -DESCRIPTION="Easily extensible archiver" +SUMMARY="Easily extensible archiver" +DESCRIPTION=" +The XAR project aims to provide an easily extensible archive format. Important \ +design decisions include an easily extensible XML table of contents for random \ +access to archived files, storing the toc at the beginning of the archive to \ +allow for efficient handling of streamed archives, the ability to handle files \ +of arbitrarily large sizes, the ability to choose independent encodings for \ +individual files in the archive, the ability to store checksums for individual \ +files in both compressed and uncompressed form, and the ability to query the \ +table of content's rich meta-data. +" +LICENSE="BSD (3-clause)" +COPYRIGHT="2005 Rob Braun" 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="" +CHECKSUM_SHA256="4c5d5682803cdfab16d72365cf51fc4075d597c5eeaa8c7d1990fea98cdae3e6" +REVISION="2" +ARCHITECTURES="x86" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + xar$secondaryArchSuffix = $portVersion compat = 1.5.2 + cmd:xar$secondaryArchSuffix = $portVersion compat = 1.5.2 + lib:libxar$secondaryArchSuffix = $portVersion compat = 1.5.2 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libxml2$secondaryArchSuffix + lib:libcrypto$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libbz2$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libxml2$secondaryArchSuffix + devel:libcrypto$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:libbz2$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + cmd:libtoolize + cmd:aclocal + cmd:autoconf + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + " + +PROVIDES_devel=" + devel:libxar$secondaryArchSuffix = $portVersion compat = 1.5.2 + " + +REQUIRES_devel=" + xar$secondaryArchSuffix == $portVersion + " + +PATCHES="xar-1.5.2.patchset" BUILD() { - cd xar-1.5.2 libtoolize --force --copy --install aclocal autoconf - ./configure --prefix=`finddir B_COMMON_DIRECTORY` + runConfigure ./configure make } INSTALL() { - cd xar-1.5.2 make install -} -LICENSE="BSD (3-clause)" -COPYRIGHT="2005 Rob Braun" + prepareInstalledDevelLibs libxar + + packageEntries devel \ + $developDir +} diff --git a/app-arch/xz_utils/xz_utils-5.0.1.recipe b/app-arch/xz_utils/xz_utils-5.0.1.recipe index 2985e36de..63464e50b 100644 --- a/app-arch/xz_utils/xz_utils-5.0.1.recipe +++ b/app-arch/xz_utils/xz_utils-5.0.1.recipe @@ -1,7 +1,7 @@ SUMMARY="Free general-purpose data compression software" HOMEPAGE="http://tukaani.org/xz/" SRC_URI="http://tukaani.org/xz/xz-5.0.1.tar.bz2" -CHECKSUM_MD5="cb6c7a58cec4d663a395c54d186ca0c6" +CHECKSUM_SHA256="9b380f502d37085a60821484a3a13747454638927cc36033be64970512451ed8" LICENSE=" GNU LGPL v2.1 GNU GPL v2 diff --git a/app-arch/xz_utils/xz_utils-5.0.4.recipe b/app-arch/xz_utils/xz_utils-5.0.4.recipe index 182e5ca37..2f79b39fd 100644 --- a/app-arch/xz_utils/xz_utils-5.0.4.recipe +++ b/app-arch/xz_utils/xz_utils-5.0.4.recipe @@ -1,14 +1,14 @@ SUMMARY="Free general-purpose data compression software" HOMEPAGE="http://tukaani.org/xz/" SRC_URI="http://tukaani.org/xz/xz-5.0.4.tar.bz2" -CHECKSUM_MD5="741cd3a5f64b23b7bac56ec5b2258715" +CHECKSUM_SHA256="5cd9b060d3a1ad396b3be52c9b9311046a1c369e6062aea752658c435629ce92" LICENSE=" GNU LGPL v2.1 GNU GPL v2 GNU GPL v3 " COPYRIGHT="2005-2012 Lasse Collin" -REVISION="2" +REVISION="3" ARCHITECTURES="x86 x86_64" if [ $effectiveTargetArchitecture != x86_gcc2 ]; then # x86_gcc2 is fine as primary target architecture as long as we're building @@ -88,6 +88,7 @@ INSTALL() cp "$portDir/additional-files/xz_utils-expander-rules" \ "$expanderRulesDir/xz_utils" + fixPkgconfig liblzma prepareInstalledDevelLibs liblzma } @@ -96,16 +97,24 @@ TEST() make check } -DESCRIPTION="XZ Utils is free general-purpose data compression software with high compression ratio. XZ Utils were written for POSIX-like systems, but also work on some not-so-POSIX systems. XZ Utils are the successor to LZMA Utils. - -The core of the XZ Utils compression code is based on LZMA SDK, but it has been modified quite a lot to be suitable for XZ Utils. The primary compression algorithm is currently LZMA2, which is used inside the .xz container format. With typical files, XZ Utils create 30 % smaller output than gzip and 15 % smaller output than bzip2. - +DESCRIPTION=" +XZ Utils is free general-purpose data compression software with high \ +compression ratio. XZ Utils were written for POSIX-like systems, but also work \ +on some not-so-POSIX systems. XZ Utils are the successor to LZMA Utils. +The core of the XZ Utils compression code is based on LZMA SDK, but it has \ +been modified quite a lot to be suitable for XZ Utils. The primary compression \ +algorithm is currently LZMA2, which is used inside the .xz container format. \ +With typical files, XZ Utils create 30 % smaller output than gzip and 15 % \ +smaller output than bzip2. XZ Utils consist of several components: - - * liblzma is a compression library with API similar to that of zlib. - * xz is a command line tool with syntax similar to that of gzip. - * xzdec is a decompression-only tool smaller than the full-featured xz tool. - * A set of shell scripts (xzgrep, xzdiff, etc.) have been adapted from gzip to ease viewing, grepping, and comparing compressed files. - * Emulation of command line tools of LZMA Utils eases transition from LZMA Utils to XZ Utils. - -While liblzma has a zlib-like API, liblzma doesn't include any file I/O functions. A separate I/O library is planned, which would abstract handling of .gz, .bz2, and .xz files with an easy to use API." +* liblzma is a compression library with API similar to that of zlib. +* xz is a command line tool with syntax similar to that of gzip. +* xzdec is a decompression-only tool smaller than the full-featured xz tool. +* A set of shell scripts (xzgrep, xzdiff, etc.) have been adapted from gzip to \ +ease viewing, grepping, and comparing compressed files. +* Emulation of command line tools of LZMA Utils eases transition from LZMA \ +Utils to XZ Utils. +While liblzma has a zlib-like API, liblzma doesn't include any file I/O \ +functions. A separate I/O library is planned, which would abstract handling of \ +.gz, .bz2, and .xz files with an easy to use API. +" diff --git a/app-arch/xz_utils/xz_utils-5.0.5.recipe b/app-arch/xz_utils/xz_utils-5.0.5.recipe new file mode 100644 index 000000000..1ca81ce47 --- /dev/null +++ b/app-arch/xz_utils/xz_utils-5.0.5.recipe @@ -0,0 +1,120 @@ +SUMMARY="Free general-purpose data compression software" +HOMEPAGE="http://tukaani.org/xz/" +SRC_URI="http://tukaani.org/xz/xz-5.0.5.tar.bz2" +CHECKSUM_SHA256="166c48d2842519bc4f96333bff9e265f8cdda44d38e40594ef3f9bbb52890490" +LICENSE=" + GNU LGPL v2.1 + GNU GPL v2 + GNU GPL v3 + " +COPYRIGHT="2005-2013 Lasse Collin" +REVISION="1" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES ?x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +ADDITIONAL_FILES="xz_utils-expander-rules" + +# On x86_gcc2 we don't want to install the commands in bin//, but in bin/. +commandSuffix=$secondaryArchSuffix +commandBinDir=$binDir +if [ "$targetArchitecture" = x86_gcc2 ]; then + commandSuffix= + commandBinDir=$prefix/bin +fi + +PROVIDES=" + xz_utils$secondaryArchSuffix = $portVersion compat >= 5 + cmd:lzcat$commandSuffix = $portVersion compat >= 5 + cmd:lzcmp$commandSuffix = $portVersion compat >= 5 + cmd:lzdiff$commandSuffix = $portVersion compat >= 5 + cmd:lzegrep$commandSuffix = $portVersion compat >= 5 + cmd:lzfgrep$commandSuffix = $portVersion compat >= 5 + cmd:lzgrep$commandSuffix = $portVersion compat >= 5 + cmd:lzless$commandSuffix = $portVersion compat >= 5 + cmd:lzma$commandSuffix = $portVersion compat >= 5 + cmd:lzmadec$commandSuffix = $portVersion compat >= 5 + cmd:lzmainfo$commandSuffix = $portVersion compat >= 5 + cmd:lzmore$commandSuffix = $portVersion compat >= 5 + cmd:unlzma$commandSuffix = $portVersion compat >= 5 + cmd:unxz$commandSuffix = $portVersion compat >= 5 + cmd:xz$commandSuffix = $portVersion compat >= 5 + cmd:xzcat$commandSuffix = $portVersion compat >= 5 + cmd:xzcmp$commandSuffix = $portVersion compat >= 5 + cmd:xzdec$commandSuffix = $portVersion compat >= 5 + cmd:xzdiff$commandSuffix = $portVersion compat >= 5 + cmd:xzegrep$commandSuffix = $portVersion compat >= 5 + cmd:xzfgrep$commandSuffix = $portVersion compat >= 5 + cmd:xzgrep$commandSuffix = $portVersion compat >= 5 + cmd:xzless$commandSuffix = $portVersion compat >= 5 + cmd:xzmore$commandSuffix = $portVersion compat >= 5 + lib:liblzma$secondaryArchSuffix = $portVersion compat >= 5 + devel:liblzma$secondaryArchSuffix = $portVersion compat >= 5 + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:make + " + +SOURCE_DIR="xz-$portVersion" + +BUILD() +{ + touch po/t-cs.gmo + runConfigure --omit-dirs binDir ./configure --bindir=$commandBinDir + make $jobArgs +} + +INSTALL() +{ + make install + + expanderRulesDir=$dataDir/expander/rules + mkdir -p $expanderRulesDir + cp "$portDir/additional-files/xz_utils-expander-rules" \ + "$expanderRulesDir/xz_utils" + + fixPkgconfig liblzma + prepareInstalledDevelLibs liblzma +} + +TEST() +{ + make check +} + +DESCRIPTION=" +XZ Utils is free general-purpose data compression software with high \ +compression ratio. XZ Utils were written for POSIX-like systems, but also work \ +on some not-so-POSIX systems. XZ Utils are the successor to LZMA Utils. +The core of the XZ Utils compression code is based on LZMA SDK, but it has \ +been modified quite a lot to be suitable for XZ Utils. The primary compression \ +algorithm is currently LZMA2, which is used inside the .xz container format. \ +With typical files, XZ Utils create 30 % smaller output than gzip and 15 % \ +smaller output than bzip2. +XZ Utils consist of several components: +* liblzma is a compression library with API similar to that of zlib. +* xz is a command line tool with syntax similar to that of gzip. +* xzdec is a decompression-only tool smaller than the full-featured xz tool. +* A set of shell scripts (xzgrep, xzdiff, etc.) have been adapted from gzip to \ +ease viewing, grepping, and comparing compressed files. +* Emulation of command line tools of LZMA Utils eases transition from LZMA \ +Utils to XZ Utils. +While liblzma has a zlib-like API, liblzma doesn't include any file I/O \ +functions. A separate I/O library is planned, which would abstract handling of \ +.gz, .bz2, and .xz files with an easy to use API. +" diff --git a/app-arch/zip/patches/zip-3.0.patch b/app-arch/zip/patches/zip-3.0.patch deleted file mode 100644 index b3c73159c..000000000 --- a/app-arch/zip/patches/zip-3.0.patch +++ /dev/null @@ -1,122 +0,0 @@ -diff -Naur zip30-original/beos/beos.c zip30/beos/beos.c ---- zip30-original/beos/beos.c 2009-04-12 17:23:24.000000000 +0000 -+++ zip30/beos/beos.c 2009-04-12 15:11:50.000000000 +0000 -@@ -31,8 +31,12 @@ - - #include - #include -+#ifdef __BEOS__ - #include -- -+#endif -+#ifdef __HAIKU__ -+#include -+#endif - - #define PAD 0 - #define PATH_END '/' -diff -Naur zip30-original/tailor.h zip30/tailor.h ---- zip30-original/tailor.h 2009-04-12 17:23:24.000000000 +0000 -+++ zip30/tailor.h 2009-04-12 15:15:56.000000000 +0000 -@@ -52,7 +52,7 @@ - #include "atheos/osdep.h" - #endif - --#ifdef __BEOS__ -+#if (defined(__BEOS__) || defined(__HAIKU__)) - #include "beos/osdep.h" - #endif - -@@ -835,7 +835,7 @@ - #ifdef MVS - # define OS_CODE 0xf00 - #endif --#ifdef __BEOS__ -+#if (defined(__BEOS__) || defined(__HAIKU__)) - # define OS_CODE 0x1000 - #endif - #ifdef TANDEM -diff -Naur zip30-original/ttyio.c zip30/ttyio.c ---- zip30-original/ttyio.c 2009-04-12 17:23:25.000000000 +0000 -+++ zip30/ttyio.c 2009-04-12 14:05:26.000000000 +0000 -@@ -52,7 +52,7 @@ - # define GLOBAL(g) G.g - #endif - --#if (defined(__ATHEOS__) || defined(__BEOS__)) /* why yes, we do */ -+#if (defined(__ATHEOS__) || defined(__BEOS__) || defined(__HAIKU__)) /* why yes, we do */ - # define HAVE_TERMIOS_H - #endif - -diff -Naur zip30-original/ttyio.h zip30/ttyio.h ---- zip30-original/ttyio.h 2009-04-12 17:23:25.000000000 +0000 -+++ zip30/ttyio.h 2009-04-12 14:06:12.000000000 +0000 -@@ -60,7 +60,7 @@ - # endif - #endif - --#if (defined(__ATHEOS__) || defined(__BEOS__) || defined(UNIX)) -+#if (defined(__ATHEOS__) || defined(__BEOS__) || defined(__HAIKU__) || defined(UNIX)) - # ifndef ATH_BEO_UNX - # define ATH_BEO_UNX - # endif -diff -Naur zip30-original/zip.c zip30/zip.c ---- zip30-original/zip.c 2009-04-12 17:23:25.000000000 +0000 -+++ zip30/zip.c 2009-04-12 14:06:31.000000000 +0000 -@@ -1845,7 +1845,7 @@ - int set_filetype(out_path) - char *out_path; - { --#ifdef __BEOS__ -+#if (defined(__BEOS__) || defined(__HAIKU__)) - /* Set the filetype of the zipfile to "application/zip" */ - setfiletype( out_path, "application/zip" ); - #endif -diff -Naur zip30-original/zipcloak.c zip30/zipcloak.c ---- zip30-original/zipcloak.c 2009-04-12 17:23:25.000000000 +0000 -+++ zip30/zipcloak.c 2009-04-12 14:06:59.000000000 +0000 -@@ -54,7 +54,7 @@ - int set_filetype(out_path) - char *out_path; - { --#ifdef __BEOS__ -+#if (defined(__BEOS__) || defined(__HAIKU__)) - /* Set the filetype of the zipfile to "application/zip" */ - setfiletype( out_path, "application/zip" ); - #endif -diff -Naur zip30-original/zipnote.c zip30/zipnote.c ---- zip30-original/zipnote.c 2009-04-12 17:23:25.000000000 +0000 -+++ zip30/zipnote.c 2009-04-12 14:07:19.000000000 +0000 -@@ -72,7 +72,7 @@ - int set_filetype(out_path) - char *out_path; - { --#ifdef __BEOS__ -+#if (defined(__BEOS__) || defined(__HAIKU__)) - /* Set the filetype of the zipfile to "application/zip" */ - setfiletype( out_path, "application/zip" ); - #endif -diff -Naur zip30-original/zipsplit.c zip30/zipsplit.c ---- zip30-original/zipsplit.c 2009-04-12 17:23:25.000000000 +0000 -+++ zip30/zipsplit.c 2009-04-12 14:07:37.000000000 +0000 -@@ -96,7 +96,7 @@ - int set_filetype(out_path) - char *out_path; - { --#ifdef __BEOS__ -+#if (defined(__BEOS__) || defined(__HAIKU__)) - /* Set the filetype of the zipfile to "application/zip" */ - setfiletype( out_path, "application/zip" ); - #endif -diff -Naur zip30-original/zipup.c zip30/zipup.c ---- zip30-original/zipup.c 2009-04-12 17:23:25.000000000 +0000 -+++ zip30/zipup.c 2009-04-12 14:07:58.000000000 +0000 -@@ -68,7 +68,7 @@ - # include "atari/zipup.h" - #endif - --#ifdef __BEOS__ -+#if (defined(__BEOS__) || defined(__HAIKU__)) - # include "beos/zipup.h" - #endif - diff --git a/app-arch/zip/patches/zip-3.0.patchset b/app-arch/zip/patches/zip-3.0.patchset new file mode 100644 index 000000000..f860bb961 --- /dev/null +++ b/app-arch/zip/patches/zip-3.0.patchset @@ -0,0 +1,436 @@ +From 6041b90bd0edc53e7596d2e18119cde24987b314 Mon Sep 17 00:00:00 2001 +From: Kacper Kasper +Date: Thu, 3 Apr 2014 20:58:47 +0000 +Subject: Haiku support + + +diff --git a/beos/Makefile b/beos/Makefile +index 1b9e613..d66e6e3 100644 +--- a/beos/Makefile ++++ b/beos/Makefile +@@ -22,16 +22,30 @@ BIND = $(CC) + AS = $(CC) -c + CPP = $(CC) -E + +-INSTALL = install ++# probably can change this to 'install' if you have it ++INSTALL_PROGRAM = cp ++# probably can change this to 'install -d' if you have it ++# XXX NextStep 3.3 and Openstep 4.x don't know about -p ! ++INSTALL_D = mkdir -p ++CHMOD = chmod ++BINFLAGS = 755 ++MANFLAGS = 644 + + # Target directories +-prefix = /boot/home/config +-BINDIR = $(prefix)/bin +-manext = 1 +-MANDIR = $(prefix)/man/man$(manext) ++PREFIX = `finddir B_COMMON_DIRECTORY` ++BINDIR = $(PREFIX)/bin ++MANEXT = 1 ++MANDIR = $(PREFIX)/documentation/man ++MANDIRF = $(MANDIR)/man$(MANEXT) ++INCLUDEDIR = `finddir B_SYSTEM_DEVELOP_DIRECTORY`/headers ++LIBDIR = `finddir B_SYSTEM_LIB_DIRECTORY` + ZIPMANUAL = MANUAL +- +-VERSION = Version 2.3 of __DATE__ ++ZIPMANUALcloak = zipcloak.txt ++ZIPMANUALnote = zipnote.txt ++ZIPMANUALsplit = zipsplit.txt ++ZIPMANUALs = zip.txt zipcloak.txt zipnote.txt zipsplit.txt ++PKGDIR = IZzip ++VERSION = Version 3.0 + + ###################################################################### + # Things that change: +@@ -65,14 +79,14 @@ CC:=gcc + + # Removed -Wconversion and -Wshadow because of the unnecessary warnings + # they generate. - Sept. 28, 1999 +-CFLAGS:=-O3 -mpentiumpro \ ++CFLAGS:=-O3 \ + -Wall -Wno-multichar -Wno-ctor-dtor-privacy \ + -Wbad-function-cast -Woverloaded-virtual \ +- -I. -I/boot/develop/headers/be/support \ +- -I/boot/develop/headers/be/storage \ ++ -I. -I$(INCLUDEDIR)/be/support \ ++ -I$(INCLUDEDIR)/be/storage \ + -DHAVE_DIRENT_H -DPASSWD_FROM_STDIN # -DASMV + LFLAGS1:= +-LFLAGS2:=-L/boot/develop/lib/x86 -lbe -lroot ++LFLAGS2:=-L$(LIBDIR) -lbe -lroot + OBJA = #match.o + TARGET=$(ZIPS) + +@@ -88,44 +102,40 @@ all: + ###################################################################### + # Object file lists and other build goodies + +-# Object file lists ++# object file lists + OBJZ = zip.o zipfile.o zipup.o fileio.o util.o globals.o crypt.o ttyio.o \ +- beos.o crc32.o ++ beos.o crc32.o zbz2err.o setfiletype.o + OBJI = deflate.o trees.o +-# OBJA moved into ifeq block above; we'll use assembly for x86 +-OBJU = zipfile_.o fileio_.o util_.o globals.o beos_.o ++OBJA = ++OCRCU8 = ++OCRCTB = crc32_.o ++OBJU = zipfile_.o fileio_.o util_.o globals.o beos_.o setfiletype.o $(OCRCU8) + OBJN = zipnote.o $(OBJU) +-OBJC = zipcloak.o $(OBJU) crc32_.o crypt_.o ttyio.o ++OBJC = zipcloak.o $(OBJU) $(OCRCTB) crypt_.o ttyio.o + OBJS = zipsplit.o $(OBJU) + +-# Headers + ZIP_H = zip.h ziperr.h tailor.h beos/osdep.h + +-# What to build? +-ZIPS = zip zipnote zipsplit zipcloak +- + # suffix rules + .SUFFIXES: + .SUFFIXES: _.o .o .c .doc .1 + .c_.o: +- rm -f $*_.c; $(LN) $< $*_.c +- $(CC) -c $(CFLAGS) -DUTIL $*_.c +- rm -f $*_.c ++ $(CC) -c $(CFLAGS) -DUTIL -o $@ $< + + .c.o: + $(CC) -c $(CFLAGS) $< + + .1.doc: +- groff -man -Tascii $< > $@ ++ nroff -man $< | col -bx | uniq > $@ + +-# rules for zip, zipnote, zipcloak, zipsplit, and the Zip MANUAL. ++# rules for zip, zipnote, zipcloak, zipsplit, and the Zip MANUALs. + $(OBJZ): $(ZIP_H) + $(OBJI): $(ZIP_H) + $(OBJN): $(ZIP_H) + $(OBJS): $(ZIP_H) + $(OBJC): $(ZIP_H) +-zip.o crc32.o crypt.o fileio.o zipfile.o zipup.o: crc32.h +-zipcloak.o crc32_.o crypt_.o fileio_.o zipfile_.o: crc32.h ++zip.o zipup.o zipfile.o fileio.o crc32.o crypt.o: crc32.h ++zipcloak.o zipfile_.o fileio_.o crc32_.o crypt_.o: crc32.h + zip.o zipup.o crypt.o ttyio.o zipcloak.o crypt_.o: crypt.h + zip.o zipup.o zipnote.o zipcloak.o zipsplit.o: revision.h + zip.o crypt.o ttyio.o zipcloak.o crypt_.o: ttyio.h +@@ -134,42 +144,69 @@ zipup.o: beos/zipup.h + match.o: match.S + $(CPP) match.S > _match.s + $(AS) _match.s +- mv -f _match.o match.o ++ mv _match.o match.o + rm -f _match.s + ++crc_i386.o: crc_i386.S ++ $(CPP) crc_i386.S > _crc_i386.s ++ $(AS) _crc_i386.s ++ mv _crc_i386.o crc_i386.o ++ rm -f _crc_i386.s ++ + beos.o: beos/beos.c + $(CC) -c $(CFLAGS) beos/beos.c + + beos_.o: beos/beos.c +- rm -f $*_.c; $(LN) beos/beos.c $*_.c +- $(CC) -c $(CFLAGS) -DUTIL $*_.c +- rm -f $*_.c ++ $(CC) -c $(CFLAGS) -DUTIL -o $@ beos/beos.c ++ ++setfiletype.o: beos/setfiletype.c ++ $(CC) -c $(CFLAGS) -o $@ beos/setfiletype.c ++ ++ZIPS = zip$E zipcloak$E zipnote$E zipsplit$E + + zips: $(ZIPS) +-zipsman: $(ZIPS) $(ZIPMANUAL) ++zipsman: $(ZIPS) $(ZIPMANUALs) + +-zip: $(OBJZ) $(OBJI) $(OBJA) +- $(BIND) -o zip $(LFLAGS1) $(OBJZ) $(OBJI) $(OBJA) $(LFLAGS2) +-zipnote: $(OBJN) +- $(BIND) -o zipnote $(LFLAGS1) $(OBJN) $(LFLAGS2) +-zipcloak: $(OBJC) +- $(BIND) -o zipcloak $(LFLAGS1) $(OBJC) $(LFLAGS2) +-zipsplit: $(OBJS) +- $(BIND) -o zipsplit $(LFLAGS1) $(OBJS) $(LFLAGS2) ++zip$E: $(OBJZ) $(OBJI) $(OBJA) $(LIB_BZ) ++ $(BIND) -o zip$E $(LFLAGS1) $(OBJZ) $(OBJI) $(OBJA) $(LFLAGS2) ++zipnote$E: $(OBJN) ++ $(BIND) -o zipnote$E $(LFLAGS1) $(OBJN) $(LFLAGS2) ++zipcloak$E: $(OBJC) $(OCRCTB) ++ $(BIND) -o zipcloak$E $(LFLAGS1) $(OBJC) $(LFLAGS2) ++zipsplit$E: $(OBJS) ++ $(BIND) -o zipsplit$E $(LFLAGS1) $(OBJS) $(LFLAGS2) + + $(ZIPMANUAL): man/zip.1 +- groff -man -Tascii man/zip.1 > $(ZIPMANUAL) ++ nroff -man man/zip.1 | col -bx | uniq > $(ZIPMANUAL) ++ ++$(ZIPMANUALcloak): man/zipcloak.1 ++ nroff -man man/zipcloak.1 | col -bx | uniq > $(ZIPMANUALcloak) + ++$(ZIPMANUALnote): man/zipnote.1 ++ nroff -man man/zipnote.1 | col -bx | uniq > $(ZIPMANUALnote) ++ ++$(ZIPMANUALsplit): man/zipsplit.1 ++ nroff -man man/zipsplit.1 | col -bx | uniq > $(ZIPMANUALsplit) ++ + # install + install: $(ZIPS) +- $(INSTALL) -m755 $(ZIPS) $(BINDIR) +- mkdir -p $(MANDIR) +- $(INSTALL) -m644 man/zip.1 $(MANDIR)/zip.$(manext) ++ -$(INSTALL_D) $(BINDIR) ++ $(INSTALL_PROGRAM) $(ZIPS) $(BINDIR) ++ -cd $(BINDIR); $(CHMOD) $(BINFLAGS) $(ZIPS) ++ -$(INSTALL_D) $(MANDIRF) ++ $(INSTALL_PROGRAM) man/zip.1 $(MANDIRF)/zip.$(MANEXT) ++ $(CHMOD) $(MANFLAGS) $(MANDIRF)/zip.$(MANEXT) ++ $(INSTALL_PROGRAM) man/zipcloak.1 $(MANDIRF)/zipcloak.$(MANEXT) ++ $(CHMOD) $(MANFLAGS) $(MANDIRF)/zipcloak.$(MANEXT) ++ $(INSTALL_PROGRAM) man/zipnote.1 $(MANDIRF)/zipnote.$(MANEXT) ++ $(CHMOD) $(MANFLAGS) $(MANDIRF)/zipnote.$(MANEXT) ++ $(INSTALL_PROGRAM) man/zipsplit.1 $(MANDIRF)/zipsplit.$(MANEXT) ++ $(CHMOD) $(MANFLAGS) $(MANDIRF)/zipsplit.$(MANEXT) + + uninstall: + -cd $(BINDIR); rm -f $(ZIPS) +- -cd $(MANDIR); rm -f zip.$(manext) +- ++ -cd $(MANDIRF); rm -f \ ++ zip.$(MANEXT) zipcloak.$(MANEXT) zipnote.$(MANEXT) zipsplit.$(MANEXT) + dist: $(ZIPMANUAL) + zip -u9T zip`sed -e '/VERSION/!d' -e 's/.*"\(.*\)".*/\1/' \ + -e s/[.]//g -e q revision.h` \ +diff --git a/beos/beos.c b/beos/beos.c +index d8d16df..d8df5d5 100644 +--- a/beos/beos.c ++++ b/beos/beos.c +@@ -31,7 +31,7 @@ + + #include + #include +-#include ++#include + + + #define PAD 0 +@@ -851,32 +851,6 @@ int set_extra_field(z, z_utim) + return ZE_OK; + } + +-/* ---------------------------------------------------------------------- */ +-/* Set a file's MIME type. */ +-void setfiletype( const char *file, const char *type ) +-{ +- int fd; +- attr_info fa; +- ssize_t wrote_bytes; +- +- fd = open( file, O_RDWR ); +- if( fd < 0 ) { +- zipwarn( "can't open zipfile to write file type", "" ); +- return; +- } +- +- fa.type = B_MIME_STRING_TYPE; +- fa.size = (off_t)(strlen( type ) + 1); +- +- wrote_bytes = fs_write_attr( fd, BE_FILE_TYPE_NAME, fa.type, 0, +- type, fa.size ); +- if( wrote_bytes != (ssize_t)fa.size ) { +- zipwarn( "couldn't write complete file type", "" ); +- } +- +- close( fd ); +-} +- + int deletedir(d) + char *d; /* directory to delete */ + /* Delete the directory *d if it is empty, do nothing otherwise. +diff --git a/beos/setfiletype.c b/beos/setfiletype.c +new file mode 100644 +index 0000000..cd8dd2e +--- /dev/null ++++ b/beos/setfiletype.c +@@ -0,0 +1,33 @@ ++#include ++#include ++ ++#include ++#include ++ ++#include "beos/osdep.h" ++ ++/* ---------------------------------------------------------------------- */ ++/* Set a file's MIME type. */ ++void setfiletype( const char *file, const char *type ) ++{ ++ int fd; ++ attr_info fa; ++ ssize_t wrote_bytes; ++ ++ fd = open( file, O_RDWR ); ++ if( fd < 0 ) { ++ zipwarn( "can't open zipfile to write file type", "" ); ++ return; ++ } ++ ++ fa.type = B_MIME_STRING_TYPE; ++ fa.size = (off_t)(strlen( type ) + 1); ++ ++ wrote_bytes = fs_write_attr( fd, BE_FILE_TYPE_NAME, fa.type, 0, ++ type, fa.size ); ++ if( wrote_bytes != (ssize_t)fa.size ) { ++ zipwarn( "couldn't write complete file type", "" ); ++ } ++ ++ close( fd ); ++} +diff --git a/tailor.h b/tailor.h +index 272f979..579609a 100644 +--- a/tailor.h ++++ b/tailor.h +@@ -52,7 +52,7 @@ + #include "atheos/osdep.h" + #endif + +-#ifdef __BEOS__ ++#if (defined(__BEOS__) || defined(__HAIKU__)) + #include "beos/osdep.h" + #endif + +diff --git a/ttyio.c b/ttyio.c +index 5899fdc..15cc835 100644 +--- a/ttyio.c ++++ b/ttyio.c +@@ -52,7 +52,7 @@ + # define GLOBAL(g) G.g + #endif + +-#if (defined(__ATHEOS__) || defined(__BEOS__)) /* why yes, we do */ ++#if (defined(__ATHEOS__) || defined(__BEOS__) || defined(__HAIKU__)) /* why yes, we do */ + # define HAVE_TERMIOS_H + #endif + +diff --git a/ttyio.h b/ttyio.h +index df6a4ed..5180af1 100644 +--- a/ttyio.h ++++ b/ttyio.h +@@ -60,7 +60,7 @@ + # endif + #endif + +-#if (defined(__ATHEOS__) || defined(__BEOS__) || defined(UNIX)) ++#if (defined(__ATHEOS__) || defined(__BEOS__) || defined(__HAIKU__) || defined(UNIX)) + # ifndef ATH_BEO_UNX + # define ATH_BEO_UNX + # endif +diff --git a/zip.c b/zip.c +index 439821f..173d922 100644 +--- a/zip.c ++++ b/zip.c +@@ -1845,7 +1845,7 @@ int rename_split(temp_name, out_path) + int set_filetype(out_path) + char *out_path; + { +-#ifdef __BEOS__ ++#if (defined(__BEOS__) || defined(__HAIKU__)) + /* Set the filetype of the zipfile to "application/zip" */ + setfiletype( out_path, "application/zip" ); + #endif +diff --git a/zip.h b/zip.h +index ba03160..208a0c7 100644 +--- a/zip.h ++++ b/zip.h +@@ -78,12 +78,6 @@ freely, subject to the above disclaimer and the following restrictions: + + #define ZIP /* for crypt.c: include zip password functions, not unzip */ + +-/* Types centralized here for easy modification */ +-#define local static /* More meaningful outside functions */ +-typedef unsigned char uch; /* unsigned 8-bit value */ +-typedef unsigned short ush; /* unsigned 16-bit value */ +-typedef unsigned long ulg; /* unsigned 32-bit value */ +- + /* Set up portability */ + #include "tailor.h" + +@@ -129,6 +123,13 @@ typedef unsigned long ulg; /* unsigned 32-bit value */ + # define MATCH shmatch /* Default for pattern matching: UNIX style */ + #endif + ++/* Types centralized here for easy modification */ ++#define local static /* More meaningful outside functions */ ++typedef unsigned char uch; /* unsigned 8-bit value */ ++typedef unsigned short ush; /* unsigned 16-bit value */ ++typedef unsigned long ulg; /* unsigned 32-bit value */ ++ ++ + /* Structure carrying extended timestamp information */ + typedef struct iztimes { + time_t atime; /* new access time */ +diff --git a/zipcloak.c b/zipcloak.c +index 37bd414..f3afc36 100644 +--- a/zipcloak.c ++++ b/zipcloak.c +@@ -54,7 +54,7 @@ ZCONST uLongf *crc_32_tab; + int set_filetype(out_path) + char *out_path; + { +-#ifdef __BEOS__ ++#if (defined(__BEOS__) || defined(__HAIKU__)) + /* Set the filetype of the zipfile to "application/zip" */ + setfiletype( out_path, "application/zip" ); + #endif +diff --git a/zipnote.c b/zipnote.c +index 5e02cb6..315a3de 100644 +--- a/zipnote.c ++++ b/zipnote.c +@@ -72,7 +72,7 @@ void zipnotewarn(ZCONST char *a, ZCONST char *b); + int set_filetype(out_path) + char *out_path; + { +-#ifdef __BEOS__ ++#if (defined(__BEOS__) || defined(__HAIKU__)) + /* Set the filetype of the zipfile to "application/zip" */ + setfiletype( out_path, "application/zip" ); + #endif +diff --git a/zipsplit.c b/zipsplit.c +index 8db76a1..ecced0c 100644 +--- a/zipsplit.c ++++ b/zipsplit.c +@@ -96,7 +96,7 @@ int talln = 0; /* number of entries in talls[] */ + int set_filetype(out_path) + char *out_path; + { +-#ifdef __BEOS__ ++#if (defined(__BEOS__) || defined(__HAIKU__)) + /* Set the filetype of the zipfile to "application/zip" */ + setfiletype( out_path, "application/zip" ); + #endif +diff --git a/zipup.c b/zipup.c +index 39f7d9c..80c3101 100644 +--- a/zipup.c ++++ b/zipup.c +@@ -68,7 +68,7 @@ + # include "atari/zipup.h" + #endif + +-#ifdef __BEOS__ ++#if (defined(__BEOS__) || defined(__HAIKU__)) + # include "beos/zipup.h" + #endif + +-- +1.8.3.4 + diff --git a/app-arch/zip/zip-3.0.recipe b/app-arch/zip/zip-3.0.recipe index 5b68a26d1..ab36b1ce5 100644 --- a/app-arch/zip/zip-3.0.recipe +++ b/app-arch/zip/zip-3.0.recipe @@ -1,30 +1,51 @@ -DESCRIPTION="zip" -HOMEPAGE="http://www.info-zip.org/Zip.html" +SUMMARY="Compression utility for zip archives" +DESCRIPTION=" +Zip is a compression and packaging utility with high \ +portability. It supports password-based encryption of files and filenames, \ +incremental backups and multi-part archives. +" +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" +CHECKSUM_SHA256="f0e8bb1f9b7eb0b01285495a2699df3a4b766784c1765a8f1aeedf63c0806369" REVISION="1" -STATUS_HAIKU="broken" -DEPEND="" -CHECKSUM_MD5="7b74551e63f8ee6aab6fbc86676c0d37" +LICENSE="Info-ZIP" +COPYRIGHT="1990-2008 Info-ZIP" + +ARCHITECTURES="x86 x86_gcc2" + +PATCHES="$portName-$portVersion.patchset" + +PROVIDES=" + $portName = $portVersion + cmd:zip = $portVersion + cmd:zipcloak = $portVersion + cmd:zipnote = $portVersion + cmd:zipsplit = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:gcc + cmd:ld + cmd:make + " + +SOURCE_DIR="zip30" + BUILD() { - cd zip30 - make -f beos/Makefile \ - PREFIX=`finddir B_COMMON_DIRECTORY` \ - MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make $jobArgs -f beos/Makefile } INSTALL() { - cd zip30 - make -f beos/Makefile install + make -f beos/Makefile install \ + BINDIR=$binDir \ + INCLUDEDIR=$includeDir \ + LIBDIR=$libDir \ + MANDIR=$manDir } - -TEST() -{ - cd zip30 -# make test -# make check -} - -#LICENSE="Info-Zip" -#COPYRIGHT="" diff --git a/app-arch/zoo/zoo-2.10.recipe b/app-arch/zoo/zoo-2.10.recipe index b6f401a28..9ed2af69a 100644 --- a/app-arch/zoo/zoo-2.10.recipe +++ b/app-arch/zoo/zoo-2.10.recipe @@ -1,5 +1,13 @@ -DESCRIPTION="Manipulate archives of files in compressed form" -HOMEPAGE="unknown" +SUMMARY="Zoo archive utility" +DESCRIPTION=" +Zoo is a compression utility. It uses LZW compression algorithm \ +which compresses files to 20-80% of their original size depending on the data type. \ +Zoo can store and selectively extract multiple generations of the same file. + +This package exists for its historical value. If you are looking for a compression \ +tool for serious use, check tar and gzip. +" +HOMEPAGE="unknown" SRC_URI="ftp://ftp.kiarchive.ru/pub/unix/arcers/zoo-2.10pl1.tar.gz" CHECKSUM_MD5="70a0a785ecc8f7f747be1421e495d837" REVISION="1" diff --git a/app-benchmarks/bonnie++/bonnie++-1.03e.recipe b/app-benchmarks/bonnie++/bonnie++-1.03e.recipe index d6ecb6b1a..44068d926 100644 --- a/app-benchmarks/bonnie++/bonnie++-1.03e.recipe +++ b/app-benchmarks/bonnie++/bonnie++-1.03e.recipe @@ -1,27 +1,60 @@ -DESCRIPTION="Multi-producer-multi-consumer signal dispatching mechanism in python" -HOMEPAGE="http://www.coker.com.au/bonnie++/" -SRC_URI="http://www.coker.com.au/bonnie++/bonnie++-1.03e.tgz" -REVISION="1" -STATUS_HAIKU="stable" -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=$COMMON_DOCS/man \ - --bindir=$COMMON_BIN \ - --sbindir=$COMMON_BIN - make -} -INSTALL() -{ - cd bonnie++-1.03e - make install DESTDIR=${DESTDIR} - -} +SUMMARY="Bonnie++ is a benchmark and test suite for filesystems" +DESCRIPTION=" +Bonnie++ is a benchmark suite that is aimed at performing a number of simple \ +tests of hard drive and file system performance. Then you can decide which \ +test is important and decide how to compare different systems after running \ +it. I have no plans to ever have it produce a single number, because I don't \ +think that a single number can be useful when comparing such things. +The main program tests database type access to a single file (or a set of \ +files if you wish to test more than 1G of storage), and it tests creation, \ +reading, and deleting of small files which can simulate the usage of programs \ +such as Squid, INN, or Maildir format email. +The ZCAV program which I initially released as a seperate package tests the \ +performance of different zones of a hard drive. It does not write any data (so \ +you can use it on full file systems). It can show why comparing the speed of \ +Windows at the start of a hard drive to Linux at the end of the hard drive \ +(typical dual-boot scenario) isn't a valid comparison. +" LICENSE="GNU GPL v2" COPYRIGHT="1990, Tim Bray 1999, Russell Coker" +HOMEPAGE="http://www.coker.com.au/bonnie++/" +SRC_URI="http://www.coker.com.au/bonnie++/bonnie++-1.03e.tgz" +CHECKSUM_SHA256="cb3866116634bf65760b6806be4afa7e24a1cad6f145c876df8721f01ba2e2cb" +REVISION="1" +ARCHITECTURES="x86 ?x86_gcc2 ?x86_64" + +PROVIDES=" + bonnie++ = $portVersion + cmd:bonnie++ = $portVersion + cmd:zcav = $portVersion + cmd:bon_csv2html = $portVersion + cmd:bon_csv2txt = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:make + cmd:g++ + " + +BUILD() +{ + runConfigure ./configure \ + --sbindir=$binDir + make +} + +INSTALL() +{ + make install + mv $prefix/sbin/* $binDir + rm -rf $prefix/sbin +} diff --git a/app-benchmarks/bonnie++/patches/bonnie++-1.03e.patch b/app-benchmarks/bonnie++/patches/bonnie++-1.03e.patch deleted file mode 100644 index 4ec05bf8c..000000000 --- a/app-benchmarks/bonnie++/patches/bonnie++-1.03e.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -urN bonnie++-1.03e/Makefile.in bonnie++-1.03e-haiku/Makefile.in ---- bonnie++-1.03e/Makefile.in 2002-10-13 20:26:36.041418752 +0000 -+++ bonnie++-1.03e-haiku/Makefile.in 2011-01-04 12:23:13.153616384 +0000 -@@ -33,14 +33,14 @@ - $(CXX) zcav.cpp -o zcav $(ZCAVOBJS) $(LFLAGS) - - install-bin: $(EXES) -- mkdir -p $(eprefix)/bin $(eprefix)/sbin -- @INSTALL_PROGRAM@ @stripping@ $(EXES) $(eprefix)/sbin -- @INSTALL_SCRIPT@ $(SCRIPTS) $(eprefix)/bin -+ mkdir -p $(DESTDIR)$(eprefix)/bin $(DESTDIR)$(eprefix)/sbin -+ @INSTALL_PROGRAM@ @stripping@ $(EXES) $(DESTDIR)$(eprefix)/sbin -+ @INSTALL_SCRIPT@ $(SCRIPTS) $(DESTDIR)$(eprefix)/bin - - install: install-bin -- mkdir -p @mandir@/man1 @mandir@/man8 -- @INSTALL_DATA@ $(MAN1) @mandir@/man1 -- @INSTALL_DATA@ $(MAN8) @mandir@/man8 -+ mkdir -p $(DESTDIR)@mandir@/man1 $(DESTDIR)@mandir@/man8 -+ @INSTALL_DATA@ $(MAN1) $(DESTDIR)@mandir@/man1 -+ @INSTALL_DATA@ $(MAN8) $(DESTDIR)@mandir@/man8 - - %.o: %.cpp %.h bonnie.h port.h - $(CXX) -c $< diff --git a/app-benchmarks/ffsb/ffsb-6.0_rc2.recipe b/app-benchmarks/ffsb/ffsb-6.0_rc2.recipe index b4a80b504..a6b9b6312 100644 --- a/app-benchmarks/ffsb/ffsb-6.0_rc2.recipe +++ b/app-benchmarks/ffsb/ffsb-6.0_rc2.recipe @@ -1,25 +1,57 @@ -DESCRIPTION="Flexible Filesystem Benchmark" +SUMMARY="Flexible Filesystem Benchmark" +DESCRIPTION=" +The Flexible Filesystem Benchmark (FFSB) is a cross-platform filesystem \ +performance measurement tool. It uses customizable profiles to measure of \ +different workloads, and it supports multiple groups of threads across \ +multiple filesystems. +" +LICENSE="GNU GPL v2" +COPYRIGHT="2001-2004 International Business Machines Corp." HOMEPAGE="http://sourceforge.net/projects/ffsb" SRC_URI="http://downloads.sourceforge.net/project/ffsb/ffsb/ffsb-6.0-rc2/ffsb-6.0-rc2.tar.bz2" +CHECKSUM_SHA256="e5867692aae8c9bfbcdc774599022289c4d89c1d90f4dd7101fb9865ac773c71" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -CHECKSUM_MD5="cabfc1021c2ec6c6b168fefc84210891" +ARCHITECTURES="x86 ?x86_gcc2 ?x86_64" + +PROVIDES=" + ffsb = $portVersion + cmd:ffsb = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:libtoolize + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:make + cmd:gcc + " + +SOURCE_DIR="ffsb-6.0-rc2" + +PATCHES="ffsb-6.0_rc2.patchset" + BUILD() { - cd ffsb-6.0-rc2 libtoolize --force --copy --install aclocal autoconf automake - ./configure --prefix=`finddir B_COMMON_DIRECTORY` + runConfigure ./configure make } INSTALL() { - cd ffsb-6.0-rc2 make install + mkdir -p $docDir + cp -af README $docDir } -LICENSE="GNU GPL v2" -COPYRIGHT="2001-2004 International Business Machines Corp." diff --git a/app-benchmarks/ffsb/patches/ffsb-6.0-rc2.patch b/app-benchmarks/ffsb/patches/ffsb-6.0_rc2.patchset similarity index 57% rename from app-benchmarks/ffsb/patches/ffsb-6.0-rc2.patch rename to app-benchmarks/ffsb/patches/ffsb-6.0_rc2.patchset index 7a32f2272..aa5151a16 100644 --- a/app-benchmarks/ffsb/patches/ffsb-6.0-rc2.patch +++ b/app-benchmarks/ffsb/patches/ffsb-6.0_rc2.patchset @@ -1,7 +1,14 @@ -diff -urN ffsb-6.0-rc2/fh.c ffsb-6.0-rc2-haiku/fh.c ---- ffsb-6.0-rc2/fh.c 2008-10-27 20:17:05.051118080 +0000 -+++ ffsb-6.0-rc2-haiku/fh.c 2010-09-23 14:01:27.966262784 +0000 -@@ -74,7 +74,9 @@ +From ed4728017e63bf8b6046da6542287a22ceeb1944 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Sun, 24 Nov 2013 23:50:21 -0700 +Subject: applying patch ffsb-6.0-rc2.patch + + +diff --git a/fh.c b/fh.c +index f99b455..a1e8236 100644 +--- a/fh.c ++++ b/fh.c +@@ -74,7 +74,9 @@ static int fhopenhelper(char *filename, char *bufflags, int flags, int need_stats = ft_needs_stats(ft, SYS_OPEN) || fs_needs_stats(fs, SYS_OPEN); @@ -12,10 +19,11 @@ diff -urN ffsb-6.0-rc2/fh.c ffsb-6.0-rc2-haiku/fh.c if (need_stats) gettimeofday(&start, NULL); -diff -urN ffsb-6.0-rc2/parser.c ffsb-6.0-rc2-haiku/parser.c ---- ffsb-6.0-rc2/parser.c 2008-10-27 20:17:05.048234496 +0000 -+++ ffsb-6.0-rc2-haiku/parser.c 2010-09-23 14:01:27.976486400 +0000 -@@ -320,7 +320,8 @@ +diff --git a/parser.c b/parser.c +index 8f3f086..98d8479 100644 +--- a/parser.c ++++ b/parser.c +@@ -320,7 +320,8 @@ static container_t *init_container(void) static int set_option(char *buf, config_options_t *options) { void *value; @@ -25,7 +33,7 @@ diff -urN ffsb-6.0-rc2/parser.c ffsb-6.0-rc2-haiku/parser.c while (options->name) { switch (options->type) { case TYPE_WEIGHT: -@@ -392,7 +393,6 @@ +@@ -392,7 +393,6 @@ out: INIT_LIST_HEAD(&lhead->list); options->value = lhead; } @@ -33,7 +41,7 @@ diff -urN ffsb-6.0-rc2/parser.c ffsb-6.0-rc2-haiku/parser.c tmp_list = malloc(sizeof(struct value_list)); INIT_LIST_HEAD(&tmp_list->list); tmp_list->value = value; -@@ -567,6 +567,7 @@ +@@ -567,6 +567,7 @@ double get_config_double(config_options_t *config, char *name) static profile_config_t *parse(FILE *f) { char *buf; @@ -41,7 +49,7 @@ diff -urN ffsb-6.0-rc2/parser.c ffsb-6.0-rc2-haiku/parser.c profile_config_t *profile_conf; container_t *tmp_container; -@@ -575,9 +576,8 @@ +@@ -575,9 +576,8 @@ static profile_config_t *parse(FILE *f) memcpy(profile_conf->global, global_options, sizeof(global_options)); profile_conf->fs_container = NULL; profile_conf->tg_container = NULL; @@ -52,7 +60,7 @@ diff -urN ffsb-6.0-rc2/parser.c ffsb-6.0-rc2-haiku/parser.c while (buf) { is_option = set_option(buf, profile_conf->global); tmp_container = search_group(buf, f); -@@ -858,6 +858,7 @@ +@@ -858,6 +858,7 @@ static void init_filesys(ffsb_config_t *fc, int num) profile_config_t *profile_conf = fc->profile_conf; ffsb_fs_t *fs = &fc->filesystems[num]; value_list_t *tmp_list, *list_head; @@ -60,7 +68,7 @@ diff -urN ffsb-6.0-rc2/parser.c ffsb-6.0-rc2-haiku/parser.c memset(fs, 0, sizeof(ffsb_fs_t)); -@@ -910,7 +911,7 @@ +@@ -910,7 +911,7 @@ static void init_filesys(ffsb_config_t *fc, int num) } age_cont = age_cont->child; @@ -69,10 +77,11 @@ diff -urN ffsb-6.0-rc2/parser.c ffsb-6.0-rc2-haiku/parser.c init_threadgroup(fc, age_cont->config, age_tg, 0); fs->aging_tg = age_tg; fs->age_fs = 1; -diff -urN ffsb-6.0-rc2/util.c ffsb-6.0-rc2-haiku/util.c ---- ffsb-6.0-rc2/util.c 2008-10-27 20:17:05.049283072 +0000 -+++ ffsb-6.0-rc2-haiku/util.c 2010-09-23 14:09:14.267386880 +0000 -@@ -190,9 +190,14 @@ +diff --git a/util.c b/util.c +index df5d755..84b6513 100644 +--- a/util.c ++++ b/util.c +@@ -190,9 +190,14 @@ double cpu_so_far_children(void) /* !!!! check portability */ float getfsutil(char *dirname) { @@ -88,7 +97,7 @@ diff -urN ffsb-6.0-rc2/util.c ffsb-6.0-rc2-haiku/util.c /* return (float)(fsdata.f_blocks-fsdata.f_bfree)/ */ /* (float)(fsdata.f_blocks-fsdata.f_bfree+fsdata.f_bavail); */ -@@ -202,8 +207,13 @@ +@@ -202,8 +207,13 @@ float getfsutil(char *dirname) uint64_t getfsutil_size(char *dirname) { @@ -102,3 +111,29 @@ diff -urN ffsb-6.0-rc2/util.c ffsb-6.0-rc2-haiku/util.c return (fsdata.f_blocks - fsdata.f_bfree) * fsdata.f_bsize; } +-- +1.8.3.4 + + +From bac090a21efe6efaa5334b357d8c0ec73a5135b0 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Sun, 24 Nov 2013 23:52:13 -0700 +Subject: Update configure.in for newer autotools + + +diff --git a/configure.in b/configure.in +index 668e080..96514e8 100644 +--- a/configure.in ++++ b/configure.in +@@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script. + AC_INIT(main.c) + AM_INIT_AUTOMAKE(ffsb, 6.0-RC2) + +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADERS([config.h]) + AC_CANONICAL_HOST + + dnl need to define _ALL_SOURCE and _THREAD_SAFE on AIX +-- +1.8.3.4 + diff --git a/app-benchmarks/libmicro/libmicro-0.4.2.hg.recipe b/app-benchmarks/libmicro/libmicro-0.4.2.hg.recipe new file mode 100644 index 000000000..7ae2a054f --- /dev/null +++ b/app-benchmarks/libmicro/libmicro-0.4.2.hg.recipe @@ -0,0 +1,46 @@ +SUMMARY="libmicro - portable microbenchmarks" +DESCRIPTION=" +LibMicro is a portable set of microbenchmarks that many Solaris +engineers used during Solaris 10 development to measure the +performance of various system and library calls. LibMicro was +developed by Bart Smaalders and Phil Harman as part of their If Linux +is faster it's a Solaris bug performance campaign. LibMicro is Open +Source and uses the CDDL license.The libMicro sources include an awk +script that generates color coded html pages to easily compare +various OS revs, processors and other differences in a quick manner +" +LICENSE="CDDL v1" +COPYRIGHT="2013 Oracle" +HOMEPAGE="https://java.net/projects/libmicro" +SRC_URI="hg+https://hg.java.net/hg/libmicro~hg-repo#7dd95b416c3c" +REVISION="1" +ARCHITECTURES="!x86 !x86_gcc2" + +PROVIDES=" + libmicro = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:make + cmd:gcc + " + +PATCHES="libmicro-0.4.2.patchset" + +BUILD() +{ + make +} + +INSTALL() +{ + make install +} diff --git a/app-benchmarks/libmicro/patches/libmicro-0.4.2.hg.patchset b/app-benchmarks/libmicro/patches/libmicro-0.4.2.hg.patchset new file mode 100644 index 000000000..69ba097c3 --- /dev/null +++ b/app-benchmarks/libmicro/patches/libmicro-0.4.2.hg.patchset @@ -0,0 +1,139 @@ +From 4beb46cb703e13ca5b6a055efec5f18c961b11fe Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Sun, 26 Jan 2014 11:57:02 -0700 +Subject: applying patch libmicro-0.4.1.patch + + +diff --git a/Makefile.Haiku b/Makefile.Haiku +new file mode 100644 +index 0000000..5181d91 +--- /dev/null ++++ b/Makefile.Haiku +@@ -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/Makefile.benchmarks b/Makefile.benchmarks +index ed1923a..d1b1ff8 100644 +--- a/Makefile.benchmarks ++++ b/Makefile.benchmarks +@@ -50,7 +50,7 @@ ALL= \ + fcntl_ndelay \ + file_lock \ + fork \ +- getcontext \ ++# getcontext \ + getenv \ + gettimeofday \ + getpeername \ +diff --git a/Makefile.com b/Makefile.com +index 2ba7e76..5773900 100644 +--- a/Makefile.com ++++ b/Makefile.com +@@ -54,10 +54,10 @@ lint: libmicro.ln $(ALL:%=%.lint) $(EXTRA_CFILES:%.c=%.lint) + + + $(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 @@ tattle: ../tattle.c libmicro.a + 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 --git a/bench.sh b/bench.sh +index 4795c10..24ca1d9 100644 +--- a/bench.sh ++++ b/bench.sh +@@ -56,7 +56,7 @@ VDIR1=$VARROOT/0/1/2/3/4/5/6/7/8/9 + 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 @@ mkdir -p $VDIR1 $VDIR2 + + touch $IFILE + +-ARCH=`arch -k` ++ARCH=`uname -m` + + # produce benchmark header for easier comparisons + +diff --git a/cascade_flock.c b/cascade_flock.c +index 27d95d1..a6634a1 100644 +--- a/cascade_flock.c ++++ b/cascade_flock.c +@@ -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 + +-- +1.8.3.4 + diff --git a/app-benchmarks/piozone/piozone-1.0.recipe b/app-benchmarks/piozone/piozone-1.0.recipe index fc6399b29..8db2ca30e 100644 --- a/app-benchmarks/piozone/piozone-1.0.recipe +++ b/app-benchmarks/piozone/piozone-1.0.recipe @@ -1,22 +1,42 @@ -DESCRIPTION="Hard disk benchmarking program" +SUMMARY="Hard disk benchmarking program" +DESCRIPTION=" +Hard disk benchmarking program +" +LICENSE="GNU GPL v2" +COPYRIGHT="2002 Peter Eriksson" 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" +CHECKSUM_SHA256="0b7f880b72b10664a24b712c22c90b4caab4f0cb1a8c99cba0d1a106fd63d15d" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" +ARCHITECTURES="?x86 ?x86_gcc2 ?x86_64" + +PROVIDES=" + piozone = $portVersion + cmd:piozone = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:make + cmd:gcc + " + +PATCHES="piozone-1.0.patch" + 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 + mkdir $binDir + cp -af piozone $binDir } - -LICENSE="GNU GPL v2" -COPYRIGHT="2002 Peter Eriksson" diff --git a/app-cdr/bchunk/bchunk-1.2.0.recipe b/app-cdr/bchunk/bchunk-1.2.0.recipe index 001e94823..36515db57 100644 --- a/app-cdr/bchunk/bchunk-1.2.0.recipe +++ b/app-cdr/bchunk/bchunk-1.2.0.recipe @@ -1,27 +1,46 @@ -DESCRIPTION="binchunker converts a CD image in .bin/.cue format to a set of .iso and .cdr tracks." +SUMMARY="binchunker converts CD .bin/.cue formats to .iso and .cdr" +DESCRIPTION=" +binchunker converts a CD image in a '.bin / .cue' format (sometimes '.raw / \ +.cue') to a set of .iso and .cdr tracks. The bin/cue format is used by some \ +popular non-Unix cd-writing software, but is not supported on most other CD \ +burning programs. A lot of CD/VCD images distributed on the Internet are in \ +BIN/CUE format, I've been told. +" +LICENSE="GNU GPL v2" +COPYRIGHT="1998-2004 Heikki Hannikainen" HOMEPAGE="http://he.fi/bchunk/" SRC_URI="http://he.fi/bchunk/bchunk-1.2.0.tar.gz" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -CHECKSUM_MD5="6a613da3f34f9a303f202d2e9731d231" +CHECKSUM_SHA256="afdc9d5e38bdd16f0b8b9d9d382b0faee0b1e0494446d686a08b256446f78b5d" +REVISION="2" +ARCHITECTURES="x86 x86_gcc2 x86_64" + +PROVIDES=" + bchunk = $portVersion + cmd:bchunk = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:make + cmd:gcc + " + BUILD() { - cd bchunk-1.2.0 make } INSTALL() { - cd bchunk-1.2.0 - 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 + mkdir -p $binDir + cp -af bchunk $binDir + mkdir -p $manDir/man1 + cp -af bchunk.1 $manDir/man1 } -LICENSE="GNU GPL v2" -COPYRIGHT="1998-2004 Heikki Hannikainen" diff --git a/app-cdr/cdrtools/cdrtools-3.01~a07.recipe b/app-cdr/cdrtools/cdrtools-3.01~a07.recipe index 34eaf72a4..e9736228d 100644 --- a/app-cdr/cdrtools/cdrtools-3.01~a07.recipe +++ b/app-cdr/cdrtools/cdrtools-3.01~a07.recipe @@ -23,7 +23,7 @@ LICENSE=" CDDL v1 " SRC_URI="ftp://ftp.berlios.de/pub/cdrecord/alpha/cdrtools-3.01a07.tar.bz2" -CHECKSUM_MD5="266bae8db7d1e5473555b48c306aa216" +CHECKSUM_SHA256="cc54fefaf4ed5b6b49b996da1d1ebb1c44e88bbfada5c60e8f76c3a082591428" REVISION="3" ARCHITECTURES="x86_gcc2 x86 x86_64" diff --git a/app-cdr/cdrtools/cdrtools-3.01~a17.recipe b/app-cdr/cdrtools/cdrtools-3.01~a17.recipe index 5d78afffe..2bf1cc15a 100644 --- a/app-cdr/cdrtools/cdrtools-3.01~a17.recipe +++ b/app-cdr/cdrtools/cdrtools-3.01~a17.recipe @@ -23,7 +23,7 @@ LICENSE=" CDDL v1 " SRC_URI="ftp://ftp.berlios.de/pub/cdrecord/alpha/cdrtools-3.01a17.tar.bz2" -CHECKSUM_MD5="4cef9db0cf15a770c52d65b00bbee2db" +CHECKSUM_SHA256="3d613965b213ad83e4be0ba2535e784901839ea4d11a20a2beb6765f0eb76dfa" REVISION="1" ARCHITECTURES="x86_gcc2 x86" diff --git a/app-cdr/cdrtools/cdrtools-3.01~a18.recipe b/app-cdr/cdrtools/cdrtools-3.01~a18.recipe index 60aa374fd..dd38107d9 100644 --- a/app-cdr/cdrtools/cdrtools-3.01~a18.recipe +++ b/app-cdr/cdrtools/cdrtools-3.01~a18.recipe @@ -1,18 +1,19 @@ SUMMARY="A highly portable CD/DVD/BluRay command line recording software" -DESCRIPTION="Cdrtools is a set of command line programs that allows to record CD/DVD/BluRay media. - +DESCRIPTION=" +Cdrtools is a set of command line programs that allows to record CD/DVD/BluRay \ +media. The suite includes the following programs: - - cdrecord A CD/DVD/BD recording program - readcd A program to read CD/DVD/BD media with CD-clone features - cdda2wav The most evolved CD-audio extraction program with paranoia support - mkisofs A program to create hybrid ISO9660/JOLIET/HFS filesystes with optional Rock Ridge attributes - isodebug A program to print mkisofs debug information from media - isodump A program to dump ISO-9660 media - isoinfo A program to analyse/verify ISO/9660/Joliet/Rock-Ridge Filesystems - isovfy A program to verify the ISO-9660 structures - rscsi A Remote SCSI enabling daemon - " +- cdrecord A CD/DVD/BD recording program +- readcd A program to read CD/DVD/BD media with CD-clone features +- cdda2wav The most evolved CD-audio extraction program with paranoia support +- mkisofs A program to create hybrid ISO9660/JOLIET/HFS filesystes with \ +optional Rock Ridge attributes +- isodebug A program to print mkisofs debug information from media +- isodump A program to dump ISO-9660 media +- isoinfo A program to analyse/verify ISO/9660/Joliet/Rock-Ridge Filesystems +- isovfy A program to verify the ISO-9660 structures +- rscsi A Remote SCSI enabling daemon +" HOMEPAGE="http://cdrecord.berlios.de" COPYRIGHT=" 1993-1997 Eric Youngdale, 1997-2010 J. Schilling (mkisofs) @@ -23,7 +24,7 @@ LICENSE=" CDDL v1 " SRC_URI="ftp://ftp.berlios.de/pub/cdrecord/alpha/cdrtools-3.01a18.tar.bz2" -CHECKSUM_MD5="cf3e5dc49c654a87c20b9fa55eb84ed4" +CHECKSUM_SHA256="7e9ad9e00679bb0c0456455243eb41614a5a3395eebded9371a0c843dd3494d6" REVISION="1" ARCHITECTURES="x86_gcc2 x86" diff --git a/app-cdr/daa2iso/daa2iso-0.1.7e.recipe b/app-cdr/daa2iso/daa2iso-0.1.7e.recipe index d3685840c..80c5e6764 100644 --- a/app-cdr/daa2iso/daa2iso-0.1.7e.recipe +++ b/app-cdr/daa2iso/daa2iso-0.1.7e.recipe @@ -1,10 +1,38 @@ -DESCRIPTION="DAA2ISO is an open source command-line/GUI tool for converting single and multipart DAA and GBI images to the original ISO format." +SUMMARY="A tool for converting DAA/GBI images to ISO format." +DESCRIPTION=" +DAA2ISO is an open source command-line/GUI tool for converting single and \ +multipart DAA and GBI images to the original ISO format. +DAA/GBI files are 'Direct Access Archive' used by PowerISO and gBurner +" +LICENSE="GNU GPL v2" +COPYRIGHT="Luigi Auriemma" HOMEPAGE="http://aluigi.org/mytoolz.htm#daa2iso" SRC_URI="http://aluigi.altervista.org/mytoolz/daa2iso.zip" +CHECKSUM_SHA256="f5990542bbfb632a18e664bb956d1dfa35b20945881c617af641a9ee8cfbc47b" +SRC_FILENAME="daa2iso-$portVersion.zip" REVISION="1" -DEPEND="" -STATUS_HAIKU="stable" -CHECKSUM_MD5="6930ebcd8568e8ade0a175352d4a3481" +ARCHITECTURES="x86 ?x86_gcc2 ?x86_64" + +PROVIDES=" + daa2iso = $portVersion + cmd:daa2iso = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:make + cmd:gcc + " + +#intentionally empty +SOURCE_DIR="" BUILD() { @@ -15,8 +43,5 @@ BUILD() INSTALL() { cd src - make install PREFIX=${DESTDIR}/$(finddir B_COMMON_DIRECTORY) + make install PREFIX=$prefix } - -LICENSE="GNU GPL v2" -COPYRIGHT="Luigi Auriemma" diff --git a/app-cdr/uif2iso/uif2iso-0.1.7c.recipe b/app-cdr/uif2iso/uif2iso-0.1.7c.recipe index 0803678b7..e5d3d5fc7 100644 --- a/app-cdr/uif2iso/uif2iso-0.1.7c.recipe +++ b/app-cdr/uif2iso/uif2iso-0.1.7c.recipe @@ -1,4 +1,7 @@ -DESCRIPTION="A command-line tool for converting single and multipart UIF images to the ISO format." +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" diff --git a/app-crypt/gnupg/gnupg-1.4.10.recipe b/app-crypt/gnupg/gnupg-1.4.10.recipe index 04e8e6e99..5b436044a 100644 --- a/app-crypt/gnupg/gnupg-1.4.10.recipe +++ b/app-crypt/gnupg/gnupg-1.4.10.recipe @@ -1,5 +1,13 @@ -DESCRIPTION="The GNU Privacy Guard, a GPL pgp replacement." -HOMEPAGE="http://www.gnupg.org/" +SUMMARY="GnuPG is the GNU project's free implementation of the OpenPGP standard." +DESCRIPTION=" +GnuPG is the GNU project's complete and free implementation of the OpenPGP \ +standard as defined by RFC4880 . GnuPG allows to encrypt and sign your data \ +and communication, features a versatile key management system as well as \ +access modules for all kinds of public key directories. GnuPG, also known as \ +GPG, is a command line tool with features for easy integration with other \ +applications. +" +HOMEPAGE="http://www.gnupg.org/" SRC_URI="ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-1.4.10.tar.bz2" CHECKSUM_MD5="dcf7ed712997888d616e029637bfc303" REVISION="1" diff --git a/app-crypt/gnupg/gnupg-1.4.11.recipe b/app-crypt/gnupg/gnupg-1.4.11.recipe index 4455dfae3..816b44b3d 100644 --- a/app-crypt/gnupg/gnupg-1.4.11.recipe +++ b/app-crypt/gnupg/gnupg-1.4.11.recipe @@ -1,8 +1,15 @@ -SUMMARY="GnuPG is the GNU project's free implementation of the OpenPGP standard." -DESCRIPTION="GnuPG is the GNU project's complete and free implementation of the OpenPGP standard as defined by RFC4880 . GnuPG allows to encrypt and sign your data and communication, features a versatile key management system as well as access modules for all kinds of public key directories. GnuPG, also known as GPG, is a command line tool with features for easy integration with other applications." -HOMEPAGE="http://www.gnupg.org/" +SUMMARY="GnuPG is the GNU project's free implementation of the OpenPGP standard." +DESCRIPTION=" +GnuPG is the GNU project's complete and free implementation of the OpenPGP \ +standard as defined by RFC4880 . GnuPG allows to encrypt and sign your data \ +and communication, features a versatile key management system as well as \ +access modules for all kinds of public key directories. GnuPG, also known as \ +GPG, is a command line tool with features for easy integration with other \ +applications. +" +HOMEPAGE="http://www.gnupg.org/" SRC_URI="ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-1.4.11.tar.bz2" -CHECKSUM_MD5="411744e1ef8ce90b87938c4203f001f1" +CHECKSUM_SHA256="d18ceeac16e554a501170b9bfde611625252d0fe9448685a69c93bf149ee6ef6" REVISION="1" LICENSE="GNU GPL v3" COPYRIGHT="1998-2010 Free Software Foundation, Inc." diff --git a/app-crypt/gnupg/gnupg-1.4.16.recipe b/app-crypt/gnupg/gnupg-1.4.16.recipe new file mode 100644 index 000000000..0373d0660 --- /dev/null +++ b/app-crypt/gnupg/gnupg-1.4.16.recipe @@ -0,0 +1,56 @@ +SUMMARY="GnuPG is the GNU project's free implementation of the OpenPGP standard." +DESCRIPTION=" +GnuPG is the GNU project's complete and free implementation of the OpenPGP \ +standard as defined by RFC4880 . GnuPG allows to encrypt and sign your data \ +and communication, features a versatile key management system as well as \ +access modules for all kinds of public key directories. GnuPG, also known as \ +GPG, is a command line tool with features for easy integration with other \ +applications. +" +HOMEPAGE="http://www.gnupg.org/" +SRC_URI="ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-1.4.16.tar.bz2" +CHECKSUM_SHA256="7b3b748e6aaa338092a0b26b1730cd9355765b55e3684f58dd70f9a1b00f4a2f" +REVISION="1" +LICENSE="GNU GPL v3" +COPYRIGHT="1998-2010 Free Software Foundation, Inc." + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +PROVIDES="gnupg = $portVersion + cmd:gpg = $portVersion compat >= 1.4 + cmd:gpg_zip = $portVersion compat >= 1.4 + cmd:gpgsplit = $portVersion compat >= 1.4 + cmd:gpgv = $portVersion compat >= 1.4 + " +REQUIRES=" + haiku >= $haikuVersion + lib:libz + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:autoconf + cmd:gcc + cmd:ld + cmd:libtoolize + cmd:make + " + +BUILD() +{ + #libtoolize --force --copy --install + #autoconf + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install +} + +TEST() +{ + make check +} diff --git a/app-dicts/aspell_en/aspell_en-7.1_0.recipe b/app-dicts/aspell_en/aspell_en-7.1_0.recipe new file mode 100644 index 000000000..0a2adb8a6 --- /dev/null +++ b/app-dicts/aspell_en/aspell_en-7.1_0.recipe @@ -0,0 +1,50 @@ +SUMMARY="English dictionary for aspell program/library" +DESCRIPTION=" +This is the English dictionary for the GNU Aspell program, an open source \ +spell checker. Its advantage is its superiority of suggesting possible \ +replacements for a misspelled wordx than most other spellcheck programs. \ +Aspell is also able to maintain support for more than one langague at a time \ +and can check documents in UTF-8. +" +LICENSE="GNU GPL v2" +COPYRIGHT="2000-2011 Kevin Atkinson" +HOMEPAGE="http://aspell.net" +SRC_URI="ftp://ftp.gnu.org/gnu/aspell/dict/en/aspell6-en-7.1-0.tar.bz2" +CHECKSUM_SHA256="ff9df3c2e8c5bb19c6a66078b36a0ef4c4dfb0fcb969e29f7b5345e26d748d0a" +REVISION="1" +ARCHITECTURES="x86 x86_gcc2" + +PROVIDES=" + aspell_en = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + aspell >= 0.60 + " + +BUILD_REQUIRES=" + devel:libaspell + " + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:make + cmd:prezip_bin + cmd:which + cmd:basename + " + +SOURCE_DIR="aspell6-en-7.1-0" + +BUILD() +{ + ./configure + make +} + +INSTALL() +{ + spellDir=$dataDir/$(basename $(aspell dump config dict-dir)) + make dictdir=$spellDir datadir=$spellDir install +} diff --git a/app-doc/doxygen/doxygen-1.6.3.recipe b/app-doc/doxygen/doxygen-1.6.3.recipe index cc4ac12bf..eefdf0252 100644 --- a/app-doc/doxygen/doxygen-1.6.3.recipe +++ b/app-doc/doxygen/doxygen-1.6.3.recipe @@ -1,16 +1,29 @@ SUMMARY="Generate documentation from source code" -DESCRIPTION="Doxygen is the de facto standard tool for generating documentation from annotated C++ sources, but it also supports other popular programming languages such as C, Objective-C, C#, PHP, Java, Python, IDL (Corba and Microsoft flavors), Fortran, VHDL, Tcl, and to some extent D. - +DESCRIPTION=" +Doxygen is the de facto standard tool for generating documentation from \ +annotated C++ sources, but it also supports other popular programming \ +languages such as C, Objective-C, C#, PHP, Java, Python, IDL (Corba and \ +Microsoft flavors), Fortran, VHDL, Tcl, and to some extent D. Doxygen can help you in three ways: - - 1. It can generate an on-line documentation browser (in HTML) and/or an off-line reference manual (in $\mbox{\LaTeX}$) from a set of documented source files. There is also support for generating output in RTF (MS-Word), PostScript, hyperlinked PDF, compressed HTML, and Unix man pages. The documentation is extracted directly from the sources, which makes it much easier to keep the documentation consistent with the source code. - 2. You can configure doxygen to extract the code structure from undocumented source files. This is very useful to quickly find your way in large source distributions. Doxygen can also visualize the relations between the various elements by means of include dependency graphs, inheritance diagrams, and collaboration diagrams, which are all generated automatically. - 3. You can also use doxygen for creating normal documentation (as I did for the doxygen user manual and web-site)." +1. It can generate an on-line documentation browser (in HTML) and/or an \ +off-line reference manual (in $\mbox{\LaTeX}$) from a set of documented source \ +files. There is also support for generating output in RTF (MS-Word), \ +PostScript, hyperlinked PDF, compressed HTML, and Unix man pages. The \ +documentation is extracted directly from the sources, which makes it much \ +easier to keep the documentation consistent with the source code. +2. You can configure doxygen to extract the code structure from undocumented \ +source files. This is very useful to quickly find your way in large source \ +distributions. Doxygen can also visualize the relations between the various \ +elements by means of include dependency graphs, inheritance diagrams, and \ +collaboration diagrams, which are all generated automatically. +3. You can also use doxygen for creating normal documentation (as I did for \ +the doxygen user manual and web-site). +" HOMEPAGE="http://www.doxygen.org" COPYRIGHT="1997-2010 Dimitri van Heesch" LICENSE="GNU GPL v2" SRC_URI="http://ftp.stack.nl/pub/users/dimitri/doxygen-1.6.3.src.tar.gz" -CHECKSUM_MD5="2d6ea20a9d850d94321cee78bab7bb87" +CHECKSUM_SHA256="a3a6524b5fc1da084fd0e081507c99240abaffff85f76ef7b15c9fb3ae248492" REVISION="4" ARCHITECTURES="x86_gcc2 x86 x86_64" @@ -39,7 +52,6 @@ BUILD_PREREQUIRES=" cmd:sed " -SOURCE_DIR="$portVersionedName" PATCH() { diff --git a/app-doc/doxygen/doxygen-1.7.4.recipe b/app-doc/doxygen/doxygen-1.7.4.recipe index f1597e8ea..f7b4d4df7 100644 --- a/app-doc/doxygen/doxygen-1.7.4.recipe +++ b/app-doc/doxygen/doxygen-1.7.4.recipe @@ -1,5 +1,25 @@ -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" +SUMMARY="Generate documentation from source code" +DESCRIPTION=" +Doxygen is the de facto standard tool for generating documentation from \ +annotated C++ sources, but it also supports other popular programming \ +languages such as C, Objective-C, C#, PHP, Java, Python, IDL (Corba and \ +Microsoft flavors), Fortran, VHDL, Tcl, and to some extent D. +Doxygen can help you in three ways: +1. It can generate an on-line documentation browser (in HTML) and/or an \ +off-line reference manual (in $\mbox{\LaTeX}$) from a set of documented source \ +files. There is also support for generating output in RTF (MS-Word), \ +PostScript, hyperlinked PDF, compressed HTML, and Unix man pages. The \ +documentation is extracted directly from the sources, which makes it much \ +easier to keep the documentation consistent with the source code. +2. You can configure doxygen to extract the code structure from undocumented \ +source files. This is very useful to quickly find your way in large source \ +distributions. Doxygen can also visualize the relations between the various \ +elements by means of include dependency graphs, inheritance diagrams, and \ +collaboration diagrams, which are all generated automatically. +3. You can also use doxygen for creating normal documentation (as I did for \ +the doxygen user manual and web-site). +" +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" diff --git a/app-editors/jed/jed-0.99_19.recipe b/app-editors/jed/jed-0.99_19.recipe index 405e19c38..6dbf0e6de 100644 --- a/app-editors/jed/jed-0.99_19.recipe +++ b/app-editors/jed/jed-0.99_19.recipe @@ -1,5 +1,11 @@ -DESCRIPTION="JED is a freely available text editor" -HOMEPAGE="http://www.jedsoft.org/jed/" +SUMMARY="Editor for programmers" +DESCRIPTION=" +Jed is a small, fast and powerful text editor.\ +It is completely customizable with prepared emulation modes for Emacs, \ +CUA (similar to Openoffice), Borland-IDE, Brief, and EDT using the S-Lang \ +scripting language (with a syntax resembling C). +" +HOMEPAGE="http://www.jedsoft.org/jed/" SRC_URI="ftp://space.mit.edu/pub/davis/jed/v0.99/jed-0.99-19.tar.bz2" REVISION="1" STATUS_HAIKU="stable" @@ -14,7 +20,7 @@ BUILD() cd .. ./configure --prefix=`finddir B_COMMON_DIRECTORY` LIBS="-lnetwork" JED_ROOT=`finddir B_COMMON_LIB_DIRECTORY`/jed make clean - make + make } INSTALL() diff --git a/app-editors/joe/joe-3.8_hg.recipe b/app-editors/joe/joe-3.8_hg.recipe index a1954b5f8..8bca72a6d 100644 --- a/app-editors/joe/joe-3.8_hg.recipe +++ b/app-editors/joe/joe-3.8_hg.recipe @@ -1,5 +1,11 @@ -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/" +SUMMARY="Terminal-based text editor" +DESCRIPTION=" +Joe's Own Editor is a full-featured text editor with minimal requirements. \ +It is fully customizable (Emacs, pico or WordStar are preset). Is also has multiple \ +windows, hexadecimal edit mode for binary files or syntax highlighting for more than 40 languages. \ +It also supports mouse for both text and window manipulation. +" +HOMEPAGE="http://joe-editor.sourceforge.net/" SRC_URI="hg+http://joe-editor.hg.sourceforge.net:8000/hgroot/joe-editor/joe-editor" REVISION="2" STATUS_HAIKU="stable" @@ -14,7 +20,6 @@ BUILD() --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.recipe b/app-editors/nano/nano-2.2.3.recipe deleted file mode 100644 index 4bc904ada..000000000 --- a/app-editors/nano/nano-2.2.3.recipe +++ /dev/null @@ -1,21 +0,0 @@ -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.3.tar.gz" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="sys-libs/ncurses >= 5.6" -CHECKSUM_MD5="91918a484f54f94fedaebe00dc393a50" -BUILD() -{ - cd nano-2.2.3 - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd nano-2.2.3 - make install -} -LICENSE="GNU GPL v3" -COPYRIGHT="1999-2010 Free Software Foundation, Inc. " diff --git a/app-editors/nano/nano-2.2.5.recipe b/app-editors/nano/nano-2.2.5.recipe deleted file mode 100644 index ce7a97840..000000000 --- a/app-editors/nano/nano-2.2.5.recipe +++ /dev/null @@ -1,22 +0,0 @@ -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.5.tar.gz" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="sys-libs/ncurses >= 5.6" -CHECKSUM_MD5="77a10a49589f975ce98350a4527a2ebf" -BUILD() -{ - cd nano-2.2.5 - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd nano-2.2.5 - make install -} - -LICENSE="GNU GPL v3" -COPYRIGHT="1999-2010 Free Software Foundation, Inc. " diff --git a/app-editors/nano/nano-2.2.6.recipe b/app-editors/nano/nano-2.2.6.recipe index 4d099ea3c..6b6fb9740 100644 --- a/app-editors/nano/nano-2.2.6.recipe +++ b/app-editors/nano/nano-2.2.6.recipe @@ -1,8 +1,19 @@ -SUMMARY="GNU GPL'd Pico clone with more functionality" -DESCRIPTION="GNU GPL'd Pico clone with more functionality." +SUMMARY="GNU Pico clone with more functionality under the GPL license" +DESCRIPTION=" +nano is a simple text editor for Unix-like computing systems \ +or operating environments using a command line interface. It emulates the \ +Pico text editor, part of the Pine email client, and also provides additional \ +functionality. Features include: +- Customizable key bindings +- \'soft\' line wrapping +- Full undo/redo support +- Pager support (reading from stdin) +- Warnings for un-writable files +- More syntax highlighting samples (Fortran, objC, OCaml, Makefiles) +" HOMEPAGE="http://www.nano-editor.org/" SRC_URI="http://www.nano-editor.org/dist/v2.2/nano-2.2.6.tar.gz" -CHECKSUM_MD5="03233ae480689a008eb98feb1b599807" +CHECKSUM_SHA256="be68e133b5e81df41873d32c517b3e5950770c00fc5f4dd23810cd635abce67a" LICENSE="GNU GPL v3" COPYRIGHT="1999-2010 Free Software Foundation, Inc. " REVISION="3" @@ -33,7 +44,6 @@ BUILD_PREREQUIRES=" cmd:make " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/app-editors/nano/nano-2.3.1.recipe b/app-editors/nano/nano-2.3.1.recipe index f44f95d4b..2779bf85c 100644 --- a/app-editors/nano/nano-2.3.1.recipe +++ b/app-editors/nano/nano-2.3.1.recipe @@ -1,4 +1,16 @@ -DESCRIPTION="GNU GPL'd Pico clone with more functionality" +SUMMARY="GNU Pico clone with more functionality under the GPL license" +DESCRIPTION=" +nano is a simple text editor for Unix-like computing systems \ +or operating environments using a command line interface. It emulates the \ +Pico text editor, part of the Pine email client, and also provides additional \ +functionality. Features include: +- Customizable key bindings +- \'soft\' line wrapping +- Full undo/redo support +- Pager support (reading from stdin) +- Warnings for un-writable files +- More syntax highlighting samples (Fortran, objC, OCaml, Makefiles) +" HOMEPAGE="http://www.nano-editor.org/" SRC_URI="http://ftpmirror.gnu.org/nano/nano-2.3.1.tar.gz" CHECKSUM_MD5="af09f8828744b0ea0808d6c19a2b4bfd" diff --git a/app-editors/ne/ne-2.1.recipe b/app-editors/ne/ne-2.1.recipe index 1c7dd6bbc..7ca808f74 100644 --- a/app-editors/ne/ne-2.1.recipe +++ b/app-editors/ne/ne-2.1.recipe @@ -1,4 +1,10 @@ -DESCRIPTION="ne, the nice editor" +SUMMARY="ne, the nice editor" +DESCRIPTION=" +ne is one of the few text editors which are \ +both easy to use for beginners and powerful enough for powerusers. \ +It supports UTF-8 and multi-column characters as well as syntax highlighting. \ +Is also has fully configurable key bindings and supports macros. +" HOMEPAGE="http://ne.dsi.unimi.it" SRC_URI="http://ne.dsi.unimi.it/ne-2.1.tar.gz" REVISION="1" diff --git a/app-editors/qemacs/qemacs-0.3.2dev_cvs.recipe b/app-editors/qemacs/qemacs-0.3.2dev_cvs.recipe index 1d224709c..816c1da2d 100644 --- a/app-editors/qemacs/qemacs-0.3.2dev_cvs.recipe +++ b/app-editors/qemacs/qemacs-0.3.2dev_cvs.recipe @@ -1,4 +1,17 @@ -DESCRIPTION="QEmacs (for Quick Emacs), a very small but powerful UNIX editor" +SUMMARY="QEmacs editor" +DESCRIPTION=" +QEmacs (for Quick Emacs), a very small but powerful UNIX editor. +It has features that even big editors lack : +- Full screen editor with an Emacs look and feel with all Emacs common features. +- Full UTF8 support. +- WYSIWYG HTML/XML/CSS2 mode graphical editing. +- WYSIWYG DocBook. +- C mode: coloring with immediate update. Emacs like auto-indent. +- Shell mode, Hexadecimal editing... + +The provided qemacs-pe2qe script converts your Pe color settings to the Qemacs \ +syntax. +" HOMEPAGE="http://bellard.org/qemacs/" SRC_URI="cvs://:pserver:anonymous@cvs.savannah.nongnu.org:/sources/qemacs/qemacs" #CHECKSUM_MD5="" diff --git a/app-editors/qemacs/qemacs-0.3.3.recipe b/app-editors/qemacs/qemacs-0.3.3.recipe index 250da5505..3589eb2db 100644 --- a/app-editors/qemacs/qemacs-0.3.3.recipe +++ b/app-editors/qemacs/qemacs-0.3.3.recipe @@ -1,22 +1,67 @@ -DESCRIPTION="QEmacs (for Quick Emacs), a very small but powerful UNIX editor" +SUMMARY="QEmacs editor" +DESCRIPTION=" +QEmacs (for Quick Emacs), a very small but powerful UNIX editor. +It has features that even big editors lack : +- Full screen editor with an Emacs look and feel with all Emacs common features. +- Full UTF8 support. +- WYSIWYG HTML/XML/CSS2 mode graphical editing. +- WYSIWYG DocBook. +- C mode: coloring with immediate update. Emacs like auto-indent. +- Shell mode, Hexadecimal editing... + +The provided qemacs-pe2qe script converts your Pe color settings to the Qemacs \ +syntax. +" HOMEPAGE="http://bellard.org/qemacs/" SRC_URI="http://bellard.org/qemacs/qemacs-0.3.3.tar.gz" -CHECKSUM_MD5="42fe8cc431bb9cbbeb898a2c18335990" +CHECKSUM_SHA256="2ffba66a44783849282199acfcc08707debc7169394a8fd0902626222f27df94" REVISION="1" -STATUS_HAIKU="broken" -DEPEND="app-text/texi2html >= 1.82" +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2000-2003 Fabrice Bellard" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + qemacs$secondaryArchSuffix = $portVersion + app:qemacs$secondaryArchSuffix = $portVersion + cmd:qemacs$secondaryArchSuffix = $portVersion + cmd:qe$secondaryArchSuffix = $portVersion + cmd:html2png$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libpng$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix +# lib:libavcodec$secondaryArchSuffix +# lib:libavformat$secondaryArchSuffix + " + +BUILD_REQUIRES=" + devel:libpng$secondaryArchSuffix +# devel:libavcodec$secondaryArchSuffix +# devel:libavformat$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:texi2html + " + +PATCHES="qemacs-0.3.3.patch" + BUILD() { - cd qemacs-0.3.3 - ./configure + runConfigure ./configure make } INSTALL() { - cd qemacs-0.3.3 make install + addAppDeskbarSymlink $binDir/qe QEmacs } -LICENSE="GNU LGPL v2.1" -COPYRIGHT="2000-2003 Fabrice Bellard" diff --git a/app-editors/qemacs/qemacs-0.4.0dev.recipe b/app-editors/qemacs/qemacs-0.4.0dev.recipe new file mode 100644 index 000000000..1bdbb3697 --- /dev/null +++ b/app-editors/qemacs/qemacs-0.4.0dev.recipe @@ -0,0 +1,68 @@ +SUMMARY="QEmacs editor" +DESCRIPTION=" +QEmacs (for Quick Emacs), a very small but powerful UNIX editor. +It has features that even big editors lack : +- Full screen editor with an Emacs look and feel with all Emacs common features. +- Full UTF8 support. +- WYSIWYG HTML/XML/CSS2 mode graphical editing. +- WYSIWYG DocBook. +- C mode: coloring with immediate update. Emacs like auto-indent. +- Shell mode, Hexadecimal editing... + +The provided qemacs-pe2qe script converts your Pe color settings to the Qemacs \ +syntax. +" +HOMEPAGE="http://bellard.org/qemacs/" +SRC_URI="cvs://:pserver:anonymous@cvs.savannah.nongnu.org:/sources/qemacs/qemacs" +#CHECKSUM_MD5="" +REVISION="1" +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2000-2003 Fabrice Bellard" + +ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="?x86_gcc2 ?x86" + +PROVIDES=" + qemacs$secondaryArchSuffix = $portVersion + app:qemacs$secondaryArchSuffix = $portVersion + cmd:qemacs$secondaryArchSuffix = $portVersion + cmd:qe$secondaryArchSuffix = $portVersion + cmd:html2png$secondaryArchSuffix = $portVersion + cmd:qemacs_pe2qe$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libpng$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix +# lib:libavcodec$secondaryArchSuffix +# lib:libavformat$secondaryArchSuffix + " + +BUILD_REQUIRES=" + devel:libpng$secondaryArchSuffix +# devel:libavcodec$secondaryArchSuffix +# devel:libavformat$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:which + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:texi2html + " + +BUILD() +{ + ./configure --prefix=$prefix --datadir=$dataDir --mandir=$manDir + make +} + +INSTALL() +{ + make install + install -m 755 haiku-pe2qe.sh $binDir/qemacs-pe2qe + addAppDeskbarSymlink $binDir/qe QEmacs +} + diff --git a/app-editors/se/se-3.0.recipe b/app-editors/se/se-3.0.recipe index 397b8aefe..3242b5366 100644 --- a/app-editors/se/se-3.0.recipe +++ b/app-editors/se/se-3.0.recipe @@ -1,4 +1,9 @@ -DESCRIPTION="Screen oriented version of ed" +SUMMARY="Screen oriented version of ed" +DESCRIPTION=" +se (Screen Editor) is a screen oriented version of the classic \ +UNIX text editor ed. It’s similar to vi as both are modal editors with curses \ +interfaces. However, it differs from vi in that it has the same command syntax as ed. +" HOMEPAGE="http://se-editor.org/" SRC_URI="http://se-editor.org/dist/se-3.0.tar.gz" CHECKSUM_MD5="b080a5377b95d989e14ad01b0d25e33a" diff --git a/app-editors/vim/patches/vim-7.2.patch b/app-editors/vim/patches/vim-7.4.patch similarity index 69% rename from app-editors/vim/patches/vim-7.2.patch rename to app-editors/vim/patches/vim-7.4.patch index 90ac16e61..df7878609 100644 --- a/app-editors/vim/patches/vim-7.2.patch +++ b/app-editors/vim/patches/vim-7.4.patch @@ -1,64 +1,394 @@ -diff -Naur vim72/Makefile vim72.haiku/Makefile ---- vim72/Makefile 2009-04-19 20:53:31.000000000 +0000 -+++ vim72.haiku/Makefile 2009-04-18 09:14:47.000000000 +0000 -@@ -185,6 +185,15 @@ - # - Rename the executables to vimos2.exe, xxdos2.exe and teeos2.exe and copy - # them to here. - # - "make os2bin". -+# -+# BeOS/Haiku OS -+# - Unpack the Unix "src", "extra" and "rt" archives. -+# - Aplly Haiku patch. -+# - 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" -+# Both gui-less and full versions of vim will be packaged. +diff -Naur vim74/runtime/doc/eval.txt vim74.haiku/runtime/doc/eval.txt +--- vim74/runtime/doc/eval.txt 2013-08-10 13:24:53.048234496 +0200 ++++ vim74.haiku/runtime/doc/eval.txt 2013-09-08 11:28:37.017825792 +0200 +@@ -6393,12 +6393,14 @@ + gui_gnome Compiled with Gnome support (gui_gtk is also defined). + gui_gtk Compiled with GTK+ GUI (any version). + gui_gtk2 Compiled with GTK+ 2 GUI (gui_gtk is also defined). ++gui_haiku Compiled with Haiku GUI. + gui_mac Compiled with Macintosh GUI. + gui_motif Compiled with Motif GUI. + gui_photon Compiled with Photon GUI. + gui_running Vim is running in the GUI, or it will start soon. + gui_win32 Compiled with MS Windows Win32 GUI. + gui_win32s idem, and Win32s system being used (Windows 3.1) ++haiku Haiku version of Vim. + hangul_input Compiled with Hangul input support. |hangul| + iconv Can use iconv() for conversion. + insert_expand Compiled with support for CTRL-X expansion commands in +diff -Naur vim74/runtime/doc/gui.txt vim74.haiku/runtime/doc/gui.txt +--- vim74/runtime/doc/gui.txt 2013-08-10 13:24:53.060555264 +0200 ++++ vim74.haiku/runtime/doc/gui.txt 2013-09-08 11:29:11.019660800 +0200 +@@ -100,6 +100,7 @@ + or $VIM/_gvimrc + Amiga s:.gvimrc, home:.gvimrc, home:vimfiles:gvimrc + or $VIM/.gvimrc ++ Haiku $HOME/config/settings/vim/gvimrc - VIMVER = vim-$(MAJOR).$(MINOR) - VERSION = $(MAJOR)$(MINOR) -@@ -228,6 +237,7 @@ - COMMENT_HTML = comment/$(VERSION)-html - COMMENT_FARSI = comment/$(VERSION)-farsi - COMMENT_LANG = comment/$(VERSION)-lang -+COMMENT_HAIKU = comment/$(VERSION)-haiku + The personal initialization files are searched in the order specified above + and only the first one that is found is read. +diff -Naur vim74/runtime/doc/help.txt vim74.haiku/runtime/doc/help.txt +--- vim74/runtime/doc/help.txt 2013-08-10 13:24:54.061865984 +0200 ++++ vim74.haiku/runtime/doc/help.txt 2013-09-11 21:13:58.739246080 +0200 +@@ -189,6 +189,7 @@ + |os_os2.txt| OS/2 + |os_qnx.txt| QNX + |os_risc.txt| RISC-OS ++|os_haiku.txt| Haiku + |os_unix.txt| Unix + |os_vms.txt| VMS + |os_win32.txt| MS-Windows 95/98/NT +diff -Naur vim74/runtime/doc/options.txt vim74.haiku/runtime/doc/options.txt +--- vim74/runtime/doc/options.txt 2013-08-10 13:24:57.058720256 +0200 ++++ vim74.haiku/runtime/doc/options.txt 2013-09-08 11:39:09.024641536 +0200 +@@ -3645,7 +3645,7 @@ + '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 +@@ -5747,7 +5747,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 +@@ -7132,6 +7137,7 @@ + on MiNT: "vt52" + on MS-DOS: "pcterm" + on OS/2: "os2ansi" ++ on Haiku: "xterm" + on Unix: "ansi" + on VMS: "ansi" + on Win 32: "win32") +diff -Naur vim74/runtime/doc/os_haiku.txt vim74.haiku/runtime/doc/os_haiku.txt +--- vim74/runtime/doc/os_haiku.txt 1970-01-01 01:00:00.000000000 +0100 ++++ vim74.haiku/runtime/doc/os_haiku.txt 2013-09-14 16:46:11.293863424 +0200 +@@ -0,0 +1,223 @@ ++*os_haiku.txt* For Vim version 7.4. Last change: 2013 Sep 12 ++ ++ ++ VIM REFERENCE MANUAL by Bram Moolenaar ++ ++ *Haiku* ++ ++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 |haiku-general| ++ 2. Compiling Vim |haiku-compiling| ++ 3. The Haiku GUI |haiku-gui| ++ 4. The $VIM directory |haiku-vimdir| ++ 5. The $BE_USER_SETTINGS ++ directory |haiku-user-settings-dir| ++ 6. Drag & Drop |haiku-dragndrop| ++ 7. Single Launch vs. Multiple ++ Launch |haiku-launch| ++ 8. Fonts |haiku-fonts| ++ 9. The meta key modifier |haiku-meta| ++10. Mouse key mappings |haiku-mouse| ++11. Color names |haiku-colors| ++12. Credits |haiku-support-credits| ++13. Bugs & things To Do |haiku-bugs| ++ ++ ++1. General *haiku-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. ++ ++ ++2. Compiling Vim *haiku-compiling* ++ ++Vim can be compiled using the standard configure/make approach. Running ++./configure without any arguments or passing --enable-gui=haiku, will compile ++vim with the Haiku GUI support. Run ./configure --help , to find out other ++features you can enable/disable. ++ ++Now you should use "make" to compile Vim, then "make install" to install it. ++For seamless integration into the Haiku the GUI-less vim binary should be ++additionally installed over the GUI version. Typical build commands are: > ++ ++ ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ ++ --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ ++ --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ ++ make clean ++ make install ++ ++ ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ ++ --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ ++ --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ ++ --disable-gui ++ make clean ++ make install ++ ++ ++3. The Haiku GUI *haiku-gui* ++ ++Normally Vim starts with the GUI if you start it as gvim or vim -g. The vim ++version with GUI tries to determine if it was started from the Tracker instead ++of the Terminal, and if so, use the GUI anyway. However, the current detection ++scheme is fooled if you use the command "vim - ++ ++ :version ++ ++The normal value is /boot/common/data/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/vim74/doc/help.txt ++ : syntax on ++ :endif ++ ++ ++5. The $USER_SETTINGS_DIR directory *haiku-user-settings-dir* ++ ++$USER_SETTINGS_DIR is the symbolic name for the place where Haiku ++configuration and settings files are stored. ++ ++The normal value is /boot/home/condig/settings. ++ ++ ++6. Drag & Drop *haiku-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| ++ ++ ++7. Single Launch vs. Multiple Launch *haiku-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. ++Another drawback of the Single Launch is silent ignore of "Open With ..." ++requests by vim instance that running as non-GUI application even GUI support ++was compiled in. Vim instance running with GUI has no such problems. ++ ++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. ++ ++ ++8. Fonts *haiku-fonts* ++ ++Set fonts with > ++ ++ :set guifont=DejaVu_Sans_Mono/Book/12 ++ ++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. 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). ++ ++To verify which encodings are supported by the current font give 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. ++ ++GUI Font Selection Dialog is available at giving the > ++ ++ :set guifont=* ++ ++command. ++ ++ ++9. The meta key modifier *haiku-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. ++ ++ ++10. Mouse key mappings *haiku-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/macros/swapmous.vim for an example. |gui-mouse-mapping| ++ ++ ++11. Color names *haiku-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. ++ ++ ++12. GUI Toolbar Images *haiku-toolbar-images* ++ ++Alternative set of toolbar images should be the PNG image of any height you ++like. Image width is calculated to contain at least 32 buttons in one-row ++cells. ++The image should be stored under the name $VIRUNTIME/bitmaps/builtin-tools.png ++More info about the buttons assignment are at |builtin-tools|. ++ ++ ++13. Credits *haiku-support-credits* ++ ++Haiku port is based on work done for BeOS version by many people ++ - BeBox GUI support Copyright 1998 by Olaf Seibert; ++ - Ported to R4 by Richard Offer Jul 99; ++ - Those who contributed, not listed above but not forgotten; ++ - Haiku support by Siarzhuk Zharski Apr-Mai 2009. ++ ++Thank you, all! ++ ++ ++13. Bugs & things To Do *haiku-bugs* ++ ++The port is under development now and far away from the perfect state. Bug ++reports, patches and wishes are welcome. ++ ++ ++ -Siarzhuk Zharski ++ ++ ++ vim:tw=78:ts=8:ft=help:norl: +diff -Naur vim74/runtime/doc/starting.txt vim74.haiku/runtime/doc/starting.txt +--- vim74/runtime/doc/starting.txt 2013-08-10 13:25:01.048758784 +0200 ++++ vim74.haiku/runtime/doc/starting.txt 2013-09-08 11:22:58.029622272 +0200 +@@ -765,6 +765,7 @@ + or $VIM/_vimrc + Amiga s:.vimrc, home:.vimrc, home:vimfiles:vimrc + or $VIM/.vimrc ++ Haiku $HOME/config/settings/vim/vimrc - dist/$(COMMENT_RT): dist/comment - echo "Vim - Vi IMproved - v$(VDOT) runtime files for MS-DOS and MS-Windows" > dist/$(COMMENT_RT) -@@ -271,6 +281,9 @@ - dist/$(COMMENT_LANG): dist/comment - echo "Vim - Vi IMproved - v$(VDOT) MS-Windows language files" > dist/$(COMMENT_LANG) + The files are searched in the order specified above and only the first + one that is found is read. +@@ -811,6 +812,7 @@ + "$HOME/_vimrc" (for MS-DOS and Win32) (*) + "$HOME/vimfiles/vimrc" (for MS-DOS and Win32) (*) + "$VIM/_vimrc" (for MS-DOS and Win32) (*) ++ "$HOME/config/settings/vim/vimrc" (for 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 +@@ -901,6 +903,7 @@ + ~/.vimrc (Unix and OS/2) + s:.vimrc (Amiga) + $VIM\_vimrc (MS-DOS and Win32) ++ ~/config/settings/vim/vimrc (Haiku) + Note that creating a vimrc file will cause the 'compatible' option to be off + by default. See |compatible-default|. -+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) -@@ -600,3 +613,20 @@ - 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) -+ -rm -rf dist/boot/ -+ ./configure --prefix=/boot/common --with-features=big --with-compiledby="$(COMPILEDBY)" -+ make clean; make install DESTDIR=`pwd`/dist -+ ./configure --prefix=/boot/common --with-features=big --disable-gui --with-compiledby="$(COMPILEDBY)" -+ 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) -+ -diff -Naur vim72/runtime/gvimrc_example.vim vim72.haiku/runtime/gvimrc_example.vim ---- vim72/runtime/gvimrc_example.vim 2004-06-07 14:32:41.027262976 +0000 -+++ vim72.haiku/runtime/gvimrc_example.vim 2010-05-04 22:06:41.114294784 +0000 +diff -Naur vim74/runtime/doc/tags vim74.haiku/runtime/doc/tags +--- vim74/runtime/doc/tags 2013-08-10 14:23:34.050855936 +0200 ++++ vim74.haiku/runtime/doc/tags 2013-09-15 14:09:20.988545024 +0200 +@@ -4353,6 +4353,7 @@ + GetLatestVimScripts_dat pi_getscript.txt /*GetLatestVimScripts_dat* + Gnome gui_x11.txt /*Gnome* + H motion.txt /*H* ++Haiku os_haiku.txt /*Haiku* + I insert.txt /*I* + ICCF uganda.txt /*ICCF* + IM-server mbyte.txt /*IM-server* +@@ -6245,6 +6246,20 @@ + g~g~ change.txt /*g~g~* + g~~ change.txt /*g~~* + h motion.txt /*h* ++haiku-bugs os_haiku.txt /*haiku-bugs* ++haiku-colors os_haiku.txt /*haiku-colors* ++haiku-compiling os_haiku.txt /*haiku-compiling* ++haiku-dragndrop os_haiku.txt /*haiku-dragndrop* ++haiku-fonts os_haiku.txt /*haiku-fonts* ++haiku-general os_haiku.txt /*haiku-general* ++haiku-gui os_haiku.txt /*haiku-gui* ++haiku-launch os_haiku.txt /*haiku-launch* ++haiku-meta os_haiku.txt /*haiku-meta* ++haiku-mouse os_haiku.txt /*haiku-mouse* ++haiku-support-credits os_haiku.txt /*haiku-support-credits* ++haiku-toolbar-images os_haiku.txt /*haiku-toolbar-images* ++haiku-user-settings-dir os_haiku.txt /*haiku-user-settings-dir* ++haiku-vimdir os_haiku.txt /*haiku-vimdir* + hangul hangulin.txt /*hangul* + hangulin.txt hangulin.txt /*hangulin.txt* + has() eval.txt /*has()* +@@ -7244,6 +7259,7 @@ + os_amiga.txt os_amiga.txt /*os_amiga.txt* + os_beos.txt os_beos.txt /*os_beos.txt* + os_dos.txt os_dos.txt /*os_dos.txt* ++os_haiku.txt os_haiku.txt /*os_haiku.txt* + os_mac.txt os_mac.txt /*os_mac.txt* + os_mint.txt os_mint.txt /*os_mint.txt* + os_msdos.txt os_msdos.txt /*os_msdos.txt* +diff -Naur vim74/runtime/doc/vi_diff.txt vim74.haiku/runtime/doc/vi_diff.txt +--- vim74/runtime/doc/vi_diff.txt 2013-08-10 13:25:07.057933824 +0200 ++++ vim74.haiku/runtime/doc/vi_diff.txt 2013-09-08 11:23:54.040370176 +0200 +@@ -140,6 +140,7 @@ + - Atari MiNT + - VMS + - BeOS ++ - Haiku + - Macintosh + - Risc OS + - IBM OS/390 +@@ -164,7 +165,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 vim74/runtime/gvimrc_example.vim vim74.haiku/runtime/gvimrc_example.vim +--- vim74/runtime/gvimrc_example.vim 2010-05-15 13:03:31.015204352 +0200 ++++ vim74.haiku/runtime/gvimrc_example.vim 2013-09-08 11:35:38.065273856 +0200 @@ -9,6 +9,7 @@ " for Amiga: s:.gvimrc " for MS-DOS and Win32: $VIM\_gvimrc @@ -67,9 +397,9 @@ diff -Naur vim72/runtime/gvimrc_example.vim vim72.haiku/runtime/gvimrc_example.v " Make external commands work through a pipe instead of a pseudo-tty "set noguipty -diff -Naur vim72/runtime/vimrc_example.vim vim72.haiku/runtime/vimrc_example.vim ---- vim72/runtime/vimrc_example.vim 2008-07-02 20:11:53.041680896 +0000 -+++ vim72.haiku/runtime/vimrc_example.vim 2010-05-04 22:06:12.717225984 +0000 +diff -Naur vim74/runtime/vimrc_example.vim vim74.haiku/runtime/vimrc_example.vim +--- vim74/runtime/vimrc_example.vim 2011-04-15 20:58:36.034865152 +0200 ++++ vim74.haiku/runtime/vimrc_example.vim 2013-09-08 11:36:00.007864320 +0200 @@ -8,6 +8,7 @@ " for Amiga: s:.vimrc " for MS-DOS and Win32: $VIM\_vimrc @@ -78,431 +408,196 @@ diff -Naur vim72/runtime/vimrc_example.vim vim72.haiku/runtime/vimrc_example.vim " When started as "evim", evim.vim will already have done these settings. if v:progname =~? "evim" -diff -Naur vim72/src/Makefile vim72.haiku/src/Makefile ---- vim72/src/Makefile 2009-04-19 20:53:35.000000000 +0000 -+++ vim72.haiku/src/Makefile 2009-04-23 22:26:29.000000000 +0000 -@@ -1208,6 +1208,20 @@ - # too: - #EXTRA_LIBS = /usr/openwin/lib/libXmu.sa -lm - -+### BeOS GUI -+BEOSGUI_SRC = gui.c gui_beos.cc pty.c -+BEOSGUI_OBJ = objects/gui.o objects/gui_beos.o objects/pty.o -+BEOSGUI_DEFS = -DFEAT_GUI_BEOS -+BEOSGUI_IPATH = -+BEOSGUI_LIBS_DIR = -+BEOSGUI_LIBS1 = -lbe -lroot -ltracker -lsupc++ -ltranslation -+BEOSGUI_LIBS2 = -+BEOSGUI_INSTALL = install_normal install_beos_extra -+BEOSGUI_TARGETS = installglinks_beos -+BEOSGUI_MAN_TARGETS = -+BEOSGUI_TESTTARGET = gui -+BEOSGUI_BUNDLE = -+ - # PHOTON GUI - PHOTONGUI_SRC = gui.c gui_photon.c pty.c - PHOTONGUI_OBJ = objects/gui.o objects/gui_photon.o objects/pty.o -@@ -2381,6 +2395,9 @@ - objects/gui_athena.o: gui_athena.c - $(CCC) -o $@ gui_athena.c - -+objects/gui_beos.o: gui_beos.cc -+ $(CCC) -o $@ gui_beos.cc -+ - objects/gui_beval.o: gui_beval.c - $(CCC) -o $@ gui_beval.c - -@@ -2486,6 +2503,9 @@ - objects/os_beos.o: os_beos.c - $(CCC) -o $@ os_beos.c - -+objects/os_beos.rsrc: os_beos.rdef -+ cat $< | $(CCC) -E - | grep -v '^#' | rc -o "$@" - -+ - objects/os_qnx.o: os_qnx.c - $(CCC) -o $@ os_qnx.c - -@@ -2645,6 +2666,60 @@ - - - ############################################################################### -+### -+### BeOS/Haiku OS installation -+### -+### This rule: -+### - add resources to already installed vim binary to avoid stripping -+### them during install; -+### - copy rgb.txt to runtime directory; -+### - update system MIME database with info about vim application. -+### -+install_beos_extra: $(DEST_BIN)/$(VIMTARGET) objects/os_beos.rsrc -+ xres -o $(DEST_BIN)/$(VIMTARGET) objects/os_beos.rsrc -+ $(INSTALL_DATA) $(SCRIPTSOURCE)/rgb.txt $(DEST_RT) -+ mimeset $(DEST_BIN)/$(VIMTARGET) -+ -+### -+### List of g*-links that should be replaced with shell script equivalents. -+### This solves the problem of them from Tracker. -+### -+BEOS_GLINKS = $(DEST_BIN)/$(GVIMTARGET) \ -+ $(DEST_BIN)/$(GVIEWTARGET) \ -+ $(DEST_BIN)/$(GVIMDIFFTARGET) \ -+ $(DEST_BIN)/$(RGVIMTARGET) \ -+ $(DEST_BIN)/$(RGVIEWTARGET) -+### -+### This rule: -+### - Replace gvim link with copy of vim binary. -+### - Replace g*-links with shell script equivalents to solve the problem -+### of calling them from Tracker, -+### - Add icon resources to mentioned g*-link shell scripts. -+### -+installglinks_beos: $(BEOS_GLINKS) install_beos_extra -+ @catattr -r "BEOS:L:STD_ICON" $(DEST_BIN)/$(GVIMTARGET) > ~icon.attr -+ @catattr -r "BEOS:M:STD_ICON" $(DEST_BIN)/$(GVIMTARGET) > ~micon.attr -+ for i in $(BEOS_GLINKS); do \ -+ rm $$i ; \ -+ echo "#!/bin/sh" > $$i ; \ -+ case $$i in \ -+ $(DEST_BIN)/$(GVIMTARGET)) cp $(DEST_BIN)/$(VIMTARGET) $$i;; \ -+ $(DEST_BIN)/$(GVIEWTARGET)) printf "%s -R %c%c" $(GVIMTARGET) '$$' '*' >> $$i;; \ -+ $(DEST_BIN)/$(GVIMDIFFTARGET)) printf "%s -d %c%c" $(GVIMTARGET) '$$' '*' >> $$i;; \ -+ $(DEST_BIN)/$(RGVIMTARGET)) printf "%s -Z %c%c" $(GVIMTARGET) '$$' '*' >> $$i;; \ -+ $(DEST_BIN)/$(RGVIEWTARGET)) printf "%s -Z -R %c%c" $(GVIMTARGET) '$$' '*' >> $$i;; \ -+ *) printf "%s %c%c" $(GVIMTARGET) '$$' '*' >> $$i;; \ -+ esac ; \ -+ chmod $(BINMOD) $$i ; \ -+ addattr -f ~icon.attr -t \'ICON\' BEOS:L:STD_ICON $$i ; \ -+ addattr -f ~micon.attr -t \'MICN\' BEOS:M:STD_ICON $$i ; \ -+ done -+ addattr -f ~icon.attr -t \'ICON\' BEOS:L:STD_ICON $(DEST_BIN)/$(VIMNAME)tutor -+ addattr -f ~micon.attr -t \'MICN\' BEOS:M:STD_ICON $(DEST_BIN)/$(VIMNAME)tutor -+ @rm ~icon.attr -+ @rm ~micon.attr -+ -+############################################################################### - ### (automatically generated by 'make depend') - ### Dependencies: - objects/buffer.o: buffer.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \ -diff -Naur vim72/src/configure.in vim72.haiku/src/configure.in ---- vim72/src/configure.in 2009-04-19 20:53:35.000000000 +0000 -+++ vim72.haiku/src/configure.in 2009-04-18 09:16:24.000000000 +0000 -@@ -69,11 +69,13 @@ - - OS_EXTRA_SRC=""; OS_EXTRA_OBJ="" - --dnl Check for BeOS, which needs an extra source file --AC_MSG_CHECKING(for BeOS) -+dnl Check for BeOS/Haiku, which needs an extra source file -+AC_MSG_CHECKING(for BeOS/Haiku) - case `uname` in - BeOS) OS_EXTRA_SRC=os_beos.c; OS_EXTRA_OBJ=objects/os_beos.o - BEOS=yes; AC_MSG_RESULT(yes);; -+ Haiku) OS_EXTRA_SRC=os_beos.c; OS_EXTRA_OBJ=objects/os_beos.o -+ BEOS=yes; AC_MSG_RESULT(yes);; +diff -Naur vim74/src/configure.in vim74.haiku/src/configure.in +--- vim74/src/configure.in 2013-08-04 20:00:50.049020928 +0200 ++++ vim74.haiku/src/configure.in 2013-09-11 21:19:56.428343296 +0200 +@@ -87,6 +87,12 @@ *) BEOS=no; AC_MSG_RESULT(no);; esac -@@ -1009,7 +1011,7 @@ ++AC_MSG_CHECKING(for Haiku) ++case `uname` in ++ Haiku) HAIKU=yes; AC_MSG_RESULT(yes);; ++ *) HAIKU=no; AC_MSG_RESULT(no);; ++esac ++ + dnl If QNX is found, assume we don't want to use Xphoton + dnl unless it was specifically asked for (--with-x) + AC_MSG_CHECKING(for QNX) +@@ -1754,7 +1760,11 @@ if test "$enable_netbeans" = "yes"; then AC_MSG_RESULT(no) dnl On Solaris we need the socket and nsl library. - AC_CHECK_LIB(socket, socket) -+ AC_CHECK_LIB(network, socket) ++ if test "x$HAIKU" = "xyes"; then ++ AC_CHECK_LIB(network, socket) ++ else ++ AC_CHECK_LIB(socket, socket) ++ fi AC_CHECK_LIB(nsl, gethostbyname) AC_MSG_CHECKING(whether compiling netbeans integration is possible) AC_TRY_LINK([ -@@ -1196,11 +1198,11 @@ +@@ -1967,11 +1977,11 @@ fi fi -test "x$with_x" = xno -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no -+test "x$with_x" = xno -a "x$BEOS" != "xyes" -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no ++test "x$with_x" = xno -a "x$HAIKU" != "xyes" -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no AC_MSG_CHECKING(--enable-gui argument) AC_ARG_ENABLE(gui, -- [ --enable-gui[=OPTS] X11 GUI [default=auto] [OPTS=auto/no/gtk/gtk2/gnome/gnome2/motif/athena/neXtaw/photon/carbon]], , enable_gui="auto") -+ [ --enable-gui[=OPTS] X11 GUI [default=auto] [OPTS=auto/no/gtk/gtk2/gnome/gnome2/motif/athena/neXtaw/beos/photon/carbon]], , enable_gui="auto") +- [ --enable-gui[=OPTS] X11 GUI [default=auto] [OPTS=auto/no/gtk2/gnome2/motif/athena/neXtaw/photon/carbon]], , enable_gui="auto") ++ [ --enable-gui[=OPTS] X11 GUI [default=auto] [OPTS=auto/no/gtk2/gnome2/motif/athena/neXtaw/haiku/photon/carbon]], , enable_gui="auto") dnl Canonicalize the --enable-gui= argument so that it can be easily compared. dnl Do not use character classes for portability with old tools. -@@ -1215,10 +1217,24 @@ +@@ -1985,10 +1995,23 @@ SKIP_ATHENA=YES SKIP_NEXTAW=YES SKIP_PHOTON=YES -+SKIP_BEOS=YES ++SKIP_HAIKU=YES SKIP_CARBON=YES GUITYPE=NONE -if test "x$QNX" = "xyes" -a "x$with_x" = "xno" ; then -+ -+if test "x$BEOS" = "xyes"; then -+ SKIP_BEOS= ++if test "x$HAIKU" = "xyes"; then ++ SKIP_HAIKU= + case "$enable_gui_canon" in + no) AC_MSG_RESULT(no GUI support) -+ SKIP_BEOS=YES ;; ++ SKIP_HAIKU=YES ;; + yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;; + auto) AC_MSG_RESULT(auto - automatic GUI support) ;; -+ beos) AC_MSG_RESULT(BeOS GUI support) ;; ++ haiku) AC_MSG_RESULT(Haiku GUI support) ;; + *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported]) -+ SKIP_BEOS=YES ;; ++ SKIP_HAIKU=YES ;; + esac + +elif test "x$QNX" = "xyes" -a "x$with_x" = "xno" ; then SKIP_PHOTON= case "$enable_gui_canon" in no) AC_MSG_RESULT(no GUI support) -@@ -1383,6 +1399,7 @@ +@@ -2139,6 +2162,7 @@ SKIP_ATHENA=YES; SKIP_NEXTAW=YES; SKIP_PHOTON=YES; -+ SKIP_BEOS=YES ++ SKIP_HAIKU=YES; SKIP_CARBON=YES fi -@@ -1997,6 +2014,11 @@ +@@ -2639,6 +2663,11 @@ enable_fontset="no" fi -+dnl There is no test for the BeOS GUI, if it's selected it's used -+if test -z "$SKIP_BEOS"; then -+ GUITYPE=BEOSGUI ++dnl There is no test for the Haiku GUI, if it's selected it's used ++if test -z "$SKIP_HAIKU"; then ++ GUITYPE=HAIKUGUI +fi + if test -z "$SKIP_PHOTON"; then GUITYPE=PHOTONGUI fi -diff -Naur vim72/src/eval.c vim72.haiku/src/eval.c ---- vim72/src/eval.c 2009-04-19 20:53:31.000000000 +0000 -+++ vim72.haiku/src/eval.c 2009-04-18 09:16:25.000000000 +0000 -@@ -11333,6 +11333,9 @@ - #ifdef __BEOS__ - "beos", +diff -Naur vim74/src/eval.c vim74.haiku/src/eval.c +--- vim74/src/eval.c 2013-07-05 18:23:42.010223616 +0200 ++++ vim74.haiku/src/eval.c 2013-09-08 11:56:22.021233664 +0200 +@@ -12099,6 +12099,9 @@ + "dos16", + # endif #endif +#ifdef __HAIKU__ + "haiku", +#endif - #ifdef MSDOS - # ifdef DJGPP - "dos32", -@@ -11501,6 +11504,9 @@ + #ifdef MACOS + "mac", + #endif +@@ -12266,6 +12269,9 @@ #ifdef FEAT_GUI_GNOME "gui_gnome", #endif -+#ifdef FEAT_GUI_BEOS -+ "gui_beos", ++#ifdef FEAT_GUI_HAIKU ++ "gui_haiku", +#endif #ifdef FEAT_GUI_MAC "gui_mac", #endif -diff -Naur vim72/src/ex_docmd.c vim72.haiku/src/ex_docmd.c ---- vim72/src/ex_docmd.c 2009-04-19 20:53:32.000000000 +0000 -+++ vim72.haiku/src/ex_docmd.c 2009-04-25 20:58:56.000000000 +0000 -@@ -6693,6 +6693,7 @@ +diff -Naur vim74/src/ex_docmd.c vim74.haiku/src/ex_docmd.c +--- vim74/src/ex_docmd.c 2013-07-24 15:09:37.032768000 +0200 ++++ vim74.haiku/src/ex_docmd.c 2013-09-08 11:55:05.022806528 +0200 +@@ -7051,6 +7051,7 @@ || (defined(FEAT_GUI_GTK) && defined(FEAT_DND)) \ || defined(FEAT_GUI_MSWIN) \ || defined(FEAT_GUI_MAC) \ -+ || defined(FEAT_GUI_BEOS) \ ++ || defined(FEAT_GUI_HAIKU) \ || defined(PROTO) /* -diff -Naur vim72/src/feature.h vim72.haiku/src/feature.h ---- vim72/src/feature.h 2009-04-19 20:53:32.000000000 +0000 -+++ vim72.haiku/src/feature.h 2009-05-03 13:31:26.000000000 +0000 -@@ -643,6 +643,14 @@ +diff -Naur vim74/src/feature.h vim74.haiku/src/feature.h +--- vim74/src/feature.h 2013-05-18 20:18:20.024117248 +0200 ++++ vim74.haiku/src/feature.h 2013-09-08 11:54:33.023855104 +0200 +@@ -657,6 +657,14 @@ /* #define FEAT_MBYTE_IME */ # endif +/* -+ * +multi_byte_ime BeOS/Haiku input method support. ++ * +multi_byte_ime Haiku input method support. + * Requires +multi_byte. + */ -+#if defined(FEAT_BIG) && defined(FEAT_GUI_BEOS) && !defined(FEAT_MBYTE_IME) -+ #define FEAT_MBYTE_IME ++#if defined(FEAT_BIG) && defined(FEAT_GUI_HAIKU) && !defined(FEAT_MBYTE_IME) ++ #define FEAT_MBYTE_IME +# endif + #if defined(FEAT_MBYTE_IME) && !defined(FEAT_MBYTE) # define FEAT_MBYTE #endif -@@ -745,7 +753,8 @@ +@@ -766,7 +774,8 @@ || defined(FEAT_GUI_MSWIN) \ || ((defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA)) \ && defined(HAVE_XPM)) \ - || defined(FEAT_GUI_PHOTON)) + || defined(FEAT_GUI_PHOTON)\ -+ || defined(FEAT_GUI_BEOS)) ++ || defined(FEAT_GUI_HAIKU)) # define FEAT_TOOLBAR #endif -@@ -768,7 +777,7 @@ - /* - * +browse ":browse" command. - */ --#if defined(FEAT_NORMAL) && (defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC)) -+#if defined(FEAT_NORMAL) && (defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_BEOS) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC)) - # define FEAT_BROWSE - #endif - @@ -782,6 +791,7 @@ + && (defined(FEAT_GUI_GTK) \ + || (defined(FEAT_GUI_MOTIF) && defined(HAVE_XM_NOTEBOOK_H)) \ + || defined(FEAT_GUI_MAC) \ ++ || defined(FEAT_GUI_HAIKU) \ + || (defined(FEAT_GUI_MSWIN) && !defined(WIN16) \ + && (!defined(_MSC_VER) || _MSC_VER > 1020))) + # define FEAT_GUI_TABLINE +@@ -793,7 +803,8 @@ + */ + #if defined(FEAT_NORMAL) + # define FEAT_BROWSE_CMD +-# if defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC) ++# if defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) \ ++ || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_HAIKU) || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC) + # define FEAT_BROWSE + # endif + #endif +@@ -817,6 +827,7 @@ && defined(HAVE_X11_XPM_H)) \ || defined(FEAT_GUI_GTK) \ || defined(FEAT_GUI_PHOTON) \ -+ || defined(FEAT_GUI_BEOS) \ ++ || defined(FEAT_GUI_HAIKU) \ || defined(FEAT_GUI_MSWIN) \ || defined(FEAT_GUI_MAC) # define FEAT_CON_DIALOG -@@ -798,7 +808,8 @@ +@@ -834,7 +845,8 @@ #if defined(FEAT_GUI_DIALOG) && \ (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) \ || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_MSWIN) \ - || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC)) + || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC))\ -+ || defined(FEAT_GUI_BEOS) ++ || defined(FEAT_GUI_HAIKU) # define FEAT_GUI_TEXTDIALOG - #endif - -diff -Naur vim72/src/gui.c vim72.haiku/src/gui.c ---- vim72/src/gui.c 2009-04-19 20:53:32.000000000 +0000 -+++ vim72.haiku/src/gui.c 2009-04-18 09:16:26.000000000 +0000 -@@ -58,7 +58,7 @@ - gui_start() - { - char_u *old_term; --#if defined(UNIX) && !defined(__BEOS__) && !defined(MACOS_X) -+#if defined(UNIX) && !defined(__HAIKU__) && !defined(__BEOS__) && !defined(MACOS_X) - # define MAY_FORK - int dofork = TRUE; - #endif -@@ -273,7 +273,7 @@ - gui.menu_width = 0; - # endif - #endif --#if defined(FEAT_TOOLBAR) && (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA)) -+#if defined(FEAT_TOOLBAR) && (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_BEOS)) - gui.toolbar_height = 0; - #endif - #if defined(FEAT_FOOTER) && defined(FEAT_GUI_MOTIF) -@@ -1172,10 +1172,10 @@ - text_area_y += gui.tabline_height; - #endif - --#if defined(FEAT_TOOLBAR) && (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA)) -+#if defined(FEAT_TOOLBAR) && (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_BEOS)) - if (vim_strchr(p_go, GO_TOOLBAR) != NULL) - { --# ifdef FEAT_GUI_ATHENA -+# if defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_BEOS) - gui_mch_set_toolbar_pos(0, text_area_y, - gui.menu_width, gui.toolbar_height); - # endif -@@ -1297,7 +1297,11 @@ - again: - busy = TRUE; - -- /* Flush pending output before redrawing */ -+#ifdef FEAT_GUI_BEOS -+ vim_lock_screen(); -+#endif -+ -+ /* Flush pending output before redrawing */ - out_flush(); - - gui.num_cols = (pixel_width - gui_get_base_width()) / gui.char_width; -@@ -1319,7 +1323,11 @@ - || gui.num_rows != Rows || gui.num_cols != Columns) - shell_resized(); - -- gui_update_scrollbars(TRUE); -+#ifdef FEAT_GUI_BEOS -+ vim_unlock_screen(); -+#endif -+ -+ gui_update_scrollbars(TRUE); - gui_update_cursor(FALSE, TRUE); - #if defined(FEAT_XIM) && !defined(HAVE_GTK2) - xim_set_status_area(); -@@ -4012,9 +4020,9 @@ - y += gui.menu_height; - #endif - --#if defined(FEAT_TOOLBAR) && (defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_ATHENA)) -+#if defined(FEAT_TOOLBAR) && (defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_BEOS)) - if (vim_strchr(p_go, GO_TOOLBAR) != NULL) --# ifdef FEAT_GUI_ATHENA -+# if defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_BEOS) - y += gui.toolbar_height; - # else - # ifdef FEAT_GUI_MSWIN -@@ -4743,7 +4751,8 @@ - } - - #if ((defined(FEAT_GUI_X11) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_W32) \ -- || defined(FEAT_GUI_PHOTON)) && defined(FEAT_TOOLBAR)) || defined(PROTO) -+ || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_BEOS)) \ -+ && defined(FEAT_TOOLBAR)) || defined(PROTO) - /* - * This is shared between Athena, Motif and GTK. - */ -diff -Naur vim72/src/gui.h vim72.haiku/src/gui.h ---- vim72/src/gui.h 2009-04-19 20:53:32.000000000 +0000 -+++ vim72.haiku/src/gui.h 2009-04-18 09:16:26.000000000 +0000 -@@ -33,6 +33,10 @@ - # include - #endif - -+#ifdef FEAT_GUI_BEOS -+# include "gui_beos.h" -+#endif -+ - #ifdef FEAT_GUI_MAC - # include - /*# include */ -@@ -83,7 +87,7 @@ - * GUIs that support dropping files on a running Vim. - */ - #if defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MAC) \ -- || defined(FEAT_GUI_GTK) -+ || defined(FEAT_GUI_BEOS) || defined(FEAT_GUI_GTK) - # define HAVE_DROP_FILE - #endif - -@@ -216,6 +220,9 @@ - scroll_shift is set to the number of shifts - to reduce the count. */ - #endif -+#if FEAT_GUI_BEOS -+ VimScrollBar *id; /* Pointer to real scroll bar */ -+#endif - #ifdef FEAT_GUI_MAC - ControlHandle id; /* A handle to the scrollbar */ - #endif -@@ -435,7 +442,7 @@ - #endif - - #if defined(FEAT_TOOLBAR) \ -- && (defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_MOTIF)) -+ && (defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_BEOS)) - int toolbar_height; /* height of the toolbar */ - #endif - -@@ -456,6 +463,14 @@ - guicolor_T currSpColor; /* Current special text color */ - #endif - -+#ifdef FEAT_GUI_BEOS -+ VimApp *vimApp; -+ VimWindow *vimWindow; -+ VimFormView *vimForm; -+ VimTextAreaView *vimTextArea; -+ int vdcmp; /* Vim Direct Communication Message Port */ -+#endif -+ - #ifdef FEAT_GUI_MAC - WindowPtr VimWindow; - MenuHandle MacOSHelpMenu; /* Help menu provided by the MacOS */ -diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc ---- vim72/src/gui_beos.cc 1970-01-01 00:00:00.000000000 +0000 -+++ vim72.haiku/src/gui_beos.cc 2009-05-04 21:17:48.000000000 +0000 -@@ -0,0 +1,4583 @@ + # ifndef ALWAYS_USE_GUI + # define FEAT_CON_DIALOG +diff -Naur vim74/src/gui_haiku.cc vim74.haiku/src/gui_haiku.cc +--- vim74/src/gui_haiku.cc 1970-01-01 01:00:00.000000000 +0100 ++++ vim74.haiku/src/gui_haiku.cc 2013-09-15 22:15:47.316145664 +0200 +@@ -0,0 +1,5252 @@ +/* vi:set ts=8 sts=4 sw=4: + * + * VIM - Vi IMproved by Bram Moolenaar @@ -512,18 +607,16 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + * Do ":help uganda" in Vim to read copying and usage conditions. + * Do ":help credits" in Vim to see a list of people who contributed. + * -+ * BeOS GUI. -+ * -+ * GUI support for the Buzzword Enhanced Operating System. ++ * Based on "GUI support for the Buzzword Enhanced Operating System." + * + * Ported to R4 by Richard Offer Jul 99 + * -+ * Haiku support by Siarzhuk Zharski gmx.li> Apr-Mai 2009 ++ * Haiku support by Siarzhuk Zharski Apr-Mai 2009 + * + */ + +/* -+ * Structure of the BeOS GUI code: ++ * Structure of the Haiku GUI code: + * + * There are 3 threads. + * 1. The initial thread. In gui_mch_prepare() this gets to run the @@ -574,10 +667,13 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + * This locking protocol consists of locking Vim's window. This is both + * convenient and necessary. + */ ++ +extern "C" { + -+#include +#include ++#include ++#include ++ +#include "vim.h" +#include "globals.h" +#include "proto.h" @@ -587,61 +683,53 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + +/* ---------------- start of header part ---------------- */ + -+#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 -+#include -+#include -+#include -+#include -+#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); -+}; -+ -+#endif ++//#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 ++#include ++#include ++//#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + +class VimApp; +class VimFormView; +class VimTextAreaView; +class VimWindow; +class VimToolbar; ++class VimTabLine; + +extern key_map *keyMap; +extern char *keyMapChars; @@ -734,6 +822,16 @@ diff -Naur vim72/src/gui_beos.cc vim72.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 @@ -837,19 +935,36 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + virtual void AttachedToWindow(); +}; + -+BBitmap *VimToolbar::normalButtonsBitmap = NULL; ++BBitmap *VimToolbar::normalButtonsBitmap = NULL; +BBitmap *VimToolbar::grayedButtonsBitmap = NULL; + +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. @@ -881,8 +996,24 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + BButton* _CreateButton(int32 which, const char* label); + + public: ++ ++ class View : public BView { ++ typedef BView Inherited; ++ ++ public: ++ View(BRect frame); ++ ~View(); ++ ++ virtual void Draw(BRect updateRect); ++ void InitIcon(int32 type); ++ ++ private: ++ BBitmap* fIconBitmap; ++ }; ++ + VimDialog(int type, const char *title, const char *message, -+ const char *buttons, int dfltbutton, const char *textfield); ++ const char *buttons, int dfltbutton, const char *textfield, ++ int ex_cmd); + ~VimDialog(); + + int Go(); @@ -898,18 +1029,39 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + const char* fInputValue; +}; + -+class VimDialogView : public BView ++class VimSelectFontDialog : public BWindow +{ -+ typedef BView Inherited; ++ typedef BWindow Inherited; ++ ++ void _CleanList(BListView* list); ++ void _UpdateFontStyles(); ++ void _UpdateSizeInputPreview(); ++ void _UpdateFontPreview(); ++ bool _UpdateFromListItem(BListView* list, char* text, int textSize); + public: -+ VimDialogView(BRect frame); -+ ~VimDialogView(); + -+ virtual void Draw(BRect updateRect); ++ VimSelectFontDialog(font_family* family, font_style* style, float* size); ++ ~VimSelectFontDialog(); + -+ void InitIcon(int32 type); ++ bool Go(); + -+ BBitmap* fIconBitmap; ++ virtual void MessageReceived(BMessage *msg); ++ ++ private: ++ status_t fStatus; ++ sem_id fDialogSem; ++ bool fDialogValue; ++ font_family* fFamily; ++ font_style* fStyle; ++ float* fSize; ++ font_family fFontFamily; ++ font_style fFontStyle; ++ float fFontSize; ++ BStringView* fPreview; ++ BListView* fFamiliesList; ++ BListView* fStylesList; ++ BListView* fSizesList; ++ BTextControl* fSizesInput; +}; + +#endif /* FEAT_GUI_DIALOG */ @@ -978,9 +1130,18 @@ diff -Naur vim72/src/gui_beos.cc vim72.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 { @@ -992,6 +1153,8 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + struct VimMouseMovedMsg MouseMoved; + struct VimFocusMsg Focus; + struct VimRefsMsg Refs; ++ struct VimTablineMsg Tabline; ++ struct VimTablineMenuMsg TablineMenu; + } u; +}; + @@ -1092,7 +1255,7 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + static void +docd(BPath &path) +{ -+ mch_chdir(path.Path()); ++ mch_chdir((char *)path.Path()); + /* Do this to get the side effects of a :cd command */ + do_cmdline_cmd((char_u *)"cd ."); +} @@ -1106,7 +1269,7 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + uint32 type; + int32 count; + -+ //m->PrintToStream(); ++ m->PrintToStream(); + switch (m->what) { + case B_REFS_RECEIVED: + case B_SIMPLE_DATA: @@ -1306,7 +1469,7 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + { + BFilePanel *panel; + m->FindPointer("source", (void**)&panel); -+ if(fFilePanelSem != -1 && panel == fFilePanel) ++ if(fFilePanelSem != -1 && panel == fFilePanel) + { + delete_sem(fFilePanelSem); + fFilePanelSem = -1; @@ -1430,7 +1593,11 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + menuBar(NULL), +#ifdef FEAT_TOOLBAR + toolBar(NULL), -+#endif ++#endif ++#ifdef FEAT_GUI_TABLINE ++// showingTabLine(false), ++ tabLine(NULL), ++#endif + textArea(NULL) +{ + init(frame); @@ -1449,7 +1616,11 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + +#ifdef FEAT_TOOLBAR + delete toolBar; -+#endif ++#endif ++ ++#ifdef FEAT_GUI_TABLINE ++ delete tabLine; ++#endif + + if (textArea) { + RemoveChild(textArea); @@ -1465,12 +1636,18 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + "VimMenuBar"); + + AddChild(menuBar); -+ ++ +#ifdef FEAT_TOOLBAR + toolBar = new VimToolbar(BRect(0,0,0,0), "VimToolBar"); + toolBar->PrepareButtonBitmaps(); + AddChild(toolBar); -+#endif ++#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); @@ -1481,10 +1658,18 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc +} + +#ifdef FEAT_TOOLBAR -+ float ++ float +VimFormView::ToolbarHeight() const -+{ -+ return toolBar ? toolBar->ToolbarHeight() : 0.; ++{ ++ return toolBar ? toolBar->ToolbarHeight() : 0.; ++} ++#endif ++ ++#ifdef FEAT_GUI_TABLINE ++ float ++VimFormView::TablineHeight() const ++{ ++ return (tabLine && IsShowingTabLine()) ? tabLine->TablineHeight() : 0.; +} +#endif + @@ -1517,7 +1702,15 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + toolBar->ResizeTo(remaining.right, ToolbarHeight()); + remaining.top += ToolbarHeight(); + gui.toolbar_height = ToolbarHeight(); -+#endif ++#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); + } @@ -2053,7 +2246,7 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + msg.AddFloat("be:height_reply", FILL_Y(1)); + IMData.messenger->SendMessage(&msg); + } -+ break; ++ break; + case B_INPUT_METHOD_STOPPED: + delete IMData.messenger; + delete IMData.message; @@ -2080,11 +2273,11 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + int +VimTextAreaView::mchInitFont(char_u *name) +{ -+ VimFont *newFont = (VimFont *)gui_mch_get_font(name, 0); ++ VimFont *newFont = (VimFont *)gui_mch_get_font(name, 1); + if(newFont != NOFONT) { + gui.norm_font = (GuiFont)newFont; + gui_mch_set_font((GuiFont)newFont); -+ if (name) ++ if (name && STRCMP(name, "*") != 0) + hl_set_font_name(name); + + SetDrawingMode(B_OP_COPY); @@ -2304,7 +2497,7 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + IMData.row + IMData.count, W_WIDTH(curwin), GUI_MON_NOCLEAR); + bool confirmed = false; + msg->FindBool("be:confirmed", &confirmed); -+ if (confirmed) ++ if (confirmed) + return; + rgb_color hcolor = HighColor(), lcolor = LowColor(); + msg->FindString("be:string", &str); @@ -2493,29 +2686,27 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc +const unsigned int kVimDialogSpacingY = 10; +const unsigned int kVimDialogMinimalWidth = 310; +const unsigned int kVimDialogMinimalHeight = 75; -+const BRect kDefaultRect = -+BRect(0, 0, kVimDialogMinimalWidth, kVimDialogMinimalHeight); ++const BRect kDefaultRect = ++BRect(0, 0, kVimDialogMinimalWidth, kVimDialogMinimalHeight); + +VimDialog::VimDialog(int type, const char *title, const char *message, -+ const char *buttons, int dfltbutton, const char *textfield) -+: BWindow(kDefaultRect, title, B_TITLED_WINDOW_LOOK, B_MODAL_APP_WINDOW_FEEL, -+ B_NOT_CLOSABLE | B_NOT_RESIZABLE | ++ const char *buttons, int dfltbutton, const char *textfield, int ex_cmd) ++: BWindow(kDefaultRect, title, B_TITLED_WINDOW_LOOK, B_MODAL_APP_WINDOW_FEEL, ++ B_NOT_CLOSABLE | B_NOT_RESIZABLE | + B_NOT_ZOOMABLE | B_NOT_MINIMIZABLE | B_ASYNCHRONOUS_CONTROLS) + , fDialogSem(-1) + , fDialogValue(dfltbutton) + , fMessageView(NULL) + , fInputControl(NULL) -+ , fInputValue(textfield) ++ , fInputValue(textfield) +{ + // master view -+ VimDialogView* view = new VimDialogView(Bounds()); -+ if(view == NULL) { ++ VimDialog::View* view = new VimDialog::View(Bounds()); ++ if(view == NULL) + return; -+ } + -+ if(title == NULL) { ++ if(title == NULL) + SetTitle("Vim " VIM_VERSION_MEDIUM); -+ } + + AddChild(view); + @@ -2532,9 +2723,8 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + strButtons.RemoveAll("&"); + do { + int32 end = strButtons.FindFirst('\n'); -+ if(end != B_ERROR) { ++ if(end != B_ERROR) + strButtons[end] = '\0'; -+ } + + BButton *button = _CreateButton(which++, strButtons.String()); + view->AddChild(button); @@ -2545,28 +2735,27 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + buttonsWidth += button->Bounds().Width(); + buttonsHeight += button->Bounds().Height(); + -+ if(end == B_ERROR) { ++ if(end == B_ERROR) + break; -+ } + + strButtons.Remove(0, end + 1); + } while(true); + -+ int32 buttonsCount = fButtonsList.CountItems(); ++ int32 buttonsCount = fButtonsList.CountItems(); + buttonsWidth += kVimDialogButtonsSpacingX * (buttonsCount - 1); + buttonsHeight += kVimDialogButtonsSpacingY * (buttonsCount - 1); -+ float dialogWidth = buttonsWidth + kVimDialogIconStripeWidth + ++ float dialogWidth = buttonsWidth + kVimDialogIconStripeWidth + + kVimDialogSpacingX * 2; -+ float dialogHeight = maxButtonHeight + kVimDialogSpacingY * 3; ++ float dialogHeight = maxButtonHeight + kVimDialogSpacingY * 3; + + /* Check 'v' flag in 'guioptions': vertical button placement. */ + bool vertical = (vim_strchr(p_go, GO_VERTICAL) != NULL) || + dialogWidth >= gui.vimWindow->Bounds().Width(); + if(vertical) { -+ dialogWidth -= buttonsWidth; ++ dialogWidth -= buttonsWidth; + dialogWidth += maxButtonWidth; -+ dialogHeight -= maxButtonHeight; -+ dialogHeight += buttonsHeight; ++ dialogHeight -= maxButtonHeight; ++ dialogHeight += buttonsHeight; + } + + dialogWidth = max_c(dialogWidth, kVimDialogMinimalWidth); @@ -2601,9 +2790,9 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + rect.bottom += messageHeight + kVimDialogSpacingY; + fInputControl = new BTextControl(rect, "_iv_", NULL, fInputValue, NULL, + B_FOLLOW_LEFT | B_FOLLOW_TOP, B_WILL_DRAW | B_NAVIGABLE | B_PULSE_NEEDED); -+ fInputControl->TextView()->SetText(fInputValue); ++ fInputControl->TextView()->SetText(fInputValue); + fInputControl->TextView()->SetWordWrap(false); -+ AddChild(fInputControl); ++ AddChild(fInputControl); + + float width = 0.f, height = 0.f; + fInputControl->GetPreferredSize(&width, &height); @@ -2618,7 +2807,7 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + MoveTo((gui.vimWindow->Bounds().Width() - dialogWidth) / 2, + (gui.vimWindow->Bounds().Height() - dialogHeight) / 2); + -+ // adjust layout of buttons ++ // adjust layout of buttons + float buttonWidth = max_c(maxButtonWidth, rect.Width() * 0.66); + BPoint origin(dialogWidth, dialogHeight); + origin.x -= kVimDialogSpacingX + (vertical ? buttonWidth : buttonsWidth); @@ -2630,9 +2819,9 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + if(vertical) { + origin.y += button->Frame().Height() + kVimDialogButtonsSpacingY; + button->ResizeTo(buttonWidth, button->Frame().Height()); -+ } else { ++ } else + origin.x += button->Frame().Width() + kVimDialogButtonsSpacingX; -+ } ++ + if(dfltbutton == i + 1) { + button->MakeDefault(true); + button->MakeFocus(fInputControl == NULL); @@ -2642,11 +2831,9 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + +VimDialog::~VimDialog() +{ -+ if(fDialogSem > B_OK) { ++ if(fDialogSem > B_OK) + delete_sem(fDialogSem); -+ } -+ -+} ++} + + int +VimDialog::Go() @@ -2662,24 +2849,21 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + while(acquire_sem(fDialogSem) == B_INTERRUPTED); + + int retValue = fDialogValue; -+ if(fInputValue != NULL) { ++ if(fInputValue != NULL) + vim_strncpy((char_u*)fInputValue, (char_u*)fInputControl->Text(), IOSIZE - 1); -+ } -+ if(Lock()) { ++ ++ if(Lock()) + Quit(); -+ } + + return retValue; -+} ++} + +void VimDialog::MessageReceived(BMessage *msg) +{ + int32 which = 0; + if(msg->what != kVimDialogButtonMsg || -+ msg->FindInt32("which", &which) != B_OK) -+ { ++ msg->FindInt32("which", &which) != B_OK) + return BWindow::MessageReceived(msg); -+ } + + fDialogValue = which; + delete_sem(fDialogSem); @@ -2698,49 +2882,44 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + BButton* button = new BButton(rect, name.String(), label, message, + B_FOLLOW_RIGHT | B_FOLLOW_BOTTOM); + -+ float width = 0.f, height = 0.f; ++ float width = 0.f, height = 0.f; + button->GetPreferredSize(&width, &height); + button->ResizeTo(width, height); + + return button; +} + -+VimDialogView::VimDialogView(BRect frame) ++VimDialog::View::View(BRect frame) + : BView(frame, "VimDialogView", B_FOLLOW_ALL_SIDES, B_WILL_DRAW), + fIconBitmap(NULL) +{ + SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); +} + -+VimDialogView::~VimDialogView() ++VimDialog::View::~View() +{ + delete fIconBitmap; +} + -+void VimDialogView::Draw(BRect updateRect) ++void VimDialog::View::Draw(BRect updateRect) +{ + BRect stripeRect = Bounds(); + stripeRect.right = kVimDialogIconStripeWidth; + SetHighColor(tint_color(ViewColor(), B_DARKEN_1_TINT)); + FillRect(stripeRect); + -+ if(fIconBitmap == NULL) { ++ if(fIconBitmap == NULL) + return; -+ } + + SetDrawingMode(B_OP_ALPHA); + SetBlendingMode(B_PIXEL_ALPHA, B_ALPHA_OVERLAY); + DrawBitmapAsync(fIconBitmap, BPoint(18, 6)); +} + -+void VimDialogView::InitIcon(int32 type) ++void VimDialog::View::InitIcon(int32 type) +{ -+ if(type == VIM_GENERIC) { ++ if(type == VIM_GENERIC) + return; -+ } -+ -+ //app_info appInfo; -+ //status_t status = gui.vimApp->GetAppInfo(&appInfo); + + BPath path; + status_t status = find_directory(B_BEOS_SERVERS_DIRECTORY, &path); @@ -2751,16 +2930,16 @@ diff -Naur vim72/src/gui_beos.cc vim72.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", ++ fprintf(stderr, "App file assignment failed:%s\n", + strerror(file.InitCheck())); + return; + } + + BResources resources(&file); + if(resources.InitCheck() != B_OK) { -+ fprintf(stderr, "App server resources assignment failed:%s\n", ++ fprintf(stderr, "App server resources assignment failed:%s\n", + strerror(resources.InitCheck())); + return; + } @@ -2777,40 +2956,386 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + int32 iconSize = 32; + fIconBitmap = new BBitmap(BRect(0, 0, iconSize - 1, iconSize - 1), 0, B_RGBA32); + if(fIconBitmap == NULL || fIconBitmap->InitCheck() != B_OK) { -+ fprintf(stderr, "Icon bitmap allocation failed:%s\n", ++ fprintf(stderr, "Icon bitmap allocation failed:%s\n", + (fIconBitmap == NULL) ? "null" : strerror(fIconBitmap->InitCheck())); + return; + } + + size_t size = 0; -+ const uint8* iconData = NULL; -+#ifdef __HAIKU__ ++ const uint8* iconData = NULL; + // 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; ++ if(iconData != NULL && BIconUtils::GetVectorIcon(iconData, size, fIconBitmap) == B_OK) + return; -+ } -+#endif + + // try bitmap icon now + iconData = (const uint8*)resources.LoadResource(B_LARGE_ICON_TYPE, name, &size); + if(iconData == NULL) { -+ fprintf(stderr, "Bitmap icon resource not found\n"); ++ fprintf(stderr, "Bitmap icon resource not found\n"); + delete fIconBitmap; + fIconBitmap = NULL; + return; + } + -+#ifdef __HAIKU__ -+ if(fIconBitmap->ColorSpace() != B_CMAP8) { ++ if(fIconBitmap->ColorSpace() != B_CMAP8) + BIconUtils::ConvertFromCMAP8(iconData, iconSize, iconSize, iconSize, fIconBitmap); -+ } -+#else -+ fIconBitmap->SetBits(iconData, size, 0, B_CMAP8); -+#endif ++} + -+ delete iconData; ++const unsigned int kVimDialogOKButtonMsg = 'FDOK'; ++const unsigned int kVimDialogCancelButtonMsg = 'FDCN'; ++const unsigned int kVimDialogSizeInputMsg = 'SICH'; ++const unsigned int kVimDialogFamilySelectMsg = 'MSFM'; ++const unsigned int kVimDialogStyleSelectMsg = 'MSST'; ++const unsigned int kVimDialogSizeSelectMsg = 'MSSZ'; ++ ++VimSelectFontDialog::VimSelectFontDialog(font_family* family, font_style* style, float* size) ++: BWindow(kDefaultRect, "Font Selection", B_TITLED_WINDOW_LOOK, B_MODAL_APP_WINDOW_FEEL, ++ B_NOT_CLOSABLE | B_NOT_RESIZABLE | ++ B_NOT_ZOOMABLE | B_NOT_MINIMIZABLE | B_ASYNCHRONOUS_CONTROLS) ++ , fStatus(B_NO_INIT) ++ , fDialogSem(-1) ++ , fDialogValue(false) ++ , fFamily(family) ++ , fStyle(style) ++ , fSize(size) ++ , fFontSize(*size) ++ , fPreview(0) ++ , fFamiliesList(0) ++ , fStylesList(0) ++ , fSizesList(0) ++ , fSizesInput(0) ++{ ++ strncpy(fFontFamily, *family, B_FONT_FAMILY_LENGTH); ++ strncpy(fFontStyle, *style, B_FONT_STYLE_LENGTH); ++ ++ // "client" area view ++ BBox *clientBox = new BBox(Bounds(), B_EMPTY_STRING, B_FOLLOW_ALL_SIDES, ++ B_WILL_DRAW | B_FRAME_EVENTS | B_NAVIGABLE_JUMP | B_PULSE_NEEDED, ++ B_PLAIN_BORDER); ++ AddChild(clientBox); ++ ++ // client view ++ BRect RC = clientBox->Bounds(); ++ RC.InsetBy(kVimDialogSpacingX, kVimDialogSpacingY); ++ BRect rc(RC.LeftTop(), RC.LeftTop()); ++ ++ // at first create all controls ++ fPreview = new BStringView(rc, "preview", "DejaVu Sans Mono"); ++ clientBox->AddChild(fPreview); ++ ++ BBox* boxDivider = new BBox(rc, B_EMPTY_STRING, ++ B_FOLLOW_NONE, B_WILL_DRAW, B_FANCY_BORDER); ++ clientBox->AddChild(boxDivider); ++ ++ BStringView *labelFamily = new BStringView(rc, "labelFamily", "Family:"); ++ clientBox->AddChild(labelFamily); ++ labelFamily->ResizeToPreferred(); ++ ++ BStringView *labelStyle = new BStringView(rc, "labelStyle", "Style:"); ++ clientBox->AddChild(labelStyle); ++ labelStyle->ResizeToPreferred(); ++ ++ BStringView *labelSize = new BStringView(rc, "labelSize", "Size:"); ++ clientBox->AddChild(labelSize); ++ labelSize->ResizeToPreferred(); ++ ++ fFamiliesList = new BListView(rc, "listFamily", ++ B_SINGLE_SELECTION_LIST, B_FOLLOW_ALL_SIDES); ++ BScrollView *scrollFamilies = new BScrollView("scrollFamily", ++ fFamiliesList, B_FOLLOW_LEFT_RIGHT, 0, false, true); ++ clientBox->AddChild(scrollFamilies); ++ ++ fStylesList= new BListView(rc, "listStyles", ++ B_SINGLE_SELECTION_LIST, B_FOLLOW_ALL_SIDES); ++ BScrollView *scrollStyles = new BScrollView("scrollStyle", ++ fStylesList, B_FOLLOW_LEFT_RIGHT, 0, false, true); ++ clientBox->AddChild(scrollStyles); ++ ++ fSizesInput = new BTextControl(rc, "inputSize", NULL, "???", ++ new BMessage(kVimDialogSizeInputMsg)); ++ clientBox->AddChild(fSizesInput); ++ fSizesInput->ResizeToPreferred(); ++ ++ fSizesList = new BListView(rc, "listSizes", ++ B_SINGLE_SELECTION_LIST, B_FOLLOW_ALL_SIDES); ++ BScrollView *scrollSizes = new BScrollView("scrollSize", ++ fSizesList, B_FOLLOW_LEFT_RIGHT, 0, false, true); ++ clientBox->AddChild(scrollSizes); ++ ++ BButton *buttonOK = new BButton(rc, "buttonOK", "OK", ++ new BMessage(kVimDialogOKButtonMsg)); ++ clientBox->AddChild(buttonOK); ++ buttonOK->ResizeToPreferred(); ++ ++ BButton *buttonCancel = new BButton(rc, "buttonCancel", "Cancel", ++ new BMessage(kVimDialogCancelButtonMsg)); ++ clientBox->AddChild(buttonCancel); ++ buttonCancel->ResizeToPreferred(); ++ ++ // layout controls ++ float lineHeight = labelFamily->Bounds().Height(); ++ float previewHeight = lineHeight * 3; ++ float offsetYLabels = previewHeight + kVimDialogSpacingY; ++ float offsetYLists = offsetYLabels + lineHeight + kVimDialogSpacingY / 2; ++ float offsetYSizes = offsetYLists + fSizesInput->Bounds().Height() + kVimDialogSpacingY / 2; ++ float listsHeight = lineHeight * 9; ++ float offsetYButtons = offsetYLists + listsHeight + kVimDialogSpacingY; ++ float maxControlsHeight = offsetYButtons + buttonOK->Bounds().Height(); ++ float familiesWidth = labelFamily->Bounds().Width() * 5; ++ float offsetXStyles = familiesWidth + kVimDialogSpacingX; ++ float stylesWidth = labelStyle->Bounds().Width() * 4; ++ float offsetXSizes = offsetXStyles + stylesWidth + kVimDialogSpacingX; ++ float sizesWidth = labelSize->Bounds().Width() * 2; ++ float maxControlsWidth = offsetXSizes + sizesWidth; ++ ++ ResizeTo(maxControlsWidth + kVimDialogSpacingX * 2, ++ maxControlsHeight + kVimDialogSpacingY * 2); ++ ++ BRect rcVim = gui.vimWindow->Frame(); ++ MoveTo(rcVim.left + (rcVim.Width() - Frame().Width()) / 2, ++ rcVim.top + (rcVim.Height() - Frame().Height()) / 2); ++ ++ fPreview->ResizeTo(maxControlsWidth, previewHeight); ++ fPreview->SetAlignment(B_ALIGN_CENTER); ++ ++ boxDivider->MoveBy(0.f, previewHeight + kVimDialogSpacingY / 2); ++ boxDivider->ResizeTo(maxControlsWidth, 1.f); ++ ++ labelFamily->MoveBy(0.f, offsetYLabels); ++ labelStyle->MoveBy(offsetXStyles, offsetYLabels); ++ labelSize->MoveBy(offsetXSizes, offsetYLabels); ++ ++ // text control alignment issues ++ float insetX = fSizesInput->TextView()->Bounds().Width() - fSizesInput->Bounds().Width(); ++ float insetY = fSizesInput->TextView()->Bounds().Width() - fSizesInput->Bounds().Width(); ++ ++ scrollFamilies->MoveBy(0.f, offsetYLists); ++ scrollStyles->MoveBy(offsetXStyles, offsetYLists); ++ fSizesInput->MoveBy(offsetXSizes + insetX / 2, offsetYLists + insetY / 2); ++ scrollSizes->MoveBy(offsetXSizes, offsetYSizes); ++ ++ fSizesInput->SetAlignment(B_ALIGN_CENTER, B_ALIGN_CENTER); ++ ++ scrollFamilies->ResizeTo(familiesWidth, listsHeight); ++ scrollStyles->ResizeTo(stylesWidth, listsHeight); ++ fSizesInput->ResizeTo(sizesWidth, fSizesInput->Bounds().Height()); ++ scrollSizes->ResizeTo(sizesWidth, ++ listsHeight - (offsetYSizes - offsetYLists)); ++ ++ buttonOK->MoveBy(maxControlsWidth - buttonOK->Bounds().Width(), offsetYButtons); ++ buttonCancel->MoveBy(maxControlsWidth - buttonOK->Bounds().Width() ++ - buttonCancel->Bounds().Width() - kVimDialogSpacingX, offsetYButtons); ++ ++ // fill lists ++ int selIndex = -1; ++ int count = count_font_families(); ++ for (int i = 0; i < count; i++) { ++ font_family family; ++ if (get_font_family(i, &family ) == B_OK) { ++ fFamiliesList->AddItem(new BStringItem((const char*)family)); ++ if (strncmp(family, fFontFamily, B_FONT_FAMILY_LENGTH) == 0) ++ selIndex = i; ++ } ++ } ++ ++ if (selIndex >= 0) { ++ fFamiliesList->Select(selIndex); ++ fFamiliesList->ScrollToSelection(); ++ } ++ ++ _UpdateFontStyles(); ++ ++ selIndex = -1; ++ for (int size = 8, index = 0; size <= 18; size++, index++) { ++ BString str; ++ str << size; ++ fSizesList->AddItem(new BStringItem(str)); ++ if (size == fFontSize) ++ selIndex = index; ++ ++ } ++ ++ if (selIndex >= 0) { ++ fSizesList->Select(selIndex); ++ fSizesList->ScrollToSelection(); ++ } ++ ++ fFamiliesList->SetSelectionMessage(new BMessage(kVimDialogFamilySelectMsg)); ++ fStylesList->SetSelectionMessage(new BMessage(kVimDialogStyleSelectMsg)); ++ fSizesList->SetSelectionMessage(new BMessage(kVimDialogSizeSelectMsg)); ++ fSizesInput->SetModificationMessage(new BMessage(kVimDialogSizeInputMsg)); ++ ++ _UpdateSizeInputPreview(); ++ _UpdateFontPreview(); ++ ++ fStatus = B_OK; ++} ++ ++VimSelectFontDialog::~VimSelectFontDialog() ++{ ++ _CleanList(fFamiliesList); ++ _CleanList(fStylesList); ++ _CleanList(fSizesList); ++ ++ if (fDialogSem > B_OK) ++ delete_sem(fDialogSem); ++} ++ ++ void ++VimSelectFontDialog::_CleanList(BListView* list) ++{ ++ while(0 < list->CountItems()) ++ delete (dynamic_cast(list->RemoveItem((int32)0))); ++} ++ ++ bool ++VimSelectFontDialog::Go() ++{ ++ if (fStatus != B_OK) { ++ Quit(); ++ return NOFONT; ++ } ++ ++ fDialogSem = create_sem(0, "VimFontSelectDialogSem"); ++ if(fDialogSem < B_OK) { ++ Quit(); ++ return fDialogValue; ++ } ++ ++ Show(); ++ ++ while(acquire_sem(fDialogSem) == B_INTERRUPTED); ++ ++ bool retValue = fDialogValue; ++ ++ if(Lock()) ++ Quit(); ++ ++ return retValue; ++} ++ ++ ++void VimSelectFontDialog::_UpdateFontStyles() ++{ ++ _CleanList(fStylesList); ++ ++ int32 selIndex = -1; ++ int32 count = count_font_styles(fFontFamily); ++ for (int32 i = 0; i < count; i++) { ++ font_style style; ++ uint32 flags = 0; ++ if (get_font_style(fFontFamily, i, &style, &flags) == B_OK) { ++ fStylesList->AddItem(new BStringItem((const char*)style)); ++ if (strncmp(style, fFontStyle, B_FONT_STYLE_LENGTH) == 0) ++ selIndex = i; ++ } ++ } ++ ++ if (selIndex >= 0) { ++ fStylesList->Select(selIndex); ++ fStylesList->ScrollToSelection(); ++ } else ++ fStylesList->Select(0); ++} ++ ++ ++void VimSelectFontDialog::_UpdateSizeInputPreview() ++{ ++ char buf[10] = {0}; ++ vim_snprintf(buf, sizeof(buf), (char*)"%.0f", fFontSize); ++ fSizesInput->SetText(buf); ++} ++ ++ ++void VimSelectFontDialog::_UpdateFontPreview() ++{ ++ BFont font; ++ fPreview->GetFont(&font); ++ font.SetSize(fFontSize); ++ font.SetFamilyAndStyle(fFontFamily, fFontStyle); ++ fPreview->SetFont(&font, B_FONT_FAMILY_AND_STYLE | B_FONT_SIZE); ++ ++ BString str; ++ str << fFontFamily << " " << fFontStyle << ", " << (int)fFontSize << " pt."; ++ fPreview->SetText(str); ++} ++ ++ ++ bool ++VimSelectFontDialog::_UpdateFromListItem(BListView* list, char* text, int textSize) ++{ ++ int32 index = list->CurrentSelection(); ++ if (index < 0) ++ return false; ++ BStringItem* item = (BStringItem*)list->ItemAt(index); ++ if (item == NULL) ++ return false; ++ strncpy(text, item->Text(), textSize); ++ return true; ++} ++ ++ ++void VimSelectFontDialog::MessageReceived(BMessage *msg) ++{ ++ switch (msg->what) { ++ case kVimDialogOKButtonMsg: ++ strncpy(*fFamily, fFontFamily, B_FONT_FAMILY_LENGTH); ++ strncpy(*fStyle, fFontStyle, B_FONT_STYLE_LENGTH); ++ *fSize = fFontSize; ++ fDialogValue = true; ++ case kVimDialogCancelButtonMsg: ++ delete_sem(fDialogSem); ++ fDialogSem = -1; ++ return; ++ case B_KEY_UP: ++ { ++ int32 key = 0; ++ if (msg->FindInt32("raw_char", &key) == B_OK ++ && key == B_ESCAPE) { ++ delete_sem(fDialogSem); ++ fDialogSem = -1; ++ } ++ } ++ break; ++ ++ case kVimDialogFamilySelectMsg: ++ if (_UpdateFromListItem(fFamiliesList, ++ fFontFamily, B_FONT_FAMILY_LENGTH)) { ++ _UpdateFontStyles(); ++ _UpdateFontPreview(); ++ } ++ break; ++ case kVimDialogStyleSelectMsg: ++ if (_UpdateFromListItem(fStylesList, ++ fFontStyle, B_FONT_STYLE_LENGTH)) ++ _UpdateFontPreview(); ++ break; ++ case kVimDialogSizeSelectMsg: ++ { ++ char buf[10] = {0}; ++ if (_UpdateFromListItem(fSizesList, buf, sizeof(buf))) { ++ float size = atof(buf); ++ if (size > 0.f) { ++ fFontSize = size; ++ _UpdateSizeInputPreview(); ++ _UpdateFontPreview(); ++ } ++ } ++ } ++ break; ++ case kVimDialogSizeInputMsg: ++ { ++ float size = atof(fSizesInput->Text()); ++ if (size > 0.f) { ++ fFontSize = size; ++ _UpdateFontPreview(); ++ } ++ } ++ break; ++ default: ++ break; ++ } ++ return BWindow::MessageReceived(msg); +} + +#endif /* FEAT_GUI_DIALOG */ @@ -2820,7 +3345,7 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc +// some forward declaration required by toolbar functions... +static BMessage * MenuMessage(vimmenu_T *menu); + -+VimToolbar::VimToolbar(BRect frame, const char *name) : ++VimToolbar::VimToolbar(BRect frame, const char *name) : + BBox(frame, name, B_FOLLOW_LEFT | B_FOLLOW_TOP, B_WILL_DRAW | B_FRAME_EVENTS, B_PLAIN_BORDER) +{ +} @@ -2828,9 +3353,8 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc +VimToolbar::~VimToolbar() +{ + int32 count = fButtonsList.CountItems(); -+ for(int32 i = 0; i < count; i++) { -+ delete (BPictureButton*)fButtonsList.ItemAt(i); -+ } ++ for(int32 i = 0; i < count; i++) ++ delete (BPictureButton*)fButtonsList.ItemAt(i); + fButtonsList.MakeEmpty(); + + delete normalButtonsBitmap; @@ -2843,11 +3367,11 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc +VimToolbar::AttachedToWindow() +{ + BBox::AttachedToWindow(); -+ ++ + SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); +} -+ -+ float ++ ++ float +VimToolbar::ToolbarHeight() const +{ + float size = NULL == normalButtonsBitmap ? 18. : normalButtonsBitmap->Bounds().Height(); @@ -2871,28 +3395,25 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + return true; +} + -+ bool ++ bool +VimToolbar::PrepareButtonBitmaps() +{ + // first try to load potentially customized $VIRUNTIME/bitmaps/builtin-tools.png + normalButtonsBitmap = LoadVimBitmap("builtin-tools.png"); -+ if(normalButtonsBitmap == NULL) { ++ if(normalButtonsBitmap == NULL) + // customized not found? dig application resources for "builtin-tools" one + normalButtonsBitmap = BTranslationUtils::GetBitmap(B_PNG_FORMAT, "builtin-tools"); -+ } + -+ if(normalButtonsBitmap == NULL) { ++ if(normalButtonsBitmap == NULL) + return false; -+ } + + BMessage archive; + normalButtonsBitmap->Archive(&archive); + + grayedButtonsBitmap = new BBitmap(&archive); -+ if(grayedButtonsBitmap == NULL) { ++ if(grayedButtonsBitmap == NULL) + return false; -+ } -+ ++ + // modify grayed bitmap + ModifyBitmapToGrayed(grayedButtonsBitmap); + @@ -2902,7 +3423,7 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc +BBitmap *VimToolbar::LoadVimBitmap(const char* fileName) +{ + BBitmap *bitmap = NULL; -+ ++ + int mustfree = 0; + char_u* runtimePath = vim_getenv((char_u*)"VIMRUNTIME", &mustfree); + if(runtimePath != NULL && fileName != NULL) { @@ -2911,9 +3432,8 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + bitmap = BTranslationUtils::GetBitmap(strPath.String()); + } + -+ if(mustfree) { ++ if(mustfree) + vim_free(runtimePath); -+ } + + return bitmap; +} @@ -2922,7 +3442,7 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc +VimToolbar::GetPictureFromBitmap(BPicture *pictureTo, int32 index, BBitmap *bitmapFrom, bool pressed) +{ + float size = bitmapFrom->Bounds().Height() + 1.; -+ ++ + BView view(BRect(0, 0, size, size), "", 0, 0); + + AddChild(&view); @@ -2958,12 +3478,12 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + return true; +} + -+ bool ++ bool +VimToolbar::AddButton(int32 index, vimmenu_T *menu) +{ + BPictureButton *button = NULL; + if(!menu_is_separator(menu->name)) { -+ float size = normalButtonsBitmap ? ++ float size = normalButtonsBitmap ? + normalButtonsBitmap->Bounds().Height() + 1. + ButtonMargin * 2 : 18.; + BRect frame(0, 0, size, size); + BPicture pictureOn; @@ -2984,13 +3504,11 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + bitmap = BTranslationUtils::GetBitmap((char*)buffer); + } + -+ if(bitmap == NULL && gui_find_bitmap(menu->name, buffer, (char*)"png") == OK) { ++ if(bitmap == NULL && gui_find_bitmap(menu->name, buffer, (char*)"png") == OK) + bitmap = BTranslationUtils::GetBitmap((char*)buffer); -+ } + -+ if(bitmap == NULL) { ++ if(bitmap == NULL) + bitmap = new BBitmap(BRect(0, 0, size, size), B_RGB32); -+ } + + GetPictureFromBitmap(&pictureOn, 0, bitmap, true); + GetPictureFromBitmap(&pictureOff, 0, bitmap, false); @@ -3000,16 +3518,16 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + delete bitmap; + } + -+ button = new BPictureButton(frame, (char*)menu->name, ++ button = new BPictureButton(frame, (char*)menu->name, + &pictureOff, &pictureOn, MenuMessage(menu)); -+ ++ + button->SetDisabledOn(&pictureGray); + button->SetDisabledOff(&pictureGray); + + button->SetTarget(gui.vimTextArea); + + AddChild(button); -+ ++ + menu->button = button; + } + @@ -3018,7 +3536,7 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + return result; +} + -+ bool ++ bool +VimToolbar::RemoveButton(vimmenu_T *menu) +{ + if(menu->button) { @@ -3029,18 +3547,17 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + } +} + -+ bool ++ bool +VimToolbar::GrayButton(vimmenu_T *menu, int grey) +{ + if(menu->button) { + int32 index = fButtonsList.IndexOf(menu->button); -+ if(index >= 0) { ++ if(index >= 0) + menu->button->SetEnabled(grey ? false : true); -+ } + } +} + -+ void ++ void +VimToolbar::InvalidateLayout() +{ + int32 offset = ToolbarMargin; @@ -3057,6 +3574,103 @@ diff -Naur vim72/src/gui_beos.cc vim72.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,10 +3681,10 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc +int main_exitcode = 127; + + status_t -+gui_beos_process_event(bigtime_t timeout) ++gui_haiku_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), @@ -3170,6 +3784,12 @@ diff -Naur vim72/src/gui_beos.cc vim72.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; @@ -3318,24 +3938,6 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + stat_stdin.st_ino == stat_dev_null.st_ino)) + gui.starting = TRUE; + } -+ -+ // TODO: test -+#if 0 -+ team_info ti; -+ get_team_info(getpid(), &ti); -+ BString str; -+ str << ti.argc << ":" << ti.args << "\n"; -+ BAlert *alert=new BAlert(str.String(), str.String(), "OK"); -+ alert->Go(); -+ -+ /* -+ for(size_t i = 0; i < 50; i++) { -+ snooze(1000000); -+ syslog(LOG_INFO, "vim snooze:%d\n", i); -+ } -+ */ -+#endif -+ +} + +/* @@ -3425,12 +4027,6 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + if (gui.vimWindow->Lock()) { + gui.vimWindow->Show(); + gui.vimWindow->Unlock(); -+ -+#if USE_THREAD_FOR_INPUT_WITH_TIMEOUT -+ /* Kill the thread that may have been created for the Terminal */ -+ beos_cleanup_read_thread(); -+#endif -+ + return OK; + } + @@ -3598,6 +4194,13 @@ diff -Naur vim72/src/gui_beos.cc vim72.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(); + } +} @@ -3808,6 +4411,7 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + return FAIL; +} + ++ + int +gui_mch_adjust_charsize() +{ @@ -3815,16 +4419,27 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc +} + + ++ int ++gui_mch_font_dialog(font_family* family, font_style* style, float* size) ++{ ++#if defined(FEAT_GUI_DIALOG) ++ //gui.vimWindow->Unlock(); ++ VimSelectFontDialog *dialog = new VimSelectFontDialog(family, style, size); ++ return dialog->Go(); ++#else ++ return NOFONT; ++#endif /* FEAT_GUI_DIALOG */ ++} ++ + +GuiFont +gui_mch_get_font( + char_u *name, + int giveErrorIfMissing) +{ -+ VimFont *font = NOFONT; + static VimFont *fontList = NULL; + -+ if (!gui.in_use) /* can't do this when GUI not running */ ++ if (!gui.in_use) // can't do this when GUI not running + return NOFONT; + + // storage for locally modified name; @@ -3832,6 +4447,7 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + static char font_name[buff_size] = {0}; + font_family family = {0}; + font_style style = {0}; ++ float size = 0.f; + + if (name == 0 && be_fixed_font == 0) { + if(giveErrorIfMissing) @@ -3839,16 +4455,54 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + return NOFONT; + } + -+ if (name != 0) { -+ STRNCPY(font_name, name, buff_size); -+ // replace underscores with spaces -+ char* end = 0; -+ while (end = strchr((char *)font_name, '_')) -+ *end = ' '; -+ } else { ++ bool useSelectGUI = false; ++ if (name != NULL) ++ if (STRCMP(name, "*") == 0) { ++ useSelectGUI = true; ++ STRNCPY(font_name, hl_get_font_name(), buff_size); ++ } else ++ STRNCPY(font_name, name, buff_size); ++ ++ if (font_name[0] == 0) { + be_fixed_font->GetFamilyAndStyle(&family, &style); -+ vim_snprintf(font_name, buff_size, (char*)"%s/%s/%.0f", -+ family, style, be_fixed_font->Size()); ++ size = be_fixed_font->Size(); ++ vim_snprintf(font_name, buff_size, ++ (char*)"%s/%s/%.0f", family, style, size); ++ } ++ ++ // replace underscores with spaces ++ char* end = 0; ++ while (end = strchr((char *)font_name, '_')) ++ *end = ' '; ++ ++ // store the name before strtok corrupt the buffer ;-) ++ static char buff[buff_size] = {0}; ++ STRNCPY(buff, font_name, buff_size); ++ STRNCPY(family, strtok(buff, "/\0"), B_FONT_FAMILY_LENGTH); ++ char* style_s = strtok(0, "/\0"); ++ if (style_s != 0) ++ STRNCPY(style, style_s, B_FONT_STYLE_LENGTH); ++ size = atof((style_s != 0) ? strtok(0, "/\0") : "0"); ++ ++ if (useSelectGUI) { ++ if(gui_mch_font_dialog(&family, &style, &size) == NOFONT) ++ return FAIL; ++ // compose for further processing ++ vim_snprintf(font_name, buff_size, ++ (char*)"%s/%s/%.0f", family, style, size); ++ hl_set_font_name((char_u*)font_name); ++ ++ // Set guifont to the name of the selected font. ++ char_u* new_p_guifont = alloc(STRLEN(font_name) + 1); ++ if (new_p_guifont != NULL) { ++ STRCPY(new_p_guifont, font_name); ++ vim_free(p_guifont); ++ p_guifont = new_p_guifont; ++ // Replace spaces in the font name with underscores. ++ for ( ; *new_p_guifont; ++new_p_guifont) ++ if (*new_p_guifont == ' ') ++ *new_p_guifont = '_'; ++ } + } + + VimFont *flp; @@ -3859,18 +4513,9 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + } + } + -+ // create font and store the name before strtok corrupt the buffer ;-) -+ font = new VimFont(); ++ VimFont *font = new VimFont(); + font->name = vim_strsave((char_u*)font_name); + -+ strncpy(family, strtok(font_name, "/\0"), B_FONT_FAMILY_LENGTH); -+ -+ char* style_s = strtok(0, "/\0"); -+ if(style_s != 0) -+ strncpy(style, style_s, B_FONT_STYLE_LENGTH); -+ -+ float size = atof((style_s != 0) ? strtok(0, "/\0") : "0"); -+ + if(count_font_styles(family) <= 0) { + if (giveErrorIfMissing) + EMSG2("(fe0) Specified font %s is not found", font->name); @@ -3878,12 +4523,12 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + return NOFONT; + } + -+ /* Remember font in the static list for later use */ ++ // Remember font in the static list for later use + font->next = fontList; + fontList = font; + + font->SetFamilyAndStyle(family, style); -+ if(size > 0.f) ++ if(size > 0.f) + font->SetSize(size); + + font->SetSpacing(B_FIXED_SPACING); @@ -3985,6 +4630,13 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + } +} + ++ void ++gui_mch_mousehide(int hide) ++{ ++ fprintf(stderr, "gui_mch_getmouse"); ++ // TODO ++} ++ + static int +hex_digit(int c) +{ @@ -4068,7 +4720,7 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + {"Purple", RGB(0xA0, 0x20, 0xF0)}, + {"SlateBlue", RGB(0x6A, 0x5A, 0xCD)}, + {"Violet", RGB(0xEE, 0x82, 0xEE)}, -+ // NOTE: some entries are zero-allocated for NDDYNAMIC_COLORS ++ // NOTE: some entries are zero-allocated for NDDYNAMIC_COLORS + // in this table! + }; + @@ -4144,7 +4796,7 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + */ + guicolor_T gcolour = RGB(r,g,b); + -+ //NOTE: see note above in table allocation! We are working here with ++ //NOTE: see note above in table allocation! We are working here with + // dynamically allocated names, not constant ones! + vim_free((char*)table[newColour].name); + table[newColour].name = (char *)vim_strsave((char_u *)colour); @@ -4387,7 +5039,7 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + gui_mch_flush(); + while (port_count(gui.vdcmp) > 0 && + !vim_is_input_buf_full() && -+ gui_beos_process_event(0) >= B_OK) ++ gui_haiku_process_event(0) >= B_OK) + /* nothing */ ; +} + @@ -4431,11 +5083,11 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + gui_mch_flush(); + /* + * Don't use gui_mch_update() because then we will spin-lock until a -+ * char arrives, instead we use gui_beos_process_event() to hang until ++ * char arrives, instead we use gui_haiku_process_event() to hang until + * an event arrives. No need to check for input_buf_full because we + * are returning as soon as it contains a single char. + */ -+ st = gui_beos_process_event(timeout); ++ st = gui_haiku_process_event(timeout); + + if (input_available()) + return OK; @@ -4562,6 +5214,14 @@ diff -Naur vim72/src/gui_beos.cc vim72.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; @@ -4629,21 +5289,6 @@ diff -Naur vim72/src/gui_beos.cc vim72.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. @@ -4654,16 +5299,16 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + if (gui.vimWindow->Lock()) + { +#ifdef FEAT_TOOLBAR -+ if(menu_is_toolbar(parent->name)) { ++ if(menu_is_toolbar(parent->name)) { + VimToolbar *toolbar = gui.vimForm->ToolBar(); + if(toolbar != NULL) { + toolbar->AddButton(idx, menu); + } + } else -+#endif -+ -+ if (parent->submenu_id != NULL) { -+ if ( menu_is_separator(menu->name)) { ++#endif ++ ++ 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; @@ -4776,6 +5421,26 @@ diff -Naur vim72/src/gui_beos.cc vim72.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 */ @@ -4938,10 +5603,10 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + char_u *initdir, + char_u *filter) +{ -+ gui.vimApp->fFilePanel = new BFilePanel((saving == TRUE) ? B_SAVE_PANEL : B_OPEN_PANEL, -+ NULL, NULL, 0, false, ++ gui.vimApp->fFilePanel = new BFilePanel((saving == TRUE) ? B_SAVE_PANEL : B_OPEN_PANEL, ++ NULL, NULL, 0, false, + new BMessage((saving == TRUE) ? 'save' : 'open'), NULL, true); -+ ++ + gui.vimApp->fBrowsedPath.Unset(); + + gui.vimApp->fFilePanel->Window()->SetTitle((char*)title); @@ -4959,7 +5624,7 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + fileName = vim_strsave((char_u*)gui.vimApp->fBrowsedPath.Path()); + } else + if(result != B_NO_INIT) { -+ fprintf(stderr, "gui_mch_browse: BPath error: %#08x (%s)\n", ++ fprintf(stderr, "gui_mch_browse: BPath error: %#08x (%s)\n", + result, strerror(result)); + } + @@ -4997,10 +5662,11 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + char_u *message, + char_u *buttons, + int dfltbutton, -+ char_u *textfield) ++ char_u *textfield, ++ int ex_cmd) +{ -+ VimDialog *dialog = new VimDialog(type, (char*)title, (char*)message, -+ (char*)buttons, dfltbutton, (char*)textfield); ++ VimDialog *dialog = new VimDialog(type, (char*)title, (char*)message, ++ (char*)buttons, dfltbutton, (char*)textfield, ex_cmd); + return dialog->Go(); +} + @@ -5026,13 +5692,6 @@ diff -Naur vim72/src/gui_beos.cc vim72.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) @@ -5058,7 +5717,7 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + return; +} + -+ int ++ int +im_get_status() +{ + //TODO: @@ -5073,7 +5732,7 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + gui.toolbar_height = (toolbar && showit) ? toolbar->ToolbarHeight() : 0.; +} + -+ void ++ void +gui_mch_set_toolbar_pos(int x, int y, int w, int h) +{ + VimToolbar *toolbar = gui.vimForm->ToolBar(); @@ -5085,10 +5744,115 @@ diff -Naur vim72/src/gui_beos.cc vim72.haiku/src/gui_beos.cc + } + } +} -+//} /* extern "C" */ -diff -Naur vim72/src/gui_beos.h vim72.haiku/src/gui_beos.h ---- vim72/src/gui_beos.h 1970-01-01 00:00:00.000000000 +0000 -+++ vim72.haiku/src/gui_beos.h 2009-04-18 09:16:27.000000000 +0000 ++ ++#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 vim74/src/gui_haiku.h vim74.haiku/src/gui_haiku.h +--- vim74/src/gui_haiku.h 1970-01-01 01:00:00.000000000 +0100 ++++ vim74.haiku/src/gui_haiku.h 2013-09-08 11:04:33.028311552 +0200 @@ -0,0 +1,51 @@ +/* vi:set ts=8 sts=4 sw=4: + * @@ -5098,9 +5862,9 @@ diff -Naur vim72/src/gui_beos.h vim72.haiku/src/gui_beos.h + * Do ":help uganda" in Vim to read copying and usage conditions. + * Do ":help credits" in Vim to see a list of people who contributed. + * -+ * BeOS GUI. ++ * Haiku GUI. + * -+ * GUI support for the Buzzword Enhanced Operating System for PPC. ++ * Based on "GUI support for the Buzzword Enhanced Operating System for PPC." + * + */ + @@ -5141,9 +5905,289 @@ diff -Naur vim72/src/gui_beos.h vim72.haiku/src/gui_beos.h +typedef struct VimScrollBar VimScrollBar; + +#endif -diff -Naur vim72/src/misc1.c vim72.haiku/src/misc1.c ---- vim72/src/misc1.c 2008-07-12 19:20:53.065536000 +0000 -+++ vim72.haiku/src/misc1.c 2010-05-04 21:02:55.588251136 +0000 +diff -Naur vim74/src/gui.c vim74.haiku/src/gui.c +--- vim74/src/gui.c 2013-06-30 17:41:48.054525952 +0200 ++++ vim74.haiku/src/gui.c 2013-09-08 13:53:34.025952256 +0200 +@@ -426,7 +426,7 @@ + gui.menu_width = 0; + # endif + #endif +-#if defined(FEAT_TOOLBAR) && (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA)) ++#if defined(FEAT_TOOLBAR) && (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_HAIKU)) + gui.toolbar_height = 0; + #endif + #if defined(FEAT_FOOTER) && defined(FEAT_GUI_MOTIF) +@@ -1336,10 +1336,10 @@ + text_area_y += gui.tabline_height; + #endif + +-#if defined(FEAT_TOOLBAR) && (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA)) ++#if defined(FEAT_TOOLBAR) && (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_HAIKU)) + if (vim_strchr(p_go, GO_TOOLBAR) != NULL) + { +-# ifdef FEAT_GUI_ATHENA ++# if defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_HAIKU) + gui_mch_set_toolbar_pos(0, text_area_y, + gui.menu_width, gui.toolbar_height); + # endif +@@ -1347,6 +1347,13 @@ + } + #endif + ++# if defined(FEAT_GUI_TABLINE) && (defined(FEAT_GUI_HAIKU)) ++ 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; + +@@ -1418,7 +1425,7 @@ + # endif + # endif + # if defined(FEAT_GUI_TABLINE) && (defined(FEAT_GUI_MSWIN) \ +- || defined(FEAT_GUI_MOTIF)) ++ || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_HAIKU)) + if (gui_has_tabline()) + base_height += gui.tabline_height; + # endif +@@ -1461,6 +1468,10 @@ + again: + busy = TRUE; + ++#ifdef FEAT_GUI_HAIKU ++ vim_lock_screen(); ++#endif ++ + /* Flush pending output before redrawing */ + out_flush(); + +@@ -1483,6 +1494,10 @@ + || gui.num_rows != Rows || gui.num_cols != Columns) + shell_resized(); + ++#ifdef FEAT_GUI_HAIKU ++ vim_unlock_screen(); ++#endif ++ + gui_update_scrollbars(TRUE); + gui_update_cursor(FALSE, TRUE); + #if defined(FEAT_XIM) && !defined(FEAT_GUI_GTK) +@@ -4238,9 +4253,9 @@ + y += gui.menu_height; + #endif + +-#if defined(FEAT_TOOLBAR) && (defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_ATHENA)) ++#if defined(FEAT_TOOLBAR) && (defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_HAIKU)) + if (vim_strchr(p_go, GO_TOOLBAR) != NULL) +-# ifdef FEAT_GUI_ATHENA ++# if defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_HAIKU) + y += gui.toolbar_height; + # else + # ifdef FEAT_GUI_MSWIN +@@ -4249,7 +4264,7 @@ + # endif + #endif + +-#if defined(FEAT_GUI_TABLINE) && defined(FEAT_GUI_MSWIN) ++#if defined(FEAT_GUI_TABLINE) && (defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_HAIKU)) + if (gui_has_tabline()) + y += gui.tabline_height; + #endif +@@ -4994,9 +5009,10 @@ + } + + #if ((defined(FEAT_GUI_X11) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_W32) \ +- || defined(FEAT_GUI_PHOTON)) && defined(FEAT_TOOLBAR)) || defined(PROTO) ++ || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_HAIKU)) \ ++ && defined(FEAT_TOOLBAR)) || defined(PROTO) + /* +- * This is shared between Athena, Motif and GTK. ++ * This is shared between Athena, Haiku, Motif and GTK. + */ + static void gfp_setname __ARGS((char_u *fname, void *cookie)); + +diff -Naur vim74/src/gui.h vim74.haiku/src/gui.h +--- vim74/src/gui.h 2013-06-17 22:22:49.066584576 +0200 ++++ vim74.haiku/src/gui.h 2013-09-08 11:12:43.025952256 +0200 +@@ -33,6 +33,10 @@ + # include + #endif + ++#ifdef FEAT_GUI_HAIKU ++# include "gui_haiku.h" ++#endif ++ + #ifdef FEAT_GUI_MAC + # include + /*# include */ +@@ -70,7 +74,7 @@ + * GUIs that support dropping files on a running Vim. + */ + #if defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MAC) \ +- || defined(FEAT_GUI_GTK) ++ || defined(FEAT_GUI_HAIKU) || defined(FEAT_GUI_GTK) + # define HAVE_DROP_FILE + #endif + +@@ -203,6 +207,9 @@ + scroll_shift is set to the number of shifts + to reduce the count. */ + #endif ++#if FEAT_GUI_HAIKU ++ VimScrollBar *id; /* Pointer to real scroll bar */ ++#endif + #ifdef FEAT_GUI_MAC + ControlHandle id; /* A handle to the scrollbar */ + #endif +@@ -403,7 +410,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_HAIKU)) + int tabline_height; + #endif + +@@ -412,7 +419,7 @@ + #endif + + #if defined(FEAT_TOOLBAR) \ +- && (defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_MOTIF)) ++ && (defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_HAIKU)) + int toolbar_height; /* height of the toolbar */ + #endif + +@@ -433,6 +440,14 @@ + guicolor_T currSpColor; /* Current special text color */ + #endif + ++#ifdef FEAT_GUI_HAIKU ++ VimApp *vimApp; ++ VimWindow *vimWindow; ++ VimFormView *vimForm; ++ VimTextAreaView *vimTextArea; ++ int vdcmp; /* Vim Direct Communication Message Port */ ++#endif ++ + #ifdef FEAT_GUI_MAC + WindowPtr VimWindow; + MenuHandle MacOSHelpMenu; /* Help menu provided by the MacOS */ +diff -Naur vim74/src/Makefile vim74.haiku/src/Makefile +--- vim74/src/Makefile 2013-08-10 14:21:15.034078720 +0200 ++++ vim74.haiku/src/Makefile 2013-09-12 20:30:02.171180032 +0200 +@@ -1289,6 +1289,23 @@ + APPDIR = $(VIMNAME).app + CARBONGUI_TESTARG = VIMPROG=../$(APPDIR)/Contents/MacOS/$(VIMTARGET) + ++### Haiku GUI ++HAIKUGUI_SRC = gui.c gui_haiku.cc pty.c ++HAIKUGUI_OBJ = objects/gui.o objects/gui_haiku.o objects/pty.o ++HAIKUGUI_DEFS = -DFEAT_GUI_HAIKU ++HAIKUGUI_IPATH = ++HAIKUGUI_LIBS_DIR = ++HAIKUGUI_LIBS1 = -lbe -lroot -ltracker -ltranslation ++ifeq ($(strip $(word 1, $(subst -, , $(subst ., , $(shell $(CC) -dumpversion))))), 4) ++HAIKUGUI_LIBS1 += -lsupc++ ++endif ++HAIKUGUI_LIBS2 = ++HAIKUGUI_INSTALL = install_normal install_haiku_extra ++HAIKUGUI_TARGETS = installglinks_haiku ++HAIKUGUI_MAN_TARGETS = ++HAIKUGUI_TESTTARGET = gui ++HAIKUGUI_BUNDLE = ++ + # All GUI files + ALL_GUI_SRC = gui.c gui_gtk.c gui_gtk_f.c gui_motif.c gui_xmdlg.c gui_xmebw.c gui_athena.c gui_gtk_x11.c gui_x11.c gui_at_sb.c gui_at_fs.c pty.c + ALL_GUI_PRO = gui.pro gui_gtk.pro gui_motif.pro gui_xmdlg.pro gui_athena.pro gui_gtk_x11.pro gui_x11.pro gui_w16.pro gui_w32.pro gui_photon.pro +@@ -2559,6 +2576,9 @@ + objects/gui_gtk_x11.o: gui_gtk_x11.c + $(CCC) -o $@ gui_gtk_x11.c + ++objects/gui_haiku.o: gui_haiku.cc ++ $(CCC) -o $@ gui_haiku.cc ++ + objects/gui_motif.o: gui_motif.c + $(CCC) -o $@ gui_motif.c + +@@ -2669,6 +2689,9 @@ + objects/os_beos.o: os_beos.c + $(CCC) -o $@ os_beos.c + ++objects/os_haiku.rsrc: os_haiku.rdef ++ cat $< | $(CCC) -E - | grep -v '^#' | rc -o "$@" - ++ + objects/os_qnx.o: os_qnx.c + $(CCC) -o $@ os_qnx.c + +@@ -2828,6 +2851,62 @@ + + + ############################################################################### ++### ++### Haiku installation ++### ++### This rule: ++### - add resources to already installed vim binary to avoid stripping ++### them during install; ++### - copy rgb.txt to runtime directory; ++### - update system MIME database with info about vim application. ++### ++install_haiku_extra: $(DEST_BIN)/$(VIMTARGET) objects/os_haiku.rsrc ++ xres -o $(DEST_BIN)/$(VIMTARGET) objects/os_haiku.rsrc ++ $(INSTALL_DATA) $(SCRIPTSOURCE)/rgb.txt $(DEST_RT) ++ mimeset $(DEST_BIN)/$(VIMTARGET) ++ ++### ++### List of g*-links that should be replaced with shell script equivalents. ++### This solves the problem of them from Tracker. ++### ++HAIKU_GLINKS = $(DEST_BIN)/$(GVIMTARGET) \ ++ $(DEST_BIN)/$(GVIEWTARGET) \ ++ $(DEST_BIN)/$(GVIMDIFFTARGET) \ ++ $(DEST_BIN)/$(RGVIMTARGET) \ ++ $(DEST_BIN)/$(RGVIEWTARGET) ++### ++### This rule: ++### - Replace gvim link with copy of vim binary. ++### - Replace g*-links with shell script equivalents to solve the problem ++### of calling them from Tracker, ++### - Add icon resources to mentioned g*-link shell scripts ++### - in case gui-less vim.con executable available use it. ++### ++installglinks_haiku: $(HAIKU_GLINKS) install_haiku_extra ++ @catattr -r "BEOS:ICON" $(DEST_BIN)/$(GVIMTARGET) > ~icon.attr ++ for i in $(HAIKU_GLINKS); do \ ++ rm $$i ; \ ++ echo "#!/bin/sh" > $$i ; \ ++ case $$i in \ ++ $(DEST_BIN)/$(GVIMTARGET)) \ ++ cp $(DEST_BIN)/$(VIMTARGET) $$i ; \ ++ if [ -f $(VIMTARGET).con ] ; then \ ++ $(STRIP) $(VIMTARGET).con ; \ ++ mv $(VIMTARGET).con $(DEST_BIN)/$(VIMTARGET) ; \ ++ fi ;; \ ++ $(DEST_BIN)/$(GVIEWTARGET)) printf "%s -R %c%c" $(GVIMTARGET) '$$' '*' >> $$i;; \ ++ $(DEST_BIN)/$(GVIMDIFFTARGET)) printf "%s -d %c%c" $(GVIMTARGET) '$$' '*' >> $$i;; \ ++ $(DEST_BIN)/$(RGVIMTARGET)) printf "%s -Z %c%c" $(GVIMTARGET) '$$' '*' >> $$i;; \ ++ $(DEST_BIN)/$(RGVIEWTARGET)) printf "%s -Z -R %c%c" $(GVIMTARGET) '$$' '*' >> $$i;; \ ++ *) printf "%s %c%c" $(GVIMTARGET) '$$' '*' >> $$i;; \ ++ esac ; \ ++ chmod $(BINMOD) $$i ; \ ++ addattr -f ~icon.attr -t \'VICN\' BEOS:ICON $$i ; \ ++ done ++ addattr -f ~icon.attr -t \'VICN\' BEOS:ICON $(DEST_BIN)/$(VIMNAME)tutor ++ @rm ~icon.attr ++ ++############################################################################### + ### (automatically generated by 'make depend') + ### Dependencies: + objects/blowfish.o: blowfish.c vim.h auto/config.h feature.h os_unix.h \ +diff -Naur vim74/src/misc1.c vim74.haiku/src/misc1.c +--- vim74/src/misc1.c 2013-08-03 17:29:33.031981568 +0200 ++++ vim74.haiku/src/misc1.c 2013-09-08 10:34:11.039059456 +0200 @@ -14,6 +14,10 @@ #include "vim.h" #include "version.h" @@ -5154,8 +6198,8 @@ diff -Naur vim72/src/misc1.c vim72.haiku/src/misc1.c + static char_u *vim_version_dir __ARGS((char_u *vimdir)); static char_u *remove_tail __ARGS((char_u *p, char_u *pend, char_u *name)); - static int copy_indent __ARGS((int size, char_u *src)); -@@ -3875,7 +3879,18 @@ + #if defined(FEAT_CMDL_COMPL) +@@ -4179,7 +4183,16 @@ vimruntime = (STRCMP(name, "VIMRUNTIME") == 0); if (!vimruntime && STRCMP(name, "VIM") != 0) @@ -5164,195 +6208,98 @@ diff -Naur vim72/src/misc1.c vim72.haiku/src/misc1.c + // special handling for user settings directory... + if(STRCMP(name, "BE_USER_SETTINGS") == 0) { + static char userSettingsPath[MAXPATHL] = {0}; -+ if(B_OK == find_directory(B_USER_SETTINGS_DIRECTORY, 0, -+ false, userSettingsPath, MAXPATHL)) -+ { ++ if(B_OK == find_directory(B_USER_SETTINGS_DIRECTORY, 0, ++ false, userSettingsPath, MAXPATHL)) + return userSettingsPath; -+ } -+ } else ++ } else +#endif + return NULL; /* * When expanding $VIMRUNTIME fails, try using $VIM/vim or $VIM. -diff -Naur vim72/src/normal.c vim72.haiku/src/normal.c ---- vim72/src/normal.c 2009-04-19 20:53:33.000000000 +0000 -+++ vim72.haiku/src/normal.c 2009-04-18 09:16:31.000000000 +0000 -@@ -5280,7 +5280,8 @@ - { - if (!checkclearop(cap->oap)) - { --#if defined(__BEOS__) && !USE_THREAD_FOR_INPUT_WITH_TIMEOUT -+#if defined(__BEOS__) || defined(__HAIKU__) -+#if !USE_THREAD_FOR_INPUT_WITH_TIMEOUT - /* - * 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 -@@ -5288,6 +5289,7 @@ - */ - ui_get_shellsize(); +diff -Naur vim74/src/normal.c vim74.haiku/src/normal.c +--- vim74/src/normal.c 2013-07-14 13:24:37.040108032 +0200 ++++ vim74.haiku/src/normal.c 2013-09-10 21:55:35.962330624 +0200 +@@ -2750,13 +2750,14 @@ + if (!is_click) + return FALSE; #endif -+#endif - #ifdef FEAT_SYN_HL - /* Clear all syntax states to force resyncing. */ - syn_stack_free_all(curbuf); -diff -Naur vim72/src/option.h vim72.haiku/src/option.h ---- vim72/src/option.h 2009-04-19 20:53:33.000000000 +0000 -+++ vim72.haiku/src/option.h 2009-04-26 08:55:46.000000000 +0000 -@@ -9,7 +9,8 @@ - /* +-#if defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_MSWIN) ++#if defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_HAIKU) + 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_HAIKU) + if (gui.in_use) + { + jump_flags = 0; +diff -Naur vim74/src/option.h vim74.haiku/src/option.h +--- vim74/src/option.h 2013-06-26 18:41:39.057147392 +0200 ++++ vim74.haiku/src/option.h 2013-09-08 10:40:12.042467328 +0200 +@@ -10,6 +10,8 @@ * option.h: definition of global variables for settable options */ -- + +#ifndef _OPTION_H_ +#define _OPTION_H_ /* * Default values for 'errorformat'. * The "%f|%l| %m" one is used for when the contents of the quickfix window is -@@ -1072,3 +1073,4 @@ +@@ -1109,3 +1111,4 @@ , WV_WRAP , WV_COUNT /* must be the last one */ }; +#endif //_OPTION_H_ -diff -Naur vim72/src/os_beos.c vim72.haiku/src/os_beos.c ---- vim72/src/os_beos.c 2009-04-19 20:52:33.000000000 +0000 -+++ vim72.haiku/src/os_beos.c 2009-04-26 20:55:51.000000000 +0000 -@@ -15,6 +15,7 @@ - #include - #include - #include "vim.h" -+//#include "os_beos.h" - - #if USE_THREAD_FOR_INPUT_WITH_TIMEOUT - -@@ -23,8 +24,8 @@ - #define thread_id int - #endif - --char_u charbuf; --signed char charcount; -+volatile char_u charbuf; -+volatile signed char charcount; - sem_id character_present; - sem_id character_wanted; - thread_id read_thread_id; -@@ -50,7 +51,7 @@ - for (;;) { - if (acquire_sem(character_wanted) != B_NO_ERROR) - break; -- charcount = read(read_cmd_fd, &charbuf, 1); -+ charcount = read(read_cmd_fd, (char_u*)&charbuf, 1); - release_sem(character_present); - } - -@@ -70,13 +71,18 @@ - - #endif - -+#ifdef __BEOS__ +diff -Naur vim74/src/os_haiku.h vim74.haiku/src/os_haiku.h +--- vim74/src/os_haiku.h 1970-01-01 01:00:00.000000000 +0100 ++++ vim74.haiku/src/os_haiku.h 2013-09-10 21:55:56.656670720 +0200 +@@ -0,0 +1,29 @@ ++/* vi:set ts=8 sts=4 sw=4: ++ * ++ * VIM - Vi IMproved by Bram Moolenaar ++ * Haiku port by Siarzhuk Zharski ++ * ++ * Do ":help uganda" in Vim to read copying and usage conditions. ++ * Do ":help credits" in Vim to see a list of people who contributed. ++ */ + - /* - * select() emulation. Hopefully, in DR9 there will be something - * useful supplied by the system. ... Alas, not. Not in AAPR, nor - * in PR or even PR2... R3 then maybe? I don't think so! - */ - -- int -+/* sz: Haiku has finally select() support -+ * and not require this emulation, I hope! */ -+ -+ int - beos_select(int nbits, - struct fd_set *rbits, - struct fd_set *wbits, -@@ -84,7 +90,11 @@ - struct timeval *timeout) - { - bigtime_t tmo; -- -+// TODO !!!! -+#ifdef FEAT_GUI_BEOS -+ if(gui.in_use) -+ return select(nbits, rbits, wbits, ebits, timeout); -+#endif - if (nbits == 0) { - /* select is purely being used for delay */ - snooze(timeout->tv_sec * 1e6 + timeout->tv_usec); -@@ -153,13 +163,15 @@ - acquired = acquire_sem(character_present); - if (acquired == B_NO_ERROR) { - if (charcount > 0) { -- add_to_input_buf(&charbuf, 1); -+ add_to_input_buf((char_u*)&charbuf, charcount); - #if !TRY_ABORT - release_sem(character_wanted); - #endif - - return 1; - } else { -+ charbuf = 0; -+ add_to_input_buf((char_u*)&charbuf, 1); - #if !TRY_ABORT - release_sem(character_wanted); - #endif -@@ -183,7 +195,7 @@ - if (acquired == B_TIMED_OUT) - acquire_sem(character_present); - if (charcount > 0) { -- add_to_input_buf(&charbuf, 1); -+ add_to_input_buf(&charbuf, charcount); - return 1; - } - return 0; -@@ -192,6 +204,19 @@ - } - #endif - -+ -+#if 0 // FEAT_GUI_BEOS -+ /* -+ * If not reading from terminal, pretend there is input. -+ * This makes the pty reading (for the GUI) "work" for -+ * :!ls but not for :r !ls ... weird. -+ */ -+ if (gui.in_use && State == EXTERNCMD) -+ return 1; -+#endif -+ - return 0; - } - -+#endif /* __BEOS__ */ -+ -diff -Naur vim72/src/os_beos.h vim72.haiku/src/os_beos.h ---- vim72/src/os_beos.h 2009-04-19 20:52:33.000000000 +0000 -+++ vim72.haiku/src/os_beos.h 2009-04-18 09:16:37.000000000 +0000 -@@ -20,6 +20,11 @@ - #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" -+ -+#define VIMINFO_FILE "$BE_USER_SETTINGS/vim/viminfo" -+ - /* select emulation */ - --#include /* for typedefs and #defines only */ -+//#include /* for typedefs and #defines only */ -diff -Naur vim72/src/os_beos.rdef vim72.haiku/src/os_beos.rdef ---- vim72/src/os_beos.rdef 1970-01-01 00:00:00.000000000 +0000 -+++ vim72.haiku/src/os_beos.rdef 2009-05-05 21:11:42.000000000 +0000 -@@ -0,0 +1,205 @@ +/* -+ * Vim.rdef ++ * os_haiku.h ++ */ ++ ++#define USE_TERM_CONSOLE ++ ++#define USR_VIM_DIR "$BE_USER_SETTINGS/vim" ++ ++#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" ++ ++#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 +diff -Naur vim74/src/os_haiku.rdef vim74.haiku/src/os_haiku.rdef +--- vim74/src/os_haiku.rdef 1970-01-01 01:00:00.000000000 +0100 ++++ vim74.haiku/src/os_haiku.rdef 2013-09-12 20:47:39.818151424 +0200 +@@ -0,0 +1,143 @@ ++/* ++ * os_haiku.rdef + */ + +resource app_signature "application/x-vnd.Haiku-Vim-7"; + +resource app_version { + major = 7, -+ middle = 2, ++ middle = 4, + minor = 0, + + variety = B_APPV_FINAL, @@ -5362,7 +6309,6 @@ diff -Naur vim72/src/os_beos.rdef vim72.haiku/src/os_beos.rdef + long_info = "VI Improved Editor by Bram Moolenaar et al." +}; + -+//resource app_flags B_SINGLE_LAUNCH; +resource app_flags B_MULTIPLE_LAUNCH; + +resource file_types message { @@ -5376,8 +6322,6 @@ diff -Naur vim72/src/os_beos.rdef vim72.haiku/src/os_beos.rdef + "types" = "text/x-jamfile" +}; + -+#ifdef __HAIKU__ -+ +resource vector_icon { + $"6E636966050501020006023B8CFD3CB8E4BF59B63E2F604BACDB47A13E00FFFF" + $"FFFF909DA702000603BAF8BA3CE3F6BF8EB9BDA8484BC75C4AEA1200C1C7CC79" @@ -5404,64 +6348,6 @@ diff -Naur vim72/src/os_beos.rdef vim72.haiku/src/os_beos.rdef + $"0203020304281D1F15FF" +}; + -+#else // HAIKU_TARGET_PLATFORM_HAIKU -+ -+resource large_icon array { -+ $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" -+ $"FFFFFFFFFFFFFFFFFFFFFFFFFFFF01343500FFFFFFFFFFFFFFFFFFFFFFFFFFFF" -+ $"FFFFFF00000000000001000000003439393400FF000000000000000000FFFFFF" -+ $"FFFF001F1F1F1F1F1F1F1F1F1F1F0039393934001F1F1F1F1F1F1F1F1F00FFFF" -+ $"FFFF001F181818181818181818181800393939001F18181818181818171800FF" -+ $"FFFFFF00181818181818181818181000393939390018181818181818181000FF" -+ $"FFFFFFFF0010181818181818100F0039393939393900101818181818101000FF" -+ $"FFFFFFFF001F1818181818181000393939393939001F1818181818101000FFFF" -+ $"FFFFFFFF001F18181818181810003939393939001F1F18181818101000FFFFFF" -+ $"FFFFFFFF001F181818181818100039393939001F1F18181818101000FFFFFFFF" -+ $"FFFFFFFF001F1818191818181000393939001F1F18181818101001FFFFFFFFFF" -+ $"FFFFFFFF001F18181818181810003939001F1F181818181010003400FFFFFFFF" -+ $"FFFFFF01001F181818181818100039001F1F1818181810100039393500FFFFFF" -+ $"FFFF0135001F1818171818181000001F1F18181818101000393939393401FFFF" -+ $"FF013439001F1818181818180F001F1F19171818100F003939393939393501FF" -+ $"00353939001F181818181818101F1F1818181810100039393939393939393501" -+ $"01253939001F181818181818101F181818171010003939393939393939392500" -+ $"FF002539001F18181818181810181817181010003939393939393939392500FF" -+ $"FFFF0025001F181818181818181818180000003939393939393939392501FFFF" -+ $"FFFFFF00001F1818181818181818180017180139393939393939392500FFFFFF" -+ $"FFFFFFFF001F18181818181818181800181800393939393939392500FFFFFFFF" -+ $"FFFFFFFF001F1818181818181818100000003900000139000000000000FFFFFF" -+ $"FFFFFFFF001F181818181818181000181818001818180018181800171801FFFF" -+ $"FFFFFFFF001F18181818181810100000181800001818181818181818181801FF" -+ $"FFFFFFFF001F181818181810100000181800000018182525181800001801FFFF" -+ $"FFFFFFFF001F181818181010003900181800001817250018180000181800FFFF" -+ $"FFFFFFFF001F181818101000393900181800001818000018180000181800FFFF" -+ $"FFFFFFFF001F1818101000002500181800001818000018180000181800FFFFFF" -+ $"FFFFFFFFFF0018101100FFFF000018181800181800001818000018181801FFFF" -+ $"FFFFFFFFFFFF000000FFFFFFFF01000000250000FFFF0100FFFF010000FFFFFF" -+ $"FFFFFFFFFFFFFFFFFFFFFFFFFFFF01252501FFFFFFFFFFFFFFFFFFFFFFFFFFFF" -+ $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" -+}; -+ -+resource mini_icon array { -+ $"FFFF00000000003434FF00000000FFFF" -+ $"FF001F1F1F1F1F0439001F1F1F1F03FF" -+ $"FF001818181818100000181818181000" -+ $"FFFF00181818100039001F18181000FF" -+ $"FFFF001818181000001F18181000FFFF" -+ $"FFFF0018181810001F1818100025FFFF" -+ $"FF3400181818101F18181000393925FF" -+ $"34390018181818180000393939393925" -+ $"00390018181818001800000039003925" -+ $"FF0000181818180000001818001800FF" -+ $"FFFF0018181800181800181818181800" -+ $"FFFF0018181800001800180018001800" -+ $"FFFF0018181039001800182518001800" -+ $"FFFF0018100000181800180018001800" -+ $"FFFFFF0000FF2500002500FF00FF00FF" -+ $"FFFFFFFFFFFFFF2525FFFFFFFFFFFFFF" -+}; -+ -+#endif // HAIKU_TARGET_PLATFORM_HAIKU -+ +resource(1, "builtin-tools") #'PNG ' array { + $"89504E470D0A1A0A0000000D494844520000022E0000001208030000004BB3A5" + $"1200000300504C5445000000800000008000808000000080800080008080C0C0" @@ -5548,64 +6434,62 @@ diff -Naur vim72/src/os_beos.rdef vim72.haiku/src/os_beos.rdef + $"4CFAEF79764372DC201F65AC97B792C14FE6F387DBB4F83918273C6E9B866FD9" + $"FF17F6CF36F92F1B9E631E8B8F3FBC0000000049454E44AE426082" +}; -+ -diff -Naur vim72/src/os_unix.c vim72.haiku/src/os_unix.c ---- vim72/src/os_unix.c 2009-04-19 20:53:35.000000000 +0000 -+++ vim72.haiku/src/os_unix.c 2009-04-26 20:57:12.000000000 +0000 -@@ -1094,7 +1094,7 @@ - mch_suspend() - { - /* BeOS does have SIGTSTP, but it doesn't work. */ --#if defined(SIGTSTP) && !defined(__BEOS__) -+#if defined(SIGTSTP) && !defined(__BEOS__) && !defined(__HAIKU__) - out_flush(); /* needed to make cursor visible on some systems */ - settmode(TMODE_COOK); - out_flush(); /* needed to disable mouse on some systems */ -@@ -1966,6 +1966,11 @@ +diff -Naur vim74/src/os_unix.c vim74.haiku/src/os_unix.c +--- vim74/src/os_unix.c 2013-07-03 16:32:32.020709376 +0200 ++++ vim74.haiku/src/os_unix.c 2013-09-11 21:47:52.978059264 +0200 +@@ -2092,7 +2092,7 @@ + if (get_x11_windis() == OK) + type = 1; + #else +-# if defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC) || defined(FEAT_GUI_GTK) ++# if defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_HAIKU) if (gui.in_use) type = 1; # endif -+# ifdef FEAT_GUI_BEOS -+ /* TODO: If this means (gui.in_use) why not merge with above? (Dany) */ -+ /* we always have a 'window' */ -+ type = 1; -+# endif - #endif - - /* -@@ -1990,7 +1995,7 @@ +@@ -2120,7 +2120,7 @@ # endif set_x11_title(title); /* x11 */ #endif -#if defined(FEAT_GUI_GTK) \ -+#if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_BEOS)\ ++#if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_HAIKU)\ || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC) else gui_mch_settitle(title, icon); -@@ -3033,7 +3038,9 @@ - ml_close_all(TRUE); /* remove all memfiles */ - may_core_dump(); - #ifdef FEAT_GUI -+# ifndef FEAT_GUI_BEOS /* BeOS always has GUI */ - if (gui.in_use) -+# endif - gui_exit(r); - #endif - -@@ -3865,7 +3872,7 @@ +@@ -4153,7 +4153,7 @@ if (!pipe_error) /* pty or pipe opened or not used */ { -# ifdef __BEOS__ -+# if defined(__BEOS__) || defined(__HAIKU__) && USE_THREAD_FOR_INPUT_WITH_TIMEOUT ++# if defined(__BEOS__) && USE_THREAD_FOR_INPUT_WITH_TIMEOUT beos_cleanup_read_thread(); # endif -diff -Naur vim72/src/proto/gui_beos.pro vim72.haiku/src/proto/gui_beos.pro ---- vim72/src/proto/gui_beos.pro 1970-01-01 00:00:00.000000000 +0000 -+++ vim72.haiku/src/proto/gui_beos.pro 2009-05-04 07:23:00.000000000 +0000 -@@ -0,0 +1,83 @@ -+/* gui_beos.cc - hand crafted */ +diff -Naur vim74/src/os_unix.h vim74.haiku/src/os_unix.h +--- vim74/src/os_unix.h 2013-06-12 20:09:44.053477376 +0200 ++++ vim74.haiku/src/os_unix.h 2013-09-08 10:53:04.045875200 +0200 +@@ -416,6 +416,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 +@@ -430,6 +432,8 @@ + # endif + #endif + ++#endif ++ + #ifdef OS2 + /* + * Try several directories to put the temp files. +diff -Naur vim74/src/proto/gui_haiku.pro vim74.haiku/src/proto/gui_haiku.pro +--- vim74/src/proto/gui_haiku.pro 1970-01-01 01:00:00.000000000 +0100 ++++ vim74.haiku/src/proto/gui_haiku.pro 2013-09-13 21:09:33.540278784 +0200 +@@ -0,0 +1,91 @@ ++/* gui_haiku.cc - hand crafted */ +void gui_mch_prepare __ARGS((int *argc, char **argv)); +int gui_mch_init __ARGS((void)); +int gui_mch_open __ARGS((void)); @@ -5662,6 +6546,7 @@ diff -Naur vim72/src/proto/gui_beos.pro vim72.haiku/src/proto/gui_beos.pro + +void gui_mch_getmouse __ARGS((int *x, int *y)); +void gui_mch_setmouse __ARGS((int x, int y)); ++void gui_mch_mousehide __ARGS((int hide)); + +void gui_mch_enable_menu __ARGS((int flag)); +void gui_mch_set_menu_pos __ARGS((int x, int y, int w, int h)); @@ -5680,7 +6565,7 @@ diff -Naur vim72/src/proto/gui_beos.pro vim72.haiku/src/proto/gui_beos.pro +int clip_mch_own_selection __ARGS((VimClipboard *cbd)); + +char_u* gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter)); -+int gui_mch_dialog __ARGS((int type, char_u *title, char_u* message, char_u *buttons, int dfltbutton, char_u* textfield)); ++int gui_mch_dialog __ARGS((int type, char_u *title, char_u* message, char_u *buttons, int dfltbutton, char_u* textfield, int ex_cmd)); + +void im_set_position __ARGS((int row, int col)); +void im_set_active __ARGS((int activate)); @@ -5688,40 +6573,30 @@ diff -Naur vim72/src/proto/gui_beos.pro vim72.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)); -diff -Naur vim72/src/proto/os_beos.pro vim72.haiku/src/proto/os_beos.pro ---- vim72/src/proto/os_beos.pro 1970-01-01 00:00:00.000000000 +0000 -+++ vim72.haiku/src/proto/os_beos.pro 2009-04-18 09:16:46.000000000 +0000 -@@ -0,0 +1,4 @@ -+/* os_beos.c */ -+void beos_cleanup_read_thread __ARGS((void)); -+int beos_select __ARGS((int nbits, struct fd_set *rbits, struct fd_set *wbits, struct fd_set *ebits, struct timeval *timeout)); -+/* vim: set ft=c : */ -diff -Naur vim72/src/proto.h vim72.haiku/src/proto.h ---- vim72/src/proto.h 2009-04-19 20:53:35.000000000 +0000 -+++ vim72.haiku/src/proto.h 2009-04-18 09:16:47.000000000 +0000 -@@ -59,7 +59,7 @@ - # ifdef VMS - # include "os_vms.pro" - # endif --# ifdef __BEOS__ -+# if defined(__BEOS__) || defined(__HAIKU__) - # include "os_beos.pro" - # endif - # ifdef RISCOS -@@ -211,6 +211,9 @@ ++ ++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)); ++// char_u *gui_mch_font_dialog __ARGS((char_u *oldval)); +diff -Naur vim74/src/proto.h vim74.haiku/src/proto.h +--- vim74/src/proto.h 2013-02-26 14:18:19.015990784 +0100 ++++ vim74.haiku/src/proto.h 2013-09-10 20:20:53.868483072 +0200 +@@ -238,6 +238,9 @@ extern char *vim_SelFile __ARGS((Widget toplevel, char *prompt, char *init_path, int (*show_entry)(), int x, int y, guicolor_T fg, guicolor_T bg, guicolor_T scroll_fg, guicolor_T scroll_bg)); # endif # endif -+# ifdef FEAT_GUI_BEOS -+# include "gui_beos.pro" ++# ifdef FEAT_GUI_HAIKU ++# include "gui_haiku.pro" +# endif # ifdef FEAT_GUI_MAC # include "gui_mac.pro" # endif -diff -Naur vim72/src/pty.c vim72.haiku/src/pty.c ---- vim72/src/pty.c 2009-04-19 20:53:35.000000000 +0000 -+++ vim72.haiku/src/pty.c 2009-04-18 09:16:47.000000000 +0000 -@@ -352,7 +352,7 @@ +diff -Naur vim74/src/pty.c vim74.haiku/src/pty.c +--- vim74/src/pty.c 2012-01-20 21:07:56.056623104 +0100 ++++ vim74.haiku/src/pty.c 2013-09-08 10:58:43.004980736 +0200 +@@ -356,7 +356,7 @@ static char PtyProto[] = "/dev/ptym/ptyXY"; static char TtyProto[] = "/dev/pty/ttyXY"; # else @@ -5730,80 +6605,83 @@ diff -Naur vim72/src/pty.c vim72.haiku/src/pty.c static char PtyProto[] = "/dev/pt/XY"; static char TtyProto[] = "/dev/tt/XY"; # else -diff -Naur vim72/src/screen.c vim72.haiku/src/screen.c ---- vim72/src/screen.c 2009-04-19 20:53:34.000000000 +0000 -+++ vim72.haiku/src/screen.c 2009-04-18 09:16:47.000000000 +0000 -@@ -7393,6 +7393,10 @@ +diff -Naur vim74/src/screen.c vim74.haiku/src/screen.c +--- vim74/src/screen.c 2013-07-13 12:23:00.031457280 +0200 ++++ vim74.haiku/src/screen.c 2013-09-08 13:30:04.007077888 +0200 +@@ -8167,6 +8167,10 @@ win_new_shellsize(); /* fit the windows in the new sized shell */ -+#ifdef FEAT_GUI_BEOS ++#ifdef FEAT_GUI_HAIKU + vim_lock_screen(); /* be safe, put it here */ +#endif + comp_col(); /* recompute columns for shown command and ruler */ /* -@@ -7624,6 +7628,9 @@ +@@ -8410,6 +8414,10 @@ } #endif -+#ifdef FEAT_GUI_BEOS ++#ifdef FEAT_GUI_HAIKU + vim_unlock_screen(); +#endif ++ entered = FALSE; --RedrawingDisabled; -@@ -8478,6 +8485,9 @@ +@@ -9273,6 +9281,10 @@ clip_scroll_selection(-line_count); #endif -+#ifdef FEAT_GUI_BEOS ++#ifdef FEAT_GUI_HAIKU + vim_lock_screen(); +#endif ++ #ifdef FEAT_GUI /* Don't update the GUI cursor here, ScreenLines[] is invalid until the * scrolling is actually carried out. */ -@@ -8530,6 +8540,10 @@ +@@ -9325,6 +9337,10 @@ } } -+#ifdef FEAT_GUI_BEOS ++#ifdef FEAT_GUI_HAIKU + vim_unlock_screen(); +#endif + screen_stop_highlight(); windgoto(cursor_row, 0); -@@ -8700,6 +8714,9 @@ +@@ -9494,6 +9510,10 @@ clip_scroll_selection(line_count); #endif -+#ifdef FEAT_GUI_BEOS ++#ifdef FEAT_GUI_HAIKU + vim_lock_screen(); +#endif ++ #ifdef FEAT_GUI /* Don't update the GUI cursor here, ScreenLines[] is invalid until the * scrolling is actually carried out. */ -@@ -8759,6 +8776,10 @@ +@@ -9553,6 +9573,10 @@ } } -+#ifdef FEAT_GUI_BEOS ++#ifdef FEAT_GUI_HAIKU + vim_unlock_screen(); +#endif + screen_stop_highlight(); #ifdef FEAT_VERTSPLIT -diff -Naur vim72/src/structs.h vim72.haiku/src/structs.h ---- vim72/src/structs.h 2009-04-19 20:53:34.000000000 +0000 -+++ vim72.haiku/src/structs.h 2009-04-18 09:16:47.000000000 +0000 -@@ -2239,6 +2239,13 @@ +diff -Naur vim74/src/structs.h vim74.haiku/src/structs.h +--- vim74/src/structs.h 2013-07-03 15:35:59.052166656 +0200 ++++ vim74.haiku/src/structs.h 2013-09-08 11:00:02.008650752 +0200 +@@ -2415,6 +2415,13 @@ HMENU submenu_id; /* If this is submenu, add children here */ HWND tearoff_handle; /* hWnd of tearoff if created */ #endif -+#if FEAT_GUI_BEOS ++#if FEAT_GUI_HAIKU + BMenuItem *id; /* Id of menu item */ + BMenu *submenu_id; /* If this is submenu, add children here */ +# ifdef FEAT_TOOLBAR @@ -5813,10 +6691,10 @@ diff -Naur vim72/src/structs.h vim72.haiku/src/structs.h #ifdef FEAT_GUI_MAC /* MenuHandle id; */ /* short index; */ /* the item index within the father menu */ -diff -Naur vim72/src/term.c vim72.haiku/src/term.c ---- vim72/src/term.c 2009-04-19 20:53:35.000000000 +0000 -+++ vim72.haiku/src/term.c 2009-04-23 22:45:55.000000000 +0000 -@@ -1436,6 +1436,11 @@ +diff -Naur vim74/src/term.c vim74.haiku/src/term.c +--- vim74/src/term.c 2013-07-04 22:29:28.027262976 +0200 ++++ vim74.haiku/src/term.c 2013-09-08 11:00:43.010485760 +0200 +@@ -1382,6 +1382,11 @@ # define DEFAULT_TERM (char_u *)"beos-ansi" #endif @@ -5828,32 +6706,32 @@ diff -Naur vim72/src/term.c vim72.haiku/src/term.c #ifndef DEFAULT_TERM # define DEFAULT_TERM (char_u *)"dumb" #endif -diff -Naur vim72/src/ui.c vim72.haiku/src/ui.c ---- vim72/src/ui.c 2009-04-19 20:53:35.000000000 +0000 -+++ vim72.haiku/src/ui.c 2009-04-18 09:16:55.000000000 +0000 -@@ -269,7 +269,7 @@ - mch_suspend(); - } +diff -Naur vim74/src/ui.c vim74.haiku/src/ui.c +--- vim74/src/ui.c 2013-07-13 20:57:08.021495808 +0200 ++++ vim74.haiku/src/ui.c 2013-09-10 22:29:30.828637184 +0200 +@@ -3109,7 +3109,7 @@ --#if !defined(UNIX) || !defined(SIGTSTP) || defined(PROTO) || defined(__BEOS__) -+#if !defined(UNIX) || !defined(SIGTSTP) || defined(PROTO) || defined(__BEOS__) || defined(__HAIKU__) + #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_HAIKU) || defined(PROTO) /* - * When the OS can't really suspend, call this function to start a shell. - * This is never called in the GUI. -diff -Naur vim72/src/version.c vim72.haiku/src/version.c ---- vim72/src/version.c 2009-04-19 20:53:35.000000000 +0000 -+++ vim72.haiku/src/version.c 2009-04-23 22:39:10.000000000 +0000 -@@ -893,6 +893,9 @@ + * Translate window coordinates to buffer position without any side effects + */ +diff -Naur vim74/src/version.c vim74.haiku/src/version.c +--- vim74/src/version.c 2013-08-10 13:29:20.000786432 +0200 ++++ vim74.haiku/src/version.c 2013-09-08 11:03:25.036438016 +0200 +@@ -1029,6 +1029,9 @@ MSG_PUTS(_("with X11-Athena GUI.")); # endif # else -+# ifdef FEAT_GUI_BEOS -+ MSG_PUTS(_("with BeOS/Haiku GUI.")); ++# ifdef FEAT_GUI_HAIKU ++ MSG_PUTS(_("with Haiku GUI.")); +# else # ifdef FEAT_GUI_PHOTON MSG_PUTS(_("with Photon GUI.")); # else -@@ -910,6 +913,7 @@ +@@ -1046,6 +1049,7 @@ # endif # endif # endif @@ -5861,32 +6739,35 @@ diff -Naur vim72/src/version.c vim72.haiku/src/version.c # endif # endif # endif -diff -Naur vim72/src/vim.h vim72.haiku/src/vim.h ---- vim72/src/vim.h 2009-04-19 20:53:35.000000000 +0000 -+++ vim72.haiku/src/vim.h 2009-04-23 22:01:06.000000000 +0000 -@@ -95,6 +95,7 @@ +diff -Naur vim74/src/vim.h vim74.haiku/src/vim.h +--- vim74/src/vim.h 2013-08-02 16:02:27.018350080 +0200 ++++ vim74.haiku/src/vim.h 2013-09-10 20:20:34.087556096 +0200 +@@ -123,6 +123,7 @@ || defined(FEAT_GUI_MAC) \ || defined(FEAT_GUI_W32) \ || defined(FEAT_GUI_W16) \ -+ || defined(FEAT_GUI_BEOS) \ ++ || defined(FEAT_GUI_HAIKU) \ || defined(FEAT_GUI_PHOTON) + # define FEAT_GUI_ENABLED /* also defined with NO_X11_INCLUDES */ # if !defined(FEAT_GUI) && !defined(NO_X11_INCLUDES) - # define FEAT_GUI -@@ -235,7 +236,7 @@ - # define __ARGS(x) x - #endif - --#ifdef __BEOS__ -+#if defined(__BEOS__) || defined(__HAIKU__) - # include "os_beos.h" +@@ -266,6 +267,11 @@ # define __ARGS(x) x #endif -@@ -1789,6 +1790,9 @@ + ++#ifdef __HAIKU__ ++# include "os_haiku.h" ++# define __ARGS(x) x ++#endif ++ + #if (defined(UNIX) || defined(__EMX__) || defined(VMS)) \ + && (!defined(MACOS_X) || defined(HAVE_CONFIG_H)) + # include "os_unix.h" /* bring lots of system header files */ +@@ -1927,6 +1933,9 @@ int_u format; /* Vim's own special clipboard format */ int_u format_raw; /* Vim's raw text clipboard format */ # endif -+# ifdef FEAT_GUI_BEOS -+ /* no clipboard at the moment */ ++# ifdef FEAT_GUI_HAIKU ++ /* no clipboard at the moment. TODO???? */ +# endif } VimClipboard; #else diff --git a/app-editors/vim/vim-7.2.recipe b/app-editors/vim/vim-7.2.recipe deleted file mode 100644 index 8d7496e91..000000000 --- a/app-editors/vim/vim-7.2.recipe +++ /dev/null @@ -1,22 +0,0 @@ -DESCRIPTION="Vim is highly configurable text editor." -HOMEPAGE="http://www.vim.org" -SRC_URI="http://www.bedrivers.com/vim72-with-lang-and-extra.zip" -REVISION="1" -CHECKSUM_MD5="c368894a65c09605517fd56ced57fb12" -STATUS_HAIKU="unstable" -DEPEND="" -BUILD() -{ - cd vim72 - cd src - make autoconf - cd ../ - ./configure --prefix=`finddir B_COMMON_DIRECTORY` --with-features=big - make -} - -INSTALL() -{ - cd vim72 - make install -} diff --git a/app-editors/vim/vim-7.3.recipe b/app-editors/vim/vim-7.3.recipe index 507f4fd26..21e92af03 100644 --- a/app-editors/vim/vim-7.3.recipe +++ b/app-editors/vim/vim-7.3.recipe @@ -1,23 +1,21 @@ -SUMMARY="Vim is highly configurable text editor." +SUMMARY="Vim is highly configurable text editor." DESCRIPTION=" - Vim is a highly configurable text editor built to enable efficient text - editing. It is an improved version of the vi editor distributed with most - UNIX systems. - - Vim is often called a \"programmer's editor,\" and so useful for programming - that many consider it an entire IDE. It's not just for programmers, though. - Vim is perfect for all kinds of text editing, from composing email to editing - configuration files. - - Despite what the above comic suggests, Vim can be configured to work in a very - simple (Notepad-like) way, called evim or Easy Vim. - " -HOMEPAGE="http://www.vim.org" +Vim is a highly configurable text editor built to enable efficient text \ +editing. It is an improved version of the vi editor distributed with most UNIX \ +systems. +Vim is often called a \"programmer's editor,\" and so useful for programming \ +that many consider it an entire IDE. It's not just for programmers, though. \ +Vim is perfect for all kinds of text editing, from composing email to editing \ +configuration files. +Despite this, Vim can be configured to work in a very \ +simple (Notepad-like) way, called evim or Easy Vim. +" +HOMEPAGE="http://www.vim.org" SRC_URI="ftp://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2" +CHECKSUM_SHA256="5c5d5d6e07f1bbc49b6fe3906ff8a7e39b049928b68195b38e3e3d347100221d" COPYRIGHT="Bram Moleenar et al." LICENSE="Vim" REVISION="1" -CHECKSUM_MD5="5b9510a17074e2b37d8bb38ae09edbf2" ARCHITECTURES="x86_gcc2 x86" PROVIDES=" diff --git a/app-editors/vim/vim-7.4.recipe b/app-editors/vim/vim-7.4.recipe new file mode 100644 index 000000000..229c72a6d --- /dev/null +++ b/app-editors/vim/vim-7.4.recipe @@ -0,0 +1,80 @@ +SUMMARY="Vim is highly configurable text editor." +DESCRIPTION=" +Vim is a highly configurable text editor built to enable efficient text \ +editing. It is an improved version of the vi editor distributed with most UNIX \ +systems. +Vim is often called a \"programmer's editor,\" and so useful for programming \ +that many consider it an entire IDE. It's not just for programmers, though. \ +Vim is perfect for all kinds of text editing, from composing email to editing \ +configuration files. +Despite this, Vim can be configured to work in a very \ +simple (Notepad-like) way, called evim or Easy Vim. +" +HOMEPAGE="http://www.vim.org" +SRC_URI="ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2" +CHECKSUM_SHA256="d0f5a6d2c439f02d97fa21bd9121f4c5abb1f6cd8b5a79d3ca82867495734ade" +COPYRIGHT="Bram Moleenar et al." +LICENSE="Vim" +REVISION="2" +ARCHITECTURES="x86_gcc2 x86 x86_64" + +PROVIDES=" + vim = $portVersion + cmd:ex = $portVersion + cmd:gview = $portVersion + cmd:gvim = $portVersion + cmd:gvimdiff = $portVersion + cmd:rgview = $portVersion + cmd:rgvim = $portVersion + cmd:rview = $portVersion + cmd:rvim = $portVersion + cmd:vi = $portVersion + cmd:vim = $portVersion + cmd:vimdiff = $portVersion + cmd:vimtutor = $portVersion + cmd:view = $portVersion + cmd:xxd = $portVersion +" +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libncurses + lib:libintl +" +BUILD_REQUIRES=" + ncurses_devel + gettext +" +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:make + cmd:autoconf + cmd:gcc + cmd:find +" + +SOURCE_DIR="vim74" +PATCHES=" + vim-7.4.patch +" + +BUILD() +{ + cd src + autoconf + runConfigure ./configure --disable-gui --with-features=big --with-compiledby=$packager + make $jobArgs + cp vim vim.con # preserve gui-less executable + rm objects/*.o + runConfigure ./configure --with-features=big --with-compiledby=$packager + make $jobArgs +} + +INSTALL() +{ + make install + + # Make arrow keys, backspace, delete, etc behave as expected. + echo "set nocompatible" > $dataDir/vim/vimrc + + ln -s vim $binDir/vi +} diff --git a/app-editors/xemacs/xemacs-21.5_hg.recipe b/app-editors/xemacs/xemacs-21.5_hg.recipe new file mode 100644 index 000000000..81191cc87 --- /dev/null +++ b/app-editors/xemacs/xemacs-21.5_hg.recipe @@ -0,0 +1,99 @@ +SUMMARY="XEmacs editor" +DESCRIPTION=" +highly customizable open source text editor and application development system +" +HOMEPAGE="http://xemacs.org/" +SRC_URI="hg+https://bitbucket.org/mmu_man/xemacs#24b993054953" +REVISION="1" +LICENSE="GNU GPL v3" +COPYRIGHT="1998-2000 Hrvoje Niksic + 2000-2001 Michael Sperber + 2001 Ben Wing + 2001 Didier Verna + 2004 Stephen Turnbull + 2005-2006 Aidan Kehoe" +# TODO: FIXME: +#Bootstrapping from temacs... +#Warning: +# XEmacs was unable to determine a good value for the user's $HOME +# directory, and will be using the value: +# / +# This is probably incorrect. + + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +#POLICY WARNING: no matching provides "cmd:b2m" for "bin/b2m" +#POLICY WARNING: no matching provides "cmd:ctags" for "bin/ctags" +#POLICY WARNING: no matching provides "cmd:ellcc" for "bin/ellcc" +#POLICY WARNING: no matching provides "cmd:etags" for "bin/etags" +#POLICY WARNING: no matching provides "cmd:gnuattach" for "bin/gnuattach" +#POLICY WARNING: no matching provides "cmd:gnuclient" for "bin/gnuclient" +#POLICY WARNING: no matching provides "cmd:gnudoit" for "bin/gnudoit" +#POLICY WARNING: no matching provides "cmd:ootags" for "bin/ootags" +#POLICY WARNING: no matching provides "cmd:xemacs_21.5_b34" for "bin/xemacs-21.5-b34" +#POLICY WARNING: no matching provides "cmd:xemacs_script" for "bin/xemacs-script +PROVIDES=" + xemacs$secondaryArchSuffix = $portVersion + app:xemacs = $portVersion + cmd:xemacs = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libiconv$secondaryArchSuffix + lib:libncurses$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix +# lib:libtiff$secondaryArchSuffix +# lib:libxpm$secondaryArchSuffix + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libiconv$secondaryArchSuffix + devel:libncurses$secondaryArchSuffix + devel:libz$secondaryArchSuffix >= 1.2.8 + devel:libpng$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix +# devel:libtiff$secondaryArchSuffix +# devel:libxpm$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:autoconf + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:tar + cmd:which + cmd:makeinfo + " + +# TODO: fix lispdir to not use $HOME +BUILD() +{ + autoconf + export HOME=/boot/home + runConfigure ./configure \ + --with-tty=yes --with-pop --with-x11=no --with-ipv6-cname=no \ + --with-mule --with-wnn=no \ + -with-beos=yes \ + --with-toolbars=yes \ + --with-scrollbars=no \ + --with-menubars=no \ + --with-dialogs=no \ + --with-widgets=no \ + --with-dragndrop=yes \ + --with-system-malloc --disable-mc-alloc --with-mc-alloc=no \ + --with-postgresql=no \ + --disable-kkcc \ + --with-png + make clean + make +} + +INSTALL() +{ + make install + addattr SYS:ENV DISABLE_ASLR=1 $binDir/xemacs-21* + addAppDeskbarSymlink $binDir/xemacs XEmacs +} diff --git a/app-emulation/aranym/aranym-0.9.11_cvs.recipe b/app-emulation/aranym/aranym-0.9.11_cvs.recipe deleted file mode 100644 index b1900a133..000000000 --- a/app-emulation/aranym/aranym-0.9.11_cvs.recipe +++ /dev/null @@ -1,25 +0,0 @@ -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/aranym/aranym-0.9.15_git.recipe b/app-emulation/aranym/aranym-0.9.15_git.recipe new file mode 100644 index 000000000..8f151ee34 --- /dev/null +++ b/app-emulation/aranym/aranym-0.9.15_git.recipe @@ -0,0 +1,53 @@ +SUMMARY="ARAnyM (Atari Running on Any Machine)" +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="git://git.code.sf.net/p/aranym/code" +REVISION="1" +#CHECKSUM_MD5="" +COPYRIGHT="2001-2010 ARAnyM developer team" +LICENSE="GNU GPL v2" + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +SOURCE_DIR="code" + +PROVIDES=" + aranym = $portVersion + app:aranym = $portVersion + cmd:aranym = $portVersion + " +REQUIRES=" + haiku + libsdl + lib:libsdl_image_1.2 + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:libsdl_1.2 >= 0.10 + devel:libSDL_image_1.2 >= 0.8.4 + " +BUILD_PREREQUIRES=" + cmd:aclocal + cmd:autoconf + cmd:make + cmd:gcc + cmd:sdl_config + " + +BUILD() +{ + ./autogen.sh --help >/dev/null + runConfigure ./configure + make +} + +INSTALL() +{ + make install + mimeset $prefix/bin/aranym + addAppDeskbarSymlink /bin/aranym ARAnyM +} + diff --git a/app-emulation/joyce/joyce-2.2.6.recipe b/app-emulation/joyce/joyce-2.2.6.recipe new file mode 100644 index 000000000..3f733088a --- /dev/null +++ b/app-emulation/joyce/joyce-2.2.6.recipe @@ -0,0 +1,58 @@ +SUMMARY="JOYCE emulates the Amstrad PCW." +DESCRIPTION=" +The latest version of JOYCE (2.2.5) includes ANNE, which emulates the PcW16. +" +HOMEPAGE="http://www.seasip.demon.co.uk/Unix/Joyce/" +SRC_URI="http://www.seasip.info/Unix/Joyce/joyce-2.2.6.tar.gz" +CHECKSUM_SHA256="d92089dc3e583e88973ef6708dc35e649500949086da0a03f973efe3f62c3d8f" +REVISION="1" +COPYRIGHT="2002-2012 John Elliott" +LICENSE="GNU GPL v2" + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + joyce = $portVersion + cmd:xjoyce = $portVersion + cmd:xanne = $portVersion + devel:lib765 + devel:libcpmredir + devel:liblink + " +REQUIRES=" + haiku + lib:libsdl + lib:libpng + lib:libxml2 + lib:libz + lib:libgl + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:libsdl + devel:libpng + devel:libxml2 + devel:libz + " +BUILD_PREREQUIRES=" + cmd:make + cmd:gcc + cmd:awk + " + +PATCHES="joyce-2.2.6.patchset" +BUILD() +{ + runConfigure ./configure + make +} + +INSTALL() +{ + make install + + # These are already provided in the libdsk package. + rm $binDir/apriboot $binDir/dsk* $binDir/md3serial $libDir/libdsk* + prepareInstalledDevelLibs lib765 libcpmredir liblink +} + diff --git a/app-emulation/joyce/patches/joyce-2.2.6.patchset b/app-emulation/joyce/patches/joyce-2.2.6.patchset new file mode 100644 index 000000000..fc5b2be82 --- /dev/null +++ b/app-emulation/joyce/patches/joyce-2.2.6.patchset @@ -0,0 +1,64 @@ +From acd7536857589b44814463078787ebe32cc2e519 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Tue, 6 May 2014 13:48:58 +0200 +Subject: Small build fixes for Haiku. + + +diff --git a/LibLink/lib/llparsocket.c b/LibLink/lib/llparsocket.c +index 6d09d1f..7f723c2 100644 +--- a/LibLink/lib/llparsocket.c ++++ b/LibLink/lib/llparsocket.c +@@ -21,6 +21,8 @@ + #include "llparsocket.h" + #include "llspacket.h" + ++#include ++ + #ifdef HAVE_WINSOCK_H + #define AGAIN (WSAGetLastError() == WSAEWOULDBLOCK) + #else +diff --git a/cpmredir/lib/cpmdrv.c b/cpmredir/lib/cpmdrv.c +index 79a872d..fd0511a 100644 +--- a/cpmredir/lib/cpmdrv.c ++++ b/cpmredir/lib/cpmdrv.c +@@ -22,6 +22,8 @@ + + #include "cpmint.h" + ++#include ++ + cpm_byte fcb_reset(void) + { + #ifdef __MSDOS__ +@@ -131,11 +133,11 @@ cpm_word fcb_getdpb(cpm_byte *dpb) + #ifndef WIN32 + /* XXX In WIN32, use some function or other to do this */ + +- struct statfs buf; ++ struct statvfs buf; + cpm_word nfiles; + + /* Get DPB for redir_cpmdrive. Currently just returns a dummy. */ +- if (!statfs(redir_drive_prefix[redir_cpmdrive], &buf)) ++ if (!statvfs(redir_drive_prefix[redir_cpmdrive], &buf)) + { + /* Store correct directory entry count */ + +@@ -184,12 +186,12 @@ cpm_word fcb_dfree (cpm_byte drive, cpm_byte *dma) + dfree = 4194303L; + } + #else +- struct statfs buf; ++ struct statvfs buf; + long dfree; + + if (!redir_drive_prefix[drive]) return 0x01FF; /* Can't select */ + +- if (statfs(redir_drive_prefix[drive], &buf)) return 0x01FF; ++ if (statvfs(redir_drive_prefix[drive], &buf)) return 0x01FF; + + dfree = (buf.f_bavail * (buf.f_bsize / 128)); + +-- +1.8.3.4 + diff --git a/app-emulation/libdsk/libdsk-1.3.3.recipe b/app-emulation/libdsk/libdsk-1.3.3.recipe index 1bfc83d9d..5ff6ac982 100644 --- a/app-emulation/libdsk/libdsk-1.3.3.recipe +++ b/app-emulation/libdsk/libdsk-1.3.3.recipe @@ -1,15 +1,14 @@ SUMMARY="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" +CHECKSUM_SHA256="a9186b167934ce5b847f74d2389b6c37084761ea255501dab481051336353606" +REVISION="2" ARCHITECTURES="x86 x86_gcc2" SECONDARY_ARCHITECTURES="x86 x86_gcc2" -CHECKSUM_MD5="2cce41b4b1325d697183e34afcae2a9c" PROVIDES=" libdsk$secondaryArchSuffix = $portVersion lib:libdsk$secondaryArchSuffix = $portVersion - devel:libdsk$secondaryArchSuffix = $portVersion " @@ -26,6 +25,14 @@ PROVIDES="$PROVIDES " fi +PROVIDES_devel=" + devel:libdsk$secondaryArchSuffix = $portVersion +" + +REQUIRES_devel=" + libdsk$secondaryArchSuffix == $portVersion base +" + REQUIRES=" haiku$secondaryArchSuffix >= $haikuVersion lib:libz$secondaryArchSuffix @@ -59,21 +66,22 @@ INSTALL() fi prepareInstalledDevelLib libdsk + + packageEntries devel $developDir } COPYRIGHT="2010 John Elliott" LICENSE="GNU GPL v2" DESCRIPTION=" - LIBDSK is a library for accessing discs and disc image files. It is - intended for use in: - - * Emulator tools - converting between real floppy discs and disc images, as - CPCTRANS / PCWTRANS do under DOS. - * Filesystem utilities - CPMTOOLS is configurable to use LIBDSK, thus - allowing the use of CPMTOOLS on emulator .DSK images. To do this, install - LIBDSK and then build CPMTOOLS, using \"./configure --with-libdsk\". For - CPMTOOLS 1.9 or 2.0, you will also need to apply this patch. - * Emulators - it is possible to use LIBDSK as part of an emulator's floppy - controller emulation, thus giving the emulator transparent access to .DSK - files or real discs. - " +LIBDSK is a library for accessing discs and disc image files. It is intended \ +for use in: +* Emulator tools - converting between real floppy discs and disc images, as \ +CPCTRANS / PCWTRANS do under DOS. +* Filesystem utilities - CPMTOOLS is configurable to use LIBDSK, thus allowing \ +the use of CPMTOOLS on emulator .DSK images. To do this, install LIBDSK and \ +then build CPMTOOLS, using \"./configure --with-libdsk\". For CPMTOOLS 1.9 or \ +2.0, you will also need to apply this patch. +* Emulators - it is possible to use LIBDSK as part of an emulator's floppy \ +controller emulation, thus giving the emulator transparent access to .DSK \ +files or real discs. +" diff --git a/app-emulation/linaro_qemu/linaro_qemu-2014.01.recipe b/app-emulation/linaro_qemu/linaro_qemu-2014.01.recipe new file mode 100644 index 000000000..2c01e0b63 --- /dev/null +++ b/app-emulation/linaro_qemu/linaro_qemu-2014.01.recipe @@ -0,0 +1,106 @@ +SUMMARY="QEMU is a generic and open source machine emulator and virtualizer." +DESCRIPTION=" +QEMU is a generic and open source machine emulator and virtualizer. + +QEMU can run OSes and programs made for one machine (e.g. an ARM board) on a \ +different machine (e.g. your own PC). By using dynamic translation, it \ +achieves very good performance. +" +HOMEPAGE="http://wiki.qemu.org/" +SRC_URI="https://launchpad.net/qemu-linaro/trunk/2014.01/+download/qemu-linaro-1.7.0-2014.01.tar.gz" +CHECKSUM_SHA256="bd9a2266dd6abc5da8bac1ec9eadd728693911bbfbfe26d2a464e068ad6afd70" +COPYRIGHT="2003-2014 Fabrice Bellard" +LICENSE="GNU GPL v2" +REVISION="1" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + qemu$secondaryArchSuffix = $portVersion + cmd:qemu$secondaryArchSuffix = $portVersion + cmd:qemu_img$secondaryArchSuffix = $portVersion + cmd:qemu_io$secondaryArchSuffix = $portVersion + cmd:qemu_system_aarch64$secondaryArchSuffix = $portVersion + cmd:qemu_system_alpha$secondaryArchSuffix = $portVersion + cmd:qemu_system_arm$secondaryArchSuffix = $portVersion + cmd:qemu_system_cris$secondaryArchSuffix = $portVersion + cmd:qemu_system_i386$secondaryArchSuffix = $portVersion + cmd:qemu_system_lm32$secondaryArchSuffix = $portVersion + cmd:qemu_system_m68k$secondaryArchSuffix = $portVersion + cmd:qemu_system_microblaze$secondaryArchSuffix = $portVersion + cmd:qemu_system_microblazeel$secondaryArchSuffix = $portVersion + cmd:qemu_system_mips$secondaryArchSuffix = $portVersion + cmd:qemu_system_mips64$secondaryArchSuffix = $portVersion + cmd:qemu_system_mips64el$secondaryArchSuffix = $portVersion + cmd:qemu_system_mipsel$secondaryArchSuffix = $portVersion + cmd:qemu_system_moxie$secondaryArchSuffix = $portVersion + cmd:qemu_system_or32$secondaryArchSuffix = $portVersion + cmd:qemu_system_ppc$secondaryArchSuffix = $portVersion + cmd:qemu_system_ppc64$secondaryArchSuffix = $portVersion + cmd:qemu_system_ppcemb$secondaryArchSuffix = $portVersion + cmd:qemu_system_s390x$secondaryArchSuffix = $portVersion + cmd:qemu_system_sh4$secondaryArchSuffix = $portVersion + cmd:qemu_system_sh4eb$secondaryArchSuffix = $portVersion + cmd:qemu_system_sparc$secondaryArchSuffix = $portVersion + cmd:qemu_system_sparc64$secondaryArchSuffix = $portVersion + cmd:qemu_system_unicore32$secondaryArchSuffix = $portVersion + cmd:qemu_system_x86_64$secondaryArchSuffix = $portVersion + cmd:qemu_system_xtensa$secondaryArchSuffix = $portVersion + cmd:qemu_system_xtensaeb$secondaryArchSuffix = $portVersion + " + +PATCHES="qemu-2.0.0.patchset" + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libz$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + lib:libstdc++$secondaryArchSuffix + lib:libsdl$secondaryArchSuffix + glib2$secondaryArchSuffix >= 2.12 + pixman$secondaryArchSuffix + " + +BUILD_REQUIRES=" + devel:libz$secondaryArchSuffix + devel:libfdt$secondaryArchSuffix + devel:libsdl$secondaryArchSuffix + glib2${secondaryArchSuffix}_devel >= 2.12 + pixman${secondaryArchSuffix}_devel + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:awk + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:find + cmd:pkg_config$secondaryArchSuffix + cmd:pod2man + cmd:python + " + +SOURCE_DIR="qemu-linaro-1.7.0-2014.01" + +BUILD() +{ + runConfigure --omit-buildspec ./configure + make $jobArgs LDFLAGS=-lbsd +} + +INSTALL() +{ + make install + + # provide convenience symlink to just "qemu" + ln -s qemu-system-i386 $binDir/qemu + + # Remove empty config file. + rm $settingsDir/qemu/target-x86_64.conf +} diff --git a/app-emulation/linaro_qemu/patches/qemu-2.0.0.patchset b/app-emulation/linaro_qemu/patches/qemu-2.0.0.patchset new file mode 100644 index 000000000..052dffe1b --- /dev/null +++ b/app-emulation/linaro_qemu/patches/qemu-2.0.0.patchset @@ -0,0 +1,175 @@ +From 28f3a4ce22d729f7de4bd7f50447dc908e49cc23 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 20 Apr 2014 19:50:07 +0200 +Subject: Get it to compile on Haiku. + + +diff --git a/main-loop.c b/main-loop.c +index 8a85493..48a4a74 100644 +--- a/main-loop.c ++++ b/main-loop.c +@@ -81,7 +81,9 @@ static int qemu_signal_init(void) + */ + sigemptyset(&set); + sigaddset(&set, SIG_IPI); ++#ifndef __HAIKU__ + sigaddset(&set, SIGIO); ++#endif + sigaddset(&set, SIGALRM); + sigaddset(&set, SIGBUS); + pthread_sigmask(SIG_BLOCK, &set, NULL); +diff --git a/os-posix.c b/os-posix.c +index cb2a7f7..ae5b02c 100644 +--- a/os-posix.c ++++ b/os-posix.c +@@ -334,6 +334,9 @@ bool is_daemonized(void) + + int os_mlock(void) + { ++#ifdef __HAIKU__ ++ return ENOSYS; ++#else + int ret = 0; + + ret = mlockall(MCL_CURRENT | MCL_FUTURE); +@@ -342,4 +345,5 @@ int os_mlock(void) + } + + return ret; ++#endif + } +diff --git a/target-xtensa/xtensa-semi.c b/target-xtensa/xtensa-semi.c +index 424253d..20a6a86 100644 +--- a/target-xtensa/xtensa-semi.c ++++ b/target-xtensa/xtensa-semi.c +@@ -95,59 +95,53 @@ enum { + + static uint32_t errno_h2g(int host_errno) + { +- static const uint32_t guest_errno[] = { +- [EPERM] = TARGET_EPERM, +- [ENOENT] = TARGET_ENOENT, +- [ESRCH] = TARGET_ESRCH, +- [EINTR] = TARGET_EINTR, +- [EIO] = TARGET_EIO, +- [ENXIO] = TARGET_ENXIO, +- [E2BIG] = TARGET_E2BIG, +- [ENOEXEC] = TARGET_ENOEXEC, +- [EBADF] = TARGET_EBADF, +- [ECHILD] = TARGET_ECHILD, +- [EAGAIN] = TARGET_EAGAIN, +- [ENOMEM] = TARGET_ENOMEM, +- [EACCES] = TARGET_EACCES, +- [EFAULT] = TARGET_EFAULT, ++ switch (host_errno) { ++ case 0: return 0; ++ case EPERM: return TARGET_EPERM; ++ case ENOENT: return TARGET_ENOENT; ++ case ESRCH: return TARGET_ESRCH; ++ case EINTR: return TARGET_EINTR; ++ case EIO: return TARGET_EIO; ++ case ENXIO: return TARGET_ENXIO; ++ case E2BIG: return TARGET_E2BIG; ++ case ENOEXEC: return TARGET_ENOEXEC; ++ case EBADF: return TARGET_EBADF; ++ case ECHILD: return TARGET_ECHILD; ++ case EAGAIN: return TARGET_EAGAIN; ++ case ENOMEM: return TARGET_ENOMEM; ++ case EACCES: return TARGET_EACCES; ++ case EFAULT: return TARGET_EFAULT; + #ifdef ENOTBLK +- [ENOTBLK] = TARGET_ENOTBLK, ++ case ENOTBLK: return TARGET_ENOTBLK; + #endif +- [EBUSY] = TARGET_EBUSY, +- [EEXIST] = TARGET_EEXIST, +- [EXDEV] = TARGET_EXDEV, +- [ENODEV] = TARGET_ENODEV, +- [ENOTDIR] = TARGET_ENOTDIR, +- [EISDIR] = TARGET_EISDIR, +- [EINVAL] = TARGET_EINVAL, +- [ENFILE] = TARGET_ENFILE, +- [EMFILE] = TARGET_EMFILE, +- [ENOTTY] = TARGET_ENOTTY, ++ case EBUSY: return TARGET_EBUSY; ++ case EEXIST: return TARGET_EEXIST; ++ case EXDEV: return TARGET_EXDEV; ++ case ENODEV: return TARGET_ENODEV; ++ case ENOTDIR: return TARGET_ENOTDIR; ++ case EISDIR: return TARGET_EISDIR; ++ case EINVAL: return TARGET_EINVAL; ++ case ENFILE: return TARGET_ENFILE; ++ case EMFILE: return TARGET_EMFILE; ++ case ENOTTY: return TARGET_ENOTTY; + #ifdef ETXTBSY +- [ETXTBSY] = TARGET_ETXTBSY, ++ case ETXTBSY: return TARGET_ETXTBSY; + #endif +- [EFBIG] = TARGET_EFBIG, +- [ENOSPC] = TARGET_ENOSPC, +- [ESPIPE] = TARGET_ESPIPE, +- [EROFS] = TARGET_EROFS, +- [EMLINK] = TARGET_EMLINK, +- [EPIPE] = TARGET_EPIPE, +- [EDOM] = TARGET_EDOM, +- [ERANGE] = TARGET_ERANGE, +- [ENOSYS] = TARGET_ENOSYS, ++ case EFBIG: return TARGET_EFBIG; ++ case ENOSPC: return TARGET_ENOSPC; ++ case ESPIPE: return TARGET_ESPIPE; ++ case EROFS: return TARGET_EROFS; ++ case EMLINK: return TARGET_EMLINK; ++ case EPIPE: return TARGET_EPIPE; ++ case EDOM: return TARGET_EDOM; ++ case ERANGE: return TARGET_ERANGE; ++ case ENOSYS: return TARGET_ENOSYS; + #ifdef ELOOP +- [ELOOP] = TARGET_ELOOP, ++ case ELOOP: return TARGET_ELOOP; + #endif + }; + +- if (host_errno == 0) { +- return 0; +- } else if (host_errno > 0 && host_errno < ARRAY_SIZE(guest_errno) && +- guest_errno[host_errno]) { +- return guest_errno[host_errno]; +- } else { +- return TARGET_EINVAL; +- } ++ return TARGET_EINVAL; + } + + void HELPER(simcall)(CPUXtensaState *env) +diff --git a/util/compatfd.c b/util/compatfd.c +index 341ada6..e50416d 100644 +--- a/util/compatfd.c ++++ b/util/compatfd.c +@@ -17,7 +17,9 @@ + #include "qemu/compatfd.h" + #include "qemu/thread.h" + ++#ifndef __HAIKU__ + #include ++#endif + + struct sigfd_compat_info + { +diff --git a/util/qemu-openpty.c b/util/qemu-openpty.c +index 4febfe9..5579646 100644 +--- a/util/qemu-openpty.c ++++ b/util/qemu-openpty.c +@@ -35,7 +35,9 @@ + #include "config-host.h" + #include "qemu-common.h" + +-#if defined(__GLIBC__) ++#if defined(__HAIKU__) ++# include ++#elif defined(__GLIBC__) + # include + #elif defined CONFIG_BSD + # include +-- +1.8.3.4 + diff --git a/app-emulation/mednafen/mednafen-0.9.26.recipe b/app-emulation/mednafen/mednafen-0.9.26.recipe index 9e33fb29e..cac70887e 100644 --- a/app-emulation/mednafen/mednafen-0.9.26.recipe +++ b/app-emulation/mednafen/mednafen-0.9.26.recipe @@ -1,4 +1,7 @@ -DESCRIPTION="A portable, utilizing OpenGL and SDL, argument(command-line)-driven multi-system emulator" +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" diff --git a/app-emulation/oricutron/oricutron-0.9_svn.recipe b/app-emulation/oricutron/oricutron-0.9_svn.recipe deleted file mode 100644 index ca7088f5b..000000000 --- a/app-emulation/oricutron/oricutron-0.9_svn.recipe +++ /dev/null @@ -1,22 +0,0 @@ -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/oricutron/oricutron-1.1_svn.recipe b/app-emulation/oricutron/oricutron-1.1_svn.recipe new file mode 100644 index 000000000..69a096b3b --- /dev/null +++ b/app-emulation/oricutron/oricutron-1.1_svn.recipe @@ -0,0 +1,50 @@ +SUMMARY="Oricutron is an emulator for the Oric series of computers." +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" +DEPEND="media-libs/libsdl >= 1.2.10" +#CHECKSUM_MD5="" +COPYRIGHT="2009-2012 Peter Gordon" +LICENSE="GNU GPL v2" + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +SOURCE_DIR="trunk" + +PROVIDES=" + oricutron = $portVersion + app:oricutron = $portVersion + cmd:oricutron = $portVersion + " +REQUIRES=" + haiku + libsdl + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:libsdl_1.2 >= 0.10 + " +BUILD_PREREQUIRES=" + cmd:make + cmd:gcc + cmd:sdl_config + " +#FIXME: Makefile uses svnversion to get the revision... +# subversion >= 1.6.18 +# cmd:svnversion >= 1.6.18 + +BUILD() +{ + make INSTALLDIR=$prefix/apps/Oricutron +} + +INSTALL() +{ + make install INSTALLDIR=$prefix/apps/Oricutron + mimeset $prefix/apps/Oricutron/oricutron + addAppDeskbarSymlink $prefix/apps/Oricutron/oricutron Oricutron +} + diff --git a/app-emulation/qemu/patches/qemu-1.7.0.patchset b/app-emulation/qemu/patches/qemu-1.7.0.patchset new file mode 100644 index 000000000..24826f60e --- /dev/null +++ b/app-emulation/qemu/patches/qemu-1.7.0.patchset @@ -0,0 +1,108 @@ +From 7eb459b9e4b6ba5ecf3065a603285681f822cc53 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Wed, 26 Feb 2014 17:02:49 +0000 +Subject: Haiku: adapt configure for x86_64 + +* don't hardcode arch/cpu. +* define _POSIX_C_SOURCE for memalign. + +diff --git a/configure b/configure +index 2f11a10..59ed591 100755 +--- a/configure ++++ b/configure +@@ -583,7 +583,7 @@ Haiku) + sysconfdir="${prefix}/etc" + bindir="${prefix}" + confsuffix="" +- CFLAGS="-fno-pic -march=prescott -mtune=core2 $CFLAGS" ++ CFLAGS="$CFLAGS -D_POSIX_C_SOURCE" + QEMU_CFLAGS="-DB_USE_POSITIVE_POSIX_ERRORS $QEMU_CFLAGS" + LIBS="-lposix_error_mapper -lnetwork -lbe -lbsd -lgame -lmedia -lstdc++ $LIBS" + ;; +-- +1.8.3.4 + + +From d5e0e5b00c84005d8685b5a76d611d1b39f61c06 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Wed, 26 Feb 2014 17:19:05 +0000 +Subject: Haiku: don't hardcode types. + + +diff --git a/include/fpu/softfloat.h b/include/fpu/softfloat.h +index a445506..f3927e2 100644 +--- a/include/fpu/softfloat.h ++++ b/include/fpu/softfloat.h +@@ -55,24 +55,12 @@ these four paragraphs for those parts of this code that are retained. + | to the same as `int'. + *----------------------------------------------------------------------------*/ + typedef uint8_t flag; +-#ifndef __HAIKU__ + typedef uint8_t uint8; + typedef int8_t int8; + typedef unsigned int uint32; + typedef signed int int32; + typedef uint64_t uint64; + typedef int64_t int64; +-#else +-// Haiku types +-typedef signed char int8; +-typedef unsigned char uint8; +-typedef short int16; +-typedef unsigned short uint16; +-typedef long int32; +-typedef unsigned long uint32; +-typedef long long int64; +-typedef unsigned long long uint64; +-#endif + + #define LIT64( a ) a##LL + #define INLINE static inline +-- +1.8.3.4 + + +From 22229911497a93086ea5dff35683cf2f5ac63754 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 20 Apr 2014 12:59:07 +0200 +Subject: Avoid redefinition of int32and uint32 + + +diff --git a/include/haiku-include-before.h b/include/haiku-include-before.h +index 87cde55..4cdb25e 100644 +--- a/include/haiku-include-before.h ++++ b/include/haiku-include-before.h +@@ -16,4 +16,7 @@ + #undef atomic_and + #undef atomic_or + ++#define int32 haiku_int32 ++#define uint32 haiku_uint32 ++ + #endif /* HAIKU_INCLUDE_BEFORE_H */ +diff --git a/ui/haiku.cpp b/ui/haiku.cpp +index 7b6ce41..2106b82 100644 +--- a/ui/haiku.cpp ++++ b/ui/haiku.cpp +@@ -57,6 +57,8 @@ static const uint32 kConsoleSelectEvent = 'cons'; + static const uint32 kShutdownRequest = 'shut'; + static const uint32 kInvalidationRequest = 'ival'; + ++#undef int32 ++#undef uint32 + + // QEMU C interface + extern "C" { +@@ -84,6 +86,9 @@ static void haiku_refresh(DisplayChangeListener *dcl); + void qemu_system_shutdown_request(void); + }; + ++#define int32 haiku_int32 ++#define uint32 haiku_uint32 ++ + + // Haiku keycode to scancode table + static const uint8 +-- +1.8.3.4 + diff --git a/app-emulation/qemu/patches/qemu-2.0.0.patchset b/app-emulation/qemu/patches/qemu-2.0.0.patchset new file mode 100644 index 000000000..052dffe1b --- /dev/null +++ b/app-emulation/qemu/patches/qemu-2.0.0.patchset @@ -0,0 +1,175 @@ +From 28f3a4ce22d729f7de4bd7f50447dc908e49cc23 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 20 Apr 2014 19:50:07 +0200 +Subject: Get it to compile on Haiku. + + +diff --git a/main-loop.c b/main-loop.c +index 8a85493..48a4a74 100644 +--- a/main-loop.c ++++ b/main-loop.c +@@ -81,7 +81,9 @@ static int qemu_signal_init(void) + */ + sigemptyset(&set); + sigaddset(&set, SIG_IPI); ++#ifndef __HAIKU__ + sigaddset(&set, SIGIO); ++#endif + sigaddset(&set, SIGALRM); + sigaddset(&set, SIGBUS); + pthread_sigmask(SIG_BLOCK, &set, NULL); +diff --git a/os-posix.c b/os-posix.c +index cb2a7f7..ae5b02c 100644 +--- a/os-posix.c ++++ b/os-posix.c +@@ -334,6 +334,9 @@ bool is_daemonized(void) + + int os_mlock(void) + { ++#ifdef __HAIKU__ ++ return ENOSYS; ++#else + int ret = 0; + + ret = mlockall(MCL_CURRENT | MCL_FUTURE); +@@ -342,4 +345,5 @@ int os_mlock(void) + } + + return ret; ++#endif + } +diff --git a/target-xtensa/xtensa-semi.c b/target-xtensa/xtensa-semi.c +index 424253d..20a6a86 100644 +--- a/target-xtensa/xtensa-semi.c ++++ b/target-xtensa/xtensa-semi.c +@@ -95,59 +95,53 @@ enum { + + static uint32_t errno_h2g(int host_errno) + { +- static const uint32_t guest_errno[] = { +- [EPERM] = TARGET_EPERM, +- [ENOENT] = TARGET_ENOENT, +- [ESRCH] = TARGET_ESRCH, +- [EINTR] = TARGET_EINTR, +- [EIO] = TARGET_EIO, +- [ENXIO] = TARGET_ENXIO, +- [E2BIG] = TARGET_E2BIG, +- [ENOEXEC] = TARGET_ENOEXEC, +- [EBADF] = TARGET_EBADF, +- [ECHILD] = TARGET_ECHILD, +- [EAGAIN] = TARGET_EAGAIN, +- [ENOMEM] = TARGET_ENOMEM, +- [EACCES] = TARGET_EACCES, +- [EFAULT] = TARGET_EFAULT, ++ switch (host_errno) { ++ case 0: return 0; ++ case EPERM: return TARGET_EPERM; ++ case ENOENT: return TARGET_ENOENT; ++ case ESRCH: return TARGET_ESRCH; ++ case EINTR: return TARGET_EINTR; ++ case EIO: return TARGET_EIO; ++ case ENXIO: return TARGET_ENXIO; ++ case E2BIG: return TARGET_E2BIG; ++ case ENOEXEC: return TARGET_ENOEXEC; ++ case EBADF: return TARGET_EBADF; ++ case ECHILD: return TARGET_ECHILD; ++ case EAGAIN: return TARGET_EAGAIN; ++ case ENOMEM: return TARGET_ENOMEM; ++ case EACCES: return TARGET_EACCES; ++ case EFAULT: return TARGET_EFAULT; + #ifdef ENOTBLK +- [ENOTBLK] = TARGET_ENOTBLK, ++ case ENOTBLK: return TARGET_ENOTBLK; + #endif +- [EBUSY] = TARGET_EBUSY, +- [EEXIST] = TARGET_EEXIST, +- [EXDEV] = TARGET_EXDEV, +- [ENODEV] = TARGET_ENODEV, +- [ENOTDIR] = TARGET_ENOTDIR, +- [EISDIR] = TARGET_EISDIR, +- [EINVAL] = TARGET_EINVAL, +- [ENFILE] = TARGET_ENFILE, +- [EMFILE] = TARGET_EMFILE, +- [ENOTTY] = TARGET_ENOTTY, ++ case EBUSY: return TARGET_EBUSY; ++ case EEXIST: return TARGET_EEXIST; ++ case EXDEV: return TARGET_EXDEV; ++ case ENODEV: return TARGET_ENODEV; ++ case ENOTDIR: return TARGET_ENOTDIR; ++ case EISDIR: return TARGET_EISDIR; ++ case EINVAL: return TARGET_EINVAL; ++ case ENFILE: return TARGET_ENFILE; ++ case EMFILE: return TARGET_EMFILE; ++ case ENOTTY: return TARGET_ENOTTY; + #ifdef ETXTBSY +- [ETXTBSY] = TARGET_ETXTBSY, ++ case ETXTBSY: return TARGET_ETXTBSY; + #endif +- [EFBIG] = TARGET_EFBIG, +- [ENOSPC] = TARGET_ENOSPC, +- [ESPIPE] = TARGET_ESPIPE, +- [EROFS] = TARGET_EROFS, +- [EMLINK] = TARGET_EMLINK, +- [EPIPE] = TARGET_EPIPE, +- [EDOM] = TARGET_EDOM, +- [ERANGE] = TARGET_ERANGE, +- [ENOSYS] = TARGET_ENOSYS, ++ case EFBIG: return TARGET_EFBIG; ++ case ENOSPC: return TARGET_ENOSPC; ++ case ESPIPE: return TARGET_ESPIPE; ++ case EROFS: return TARGET_EROFS; ++ case EMLINK: return TARGET_EMLINK; ++ case EPIPE: return TARGET_EPIPE; ++ case EDOM: return TARGET_EDOM; ++ case ERANGE: return TARGET_ERANGE; ++ case ENOSYS: return TARGET_ENOSYS; + #ifdef ELOOP +- [ELOOP] = TARGET_ELOOP, ++ case ELOOP: return TARGET_ELOOP; + #endif + }; + +- if (host_errno == 0) { +- return 0; +- } else if (host_errno > 0 && host_errno < ARRAY_SIZE(guest_errno) && +- guest_errno[host_errno]) { +- return guest_errno[host_errno]; +- } else { +- return TARGET_EINVAL; +- } ++ return TARGET_EINVAL; + } + + void HELPER(simcall)(CPUXtensaState *env) +diff --git a/util/compatfd.c b/util/compatfd.c +index 341ada6..e50416d 100644 +--- a/util/compatfd.c ++++ b/util/compatfd.c +@@ -17,7 +17,9 @@ + #include "qemu/compatfd.h" + #include "qemu/thread.h" + ++#ifndef __HAIKU__ + #include ++#endif + + struct sigfd_compat_info + { +diff --git a/util/qemu-openpty.c b/util/qemu-openpty.c +index 4febfe9..5579646 100644 +--- a/util/qemu-openpty.c ++++ b/util/qemu-openpty.c +@@ -35,7 +35,9 @@ + #include "config-host.h" + #include "qemu-common.h" + +-#if defined(__GLIBC__) ++#if defined(__HAIKU__) ++# include ++#elif defined(__GLIBC__) + # include + #elif defined CONFIG_BSD + # include +-- +1.8.3.4 + diff --git a/app-emulation/qemu/patches/qemu-trunk.git.diff b/app-emulation/qemu/patches/qemu-trunk.git.diff deleted file mode 100644 index 4f456e9e2..000000000 --- a/app-emulation/qemu/patches/qemu-trunk.git.diff +++ /dev/null @@ -1,50 +0,0 @@ -diff --git a/configure b/configure -index a2f54b8..8c603b3 100755 ---- a/configure -+++ b/configure -@@ -191,6 +191,9 @@ SunOS) - oss=yes - fi - ;; -+Haiku) -+haiku="yes" -+;; - *) - oss="yes" - linux="yes" -@@ -336,7 +339,7 @@ for opt do - esac - done - --if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then -+if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" -o "$haiku" = "yes" ] ; then - AIOLIBS= - else - # Some Linux architectures (e.g. s390) don't imply -lpthread automatically. -@@ -375,8 +378,8 @@ case "$cpu" in - ARCH_CFLAGS="-march=z900" - ;; - i386) -- ARCH_CFLAGS="-m32" -- ARCH_LDFLAGS="-m32" -+# ARCH_CFLAGS="-m32" -+# ARCH_LDFLAGS="-m32" - ;; - x86_64) - ARCH_CFLAGS="-m64" -diff --git a/qemu-img.c b/qemu-img.c -index 309a746..2386497 100644 ---- a/qemu-img.c -+++ b/qemu-img.c -@@ -593,7 +593,11 @@ static int64_t get_allocated_file_size(const char *filename) - struct stat st; - if (stat(filename, &st) < 0) - return -1; -+#ifdef __HAIKU__ -+ return st.st_size; -+#else - return (int64_t)st.st_blocks * 512; -+#endif - } - #endif - diff --git a/app-emulation/qemu/qemu-0.12.4.recipe b/app-emulation/qemu/qemu-0.12.4.recipe deleted file mode 100644 index 7e97ecfc0..000000000 --- a/app-emulation/qemu/qemu-0.12.4.recipe +++ /dev/null @@ -1,23 +0,0 @@ -DESCRIPTION="QEMU is a generic and open source machine emulator and virtualizer." -HOMEPAGE="http://wiki.qemu.org/" -SRC_URI="http://download.savannah.gnu.org/releases/qemu/qemu-0.12.4.tar.gz" -REVISION="1" -STATUS_HAIKU="broken" -DEPEND="" -CHECKSUM_MD5="93e6b134dff89b2799f57b7d9e0e0fc5" - -BUILD() -{ - cd qemu-0.12.4 - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd qemu-0.12.4 - make install -} - -COPYRIGHT="2003 Fabrice Bellard" -LICENSE="GNU GPL v2" diff --git a/app-emulation/qemu/qemu-0.15.1.recipe b/app-emulation/qemu/qemu-0.15.1.recipe index 7cf89095b..754e28869 100644 --- a/app-emulation/qemu/qemu-0.15.1.recipe +++ b/app-emulation/qemu/qemu-0.15.1.recipe @@ -1,22 +1,69 @@ +SUMMARY="QEMU is a generic and open source machine emulator and virtualizer." DESCRIPTION="QEMU is a generic and open source machine emulator and virtualizer." HOMEPAGE="http://wiki.qemu.org/" -SRC_URI="http://github.com/mmlr/qemu-haiku/archive/1b50193d3b850f1e64b76e9a0ee7b007387ac99b.zip" +SRC_URI="git+https://github.com/mmlr/qemu-haiku.git#1b50193d3b850f1e64b76e9a0ee7b007387ac99b" +COPYRIGHT="2003-2008 Fabrice Bellard" +LICENSE="GNU GPL v2" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" CHECKSUM_MD5="489f26907f807bde3c4579e4d11e1195" +ARCHITECTURES="x86" -BUILD { - cd qemu-haiku-1b50193d3b850f1e64b76e9a0ee7b007387ac99b +PROVIDES=" + qemu = $portVersion + cmd:qemu = $portVersion + cmd:qemu_img = $portVersion + cmd:qemu_io = $portVersion + cmd:qemu_system_arm = $portVersion + cmd:qemu_system_cris = $portVersion + cmd:qemu_system_lm32 = $portVersion + cmd:qemu_system_m68k = $portVersion + cmd:qemu_system_microblaze = $portVersion + cmd:qemu_system_microblazeel = $portVersion + cmd:qemu_system_mips = $portVersion + cmd:qemu_system_mips64 = $portVersion + cmd:qemu_system_mips64el = $portVersion + cmd:qemu_system_mipsel = $portVersion + cmd:qemu_system_ppc = $portVersion + cmd:qemu_system_ppc64 = $portVersion + cmd:qemu_system_ppcemb = $portVersion + cmd:qemu_system_s390x = $portVersion + cmd:qemu_system_sh4 = $portVersion + cmd:qemu_system_sh4eb = $portVersion + cmd:qemu_system_sparc = $portVersion + cmd:qemu_system_sparc64 = $portVersion + cmd:qemu_system_x86_64 = $portVersion +" + +REQUIRES=" + haiku >= $haikuVersion + lib:libz +" + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:libz +" + +BUILD_PREREQUIRES=" + cmd:gcc + cmd:ld + cmd:make +" + +GLOBAL_WRITABLE_FILES=" + settings/etc/qemu/target-x86_64.conf keep-old +" + +BUILD() +{ chmod +x configure - ./configure - make + ./configure --prefix=$prefix --mandir=$manDir --datadir=$dataDir \ + --docdir=$docDir --bindir=$binDir --libdir=$libDir \ + --sysconfdir=$settingsDir/etc + make $jobArgs } -INSTALL { - cd qemu-haiku-1b50193d3b850f1e64b76e9a0ee7b007387ac99b +INSTALL() +{ make install } - -COPYRIGHT="2003-2008 Fabrice Bellard" -LICENSE="GNU GPL v2" \ No newline at end of file diff --git a/app-emulation/qemu/qemu-1.7.0.recipe b/app-emulation/qemu/qemu-1.7.0.recipe new file mode 100644 index 000000000..bb7338657 --- /dev/null +++ b/app-emulation/qemu/qemu-1.7.0.recipe @@ -0,0 +1,98 @@ +SUMMARY="QEMU is a generic and open source machine emulator and virtualizer." +DESCRIPTION=" +QEMU is a generic and open source machine emulator and virtualizer. +" +HOMEPAGE="http://wiki.qemu.org/" +SRC_URI="git+https://github.com/mmlr/qemu-haiku.git#e57972be33c91222a580d47c68b135aa8fa7b4c3" +COPYRIGHT="2003-2008 Fabrice Bellard" +LICENSE="GNU GPL v2" +REVISION="1" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PATCHES="qemu-1.7.0.patchset" + +PROVIDES=" + qemu$secondaryArchSuffix = $portVersion + cmd:qemu$secondaryArchSuffix = $portVersion + cmd:qemu_img$secondaryArchSuffix = $portVersion + cmd:qemu_io$secondaryArchSuffix = $portVersion + cmd:qemu_system_alpha$secondaryArchSuffix = $portVersion + cmd:qemu_system_arm$secondaryArchSuffix = $portVersion + cmd:qemu_system_cris$secondaryArchSuffix = $portVersion + cmd:qemu_system_i386$secondaryArchSuffix = $portVersion + cmd:qemu_system_lm32$secondaryArchSuffix = $portVersion + cmd:qemu_system_m68k$secondaryArchSuffix = $portVersion + cmd:qemu_system_microblaze$secondaryArchSuffix = $portVersion + cmd:qemu_system_microblazeel$secondaryArchSuffix = $portVersion + cmd:qemu_system_mips$secondaryArchSuffix = $portVersion + cmd:qemu_system_mips64$secondaryArchSuffix = $portVersion + cmd:qemu_system_mips64el$secondaryArchSuffix = $portVersion + cmd:qemu_system_mipsel$secondaryArchSuffix = $portVersion + cmd:qemu_system_moxie$secondaryArchSuffix = $portVersion + cmd:qemu_system_or32$secondaryArchSuffix = $portVersion + cmd:qemu_system_ppc$secondaryArchSuffix = $portVersion + cmd:qemu_system_ppc64$secondaryArchSuffix = $portVersion + cmd:qemu_system_ppcemb$secondaryArchSuffix = $portVersion + cmd:qemu_system_s390x$secondaryArchSuffix = $portVersion + cmd:qemu_system_sh4$secondaryArchSuffix = $portVersion + cmd:qemu_system_sh4eb$secondaryArchSuffix = $portVersion + cmd:qemu_system_sparc$secondaryArchSuffix = $portVersion + cmd:qemu_system_sparc64$secondaryArchSuffix = $portVersion + cmd:qemu_system_unicore32$secondaryArchSuffix = $portVersion + cmd:qemu_system_x86_64$secondaryArchSuffix = $portVersion + cmd:qemu_system_xtensa$secondaryArchSuffix = $portVersion + cmd:qemu_system_xtensaeb$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libz$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + lib:libstdc++$secondaryArchSuffix + glib2$secondaryArchSuffix >= 2.12 + pixman$secondaryArchSuffix + " + +BUILD_REQUIRES=" + devel:libz$secondaryArchSuffix + devel:libfdt$secondaryArchSuffix + glib2${secondaryArchSuffix}_devel >= 2.12 + pixman${secondaryArchSuffix}_devel + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:awk + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:pkg_config$secondaryArchSuffix + cmd:pod2man + cmd:python + " + +BUILD() +{ + chmod +x configure + ./configure --prefix=$prefix --mandir=$manDir --datadir=$dataDir/qemu \ + --docdir=$docDir --bindir=$binDir --libdir=$libDir \ + --sysconfdir=$settingsDir/qemu + make $jobArgs +} + +INSTALL() +{ + make install + + # provide convenience symlink to just "qemu" + ln -s qemu-system-i386 $binDir/qemu + + # remove empty target config file + rm $settingsDir/qemu/target-x86_64.conf +} diff --git a/app-emulation/qemu/qemu-2.0.0.recipe b/app-emulation/qemu/qemu-2.0.0.recipe new file mode 100644 index 000000000..1d14d34bd --- /dev/null +++ b/app-emulation/qemu/qemu-2.0.0.recipe @@ -0,0 +1,104 @@ +SUMMARY="QEMU is a generic and open source machine emulator and virtualizer." +DESCRIPTION=" +QEMU is a generic and open source machine emulator and virtualizer. + +QEMU can run OSes and programs made for one machine (e.g. an ARM board) on a \ +different machine (e.g. your own PC). By using dynamic translation, it \ +achieves very good performance. +" +HOMEPAGE="http://wiki.qemu.org/" +SRC_URI="http://wiki.qemu-project.org/download/qemu-2.0.0.tar.bz2" +CHECKSUM_SHA256="60cc1aa0cad39cec891f970bed60ca8a484f071adad4943123599ac223543a3b" +COPYRIGHT="2003-2014 Fabrice Bellard" +LICENSE="GNU GPL v2" +REVISION="1" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + qemu$secondaryArchSuffix = $portVersion + cmd:qemu$secondaryArchSuffix = $portVersion + cmd:qemu_img$secondaryArchSuffix = $portVersion + cmd:qemu_io$secondaryArchSuffix = $portVersion + cmd:qemu_system_aarch64$secondaryArchSuffix = $portVersion + cmd:qemu_system_alpha$secondaryArchSuffix = $portVersion + cmd:qemu_system_arm$secondaryArchSuffix = $portVersion + cmd:qemu_system_cris$secondaryArchSuffix = $portVersion + cmd:qemu_system_i386$secondaryArchSuffix = $portVersion + cmd:qemu_system_lm32$secondaryArchSuffix = $portVersion + cmd:qemu_system_m68k$secondaryArchSuffix = $portVersion + cmd:qemu_system_microblaze$secondaryArchSuffix = $portVersion + cmd:qemu_system_microblazeel$secondaryArchSuffix = $portVersion + cmd:qemu_system_mips$secondaryArchSuffix = $portVersion + cmd:qemu_system_mips64$secondaryArchSuffix = $portVersion + cmd:qemu_system_mips64el$secondaryArchSuffix = $portVersion + cmd:qemu_system_mipsel$secondaryArchSuffix = $portVersion + cmd:qemu_system_moxie$secondaryArchSuffix = $portVersion + cmd:qemu_system_or32$secondaryArchSuffix = $portVersion + cmd:qemu_system_ppc$secondaryArchSuffix = $portVersion + cmd:qemu_system_ppc64$secondaryArchSuffix = $portVersion + cmd:qemu_system_ppcemb$secondaryArchSuffix = $portVersion + cmd:qemu_system_s390x$secondaryArchSuffix = $portVersion + cmd:qemu_system_sh4$secondaryArchSuffix = $portVersion + cmd:qemu_system_sh4eb$secondaryArchSuffix = $portVersion + cmd:qemu_system_sparc$secondaryArchSuffix = $portVersion + cmd:qemu_system_sparc64$secondaryArchSuffix = $portVersion + cmd:qemu_system_unicore32$secondaryArchSuffix = $portVersion + cmd:qemu_system_x86_64$secondaryArchSuffix = $portVersion + cmd:qemu_system_xtensa$secondaryArchSuffix = $portVersion + cmd:qemu_system_xtensaeb$secondaryArchSuffix = $portVersion + " + +PATCHES="qemu-$portVersion.patchset" + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libz$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + lib:libstdc++$secondaryArchSuffix + lib:libsdl$secondaryArchSuffix + glib2$secondaryArchSuffix >= 2.12 + pixman$secondaryArchSuffix + " + +BUILD_REQUIRES=" + devel:libz$secondaryArchSuffix + devel:libfdt$secondaryArchSuffix + devel:libsdl$secondaryArchSuffix + glib2${secondaryArchSuffix}_devel >= 2.12 + pixman${secondaryArchSuffix}_devel + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:awk + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:find + cmd:pkg_config$secondaryArchSuffix + cmd:pod2man + cmd:python + " + +BUILD() +{ + runConfigure --omit-buildspec ./configure + make $jobArgs LDFLAGS=-lbsd +} + +INSTALL() +{ + make install + + # provide convenience symlink to just "qemu" + ln -s qemu-system-i386 $binDir/qemu + + # Remove empty config file. + rm $settingsDir/qemu/target-x86_64.conf +} diff --git a/app-i18n/anthy/anthy-9100.recipe b/app-i18n/anthy/anthy-9100.recipe index 8d3365daa..43ec7b3f1 100644 --- a/app-i18n/anthy/anthy-9100.recipe +++ b/app-i18n/anthy/anthy-9100.recipe @@ -1,5 +1,11 @@ -DESCRIPTION="Anthy -- free and secure Japanese input system" -HOMEPAGE="http://anthy.sourceforge.jp/" +SUMMARY="Japanese input system" +DESCRIPTION=" +Anthy is a Japanese input method working on X11 and Emacs. \ +It converts hiragana text to mixed kana and kanji. It is implemented as \ +a library and stores private information securely in ~/.anthy/. Thus, \ +Anthy is simple and secure (information is protected from spoofing and snooping). +" +HOMEPAGE="http://anthy.sourceforge.jp/" SRC_URI="http://sourceforge.jp/frs/redir.php?m=keihanna&f=%2Fanthy%2F37536%2Fanthy-9100h.tar.gz" REVISION="1" STATUS_HAIKU="stable" diff --git a/app-misc/colordiff/colordiff-1.0.13.recipe b/app-misc/colordiff/colordiff-1.0.13.recipe index e28644734..a37d90217 100644 --- a/app-misc/colordiff/colordiff-1.0.13.recipe +++ b/app-misc/colordiff/colordiff-1.0.13.recipe @@ -1,17 +1,16 @@ SUMMARY="Colorizes output of diff" DESCRIPTION=" -The Perl script colordiff is a wrapper for 'diff' and produces the -same output but with pretty 'syntax' highlighting. Colour schemes -can be customized." +The Perl script colordiff is a wrapper for 'diff' and produces the same output \ +but with pretty 'syntax' highlighting. Colour schemes can be customized. +" HOMEPAGE="http://colordiff.sourceforge.net/" SRC_URI="http://www.colordiff.org/colordiff-1.0.13.tar.gz" -CHECKSUM_MD5="77093f7b31b84622bb59e75a12259ca5" +CHECKSUM_SHA256="ce2805a130c81545711df94bc00a93545da3f323d835cc38b452d3396ef86c2a" REVISION="1" ARCHITECTURES="any" LICENSE="GNU GPL v2" COPYRIGHT="2002-2012 Dave Ewart" -SOURCE_DIR="$portVersionedName" PATCHES="colordiff-1.0.13.patch" PROVIDES=" diff --git a/app-misc/fdupes/fdupes-1.51.recipe b/app-misc/fdupes/fdupes-1.51.recipe new file mode 100644 index 000000000..25f04a845 --- /dev/null +++ b/app-misc/fdupes/fdupes-1.51.recipe @@ -0,0 +1,42 @@ +SUMMARY="FDUPES is a program for identifying or deleting duplicate files" +DESCRIPTION=" +fdupes is a program written by Adrian Lopez to scan directories for duplicate \ +files, with options to list, delete or replace the files with hardlinks \ +pointing to the duplicate. It first compares file sizes and MD5 signatures, \ +and then performs a byte-by-byte check for verification. +" +HOMEPAGE="http://code.google.com/p/fdupes/" +SRC_URI="http://fdupes.googlecode.com/files/fdupes-1.51.tar.gz" +CHECKSUM_SHA256="87dbc85b7b9cdb9626e713dd8078bd7487bceb58d47ceaff5404a9e6fd062881" +COPYRIGHT="1999-2013 Adrian Lopez" +LICENSE="MIT" +REVISION="1" +ARCHITECTURES="x86 x86_gcc2" + +PROVIDES=" + fdupes = $portVersion + cmd:fdupes = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES="" +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:make + cmd:gcc + " + +BUILD() +{ + make +} + +INSTALL() +{ + make install \ + PREFIX=$prefix \ + MAN_BASE_DIR=$manDir +} diff --git a/app-misc/figlet/figlet-222.recipe b/app-misc/figlet/figlet-222.recipe index b889537e4..c08cee176 100644 --- a/app-misc/figlet/figlet-222.recipe +++ b/app-misc/figlet/figlet-222.recipe @@ -1,5 +1,11 @@ -DESCRIPTION="FIGlet is a program for making large letters out of ordinary text" -HOMEPAGE="http://www.figlet.org/" +SUMMARY="FIGlet ASCII art" +DESCRIPTION=" +FIGlet is a program for making large letter ASCII banners \ +out of ordinary text. It can generate characters in many different styles \ +and it can kern and 'smush' the letters these letters together in \ +various ways. +" +HOMEPAGE="http://www.figlet.org/" SRC_URI="ftp://ftp.figlet.org/pub/figlet/program/unix/figlet222.tar.gz" REVISION="1" STATUS_HAIKU="stable" diff --git a/app-misc/getopt/getopt-1.1.5.recipe b/app-misc/getopt/getopt-1.1.5.recipe index 8cd7bf544..6607c66a3 100644 --- a/app-misc/getopt/getopt-1.1.5.recipe +++ b/app-misc/getopt/getopt-1.1.5.recipe @@ -1,28 +1,23 @@ SUMMARY="A program to help shell scripts parse command-line parameters." DESCRIPTION=" -Getopt(1) is a program to help shell scripts parse command-line -parameters. - - *It can do anything that the GNU getopt(3) routines can do. - *It can cope with spaces and shell metacharacters within - arguments. - *It can parse long parameters. - *It can shuffle parameters, so you can mix options and other - parameters on the command-line. - *It can be easily identified as an enhanced getopt(1) from within - shell scripts. - *It can report parse errors as coming from the shell script. - *It compiles cleanly with both libc-5 and glibc-2 (libc6)." - +Getopt(1) is a program to help shell scripts parse command-line parameters. +*It can do anything that the GNU getopt(3) routines can do. +*It can cope with spaces and shell metacharacters within arguments. +*It can parse long parameters. +*It can shuffle parameters, so you can mix options and other parameters on the \ +command-line. +*It can be easily identified as an enhanced getopt(1) from within shell scripts. +*It can report parse errors as coming from the shell script. +*It compiles cleanly with both libc-5 and glibc-2 (libc6). +" HOMEPAGE="http://software.frodo.looijaard.name/getopt/" SRC_URI="http://software.frodo.looijaard.name/getopt/files/getopt-1.1.5.tar.gz" -CHECKSUM_MD5="546acfdb67ba16b8658a45ade9a64d5d" +CHECKSUM_SHA256="11893276b94b1629606ab75772143918a5713259950fbf4216288e246f19fbb6" REVISION="1" LICENSE="GNU GPL v2" COPYRIGHT="1997-2012 Frodo Looijaard" ARCHITECTURES="x86 x86_gcc2" -SOURCE_DIR="$portVersionedName" PROVIDES=" getopt = $portVersion diff --git a/app-misc/mc/mc-4.8.11.recipe b/app-misc/mc/mc-4.8.11.recipe new file mode 100644 index 000000000..58d11712e --- /dev/null +++ b/app-misc/mc/mc-4.8.11.recipe @@ -0,0 +1,66 @@ +SUMMARY="Midnight Commander — a powerful file manager." +DESCRIPTION=" +GNU Midnight Commander is a text-mode full-screen file manager. It uses a two panel interface and a subshell for command execution. It includes an internal editor with syntax highlighting and an internal viewer with support for binary files. Also included is Virtual Filesystem (VFS), that allows files on remote systems (e.g. FTP, SSH servers) and files inside archives to be manipulated like real files." +HOMEPAGE="http://www.midnight-commander.org/" +SRC_URI="git+https://github.com/MidnightCommander/mc#d26b7dd6ee49211f4d18fdfbe193023a3e480389" +REVISION="1" +LICENSE="GNU GPL v2" +COPYRIGHT="2007 MC Team" +ARCHITECTURES="x86 x86_gcc2" +PATCHES="mc.patch" +SOURCE_DIR="mc-4.8.11" +COOK="Maxim Sokhatsky " + +GLOBAL_WRITABLE_FILES=" + settings/mc directory keep-old + " + +PROVIDES=" + mc = $portVersion + cmd:mc = $portVersion + cmd:mcedit = $portVersion + cmd:mcdiff = $portVersion + cmd:mcview = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + lib:libncurses + lib:libintl + lib:libiconv + lib:libglib_2.0 + " + +BUILD_REQUIRES=" + devel:libncurses + devel:libintl + devel:libiconv + devel:libglib_2.0 + " + +BUILD_PREREQUIRES=" + cmd:pkg_config + haiku_devel >= $haikuVersion + cmd:gettext + cmd:make + cmd:tar + cmd:libtoolize + cmd:aclocal + cmd:autom4te + cmd:autoconf + cmd:automake + cmd:autoheader + cmd:gcc + " + +BUILD() +{ + autogen.sh + runConfigure configure --prefix="$prefix" --datarootdir="$dataRootDir" --with-screen=ncurses + make +} + +INSTALL() +{ + make install +} diff --git a/app-misc/mc/patches/mc.patch b/app-misc/mc/patches/mc.patch new file mode 100644 index 000000000..acbb58cfa --- /dev/null +++ b/app-misc/mc/patches/mc.patch @@ -0,0 +1,12 @@ +diff --git mc-4.8.11/lib/tty/tty-ncurses.c mc-4.8.11-haiku/lib/tty/tty-ncurses.c +--- mc-4.8.11/lib/tty/tty-ncurses.c ++++ mc-4.8.11-haiku/lib/tty/tty-ncurses.c +@@ -66,7 +66,7 @@ + + /*** file scope macro definitions ****************************************************************/ + +-#if defined(_AIX) && !defined(CTRL) ++#if !defined(CTRL) + #define CTRL(x) ((x) & 0x1f) + #endif + diff --git a/app-misc/srm/srm-1.2.12.recipe b/app-misc/srm/srm-1.2.12.recipe new file mode 100644 index 000000000..075aa698d --- /dev/null +++ b/app-misc/srm/srm-1.2.12.recipe @@ -0,0 +1,53 @@ +SUMMARY="srm - secure file deletion for posix systems" +DESCRIPTION=" +A command-line compatible rm which destroys file contents before unlinking. +" +HOMEPAGE="http://srm.sourceforge.net/" +SRC_URI="http://downloads.sourceforge.net/project/srm/old_releases/1.2.12/srm-1.2.12.tar.bz2" +CHECKSUM_SHA256="865ce03933dcf61c9dc4e673cd458a902b7f47de8430176aeb2ca0ae78ee8b67" +REVISION="1" +LICENSE="MIT (no promotion)" +COPYRIGHT="2000 Matthew D. Gauthier" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + srm$secondaryArchSuffix = $portVersion + cmd:srm = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:make + cmd:gcc$secondaryArchSuffix + " + +BUILD() +{ + #./autogen.sh ... + #aclocal + #autoheader + #automake --add-missing + #autoconf + runConfigure ./configure + make +} + +INSTALL() +{ + make install +} + +# Beware, needs at least 5GB of free disk space. +TEST() +{ + make test +} diff --git a/app-misc/srm/srm-1.2.13_svn.recipe b/app-misc/srm/srm-1.2.13_svn.recipe new file mode 100644 index 000000000..7dade809b --- /dev/null +++ b/app-misc/srm/srm-1.2.13_svn.recipe @@ -0,0 +1,52 @@ +SUMMARY="srm - secure file deletion for posix systems" +DESCRIPTION=" +A command-line compatible rm which destroys file contents before unlinking. +" +HOMEPAGE="http://srm.sourceforge.net/" +SRC_URI="svn://svn.code.sf.net/p/srm/srm/trunk" +REVISION="1" +LICENSE="MIT (no promotion)" +COPYRIGHT="2000 Matthew D. Gauthier" + +ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="?x86_gcc2 ?x86" + +PROVIDES=" + srm$secondaryArchSuffix = $portVersion + cmd:srm = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:make + cmd:gcc$secondaryArchSuffix + " + +BUILD() +{ + #./autogen.sh ... + aclocal + autoheader + automake --add-missing + autoconf + runConfigure ./configure + make +} + +INSTALL() +{ + make install +} + +# Beware, needs at least 5GB of disk space free. +TEST() +{ + make test +} diff --git a/app-office/abiword/abiword-2.8.6.recipe b/app-office/abiword/abiword-2.8.6.recipe index 21de67380..603bb6d9e 100644 --- a/app-office/abiword/abiword-2.8.6.recipe +++ b/app-office/abiword/abiword-2.8.6.recipe @@ -1,32 +1,16 @@ +SUMMARY="AbiWord used to work on BeOS but support has long since been removed from AbiWord to build on BeOS/Haiku. Perhaps revisit this if/when they finsihed their port to Qt." 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" + +ARCHITECTURES="!all" + BUILD() { - cd abiword-2.8.6 - autoconf - ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --with-haiku - make + echo "AbiWord does not support Haiku, so this will not be fixed in 2.x" + echo "Abiword is working on a port to Qt in their post 3.x releases, but it's not yet working." } INSTALL() { - cd abiword-2.8.6 - make install + echo "Not supported" } - -TEST() -{ - cd abiword-2.8.6 -# make test -# make check -} - -#LICENSE="" -#COPYRIGHT="" diff --git a/app-shells/bash/bash-4.1.recipe b/app-shells/bash/bash-4.1.recipe index 9bd5889c1..23aa6bae7 100644 --- a/app-shells/bash/bash-4.1.recipe +++ b/app-shells/bash/bash-4.1.recipe @@ -1,5 +1,10 @@ -DESCRIPTION="The GNU Bourne Again Shell" -HOMEPAGE="http://tiswww.case.edu/php/chet/bash/bashtop.html" +SUMMARY="The GNU Bourne Again Shell" +DESCRIPTION=" +Bash is an sh-compatible command language interpreter that \ +executes commands read from the standard input or from a file. Bash also \ +incorporates useful features from the Korn and C shells (ksh and csh). +" +HOMEPAGE="http://tiswww.case.edu/php/chet/bash/bashtop.html" SRC_URI="ftp://ftp.gnu.org/gnu/bash/bash-4.1.tar.gz" CHECKSUM_MD5="9800d8724815fd84994d9be65ab5e7b8" REVISION="1" diff --git a/app-shells/bash/bash-4.3.recipe b/app-shells/bash/bash-4.3.recipe new file mode 100644 index 000000000..3be0ab981 --- /dev/null +++ b/app-shells/bash/bash-4.3.recipe @@ -0,0 +1,51 @@ +SUMMARY="The GNU Bourne Again Shell" +DESCRIPTION=" +Bash is an sh-compatible command language interpreter that \ +executes commands read from the standard input or from a file. Bash also \ +incorporates useful features from the Korn and C shells (ksh and csh). +" +HOMEPAGE="http://tiswww.case.edu/php/chet/bash/bashtop.html" +SRC_URI="ftp://ftp.gnu.org/gnu/bash/bash-4.3.tar.gz" +CHECKSUM_SHA256="afc687a28e0e24dc21b988fa159ff9dbcf6b7caa92ade8645cc6d5605cd024d4" +REVISION="1" +LICENSE="GNU GPL v3" +COPYRIGHT="1989, Brian Fox; 2010, Chet Ramey" + +ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + bash = $portVersion + cmd:bash = $portVersion + cmd:bashbug = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + lib:libreadline + lib:libncursesw + " + +BUILD_REQUIRES=" + haiku_devel + devel:libreadline + devel:libncursesw + cmd:gcc + cmd:bison + cmd:make + cmd:awk + " + + +#PATCHES=" +# " + +BUILD() +{ + runConfigure ./configure --without-bash-malloc --with-installed-readline + make $jobArgs +} + +INSTALL() +{ + make install +} diff --git a/app-shells/command_not_found/command_not_found-0.0.1.recipe b/app-shells/command_not_found/command_not_found-0.0.1.recipe new file mode 100644 index 000000000..5a78785f4 --- /dev/null +++ b/app-shells/command_not_found/command_not_found-0.0.1.recipe @@ -0,0 +1,38 @@ +SUMMARY="Command-not-found program" +DESCRIPTION=" +Command-not-found hooks into the 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-cnf/" +SRC_URI="git+https://github.com/jrabbit/haiku-cnf.git#87cd5d0c212e377cffa5d3e2a00c143fe751c6fb" +ARCHITECTURES="x86 x86_gcc2" +REVISION="1" +DISABLE_SOURCE_PACKAGE="yes" + +LICENSE="GNU GPL v2" +COPYRIGHT="(c) 2011 Jrabbit" + +PROVIDES=" + command_not_found = $portVersion + cmd:command_not_found = $portVersion +" +REQUIRES=" + haiku >= $haikuVersion + cmd:python +" +BUILD_REQUIRES=" + cmd:python +" +POST_INSTALL_SCRIPTS=" + boot/post-install/install_cnf.py +" +INSTALL() +{ + mkdir -p $binDir + install -m 0755 haiku_cnf.py $binDir/command_not_found + + mkdir -p $postInstallDir + patch < "$portDir/install-script.patch" + mv install_cnf.py $postInstallDir +} diff --git a/app-shells/command_not_found/install-script.patch b/app-shells/command_not_found/install-script.patch new file mode 100644 index 000000000..1e7d961de --- /dev/null +++ b/app-shells/command_not_found/install-script.patch @@ -0,0 +1,48 @@ +--- install_cnf.py.orig 2014-01-04 15:27:36.568590336 +0000 ++++ install_cnf.py 2014-01-04 15:30:33.947126272 +0000 +@@ -1,32 +1,29 @@ + #!/bin/env python + import os + +-hacks = """# command-not-found tomfoolery +-if [ -e /boot/common/bin/python ]; then +- command_not_found_handle(){ +- /boot/common/bin/python /boot/common/bin/command_not_found.py "$1" +- } +-else +- command_not_found_handle(){ +- echo "$1 not found: try installoptionalpkg $1; and check installoptionalpkg -l" +- } +-fi ++hacks = """ ++#!/bin/env python ++command_not_found_handle(){ ++ /bin/env python /bin/command_not_found "$1" ++} + \n + """ + +- + default_options="""{ + "autocorrect": false, + "spellcheck": false, + "haikuports": false + }\n""" +-home = os.environ['HOME'] +-if not os.path.exists("%s/config/settings/command-not-found/options.json" % home): +- profile = open("/etc/profile", "a") ++ ++if not os.path.exists("/boot/common/etc/profile.d/command-not-found.sh") ++ os.mkdir("/boot/common/etc/profile.d") ++ profile = open("/boot/common/etc/profile.d/command-not-found.sh", "a") + profile.write(hacks) + profile.close() ++ ++home = os.environ['HOME'] ++if not os.path.exists("%s/config/settings/command-not-found/options.json" % home): + os.mkdir("%s/config/settings/command-not-found/" % home) + options = open("%s/config/settings/command-not-found/options.json" % home, "w") + options.write(default_options) + options.close() +-os.system("install -m 755 haiku_cnf.py /boot/common/bin/command_not_found.py") +\ No newline at end of file diff --git a/app-shells/dash/dash-0.5.7.recipe b/app-shells/dash/dash-0.5.7.recipe new file mode 100644 index 000000000..94fc8675f --- /dev/null +++ b/app-shells/dash/dash-0.5.7.recipe @@ -0,0 +1,45 @@ +SUMMARY="POSIX-compliant implementation of /bin/sh." +DESCRIPTION=" +Dash is a POSIX-compliant implementation of /bin/sh that aims to be as small \ +as possible. It does this without sacrificing speed where possible. In fact, \ +it is significantly faster than bash (the GNU Bourne-Again Shell) for most tasks. +" +HOMEPAGE="http://gondor.apana.org/~herbert/dash/" +SRC_URI="http://gondor.apana.org/~herbert/dash/files/dash-0.5.7.tar.gz" +CHECKSUM_SHA256="ae89fa9f1145b7748cf0740e1df04cd52fdf8a285da4911dd0f04983efba4e39" +REVISION="1" +LICENSE="GNU GPL v3" +COPYRIGHT="Copyright (c) 1989-1994 The Regents of the University of California. 1997 Christos Zoulas. 1997-2005 Herbert Xu." + +ARCHITECTURES="?x86_gcc2 ?x86 !x86_64" + +PATCHES="dash-0.5.7.patchset" + +PROVIDES=" + dash = $portVersion + cmd:dash = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + lib:libreadline + lib:libncursesw + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + cmd:gcc + cmd:awk + cmd:make + " + +BUILD() +{ + runConfigure ./configure + make $jobArgs LIBS=-lbsd +} + +INSTALL() +{ + make install +} diff --git a/app-shells/dash/patches/dash-0.5.7.patchset b/app-shells/dash/patches/dash-0.5.7.patchset new file mode 100644 index 000000000..fc88d2dc2 --- /dev/null +++ b/app-shells/dash/patches/dash-0.5.7.patchset @@ -0,0 +1,21 @@ +From bf0f50131da4ab31343b239a7e4360ffeb82779a Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Sat, 19 Apr 2014 20:07:51 +0000 +Subject: string.h needs __USE_GNU + + +diff --git a/src/mystring.h b/src/mystring.h +index 083ea98..0381f6c 100644 +--- a/src/mystring.h ++++ b/src/mystring.h +@@ -35,6 +35,7 @@ + */ + + #include ++#define __USE_GNU + #include + + extern const char snlfmt[]; +-- +1.8.3.4 + diff --git a/app-shells/fish/fish-1.23.1_git.recipe b/app-shells/fish/fish-1.23.1_git.recipe index d79dff6f6..f0a879610 100644 --- a/app-shells/fish/fish-1.23.1_git.recipe +++ b/app-shells/fish/fish-1.23.1_git.recipe @@ -1,32 +1,68 @@ -DESCRIPTION="The friendly interactive shell" -HOMEPAGE="http://ridiculousfish.com/shell/" +SUMMARY="The friendly interactive shell" +DESCRIPTION=" +Fish is a shell geared towards interactive use. Its features are \ +focused on user friendliness and discoverability. The language syntax \ +is simple but incompatible with other shell languages. +" +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." +LICENSE="GNU GPL v2" +COPYRIGHT="2005-2009 Axel Liljencrantz" + +ARCHITECTURES="x86 ?x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + fish$secondaryArchSuffix = $portVersion + cmd:fish = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libiconv$secondaryArchSuffix + lib:libncurses$secondaryArchSuffix + lib:libgettextlib_0.18.1$secondaryArchSuffix >= 0.18.1.1 + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libiconv$secondaryArchSuffix + devel:libncurses$secondaryArchSuffix >= 5.9 + devel:libgettextlib$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:autoconf + cmd:libtoolize + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:which + cmd:doxygen >= 1.6.3 + " + +PATCHES="fish-1.23.1_git.patch" + BUILD() { - cd fish-1.23.1-git libtoolize --force --copy --install autoconf - ./configure --without-xsel --prefix=`finddir B_COMMON_DIRECTORY` + runConfigure ./configure --without-xsel make } INSTALL() { - cd fish-1.23.1-git - make install DESTDIR=${DESTDIR} + make install } 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 deleted file mode 100644 index 4548969ba..000000000 --- a/app-shells/fish/patches/fish-1.23.1-git.patch +++ /dev/null @@ -1,152 +0,0 @@ -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/fish/patches/fish-1.23.1_git.patch b/app-shells/fish/patches/fish-1.23.1_git.patch index 4548969ba..5c0472936 100644 --- a/app-shells/fish/patches/fish-1.23.1_git.patch +++ b/app-shells/fish/patches/fish-1.23.1_git.patch @@ -1,27 +1,8 @@ -diff --git a/configure.ac fish-1.23.1-git/configure.ac -index 377ab5e..672d34b 100644 +diff --git a/configure.ac b/configure.ac +index 377ab5e..9f2e5e9 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) ++++ b/configure.ac +@@ -142,6 +142,12 @@ AC_CONFIG_HEADERS(config.h) # @@ -34,37 +15,22 @@ index 377ab5e..672d34b 100644 # 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 +@@ -319,7 +325,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*) ++ haiku*) + ;; -+ *) ++ *) + LDFLAGS_FISH="$LDFLAGS_FISH -rdynamic" + ;; + esac fi -@@ -378,8 +397,6 @@ fi +@@ -378,8 +390,6 @@ fi # seems that tputs is never really needed. # @@ -73,7 +39,7 @@ index 377ab5e..672d34b 100644 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( +@@ -510,7 +520,7 @@ AC_DEFINE( # Check for os dependant libraries for all binaries. LIBS_COMMON=$LIBS LIBS="" @@ -82,7 +48,7 @@ index 377ab5e..672d34b 100644 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" +@@ -555,7 +565,7 @@ LIBS="$LIBS_SHARED" if test x$local_gettext != xno; then AC_SEARCH_LIBS( gettext, intl,,) fi @@ -91,7 +57,7 @@ index 377ab5e..672d34b 100644 LIBS_FISH_PAGER=$LIBS LIBS=$LIBS_COMMON -@@ -568,7 +585,7 @@ LIBS="$LIBS_SHARED" +@@ -568,7 +578,7 @@ LIBS="$LIBS_SHARED" if test x$local_gettext != xno; then AC_SEARCH_LIBS( gettext, intl,,) fi @@ -100,53 +66,3 @@ index 377ab5e..672d34b 100644 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/zsh-5.0.0.recipe b/app-shells/zsh/zsh-5.0.0.recipe index 55e8661bd..aee26c8ea 100644 --- a/app-shells/zsh/zsh-5.0.0.recipe +++ b/app-shells/zsh/zsh-5.0.0.recipe @@ -1,5 +1,10 @@ -DESCRIPTION="Zsh is a shell designed for interactive use, although it is also a powerful scripting language." -HOMEPAGE="http://www.zsh.org" +SUMMARY="Zsh is a UNIX command interpreter (shell)" +DESCRIPTION=" +Zsh is a shell designed for interactive use, although it is also a powerful \ +scripting language. Many of the useful features of bash, ksh, and tcsh were \ +incorporated into zsh; many original features were added. +" +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" diff --git a/app-shells/zsh/zsh-5.0.2.recipe b/app-shells/zsh/zsh-5.0.2.recipe index 95f01ab0e..bbf1e8775 100644 --- a/app-shells/zsh/zsh-5.0.2.recipe +++ b/app-shells/zsh/zsh-5.0.2.recipe @@ -1,17 +1,16 @@ SUMMARY="Zsh is a UNIX command interpreter (shell)" DESCRIPTION=" -Zsh is a shell designed for interactive use, although it is also a -powerful scripting language. Many of the useful features of bash, -ksh, and tcsh were incorporated into zsh; many original features were -added." - +Zsh is a shell designed for interactive use, although it is also a powerful \ +scripting language. Many of the useful features of bash, ksh, and tcsh were \ +incorporated into zsh; many original features were added. +" HOMEPAGE="http://www.zsh.org" LICENSE="ZSH" COPYRIGHT="1992-2013, Paul Falstad, Richard Coleman, Zoltán Hidvégi, Andrew Main, Peter Stephenson, Sven Wishnowsky, and others." SRC_URI="http://sourceforge.net/projects/zsh/files/zsh/5.0.2/zsh-5.0.2.tar.bz2" -CHECKSUM_MD5="b8f2ad691acf58b3252225746480dcad" +CHECKSUM_SHA256="eb220ae5a8076191ec6b4c6a5a2f18122d074a19f25b45f0320b44b8166c5a03" REVISION="1" -ARCHITECTURES="x86_gcc2 x86" +ARCHITECTURES="x86_gcc2 x86 x86_64" PATCHES="zsh-5.0.2.patchset" PROVIDES=" zsh = $portVersion compat >= 5 @@ -21,11 +20,11 @@ PROVIDES=" REQUIRES=" haiku >= $haikuVersion lib:libncurses - lib:libpcre + lib:libpcre >= 1 " BUILD_REQUIRES=" devel:libncurses - devel:libpcre + devel:libpcre >= 1 " BUILD_PREREQUIRES=" haiku_devel >= $haikuVersion @@ -36,8 +35,6 @@ BUILD_PREREQUIRES=" cmd:make " -SOURCE_DIR="$portVersionedName" - BUILD() { runConfigure ./configure diff --git a/app-text/aiksaurus/aiksaurus-1.2.1.recipe b/app-text/aiksaurus/aiksaurus-1.2.1.recipe new file mode 100644 index 000000000..8c1fe2112 --- /dev/null +++ b/app-text/aiksaurus/aiksaurus-1.2.1.recipe @@ -0,0 +1,89 @@ +SUMMARY="A set of libraries and applications for Thesaurus" +DESCRIPTION=" +Aiksaurus is a set of libraries and applications which provide a thesaurus \ +(currently English only, based on Guttenburg's Moby thesaurus) using native \ +GUI on several platforms: +* UNIX (GTK+ & Qt) +* Win32 & MacOSX (Cocoa) +The core library itself is platform-independent. The principal language is \ +C++, with some use of Cocoa/ObjC++; wrappers are provided for C and Cocoa/ObjC. +" + +HOMEPAGE="http://aiksaurus.sourceforge.net" +SRC_URI="http://switch.dl.sourceforge.net/project/aiksaurus/aiksaurus/1.2.1/aiksaurus-1.2.1.tar.gz" +CHECKSUM_SHA256="1b62cb6351835217f3c229faba3182ba2aa0ab395849bb894dab422976dc8cf4" + +REVISION="1" + +LICENSE="GNU GPL v2" +COPYRIGHT="2001-2002 Jared Davis + 2001 Michael D. Pritchett + " + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + aiksaurus$secondaryArchSuffix = $portVersion + lib:libAiksaurus_1.2$secondaryArchSuffix = $portVersion + cmd:aiksaurus$secondaryArchSuffix = $portVersion + cmd:caiksaurus$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:make + cmd:pkg_config$secondaryArchSuffix + " + +PATCHES="aiksaurus-1.2.1.patch" + +BUILD() +{ + # Automake complains about NEWS missing + touch NEWS + + libtoolize --force --copy --install + + # libtoolize is going to ask us to append the contents + # of some files to aclocal.m4 + + for i in m4/{libtool,lt{options,sugar,version,~obsolete}}.m4; do cat $i >> aclocal.m4; done + + aclocal -I m4 + autoconf + automake --add-missing + + runConfigure ./configure --without-gtk --datadir=$dataDir + make +} + +INSTALL() +{ + make install + + prepareInstalledDevelLib libAiksaurus + fixPkgconfig + + packageEntries devel \ + $developDir +} + +PROVIDES_devel=" + aiksaurus${secondaryArchSuffix}_devel = $portVersion + devel:aiksaurus$secondaryArchSuffix = $portVersion + devel:libAiksaurus$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + aiksaurus$secondaryArchSuffix == $portVersion base + " diff --git a/app-text/aiksaurus/patches/aiksaurus-1.2.1.patch b/app-text/aiksaurus/patches/aiksaurus-1.2.1.patch new file mode 100644 index 000000000..8121aa5d7 --- /dev/null +++ b/app-text/aiksaurus/patches/aiksaurus-1.2.1.patch @@ -0,0 +1,67 @@ +diff -ur aiksaurus-1.2.1/base/aiksaurus.t.cpp aiksaurus-1.2.1-haiku/base/aiksaurus.t.cpp +--- aiksaurus-1.2.1/base/aiksaurus.t.cpp 2003-06-27 01:44:38.003407872 +0000 ++++ aiksaurus-1.2.1-haiku/base/aiksaurus.t.cpp 2013-12-30 08:47:08.949747712 +0000 +@@ -24,6 +24,7 @@ + #include "config.h" + #include + #include ++#include + using namespace std; + using AiksaurusImpl::AsciiCompare; + +diff -ur aiksaurus-1.2.1/configure.ac aiksaurus-1.2.1-haiku/configure.ac +--- aiksaurus-1.2.1/configure.ac 2004-06-12 04:34:05.017563648 +0000 ++++ aiksaurus-1.2.1-haiku/configure.ac 2013-12-29 23:53:53.963903488 +0000 +@@ -1,5 +1,6 @@ + AC_INIT([aiksaurus],[1.2],[http://aiksaurus.sourceforge.net/]) + AC_CONFIG_SRCDIR([base/Aiksaurus.h]) ++AC_CONFIG_MACRO_DIR([m4]) + + # Aiksaurus, version 1.2.0 + +@@ -47,19 +48,19 @@ + + AC_SUBST(LT_RELEASE) + +-LT_CURRENT=`expr $AIK_MICRO_VERSION - $AIK_INTERFACE_AGE` +-LT_REVISION=$AIK_INTERFACE_AGE +-LT_AGE=`expr $AIK_BINARY_AGE - $AIK_INTERFACE_AGE` ++m4_define(LT_CURRENT,`expr $AIK_MICRO_VERSION - $AIK_INTERFACE_AGE`) ++m4_define(LT_REVISION,$AIK_INTERFACE_AGE) ++m4_define(LT_AGE,`expr $AIK_BINARY_AGE - $AIK_INTERFACE_AGE`) + +-LT_AIK_VERSION_INFO="$LT_CURRENT:$LT_REVISION:$LT_AGE" ++LT_AIK_VERSION_INFO="LT_CURRENT():LT_REVISION():LT_AGE()" + + AC_SUBST(LT_AIK_VERSION_INFO) + +-LT_CURRENT=`expr $AIK_MICRO_VERSION - $AIKGTK_INTERFACE_AGE` +-LT_REVISION=$AIKGTK_INTERFACE_AGE +-LT_AGE=`expr $AIKGTK_BINARY_AGE - $AIKGTK_INTERFACE_AGE` ++m4_define(LT_CURRENT,`expr $AIK_MICRO_VERSION - $AIKGTK_INTERFACE_AGE`) ++m4_define(LT_REVISION,$AIKGTK_INTERFACE_AGE) ++m4_define(LT_AGE,`expr $AIKGTK_BINARY_AGE - $AIKGTK_INTERFACE_AGE`) + +-LT_AIKGTK_VERSION_INFO="$LT_CURRENT:$LT_REVISION:$LT_AGE" ++LT_AIKGTK_VERSION_INFO="LT_CURRENT():LT_REVISION():LT_AGE()" + + AC_SUBST(LT_AIKGTK_VERSION_INFO) + +@@ -69,7 +70,7 @@ + + # Specify a configuration file + # +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADERS(config.h) + + AH_TOP([ + #ifndef AIKSAURUS_CONFIG_H +diff -ur aiksaurus-1.2.1/Makefile.am aiksaurus-1.2.1-haiku/Makefile.am +--- aiksaurus-1.2.1/Makefile.am 2003-06-15 10:17:42.018350080 +0000 ++++ aiksaurus-1.2.1-haiku/Makefile.am 2013-12-29 23:53:53.966000640 +0000 +@@ -27,3 +27,5 @@ + ac-helpers/pkg-config/pkg.m4 \ + aiksaurus.spec.in \ + aiksaurus.spec ++ ++ACLOCAL_AMFLAGS = -I m4 diff --git a/app-text/antiword/antiword-0.37.recipe b/app-text/antiword/antiword-0.37.recipe index 7d9e8bf75..f823f5fec 100644 --- a/app-text/antiword/antiword-0.37.recipe +++ b/app-text/antiword/antiword-0.37.recipe @@ -1,21 +1,57 @@ -DESCRIPTION="Converts MS Word files to text and ps" -HOMEPAGE="http://www.winfield.demon.nl/#Programmer" +SUMMARY="Converts MS Word files to text and ps" +DESCRIPTION=" +Antiword is a free software reader for proprietary Microsoft Word documents, \ +and is available for most computer platforms. Antiword can convert the \ +documents from Microsoft Word version 2, 6, 7, 97, 2000, 2002 and 2003 to \ +plain text, PostScript, PDF, and XML/DocBook (experimental). +" +HOMEPAGE="http://www.winfield.demon.nl/#Programmer" SRC_URI="http://www.winfield.demon.nl/linux/antiword-0.37.tar.gz" +CHECKSUM_SHA256="8e2c000fcbc6d641b0e6ff95e13c846da3ff31097801e86702124a206888f5ac" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -CHECKSUM_MD5="f868e2a269edcbc06bf77e89a55898d1" +LICENSE="GNU GPL v2" +COPYRIGHT="1998-2005 A.J. van Os" + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + antiword = $portVersion + cmd:antiword = $portVersion + cmd:kantiword =$portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:gcc + cmd:make + " + +PATCHES=" + antiword-0.37.patch + " + +USER_SETTINGS_FILES=" + settings/antiword_settings + " + BUILD() { - cd antiword-0.37 - make --makefile Makefile.haiku + + make --makefile Makefile.haiku BINDIR=$binDir \ + ANTIWORD_SETTINGS=$settingsDir/antiword \ + ANTIWORD_DATA=$dataDir/antiword } INSTALL() { - cd antiword-0.37 - make --makefile Makefile.haiku global_install + make --makefile Makefile.haiku global_install BINDIR=$binDir \ + ANTIWORD_SETTINGS=$settingsDir/antiword \ + ANTIWORD_DATA=$dataDir/antiword } - -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 index 02cf41c35..117c4e06a 100644 --- a/app-text/antiword/patches/antiword-0.37.patch +++ b/app-text/antiword/patches/antiword-0.37.patch @@ -51,11 +51,11 @@ diff -Naur antiword-0.37/Makefile.haiku antiword-0.37-haiku/Makefile.haiku + antiword\ + kantiword + -+LOCAL_INSTALL_DIR = $(HOME)/bin -+LOCAL_RESOURCES_DIR = $(HOME)/.antiword ++LOCAL_INSTALL_DIR = $(BINDIR) ++LOCAL_RESOURCES_DIR = $(ANTIWORD_SETTINGS) + -+GLOBAL_INSTALL_DIR = /boot/common/bin -+GLOBAL_RESOURCES_DIR = /boot/common/data/antiword ++GLOBAL_INSTALL_DIR = $(BINDIR) ++GLOBAL_RESOURCES_DIR = $(ANTIWORD_DATA) + +all: $(PROGS) + diff --git a/app-text/asciidoc/asciidoc-8.6.8.recipe b/app-text/asciidoc/asciidoc-8.6.8.recipe index b95ef81bf..9ab93e570 100644 --- a/app-text/asciidoc/asciidoc-8.6.8.recipe +++ b/app-text/asciidoc/asciidoc-8.6.8.recipe @@ -1,13 +1,17 @@ SUMMARY="Highly configurable text format for writing documentation" DESCRIPTION=" - AsciiDoc is a text document format for writing notes, documentation, articles, books, ebooks, slideshows, web pages, man pages and blogs. AsciiDoc files can be translated to many formats including HTML, PDF, EPUB, man page. - - AsciiDoc is highly configurable: both the AsciiDoc source file syntax and the backend output markups (which can be almost any type of SGML/XML markup) can be customized and extended by the user." +AsciiDoc is a text document format for writing notes, documentation, articles, \ +books, ebooks, slideshows, web pages, man pages and blogs. AsciiDoc files can \ +be translated to many formats including HTML, PDF, EPUB, man page. +AsciiDoc is highly configurable: both the AsciiDoc source file syntax and the \ +backend output markups (which can be almost any type of SGML/XML markup) can \ +be customized and extended by the user. +" HOMEPAGE="http://asciidoc.org" LICENSE="GNU GPL v2" COPYRIGHT="2002-2011 Stuart Rackham" SRC_URI="http://sourceforge.net/projects/asciidoc/files/asciidoc/8.6.8/asciidoc-8.6.8.tar.gz" -CHECKSUM_MD5="6ffff1ab211f30481741ce4d1e4b12bf" +CHECKSUM_SHA256="ffb67f59dccaf6f15db72fcd04fdf21a2f9b703d31f94fcd0c49a424a9fcfbc4" REVISION="1" ARCHITECTURES="x86_gcc2 ?x86" @@ -30,7 +34,6 @@ BUILD_PREREQUIRES=" cmd:sed " -SOURCE_DIR="$portVersionedName" PATCH() { diff --git a/app-text/aspell/aspell-0.60.6.1.recipe b/app-text/aspell/aspell-0.60.6.1.recipe new file mode 100644 index 000000000..d89de9292 --- /dev/null +++ b/app-text/aspell/aspell-0.60.6.1.recipe @@ -0,0 +1,89 @@ +SUMMARY="aspell - a free and open source spell checker" +DESCRIPTION=" +GNU Aspell is a Free and Open Source spell checker designed to eventually \ +replace Ispell. It can either be used as a library or as an independent spell \ +checker. Its main feature is that it does a superior job of suggesting \ +possible replacements for a misspelled word than just about any other spell \ +checker out there for the English language. Unlike Ispell, Aspell can also \ +easily check documents in UTF-8 without having to use a special dictionary. \ +Aspell will also do its best to respect the current locale setting. Other \ +advantages over Ispell include support for using multiple dictionaries at once \ +and intelligently handling personal dictionaries when more than one Aspell \ +process is open at once. +" +LICENSE="GNU LGPL v2" +COPYRIGHT="2000-2006 Kevin Atkinson" +HOMEPAGE="http://aspell.net" +SRC_URI="ftp://ftp.gnu.org/gnu/aspell/aspell-0.60.6.1.tar.gz" +CHECKSUM_SHA256="f52583a83a63633701c5f71db3dc40aab87b7f76b29723aeb27941eff42df6e1" +REVISION="1" +ARCHITECTURES="x86 x86_gcc2" + +PROVIDES=" + aspell = $portVersion compat >= 0.60 + cmd:aspell = $portVersion compat >= 0.60 + cmd:aspell_import = $portVersion compat >= 0.60 + cmd:precat = $portVersion compat >= 0.60 + cmd:preunzip = $portVersion compat >= 0.60 + cmd:prezip = $portVersion compat >= 0.60 + cmd:prezip_bin = $portVersion compat >= 0.60 + cmd:pspell_config = $portVersion compat >= 0.60 + cmd:run_with_aspell = $portVersion compat >= 0.60 + cmd:word_list_compress = $portVersion compat >= 0.60 + lib:libaspell = $portVersion compat >= 0.15 + lib:libpspell = $portVersion compat >= 0.15 + " + +REQUIRES=" + haiku >= $haikuVersion + lib:libncurses + " + +BUILD_REQUIRES=" + devel:libncurses + " + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:libtoolize + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:make + cmd:gcc + cmd:perl + " + +PROVIDES_devel=" + aspell_devel = $portVersion compat >= 0.60 + devel:libaspell = $portVersion compat >= 0.15 + devel:libpspell = $portVersion compat >= 0.15 + " + +REQUIRES_devel=" + aspell == $portVersion + " + + +PATCH() +{ + sed -i "s,AM_CONFIG_HEADER,AC_CONFIG_HEADERS," configure.ac +} + +BUILD() +{ + libtoolize --force --copy --install + aclocal -I m4 + autoconf + automake + runConfigure ./configure \ + --enable-dict-dir=$dataDir/aspell-0.60 + make +} + +INSTALL() +{ + make install + prepareInstalledDevelLibs libaspell libpspell + packageEntries devel $developDir +} diff --git a/app-text/aspell/aspell-0.60.6.recipe b/app-text/aspell/aspell-0.60.6.recipe deleted file mode 100644 index b6c56f112..000000000 --- a/app-text/aspell/aspell-0.60.6.recipe +++ /dev/null @@ -1,25 +0,0 @@ -DESCRIPTION="aspell - a free and open source spell checker" -HOMEPAGE="http://aspell.net" -SRC_URI="ftp://ftp.gnu.org/gnu/aspell/aspell-0.60.6.tar.gz" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -CHECKSUM_MD5="bc80f0198773d5c05086522be67334eb" -BUILD() -{ - cd aspell-0.60.6 - libtoolize --force --copy --install - aclocal -I m4 - autoconf - automake - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd aspell-0.60.6 - make install -} -LICENSE="GNU LGPL v2" -COPYRIGHT="2000-2006 Kevin Atkinson" diff --git a/app-text/discount/discount-2.1.3.recipe b/app-text/discount/discount-2.1.3.recipe index 01a6664bf..a8fc46179 100644 --- a/app-text/discount/discount-2.1.3.recipe +++ b/app-text/discount/discount-2.1.3.recipe @@ -1,20 +1,19 @@ SUMMARY="An implementation of John Gruber's Markdown text to html language written in C" DESCRIPTION=" -Markdown provides a library that gives you formatting functions -suitable for marking down entire documents or lines of text, a -command-line program that you can use to mark down documents -interactively or from a script, and a tiny (3 programs so far) suite -of example programs that show how to fully utilize the markdown -library." +Markdown provides a library that gives you formatting functions suitable for \ +marking down entire documents or lines of text, a command-line program that \ +you can use to mark down documents interactively or from a script, and a tiny \ +(3 programs so far) suite of example programs that show how to fully utilize \ +the markdown library. +" 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" +CHECKSUM_SHA256="7280da7a27be42244311912eeee19695623f196817ec08f43b652fcc2ded975d" REVISION="1" LICENSE="BSD (4-clause)" COPYRIGHT="2007-2012 David Loren Parsons" ARCHITECTURES="x86 x86_gcc2" -CHECKSUM_MD5="a1a4eade44f8141e38f2be7f2ed56c98" -SOURCE_DIR="$portVersionedName" PROVIDES=" discount = $portVersion compat >= 2 diff --git a/app-text/docbook_xsl_stylesheets/docbook_xsl_stylesheets-1.78.1.recipe b/app-text/docbook_xsl_stylesheets/docbook_xsl_stylesheets-1.78.1.recipe new file mode 100644 index 000000000..d76ef5487 --- /dev/null +++ b/app-text/docbook_xsl_stylesheets/docbook_xsl_stylesheets-1.78.1.recipe @@ -0,0 +1,46 @@ +SUMMARY="XSL stylesheets for DocBook XML document instances." +DESCRIPTION=" +DocBook is an XML vocabulary that lets you create documents in a presentation-neutral form that captures the logical structure of your content. Using free tools along with the DocBook XSL stylesheets, you can publish your content as HTML pages and PDF files, and in many other formats. +" + +HOMEPAGE="http://docbook.sourceforge.net" +SRC_URI="http://sourceforge.net/projects/docbook/files/docbook-xsl/1.78.1/docbook-xsl-1.78.1.tar.bz2" +CHECKSUM_SHA256="c98f7296ab5c8ccd2e0bc07634976a37f50847df2d8a59bdb1e157664700b467" + +REVISION="1" +ARCHITECTURES="any" + +LICENSE="BSD (3-clause)" +COPYRIGHT=" + 1999-2007 Norman Walsh + 2003 Jiří Kosek + 2004-2007 Steve Ball + 2005-2008 The DocBook Project + 2011-2012 O'Reilly Media +" + +PROVIDES=" + docbook_xsl_stylesheets = $portVersion + " + +BUILD_PREREQUIRES=" + cmd:find + " + +SOURCE_DIR="docbook-xsl-$portVersion" +BUILD() +{ + true +} + +INSTALL() +{ + mkdir -p $dataDir/xml/docbook/xsl-stylesheets-1.78.1 + + cp -v -R VERSION common eclipse epub extensions fo highlighting html \ + htmlhelp images javahelp lib manpages params profiling \ + roundtrip slides template tests tools webhelp website \ + xhtml xhtml-1_1 $dataDir/xml/docbook/xsl-stylesheets-1.78.1 + + ln -s VERSION $dataDir/xml/docbook/xsl-stylesheets-1.78.1/VERSION.xsl +} diff --git a/app-text/dos2unix/dos2unix-1.0.1.recipe b/app-text/dos2unix/dos2unix-1.0.1.recipe new file mode 100644 index 000000000..705802d69 --- /dev/null +++ b/app-text/dos2unix/dos2unix-1.0.1.recipe @@ -0,0 +1,42 @@ +SUMMARY="dos2unix and unix2dos end of line file convertors." +DESCRIPTION=" +DOS/Windows like to put CR/LF at the end of lines whereas UNIX like to have \ +just LF. Dos2unix and unix2dos are simple parser/converter command line \ +programs to convert between the two formats. +" +HOMEPAGE="http://github.com/puckipedia/dos2unix" +SRC_URI="git://github.com/puckipedia/dos2unix.git#553720356be18ca60cae3d970a575520aef5a4f4" +REVISION="1" +COPYRIGHT="Public Domain" +LICENSE="Public Domain" + +ARCHITECTURES="x86 x86_gcc2 x86_64" + +PROVIDES=" + dos2unix = 1.0.1 compat >= 1 + cmd:dos2unix + cmd:unix2dos + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:g++ + " + +BUILD() +{ + cd src + g++ -O -o ../dos2unix dos2unix.c + g++ -O -o ../unix2dos unix2dos.c +} + +INSTALL() +{ + mkdir -p $binDir + cp dos2unix $binDir/dos2unix + cp unix2dos $binDir/unix2dos +} diff --git a/app-text/dos2unix/dos2unix-1.0.recipe b/app-text/dos2unix/dos2unix-1.0.recipe index aba387621..b3043e6d5 100644 --- a/app-text/dos2unix/dos2unix-1.0.recipe +++ b/app-text/dos2unix/dos2unix-1.0.recipe @@ -2,7 +2,7 @@ SUMMARY="dos2unix and unix2dos end of line file convertors." DESCRIPTION="DOS/Windows like to put CR/LF at the end of lines whereas UNIX like to have just LF. Dos2unix and unix2dos are simple parser/converter command line programs to convert between the two formats." HOMEPAGE="http://www.programmersheaven.com/download/3118/download.aspx" SRC_URI="http://ports-space.haiku-files.org/source/dos2unix-1.0.zip" -CHECKSUM_MD5="76c4991341219d71072474255714b010" +CHECKSUM_SHA256="a88941a2ab824deb79e7d012b0df72b5c84d1157af0b2d59b46184fb35b5519d" REVISION="1" COPYRIGHT="Public Domain" LICENSE="Public Domain" @@ -16,14 +16,14 @@ PROVIDES=" " REQUIRES=" - lib:libroot >= $haikuVersion + haiku >= $haikuVersion " BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion cmd:gcc " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/app-text/gpp/gpp-2.4.recipe b/app-text/gpp/gpp-2.4.recipe index 0aa221569..04c2d7d13 100644 --- a/app-text/gpp/gpp-2.4.recipe +++ b/app-text/gpp/gpp-2.4.recipe @@ -1,4 +1,9 @@ -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." +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" diff --git a/app-text/help2man/help2man-1.43.3.recipe b/app-text/help2man/help2man-1.43.3.recipe new file mode 100644 index 000000000..99131ff3a --- /dev/null +++ b/app-text/help2man/help2man-1.43.3.recipe @@ -0,0 +1,52 @@ +SUMMARY="help2man produces simple manual pages from the ‘--help’ and ‘--version’ output of other commands." +DESCRIPTION=" +help2man is a tool for automatically generating simple manual pages from \ +program output. +This program is intended to provide an easy way for software authors to \ +include a manual page in their distribution without having to maintain that \ +document. +Given a program which produces reasonably standard ‘--help’ and ‘--version’ \ +outputs, help2man can re-arrange that output into something which resembles a \ +manual page. +" + +HOMEPAGE="http://www.gnu.org/software/help2man/" +SRC_URI="http://ftpmirror.gnu.org/help2man/help2man-1.43.3.tar.gz" +CHECKSUM_SHA256="67978d118980ebd9f0c60be5db129527900a7b997b9568fc795ba9bdb341d303" + +REVISION="1" + +LICENSE="GNU GPL v3" +COPYRIGHT="1997-2013 Free Software Foundation" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + help2man = $portVersion + cmd:help2man$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + cmd:perl + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:perl + " + +BUILD() +{ + runConfigure ./configure + make +} + +INSTALL() +{ + make install +} diff --git a/app-text/help2man/help2man-1.44.1.recipe b/app-text/help2man/help2man-1.44.1.recipe new file mode 100644 index 000000000..2e0ffc432 --- /dev/null +++ b/app-text/help2man/help2man-1.44.1.recipe @@ -0,0 +1,53 @@ +SUMMARY="Produces simple manual pages from the ‘--help’ and ‘--version’ output of other commands." +DESCRIPTION=" +help2man is a tool for automatically generating simple manual pages from \ +program output. +This program is intended to provide an easy way for software authors to \ +include a manual page in their distribution without having to maintain that \ +document. +Given a program which produces reasonably standard ‘--help’ and ‘--version’ \ +outputs, help2man can re-arrange that output into something which resembles a \ +manual page. +" + +HOMEPAGE="http://www.gnu.org/software/help2man/" +SRC_URI="http://ftpmirror.gnu.org/help2man/help2man-1.44.1.tar.xz" +CHECKSUM_SHA256="22de6846771921f455e389cdca07119d7f55b1877685b42dd5bbb9fc1377defb" + +REVISION="1" + +LICENSE="GNU GPL v3" +COPYRIGHT="1997-2013 Free Software Foundation" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + help2man = $portVersion + cmd:help2man$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + cmd:perl + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:perl + cmd:awk + " + +BUILD() +{ + runConfigure ./configure + make +} + +INSTALL() +{ + make install +} diff --git a/app-text/htmldoc/htmldoc-1.8.27.recipe b/app-text/htmldoc/htmldoc-1.8.27.recipe index f597e02da..2421eb887 100644 --- a/app-text/htmldoc/htmldoc-1.8.27.recipe +++ b/app-text/htmldoc/htmldoc-1.8.27.recipe @@ -1,13 +1,13 @@ SUMMARY="HTML file processor and converter" DESCRIPTION=" - HTMLDOC converts HTML files and web pages into index HTML, Adobe - Postscript or Adobe Portable Document Format files (pdf). - " +HTMLDOC converts HTML files and web pages into index HTML, Adobe Postscript or \ +Adobe Portable Document Format files (pdf). +" HOMEPAGE="http://www.msweet.org/projects.php?Z1" LICENSE="GNU GPL v2" COPYRIGHT="1997-2006 Easy Software Products" SRC_URI="http://www.msweet.org/files/project1/htmldoc-1.8.27-source.tar.bz2" -CHECKSUM_MD5="35589e7b8fe9c54e11be87cd5aec4dcc" +CHECKSUM_SHA256="89ffd223734268375dc959c200622dc5f167576c5cad9d7ce4bd7567faeb9613" REVISION="3" ARCHITECTURES="x86_gcc2 x86 x86_64" @@ -38,7 +38,6 @@ BUILD_PREREQUIRES=" cmd:sed " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/app-text/htmltidy/htmltidy-20092812.recipe b/app-text/htmltidy/htmltidy-20092812.recipe index 8a584fc01..4f46dd7eb 100644 --- a/app-text/htmltidy/htmltidy-20092812.recipe +++ b/app-text/htmltidy/htmltidy-20092812.recipe @@ -1,18 +1,59 @@ +SUMMARY="Tidy the layout and correct errors in HTML and XML documents." DESCRIPTION="htmltidy - Tidy the layout and correct errors in HTML and XML documents." HOMEPAGE="http://tidy.sourceforge.net/" SRC_URI="cvs://:pserver:anonymous@tidy.cvs.sourceforge.net:/cvsroot/tidy/tidy#12/28/2009" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" LICENSE="MIT" COPYRIGHT="1998-2008 World Wide Web Consortium" +ARCHITECTURES="x86_gcc2" + +PROVIDES=" + htmltydy = $portVersion + cmd:tab2space + cmd:tidy + lib:libtidy_0.99 + lib:libtidy + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchsuffix + cmd:as$secondaryArchSuffix + cmd:make + cmd:libtoolize + cmd:autoconf + " + +PATCHES="$portName-$portVersion.patchset" BUILD() { - cd htmltidy-20092812/build/gmake + /bin/sh build/gnuauto/setup.sh + runConfigure ./configure make } INSTALL() { - cd htmltidy-20092812/build/gmake - make installexes installhdrs installib + make install + prepareInstalledDevelLibs libtidy + packageEntries devel $developDir } +TEST() +{ + cd test + sh testall.sh +} + +PROVIDES_devel=" + devel:libtidy + " + +REQUIRES_devel=" + htmltidy == $portVersion base + " diff --git a/app-text/htmltidy/patches/htmltidy-20092812.patch b/app-text/htmltidy/patches/htmltidy-20092812.patch deleted file mode 100644 index 66e4c78a6..000000000 --- a/app-text/htmltidy/patches/htmltidy-20092812.patch +++ /dev/null @@ -1,69 +0,0 @@ -diff -up htmltidy-20092812/build/gmake/Makefile.orig htmltidy-20092812/build/gmake/Makefile ---- htmltidy-20092812/build/gmake/Makefile.orig 2008-03-22 15:13:38.035389440 -0600 -+++ htmltidy-20092812/build/gmake/Makefile 2010-05-18 13:58:13.713293824 -0600 -@@ -58,8 +58,13 @@ SHELL=/bin/sh - PROJECT=tidy - - # Installation variables. Spaces OK, only dir create and file copy operations. -+ifeq ($(shell uname), Haiku) -+runinst_prefix=${DESTDIR}/boot/common -+devinst_prefix=${DESTDIR}/boot/common -+else - runinst_prefix=/usr/local - devinst_prefix=/usr/local -+endif - - bininst = ${runinst_prefix}/bin - libinst = ${devinst_prefix}/lib -@@ -93,7 +98,10 @@ DOCDIR = ${TOPDIR}/htmldoc - CC= gcc - CFLAGS= -g -pedantic -Wall -I $(INCDIR) - # flags only supported with gcc 3.x -+GCC_MAJOR= $(shell $(CC) -v 2>&1 | grep " version " | cut -d' ' -f3 | cut -d'.' -f1) -+ifneq ($(GCC_MAJOR), 2) - CFLAGS += -Wunused-parameter -+endif - - OTHERCFLAGS= - OTHERCFLAGS+= -D_DEBUG=1 -diff -up htmltidy-20092812/include/platform.h.orig htmltidy-20092812/include/platform.h ---- htmltidy-20092812/include/platform.h.orig 2008-03-17 06:57:01.048758784 -0600 -+++ htmltidy-20092812/include/platform.h 2010-05-18 13:54:14.034865152 -0600 -@@ -296,6 +296,15 @@ extern "C" { - #endif - #endif - -+/* Convenience defines for Haiku platforms */ -+ -+#if defined(__HAIKU__) -+#define HAIKU_OS -+#ifndef PLATFORM_NAME -+#define PLATFORM_NAME "Haiku" -+#endif -+#endif -+ - /* Convenience defines for Cygwin platforms */ - - #if defined(__CYGWIN__) -@@ -417,7 +426,7 @@ extern "C" { - #if PRESERVE_FILE_TIMES - - #ifndef HAS_FUTIME --#if defined(CYGWIN_OS) || defined(BE_OS) || defined(OS2_OS) || defined(HPUX_OS) || defined(SOLARIS_OS) || defined(LINUX_OS) || defined(BSD_BASED_OS) || defined(MAC_OS) || defined(__MSL__) || defined(IRIX_OS) || defined(AIX_OS) || defined(__BORLANDC__) -+#if defined(CYGWIN_OS) || defined(BE_OS) || defined(HAIKU_OS) || defined(OS2_OS) || defined(HPUX_OS) || defined(SOLARIS_OS) || defined(LINUX_OS) || defined(BSD_BASED_OS) || defined(MAC_OS) || defined(__MSL__) || defined(IRIX_OS) || defined(AIX_OS) || defined(__BORLANDC__) - #define HAS_FUTIME 0 - #else - #define HAS_FUTIME 1 -@@ -513,10 +522,10 @@ extern "C" { - - /* hack for gnu sys/types.h file which defines uint and ulong */ - --#if defined(BE_OS) || defined(SOLARIS_OS) || defined(BSD_BASED_OS) || defined(OSF_OS) || defined(IRIX_OS) || defined(AIX_OS) -+#if defined(BE_OS) || defined(HAIKU_OS) || defined(SOLARIS_OS) || defined(BSD_BASED_OS) || defined(OSF_OS) || defined(IRIX_OS) || defined(AIX_OS) - #include - #endif --#if !defined(HPUX_OS) && !defined(CYGWIN_OS) && !defined(MAC_OS_X) && !defined(BE_OS) && !defined(SOLARIS_OS) && !defined(BSD_BASED_OS) && !defined(OSF_OS) && !defined(IRIX_OS) && !defined(AIX_OS) && !defined(LINUX_OS) -+#if !defined(HPUX_OS) && !defined(CYGWIN_OS) && !defined(MAC_OS_X) && !defined(BE_OS) && !defined(HAIKU_OS) && !defined(SOLARIS_OS) && !defined(BSD_BASED_OS) && !defined(OSF_OS) && !defined(IRIX_OS) && !defined(AIX_OS) && !defined(LINUX_OS) - # undef uint - typedef unsigned int uint; - #endif diff --git a/app-text/htmltidy/patches/htmltidy-20092812.patchset b/app-text/htmltidy/patches/htmltidy-20092812.patchset new file mode 100644 index 000000000..ea11a2def --- /dev/null +++ b/app-text/htmltidy/patches/htmltidy-20092812.patchset @@ -0,0 +1,45 @@ +From 1f39ac359161c8bb06a4f1d8e85465a70298bd5b Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 30 Mar 2014 12:30:32 +0200 +Subject: Fix path of generated binaries for tests. + + +diff --git a/test/testone.sh b/test/testone.sh +index 8abb3b9..b3dbd0f 100755 +--- a/test/testone.sh ++++ b/test/testone.sh +@@ -24,7 +24,7 @@ set +f + + TESTNO=$1 + EXPECTED=$2 +-TIDY=../bin/tidy ++TIDY=../console/tidy + INFILES=./input/in_${TESTNO}.*ml + CFGFILE=./input/cfg_${TESTNO}.txt + +-- +1.8.3.4 + + +From 2b3f8f044417309878612b135edff9726553fcad Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 30 Mar 2014 12:30:49 +0200 +Subject: Make file aware of Haiku. + + +diff --git a/include/platform.h b/include/platform.h +index c30946b..ae7843c 100644 +--- a/include/platform.h ++++ b/include/platform.h +@@ -417,7 +417,7 @@ extern "C" { + #if PRESERVE_FILE_TIMES + + #ifndef HAS_FUTIME +-#if defined(CYGWIN_OS) || defined(BE_OS) || defined(OS2_OS) || defined(HPUX_OS) || defined(SOLARIS_OS) || defined(LINUX_OS) || defined(BSD_BASED_OS) || defined(MAC_OS) || defined(__MSL__) || defined(IRIX_OS) || defined(AIX_OS) || defined(__BORLANDC__) ++#if defined(CYGWIN_OS) || defined(BE_OS) || defined(OS2_OS) || defined(HPUX_OS) || defined(SOLARIS_OS) || defined(LINUX_OS) || defined(BSD_BASED_OS) || defined(MAC_OS) || defined(__MSL__) || defined(IRIX_OS) || defined(AIX_OS) || defined(__BORLANDC__) || defined(__HAIKU__) + #define HAS_FUTIME 0 + #else + #define HAS_FUTIME 1 +-- +1.8.3.4 + diff --git a/app-text/hunspell/hunspell-1.3.2.recipe b/app-text/hunspell/hunspell-1.3.2.recipe index a4e26881a..2b3957155 100644 --- a/app-text/hunspell/hunspell-1.3.2.recipe +++ b/app-text/hunspell/hunspell-1.3.2.recipe @@ -1,35 +1,90 @@ -DESCRIPTION="hunspell - spellchecker, forked from myspell" -HOMEPAGE="http://hunspell.sourceforge.net/" +SUMMARY="Spellchecker, forked from myspell" +DESCRIPTION=" + Hunspell is a spell checker and morphological analyzer library and program + designed for languages with rich morphology and complex word compounding or + character encoding. + " +HOMEPAGE="http://hunspell.sourceforge.net/" SRC_URI="http://downloads.sourceforge.net/hunspell/hunspell-1.3.2.tar.gz" +CHECKSUM_SHA256="b4edd4a4ee944cb9f485b35473e46b729ed768e9d24da8e78e4c4c6ca56addbd" +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) + " REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -CHECKSUM_MD5="3121aaf3e13e5d88dfff13fb4a5f1ab8" + +ARCHITECTURES="x86 x86_gcc2" + +PROVIDES=" + $portName = $portVersion + cmd:affixcompress = $portVersion + cmd:analyze = $portVersion + cmd:chmorph = $portVersion + cmd:hunspell = $portVersion + cmd:hunzip = $portVersion + cmd:hzip = $portVersion + cmd:ispellaff2myspell = $portVersion + cmd:makealias = $portVersion + cmd:munch = $portVersion + cmd:unmunch = $portVersion + cmd:wordforms = $portVersion + cmd:wordlist2hunspell = $portVersion + lib:libhunspell_1.3 = $portVersion compat >= 1.3 + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:gcc + cmd:ld + cmd:make + cmd:libtoolize + cmd:aclocal + cmd:autoconf + cmd:automake + " + BUILD() { - cd hunspell-1.3.2 libtoolize --force --copy --install aclocal -I m4 autoconf - automake + automake --add-missing 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 + runConfigure ./configure + make $jobArgs } INSTALL() { - cd hunspell-1.3.2 make install + + prepareInstalledDevelLibs libhunspell-1.3 libparsers + fixPkgconfig + + packageEntries devel $developDir } -LICENSE="GNU GPL v2 - GNU LGPL v2.1 - MPL v1.1" +TEST() +{ + make check +} -COPYRIGHT="2007-2011 Hunspell developers et al. - 2002-2008 László Németh (Hunspell) - 2001-2002 Kevin Hendricks (MySpell)" +PROVIDES_devel=" + hunspell_devel = $portVersion + devel:libhunspell_1.3 = $portVersion compat >= 1.3 + devel:libparsers = $portVersion compat >= 1.3 + " +REQUIRES_devel=" + hunspell == $portVersion base + " diff --git a/app-text/libpaper/libpaper-1.1.24.recipe b/app-text/libpaper/libpaper-1.1.24.recipe index 4401d0adc..faad58af5 100644 --- a/app-text/libpaper/libpaper-1.1.24.recipe +++ b/app-text/libpaper/libpaper-1.1.24.recipe @@ -1,27 +1,39 @@ SUMMARY="Library for handling paper characteristics" -DESCRIPTION="The libpaper paper-handling library automates recognition of many different paper types and sizes for programs that need to deal with printed output." +DESCRIPTION=" +The libpaper paper-handling library automates recognition of many different \ +paper types and sizes for programs that need to deal with printed output. +" 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" - +CHECKSUM_SHA256="38ac28114673d4b175a939d981e0477a0ed9bcaab27033522ecb2ca78ee90c7e" LICENSE="GNU GPL v2" COPYRIGHT="1996 Yves Arrouye 2000 Adrian Bunk" REVISION="1" -ARCHITECTURES="x86_gcc2 x86" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" -CHECKSUM_MD5="5bc87d494ba470aba54f6d2d51471834" - -REQUIRES=" - lib:libroot >= $haikuVersion +PROVIDES=" + libpaper$secondaryArchSuffix = $portVersion + lib:libpaper$secondaryArchSuffix = 1.1.24 compat >= 1 + cmd:paper_config$secondaryArchSuffix + cmd:paperconf$secondaryArchSuffix + cmd:paperconfig$secondaryArchSuffix " -BUILD_REQUIRES="" +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " BUILD_PREREQUIRES=" - cmd:gcc - cmd:ld + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix cmd:libtool cmd:aclocal cmd:autoconf @@ -29,12 +41,6 @@ BUILD_PREREQUIRES=" cmd:sed " -PROVIDES=" - cmd:paperconf - cmd:paperconfig - lib:libpaper$secondaryArchSuffix = 1.1.24 compat >= 1 - " - BUILD() { sed -i 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/g' configure.ac @@ -65,9 +71,11 @@ INSTALL() # ----- devel package ------------------------------------------------------- PROVIDES_devel=" - devel:libpaper$secondaryArchSuffix = 1.1.24 compat >= 1 + libpaper${secondaryArchSuffix}_devel = $portVersion + devel:libpaper$secondaryArchSuffix = 1.1.24 compat >= 1 " REQUIRES_devel=" +# haiku${secondaryArchSuffix}_devel >= $haikuVersion libpaper$secondaryArchSuffix == $portVersion base " diff --git a/app-text/libwpd/libwpd-0.9.6.recipe b/app-text/libwpd/libwpd-0.9.6.recipe deleted file mode 100644 index 9f95286e3..000000000 --- a/app-text/libwpd/libwpd-0.9.6.recipe +++ /dev/null @@ -1,27 +0,0 @@ -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/libwpd/libwpd-0.9.9.recipe b/app-text/libwpd/libwpd-0.9.9.recipe new file mode 100644 index 000000000..5e2bf3fc6 --- /dev/null +++ b/app-text/libwpd/libwpd-0.9.9.recipe @@ -0,0 +1,84 @@ +SUMMARY="A library for importing WordPerfect (tm) documents" +DESCRIPTION=" + libwpd is a C++ library designed to help process WordPerfect documents. It \ + is most commonly used to import WordPerfect documents into other word \ + processors (see below), but may be useful in other cases as well. + " +HOMEPAGE="http://libwpd.sourceforge.net" +SRC_URI="http://prdownloads.sourceforge.net/libwpd/libwpd-0.9.9.tar.gz" +LICENSE=" + MPL v2.0 + GNU LGPL v2.1 + " +COPYRIGHT=" + William Lachance + Marc Maurer + Fridrich Strba + " +REVISION="2" +CHECKSUM_SHA256="6d894db0de312dbbef3359c14b967ee4d2bab4e70052c151f2a44dc39b0744b9" + +ARCHITECTURES="x86 ?x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + $portName$secondaryArchSuffix = $portVersion + cmd:wpd2html$secondaryArchSuffix + cmd:wpd2raw$secondaryArchSuffix + cmd:wpd2text$secondaryArchSuffix + lib:libwpd_0.9$secondaryArchSuffix = 9.0.9 compat >= 9 + lib:libwpd_stream_0.9$secondaryArchSuffix = 9.0.9 compat >= 9 + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libz$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + pkgconfig$secondaryArchSuffix >= 0.27 + cmd:aclocal + cmd:libtoolize + cmd:autoconf + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:awk + " + +BUILD() +{ + libtoolize --force --copy --install + aclocal + autoconf + automake + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libwpd-0.9 libwpd-stream-0.9 + fixPkgconfig + + packageEntries devel $developDir +} + +PROVIDES_devel=" + libwpd${secondaryArchSuffix}_devel = $portVersion + devel:libwpd_0.9$secondaryArchSuffix = 9.0.9 compat >= 9 + devel:libwpd_stream_0.9$secondaryArchSuffix = 9.0.9 compat >= 9 + " +REQUIRES_devel=" + $portName$secondaryArchSuffix == $portVersion base + " diff --git a/app-text/libwpg/libwpg-0.2.1.recipe b/app-text/libwpg/libwpg-0.2.1.recipe deleted file mode 100644 index 7ff6df5ed..000000000 --- a/app-text/libwpg/libwpg-0.2.1.recipe +++ /dev/null @@ -1,25 +0,0 @@ -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/libwpg/libwpg-0.2.2.recipe b/app-text/libwpg/libwpg-0.2.2.recipe new file mode 100644 index 000000000..68fd39386 --- /dev/null +++ b/app-text/libwpg/libwpg-0.2.2.recipe @@ -0,0 +1,83 @@ +SUMMARY="The free WPG library, converter and viewer" +DESCRIPTION=" + libwpg project is a collection of library and tools to work with graphics \ + in WPG (WordPerfect Graphics) format. + " +HOMEPAGE="http://libwpg.sourceforge.net" +SRC_URI="http://downloads.sourceforge.net/project/libwpg/libwpg/libwpg-0.2.2/libwpg-0.2.2.tar.gz" +LICENSE=" + MPL v2.0 + GNU LGPL v2.1 + " +COPYRIGHT=" + Marc Oude Kotte + Marc Maurer + Ariya Hidayat + Fridrich Strba + " +REVISION="2" +CHECKSUM_SHA256="d5260dd46a9f2bb8ace90379b8afc47fe78f26048bb32abb982b900ef2fb2aa3" + +ARCHITECTURES="x86 ?x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + $portName$secondaryArchSuffix = $portVersion + cmd:wpg2raw$secondaryArchSuffix + cmd:wpg2svg$secondaryArchSuffix + cmd:wpg2svgbatch.pl$secondaryArchSuffix + lib:libwpg_0.2$secondaryArchSuffix = 2.0.2 compat >= 2 + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libwpd_0.9$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libwpd_0.9$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + pkgconfig$secondaryArchSuffix >= 0.27 + cmd:aclocal + cmd:libtoolize + cmd:autoconf + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +BUILD() +{ + libtoolize --force --copy --install + aclocal + autoconf + automake + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libwpg-0.2 + fixPkgconfig + + packageEntries devel $developDir +} + +PROVIDES_devel=" + libwpg${secondaryArchSuffix}_devel = $portVersion + devel:libwpg_0.2$secondaryArchSuffix = 2.0.2 compat >= 2 + " +REQUIRES_devel=" + $portName$secondaryArchSuffix == $portVersion base + " diff --git a/app-text/mdocml/licenses/ISC b/app-text/mdocml/licenses/ISC new file mode 100644 index 000000000..02add5e7c --- /dev/null +++ b/app-text/mdocml/licenses/ISC @@ -0,0 +1,11 @@ +Permission to use, copy, modify, and distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, 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. diff --git a/app-text/mdocml/mdocml-1.12.2.recipe b/app-text/mdocml/mdocml-1.12.2.recipe new file mode 100644 index 000000000..230f85987 --- /dev/null +++ b/app-text/mdocml/mdocml-1.12.2.recipe @@ -0,0 +1,70 @@ +SUMMARY="A suite of tools for compiling roff and man pages." +DESCRIPTION=" +mdocml is a suite of tools compiling mdoc, the roff macro package of choice \ +for BSD manual pages, and man, the predominant historical package for UNIX \ +manuals. The mission of mdocml is to deprecate groff, the GNU troff \ +implementation, for displaying mdoc pages whilst providing token support for \ +man. +" + +HOMEPAGE="http://mdocml.bsd.lv/" +SRC_URI="http://mdocml.bsd.lv/snapshots/mdocml-1.12.2.tar.gz" +CHECKSUM_SHA256="c4f37afbf823636f63e3cd0673ae6c2ffc6017558e86bdcc02dc825c62daa9d7" +COPYRIGHT="2008-2013 Ingo Schwarze, Kristaps Dzonsons" +LICENSE="ISC" +REVISION="1" +ARCHITECTURES="x86 x86_gcc2" + +PROVIDES=" + mdocml = $portVersion + cmd:mandoc = $portVersion + cmd:preconv = $portVersion + cmd:demandoc = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES="" +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:make + cmd:gcc + cmd:ld + " + +PROVIDES_devel=" + mdocml_devel = $portVersion compat >= 1.12 + devel:libmandoc + " + +REQUIRES_devel=" + mdocml == $portVersion + " + +PATCHES="mdocml-1.12.2.patch" + +BUILD() +{ + make PREFIX=$prefix \ + BINDIR=$binDir \ + INCLUDEDIR=$includeDir/mandoc \ + LIBDIR=$libDir \ + MANDIR=$manDir \ + DBBIN="" +} + +INSTALL() +{ + make PREFIX=$prefix \ + BINDIR=$binDir \ + INCLUDEDIR=$includeDir/mandoc \ + LIBDIR=$libDir \ + MANDIR=$manDir \ + DBBIN="" \ + install + + prepareInstalledDevelLib libmandoc + packageEntries devel $developDir +} diff --git a/app-text/mdocml/patches/mdocml-1.12.2.patch b/app-text/mdocml/patches/mdocml-1.12.2.patch new file mode 100644 index 000000000..426ffe217 --- /dev/null +++ b/app-text/mdocml/patches/mdocml-1.12.2.patch @@ -0,0 +1,28 @@ +diff -up mdocml-1.12.2/Makefile.orig mdocml-1.12.2/Makefile +--- mdocml-1.12.2/Makefile.orig 2013-10-16 23:58:37.828637184 -0600 ++++ mdocml-1.12.2/Makefile 2013-10-16 23:59:08.458227712 -0600 +@@ -32,7 +32,7 @@ STATIC = -static + #STATIC += -pthread + + CFLAGS += -g -DHAVE_CONFIG_H -DVERSION="\"$(VERSION)\"" +-CFLAGS += -W -Wall -Wstrict-prototypes -Wno-unused-parameter -Wwrite-strings ++CFLAGS += -W -Wall -Wstrict-prototypes -Wwrite-strings + PREFIX = /usr/local + WWWPREFIX = /var/www + HTDOCDIR = $(WWWPREFIX)/htdocs +@@ -316,7 +316,6 @@ clean: + + install: all + mkdir -p $(DESTDIR)$(BINDIR) +- mkdir -p $(DESTDIR)$(EXAMPLEDIR) + mkdir -p $(DESTDIR)$(LIBDIR) + mkdir -p $(DESTDIR)$(INCLUDEDIR) + mkdir -p $(DESTDIR)$(MANDIR)/man1 +@@ -328,7 +327,6 @@ install: all + $(INSTALL_MAN) mandoc.1 preconv.1 demandoc.1 $(DESTDIR)$(MANDIR)/man1 + $(INSTALL_MAN) mandoc.3 tbl.3 $(DESTDIR)$(MANDIR)/man3 + $(INSTALL_MAN) man.7 mdoc.7 roff.7 eqn.7 tbl.7 mandoc_char.7 $(DESTDIR)$(MANDIR)/man7 +- $(INSTALL_DATA) example.style.css $(DESTDIR)$(EXAMPLEDIR) + + installcgi: all + mkdir -p $(DESTDIR)$(CGIBINDIR) diff --git a/app-text/rman/rman-3.2.recipe b/app-text/rman/rman-3.2.recipe index 8eedc8590..a9cf42844 100644 --- a/app-text/rman/rman-3.2.recipe +++ b/app-text/rman/rman-3.2.recipe @@ -1,15 +1,14 @@ SUMMARY="Man page viewer and translator" DESCRIPTION=" - Parse formatted man pages and man page source from most flavors of UNIX. - Convert to HTML, ASCII, TkMan, DocBook, and other formats. - " +Parse formatted man pages and man page source from most flavors of UNIX. \ +Convert to HTML, ASCII, TkMan, DocBook, and other formats. +" HOMEPAGE="http://www.sourceforge.net/project/polyglotman" LICENSE="Artistic" COPYRIGHT="2003 Thomas A. Phelps" SRC_URI="http://downloads.sourceforge.net/project/polyglotman/polyglotman/3.2/rman-3.2.tar.gz" -CHECKSUM_MD5="6d1d67641c6d042595a96a62340d3cc6" +CHECKSUM_SHA256="68a130696b251966db10a4774e2bc8083a0147b83f64c11e9bb4cd654da32d5f" PATCHES="rman-3.2.patch" -SOURCE_DIR="$portVersionedName" REVISION="1" ARCHITECTURES="x86_gcc2 ?x86" diff --git a/app-text/texi2html/texi2html-1.82.recipe b/app-text/texi2html/texi2html-1.82.recipe index 60e23953b..e18c38f61 100644 --- a/app-text/texi2html/texi2html-1.82.recipe +++ b/app-text/texi2html/texi2html-1.82.recipe @@ -1,14 +1,33 @@ SUMMARY="Perl script that converts Texinfo to HTML" -DESCRIPTION="Texi2HTML is a Perl script which converts Texinfo source files to HTML output, licensed under the GNU General Public License, version 3, or any later version. - -This is an evolving version of the script originally developed by Lionel Cons and later maintained for a time by Olaf Bachmann. It now supports many advanced features, such as internationalization and extremely configurable output formats. Development of Texi2HTML moved to the GNU Texinfo repository in 2010, since it was meant to replace the makeinfo implementation in GNU Texinfo. There was no release of GNU Texinfo with makeinfo based on Texi2HTML, however, because the implementation based on Texi2HTML was abandoned in favor of the current program in GNU Texinfo, which parses the Texinfo input into a tree for processing and supports nearly all the features of Texi2HTML. Latest Texi2HTML sources are thus in the GNU Texinfo repository, although development of Texi2HTML and of the Texi2HTML based makeinfo implementation stopped in 2011. - -There are some differences between Texi2HTML and the GNU Texinfo makeinfo/texi2any implementation, even in the Texi2HTML compatibility mode, they are documented in the GNU Texinfo manual. Nevertheless, the route forward for authors is, in most cases, to alter manuals and build processes as necessary to use the new features of the makeinfo/texi2any implementation of GNU Texinfo. The Texi2HTML maintainers (one of whom is the principal author of the GNU Texinfo implementation) do not intend to make further releases of Texi2HTML. If you have difficulties using the new implementation, you could try to ask on the GNU Texinfo mailing lists." +DESCRIPTION=" +Texi2HTML is a Perl script which converts Texinfo source files to HTML output, \ +licensed under the GNU General Public License, version 3, or any later version. +This is an evolving version of the script originally developed by Lionel Cons \ +and later maintained for a time by Olaf Bachmann. It now supports many \ +advanced features, such as internationalization and extremely configurable \ +output formats. Development of Texi2HTML moved to the GNU Texinfo repository \ +in 2010, since it was meant to replace the makeinfo implementation in GNU \ +Texinfo. There was no release of GNU Texinfo with makeinfo based on Texi2HTML, \ +however, because the implementation based on Texi2HTML was abandoned in favor \ +of the current program in GNU Texinfo, which parses the Texinfo input into a \ +tree for processing and supports nearly all the features of Texi2HTML. Latest \ +Texi2HTML sources are thus in the GNU Texinfo repository, although development \ +of Texi2HTML and of the Texi2HTML based makeinfo implementation stopped in 2011. +There are some differences between Texi2HTML and the GNU Texinfo \ +makeinfo/texi2any implementation, even in the Texi2HTML compatibility mode, \ +they are documented in the GNU Texinfo manual. Nevertheless, the route forward \ +for authors is, in most cases, to alter manuals and build processes as \ +necessary to use the new features of the makeinfo/texi2any implementation of \ +GNU Texinfo. The Texi2HTML maintainers (one of whom is the principal author of \ +the GNU Texinfo implementation) do not intend to make further releases of \ +Texi2HTML. If you have difficulties using the new implementation, you could \ +try to ask on the GNU Texinfo mailing lists. +" HOMEPAGE="http://www.nongnu.org/texi2html/" COPYRIGHT="1999-2005 Patrice Dumas, Derek Price, Adrian Aichner & others." LICENSE="GNU GPL v2" SRC_URI="http://download.savannah.gnu.org/releases/texi2html/texi2html-1.82.tar.bz2" -CHECKSUM_MD5="a8a9193c0ac1bec2f3ca7be40a5a82eb" +CHECKSUM_SHA256="d69c1effc416896409003ea64fdb21152cc0a9a7c665d437a0a3bef9b588b4f1" REVISION="2" ARCHITECTURES="any" @@ -33,7 +52,6 @@ BUILD_PREREQUIRES=" cmd:perl " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/app-text/tree/patches/tree-1.6.0.patch b/app-text/tree/patches/tree-1.6.0.patch deleted file mode 100644 index 56aaefc17..000000000 --- a/app-text/tree/patches/tree-1.6.0.patch +++ /dev/null @@ -1,28 +0,0 @@ -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/patches/tree-1.7.0.patchset b/app-text/tree/patches/tree-1.7.0.patchset new file mode 100644 index 000000000..3be28bd97 --- /dev/null +++ b/app-text/tree/patches/tree-1.7.0.patchset @@ -0,0 +1,34 @@ +From 30e49b8a31a6e43a22c1fa093d9a57fbacb4e710 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Thu, 24 Apr 2014 16:37:07 +0000 +Subject: Haiku patch + + +diff --git a/Makefile b/Makefile +index e91f1f6..9ae1149 100644 +--- a/Makefile ++++ b/Makefile +@@ -30,7 +30,7 @@ OBJS=tree.o unix.o html.o xml.o json.o hash.o color.o + # Uncomment options below for your particular OS: + + # Linux defaults: +-CFLAGS=-ggdb -Wall -DLINUX -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 ++#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 + +@@ -59,6 +59,11 @@ CFLAGS=-ggdb -Wall -DLINUX -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 + #MANDIR=/usr/share/man/man1 + #OBJS+=strverscmp.o + ++# Uncomment for Haiku: ++CFLAGS=-O2 -Wall -fomit-frame-pointer ++LDFLAGS= ++OBJS+=strverscmp.o ++ + # Uncomment for HP/UX: + #CC=cc + #CFLAGS=-O2 -DAportable -Wall +-- +1.8.3.4 + diff --git a/app-text/tree/tree-1.6.0.recipe b/app-text/tree/tree-1.6.0.recipe deleted file mode 100644 index 4f1f9ab9e..000000000 --- a/app-text/tree/tree-1.6.0.recipe +++ /dev/null @@ -1,23 +0,0 @@ -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 -} - -LICENSE="GNU GPL v2" -COPYRIGHT="1996-2011 Steve Baker" diff --git a/app-text/tree/tree-1.7.0.recipe b/app-text/tree/tree-1.7.0.recipe new file mode 100644 index 000000000..031ad4075 --- /dev/null +++ b/app-text/tree/tree-1.7.0.recipe @@ -0,0 +1,44 @@ +SUMMARY="Lists directories and files recursively." +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-$portVersion.tgz" +CHECKSUM_SHA256="6957c20e82561ac4231638996e74f4cfa4e6faabc5a2f511f0b4e3940e8f7b12" + +REVISION="1" + +LICENSE="GNU GPL v2" +COPYRIGHT="1996-2011 Steve Baker" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="?x86_gcc2 ?x86" + +PATCHES="tree-1.7.0.patchset" + +PROVIDES=" + tree = $portVersion + cmd:tree$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +BUILD() +{ + make +} + +INSTALL() +{ + make install MANDIR=$manDir/man1 prefix=$prefix +} diff --git a/app-vim/cream/cream-0.43.recipe b/app-vim/cream/cream-0.43.recipe new file mode 100644 index 000000000..c593a9652 --- /dev/null +++ b/app-vim/cream/cream-0.43.recipe @@ -0,0 +1,58 @@ +SUMMARY="a modern configuration of the Vim text editor" +DESCRIPTION=" +Vim is a powerful and full-featured text editor, the popular descendant of the \ +1976 Vi text editor. + +But Vim has a steep learning curve. It was not primarily designed to be easy to \ +use, favoring performance and technical flexibility instead. Because it is so \ +different, learning to use Vim takes time. + +Cream shapes Vim into an interface you probably already know (sometimes called \ +Common User Access). Whether you are writing emails or developing large \ +software applications, Cream saves you time and gets you up and running quickly. +" +HOMEPAGE="http://cream.sf.net" +SRC_URI="http://freefr.dl.sourceforge.net/project/$portName/Cream/$portVersion/$portName-$portVersion.tar.gz" +CHECKSUM_SHA256="b7adee33d5464f985a71722fdbe133e726bffebf34eae14c33674c4c5327d777" + +REVISION="1" +ARCHITECTURES="!any" + +PROVIDES=" + cream = $portVersion + cmd:cream + " + +REQUIRES=" + cmd:vim == 7.4 + " + +BUILD_REQUIRES=" + cmd:vim + " + +BUILD_PREREQUIRES=" + cmd:which + cmd:perl + " + +BUILD() +{ + true +} + +INSTALL() +{ + export VIMRUNTIME=$dataDir/vim/vim74/ + mkdir -p $VIMRUNTIME + + sh INSTALL.sh $prefix + + rm -r $prefix/share # Useless .desktop file + addAppDeskbarSymlink $binDir/cream "Cream" +} + +# no TEST script available + +COPYRIGHT="2001-2014 Cream contributors" +LICENSE="GNU GPL v3" diff --git a/dev-cpp/hugen/hugen-1.recipe b/dev-cpp/hugen/hugen-1.recipe new file mode 100644 index 000000000..2e485f93a --- /dev/null +++ b/dev-cpp/hugen/hugen-1.recipe @@ -0,0 +1,42 @@ +DESCRIPTION=" +Hugen is a simply python script for generating code for Haiku \ +applications. It is based on templates. You can define your own \ +one and quick generate some files with adequate names and content \ +instead creating it manually. Templates for class and simple \ +application with Makefile and Jamfile are provided by default. +" +SUMMARY="Code generator for Haiku" +HOMEPAGE="https://github.com/aldeck/hugen" +COPYRIGHT="2009 Alexandre Deckner" +LICENSE="MIT" +SRC_URI="git+https://github.com/aldeck/hugen.git#a5e42390e6d4435d9d81fe3670670e18a52dee9c" +REVISION="1" +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + hugen$secondaryArchSuffix = $portVersion + cmd:hugen$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + cmd:python$secondaryArchSuffix + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + " + +BUILD() +{ + # simply do nothing + echo +} + +INSTALL() +{ + mkdir -p $binDir/hugen_app + cp -R hugen.py configs/ templates/ $binDir/hugen_app + echo python $binDir/hugen_app/hugen.py > $binDir/hugen + chmod +x $binDir/hugen +} diff --git a/dev-db/db/db-4.8.30.recipe b/dev-db/db/db-4.8.30.recipe new file mode 100644 index 000000000..c6bf1dfa5 --- /dev/null +++ b/dev-db/db/db-4.8.30.recipe @@ -0,0 +1,90 @@ +SUMMARY="The Oracle Berkeley Database" +DESCRIPTION="The Oracle Berkeley DB family of open source, embeddable databases provides developers with fast, reliable, local persistence with zero administration." +HOMEPAGE="http://www.oracle.com/technetwork/database/berkeleydb/index.html" +SRC_URI="http://download.oracle.com/berkeley-db/db-${portVersion}.tar.gz" +CHECKSUM_SHA256="e0491a07cdb21fb9aa82773bbbedaeb7639cbd0e7f96147ab46141e0045db72a" +REVISION="2" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" +LICENSE="SleepyCat" +COPYRIGHT="1990-2013, Oracle + 1990-1995, The Regents of the University of California + 1996-1996, The President and Fellows of Harvard University + 2000-2005, INRIA - France Telecom" + +PROVIDES=" + db${secondaryArchSuffix} = $portVersion compat >= 4.8 + cmd:db_archive${secondaryArchSuffix} + cmd:db_checkpoint${secondaryArchSuffix} + cmd:db_deadlock${secondaryArchSuffix} + cmd:db_dump${secondaryArchSuffix} + cmd:db_hotbackup${secondaryArchSuffix} + cmd:db_load${secondaryArchSuffix} + cmd:db_printlog${secondaryArchSuffix} + cmd:db_recover${secondaryArchSuffix} + cmd:db_stat${secondaryArchSuffix} + cmd:db_sql${secondaryArchSuffix} + cmd:db_upgrade${secondaryArchSuffix} + cmd:db_verify${secondaryArchSuffix} + lib:libdb_4.8${secondaryArchSuffix} + lib:libdb_4${secondaryArchSuffix} + lib:libdb${secondaryArchSuffix} + lib:libdb_cxx${secondaryArchSuffix} + lib:libdb_cxx_4.8${secondaryArchSuffix} + lib:libdb_cxx_4${secondaryArchSuffix} + " +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtool + cmd:make + " + +PATCHES="db-${portVersion}.patch" + +BUILD() +{ + cd build_unix + runConfigure ../dist/configure --enable-cxx + make $jobArgs +} + +INSTALL() +{ + cd build_unix + make install + + # prepare develop/lib + prepareInstalledDevelLibs libdb libdb-4.8 libdb_cxx libdb_cxx-4.8 + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir +} + +TEST() +{ + cd build_unix + #make dbtest +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + db${secondaryArchSuffix}_devel = $portVersion compat >= 4.8 + devel:libdb${secondaryArchSuffix} = $portVersion + devel:libdb_4.8${secondaryArchSuffix} = $portVersion + devel:libdb_cxx${secondaryArchSuffix} = $portVersion + devel:libdb_cxx_4.8${secondaryArchSuffix} = $portVersion + " + +REQUIRES_devel=" + db$secondaryArchSuffix == $portVersion base + " diff --git a/dev-db/db/db-5.3.28.recipe b/dev-db/db/db-5.3.28.recipe new file mode 100644 index 000000000..6f59d234b --- /dev/null +++ b/dev-db/db/db-5.3.28.recipe @@ -0,0 +1,96 @@ +SUMMARY="The Oracle Berkeley Database" +DESCRIPTION=" +The Oracle Berkeley DB family of open source, embeddable databases provides \ +developers with fast, reliable, local persistence with zero administration. +" +HOMEPAGE="http://www.oracle.com/technetwork/database/berkeleydb/index.html" +SRC_URI="http://download.oracle.com/berkeley-db/db-5.3.28.tar.gz" +CHECKSUM_SHA256="e0a992d740709892e81f9d93f06daf305cf73fb81b545afe72478043172c3628" +REVISION="3" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" +LICENSE="SleepyCat" +COPYRIGHT="1990-2013, Oracle + 1990-1995, The Regents of the University of California + 1996-1996, The President and Fellows of Harvard University + 2000-2005, INRIA - France Telecom" + +PROVIDES=" + db${secondaryArchSuffix} = $portVersion compat >= 5.3 + cmd:db_archive${secondaryArchSuffix} + cmd:db_checkpoint${secondaryArchSuffix} + cmd:db_deadlock${secondaryArchSuffix} + cmd:db_dump${secondaryArchSuffix} + cmd:db_hotbackup${secondaryArchSuffix} + cmd:db_load${secondaryArchSuffix} + cmd:db_log_verify${secondaryArchSuffix} + cmd:db_printlog${secondaryArchSuffix} + cmd:db_recover${secondaryArchSuffix} + cmd:db_replicate${secondaryArchSuffix} + cmd:db_stat${secondaryArchSuffix} + cmd:db_tuner${secondaryArchSuffix} + cmd:db_upgrade${secondaryArchSuffix} + cmd:db_verify${secondaryArchSuffix} + lib:libdb_5.3${secondaryArchSuffix} + lib:libdb_5${secondaryArchSuffix} + lib:libdb${secondaryArchSuffix} + lib:libdb_cxx${secondaryArchSuffix} + lib:libdb_cxx_5.3${secondaryArchSuffix} + lib:libdb_cxx_5${secondaryArchSuffix} + " +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtool + cmd:make + " + +PATCHES="db-${portVersion}.patch" +SOURCE_DIR="db-${portVersion}" + +BUILD() +{ + cd build_unix + runConfigure ../dist/configure --enable-cxx + make $jobArgs +} + +INSTALL() +{ + cd build_unix + make install + + # prepare develop/lib + prepareInstalledDevelLibs libdb libdb-5.3 libdb_cxx libdb_cxx-5.3 + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir +} + +TEST() +{ + cd build_unix + #make dbtest +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + db${secondaryArchSuffix}_devel = $portVersion compat >= 5.3 + devel:libdb${secondaryArchSuffix} = $portVersion + devel:libdb_5.3${secondaryArchSuffix} = $portVersion + devel:libdb_cxx${secondaryArchSuffix} = $portVersion + devel:libdb_cxx_5.3${secondaryArchSuffix} = $portVersion + " + +REQUIRES_devel=" + db$secondaryArchSuffix == $portVersion base + " diff --git a/dev-db/db/db-6.0.30.recipe b/dev-db/db/db-6.0.30.recipe new file mode 100644 index 000000000..88069b905 --- /dev/null +++ b/dev-db/db/db-6.0.30.recipe @@ -0,0 +1,96 @@ +SUMMARY="The Oracle Berkeley Database" +DESCRIPTION=" +The Oracle Berkeley DB family of open source, embeddable databases provides \ +developers with fast, reliable, local persistence with zero administration. +" +HOMEPAGE="http://www.oracle.com/technetwork/database/berkeleydb/index.html" +SRC_URI="http://download.oracle.com/berkeley-db/db-6.0.30.tar.gz" +CHECKSUM_SHA256="608e4b1cf390e9bf54c0ef00c5bd9ca76d36e2261b9f4d33d54516f3f6a20fd2" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" +LICENSE="SleepyCat" +COPYRIGHT="1990-2013, Oracle + 1990-1995, The Regents of the University of California + 1996-1996, The President and Fellows of Harvard University + 2000-2005, INRIA - France Telecom" + +PROVIDES=" + db${secondaryArchSuffix} = $portVersion compat >= 6.0 + cmd:db_archive${secondaryArchSuffix} + cmd:db_checkpoint${secondaryArchSuffix} + cmd:db_deadlock${secondaryArchSuffix} + cmd:db_dump${secondaryArchSuffix} + cmd:db_hotbackup${secondaryArchSuffix} + cmd:db_load${secondaryArchSuffix} + cmd:db_log_verify${secondaryArchSuffix} + cmd:db_printlog${secondaryArchSuffix} + cmd:db_recover${secondaryArchSuffix} + cmd:db_replicate${secondaryArchSuffix} + cmd:db_stat${secondaryArchSuffix} + cmd:db_tuner${secondaryArchSuffix} + cmd:db_upgrade${secondaryArchSuffix} + cmd:db_verify${secondaryArchSuffix} + lib:libdb_6.0${secondaryArchSuffix} + lib:libdb_6${secondaryArchSuffix} + lib:libdb${secondaryArchSuffix} + lib:libdb_cxx${secondaryArchSuffix} + lib:libdb_cxx_6.0${secondaryArchSuffix} + lib:libdb_cxx_6${secondaryArchSuffix} + " +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtool + cmd:make + " + +PATCHES="db-${portVersion}.patch" +SOURCE_DIR="db-${portVersion}" + +BUILD() +{ + cd build_unix + runConfigure ../dist/configure --enable-cxx + make $jobArgs +} + +INSTALL() +{ + cd build_unix + make install + + # prepare develop/lib + prepareInstalledDevelLibs libdb libdb-6.0 libdb_cxx libdb_cxx-6.0 + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir +} + +TEST() +{ + cd build_unix + #make dbtest +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + db${secondaryArchSuffix}_devel = $portVersion compat >= 6.0 + devel:libdb${secondaryArchSuffix} = $portVersion + devel:libdb_6.0${secondaryArchSuffix} = $portVersion + devel:libdb_cxx${secondaryArchSuffix} = $portVersion + devel:libdb_cxx_6.0${secondaryArchSuffix} = $portVersion + " + +REQUIRES_devel=" + db$secondaryArchSuffix == $portVersion base + " diff --git a/dev-db/db/licenses/SleepyCat b/dev-db/db/licenses/SleepyCat new file mode 100644 index 000000000..7b9095025 --- /dev/null +++ b/dev-db/db/licenses/SleepyCat @@ -0,0 +1,130 @@ +/*- + * $Id$ + */ + +The following is the license that applies to this copy of the Berkeley DB +software. For a license to use the Berkeley DB software under conditions +other than those described here, or to purchase support for this software, +please contact Oracle at berkeleydb-info_us@oracle.com. + +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +/* + * Copyright (c) 1990, 2013 Oracle and/or its affiliates. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of 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. Redistributions in any form must be accompanied by information on + * how to obtain complete source code for the DB software and any + * accompanying software that uses the DB software. The source code + * must either be included in the distribution or be available for no + * more than the cost of distribution plus a nominal fee, and must be + * freely redistributable under reasonable conditions. For an + * executable file, complete source code means the source code for all + * modules it contains. It does not include source code for modules or + * files that typically accompany the major components of the operating + * system on which the executable file runs. + * + * THIS SOFTWARE IS PROVIDED BY ORACLE ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR + * NON-INFRINGEMENT, ARE DISCLAIMED. IN NO EVENT SHALL ORACLE 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. + */ +/* + * Copyright (c) 1990, 1993, 1994, 1995 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of 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. Neither the name of the University 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 REGENTS 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. + */ +/* + * Copyright (c) 1995, 1996 + * The President and Fellows of Harvard University. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of 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. Neither the name of the University 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 HARVARD AND ITS 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 HARVARD 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. + */ +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of 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. Neither the name of the copyright holders 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. + */ diff --git a/dev-db/db/patches/db-4.8.30.patch b/dev-db/db/patches/db-4.8.30.patch new file mode 100644 index 000000000..0b176f9b4 --- /dev/null +++ b/dev-db/db/patches/db-4.8.30.patch @@ -0,0 +1,79 @@ +diff --git a/dist/Makefile.in b/dist/Makefile.in +index c4b0739..d3860b4 100644 +--- a/dist/Makefile.in ++++ b/dist/Makefile.in +@@ -11,7 +11,7 @@ exec_prefix=@exec_prefix@ + bindir= @bindir@ + includedir=@includedir@ + libdir= @libdir@ +-docdir= $(prefix)/docs ++docdir= @docdir@ + + dmode= 755 + emode= 555 +diff --git a/dist/configure b/dist/configure +index 295fec1..e05e451 100755 +--- a/dist/configure ++++ b/dist/configure +@@ -4533,6 +4533,8 @@ irix*) optimize_debug="-O2" + CPPFLAGS="$CPPFLAGS -D_SGI_MP_SOURCE";; + mpeix*) CPPFLAGS="$CPPFLAGS -D_POSIX_SOURCE -D_SOCKET_SOURCE" + LIBSO_LIBS="$LIBSO_LIBS -lsocket -lsvipc";; ++haiku*) ++ LIBSO_LIBS="$LIBSO_LIBS -lnetwork";; + osf*) CPPFLAGS="$CPPFLAGS -pthread";; + *qnx*) qnx_build="yes" + $as_echo "#define HAVE_QNX 1" >>confdefs.h +diff --git a/dist/configure.ac b/dist/configure.ac +index 4a99779..85dfb93 100644 +--- a/dist/configure.ac ++++ b/dist/configure.ac +@@ -184,6 +184,8 @@ irix*) optimize_debug="-O2" + CPPFLAGS="$CPPFLAGS -D_SGI_MP_SOURCE";; + mpeix*) CPPFLAGS="$CPPFLAGS -D_POSIX_SOURCE -D_SOCKET_SOURCE" + LIBSO_LIBS="$LIBSO_LIBS -lsocket -lsvipc";; ++haiku*) ++ LIBSO_LIBS="$LIBSO_LIBS -lnetwork";; + osf*) CPPFLAGS="$CPPFLAGS -pthread";; + *qnx*) qnx_build="yes" + AC_DEFINE(HAVE_QNX) +@@ -519,6 +521,9 @@ AC_SEARCH_LIBS(sched_yield, rt) + # The Berkeley DB library calls fdatasync, only available in -lrt on Solaris. + AC_SEARCH_LIBS(fdatasync, rt) + ++# Socket only available in -lnetwork on Haiku ++AC_SEARCH_LIBS(socket, network) ++ + AC_SEARCH_LIBS(getaddrinfo, nsl socket) + AC_SEARCH_LIBS(hstrerror, resolv) + +diff --git a/repmgr/repmgr_posix.c b/repmgr/repmgr_posix.c +index 741f378..6892469 100644 +--- a/repmgr/repmgr_posix.c ++++ b/repmgr/repmgr_posix.c +@@ -488,11 +488,7 @@ __repmgr_wake_main_thread(env) + * PUBLIC: int __repmgr_writev __P((socket_t, db_iovec_t *, int, size_t *)); + */ + int +-__repmgr_writev(fd, iovec, buf_count, byte_count_p) +- socket_t fd; +- db_iovec_t *iovec; +- int buf_count; +- size_t *byte_count_p; ++__repmgr_writev(socket_t fd, db_iovec_t *iovec, int buf_count, size_t *byte_count_p) + { + int nw; + +@@ -506,11 +502,7 @@ __repmgr_writev(fd, iovec, buf_count, byte_count_p) + * PUBLIC: int __repmgr_readv __P((socket_t, db_iovec_t *, int, size_t *)); + */ + int +-__repmgr_readv(fd, iovec, buf_count, byte_count_p) +- socket_t fd; +- db_iovec_t *iovec; +- int buf_count; +- size_t *byte_count_p; ++__repmgr_readv(socket_t fd, db_iovec_t *iovec, int buf_count, size_t *byte_count_p) + { + ssize_t nw; + diff --git a/dev-db/db/patches/db-5.3.28.patch b/dev-db/db/patches/db-5.3.28.patch new file mode 100644 index 000000000..70cc54b4d --- /dev/null +++ b/dev-db/db/patches/db-5.3.28.patch @@ -0,0 +1,79 @@ +diff --git a/dist/Makefile.in b/dist/Makefile.in +index e90c0c2..60f8aef 100644 +--- a/dist/Makefile.in ++++ b/dist/Makefile.in +@@ -17,7 +17,7 @@ exec_prefix=@exec_prefix@ + bindir= @bindir@ + includedir=@includedir@ + libdir= @libdir@ +-docdir= $(prefix)/docs ++docdir= @docdir@ + + dmode= 755 + emode= 555 +diff --git a/dist/configure b/dist/configure +index 32b2c66..5d1ed9a 100755 +--- a/dist/configure ++++ b/dist/configure +@@ -5122,6 +5122,8 @@ irix*) optimize_flag="-O2" + CPPFLAGS="$CPPFLAGS -D_SGI_MP_SOURCE";; + mpeix*) CPPFLAGS="$CPPFLAGS -D_POSIX_SOURCE -D_SOCKET_SOURCE" + LIBSO_LIBS="$LIBSO_LIBS -lsocket -lsvipc";; ++haiku*) ++ LIBSO_LIBS="$LIBSO_LIBS -lnetwork";; + osf*) CPPFLAGS="$CPPFLAGS -pthread";; + *qnx*) qnx_build="yes" + $as_echo "#define HAVE_QNX 1" >>confdefs.h +diff --git a/dist/configure.ac b/dist/configure.ac +index 689f3b8..d5d5125 100644 +--- a/dist/configure.ac ++++ b/dist/configure.ac +@@ -206,6 +206,8 @@ irix*) optimize_flag="-O2" + CPPFLAGS="$CPPFLAGS -D_SGI_MP_SOURCE";; + mpeix*) CPPFLAGS="$CPPFLAGS -D_POSIX_SOURCE -D_SOCKET_SOURCE" + LIBSO_LIBS="$LIBSO_LIBS -lsocket -lsvipc";; ++haiku*) ++ LIBSO_LIBS="$LIBSO_LIBS -lnetwork";; + osf*) CPPFLAGS="$CPPFLAGS -pthread";; + *qnx*) qnx_build="yes" + AC_DEFINE(HAVE_QNX) +@@ -671,6 +673,9 @@ AC_SEARCH_LIBS(sched_yield, rt) + # The Berkeley DB library calls fdatasync, only available in -lrt on Solaris. + AC_SEARCH_LIBS(fdatasync, rt) + ++# Socket only available in -lnetwork on Haiku ++AC_SEARCH_LIBS(socket, network) ++ + AC_SEARCH_LIBS(getaddrinfo, nsl socket) + AC_SEARCH_LIBS(hstrerror, resolv) + +diff --git a/src/repmgr/repmgr_posix.c b/src/repmgr/repmgr_posix.c +index f803863..e2b93f6 100644 +--- a/src/repmgr/repmgr_posix.c ++++ b/src/repmgr/repmgr_posix.c +@@ -571,11 +571,7 @@ __repmgr_wake_main_thread(env) + * PUBLIC: int __repmgr_writev __P((socket_t, db_iovec_t *, int, size_t *)); + */ + int +-__repmgr_writev(fd, iovec, buf_count, byte_count_p) +- socket_t fd; +- db_iovec_t *iovec; +- int buf_count; +- size_t *byte_count_p; ++__repmgr_writev(socket_t fd, db_iovec_t *iovec, int buf_count, size_t *byte_count_p) + { + int nw, result; + +@@ -593,11 +589,7 @@ __repmgr_writev(fd, iovec, buf_count, byte_count_p) + * PUBLIC: int __repmgr_readv __P((socket_t, db_iovec_t *, int, size_t *)); + */ + int +-__repmgr_readv(fd, iovec, buf_count, byte_count_p) +- socket_t fd; +- db_iovec_t *iovec; +- int buf_count; +- size_t *byte_count_p; ++__repmgr_readv(socket_t fd, db_iovec_t *iovec, int buf_count, size_t *byte_count_p) + { + int result; + ssize_t nw; diff --git a/dev-db/db/patches/db-6.0.30.patch b/dev-db/db/patches/db-6.0.30.patch new file mode 100644 index 000000000..70cc54b4d --- /dev/null +++ b/dev-db/db/patches/db-6.0.30.patch @@ -0,0 +1,79 @@ +diff --git a/dist/Makefile.in b/dist/Makefile.in +index e90c0c2..60f8aef 100644 +--- a/dist/Makefile.in ++++ b/dist/Makefile.in +@@ -17,7 +17,7 @@ exec_prefix=@exec_prefix@ + bindir= @bindir@ + includedir=@includedir@ + libdir= @libdir@ +-docdir= $(prefix)/docs ++docdir= @docdir@ + + dmode= 755 + emode= 555 +diff --git a/dist/configure b/dist/configure +index 32b2c66..5d1ed9a 100755 +--- a/dist/configure ++++ b/dist/configure +@@ -5122,6 +5122,8 @@ irix*) optimize_flag="-O2" + CPPFLAGS="$CPPFLAGS -D_SGI_MP_SOURCE";; + mpeix*) CPPFLAGS="$CPPFLAGS -D_POSIX_SOURCE -D_SOCKET_SOURCE" + LIBSO_LIBS="$LIBSO_LIBS -lsocket -lsvipc";; ++haiku*) ++ LIBSO_LIBS="$LIBSO_LIBS -lnetwork";; + osf*) CPPFLAGS="$CPPFLAGS -pthread";; + *qnx*) qnx_build="yes" + $as_echo "#define HAVE_QNX 1" >>confdefs.h +diff --git a/dist/configure.ac b/dist/configure.ac +index 689f3b8..d5d5125 100644 +--- a/dist/configure.ac ++++ b/dist/configure.ac +@@ -206,6 +206,8 @@ irix*) optimize_flag="-O2" + CPPFLAGS="$CPPFLAGS -D_SGI_MP_SOURCE";; + mpeix*) CPPFLAGS="$CPPFLAGS -D_POSIX_SOURCE -D_SOCKET_SOURCE" + LIBSO_LIBS="$LIBSO_LIBS -lsocket -lsvipc";; ++haiku*) ++ LIBSO_LIBS="$LIBSO_LIBS -lnetwork";; + osf*) CPPFLAGS="$CPPFLAGS -pthread";; + *qnx*) qnx_build="yes" + AC_DEFINE(HAVE_QNX) +@@ -671,6 +673,9 @@ AC_SEARCH_LIBS(sched_yield, rt) + # The Berkeley DB library calls fdatasync, only available in -lrt on Solaris. + AC_SEARCH_LIBS(fdatasync, rt) + ++# Socket only available in -lnetwork on Haiku ++AC_SEARCH_LIBS(socket, network) ++ + AC_SEARCH_LIBS(getaddrinfo, nsl socket) + AC_SEARCH_LIBS(hstrerror, resolv) + +diff --git a/src/repmgr/repmgr_posix.c b/src/repmgr/repmgr_posix.c +index f803863..e2b93f6 100644 +--- a/src/repmgr/repmgr_posix.c ++++ b/src/repmgr/repmgr_posix.c +@@ -571,11 +571,7 @@ __repmgr_wake_main_thread(env) + * PUBLIC: int __repmgr_writev __P((socket_t, db_iovec_t *, int, size_t *)); + */ + int +-__repmgr_writev(fd, iovec, buf_count, byte_count_p) +- socket_t fd; +- db_iovec_t *iovec; +- int buf_count; +- size_t *byte_count_p; ++__repmgr_writev(socket_t fd, db_iovec_t *iovec, int buf_count, size_t *byte_count_p) + { + int nw, result; + +@@ -593,11 +589,7 @@ __repmgr_writev(fd, iovec, buf_count, byte_count_p) + * PUBLIC: int __repmgr_readv __P((socket_t, db_iovec_t *, int, size_t *)); + */ + int +-__repmgr_readv(fd, iovec, buf_count, byte_count_p) +- socket_t fd; +- db_iovec_t *iovec; +- int buf_count; +- size_t *byte_count_p; ++__repmgr_readv(socket_t fd, db_iovec_t *iovec, int buf_count, size_t *byte_count_p) + { + int result; + ssize_t nw; diff --git a/dev-db/postgresql/postgresql-9.2.3.recipe b/dev-db/postgresql/postgresql-9.2.3.recipe index 61dfce44c..e0e1cc6a0 100644 --- a/dev-db/postgresql/postgresql-9.2.3.recipe +++ b/dev-db/postgresql/postgresql-9.2.3.recipe @@ -1,4 +1,4 @@ -DESCRIPTION="PostgreSQL is a powerful, open source object-relational database system." +DESCRIPTION="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" diff --git a/dev-db/postgresql_server/licenses/PostgreSQL b/dev-db/postgresql_server/licenses/PostgreSQL new file mode 100644 index 000000000..b773b4d9c --- /dev/null +++ b/dev-db/postgresql_server/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_server/patches/postgresql_server-9.3.4.patchset b/dev-db/postgresql_server/patches/postgresql_server-9.3.4.patchset new file mode 100644 index 000000000..940e4d2b2 --- /dev/null +++ b/dev-db/postgresql_server/patches/postgresql_server-9.3.4.patchset @@ -0,0 +1,290 @@ +From 69b627758b0c5e78cfa982861fab45b871b73b37 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Wed, 7 May 2014 15:52:41 +0000 +Subject: autoconf version + + +diff --git a/configure.in b/configure.in +index 61484df..66e501c 100644 +--- a/configure.in ++++ b/configure.in +@@ -19,10 +19,10 @@ m4_pattern_forbid(^PGAC_)dnl to catch undefined macros + + AC_INIT([PostgreSQL], [9.3.4], [pgsql-bugs@postgresql.org]) + +-m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.63], [], [m4_fatal([Autoconf version 2.63 is required. +-Untested combinations of 'autoconf' and PostgreSQL versions are not +-recommended. You can remove the check from 'configure.in' but it is then +-your responsibility whether the result works or not.])]) ++dnl m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.63], [], [m4_fatal([Autoconf version 2.63 is required. ++dnl Untested combinations of 'autoconf' and PostgreSQL versions are not ++dnl recommended. You can remove the check from 'configure.in' but it is then ++dnl your responsibility whether the result works or not.])]) + AC_COPYRIGHT([Copyright (c) 1996-2013, PostgreSQL Global Development Group]) + AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c]) + AC_CONFIG_AUX_DIR(config) +-- +1.8.3.4 + + +From a2440b0d15d9da3359c0bfba6bdf9160a35a2ab7 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Wed, 7 May 2014 16:03:31 +0000 +Subject: haiku support + + +diff --git a/configure.in b/configure.in +index 66e501c..3072dbc 100644 +--- a/configure.in ++++ b/configure.in +@@ -59,6 +59,7 @@ case $host_os in + darwin*) template=darwin ;; + dragonfly*) template=netbsd ;; + freebsd*) template=freebsd ;; ++ haiku*) template=haiku ;; + hpux*) template=hpux ;; + irix*) template=irix ;; + linux*|gnu*|k*bsd*-gnu) +@@ -873,7 +874,7 @@ fi + 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 +@@ -887,7 +888,7 @@ AC_SEARCH_LIBS(crypt, crypt) + AC_SEARCH_LIBS(fdatasync, [rt posix4]) + # Required for thread_test.c on Solaris 2.5: + # Other ports use it too (HP-UX) so test unconditionally +-AC_SEARCH_LIBS(gethostbyname_r, nsl) ++AC_SEARCH_LIBS(gethostbyname_r, [nsl network]) + # Cygwin: + AC_SEARCH_LIBS(shmget, cygipc) + +diff --git a/src/backend/port/dynloader/haiku.c b/src/backend/port/dynloader/haiku.c +new file mode 100644 +index 0000000..c99b717 +--- /dev/null ++++ b/src/backend/port/dynloader/haiku.c +@@ -0,0 +1,133 @@ ++/*------------------------------------------------------------------------- ++ * ++ * linux.c ++ * Dynamic Loader for Postgres for Linux, generated from those for ++ * Ultrix. ++ * ++ * You need to install the dld library on your Linux system! ++ * ++ * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group ++ * Portions Copyright (c) 1994, Regents of the University of California ++ * ++ * ++ * IDENTIFICATION ++ * src/backend/port/dynloader/haiku.c ++ * ++ *------------------------------------------------------------------------- ++ */ ++ ++#include "postgres.h" ++ ++#ifdef HAVE_DLD_H ++#include ++#endif ++ ++#include "dynloader.h" ++#include "miscadmin.h" ++ ++ ++#ifndef HAVE_DLOPEN ++ ++void * ++pg_dlopen(char *filename) ++{ ++#ifndef HAVE_DLD_H ++ elog(ERROR, "dynamic load not supported"); ++ return NULL; ++#else ++ static int dl_initialized = 0; ++ ++ /* ++ * initializes the dynamic loader with the executable's pathname. (only ++ * needs to do this the first time pg_dlopen is called.) ++ */ ++ if (!dl_initialized) ++ { ++ if (dld_init(dld_find_executable(my_exec_path))) ++ return NULL; ++ ++ /* ++ * if there are undefined symbols, we want dl to search from the ++ * following libraries also. ++ */ ++ dl_initialized = 1; ++ } ++ ++ /* ++ * link the file, then check for undefined symbols! ++ */ ++ if (dld_link(filename)) ++ return NULL; ++ ++ /* ++ * If undefined symbols: try to link with the C and math libraries! This ++ * could be smarter, if the dynamic linker was able to handle shared libs! ++ */ ++ if (dld_undefined_sym_count > 0) ++ { ++ if (dld_link("/usr/lib/libc.a")) ++ { ++ elog(WARNING, "could not link C library"); ++ return NULL; ++ } ++ if (dld_undefined_sym_count > 0) ++ { ++ if (dld_link("/usr/lib/libm.a")) ++ { ++ elog(WARNING, "could not link math library"); ++ return NULL; ++ } ++ if (dld_undefined_sym_count > 0) ++ { ++ int count = dld_undefined_sym_count; ++ char **list = dld_list_undefined_sym(); ++ ++ /* list the undefined symbols, if any */ ++ do ++ { ++ elog(WARNING, "\"%s\" is undefined", *list); ++ list++; ++ count--; ++ } while (count > 0); ++ ++ dld_unlink_by_file(filename, 1); ++ return NULL; ++ } ++ } ++ } ++ ++ return (void *) strdup(filename); ++#endif ++} ++ ++PGFunction ++pg_dlsym(void *handle, char *funcname) ++{ ++#ifndef HAVE_DLD_H ++ return NULL; ++#else ++ return (PGFunction) dld_get_func((funcname)); ++#endif ++} ++ ++void ++pg_dlclose(void *handle) ++{ ++#ifndef HAVE_DLD_H ++#else ++ dld_unlink_by_file(handle, 1); ++ free(handle); ++#endif ++} ++ ++char * ++pg_dlerror(void) ++{ ++#ifndef HAVE_DLD_H ++ return "dynaloader unspported"; ++#else ++ return dld_strerror(dld_errno); ++#endif ++} ++ ++#endif /* !HAVE_DLOPEN */ +diff --git a/src/backend/port/dynloader/haiku.h b/src/backend/port/dynloader/haiku.h +new file mode 100644 +index 0000000..974cf4a +--- /dev/null ++++ b/src/backend/port/dynloader/haiku.h +@@ -0,0 +1,44 @@ ++/*------------------------------------------------------------------------- ++ * ++ * linux.h ++ * Port-specific prototypes for Linux ++ * ++ * ++ * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group ++ * Portions Copyright (c) 1994, Regents of the University of California ++ * ++ * src/backend/port/dynloader/haiku.h ++ * ++ *------------------------------------------------------------------------- ++ */ ++#ifndef PORT_PROTOS_H ++#define PORT_PROTOS_H ++ ++#include "utils/dynamic_loader.h" /* pgrminclude ignore */ ++#ifdef HAVE_DLOPEN ++#include ++#endif ++ ++ ++#ifdef HAVE_DLOPEN ++ ++/* ++ * In some older systems, the RTLD_NOW flag isn't defined and the mode ++ * argument to dlopen must always be 1. The RTLD_GLOBAL flag is wanted ++ * if available, but it doesn't exist everywhere. ++ * If it doesn't exist, set it to 0 so it has no effect. ++ */ ++#ifndef RTLD_NOW ++#define RTLD_NOW 1 ++#endif ++#ifndef RTLD_GLOBAL ++#define RTLD_GLOBAL 0 ++#endif ++ ++#define pg_dlopen(f) dlopen((f), RTLD_NOW | RTLD_GLOBAL) ++#define pg_dlsym dlsym ++#define pg_dlclose dlclose ++#define pg_dlerror dlerror ++#endif /* HAVE_DLOPEN */ ++ ++#endif /* PORT_PROTOS_H */ +diff --git a/src/include/port/haiku.h b/src/include/port/haiku.h +new file mode 100644 +index 0000000..beabea1 +--- /dev/null ++++ b/src/include/port/haiku.h +@@ -0,0 +1 @@ ++/* src/include/port/haiku.h */ +diff --git a/src/makefiles/Makefile.haiku b/src/makefiles/Makefile.haiku +new file mode 100644 +index 0000000..53780c1 +--- /dev/null ++++ b/src/makefiles/Makefile.haiku +@@ -0,0 +1,12 @@ ++AROPT = cr ++export_dynamic = -Wl,-E ++# Use --enable-new-dtags to generate DT_RUNPATH instead of DT_RPATH. ++# This allows LD_LIBRARY_PATH to still work when needed. ++rpath = -Wl,-rpath,'$(rpathdir)',--enable-new-dtags ++DLSUFFIX = .so ++ ++CFLAGS_SL = -fpic ++ ++# Rule for building a shared library from a single .o file ++%.so: %.o ++ $(CC) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_SL) -shared -o $@ $< +diff --git a/src/template/haiku b/src/template/haiku +new file mode 100644 +index 0000000..fd1e3dc +--- /dev/null ++++ b/src/template/haiku +@@ -0,0 +1,2 @@ ++# src/template/haiku ++ +-- +1.8.3.4 + diff --git a/dev-db/postgresql_server/postgresql_server-9.3.4.recipe b/dev-db/postgresql_server/postgresql_server-9.3.4.recipe new file mode 100644 index 000000000..7510f56bb --- /dev/null +++ b/dev-db/postgresql_server/postgresql_server-9.3.4.recipe @@ -0,0 +1,79 @@ +SUMMARY="A powerful, open source object-relational database system." +DESCRIPTION=" +PostgreSQL is a powerful, open source object-relational database system. It has\ + more than 15 years of active development and a proven architecture that has \ +earned it a strong reputation for reliability, data integrity, and correctness.\ + It runs on all major operating systems, including Linux, UNIX (AIX, BSD, HP-UX,\ + SGI IRIX, Mac OS X, Solaris, Tru64), and Windows. It is fully ACID compliant,\ + has full support for foreign keys, joins, views, triggers, and stored\ + procedures (in multiple languages). It includes most SQL:2008 data types,\ + including INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and\ + TIMESTAMP. It also supports storage of binary large objects, including\ + pictures, sounds, or video. It has native programming interfaces for C/C++,\ + Java, .Net, Perl, Python, Ruby, Tcl, ODBC, among others, and exceptional\ + documentation. +" +HOMEPAGE="http://www.postgresql.org/" +SRC_URI="http://ftp.postgresql.org/pub/source/v9.3.4/postgresql-9.3.4.tar.bz2" +CHECKSUM_SHA256="9ee819574dfc8798a448dc23a99510d2d8924c2f8b49f8228cd77e4efc8a6621" +REVISION="1" +ARCHITECTURES="!x86_gcc2 !x86 !x86_64" +LICENSE="PostgreSQL" +COPYRIGHT="1996-2014, PostgreSQL Global Development Group" + +PROVIDES=" + postgresql_server = $portVersion compat >= 9 + cmd:clusterdb = $portVersion compat >= 9 + cmd:createdb = $portVersion compat >= 9 + cmd:createlang = $portVersion compat >= 9 + cmd:createuser = $portVersion compat >= 9 + cmd:dropdb = $portVersion compat >= 9 + cmd:droplang = $portVersion compat >= 9 + cmd:dropuser = $portVersion compat >= 9 + cmd:pg_config = $portVersion compat >= 9 + cmd:pg_dump = $portVersion compat >= 9 + cmd:pg_dumpall = $portVersion compat >= 9 + cmd:pg_isready = $portVersion compat >= 9 + cmd:pg_restore = $portVersion compat >= 9 + cmd:psql = $portVersion compat >= 9 + cmd:reindexdb = $portVersion compat >= 9 + cmd:vacuumdb = $portVersion compat >= 9 + cmd:pgsql = $portVersion compat >= 9 +" + +REQUIRES=" + haiku >= $haikuVersion + lib:libreadline + lib:libz + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:libreadline + devel:libz + " +BUILD_PREREQUIRES=" + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc + cmd:ld + cmd:libtoolize + cmd:make + " + +PATCHES="postgresql_server-9.3.4.patchset" + +SOURCE_DIR="postgresql-$portVersion" + +BUILD() +{ + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install + + fixPkgconfig +} diff --git a/dev-db/redis/redis-2.2.11.recipe b/dev-db/redis/redis-2.2.11.recipe index fb63186b5..59c6c1caf 100644 --- a/dev-db/redis/redis-2.2.11.recipe +++ b/dev-db/redis/redis-2.2.11.recipe @@ -1,5 +1,9 @@ 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." +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="" diff --git a/dev-db/redis/redis-2.9.0_git.recipe b/dev-db/redis/redis-2.9.0_git.recipe index 66322690b..1a22ad365 100644 --- a/dev-db/redis/redis-2.9.0_git.recipe +++ b/dev-db/redis/redis-2.9.0_git.recipe @@ -1,5 +1,9 @@ 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." +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="" diff --git a/dev-db/sqlite/sqlite-3.7.13.recipe b/dev-db/sqlite/sqlite-3.7.13.recipe index 91ec55170..4d7ae6bfd 100644 --- a/dev-db/sqlite/sqlite-3.7.13.recipe +++ b/dev-db/sqlite/sqlite-3.7.13.recipe @@ -8,7 +8,7 @@ DESCRIPTION=" " HOMEPAGE="http://www.sqlite.org/" SRC_URI="http://www.sqlite.org/sqlite-autoconf-3071300.tar.gz" -CHECKSUM_MD5="c97df403e8a3d5b67bb408fcd6aabd8e" +CHECKSUM_SHA256="ac566819f82ec4cc2ff6c5cc90987ca38e589efbd79ff263838bbc62356ab119" LICENSE="SQLite" COPYRIGHT="Public Domain" REVISION="4" diff --git a/dev-db/sqlite/sqlite-3.7.15.1.recipe b/dev-db/sqlite/sqlite-3.7.15.1.recipe deleted file mode 100644 index 5d30c8b64..000000000 --- a/dev-db/sqlite/sqlite-3.7.15.1.recipe +++ /dev/null @@ -1,28 +0,0 @@ -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.16.1.recipe b/dev-db/sqlite/sqlite-3.7.16.1.recipe index 700c17163..509cafbac 100644 --- a/dev-db/sqlite/sqlite-3.7.16.1.recipe +++ b/dev-db/sqlite/sqlite-3.7.16.1.recipe @@ -1,8 +1,8 @@ SUMMARY="A SQL Database Engine in a C Library" 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-3071601.tar.gz" -CHECKSUM_MD5="8860d1a1ed26d40f07e3c7ae035b644a" +SRC_URI="http://www.sqlite.org/2013/sqlite-autoconf-3071601.tar.gz" +CHECKSUM_SHA256="4af5ea8cbb1b0b0b53c67cef0b32d86f76e84c912228954e8577224150184a68" REVISION="2" ARCHITECTURES="?x86_gcc2 ?x86" diff --git a/dev-db/sqlite/sqlite-3.7.5.recipe b/dev-db/sqlite/sqlite-3.7.5.recipe index 498618e68..caaace5af 100644 --- a/dev-db/sqlite/sqlite-3.7.5.recipe +++ b/dev-db/sqlite/sqlite-3.7.5.recipe @@ -8,7 +8,7 @@ DESCRIPTION=" " HOMEPAGE="http://www.sqlite.org/" SRC_URI="http://www.sqlite.org/sqlite-autoconf-3070500.tar.gz" -CHECKSUM_MD5="a9604a82613ade2e7f4c303f233e477f" +CHECKSUM_SHA256="cb5b86926ec9f65882b2dddd244f2d620337d911ec73411863f77e48cf6a2f94" LICENSE="SQLite" COPYRIGHT="Public Domain" REVISION="7" diff --git a/dev-db/sqlite/sqlite-3.8.0.2.recipe b/dev-db/sqlite/sqlite-3.8.0.2.recipe index 255f1a9c6..272ce13be 100644 --- a/dev-db/sqlite/sqlite-3.8.0.2.recipe +++ b/dev-db/sqlite/sqlite-3.8.0.2.recipe @@ -1,14 +1,13 @@ SUMMARY="An SQL Database Engine in a C Library" DESCRIPTION=" - SQLite is a software library that implements a self-contained, - serverless, zero-configuration, transactional SQL database engine. - - SQLite is the most widely deployed SQL database engine in the world. - The source code for SQLite is in the public domain. - " +SQLite is a software library that implements a self-contained, serverless, \ +zero-configuration, transactional SQL database engine. +SQLite is the most widely deployed SQL database engine in the world. The \ +source code for SQLite is in the public domain. +" HOMEPAGE="http://www.sqlite.org/" SRC_URI="http://www.sqlite.org/2013/sqlite-autoconf-3080002.tar.gz" -CHECKSUM_MD5="6d6cc639a4da04fbbdda7b1a1a01b386" +CHECKSUM_SHA256="fca3a0a12f94dc92a6d9e700c3f6cab6cd4e79214bd7b6f13717a10f4bcfddb2" REVISION="1" ARCHITECTURES="x86_gcc2 x86" SECONDARY_ARCHITECTURES="x86_gcc2 x86" diff --git a/dev-db/sqlite/sqlite-3.8.4.1.recipe b/dev-db/sqlite/sqlite-3.8.4.1.recipe new file mode 100644 index 000000000..042cfa4bf --- /dev/null +++ b/dev-db/sqlite/sqlite-3.8.4.1.recipe @@ -0,0 +1,82 @@ +SUMMARY="An SQL Database Engine in a C Library" +DESCRIPTION=" +SQLite is a software library that implements a self-contained, serverless, \ +zero-configuration, transactional SQL database engine. +SQLite is the most widely deployed SQL database engine in the world. The \ +source code for SQLite is in the public domain. +" +HOMEPAGE="http://www.sqlite.org/" +SRC_URI="http://www.sqlite.org/2014/sqlite-autoconf-3080401.tar.gz" +CHECKSUM_SHA256="17227492466bb29fbef30d94a7cc27ec799e36c5d4d879dedd331079a6d1bc38" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" +LICENSE="SQLite" +COPYRIGHT="Public Domain" + +PROVIDES=" + sqlite$secondaryArchSuffix = $portVersion compat >= 3 + lib:libsqlite3$secondaryArchSuffix = 0.8.6 compat >= 0 + " +if [ -z "$secondaryArchSuffix" ]; then + PROVIDES="$PROVIDES + cmd:sqlite3 = $portVersion compat >= 3 + " +fi + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + haiku_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:make + " + +SOURCE_DIR="sqlite-autoconf-3080401" + +BUILD() +{ + libtoolize --force --copy --install + aclocal + autoconf + automake + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLib libsqlite3 + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir + + # Remove stuff we don't need in the secondary architecture base package. + if [ -n "$secondaryArchSuffix" ]; then + rm -rf $binDir + rm -rf $documentationDir + fi +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + sqlite${secondaryArchSuffix}_devel = $portVersion + devel:libsqlite3$secondaryArchSuffix = 0.8.6 compat >= 0 + " +REQUIRES_devel=" + sqlite$secondaryArchSuffix == $portVersion base + " diff --git a/dev-embedded/avr_libc/avr_libc-1.8.0.recipe b/dev-embedded/avr_libc/avr_libc-1.8.0.recipe new file mode 100644 index 000000000..f6d7bbf10 --- /dev/null +++ b/dev-embedded/avr_libc/avr_libc-1.8.0.recipe @@ -0,0 +1,81 @@ +SUMMARY="C library for Atmel AVR microcontrollers" +DESCRIPTION=" +AVR Libc is a Free Software project whose goal is to provide a high quality C +library for use with GCC on Atmel AVR microcontrollers. + +Together, avr-binutils, avr-gcc, and avr-libc form the heart of the Free +Software toolchain for the Atmel AVR microcontrollers. +" +HOMEPAGE="http://www.nongnu.org/avr-libc/" +LICENSE=" + BSD (3-clause) + " +COPYRIGHT=" +Portions of avr-libc are Copyright (c) 1999-2005 + Keith Gudger, + Bjoern Haase, + Steinar Haugen, + Peter Jansen, + Reinhard Jessich, + Magnus Johansson, + Artur Lipowski, + Marek Michalkiewicz, + Colin O'Flynn, + Bob Paddock, + Reiner Patommel, + Michael Rickman, + Theodore A. Roth, + Juergen Schilling, + Philip Soeberg, + Anatoly Sokolov, + Nils Kristian Strom, + Michael Stumpf, + Stefan Swanepoel, + Eric B. Weddington, + Joerg Wunsch, + Dmitry Xmelkov, + The Regents of the University of California. +" +SRC_URI="http://download.savannah.gnu.org/releases/avr-libc/avr-libc-1.8.0.tar.bz2" +CHECKSUM_SHA256="67a36bdb43a16f9b0512ba09584d4785f9bce6c057393f1020a5552e096e34ce" +REVISION="1" +ARCHITECTURES="any" +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + avr_libc = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:autoconf + cmd:automake + cmd:avr_as$secondaryArchSuffix + cmd:avr_gcc$secondaryArchSuffix + cmd:libtool + cmd:make + " + +SOURCE_DIR="avr-libc-$portVersion" + +relativeInstallDir="develop/tools/avr" +installDir="$prefix/$relativeInstallDir" + +BUILD() +{ + libtoolize --force --copy --install + runConfigure ./configure --host=avr --build=$effectiveTargetMachineTriple \ + --prefix=$installDir --libexecdir=$installDir/lib --mandir=$manDir \ + --docdir=$docDir --target=avr + make $jobArgs +} + +INSTALL() +{ + make install +} diff --git a/dev-embedded/avrdude/avrdude-6.0.1.recipe b/dev-embedded/avrdude/avrdude-6.0.1.recipe new file mode 100644 index 000000000..ed869792e --- /dev/null +++ b/dev-embedded/avrdude/avrdude-6.0.1.recipe @@ -0,0 +1,70 @@ +SUMMARY="AVRDUDE - AVR Downloader/UploaDEr" +DESCRIPTION=" +AVRDUDE is an utility to download/upload/manipulate the ROM and EEPROM contents +of AVR microcontrollers using the in-system programming technique (ISP). +" +HOMEPAGE="http://www.nongnu.org/avrdude/" +LICENSE=" + GNU GPL v2 + " +COPYRIGHT=" + 2003-2013 Brian S. Dean +" +SRC_URI="http://download.savannah.gnu.org/releases/avrdude/avrdude-6.0.1.tar.gz" +CHECKSUM_SHA256="c6804668dfa96b23185dfe2e8239089af4e4ae0b11aa7435bebb28c3260ede41" +REVISION="1" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" +PATCHES="avrdude-6.0.1.patch" + +GLOBAL_WRITABLE_FILES=" + settings/avrdude.conf keep-old +" + +PROVIDES=" + avrdude = $portVersion + cmd:avrdude$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libusb_1.0$secondaryArchSuffix + lib:libftdi1$secondaryArchSuffix + lib:libelf$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libusb_1.0$secondaryArchSuffix + devel:libftdi1$secondaryArchSuffix + devel:libelf$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:automake + cmd:autoconf + cmd:make + cmd:yacc + cmd:flex + cmd:pkg_config + " + +BUILD() +{ + export PKG_CONFIG_LIBDIR=/system/develop/lib/x86/pkgconfig/ + aclocal + autoconf + automake + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install +} diff --git a/dev-embedded/avrdude/patches/avrdude-6.0.1.patch b/dev-embedded/avrdude/patches/avrdude-6.0.1.patch new file mode 100644 index 000000000..6549b0239 --- /dev/null +++ b/dev-embedded/avrdude/patches/avrdude-6.0.1.patch @@ -0,0 +1,37 @@ +diff -Naur avrdude-6.0.1/configure.ac avrdude-6.0.1-haiku/configure.ac +--- avrdude-6.0.1/configure.ac 2013-09-18 06:19:42.038010880 +0000 ++++ avrdude-6.0.1-haiku/configure.ac 2014-01-13 23:01:38.477102080 +0000 +@@ -96,6 +96,7 @@ + + AC_SEARCH_LIBS([gethostent], [nsl]) + AC_SEARCH_LIBS([setsockopt], [socket]) ++AC_SEARCH_LIBS(socket, socket network) + AH_TEMPLATE([HAVE_LIBUSB], + [Define if USB support is enabled via libusb]) + AC_CHECK_LIB([usb], [usb_get_string_simple], [have_libusb=yes]) +@@ -176,11 +177,8 @@ + fi + AC_CHECK_HEADERS([pthread.h]) + # as there exits header file only pthread implementations for Windows, check if we have a library +-AC_CHECK_LIB([pthread], [pthread_create], [have_pthread=yes]) +-if test x$have_pthread = xyes; then +- LIBPTHREAD="-lpthread" +-fi +-AC_SUBST(LIBPTHREAD, $LIBPTHREAD) ++AC_SEARCH_LIBS([pthread_create], [pthread], [have_pthread=yes]) ++ + # Checks for header files. + AC_CHECK_HEADERS([limits.h stdlib.h string.h]) + AC_CHECK_HEADERS([fcntl.h sys/ioctl.h sys/time.h termios.h unistd.h]) +diff -Naur avrdude-6.0.1/Makefile.am avrdude-6.0.1-haiku/Makefile.am +--- avrdude-6.0.1/Makefile.am 2013-09-18 05:59:07.037224448 +0000 ++++ avrdude-6.0.1-haiku/Makefile.am 2014-01-13 21:50:05.837550080 +0000 +@@ -63,7 +63,7 @@ + + libavrdude_a_CFLAGS = @ENABLE_WARNINGS@ + +-avrdude_LDADD = $(top_builddir)/$(noinst_LIBRARIES) @LIBUSB_1_0@ @LIBUSB@ @LIBFTDI1@ @LIBFTDI@ @LIBHID@ @LIBELF@ @LIBPTHREAD@ -lm ++avrdude_LDADD = $(top_builddir)/$(noinst_LIBRARIES) @LIBUSB_1_0@ @LIBUSB@ @LIBFTDI1@ @LIBFTDI@ @LIBHID@ @LIBELF@ + + bin_PROGRAMS = avrdude + diff --git a/dev-embedded/libftdi/libftdi-1.0.recipe b/dev-embedded/libftdi/libftdi-1.0.recipe new file mode 100644 index 000000000..957e1f92c --- /dev/null +++ b/dev-embedded/libftdi/libftdi-1.0.recipe @@ -0,0 +1,89 @@ +SUMMARY="libFTDI is an open source library to talk to FTDI chips" +DESCRIPTION=" +libFTDI is an open source library to talk to FTDI chips: FT232BM, FT245BM, \ +FT2232C, FT2232D, FT245R and FT232H including the popular bitbang mode. The \ +library is linked with your program in userspace, no kernel driver required. +libFTDI works perfectly with Linux, Windows, MacOS X and BSD variants thanks to \ +libusb. +" +HOMEPAGE="http://www.intra2net.com/en/developer/libftdi/index.php" +SRC_URI="http://www.intra2net.com/en/developer/libftdi/download/libftdi1-1.0.tar.bz2" +CHECKSUM_SHA256="7290fd38208d8c00d25ed13ce172aaa0403b37148080e4a33a99837022d2b321" +LICENSE=" + GNU LGPL v2.1 + GNU GPL v2 + " +COPYRIGHT="2003-2013 Intra2net AG and the libftdi developers" +REVISION="1" +ARCHITECTURES="x86 x86_gcc2" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" +SOURCE_DIR="libftdi1-$portVersion" +PATCHES="libftdi-1.0.patch" + +PROVIDES=" + libftdi1$secondaryArchSuffix = $portVersion + lib:libftdi1$secondaryArchSuffix = $portVersion + lib:libftdipp1$secondaryArchSuffix = $portVersion + cmd:ftdi_eeprom$secondaryArchSuffix + cmd:libftdi1_config$secondaryArchSuffix + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libconfuse$secondaryArchSuffix >= 2.5 + libusb$secondaryArchSuffix >= 1.0 + boost$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + libconfuse${secondaryArchSuffix}_devel >= 2.5 + libusb${secondaryArchSuffix}_devel + boost_devel$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:cmake + cmd:make + " + +BUILD() +{ + rm -rf build + mkdir build + cd build + cmake -DCMAKE_INSTALL_PREFIX:PATH=$prefix \ + -DLIBUSB_INCLUDE_DIR=/system/$relativeIncludeDir/libusb-1.0 \ + -DConfuse_INCLUDE_DIRS=/system/$relativeIncludeDir \ + -DConfuse_LIBRARY_DIRS=/system/$relativeDevelopLibDir \ + -DConfuse_LIBRARIES="libconfuse.so" \ + -DConfuse_FOUND=TRUE \ + -DLIBUSB="libusb-1.0.so" \ + -DLIB_SUFFIX=$secondaryArchSubDir \ + -DBIN_SUFFIX=$secondaryArchSubDir \ + -DINC_SUFFIX=$secondaryArchSubDir \ + .. + make +} + +INSTALL() +{ + cd build + make install + prepareInstalledDevelLib libftdi1 + prepareInstalledDevelLib libftdipp1 + fixPkgconfig + packageEntries devel $developDir +} + +PROVIDES_devel=" + libftdi1${secondaryArchSuffix}_devel = $portVersion + devel:libftdi1$secondaryArchSuffix = $portVersion + devel:libftdipp1$secondaryArchSuffix = $portVersion + " + +REQUIRES_devel=" + lib:libftdi1$secondaryArchSuffix == $portVersion base + " diff --git a/dev-embedded/libftdi/patches/libftdi-1.0.patch b/dev-embedded/libftdi/patches/libftdi-1.0.patch new file mode 100644 index 000000000..e906886ea --- /dev/null +++ b/dev-embedded/libftdi/patches/libftdi-1.0.patch @@ -0,0 +1,51 @@ +diff -Naur libftdi1-1.0/CMakeLists.txt libftdi1-1.0-haiku/CMakeLists.txt +--- libftdi1-1.0/CMakeLists.txt 2013-01-29 13:21:38.000262144 +0000 ++++ libftdi1-1.0-haiku/CMakeLists.txt 2014-01-13 12:26:59.005505024 +0000 +@@ -166,7 +166,7 @@ + if ( UNIX ) + configure_file ( libftdi1-config.in ${CMAKE_CURRENT_BINARY_DIR}/libftdi1-config @ONLY ) + install ( PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libftdi1-config +- DESTINATION bin ) ++ DESTINATION bin${BIN_SUFFIX} ) + + # config script install path + if ( NOT DEFINED LIBFTDI_CMAKE_CONFIG_DIR ) +diff -Naur libftdi1-1.0/ftdi_eeprom/CMakeLists.txt libftdi1-1.0-haiku/ftdi_eeprom/CMakeLists.txt +--- libftdi1-1.0/ftdi_eeprom/CMakeLists.txt 2013-01-29 13:21:38.004718592 +0000 ++++ libftdi1-1.0-haiku/ftdi_eeprom/CMakeLists.txt 2014-01-13 12:26:59.008912896 +0000 +@@ -28,9 +28,9 @@ + + add_executable(ftdi_eeprom main.c) + target_link_libraries(ftdi_eeprom ftdi1) +- target_link_libraries(ftdi_eeprom ${Confuse_LIBRARIES}) ++ target_link_libraries(ftdi_eeprom ${Confuse_LIBRARIES} ${LIBUSB}) + +- install(TARGETS ftdi_eeprom DESTINATION bin) ++ install(TARGETS ftdi_eeprom DESTINATION bin${BIN_SUFFIX}) + + else(Confuse_FOUND) + message(STATUS "libConfuse not found, won't build ftdi_eeprom") +diff -Naur libftdi1-1.0/ftdipp/CMakeLists.txt libftdi1-1.0-haiku/ftdipp/CMakeLists.txt +--- libftdi1-1.0/ftdipp/CMakeLists.txt 2013-01-29 13:21:38.005242880 +0000 ++++ libftdi1-1.0-haiku/ftdipp/CMakeLists.txt 2014-01-13 12:32:43.713293824 +0000 +@@ -51,7 +51,7 @@ + COMPONENT staticlibs + ) + install( FILES ${cpp_headers} +- DESTINATION include/${PROJECT_NAME} ++ DESTINATION develop/headers${INC_SUFFIX}/${PROJECT_NAME} + COMPONENT headers + ) + endif(${UNIX}) +diff -Naur libftdi1-1.0/src/CMakeLists.txt libftdi1-1.0-haiku/src/CMakeLists.txt +--- libftdi1-1.0/src/CMakeLists.txt 2013-01-29 13:21:38.006553600 +0000 ++++ libftdi1-1.0-haiku/src/CMakeLists.txt 2014-01-13 12:26:59.012058624 +0000 +@@ -51,7 +51,7 @@ + ) + + install( FILES ${c_headers} +- DESTINATION include/${PROJECT_NAME} ++ DESTINATION develop/headers${INC_SUFFIX}/${PROJECT_NAME} + COMPONENT headers + ) + diff --git a/dev-embedded/lm4tools/lm4tools-0.1.3.recipe b/dev-embedded/lm4tools/lm4tools-0.1.3.recipe new file mode 100644 index 000000000..991bb5c94 --- /dev/null +++ b/dev-embedded/lm4tools/lm4tools-0.1.3.recipe @@ -0,0 +1,58 @@ +SUMMARY="Some tools which enable multi-platform development on the TI Stellaris Launchpad boards." +DESCRIPTION=" +Some tools which enable multi-platform development on the TI Stellaris +Launchpad boards. The Stellaris Launchpad is a low cost development board +created by Texas Instruments that comes with an ARM Cortex-M4F processor. +" +HOMEPAGE="https://github.com/utzig/lm4tools" +LICENSE=" + GNU GPL v2 + " +COPYRIGHT=" + 2012 Fabio Utzig + 2012 Peter Stuge +" +SRC_URI=" + git+https://github.com/utzig/lm4tools.git#1cfd813779b9eb717b15b0a1814bde8338899ff9 + " +REVISION="1" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + lm4tools = $portVersion + cmd:lm4flash$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libusb_1.0$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libusb_1.0$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:pkg_config$secondaryArchSuffix + " + +BUILD() +{ + cd lm4flash + make $jobArgs CFLAGS=-D__APPLE__ +} + +INSTALL() +{ + cd lm4flash + mkdir -p $binDir + cp lm4flash $binDir +} diff --git a/dev-games/ode/ode-0.12.recipe b/dev-games/ode/ode-0.12.recipe index 06df78601..f9129d0d0 100644 --- a/dev-games/ode/ode-0.12.recipe +++ b/dev-games/ode/ode-0.12.recipe @@ -1,19 +1,72 @@ -DESCRIPTION="ODE is an open source, high performance library for simulating rigid body dynamics." +SUMMARY="Library for simulating rigid body dynamics" +DESCRIPTION=" +ODE is an open source, high performance library for simulating rigid body \ +dynamics. It is fully featured, stable, mature and platform independent with \ +an easy to use C/C++ API. It has advanced joint types and integrated collision \ +detection with friction. ODE is useful for simulating vehicles, objects in \ +virtual reality environments and virtual creatures. +" 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" +SRC_URI="http://downloads.sourceforge.net/project/opende/ODE/0.12/ode-0.12.tar.bz2" +CHECKSUM_SHA256="65c5315a42c725d2da01ea2c1b045583d54e0d1a95e3f7c062e5ba3769f5c350" REVISION="1" COPYRIGHT="2001-2004 Russell L. Smith" -LICENSE="GNU LGPL v3 - BSD (3-clause)" -CHECKSUM_MD5="48fdd41fae1a7e7831feeded09826599" +LICENSE=" + GNU LGPL v3 + BSD (3-clause) + " +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + ode$secondaryArchSuffix = $portVersion + lib:libode$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:make + cmd:mkdepend + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + " + +PATCHES="ode-0.12.patch" + BUILD() { - cd ode-0.12 - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make + runConfigure ./configure --enable-shared + make $jobArgs } INSTALL() { - cd ode-0.12 + fixDevelopLibDirReferences ode-config + make install + + prepareInstalledDevelLib libode + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir \ + $binDir # ode_config binary here } + +PROVIDES_devel=" + ode${secondaryArchSuffix}_devel = $portVersion + devel:libode$secondaryArchSuffix = $portVersion + cmd:ode_config$secondaryArchSuffix = $portVersion + " + +REQUIRES_devel=" + haiku$secondaryArchSuffix >= $haikuVersion + ode$secondaryArchSuffix == $portVersion base + " diff --git a/dev-games/ode/patches/ode-0.12.patch b/dev-games/ode/patches/ode-0.12.patch index 131dddd87..1e00efd8e 100644 --- a/dev-games/ode/patches/ode-0.12.patch +++ b/dev-games/ode/patches/ode-0.12.patch @@ -1,18 +1,6 @@ -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 +diff -ur ode-0.12/include/ode/collision.h ode-0.12-patch/include/ode/collision.h +--- ode-0.12/include/ode/collision.h 2010-11-08 12:00:18.044564480 +0000 ++++ ode-0.12-patch/include/ode/collision.h 2013-12-16 16:47:37.561774592 +0000 @@ -1081,7 +1081,7 @@ ODE_API void dGeomRaySetClosestHit (dGeomID g, int closestHit); ODE_API int dGeomRayGetClosestHit (dGeomID g); @@ -22,3 +10,15 @@ diff -u ode-0.12/include/ode/collision.h ode-0.12-haiku/include/ode/collision.h ODE_API dGeomID dCreateGeomTransform (dSpaceID space); ODE_API void dGeomTransformSetGeom (dGeomID g, dGeomID obj); +diff -ur ode-0.12/ode/src/joints/Makefile.in ode-0.12-patch/ode/src/joints/Makefile.in +--- ode-0.12/ode/src/joints/Makefile.in 2012-05-28 23:26:01.004980736 +0000 ++++ ode-0.12-patch/ode/src/joints/Makefile.in 2013-12-16 16:35:09.259784704 +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 --git a/dev-games/physfs/physfs-2.0.1.recipe b/dev-games/physfs/physfs-2.0.1.recipe deleted file mode 100644 index 6ca2c54d8..000000000 --- a/dev-games/physfs/physfs-2.0.1.recipe +++ /dev/null @@ -1,33 +0,0 @@ -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" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="dev-util/cmake >= 2.8.0 - dev-util/mercurial >= 1.4" -BUILD() -{ - cd physfs-2.0.1 - cmake . -DLIBRARY_OUTPUT_PATH:=`finddir B_COMMON_LIB_DIRECTORY` - make -} - -INSTALL() -{ - cd physfs-2.0.1 - make install - if [ -n "$(setgcc | grep '4')" ]; then - if [ -e "${DESTDIR}" ]; then - mkdir -p ${DESTDIR}/tmp-phy - mv -v ${DESTDIR}/boot/common/lib ${DESTDIR}/tmp-phy - 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 - fi - fi -} -LICENSE="PHYSFS" -COPYRIGHT="2001-2010 Ryan C. Gordon" diff --git a/dev-games/physfs/physfs-2.0.3.recipe b/dev-games/physfs/physfs-2.0.3.recipe new file mode 100644 index 000000000..628931cb3 --- /dev/null +++ b/dev-games/physfs/physfs-2.0.3.recipe @@ -0,0 +1,68 @@ +SUMMARY="Physfs" +DESCRIPTION=" +PhysicsFS is a library to provide abstract access to various archives. +" +HOMEPAGE="http://icculus.org/physfs" +SRC_URI="http://icculus.org/physfs/downloads/physfs-2.0.3.tar.bz2" +CHECKSUM_SHA256="ca862097c0fb451f2cacd286194d071289342c107b6fe69079c079883ff66b69" +LICENSE="PHYSFS" +COPYRIGHT="2001-2012 Ryan C. Gordon" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +REVISION="1" + +PROVIDES=" + physfs$secondaryArchSuffix = $portVersion compat >= 2.0 + lib:libphysfs$secondaryArchSuffix = $portVersion compat >= 2.0 + cmd:test_physfs$secondaryArchSuffix = $portVersion compat >= 2.0 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:cmake + cmd:make + cmd:gcc$secondaryArchSuffix + " + +PATCH() +{ + sed -i "s,DESTINATION include,DESTINATION $relativeIncludeDir," CMakeLists.txt + sed -i "s,DESTINATION bin,DESTINATION $relativeBinDir," CMakeLists.txt +} + +BUILD() +{ + cmake . -DCMAKE_INSTALL_PREFIX=$prefix \ + -DLIB_SUFFIX="/${secondaryArchSuffix/_/}" + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLib libphysfs + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir +} + +PROVIDES_devel=" + physfs$secondaryArchSuffix_devel = $portVersion compat >= 2.0 + devel:libphysfs$secondaryArchSuffix = $portVersion compat >= 2.0 + " + +REQUIRES_devel=" + physfs$secondaryArchSuffix == $portVersion base + " diff --git a/dev-java/ant_core/ant_core-1.9.2.recipe b/dev-java/ant_core/ant_core-1.9.2.recipe new file mode 100644 index 000000000..79e278601 --- /dev/null +++ b/dev-java/ant_core/ant_core-1.9.2.recipe @@ -0,0 +1,75 @@ +SUMMARY="Java-based build tool similar to 'make'" +DESCRIPTION=" +Apache Ant is a Java library and command-line tool whose mission is to drive \ +processes described in build files as targets and extension points dependent \ +upon each other. The main known usage of Ant is the build of Java \ +applications. Ant supplies a number of built-in tasks allowing to compile, \ +assemble, test and run Java applications. Ant can also be used effectively to \ +build non Java applications, for instance C or C++ applications. More \ +generally, Ant can be used to pilot any type of process which can be described \ +in terms of targets and tasks. +Ant is written in Java. Users of Ant can develop their own "antlibs" \ +containing Ant tasks and types, and are offered a large number of ready-made \ +commercial or open-source "antlibs". +Ant is extremely flexible and does not impose coding conventions or directory \ +layouts to the Java projects which adopt it as a build tool. +Software development projects looking for a solution combining build tool and \ +dependency management can use Ant in combination with Apache Ivy. +The Apache Ant project is part of the Apache Software Foundation. +" +HOMEPAGE="http://ant.apache.org/" +COPYRIGHT="1999-2013 The Apache Software Foundation" +LICENSE="Apache v2" + +REVISION="1" +ARCHITECTURES="any" + +SRC_URI="http://archive.apache.org/dist/ant/source/apache-ant-1.9.2-src.tar.bz2" +CHECKSUM_SHA256="cf95317f683f28ae3d263327447abbebd30a6c910cfa069a05c5ee39aa5ad0e3" +SOURCE_DIR="apache-ant-$portVersion" + +PROVIDES=" + ant_core = $portVersion compat >= 1 + cmd:ant = $portVersion compat >= 1 + " + +REQUIRES=" + haiku >= $haikuVersion + cmd:java + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + cmd:java + cmd:java_config + cmd:javac + " + +PATCH() +{ + sed -i 's/depends=\"jars,test-jar\"/depends=\"jars\"/' build.xml +} + +BUILD() +{ + export JAVA_HOME=$(java-config -H) + ANT_HOME= ./build.sh +} + +INSTALL() +{ + export JAVA_HOME=$(java-config -H) + export ANT_HOME=$libDir/ant + ./build.sh install-lite + + # symlink the executable to binDir + mkdir -p $binDir + symlinkRelative -s $ANT_HOME/bin/ant $binDir + + # create a profile.d file that sets up ANT_HOME + mkdir -p $dataDir/profile.d + echo ANT_HOME=$ANT_HOME > $dataDir/profile.d/ant.sh + echo "export ANT_HOME" >> $dataDir/profile.d/ant.sh +} diff --git a/dev-java/gnu_classpath/gnu_classpath-0.98.recipe b/dev-java/gnu_classpath/gnu_classpath-0.98.recipe index 56d07ee1d..e182f0ca6 100644 --- a/dev-java/gnu_classpath/gnu_classpath-0.98.recipe +++ b/dev-java/gnu_classpath/gnu_classpath-0.98.recipe @@ -1,42 +1,12 @@ -DESCRIPTION="Free core class libraries for use with virtual machines and compilers for the Java language" +SUMMARY="GNU Java class library" +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" +CHECKSUM_SHA256="501b5acd4dff79b6100da22cef15080f31071821ce3cea6f1b739bc1b56fac3f" REVISION="1" -STATUS_HAIKU="broken" -DEPEND="" -CHECKSUM_MD5="90c6571b8b0309e372faa0f9f6255ea9" -BUILD() -{ - cd classpath-0.98 - libtoolize --force --copy --install - aclocal -I m4 - autoconf - COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` - ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --mandir=$COMMON_DOCS/man \ - --infodir=$COMMON_DOCS/info \ - --disable-gtk-peer \ - --disable-alsa \ - --disable-plugin \ - --disable-gconf-peer \ - --disable-gjdoc \ - LDFLAGS="-lnetwork" - make -} - -INSTALL() -{ - cd classpath-0.98 - make install -} - -TEST() -{ - cd classpath-0.98 -# make test -# make check -} - LICENSE="GNU GPL v2 GNU GPL v2 with classpath exceptions" COPYRIGHT="1998-1999, 2001-2008 Free Software Foundation @@ -48,3 +18,56 @@ COPYRIGHT="1998-1999, 2001-2008 Free Software Foundation 2004 World Wide Web Consortium 2005 Caolan McNamara 2005 Daniel Richard G." + +ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="?x86_gcc2 ?x86" + +PROVIDES=" + gnu_classpath = $portVersion +" +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion +" +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion +" +BUILD_PREREQUIRES=" + cmd:aclocal + cmd:autoconf + cmd:libtoolize + cmd:gcc$secondaryArchSuffix + cmd:make + # at least one java VM, for now just use jamvm + cmd:jamvm$secondaryArchSuffix +" + +SOURCE_DIR="classpath-0.98" + +PATCHES="gnu_classpath-0.98.patch" + +BUILD() +{ + libtoolize --force --copy --install + aclocal -I m4 + autoconf + runConfigure ./configure \ + --disable-gtk-peer \ + --disable-alsa \ + --disable-plugin \ + --disable-gconf-peer \ + --disable-gjdoc \ + LDFLAGS="-lnetwork" + make +} + +INSTALL() +{ + make install +} + +TEST() +{ + : +# make test +# make check +} diff --git a/dev-java/gnu_classpath/patches/gnu_classpath-0.98.patch b/dev-java/gnu_classpath/patches/gnu_classpath-0.98.patch index 0c5a9e8ae..33b7704e6 100644 --- a/dev-java/gnu_classpath/patches/gnu_classpath-0.98.patch +++ b/dev-java/gnu_classpath/patches/gnu_classpath-0.98.patch @@ -25,7 +25,7 @@ @@ -310,7 +310,7 @@ libjavanio_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo \ - $(top_builddir)/native/jni/native-lib/libclasspathnative.la \ + $(top_builddir)/native/jni/native-lib/libclasspathnative.la \ - $(LTLIBICONV) + -Wl,$(LIBICONV) diff --git a/dev-java/jamvm/jamvm-1.5.4.recipe b/dev-java/jamvm/jamvm-1.5.4.recipe index 771a21d35..f9a6b7a52 100644 --- a/dev-java/jamvm/jamvm-1.5.4.recipe +++ b/dev-java/jamvm/jamvm-1.5.4.recipe @@ -1,28 +1,64 @@ -DESCRIPTION="JamVM" -HOMEPAGE="http://jamvm.sourceforge.net" +SUMMARY="JamVM" +DESCRIPTION=" +JamVM is a new Java Virtual Machine which conforms to the JVM specification \ +version 2 (blue book). In comparison to most other VM's (free and commercial) \ +it is extremely small. +" +HOMEPAGE="http://jamvm.sourceforge.net/" SRC_URI="http://sourceforge.net/projects/jamvm/files/jamvm/JamVM%201.5.4/jamvm-1.5.4.tar.gz/download" +CHECKSUM_SHA256="7865693698bc4322cabe1014a4b7ebdec1bc1daf45f1a4457b6e908a4446b124" REVISION="1" -STATUS_HAIKU="stable" DEPEND="" -CHECKSUM_MD5="7654e9657691f5f09c4f481ed4686176" -MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +LICENSE="GNU GPL v2" +COPYRIGHT="2003-2010 Robert Lougher" + +ARCHITECTURES="x86 ?x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + jamvm$secondaryArchSuffix = $portVersion + cmd:jamvm$secondaryArchSuffix = $portVersion + lib:libjvm$secondaryArchSuffix + devel:libjvm$secondaryArchSuffix + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libz$secondaryArchSuffix >= 1.2.8 + " +BUILD_PREREQUIRES=" + cmd:autoconf + cmd:aclocal + cmd:libtool + cmd:make + cmd:gcc$secondaryArchSuffix + " + + +PATCHES="jamvm-1.5.4.patch" BUILD() { - cd jamvm-1.5.4 libtoolize --force --copy --install aclocal autoconf - ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --with-classpath-install-dir=`finddir B_COMMON_DIRECTORY` + runConfigure ./configure \ + --with-classpath-install-dir=$prefix make } INSTALL() { - cd jamvm-1.5.4 make install + prepareInstalledDevelLib libjvm } - -LICENSE="GNU GPL v2" -COPYRIGHT="2003-2010 Robert Lougher" diff --git a/dev-lang/erlang/erlang-16.03.recipe b/dev-lang/erlang/erlang-16.03.recipe new file mode 100644 index 000000000..a3d28d934 --- /dev/null +++ b/dev-lang/erlang/erlang-16.03.recipe @@ -0,0 +1,67 @@ +SUMMARY="Erlang/OTP" +DESCRIPTION=" +Erlang is a programming language used to +build massively scalable soft real-time systems with +requirements on high availability. Some of its uses +are in telecoms, banking, e-commerce, computer +telephony and instant messaging. Erlang's runtime +system has built-in support for concurrency, distribution and fault tolerance." +HOMEPAGE="http://www.erlang.org" +SRC_URI="http://www.erlang.org/download/otp_src_R16B03.tar.gz" +CHECKSUM_SHA256="6133b3410681a5c934e54c76eee1825f96dead8d6a12c31a64f6e160daf0bb06" +ARCHITECTURES="x86_gcc2 x86" +LICENSE="EPL" +REVISION="1" +COPYRIGHT="1997-2013 Ericsson AB" +SOURCE_DIR="otp_src_R16B03" +PATCHES="erlang_R16B03_haiku.patch" + +PROVIDES=" + erl = $portVersion + cmd:erl = $portVersion + cmd:ct_run = $portVersion + cmd:dialyzer = $portVersion + cmd:epmd = $portVersion + cmd:erlc = $portVersion + cmd:escript = $portVersion + cmd:run_erl = $portVersion + cmd:to_erl = $portVersion + cmd:typer = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + cmd:libtool + cmd:perl + cmd:gcc + " + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:perl + cmd:make + cmd:gcc + cmd:tar + cmd:uname + devel:libncurses + devel:libssl + devel:libcrypto + " +ERLANG_CFLAGS="-DETHR_X86_OUT_OF_ORDER -DHAVE_NET_IF_DL_H -DETHR_HAVE_ETHREAD_DEFINES -DETHR_PTHREADS -DETHR_SIZEOF_PTR=4 -DHAVE_CONFIG_H -I../i586-pc-haiku -I../../i586-pc-haiku -I../include/internal -I../../include/internal -I../../emulator/sys/unix -I../../include/i586-pc-haiku -I../../emulator/beam -I../../../erts/include/internal/i586-pc-haiku -I../../../erts/i586-pc-haiku -Imisc -I../include -Iepmd -Iconnect -I../../../erts/emulator/beam -I../../../erts/include/i586-pc-haiku -I../../../../erts/emulator/beam -I../../../../erts/include/i586-pc-haiku -I../../../../erts/i586-pc-haiku" + +BUILD() +{ + rm -rf `finddir B_SYSTEM_SETTINGS_DIRECTORY`/network + mkdir -p `finddir B_SYSTEM_SETTINGS_DIRECTORY`/network + touch `finddir B_SYSTEM_SETTINGS_DIRECTORY`/network/hostname + runConfigure --omit-dirs "docDir dataRootDir" configure --prefix="$prefix" --disable-ipv6 --disable-hipe LDFLAGS="-lnetwork" + echo "#undef ERTS_SMP" >> erts/i586-pc-haiku/config.h + echo "#undef USE_THREADS" >> erts/i586-pc-haiku/config.h + echo "Skip" > lib/megaco/SKIP + HOME=/boot/home make CFLAGS="$ERLANG_CFLAGS" +} + +INSTALL() +{ + HOME=/boot/home make CFLAGS="$ERLANG_CFLAGS" install +} \ No newline at end of file diff --git a/dev-lang/erlang/erlang-R14B.recipe b/dev-lang/erlang/erlang-R14B.recipe deleted file mode 100644 index 0865f3e9c..000000000 --- a/dev-lang/erlang/erlang-R14B.recipe +++ /dev/null @@ -1,61 +0,0 @@ -DESCRIPTION="erlang" -HOMEPAGE="http://www.erlang.org" -SRC_URI="http://www.erlang.org/download/otp_src_R14B.tar.gz" -REVISION="1" -STATUS_HAIKU="broken" -DEPEND="" -CHECKSUM_MD5="5292a04556d17ad528d570e02357dfbb" -BUILD() -{ - cd otp_src_R14B - mkdir -p m4 - echo "AC_CONFIG_MACRO_DIR([m4]) >> configure.in" - echo "AC_CHECK_LIBM" >> configure.in - rm -f erts/autoconf/config.guess - rm -f erts/autoconf/config.sub - rm -f erts/autoconf/install-sh - rm -f erts/autoconf/ltmain.sh - cp -v /boot/common/share/libtool/config/config.guess erts/autoconf - cp -v /boot/common/share/libtool/config/config.sub erts/autoconf - cp -v /boot/common/share/libtool/config/install-sh erts/autoconf - cp -v /boot/common/share/libtool/config/ltmain.sh erts/autoconf - cp -v /boot/common/share/libtool/config/config.guess lib/common_test/priv/auxdir - cp -v /boot/common/share/libtool/config/config.sub lib/common_test/priv/auxdir - cp -v /boot/common/share/libtool/config/install-sh lib/common_test/priv/auxdir - cp -v /boot/common/share/libtool/config/ltmain.sh lib/common_test/priv/auxdir - cp -v /boot/common/share/libtool/config/config.guess lib/erl_interface/src/auxdir - cp -v /boot/common/share/libtool/config/config.sub lib/erl_interface/src/auxdir - cp -v /boot/common/share/libtool/config/install-sh lib/erl_interface/src/auxdir - cp -v /boot/common/share/libtool/config/ltmain.sh lib/erl_interface/src/auxdir - cp -v /boot/common/share/libtool/config/config.guess lib/test_server/src - cp -v /boot/common/share/libtool/config/config.sub lib/test_server/src - cp -v /boot/common/share/libtool/config/install-sh lib/test_server/src - cp -v /boot/common/share/libtool/config/ltmain.sh lib/test_server/src - cp -v /boot/common/share/aclocal/libtool.m4 m4 - cp -v /boot/common/share/aclocal/ltoptions.m4 m4 - cp -v /boot/common/share/aclocal/ltversion.m4 m4 - cp -v /boot/common/share/aclocal/ltsugar.m4 m4 - cp -v /boot/common/share/aclocal/lt~obsolete.m4 m4 - rm -f aclocal.m4 -# libtoolize --copy --force --install # this fails?! so have to delete and copy files in instead - cd lib/test_server/src - autoconf - cd ../../.. - aclocal -I m4 - autoconf - ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --with-ssl=`finddir B_COMMON_DIRECTORY` \ - --disable-ipv6 \ - --disable-hipe \ - LDFLAGS="-lnetwork" - make -s -} - -INSTALL() -{ - cd otp_src_R14B - make -s install -} - -LICENSE="EPL v1.1" -COPYRIGHT="1997-2010 Ericsson AB" diff --git a/dev-lang/erlang/licenses/EPL v1.1 b/dev-lang/erlang/licenses/EPL similarity index 100% rename from dev-lang/erlang/licenses/EPL v1.1 rename to dev-lang/erlang/licenses/EPL diff --git a/dev-lang/erlang/patches/erlang-R14B.patch b/dev-lang/erlang/patches/erlang-R14B.patch deleted file mode 100644 index 6659da218..000000000 --- a/dev-lang/erlang/patches/erlang-R14B.patch +++ /dev/null @@ -1,287 +0,0 @@ -diff -urN otp_src_R14B/lib/test_server/src/configure.in otp_src_R14B-haiku/lib/test_server/src/configure.in ---- otp_src_R14B/lib/test_server/src/configure.in 2010-09-13 17:00:22.037748736 +0000 -+++ otp_src_R14B-haiku/lib/test_server/src/configure.in 2010-10-04 13:15:31.969932800 +0000 -@@ -279,6 +279,10 @@ - LIBS="$LIBS -lsocket -lnsl" - AC_CHECK_FUNC(accept, erl_checkNsl=0, [LIBS=$tk_oldLibs]) - fi -+ -+# Haiku uses -lnetwork instead of -lsocket -+AC_CHECK_LIB(network, socket, LIBS="$LIBS -lnetwork", LIBS="$LIBS") -+ - AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, main, [LIBS="$LIBS -lnsl"])) - - dnl Checks for library functions. -diff -urN otp_src_R14B/erts/emulator/drivers/common/inet_drv.c otp_src_R14B-haiku/erts/emulator/drivers/common/inet_drv.c ---- otp_src_R14B/erts/emulator/drivers/common/inet_drv.c 2010-02-19 13:03:42.000000000 -0500 -+++ otp_src_R14B-haiku/erts/emulator/drivers/common/inet_drv.c 2010-10-08 15:13:14.000000000 -0400 -@@ -621,6 +621,7 @@ - #define INET_IFF_NPOINTTOPOINT 0x0800 - /* #define INET_IFF_NRUNNING 0x1000 */ - /* #define INET_IFF_NMULTICAST 0x2000 */ -+#define IFF_RUNNING 0x0001 - - /* Flags for "sctp_sndrcvinfo". Used in a bitmask -- must be powers of 2: - ** INET_REQ_SETOPTS:SCTP_OPT_DEFAULT_SEND_PARAM -diff -urN otp_src_R14B/erts/emulator/sys/unix/sys.c otp_src_R14B-haiku/erts/emulator/sys/unix/sys.c ---- otp_src_R14B/erts/emulator/sys/unix/sys.c 2010-02-19 13:03:16.000000000 -0500 -+++ otp_src_R14B-haiku/erts/emulator/sys/unix/sys.c 2010-10-08 15:13:14.000000000 -0400 -@@ -709,7 +709,7 @@ - if (nice_val > 39) { - nice_val = 39; - } -- erts_silence_warn_unused_result(nice(nice_val)); -+ erts_silence_warn_unused_result(nice_val); - } - - envsz = sizeof(env); -diff -urN otp_src_R14B/lib/appmon/SKIP otp_src_R14B-haiku/lib/appmon/SKIP ---- otp_src_R14B/lib/appmon/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/appmon/SKIP 2010-10-08 15:13:14.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/asn1/SKIP otp_src_R14B-haiku/lib/asn1/SKIP ---- otp_src_R14B/lib/asn1/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/asn1/SKIP 2010-10-08 15:13:14.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/common_test/SKIP otp_src_R14B-haiku/lib/common_test/SKIP ---- otp_src_R14B/lib/common_test/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/common_test/SKIP 2010-10-08 15:13:14.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/cosEvent/SKIP otp_src_R14B-haiku/lib/cosEvent/SKIP ---- otp_src_R14B/lib/cosEvent/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/cosEvent/SKIP 2010-10-08 15:13:14.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/cosEventDomain/SKIP otp_src_R14B-haiku/lib/cosEventDomain/SKIP ---- otp_src_R14B/lib/cosEventDomain/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/cosEventDomain/SKIP 2010-10-08 15:13:14.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/cosFileTransfer/SKIP otp_src_R14B-haiku/lib/cosFileTransfer/SKIP ---- otp_src_R14B/lib/cosFileTransfer/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/cosFileTransfer/SKIP 2010-10-08 15:13:14.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/cosNotification/SKIP otp_src_R14B-haiku/lib/cosNotification/SKIP ---- otp_src_R14B/lib/cosNotification/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/cosNotification/SKIP 2010-10-08 15:13:14.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/cosProperty/SKIP otp_src_R14B-haiku/lib/cosProperty/SKIP ---- otp_src_R14B/lib/cosProperty/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/cosProperty/SKIP 2010-10-08 15:13:14.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/cosTime/SKIP otp_src_R14B-haiku/lib/cosTime/SKIP ---- otp_src_R14B/lib/cosTime/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/cosTime/SKIP 2010-10-08 15:13:14.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/cosTransactions/SKIP otp_src_R14B-haiku/lib/cosTransactions/SKIP ---- otp_src_R14B/lib/cosTransactions/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/cosTransactions/SKIP 2010-10-08 15:13:14.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/crypto/SKIP otp_src_R14B-haiku/lib/crypto/SKIP ---- otp_src_R14B/lib/crypto/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/crypto/SKIP 2010-10-08 15:13:14.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/debugger/SKIP otp_src_R14B-haiku/lib/debugger/SKIP ---- otp_src_R14B/lib/debugger/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/debugger/SKIP 2010-10-08 15:13:14.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/dialyzer/SKIP otp_src_R14B-haiku/lib/dialyzer/SKIP ---- otp_src_R14B/lib/dialyzer/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/dialyzer/SKIP 2010-10-08 15:13:14.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/docbuilder/SKIP otp_src_R14B-haiku/lib/docbuilder/SKIP ---- otp_src_R14B/lib/docbuilder/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/docbuilder/SKIP 2010-10-08 15:13:14.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/edoc/SKIP otp_src_R14B-haiku/lib/edoc/SKIP ---- otp_src_R14B/lib/edoc/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/edoc/SKIP 2010-10-08 15:13:14.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/erl_docgen/SKIP otp_src_R14B-haiku/lib/erl_docgen/SKIP ---- otp_src_R14B/lib/erl_docgen/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/erl_docgen/SKIP 2010-10-08 15:13:14.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/erl_interface/SKIP otp_src_R14B-haiku/lib/erl_interface/SKIP ---- otp_src_R14B/lib/erl_interface/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/erl_interface/SKIP 2010-10-08 15:13:14.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/et/SKIP otp_src_R14B-haiku/lib/et/SKIP ---- otp_src_R14B/lib/et/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/et/SKIP 2010-10-08 15:13:14.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/eunit/SKIP otp_src_R14B-haiku/lib/eunit/SKIP ---- otp_src_R14B/lib/eunit/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/eunit/SKIP 2010-10-08 15:13:14.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/gs/SKIP otp_src_R14B-haiku/lib/gs/SKIP ---- otp_src_R14B/lib/gs/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/gs/SKIP 2010-10-08 15:13:14.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/hipe/SKIP otp_src_R14B-haiku/lib/hipe/SKIP ---- otp_src_R14B/lib/hipe/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/hipe/SKIP 2010-10-08 15:13:14.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/ic/SKIP otp_src_R14B-haiku/lib/ic/SKIP ---- otp_src_R14B/lib/ic/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/ic/SKIP 2010-10-08 15:13:14.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/inets/SKIP otp_src_R14B-haiku/lib/inets/SKIP ---- otp_src_R14B/lib/inets/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/inets/SKIP 2010-10-08 15:13:14.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/inviso/SKIP otp_src_R14B-haiku/lib/inviso/SKIP ---- otp_src_R14B/lib/inviso/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/inviso/SKIP 2010-10-08 15:13:14.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/jinterface/SKIP otp_src_R14B-haiku/lib/jinterface/SKIP ---- otp_src_R14B/lib/jinterface/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/jinterface/SKIP 2010-10-08 15:13:14.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/megaco/SKIP otp_src_R14B-haiku/lib/megaco/SKIP ---- otp_src_R14B/lib/megaco/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/megaco/SKIP 2010-10-08 15:13:16.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/mnesia/SKIP otp_src_R14B-haiku/lib/mnesia/SKIP ---- otp_src_R14B/lib/mnesia/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/mnesia/SKIP 2010-10-08 15:13:16.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/observer/SKIP otp_src_R14B-haiku/lib/observer/SKIP ---- otp_src_R14B/lib/observer/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/observer/SKIP 2010-10-08 15:13:16.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/odbc/SKIP otp_src_R14B-haiku/lib/odbc/SKIP ---- otp_src_R14B/lib/odbc/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/odbc/SKIP 2010-10-08 15:13:16.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/orber/SKIP otp_src_R14B-haiku/lib/orber/SKIP ---- otp_src_R14B/lib/orber/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/orber/SKIP 2010-10-08 15:13:16.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/os_mon/SKIP otp_src_R14B-haiku/lib/os_mon/SKIP ---- otp_src_R14B/lib/os_mon/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/os_mon/SKIP 2010-10-08 15:13:16.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/otp_mibs/SKIP otp_src_R14B-haiku/lib/otp_mibs/SKIP ---- otp_src_R14B/lib/otp_mibs/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/otp_mibs/SKIP 2010-10-08 15:13:16.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/parsetools/SKIP otp_src_R14B-haiku/lib/parsetools/SKIP ---- otp_src_R14B/lib/parsetools/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/parsetools/SKIP 2010-10-08 15:13:16.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/percept/SKIP otp_src_R14B-haiku/lib/percept/SKIP ---- otp_src_R14B/lib/percept/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/percept/SKIP 2010-10-08 15:13:16.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/pman/SKIP otp_src_R14B-haiku/lib/pman/SKIP ---- otp_src_R14B/lib/pman/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/pman/SKIP 2010-10-08 15:13:16.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/public_key/SKIP otp_src_R14B-haiku/lib/public_key/SKIP ---- otp_src_R14B/lib/public_key/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/public_key/SKIP 2010-10-08 15:13:16.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/reltool/SKIP otp_src_R14B-haiku/lib/reltool/SKIP ---- otp_src_R14B/lib/reltool/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/reltool/SKIP 2010-10-08 15:13:16.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/runtime_tools/SKIP otp_src_R14B-haiku/lib/runtime_tools/SKIP ---- otp_src_R14B/lib/runtime_tools/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/runtime_tools/SKIP 2010-10-08 15:13:16.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/sasl/SKIP otp_src_R14B-haiku/lib/sasl/SKIP ---- otp_src_R14B/lib/sasl/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/sasl/SKIP 2010-10-08 15:13:16.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/snmp/SKIP otp_src_R14B-haiku/lib/snmp/SKIP ---- otp_src_R14B/lib/snmp/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/snmp/SKIP 2010-10-08 15:13:16.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/ssh/SKIP otp_src_R14B-haiku/lib/ssh/SKIP ---- otp_src_R14B/lib/ssh/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/ssh/SKIP 2010-10-08 15:13:16.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/ssl/SKIP otp_src_R14B-haiku/lib/ssl/SKIP ---- otp_src_R14B/lib/ssl/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/ssl/SKIP 2010-10-08 15:13:16.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/syntax_tools/SKIP otp_src_R14B-haiku/lib/syntax_tools/SKIP ---- otp_src_R14B/lib/syntax_tools/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/syntax_tools/SKIP 2010-10-08 15:13:16.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/test_server/SKIP otp_src_R14B-haiku/lib/test_server/SKIP ---- otp_src_R14B/lib/test_server/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/test_server/SKIP 2010-10-08 15:13:16.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/toolbar/SKIP otp_src_R14B-haiku/lib/toolbar/SKIP ---- otp_src_R14B/lib/toolbar/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/toolbar/SKIP 2010-10-08 15:13:16.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/tools/SKIP otp_src_R14B-haiku/lib/tools/SKIP ---- otp_src_R14B/lib/tools/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/tools/SKIP 2010-10-08 15:13:16.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/tv/SKIP otp_src_R14B-haiku/lib/tv/SKIP ---- otp_src_R14B/lib/tv/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/tv/SKIP 2010-10-08 15:13:16.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/typer/SKIP otp_src_R14B-haiku/lib/typer/SKIP ---- otp_src_R14B/lib/typer/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/typer/SKIP 2010-10-08 15:13:16.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/webtool/SKIP otp_src_R14B-haiku/lib/webtool/SKIP ---- otp_src_R14B/lib/webtool/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/webtool/SKIP 2010-10-08 15:13:16.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation -diff -urN otp_src_R14B/lib/wx/SKIP otp_src_R14B-haiku/lib/wx/SKIP ---- otp_src_R14B/lib/wx/SKIP 1969-12-31 19:00:00.000000000 -0500 -+++ otp_src_R14B-haiku/lib/wx/SKIP 2010-10-08 15:13:16.000000000 -0400 -@@ -0,0 +1 @@ -+Minimal installation diff --git a/dev-lang/erlang/patches/erlang_R16B03_haiku.patch b/dev-lang/erlang/patches/erlang_R16B03_haiku.patch new file mode 100644 index 000000000..9e59e87ac --- /dev/null +++ b/dev-lang/erlang/patches/erlang_R16B03_haiku.patch @@ -0,0 +1,146 @@ +diff --git otp_src_R16B03/erts/configure otp_src_R16B03-haiku/erts/configure +--- otp_src_R16B03/erts/configure ++++ otp_src_R16B03-haiku/erts/configure +@@ -6648,7 +6648,7 @@ if test "${ac_cv_lib_m_sin+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-lm $LIBS" ++LIBS=" $LIBS" + cat >conftest.$ac_ext <<_ACEOF + /* confdefs.h. */ + _ACEOF +@@ -6711,7 +6711,7 @@ if test $ac_cv_lib_m_sin = yes; then + #define HAVE_LIBM 1 + _ACEOF + +- LIBS="-lm $LIBS" ++ LIBS=" $LIBS" + + fi + +@@ -17872,7 +17872,9 @@ echo "${ECHO_T}$gcc_dw_cmpxchg_asm" >&6 + if test "$gcc_dw_cmpxchg_asm" = "yes"; then + + cat >>confdefs.h <<\_ACEOF +-#define ETHR_GCC_HAVE_DW_CMPXCHG_ASM_SUPPORT 1 ++#undef ETHR_GCC_HAVE_DW_CMPXCHG_ASM_SUPPORT ++#undef ERTS_SMP ++#undef USE_THREADS + _ACEOF + + fi;; +diff --git otp_src_R16B03/erts/emulator/sys/unix/sys.c otp_src_R16B03-haiku/erts/emulator/sys/unix/sys.c +--- otp_src_R16B03/erts/emulator/sys/unix/sys.c ++++ otp_src_R16B03-haiku/erts/emulator/sys/unix/sys.c +@@ -767,7 +767,7 @@ prepare_crash_dump(int secs) + if (nice_val > 39) { + nice_val = 39; + } +- erts_silence_warn_unused_result(nice(nice_val)); ++ erts_silence_warn_unused_result(nice_val); + } + + UnUseTmpHeapNoproc(NUFBUF); +diff --git otp_src_R16B03/erts/epmd/src/Makefile.in otp_src_R16B03-haiku/erts/epmd/src/Makefile.in +--- otp_src_R16B03/erts/epmd/src/Makefile.in ++++ otp_src_R16B03-haiku/erts/epmd/src/Makefile.in +@@ -64,7 +64,7 @@ else + ifeq ($(findstring vxworks,$(TARGET)),vxworks) + ERTS_INTERNAL_LIBS=-L../../lib/internal/$(TARGET) -lerts_internal$(ERTS_LIB_TYPEMARKER) @ERTS_INTERNAL_X_LIBS@ + else +-ERTS_INTERNAL_LIBS=-L../../lib/internal/$(TARGET) -lerts_internal$(ERTS_LIB_TYPEMARKER) @ERTS_INTERNAL_X_LIBS@ -lm ++ERTS_INTERNAL_LIBS=-L../../lib/internal/$(TARGET) -lerts_internal$(ERTS_LIB_TYPEMARKER) @ERTS_INTERNAL_X_LIBS@ + endif + endif + +diff --git otp_src_R16B03/erts/etc/common/Makefile.in otp_src_R16B03-haiku/erts/etc/common/Makefile.in +--- otp_src_R16B03/erts/etc/common/Makefile.in ++++ otp_src_R16B03-haiku/erts/etc/common/Makefile.in +@@ -91,7 +91,7 @@ endif + ifeq ($(TARGET),win32) + ERTS_INTERNAL_LIBS=-L../../lib/internal/$(TARGET) -lerts_internal_r$(ERTS_LIB_TYPEMARKER) @ERTS_INTERNAL_X_LIBS@ + else +-ERTS_INTERNAL_LIBS=-L../../lib/internal/$(TARGET) -lerts_internal$(ERTS_LIB_TYPEMARKER) @ERTS_INTERNAL_X_LIBS@ -lm ++ERTS_INTERNAL_LIBS=-L../../lib/internal/$(TARGET) -lerts_internal$(ERTS_LIB_TYPEMARKER) @ERTS_INTERNAL_X_LIBS@ + endif + + ERTS_LIB = $(ERL_TOP)/erts/lib_src/obj/$(TARGET)/$(TYPE)/MADE +diff --git otp_src_R16B03/erts/etc/common/erlexec.c otp_src_R16B03-haiku/erts/etc/common/erlexec.c +--- otp_src_R16B03/erts/etc/common/erlexec.c ++++ otp_src_R16B03-haiku/erts/etc/common/erlexec.c +@@ -1989,7 +1989,7 @@ initial_argv_massage(int *argc, char ***argv) + + vix = 0; + +- av = build_args_from_env("ERL_" OTP_SYSTEM_VERSION "_FLAGS"); ++ av = build_args_from_env("ERL_HAIKU_FLAGS"); + if (av) + avv[vix++].argv = av; + +diff --git otp_src_R16B03/erts/include/internal/ethread.h otp_src_R16B03-haiku/erts/include/internal/ethread.h +--- otp_src_R16B03/erts/include/internal/ethread.h ++++ otp_src_R16B03-haiku/erts/include/internal/ethread.h +@@ -26,9 +26,7 @@ + #ifndef ETHREAD_H__ + #define ETHREAD_H__ + +-#ifndef ETHR_HAVE_ETHREAD_DEFINES +-# include "ethread_header_config.h" +-#endif ++#include "ethread_header_config.h" + + #include + #include "erl_errno.h" +diff --git otp_src_R16B03/erts/include/internal/i386/ethr_dw_atomic.h otp_src_R16B03-haiku/erts/include/internal/i386/ethr_dw_atomic.h +--- otp_src_R16B03/erts/include/internal/i386/ethr_dw_atomic.h ++++ otp_src_R16B03-haiku/erts/include/internal/i386/ethr_dw_atomic.h +@@ -25,6 +25,8 @@ + #ifndef ETHR_X86_DW_ATOMIC_H__ + #define ETHR_X86_DW_ATOMIC_H__ + ++#include "ethread_header_config.h" ++ + #ifdef ETHR_GCC_HAVE_DW_CMPXCHG_ASM_SUPPORT + + #define ETHR_HAVE_NATIVE_DW_ATOMIC +diff --git otp_src_R16B03/lib/asn1/c_src/Makefile otp_src_R16B03-haiku/lib/asn1/c_src/Makefile +--- otp_src_R16B03/lib/asn1/c_src/Makefile ++++ otp_src_R16B03-haiku/lib/asn1/c_src/Makefile +@@ -67,7 +67,7 @@ CLIB_FLAGS = + LN=cp + else + NIF_SHARED_OBJ_FILE = $(LIBDIR)/asn1_erl_nif.so +-CLIB_FLAGS = -lc ++CLIB_FLAGS = + LN= ln -s + endif + +diff --git otp_src_R16B03/lib/runtime_tools/c_src/Makefile.in otp_src_R16B03-haiku/lib/runtime_tools/c_src/Makefile.in +--- otp_src_R16B03/lib/runtime_tools/c_src/Makefile.in ++++ otp_src_R16B03-haiku/lib/runtime_tools/c_src/Makefile.in +@@ -149,10 +149,10 @@ $(OBJDIR)/%.o: %.c + $(V_CC) -c -o $@ $(ALL_CFLAGS) $< + + $(LIBDIR)/trace_ip_drv.so: $(TRACE_IP_DRV_OBJS) +- $(V_LD) $(LDFLAGS) -o $@ $^ -lc $(LIBS) ++ $(V_LD) $(LDFLAGS) -o $@ $^ $(LIBS) + + $(LIBDIR)/trace_file_drv.so: $(TRACE_FILE_DRV_OBJS) +- $(V_LD) $(LDFLAGS) -o $@ $^ -lc $(LIBS) ++ $(V_LD) $(LDFLAGS) -o $@ $^ $(LIBS) + + $(LIBDIR)/trace_ip_drv.dll: $(TRACE_IP_DRV_OBJS) + $(V_LD) $(LDFLAGS) -o $@ $^ $(LIBS) +diff --git otp_src_R16B03/lib/erl_interface/src/connect/ei_connect.c otp_src_R16B03-haiku/lib/erl_interface/src/connect/ei_connect.c +--- otp_src_R16B03/lib/erl_interface/src/connect/ei_connect.c ++++ otp_src_R16B03-haiku/lib/erl_interface/src/connect/ei_connect.c +@@ -1149,6 +1149,8 @@ static unsigned int gen_challenge(void) + + #else /* some unix */ + ++int gethostid() { return 108; } ++ + static unsigned int gen_challenge(void) + { + struct { diff --git a/dev-lang/fpc/fpc-2.6.0.recipe b/dev-lang/fpc/fpc-2.6.0.recipe index 137083d32..a5f26d5d6 100644 --- a/dev-lang/fpc/fpc-2.6.0.recipe +++ b/dev-lang/fpc/fpc-2.6.0.recipe @@ -1,4 +1,4 @@ -DESCRIPTION="Free Pascal Compiler - open source compiler for pascal and object pascal" +DESCRIPTION="An 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 diff --git a/dev-lang/fpc/fpc-2.6.2.recipe b/dev-lang/fpc/fpc-2.6.2.recipe new file mode 100644 index 000000000..7db347dca --- /dev/null +++ b/dev-lang/fpc/fpc-2.6.2.recipe @@ -0,0 +1,99 @@ +SUMMARY="An open source compiler for Pascal and Object Pascal" +DESCRIPTION=" +Free Pascal (aka FPK Pascal) is a 32 and 64 bit professional Pascal compiler.\ +It can target multiple processor architectures: Intel x86, AMD64/x86-64,\ +PowerPC, PowerPC64, SPARC, and ARM. Supported operating systems include Linux,\ +FreeBSD, Haiku, Mac OS X/iOS/Darwin, DOS, Win32, Win64, WinCE, OS/2, MorphOS,\ +Nintendo GBA, Nintendo DS, and Nintendo Wii. Additionally, JVM, MIPS (big and\ +little endian variants) and Motorola 68k architecture targets are available in\ +the development versions." +HOMEPAGE="http://www.freespascal.org" +SRC_URI="http://sourceforge.net/projects/freepascal/files/Source/2.6.2/fpc-2.6.2.source.tar.gz/download" +CHECKSUM_SHA256="71dd1be93593daf184556377dfde61c7882bc749ad8c0bc342210e542555f9d0" +LICENSE=" + GNU LGPL v3 + GNU GPL v3 +" +COPYRIGHT="1993-2013 by Florian Klaempfl" +REVISION="1" + +DISABLE_SOURCE_PACKAGE=yes + +ARCHITECTURES="x86 ?x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86 ?x86_64" + +PROVIDES=" + fpc$secondaryArchSuffix = $portVersion + cmd:fpc$secondaryArchSuffix = $portVersion + cmd:bin2obj$secondaryArchSuffix = $portVersion + cmd:fp$secondaryArchSuffix = $portVersion + cmd:fpcmake$secondaryArchSuffix = $portVersion + cmd:unitdiff$secondaryArchSuffix = $portVersion + cmd:chmcmd$secondaryArchSuffix = $portVersion + cmd:chmls$secondaryArchSuffix = $portVersion + cmd:data2inc$secondaryArchSuffix = $portVersion + cmd:delp$secondaryArchSuffix = $portVersion + cmd:fd2pascal$secondaryArchSuffix = $portVersion + cmd:fpclasschart$secondaryArchSuffix = $portVersion + cmd:fpcmkcfg$secondaryArchSuffix = $portVersion + cmd:fpcres$secondaryArchSuffix = $portVersion + cmd:fpcsubst$secondaryArchSuffix = $portVersion + cmd:fpdoc$secondaryArchSuffix = $portVersion + cmd:fppkg$secondaryArchSuffix = $portVersion + cmd:fprcp$secondaryArchSuffix = $portVersion + cmd:h2pas$secondaryArchSuffix = $portVersion + cmd:h2paspp$secondaryArchSuffix = $portVersion + cmd:instantfpc$secondaryArchSuffix = $portVersion + cmd:makeskel$secondaryArchSuffix = $portVersion + cmd:mkarmins$secondaryArchSuffix = $portVersion + cmd:mkx86ins$secondaryArchSuffix = $portVersion + cmd:plex$secondaryArchSuffix = $portVersion + cmd:postw32$secondaryArchSuffix = $portVersion + cmd:ppc386$secondaryArchSuffix = $portVersion + cmd:ppdep$secondaryArchSuffix = $portVersion + cmd:ppudump$secondaryArchSuffix = $portVersion + cmd:ppufiles$secondaryArchSuffix = $portVersion + cmd:ppumove$secondaryArchSuffix = $portVersion + cmd:ptop$secondaryArchSuffix = $portVersion + cmd:pyacc$secondaryArchSuffix = $portVersion + cmd:rmcvsdir$secondaryArchSuffix = $portVersion + cmd:rstconv$secondaryArchSuffix = $portVersion + cmd:unitdiff$secondaryArchSuffix = $portVersion +" +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion +" +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + fpc == 2.6.2_bin +" +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:tar + cmd:wget + cmd:fpc == 2.6.2_bin +" + +SOURCE_DIR="fpc-2.6.2" +#Create the fpc-2.6.2-1-x86.hpkg +#Download the FreePascalCompiler from www.freepascal.org +#Extract the tarball and run ./install.sh +#Create a .PackageInfo where the compiler is installed +#Run package create -0 fpc-2.6.2-1-x86.hpkg +#Put it on the common folders +MESSAGE="This recipe requires an existing fpc-2.6.2_bin-1-x86.hpkg package" + +BUILD() +{ + fpcmake -Tall -r + make build +} +INSTALL() +{ + make install INSTALL_PREFIX=$prefix +} diff --git a/dev-lang/fpc/fpc-2.6.2_bin.recipe b/dev-lang/fpc/fpc-2.6.2_bin.recipe new file mode 100644 index 000000000..27db1154b --- /dev/null +++ b/dev-lang/fpc/fpc-2.6.2_bin.recipe @@ -0,0 +1,43 @@ +SUMMARY="FreePascalCompiler binary" +DESCRIPTION="FreePascalCompiler binary" +HOMEPAGE="http://www.freepascal.org" +SRC_URI="ftp://freepascal.stack.nl/pub/fpc/dist/2.6.0/i386-haiku/fpc-2.6.0.i386-haiku.tar" +CHECKSUM_SHA256="abec33111d1d88dcce96cf26498b3687d53aa29494c6a8aada16b9b0625eef95" +LICENSE=" + GNU LGPL v3 + GNU GPL v3 +" +COPYRIGHT="1993-2013 by Florian Klaempfl" +REVISION="1" + +DISABLE_SOURCE_PACKAGE=yes + +BUILD_ACTIVATION_PHASE="INSTALL" + +ARCHITECTURES="x86" + +PROVIDES=" + fpc = $portVersion + cmd:fpc = $portVersion +" +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion +" +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion +" +BUILD_PREREQUIRES=" + binutils + cmd:tar +" +SOURCE_DIR="fpc-2.6.0.i386-haiku" + +BUILD() +{ + echo "Please put as prefix: $prefix" + sh ./install.sh +} +INSTALL() +{ + true +} diff --git a/dev-lang/lua/lua-5.1.4.recipe b/dev-lang/lua/lua-5.1.4.recipe index 853e92677..cdfe57f62 100644 --- a/dev-lang/lua/lua-5.1.4.recipe +++ b/dev-lang/lua/lua-5.1.4.recipe @@ -1,28 +1,29 @@ SUMMARY="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" +CHECKSUM_SHA256="b038e225eaf2a5b57c9bcc35cd13aa8c6c8288ef493d52970c9545074098af3a" +REVISION="6" ARCHITECTURES="x86 x86_gcc2" +SECONDARY_ARCHITECTURES="x86 x86_gcc2" PROVIDES=" - lua = $portVersion compat = 5.1 - cmd:lua = $portVersion compat = 5.1 - cmd:luac = $portVersion - lib:liblua = $portVersion compat = 5.2 - devel:liblua = $portVersion compat = 5.2 + lua${secondaryArchSuffix} = $portVersion compat >= 5.1 + cmd:lua${secondaryArchSuffix} = $portVersion compat >= 5.1 + cmd:lua5.1${secondaryArchSuffix} = $portVersion compat >= 5.1 + cmd:luac${secondaryArchSuffix} = $portVersion compat >= 5.1 + lib:liblua${secondaryArchSuffix} = $portVersion compat >= 5.1 " - REQUIRES=" - haiku >= $haikuVersion + haiku${secondaryArchSuffix} >= $haikuVersion " BUILD_PREREQUIRES=" - haiku_devel >= $haikuVersion + haiku${secondaryArchSuffix}_devel >= $haikuVersion cmd:make - cmd:gcc + cmd:gcc${secondaryArchSuffix} " PATCHES="lua-5.1.4.patchset" + BUILD() { make haiku @@ -30,14 +31,41 @@ BUILD() INSTALL() { - make install INSTALL_TOP="$prefix" INSTALL_MAN="$manDir" \ - INSTALL_INC="$includeDir" INSTALL_LMOD="$dataDir/lua/$V" + make install INSTALL_TOP="$prefix" INSTALL_MAN="$manDir/man1" \ + INSTALL_INC="$includeDir/lua5.1" INSTALL_LMOD="$dataDir/lua/5.1" \ + INSTALL_LIB="$libDir" INSTALL_BIN="$binDir" + mkdir -p $libDir/pkgconfig cp etc/lua.pc $libDir/pkgconfig/lua.pc + ln -s liblua.so $libDir/liblua.so.5.1 + ln -s liblua.a $libDir/liblua5.1.a + + mv $binDir/lua $binDir/lua5.1 + ln -s $binDir/lua5.1 $binDir/lua + prepareInstalledDevelLib liblua + prepareInstalledDevelLib liblua5.1 fixPkgconfig + + # The includes are in a subdirectory of includeDir, and fixPkgconfig breaks + # that. + sed -i -e "s,^includedir=.*,includedir=$prefix/$relativeIncludeDir/lua5.1," \ + $developLibDir/pkgconfig/lua.pc + + packageEntries devel $developDir } + +PROVIDES_devel=" + lua${secondaryArchSuffix}_devel = $portVersion compat >= 5.1 + devel:liblua$secondaryArchSuffix = $portVersion compat >= 5.1 + devel:liblua5.1$secondaryArchSuffix = $portVersion compat >= 5.1 + " + +REQUIRES_devel=" + lua$secondaryArchSuffix == $portVersion + " + LICENSE="MIT" COPYRIGHT="1994-2009, Lua.org, PUC-Rio" DESCRIPTION=" diff --git a/dev-lang/lua/lua-5.2.1.recipe b/dev-lang/lua/lua-5.2.1.recipe index 3f089d918..f4b4aaa27 100644 --- a/dev-lang/lua/lua-5.2.1.recipe +++ b/dev-lang/lua/lua-5.2.1.recipe @@ -1,46 +1,66 @@ SUMMARY="Lua is a powerful, fast, light-weight, embeddable scripting language." HOMEPAGE="http://www.lua.org" SRC_URI="http://www.lua.org/ftp/lua-$portVersion.tar.gz" -CHECKSUM_MD5="ae08f641b45d737d12d30291a5e5f6e3" -REVISION="3" +CHECKSUM_SHA256="64304da87976133196f9e4c15250b70f444467b6ed80d7cfd7b3b982b5177be5" +REVISION="7" ARCHITECTURES="x86 x86_gcc2" +SECONDARY_ARCHITECTURES="x86" PROVIDES=" - lua = $portVersion compat = 5.2 - cmd:lua = $portVersion compat = 5.2 - cmd:luac = $portVersion - lib:liblua = $portVersion compat = 5.2 - devel:liblua = $portVersion compat = 5.2 + lua$secondaryArchSuffix = $portVersion compat >= 5.2 + cmd:lua$secondaryArchSuffix = $portVersion compat >= 5.2 + cmd:lua5.2$secondaryArchSuffix = $portVersion compat >= 5.2 + cmd:luac$secondaryArchSuffix = $portVersion compat >= 5.2 + lib:liblua$secondaryArchSuffix = $portVersion compat >= 5.2 " REQUIRES=" - haiku >= $haikuVersion + haiku$secondaryArchSuffix >= $haikuVersion " BUILD_PREREQUIRES=" - haiku_devel >= $haikuVersion + haiku${secondaryArchSuffix}_devel >= $haikuVersion cmd:make - cmd:gcc + cmd:gcc$secondaryArchSuffix + " + +PROVIDES_devel=" + lua${secondaryArchSuffix}_devel = $portVersion compat >= 5.2 + devel:liblua$secondaryArchSuffix = $portVersion compat >= 5.2 + devel:liblua52$secondaryArchSuffix = $portVersion compat >= 5.2 + " + +REQUIRES_devel=" + lua$secondaryArchSuffix == $portVersion " PATCHES="lua-$portVersion.patchset" + BUILD() { - make haiku + make haiku MYCFLAGS="-DLUA_ROOT='\"$prefix/\"' -DLUA_LDIR='\"$dataDir/lua/5.2/\"'" } INSTALL() { - make install INSTALL_TOP="$prefix" INSTALL_MAN="$manDir" \ - INSTALL_INC="$includeDir" INSTALL_LMOD="$dataDir/lua/$V" + make install INSTALL_TOP="$prefix" INSTALL_MAN="$manDir/man1" \ + INSTALL_INC="$includeDir/lua52" INSTALL_LMOD="$dataDir/lua/5.2" \ + INSTALL_LIB="$libDir" INSTALL_BIN="$binDir" + + ln -s liblua.so $libDir/liblua.so.5.2 + ln -s liblua.a $libDir/liblua52.a + + mv $binDir/lua $binDir/lua5.2 + ln -s $binDir/lua5.2 $binDir/lua prepareInstalledDevelLib liblua + prepareInstalledDevelLib liblua52 + packageEntries devel $developDir } LICENSE="MIT" COPYRIGHT="1994-2012, Lua.org, PUC-Rio" DESCRIPTION=" - Lua combines simple procedural syntax with powerful data description - constructs based on associative arrays and extensible semantics. Lua is - dynamically typed, runs by interpreting bytecode for a register-based - virtual machine, and has automatic memory management with incremental - garbage collection, making it ideal for configuration, scripting, and rapid - prototyping. - " +Lua combines simple procedural syntax with powerful data description \ +constructs based on associative arrays and extensible semantics. Lua is \ +dynamically typed, runs by interpreting bytecode for a register-based virtual \ +machine, and has automatic memory management with incremental garbage \ +collection, making it ideal for configuration, scripting, and rapid prototyping. +" diff --git a/dev-lang/lua/lua-5.2.3.recipe b/dev-lang/lua/lua-5.2.3.recipe new file mode 100644 index 000000000..6818abddf --- /dev/null +++ b/dev-lang/lua/lua-5.2.3.recipe @@ -0,0 +1,66 @@ +SUMMARY="Lua is a powerful, fast, light-weight, embeddable scripting language." +HOMEPAGE="http://www.lua.org" +SRC_URI="http://www.lua.org/ftp/lua-$portVersion.tar.gz" +CHECKSUM_SHA256="13c2fb97961381f7d06d5b5cea55b743c163800896fd5c5e2356201d3619002d" +REVISION="1" +ARCHITECTURES="x86 x86_gcc2 x86_64" +SECONDARY_ARCHITECTURES="x86" +PROVIDES=" + lua$secondaryArchSuffix = $portVersion compat >= 5.2 + cmd:lua$secondaryArchSuffix = $portVersion compat >= 5.2 + cmd:lua5.2$secondaryArchSuffix = $portVersion compat >= 5.2 + cmd:luac$secondaryArchSuffix = $portVersion compat >= 5.2 + lib:liblua$secondaryArchSuffix = $portVersion compat >= 5.2 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:make + cmd:gcc$secondaryArchSuffix + " + +PROVIDES_devel=" + lua${secondaryArchSuffix}_devel = $portVersion compat >= 5.2 + devel:liblua$secondaryArchSuffix = $portVersion compat >= 5.2 + devel:liblua52$secondaryArchSuffix = $portVersion compat >= 5.2 + " + +REQUIRES_devel=" + lua$secondaryArchSuffix == $portVersion + " + +PATCHES="lua-$portVersion.patchset" + +BUILD() +{ + make haiku MYCFLAGS="-DLUA_ROOT='\"$prefix/\"' -DLUA_LDIR='\"$dataDir/lua/5.2/\"'" +} + +INSTALL() +{ + make install INSTALL_TOP="$prefix" INSTALL_MAN="$manDir/man1" \ + INSTALL_INC="$includeDir/lua52" INSTALL_LMOD="$dataDir/lua/5.2" \ + INSTALL_LIB="$libDir" INSTALL_BIN="$binDir" + + ln -s liblua.so $libDir/liblua.so.5.2 + ln -s liblua.a $libDir/liblua52.a + + mv $binDir/lua $binDir/lua5.2 + ln -s $binDir/lua5.2 $binDir/lua + + prepareInstalledDevelLib liblua + prepareInstalledDevelLib liblua52 + packageEntries devel $developDir +} +LICENSE="MIT" +COPYRIGHT="1994-2012, Lua.org, PUC-Rio" +DESCRIPTION=" +Lua combines simple procedural syntax with powerful data description \ +constructs based on associative arrays and extensible semantics. Lua is \ +dynamically typed, runs by interpreting bytecode for a register-based virtual \ +machine, and has automatic memory management with incremental garbage \ +collection, making it ideal for configuration, scripting, and rapid prototyping. +" diff --git a/dev-lang/lua/patches/lua-5.1.4.patchset b/dev-lang/lua/patches/lua-5.1.4.patchset index c5bf0f4f4..74dc0d828 100644 --- a/dev-lang/lua/patches/lua-5.1.4.patchset +++ b/dev-lang/lua/patches/lua-5.1.4.patchset @@ -1,27 +1,20 @@ -From 5944289e129f60d26f71646bc4e3404f93de138f Mon Sep 17 00:00:00 2001 -From: Adrien Destugues -Date: Sat, 5 Oct 2013 22:01:42 +0200 -Subject: Import existing haikuport patch. +From 0ba6279d1bee18e580206f0f86e3410f65db73c5 Mon Sep 17 00:00:00 2001 +From: Alexander von Gluck IV +Date: Wed, 15 Jan 2014 15:33:52 -0600 +Subject: [PATCH] lua: fix 5.1 runtime issues +* Thanks to the work of Chris Roberts and + Adrien Destugues +--- + Makefile | 6 +++--- + src/Makefile | 13 ++++++++++--- + src/luaconf.h | 11 +++++++++++ + 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile -index 6e78f66..8b8fbfc 100644 +index 6e78f66..b2e3868 100644 --- a/Makefile +++ b/Makefile -@@ -13,11 +13,11 @@ INSTALL_TOP= /usr/local - 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 @@ RANLIB= ranlib # == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE ========= @@ -37,8 +30,17 @@ index 6e78f66..8b8fbfc 100644 TO_MAN= lua.1 luac.1 # Lua version and release. +@@ -53,7 +53,7 @@ R= 5.1.4 + all: $(PLAT) + + $(PLATS) clean: +- cd src && $(MAKE) $@ ++ cd src && $(MAKE) V=$(V) $@ + + test: dummy + src/lua test/hello.lua diff --git a/src/Makefile b/src/Makefile -index e4a3cd6..86bd1ce 100644 +index e4a3cd6..9df0326 100644 --- a/src/Makefile +++ b/src/Makefile @@ -20,9 +20,10 @@ MYLIBS= @@ -49,7 +51,7 @@ index e4a3cd6..86bd1ce 100644 +PLATS= aix ansi bsd freebsd generic haiku linux macosx mingw posix solaris LUA_A= liblua.a -+LUA_SO= liblua.so ++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 @@ -62,175 +64,31 @@ index e4a3cd6..86bd1ce 100644 ALL_A= $(LUA_A) default: $(PLAT) -@@ -57,6 +58,9 @@ $(LUA_T): $(LUA_O) $(LUA_A) +@@ -57,8 +58,11 @@ $(LUA_T): $(LUA_O) $(LUA_A) $(LUAC_T): $(LUAC_O) $(LUA_A) $(CC) -o $@ $(MYLDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) +$(LUA_SO): $(CORE_O) $(LIB_O) -+ $(CC) -o $@ -shared -fPIC -Wl,-soname=liblua.so.$V $(MYLDFLAGS) $? $(LIBS) ++ $(CC) -o $@ -shared -fPIC -Wl,-soname=liblua.so.$(V) $(LDFLAGS) $? $(LIBS) + clean: - $(RM) $(ALL_T) $(ALL_O) +- $(RM) $(ALL_T) $(ALL_O) ++ $(RM) $(ALL_T) $(ALL_O) $(ALL_SO) + depend: + @$(CC) $(CFLAGS) -MM l*.c print.c @@ -95,6 +99,9 @@ freebsd: generic: $(MAKE) all MYCFLAGS= +haiku: -+ $(MAKE) all MYCFLAGS=-DLUA_USE_HAIKU LIBS= ++ $(MAKE) all SYSCFLAGS="-DLUA_USE_HAIKU" LIBS= + linux: $(MAKE) all MYCFLAGS=-DLUA_USE_LINUX MYLIBS="-Wl,-E -ldl -lreadline -lhistory -lncurses" -diff --git a/src/lcode.c b/src/lcode.c -index cff626b..679cb9c 100644 ---- a/src/lcode.c -+++ b/src/lcode.c -@@ -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 @@ void luaK_goiftrue (FuncState *fs, expdesc *e) { - 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 @@ static void luaK_goiffalse (FuncState *fs, expdesc *e) { - 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 --git a/src/ldblib.c b/src/ldblib.c -index 67de122..2027eda 100644 ---- a/src/ldblib.c -+++ b/src/ldblib.c -@@ -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_setmetatable (lua_State *L) { - - - static int db_getfenv (lua_State *L) { -+ luaL_checkany(L, 1); - lua_getfenv(L, 1); - return 1; - } -diff --git a/src/liolib.c b/src/liolib.c -index e79ed1c..649f9a5 100644 ---- a/src/liolib.c -+++ b/src/liolib.c -@@ -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 @@ static int read_number (lua_State *L, FILE *f) { - lua_pushnumber(L, d); - return 1; - } -- else return 0; /* read fails */ -+ else { -+ lua_pushnil(L); /* "result" to be removed */ -+ return 0; /* read fails */ -+ } - } - - -diff --git a/src/llex.c b/src/llex.c -index 6dc3193..88c6790 100644 ---- a/src/llex.c -+++ b/src/llex.c -@@ -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 @@ TString *luaX_newstring (LexState *ls, const char *str, size_t l) { - 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 --git a/src/loadlib.c b/src/loadlib.c -index 0d401eb..6158c53 100644 ---- a/src/loadlib.c -+++ b/src/loadlib.c -@@ -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 @@ LUALIB_API int luaopen_package (lua_State *L) { - 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 --git a/src/lstrlib.c b/src/lstrlib.c -index 1b4763d..7a03489 100644 ---- a/src/lstrlib.c -+++ b/src/lstrlib.c -@@ -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 void addintlen (char *form) { - - - 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 @@ static int str_format (lua_State *L) { - 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 --git a/src/luaconf.h b/src/luaconf.h -index e2cb261..9f28f41 100644 +index e2cb261..96c4d45 100644 --- a/src/luaconf.h +++ b/src/luaconf.h @@ -33,6 +33,13 @@ @@ -247,49 +105,19 @@ index e2cb261..9f28f41 100644 #if defined(LUA_USE_LINUX) #define LUA_USE_POSIX #define LUA_USE_DLOPEN /* needs an extra library: -ldl */ -@@ -94,7 +101,11 @@ +@@ -94,8 +101,12 @@ ".\\?.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 ++#ifndef LUA_ROOT + #define LUA_ROOT "/usr/local/" ++#endif ++#ifndef LUA_LDIR #define LUA_LDIR LUA_ROOT "share/lua/5.1/" ++#endif #define LUA_CDIR LUA_ROOT "lib/lua/5.1/" #define LUA_PATH_DEFAULT \ -diff --git a/src/lvm.c b/src/lvm.c -index ee3256a..8aeafda 100644 ---- a/src/lvm.c -+++ b/src/lvm.c -@@ -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_gettable (lua_State *L, const TValue *t, TValue *key, StkId val) { - - 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 @@ void luaV_settable (lua_State *L, const TValue *t, TValue *key, StkId val) { - 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"); - } + "./?.lua;" LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" \ -- 1.8.3.4 diff --git a/dev-lang/lua/patches/lua-5.2.1.patchset b/dev-lang/lua/patches/lua-5.2.1.patchset index 80b575808..548426ab7 100644 --- a/dev-lang/lua/patches/lua-5.2.1.patchset +++ b/dev-lang/lua/patches/lua-5.2.1.patchset @@ -1,4 +1,4 @@ -From 4130bdecfcb78e60b64a8ade8689aa02158eda46 Mon Sep 17 00:00:00 2001 +From a2fa4f5ec85201d7aa2721594a66d9171c0e6dd1 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Sun, 6 Oct 2013 10:13:45 +0200 Subject: Import existing patch. @@ -24,7 +24,7 @@ index bd9515f..22d3a62 100644 # Lua version and release. diff --git a/src/Makefile b/src/Makefile -index 8c9ee67..2f7065c 100644 +index 8c9ee67..507632b 100644 --- a/src/Makefile +++ b/src/Makefile @@ -26,9 +26,10 @@ MYOBJS= @@ -63,13 +63,13 @@ index 8c9ee67..2f7065c 100644 generic: $(ALL) +haiku: -+ $(MAKE) all MUCFLAGS=-DLUA_USE_HAIKU LIBS= ++ $(MAKE) all SYSCFLAGS="-DLUA_USE_HAIKU" LIBS= + linux: $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline -lncurses" diff --git a/src/luaconf.h b/src/luaconf.h -index e4335df..cef74a7 100644 +index e4335df..107b864 100644 --- a/src/luaconf.h +++ b/src/luaconf.h @@ -40,6 +40,13 @@ @@ -86,23 +86,11 @@ index e4335df..cef74a7 100644 #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 \ -- 1.8.3.4 -From 5fbc99c965898e393a34cff6bfb14b29dc77426b Mon Sep 17 00:00:00 2001 +From ccb35be40296d43903e01fdd01d2e53cd017b615 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Sun, 6 Oct 2013 10:25:23 +0200 Subject: Set the library soname @@ -110,7 +98,7 @@ Subject: Set the library soname * prepareInstalledDevelLib will fail if there is no soname. diff --git a/src/Makefile b/src/Makefile -index 2f7065c..b279d4b 100644 +index 507632b..dd3c36b 100644 --- a/src/Makefile +++ b/src/Makefile @@ -67,7 +67,7 @@ $(LUAC_T): $(LUAC_O) $(LUA_A) @@ -118,10 +106,52 @@ index 2f7065c..b279d4b 100644 $(LUA_SO): $(CORE_O) $(LIB_O) - $(CC) -o $@ -shared -fPIC $(LDFLAGS) $? $(LIBS) -+ $(CC) -o $@ -shared -fPIC -Wl,-soname=liblua.so.$V $(LDFLAGS) $? $(LIBS) ++ $(CC) -o $@ -shared -fPIC -Wl,-soname=liblua.so.$(V) $(LDFLAGS) $? $(LIBS) clean: $(RM) $(ALL_T) $(ALL_O) -- 1.8.3.4 + +From a367a186c5058f68c758f0ff6fc45f3033a5ae97 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Tue, 22 Oct 2013 02:42:32 -0600 +Subject: =?UTF-8?q?Allow=20passing=20LUA=5FROOT=20and=20LUA=5FLDIR=20on=20?= + =?UTF-8?q?the=20command=20line=0APass=20V=20(version)=20onto=20src/Makefi?= + =?UTF-8?q?le?= + + +diff --git a/Makefile b/Makefile +index 22d3a62..729ede5 100644 +--- a/Makefile ++++ b/Makefile +@@ -52,7 +52,7 @@ R= $V.1 + all: $(PLAT) + + $(PLATS) clean: +- cd src && $(MAKE) $@ ++ cd src && $(MAKE) V=$(V) $@ + + test: dummy + src/lua -v +diff --git a/src/luaconf.h b/src/luaconf.h +index 107b864..2418ef6 100644 +--- a/src/luaconf.h ++++ b/src/luaconf.h +@@ -107,8 +107,12 @@ + #else /* }{ */ + + #define LUA_VDIR LUA_VERSION_MAJOR "." LUA_VERSION_MINOR "/" ++#ifndef LUA_ROOT + #define LUA_ROOT "/usr/local/" ++#endif ++#ifndef LUA_LDIR + #define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR ++#endif + #define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR + #define LUA_PATH_DEFAULT \ + LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" \ +-- +1.8.3.4 + diff --git a/dev-lang/lua/patches/lua-5.2.1.patch b/dev-lang/lua/patches/lua-5.2.3.patchset similarity index 60% rename from dev-lang/lua/patches/lua-5.2.1.patch rename to dev-lang/lua/patches/lua-5.2.3.patchset index ea654fad3..44c86858b 100644 --- a/dev-lang/lua/patches/lua-5.2.1.patch +++ b/dev-lang/lua/patches/lua-5.2.3.patchset @@ -1,7 +1,14 @@ -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 @@ +From 95be65d7676d75b778defff51dd110e31644d499 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Mon, 5 May 2014 15:59:15 +0000 +Subject: import patch from 5.2.1 + + +diff --git a/Makefile b/Makefile +index d2c7db4..baa4521 100644 +--- a/Makefile ++++ b/Makefile +@@ -36,12 +36,12 @@ RM= rm -f # == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE ======= # Convenience platforms targets. @@ -16,39 +23,20 @@ diff -ru lua-5.2.1/Makefile lua-5.2.1.patched/Makefile 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 @@ +@@ -52,7 +52,7 @@ R= $V.3 + all: $(PLAT) + $(PLATS) clean: +- cd src && $(MAKE) $@ ++ cd src && $(MAKE) V=$(V) $@ - -+#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 @@ + test: dummy + src/lua -v +diff --git a/src/Makefile b/src/Makefile +index 7b4b2b7..8edc5d6 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -26,9 +26,10 @@ MYOBJS= # == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE ======= @@ -60,7 +48,7 @@ diff -ru lua-5.2.1/src/Makefile lua-5.2.1.patched/src/Makefile 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 @@ +@@ -43,7 +44,7 @@ LUAC_T= luac LUAC_O= luac.o ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) @@ -69,23 +57,57 @@ diff -ru lua-5.2.1/src/Makefile lua-5.2.1.patched/src/Makefile ALL_A= $(LUA_A) # Targets start here. -@@ -65,6 +66,9 @@ +@@ -65,6 +66,9 @@ $(LUA_T): $(LUA_O) $(LUA_A) $(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) ++ $(CC) -o $@ -shared -fPIC -Wl,-soname=liblua.so.$(V) $(LDFLAGS) $? $(LIBS) + clean: $(RM) $(ALL_T) $(ALL_O) -@@ -102,6 +106,9 @@ +@@ -102,6 +106,9 @@ freebsd: generic: $(ALL) +haiku: -+ $(MAKE) all MUCFLAGS=-DLUA_USE_HAIKU LIBS= ++ $(MAKE) all SYSCFLAGS="-DLUA_USE_HAIKU" LIBS= + linux: - $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline -lncurses" + $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline" +diff --git a/src/luaconf.h b/src/luaconf.h +index 18be9a9..1cce188 100644 +--- a/src/luaconf.h ++++ b/src/luaconf.h +@@ -38,7 +38,12 @@ + #define LUA_USE_AFORMAT /* assume 'printf' handles 'aA' specifiers */ + #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 +@@ -100,8 +105,12 @@ + #else /* }{ */ + + #define LUA_VDIR LUA_VERSION_MAJOR "." LUA_VERSION_MINOR "/" ++#ifndef LUA_ROOT + #define LUA_ROOT "/usr/local/" ++#endif ++#ifndef LUA_LDIR + #define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR ++#endif + #define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR + #define LUA_PATH_DEFAULT \ + LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" \ +-- +1.8.3.4 + diff --git a/dev-lang/luajit/luajit-2.0.2.recipe b/dev-lang/luajit/luajit-2.0.2.recipe new file mode 100644 index 000000000..febaaa841 --- /dev/null +++ b/dev-lang/luajit/luajit-2.0.2.recipe @@ -0,0 +1,66 @@ +SUMMARY="LuaJIT is a Just-In-Time Compiler (JIT) for the Lua programming language." +HOMEPAGE="http://luajit.org/luajit.html" +SRC_URI="http://luajit.org/download/LuaJIT-$portVersion.tar.gz" +CHECKSUM_SHA256="c05202974a5890e777b181908ac237625b499aece026654d7cc33607e3f46c38" +REVISION="2" +ARCHITECTURES="x86 x86_gcc2" +SECONDARY_ARCHITECTURES="x86" +PROVIDES=" + luajit$secondaryArchSuffix = $portVersion compat >= 5.1 + lib:libluajit_5.1$secondaryArchSuffix = $portVersion compat >= 2 + cmd:luajit_$portVersion$secondaryArchSuffix + cmd:luajit$secondaryArchSuffix + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:make + cmd:gcc$secondaryArchSuffix + " + +PROVIDES_devel=" + luajit${secondaryArchSuffix}_devel = $portVersion compat >= 5.1 + devel:libluajit_5.1$secondaryArchSuffix = $portVersion compat >= 2 + " + +REQUIRES_devel=" + luajit$secondaryArchSuffix == $portVersion base + " + +PATCHES="luajit-$portVersion.patchset" + +SOURCE_DIR="LuaJIT-$portVersion" +BUILD() +{ + # Use amalg target as recommended on luajit homepage to get better performance + make $jobArgs amalg PREFIX=$prefix +} + +INSTALL() +{ + make install PREFIX=$prefix INSTALL_LIB="$libDir" INSTALL_BIN="$binDir" \ + INSTALL_INC="$includeDir" INSTALL_SHARE="$dataDir" \ + INSTALL_MAN="$manDir/man1" INSTALL_LMOD="$dataDir/lua/5.1" + + ln -s $libDir/libluajit-5.1.so.2.0.2 $libDir/libluajit-5.1.so.2 + + # the pkg-config is for 5.1 comapt + mkdir -p $libDir/pkgconfig + cp etc/luajit.pc $libDir/pkgconfig/luajit.pc + + prepareInstalledDevelLib libluajit-5.1 + fixPkgconfig + + packageEntries devel $developDir +} +LICENSE="MIT" +COPYRIGHT="2005-2013, Mike Pall" +DESCRIPTION=" +LuaJIT is a Just-In-Time Compiler (JIT) for the Lua programming language. + +Lua is a powerful, dynamic and light-weight programming language. It may be \ +embedded or used as a general-purpose, stand-alone language. +" diff --git a/dev-lang/luajit/patches/luajit-2.0.2.patchset b/dev-lang/luajit/patches/luajit-2.0.2.patchset new file mode 100644 index 000000000..322537f46 --- /dev/null +++ b/dev-lang/luajit/patches/luajit-2.0.2.patchset @@ -0,0 +1,31 @@ +From 1e25583ec6480560263118a34c5b5ad86f3e9aca Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 12 Jan 2014 22:49:01 +0100 +Subject: Remove hardcoded -lm. + + +diff --git a/src/Makefile b/src/Makefile +index 999e280..27fc411 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -198,7 +198,7 @@ TARGET_DYNXLDOPTS= + TARGET_LFSFLAGS= -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE + TARGET_XCFLAGS= $(TARGET_LFSFLAGS) -U_FORTIFY_SOURCE + TARGET_XLDFLAGS= +-TARGET_XLIBS= -lm ++#TARGET_XLIBS= -lm + TARGET_TCFLAGS= $(CCOPTIONS) $(TARGET_XCFLAGS) $(TARGET_FLAGS) $(TARGET_CFLAGS) + TARGET_ACFLAGS= $(CCOPTIONS) $(TARGET_XCFLAGS) $(TARGET_FLAGS) $(TARGET_CFLAGS) + TARGET_ALDFLAGS= $(LDOPTIONS) $(TARGET_XLDFLAGS) $(TARGET_FLAGS) $(TARGET_LDFLAGS) +@@ -351,7 +351,7 @@ endif + ############################################################################## + + MINILUA_O= host/minilua.o +-MINILUA_LIBS= -lm ++#MINILUA_LIBS= -lm + MINILUA_T= host/minilua + MINILUA_X= $(MINILUA_T) + +-- +1.8.3.4 + diff --git a/dev-lang/nasm/nasm-2.08.01.recipe b/dev-lang/nasm/nasm-2.08.01.recipe index 7c47d5cab..c39073082 100644 --- a/dev-lang/nasm/nasm-2.08.01.recipe +++ b/dev-lang/nasm/nasm-2.08.01.recipe @@ -1,8 +1,10 @@ SUMMARY="The Nasm assembler" -DESCRIPTION="The Nasm assembler" +DESCRIPTION=" +The Nasm assembler +" HOMEPAGE="http://www.nasm.us/" SRC_URI="http://www.nasm.us/pub/nasm/releasebuilds/2.08.01/nasm-2.08.01.tar.bz2" -CHECKSUM_MD5="1e3ebc1289c2be5963571c0937b7a211" +CHECKSUM_SHA256="049b9a1381c0c775a07490f272a57c1802627cbfd6b2d675770b72078bdd8bc6" LICENSE="BSD (2-clause)" COPYRIGHT="1996 Simon Tatham and Julian Hall." REVISION="1" @@ -27,7 +29,6 @@ BUILD_PREREQUIRES=" cmd:perl " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/dev-lang/nasm/nasm-2.11.02.recipe b/dev-lang/nasm/nasm-2.11.02.recipe new file mode 100644 index 000000000..bd51cb63c --- /dev/null +++ b/dev-lang/nasm/nasm-2.11.02.recipe @@ -0,0 +1,44 @@ +SUMMARY="The Nasm assembler" +DESCRIPTION=" +The Nasm assembler +" +HOMEPAGE="http://www.nasm.us/" +SRC_URI="http://www.nasm.us/pub/nasm/releasebuilds/2.11.02/nasm-2.11.02.tar.bz2" +CHECKSUM_SHA256="ece26b5ef565f94d19a72756d05965e424d2e5ca55f88b949852da70dd62f0e0" +LICENSE="BSD (2-clause)" +COPYRIGHT="1996 Simon Tatham and Julian Hall." +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" + +PROVIDES=" + nasm = $portVersion compat >= 1 + cmd:nasm = $portVersion compat >= 1 + cmd:ndisasm = $portVersion compat >= 1 + " + +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_REQUIRES="" + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:gcc + cmd:ld + cmd:awk + cmd:make + cmd:perl + cmd:sed + " + + +BUILD() +{ + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install +} diff --git a/dev-lang/ocaml/ocaml-4.00.0.recipe b/dev-lang/ocaml/ocaml-4.00.0.recipe index 98e48d772..97fad1ac3 100644 --- a/dev-lang/ocaml/ocaml-4.00.0.recipe +++ b/dev-lang/ocaml/ocaml-4.00.0.recipe @@ -1,25 +1,90 @@ -DESCRIPTION="Implementation of the Caml language" +SUMMARY="Implementation of the Caml language" +DESCRIPTION=" +Caml is a general-purpose programming language, designed with program safety \ +and reliability in mind. It is very expressive, yet easy to learn and use. \ +Caml supports functional, imperative, and object-oriented programming styles. \ +It has been developed and distributed by INRIA, a French research institute in \ +computer science and applied mathematics, since 1985. +The OCaml system is the main implementation of the Caml language. It features \ +a powerful module system and a full-fledged object-oriented layer. It comes \ +with a native-code compiler that supports numerous architectures, for high \ +performance; a bytecode compiler, for increased portability; and an \ +interactive loop, for experimentation and rapid development. +" +LICENSE="GNU LGPL v2" +COPYRIGHT="1996-2012 Institut National de Recherche en Informatique et en Automatique (INRIA)." 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" +CHECKSUM_SHA256="9ea5544538144811b5fd9c7172d63abc0d1c6ba6b64d2c60474807fc57ad4c6e" REVISION="1" -STATUS_HAIKU="untested" -DEPEND="" +ARCHITECTURES="?x86 ?x86_gcc2" + +SOURCE_DIR="ocaml-4.00.0" + +PROVIDES=" + ocaml = $portVersion compat >= 4 + cmd:camlp4 = $portVersion compat >= 4 + cmd:camlp4boot = $portVersion compat >= 4 + cmd:camlp4o = $portVersion compat >= 4 + cmd:camlp4o.opt = $portVersion compat >= 4 + cmd:camlp4of = $portVersion compat >= 4 + cmd:camlp4of.opt = $portVersion compat >= 4 + cmd:camlp4oof = $portVersion compat >= 4 + cmd:camlp4oof.opt = $portVersion compat >= 4 + cmd:camlp4orf = $portVersion compat >= 4 + cmd:camlp4orf.opt = $portVersion compat >= 4 + cmd:camlp4prof = $portVersion compat >= 4 + cmd:camlp4r = $portVersion compat >= 4 + cmd:camlp4r.opt = $portVersion compat >= 4 + cmd:camlp4rf = $portVersion compat >= 4 + cmd:camlp4rf.opt = $portVersion compat >= 4 + cmd:mkcamlp4 = $portVersion compat >= 4 + cmd:ocaml = $portVersion compat >= 4 + cmd:ocamlbuild = $portVersion compat >= 4 + cmd:ocamlbuild.byte = $portVersion compat >= 4 + cmd:ocamlbuild.native = $portVersion compat >= 4 + cmd:ocamlc = $portVersion compat >= 4 + cmd:ocamlc.opt = $portVersion compat >= 4 + cmd:ocamlcp = $portVersion compat >= 4 + cmd:ocamldebug = $portVersion compat >= 4 + cmd:ocamldep = $portVersion compat >= 4 + cmd:ocamldep.opt = $portVersion compat >= 4 + cmd:ocamldoc = $portVersion compat >= 4 + cmd:ocamldoc.opt = $portVersion compat >= 4 + cmd:ocamllex = $portVersion compat >= 4 + cmd:ocamllex.opt = $portVersion compat >= 4 + cmd:ocamlmklib = $portVersion compat >= 4 + cmd:ocamlmktop = $portVersion compat >= 4 + cmd:ocamlobjinfo = $portVersion compat >= 4 + cmd:ocamlopt = $portVersion compat >= 4 + cmd:ocamlopt.opt = $portVersion compat >= 4 + cmd:ocamloptp = $portVersion compat >= 4 + cmd:ocamlprof = $portVersion compat >= 4 + cmd:ocamlrun = $portVersion compat >= 4 + cmd:ocamlyacc = $portVersion compat >= 4 + " + +REQUIRES=" + haiku >= $haikuVersion + cmd:gcc + " + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:make + cmd:gcc + " + +PATCHES="ocaml-4.00.0.patchset" + BUILD() { - cd ocaml-4.00.0 - COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` - ./configure --prefix `finddir B_COMMON_DIRECTORY` \ - --mandir $COMMON_DOCS/man + ./configure --prefix $prefix \ + --mandir $manDir 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 + make install } -LICENSE="GNU LGPL v2" -COPYRIGHT="1996-2012 Institut National de Recherche en Informatique et en Automatique (INRIA)." diff --git a/dev-lang/ocaml/ocaml-4.01.0.recipe b/dev-lang/ocaml/ocaml-4.01.0.recipe new file mode 100644 index 000000000..ea84a679e --- /dev/null +++ b/dev-lang/ocaml/ocaml-4.01.0.recipe @@ -0,0 +1,93 @@ +SUMMARY="Implementation of the Caml language" +DESCRIPTION=" +Caml is a general-purpose programming language, designed with program safety \ +and reliability in mind. It is very expressive, yet easy to learn and use. \ +Caml supports functional, imperative, and object-oriented programming styles. \ +It has been developed and distributed by INRIA, a French research institute in \ +computer science and applied mathematics, since 1985. +The OCaml system is the main implementation of the Caml language. It features \ +a powerful module system and a full-fledged object-oriented layer. It comes \ +with a native-code compiler that supports numerous architectures, for high \ +performance; a bytecode compiler, for increased portability; and an \ +interactive loop, for experimentation and rapid development. +" +LICENSE="GNU LGPL v2" +COPYRIGHT="1996-2013 Institut National de Recherche en Informatique et en Automatique (INRIA)." +HOMEPAGE="http://caml.inria.fr/index.en.html" +SRC_URI="http://caml.inria.fr/pub/distrib/ocaml-4.01/ocaml-4.01.0.tar.gz" +CHECKSUM_SHA256="ea1751deff454f5c738d10d8a0ad135afee0852d391cf95766b726c0faf7cfdb" +REVISION="1" +ARCHITECTURES="x86 ?x86_gcc2 x86_64" + +SOURCE_DIR="ocaml-4.01.0" + +PROVIDES=" + ocaml = $portVersion compat >= 4 + cmd:camlp4 = $portVersion compat >= 4 + cmd:camlp4boot = $portVersion compat >= 4 + cmd:camlp4o = $portVersion compat >= 4 + cmd:camlp4o.opt = $portVersion compat >= 4 + cmd:camlp4of = $portVersion compat >= 4 + cmd:camlp4of.opt = $portVersion compat >= 4 + cmd:camlp4oof = $portVersion compat >= 4 + cmd:camlp4oof.opt = $portVersion compat >= 4 + cmd:camlp4orf = $portVersion compat >= 4 + cmd:camlp4orf.opt = $portVersion compat >= 4 + cmd:camlp4prof = $portVersion compat >= 4 + cmd:camlp4r = $portVersion compat >= 4 + cmd:camlp4r.opt = $portVersion compat >= 4 + cmd:camlp4rf = $portVersion compat >= 4 + cmd:camlp4rf.opt = $portVersion compat >= 4 + cmd:mkcamlp4 = $portVersion compat >= 4 + cmd:ocaml = $portVersion compat >= 4 + cmd:ocamlbuild = $portVersion compat >= 4 + cmd:ocamlbuild.byte = $portVersion compat >= 4 + cmd:ocamlbuild.native = $portVersion compat >= 4 + cmd:ocamlc = $portVersion compat >= 4 + cmd:ocamlc.opt = $portVersion compat >= 4 + cmd:ocamlcp = $portVersion compat >= 4 + cmd:ocamldebug = $portVersion compat >= 4 + cmd:ocamldep = $portVersion compat >= 4 + cmd:ocamldep.opt = $portVersion compat >= 4 + cmd:ocamldoc = $portVersion compat >= 4 + cmd:ocamldoc.opt = $portVersion compat >= 4 + cmd:ocamllex = $portVersion compat >= 4 + cmd:ocamllex.opt = $portVersion compat >= 4 + cmd:ocamlmklib = $portVersion compat >= 4 + cmd:ocamlmktop = $portVersion compat >= 4 + cmd:ocamlobjinfo = $portVersion compat >= 4 + cmd:ocamlopt = $portVersion compat >= 4 + cmd:ocamlopt.opt = $portVersion compat >= 4 + cmd:ocamloptp = $portVersion compat >= 4 + cmd:ocamlprof = $portVersion compat >= 4 + cmd:ocamlrun = $portVersion compat >= 4 + cmd:ocamlyacc = $portVersion compat >= 4 + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:make + cmd:gcc + cmd:awk + cmd:sed + cmd:grep + cmd:xargs + " + +PATCHES="ocaml-4.01.0.patchset" + +BUILD() +{ + ./configure --prefix $prefix \ + --mandir $manDir + make world.opt +} + +INSTALL() +{ + make install +} diff --git a/dev-lang/ocaml/patches/ocaml-4.00.0.patch b/dev-lang/ocaml/patches/ocaml-4.00.0.patchset similarity index 64% rename from dev-lang/ocaml/patches/ocaml-4.00.0.patch rename to dev-lang/ocaml/patches/ocaml-4.00.0.patchset index f73910779..785fb0f4c 100644 --- a/dev-lang/ocaml/patches/ocaml-4.00.0.patch +++ b/dev-lang/ocaml/patches/ocaml-4.00.0.patchset @@ -1,7 +1,14 @@ -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 @@ +From 392fc2240718d68c1e0ce62cc11c1e894ba2cd95 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Wed, 30 Oct 2013 21:35:40 -0600 +Subject: import old patch + + +diff --git a/configure b/configure +index e08bbce..a39e9e4 100755 +--- a/configure ++++ b/configure +@@ -285,6 +285,10 @@ case "$bytecc,$host" in bytecccompopts="-fno-defer-pop $gcc_warnings" # No -lm library mathlib="";; @@ -12,7 +19,7 @@ diff -ruN ocaml-4.00.0/configure ocaml-4.00.0/configure gcc,alpha*-*-osf*) bytecccompopts="-fno-defer-pop $gcc_warnings" if cc="$bytecc" sh ./hasgot -mieee; then -@@ -614,6 +618,9 @@ +@@ -614,6 +618,9 @@ if test $withsharedlibs = "yes"; then byteccrpath="-Wl,-rpath," mksharedlibrpath="-Wl,-rpath," shared_libraries_supported=true;; @@ -22,15 +29,15 @@ diff -ruN ocaml-4.00.0/configure ocaml-4.00.0/configure esac fi -@@ -679,6 +686,7 @@ +@@ -679,6 +686,7 @@ case "$host" in 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 @@ + arch=amd64; system=macosx +@@ -901,6 +909,11 @@ elif sh ./hasgot -lnsl -lsocket socket socketpair bind listen accept connect; th cclibs="$cclibs -lnsl -lsocket" echo "#define HAS_SOCKETS" >> s.h has_sockets=yes @@ -42,10 +49,11 @@ diff -ruN ocaml-4.00.0/configure ocaml-4.00.0/configure 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 @@ +diff --git a/otherlibs/unix/nice.c b/otherlibs/unix/nice.c +index 400543c..94aa025 100644 +--- a/otherlibs/unix/nice.c ++++ b/otherlibs/unix/nice.c +@@ -24,7 +24,11 @@ CAMLprim value unix_nice(value incr) { int ret; errno = 0; @@ -57,3 +65,6 @@ diff -uN ocaml-4.00.0/otherlibs/unix/nice.c ocaml-4.00.0/otherlibs/unix/nice.c if (ret == -1 && errno != 0) uerror("nice", Nothing); return Val_int(ret); } +-- +1.8.3.4 + diff --git a/dev-lang/ocaml/patches/ocaml-4.01.0.patchset b/dev-lang/ocaml/patches/ocaml-4.01.0.patchset new file mode 100644 index 000000000..4d85d0195 --- /dev/null +++ b/dev-lang/ocaml/patches/ocaml-4.01.0.patchset @@ -0,0 +1,285 @@ +From d536d33f14b403bf1eaa6214844a55a4fcb632f8 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Wed, 30 Oct 2013 21:35:40 -0600 +Subject: import old patch + + +diff --git a/configure b/configure +index 07b1c35..0b386f1 100755 +--- a/configure ++++ b/configure +@@ -290,6 +290,10 @@ case "$bytecc,$host" in + 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 +@@ -622,6 +626,9 @@ if test $withsharedlibs = "yes"; then + byteccrpath="-Wl,-rpath," + mksharedlibrpath="-Wl,-rpath," + shared_libraries_supported=true;; ++ *-*haiku*) ++ mksharedlib="$bytecc -shared" ++ shared_libraries_supported=true;; + esac + fi + +@@ -687,6 +694,7 @@ case "$host" in + 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 +@@ -918,6 +926,11 @@ elif sh ./hasgot -lnsl -lsocket socket socketpair bind listen accept connect; th + 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 --git a/otherlibs/unix/nice.c b/otherlibs/unix/nice.c +index 019e2d1..e765a60 100644 +--- a/otherlibs/unix/nice.c ++++ b/otherlibs/unix/nice.c +@@ -22,7 +22,11 @@ CAMLprim value unix_nice(value incr) + { + 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); + } +-- +1.8.3.4 + + +From b35a7ca313da620259d7d304251d608620ac6b22 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Sat, 22 Mar 2014 19:48:57 +0000 +Subject: Haiku x86_64 support + + +diff --git a/config/gnu/config.guess b/config/gnu/config.guess +index 8152efd..1804e9f 100755 +--- a/config/gnu/config.guess ++++ b/config/gnu/config.guess +@@ -2,13 +2,13 @@ + # Attempt to guess a canonical system name. + # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, + # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +-# 2011 Free Software Foundation, Inc. ++# 2011, 2012, 2013 Free Software Foundation, Inc. + +-timestamp='2011-11-11' ++timestamp='2012-12-29' + + # This file 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 ++# 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 +@@ -17,26 +17,22 @@ timestamp='2011-11-11' + # 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. ++# along with this program; if not, see . + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a + # configuration script generated by Autoconf, you may include it under +-# the same distribution terms that you use for the rest of that program. +- +- +-# Originally written by Per Bothner. Please send patches (context +-# diff format) to and include a ChangeLog +-# entry. ++# the same distribution terms that you use for the rest of that ++# program. This Exception is an additional permission under section 7 ++# of the GNU General Public License, version 3 ("GPLv3"). + # +-# This script attempts to guess a canonical system name similar to +-# config.sub. If it succeeds, it prints the system name on stdout, and +-# exits with 0. Otherwise, it exits with 1. ++# Originally written by Per Bothner. + # + # You can get the latest version of this script from: + # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD ++# ++# Please send patches with a ChangeLog entry to config-patches@gnu.org. ++ + + me=`echo "$0" | sed -e 's,.*/,,'` + +@@ -57,8 +53,8 @@ GNU config.guess ($timestamp) + + Originally written by Per Bothner. + Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free +-Software Foundation, Inc. ++2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, ++2012, 2013 Free Software Foundation, Inc. + + This is free software; see the source for copying conditions. There is NO + warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." +@@ -145,7 +141,7 @@ UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or +- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, ++ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward +@@ -202,6 +198,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; ++ *:Bitrig:*:*) ++ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` ++ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} ++ exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} +@@ -304,7 +304,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; +- arm:riscos:*:*|arm:RISCOS:*:*) ++ arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) +@@ -803,6 +803,9 @@ EOF + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; ++ *:MINGW64*:*) ++ echo ${UNAME_MACHINE}-pc-mingw64 ++ exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; +@@ -863,6 +866,13 @@ EOF + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; ++ aarch64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ aarch64_be:Linux:*:*) ++ UNAME_MACHINE=aarch64_be ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; +@@ -897,16 +907,16 @@ EOF + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + cris:Linux:*:*) +- echo cris-axis-linux-gnu ++ echo ${UNAME_MACHINE}-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) +- echo crisv32-axis-linux-gnu ++ echo ${UNAME_MACHINE}-axis-linux-gnu + exit ;; + frv:Linux:*:*) +- echo frv-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + hexagon:Linux:*:*) +- echo hexagon-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + i*86:Linux:*:*) + LIBC=gnu +@@ -948,7 +958,7 @@ EOF + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + or32:Linux:*:*) +- echo or32-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-gnu +@@ -989,7 +999,7 @@ EOF + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; + x86_64:Linux:*:*) +- echo x86_64-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu +@@ -1196,6 +1206,9 @@ EOF + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; ++ x86_64:Haiku:*:*) ++ echo x86_64-unknown-haiku ++ exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; +@@ -1251,7 +1264,7 @@ EOF + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; +- NSE-?:NONSTOP_KERNEL:*:*) ++ NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) +@@ -1320,11 +1333,11 @@ EOF + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; ++ x86_64:VMkernel:*:*) ++ echo ${UNAME_MACHINE}-unknown-esx ++ exit ;; + esac + +-#echo '(No uname command or uname output not recognized.)' 1>&2 +-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 +- + eval $set_cc_for_build + cat >$dummy.c <jdk/make/Defs-internal.gmk - - # Build. - cd jdk - make - - # 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 { - # install - mkdir -p `finddir B_COMMON_DIRECTORY`/jdk - cp -r -f -v output/j2sdk-image/* `finddir B_COMMON_DIRECTORY`/jdk - # setup env - $(haikuporter -t)/dev-lang/openjdk/openjdk_setup_env.sh - - # build distro - mkdir -p ${DESTDIR}`finddir B_COMMON_DIRECTORY`/jdk - cp -r -f -v output/j2sdk-image/* ${DESTDIR}`finddir B_COMMON_DIRECTORY`/jdk - mkdir -p ${DESTDIR}/boot/common/boot/post_install - cp -f $(haikuporter -t)/dev-lang/openjdk/openjdk_setup_env.sh ${DESTDIR}/boot/common/boot/post_install -} - -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/openjdk-1.7_2013_11_08.recipe b/dev-lang/openjdk/openjdk-1.7_2013_11_08.recipe new file mode 100644 index 000000000..bcbbc290e --- /dev/null +++ b/dev-lang/openjdk/openjdk-1.7_2013_11_08.recipe @@ -0,0 +1,219 @@ +SUMMARY="Open-source implementation of the Java Platform, SE" +DESCRIPTION=" +Open-source implementation of the Java Platform, Standard Edition. +" +HOMEPAGE="http://openjdk.java.net/" +COPYRIGHT="2005, 2006, Oracle and/or its affiliates" +LICENSE="GNU GPL v2" + +#SRC_URI="http://dl.dropbox.com/u/61946213/j2sdk-august.tar.xz" +#CHECKSUM_MD5="65b348918f92eb357ed7b455dadcded8" +# The August j2sdk image is apparently incomplete. +SRC_URI="http://ports-space.haiku-files.org/source/openjdk/j2sdk-april-2013.tar" +CHECKSUM_SHA256="fca2603875d5c0b77b95a6f01f3d0fd368d32754801d5180d262404f8e2a31c6" +SOURCE_DIR="j2sdk-image" + +SRC_URI_2="http://archive.apache.org/dist/ant/source/apache-ant-1.8.4-src.tar.gz" +CHECKSUM_SHA256_2="df6f0aaede2549dc4347b972efc8036c01a737caac545b8ba43a21687bc521e7" +SOURCE_DIR_2="apache-ant-1.8.4" + +SRC_URI_3="hg+http://hg.openjdk.java.net/haiku/haiku#ee67ee3bd597" + +SRC_URI_4="hg+http://hg.openjdk.java.net/haiku/haiku/corba#84b78407a004" +PATCHES_4="openjdk-1.7_2013_11_08-source4.patchset" + +SRC_URI_5="hg+http://hg.openjdk.java.net/haiku/haiku/hotspot#03a6a75222a8" +PATCHES_5="openjdk-1.7_2013_11_08-source5.patchset" + +SRC_URI_6="hg+http://hg.openjdk.java.net/haiku/haiku/jaxp#6c9ac74190a0" +SRC_URI_7="hg+http://hg.openjdk.java.net/haiku/haiku/jaxws#84f654f41f6b" + +SRC_URI_8="hg+http://hg.openjdk.java.net/haiku/haiku/jdk#df0cce7b0238" +PATCHES_8="openjdk-1.7_2013_11_08-source8.patchset" + +SRC_URI_9="hg+http://hg.openjdk.java.net/haiku/haiku/langtools#0dabb2f5fad0" + +SRC_URI_10="http://ports-space.haiku-files.org/source/openjdk/jaxp145_01.zip#noarchive" +CHECKSUM_SHA256_10="c5924c6188988e2e8397ee5143bd8eaa062569d052567afd2ac9326a54a848cb" + +SRC_URI_11="http://ports-space.haiku-files.org/source/openjdk/jdk7-jaf-2010_08_19.zip#noarchive" +CHECKSUM_SHA256_11="e6aefedfdbb4673e8019583d1344fb162b94e1b10382c362364dbbfd5889c09e" + +SRC_URI_12="http://ports-space.haiku-files.org/source/openjdk/jdk7-jaxws2_2_4-b03-2011_05_27.zip#noarchive" +CHECKSUM_SHA256_12="05ae7259b75d0f2307276d61ece1887fcd437cb4ecda42fab8c22d4b537effd6" + +REVISION="2" +ARCHITECTURES="x86" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +DISABLE_SOURCE_PACKAGE=yes + # at least as long as Ant and a complete SDK image are part of the sources + +PROVIDES=" + openjdk = $portVersion compat >= 1 + cmd:apt = $portVersion compat >= 1 + cmd:extcheck = $portVersion compat >= 1 + cmd:idlj = $portVersion compat >= 1 + cmd:jar = $portVersion compat >= 1 + cmd:jarsigner = $portVersion compat >= 1 + cmd:java = $portVersion compat >= 1 + cmd:java_config = $portVersion compat >= 1 + cmd:javac = $portVersion compat >= 1 + cmd:javadoc = $portVersion compat >= 1 + cmd:javah = $portVersion compat >= 1 + cmd:javap = $portVersion compat >= 1 + cmd:jconsole = $portVersion compat >= 1 + cmd:jdb = $portVersion compat >= 1 + cmd:jhat = $portVersion compat >= 1 + cmd:jinfo = $portVersion compat >= 1 + cmd:jmap = $portVersion compat >= 1 + cmd:jps = $portVersion compat >= 1 + cmd:jrunscript = $portVersion compat >= 1 + cmd:jsadebugd = $portVersion compat >= 1 + cmd:jstack = $portVersion compat >= 1 + cmd:jstat = $portVersion compat >= 1 + cmd:jstatd = $portVersion compat >= 1 + cmd:keytool = $portVersion compat >= 1 + cmd:native2ascii = $portVersion compat >= 1 + cmd:orbd = $portVersion compat >= 1 + cmd:pack200 = $portVersion compat >= 1 + cmd:rmic = $portVersion compat >= 1 + cmd:rmid = $portVersion compat >= 1 + cmd:rmiregistry = $portVersion compat >= 1 + cmd:schemagen = $portVersion compat >= 1 + cmd:serialver = $portVersion compat >= 1 + cmd:servertool = $portVersion compat >= 1 + cmd:tnameserv = $portVersion compat >= 1 + cmd:unpack200 = $portVersion compat >= 1 + cmd:wsgen = $portVersion compat >= 1 + cmd:wsimport = $portVersion compat >= 1 + cmd:xjc = $portVersion compat >= 1 + " + +REQUIRES=" + haiku$secondaryArchSuffx >= $haikuVersion + lib:libfreetype$secondaryArchSuffix + lib:libiconv$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libfreetype$secondaryArchSuffix + devel:libiconv$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + cmd:cpio >= 2.10 + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:sed + cmd:tar + cmd:zip + " + +PATCH() +{ + # patch Ant + cd $sourceDir2 + sed -i 's/depends=\"jars,test-jar\"/depends=\"jars\"/' build.xml + + # small patch allowing to finish build without errors + # this modification already exists in another dev branch + # if someone fix it in current branch, using sed rather than patch should + # not brake the whole build + cd $sourceDir3 + sed -i s/'$(PRINTF) "--'/'$(PRINTF) -- "--'/ make/Defs-internal.gmk +} + +BUILD() +{ + OPENJDK_DIR=$(dirname $sourceDir) + + # build Apache Ant + 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 $sourceDir2 + sh build.sh install-lite + unset JAVA_HOME + + # prepare the directory structure + cd $OPENJDK_DIR + ln -sfn $sourceDir3 jdk + ln -sfn $sourceDir4 jdk/corba + ln -sfn $sourceDir5 jdk/hotspot + ln -sfn $sourceDir6 jdk/jaxp + ln -sfn $sourceDir7 jdk/jaxws + ln -sfn $sourceDir8 jdk/jdk + ln -sfn $sourceDir9 jdk/langtools + + export ALT_DROPS_DIR=${OPENJDK_DIR}/drop + mkdir -p ${ALT_DROPS_DIR} + + cp $sourceDir10/jaxp145_01.zip $ALT_DROPS_DIR + cp $sourceDir11/jdk7-jaf-2010_08_19.zip $ALT_DROPS_DIR + cp $sourceDir12/jdk7-jaxws2_2_4-b03-2011_05_27.zip $ALT_DROPS_DIR + + # set up environment + export ALT_BOOTDIR=${OPENJDK_DIR}/j2sdk-image + export ALT_JDK_IMPORT_PATH=$ALT_BOOTDIR + export ANT=${OPENJDK_DIR}/ant + export ALT_OUTPUTDIR=${OPENJDK_DIR}/output + export LANG=C + export PATH=$PATH:$ANT_HOME/bin + + # use PATH to search commands rather than explicitly set path for each + # commands so that grep, egrep & readelf are automatically found + # see Defs-haiku.gmk + export ALT_UNIXCOMMAND_PATH= + + mkdir -p ${ALT_OUTPUTDIR} + + export ALLOW_DOWNLOADS=false + + export USE_EXTERNAL_ZLIB=true + + # Build. + cd jdk + make + + # The build system is broken in that it doesn't pick up all auto-generated + # java sources (it uses "find ... -name '*.java'" too early). Unfortunately + # that isn't easy to fix, so we just run a second make, which will pick up + # the then already existing files. + make +} + +INSTALL() +{ + # install the generated SDK image dir + cd .. + jdkDir=$libDir/openjdk + mkdir -p $(dirname $jdkDir) + cp -a output/j2sdk-image $jdkDir + + # symlink the executables to binDir + mkdir -p $binDir + symlinkRelative -s $jdkDir/bin/* $binDir + # TODO: We should probably link only a subset. + + # create a java-config script in binDir + javaConfig=$binDir/java-config + sed -e "s,%JAVA_HOME%,$jdkDir," $portDir/sources/java-config.in \ + > $javaConfig + chmod a+x $javaConfig + + # create a profile.d file that sets up JAVA_HOME + jdkProfile=$dataDir/profile.d/openjdk.sh + mkdir -p $(dirname $jdkProfile) + echo 'JAVA_HOME=`java-config -H`' > $jdkProfile + echo "export JAVA_HOME" >> $jdkProfile +} diff --git a/dev-lang/openjdk/openjdk-1.7_u80_b00.recipe b/dev-lang/openjdk/openjdk-1.7_u80_b00.recipe new file mode 100644 index 000000000..b1b2e52e5 --- /dev/null +++ b/dev-lang/openjdk/openjdk-1.7_u80_b00.recipe @@ -0,0 +1,174 @@ +SUMMARY="Open-source implementation of the Java Platform, SE" +DESCRIPTION=" +Open-source implementation of the Java Platform, Standard Edition. +" +HOMEPAGE="http://openjdk.java.net/" +COPYRIGHT="2005, 2006, Oracle and/or its affiliates" +LICENSE="GNU GPL v2" + +SRC_URI="https://dl.dropboxusercontent.com/u/61946213/j2sdk-image-140528.tar.xz" +CHECKSUM_SHA256="fe9ad5156baf62a14213667f18bf88035daf5f24d6370afc9af30d079d8609a3" +SOURCE_DIR="j2sdk-image" + +SRC_URI_2="http://www.eu.apache.org/dist/ant/binaries/apache-ant-1.9.4-bin.zip" +CHECKSUM_SHA256_2="973d97d656e65561e2753823de6cf6db35570aaf93eeec6e7cb3d68e1ec4d0e8" +SOURCE_DIR_2="apache-ant-1.9.4" + +SRC_URI_3="hg+http://hg.openjdk.java.net/jdk7u/jdk7u#jdk7u80-b00" +SRC_URI_4="hg+http://hg.openjdk.java.net/jdk7u/jdk7u/langtools#jdk7u80-b00" +SRC_URI_5="hg+http://bitbucket.org/hamishm/haiku-jdk7u-corba" +SRC_URI_6="hg+http://hg.openjdk.java.net/jdk7u/jdk7u/jaxp#jdk7u80-b00" +SRC_URI_7="hg+http://hg.openjdk.java.net/jdk7u/jdk7u/jaxws#jdk7u80-b00" +SRC_URI_8="hg+http://bitbucket.org/hamishm/haiku-jdk7u-hotspot" +SRC_URI_9="hg+http://bitbucket.org/hamishm/haiku-jdk7u-jdk" + +REVISION="2" +ARCHITECTURES="x86" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +DISABLE_SOURCE_PACKAGE=yes + # at least as long as Ant and a complete SDK image are part of the sources + +PROVIDES=" + openjdk = $portVersion compat >= 1 + cmd:apt = $portVersion compat >= 1 + cmd:extcheck = $portVersion compat >= 1 + cmd:idlj = $portVersion compat >= 1 + cmd:jar = $portVersion compat >= 1 + cmd:jarsigner = $portVersion compat >= 1 + cmd:java = $portVersion compat >= 1 + cmd:java_config = $portVersion compat >= 1 + cmd:javac = $portVersion compat >= 1 + cmd:javadoc = $portVersion compat >= 1 + cmd:javah = $portVersion compat >= 1 + cmd:javap = $portVersion compat >= 1 + cmd:jcmd = $portVersion compat >= 1 + cmd:jconsole = $portVersion compat >= 1 + cmd:jdb = $portVersion compat >= 1 + cmd:jhat = $portVersion compat >= 1 + cmd:jinfo = $portVersion compat >= 1 + cmd:jmap = $portVersion compat >= 1 + cmd:jps = $portVersion compat >= 1 + cmd:jrunscript = $portVersion compat >= 1 + cmd:jsadebugd = $portVersion compat >= 1 + cmd:jstack = $portVersion compat >= 1 + cmd:jstat = $portVersion compat >= 1 + cmd:jstatd = $portVersion compat >= 1 + cmd:keytool = $portVersion compat >= 1 + cmd:native2ascii = $portVersion compat >= 1 + cmd:orbd = $portVersion compat >= 1 + cmd:pack200 = $portVersion compat >= 1 + cmd:rmic = $portVersion compat >= 1 + cmd:rmid = $portVersion compat >= 1 + cmd:rmiregistry = $portVersion compat >= 1 + cmd:schemagen = $portVersion compat >= 1 + cmd:serialver = $portVersion compat >= 1 + cmd:servertool = $portVersion compat >= 1 + cmd:tnameserv = $portVersion compat >= 1 + cmd:unpack200 = $portVersion compat >= 1 + cmd:wsgen = $portVersion compat >= 1 + cmd:wsimport = $portVersion compat >= 1 + cmd:xjc = $portVersion compat >= 1 + " + +REQUIRES=" + haiku$secondaryArchSuffx >= $haikuVersion + lib:libfreetype$secondaryArchSuffix + lib:libiconv$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libfreetype$secondaryArchSuffix + devel:libiconv$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + cmd:cpio >= 2.10 + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:sed + cmd:tar + cmd:zip + cmd:awk + cmd:hostname + cmd:find + cmd:unzip + cmd:unzipsfx + cmd:head + " + +BUILD() +{ + OPENJDK_DIR=$(dirname $sourceDir) + + # prepare the directory structure + cd $OPENJDK_DIR + ln -sfn $sourceDir3 jdk + ln -sfn $sourceDir4 jdk/langtools + ln -sfn $sourceDir5 jdk/corba + ln -sfn $sourceDir6 jdk/jaxp + ln -sfn $sourceDir7 jdk/jaxws + ln -sfn $sourceDir8 jdk/hotspot + ln -sfn $sourceDir9 jdk/jdk + + chmod u+x ${sourceDir2}/bin/ant + + # set up environment + export ALT_BOOTDIR=${OPENJDK_DIR}/j2sdk-image + export ALT_JDK_IMPORT_PATH=$ALT_BOOTDIR + export ANT_HOME=${sourceDir2} + export ALT_OUTPUTDIR=${OPENJDK_DIR}/output + export ALT_UNIXCOMMAND_PATH= + + export LC_ALL=C + + # If ASLR is enabled, the JVM can fail to find a large enough area for + # the heap. + export DISABLE_ASLR=1 + + if [ -n "$secondaryArchSuffix" ]; then + export ALT_COMPILER_PATH=`finddir B_SYSTEM_BIN_DIRECTORY`$secondaryArchSubDir + export ALT_FREETYPE_HEADERS_PATH=`finddir B_SYSTEM_HEADERS_DIRECTORY`$secondaryArchSubDir + fi + + export USE_EXTERNAL_ZLIB=true + + # Build. + cd jdk + make +} + +INSTALL() +{ + # install the generated SDK image dir + cd .. + jdkDir=$libDir/openjdk + mkdir -p $(dirname $jdkDir) + cp -a output/j2sdk-image $jdkDir + + # symlink the executables to binDir + mkdir -p $binDir + symlinkRelative -s $jdkDir/bin/* $binDir + # TODO: We should probably link only a subset. + + # create a java-config script in binDir + javaConfig=$binDir/java-config + sed -e "s,%JAVA_HOME%,$jdkDir," $portDir/sources/java-config.in \ + > $javaConfig + chmod a+x $javaConfig + + # create a profile.d file that sets up JAVA_HOME + jdkProfile=$dataDir/profile.d/openjdk.sh + mkdir -p $(dirname $jdkProfile) + echo 'JAVA_HOME=`java-config -H`' > $jdkProfile + echo "export JAVA_HOME" >> $jdkProfile +} diff --git a/dev-lang/openjdk/openjdk_setup_env.sh b/dev-lang/openjdk/openjdk_setup_env.sh deleted file mode 100644 index ef1cd2f39..000000000 --- a/dev-lang/openjdk/openjdk_setup_env.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/sh -_progress () { - notify --type progress --group openJDK \ - --icon /boot/system/kernel_x86 \ - --messageID $0_$$ \ - --title "Set OpenJDK env..." \ - --progress "$1" "$2" >/dev/null -} - -_progress 0.2 ".profile" -cd -if [ -e .profile ]; -then - echo -else - touch .profile -fi - -_progress 0.4 "JAVA_HOME" -grep "export JAVA_HOME=" .profile >/dev/null -if [ $? == 1 ]; -then - echo "export JAVA_HOME=\`finddir B_COMMON_DIRECTORY\`/jdk" >>.profile -fi - -_progress 0.6 "PATH" -grep "export PATH=\$JAVA_HOME/bin:\$PATH" .profile >/dev/null -if [ $? == 1 ]; -then - echo "export PATH=\$JAVA_HOME/bin:\$PATH" >>.profile -fi - -_progress 0.8 "LIBRARY_PATH" -export _SEARCH=$JAVA_HOME/jre/lib/i386 -echo $_SEARCH | grep $LIBRARY_PATH >/dev/null -grep "export LIBRARY_PATH=\$JAVA_HOME/jre/lib/i386:\$LIBRARY_PATH" .profile >/dev/null -if [ $? == 1 ]; -then - echo "export LIBRARY_PATH=\$JAVA_HOME/jre/lib/i386:\$LIBRARY_PATH" >>.profile -fi -_progress 1.0 "done" diff --git a/dev-lang/openjdk/patches/openjdk-1.7.patch b/dev-lang/openjdk/patches/openjdk-1.7.patch deleted file mode 100644 index 789216196..000000000 --- a/dev-lang/openjdk/patches/openjdk-1.7.patch +++ /dev/null @@ -1,213 +0,0 @@ ---- /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/openjdk/patches/openjdk-1.7_2013_11_08-source4.patchset b/dev-lang/openjdk/patches/openjdk-1.7_2013_11_08-source4.patchset new file mode 100644 index 000000000..fa9db4d09 --- /dev/null +++ b/dev-lang/openjdk/patches/openjdk-1.7_2013_11_08-source4.patchset @@ -0,0 +1,54 @@ +From 76e6dc11fcd26cc0deeb7df151f0520f526b57ff Mon Sep 17 00:00:00 2001 +From: Ingo Weinhold +Date: Sat, 9 Nov 2013 02:25:02 +0100 +Subject: Defs-haiku.gmk: Fix Haiku specific *_PATH variables + +* /boot/common has been removed in Haiku. +* USRBIN_PATH is /system/bin. +* UNIXCCS_PATH: The installation directory for binutils/gcc has + changed. +* DEVTOOLS_PATH: Match the comment. Tools like zip etc. live in + /system/bin. + +diff --git a/make/common/shared/Defs-haiku.gmk b/make/common/shared/Defs-haiku.gmk +index 8cb87d5..f642cfd 100644 +--- a/make/common/shared/Defs-haiku.gmk ++++ b/make/common/shared/Defs-haiku.gmk +@@ -57,7 +57,6 @@ endef + USRJDKINSTANCES_PATH =/opt/java + + BOOTSYSTEMBIN_PATH = $(shell finddir B_SYSTEM_BIN_DIRECTORY)/ +-BOOTCOMMONBIN_PATH = $(shell finddir B_COMMON_BIN_DIRECTORY)/ + BOOTSYSTEMDEVELOP_PATH = $(shell finddir B_SYSTEM_DEVELOP_DIRECTORY)/ + + # UNIXCOMMAND_PATH: path to where the most common Unix commands are. +@@ -73,7 +72,7 @@ endif + ifneq "$(origin ALT_USRBIN_PATH)" "undefined" + USRBIN_PATH :=$(call PrefixPath,$(ALT_USRBIN_PATH)) + else +- USRBIN_PATH = $(BOOTCOMMONBIN_PATH) ++ USRBIN_PATH = $(BOOTSYSTEMBIN_PATH) + endif + + # UNIXCCS_PATH: path to where the Solaris ported UNIX commands can be found +@@ -81,7 +80,7 @@ endif + ifneq "$(origin ALT_UNIXCCS_PATH)" "undefined" + UNIXCCS_PATH :=$(call PrefixPath,$(ALT_UNIXCCS_PATH)) + else +- UNIXCCS_PATH = $(BOOTSYSTEMDEVELOP_PATH)/tools/gnupro/ ++ UNIXCCS_PATH = $(BOOTSYSTEMBIN_PATH)/tools/ + endif + + # SLASH_JAVA: location of all network accessable files +@@ -103,7 +102,7 @@ endif + ifneq "$(origin ALT_DEVTOOLS_PATH)" "undefined" + DEVTOOLS_PATH :=$(call PrefixPath,$(ALT_DEVTOOLS_PATH)) + else +- DEVTOOLS_PATH =$(BOOTSYSTEMDEVELOP_PATH)/tools/gnupro/bin/ ++ DEVTOOLS_PATH =$(BOOTSYSTEMBIN_PATH) + endif + + # _BOOTDIR1: First choice for a Bootstrap JDK, previous released JDK. +-- +1.8.3.4 + diff --git a/dev-lang/openjdk/patches/openjdk-1.7_2013_11_08-source5.patchset b/dev-lang/openjdk/patches/openjdk-1.7_2013_11_08-source5.patchset new file mode 100644 index 000000000..245b7dab9 --- /dev/null +++ b/dev-lang/openjdk/patches/openjdk-1.7_2013_11_08-source5.patchset @@ -0,0 +1,99 @@ +From 428b96e741cc34dc4e7e3213a9c9ba312c78e943 Mon Sep 17 00:00:00 2001 +From: Ingo Weinhold +Date: Mon, 25 Nov 2013 17:08:56 +0100 +Subject: vm/opto/addnode.cpp: Fix redefinition of MAXFLOAT + +Include instead of defining the macro here. + +diff --git a/src/share/vm/opto/addnode.cpp b/src/share/vm/opto/addnode.cpp +index 33ecf15..83ed7d3 100644 +--- a/src/share/vm/opto/addnode.cpp ++++ b/src/share/vm/opto/addnode.cpp +@@ -34,13 +34,13 @@ + + // Portions of code courtesy of Clifford Click + +-#define MAXFLOAT ((float)3.40282346638528860e+38) +- + // Classic Add functionality. This covers all the usual 'add' behaviors for + // an algebraic ring. Add-integer, add-float, add-double, and binary-or are + // all inherited from this class. The various identity values are supplied + // by virtual functions. + ++#include ++ + + //============================================================================= + //------------------------------hash------------------------------------------- +-- +1.8.3.4 + + +From d925994749a3e56f1e57c1bbb534b745842964c2 Mon Sep 17 00:00:00 2001 +From: Ingo Weinhold +Date: Mon, 25 Nov 2013 17:10:01 +0100 +Subject: constantPoolOopDesc::method_at_if_loaded(): Fix return value + + +diff --git a/src/share/vm/oops/constantPoolOop.cpp b/src/share/vm/oops/constantPoolOop.cpp +index a46f4eb..d673215 100644 +--- a/src/share/vm/oops/constantPoolOop.cpp ++++ b/src/share/vm/oops/constantPoolOop.cpp +@@ -269,7 +269,7 @@ klassOop constantPoolOopDesc::klass_ref_at_if_loaded_check(constantPoolHandle th + methodOop constantPoolOopDesc::method_at_if_loaded(constantPoolHandle cpool, + int which, Bytecodes::Code invoke_code) { + assert(!constantPoolCacheOopDesc::is_secondary_index(which), "no indy instruction here"); +- if (cpool->cache() == NULL) return false; // nothing to load yet ++ if (cpool->cache() == NULL) return NULL; // nothing to load yet + int cache_index = which - CPCACHE_INDEX_TAG; + if (!(cache_index >= 0 && cache_index < cpool->cache()->length())) { + if (PrintMiscellaneous && (Verbose||WizardMode)) { +-- +1.8.3.4 + + +From 6aa8090dc672a2c2750fb33ab703280ea5e52162 Mon Sep 17 00:00:00 2001 +From: Ingo Weinhold +Date: Mon, 25 Nov 2013 17:11:30 +0100 +Subject: CountedLoopNode: Fix return value + + +diff --git a/src/share/vm/opto/loopnode.cpp b/src/share/vm/opto/loopnode.cpp +index eb138f5..f03ee1b 100644 +--- a/src/share/vm/opto/loopnode.cpp ++++ b/src/share/vm/opto/loopnode.cpp +@@ -893,7 +893,7 @@ Node *LoopLimitNode::Identity( PhaseTransform *phase ) { + Node* CountedLoopNode::match_incr_with_optional_truncation( + Node* expr, Node** trunc1, Node** trunc2, const TypeInt** trunc_type) { + // Quick cutouts: +- if (expr == NULL || expr->req() != 3) return false; ++ if (expr == NULL || expr->req() != 3) return NULL; + + Node *t1 = NULL; + Node *t2 = NULL; +-- +1.8.3.4 + + +From c03ad98680bd582e73aa60c8d82bc713b73fc7f9 Mon Sep 17 00:00:00 2001 +From: Ingo Weinhold +Date: Tue, 26 Nov 2013 17:45:02 +0100 +Subject: os_haiku.cpp: Update DEFAULT_LIBPATH + + +diff --git a/src/os/haiku/vm/os_haiku.cpp b/src/os/haiku/vm/os_haiku.cpp +index 963eb0f..c87fbea 100644 +--- a/src/os/haiku/vm/os_haiku.cpp ++++ b/src/os/haiku/vm/os_haiku.cpp +@@ -281,7 +281,7 @@ void os::init_system_properties_values() { + * ... + * 7: The default directories, normally /lib and /usr/lib. + */ +-#define DEFAULT_LIBPATH "%A/lib:/boot/home/config/lib:/boot/common/lib:/boot/system/lib" ++#define DEFAULT_LIBPATH "%A/lib:/boot/home/config/non-packaged/lib:/boot/home/config/lib:/boot/system/non-packaged/lib:/boot/system/lib" + + #define EXTENSIONS_DIR "/lib/ext" + #define ENDORSED_DIR "/lib/endorsed" +-- +1.8.3.4 + diff --git a/dev-lang/openjdk/patches/openjdk-1.7_2013_11_08-source8.patchset b/dev-lang/openjdk/patches/openjdk-1.7_2013_11_08-source8.patchset new file mode 100644 index 000000000..2e55306cb --- /dev/null +++ b/dev-lang/openjdk/patches/openjdk-1.7_2013_11_08-source8.patchset @@ -0,0 +1,450 @@ +From 255d3c92d7bf021c109a7ef7a0376fcbf7cb9ac5 Mon Sep 17 00:00:00 2001 +From: Ingo Weinhold +Date: Sat, 9 Nov 2013 02:30:27 +0100 +Subject: Defs-haiku.gmk: Fix Haiku specific *_PATH variables + +* /boot/common has been removed in Haiku. +* USRBIN_PATH is /system/bin. +* UNIXCCS_PATH: The installation directory for binutils/gcc has + changed. +* DEVTOOLS_PATH: Match the comment. Tools like zip etc. live in + /system/bin. + +diff --git a/make/common/shared/Defs-haiku.gmk b/make/common/shared/Defs-haiku.gmk +index c1cc440..134e128 100644 +--- a/make/common/shared/Defs-haiku.gmk ++++ b/make/common/shared/Defs-haiku.gmk +@@ -54,11 +54,10 @@ $(shell if [ "$1" != "" -a -d "$1" ]; then (cd $1 && pwd); else echo "$1"; fi) + endef + + BOOTSYSTEMBIN_PATH = $(shell finddir B_SYSTEM_BIN_DIRECTORY)/ +-BOOTCOMMONBIN_PATH = $(shell finddir B_COMMON_BIN_DIRECTORY)/ + BOOTSYSTEMDEVELOP_PATH = $(shell finddir B_SYSTEM_DEVELOP_DIRECTORY)/ + + # Location on system where jdk installs might be +-USRJDKINSTANCES_PATH =$(BOOTCOMMONBIN_PATH)/java ++USRJDKINSTANCES_PATH =$(BOOTSYSTEMBIN_PATH)/java + + # UNIXCOMMAND_PATH: path to where the most common Unix commands are. + # NOTE: Must end with / so that it could be empty, allowing PATH usage. +@@ -73,7 +72,7 @@ endif + ifneq "$(origin ALT_USRBIN_PATH)" "undefined" + USRBIN_PATH :=$(call PrefixPath,$(ALT_USRBIN_PATH)) + else +- USRBIN_PATH = $(BOOTCOMMONBIN_PATH) ++ USRBIN_PATH = $(BOOTSYSTEMBIN_PATH) + endif + + # UNIXCCS_PATH: path to where the Solaris ported UNIX commands can be found +@@ -81,7 +80,7 @@ endif + ifneq "$(origin ALT_UNIXCCS_PATH)" "undefined" + UNIXCCS_PATH :=$(call PrefixPath,$(ALT_UNIXCCS_PATH)) + else +- UNIXCCS_PATH = $(BOOTSYSTEMDEVELOP_PATH)/tools/gnupro/ ++ UNIXCCS_PATH = $(BOOTSYSTEMDEVELOP_PATH)/tools/ + endif + + # SLASH_JAVA: location of all network accessable files +@@ -103,7 +102,7 @@ endif + ifneq "$(origin ALT_COMPILER_PATH)" "undefined" + COMPILER_PATH :=$(call PrefixPath,$(ALT_COMPILER_PATH)) + else +- COMPILER_PATH = $(BOOTSYSTEMDEVELOP_PATH)/tools/gnupro/bin/ ++ COMPILER_PATH = $(BOOTSYSTEMBIN_PATH) + endif + + # OPENWIN_HOME: path to where the X11 environment is installed. +@@ -119,7 +118,7 @@ endif + ifneq "$(origin ALT_DEVTOOLS_PATH)" "undefined" + DEVTOOLS_PATH :=$(call PrefixPath,$(ALT_DEVTOOLS_PATH)) + else +- DEVTOOLS_PATH =$(BOOTSYSTEMDEVELOP_PATH)/tools/gnupro/bin/ ++ DEVTOOLS_PATH =$(BOOTSYSTEMBIN_PATH) + endif + + # _BOOTDIR1: First choice for a Bootstrap JDK, previous released JDK. +-- +1.8.3.4 + + +From 9e2dcc26b19f2fa0694ee7608c74ad3716054679 Mon Sep 17 00:00:00 2001 +From: Ingo Weinhold +Date: Sat, 9 Nov 2013 02:35:20 +0100 +Subject: PLATFORM_API_HaikuOS_PCM.cpp: Fix SoundConsumer include + +It's a private system header, so specify its path explicitly. + +diff --git a/src/solaris/native/com/sun/media/sound/PLATFORM_API_HaikuOS_PCM.cpp b/src/solaris/native/com/sun/media/sound/PLATFORM_API_HaikuOS_PCM.cpp +index ec111fc..d69c6a9 100644 +--- a/src/solaris/native/com/sun/media/sound/PLATFORM_API_HaikuOS_PCM.cpp ++++ b/src/solaris/native/com/sun/media/sound/PLATFORM_API_HaikuOS_PCM.cpp +@@ -35,7 +35,7 @@ extern "C" { + #include + #include + #include +-#include ++#include + #include + #include + +-- +1.8.3.4 + + +From 645161b7ecc348da7f94ddac74277a9569321f6b Mon Sep 17 00:00:00 2001 +From: Ingo Weinhold +Date: Sat, 9 Nov 2013 14:52:36 +0100 +Subject: Fix freetype paths for Haiku + + +diff --git a/make/common/Defs.gmk b/make/common/Defs.gmk +index a478f97..c0dc0d0 100644 +--- a/make/common/Defs.gmk ++++ b/make/common/Defs.gmk +@@ -170,8 +170,8 @@ ifeq ($(PLATFORM), solaris) + DEVTOOLS_FT_DIR=$(JDK_DEVTOOLS_DIR)/$(ARCH_FAMILY)/freetype-$(ARCH) + endif + ifeq ($(PLATFORM), haiku) +- ALT_FREETYPE_HEADERS_PATH=$(shell finddir B_SYSTEM_HEADERS_DIRECTORY)/3rdparty/freetype2 +- ALT_FREETYPE_LIB_PATH=$(shell finddir B_SYSTEM_LIB_DIRECTORY)/gcc4 ++ ALT_FREETYPE_HEADERS_PATH=$(shell finddir B_SYSTEM_HEADERS_DIRECTORY) ++ ALT_FREETYPE_LIB_PATH=$(shell finddir B_SYSTEM_DEVELOP_DIRECTORY)/lib + endif + + DEVTOOLS_FT_DIR_EXISTS = $(shell \ +-- +1.8.3.4 + + +From daedb42f69c0c3b4a39e4ea354a53799c89265ab Mon Sep 17 00:00:00 2001 +From: Ingo Weinhold +Date: Sat, 9 Nov 2013 14:53:56 +0100 +Subject: HaikuFontManager: Use BPathFinder API to find font dirs + + +diff --git a/src/solaris/native/sun/hawt/HaikuFontManager.cpp b/src/solaris/native/sun/hawt/HaikuFontManager.cpp +index a645d00..66af9ab 100644 +--- a/src/solaris/native/sun/hawt/HaikuFontManager.cpp ++++ b/src/solaris/native/sun/hawt/HaikuFontManager.cpp +@@ -25,9 +25,8 @@ + + #include + +-#include +-#include +-#include ++#include ++#include + + extern "C" { + +@@ -40,19 +39,9 @@ JNIEXPORT jstring JNICALL + Java_sun_hawt_HaikuFontManager_nativeGetFontPath + (JNIEnv *env, jobject thiz) + { +- BPath systemFontsDirectory; +- BPath commonFontsDirectory; +- BPath userFontsDirectory; +- +- find_directory(B_SYSTEM_FONTS_DIRECTORY, &systemFontsDirectory); +- find_directory(B_COMMON_FONTS_DIRECTORY, &commonFontsDirectory); +- find_directory(B_USER_FONTS_DIRECTORY, &userFontsDirectory); +- +- BString path; +- path << systemFontsDirectory.Path() << "/ttfonts:" +- << commonFontsDirectory.Path() << "/ttfonts:" +- << userFontsDirectory.Path() << "/ttfonts"; +- return env->NewStringUTF(path.String()); ++ BStringList paths; ++ BPathFinder().FindPaths(B_FIND_PATH_FONTS_DIRECTORY, "ttfonts", paths); ++ return env->NewStringUTF(paths.Join(":").String()); + } + + } +-- +1.8.3.4 + + +From 7052c7beb2d10b40f35ac6c4868cb238d3b0d7db Mon Sep 17 00:00:00 2001 +From: Ingo Weinhold +Date: Tue, 26 Nov 2013 17:50:46 +0100 +Subject: Make use of $ORIGIN in rpath now supported in Haiku + + +diff --git a/make/common/Defs-haiku.gmk b/make/common/Defs-haiku.gmk +index 7375327..70ae24b 100644 +--- a/make/common/Defs-haiku.gmk ++++ b/make/common/Defs-haiku.gmk +@@ -219,15 +219,6 @@ ifdef LIBRARY + # The environment variable LD_LIBRARY_PATH will over-ride these runpaths. + # Try: 'readelf -d lib*.so' to see these settings in a library. + # +- # On Haiku, %A is sort of like $ORIGIN except that it's relative to the +- # program's directory rather than the library's. This causes problems +- # with some of the libraries (like nio for one) so you should add the +- # library directory to your LIBRARY_PATH if you need those. +- # +- # I plan to see if I can add a %B or some such to the runtime loader +- # for proper relative-to-the-library rpaths. At the moment %A gets the +- # basics done for the launchers. +- # + Z_ORIGIN_FLAG/sparc = -Xlinker -z -Xlinker origin + Z_ORIGIN_FLAG/i586 = -Xlinker -z -Xlinker origin + Z_ORIGIN_FLAG/amd64 = -Xlinker -z -Xlinker origin +@@ -238,8 +229,8 @@ ifdef LIBRARY + + LDFLAG_Z_ORIGIN = $(Z_ORIGIN_FLAG/$(ARCH_FAMILY)) + +- LDFLAGS_COMMON += $(LDFLAG_Z_ORIGIN) -Xlinker -rpath -Xlinker \%A +- LDFLAGS_COMMON += $(LD_RUNPATH_EXTRAS:%=$(LDFLAG_Z_ORIGIN) -Xlinker -rpath -Xlinker \%A/%) ++ LDFLAGS_COMMON += $(LDFLAG_Z_ORIGIN) -Xlinker -rpath -Xlinker \$$ORIGIN ++ LDFLAGS_COMMON += $(LD_RUNPATH_EXTRAS:%=$(LDFLAG_Z_ORIGIN) -Xlinker -rpath -Xlinker \$$ORIGIN/%) + + endif + +diff --git a/make/common/Program.gmk b/make/common/Program.gmk +index 87e9d00..ec0a555 100644 +--- a/make/common/Program.gmk ++++ b/make/common/Program.gmk +@@ -99,8 +99,8 @@ ifneq (,$(findstring $(PLATFORM), linux solaris haiku)) # UNIX systems + ifeq ($(PLATFORM), haiku) + LDFLAGS += $(LDFLAG_Z_ORIGIN) + LDFLAGS += -Wl,--allow-shlib-undefined +- LDFLAGS += -Wl,-rpath -Wl,\%A/../lib/$(LIBARCH)/jli +- LDFLAGS += -Wl,-rpath -Wl,\%A/../jre/lib/$(LIBARCH)/jli ++ LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/../lib/$(LIBARCH)/jli ++ LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/../jre/lib/$(LIBARCH)/jli + endif + endif + ifeq ($(PLATFORM), windows) +diff --git a/make/java/instrument/Makefile b/make/java/instrument/Makefile +index bb0db1e..74e744e 100644 +--- a/make/java/instrument/Makefile ++++ b/make/java/instrument/Makefile +@@ -120,7 +120,7 @@ else + ifeq ($(PLATFORM), haiku) + LDFLAGS += $(LDFLAG_Z_ORIGIN) + LDFLAGS += -Wl,--allow-shlib-undefined +- LDFLAGS += -Wl,-rpath -Wl,\%A/jli ++ LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/jli + endif + endif + +-- +1.8.3.4 + + +From c0578bc31277c67e94d8a8d71f7e47db49d0ec37 Mon Sep 17 00:00:00 2001 +From: Ingo Weinhold +Date: Wed, 4 Dec 2013 03:23:53 +0100 +Subject: make/java/java/Makefile: Missing generated classes + +Add AUTO_FILES_JAVA_DIRS, so that the auto-generated classes are +picked up. + +diff --git a/make/java/java/Makefile b/make/java/java/Makefile +index 93878e6..bd94e8f 100644 +--- a/make/java/java/Makefile ++++ b/make/java/java/Makefile +@@ -59,6 +59,7 @@ endif + include FILES_c.gmk + include FILES_java.gmk + include Exportedfiles.gmk ++AUTO_FILES_JAVA_DIRS = java/lang + + ifeq ($(PLATFORM),windows) + FILES_java += java/io/Win32FileSystem.java \ +-- +1.8.3.4 + + +From e730fb5a7d27fdc3f9213f2d75ad5ef5519e20c4 Mon Sep 17 00:00:00 2001 +From: Ingo Weinhold +Date: Sun, 22 Dec 2013 21:21:11 +0100 +Subject: Add support for using an external zlib + +To enable it, USE_EXTERNAL_ZLIB must be set to true. EXTERNAL_ZLIB_LIB +and EXTERNAL_ZLIB_HEADERS_PATH can be set to the library to link +against and the headers path respectively. The former defaults to +"-lz". + +diff --git a/make/com/sun/java/pack/Makefile b/make/com/sun/java/pack/Makefile +index 22e0b69..ce28479 100644 +--- a/make/com/sun/java/pack/Makefile ++++ b/make/com/sun/java/pack/Makefile +@@ -70,9 +70,14 @@ ifeq ($(STANDALONE),true) + $(ZIPOBJDIR)/inftrees.$(OBJECT_SUFFIX) \ + $(ZIPOBJDIR)/inffast.$(OBJECT_SUFFIX) + +- ZINCLUDE=-I$(SHARE_SRC)/native/java/util/zip/zlib-$(ZLIB_VERSION) +- OTHER_CXXFLAGS += $(ZINCLUDE) +- LDDFLAGS += $(ZIPOBJS) ++ ifeq ($(USE_EXTERNAL_ZLIB), true) ++ OTHER_CXXFLAGS += $(EXTERNAL_ZLIB_CPPFLAGS) ++ LDDFLAGS += $(EXTERNAL_ZLIB_LIB) ++ else ++ ZINCLUDE=-I$(SHARE_SRC)/native/java/util/zip/zlib-$(ZLIB_VERSION) ++ OTHER_CXXFLAGS += $(ZINCLUDE) ++ LDDFLAGS += $(ZIPOBJS) ++ endif + else + OTHER_CXXFLAGS += -DNO_ZLIB -DUNPACK_JNI + OTHER_LDLIBS += $(JVMLIB) +diff --git a/make/common/Defs.gmk b/make/common/Defs.gmk +index c0dc0d0..07849f3 100644 +--- a/make/common/Defs.gmk ++++ b/make/common/Defs.gmk +@@ -210,6 +210,21 @@ ZLIB_VERSION = 1.2.3 + + + # ++# External zlib support ++# ++ifeq ($(USE_EXTERNAL_ZLIB), true) ++ ifndef EXTERNAL_ZLIB_LIB ++ EXTERNAL_ZLIB_LIB = -lz ++ endif ++ ifdef EXTERNAL_ZLIB_HEADERS_PATH ++ EXTERNAL_ZLIB_CPPFLAGS = -I$(EXTERNAL_ZLIB_HEADERS_PATH) ++ else ++ EXTERNAL_ZLIB_CPPFLAGS = ++ endif ++endif ++ ++ ++# + # Localizations for the different parts of the product beyond English + # + +diff --git a/make/java/jli/Makefile b/make/java/jli/Makefile +index 3e5994d..5500e73 100644 +--- a/make/java/jli/Makefile ++++ b/make/java/jli/Makefile +@@ -69,13 +69,17 @@ FILES_c = \ + parse_manifest.c \ + version_comp.c \ + wildcard.c \ +- jli_util.c \ +- inflate.c \ +- inftrees.c \ +- inffast.c \ +- zadler32.c \ +- zcrc32.c \ +- zutil.c ++ jli_util.c ++ ++ifneq ($(USE_EXTERNAL_ZLIB), true) ++ FILES_c += \ ++ inflate.c \ ++ inftrees.c \ ++ inffast.c \ ++ zadler32.c \ ++ zcrc32.c \ ++ zutil.c ++endif + + ifneq ($(PLATFORM), windows) + FILES_c += ergo.c +@@ -131,7 +135,12 @@ endif + + OTHER_INCLUDES += -I$(LAUNCHER_SHARE_SRC) + OTHER_INCLUDES += -I$(LAUNCHER_PLATFORM_SRC) +-OTHER_INCLUDES += -I$(ZIP_SRC) ++ ++ifeq ($(USE_EXTERNAL_ZLIB), true) ++ OTHER_INCLUDES += $(EXTERNAL_ZLIB_CPPFLAGS) ++else ++ OTHER_INCLUDES += -I$(ZIP_SRC) ++endif + + # + # Library to compile. +@@ -164,6 +173,13 @@ library:: $(STATIC_LIBRARY) + endif # PLATFORM + + # +-# Add to ambient vpath so we pick up the library files ++# Add to ambient vpath so we pick up the library files. When using an external ++# zlib, add the library instead of the sources. + # +-vpath %.c $(LAUNCHER_SHARE_SRC) $(ZIP_SRC) $(LAUNCHER_PLATFORM_SRC) ++vpath %.c $(LAUNCHER_SHARE_SRC) $(LAUNCHER_PLATFORM_SRC) ++ ++ifeq ($(USE_EXTERNAL_ZLIB), true) ++ LDLIBS += $(EXTERNAL_ZLIB_LIB) ++else ++ vpath %.c $(ZIP_SRC) ++endif +diff --git a/make/java/zip/FILES_c.gmk b/make/java/zip/FILES_c.gmk +index 6664887..97c6d3f 100644 +--- a/make/java/zip/FILES_c.gmk ++++ b/make/java/zip/FILES_c.gmk +@@ -29,16 +29,20 @@ FILES_c = \ + Deflater.c \ + Inflater.c \ + ZipFile.c \ +- zip_util.c \ +- compress.c \ +- deflate.c \ +- gzio.c \ +- infback.c \ +- inffast.c \ +- inflate.c \ +- inftrees.c \ +- trees.c \ +- uncompr.c \ +- zadler32.c \ +- zcrc32.c \ +- zutil.c ++ zip_util.c ++ ++ifneq ($(USE_EXTERNAL_ZLIB), true) ++ FILES_c += \ ++ compress.c \ ++ deflate.c \ ++ gzio.c \ ++ infback.c \ ++ inffast.c \ ++ inflate.c \ ++ inftrees.c \ ++ trees.c \ ++ uncompr.c \ ++ zadler32.c \ ++ zcrc32.c \ ++ zutil.c ++endif +diff --git a/make/java/zip/Makefile b/make/java/zip/Makefile +index 906e7e8..15b2d45 100644 +--- a/make/java/zip/Makefile ++++ b/make/java/zip/Makefile +@@ -74,14 +74,24 @@ else + CPPFLAGS += -UDEBUG + endif + +-CPPFLAGS += -I$(SHARE_SRC)/native/java/util/zip/zlib-$(ZLIB_VERSION) ++ifeq ($(USE_EXTERNAL_ZLIB), true) ++ CPPFLAGS += $(EXTERNAL_ZLIB_CPPFLAGS) ++else ++ CPPFLAGS += -I$(SHARE_SRC)/native/java/util/zip/zlib-$(ZLIB_VERSION) ++endif ++ + CPPFLAGS += -I$(SHARE_SRC)/native/java/io + CPPFLAGS += -I$(PLATFORM_SRC)/native/java/io + + # +-# Add to ambient vpath so we pick up the library files ++# Add to ambient vpath so we pick up the library files. When using an external ++# zlib, add the library instead. + # +-vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/zlib-$(ZLIB_VERSION) ++ifeq ($(USE_EXTERNAL_ZLIB), true) ++ LDLIBS += $(EXTERNAL_ZLIB_LIB) ++else ++ vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/zlib-$(ZLIB_VERSION) ++endif + + # + # Link to JVM library for JVM_Zip* functions +-- +1.8.3.4 + diff --git a/dev-lang/openjdk/sources/java-config.in b/dev-lang/openjdk/sources/java-config.in new file mode 100644 index 000000000..cd2f1b4c9 --- /dev/null +++ b/dev-lang/openjdk/sources/java-config.in @@ -0,0 +1,37 @@ +#!/bin/sh + + +javaHome="%JAVA_HOME%" + + +printUsage() +{ + cat < +Print java configuration values. + +Options: + -h, --help - Print this help text. + -H - Print Java home path. +EOF +} + + +if [ $# -ne 1 ]; then + printUsage >&2 + exit 1 +fi + +case "$1" in + -H) + echo $javaHome + ;; + -h|--help) + printUsage + exit 0 + ;; + *) + printUsage >&2 + exit 1 + ;; +esac diff --git a/dev-lang/perl/perl-5.10.1.recipe b/dev-lang/perl/perl-5.10.1.recipe index 586b5b5af..8b2d4a341 100644 --- a/dev-lang/perl/perl-5.10.1.recipe +++ b/dev-lang/perl/perl-5.10.1.recipe @@ -19,7 +19,7 @@ COPYRIGHT="1993-2009 Larry Wall and others" LICENSE="GNU GPL v1 Artistic (Perl)" SRC_URI="http://www.cpan.org/src/perl-5.10.1.tar.gz" -CHECKSUM_MD5="b9b2fdb957f50ada62d73f43ee75d044" +CHECKSUM_SHA256="cb7f26ea4b2b28d6644354d87a269d01cac1b635287dae64e88eeafa24b44f35" REVISION="6" ARCHITECTURES="x86_gcc2 x86 x86_64" @@ -85,7 +85,6 @@ GLOBAL_WRITABLE_FILES=" non-packaged/lib/perl5/site_perl/5.10.1/BePC-haiku directory " -SOURCE_DIR="$portVersionedName" BUILD_PACKAGE_ACTIVATION_PHASE=INSTALL BUILD() diff --git a/dev-lang/perl/perl-5.18.1.recipe b/dev-lang/perl/perl-5.18.1.recipe index fbdf7710c..e29d49b9e 100644 --- a/dev-lang/perl/perl-5.18.1.recipe +++ b/dev-lang/perl/perl-5.18.1.recipe @@ -1,25 +1,25 @@ SUMMARY="Larry Wall's Practical Extraction and Report Language" DESCRIPTION=" - Perl was originally developed by Larry Wall in 1987 as a general-purpose - Unix scripting language to make report processing easier. +Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix \ +scripting language to make report processing easier. - Perl borrows features from other programming languages including C, shell - scripting (sh), AWK, and sed. The language provides powerful text - processing facilities without the arbitrary data-length limits of many - contemporary Unix tools, facilitating easy manipulation of text files. +Perl borrows features from other programming languages including C, shell \ +scripting (sh), AWK, and sed. The language provides powerful text processing \ +facilities without the arbitrary data-length limits of many contemporary Unix \ +tools, facilitating easy manipulation of text files. - In addition to CGI, Perl is used for graphics programming, system - administration, network programming, finance, bioinformatics, and other - applications. Perl is nicknamed 'the Swiss Army chainsaw of scripting - languages' because of its flexibility and power, and possibly also - because of its perceived 'ugliness'. - " +In addition to CGI, Perl is used for graphics programming, system \ +administration, network programming, finance, bioinformatics, and other \ +applications. Perl is nicknamed 'the Swiss Army chainsaw of scripting \ +languages' because of its flexibility and power, and possibly also because of \ +its perceived 'ugliness'. +" HOMEPAGE="http://www.perl.org/" COPYRIGHT="1993-2009 Larry Wall and others" LICENSE="GNU GPL v1 Artistic (Perl)" SRC_URI="http://www.cpan.org/src/perl-5.18.1.tar.gz" -CHECKSUM_MD5="304cb5bd18e48c44edd6053337d3386d" +CHECKSUM_SHA256="655e11a8ffba8853efcdce568a142c232600ed120ac24aaebb4e6efe74e85b2b" REVISION="1" ARCHITECTURES="x86_gcc2 x86 x86_64" @@ -97,7 +97,6 @@ GLOBAL_WRITABLE_FILES=" non-packaged/lib/perl5/site_perl/$portVersion/$perlArchName directory keep-old " -SOURCE_DIR="$portVersionedName" BUILD_PACKAGE_ACTIVATION_PHASE=INSTALL BUILD() diff --git a/dev-lang/perl/perl-5.18.2.recipe b/dev-lang/perl/perl-5.18.2.recipe new file mode 100644 index 000000000..19c28d011 --- /dev/null +++ b/dev-lang/perl/perl-5.18.2.recipe @@ -0,0 +1,143 @@ +SUMMARY="Larry Wall's Practical Extraction and Report Language" +DESCRIPTION=" +Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix \ +scripting language to make report processing easier. + +Perl borrows features from other programming languages including C, shell \ +scripting (sh), AWK, and sed. The language provides powerful text processing \ +facilities without the arbitrary data-length limits of many contemporary Unix \ +tools, facilitating easy manipulation of text files. + +In addition to CGI, Perl is used for graphics programming, system \ +administration, network programming, finance, bioinformatics, and other \ +applications. Perl is nicknamed 'the Swiss Army chainsaw of scripting \ +languages' because of its flexibility and power, and possibly also because of \ +its perceived 'ugliness'. +" +HOMEPAGE="http://www.perl.org/" +COPYRIGHT="1993-2009 Larry Wall and others" +LICENSE="GNU GPL v1 + Artistic (Perl)" +SRC_URI="http://www.cpan.org/src/perl-5.18.2.tar.gz" +CHECKSUM_SHA256="7cbed5ef11900e8f68041215eea0de5e443d53393f84c41d5c9c69c150a4982f" +REVISION="2" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" + +PATCHES="perl-5.18.1.patchset" + +PROVIDES=" + # assume that any perl commands are backwards compatible to version 5. + perl = $portVersion compat >= 5 + cmd:a2p = $portVersion compat >= 5 + cmd:c2ph = $portVersion compat >= 5 + cmd:config_data = $portVersion compat >= 5 + cmd:corelist = $portVersion compat >= 5 + cmd:cpan = $portVersion compat >= 5 + cmd:cpan2dist = $portVersion compat >= 5 + cmd:cpanp = $portVersion compat >= 5 + cmd:cpanp_run_perl = $portVersion compat >= 5 + cmd:dprofpp = $portVersion compat >= 5 + cmd:enc2xs = $portVersion compat >= 5 + cmd:find2perl = $portVersion compat >= 5 + cmd:h2ph = $portVersion compat >= 5 + cmd:h2xs = $portVersion compat >= 5 + cmd:instmodsh = $portVersion compat >= 5 + cmd:json_pp = $portVersion compat >= 5 + cmd:libnetcfg = $portVersion compat >= 5 + cmd:perl = $portVersion compat >= 5 + cmd:perl$portVersion = $portVersion compat >= 5 + cmd:perlbug = $portVersion compat >= 5 + cmd:perldoc = $portVersion compat >= 5 + cmd:perlivp = $portVersion compat >= 5 + cmd:perlthanks = $portVersion compat >= 5 + cmd:piconv = $portVersion compat >= 5 + cmd:pl2pm = $portVersion compat >= 5 + cmd:pod2html = $portVersion compat >= 5 + cmd:pod2latex = $portVersion compat >= 5 + cmd:pod2man = $portVersion compat >= 5 + cmd:pod2text = $portVersion compat >= 5 + cmd:pod2usage = $portVersion compat >= 5 + cmd:podchecker = $portVersion compat >= 5 + cmd:podselect = $portVersion compat >= 5 + cmd:prove = $portVersion compat >= 5 + cmd:psed = $portVersion compat >= 5 + cmd:pstruct = $portVersion compat >= 5 + cmd:ptar = $portVersion compat >= 5 + cmd:ptardiff = $portVersion compat >= 5 + cmd:ptargrep = $portVersion compat >= 5 + cmd:s2p = $portVersion compat >= 5 + cmd:shasum = $portVersion compat >= 5 + cmd:splain = $portVersion compat >= 5 + cmd:xsubpp = $portVersion compat >= 5 + cmd:zipdetails = $portVersion compat >= 5 + # vendor_perl refers to the path to packaged perl modules, which includes + # the full perl version, so it isn't backwards compatible to anything else. + vendor_perl = $portVersion + # It is unclear which kind of backwards compatibility libperl.so + # implements, so we assume none. + lib:libperl = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:awk + cmd:gcc + cmd:ld + cmd:make + cmd:sed + " + +perlArchName="$(uname -m)-haiku" + +GLOBAL_WRITABLE_FILES=" + non-packaged/lib/perl5/site_perl/$portVersion/sitecustomize.pl keep-old + non-packaged/lib/perl5/site_perl/$portVersion/$perlArchName directory keep-old + " + +BUILD_PACKAGE_ACTIVATION_PHASE=INSTALL + +BUILD() +{ + ./Configure \ + -Dprefix=$prefix \ + -Dprivlib=$prefix/lib/perl5/$portVersion \ + -Dsiteprefix=$prefix/non-packaged \ + -Dsitelib=$prefix/non-packaged/lib/perl5/site_perl/$portVersion \ + -Dvendorprefix=$prefix \ + -Dvendorlib=$prefix/lib/perl5/vendor_perl/$portVersion \ + -Dcf_email=zooey@hirschkaefer.de \ + -Uusenm -Duseshrplib -Uusemymalloc \ + -Dlibpth="$(finddir B_USER_DEVELOP_DIRECTORY)/lib $(finddir B_SYSTEM_DEVELOP_DIRECTORY)/lib" \ + -Dusrinc="$(finddir B_SYSTEM_DEVELOP_DIRECTORY)/headers/posix" \ + -Dlocinc="$(finddir B_USER_CONFIG_DIRECTORY)/develop/headers $(finddir B_SYSTEM_DEVELOP_DIRECTORY)/headers" \ + -Dlibc="'$(finddir B_SYSTEM_LIB_DIRECTORY)/libroot.so'" \ + -Dlibs=-lnetwork -Dcc=gcc -Dld=gcc \ + -Ud_link -Ddont_use_nlink -Ud_syserrlst \ + -Dldlibpthname=LIBRARY_PATH -Dstartperl="#! perl" \ + -Dccdlflags="-Wl,-rpath=$libDir/perl5/$portVersion/$perlArchName/CORE" \ + -Dusesitecustomize \ + -de + + # force-remove path from sed + sed -i -e 's/LOC_SED\s*"\/bin\/sed/LOC_SED "sed/' config.h + + make $jobArgs +} + +INSTALL() +{ + make install + chmod a+x $binDir/{perl,psed,pstruct,perlthanks} + + # copy script into site_perl that takes care of massaging @INC into what we need. + cp sitecustomize.pl $prefix/non-packaged/lib/perl5/site_perl/$portVersion/ +} + +TEST() +{ + make test +} diff --git a/dev-lang/python/patches/python-2.6.9.patchset b/dev-lang/python/patches/python-2.6.9.patchset new file mode 100644 index 000000000..284cf52cb --- /dev/null +++ b/dev-lang/python/patches/python-2.6.9.patchset @@ -0,0 +1,877 @@ +From 5ccf5800d437d3abbfd13b4f2ccf86b1606deb8c Mon Sep 17 00:00:00 2001 +From: Oliver Tappe +Date: Sat, 12 Oct 2013 17:37:25 +0200 +Subject: applying patch python-2.6.8.patch + + +diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py +index aeb6b74..2edcc48 100644 +--- a/Lib/distutils/command/build_ext.py ++++ b/Lib/distutils/command/build_ext.py +@@ -234,9 +234,13 @@ class build_ext (Command): + + # for extensions under Linux or Solaris with a shared Python library, + # Python's library directory must be appended to library_dirs ++ # For Haiku the situation is similar, though more correctly the ++ # develop/lib path should be used. Due to the naming scheme used for the ++ # python library it works nonetheless. + sysconfig.get_config_var('Py_ENABLE_SHARED') + if ((sys.platform.startswith('linux') or sys.platform.startswith('gnu') +- or sys.platform.startswith('sunos')) ++ or sys.platform.startswith('sunos') ++ or sys.platform.startswith('haiku')) + and sysconfig.get_config_var('Py_ENABLE_SHARED')): + if sys.executable.startswith(os.path.join(sys.exec_prefix, "bin")): + # building third party extensions +diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py +index 46d23ec..5354cf1 100644 +--- a/Lib/distutils/sysconfig.py ++++ b/Lib/distutils/sysconfig.py +@@ -85,7 +85,8 @@ def get_python_inc(plat_specific=0, prefix=None): + # Include is located in the srcdir + inc_dir = os.path.join(srcdir, "Include") + return inc_dir +- return os.path.join(prefix, "include", "python" + get_python_version()) ++ inc_dir = "include" if sys.platform != "haiku1" else "develop/headers" ++ return os.path.join(prefix, inc_dir, "python" + get_python_version()) + elif os.name == "nt": + return os.path.join(prefix, "include") + elif os.name == "mac": +diff --git a/Lib/plat-haiku1/IN.py b/Lib/plat-haiku1/IN.py +new file mode 100644 +index 0000000..362cb41 +--- /dev/null ++++ b/Lib/plat-haiku1/IN.py +@@ -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 --git a/Lib/plat-haiku1/regen b/Lib/plat-haiku1/regen +new file mode 100644 +index 0000000..d9da80c +--- /dev/null ++++ b/Lib/plat-haiku1/regen +@@ -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 --git a/Lib/test/test_fileio.py b/Lib/test/test_fileio.py +index 7eeef7b..b1938fd 100644 +--- a/Lib/test/test_fileio.py ++++ b/Lib/test/test_fileio.py +@@ -152,6 +152,7 @@ class OtherFileTests(unittest.TestCase): + self.assertEquals(f.writable(), True) + if sys.platform != "darwin" and \ + 'bsd' not in sys.platform and \ ++ 'haiku' not in sys.platform and \ + not sys.platform.startswith('sunos'): + # Somehow /dev/tty appears seekable on some BSDs + self.assertEquals(f.seekable(), False) +diff --git a/Makefile.pre.in b/Makefile.pre.in +index ce4fbdc..aba9464 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -90,7 +90,7 @@ BINDIR= @bindir@ + LIBDIR= @libdir@ + MANDIR= @mandir@ + INCLUDEDIR= @includedir@ +-CONFINCLUDEDIR= $(exec_prefix)/include ++CONFINCLUDEDIR= $(INCLUDEDIR) + SCRIPTDIR= $(prefix)/lib + + # Detailed destination directories +diff --git a/Modules/resource.c b/Modules/resource.c +index 9993b93..f8befde 100644 +--- a/Modules/resource.c ++++ b/Modules/resource.c +@@ -86,6 +86,7 @@ resource_getrusage(PyObject *self, PyObject *args) + 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 @@ resource_getrusage(PyObject *self, PyObject *args) + 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 --git a/Modules/socketmodule.c b/Modules/socketmodule.c +index a28116c..62c5813 100644 +--- a/Modules/socketmodule.c ++++ b/Modules/socketmodule.c +@@ -4661,7 +4661,9 @@ init_socket(void) + #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 --git a/Modules/socketmodule.h b/Modules/socketmodule.h +index 9b85773..8e35a64 100644 +--- a/Modules/socketmodule.h ++++ b/Modules/socketmodule.h +@@ -47,6 +47,10 @@ typedef int socklen_t; + # undef AF_NETLINK + #endif + ++#if defined(__HAIKU__) ++#undef HAVE_BLUETOOTH_BLUETOOTH_H ++#endif ++ + #ifdef HAVE_BLUETOOTH_BLUETOOTH_H + #include + #include +diff --git a/Modules/spwdmodule.c b/Modules/spwdmodule.c +index 957de58..69be5bb 100644 +--- a/Modules/spwdmodule.c ++++ b/Modules/spwdmodule.c +@@ -79,7 +79,9 @@ static PyObject *mkspent(struct spwd *p) + + 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 --git a/Python/bltinmodule.c b/Python/bltinmodule.c +index 57d9df8..83c9a2e 100644 +--- a/Python/bltinmodule.c ++++ b/Python/bltinmodule.c +@@ -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 --git a/Tools/scripts/h2py.py b/Tools/scripts/h2py.py +index 63e7336..65cd21f 100755 +--- a/Tools/scripts/h2py.py ++++ b/Tools/scripts/h2py.py +@@ -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 @@ except KeyError: + 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 --git a/configure.in b/configure.in +index f3d34f2..aedd433 100644 +--- a/configure.in ++++ b/configure.in +@@ -745,7 +745,7 @@ if test $enable_shared = "yes"; then + 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} +@@ -753,6 +753,9 @@ if test $enable_shared = "yes"; then + FreeBSD*) + SOVERSION=`echo $SOVERSION|cut -d "." -f 1` + ;; ++ Haiku*) ++ RUNSHARED=LIBRARY_PATH=`pwd`:${LIBRARY_PATH} ++ ;; + esac + INSTSONAME="$LDLIBRARY".$SOVERSION + ;; +@@ -823,7 +826,7 @@ AC_PROG_INSTALL + 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 +1832,7 @@ then + 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 - +Date: Sun, 13 Oct 2013 17:01:30 +0200 +Subject: Adjust package folders for Python modules. + +* move standard site-packaged into non-packaged hierarchy, as it has to + be writable +* rename directory for packaged python modules to 'vendor-packages' +* add support for automatically switching to 'vendor-packages' directory + when environment variable 'HAIKU_USE_VENDOR_DIRECTORIES' is set + +diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py +index 44c7692..ff8c01e 100644 +--- a/Lib/distutils/command/install.py ++++ b/Lib/distutils/command/install.py +@@ -97,6 +97,34 @@ INSTALL_SCHEMES = { + 'scripts': '$userbase/bin', + 'data' : '$userbase', + }, ++ 'haiku': { ++ 'purelib': '$base/non-packaged/lib/python$py_version_short/site-packages', ++ 'platlib': '$platbase/non-packaged/lib/python$py_version_short/site-packages', ++ 'headers': '$base/non-packaged/develop/headers/python$py_version_short/$dist_name', ++ 'scripts': '$base/non-packaged/bin', ++ 'data' : '$base/non-packaged', ++ }, ++ 'haiku_vendor': { ++ 'purelib': '$base/lib/python$py_version_short/vendor-packages', ++ 'platlib': '$platbase/lib/python$py_version_short/vendor-packages', ++ 'headers': '$base/develop/headers/python$py_version_short/$dist_name', ++ 'scripts': '$base/bin', ++ 'data' : '$base', ++ }, ++ 'haiku_home': { ++ 'purelib': '$base/lib/python', ++ 'platlib': '$base/lib/python', ++ 'headers': '$base/develop/headers/python/$dist_name', ++ 'scripts': '$base/bin', ++ 'data' : '$base', ++ }, ++ 'haiku_user': { ++ 'purelib': '$usersite', ++ 'platlib': '$usersite', ++ 'headers': '$userbase/develop/headers/python$py_version_short/$dist_name', ++ 'scripts': '$userbase/bin', ++ 'data' : '$userbase', ++ }, + } + + # The keys to an installation scheme; if any new types of files are to be +@@ -430,10 +458,16 @@ class install (Command): + raise DistutilsPlatformError( + "User base directory is not specified") + self.install_base = self.install_platbase = self.install_userbase +- self.select_scheme("unix_user") ++ if sys.platform.startswith('haiku'): ++ self.select_scheme("haiku_user") ++ else: ++ self.select_scheme("unix_user") + elif self.home is not None: + self.install_base = self.install_platbase = self.home +- self.select_scheme("unix_home") ++ if sys.platform.startswith('haiku'): ++ self.select_scheme("haiku_home") ++ else: ++ self.select_scheme("unix_home") + else: + if self.prefix is None: + if self.exec_prefix is not None: +@@ -449,7 +483,13 @@ class install (Command): + + self.install_base = self.prefix + self.install_platbase = self.exec_prefix +- self.select_scheme("unix_prefix") ++ if sys.platform.startswith('haiku'): ++ if os.environ.get('HAIKU_USE_VENDOR_DIRECTORIES') == '1': ++ self.select_scheme("haiku_vendor") ++ else: ++ self.select_scheme("haiku") ++ else: ++ self.select_scheme("unix_prefix") + + # finalize_unix () + +diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py +index 5354cf1..017a94c 100644 +--- a/Lib/distutils/sysconfig.py ++++ b/Lib/distutils/sysconfig.py +@@ -120,12 +120,20 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None): + prefix = plat_specific and EXEC_PREFIX or PREFIX + + if os.name == "posix": +- libpython = os.path.join(prefix, +- "lib", "python" + get_python_version()) +- if standard_lib: +- return libpython ++ if sys.platform.startswith('haiku'): ++ if standard_lib: ++ return os.path.join(prefix, ++ "lib", "python" + get_python_version()) ++ return os.path.join(prefix, "non-packaged", ++ "lib", "python" + get_python_version(), ++ "site-packages") + else: +- return os.path.join(libpython, "site-packages") ++ libpython = os.path.join(prefix, ++ "lib", "python" + get_python_version()) ++ if standard_lib: ++ return libpython ++ else: ++ return os.path.join(libpython, "site-packages") + + elif os.name == "nt": + if standard_lib: +diff --git a/Lib/site.py b/Lib/site.py +index 66c56c2..304f994 100644 +--- a/Lib/site.py ++++ b/Lib/site.py +@@ -241,6 +241,11 @@ def addusersitepackages(known_paths): + USER_SITE = os.path.join(USER_BASE, + "Python" + sys.version[0] + sys.version[2], + "site-packages") ++ elif sys.platform.startswith('haiku'): ++ USER_BASE = env_base if env_base else joinuser("~", "non-packaged") ++ USER_SITE = os.path.join(USER_BASE, "lib", ++ "python" + sys.version[:3], ++ "site-packages") + else: + USER_BASE = env_base if env_base else joinuser("~", ".local") + USER_SITE = os.path.join(USER_BASE, "lib", +@@ -264,6 +269,13 @@ def addsitepackages(known_paths): + + if sys.platform in ('os2emx', 'riscos'): + sitedirs.append(os.path.join(prefix, "Lib", "site-packages")) ++ elif sys.platform.startswith('haiku'): ++ sitedirs.append(os.path.join(prefix, "non-packaged", "lib", ++ "python" + sys.version[:3], ++ "site-packages")) ++ sitedirs.append(os.path.join(prefix, "lib", ++ "python" + sys.version[:3], ++ "vendor-packages")) + elif os.sep == '/': + sitedirs.append(os.path.join(prefix, "lib", + "python" + sys.version[:3], +-- +1.8.3.4 + + +From 17c8d2590189838ef19b08fb0ce7976d03b1cabc Mon Sep 17 00:00:00 2001 +From: Oliver Tappe +Date: Sun, 13 Oct 2013 17:06:48 +0200 +Subject: Drop references to common hierarchy. + + +diff --git a/setup.py b/setup.py +index 930a368..41a16a2 100644 +--- a/setup.py ++++ b/setup.py +@@ -429,13 +429,9 @@ class PyBuildExt(build_ext): + inc_dirs += os.getenv('C_INCLUDE_PATH', '').split(os.pathsep) + + if platform == 'haiku1': +- inc_dirs += ['/boot/common/non-packaged/develop/headers', +- '/boot/common/develop/headers', +- '/boot/system/develop/headers/posix', ++ inc_dirs += ['/boot/system/develop/headers/posix', + '/boot/system/develop/headers'] +- lib_dirs += ['/boot/common/non-packaged/develop/lib', +- '/boot/common/develop/lib', +- '/boot/system/develop/lib'] ++ lib_dirs += ['/boot/system/develop/lib'] + + # OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb) + if platform in ['osf1', 'unixware7', 'openunix8']: +-- +1.8.3.4 + +From 65db0c5cdfce63260e3b0f7f171a51273e18a40d Mon Sep 17 00:00:00 2001 +From: Alexander von Gluck IV +Date: Wed, 22 Jan 2014 00:08:14 +0000 +Subject: [PATCH] haiku: Fix home non-packaged dir + +--- + Lib/site.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Lib/site.py b/Lib/site.py +index 304f994..74b0785 100644 +--- a/Lib/site.py ++++ b/Lib/site.py +@@ -242,7 +242,7 @@ def addusersitepackages(known_paths): + "Python" + sys.version[0] + sys.version[2], + "site-packages") + elif sys.platform.startswith('haiku'): +- USER_BASE = env_base if env_base else joinuser("~", "non-packaged") ++ USER_BASE = env_base if env_base else joinuser("~", "config", "non-packaged") + USER_SITE = os.path.join(USER_BASE, "lib", + "python" + sys.version[:3], + "site-packages") +-- +1.8.3.4 + diff --git a/dev-lang/python/patches/python-2.7.6.patchset b/dev-lang/python/patches/python-2.7.6.patchset new file mode 100644 index 000000000..22d516fe1 --- /dev/null +++ b/dev-lang/python/patches/python-2.7.6.patchset @@ -0,0 +1,783 @@ +From faaf6967e31a129b062c3a3a9b6752944aee865f Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Wed, 12 Mar 2014 21:17:06 +0000 +Subject: initial Haiku patch + + +diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py +index b9f1c6c..7be61d3 100644 +--- a/Lib/distutils/command/install.py ++++ b/Lib/distutils/command/install.py +@@ -83,6 +83,35 @@ INSTALL_SCHEMES = { + 'scripts': '$userbase/bin', + 'data' : '$userbase', + }, ++ 'haiku': { ++ 'purelib': '$base/non-packaged/lib/python$py_version_short/site-packages', ++ 'platlib': '$platbase/non-packaged/lib/python$py_version_short/site-packages', ++ 'headers': '$base/non-packaged/develop/headers/python$py_version_short/$dist_name', ++ 'scripts': '$base/non-packaged/bin', ++ 'data' : '$base/non-packaged', ++ }, ++ 'haiku_vendor': { ++ 'purelib': '$base/lib/python$py_version_short/vendor-packages', ++ 'platlib': '$platbase/lib/python$py_version_short/vendor-packages', ++ 'headers': '$base/develop/headers/python$py_version_short/$dist_name', ++ 'scripts': '$base/bin', ++ 'data' : '$base', ++ }, ++ 'haiku_home': { ++ 'purelib': '$base/lib/python', ++ 'platlib': '$base/lib/python', ++ 'headers': '$base/develop/headers/python/$dist_name', ++ 'scripts': '$base/bin', ++ 'data' : '$base', ++ }, ++ 'haiku_user': { ++ 'purelib': '$usersite', ++ 'platlib': '$usersite', ++ 'headers': '$userbase/develop/headers/python$py_version_short/$dist_name', ++ 'scripts': '$userbase/bin', ++ 'data' : '$userbase', ++ }, ++ + } + + # The keys to an installation scheme; if any new types of files are to be +@@ -416,10 +445,16 @@ class install (Command): + raise DistutilsPlatformError( + "User base directory is not specified") + self.install_base = self.install_platbase = self.install_userbase +- self.select_scheme("unix_user") ++ if sys.platform.startswith('haiku'): ++ self.select_scheme("haiku_user") ++ else: ++ self.select_scheme("unix_user") + elif self.home is not None: + self.install_base = self.install_platbase = self.home +- self.select_scheme("unix_home") ++ if sys.platform.startswith('haiku'): ++ self.select_scheme("haiku_home") ++ else: ++ self.select_scheme("unix_home") + else: + if self.prefix is None: + if self.exec_prefix is not None: +@@ -435,7 +470,13 @@ class install (Command): + + self.install_base = self.prefix + self.install_platbase = self.exec_prefix +- self.select_scheme("unix_prefix") ++ if sys.platform.startswith('haiku'): ++ if os.environ.get('HAIKU_USE_VENDOR_DIRECTORIES') == '1': ++ self.select_scheme("haiku_vendor") ++ else: ++ self.select_scheme("haiku") ++ else: ++ self.select_scheme("unix_prefix") + + # finalize_unix () + +diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py +index 4aa9334..d06e5e8 100644 +--- a/Lib/distutils/sysconfig.py ++++ b/Lib/distutils/sysconfig.py +@@ -90,7 +90,8 @@ def get_python_inc(plat_specific=0, prefix=None): + # Include is located in the srcdir + inc_dir = os.path.join(srcdir, "Include") + return inc_dir +- return os.path.join(prefix, "include", "python" + get_python_version()) ++ inc_dir = "include" if sys.platform != "haiku1" else "develop/headers" ++ return os.path.join(prefix, inc_dir, "python" + get_python_version()) + elif os.name == "nt": + return os.path.join(prefix, "include") + elif os.name == "os2": +@@ -119,12 +120,20 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None): + prefix = plat_specific and EXEC_PREFIX or PREFIX + + if os.name == "posix": +- libpython = os.path.join(prefix, +- "lib", "python" + get_python_version()) +- if standard_lib: +- return libpython ++ if sys.platform.startswith('haiku'): ++ if standard_lib: ++ return os.path.join(prefix, ++ "lib", "python" + get_python_version()) ++ return os.path.join(prefix, "non-packaged", ++ "lib", "python" + get_python_version(), ++ "site-packages") + else: +- return os.path.join(libpython, "site-packages") ++ libpython = os.path.join(prefix, ++ "lib", "python" + get_python_version()) ++ if standard_lib: ++ return libpython ++ else: ++ return os.path.join(libpython, "site-packages") + + elif os.name == "nt": + if standard_lib: +diff --git a/Lib/plat-haiku1/IN.py b/Lib/plat-haiku1/IN.py +new file mode 100644 +index 0000000..362cb41 +--- /dev/null ++++ b/Lib/plat-haiku1/IN.py +@@ -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 --git a/Lib/plat-haiku1/regen b/Lib/plat-haiku1/regen +new file mode 100644 +index 0000000..d9da80c +--- /dev/null ++++ b/Lib/plat-haiku1/regen +@@ -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 --git a/Lib/test/test_fileio.py b/Lib/test/test_fileio.py +index e7955cc..703ddf6 100644 +--- a/Lib/test/test_fileio.py ++++ b/Lib/test/test_fileio.py +@@ -297,6 +297,7 @@ class OtherFileTests(unittest.TestCase): + self.assertEqual(f.writable(), True) + if sys.platform != "darwin" and \ + 'bsd' not in sys.platform and \ ++ 'haiku' not in sys.platform and \ + not sys.platform.startswith('sunos'): + # Somehow /dev/tty appears seekable on some BSDs + self.assertEqual(f.seekable(), False) +diff --git a/Modules/resource.c b/Modules/resource.c +index 53a6c3e..6c5f52f 100644 +--- a/Modules/resource.c ++++ b/Modules/resource.c +@@ -86,6 +86,7 @@ resource_getrusage(PyObject *self, PyObject *args) + 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,6 +101,7 @@ resource_getrusage(PyObject *self, PyObject *args) + 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); +diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c +index 2735ecc..fb01c63 100644 +--- a/Modules/socketmodule.c ++++ b/Modules/socketmodule.c +@@ -4865,7 +4865,9 @@ init_socket(void) + #ifndef __BEOS__ + /* We have incomplete socket support. */ + PyModule_AddIntConstant(m, "SOCK_RAW", SOCK_RAW); ++#ifndef __HAIKU__ + PyModule_AddIntConstant(m, "SOCK_SEQPACKET", SOCK_SEQPACKET); ++#endif + #if defined(SOCK_RDM) + PyModule_AddIntConstant(m, "SOCK_RDM", SOCK_RDM); + #endif +diff --git a/Modules/socketmodule.h b/Modules/socketmodule.h +index 8515499..4e33e4f 100644 +--- a/Modules/socketmodule.h ++++ b/Modules/socketmodule.h +@@ -47,6 +47,10 @@ typedef int socklen_t; + # undef AF_NETLINK + #endif + ++#if defined(__HAIKU__) ++#undef HAVE_BLUETOOTH_BLUETOOTH_H ++#endif ++ + #ifdef HAVE_BLUETOOTH_BLUETOOTH_H + #include + #include +diff --git a/Modules/spwdmodule.c b/Modules/spwdmodule.c +index 957de58..69be5bb 100644 +--- a/Modules/spwdmodule.c ++++ b/Modules/spwdmodule.c +@@ -79,7 +79,9 @@ static PyObject *mkspent(struct spwd *p) + + 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 --git a/Modules/timemodule.c b/Modules/timemodule.c +index 12c43b0..206b325 100644 +--- a/Modules/timemodule.c ++++ b/Modules/timemodule.c +@@ -1006,11 +1006,11 @@ floatsleep(double secs) + 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 --git a/Python/bltinmodule.c b/Python/bltinmodule.c +index d22dca2..9a5d561 100644 +--- a/Python/bltinmodule.c ++++ b/Python/bltinmodule.c +@@ -19,7 +19,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 --git a/Tools/scripts/h2py.py b/Tools/scripts/h2py.py +index c64501e..7df3ad7 100755 +--- a/Tools/scripts/h2py.py ++++ b/Tools/scripts/h2py.py +@@ -50,7 +50,7 @@ except KeyError: + 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 --git a/configure.ac b/configure.ac +index 891d568..24959b3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -883,7 +883,7 @@ if test $enable_shared = "yes"; then + RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH} + INSTSONAME="$LDLIBRARY".$SOVERSION + ;; +- Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*) ++ Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*|Haiku*) + LDLIBRARY='libpython$(VERSION).so' + BLDLIBRARY='-L. -lpython$(VERSION)' + RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH} +@@ -891,6 +891,9 @@ if test $enable_shared = "yes"; then + FreeBSD*) + SOVERSION=`echo $SOVERSION|cut -d "." -f 1` + ;; ++ Haiku*) ++ RUNSHARED=LIBRARY_PATH=`pwd`:${LIBRARY_PATH} ++ ;; + esac + INSTSONAME="$LDLIBRARY".$SOVERSION + ;; +@@ -1006,7 +1009,7 @@ AC_PROG_MKDIR_P + 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;; +@@ -2024,7 +2027,7 @@ then + fi + fi + ;; +- Linux*|GNU*|QNX*) ++ Linux*|GNU*|QNX*|Haiku*) + LDSHARED='$(CC) -shared' + LDCXXSHARED='$(CXX) -shared';; + BSD/OS*/4*) +@@ -2096,7 +2099,7 @@ then + 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*) +@@ -2128,7 +2131,7 @@ then + 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/*) + # -u _PyMac_Error is needed to pull in the mac toolbox glue, +@@ -2243,14 +2246,16 @@ case "$ac_sys_system" in + esac + + # Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl. +-# BeOS' sockets are stashed in libnet. + AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4 + AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets + ++# BeOS' sockets are stashed in libnet. ++# Haiku's sockets are stashed in libnetwork. + case "$ac_sys_system" in +-BeOS*) +-AC_CHECK_LIB(net, socket, [LIBS="-lnet $LIBS"], [], $LIBS) # BeOS +-;; ++ BeOS*) ++ AC_CHECK_LIB(net, socket, [LIBS="-lnet $LIBS"], [], $LIBS);; ++ Haiku*) ++ AC_CHECK_LIB(network, socket, [LIBS="-lnetwork $LIBS"], [], $LIBS);; + esac + + AC_MSG_CHECKING(for --with-libs) +@@ -3586,7 +3591,7 @@ fi], + AC_SUBST(LIBM) + case $ac_sys_system in + Darwin) ;; +-BeOS) ;; ++BeOS|Haiku) ;; + *) LIBM=-lm + esac + AC_MSG_CHECKING(for --with-libm=STRING) +diff --git a/setup.py b/setup.py +index 40ad843..24621ef 100644 +--- a/setup.py ++++ b/setup.py +@@ -523,6 +523,12 @@ class PyBuildExt(build_ext): + lib_dirs += os.getenv('LIBRARY_PATH', '').split(os.pathsep) + inc_dirs += ['/system/include', '/atheos/autolnk/include'] + inc_dirs += os.getenv('C_INCLUDE_PATH', '').split(os.pathsep) ++ ++ # Haiku-specific include and library locations ++ if host_platform == 'haiku1': ++ inc_dirs += ['/boot/develop/headers/posix', ++ '/boot/system/develop/headers'] ++ lib_dirs += ['/boot/system/develop/lib'] + + # OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb) + if host_platform in ['osf1', 'unixware7', 'openunix8']: +@@ -551,7 +557,7 @@ class PyBuildExt(build_ext): + + # Check for MacOS X, which doesn't need libm.a at all + math_libs = ['m'] +- if host_platform in ['darwin', 'beos']: ++ if host_platform in ['darwin', 'beos', 'haiku1']: + math_libs = [] + + # XXX Omitted modules: gl, pure, dl, SGI-specific modules +@@ -788,15 +794,22 @@ class PyBuildExt(build_ext): + '/usr/local/ssl/include', + '/usr/contrib/ssl/include/' + ] +- ssl_incs = find_file('openssl/ssl.h', inc_dirs, ++ ssl_incs = find_file('openssl/ssl.h', [], ++ inc_dirs + search_for_ssl_incs_in ++ ) ++ ssl_incs_to_add = find_file('openssl/ssl.h', inc_dirs, + search_for_ssl_incs_in + ) + if ssl_incs is not None: + krb5_h = find_file('krb5.h', inc_dirs, + ['/usr/kerberos/include']) + if krb5_h: +- ssl_incs += krb5_h +- ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs, ++ ssl_incs_to_add += krb5_h ++ ssl_libs = find_library_file(self.compiler, 'ssl', [], ++ lib_dirs + ['/usr/local/ssl/lib', ++ '/usr/contrib/ssl/lib/' ++ ] ) ++ ssl_libs_to_add = find_library_file(self.compiler, 'ssl', lib_dirs, + ['/usr/local/ssl/lib', + '/usr/contrib/ssl/lib/' + ] ) +@@ -804,8 +817,8 @@ class PyBuildExt(build_ext): + if (ssl_incs is not None and + ssl_libs is not None): + exts.append( Extension('_ssl', ['_ssl.c'], +- include_dirs = ssl_incs, +- library_dirs = ssl_libs, ++ include_dirs = ssl_incs_to_add, ++ library_dirs = ssl_libs_to_add, + libraries = ['ssl', 'crypto'], + depends = ['socketmodule.h']), ) + else: +@@ -843,8 +856,8 @@ class PyBuildExt(build_ext): + # The _hashlib module wraps optimized implementations + # of hash functions from the OpenSSL library. + exts.append( Extension('_hashlib', ['_hashopenssl.c'], +- include_dirs = ssl_incs, +- library_dirs = ssl_libs, ++ include_dirs = ssl_incs_to_add, ++ library_dirs = ssl_libs_to_add, + libraries = ['ssl', 'crypto']) ) + else: + print ("warning: openssl 0x%08x is too old for _hashlib" % +@@ -1324,7 +1337,7 @@ class PyBuildExt(build_ext): + missing.append('resource') + + # Sun yellow pages. Some systems have the functions in libc. +- if (host_platform not in ['cygwin', 'atheos', 'qnx6'] and ++ if (host_platform not in ['cygwin', 'atheos', 'qnx6', 'haiku1'] and + find_file('rpcsvc/yp_prot.h', inc_dirs, []) is not None): + if (self.compiler.find_library_file(lib_dirs, 'nsl')): + libs = ['nsl'] +-- +1.8.3.4 + + +From 6e1205e2b0b90002f678ed93a8a27ab567e8bd86 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Sat, 5 Apr 2014 21:16:40 +0000 +Subject: fix pyconfig.h path + + +diff --git a/Makefile.pre.in b/Makefile.pre.in +index cf75650..bb54b6f 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -105,7 +105,7 @@ BINDIR= @bindir@ + LIBDIR= @libdir@ + MANDIR= @mandir@ + INCLUDEDIR= @includedir@ +-CONFINCLUDEDIR= $(exec_prefix)/include ++CONFINCLUDEDIR= $(INCLUDEDIR) + SCRIPTDIR= $(prefix)/lib + + # Detailed destination directories +-- +1.8.3.4 + diff --git a/dev-lang/python/python-2.6.8.recipe b/dev-lang/python/python-2.6.8.recipe index 3ed5318e0..a33e1ae05 100644 --- a/dev-lang/python/python-2.6.8.recipe +++ b/dev-lang/python/python-2.6.8.recipe @@ -1,14 +1,18 @@ SUMMARY="An interpreted, interactive, object-oriented programming language" -DESCRIPTION="Python is a programming language that lets you work more quickly and integrate your systems more effectively. You can learn to use Python and see almost immediate gains in productivity and lower maintenance costs. - -Python runs on Windows, Linux/Unix, Mac OS X, and has been ported to the Java and .NET virtual machines. - -Python is free to use, even for commercial products, because of its OSI-approved open source license." +DESCRIPTION=" +Python is a programming language that lets you work more quickly and integrate \ +your systems more effectively. You can learn to use Python and see almost \ +immediate gains in productivity and lower maintenance costs. +Python runs on Windows, Linux/Unix, Mac OS X, and has been ported to the Java \ +and .NET virtual machines. +Python is free to use, even for commercial products, because of its \ +OSI-approved open source license. +" HOMEPAGE="http://www.python.org" LICENSE="Python" COPYRIGHT="1990-2012, Python Software Foundation" SRC_URI="http://www.python.org/ftp/python/2.6.8/Python-2.6.8.tar.bz2" -CHECKSUM_MD5="c6e0420a21d8b23dee8b0195c9b9a125" +CHECKSUM_SHA256="c34036718ee1f091736677f543bc7960861cf9fcbea77d49572b59f7f1ab3c3f" REVISION="6" ARCHITECTURES="x86_gcc2 x86 x86_64" diff --git a/dev-lang/python/python-2.6.9.recipe b/dev-lang/python/python-2.6.9.recipe new file mode 100644 index 000000000..1501779ad --- /dev/null +++ b/dev-lang/python/python-2.6.9.recipe @@ -0,0 +1,115 @@ +SUMMARY="An interpreted, interactive, object-oriented programming language" +DESCRIPTION=" +Python is a programming language that lets you work more quickly and integrate \ +your systems more effectively. You can learn to use Python and see almost \ +immediate gains in productivity and lower maintenance costs. +Python runs on Windows, Linux/Unix, Mac OS X, and has been ported to the Java \ +and .NET virtual machines. +Python is free to use, even for commercial products, because of its \ +OSI-approved open source license. +" +HOMEPAGE="http://www.python.org" +LICENSE="Python" +COPYRIGHT="1990-2012, Python Software Foundation" +SRC_URI="https://www.python.org/ftp/python/2.6.9/Python-2.6.9.tar.xz" +CHECKSUM_SHA256="cae7bb995006ea5b703d9d28446f694894c441fe4bfb95d561c0ac908cd06e41" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" + +PATCHES="python-2.6.9.patchset" + +PROVIDES=" + python = $portVersion compat >= 2.6 + cmd:2to3 = $portVersion compat >= 2.6 + cmd:idle = $portVersion compat >= 2.6 + cmd:pydoc = $portVersion compat >= 2.6 + cmd:python = $portVersion compat >= 2.6 + cmd:python2.6 = $portVersion compat >= 2.6 + cmd:python2.6_config = $portVersion compat >= 2.6 + cmd:python_config = $portVersion compat >= 2.6 + cmd:smtpd.py = $portVersion compat >= 2.6 + devel:libpython2.6 = 1.0 + lib:libpython2.6 = 1.0 + " +REQUIRES=" + haiku >= $haikuVersion + cmd:nano + lib:libbz2 + lib:libncurses + lib:libssl + lib:libreadline + lib:libsqlite3 + lib:libz + " +BUILD_REQUIRES=" + devel:libbz2 + devel:libncurses + devel:libssl + devel:libreadline + devel:libsqlite3 + devel:libz + " +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:find + cmd:gcc + cmd:ld + cmd:libtoolize + cmd:make + cmd:nano + " + +SOURCE_DIR="Python-2.6.9" + +GLOBAL_WRITABLE_FILES=" + non-packaged/lib/python2.6/site-packages directory keep-old + " + +PATCH() +{ + echo "AC_CONFIG_MACRO_DIR([m4])" >> configure.in +} + +BUILD() +{ + cd Modules/_ctypes/libffi + libtoolize --force --copy --install + cd ../../.. + + libtoolize --force --copy --install + aclocal + autoconf + runConfigure ./configure \ + --enable-shared \ + --enable-unicode=ucs4 + + # prevent make from rebuilding stuff that requires python + touch Parser/asdl* Python/Python-ast.c Include/Python-ast.h + + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libpython2.6 + + mkdir -p $prefix/lib/python2.6/vendor-packages + echo 'This directory contains packaged python modules.' \ + >$prefix/lib/python2.6/vendor-packages/README + + mkdir -p $prefix/non-packaged/lib/python2.6 + mv $prefix/lib/python2.6/site-packages $prefix/non-packaged/lib/python2.6/ +} + +TEST() +{ + 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 + + python regrtest.py +} diff --git a/dev-lang/python/python-2.7.6.recipe b/dev-lang/python/python-2.7.6.recipe new file mode 100644 index 000000000..ada901e8a --- /dev/null +++ b/dev-lang/python/python-2.7.6.recipe @@ -0,0 +1,112 @@ +SUMMARY="An interpreted, interactive, object-oriented programming language" +DESCRIPTION=" +Python is a programming language that lets you work more quickly and integrate \ +your systems more effectively. You can learn to use Python and see almost \ +immediate gains in productivity and lower maintenance costs. +Python runs on Windows, Linux/Unix, Mac OS X, and has been ported to the Java \ +and .NET virtual machines. +Python is free to use, even for commercial products, because of its \ +OSI-approved open source license. +" +HOMEPAGE="http://www.python.org" +LICENSE="Python" +COPYRIGHT="1990-2012, Python Software Foundation" +SRC_URI="https://www.python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz" +CHECKSUM_SHA256="1fd68e81f8bf7386ff239b7faee9ba387129d2cf34eab13350bd8503a0bff6a1" +REVISION="2" +ARCHITECTURES="!x86_gcc2 !x86 x86_64" + +PATCHES="python-2.7.6.patchset" + +PROVIDES=" + python = $portVersion compat >= 2.7 + cmd:2to3 = $portVersion compat >= 2.7 + cmd:idle = $portVersion compat >= 2.7 + cmd:pydoc = $portVersion compat >= 2.7 + cmd:python = $portVersion compat >= 2.7 + cmd:python2 = $portVersion compat >= 2.7 + cmd:python2_config = $portVersion compat >= 2.7 + cmd:python2.7 = $portVersion compat >= 2.7 + cmd:python2.7_config = $portVersion compat >= 2.7 + cmd:python_config = $portVersion compat >= 2.7 + cmd:smtpd.py = $portVersion compat >= 2.7 + devel:libpython2.7 = 1.0 + lib:libpython2.7 = 1.0 + " +REQUIRES=" + haiku >= $haikuVersion + cmd:nano + lib:libbz2 + lib:libncurses + lib:libssl + lib:libreadline + lib:libsqlite3 + lib:libz + " +BUILD_REQUIRES=" + devel:libbz2 + devel:libncurses + devel:libssl + devel:libreadline + devel:libsqlite3 + devel:libz + " +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:find + cmd:gcc + cmd:ld + cmd:libtoolize + cmd:make + cmd:nano + " + +SOURCE_DIR="Python-2.7.6" + +GLOBAL_WRITABLE_FILES=" + non-packaged/lib/python2.7/site-packages directory keep-old + " + +BUILD() +{ + cd Modules/_ctypes/libffi + libtoolize --force --copy --install + cd ../../.. + + libtoolize --force --copy --install + aclocal + autoconf + runConfigure ./configure \ + --enable-shared \ + --enable-unicode=ucs4 + + # prevent make from rebuilding stuff that requires python + touch Parser/asdl* Python/Python-ast.c Include/Python-ast.h + + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libpython2.7 + + mkdir -p $prefix/lib/python2.7/vendor-packages + echo 'This directory contains packaged python modules.' \ + >$prefix/lib/python2.7/vendor-packages/README + + mkdir -p $prefix/non-packaged/lib/python2.7 + mv $prefix/lib/python2.7/site-packages $prefix/non-packaged/lib/python2.7/ +} + +TEST() +{ + 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 + + python regrtest.py +} diff --git a/dev-lang/rebol/rebol-2.101.0.5.75.recipe b/dev-lang/rebol/rebol-2.101.0.5.75.recipe index 5c5046485..af73c4423 100644 --- a/dev-lang/rebol/rebol-2.101.0.5.75.recipe +++ b/dev-lang/rebol/rebol-2.101.0.5.75.recipe @@ -1,16 +1,50 @@ -DESCRIPTION="Language with lightweight domain-specific sublanguages and micro-formats" +SUMMARY="A lightweight scripting language" +DESCRIPTION=" +A scripting language that provides a lightweight platform for distributed \ +computing and communication. It is mainly designed for network communications, \ +providing effective solutions to modern network distributed applications. +" HOMEPAGE="http://www.rebol.com/" -SRC_URI="https://github.com/rebol/r3/archive/master.zip" -CHECKSUM_MD5="b6dc765aa910ad7d7e4af649d5e35431" +SRC_URI="https://github.com/rebol/r3/archive/4d9840f8e661e7067472e828ee6ad8dd3008b247.zip" +CHECKSUM_SHA256="9ad2601d5e18f070a442aed554b118ee4d2e06bdfe85413dc65613eb61c38d35" +SRC_FILENAME="rebol-r3-$portVersion.zip" +SRC_URI_2="http://ports-space.haiku-files.org/dev-lang/rebol/r3-make.zip" +CHECKSUM_SHA256_2="2a6dda70211787fcca4249c922378e891ca287c8c110affb386b5cc939ba4798" +SRC_FILENAME_2="rebol-r3-make-$portVersion.zip" +SRC_URI_3="https://github.com/rebolsource/rebol-test/archive/502075cc3a4116c1785081e602eb8e28efd3247f.zip" +CHECKSUM_SHA256_3="7d8415f467fbc87bfd77f21cf3fc2af5dfc6f129941a3a2daf1ed27ec2d194e1" +SRC_FILENAME_3="rebol-test-$portVersion.zip" +LICENSE="Apache v2" +COPYRIGHT="2014 REBOL Technologies" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" +ARCHITECTURES="x86_gcc2 x86 !x86_64" + +PROVIDES=" + rebol = $portVersion + cmd:r3 = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:gcc + cmd:make + cmd:nm + cmd:strip + " + +SOURCE_DIR="rebol-4d9840f8e661e7067472e828ee6ad8dd3008b247" BUILD() { - cd r3-master/make - wget http://metaeducation.com/media/shared/haiku/r3-make.zip - unzip r3-make.zip + cd make + cp $sourceDir2/r3-make-$targetArchitecture r3-make + chmod +x r3-make make make OS_ID=0.5.75 make prep make @@ -18,19 +52,14 @@ BUILD() INSTALL() { - cd r3-master/make - mkdir -p $DESTDIR`finddir B_COMMON_BIN_DIRECTORY` - install -m 0755 r3 $DESTDIR`finddir B_COMMON_BIN_DIRECTORY`/rebol + mkdir -p $binDir + cp make/r3 $binDir } TEST() { - mkdir -p tests + [ -d tests ] && rm -rf tests + mkdir 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 + ../make/r3 $sourceDir3/rebol-test-502075cc3a4116c1785081e602eb8e28efd3247f/run-recover.r } - -LICENSE="Apache v2" -COPYRIGHT="2013 REBOL Technologies" diff --git a/dev-lang/ruby/patches/ruby-1.9.1.patch b/dev-lang/ruby/patches/ruby-1.9.1.patchset similarity index 68% rename from dev-lang/ruby/patches/ruby-1.9.1.patch rename to dev-lang/ruby/patches/ruby-1.9.1.patchset index 875ddb8eb..d382648d4 100644 --- a/dev-lang/ruby/patches/ruby-1.9.1.patch +++ b/dev-lang/ruby/patches/ruby-1.9.1.patchset @@ -1,6 +1,13 @@ -diff -up ruby-1.9.1-p243/configure.in.orig ruby-1.9.1-p243/configure.in ---- ruby-1.9.1-p243/configure.in.orig 2009-05-11 09:06:48.016515072 -0600 -+++ ruby-1.9.1-p243/configure.in 2010-05-20 13:00:34.788529152 -0600 +From 7bab20a22b69de3239de475cbc72a5c39864f43c Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Mon, 11 Nov 2013 19:00:01 -0700 +Subject: applying patch ruby-1.9.1.patch + + +diff --git a/configure.in b/configure.in +index c98a024..113d4e5 100644 +--- a/configure.in ++++ b/configure.in @@ -1462,11 +1462,11 @@ if test "$with_dln_a_out" != yes; then haiku*) case "$target_cpu" in powerpc*) @@ -11,34 +18,14 @@ diff -up ruby-1.9.1-p243/configure.in.orig ruby-1.9.1-p243/configure.in i586*) : ${LDSHARED="ld -shared"} - DLDFLAGS="$DLDFLAGS -L/boot/develop/lib/x86 -lbe -lroot" -+ DLDFLAGS="$DLDFLAGS -L/boot/develop/lib/x86 -lroot -L/boot/common/lib" ++ DLDFLAGS="$DLDFLAGS -L/boot/system/develop/lib -lroot -L/boot/home/config/develop/lib" ;; esac : ${LIBPATHENV=LIBRARY_PATH} -diff -up ruby-1.9.1-p243/signal.c.orig ruby-1.9.1-p243/signal.c ---- ruby-1.9.1-p243/signal.c.orig 2009-02-22 02:48:12.048234496 -0700 -+++ ruby-1.9.1-p243/signal.c 2010-05-20 13:00:34.792461312 -0600 -@@ -34,7 +34,7 @@ typedef int rb_atomic_t; - # define ATOMIC_DEC(var) (--(var)) - #endif - --#ifdef __BEOS__ -+#if defined __BEOS__ || defined __HAIKU__ - #undef SIGBUS - #endif - -@@ -586,7 +586,7 @@ static int segv_received = 0; - static RETSIGTYPE - sigsegv(int sig SIGINFO_ARG) - { --#ifdef USE_SIGALTSTACK -+#if defined USE_SIGALTSTACK && defined SA_SIGINFO - int ruby_stack_overflowed_p(const rb_thread_t *, const void *); - NORETURN(void ruby_thread_stack_overflow(rb_thread_t *th)); - rb_thread_t *th = GET_THREAD(); -diff -up ruby-1.9.1-p243/ext/nkf/nkf-utf8/nkf.h.orig ruby-1.9.1-p243/ext/nkf/nkf-utf8/nkf.h ---- ruby-1.9.1-p243/ext/nkf/nkf-utf8/nkf.h.orig 2008-11-11 01:41:20.021757952 -0700 -+++ ruby-1.9.1-p243/ext/nkf/nkf-utf8/nkf.h 2010-05-20 13:00:34.794820608 -0600 +diff --git a/ext/nkf/nkf-utf8/nkf.h b/ext/nkf/nkf-utf8/nkf.h +index 0998837..814ceef 100644 +--- a/ext/nkf/nkf-utf8/nkf.h ++++ b/ext/nkf/nkf-utf8/nkf.h @@ -164,6 +164,11 @@ void setbinmode(FILE *fp) # ifndef HAVE_LOCALE_H # define HAVE_LOCALE_H @@ -51,9 +38,10 @@ diff -up ruby-1.9.1-p243/ext/nkf/nkf-utf8/nkf.h.orig ruby-1.9.1-p243/ext/nkf/nkf #else # ifndef HAVE_LANGINFO_H # define HAVE_LANGINFO_H -diff -up ruby-1.9.1-p243/ext/openssl/ossl.c.orig ruby-1.9.1-p243/ext/openssl/ossl.c ---- ruby-1.9.1-p243/ext/openssl/ossl.c.orig 2009-01-15 08:39:30.024641536 -0700 -+++ ruby-1.9.1-p243/ext/openssl/ossl.c 2010-05-20 13:00:34.797966336 -0600 +diff --git a/ext/openssl/ossl.c b/ext/openssl/ossl.c +index a3b612b..d900ef3 100644 +--- a/ext/openssl/ossl.c ++++ b/ext/openssl/ossl.c @@ -92,7 +92,7 @@ ossl_x509_ary2sk(VALUE ary) #define OSSL_IMPL_SK2ARY(name, type) \ @@ -81,9 +69,10 @@ diff -up ruby-1.9.1-p243/ext/openssl/ossl.c.orig ruby-1.9.1-p243/ext/openssl/oss rb_ary_push(ary, ossl_##name##_new(t)); \ } \ return ary; \ -diff -up ruby-1.9.1-p243/ext/openssl/ossl.h.orig ruby-1.9.1-p243/ext/openssl/ossl.h ---- ruby-1.9.1-p243/ext/openssl/ossl.h.orig 2008-09-25 21:05:47.024641536 -0600 -+++ ruby-1.9.1-p243/ext/openssl/ossl.h 2010-05-20 13:00:34.801112064 -0600 +diff --git a/ext/openssl/ossl.h b/ext/openssl/ossl.h +index ecddb80..fe24280 100644 +--- a/ext/openssl/ossl.h ++++ b/ext/openssl/ossl.h @@ -104,6 +104,13 @@ extern VALUE eOSSLError; } while (0) @@ -98,9 +87,10 @@ diff -up ruby-1.9.1-p243/ext/openssl/ossl.h.orig ruby-1.9.1-p243/ext/openssl/oss * String to HEXString conversion */ int string2hex(const unsigned char *, int, char **, int *); -diff -up ruby-1.9.1-p243/ext/openssl/ossl_config.c.orig ruby-1.9.1-p243/ext/openssl/ossl_config.c ---- ruby-1.9.1-p243/ext/openssl/ossl_config.c.orig 2010-05-20 13:16:19.708837376 -0600 -+++ ruby-1.9.1-p243/ext/openssl/ossl_config.c 2010-05-20 13:18:54.922746880 -0600 +diff --git a/ext/openssl/ossl_config.c b/ext/openssl/ossl_config.c +index bc5067f..5ec5b06 100644 +--- a/ext/openssl/ossl_config.c ++++ b/ext/openssl/ossl_config.c @@ -1,5 +1,5 @@ /* - * $Id: ossl_config.c 18971 2008-08-31 03:36:09Z nobu $ @@ -119,7 +109,7 @@ diff -up ruby-1.9.1-p243/ext/openssl/ossl_config.c.orig ruby-1.9.1-p243/ext/open */ static CONF *parse_config(VALUE, CONF*); -@@ -154,7 +154,7 @@ ossl_config_initialize(int argc, VALUE * +@@ -154,7 +154,7 @@ ossl_config_initialize(int argc, VALUE *argv, VALUE self) _CONF_new_data(conf); } #endif @@ -128,7 +118,7 @@ diff -up ruby-1.9.1-p243/ext/openssl/ossl_config.c.orig ruby-1.9.1-p243/ext/open return self; } -@@ -187,11 +187,30 @@ ossl_config_add_value(VALUE self, VALUE +@@ -187,11 +187,30 @@ ossl_config_add_value(VALUE self, VALUE section, VALUE name, VALUE value) OPENSSL_free(cv); ossl_raise(eConfigError, "_CONF_add_string failure"); } @@ -169,7 +159,7 @@ diff -up ruby-1.9.1-p243/ext/openssl/ossl_config.c.orig ruby-1.9.1-p243/ext/open rb_scan_args(argc, argv, "11", §ion, &name); /* support conf.value(nil, "HOME") -> conf.get_value("", "HOME") */ -@@ -247,6 +266,7 @@ ossl_config_set_section(VALUE self, VALU +@@ -247,6 +266,7 @@ ossl_config_set_section(VALUE self, VALUE section, VALUE hash) { VALUE arg[2]; @@ -177,7 +167,7 @@ diff -up ruby-1.9.1-p243/ext/openssl/ossl_config.c.orig ruby-1.9.1-p243/ext/open arg[0] = self; arg[1] = section; rb_block_call(hash, rb_intern("each"), 0, 0, set_conf_section_i, (VALUE)arg); -@@ -278,7 +298,7 @@ ossl_config_get_section(VALUE self, VALU +@@ -278,7 +298,7 @@ ossl_config_get_section(VALUE self, VALUE section) return hash; } for (i=0; iname), rb_str_new2(entry->value)); } -@@ -292,15 +312,16 @@ ossl_config_get_section_old(VALUE self, +@@ -292,15 +312,16 @@ ossl_config_get_section_old(VALUE self, VALUE section) return ossl_config_get_section(self, section); } @@ -225,7 +215,7 @@ diff -up ruby-1.9.1-p243/ext/openssl/ossl_config.c.orig ruby-1.9.1-p243/ext/open STACK_OF(CONF_VALUE) *sk; CONF_VALUE *v; int i, num; -@@ -338,7 +361,7 @@ dump_conf_value(CONF_VALUE *cv, VALUE st +@@ -338,7 +361,7 @@ dump_conf_value(CONF_VALUE *cv, VALUE str) rb_str_cat2(str, "\n"); } @@ -253,7 +243,7 @@ diff -up ruby-1.9.1-p243/ext/openssl/ossl_config.c.orig ruby-1.9.1-p243/ext/open { STACK_OF(CONF_VALUE) *sk; CONF_VALUE *v; -@@ -382,7 +406,7 @@ each_conf_value(CONF_VALUE *cv, void* du +@@ -382,7 +406,7 @@ each_conf_value(CONF_VALUE *cv, void* dummy) } } @@ -281,10 +271,11 @@ diff -up ruby-1.9.1-p243/ext/openssl/ossl_config.c.orig ruby-1.9.1-p243/ext/open rb_define_method(cConfig, "[]", ossl_config_get_section, 1); rb_define_method(cConfig, "section", ossl_config_get_section_old, 1); rb_define_method(cConfig, "[]=", ossl_config_set_section, 2); -diff -up ruby-1.9.1-p243/ext/openssl/ossl_pkcs7.c.orig ruby-1.9.1-p243/ext/openssl/ossl_pkcs7.c ---- ruby-1.9.1-p243/ext/openssl/ossl_pkcs7.c.orig 2008-07-22 09:34:23.027262976 -0600 -+++ ruby-1.9.1-p243/ext/openssl/ossl_pkcs7.c 2010-05-20 13:00:34.805044224 -0600 -@@ -572,12 +572,11 @@ ossl_pkcs7_add_certificate(VALUE self, V +diff --git a/ext/openssl/ossl_pkcs7.c b/ext/openssl/ossl_pkcs7.c +index f7cd156..644e91a 100644 +--- a/ext/openssl/ossl_pkcs7.c ++++ b/ext/openssl/ossl_pkcs7.c +@@ -572,12 +572,11 @@ ossl_pkcs7_add_certificate(VALUE self, VALUE cert) return self; } @@ -299,7 +290,7 @@ diff -up ruby-1.9.1-p243/ext/openssl/ossl_pkcs7.c.orig ruby-1.9.1-p243/ext/opens int i; GetPKCS7(self, pkcs7); -@@ -585,17 +584,38 @@ pkcs7_get_certs_or_crls(VALUE self, int +@@ -585,17 +584,38 @@ pkcs7_get_certs_or_crls(VALUE self, int want_certs) switch(i){ case NID_pkcs7_signed: certs = pkcs7->d.sign->cert; @@ -341,7 +332,7 @@ diff -up ruby-1.9.1-p243/ext/openssl/ossl_pkcs7.c.orig ruby-1.9.1-p243/ext/opens } static VALUE -@@ -610,7 +630,7 @@ ossl_pkcs7_set_certificates(VALUE self, +@@ -610,7 +630,7 @@ ossl_pkcs7_set_certificates(VALUE self, VALUE ary) STACK_OF(X509) *certs; X509 *cert; @@ -350,7 +341,7 @@ diff -up ruby-1.9.1-p243/ext/openssl/ossl_pkcs7.c.orig ruby-1.9.1-p243/ext/opens while((cert = sk_X509_pop(certs))) X509_free(cert); rb_block_call(ary, rb_intern("each"), 0, 0, ossl_pkcs7_set_certs_i, self); -@@ -620,7 +640,7 @@ ossl_pkcs7_set_certificates(VALUE self, +@@ -620,7 +640,7 @@ ossl_pkcs7_set_certificates(VALUE self, VALUE ary) static VALUE ossl_pkcs7_get_certificates(VALUE self) { @@ -359,7 +350,7 @@ diff -up ruby-1.9.1-p243/ext/openssl/ossl_pkcs7.c.orig ruby-1.9.1-p243/ext/opens } static VALUE -@@ -650,7 +670,7 @@ ossl_pkcs7_set_crls(VALUE self, VALUE ar +@@ -650,7 +670,7 @@ ossl_pkcs7_set_crls(VALUE self, VALUE ary) STACK_OF(X509_CRL) *crls; X509_CRL *crl; @@ -368,7 +359,7 @@ diff -up ruby-1.9.1-p243/ext/openssl/ossl_pkcs7.c.orig ruby-1.9.1-p243/ext/opens while((crl = sk_X509_CRL_pop(crls))) X509_CRL_free(crl); rb_block_call(ary, rb_intern("each"), 0, 0, ossl_pkcs7_set_crls_i, self); -@@ -660,7 +680,7 @@ ossl_pkcs7_set_crls(VALUE self, VALUE ar +@@ -660,7 +680,7 @@ ossl_pkcs7_set_crls(VALUE self, VALUE ary) static VALUE ossl_pkcs7_get_crls(VALUE self) { @@ -377,9 +368,10 @@ diff -up ruby-1.9.1-p243/ext/openssl/ossl_pkcs7.c.orig ruby-1.9.1-p243/ext/opens } static VALUE -diff -up ruby-1.9.1-p243/ext/openssl/ossl_ssl.c.orig ruby-1.9.1-p243/ext/openssl/ossl_ssl.c ---- ruby-1.9.1-p243/ext/openssl/ossl_ssl.c.orig 2009-04-19 07:32:18.028311552 -0600 -+++ ruby-1.9.1-p243/ext/openssl/ossl_ssl.c 2010-05-20 13:00:34.808714240 -0600 +diff --git a/ext/openssl/ossl_ssl.c b/ext/openssl/ossl_ssl.c +index c278edc..1167627 100644 +--- a/ext/openssl/ossl_ssl.c ++++ b/ext/openssl/ossl_ssl.c @@ -1195,10 +1195,10 @@ ossl_ssl_get_peer_cert_chain(VALUE self) } chain = SSL_get_peer_cert_chain(ssl); @@ -393,10 +385,11 @@ diff -up ruby-1.9.1-p243/ext/openssl/ossl_ssl.c.orig ruby-1.9.1-p243/ext/openssl rb_ary_push(ary, ossl_x509_new(cert)); } -diff -up ruby-1.9.1-p243/ext/openssl/ossl_ssl_session.c.orig ruby-1.9.1-p243/ext/openssl/ossl_ssl_session.c ---- ruby-1.9.1-p243/ext/openssl/ossl_ssl_session.c.orig 2008-07-22 09:34:23.028573696 -0600 -+++ ruby-1.9.1-p243/ext/openssl/ossl_ssl_session.c 2010-05-20 13:00:34.813694976 -0600 -@@ -72,6 +72,16 @@ static VALUE ossl_ssl_session_initialize +diff --git a/ext/openssl/ossl_ssl_session.c b/ext/openssl/ossl_ssl_session.c +index b236e4d..4d0848f 100644 +--- a/ext/openssl/ossl_ssl_session.c ++++ b/ext/openssl/ossl_ssl_session.c +@@ -72,6 +72,16 @@ static VALUE ossl_ssl_session_initialize(VALUE self, VALUE arg1) return self; } @@ -413,9 +406,10 @@ diff -up ruby-1.9.1-p243/ext/openssl/ossl_ssl_session.c.orig ruby-1.9.1-p243/ext /* * call-seq: * session1 == session2 -> boolean -diff -up ruby-1.9.1-p243/ext/openssl/ossl_x509attr.c.orig ruby-1.9.1-p243/ext/openssl/ossl_x509attr.c ---- ruby-1.9.1-p243/ext/openssl/ossl_x509attr.c.orig 2008-08-28 21:19:15.029097984 -0600 -+++ ruby-1.9.1-p243/ext/openssl/ossl_x509attr.c 2010-05-20 13:00:34.817102848 -0600 +diff --git a/ext/openssl/ossl_x509attr.c b/ext/openssl/ossl_x509attr.c +index 248e02a..2634cd9 100644 +--- a/ext/openssl/ossl_x509attr.c ++++ b/ext/openssl/ossl_x509attr.c @@ -218,8 +218,9 @@ ossl_x509attr_get_value(VALUE self) ossl_str_adjust(str, p); } @@ -428,9 +422,10 @@ diff -up ruby-1.9.1-p243/ext/openssl/ossl_x509attr.c.orig ruby-1.9.1-p243/ext/op str = rb_str_new(0, length); p = (unsigned char *)RSTRING_PTR(str); i2d_ASN1_SET_OF_ASN1_TYPE(attr->value.set, &p, -diff -up ruby-1.9.1-p243/ext/openssl/ossl_x509crl.c.orig ruby-1.9.1-p243/ext/openssl/ossl_x509crl.c ---- ruby-1.9.1-p243/ext/openssl/ossl_x509crl.c.orig 2008-07-22 09:34:23.029360128 -0600 -+++ ruby-1.9.1-p243/ext/openssl/ossl_x509crl.c 2010-05-20 13:00:34.821821440 -0600 +diff --git a/ext/openssl/ossl_x509crl.c b/ext/openssl/ossl_x509crl.c +index 3896b6e..c5123ae 100644 +--- a/ext/openssl/ossl_x509crl.c ++++ b/ext/openssl/ossl_x509crl.c @@ -264,7 +264,7 @@ ossl_x509crl_get_revoked(VALUE self) VALUE ary, revoked; @@ -449,3 +444,102 @@ diff -up ruby-1.9.1-p243/ext/openssl/ossl_x509crl.c.orig ruby-1.9.1-p243/ext/ope revoked = ossl_x509revoked_new(rev); rb_ary_push(ary, revoked); } +diff --git a/signal.c b/signal.c +index 5da1769..74072d2 100644 +--- a/signal.c ++++ b/signal.c +@@ -34,7 +34,7 @@ typedef int rb_atomic_t; + # define ATOMIC_DEC(var) (--(var)) + #endif + +-#ifdef __BEOS__ ++#if defined __BEOS__ || defined __HAIKU__ + #undef SIGBUS + #endif + +@@ -586,7 +586,7 @@ static int segv_received = 0; + static RETSIGTYPE + sigsegv(int sig SIGINFO_ARG) + { +-#ifdef USE_SIGALTSTACK ++#if defined USE_SIGALTSTACK && defined SA_SIGINFO + int ruby_stack_overflowed_p(const rb_thread_t *, const void *); + NORETURN(void ruby_thread_stack_overflow(rb_thread_t *th)); + rb_thread_t *th = GET_THREAD(); +-- +1.8.3.4 + + +From b5cf064c70f3212fb0a44dd4eaa4298e881b333f Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Mon, 11 Nov 2013 20:00:13 -0700 +Subject: Use gcc for linking modules + + +diff --git a/configure.in b/configure.in +index 113d4e5..9bfbfb3 100644 +--- a/configure.in ++++ b/configure.in +@@ -1465,7 +1465,10 @@ if test "$with_dln_a_out" != yes; then + DLDFLAGS="$DLDFLAGS "'-export Init_$(TARGET) -lroot glue-noinit.a init_term_dyn.o start_dyn.o' + ;; + i586*) +- : ${LDSHARED="ld -shared"} ++ : ${LDSHARED="${CC} -shared"} ++ if test "$rb_cv_binary_elf" = yes; then ++ LDFLAGS="$LDFLAGS -Wl,-export-dynamic" ++ fi + DLDFLAGS="$DLDFLAGS -L/boot/system/develop/lib -lroot -L/boot/home/config/develop/lib" + ;; + esac +-- +1.8.3.4 + + +From c43e8e49d47f7778314d9a723f9430fa4686f7ba Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Mon, 11 Nov 2013 23:13:59 -0700 +Subject: Add soname flags for libruby.so + + +diff --git a/configure.in b/configure.in +index 9bfbfb3..611b586 100644 +--- a/configure.in ++++ b/configure.in +@@ -1777,6 +1777,10 @@ if test "$enable_shared" = 'yes'; then + ;; + esac + ;; ++ haiku*) ++ LIBRUBY_DLDFLAGS='-Wl,-soname,lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR)' ++ LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR) lib$(RUBY_SO_NAME).so' ++ ;; + darwin*) + LIBRUBY_SO='lib$(RUBY_SO_NAME).$(MAJOR).$(MINOR).$(TEENY).dylib' + LIBRUBY_LDSHARED='cc -dynamiclib -undefined suppress -flat_namespace' +-- +1.8.3.4 + + +From c6983e184282d3ffbb88c095ff13d1913c18a3f8 Mon Sep 17 00:00:00 2001 +From: Rene Gollent +Date: Wed, 18 Dec 2013 21:52:24 -0500 +Subject: Add case for x86_64. + + +diff --git a/configure.in b/configure.in +index 611b586..01f0bb0 100644 +--- a/configure.in ++++ b/configure.in +@@ -1464,7 +1464,7 @@ if test "$with_dln_a_out" != yes; then + : ${LDSHARED="ld -xms"} + DLDFLAGS="$DLDFLAGS "'-export Init_$(TARGET) -lroot glue-noinit.a init_term_dyn.o start_dyn.o' + ;; +- i586*) ++ i586*|x86_64*) + : ${LDSHARED="${CC} -shared"} + if test "$rb_cv_binary_elf" = yes; then + LDFLAGS="$LDFLAGS -Wl,-export-dynamic" +-- +1.8.3.4 + diff --git a/dev-lang/ruby/ruby-1.9.1.recipe b/dev-lang/ruby/ruby-1.9.1.recipe index 34f62b0c2..ce57c7e7b 100644 --- a/dev-lang/ruby/ruby-1.9.1.recipe +++ b/dev-lang/ruby/ruby-1.9.1.recipe @@ -1,29 +1,96 @@ -DESCRIPTION="ruby - A dynamic, open source programming language with a focus on simplicity and productivity." +SUMMARY="A programming language focused on simplicity and productivity" +DESCRIPTION=" +Ruby is a dynamic, reflective, object-oriented, general-purpose +programming language. It was designed and developed in the mid-1990s +by Yukihiro 'Matz' Matsumoto in Japan. + +Ruby embodies syntax inspired by Perl with Smalltalk-like features and +was also influenced by Eiffel and Lisp. It supports multiple +programming paradigms, including functional, object oriented, and +imperative. It also has a dynamic type system and automatic memory +management. Therefore, it is similar in varying degrees to, Smalltalk, +Python, Perl, Lisp, Dylan, and CLU." HOMEPAGE="http://www.ruby-lang.org" 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-libs/libedit >= 20100424" -BUILD() -{ - cd ruby-1.9.1-p243 - autoconf - ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ - --datarootdir=`finddir B_COMMON_DATA_DIRECTORY`/ruby - make -} - -INSTALL() -{ - cd ruby-1.9.1-p243 - make install -} - +CHECKSUM_SHA256="31598e37b3962643bec722921644957be6f8fb9a26f6c91fa627bd668ea68be4" LICENSE="Ruby GNU GPL v2 GNU LGPL v2.1 Artistic (Perl) BSD (3-clause)" COPYRIGHT="1993-2009 Yukihiro Matsumoto" + +REVISION="2" + +ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + ruby = $portVersion compat >= 1.9 + cmd:ruby = $portVersion compat >= 1.9 + cmd:erb = $portVersion compat >= 1.9 + cmd:gem = $portVersion compat >= 1.9 + cmd:irb = $portVersion compat >= 1.9 + cmd:rake = $portVersion compat >= 1.9 + cmd:rdoc = $portVersion compat >= 1.9 + cmd:ri = $portVersion compat >= 1.9 + cmd:testrb = $portVersion compat >= 1.9 + lib:libruby = $portVersion compat >= 1.9 + " + +REQUIRES=" + haiku >= $haikuVersion + lib:libedit + lib:libz + lib:libcrypto + lib:libssl + lib:libiconv + lib:libncursesw + " + +BUILD_REQUIRES=" + devel:libedit + devel:libz + devel:libcrypto + devel:libssl + devel:libiconv + devel:libncursesw + " + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:gcc + cmd:g++ + cmd:autoconf + cmd:make + cmd:bison + " + +PROVIDES_devel=" + ruby_devel = $portVersion + devel:libruby_static = $portVersion compat >= 1.9 + lib:libruby_static = $portVersion compat >= 1.9 + devel:libruby = $portVersion compat >= 1.9 + " + +REQUIRES_devel=" + ruby == $portVersion + " + +SOURCE_DIR="ruby-1.9.1-p243" + +PATCHES="ruby-1.9.1.patchset" + +BUILD() +{ + autoconf + runConfigure ./configure \ + --enable-shared + make $jobArgs +} + +INSTALL() +{ + make install + prepareInstalledDevelLibs libruby-static libruby + packageEntries devel $developDir +} diff --git a/dev-lang/ruby/ruby-1.9.3.recipe b/dev-lang/ruby/ruby-1.9.3.recipe new file mode 100644 index 000000000..b676700a0 --- /dev/null +++ b/dev-lang/ruby/ruby-1.9.3.recipe @@ -0,0 +1,96 @@ +SUMMARY="A programming language focused on simplicity and productivity" +DESCRIPTION=" +Ruby is a dynamic, reflective, object-oriented, general-purpose +programming language. It was designed and developed in the mid-1990s +by Yukihiro 'Matz' Matsumoto in Japan. + +Ruby embodies syntax inspired by Perl with Smalltalk-like features and +was also influenced by Eiffel and Lisp. It supports multiple +programming paradigms, including functional, object oriented, and +imperative. It also has a dynamic type system and automatic memory +management. Therefore, it is similar in varying degrees to, Smalltalk, +Python, Perl, Lisp, Dylan, and CLU." +HOMEPAGE="http://www.ruby-lang.org" +SRC_URI="http://cache.ruby-lang.org/pub/ruby/ruby-1.9.3-p545.tar.bz2" +CHECKSUM_SHA256="2533de9f56d62f11c06a02dd32b5ab6d22a8f268c94b8e1e1ade6536adfd1aab" +LICENSE="Ruby + GNU GPL v2 + GNU LGPL v2.1 + Artistic (Perl) + BSD (3-clause)" +COPYRIGHT="1993-2009 Yukihiro Matsumoto" + +REVISION="2" + +ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + ruby = $portVersion compat >= 1.9 + cmd:ruby = $portVersion compat >= 1.9 + cmd:erb = $portVersion compat >= 1.9 + cmd:gem = $portVersion compat >= 1.9 + cmd:irb = $portVersion compat >= 1.9 + cmd:rake = $portVersion compat >= 1.9 + cmd:rdoc = $portVersion compat >= 1.9 + cmd:ri = $portVersion compat >= 1.9 + cmd:testrb = $portVersion compat >= 1.9 + lib:libruby = $portVersion compat >= 1.9 + " + +REQUIRES=" + haiku >= $haikuVersion + lib:libedit + lib:libz + lib:libcrypto + lib:libssl + lib:libiconv + lib:libncursesw + " + +BUILD_REQUIRES=" + devel:libedit + devel:libz + devel:libcrypto + devel:libssl + devel:libiconv + devel:libncursesw + " + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:gcc + cmd:g++ + cmd:autoconf + cmd:make + cmd:bison + " + +PROVIDES_devel=" + ruby_devel = $portVersion + devel:libruby_static = $portVersion compat >= 1.9 + lib:libruby_static = $portVersion compat >= 1.9 + devel:libruby = $portVersion compat >= 1.9 + " + +REQUIRES_devel=" + ruby == $portVersion + " + +SOURCE_DIR="ruby-1.9.3-p545" + +PATCHES="ruby-1.9.1.patchset" + +BUILD() +{ + autoconf + runConfigure ./configure \ + --enable-shared + make $jobArgs +} + +INSTALL() +{ + make install + prepareInstalledDevelLibs libruby-static libruby + packageEntries devel $developDir +} diff --git a/dev-lang/ruby/ruby-2.1.1.recipe b/dev-lang/ruby/ruby-2.1.1.recipe new file mode 100644 index 000000000..589540b52 --- /dev/null +++ b/dev-lang/ruby/ruby-2.1.1.recipe @@ -0,0 +1,97 @@ +SUMMARY="A programming language focused on simplicity and productivity" +DESCRIPTION=" +Ruby is a dynamic, reflective, object-oriented, general-purpose +programming language. It was designed and developed in the mid-1990s +by Yukihiro 'Matz' Matsumoto in Japan. + +Ruby embodies syntax inspired by Perl with Smalltalk-like features and +was also influenced by Eiffel and Lisp. It supports multiple +programming paradigms, including functional, object oriented, and +imperative. It also has a dynamic type system and automatic memory +management. Therefore, it is similar in varying degrees to, Smalltalk, +Python, Perl, Lisp, Dylan, and CLU." +HOMEPAGE="http://www.ruby-lang.org" +SRC_URI="http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.1.tar.gz" +CHECKSUM_SHA256="c843df31ae88ed49f5393142b02b9a9f5a6557453805fd489a76fbafeae88941" +LICENSE="Ruby + BSD (3-clause)" +COPYRIGHT="1993-2014 Yukihiro Matsumoto" + +REVISION="1" + +ARCHITECTURES="!x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="!x86" + +PROVIDES=" + ruby$secondaryArchSuffix = $portVersion compat >= 1.9 + cmd:ruby = $portVersion compat >= 1.9 + cmd:erb = $portVersion compat >= 1.9 + cmd:gem = $portVersion compat >= 1.9 + cmd:irb = $portVersion compat >= 1.9 + cmd:rake = $portVersion compat >= 1.9 + cmd:rdoc = $portVersion compat >= 1.9 + cmd:ri = $portVersion compat >= 1.9 + cmd:testrb = $portVersion compat >= 1.9 + lib:libruby$secondaryArchSuffix = $portVersion compat >= 1.9 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libedit$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libcrypto$secondaryArchSuffix + lib:libssl$secondaryArchSuffix + lib:libiconv$secondaryArchSuffix + lib:libncursesw$secondaryArchSuffix + " + +BUILD_REQUIRES=" + devel:libedit$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:libcrypto$secondaryArchSuffix + devel:libssl$secondaryArchSuffix + devel:libiconv$secondaryArchSuffix + devel:libncursesw$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:g++$secondaryArchSuffix + cmd:autoconf + cmd:make + cmd:bison + " + +PROVIDES_devel=" + ruby_devel$secondaryArchSuffix = $portVersion + devel:libruby_static$secondaryArchSuffix = $portVersion compat >= 1.9 + lib:libruby_static$secondaryArchSuffix = $portVersion compat >= 1.9 + devel:libruby$secondaryArchSuffix = $portVersion compat >= 1.9 + " + +REQUIRES_devel=" + ruby$secondaryArchSuffix == $portVersion base + " + +BUILD() +{ + runConfigure ./configure --enable-shared + # The build process needs to run ruby, and without this it fails to find + # libruby.so. + export LIBRARY_PATH=$LIBRARY_PATH:%A + make $jobArgs +} + +INSTALL() +{ + export LIBRARY_PATH=$LIBRARY_PATH:%A + make install + prepareInstalledDevelLibs libruby-static libruby + packageEntries devel $developDir +} + +TEST() +{ + make check +} diff --git a/dev-lang/squirrel/squirrel-3.0.4.recipe b/dev-lang/squirrel/squirrel-3.0.4.recipe new file mode 100644 index 000000000..214289791 --- /dev/null +++ b/dev-lang/squirrel/squirrel-3.0.4.recipe @@ -0,0 +1,74 @@ +SUMMARY="A light-weight scripting language" +DESCRIPTION=" +Squirrel is a light weight programming language featuring higher-order \ +functions, classes/inheritance, delegation, tail recursion, generators, \ +cooperative threads, exception handling, reference counting and garbage \ +collection on demand. C-like syntax. +" +HOMEPAGE="http://www.squirrel-lang.org" +SRC_URI="https://squirrel.googlecode.com/files/squirrel_3_0_4_stable.tar.gz" +CHECKSUM_SHA256="6a3706accf9872aafea1eb3f3f3018b135e2671033824ccebf0735a98b2440a5" +LICENSE="MIT" +COPYRIGHT="2004-2013 Alberto Demichelis" +REVISION="1" + +ARCHITECTURES="!x86 ?x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86 ?x86_64" + +PROVIDES=" + squirrel$secondaryArchSuffix = $portVersion + cmd:sq$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:make + cmd:gcc$secondaryArchSuffix + " + +SOURCE_DIR="SQUIRREL3" + +BUILD() +{ + make $jobArgs +} + +INSTALL() +{ + mkdir -p $binDir + cp -r bin/* $binDir + + mkdir -p $includeDir + cp -r include/* $includeDir + + mkdir -p $developDocDir + cp -r doc/* $developDocDir + + mkdir -p $libDir + cp -r lib/* $develLibDir + + rm -rf $libDir + + packageEntries devel \ + $developDir +} + +PROVIDES_devel=" + libsquirrel${secondaryArchSuffix}_devel = $portVersion + devel:libsquirrel$secondaryArchSuffix = $portVersion + devel:libsqstdlib$secondaryArchSuffix = $portVersion + " + +REQUIRES_devel=" + squirrel$secondaryArchSuffix == $portVersion base + " diff --git a/dev-lang/swi_prolog/swi_prolog-6.2.0.recipe b/dev-lang/swi_prolog/swi_prolog-6.2.0.recipe index d88c003b4..a6605227d 100644 --- a/dev-lang/swi_prolog/swi_prolog-6.2.0.recipe +++ b/dev-lang/swi_prolog/swi_prolog-6.2.0.recipe @@ -1,32 +1,74 @@ -DESCRIPTION="SWI Prolog. Stable and free standard Prolog implementation" +SUMMARY="SWI Prolog. Stable and free standard Prolog implementation" +DESCRIPTION=" +SWI-Prolog is an open source implementation of the programming language Prolog, \ +commonly used for teaching and semantic web applications. It has a rich set of \ +features, libraries for constraint logic programming, multithreading, unit \ +testing, GUI, interfacing to Java, ODBC and others, literate programming, a web \ +server, SGML, RDF, RDFS, developer tools (including an IDE with a GUI debugger \ +and GUI profiler), and extensive documentation. +" 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" +CHECKSUM_SHA256="be358eacd50bc7013cdcdd1aa763e67c5b1d40f7bbf1833a7a48c0123a6455a8" +LICENSE=" + GNU LGPL v2.1 + SWI-Prolog + " +COPYRIGHT="1985-2012, University of Amsterdam, VU University Amsterdam" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="dev-libs/gmp >= 5.0.5 - sys-libs/readline >= 6.2" +ARCHITECTURES="x86_gcc2" +SECONDARY_ARCHITECTURES="x86" +SOURCE_DIR="pl-6.2.0" +PATCHES="swi_prolog-6.2.0.patch" + +PROVIDES=" + swi_prolog$secondaryArchSuffix = $portVersion + cmd:swipl$secondaryArchSuffix + cmd:swipl_rc$secondaryArchSuffix + cmd:swipl_ld$secondaryArchSuffix + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libgmp$secondaryArchSuffix >= 10 + lib:libreadline$secondaryArchSuffix >= 6 + lib:libncurses$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libreadline$secondaryArchSuffix >= 6 + devel:libgmp$secondaryArchSuffix >= 10 + devel:libncurses$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:autoreconf + cmd:make + " + 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 + cd src + libtoolize -fci + autoreconf + LDFLAGS="-L/system/lib -L/system/develop/lib" CFLAGS="-I/system/develop/include -I/system/include" ./configure $configureDirArgs + #runConfigure ./configure + make } INSTALL() { - cd pl-6.2.0/src - make install + cd src + make install } TEST() { - cd pl-6.2.0/src - make check + cd 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.recipe b/dev-lang/swig/swig-1.3.40.recipe deleted file mode 100644 index 072de4125..000000000 --- a/dev-lang/swig/swig-1.3.40.recipe +++ /dev/null @@ -1,24 +0,0 @@ -DESCRIPTION="Simplified Wrapper and Interface Generator" -HOMEPAGE="http://www.swig.org/" -SRC_URI="http://sourceforge.net/projects/swig/files/swig/swig-1.3.40/swig-1.3.40.tar.gz/download" -CHECKSUM_MD5="2df766c9e03e02811b1ab4bba1c7b9cc" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd swig-1.3.40 - libtoolize -fci - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd swig-1.3.40 - 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)" diff --git a/dev-lang/swig/swig-2.0.11.recipe b/dev-lang/swig/swig-2.0.11.recipe new file mode 100644 index 000000000..3d9ef9f79 --- /dev/null +++ b/dev-lang/swig/swig-2.0.11.recipe @@ -0,0 +1,73 @@ +SUMMARY="Simplified Wrapper and Interface Generator" +DESCRIPTION=" +SWIG is a software development tool that connects programs written in C and \ +C++ with a variety of high-level programming languages. SWIG is used with \ +different types of target languages including common scripting languages such \ +as Perl, PHP, Python, Tcl and Ruby. The list of supported languages also \ +includes non-scripting languages such as C#, Common Lisp (CLISP, Allegro CL, \ +CFFI, UFFI), D, Go language, Java including Android, Lua, Modula-3, OCAML, \ +Octave and R. Also several interpreted and compiled Scheme implementations \ +(Guile, MzScheme/Racket, Chicken) are supported. SWIG is most commonly used to \ +create high-level interpreted or compiled programming environments, user \ +interfaces, and as a tool for testing and prototyping C/C++ software. SWIG is \ +typically used to parse C/C++ interfaces and generate the 'glue code' required \ +for the above target languages to call into the C/C++ code. SWIG can also \ +export its parse tree in the form of XML and Lisp s-expressions. SWIG is free \ +software and the code that SWIG generates is compatible with both commercial \ +and non-commercial projects. +" +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-2013 The SWIG Developers" +HOMEPAGE="http://www.swig.org/" +SRC_URI="http://sourceforge.net/projects/swig/files/swig/swig-2.0.11/swig-2.0.11.tar.gz" +CHECKSUM_SHA256="63780bf29f53937ad399a1f68bccb3730c90f65746868c4cdfc25cafcd0a424e" +REVISION="1" +ARCHITECTURES="?x86 ?x86_gcc2" + + +PROVIDES=" + swig = $portVersion + cmd:swig = $portVersion + cmd:ccache_swig = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + lib:libpcre + " + +#TODO add ruby and chicken when they get updated recipes +#TODO fix lua and tcl detection +BUILD_REQUIRES=" + devel:libtclstub8.5 + devel:libpython2.6 + devel:liblua + " + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:libtoolize + cmd:make + cmd:gcc + cmd:g++ + cmd:ld + cmd:pcre_config + cmd:bison + cmd:python + cmd:perl + cmd:lua + " + +BUILD() +{ + runConfigure ./configure + make +} + +INSTALL() +{ + make install +} diff --git a/dev-lang/swig/swig-2.0.2.recipe b/dev-lang/swig/swig-2.0.2.recipe deleted file mode 100644 index 18dd1aaae..000000000 --- a/dev-lang/swig/swig-2.0.2.recipe +++ /dev/null @@ -1,25 +0,0 @@ -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.15.patchset b/dev-lang/tcl/patches/tcl-8.5.15.patchset new file mode 100644 index 000000000..50450455c --- /dev/null +++ b/dev-lang/tcl/patches/tcl-8.5.15.patchset @@ -0,0 +1,66 @@ +From 02a513a41a3a8aaf7a28bbb86db4eafaf63045ff Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Mon, 5 May 2014 16:07:04 +0000 +Subject: import patch from previous version + + +diff --git a/tests/env.test b/tests/env.test +index ee13b7f..db8f1ce 100644 +--- a/tests/env.test ++++ b/tests/env.test +@@ -85,7 +85,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 + CommonProgramFiles ProgramFiles CommonProgramW6432 ProgramW6432 + } { + lrem names $name +@@ -117,7 +117,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 + CONNOMPROGRAMFILES PROGRAMFILES COMMONPROGRAMW6432 PROGRAMW6432 + }} { + unset env($name) +diff --git a/unix/tcl.m4 b/unix/tcl.m4 +index f484989..def649b 100644 +--- a/unix/tcl.m4 ++++ b/unix/tcl.m4 +@@ -652,7 +652,13 @@ AC_DEFUN([SC_ENABLE_THREADS], [ + # The space is needed + THREADS_LIBS=" -lpthread" + else +- AC_CHECK_LIB(pthreads, pthread_mutex_init, ++ 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 ++ AC_CHECK_LIB(pthreads, pthread_mutex_init, + tcl_ok=yes, tcl_ok=no) + if test "$tcl_ok" = "yes"; then + # The space is needed +@@ -671,6 +677,7 @@ AC_DEFUN([SC_ENABLE_THREADS], [ + 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 + +@@ -1284,6 +1291,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ + 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.*) +-- +1.8.3.4 + diff --git a/dev-lang/tcl/tcl-8.5.15.recipe b/dev-lang/tcl/tcl-8.5.15.recipe new file mode 100644 index 000000000..b2c21199c --- /dev/null +++ b/dev-lang/tcl/tcl-8.5.15.recipe @@ -0,0 +1,79 @@ +SUMMARY="A very powerful but easy to learn dynamic programming language" +DESCRIPTION=" +Tcl (Tool Command Language) is a very powerful but easy to learn dynamic \ +programming language, suitable for a very wide range of uses, including web \ +and desktop applications, networking, administration, testing and many more. \ +Open source and business-friendly, Tcl is a mature yet evolving language that \ +is truly cross platform, easily deployed and highly extensible. +" +HOMEPAGE="http://www.tcl.tk" +SRC_URI="http://sourceforge.net/projects/tcl/files/Tcl/$portVersion/tcl$portVersion-src.tar.gz" +CHECKSUM_SHA256="f24eaae461795e6b09bf54c7e9f38def025892da55f26008c16413cfdda2884e" +REVISION="1" +ARCHITECTURES="x86 x86_gcc2 x86_64" +LICENSE="BSD (2-clause)" +COPYRIGHT="Regents of the University of California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState Corporation and other parties" +SOURCE_DIR="tcl$portVersion" + +PATCHES="tcl-8.5.15.patchset" + +PROVIDES=" + tcl = $portVersion compat >= 8.5 + cmd:tclsh = $portVersion compat >= 8.5 + cmd:tclsh8.5 = $portVersion compat >= 8.5 + lib:libtcl8.5 = $portVersion compat >= 8.5 + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" +" + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:autoconf + cmd:make + cmd:gcc + cmd:ld + cmd:find + cmd:sed + cmd:grep + " + +BUILD() +{ + cd unix + autoconf -f + runConfigure ./configure \ + --enable-threads --enable-man-symlinks + make +} + +INSTALL() +{ + cd unix + make install + + ln -s tclsh8.5 "${binDir}/tclsh" + + prepareInstalledDevelLibs libtclstub8.5 + packageEntries devel $developDir + packageEntries devel ${libDir}/tclConfig.sh +} + +TEST() +{ + cd unix + make test +} + +PROVIDES_devel=" + tcl_devel = $portVersion + devel:libtclstub8.5 = $portVersion + " + +REQUIRES_devel=" + tcl == $portVersion + " diff --git a/dev-lang/tcl/tcl-8.5.9.recipe b/dev-lang/tcl/tcl-8.5.9.recipe index 442503cd5..dee8be742 100644 --- a/dev-lang/tcl/tcl-8.5.9.recipe +++ b/dev-lang/tcl/tcl-8.5.9.recipe @@ -1,17 +1,16 @@ -SUMMARY="Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language." +SUMMARY="A very powerful but easy to learn dynamic programming language" DESCRIPTION=" -Tcl (Tool Command Language) is a very powerful but easy to learn -dynamic programming language, suitable for a very wide range of uses, -including web and desktop applications, networking, administration, -testing and many more. Open source and business-friendly, Tcl is a -mature yet evolving language that is truly cross platform, easily -deployed and highly extensible." - +Tcl (Tool Command Language) is a very powerful but easy to learn dynamic \ +programming language, suitable for a very wide range of uses, including web \ +and desktop applications, networking, administration, testing and many more. \ +Open source and business-friendly, Tcl is a mature yet evolving language that \ +is truly cross platform, easily deployed and highly extensible. +" HOMEPAGE="http://www.tcl.tk" SRC_URI="http://sourceforge.net/projects/tcl/files/Tcl/8.5.9/tcl8.5.9-src.tar.gz" +CHECKSUM_SHA256="3ab671b417e3eeb41b9cef626d742d8f7f57425101e83e5fcad1d552cd99237d" REVISION="1" ARCHITECTURES="x86 x86_gcc2" -CHECKSUM_MD5="8512d8db3233041dd68a81476906012a" LICENSE="BSD (2-clause)" COPYRIGHT="Regents of the University of California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState Corporation and other parties" SOURCE_DIR="tcl8.5.9" diff --git a/dev-lang/v8/patches/gyp-r1773.patch b/dev-lang/v8/patches/gyp-r1773.patch new file mode 100644 index 000000000..12b632a7b --- /dev/null +++ b/dev-lang/v8/patches/gyp-r1773.patch @@ -0,0 +1,133 @@ +Index: pylib/gyp/haiku_tool.py +=================================================================== +--- pylib/gyp/haiku_tool.py (revision 0) ++++ pylib/gyp/haiku_tool.py (revision 0) +@@ -0,0 +1,49 @@ ++#!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:])) + +Property changes on: pylib/gyp/haiku_tool.py +___________________________________________________________________ +Added: svn:executable + + * + +Index: pylib/gyp/generator/make.py +=================================================================== +--- pylib/gyp/generator/make.py (revision 1773) ++++ pylib/gyp/generator/make.py (working copy) +@@ -497,6 +497,13 @@ + cmd_infoplist = $(CC.$(TOOLSET)) -E -P -Wno-trigraphs -x c $(INFOPLIST_DEFINES) "$<" -o "$@" + """ + ++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) +@@ -2010,6 +2017,12 @@ + 'flock': './gyp-flock-tool flock', + 'flock_index': 2, + }) ++ elif flavor == 'haiku': ++ header_params.update({ ++ 'flock': './gyp-haiku-tool flock', ++ 'flock_index': 2, ++ 'extra_commands': SHARED_HEADER_HAIKU_COMMANDS, ++ }) + + header_params.update({ + 'CC.target': GetEnvironFallback(('CC_target', 'CC'), '$(CC)'), +Index: pylib/gyp/common.py +=================================================================== +--- pylib/gyp/common.py (revision 1773) ++++ pylib/gyp/common.py (working copy) +@@ -411,12 +411,14 @@ + return 'openbsd' + if sys.platform.startswith('aix'): + return 'aix' ++ if sys.platform.startswith('haiku'): ++ return 'haiku' + + return 'linux' + + + def CopyTool(flavor, out_path): +- """Finds (flock|mac|win)_tool.gyp in the gyp directory and copies it ++ """Finds (flock|mac|win|haiku)_tool.gyp in the gyp directory and copies it + to |out_path|.""" + # aix and solaris just need flock emulation. mac and win use more complicated + # support scripts. +@@ -424,7 +426,8 @@ + 'aix': 'flock', + 'solaris': 'flock', + 'mac': 'mac', +- 'win': 'win' ++ 'win': 'win', ++ 'haiku': 'haiku', + }.get(flavor, None) + if not prefix: + return +Index: gyptest.py +=================================================================== +--- gyptest.py (revision 1773) ++++ gyptest.py (working copy) +@@ -225,6 +225,7 @@ + 'linux2': ['make', 'ninja'], + 'linux3': ['make', 'ninja'], + 'darwin': ['make', 'ninja', 'xcode'], ++ 'haiku1': ['make'], + }[sys.platform] + + for format in format_list: diff --git a/dev-lang/v8/patches/v8-3.16.1.patch b/dev-lang/v8/patches/v8-3.16.1.patch new file mode 100644 index 000000000..b2f79bc9a --- /dev/null +++ b/dev-lang/v8/patches/v8-3.16.1.patch @@ -0,0 +1,14 @@ +diff --git a/src/platform.h b/src/platform.h +index 0b327a3..306154f 100644 +--- a/src/platform.h ++++ b/src/platform.h +@@ -96,9 +96,6 @@ int random(); + + #endif // WIN32 + +-#ifdef __HAIKU__ +-#define isless(x, y) __builtin_isless(x, y) +-#endif // __HAIKU__ + + #include "atomicops.h" + #include "lazy-instance.h" diff --git a/dev-lang/v8/v8-3.16.1.recipe b/dev-lang/v8/v8-3.16.1.recipe new file mode 100644 index 000000000..df4858b8a --- /dev/null +++ b/dev-lang/v8/v8-3.16.1.recipe @@ -0,0 +1,110 @@ +SUMMARY="Google's open source JavaScript engine." +DESCRIPTION=" +V8 is Google's open source JavaScript engine. V8 is written in C++ and is used \ +in Google Chrome, the open source browser from Google. V8 implements \ +ECMAScript as specified in ECMA-262, 5th edition, and runs on Windows (XP or \ +newer), Mac OS X (10.5 or newer), and Linux systems that use IA-32, x64, or \ +ARM processors. V8 can run standalone, or can be embedded into any C++ \ +application. +" +LICENSE="BSD (3-clause)" +COPYRIGHT="2006-2012 The V8 Project Authors" +HOMEPAGE="https://code.google.com/p/v8/" +SRC_URI="git+https://github.com/hamishm/v8.git#5698a30" +SRC_URI_2="svn+http://gyp.googlecode.com/svn/trunk#1773" +REVISION="1" +ARCHITECTURES="?x86" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES ?x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="?x86" + +# On x86_gcc2 we don't want to install the commands in bin//, but in bin/. +commandSuffix=$secondaryArchSuffix +commandBinDir=$binDir +if [ "$targetArchitecture" = x86_gcc2 ]; then + commandSuffix= + commandBinDir=$prefix/bin +fi + +PROVIDES=" + v8$secondaryArchSuffix = $portVersion + cmd:d8$commandSuffix = $portVersion + lib:libv8$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES="" + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:g++$secondaryArchSuffix + cmd:make + cmd:python + cmd:which + cmd:ar$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + " + +PROVIDES_devel=" + v8${secondaryArchSuffix}_devel = $portVersion + devel:libv8$secondaryArchSuffix + " + +REQUIRES_devel=" + v8$secondaryArchSuffix == $portVersion + " + +PATCHES="v8-3.16.1.patch" + +PATCH() +{ + cd $sourceDir2 + patch -p0 -i $(haikuporter -t)/dev-lang/v8/patches/gyp-r1773.patch +} + +SOURCE_DIR="v8" + +SOURCE_DIR_2="gyp" + +BUILD() +{ + ln -sfn $sourceDir2 build/gyp + + GYP_GENERATORS=make \ + build/gyp/gyp --generator-output="out" build/all.gyp \ + -Ibuild/standalone.gypi --depth=. \ + -Dv8_target_arch=ia32 \ + -S.ia32 \ + -Dcomponent=shared_library \ + -Dv8_enable_backtrace=1 \ + -Dv8_can_use_vfp2_instructions=true \ + -Dv8_can_use_vfp3_instructions=true + + # enable these in the future? + #-Duse_system_icu=1 \ + #-Dconsole=readline + + + make library=shared ia32.release $jobArgs +} + +INSTALL() +{ + mkdir $commandBinDir + cp -af out/ia32.release/d8 ${commandBinDir} + mkdir -p ${includeDir}/v8 + cp -af include/* ${includeDir}/v8 + mkdir -p ${libDir} + cp -af out/ia32.release/lib.target/libv8.so ${libDir} + + prepareInstalledDevelLibs libv8 + packageEntries devel $developDir +} diff --git a/dev-lang/xamos/patches/xamos-0.29.patchset b/dev-lang/xamos/patches/xamos-0.29.patchset new file mode 100644 index 000000000..d02174797 --- /dev/null +++ b/dev-lang/xamos/patches/xamos-0.29.patchset @@ -0,0 +1,81 @@ +From f02982020ebc693e0f1c6f10523fa54282a42cce Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Thu, 1 May 2014 13:52:57 +0200 +Subject: Fix build on gcc2, add Haiku makefile. + + +diff --git a/src/GameEngineWrapper.cpp b/src/GameEngineWrapper.cpp +index d3099a8..854d8fb 100644 +--- a/src/GameEngineWrapper.cpp ++++ b/src/GameEngineWrapper.cpp +@@ -2416,7 +2416,7 @@ bool GameEngineWrapper::sdlinit() + #endif + + // Set the window caption (patch - do not use Unicode on Amiga-like systems which do not support it): +-#if defined(USESDL) && !defined(AMIGOID) ++#if defined(USESDL) && !defined(AMIGOID) && __GNUC__ > 2 + SDL_WM_SetCaption( "XAMOS alpha 0.29 \u00a9 2012 Mequa Innovations", NULL ); // \u00a9 + #endif + #if defined(USESDL) && defined(AMIGOID) +diff --git a/src/GameEngineWrapper.h b/src/GameEngineWrapper.h +index 60f27c7..c9f2c67 100644 +--- a/src/GameEngineWrapper.h ++++ b/src/GameEngineWrapper.h +@@ -46,6 +46,9 @@ using namespace boost; + + #if defined(USESDL) && !defined(USEBOOST) + // Deprecated: ++#if __GNUC__ <= 2 ++#include ++#else + #include + + // TODO - allow hash_map for other compilers besides G++ +@@ -54,6 +57,7 @@ using namespace __gnu_cxx; + // Added - fix for hash_map using std::string: + namespace __gnu_cxx //std + { ++#endif + template<> struct hash< std::string > + { + size_t operator()( const std::string& x ) const +@@ -61,8 +65,10 @@ namespace __gnu_cxx //std + return hash< const char* >()( x.c_str() ); + } + }; ++#if __GNUC__ > 2 + } + #endif ++#endif + + // Added - detect all Amiga-like systems: + #if !defined(AMIGOID) && (defined(__AROS__) || defined(__MORPHOS__) || defined(__amigaos__) || defined (__amigaos4__)) +diff --git a/src/Makefile_haiku b/src/Makefile_haiku +new file mode 100644 +index 0000000..25e31e6 +--- /dev/null ++++ b/src/Makefile_haiku +@@ -0,0 +1,20 @@ ++CC=g++ ++ ++CFLAGS=-c -Wall -pedantic -Wno-deprecated -O3 -D USESDL ++LDFLAGS=-lSDL_image -lSDL_gfx -lSDL_mixer -ljpeg -lpng -lvorbisfile -lvorbis -logg -lSDL_ttf -lfreetype -lz -lSDL -lGL -lGLU ++ ++SOURCES=main.cpp XAMOS.cpp SDL_collide.cpp Console.cpp AMALDebugTest.cpp PrintStream.cpp AMALBank.cpp AMALEnvGen.cpp AMALParser.cpp AMALInterpreter.cpp AMALCompiler.cpp AmalPrograms.cpp Timer.cpp AMOS_Sprite.cpp MequaScript.cpp AMOS_System.cpp GameEngineWrapper.cpp Mytype.cpp Mytypearray.cpp TheTokens.cpp Parser.cpp Dumper.cpp Interpreter.cpp CommandWrapper.cpp ActiveObject.cpp ++OBJECTS=$(SOURCES:.cpp=.o) ++EXECUTABLE=../XAMOS ++ ++all: $(SOURCES) $(EXECUTABLE) ++ ++$(EXECUTABLE): $(OBJECTS) ++ $(CC) $(OBJECTS) -o $@ $(LDFLAGS) ++ ++.cpp.o: ++ $(CC) $(CFLAGS) $< -o $@ ++ ++clean: ++ rm -rf $(EXECUTABLE) *.o ++ +-- +1.8.3.4 + diff --git a/dev-lang/xamos/xamos-0.29.recipe b/dev-lang/xamos/xamos-0.29.recipe new file mode 100644 index 000000000..0f9ae89dd --- /dev/null +++ b/dev-lang/xamos/xamos-0.29.recipe @@ -0,0 +1,55 @@ +SUMMARY="Cross-platform AMOS BASIC reimplementation" +DESCRIPTION=" +This project is a complete re-write of jAMOS in C++ using SDL libraries and +(optional) Boost headers. + +This initial release is run-only and does not feature an editor at this stage. +However, it is compatible with almost all programs created with the latest +jAMOS editor. All jAMOS examples (without AMAL) are running in XAMOS, often +with a serious speed boost over the Java original, particularly on low-end +platforms. +" +HOMEPAGE="http://sourceforge.net/projects/xamos" +SRC_URI="http://sourceforge.net/projects/xamos/files/XAMOS_src.zip" +CHECKSUM_SHA256="f559794ed7a443f00a21b3c0050e8ee70a9d1340ad41e46a5f87f5238bc7479e" +ARCHITECTURES="x86_gcc2" +LICENSE="BSD (2-clause)" +COPYRIGHT="2012 Mequa Innovations" +REVISION="1" + +PROVIDES=" + xamos = $portVersion +" + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:libsdl + devel:sdl_image + devel:sdl_mixer + devel:sdl_ttf + devel:sdl_gfx + devel:libglu + devel:libjpeg + devel:libpng + devel:libvorbisfile + devel:libogg + devel:libfreetype + devel:libz + " + +BUILD_PREREQUIRES=" + cmd:make + cmd:gcc + " + +SOURCE_DIR="XAMOS" +PATCHES="xamos-$portVersion.patchset" + +BUILD() { + cd src + make -f Makefile_aros +} + +INSTALL() { + false +} diff --git a/dev-lang/yab/yab-1.7.02.recipe b/dev-lang/yab/yab-1.7.02.recipe new file mode 100644 index 000000000..cd45c0cbc --- /dev/null +++ b/dev-lang/yab/yab-1.7.02.recipe @@ -0,0 +1,67 @@ +SUMMARY="extended version of the yabsic programming language" +DESCRIPTION=" +yab is an extended version of yabasic, a BASIC programming language, with \ +special commands designed for Haiku. +" +HOMEPAGE="http://sourceforge.net/projects/yab-interpreter" +SRC_URI="git+https://github.com/HaikuArchives/Yab.git#a5681d8a3403c142eae0ad416a59abd2aa7a28e4" + + +REVISION="2" + +LICENSE="Artistic" + +COPYRIGHT="1995-2006 Marc-Oliver Ihm (yabasic) + 2006-2009 Jan Bungeroth (yab improvements) + 2013 Jim Saxton (yab improvements)" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + yab = $portVersion compat >=1.7.02 + cmd:yab= $portVersion compat >=1.7.02 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libncurses$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libncurses$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + cmd:bison + cmd:flex + cmd:gcc$secondaryArchSuffix + cmd:make + cmd:mkdepend + cmd:perl + makefile_engine + " + +BUILD() +{ + mkdir -p tmp + cp -r src/* tmp + cd tmp + make $jobArgs BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` + unzip -o App_YAB.zip + copyattr App_YAB yab + +} + +INSTALL() +{ + mkdir -p $binDir + cp tmp/yab $binDir/ + + mkdir -p $appsDir/yab-IDE + cp -r src $appsDir/yab-IDE/src + cp -r Documentation $appsDir/yab-IDE/Documentation + + mkdir -p $documentationDir + ln -s $appsDir/yab-IDE/Documentation $documentationDir/yab-1.7.02 +} diff --git a/dev-lang/yasm/yasm-1.1.0.recipe b/dev-lang/yasm/yasm-1.1.0.recipe index 4ae067250..30336a0d6 100644 --- a/dev-lang/yasm/yasm-1.1.0.recipe +++ b/dev-lang/yasm/yasm-1.1.0.recipe @@ -1,7 +1,7 @@ SUMMARY="The Yasm modular 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" +CHECKSUM_SHA256="e5d56b582f3d0c30ed5c4fc221063e4175602307ea645520889458133671c232" LICENSE=" Artistic BSD (2-clause) @@ -31,7 +31,6 @@ BUILD_PREREQUIRES=" cmd:make " -SOURCE_DIR="$portVersionedName" BUILD() { @@ -47,8 +46,13 @@ INSTALL() } -DESCRIPTION="Yasm is a complete rewrite of the NASM assembler under the “new†BSD License (some portions are under other licenses, see COPYING for details). - -Yasm currently supports the x86 and AMD64 instruction sets, accepts NASM and GAS assembler syntaxes, outputs binary, ELF32, ELF64, 32 and 64-bit Mach-O, RDOFF2, COFF, Win32, and Win64 object formats, and generates source debugging information in STABS, DWARF 2, and CodeView 8 formats. - -Yasm can be easily integrated into Visual Studio 2005/2008 and 2010 for assembly of NASM or GAS syntax code into Win32 or Win64 object files." +DESCRIPTION=" +Yasm is a complete rewrite of the NASM assembler under the “new†BSD License \ +(some portions are under other licenses, see COPYING for details). +Yasm currently supports the x86 and AMD64 instruction sets, accepts NASM and \ +GAS assembler syntaxes, outputs binary, ELF32, ELF64, 32 and 64-bit Mach-O, \ +RDOFF2, COFF, Win32, and Win64 object formats, and generates source debugging \ +information in STABS, DWARF 2, and CodeView 8 formats. +Yasm can be easily integrated into Visual Studio 2005/2008 and 2010 for \ +assembly of NASM or GAS syntax code into Win32 or Win64 object files. +" diff --git a/dev-lang/yasm/yasm-1.2.0.recipe b/dev-lang/yasm/yasm-1.2.0.recipe index 70e7758f5..95d7575bc 100644 --- a/dev-lang/yasm/yasm-1.2.0.recipe +++ b/dev-lang/yasm/yasm-1.2.0.recipe @@ -1,7 +1,7 @@ SUMMARY="The Yasm modular 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" +CHECKSUM_SHA256="768ffab457b90a20a6d895c39749adb547c1b7cb5c108e84b151a838a23ccf31" LICENSE=" Artistic BSD (2-clause) @@ -33,7 +33,6 @@ BUILD_PREREQUIRES=" cmd:make " -SOURCE_DIR="$portVersionedName" BUILD() { @@ -52,8 +51,13 @@ INSTALL() } -DESCRIPTION="Yasm is a complete rewrite of the NASM assembler under the “new†BSD License (some portions are under other licenses, see COPYING for details). - -Yasm currently supports the x86 and AMD64 instruction sets, accepts NASM and GAS assembler syntaxes, outputs binary, ELF32, ELF64, 32 and 64-bit Mach-O, RDOFF2, COFF, Win32, and Win64 object formats, and generates source debugging information in STABS, DWARF 2, and CodeView 8 formats. - -Yasm can be easily integrated into Visual Studio 2005/2008 and 2010 for assembly of NASM or GAS syntax code into Win32 or Win64 object files." +DESCRIPTION=" +Yasm is a complete rewrite of the NASM assembler under the “new†BSD License \ +(some portions are under other licenses, see COPYING for details). +Yasm currently supports the x86 and AMD64 instruction sets, accepts NASM and \ +GAS assembler syntaxes, outputs binary, ELF32, ELF64, 32 and 64-bit Mach-O, \ +RDOFF2, COFF, Win32, and Win64 object formats, and generates source debugging \ +information in STABS, DWARF 2, and CodeView 8 formats. +Yasm can be easily integrated into Visual Studio 2005/2008 and 2010 for \ +assembly of NASM or GAS syntax code into Win32 or Win64 object files. +" diff --git a/dev-libs/apr/apr-1.4.6.recipe b/dev-libs/apr/apr-1.4.6.recipe index d8b6ed15f..6928dafe4 100644 --- a/dev-libs/apr/apr-1.4.6.recipe +++ b/dev-libs/apr/apr-1.4.6.recipe @@ -1,9 +1,9 @@ SUMMARY="Apache Portable Runtime Library" HOMEPAGE="http://apr.apache.org/" -SRC_URI="http://www.apache.org/dist/apr/apr-1.4.6.tar.gz" +SRC_URI="http://archive.apache.org/dist/apr/apr-1.4.6.tar.gz" +CHECKSUM_SHA256="538d593d805c36985fc6d200d31bf6c1b5f90df2a50b917902743a13bbc10e05" COPYRIGHT="2012 The Apache Software Foundation." LICENSE="Apache v2" -CHECKSUM_MD5="76cc4457fbb71eefdafa27dba8f511fb" REVISION="7" ARCHITECTURES="x86_gcc2 x86 x86_64" @@ -28,7 +28,6 @@ BUILD_PREREQUIRES=" cmd:make " -SOURCE_DIR="$portVersionedName" BUILD() { @@ -74,30 +73,28 @@ TEST() # ----- description ---------------------------------------------------------- DESCRIPTION=" - The mission of the Apache Portable Runtime (APR) project is to create - and maintain software libraries that provide a predictable and consistent - interface to underlying platform-specific implementations. The primary - goal is to provide an API to which software developers may code and be - assured of predictable if not identical behaviour regardless of the - platform on which their software is built, relieving them of the need to - code special-case conditions to work around or take advantage of - platform-specific deficiencies or features. - - To give a brief overview, the primary core subsystems of APR 1.x include - the following: - - - atomic operations - - dynamic Shared Object loading - - file I/O - - locks (mutexes, condition variables, etc) - - memory management (high performance allocators) - - memory-mapped files - - multicast Sockets - - network I/O - - shared memory - - thread and Process management - - various data structures (tables, hashes, priority queues, etc) - " +The mission of the Apache Portable Runtime (APR) project is to create and \ +maintain software libraries that provide a predictable and consistent \ +interface to underlying platform-specific implementations. The primary goal is \ +to provide an API to which software developers may code and be assured of \ +predictable if not identical behaviour regardless of the platform on which \ +their software is built, relieving them of the need to code special-case \ +conditions to work around or take advantage of platform-specific deficiencies \ +or features. +To give a brief overview, the primary core subsystems of APR 1.x include the \ +following: +- atomic operations +- dynamic Shared Object loading +- file I/O +- locks (mutexes, condition variables, etc) +- memory management (high performance allocators) +- memory-mapped files +- multicast Sockets +- network I/O +- shared memory +- thread and Process management +- various data structures (tables, hashes, priority queues, etc) +" # ----- devel package ------------------------------------------------------- diff --git a/dev-libs/apr/apr-1.5.0.recipe b/dev-libs/apr/apr-1.5.0.recipe new file mode 100644 index 000000000..1ef901bf7 --- /dev/null +++ b/dev-libs/apr/apr-1.5.0.recipe @@ -0,0 +1,108 @@ +SUMMARY="Apache Portable Runtime Library" +HOMEPAGE="http://apr.apache.org/" +SRC_URI="http://archive.apache.org/dist/apr/apr-1.5.0.tar.gz" +CHECKSUM_SHA256="9879f02054cb22e99f605f6fdbf47f4c028af4cd4f351cf64186a7ee447f35d7" +COPYRIGHT="2012 The Apache Software Foundation." +LICENSE="Apache v2" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PATCHES="apr-1.5.0.patch" + +PROVIDES=" + apr = $portVersion compat >= 1 + lib:libapr_1 = 0.5.0 compat >= 0 + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:gcc + cmd:ld + cmd:libtoolize + cmd:make + " + + +BUILD() +{ + libtoolize -fci + touch libtool.m4 + aclocal -I build + autoconf + runConfigure ./configure \ + --with-installbuilddir=$prefix/data/apr + + # TODO: fix this hack (by finding out why top_builddir seems to be unset)! + ln -sfn $sourceDir/libtool /libtool + + make $jobArgs +} + +INSTALL() +{ + make install + + # prepare develop/lib + prepareInstalledDevelLibs libapr-1 + fixPkgconfig + + # fix apr-1-config + fixDevelopLibDirReferences $binDir/apr-1-config + + # remove superfluous .exp file + rm $libDir/apr.exp + + # devel package + packageEntries devel \ + $binDir \ + $dataDir \ + $developDir +} + +TEST() +{ + make test +} + +# ----- description ---------------------------------------------------------- + +DESCRIPTION=" +The mission of the Apache Portable Runtime (APR) project is to create and \ +maintain software libraries that provide a predictable and consistent \ +interface to underlying platform-specific implementations. The primary goal is \ +to provide an API to which software developers may code and be assured of \ +predictable if not identical behaviour regardless of the platform on which \ +their software is built, relieving them of the need to code special-case \ +conditions to work around or take advantage of platform-specific deficiencies \ +or features. +To give a brief overview, the primary core subsystems of APR 1.x include the \ +following: +- atomic operations +- dynamic Shared Object loading +- file I/O +- locks (mutexes, condition variables, etc) +- memory management (high performance allocators) +- memory-mapped files +- multicast Sockets +- network I/O +- shared memory +- thread and Process management +- various data structures (tables, hashes, priority queues, etc) +" + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + apr_devel = portVersion compat >= 1 + cmd:apr_1_config = portVersion compat >= 1 + devel:libapr_1 = 0.5.0 compat >= 0 + " +REQUIRES_devel=" + apr == $portVersion base + " diff --git a/dev-libs/apr/patches/apr-1.5.0.patch b/dev-libs/apr/patches/apr-1.5.0.patch new file mode 100644 index 000000000..088277597 --- /dev/null +++ b/dev-libs/apr/patches/apr-1.5.0.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/system ++ exec_prefix: /boot/system ++ bindir: /boot/system/bin ++ sbindir: /boot/system/servers ++ libdir: /boot/system/lib ++ libexecdir: /boot/system/servers ++ mandir: /boot/system/documentation/man ++ sysconfdir: /boot/system/settings ++ datadir: /boot/system/data ++ installbuilddir: /boot/develop/build ++ includedir: /boot/system/include ++ localstatedir: /boot/system/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/apr_util/apr_util-1.3.10.recipe b/dev-libs/apr_util/apr_util-1.3.10.recipe index d54f98417..0cb40c651 100644 --- a/dev-libs/apr_util/apr_util-1.3.10.recipe +++ b/dev-libs/apr_util/apr_util-1.3.10.recipe @@ -1,9 +1,9 @@ SUMMARY="Apache Portable Runtime Utility Library" HOMEPAGE="http://apr.apache.org/" SRC_URI="http://archive.apache.org/dist/apr/apr-util-1.3.10.tar.gz" +CHECKSUM_SHA256="7c37ac40b2351bfc23000fb6b7b54a67e0872255df315c82eb60c821bcef4b23" LICENSE="Apache v2" COPYRIGHT="2010 The Apache Software Foundation." -CHECKSUM_MD5="82acd25cf3df8c72eba44eaee8b80c19" REVISION="4" ARCHITECTURES="x86_gcc2 ?x86" @@ -31,7 +31,6 @@ BUILD_PREREQUIRES=" cmd:make " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/dev-libs/apr_util/apr_util-1.4.1.recipe b/dev-libs/apr_util/apr_util-1.4.1.recipe index 0696004a9..cd19d3aa6 100644 --- a/dev-libs/apr_util/apr_util-1.4.1.recipe +++ b/dev-libs/apr_util/apr_util-1.4.1.recipe @@ -1,9 +1,9 @@ SUMMARY="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_SHA256="d636d9ef95c6e50e47fc338d532aa375edd11e5d7a3c30dee48beb38ddf4ab4c" LICENSE="Apache v2" COPYRIGHT="2011 The Apache Software Foundation." -CHECKSUM_MD5="666a5d56098a9debf998510e304c8095" REVISION="4" ARCHITECTURES="x86_gcc2 x86 x86_64" @@ -93,30 +93,28 @@ INSTALL() } DESCRIPTION=" - The mission of the Apache Portable Runtime (APR) project is to create - and maintain software libraries that provide a predictable and consistent - interface to underlying platform-specific implementations. The primary - goal is to provide an API to which software developers may code and be - assured of predictable if not identical behaviour regardless of the - platform on which their software is built, relieving them of the need to - code special-case conditions to work around or take advantage of - platform-specific deficiencies or features. - - To give a brief overview, the primary core subsystems of APR 1.x include - the following: - - - atomic operations - - dynamic Shared Object loading - - file I/O - - locks (mutexes, condition variables, etc) - - memory management (high performance allocators) - - memory-mapped files - - multicast Sockets - - network I/O - - shared memory - - thread and Process management - - various data structures (tables, hashes, priority queues, etc) - " +The mission of the Apache Portable Runtime (APR) project is to create and \ +maintain software libraries that provide a predictable and consistent \ +interface to underlying platform-specific implementations. The primary goal is \ +to provide an API to which software developers may code and be assured of \ +predictable if not identical behaviour regardless of the platform on which \ +their software is built, relieving them of the need to code special-case \ +conditions to work around or take advantage of platform-specific deficiencies \ +or features. +To give a brief overview, the primary core subsystems of APR 1.x include the \ +following: +- atomic operations +- dynamic Shared Object loading +- file I/O +- locks (mutexes, condition variables, etc) +- memory management (high performance allocators) +- memory-mapped files +- multicast Sockets +- network I/O +- shared memory +- thread and Process management +- various data structures (tables, hashes, priority queues, etc) +" # ----- devel package ------------------------------------------------------- diff --git a/dev-libs/apr_util/apr_util-1.5.3.recipe b/dev-libs/apr_util/apr_util-1.5.3.recipe new file mode 100644 index 000000000..82b307208 --- /dev/null +++ b/dev-libs/apr_util/apr_util-1.5.3.recipe @@ -0,0 +1,128 @@ +SUMMARY="Apache Portable Runtime Utility Library" +HOMEPAGE="http://apr.apache.org/" +SRC_URI="http://archive.apache.org/dist/apr/apr-util-1.5.3.tar.gz" +CHECKSUM_SHA256="76db34cb508e346e3bf69347c29ed1500bf0b71bcc48d54271ad9d1c25703743" +LICENSE="Apache v2" +COPYRIGHT="2011 The Apache Software Foundation." +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" + +PATCHES="apr_util-1.5.3.patch" + +PROVIDES=" + apr_util = $portVersion compat >= 1 + lib:libaprutil_1 = 0.5.3 compat >= 0 + " +REQUIRES=" + haiku >= $haikuVersion + lib:libapr_1 + lib:libexpat + lib:libiconv + " +BUILD_REQUIRES=" + devel:libapr_1 >= 0.5.0 + devel:libexpat + devel:libiconv + " +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:autoheader + cmd:gcc + cmd:ld + cmd:libtoolize + cmd:make + " + +SOURCE_DIR="apr-util-$portVersion" + +PATCH() +{ + echo 'AM_INIT_AUTOMAKE' >> xml/expat/configure.in +} + +BUILD() +{ + aprInstallDir=$portPackageLinksDir/lib~libapr_1 + expatInstallDir=$portPackageLinksDir/lib~libexpat + + rm -rf aclocal.m4 + mkdir -p m4 + libtoolize -fci + aclocal --install -I m4 + autoconf -f + + cd xml/expat + mkdir -p m4 + libtoolize -fci + aclocal --install -I m4 + autoconf --force + autoheader + touch libtool.m4 + cd ../.. + + # TODO: fix this hack! + cp /boot/system/bin/libtool . + ln -sfn $sourceDir/libtool /libtool + + runConfigure ./configure \ + --with-apr=$aprInstallDir \ + --with-expat=$expatInstallDir + make $jobArgs +} + +INSTALL() +{ + make install + + # prepare develop/lib + prepareInstalledDevelLibs libaprutil-1 + fixPkgconfig + + # fix apu-1-config + fixDevelopLibDirReferences $binDir/apu-1-config + + # remove superfluous .exp file + rm $libDir/aprutil.exp + + # devel package + packageEntries devel \ + $binDir \ + $developDir +} + +DESCRIPTION=" +The mission of the Apache Portable Runtime (APR) project is to create and \ +maintain software libraries that provide a predictable and consistent \ +interface to underlying platform-specific implementations. The primary goal is \ +to provide an API to which software developers may code and be assured of \ +predictable if not identical behaviour regardless of the platform on which \ +their software is built, relieving them of the need to code special-case \ +conditions to work around or take advantage of platform-specific deficiencies \ +or features. +To give a brief overview, the primary core subsystems of APR 1.x include the \ +following: +- atomic operations +- dynamic Shared Object loading +- file I/O +- locks (mutexes, condition variables, etc) +- memory management (high performance allocators) +- memory-mapped files +- multicast Sockets +- network I/O +- shared memory +- thread and Process management +- various data structures (tables, hashes, priority queues, etc) +" + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + apr_util_devel = portVersion compat >= 1 + cmd:apu_1_config = $portVersion compat >= 1 + devel:libaprutil_1 = 0.5.3 compat >= 0 + " +REQUIRES_devel=" + apr_util == $portVersion base + " diff --git a/dev-libs/apr_util/patches/apr_util-1.5.3.patch b/dev-libs/apr_util/patches/apr_util-1.5.3.patch new file mode 100644 index 000000000..cfde8b9f4 --- /dev/null +++ b/dev-libs/apr_util/patches/apr_util-1.5.3.patch @@ -0,0 +1,45 @@ +diff -ur orig/apr-util-1.5.3/build/apu-conf.m4 apr_util-1.5.3/build/apu-conf.m4 +--- orig/apr-util-1.5.3/build/apu-conf.m4 2011-08-08 11:32:27.026738688 +0200 ++++ apr_util-1.5.3/build/apu-conf.m4 2013-04-30 21:28:37.100401152 +0200 +@@ -145,10 +145,10 @@ + else + # Add given path to standard search paths if appropriate: + if test "$withval" != "/usr"; then +- APR_ADDTO(LDFLAGS, [-L$withval/lib]) +- APR_ADDTO(CPPFLAGS, [-I$withval/include]) +- APR_ADDTO(APRUTIL_INCLUDES, [-I$withval/include]) +- APR_ADDTO(APRUTIL_LDFLAGS, [-L$withval/lib]) ++ APR_ADDTO(LDFLAGS, [-L$withval/develop/lib]) ++ APR_ADDTO(CPPFLAGS, [-I$withval/develop/headers]) ++ APR_ADDTO(APRUTIL_INCLUDES, [-I$withval/develop/headers]) ++ APR_ADDTO(APRUTIL_LDFLAGS, [-L$withval/develop/lib]) + fi + # ...and refuse to fall back on the builtin expat. + apu_try_builtin_expat=0 +diff -ur orig/apr-util-1.5.3/config.layout apr_util-1.5.3/config.layout +--- orig/apr-util-1.5.3/config.layout 2005-02-09 13:18:43.064749568 +0100 ++++ apr_util-1.5.3/config.layout 2013-04-30 21:27:27.079953920 +0200 +@@ -60,6 +60,23 @@ + runtimedir: ${localstatedir}/run + + ++# Haiku Layout making use of finddir ++ ++ prefix: /boot/system ++ exec_prefix: /boot/system ++ bindir: /boot/system/bin ++ sbindir: /boot/system/servers ++ libdir: /boot/system/lib ++ libexecdir: /boot/system/servers ++ mandir: /boot/system/documentation/man ++ sysconfdir: /boot/system/settings ++ datadir: /boot/system/data ++ installbuilddir: /boot/system/develop/build ++ includedir: /boot/system/include ++ localstatedir: /boot/system/var ++ runtimedir: ${localstatedir}/log ++ ++ + # Mac OS X Server (Rhapsody) + + prefix: /Local/Library/WebServer diff --git a/dev-libs/boehm_gc/boehm_gc-7.2d.recipe b/dev-libs/boehm_gc/boehm_gc-7.2d.recipe index f724e9412..a2d049729 100644 --- a/dev-libs/boehm_gc/boehm_gc-7.2d.recipe +++ b/dev-libs/boehm_gc/boehm_gc-7.2d.recipe @@ -1,50 +1,40 @@ SUMMARY="The Boehm-Demers-Weiser conservative garbage collector" DESCRIPTION=" -The Boehm-Demers-Weiser conservative garbage collector can be used as -a garbage collecting replacement for C malloc or C++ new. It allows -you to allocate memory basically as you normally would, without -explicitly deallocating memory that is no longer useful. The collector -automatically recycles memory when it determines that it can no longer -be otherwise accessed." - -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" -ARCHITECTURES="x86 x86_gcc2" -CHECKSUM_MD5="91340b28c61753a789eb6077675d87d2" +The Boehm-Demers-Weiser conservative garbage collector can be used as a \ +garbage collecting replacement for C malloc or C++ new. It allows you to \ +allocate memory basically as you normally would, without explicitly \ +deallocating memory that is no longer useful. The collector automatically \ +recycles memory when it determines that it can no longer be otherwise accessed. +" +HOMEPAGE="http://www.hboehm.info/gc/" +SRC_URI="http://www.hboehm.info/gc/gc_source/gc-7.2d.tar.gz" +CHECKSUM_SHA256="d9fe0ae8650d43746a48bfb394cab01a319f3809cee19f8ebd16aa985b511c5e" +REVISION="2" +ARCHITECTURES="x86 x86_gcc2 x86_64" +SECONDARY_ARCHITECTURES="x86 x86_gcc2" SOURCE_DIR="gc-7.2" PATCHES="boehm_gc-7.2d.patch" PROVIDES=" - boehm_gc = $portVersion compat >= 7 - lib:libgc = $portVersion compat >= 7 - lib:libcord = $portVersion compat >= 7 + boehm_gc$secondaryArchSuffix = $portVersion compat >= 7 + lib:libgc$secondaryArchSuffix = $portVersion compat >= 7 + lib:libcord$secondaryArchSuffix = $portVersion compat >= 7 " REQUIRES=" - haiku >= $haikuVersion + haiku$secondaryArchSuffix >= $haikuVersion " BUILD_REQUIRES="" BUILD_PREREQUIRES=" - haiku_devel >= $haikuVersion + haiku${secondaryArchSuffix}_devel >= $haikuVersion cmd:libtoolize cmd:autoconf cmd:make - cmd:gcc - cmd:ld - " - -PROVIDES_devel=" - boehm_gc_devel = $portVersion compat >= 7 - devel:libgc = $portVersion compat >= 7 - devel:libcord = $portVersion compat >= 7 - " - -REQUIRES_devel=" - boehm_gc == $portVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix " BUILD() @@ -52,7 +42,7 @@ BUILD() libtoolize --force --copy --install autoconf -f runConfigure ./configure --enable-threads=posix \ - --enable-thread-local-alloc --enable-parallel-mark + --enable-thread-local-alloc --enable-parallel-mark make } @@ -69,6 +59,16 @@ TEST() make check } +PROVIDES_devel=" + boehm_gc${secondaryArchSuffix}_devel = $portVersion compat >= 7 + devel:libgc${secondaryArchSuffix} = $portVersion compat >= 7 + devel:libcord${secondaryArchSuffix} = $portVersion compat >= 7 + " + +REQUIRES_devel=" + boehm_gc${secondaryArchSuffix} == $portVersion base + " + LICENSE="BOEHM" COPYRIGHT="1988, 1989 Hans-J. Boehm, Alan J. Demers 1991-1996 by Xerox Corporation. All rights reserved. diff --git a/dev-libs/boost/boost-1.42.0.recipe b/dev-libs/boost/boost-1.42.0.recipe deleted file mode 100644 index f7789a6c3..000000000 --- a/dev-libs/boost/boost-1.42.0.recipe +++ /dev/null @@ -1,26 +0,0 @@ -DESCRIPTION="boost" -HOMEPAGE="http://www.boost.org/" -SRC_URI="http://sourceforge.net/projects/boost/files/boost/1.42.0/boost_1_42_0.tar.bz2/download" -CHECKSUM_MD5="7bf3b4eb841b62ffb0ade2b82218ebe6" -REVISION="1" -STATUS_HAIKU="broken" -MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." -DEPEND="" -BUILD() -{ - cd boost_1_42_0 - ./bootstrap.sh --prefix=`finddir B_COMMON_DIRECTORY` - ./bjam --prefix=`finddir B_COMMON_DIRECTORY` \ - --libdir=/boot/common/lib \ - --includedir=/boot/common/include \ - variant=release \ - link=shared \ - threading=single \ - runtime-link=shared -} - -INSTALL() -{ - cd boost_1_42_0 - ./bjam install -} diff --git a/dev-libs/boost/boost-1.50.0.recipe b/dev-libs/boost/boost-1.50.0.recipe deleted file mode 100644 index 590e1969e..000000000 --- a/dev-libs/boost/boost-1.50.0.recipe +++ /dev/null @@ -1,52 +0,0 @@ -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.recipe b/dev-libs/boost/boost-1.53.0.recipe deleted file mode 100644 index 4b4a6adbe..000000000 --- a/dev-libs/boost/boost-1.53.0.recipe +++ /dev/null @@ -1,52 +0,0 @@ -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/boost-1.55.0.recipe b/dev-libs/boost/boost-1.55.0.recipe new file mode 100644 index 000000000..336a2f6f5 --- /dev/null +++ b/dev-libs/boost/boost-1.55.0.recipe @@ -0,0 +1,459 @@ +SUMMARY="A set of libraries for the C++ programming language" +DESCRIPTION=" +Boost is a set of libraries for the C++ programming language that provide \ +support for tasks and structures such as linear algebra, pseudorandom number \ +generation, multithreading, image processing, regular expressions, and unit \ +testing. It contains over eighty individual libraries. +" +HOMEPAGE="http://www.boost.org/" +SRC_URI="http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.bz2" +CHECKSUM_SHA256="fff00023dd79486d444c8e29922f4072e1d451fc5a4d2b6075852ead7f2b7b52" +REVISION="3" +LICENSE="Boost v1.0" +COPYRIGHT="1998-2013 Beman Dawes, David Abrahams, Rene Rivera, et al." +ARCHITECTURES="x86 ?x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86 ?x86_64" + +SOURCE_DIR="boost_1_55_0" + +PATCHES="boost-1.55.0.patchset" + +PROVIDES=" + boost$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + boost_atomic$secondaryArchSuffix == $portVersion + boost_chrono$secondaryArchSuffix == $portVersion + boost_context$secondaryArchSuffix == $portVersion + boost_coroutine$secondaryArchSuffix == $portVersion + boost_date_time$secondaryArchSuffix == $portVersion + boost_filesystem$secondaryArchSuffix == $portVersion + boost_graph$secondaryArchSuffix == $portVersion + boost_iostreams$secondaryArchSuffix == $portVersion + boost_locale$secondaryArchSuffix == $portVersion + boost_log$secondaryArchSuffix == $portVersion + boost_math$secondaryArchSuffix == $portVersion + boost_program_options$secondaryArchSuffix == $portVersion + boost_random$secondaryArchSuffix == $portVersion + boost_regex$secondaryArchSuffix == $portVersion + boost_serialization$secondaryArchSuffix == $portVersion + boost_signals$secondaryArchSuffix == $portVersion + boost_system$secondaryArchSuffix == $portVersion + boost_test$secondaryArchSuffix == $portVersion + boost_thread$secondaryArchSuffix == $portVersion + boost_timer$secondaryArchSuffix == $portVersion + boost_unit_test_framework$secondaryArchSuffix == $portVersion + boost_wave$secondaryArchSuffix == $portVersion + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libbz2$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:libicuuc$secondaryArchSuffix + devel:libicui18n$secondaryArchSuffix + devel:libicudata$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + " + +BUILD() +{ + ./bootstrap.sh \ + --prefix=$prefix \ + --exec-prefix=$binDir \ + --libdir=$libDir \ + --includedir=$includeDir + + ./b2 $jobArgs \ + --without-mpi \ + --enable-threads=posix \ + --enable-thread-local-alloc \ + --enable-parallel-mark \ + inlining=on \ + threading=multi \ + variant=release \ + link=static,shared \ + runtime-link=shared \ + --without-python +} + +INSTALL() +{ + ./b2 $jobArgs \ + --without-mpi \ + --enable-threads=posix \ + --enable-thread-local-alloc \ + --enable-parallel-mark \ + inlining=on \ + threading=multi \ + variant=release \ + link=static,shared \ + runtime-link=shared \ + --without-python \ + install + + prepareInstalledDevelLibs libboost_atomic \ + libboost_chrono libboost_context libboost_coroutine \ + libboost_date_time libboost_filesystem libboost_iostreams \ + libboost_locale libboost_log libboost_log_setup \ + libboost_math_c99 libboost_math_c99f libboost_math_c99l \ + libboost_math_tr1 libboost_math_tr1f libboost_math_tr1l \ + libboost_program_options libboost_random libboost_regex \ + libboost_serialization libboost_signals libboost_system \ + libboost_thread libboost_timer libboost_unit_test_framework \ + libboost_wave libboost_wserialization libboost_prg_exec_monitor \ + libboost_exception libboost_graph libboost_test_exec_monitor + + packageEntries devel $developDir + packageEntries atomic $libDir/libboost_atomic* + packageEntries chrono $libDir/libboost_chrono* + packageEntries context $libDir/libboost_context* + packageEntries coroutine $libDir/libboost_coroutine* + packageEntries date_time $libDir/libboost_date_time* +# packageEntries exception $libDir/libboost_exception* + packageEntries filesystem $libDir/libboost_filesystem* + packageEntries graph $libDir/libboost_graph* + packageEntries iostreams $libDir/libboost_iostreams* + packageEntries locale $libDir/libboost_locale* + packageEntries log $libDir/libboost_log* + packageEntries math $libDir/libboost_math* + packageEntries program_options $libDir/libboost_program_options* + packageEntries random $libDir/libboost_random* + packageEntries regex $libDir/libboost_regex* + packageEntries serialization $libDir/libboost_serialization* $libDir/libboost_wserialization* + packageEntries signals $libDir/libboost_signals* + packageEntries system $libDir/libboost_system* + packageEntries test $libDir/libboost_prg_exec_monitor* + packageEntries thread $libDir/libboost_thread* + packageEntries timer $libDir/libboost_timer* + packageEntries unit_test_framework $libDir/libboost_unit_test_framework* + packageEntries wave $libDir/libboost_wave* +} + +TEST() { + cd status + ../bjam $jobArgs +} + +PROVIDES_devel=" + boost_devel$secondaryArchSuffix = $portVersion + devel:libboost_atomic$secondaryArchSuffix = $portVersion + devel:libboost_chrono$secondaryArchSuffix = $portVersion + devel:libboost_context$secondaryArchSuffix = $portVersion + devel:libboost_coroutine$secondaryArchSuffix = $portVersion + devel:libboost_date_time$secondaryArchSuffix = $portVersion + devel:libboost_exception$secondaryArchSuffix = $portVersion + devel:libboost_filesystem$secondaryArchSuffix = $portVersion + devel:libboost_graph$secondaryArchSuffix = $portVersion + devel:libboost_iostreams$secondaryArchSuffix = $portVersion + devel:libboost_locale$secondaryArchSuffix = $portVersion + devel:libboost_log$secondaryArchSuffix = $portVersion + devel:libboost_log_setup$secondaryArchSuffix = $portVersion + devel:libboost_math_c99$secondaryArchSuffix = $portVersion + devel:libboost_math_c99f$secondaryArchSuffix = $portVersion + devel:libboost_math_c99l$secondaryArchSuffix = $portVersion + devel:libboost_math_tr1$secondaryArchSuffix = $portVersion + devel:libboost_math_tr1f$secondaryArchSuffix = $portVersion + devel:libboost_math_tr1l$secondaryArchSuffix = $portVersion + devel:libboost_prg_exec_monitor$secondaryArchSuffix = $portVersion + devel:libboost_program_options$secondaryArchSuffix = $portVersion + devel:libboost_random$secondaryArchSuffix = $portVersion + devel:libboost_regex$secondaryArchSuffix = $portVersion + devel:libboost_serialization$secondaryArchSuffix = $portVersion + devel:libboost_signals$secondaryArchSuffix = $portVersion + devel:libboost_system$secondaryArchSuffix = $portVersion + devel:libboost_test_exec_monitor$secondaryArchSuffix = $portVersion + devel:libboost_thread$secondaryArchSuffix = $portVersion + devel:libboost_timer$secondaryArchSuffix = $portVersion + devel:libboost_unit_test_framework$secondaryArchSuffix = $portVersion + devel:libboost_wave$secondaryArchSuffix = $portVersion + devel:libboost_wserialization$secondaryArchSuffix = $portVersion + " + +REQUIRES_devel=" + haiku$secondaryArchSuffix >= $haikuVersion + boost$secondaryArchSuffix == $portVersion + boost_atomic$secondaryArchSuffix == $portVersion + boost_chrono$secondaryArchSuffix == $portVersion + boost_context$secondaryArchSuffix == $portVersion + boost_coroutine$secondaryArchSuffix == $portVersion + boost_date_time$secondaryArchSuffix == $portVersion +# boost_exception$secondaryArchSuffix == $portVersion + boost_filesystem$secondaryArchSuffix == $portVersion + boost_graph$secondaryArchSuffix == $portVersion + boost_iostreams$secondaryArchSuffix == $portVersion + boost_locale$secondaryArchSuffix == $portVersion + boost_log$secondaryArchSuffix == $portVersion + boost_math$secondaryArchSuffix == $portVersion + boost_program_options$secondaryArchSuffix == $portVersion + boost_random$secondaryArchSuffix == $portVersion + boost_regex$secondaryArchSuffix == $portVersion + boost_serialization$secondaryArchSuffix == $portVersion + boost_signals$secondaryArchSuffix == $portVersion + boost_system$secondaryArchSuffix == $portVersion + boost_test$secondaryArchSuffix == $portVersion + boost_thread$secondaryArchSuffix == $portVersion + boost_timer$secondaryArchSuffix == $portVersion + boost_unit_test_framework$secondaryArchSuffix == $portVersion + boost_wave$secondaryArchSuffix == $portVersion + " + +PROVIDES_atomic=" + boost_atomic$secondaryArchSuffix = $portVersion + lib:libboost_atomic$secondaryArchSuffix = $portVersion + " + +REQUIRES_atomic=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +PROVIDES_chrono=" + boost_chrono$secondaryArchSuffix = $portVersion + lib:libboost_chrono$secondaryArchSuffix = $portVersion + " + +REQUIRES_chrono=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libboost_system$secondaryArchSuffix == $portVersion + " + +PROVIDES_context=" + boost_context$secondaryArchSuffix = $portVersion + lib:libboost_context$secondaryArchSuffix = $portVersion + " + +REQUIRES_context=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +PROVIDES_coroutine=" + boost_coroutine$secondaryArchSuffix = $portVersion + lib:libboost_coroutine$secondaryArchSuffix = $portVersion + " + +REQUIRES_coroutine=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libboost_context$secondaryArchSuffix == $portVersion + lib:libboost_system$secondaryArchSuffix == $portVersion + " + +PROVIDES_date_time=" + boost_date_time$secondaryArchSuffix = $portVersion + lib:libboost_date_time$secondaryArchSuffix = $portVersion + " + +REQUIRES_date_time=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +#PROVIDES_exception=" +# boost_exception$secondaryArchSuffix = $portVersion +# lib:libboost_exception$secondaryArchSuffix = $portVersion +# " + +#REQUIRES_exception=" +# haiku$secondaryArchSuffix >= $haikuVersion +# " + +PROVIDES_filesystem=" + boost_filesystem$secondaryArchSuffix = $portVersion + lib:libboost_filesystem$secondaryArchSuffix = $portVersion + " + +REQUIRES_filesystem=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libboost_system$secondaryArchSuffix == $portVersion + lib:libz$secondaryArchSuffix + lib:libbz2$secondaryArchSuffix + " + +PROVIDES_graph=" + boost_graph$secondaryArchSuffix = $portVersion + lib:libboost_graph$secondaryArchSuffix = $portVersion + " + +REQUIRES_graph=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libboost_regex$secondaryArchSuffix == $portVersion + lib:libicuuc$secondaryArchSuffix + lib:libicui18n$secondaryArchSuffix + lib:libicudata$secondaryArchSuffix + " + +PROVIDES_iostreams=" + boost_iostreams$secondaryArchSuffix = $portVersion + lib:libboost_iostreams$secondaryArchSuffix = $portVersion + " + +REQUIRES_iostreams=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libz$secondaryArchSuffix + lib:libbz2$secondaryArchSuffix + " + +PROVIDES_locale=" + boost_locale$secondaryArchSuffix = $portVersion + lib:libboost_locale$secondaryArchSuffix = $portVersion + " + +REQUIRES_locale=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libboost_chrono$secondaryArchSuffix == $portVersion + lib:libboost_system$secondaryArchSuffix == $portVersion + lib:libboost_thread$secondaryArchSuffix == $portVersion + lib:libicuuc$secondaryArchSuffix + lib:libicui18n$secondaryArchSuffix + lib:libicudata$secondaryArchSuffix + " + +PROVIDES_log=" + boost_log$secondaryArchSuffix = $portVersion + lib:libboost_log$secondaryArchSuffix = $portVersion + lib:libboost_log_setup$secondaryArchSuffix = $portVersion + " + +REQUIRES_log=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libboost_chrono$secondaryArchSuffix == $portVersion + lib:libboost_filesystem$secondaryArchSuffix == $portVersion + lib:libboost_system$secondaryArchSuffix == $portVersion + lib:libboost_date_time$secondaryArchSuffix == $portVersion + lib:libboost_thread$secondaryArchSuffix == $portVersion + " + +PROVIDES_math=" + boost_math$secondaryArchSuffix = $portVersion + lib:libboost_math_c99$secondaryArchSuffix = $portVersion + lib:libboost_math_c99f$secondaryArchSuffix = $portVersion + lib:libboost_math_c99l$secondaryArchSuffix = $portVersion + lib:libboost_math_tr1$secondaryArchSuffix = $portVersion + lib:libboost_math_tr1f$secondaryArchSuffix = $portVersion + lib:libboost_math_tr1l$secondaryArchSuffix = $portVersion + " + +REQUIRES_math=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +PROVIDES_program_options=" + boost_program_options$secondaryArchSuffix = $portVersion + lib:libboost_program_options$secondaryArchSuffix = $portVersion + " + +REQUIRES_program_options=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +PROVIDES_random=" + boost_random$secondaryArchSuffix = $portVersion + lib:libboost_random$secondaryArchSuffix = $portVersion + " + +REQUIRES_random=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +PROVIDES_regex=" + boost_regex$secondaryArchSuffix = $portVersion + lib:libboost_regex$secondaryArchSuffix = $portVersion + " + +REQUIRES_regex=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libicuuc$secondaryArchSuffix + lib:libicui18n$secondaryArchSuffix + lib:libicudata$secondaryArchSuffix + " + +PROVIDES_serialization=" + boost_serialization$secondaryArchSuffix = $portVersion + lib:libboost_serialization$secondaryArchSuffix = $portVersion + lib:libboost_wserialization$secondaryArchSuffix = $portVersion + " + +REQUIRES_serialization=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +PROVIDES_signals=" + boost_signals$secondaryArchSuffix = $portVersion + lib:libboost_signals$secondaryArchSuffix = $portVersion + " + +REQUIRES_signals=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +PROVIDES_system=" + boost_system$secondaryArchSuffix = $portVersion + lib:libboost_system$secondaryArchSuffix = $portVersion + " + +REQUIRES_system=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +PROVIDES_test=" + boost_test$secondaryArchSuffix = $portVersion + lib:libboost_prg_exec_monitor$secondaryArchSuffix = $portVersion +# lib:libboost_test_exec_monitor$secondaryArchSuffix = $portVersion + " + +REQUIRES_test=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +PROVIDES_thread=" + boost_thread$secondaryArchSuffix = $portVersion + lib:libboost_thread$secondaryArchSuffix = $portVersion + " + +REQUIRES_thread=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libboost_system$secondaryArchSuffix == $portVersion + " + +PROVIDES_timer=" + boost_timer$secondaryArchSuffix = $portVersion + lib:libboost_timer$secondaryArchSuffix = $portVersion + " + +REQUIRES_timer=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libboost_chrono$secondaryArchSuffix == $portVersion + lib:libboost_system$secondaryArchSuffix == $portVersion + " + +PROVIDES_unit_test_framework=" + boost_unit_test_framework$secondaryArchSuffix = $portVersion + lib:libboost_unit_test_framework$secondaryArchSuffix = $portVersion + " + +REQUIRES_unit_test_framework=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +PROVIDES_wave=" + boost_wave$secondaryArchSuffix = $portVersion + lib:libboost_wave$secondaryArchSuffix = $portVersion + " + +REQUIRES_wave=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libboost_chrono$secondaryArchSuffix == $portVersion + lib:libboost_date_time$secondaryArchSuffix == $portVersion + lib:libboost_filesystem$secondaryArchSuffix == $portVersion + lib:libboost_system$secondaryArchSuffix == $portVersion + lib:libboost_thread$secondaryArchSuffix == $portVersion + " diff --git a/dev-libs/boost/patches/boost-1.42.0.patch b/dev-libs/boost/patches/boost-1.42.0.patch deleted file mode 100644 index 8066356b5..000000000 --- a/dev-libs/boost/patches/boost-1.42.0.patch +++ /dev/null @@ -1,225 +0,0 @@ -diff -Naur boost_1_42_0/boost/config/platform/haiku.hpp boost_1_42_0-haiku/boost/config/platform/haiku.hpp ---- boost_1_42_0/boost/config/platform/haiku.hpp 1970-01-01 00:00:00.000000000 +0000 -+++ boost_1_42_0-haiku/boost/config/platform/haiku.hpp 2010-04-23 02:22:35.100925440 +0000 -@@ -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_42_0/boost/config/select_platform_config.hpp boost_1_42_0-haiku/boost/config/select_platform_config.hpp ---- boost_1_42_0/boost/config/select_platform_config.hpp 2009-05-30 11:16:25.057409536 +0000 -+++ boost_1_42_0-haiku/boost/config/select_platform_config.hpp 2010-04-23 02:22:24.092798976 +0000 -@@ -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_42_0/boost/config/stdlib/libstdcpp3.hpp boost_1_42_0-haiku/boost/config/stdlib/libstdcpp3.hpp ---- boost_1_42_0/boost/config/stdlib/libstdcpp3.hpp 2009-05-30 11:16:25.057671680 +0000 -+++ boost_1_42_0-haiku/boost/config/stdlib/libstdcpp3.hpp 2010-04-23 02:23:34.217841664 +0000 -@@ -31,7 +31,7 @@ - - #ifdef __GLIBCXX__ // gcc 3.4 and greater: - # if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \ -- || defined(_GLIBCXX__PTHREADS) -+ || defined(_GLIBCXX__PTHREADS) || 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_42_0/boost/thread/thread_time.hpp boost_1_42_0-haiku/boost/thread/thread_time.hpp ---- boost_1_42_0/boost/thread/thread_time.hpp 2008-06-18 13:01:08.030408704 +0000 -+++ boost_1_42_0-haiku/boost/thread/thread_time.hpp 2010-04-23 02:24:59.809500672 +0000 -@@ -17,6 +17,9 @@ - - inline system_time get_system_time() - { -+#ifndef BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK -+# error "High precision clock not supported on this platform" -+#endif - return boost::date_time::microsec_clock::universal_time(); - } - -diff -Naur boost_1_42_0/tools/build/v2/tools/builtin.jam boost_1_42_0-haiku/tools/build/v2/tools/builtin.jam ---- boost_1_42_0/tools/build/v2/tools/builtin.jam 2009-10-28 07:47:51.000786432 +0000 -+++ boost_1_42_0-haiku/tools/build/v2/tools/builtin.jam 2010-04-23 02:26:20.131596288 +0000 -@@ -39,7 +39,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 -@@ -77,6 +77,7 @@ - case MACOSX : host-os = darwin ; - case KFREEBSD : host-os = freebsd ; - case LINUX : host-os = linux ; -+ case HAIKU : host-os = haiku ; - case SUNOS : - ECHO "SunOS is not a supported operating system." ; - ECHO "We believe last version of SunOS was released in 1992, " ; -diff -Naur boost_1_42_0/tools/build/v2/tools/gcc.jam boost_1_42_0-haiku/tools/build/v2/tools/gcc.jam ---- boost_1_42_0/tools/build/v2/tools/gcc.jam 2009-10-28 07:47:51.003145728 +0000 -+++ boost_1_42_0-haiku/tools/build/v2/tools/gcc.jam 2010-04-23 02:28:40.680001536 +0000 -@@ -858,7 +858,7 @@ - # Differs from 'link' above only by -shared. - actions link.dll bind LIBRARIES - { -- "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,"$(RPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -shared $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) -+ "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,"$(RPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -nostart -Wl,-shared $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) - } - - rule setup-threading ( targets * : sources * : properties * ) -@@ -889,6 +889,10 @@ - { - # BeOS has no threading options, so do not set anything here. - } -+ case haiku : -+ { -+ # pthread. -+ } - case *bsd : - { - option = -pthread ; -diff -Naur boost_1_42_0/tools/jam/src/Jambase boost_1_42_0-haiku/tools/jam/src/Jambase ---- boost_1_42_0/tools/jam/src/Jambase 2009-01-10 19:42:28.047185920 +0000 -+++ boost_1_42_0-haiku/tools/jam/src/Jambase 2010-04-23 02:31:10.925106176 +0000 -@@ -849,6 +849,18 @@ - NOARSCAN ?= true ; - STDHDRS ?= /boot/develop/headers/posix ; - } -+else if $(OS) = HAIKU -+{ -+ BINDIR ?= /boot/common/bin ; -+ CC ?= gcc ; -+ C++ ?= $(CC) ; -+ FORTRAN ?= "" ; -+ LIBDIR ?= /boot/common/lib ; -+ LINK ?= gcc ; -+ LINKLIBS ?= -lnetwork ; -+ NOARSCAN ?= true ; -+ STDHDRS ?= /boot/develop/headers/posix ; -+} - else if $(UNIX) - { - switch $(OS) -diff -Naur boost_1_42_0/tools/jam/src/boehm_gc/config.guess boost_1_42_0-haiku/tools/jam/src/boehm_gc/config.guess ---- boost_1_42_0/tools/jam/src/boehm_gc/config.guess 2007-08-11 05:53:37.019922944 +0000 -+++ boost_1_42_0-haiku/tools/jam/src/boehm_gc/config.guess 2010-04-23 02:33:06.863502336 +0000 -@@ -1199,6 +1199,9 @@ - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; -+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible. -+ echo i586-pc-haiku -+ exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; -diff -Naur boost_1_42_0/tools/jam/src/boehm_gc/include/private/gcconfig.h boost_1_42_0-haiku/tools/jam/src/boehm_gc/include/private/gcconfig.h ---- boost_1_42_0/tools/jam/src/boehm_gc/include/private/gcconfig.h 2007-08-11 05:53:37.032243712 +0000 -+++ boost_1_42_0-haiku/tools/jam/src/boehm_gc/include/private/gcconfig.h 2010-04-23 02:34:09.906231808 +0000 -@@ -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_42_0/tools/jam/src/fileunix.c boost_1_42_0-haiku/tools/jam/src/fileunix.c ---- boost_1_42_0/tools/jam/src/fileunix.c 2009-01-10 19:42:28.045613056 +0000 -+++ boost_1_42_0-haiku/tools/jam/src/fileunix.c 2010-04-23 02:34:44.754712576 +0000 -@@ -80,6 +80,7 @@ - - # if defined( OS_QNX ) || \ - defined( OS_BEOS ) || \ -+ defined( OS_HAIKU ) || \ - defined( OS_MPEIX ) - # define NO_AR - # define HAVE_AR -diff -Naur boost_1_42_0/tools/jam/src/jam.h boost_1_42_0-haiku/tools/jam/src/jam.h ---- boost_1_42_0/tools/jam/src/jam.h 2009-01-10 19:42:28.046923776 +0000 -+++ boost_1_42_0-haiku/tools/jam/src/jam.h 2010-04-23 02:35:27.411828224 +0000 -@@ -234,6 +234,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_42_0/tools/jam/src/jambase.c boost_1_42_0-haiku/tools/jam/src/jambase.c ---- boost_1_42_0/tools/jam/src/jambase.c 2009-01-10 19:42:28.047448064 +0000 -+++ boost_1_42_0-haiku/tools/jam/src/jambase.c 2010-04-23 02:36:46.935329792 +0000 -@@ -554,6 +554,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 $(UNIX)\n", - "{\n", - "switch $(OS)\n", diff --git a/dev-libs/boost/patches/boost-1.50.0.patch b/dev-libs/boost/patches/boost-1.50.0.patch deleted file mode 100644 index 5a25a3870..000000000 --- a/dev-libs/boost/patches/boost-1.50.0.patch +++ /dev/null @@ -1,337 +0,0 @@ -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 deleted file mode 100644 index 7210abc07..000000000 --- a/dev-libs/boost/patches/boost-1.53.0.patch +++ /dev/null @@ -1,337 +0,0 @@ -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/boost/patches/boost-1.55.0.patchset b/dev-libs/boost/patches/boost-1.55.0.patchset new file mode 100644 index 000000000..072d6c2b6 --- /dev/null +++ b/dev-libs/boost/patches/boost-1.55.0.patchset @@ -0,0 +1,469 @@ +From c0848cd5528c0623d360be34004a411955ce6c98 Mon Sep 17 00:00:00 2001 +From: Scott McCreary +Date: Sun, 22 Dec 2013 10:01:12 -0800 +Subject: applying patch boost-1.55.0.patch + + +diff --git a/boost/config/platform/haiku.hpp b/boost/config/platform/haiku.hpp +new file mode 100644 +index 0000000..1b15c7e +--- /dev/null ++++ b/boost/config/platform/haiku.hpp +@@ -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 --git a/boost/config/select_platform_config.hpp b/boost/config/select_platform_config.hpp +index 2af61d2..5052d85 100644 +--- a/boost/config/select_platform_config.hpp ++++ b/boost/config/select_platform_config.hpp +@@ -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 --git a/boost/config/stdlib/libstdcpp3.hpp b/boost/config/stdlib/libstdcpp3.hpp +index 976ab76..66bc96d 100644 +--- a/boost/config/stdlib/libstdcpp3.hpp ++++ b/boost/config/stdlib/libstdcpp3.hpp +@@ -36,7 +36,8 @@ + || defined(_GLIBCXX__PTHREADS) \ + || defined(_GLIBCXX_HAS_GTHREADS) \ + || defined(_WIN32) \ +- || defined(_AIX) ++ || defined(_AIX) \ ++ || 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 --git a/boost/thread/detail/platform.hpp b/boost/thread/detail/platform.hpp +index 1f33b1a..1b8917c 100644 +--- a/boost/thread/detail/platform.hpp ++++ b/boost/thread/detail/platform.hpp +@@ -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 --git a/tools/build/v2/engine/boehm_gc/dyn_load.c b/tools/build/v2/engine/boehm_gc/dyn_load.c +index 36968ba..e725bdc 100644 +--- a/tools/build/v2/engine/boehm_gc/dyn_load.c ++++ b/tools/build/v2/engine/boehm_gc/dyn_load.c +@@ -64,7 +64,7 @@ static int (*GC_has_static_roots)(const char *, void *, size_t); + !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 @@ static int (*GC_has_static_roots)(const char *, void *, size_t); + # 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 @@ void GC_register_dynamic_libraries() + + #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 --git a/tools/build/v2/engine/boehm_gc/include/gc.h b/tools/build/v2/engine/boehm_gc/include/gc.h +index cc95088..590a868 100644 +--- a/tools/build/v2/engine/boehm_gc/include/gc.h ++++ b/tools/build/v2/engine/boehm_gc/include/gc.h +@@ -494,7 +494,7 @@ GC_API void * GC_malloc_atomic_ignore_off_page(size_t lb); + /* 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 --git a/tools/build/v2/engine/boehm_gc/include/gc_config_macros.h b/tools/build/v2/engine/boehm_gc/include/gc_config_macros.h +index 66abf0b..797eddd 100644 +--- a/tools/build/v2/engine/boehm_gc/include/gc_config_macros.h ++++ b/tools/build/v2/engine/boehm_gc/include/gc_config_macros.h +@@ -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 --git a/tools/build/v2/engine/boehm_gc/include/private/gcconfig.h b/tools/build/v2/engine/boehm_gc/include/private/gcconfig.h +index 20f35bc..7e798a7 100644 +--- a/tools/build/v2/engine/boehm_gc/include/private/gcconfig.h ++++ b/tools/build/v2/engine/boehm_gc/include/private/gcconfig.h +@@ -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 --git a/tools/build/v2/engine/boehm_gc/os_dep.c b/tools/build/v2/engine/boehm_gc/os_dep.c +index bb8fa08..a7edf72 100644 +--- a/tools/build/v2/engine/boehm_gc/os_dep.c ++++ b/tools/build/v2/engine/boehm_gc/os_dep.c +@@ -777,6 +777,16 @@ ptr_t GC_get_main_stack_base(void){ + # 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 @@ ptr_t GC_get_main_stack_base(void) + + #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 @@ ptr_t GC_get_main_stack_base(void) + # 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 --git a/tools/build/v2/engine/fileunix.c b/tools/build/v2/engine/fileunix.c +index bff3a42..1f60be2 100644 +--- a/tools/build/v2/engine/fileunix.c ++++ b/tools/build/v2/engine/fileunix.c +@@ -80,7 +80,10 @@ struct ar_hdr /* archive file member header - printable ascii */ + }; + #endif + +-#if defined( OS_QNX ) || defined( OS_BEOS ) || defined( OS_MPEIX ) ++# if defined( OS_QNX ) || \ ++ defined( OS_BEOS ) || \ ++ defined( OS_HAIKU ) || \ ++ defined( OS_MPEIX ) + # define NO_AR + # define HAVE_AR + #endif +diff --git a/tools/build/v2/engine/jam.h b/tools/build/v2/engine/jam.h +index 86ad0e8..7c0bb69 100644 +--- a/tools/build/v2/engine/jam.h ++++ b/tools/build/v2/engine/jam.h +@@ -125,6 +125,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 --git a/tools/build/v2/engine/jambase.c b/tools/build/v2/engine/jambase.c +index b15282b..5a127a1 100644 +--- a/tools/build/v2/engine/jambase.c ++++ b/tools/build/v2/engine/jambase.c +@@ -548,6 +548,18 @@ char *jambase[] = { + "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 --git a/tools/build/v2/tools/builtin.jam b/tools/build/v2/tools/builtin.jam +index 176de13..1c3466f 100644 +--- a/tools/build/v2/tools/builtin.jam ++++ b/tools/build/v2/tools/builtin.jam +@@ -41,7 +41,7 @@ import generate ; + + + .os-names = aix bsd cygwin darwin freebsd hpux iphone linux netbsd openbsd osf +- qnx qnxnto sgi solaris unix unixware windows ++ 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 clear how often we need +@@ -76,6 +76,7 @@ local rule default-host-os ( ) + 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 --git a/tools/build/v2/tools/builtin.py b/tools/build/v2/tools/builtin.py +index 35c1a40..c430fad 100644 +--- a/tools/build/v2/tools/builtin.py ++++ b/tools/build/v2/tools/builtin.py +@@ -103,6 +103,7 @@ def default_host_os(): + 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 --git a/tools/build/v2/tools/gcc.jam b/tools/build/v2/tools/gcc.jam +index ef90f05..2de76cf 100644 +--- a/tools/build/v2/tools/gcc.jam ++++ b/tools/build/v2/tools/gcc.jam +@@ -1029,10 +1029,11 @@ rule setup-threading ( targets * : sources * : properties * ) + case cygwin : option = -mthreads ; + case solaris : option = -pthreads ; libs = rt ; + case beos : # No threading options. ++ case haiku : option = ; + case *bsd : option = -pthread ; # There is no -lrt on BSD. + case sgi : # gcc on IRIX does not support multi-threading. + case darwin : # No threading options. +- case * : option = -pthread ; libs = rt ; ++ case * : option = -pthreads ; libs = rt ; + } + + if $(option) +diff --git a/tools/build/v2/tools/gcc.py b/tools/build/v2/tools/gcc.py +index c2f3b02..4f60d22 100644 +--- a/tools/build/v2/tools/gcc.py ++++ b/tools/build/v2/tools/gcc.py +@@ -677,6 +677,9 @@ elif bjam.variable('UNIX'): + 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 --git a/tools/build/v2/tools/python.jam b/tools/build/v2/tools/python.jam +index d48bb78..070f5d2 100644 +--- a/tools/build/v2/tools/python.jam ++++ b/tools/build/v2/tools/python.jam +@@ -639,13 +639,14 @@ local rule system-library-dependencies ( target-os ) + 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 ; + } + } +-- +1.8.3.4 + + +From 03631bc8fb6cff21669ca0cb87188c2c3b0d4928 Mon Sep 17 00:00:00 2001 +From: Scott McCreary +Date: Sun, 22 Dec 2013 10:01:23 -0800 +Subject: applying patch type_traits.patch + + +diff --git a/boost/config/platform/haiku.hpp b/boost/config/platform/haiku.hpp +index 1b15c7e..899765d 100644 +--- a/boost/config/platform/haiku.hpp ++++ b/boost/config/platform/haiku.hpp +@@ -9,18 +9,26 @@ + + #define BOOST_PLATFORM "Haiku" + +-#define BOOST_NO_INTRINSIC_WCHAR_T + #define BOOST_HAS_UNISTD_H ++#define GLIBC_HAVE_LONG_LONG ++#define BOOST_HAS_STDINT_H ++#define BOOST_HASH_NO_EXTENSIONS + + #define BOOST_HAS_BETHREADS + + #ifndef BOOST_DISABLE_THREADS + # define BOOST_HAS_THREADS + #endif ++#define BOOST_NO_CXX11_HDR_TYPE_TRAITS ++#define BOOST_NO_CXX11_ATOMIC_SMART_PTR ++#define BOOST_NO_CXX11_STATIC_ASSERT ++#define BOOST_NO_CXX11_VARIADIC_MACROS + + // + // thread API's not auto detected: + // ++#define BOOST_HAS_SCHED_YIELD ++#define BOOST_HAS_PTHREAD_YIELD + #define BOOST_HAS_GETTIMEOFDAY + + // boilerplate code: +-- +1.8.3.4 + + +From f2a0265af90e6c7bac9b7627fd0049f7479e5ab3 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Tue, 7 Jan 2014 21:49:28 +0100 +Subject: We don't have XSI shared memory, so don't try to use it. + + +diff --git a/boost/interprocess/detail/workaround.hpp b/boost/interprocess/detail/workaround.hpp +index 6ce2ea1..3b303eb 100644 +--- a/boost/interprocess/detail/workaround.hpp ++++ b/boost/interprocess/detail/workaround.hpp +@@ -73,7 +73,7 @@ + #endif + + //Check for XSI shared memory objects. They are available in nearly all UNIX platforms +- #if !defined(__QNXNTO__) ++ #if !defined(__QNXNTO__) && !defined(__HAIKU__) + #define BOOST_INTERPROCESS_XSI_SHARED_MEMORY_OBJECTS + #endif + +-- +1.8.3.4 + + +From d94967fa8fdea2842ec02fab90df0ec4efaac685 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Thu, 9 Jan 2014 22:40:40 +0100 +Subject: filesystem: don't crash because of unsupported locale in libstdc++ + +See https://svn.boost.org/trac/boost/ticket/4688 +We do the same as on Mac OS X and assume the filesystem uses utf-8. + +diff --git a/libs/filesystem/src/path.cpp b/libs/filesystem/src/path.cpp +index c740dec..3285d39 100644 +--- a/libs/filesystem/src/path.cpp ++++ b/libs/filesystem/src/path.cpp +@@ -35,7 +35,7 @@ + #ifdef BOOST_WINDOWS_API + # include "windows_file_codecvt.hpp" + # include +-#elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) ++#elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) || defined(__HAIKU__) + # include + #endif + +@@ -828,7 +828,7 @@ namespace + codecvt_facet_ptr(&std::use_facet > + (path_locale)); + +-#elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) ++#elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) || defined(__HAIKU__) + + // "All BSD system functions expect their string parameters to be in UTF-8 encoding + // and nothing else." See +@@ -903,7 +903,7 @@ namespace filesystem + const path::codecvt_type& path::codecvt() + { + # if defined(BOOST_POSIX_API) && \ +- !(defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)) ++ !(defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) || defined(__HAIKU__)) + // A local static initialized by calling path::imbue ensures that std::locale(""), + // which may throw, is called only if path_locale and condecvt_facet will actually + // be used. Thus misconfigured environmental variables will only cause an +-- +1.8.3.4 + diff --git a/dev-libs/chmlib/chmlib-0.40.recipe b/dev-libs/chmlib/chmlib-0.40.recipe index 9182b515e..877e0b6c4 100644 --- a/dev-libs/chmlib/chmlib-0.40.recipe +++ b/dev-libs/chmlib/chmlib-0.40.recipe @@ -1,30 +1,76 @@ -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" +SUMMARY="A library for dealing with Microsoft ITSS/CHM format files." +DESCRIPTION=" +chmlib is a small library designed for accessing MS ITSS files. The ITSS file \ +format is used for Microsoft Html Help files (.chm), which have been the \ +predominant medium for software documentation from Microsoft during the past \ +several years, having superceded the previously used .hlp file format. +Note that this is NOT the same as the OLE structured storage file format used \ +by MS Excel, Word, and so on. Instead, it is a different file format which \ +fulfills a similar purpose. Both file formats may be accessed via instances \ +of the IStorage COM interface, which is essentially an \"acts like a \ +filesystem\" interface. +" +HOMEPAGE="http://www.jedrea.com/chmlib/" +COPYRIGHT=" + 2003 Jed Wing + " +LICENSE="GNU LGPL v2.1" +SRC_URI="http://www.jedrea.com/chmlib/chmlib-0.40.tar.gz" +CHECKSUM_SHA256="512148ed1ca86dea051ebcf62e6debbb00edfdd9720cde28f6ed98071d3a9617" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + chmlib$secondaryArchSuffix = $portVersion compat >= 0 + lib:libchm$secondaryArchSuffix = 0.0.0 compat >= 0 + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:aclocal + cmd:autoconf + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:make + cmd:sed + cmd:grep + cmd:gawk + " + BUILD() { - cd chmlib-0.40 - rm aclocal.m4 - rm acinclude.m4 - libtoolize --force --copy --install + libtoolize -fci 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 + runConfigure ./configure + make $jobArgs } INSTALL() { - cd chmlib-0.40 make install + + prepareInstalledDevelLibs libchm + + # devel package + packageEntries devel \ + $developDir } -LICENSE="GNU LGPL v2.1" -COPYRIGHT="2003 Jed Wing" +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + chmlib${secondaryArchSuffix}_devel = $portVersion + devel:libchm${secondaryArchSuffix} = 0.0.0 compat >= 0 + " +REQUIRES_devel=" + chmlib${secondaryArchSuffix} == $portVersion base + " diff --git a/dev-libs/confuse/confuse-2.7.recipe b/dev-libs/confuse/confuse-2.7.recipe new file mode 100644 index 000000000..f82b8537e --- /dev/null +++ b/dev-libs/confuse/confuse-2.7.recipe @@ -0,0 +1,75 @@ +SUMMARY="libConfuse - a configuration file parser library" +DESCRIPTION=" +libConfuse is a configuration file parser library, licensed under the terms of \ +the ISC license, and written in C. It supports sections and (lists of) values \ +(strings, integers, floats, booleans or other sections), as well as some other \ +features (such as single/double-quoted strings, environment variable expansion, \ +functions and nested include statements). It makes it very easy to add \ +configuration file capability to a program using a simple API. +The goal of libConfuse is not to be the configuration file parser library with \ +a gazillion of features. Instead, it aims to be easy to use and quick to \ +integrate with your code. libConfuse was called libcfg before, but its name was \ +changed to not confuse itself with other similar libraries. +" +HOMEPAGE="http://www.nongnu.org/confuse/" +SRC_URI="http://savannah.nongnu.org/download/confuse/confuse-2.7.tar.gz" +CHECKSUM_SHA256="e32574fd837e950778dac7ade40787dd2259ef8e28acd6ede6847ca895c88778" +LICENSE="ISC" +COPYRIGHT="2002,2003,2007 Martin Hedenfalk" +REVISION="1" +ARCHITECTURES="x86 x86_gcc2" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" +PATCHES="confuse-2.7.patch" + +PROVIDES=" + lib:libconfuse$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libiconv$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libiconv$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + gettext$secondaryArchSuffix + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:autom4te + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:make + " + +BUILD() +{ + aclocal + libtoolize -fci + autoconf + automake --add-missing + runConfigure ./configure --enable-shared + make +} + +INSTALL() +{ + make install + prepareInstalledDevelLib libconfuse + packageEntries devel $developDir +} + +PROVIDES_devel=" + libconfuse${secondaryArchSuffix}_devel = $portVersion + devel:libconfuse$secondaryArchSuffix = $portVersion + " + +REQUIRES_devel=" + lib:libconfuse$secondaryArchSuffix == $portVersion base + " diff --git a/dev-libs/confuse/licenses/ISC b/dev-libs/confuse/licenses/ISC new file mode 100644 index 000000000..499a08df7 --- /dev/null +++ b/dev-libs/confuse/licenses/ISC @@ -0,0 +1,13 @@ +Copyright (c) 2002,2003,2007 Martin Hedenfalk + +Permission to use, copy, modify, and distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, 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 diff --git a/dev-libs/confuse/patches/confuse-2.7.patch b/dev-libs/confuse/patches/confuse-2.7.patch new file mode 100644 index 000000000..8c8255870 --- /dev/null +++ b/dev-libs/confuse/patches/confuse-2.7.patch @@ -0,0 +1,12 @@ +diff -Naur confuse-2.7/configure.ac confuse-2.7-haiku/configure.ac +--- confuse-2.7/configure.ac 2010-02-22 00:27:44.009961472 +0000 ++++ confuse-2.7-haiku/configure.ac 2014-01-12 12:40:30.637796352 +0000 +@@ -6,7 +6,7 @@ + AC_CONFIG_AUX_DIR(support) + AM_MAINTAINER_MODE + AM_INIT_AUTOMAKE +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADERS(config.h) + AC_CONFIG_SRCDIR(src/confuse.c) + + # Checks for programs. diff --git a/dev-libs/cyassl/cyassl-2.8.0.recipe b/dev-libs/cyassl/cyassl-2.8.0.recipe new file mode 100644 index 000000000..4dbc09bff --- /dev/null +++ b/dev-libs/cyassl/cyassl-2.8.0.recipe @@ -0,0 +1,64 @@ +SUMMARY="CyaSSL embedded SSL implementation" +DESCRIPTION=" +A lightweight yet fully functional embedded SSL implementation. +" +HOMEPAGE="http://yassl.com" +SRC_URI="http://yassl.com/cyassl-2.8.0.zip" +CHECKSUM_SHA256="94dcac2dfa87b8474815241eee50f7192e7f315c8173ec209d2a3f752bba9a8d" +REVISION="1" +LICENSE="GNU GPL v2" +COPYRIGHT="2006-2013 Sawtooth Consulting Ltd." + +ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="?x86_gcc2 ?x86" + +PROVIDES=" + cyassl$secondaryArchSuffix = $portVersion + lib:libcyassl$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:libtoolize + cmd:aclocal + cmd:autoconf + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:dos2unix + " + + +DEPEND="app-text/dos2unix >= 1.0" +BUILD() +{ + dos2unix * + dos2unix include/* + dos2unix ctaocrypt/include/* + dos2unix ctaocrypt/src/* + libtoolize --force --copy --install + aclocal -I m4 + autoconf + chmod 755 configure + automake + runConfigure ./configure --enable-shared + make +} + +INSTALL() +{ + make install +} + +TEST() +{ + make check + cd testsuite + testsuite +} diff --git a/dev-libs/expat/expat-2.0.1.recipe b/dev-libs/expat/expat-2.0.1.recipe index 551d50b5b..379849856 100644 --- a/dev-libs/expat/expat-2.0.1.recipe +++ b/dev-libs/expat/expat-2.0.1.recipe @@ -1,5 +1,9 @@ SUMMARY="XML parser toolkit" -DESCRIPTION="Expat is an XML parser library written in C. It is a stream-oriented parser in which an application registers handlers for things the parser might find in the XML document (like start tags)." +DESCRIPTION=" +Expat is an XML parser library written in C. It is a stream-oriented parser in \ +which an application registers handlers for things the parser might find in \ +the XML document (like start tags). +" HOMEPAGE="http://expat.sourceforge.net/" COPYRIGHT=" 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper @@ -7,9 +11,9 @@ COPYRIGHT=" " LICENSE="MIT" SRC_URI="http://iweb.dl.sourceforge.net/project/expat/expat/2.0.1/expat-2.0.1.tar.gz" -CHECKSUM_MD5="ee8b492592568805593f81f8cdf2a04c" +CHECKSUM_SHA256="847660b4df86e707c9150e33cd8c25bc5cd828f708c7418e765e3e983a2e5e93" REVISION="7" -ARCHITECTURES="x86_gcc2 x86 x86_64" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" SECONDARY_ARCHITECTURES="x86_gcc2 x86" PROVIDES=" diff --git a/dev-libs/fribidi/fribidi-0.19.5.recipe b/dev-libs/fribidi/fribidi-0.19.5.recipe index 4c5324286..fe147211d 100644 --- a/dev-libs/fribidi/fribidi-0.19.5.recipe +++ b/dev-libs/fribidi/fribidi-0.19.5.recipe @@ -1,8 +1,15 @@ SUMMARY="A free implementation of the unicode bidirectional algorithm" -DESCRIPTION="This is GNU FriBidi. The Free Implementation of the Unicode Bidirectional Algorithm. One of the missing links stopping the penetration of free software in Middle East is the lack of support for the Arabic and Hebrew alphabets. In order to have proper Arabic and Hebrew support, the BiDi algorithm should have been implemented. It is our hope that this library will stimulate more free software in the Middle Eastern countries." +DESCRIPTION=" +This is GNU FriBidi. The Free Implementation of the Unicode Bidirectional \ +Algorithm. One of the missing links stopping the penetration of free software \ +in Middle East is the lack of support for the Arabic and Hebrew alphabets. In \ +order to have proper Arabic and Hebrew support, the BiDi algorithm should have \ +been implemented. It is our hope that this library will stimulate more free \ +software in the Middle Eastern countries. +" HOMEPAGE="http://fribidi.org/" SRC_URI="http://fribidi.org/download/fribidi-0.19.5.tar.bz2" -CHECKSUM_MD5="925bafb97afee8a2fc2d0470c072a155" +CHECKSUM_SHA256="501231e4260f83fccedae1cafe983a7de87082e3f5387e0b283d016f7f4cb428" REVISION="1" LICENSE="GNU LGPL v2.1" @@ -11,19 +18,23 @@ COPYRIGHT="2004 Sharif FarsiWeb, Inc 1999,2000 Dov Grobgeld" ARCHITECTURES="x86_gcc2 x86" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" PROVIDES=" - fribidi = $portVersion - cmd:fribidi = 0.19.5 compat >= 0.19 - lib:libfribidi = 0.3.4 compat >= 0 + fribidi$secondaryArchSuffix = $portVersion + cmd:fribidi$secondaryArchSuffix = 0.19.5 compat >= 0.19 + lib:libfribidi$secondaryArchSuffix = 0.3.4 compat >= 0 " + REQUIRES=" haiku$secondaryArchSuffix >= $haikuVersion " + BUILD_REQUIRES=" - " -BUILD_PREREQUIRES=" haiku${secondaryArchSuffix}_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" cmd:aclocal cmd:autoconf cmd:automake @@ -32,13 +43,14 @@ BUILD_PREREQUIRES=" cmd:libtoolize cmd:make " + PATCH() { sed -i 's/PKG_CHECK_MODULES(GLIB,$GLIB_PACKAGE >= $GLIB_MINVERSION/#/' configure.ac sed -i 's/FRIBIDI_USE_GLIB=1/FRIBIDI_USE_GLIB=0/' configure.ac sed -i 's/FRIBIDI_USE_GLIB=0)/#/' configure.ac - } + BUILD() { libtoolize --force --copy --install @@ -70,10 +82,11 @@ TEST() # ----- devel package ------------------------------------------------------- PROVIDES_devel=" - fribidi_devel = $portVersion - cmd:fribidi$secondaryArchSuffix = $portVersion compat >= 0.19 - devel:libfribidi = 0.3.4 compat >= 0 + fribidi${secondaryArchSuffix}_devel = $portVersion + devel:libfribidi$secondaryArchSuffix = 0.3.4 compat >= 0 + devel:fribidi$secondaryArchSuffix = 0.19.5 compat >= 0.19 " + REQUIRES_devel=" - fribidi == $portVersion base + fribidi$secondaryArchSuffix == $portVersion base " diff --git a/dev-libs/glib/glib-1.2.10.recipe b/dev-libs/glib/glib-1.2.10.recipe new file mode 100644 index 000000000..2e34bc13b --- /dev/null +++ b/dev-libs/glib/glib-1.2.10.recipe @@ -0,0 +1,111 @@ +SUMMARY="GLib is a cross-platform software utility library" +DESCRIPTION="GLib is a cross-platform software utility library that began as \ +part of the GTK+ project. However, before releasing version 2 of GTK+, the \ +project's developers decided to separate non-GUI-specific code from the GTK+ \ +platform, thus creating GLib as a separate product. GLib was released as a \ +separate library so other developers, those who did not make use of the \ +GUI-related portions of GTK+, could make use of the non-GUI portions of the \ +library without the overhead of depending on the entire GUI library. +Since GLib is a cross-platform library, applications using it to interface \ +with the operating system are usually portable across different operating \ +systems without major changes +" +HOMEPAGE="http://www.gtk.org/" +SRC_URI="http://ftp.gnome.org/pub/gnome/sources/glib/1.2/glib-1.2.10.tar.gz" +CHECKSUM_SHA256="6e1ce7eedae713b11db82f11434d455d8a1379f783a79812cd2e05fc024a8d9f" +LICENSE="GNU LGPL v2" +COPYRIGHT="1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + 1991-2002 Free Software Foundation, Inc. + 1997-2002 University of Cambridge. + 1998-2001, 2003-2010 Red Hat, Inc. + 1995-2002 Several others" + +REVISION="1" + +ARCHITECTURES="?x86_gcc2 x86" +SECONDARY_ARCHITECTURES="?x86_gcc2 x86" + +PROVIDES=" + glib$secondaryArchSuffix = $portVersion compat >= 1 + lib:libglib$secondaryArchSuffix = $portVersion compat >= 1 + lib:libglib_1.2$secondaryArchSuffix = $portVersion compat >= 1 + lib:libgmodule$secondaryArchSuffix = $portVersion compat >= 1 + lib:libgmodule_1.2$secondaryArchSuffix = $portVersion compat >= 1 + lib:libgthread$secondaryArchSuffix = $portVersion compat >= 1 + lib:libgthread_1.2$secondaryArchSuffix = $portVersion compat >= 1 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:libtool + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:m4 + cmd:make + " + +PATCHES="glib-1.2.10.patchset" + +BUILD() +{ + libtoolize --force --copy --install + aclocal + automake --add-missing + autoconf + + runConfigure ./configure \ + --enable-shared=yes + + cp -f $portPackageLinksDir/cmd~libtool/bin/libtool . + + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libglib libglib-1.2 \ + libgmodule libgmodule-1.2 \ + libgthread libgthread-1.2 + + fixPkgconfig + + fixDevelopLibDirReferences $binDir/glib-config + + mv $libDir/glib/include/glibconfig.h $includeDir/glib-1.2 + rm -rf $libDir/glib + + # devel package + packageEntries devel \ + $developDir $binDir \ + $manDir $infoDir $dataDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + glib${secondaryArchSuffix}_devel = $portVersion compat >= 0 + cmd:glib_config$secondaryArchSuffix = $portVersion + devel:libglib$secondaryArchSuffix = $portVersion compat >= 1 + devel:libglib_1.2$secondaryArchSuffix = $portVersion compat >= 1 + devel:libgmodule$secondaryArchSuffix = $portVersion compat >= 1 + devel:libgmodule_1.2$secondaryArchSuffix = $portVersion compat >= 1 + devel:libgthread$secondaryArchSuffix = $portVersion compat >= 1 + devel:libgthread_1.2$secondaryArchSuffix = $portVersion compat >= 1 + " + +REQUIRES_devel=" + glib$secondaryArchSuffix == $portVersion base + " diff --git a/dev-libs/glib/glib-2.22.2.recipe b/dev-libs/glib/glib-2.22.2.recipe deleted file mode 100644 index b33e97fc1..000000000 --- a/dev-libs/glib/glib-2.22.2.recipe +++ /dev/null @@ -1,30 +0,0 @@ -DESCRIPTION="glib" -HOMEPAGE="http://www.gtk.org/" -SRC_URI="http://ftp.gnome.org/pub/gnome/sources/glib/2.22/glib-2.22.2.tar.gz" -CHECKSUM_MD5="00eb873975e2ef9361b8177131c7c943" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd glib-2.22.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 -# automake - autoconf - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd glib-2.22.2 - make install -} diff --git a/dev-libs/glib/glib-2.24.1.recipe b/dev-libs/glib/glib-2.24.1.recipe deleted file mode 100644 index 0e74b1972..000000000 --- a/dev-libs/glib/glib-2.24.1.recipe +++ /dev/null @@ -1,30 +0,0 @@ -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="2" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd glib-2.24.1 - rm -rf aclocal.m4 - mkdir -p m4 - cp ../../gtk-doc.m4 m4 - libtoolize --force --copy --install - aclocal --install -I m4 - autoconf - ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --with-threads=posix \ - LDFLAGS=-lnetwork - make -} - -INSTALL() -{ - cd glib-2.24.1 - make install -} - -LICENSE="GNU LGPL v2" -COPYRIGHT="" # TODO: Need to determine who/what to list for the copyright on this one. diff --git a/dev-libs/glib/glib-2.24.2.recipe b/dev-libs/glib/glib-2.24.2.recipe deleted file mode 100644 index a19d4cd8e..000000000 --- a/dev-libs/glib/glib-2.24.2.recipe +++ /dev/null @@ -1,46 +0,0 @@ -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="2" -STATUS_HAIKU="stable" -DEPEND="dev-libs/pkgconfig >= 0.23 - 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 - libtoolize --force --copy --install - aclocal --install -I m4 -I m4macros - autoheader - automake - autoconf - 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 -} - -INSTALL() -{ - cd glib-2.24.2 - make install -} - -LICENSE="GNU LGPL v2" -COPYRIGHT="1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - 1991-2003 Free Software Foundation, Inc. - 1997-2006 University of Cambridge. - 1998-2001, 2003-2010 Red Hat, Inc. - 2007-2009 Nokia Corporation - 2008, 2010 Oracle and/or its affiliates, Inc. All rights - 2008-2010 Codethink Limited - 2008-2010 Collabora Ltd. - 1995-2010 Several others" diff --git a/dev-libs/glib/glib-2.26.1.recipe b/dev-libs/glib/glib-2.26.1.recipe deleted file mode 100644 index 4d44567d8..000000000 --- a/dev-libs/glib/glib-2.26.1.recipe +++ /dev/null @@ -1,37 +0,0 @@ -DESCRIPTION="glib" -HOMEPAGE="http://www.gtk.org/" -SRC_URI="http://ftp.gnome.org/pub/gnome/sources/glib/2.26/glib-2.26.1.tar.gz" -CHECKSUM_MD5="2634337609e747fc7946517e3008d53c" -REVISION="1" -STATUS_HAIKU="broken" -DEPEND="dev-libs/pkgconfig >= 0.23 - sys-devel/gettext >= 0.17" -BUILD() -{ - cd glib-2.26.1 - rm -rf aclocal.m4 - mkdir -p m4 - cp ../../gtk-doc.m4 m4 - libtoolize --force --copy --install - aclocal --install -I m4 - autoconf - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd glib-2.26.1 - make install -} - -LICENSE="GNU LGPL v2" -COPYRIGHT="1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - 1991-2003 Free Software Foundation, Inc. - 1997-2006 University of Cambridge. - 1998-2001, 2003-2010 Red Hat, Inc. - 2007-2009 Nokia Corporation - 2008, 2010 Oracle and/or its affiliates, Inc. All rights - 2008-2010 Codethink Limited - 2008-2010 Collabora Ltd. - 1995-2010 Several others" diff --git a/dev-libs/glib/glib2-2.38.1.recipe b/dev-libs/glib/glib2-2.38.1.recipe new file mode 100644 index 000000000..f914b0dcd --- /dev/null +++ b/dev-libs/glib/glib2-2.38.1.recipe @@ -0,0 +1,132 @@ +SUMMARY="GLib is a cross-platform software utility library" +DESCRIPTION="GLib is a cross-platform software utility library that began as \ +part of the GTK+ project. However, before releasing version 2 of GTK+, the \ +project's developers decided to separate non-GUI-specific code from the GTK+ \ +platform, thus creating GLib as a separate product. GLib was released as a \ +separate library so other developers, those who did not make use of the \ +GUI-related portions of GTK+, could make use of the non-GUI portions of the \ +library without the overhead of depending on the entire GUI library. +Since GLib is a cross-platform library, applications using it to interface \ +with the operating system are usually portable across different operating \ +systems without major changes +" +HOMEPAGE="http://www.gtk.org/" +SRC_URI="http://ftp.gnome.org/pub/gnome/sources/glib/2.38/glib-2.38.1.tar.xz" +CHECKSUM_SHA256="01906c62ac666d2ab3183cc07261b2536fab7b211c6129ab66b119c2af56d159" +LICENSE="GNU LGPL v2" +COPYRIGHT="1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + 1991-2003 Free Software Foundation, Inc. + 1997-2006 University of Cambridge. + 1998-2001, 2003-2010 Red Hat, Inc. + 2007-2009 Nokia Corporation + 2008, 2010 Oracle and/or its affiliates, Inc. All rights + 2008-2010 Codethink Limited + 2008-2010 Collabora Ltd. + 1995-2010 Several others" + +REVISION="1" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86 x86_64" + +PROVIDES=" + glib2$secondaryArchSuffix = $portVersion compat >= 2 + cmd:gdbus$secondaryArchSuffix + cmd:gdbus_codegen$secondaryArchSuffix + cmd:gio_querymodules$secondaryArchSuffix + cmd:glib_compile_resources$secondaryArchSuffix + cmd:glib_compile_schemas$secondaryArchSuffix + cmd:glib_genmarshal$secondaryArchSuffix + cmd:glib_gettextize$secondaryArchSuffix + cmd:glib_mkenums$secondaryArchSuffix + cmd:gobject_query$secondaryArchSuffix + cmd:gresource$secondaryArchSuffix + cmd:gsettings$secondaryArchSuffix + cmd:gtester$secondaryArchSuffix + cmd:gtester_report$secondaryArchSuffix + lib:libgio_2.0$secondaryArchSuffix = 0.3800.1 compat >= 2 + lib:libglib_2.0$secondaryArchSuffix = 0.3800.1 compat >= 2 + lib:libgmodule_2.0$secondaryArchSuffix = 0.3800.1 compat >= 2 + lib:libgobject_2.0$secondaryArchSuffix = 0.3800.1 compat >= 2 + lib:libgthread_2.0$secondaryArchSuffix = 0.3800.1 compat >= 2 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + gettext$secondaryArchSuffix + lib:libiconv$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libffi$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + " + +BUILD_REQUIRES=" + devel:libiconv$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:libffi$secondaryArchSuffix + devel:libintl$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:aclocal + cmd:autoconf + cmd:make + cmd:pkg_config$secondaryArchSuffix + cmd:python + " + +PATCHES="glib2-2.38.1.patch" + +SOURCE_DIR="glib-2.38.1" + +BUILD() +{ + libtoolize --force --copy --install + aclocal + autoconf + runConfigure ./configure --disable-maintainer-mode + + # There seem to be a problem with libtool, and without this some libraries + # would not be found during the build. + ln -s ../../glib/.libs gobject/.libs/lib + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libgio-2.0 \ + libglib-2.0 \ + libgmodule-2.0 \ + libgobject-2.0 \ + libgthread-2.0 + + # move the glibconfig header into devel as well + mv $libDir/glib-2.0 $developLibDir + + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + glib2${secondaryArchSuffix}_devel = $portVersion compat >= 0 + devel:libgio_2.0$secondaryArchSuffix = 0.3800.1 compat >= 2 + devel:libglib_2.0$secondaryArchSuffix = 0.3800.1 compat >= 2 + devel:libgmodule_2.0$secondaryArchSuffix = 0.3800.1 compat >= 2 + devel:libgobject_2.0$secondaryArchSuffix = 0.3800.1 compat >= 2 + devel:libgthread_2.0$secondaryArchSuffix = 0.3800.1 compat >= 2 + " + +REQUIRES_devel=" + glib2$secondaryArchSuffix == $portVersion base + " diff --git a/dev-libs/glib/gtk-doc.m4 b/dev-libs/glib/gtk-doc.m4 deleted file mode 100644 index 2cfa1e717..000000000 --- a/dev-libs/glib/gtk-doc.m4 +++ /dev/null @@ -1,61 +0,0 @@ -dnl -*- mode: autoconf -*- - -# serial 1 - -dnl Usage: -dnl GTK_DOC_CHECK([minimum-gtk-doc-version]) -AC_DEFUN([GTK_DOC_CHECK], -[ - AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first - AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first - - dnl check for tools we added during development - AC_PATH_PROG([GTKDOC_CHECK],[gtkdoc-check]) - AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true]) - AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf]) - - dnl for overriding the documentation installation directory - AC_ARG_WITH([html-dir], - AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),, - [with_html_dir='${datadir}/gtk-doc/html']) - HTML_DIR="$with_html_dir" - AC_SUBST([HTML_DIR]) - - dnl enable/disable documentation building - AC_ARG_ENABLE([gtk-doc], - AS_HELP_STRING([--enable-gtk-doc], - [use gtk-doc to build documentation [[default=no]]]),, - [enable_gtk_doc=no]) - - if test x$enable_gtk_doc = xyes; then - ifelse([$1],[], - [PKG_CHECK_EXISTS([gtk-doc],, - AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))], - [PKG_CHECK_EXISTS([gtk-doc >= $1],, - AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build $PACKAGE_NAME]))]) - fi - - AC_MSG_CHECKING([whether to build gtk-doc documentation]) - AC_MSG_RESULT($enable_gtk_doc) - - dnl enable/disable output formats - AC_ARG_ENABLE([gtk-doc-html], - AS_HELP_STRING([--enable-gtk-doc-html], - [build documentation in html format [[default=yes]]]),, - [enable_gtk_doc_html=yes]) - AC_ARG_ENABLE([gtk-doc-pdf], - AS_HELP_STRING([--enable-gtk-doc-pdf], - [build documentation in pdf format [[default=no]]]),, - [enable_gtk_doc_pdf=no]) - - if test -z "$GTKDOC_MKPDF"; then - enable_gtk_doc_pdf=no - fi - - - AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes]) - AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes]) - AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes]) - AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"]) - AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"]) -]) diff --git a/dev-libs/glib/patches/glib-1.2.10.patchset b/dev-libs/glib/patches/glib-1.2.10.patchset new file mode 100644 index 000000000..13e9d9b04 --- /dev/null +++ b/dev-libs/glib/patches/glib-1.2.10.patchset @@ -0,0 +1,175 @@ +From afb8aab8236d2c30c34642c755ce7c07dfc95ab2 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Mon, 9 Dec 2013 16:58:10 -0700 +Subject: Attempt to bring glib-1 into the modern age + + +diff --git a/Makefile.am b/Makefile.am +index 3a6e201..f059565 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -70,7 +70,7 @@ configinclude_DATA = \ + + CONFIGURE_DEPENDENCIES = acglib.m4 + +-BUILT_SOURCES = stamp-gc-h #note: not glibconfig.h ++BUILT_SOURCES += stamp-gc-h #note: not glibconfig.h + glibconfig.h: stamp-gc-h + @: + stamp-gc-h: config.status +diff --git a/acinclude.m4 b/acinclude.m4 +index 47abe43..43ed3f1 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -21,6 +21,18 @@ + ## configuration script generated by Autoconf, you may include it under + ## the same distribution terms that you use for the rest of that program. + ++# GLIB_AC_DIVERT_BEFORE_HELP(STUFF) ++# --------------------------------- ++# Put STUFF early enough so that they are available for $ac_help expansion. ++# Handle both classic (<= v2.13) and modern autoconf ++AC_DEFUN([GLIB_AC_DIVERT_BEFORE_HELP], ++[ifdef([m4_divert_text], [m4_divert_text([NOTICE],[$1])], ++ [ifdef([AC_DIVERT], [AC_DIVERT([NOTICE],[$1])], ++ [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl ++$1 ++AC_DIVERT_POP()])])]) ++ ++ + # serial 40 AC_PROG_LIBTOOL + AC_DEFUN(AC_PROG_LIBTOOL, + [AC_REQUIRE([AC_LIBTOOL_SETUP])dnl +diff --git a/configure.in b/configure.in +index 8ee9339..cad722f 100644 +--- a/configure.in ++++ b/configure.in +@@ -17,7 +17,7 @@ rm -f glibconfig-sysdefs.h + + dnl we need to AC_DIVERT_PUSH/AC_DIVERT_POP these variable definitions so they + dnl are available for $ac_help expansion (don't we all *love* autoconf?) +-AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl ++GLIB_AC_DIVERT_BEFORE_HELP([ + # + # The following version number definitions apply to GLib, GModule and GThread + # as a whole, so if changes occoured in any of them, they are all +@@ -38,7 +38,7 @@ GLIB_INTERFACE_AGE=10 + GLIB_BINARY_AGE=10 + GLIB_VERSION=$GLIB_MAJOR_VERSION.$GLIB_MINOR_VERSION.$GLIB_MICRO_VERSION + dnl +-AC_DIVERT_POP()dnl ++]) + + AC_SUBST(GLIB_MAJOR_VERSION) + AC_SUBST(GLIB_MINOR_VERSION) +@@ -63,7 +63,7 @@ PACKAGE=glib + AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define) + + # Specify a configuration file +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADERS(config.h) + + AC_DEFINE_UNQUOTED(GLIB_MAJOR_VERSION, $GLIB_MAJOR_VERSION) + AC_DEFINE_UNQUOTED(GLIB_MINOR_VERSION, $GLIB_MINOR_VERSION) +@@ -71,6 +71,7 @@ AC_DEFINE_UNQUOTED(GLIB_MICRO_VERSION, $GLIB_MICRO_VERSION) + AC_DEFINE_UNQUOTED(GLIB_INTERFACE_AGE, $GLIB_INTERFACE_AGE) + AC_DEFINE_UNQUOTED(GLIB_BINARY_AGE, $GLIB_BINARY_AGE) + ++AC_CANONICAL_SYSTEM + dnl Initialize libtool + AM_PROG_LIBTOOL + +@@ -81,13 +82,13 @@ AC_CANONICAL_HOST + + dnl figure debugging default, prior to $ac_help setup + dnl +-AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl ++GLIB_AC_DIVERT_BEFORE_HELP([ + if test `expr $GLIB_MINOR_VERSION \% 2` = 1 ; then + debug_default=yes + else + debug_default=minimum + fi +-AC_DIVERT_POP()dnl ++]) + + dnl declare --enable-* args and collect ac_help strings + AC_ARG_ENABLE(debug, [ --enable-debug=[no/minimum/yes] turn on debugging [default=$debug_default]],,enable_debug=$debug_default) +@@ -154,7 +155,6 @@ AC_DEFINE_UNQUOTED(G_COMPILED_WITH_DEBUGGING, "${enable_debug}") + + # Checks for programs. + AC_PROG_CC +-AM_PROG_CC_STDC + AC_PROG_INSTALL + + changequote(,)dnl +diff --git a/gmodule/Makefile.am b/gmodule/Makefile.am +index ff4410a..5f0ce56 100644 +--- a/gmodule/Makefile.am ++++ b/gmodule/Makefile.am +@@ -42,7 +42,7 @@ libgplugin_b_la_LDFLAGS = @G_MODULE_LDFLAGS@ -avoid-version -module + libgplugin_b_la_LIBADD = @G_MODULE_LIBS@ # $(libglib) + + noinst_PROGRAMS = testgmodule +-testgmodule_LDFLAGS += @G_MODULE_LDFLAGS@ ++testgmodule_LDFLAGS = @G_MODULE_LDFLAGS@ + testgmodule_LDADD = libgmodule.la $(libglib) @G_MODULE_LIBS@ + + .PHONY: files release +diff --git a/gstrfuncs.c b/gstrfuncs.c +index feb4572..f3859b4 100644 +--- a/gstrfuncs.c ++++ b/gstrfuncs.c +@@ -702,7 +702,7 @@ g_strsignal (gint signum) + char *msg; + + #ifdef HAVE_STRSIGNAL +- extern char *strsignal (int sig); ++ extern const char *strsignal (int sig); + return strsignal (signum); + #elif NO_SYS_SIGLIST + switch (signum) +@@ -867,8 +867,7 @@ g_printf_string_upper_bound (const gchar* format, + /* beware of positional parameters + */ + case '$': +- g_warning (G_GNUC_PRETTY_FUNCTION +- "(): unable to handle positional parameters (%%n$)"); ++ g_warning ("%s(): unable to handle positional parameters (%%n$)", G_GNUC_PRETTY_FUNCTION); + len += 1024; /* try adding some safety padding */ + break; + +@@ -1034,8 +1033,7 @@ g_printf_string_upper_bound (const gchar* format, + /* n . dddddddddddddddddddddddd E +- eeee */ + conv_len += 1 + 1 + MAX (24, spec.precision) + 1 + 1 + 4; + if (spec.mod_extra_long) +- g_warning (G_GNUC_PRETTY_FUNCTION +- "(): unable to handle long double, collecting double only"); ++ g_warning ("%s(): unable to handle long double, collecting double only", G_GNUC_PRETTY_FUNCTION); + #ifdef HAVE_LONG_DOUBLE + #error need to implement special handling for long double + #endif +@@ -1077,8 +1075,7 @@ g_printf_string_upper_bound (const gchar* format, + conv_done = TRUE; + if (spec.mod_long) + { +- g_warning (G_GNUC_PRETTY_FUNCTION +- "(): unable to handle wide char strings"); ++ g_warning ("%s(): unable to handle wide char strings", G_GNUC_PRETTY_FUNCTION); + len += 1024; /* try adding some safety padding */ + } + break; +@@ -1108,9 +1105,7 @@ g_printf_string_upper_bound (const gchar* format, + conv_len += format - spec_start; + break; + default: +- g_warning (G_GNUC_PRETTY_FUNCTION +- "(): unable to handle `%c' while parsing format", +- c); ++ g_warning ("%s(): unable to handle `%c' while parsing format", G_GNUC_PRETTY_FUNCTION, c); + break; + } + conv_done |= conv_len > 0; +-- +1.8.3.4 + diff --git a/dev-libs/glib/patches/glib-2.18.3-haiku-more.diff b/dev-libs/glib/patches/glib-2.18.3-haiku-more.diff deleted file mode 100644 index 1e373cb68..000000000 --- a/dev-libs/glib/patches/glib-2.18.3-haiku-more.diff +++ /dev/null @@ -1,285 +0,0 @@ -diff -Naur glib-2.18.3-some/gio/Makefile.am glib-2.18.3-more/gio/Makefile.am ---- glib-2.18.3-some/gio/Makefile.am 2009-03-29 05:36:04.000000000 +0000 -+++ glib-2.18.3-more/gio/Makefile.am 2009-03-29 05:37:24.000000000 +0000 -@@ -162,7 +162,7 @@ - - endif - --SUBDIRS += tests -+#SUBDIRS += tests - - libgio_2_0_la_SOURCES = \ - gappinfo.c \ -diff -Naur glib-2.18.3-some/gio/gunixinputstream.c glib-2.18.3-more/gio/gunixinputstream.c ---- glib-2.18.3-some/gio/gunixinputstream.c 2009-03-29 05:36:05.000000000 +0000 -+++ glib-2.18.3-more/gio/gunixinputstream.c 2009-03-29 05:37:24.000000000 +0000 -@@ -28,7 +28,9 @@ - #include - #include - #include -+#ifdef HAVE_POLL - #include -+#endif - - #include - #include -@@ -171,6 +173,9 @@ - GCancellable *cancellable, - GError **error) - { -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+ return -1; -+#else - GUnixInputStream *unix_stream; - gssize res; - struct pollfd poll_fds[2]; -@@ -226,6 +231,7 @@ - } - - return res; -+#endif - } - - static gboolean -@@ -331,6 +337,7 @@ - GAsyncReadyCallback callback, - gpointer user_data) - { -+#if !defined(G_OS_BEOS) &&!defined(G_OS_HAIKU) - GSource *source; - GUnixInputStream *unix_stream; - ReadAsyncData *data; -@@ -353,6 +360,7 @@ - g_source_attach (source, NULL); - - g_source_unref (source); -+#endif - } - - static gssize -diff -Naur glib-2.18.3-some/gio/gunixmounts.c glib-2.18.3-more/gio/gunixmounts.c ---- glib-2.18.3-some/gio/gunixmounts.c 2009-03-29 05:36:05.000000000 +0000 -+++ glib-2.18.3-more/gio/gunixmounts.c 2009-03-29 05:37:25.000000000 +0000 -@@ -594,6 +594,16 @@ - - return g_list_reverse (return_list); - } -+ -+#elif defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+ -+static GList * -+_g_get_unix_mounts (void) -+{ -+ GList *return_list = NULL; -+ return return_list; -+} -+ - #else - #error No _g_get_unix_mounts() implementation for system - #endif -@@ -974,6 +984,16 @@ - - return g_list_reverse (return_list); - } -+ -+#elif defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+ -+static GList * -+_g_get_unix_mount_points (void) -+{ -+ GList *return_list = NULL; -+ return return_list; -+} -+ - #else - #error No g_get_mount_table() implementation for system - #endif -diff -Naur glib-2.18.3-some/gio/gunixoutputstream.c glib-2.18.3-more/gio/gunixoutputstream.c ---- glib-2.18.3-some/gio/gunixoutputstream.c 2009-03-29 05:36:05.000000000 +0000 -+++ glib-2.18.3-more/gio/gunixoutputstream.c 2009-03-29 05:37:25.000000000 +0000 -@@ -28,7 +28,9 @@ - #include - #include - #include -+#ifdef HAVE_POLL - #include -+#endif - - #include - #include -@@ -159,6 +161,9 @@ - GCancellable *cancellable, - GError **error) - { -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+ return -1; -+#else - GUnixOutputStream *unix_stream; - gssize res; - struct pollfd poll_fds[2]; -@@ -215,6 +220,7 @@ - } - - return res; -+#endif - } - - static gboolean -@@ -320,6 +326,7 @@ - GAsyncReadyCallback callback, - gpointer user_data) - { -+#if !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) - GSource *source; - GUnixOutputStream *unix_stream; - WriteAsyncData *data; -@@ -342,6 +349,7 @@ - g_source_attach (source, NULL); - - g_source_unref (source); -+#endif - } - - static gssize -diff -Naur glib-2.18.3-some/gio/makegioalias.pl glib-2.18.3-more/gio/makegioalias.pl ---- glib-2.18.3-some/gio/makegioalias.pl 2009-03-29 05:36:05.000000000 +0000 -+++ glib-2.18.3-more/gio/makegioalias.pl 2009-03-29 05:37:25.000000000 +0000 -@@ -1,4 +1,4 @@ --#!/usr/bin/perl -w -+#!/boot/home/config/bin/perl -w - - my $do_def = 0; - -diff -Naur glib-2.18.3-some/glib/Makefile.am glib-2.18.3-more/glib/Makefile.am ---- glib-2.18.3-some/glib/Makefile.am 2009-03-29 05:36:06.000000000 +0000 -+++ glib-2.18.3-more/glib/Makefile.am 2009-03-29 05:37:25.000000000 +0000 -@@ -19,7 +19,7 @@ - gregex_h = - endif - --SUBDIRS = libcharset $(PRINTF_SUBDIR) $(MAYBE_PCRE) update-pcre . tests -+SUBDIRS = libcharset $(PRINTF_SUBDIR) $(MAYBE_PCRE) update-pcre . - - DIST_SUBDIRS = libcharset gnulib pcre update-pcre tests - -diff -Naur glib-2.18.3-some/glib/gbacktrace.c glib-2.18.3-more/glib/gbacktrace.c ---- glib-2.18.3-some/glib/gbacktrace.c 2009-03-29 05:36:06.000000000 +0000 -+++ glib-2.18.3-more/glib/gbacktrace.c 2009-03-29 05:37:25.000000000 +0000 -@@ -158,7 +158,7 @@ - void - g_on_error_stack_trace (const gchar *prg_name) - { --#if defined(G_OS_UNIX) || defined(G_OS_BEOS) -+#if defined(G_OS_UNIX) || defined(G_OS_BEOS) || defined(G_OS_HAIKU) - pid_t pid; - gchar buf[16]; - gchar *args[4] = { "gdb", NULL, NULL, NULL }; -@@ -193,7 +193,7 @@ - #endif - } - --#ifndef G_OS_WIN32 -+#if !defined(G_OS_WIN32) && !defined(G_OS_BEOS) - - static gboolean stack_trace_done = FALSE; - -diff -Naur glib-2.18.3-some/glib/gmain.c glib-2.18.3-more/glib/gmain.c ---- glib-2.18.3-some/glib/gmain.c 2009-03-29 05:36:08.000000000 +0000 -+++ glib-2.18.3-more/glib/gmain.c 2009-03-29 05:37:25.000000000 +0000 -@@ -82,6 +82,12 @@ - #include - #endif /* G_OS_BEOS */ - -+#ifdef G_OS_HAIKU -+#include -+#include -+#include "fcntl.h" -+#endif /* G_OS_HAIKU */ -+ - #ifdef G_OS_UNIX - #include - #include -@@ -569,6 +575,10 @@ - #undef NO_FD_SET - #endif /* G_OS_BEOS */ - -+#ifdef G_OS_HAIKU -+#undef NO_FD_SET -+#endif /* G_OS_HAIKU */ -+ - #ifndef NO_FD_SET - # define SELECT_MASK fd_set - #else /* !NO_FD_SET */ -@@ -4022,6 +4032,7 @@ - static void - g_child_watch_source_init_multi_threaded (void) - { -+#if !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) - GError *error = NULL; - struct sigaction action; - -@@ -4041,6 +4052,7 @@ - sigemptyset (&action.sa_mask); - action.sa_flags = SA_RESTART | SA_NOCLDSTOP; - sigaction (SIGCHLD, &action, NULL); -+#endif - } - - static void -diff -Naur glib-2.18.3-some/glib/gspawn.c glib-2.18.3-more/glib/gspawn.c ---- glib-2.18.3-some/glib/gspawn.c 2009-03-29 05:36:08.000000000 +0000 -+++ glib-2.18.3-more/glib/gspawn.c 2009-03-29 05:37:25.000000000 +0000 -@@ -238,6 +238,9 @@ - gint *exit_status, - GError **error) - { -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+ return FALSE; -+#else - gint outpipe = -1; - gint errpipe = -1; - GPid pid; -@@ -433,6 +436,7 @@ - - return TRUE; - } -+#endif - } - - /** -@@ -908,7 +912,7 @@ - gint fd; - gint res = 0; - --#ifdef HAVE_SYS_RESOURCE_H -+#if defined(HAVE_SYS_RESOURCE_H) && !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) - struct rlimit rl; - #endif - -@@ -951,7 +955,7 @@ - - #endif - --#ifdef HAVE_SYS_RESOURCE_H -+#if defined(HAVE_SYS_RESOURCE_H) && !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) - - if (getrlimit(RLIMIT_NOFILE, &rl) == 0 && rl.rlim_max != RLIM_INFINITY) - open_max = rl.rlim_max; -diff -Naur glib-2.18.3-some/glib/makegalias.pl glib-2.18.3-more/glib/makegalias.pl ---- glib-2.18.3-some/glib/makegalias.pl 2009-03-29 05:36:09.000000000 +0000 -+++ glib-2.18.3-more/glib/makegalias.pl 2009-03-29 05:37:25.000000000 +0000 -@@ -1,4 +1,4 @@ --#!/usr/bin/perl -w -+#!/boot/home/config/bin/perl -w - - my $do_def = 0; - -diff -Naur glib-2.18.3-some/gobject/makegobjectalias.pl glib-2.18.3-more/gobject/makegobjectalias.pl ---- glib-2.18.3-some/gobject/makegobjectalias.pl 2009-03-29 05:36:09.000000000 +0000 -+++ glib-2.18.3-more/gobject/makegobjectalias.pl 2009-03-29 05:37:25.000000000 +0000 -@@ -1,4 +1,4 @@ --#!/usr/bin/perl -w -+#!/boot/home/config/bin/perl -w - - my $do_def = 0; - diff --git a/dev-libs/glib/patches/glib-2.18.3-haiku-some.diff b/dev-libs/glib/patches/glib-2.18.3-haiku-some.diff deleted file mode 100644 index d510346c0..000000000 --- a/dev-libs/glib/patches/glib-2.18.3-haiku-some.diff +++ /dev/null @@ -1,323 +0,0 @@ -diff -Naur glib-2.18.3-clean/configure.in glib-2.18.3-some/configure.in ---- glib-2.18.3-clean/configure.in 2009-03-29 05:11:44.000000000 +0000 -+++ glib-2.18.3-some/configure.in 2009-03-29 05:36:03.000000000 +0000 -@@ -112,6 +112,17 @@ - esac - AC_MSG_RESULT([$glib_native_beos]) - -+AC_MSG_CHECKING([for Haiku]) -+case $host in -+ *-*-haiku*) -+ glib_native_haiku="yes" -+ ;; -+ *) -+ glib_native_haiku="no" -+ ;; -+esac -+AC_MSG_RESULT([$glib_native_haiku]) -+ - dnl - - AC_MSG_CHECKING([for Win32]) -@@ -3280,6 +3291,9 @@ - #define G_PLATFORM_WIN32 - #define G_WITH_CYGWIN" - ;; -+ *-*-haiku*) -+ glib_os="#define G_OS_HAIKU" -+ ;; - *-*-mingw*) - glib_os="#define G_OS_WIN32 - #define G_PLATFORM_WIN32" -diff -Naur glib-2.18.3-clean/docs/reference/glib/glib-overrides.txt glib-2.18.3-some/docs/reference/glib/glib-overrides.txt ---- glib-2.18.3-clean/docs/reference/glib/glib-overrides.txt 2009-03-29 05:11:44.000000000 +0000 -+++ glib-2.18.3-some/docs/reference/glib/glib-overrides.txt 2009-03-29 05:36:03.000000000 +0000 -@@ -215,6 +215,11 @@ - #define G_OS_BEOS - - -+ -+G_OS_HAIKU -+#define G_OS_HAIKU -+ -+ - # g_ascii_isxxx - - -diff -Naur glib-2.18.3-clean/docs/reference/glib/glib-sections.txt glib-2.18.3-some/docs/reference/glib/glib-sections.txt ---- glib-2.18.3-clean/docs/reference/glib/glib-sections.txt 2009-03-29 05:11:44.000000000 +0000 -+++ glib-2.18.3-some/docs/reference/glib/glib-sections.txt 2009-03-29 05:36:03.000000000 +0000 -@@ -125,6 +125,7 @@ - - G_OS_WIN32 - G_OS_BEOS -+G_OS_HAIKU - G_OS_UNIX - - -diff -Naur glib-2.18.3-clean/docs/reference/glib/html/glib-Standard-Macros.html glib-2.18.3-some/docs/reference/glib/html/glib-Standard-Macros.html ---- glib-2.18.3-clean/docs/reference/glib/html/glib-Standard-Macros.html 2009-03-29 05:11:45.000000000 +0000 -+++ glib-2.18.3-some/docs/reference/glib/html/glib-Standard-Macros.html 2009-03-29 05:36:04.000000000 +0000 -@@ -60,6 +60,7 @@ - - #define G_OS_WIN32 - #define G_OS_BEOS -+#define G_OS_HAIKU - #define G_OS_UNIX - - #define G_DIR_SEPARATOR -@@ -115,6 +116,15 @@ - BeOS-specific code in "#ifdef G_OS_BEOS". -

- -+
-+

G_OS_HAIKU

-+
#define G_OS_HAIKU
-+
-+

-+This macro is defined only on Haiku. So you can bracket -+Haiku-specific code in "#ifdef G_OS_HAIKU". -+

-+
-
-
-

G_OS_UNIX

-diff -Naur glib-2.18.3-clean/docs/reference/glib/html/glib.devhelp glib-2.18.3-some/docs/reference/glib/html/glib.devhelp ---- glib-2.18.3-clean/docs/reference/glib/html/glib.devhelp 2009-03-29 05:11:45.000000000 +0000 -+++ glib-2.18.3-some/docs/reference/glib/html/glib.devhelp 2009-03-29 05:36:04.000000000 +0000 -@@ -189,6 +189,7 @@ - - - -+ - - - -diff -Naur glib-2.18.3-clean/docs/reference/glib/html/glib.devhelp2 glib-2.18.3-some/docs/reference/glib/html/glib.devhelp2 ---- glib-2.18.3-clean/docs/reference/glib/html/glib.devhelp2 2009-03-29 05:11:45.000000000 +0000 -+++ glib-2.18.3-some/docs/reference/glib/html/glib.devhelp2 2009-03-29 05:36:04.000000000 +0000 -@@ -189,6 +189,7 @@ - - - -+ - - - -diff -Naur glib-2.18.3-clean/docs/reference/glib/html/ix01.html glib-2.18.3-some/docs/reference/glib/html/ix01.html ---- glib-2.18.3-clean/docs/reference/glib/html/ix01.html 2009-03-29 05:11:45.000000000 +0000 -+++ glib-2.18.3-some/docs/reference/glib/html/ix01.html 2009-03-29 05:36:04.000000000 +0000 -@@ -2260,6 +2260,8 @@ - -
G_OS_BEOS, G_OS_BEOS -
-+
G_OS_HAIKU, G_OS_HAIKU -+
-
G_OS_UNIX, G_OS_UNIX -
-
G_OS_WIN32, G_OS_WIN32 -diff -Naur glib-2.18.3-clean/docs/reference/glib/tmpl/macros.sgml glib-2.18.3-some/docs/reference/glib/tmpl/macros.sgml ---- glib-2.18.3-clean/docs/reference/glib/tmpl/macros.sgml 2009-03-29 05:11:45.000000000 +0000 -+++ glib-2.18.3-some/docs/reference/glib/tmpl/macros.sgml 2009-03-29 05:36:04.000000000 +0000 -@@ -33,6 +33,14 @@ - - - -+ -+ -+This macro is defined only on Haiku. So you can bracket -+Haiku-specific code in "#ifdef G_OS_HAIKU". -+ -+ -+ -+ - - - This macro is defined only on UNIX. So you can bracket -diff -Naur glib-2.18.3-clean/docs/reference/glib/xml/api-index-full.xml glib-2.18.3-some/docs/reference/glib/xml/api-index-full.xml ---- glib-2.18.3-clean/docs/reference/glib/xml/api-index-full.xml 2009-03-29 05:11:45.000000000 +0000 -+++ glib-2.18.3-some/docs/reference/glib/xml/api-index-full.xml 2009-03-29 05:36:04.000000000 +0000 -@@ -1107,6 +1107,7 @@ - g_option_group_set_translation_domain - G_OPTION_REMAINING - G_OS_BEOS -+G_OS_HAIKU - G_OS_UNIX - G_OS_WIN32 - g_parse_debug_string -diff -Naur glib-2.18.3-clean/docs/reference/glib/xml/macros.xml glib-2.18.3-some/docs/reference/glib/xml/macros.xml ---- glib-2.18.3-clean/docs/reference/glib/xml/macros.xml 2009-03-29 05:11:45.000000000 +0000 -+++ glib-2.18.3-some/docs/reference/glib/xml/macros.xml 2009-03-29 05:36:04.000000000 +0000 -@@ -19,6 +19,7 @@ - - #define G_OS_WIN32 - #define G_OS_BEOS -+#define G_OS_HAIKU - #define G_OS_UNIX - - #define G_DIR_SEPARATOR -@@ -81,6 +82,14 @@ - This macro is defined only on BeOS. So you can bracket - BeOS-specific code in "#ifdef G_OS_BEOS". - -+ -+G_OS_HAIKU -+G_OS_HAIKU#define G_OS_HAIKU -+ -+ -+This macro is defined only on Haiku. So you can bracket -+Haiku-specific code in "#ifdef G_OS_HAIKU". -+ - - G_OS_UNIX - G_OS_UNIX#define G_OS_UNIX -diff -Naur glib-2.18.3-clean/gio/xdgmime/xdgmimealias.c glib-2.18.3-some/gio/xdgmime/xdgmimealias.c ---- glib-2.18.3-clean/gio/xdgmime/xdgmimealias.c 2009-03-29 05:11:46.000000000 +0000 -+++ glib-2.18.3-some/gio/xdgmime/xdgmimealias.c 2009-03-29 05:40:01.000000000 +0000 -@@ -35,7 +35,10 @@ - #include - #include - #include --#include -+ -+#if !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) -+# include -+#endif - - #ifndef FALSE - #define FALSE (0) -diff -Naur glib-2.18.3-clean/gio/xdgmime/xdgmimecache.c glib-2.18.3-some/gio/xdgmime/xdgmimecache.c ---- glib-2.18.3-clean/gio/xdgmime/xdgmimecache.c 2009-03-29 05:11:46.000000000 +0000 -+++ glib-2.18.3-some/gio/xdgmime/xdgmimecache.c 2009-03-29 05:40:41.000000000 +0000 -@@ -34,7 +34,11 @@ - - #include - #include --#include -+ -+#if !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) -+# include -+#endif -+ - #include - - #include /* for ntohl/ntohs */ -diff -Naur glib-2.18.3-clean/gio/xdgmime/xdgmimeglob.c glib-2.18.3-some/gio/xdgmime/xdgmimeglob.c ---- glib-2.18.3-clean/gio/xdgmime/xdgmimeglob.c 2009-03-29 05:11:46.000000000 +0000 -+++ glib-2.18.3-some/gio/xdgmime/xdgmimeglob.c 2009-03-29 05:41:11.000000000 +0000 -@@ -35,7 +35,10 @@ - #include - #include - #include --#include -+ -+#if !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) -+# include -+#endif - - #ifndef FALSE - #define FALSE (0) -diff -Naur glib-2.18.3-clean/gio/xdgmime/xdgmimeparent.c glib-2.18.3-some/gio/xdgmime/xdgmimeparent.c ---- glib-2.18.3-clean/gio/xdgmime/xdgmimeparent.c 2009-03-29 05:11:46.000000000 +0000 -+++ glib-2.18.3-some/gio/xdgmime/xdgmimeparent.c 2009-03-29 05:41:22.000000000 +0000 -@@ -35,7 +35,10 @@ - #include - #include - #include --#include -+ -+#if !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) -+# include -+#endif - - #ifndef FALSE - #define FALSE (0) -diff -Naur glib-2.18.3-clean/glib/gslice.c glib-2.18.3-some/glib/gslice.c ---- glib-2.18.3-clean/glib/gslice.c 2009-03-29 05:11:52.000000000 +0000 -+++ glib-2.18.3-some/glib/gslice.c 2009-03-29 05:36:08.000000000 +0000 -@@ -302,6 +302,8 @@ - GetSystemInfo (&system_info); - sys_page_size = system_info.dwPageSize; - } -+#elif defined(G_OS_BEOS) -+ sys_page_size = 4096; - #else - sys_page_size = sysconf (_SC_PAGESIZE); /* = sysconf (_SC_PAGE_SIZE); = getpagesize(); */ - #endif -diff -Naur glib-2.18.3-clean/glib/gstdio.c glib-2.18.3-some/glib/gstdio.c ---- glib-2.18.3-clean/glib/gstdio.c 2009-03-29 05:11:52.000000000 +0000 -+++ glib-2.18.3-some/glib/gstdio.c 2009-03-29 05:36:08.000000000 +0000 -@@ -47,7 +47,7 @@ - - #include "galias.h" - --#if !defined (G_OS_UNIX) && !defined (G_OS_WIN32) && !defined (G_OS_BEOS) -+#if !defined (G_OS_UNIX) && !defined (G_OS_WIN32) && !defined (G_OS_BEOS) && !defined(G_OS_HAIKU) - #error Please port this to your operating system - #endif - -diff -Naur glib-2.18.3-clean/glib/gstrfuncs.c glib-2.18.3-some/glib/gstrfuncs.c ---- glib-2.18.3-clean/glib/gstrfuncs.c 2009-03-29 05:11:52.000000000 +0000 -+++ glib-2.18.3-some/glib/gstrfuncs.c 2009-03-29 05:36:08.000000000 +0000 -@@ -1328,7 +1328,7 @@ - #ifdef HAVE_STRSIGNAL - const char *msg_locale; - --#if defined(G_OS_BEOS) || defined(G_WITH_CYGWIN) -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) || defined(G_WITH_CYGWIN) - extern const char *strsignal(int); - #else - /* this is declared differently (const) in string.h on BeOS */ -diff -Naur glib-2.18.3-clean/glib/gtester.c glib-2.18.3-some/glib/gtester.c ---- glib-2.18.3-clean/glib/gtester.c 2009-03-29 05:11:52.000000000 +0000 -+++ glib-2.18.3-some/glib/gtester.c 2009-03-29 05:36:08.000000000 +0000 -@@ -630,6 +630,7 @@ - * we must fiddle with sigaction() *before* glib is used, otherwise - * we could revoke signal hanmdler setups from glib initialization code. - */ -+#ifdef SA_RESTART - if (TRUE) - { - struct sigaction sa; -@@ -639,6 +640,7 @@ - sa.sa_flags = SA_RESTART; - sigaction (SIGCHLD, &sa, &osa); - } -+#endif - - g_set_prgname (argv[0]); - parse_args (&argc, &argv); -diff -Naur glib-2.18.3-clean/glib/gutils.c glib-2.18.3-some/glib/gutils.c ---- glib-2.18.3-clean/glib/gutils.c 2009-03-29 05:11:52.000000000 +0000 -+++ glib-2.18.3-some/glib/gutils.c 2009-03-29 05:36:08.000000000 +0000 -@@ -458,7 +458,7 @@ - } - - path = g_getenv ("PATH"); --#if defined(G_OS_UNIX) || defined(G_OS_BEOS) -+#if defined(G_OS_UNIX) || defined(G_OS_BEOS) || defined(G_OS_HAIKU) - if (path == NULL) - { - /* There is no `PATH' in the environment. The default -@@ -2279,6 +2279,21 @@ - } - #endif /* G_OS_WIN32 */ - -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+static void -+load_user_special_dirs (void) -+{ -+ g_user_special_dirs[G_USER_DIRECTORY_DESKTOP] = g_strdup("$HOME/Desktop"); -+ g_user_special_dirs[G_USER_DIRECTORY_DOCUMENTS] = g_strdup("$HOME"); -+ g_user_special_dirs[G_USER_DIRECTORY_DOWNLOAD] = g_strdup("$HOME/Desktop"); -+ g_user_special_dirs[G_USER_DIRECTORY_MUSIC] = NULL; -+ g_user_special_dirs[G_USER_DIRECTORY_PICTURES] = NULL; -+ g_user_special_dirs[G_USER_DIRECTORY_PUBLIC_SHARE] = NULL; -+ g_user_special_dirs[G_USER_DIRECTORY_TEMPLATES] = NULL; -+ g_user_special_dirs[G_USER_DIRECTORY_VIDEOS] = NULL; -+} -+#endif /* G_OS_BEOS */ -+ - static void g_init_user_config_dir (void); - - #if defined(G_OS_UNIX) && !defined(HAVE_CARBON) diff --git a/dev-libs/glib/patches/glib-2.18.3-haiku.diff b/dev-libs/glib/patches/glib-2.18.3-haiku.diff deleted file mode 100644 index 1acc25cf2..000000000 --- a/dev-libs/glib/patches/glib-2.18.3-haiku.diff +++ /dev/null @@ -1,964 +0,0 @@ -diff -Naur glib-2.18.3-virgin/configure.in glib-2.18.3/configure.in ---- glib-2.18.3-virgin/configure.in 2008-12-15 14:14:07.000000000 +0000 -+++ glib-2.18.3/configure.in 2008-12-15 14:22:15.000000000 +0000 -@@ -112,6 +112,17 @@ - esac - AC_MSG_RESULT([$glib_native_beos]) - -+AC_MSG_CHECKING([for Haiku]) -+case $host in -+ *-*-haiku*) -+ glib_native_haiku="yes" -+ ;; -+ *) -+ glib_native_haiku="no" -+ ;; -+esac -+AC_MSG_RESULT([$glib_native_haiku]) -+ - dnl - - AC_MSG_CHECKING([for Win32]) -@@ -3280,6 +3291,9 @@ - #define G_PLATFORM_WIN32 - #define G_WITH_CYGWIN" - ;; -+ *-*-haiku*) -+ glib_os="#define G_OS_HAIKU" -+ ;; - *-*-mingw*) - glib_os="#define G_OS_WIN32 - #define G_PLATFORM_WIN32" -diff -Naur glib-2.18.3-virgin/docs/reference/glib/glib-overrides.txt glib-2.18.3/docs/reference/glib/glib-overrides.txt ---- glib-2.18.3-virgin/docs/reference/glib/glib-overrides.txt 2008-12-15 14:14:06.000000000 +0000 -+++ glib-2.18.3/docs/reference/glib/glib-overrides.txt 2008-12-15 14:26:31.000000000 +0000 -@@ -215,6 +215,11 @@ - #define G_OS_BEOS - - -+ -+G_OS_HAIKU -+#define G_OS_HAIKU -+ -+ - # g_ascii_isxxx - - -diff -Naur glib-2.18.3-virgin/docs/reference/glib/glib-sections.txt glib-2.18.3/docs/reference/glib/glib-sections.txt ---- glib-2.18.3-virgin/docs/reference/glib/glib-sections.txt 2008-12-15 14:14:06.000000000 +0000 -+++ glib-2.18.3/docs/reference/glib/glib-sections.txt 2008-12-15 14:27:12.000000000 +0000 -@@ -125,6 +125,7 @@ - - G_OS_WIN32 - G_OS_BEOS -+G_OS_HAIKU - G_OS_UNIX - - -diff -Naur glib-2.18.3-virgin/docs/reference/glib/html/glib-Standard-Macros.html glib-2.18.3/docs/reference/glib/html/glib-Standard-Macros.html ---- glib-2.18.3-virgin/docs/reference/glib/html/glib-Standard-Macros.html 2008-12-15 14:14:05.000000000 +0000 -+++ glib-2.18.3/docs/reference/glib/html/glib-Standard-Macros.html 2008-12-15 14:28:52.000000000 +0000 -@@ -60,6 +60,7 @@ - - #define G_OS_WIN32 - #define G_OS_BEOS -+#define G_OS_HAIKU - #define G_OS_UNIX - - #define G_DIR_SEPARATOR -@@ -115,6 +116,15 @@ - BeOS-specific code in "#ifdef G_OS_BEOS". -

-
-+
-+

G_OS_HAIKU

-+
#define G_OS_HAIKU
-+
-+

-+This macro is defined only on Haiku. So you can bracket -+Haiku-specific code in "#ifdef G_OS_HAIKU". -+

-+
-
-
-

G_OS_UNIX

-diff -Naur glib-2.18.3-virgin/docs/reference/glib/html/glib.devhelp glib-2.18.3/docs/reference/glib/html/glib.devhelp ---- glib-2.18.3-virgin/docs/reference/glib/html/glib.devhelp 2008-12-15 14:14:05.000000000 +0000 -+++ glib-2.18.3/docs/reference/glib/html/glib.devhelp 2008-12-15 14:29:21.000000000 +0000 -@@ -189,6 +189,7 @@ - - - -+ - - - -diff -Naur glib-2.18.3-virgin/docs/reference/glib/html/glib.devhelp2 glib-2.18.3/docs/reference/glib/html/glib.devhelp2 ---- glib-2.18.3-virgin/docs/reference/glib/html/glib.devhelp2 2008-12-15 14:14:05.000000000 +0000 -+++ glib-2.18.3/docs/reference/glib/html/glib.devhelp2 2008-12-15 14:29:46.000000000 +0000 -@@ -189,6 +189,7 @@ - - - -+ - - - -diff -Naur glib-2.18.3-virgin/docs/reference/glib/html/ix01.html glib-2.18.3/docs/reference/glib/html/ix01.html ---- glib-2.18.3-virgin/docs/reference/glib/html/ix01.html 2008-12-15 14:14:05.000000000 +0000 -+++ glib-2.18.3/docs/reference/glib/html/ix01.html 2008-12-15 14:30:31.000000000 +0000 -@@ -2260,6 +2260,8 @@ - -
G_OS_BEOS, G_OS_BEOS -
-+
G_OS_HAIKU, G_OS_HAIKU -+
-
G_OS_UNIX, G_OS_UNIX -
-
G_OS_WIN32, G_OS_WIN32 -diff -Naur glib-2.18.3-virgin/docs/reference/glib/tmpl/macros.sgml glib-2.18.3/docs/reference/glib/tmpl/macros.sgml ---- glib-2.18.3-virgin/docs/reference/glib/tmpl/macros.sgml 2008-12-15 14:14:06.000000000 +0000 -+++ glib-2.18.3/docs/reference/glib/tmpl/macros.sgml 2008-12-15 14:31:07.000000000 +0000 -@@ -33,6 +33,14 @@ - - - -+ -+ -+This macro is defined only on Haiku. So you can bracket -+Haiku-specific code in "#ifdef G_OS_HAIKU". -+ -+ -+ -+ - - - This macro is defined only on UNIX. So you can bracket -diff -Naur glib-2.18.3-virgin/docs/reference/glib/xml/api-index-full.xml glib-2.18.3/docs/reference/glib/xml/api-index-full.xml ---- glib-2.18.3-virgin/docs/reference/glib/xml/api-index-full.xml 2008-12-15 14:14:06.000000000 +0000 -+++ glib-2.18.3/docs/reference/glib/xml/api-index-full.xml 2008-12-15 14:31:46.000000000 +0000 -@@ -1107,6 +1107,7 @@ - g_option_group_set_translation_domain - G_OPTION_REMAINING - G_OS_BEOS -+G_OS_HAIKU - G_OS_UNIX - G_OS_WIN32 - g_parse_debug_string -diff -Naur glib-2.18.3-virgin/docs/reference/glib/xml/macros.xml glib-2.18.3/docs/reference/glib/xml/macros.xml ---- glib-2.18.3-virgin/docs/reference/glib/xml/macros.xml 2008-12-15 14:14:05.000000000 +0000 -+++ glib-2.18.3/docs/reference/glib/xml/macros.xml 2008-12-15 14:33:46.000000000 +0000 -@@ -19,6 +19,7 @@ - - #define G_OS_WIN32 - #define G_OS_BEOS -+#define G_OS_HAIKU - #define G_OS_UNIX - - #define G_DIR_SEPARATOR -@@ -81,6 +82,14 @@ - This macro is defined only on BeOS. So you can bracket - BeOS-specific code in "#ifdef G_OS_BEOS". - -+ -+G_OS_HAIKU -+G_OS_HAIKU#define G_OS_HAIKU -+ -+ -+This macro is defined only on Haiku. So you can bracket -+Haiku-specific code in "#ifdef G_OS_HAIKU". -+ - - G_OS_UNIX - G_OS_UNIX#define G_OS_UNIX -diff -Naur glib-2.18.3-virgin/gio/Makefile.am glib-2.18.3/gio/Makefile.am ---- glib-2.18.3-virgin/gio/Makefile.am 2008-12-15 14:14:02.000000000 +0000 -+++ glib-2.18.3/gio/Makefile.am 2008-12-15 14:42:41.000000000 +0000 -@@ -162,7 +162,7 @@ - - endif - --SUBDIRS += tests -+#SUBDIRS += tests - - libgio_2_0_la_SOURCES = \ - gappinfo.c \ -diff -Naur glib-2.18.3-virgin/gio/Makefile.am~ glib-2.18.3/gio/Makefile.am~ ---- glib-2.18.3-virgin/gio/Makefile.am~ 1970-01-01 00:00:00.000000000 +0000 -+++ glib-2.18.3/gio/Makefile.am~ 2008-12-15 14:14:26.000000000 +0000 -@@ -0,0 +1,365 @@ -+include $(top_srcdir)/Makefile.decl -+ -+NULL = -+ -+SUBDIRS= -+ -+if OS_UNIX -+SUBDIRS += xdgmime -+endif -+ -+if OS_WIN32_AND_DLL_COMPILATION -+if MS_LIB_AVAILABLE -+noinst_DATA = gio-2.0.lib -+ -+install_ms_lib_cmd = $(INSTALL) gio-2.0.lib $(DESTDIR)$(libdir) -+uninstall_ms_lib_cmd = -rm $(DESTDIR)$(libdir)/gio-2.0.lib -+endif -+endif -+ -+install-ms-lib: -+ $(install_ms_lib_cmd) -+ -+uninstall-ms-lib: -+ $(uninstall_ms_lib_cmd) -+ -+gio.def: gio.symbols -+ (echo -e EXPORTS; $(CPP) -P -DINCLUDE_VARIABLES -DINCLUDE_INTERNAL_SYMBOLS -DG_OS_WIN32 -DALL_FILES - <$(srcdir)/gio.symbols | sed -e '/^$$/d' -e 's/^/ /' -e 's/G_GNUC_[^ ]*//g' | sort) > gio.def.tmp && \ -+ mv gio.def.tmp gio.def -+ -+gioalias.h: gio.symbols -+ $(PERL) $(srcdir)/makegioalias.pl < $(srcdir)/gio.symbols > gioalias.h.tmp && \ -+ mv gioalias.h.tmp gioalias.h -+ -+gioaliasdef.c: gio.symbols -+ $(PERL) $(srcdir)/makegioalias.pl -def < $(srcdir)/gio.symbols > gioaliasdef.c.tmp && \ -+ mv gioaliasdef.c.tmp gioaliasdef.c -+ -+if OS_LINUX -+if HAVE_GNUC_VISIBILITY -+TESTS = abicheck.sh pltcheck.sh -+endif -+endif -+ -+AM_CPPFLAGS = \ -+ -DG_LOG_DOMAIN=\"GLib-GIO\" \ -+ -I$(top_builddir) \ -+ -I$(top_srcdir) \ -+ -I$(top_srcdir)/glib \ -+ -I$(top_srcdir)/gmodule \ -+ $(GLIB_DEBUG_FLAGS) \ -+ -DG_DISABLE_DEPRECATED \ -+ -DGIO_COMPILATION \ -+ -DGIO_MODULE_DIR=\"$(GIO_MODULE_DIR)\" -+ -+lib_LTLIBRARIES = libgio-2.0.la -+ -+marshal_sources = \ -+ gio-marshal.h \ -+ gio-marshal.c \ -+ $(NULL) -+ -+if CROSS_COMPILING -+ glib_genmarshal=$(GLIB_GENMARSHAL) -+else -+ glib_genmarshal=../gobject/glib-genmarshal -+endif -+ -+gio-marshal.h: gio-marshal.list -+ $(glib_genmarshal) --prefix=_gio_marshal $(srcdir)/gio-marshal.list --header --internal > $@.tmp && \ -+ mv $@.tmp $@ -+ -+gio-marshal.c: gio-marshal.h gio-marshal.list -+ (echo "#include \"gio-marshal.h\""; \ -+ $(glib_genmarshal) --prefix=_gio_marshal $(srcdir)/gio-marshal.list --body --internal) > $@.tmp && \ -+ mv $@.tmp $@ -+ -+local_sources = \ -+ glocaldirectorymonitor.c \ -+ glocaldirectorymonitor.h \ -+ glocalfile.c \ -+ glocalfile.h \ -+ glocalfileenumerator.c \ -+ glocalfileenumerator.h \ -+ glocalfileinfo.c \ -+ glocalfileinfo.h \ -+ glocalfileinputstream.c \ -+ glocalfileinputstream.h \ -+ glocalfilemonitor.c \ -+ glocalfilemonitor.h \ -+ glocalfileoutputstream.c \ -+ glocalfileoutputstream.h \ -+ glocalvfs.c \ -+ glocalvfs.h \ -+ $(NULL) -+ -+platform_libadd = -+platform_deps = -+appinfo_sources = -+ -+if HAVE_INOTIFY -+SUBDIRS += inotify -+platform_libadd += inotify/libinotify.la -+platform_deps += inotify/libinotify.la -+endif -+ -+if HAVE_FEN -+AM_CPPFLAGS += -DHAVE_FEN -+SUBDIRS += fen -+platform_libadd += fen/libfen.la -+platform_deps += fen/libfen.la -+endif -+ -+if OS_WIN32 -+SUBDIRS += win32 -+platform_libadd += win32/libgiowin32.la -+platform_deps += win32/libgiowin32.la -+endif -+ -+ -+SUBDIRS += . -+ -+if HAVE_FAM -+SUBDIRS += fam -+endif -+ -+if OS_UNIX -+appinfo_sources += gdesktopappinfo.c gdesktopappinfo.h -+platform_libadd += xdgmime/libxdgmime.la -+platform_deps += xdgmime/libxdgmime.la -+unix_sources = \ -+ gunixmount.c \ -+ gunixmount.h \ -+ gunixmounts.c \ -+ gunixmounts.h \ -+ gunixvolume.c \ -+ gunixvolume.h \ -+ gunixvolumemonitor.c \ -+ gunixvolumemonitor.h \ -+ gunixinputstream.c \ -+ gunixoutputstream.c \ -+ $(NULL) -+ -+ -+giounixincludedir=$(includedir)/gio-unix-2.0/gio -+giounixinclude_HEADERS = \ -+ gdesktopappinfo.h \ -+ gunixmounts.h \ -+ gunixinputstream.h \ -+ gunixoutputstream.h \ -+ $(NULL) -+endif -+ -+if OS_WIN32 -+appinfo_sources += gwin32appinfo.c gwin32appinfo.h -+platform_libadd += -lshlwapi -+win32_sources = \ -+ gwin32mount.c \ -+ gwin32mount.h \ -+ gwin32volumemonitor.c \ -+ gwin32volumemonitor.h \ -+ $(NULL) -+ -+endif -+ -+SUBDIRS += tests -+ -+libgio_2_0_la_SOURCES = \ -+ gappinfo.c \ -+ gasynchelper.c \ -+ gasynchelper.h \ -+ gasyncresult.c \ -+ gbufferedinputstream.c \ -+ gbufferedoutputstream.c \ -+ gcancellable.c \ -+ gcontenttype.c \ -+ gcontenttypeprivate.h \ -+ gdatainputstream.c \ -+ gdataoutputstream.c \ -+ gdrive.c \ -+ gdummyfile.h \ -+ gdummyfile.c \ -+ gemblem.h \ -+ gemblem.c \ -+ gemblemedicon.h \ -+ gemblemedicon.c \ -+ gfile.c \ -+ gfileattribute.c \ -+ gfileattribute-priv.h \ -+ gfileenumerator.c \ -+ gfileicon.c \ -+ gfileinfo.c \ -+ gfileinputstream.c \ -+ gfilemonitor.c \ -+ gfilenamecompleter.c \ -+ gfileoutputstream.c \ -+ gfilterinputstream.c \ -+ gfilteroutputstream.c \ -+ gicon.c \ -+ ginputstream.c \ -+ gioenums.h \ -+ gioerror.c \ -+ giomodule.c \ -+ giomodule-priv.h \ -+ gioscheduler.c \ -+ gloadableicon.c \ -+ gmount.c \ -+ gmemoryinputstream.c \ -+ gmemoryoutputstream.c \ -+ gmountoperation.c \ -+ gnativevolumemonitor.c \ -+ gnativevolumemonitor.h \ -+ goutputstream.c \ -+ gpollfilemonitor.c \ -+ gpollfilemonitor.h \ -+ gseekable.c \ -+ gsimpleasyncresult.c \ -+ gthemedicon.c \ -+ gunionvolumemonitor.c \ -+ gunionvolumemonitor.h \ -+ gvfs.c \ -+ gvolume.c \ -+ gvolumemonitor.c \ -+ gmountprivate.h \ -+ gioenumtypes.h \ -+ gioenumtypes.c \ -+ gioalias.h \ -+ gioaliasdef.c \ -+ $(appinfo_sources) \ -+ $(unix_sources) \ -+ $(win32_sources) \ -+ $(local_sources) \ -+ $(marshal_sources) \ -+ $(NULL) -+ -+$(libgio_2_0_la_OBJECTS): $(marshal_sources) -+ -+libgio_2_0_la_LIBADD = \ -+ $(top_builddir)/glib/libglib-2.0.la \ -+ $(top_builddir)/gobject/libgobject-2.0.la \ -+ $(top_builddir)/gmodule/libgmodule-2.0.la \ -+ $(platform_libadd) \ -+ $(SELINUX_LIBS) \ -+ $(GLIB_LIBS) \ -+ $(XATTR_LIBS) \ -+ $(NULL) -+ -+if PLATFORM_WIN32 -+no_undefined = -no-undefined -+endif -+ -+if OS_WIN32_AND_DLL_COMPILATION -+export_symbols = -export-symbols gio.def -+gio_def = gio.def -+ -+install-def-file: -+ $(INSTALL) gio.def $(DESTDIR)$(libdir)/gio-2.0.def -+ -+uninstall-def-file: -+ -rm $(DESTDIR)$(libdir)/gio-2.0.def -+else -+install-def-file: -+uninstall-def-file: -+ -+export_symbols = -export-symbols-regex '^g_.*' -+endif -+ -+install-data-local: install-ms-lib install-def-file -+ $(mkinstalldirs) $(DESTDIR)$(GIO_MODULE_DIR) -+ -+uninstall-local: uninstall-ms-lib uninstall-def-file -+ -+libgio_2_0_la_LDFLAGS = \ -+ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \ -+ -export-dynamic $(no_undefined) $(export_symbols) -+ -+libgio_2_0_la_DEPENDENCIES = $(gio_def) $(platform_deps) -+ -+gio_headers = \ -+ gappinfo.h \ -+ gasyncresult.h \ -+ gbufferedinputstream.h \ -+ gbufferedoutputstream.h \ -+ gcancellable.h \ -+ gcontenttype.h \ -+ gdatainputstream.h \ -+ gdataoutputstream.h \ -+ gdrive.h \ -+ gemblem.h \ -+ gemblemedicon.h \ -+ gfile.h \ -+ gfileattribute.h \ -+ gfileenumerator.h \ -+ gfileicon.h \ -+ gfileinfo.h \ -+ gfileinputstream.h \ -+ gfilemonitor.h \ -+ gfilenamecompleter.h \ -+ gfileoutputstream.h \ -+ gfilterinputstream.h \ -+ gfilteroutputstream.h \ -+ gicon.h \ -+ ginputstream.h \ -+ gio.h \ -+ giotypes.h \ -+ gioenums.h \ -+ gioerror.h \ -+ giomodule.h \ -+ gioscheduler.h \ -+ gloadableicon.h \ -+ gmount.h \ -+ gmemoryinputstream.h \ -+ gmemoryoutputstream.h \ -+ gmountoperation.h \ -+ gnativevolumemonitor.h \ -+ goutputstream.h \ -+ gseekable.h \ -+ gsimpleasyncresult.h \ -+ gthemedicon.h \ -+ gvfs.h \ -+ gvolume.h \ -+ gvolumemonitor.h \ -+ $(NULL) -+ -+gioincludedir=$(includedir)/glib-2.0/gio/ -+gioinclude_HEADERS = \ -+ $(gio_headers) \ -+ gioenumtypes.h -+ -+# these sources (also mentioned above) are generated. -+BUILT_SOURCES = \ -+ gio-marshal.h \ -+ gio-marshal.c \ -+ gioalias.h \ -+ gioaliasdef.c \ -+ gioenumtypes.h \ -+ gioenumtypes.c \ -+ $(NULL) -+ -+EXTRA_DIST += \ -+ gio-marshal.list \ -+ gio.symbols \ -+ gioenumtypes.h.template \ -+ gioenumtypes.c.template \ -+ makefile.msc \ -+ makegioalias.pl \ -+ abicheck.sh \ -+ pltcheck.sh \ -+ $(NULL) -+ -+CLEANFILES = \ -+ $(marshal_sources) \ -+ $(NULL) -+ -+gioenumtypes.h: $(gio_headers) gioenumtypes.h.template -+ ( top_builddir=`cd $(top_builddir) && pwd`; \ -+ cd $(srcdir) && $$top_builddir/gobject/glib-mkenums --template gioenumtypes.h.template $(gio_headers) ) > \ -+ gioenumtypes.h.tmp && mv gioenumtypes.h.tmp gioenumtypes.h -+ -+gioenumtypes.c: $(gio_headers) gioenumtypes.c.template -+ ( top_builddir=`cd $(top_builddir) && pwd`; \ -+ cd $(srcdir) && $$top_builddir/gobject/glib-mkenums --template gioenumtypes.c.template $(gio_headers) ) > \ -+ gioenumtypes.c.tmp && mv gioenumtypes.c.tmp gioenumtypes.c -+ -+gio-2.0.lib: libgio-2.0.la gio.def -+ lib -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgio-2.0-$(LT_CURRENT_MINUS_AGE).dll -def:gio.def -out:$@ -diff -Naur glib-2.18.3-virgin/gio/gunixinputstream.c glib-2.18.3/gio/gunixinputstream.c ---- glib-2.18.3-virgin/gio/gunixinputstream.c 2008-12-15 14:14:02.000000000 +0000 -+++ glib-2.18.3/gio/gunixinputstream.c 2008-12-15 14:46:58.000000000 +0000 -@@ -28,7 +28,9 @@ - #include - #include - #include -+#ifdef HAVE_POLL - #include -+#endif - - #include - #include -@@ -171,6 +173,9 @@ - GCancellable *cancellable, - GError **error) - { -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+ return -1; -+#else - GUnixInputStream *unix_stream; - gssize res; - struct pollfd poll_fds[2]; -@@ -226,6 +231,7 @@ - } - - return res; -+#endif - } - - static gboolean -@@ -331,6 +337,7 @@ - GAsyncReadyCallback callback, - gpointer user_data) - { -+#if !defined(G_OS_BEOS) &&!defined(G_OS_HAIKU) - GSource *source; - GUnixInputStream *unix_stream; - ReadAsyncData *data; -@@ -353,6 +360,7 @@ - g_source_attach (source, NULL); - - g_source_unref (source); -+#endif - } - - static gssize -diff -Naur glib-2.18.3-virgin/gio/gunixmounts.c glib-2.18.3/gio/gunixmounts.c ---- glib-2.18.3-virgin/gio/gunixmounts.c 2008-12-15 14:14:01.000000000 +0000 -+++ glib-2.18.3/gio/gunixmounts.c 2008-12-15 14:48:11.000000000 +0000 -@@ -594,6 +594,16 @@ - - return g_list_reverse (return_list); - } -+ -+#elif defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+ -+static GList * -+_g_get_unix_mounts (void) -+{ -+ GList *return_list = NULL; -+ return return_list; -+} -+ - #else - #error No _g_get_unix_mounts() implementation for system - #endif -@@ -974,6 +984,16 @@ - - return g_list_reverse (return_list); - } -+ -+#elif defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+ -+static GList * -+_g_get_unix_mount_points (void) -+{ -+ GList *return_list = NULL; -+ return return_list; -+} -+ - #else - #error No g_get_mount_table() implementation for system - #endif -diff -Naur glib-2.18.3-virgin/gio/gunixoutputstream.c glib-2.18.3/gio/gunixoutputstream.c ---- glib-2.18.3-virgin/gio/gunixoutputstream.c 2008-12-15 14:14:01.000000000 +0000 -+++ glib-2.18.3/gio/gunixoutputstream.c 2008-12-15 14:49:48.000000000 +0000 -@@ -28,7 +28,9 @@ - #include - #include - #include -+#ifdef HAVE_POLL - #include -+#endif - - #include - #include -@@ -159,6 +161,9 @@ - GCancellable *cancellable, - GError **error) - { -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+ return -1; -+#else - GUnixOutputStream *unix_stream; - gssize res; - struct pollfd poll_fds[2]; -@@ -215,6 +220,7 @@ - } - - return res; -+#endif - } - - static gboolean -@@ -320,6 +326,7 @@ - GAsyncReadyCallback callback, - gpointer user_data) - { -+#if !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) - GSource *source; - GUnixOutputStream *unix_stream; - WriteAsyncData *data; -@@ -342,6 +349,7 @@ - g_source_attach (source, NULL); - - g_source_unref (source); -+#endif - } - - static gssize -diff -Naur glib-2.18.3-virgin/gio/makegioalias.pl glib-2.18.3/gio/makegioalias.pl ---- glib-2.18.3-virgin/gio/makegioalias.pl 2008-12-15 14:14:01.000000000 +0000 -+++ glib-2.18.3/gio/makegioalias.pl 2008-12-15 14:42:41.000000000 +0000 -@@ -1,4 +1,4 @@ --#!/usr/bin/perl -w -+#!/boot/home/config/bin/perl -w - - my $do_def = 0; - -diff -Naur glib-2.18.3-virgin/gio/xdgmime/xdgmimealias.c glib-2.18.3/gio/xdgmime/xdgmimealias.c ---- glib-2.18.3-virgin/gio/xdgmime/xdgmimealias.c 2008-12-15 14:14:02.000000000 +0000 -+++ glib-2.18.3/gio/xdgmime/xdgmimealias.c 2008-12-15 14:42:41.000000000 +0000 -@@ -35,7 +35,7 @@ - #include - #include - #include --#include -+//#include - - #ifndef FALSE - #define FALSE (0) -diff -Naur glib-2.18.3-virgin/gio/xdgmime/xdgmimecache.c glib-2.18.3/gio/xdgmime/xdgmimecache.c ---- glib-2.18.3-virgin/gio/xdgmime/xdgmimecache.c 2008-12-15 14:14:02.000000000 +0000 -+++ glib-2.18.3/gio/xdgmime/xdgmimecache.c 2008-12-15 14:42:41.000000000 +0000 -@@ -34,7 +34,7 @@ - - #include - #include --#include -+//#include - #include - - #include /* for ntohl/ntohs */ -diff -Naur glib-2.18.3-virgin/gio/xdgmime/xdgmimeglob.c glib-2.18.3/gio/xdgmime/xdgmimeglob.c ---- glib-2.18.3-virgin/gio/xdgmime/xdgmimeglob.c 2008-12-15 14:14:02.000000000 +0000 -+++ glib-2.18.3/gio/xdgmime/xdgmimeglob.c 2008-12-15 14:42:41.000000000 +0000 -@@ -35,7 +35,7 @@ - #include - #include - #include --#include -+//#include - - #ifndef FALSE - #define FALSE (0) -diff -Naur glib-2.18.3-virgin/gio/xdgmime/xdgmimeparent.c glib-2.18.3/gio/xdgmime/xdgmimeparent.c ---- glib-2.18.3-virgin/gio/xdgmime/xdgmimeparent.c 2008-12-15 14:14:02.000000000 +0000 -+++ glib-2.18.3/gio/xdgmime/xdgmimeparent.c 2008-12-15 14:42:41.000000000 +0000 -@@ -35,7 +35,7 @@ - #include - #include - #include --#include -+//#include - - #ifndef FALSE - #define FALSE (0) -diff -Naur glib-2.18.3-virgin/glib/Makefile.am glib-2.18.3/glib/Makefile.am ---- glib-2.18.3-virgin/glib/Makefile.am 2008-12-15 14:14:09.000000000 +0000 -+++ glib-2.18.3/glib/Makefile.am 2008-12-15 14:42:41.000000000 +0000 -@@ -19,7 +19,7 @@ - gregex_h = - endif - --SUBDIRS = libcharset $(PRINTF_SUBDIR) $(MAYBE_PCRE) update-pcre . tests -+SUBDIRS = libcharset $(PRINTF_SUBDIR) $(MAYBE_PCRE) update-pcre . - - DIST_SUBDIRS = libcharset gnulib pcre update-pcre tests - -diff -Naur glib-2.18.3-virgin/glib/gbacktrace.c glib-2.18.3/glib/gbacktrace.c ---- glib-2.18.3-virgin/glib/gbacktrace.c 2008-12-15 14:14:08.000000000 +0000 -+++ glib-2.18.3/glib/gbacktrace.c 2008-12-15 15:04:11.000000000 +0000 -@@ -158,7 +158,7 @@ - void - g_on_error_stack_trace (const gchar *prg_name) - { --#if defined(G_OS_UNIX) || defined(G_OS_BEOS) -+#if defined(G_OS_UNIX) || defined(G_OS_BEOS) || defined(G_OS_HAIKU) - pid_t pid; - gchar buf[16]; - gchar *args[4] = { "gdb", NULL, NULL, NULL }; -@@ -193,7 +193,7 @@ - #endif - } - --#ifndef G_OS_WIN32 -+#if !defined(G_OS_WIN32) && !defined(G_OS_BEOS) - - static gboolean stack_trace_done = FALSE; - -diff -Naur glib-2.18.3-virgin/glib/gmain.c glib-2.18.3/glib/gmain.c ---- glib-2.18.3-virgin/glib/gmain.c 2008-12-15 14:14:09.000000000 +0000 -+++ glib-2.18.3/glib/gmain.c 2008-12-15 14:53:50.000000000 +0000 -@@ -82,6 +82,12 @@ - #include - #endif /* G_OS_BEOS */ - -+#ifdef G_OS_HAIKU -+#include -+#include -+#include "fcntl.h" -+#endif /* G_OS_HAIKU */ -+ - #ifdef G_OS_UNIX - #include - #include -@@ -569,6 +575,10 @@ - #undef NO_FD_SET - #endif /* G_OS_BEOS */ - -+#ifdef G_OS_HAIKU -+#undef NO_FD_SET -+#endif /* G_OS_HAIKU */ -+ - #ifndef NO_FD_SET - # define SELECT_MASK fd_set - #else /* !NO_FD_SET */ -@@ -4022,6 +4032,7 @@ - static void - g_child_watch_source_init_multi_threaded (void) - { -+#if !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) - GError *error = NULL; - struct sigaction action; - -@@ -4041,6 +4052,7 @@ - sigemptyset (&action.sa_mask); - action.sa_flags = SA_RESTART | SA_NOCLDSTOP; - sigaction (SIGCHLD, &action, NULL); -+#endif - } - - static void -diff -Naur glib-2.18.3-virgin/glib/gslice.c glib-2.18.3/glib/gslice.c ---- glib-2.18.3-virgin/glib/gslice.c 2008-12-15 14:14:09.000000000 +0000 -+++ glib-2.18.3/glib/gslice.c 2008-12-15 14:42:41.000000000 +0000 -@@ -302,6 +302,8 @@ - GetSystemInfo (&system_info); - sys_page_size = system_info.dwPageSize; - } -+#elif defined(G_OS_BEOS) -+ sys_page_size = 4096; - #else - sys_page_size = sysconf (_SC_PAGESIZE); /* = sysconf (_SC_PAGE_SIZE); = getpagesize(); */ - #endif -diff -Naur glib-2.18.3-virgin/glib/gspawn.c glib-2.18.3/glib/gspawn.c ---- glib-2.18.3-virgin/glib/gspawn.c 2008-12-15 14:14:09.000000000 +0000 -+++ glib-2.18.3/glib/gspawn.c 2008-12-15 14:55:23.000000000 +0000 -@@ -238,6 +238,9 @@ - gint *exit_status, - GError **error) - { -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+ return FALSE; -+#else - gint outpipe = -1; - gint errpipe = -1; - GPid pid; -@@ -433,6 +436,7 @@ - - return TRUE; - } -+#endif - } - - /** -@@ -908,7 +912,7 @@ - gint fd; - gint res = 0; - --#ifdef HAVE_SYS_RESOURCE_H -+#if defined(HAVE_SYS_RESOURCE_H) && !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) - struct rlimit rl; - #endif - -@@ -951,7 +955,7 @@ - - #endif - --#ifdef HAVE_SYS_RESOURCE_H -+#if defined(HAVE_SYS_RESOURCE_H) && !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) - - if (getrlimit(RLIMIT_NOFILE, &rl) == 0 && rl.rlim_max != RLIM_INFINITY) - open_max = rl.rlim_max; -diff -Naur glib-2.18.3-virgin/glib/gstdio.c glib-2.18.3/glib/gstdio.c ---- glib-2.18.3-virgin/glib/gstdio.c 2008-12-15 14:14:09.000000000 +0000 -+++ glib-2.18.3/glib/gstdio.c 2008-12-15 14:56:19.000000000 +0000 -@@ -47,7 +47,7 @@ - - #include "galias.h" - --#if !defined (G_OS_UNIX) && !defined (G_OS_WIN32) && !defined (G_OS_BEOS) -+#if !defined (G_OS_UNIX) && !defined (G_OS_WIN32) && !defined (G_OS_BEOS) && !defined(G_OS_HAIKU) - #error Please port this to your operating system - #endif - -diff -Naur glib-2.18.3-virgin/glib/gstrfuncs.c glib-2.18.3/glib/gstrfuncs.c ---- glib-2.18.3-virgin/glib/gstrfuncs.c 2008-12-15 14:14:09.000000000 +0000 -+++ glib-2.18.3/glib/gstrfuncs.c 2008-12-15 15:01:39.000000000 +0000 -@@ -1328,7 +1328,7 @@ - #ifdef HAVE_STRSIGNAL - const char *msg_locale; - --#if defined(G_OS_BEOS) || defined(G_WITH_CYGWIN) -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) || defined(G_WITH_CYGWIN) - extern const char *strsignal(int); - #else - /* this is declared differently (const) in string.h on BeOS */ -diff -Naur glib-2.18.3-virgin/glib/gtester.c glib-2.18.3/glib/gtester.c ---- glib-2.18.3-virgin/glib/gtester.c 2008-12-15 14:14:08.000000000 +0000 -+++ glib-2.18.3/glib/gtester.c 2008-12-15 14:42:41.000000000 +0000 -@@ -630,6 +630,7 @@ - * we must fiddle with sigaction() *before* glib is used, otherwise - * we could revoke signal hanmdler setups from glib initialization code. - */ -+#ifdef SA_RESTART - if (TRUE) - { - struct sigaction sa; -@@ -639,6 +640,7 @@ - sa.sa_flags = SA_RESTART; - sigaction (SIGCHLD, &sa, &osa); - } -+#endif - - g_set_prgname (argv[0]); - parse_args (&argc, &argv); -diff -Naur glib-2.18.3-virgin/glib/gutils.c glib-2.18.3/glib/gutils.c ---- glib-2.18.3-virgin/glib/gutils.c 2008-12-15 14:14:08.000000000 +0000 -+++ glib-2.18.3/glib/gutils.c 2008-12-15 15:03:09.000000000 +0000 -@@ -458,7 +458,7 @@ - } - - path = g_getenv ("PATH"); --#if defined(G_OS_UNIX) || defined(G_OS_BEOS) -+#if defined(G_OS_UNIX) || defined(G_OS_BEOS) || defined(G_OS_HAIKU) - if (path == NULL) - { - /* There is no `PATH' in the environment. The default -@@ -2279,6 +2279,21 @@ - } - #endif /* G_OS_WIN32 */ - -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+static void -+load_user_special_dirs (void) -+{ -+ g_user_special_dirs[G_USER_DIRECTORY_DESKTOP] = g_strdup("$HOME/Desktop"); -+ g_user_special_dirs[G_USER_DIRECTORY_DOCUMENTS] = g_strdup("$HOME"); -+ g_user_special_dirs[G_USER_DIRECTORY_DOWNLOAD] = g_strdup("$HOME/Desktop"); -+ g_user_special_dirs[G_USER_DIRECTORY_MUSIC] = NULL; -+ g_user_special_dirs[G_USER_DIRECTORY_PICTURES] = NULL; -+ g_user_special_dirs[G_USER_DIRECTORY_PUBLIC_SHARE] = NULL; -+ g_user_special_dirs[G_USER_DIRECTORY_TEMPLATES] = NULL; -+ g_user_special_dirs[G_USER_DIRECTORY_VIDEOS] = NULL; -+} -+#endif /* G_OS_BEOS */ -+ - static void g_init_user_config_dir (void); - - #if defined(G_OS_UNIX) && !defined(HAVE_CARBON) -diff -Naur glib-2.18.3-virgin/glib/makegalias.pl glib-2.18.3/glib/makegalias.pl ---- glib-2.18.3-virgin/glib/makegalias.pl 2008-12-15 14:14:08.000000000 +0000 -+++ glib-2.18.3/glib/makegalias.pl 2008-12-15 14:42:41.000000000 +0000 -@@ -1,4 +1,4 @@ --#!/usr/bin/perl -w -+#!/boot/home/config/bin/perl -w - - my $do_def = 0; - -diff -Naur glib-2.18.3-virgin/gobject/makegobjectalias.pl glib-2.18.3/gobject/makegobjectalias.pl ---- glib-2.18.3-virgin/gobject/makegobjectalias.pl 2008-12-15 14:14:10.000000000 +0000 -+++ glib-2.18.3/gobject/makegobjectalias.pl 2008-12-15 14:42:41.000000000 +0000 -@@ -1,4 +1,4 @@ --#!/usr/bin/perl -w -+#!/boot/home/config/bin/perl -w - - my $do_def = 0; - diff --git a/dev-libs/glib/patches/glib-2.19.2-haiku.diff b/dev-libs/glib/patches/glib-2.19.2-haiku.diff deleted file mode 100644 index a80f1dde1..000000000 --- a/dev-libs/glib/patches/glib-2.19.2-haiku.diff +++ /dev/null @@ -1,494 +0,0 @@ -diff -urN glib-2.19.2/configure.in glib-2.19.2-haiku/configure.in ---- glib-2.19.2/configure.in 2008-12-18 07:13:29.000000000 -0800 -+++ glib-2.19.2-haiku/configure.in 2008-12-18 07:36:31.000000000 -0800 -@@ -112,6 +112,17 @@ - esac - AC_MSG_RESULT([$glib_native_beos]) - -+AC_MSG_CHECKING([for Haiku]) -+case $host in -+ *-*-haiku*) -+ glib_native_haiku="yes" -+ ;; -+ *) -+ glib_native_haiku="no" -+ ;; -+esac -+AC_MSG_RESULT([$glib_native_haiku]) -+ - dnl - - AC_MSG_CHECKING([for Win32]) -@@ -358,7 +369,7 @@ - AC_PATH_PROG(PERL_PATH, [$PERL]) - fi - if test "x$PERL_PATH" = x ; then -- PERL_PATH="/usr/bin/env perl" -+ PERL_PATH="/bin/env perl" - fi - AC_SUBST(PERL_PATH) - -@@ -3277,11 +3288,18 @@ - *-*-beos*) - glib_os="#define G_OS_BEOS" - ;; -+ *-*-haiku*) -+ glib_os="#define G_OS_HAIKU -+#define G_OS_UNIX" -+ ;; - *-*-cygwin*) - glib_os="#define G_OS_UNIX - #define G_PLATFORM_WIN32 - #define G_WITH_CYGWIN" - ;; -+ *-*-haiku*) -+ glib_os="#define G_OS_HAIKU" -+ ;; - *-*-mingw*) - glib_os="#define G_OS_WIN32 - #define G_PLATFORM_WIN32" -diff -urN glib-2.19.2/docs/reference/glib/glib-overrides.txt glib-2.19.2-haiku/docs/reference/glib/glib-overrides.txt ---- glib-2.19.2/docs/reference/glib/glib-overrides.txt 2008-12-18 07:13:28.000000000 -0800 -+++ glib-2.19.2-haiku/docs/reference/glib/glib-overrides.txt 2008-12-18 07:35:30.000000000 -0800 -@@ -215,6 +215,11 @@ - #define G_OS_BEOS - - -+ -+G_OS_HAIKU -+#define G_OS_HAIKU -+ -+ - # g_ascii_isxxx - - -diff -urN glib-2.19.2/docs/reference/glib/glib-sections.txt glib-2.19.2-haiku/docs/reference/glib/glib-sections.txt ---- glib-2.19.2/docs/reference/glib/glib-sections.txt 2008-12-18 07:13:28.000000000 -0800 -+++ glib-2.19.2-haiku/docs/reference/glib/glib-sections.txt 2008-12-18 07:36:44.000000000 -0800 -@@ -125,7 +125,9 @@ - - G_OS_WIN32 - G_OS_BEOS -+G_OS_HAIKU - G_OS_UNIX -+G_OS_HAIKU - - - G_DIR_SEPARATOR -diff -urN glib-2.19.2/docs/reference/glib/html/glib-Standard-Macros.html glib-2.19.2-haiku/docs/reference/glib/html/glib-Standard-Macros.html ---- glib-2.19.2/docs/reference/glib/html/glib-Standard-Macros.html 2008-12-18 07:13:28.000000000 -0800 -+++ glib-2.19.2-haiku/docs/reference/glib/html/glib-Standard-Macros.html 2008-12-18 07:35:30.000000000 -0800 -@@ -61,6 +61,7 @@ - - #define G_OS_WIN32 - #define G_OS_BEOS -+#define G_OS_HAIKU - #define G_OS_UNIX - - #define G_DIR_SEPARATOR -@@ -116,6 +117,15 @@ - BeOS-specific code in "#ifdef G_OS_BEOS". -

-
-+
-+

G_OS_HAIKU

-+
#define G_OS_HAIKU
-+
-+

-+This macro is defined only on Haiku. So you can bracket -+Haiku-specific code in "#ifdef G_OS_HAIKU". -+

-+
-
-
-

G_OS_UNIX

-diff -urN glib-2.19.2/docs/reference/glib/html/glib.devhelp glib-2.19.2-haiku/docs/reference/glib/html/glib.devhelp ---- glib-2.19.2/docs/reference/glib/html/glib.devhelp 2008-12-18 07:13:28.000000000 -0800 -+++ glib-2.19.2-haiku/docs/reference/glib/html/glib.devhelp 2008-12-18 07:35:30.000000000 -0800 -@@ -190,6 +190,7 @@ - - - -+ - - - -diff -urN glib-2.19.2/docs/reference/glib/html/glib.devhelp2 glib-2.19.2-haiku/docs/reference/glib/html/glib.devhelp2 ---- glib-2.19.2/docs/reference/glib/html/glib.devhelp2 2008-12-18 07:13:28.000000000 -0800 -+++ glib-2.19.2-haiku/docs/reference/glib/html/glib.devhelp2 2008-12-18 07:35:30.000000000 -0800 -@@ -190,6 +190,7 @@ - - - -+ - - - -diff -urN glib-2.19.2/docs/reference/glib/html/ix01.html glib-2.19.2-haiku/docs/reference/glib/html/ix01.html ---- glib-2.19.2/docs/reference/glib/html/ix01.html 2008-12-18 07:13:28.000000000 -0800 -+++ glib-2.19.2-haiku/docs/reference/glib/html/ix01.html 2008-12-18 07:35:30.000000000 -0800 -@@ -2115,6 +2115,8 @@ - -
G_OS_BEOS, G_OS_BEOS -
-+
G_OS_HAIKU, G_OS_HAIKU -+
-
G_OS_UNIX, G_OS_UNIX -
-
G_OS_WIN32, G_OS_WIN32 -diff -urN glib-2.19.2/docs/reference/glib/tmpl/macros.sgml glib-2.19.2-haiku/docs/reference/glib/tmpl/macros.sgml ---- glib-2.19.2/docs/reference/glib/tmpl/macros.sgml 2008-12-18 07:13:28.000000000 -0800 -+++ glib-2.19.2-haiku/docs/reference/glib/tmpl/macros.sgml 2008-12-18 07:36:44.000000000 -0800 -@@ -31,6 +31,19 @@ - BeOS-specific code in "#ifdef G_OS_BEOS". - - -+ -+ -+This macro is defined only on Haiku. So you can bracket -+Haiku-specific code in "#ifdef G_OS_HAIKU". -+ -+ -+ -+ -+ -+This macro is defined only on Haiku. So you can bracket -+Haiku-specific code in "#ifdef G_OS_HAIKU". -+ -+ - - - -diff -urN glib-2.19.2/docs/reference/glib/xml/api-index-full.xml glib-2.19.2-haiku/docs/reference/glib/xml/api-index-full.xml ---- glib-2.19.2/docs/reference/glib/xml/api-index-full.xml 2008-12-18 07:13:28.000000000 -0800 -+++ glib-2.19.2-haiku/docs/reference/glib/xml/api-index-full.xml 2008-12-18 07:35:30.000000000 -0800 -@@ -1024,6 +1024,7 @@ - g_option_group_set_translation_domain - G_OPTION_REMAINING - G_OS_BEOS -+G_OS_HAIKU - G_OS_UNIX - G_OS_WIN32 - -diff -urN glib-2.19.2/docs/reference/glib/xml/macros.xml glib-2.19.2-haiku/docs/reference/glib/xml/macros.xml ---- glib-2.19.2/docs/reference/glib/xml/macros.xml 2008-12-18 07:13:28.000000000 -0800 -+++ glib-2.19.2-haiku/docs/reference/glib/xml/macros.xml 2008-12-18 07:36:44.000000000 -0800 -@@ -19,6 +19,7 @@ - - #define G_OS_WIN32 - #define G_OS_BEOS -+#define G_OS_HAIKU - #define G_OS_UNIX - - #define G_DIR_SEPARATOR -@@ -81,6 +82,14 @@ - This macro is defined only on BeOS. So you can bracket - BeOS-specific code in "#ifdef G_OS_BEOS". - -+ -+G_OS_HAIKU -+G_OS_HAIKU#define G_OS_HAIKU -+ -+ -+This macro is defined only on Haiku. So you can bracket -+Haiku-specific code in "#ifdef G_OS_HAIKU". -+ - - G_OS_UNIX - G_OS_UNIX#define G_OS_UNIX -diff -urN glib-2.19.2/gio/gunixinputstream.c glib-2.19.2-haiku/gio/gunixinputstream.c ---- glib-2.19.2/gio/gunixinputstream.c 2008-12-18 07:13:27.000000000 -0800 -+++ glib-2.19.2-haiku/gio/gunixinputstream.c 2008-12-18 07:35:30.000000000 -0800 -@@ -170,6 +170,9 @@ - GCancellable *cancellable, - GError **error) - { -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+ return -1; -+#else - GUnixInputStream *unix_stream; - gssize res; - GPollFD poll_fds[2]; -@@ -220,6 +223,7 @@ - } - - return res; -+#endif - } - - static gboolean -@@ -325,6 +329,7 @@ - GAsyncReadyCallback callback, - gpointer user_data) - { -+#if !defined(G_OS_BEOS) &&!defined(G_OS_HAIKU) - GSource *source; - GUnixInputStream *unix_stream; - ReadAsyncData *data; -@@ -347,6 +352,7 @@ - g_source_attach (source, NULL); - - g_source_unref (source); -+#endif - } - - static gssize -diff -urN glib-2.19.2/gio/gunixmounts.c glib-2.19.2-haiku/gio/gunixmounts.c ---- glib-2.19.2/gio/gunixmounts.c 2008-12-18 07:13:26.000000000 -0800 -+++ glib-2.19.2-haiku/gio/gunixmounts.c 2008-12-18 07:36:44.000000000 -0800 -@@ -594,6 +594,16 @@ - - return g_list_reverse (return_list); - } -+ -+#elif defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+ -+static GList * -+_g_get_unix_mounts (void) -+{ -+ GList *return_list = NULL; -+ return return_list; -+} -+ - #else - #error No _g_get_unix_mounts() implementation for system - #endif -@@ -974,6 +984,16 @@ - - return g_list_reverse (return_list); - } -+ -+#elif defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+ -+static GList * -+_g_get_unix_mount_points (void) -+{ -+ GList *return_list = NULL; -+ return return_list; -+} -+ - #else - #error No g_get_mount_table() implementation for system - #endif -diff -urN glib-2.19.2/gio/gunixoutputstream.c glib-2.19.2-haiku/gio/gunixoutputstream.c ---- glib-2.19.2/gio/gunixoutputstream.c 2008-12-18 07:13:26.000000000 -0800 -+++ glib-2.19.2-haiku/gio/gunixoutputstream.c 2008-12-18 07:35:31.000000000 -0800 -@@ -158,6 +158,9 @@ - GCancellable *cancellable, - GError **error) - { -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+ return -1; -+#else - GUnixOutputStream *unix_stream; - gssize res; - GPollFD poll_fds[2]; -@@ -209,6 +212,7 @@ - } - - return res; -+#endif - } - - static gboolean -@@ -314,6 +318,7 @@ - GAsyncReadyCallback callback, - gpointer user_data) - { -+#if !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) - GSource *source; - GUnixOutputStream *unix_stream; - WriteAsyncData *data; -@@ -336,6 +341,7 @@ - g_source_attach (source, NULL); - - g_source_unref (source); -+#endif - } - - static gssize -diff -urN glib-2.19.2/glib/gbacktrace.c glib-2.19.2-haiku/glib/gbacktrace.c ---- glib-2.19.2/glib/gbacktrace.c 2008-12-18 07:13:31.000000000 -0800 -+++ glib-2.19.2-haiku/glib/gbacktrace.c 2008-12-18 07:35:31.000000000 -0800 -@@ -158,7 +158,7 @@ - void - g_on_error_stack_trace (const gchar *prg_name) - { --#if defined(G_OS_UNIX) || defined(G_OS_BEOS) -+#if defined(G_OS_UNIX) || defined(G_OS_BEOS) || defined(G_OS_HAIKU) - pid_t pid; - gchar buf[16]; - gchar *args[4] = { "gdb", NULL, NULL, NULL }; -@@ -193,7 +193,7 @@ - #endif - } - --#ifndef G_OS_WIN32 -+#if !defined(G_OS_WIN32) && !defined(G_OS_BEOS) - - static gboolean stack_trace_done = FALSE; - -diff -urN glib-2.19.2/glib/gmain.c glib-2.19.2-haiku/glib/gmain.c ---- glib-2.19.2/glib/gmain.c 2008-12-18 07:13:43.000000000 -0800 -+++ glib-2.19.2-haiku/glib/gmain.c 2008-12-18 07:35:31.000000000 -0800 -@@ -70,6 +70,12 @@ - #include - #endif /* G_OS_BEOS */ - -+#ifdef G_OS_HAIKU -+#include -+#include -+#include "fcntl.h" -+#endif /* G_OS_HAIKU */ -+ - #ifdef G_OS_UNIX - #include - #include -@@ -3701,6 +3707,7 @@ - static void - g_child_watch_source_init_multi_threaded (void) - { -+#if !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) - GError *error = NULL; - struct sigaction action; - -@@ -3720,6 +3727,7 @@ - sigemptyset (&action.sa_mask); - action.sa_flags = SA_RESTART | SA_NOCLDSTOP; - sigaction (SIGCHLD, &action, NULL); -+#endif - } - - static void -diff -urN glib-2.19.2/glib/gslice.c glib-2.19.2-haiku/glib/gslice.c ---- glib-2.19.2/glib/gslice.c 2008-12-18 07:13:55.000000000 -0800 -+++ glib-2.19.2-haiku/glib/gslice.c 2008-12-18 07:35:31.000000000 -0800 -@@ -302,6 +302,8 @@ - GetSystemInfo (&system_info); - sys_page_size = system_info.dwPageSize; - } -+#elif defined(G_OS_BEOS) -+ sys_page_size = 4096; - #else - sys_page_size = sysconf (_SC_PAGESIZE); /* = sysconf (_SC_PAGE_SIZE); = getpagesize(); */ - #endif -diff -urN glib-2.19.2/glib/gspawn.c glib-2.19.2-haiku/glib/gspawn.c ---- glib-2.19.2/glib/gspawn.c 2008-12-18 07:13:48.000000000 -0800 -+++ glib-2.19.2-haiku/glib/gspawn.c 2008-12-18 07:35:31.000000000 -0800 -@@ -238,6 +238,9 @@ - gint *exit_status, - GError **error) - { -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+ return FALSE; -+#else - gint outpipe = -1; - gint errpipe = -1; - GPid pid; -@@ -433,6 +436,7 @@ - - return TRUE; - } -+#endif - } - - /** -@@ -908,7 +912,7 @@ - gint fd; - gint res = 0; - --#ifdef HAVE_SYS_RESOURCE_H -+#if defined(HAVE_SYS_RESOURCE_H) && !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) - struct rlimit rl; - #endif - -@@ -951,7 +955,7 @@ - - #endif - --#ifdef HAVE_SYS_RESOURCE_H -+#if defined(HAVE_SYS_RESOURCE_H) && !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) - - if (getrlimit(RLIMIT_NOFILE, &rl) == 0 && rl.rlim_max != RLIM_INFINITY) - open_max = rl.rlim_max; -diff -urN glib-2.19.2/glib/gstdio.c glib-2.19.2-haiku/glib/gstdio.c ---- glib-2.19.2/glib/gstdio.c 2008-12-18 07:13:55.000000000 -0800 -+++ glib-2.19.2-haiku/glib/gstdio.c 2008-12-18 07:36:44.000000000 -0800 -@@ -47,7 +47,7 @@ - - #include "galias.h" - --#if !defined (G_OS_UNIX) && !defined (G_OS_WIN32) && !defined (G_OS_BEOS) -+#if !defined (G_OS_UNIX) && !defined (G_OS_WIN32) && !defined (G_OS_BEOS) && !defined(G_OS_HAIKU) - #error Please port this to your operating system - #endif - -diff -urN glib-2.19.2/glib/gstrfuncs.c glib-2.19.2-haiku/glib/gstrfuncs.c ---- glib-2.19.2/glib/gstrfuncs.c 2008-12-18 07:13:40.000000000 -0800 -+++ glib-2.19.2-haiku/glib/gstrfuncs.c 2008-12-18 07:35:31.000000000 -0800 -@@ -1328,7 +1328,7 @@ - #ifdef HAVE_STRSIGNAL - const char *msg_locale; - --#if defined(G_OS_BEOS) || defined(G_WITH_CYGWIN) -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) || defined(G_WITH_CYGWIN) - extern const char *strsignal(int); - #else - /* this is declared differently (const) in string.h on BeOS */ -diff -urN glib-2.19.2/glib/gtester.c glib-2.19.2-haiku/glib/gtester.c ---- glib-2.19.2/glib/gtester.c 2008-12-18 07:13:35.000000000 -0800 -+++ glib-2.19.2-haiku/glib/gtester.c 2008-12-18 07:35:31.000000000 -0800 -@@ -630,6 +630,7 @@ - * we must fiddle with sigaction() *before* glib is used, otherwise - * we could revoke signal hanmdler setups from glib initialization code. - */ -+#ifdef SA_RESTART - if (TRUE) - { - struct sigaction sa; -@@ -639,6 +640,7 @@ - sa.sa_flags = SA_RESTART; - sigaction (SIGCHLD, &sa, &osa); - } -+#endif - - g_set_prgname (argv[0]); - parse_args (&argc, &argv); -diff -urN glib-2.19.2/glib/gutils.c glib-2.19.2-haiku/glib/gutils.c ---- glib-2.19.2/glib/gutils.c 2008-12-18 07:13:36.000000000 -0800 -+++ glib-2.19.2-haiku/glib/gutils.c 2008-12-18 08:28:37.000000000 -0800 -@@ -478,7 +478,7 @@ - } - - path = g_getenv ("PATH"); --#if defined(G_OS_UNIX) || defined(G_OS_BEOS) -+#if defined(G_OS_UNIX) || defined(G_OS_BEOS) || defined(G_OS_HAIKU) - if (path == NULL) - { - /* There is no `PATH' in the environment. The default -@@ -2311,9 +2311,24 @@ - } - #endif /* G_OS_WIN32 */ - -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+static void -+load_user_special_dirs (void) -+{ -+ g_user_special_dirs[G_USER_DIRECTORY_DESKTOP] = g_strdup("$HOME/Desktop"); -+ g_user_special_dirs[G_USER_DIRECTORY_DOCUMENTS] = g_strdup("$HOME"); -+ g_user_special_dirs[G_USER_DIRECTORY_DOWNLOAD] = g_strdup("$HOME/Desktop"); -+ g_user_special_dirs[G_USER_DIRECTORY_MUSIC] = NULL; -+ g_user_special_dirs[G_USER_DIRECTORY_PICTURES] = NULL; -+ g_user_special_dirs[G_USER_DIRECTORY_PUBLIC_SHARE] = NULL; -+ g_user_special_dirs[G_USER_DIRECTORY_TEMPLATES] = NULL; -+ g_user_special_dirs[G_USER_DIRECTORY_VIDEOS] = NULL; -+} -+#endif /* G_OS_BEOS */ -+ - static void g_init_user_config_dir (void); - --#if defined(G_OS_UNIX) && !defined(HAVE_CARBON) -+#if defined(G_OS_UNIX) && !defined(HAVE_CARBON) && !defined(G_OS_HAIKU) - - /* adapted from xdg-user-dir-lookup.c - * diff --git a/dev-libs/glib/patches/glib-2.19.6-haiku.patch b/dev-libs/glib/patches/glib-2.19.6-haiku.patch deleted file mode 100644 index 4013823d7..000000000 --- a/dev-libs/glib/patches/glib-2.19.6-haiku.patch +++ /dev/null @@ -1,552 +0,0 @@ -diff -urN glib-2.19.6/configure.in glib-2.19.6-haiku/configure.in ---- glib-2.19.6/configure.in 2009-02-08 07:46:22.000000000 +0000 -+++ glib-2.19.6-haiku/configure.in 2009-02-08 07:48:49.000000000 +0000 -@@ -112,6 +112,17 @@ - esac - AC_MSG_RESULT([$glib_native_beos]) - -+AC_MSG_CHECKING([for Haiku]) -+case $host in -+ *-*-haiku*) -+ glib_native_haiku="yes" -+ ;; -+ *) -+ glib_native_haiku="no" -+ ;; -+esac -+AC_MSG_RESULT([$glib_native_haiku]) -+ - dnl - - AC_MSG_CHECKING([for Win32]) -@@ -3301,6 +3312,9 @@ - #define G_PLATFORM_WIN32 - #define G_WITH_CYGWIN" - ;; -+ *-*-haiku*) -+ glib_os="#define G_OS_HAIKU" -+ ;; - *-*-mingw*) - glib_os="#define G_OS_WIN32 - #define G_PLATFORM_WIN32" -diff -urN glib-2.19.6/docs/reference/glib/glib-overrides.txt glib-2.19.6-haiku/docs/reference/glib/glib-overrides.txt ---- glib-2.19.6/docs/reference/glib/glib-overrides.txt 2009-02-08 07:46:22.000000000 +0000 -+++ glib-2.19.6-haiku/docs/reference/glib/glib-overrides.txt 2009-02-08 07:48:49.000000000 +0000 -@@ -215,6 +215,11 @@ - #define G_OS_BEOS - - -+ -+G_OS_HAIKU -+#define G_OS_HAIKU -+ -+ - # g_ascii_isxxx - - -diff -urN glib-2.19.6/docs/reference/glib/glib-sections.txt glib-2.19.6-haiku/docs/reference/glib/glib-sections.txt ---- glib-2.19.6/docs/reference/glib/glib-sections.txt 2009-02-08 07:46:22.000000000 +0000 -+++ glib-2.19.6-haiku/docs/reference/glib/glib-sections.txt 2009-02-08 07:48:49.000000000 +0000 -@@ -126,6 +126,7 @@ - - G_OS_WIN32 - G_OS_BEOS -+G_OS_HAIKU - G_OS_UNIX - - -diff -urN glib-2.19.6/docs/reference/glib/html/glib-Standard-Macros.html glib-2.19.6-haiku/docs/reference/glib/html/glib-Standard-Macros.html ---- glib-2.19.6/docs/reference/glib/html/glib-Standard-Macros.html 2009-02-08 07:46:22.000000000 +0000 -+++ glib-2.19.6-haiku/docs/reference/glib/html/glib-Standard-Macros.html 2009-02-08 07:48:49.000000000 +0000 -@@ -61,6 +61,7 @@ - - #define G_OS_WIN32 - #define G_OS_BEOS -+#define G_OS_HAIKU - #define G_OS_UNIX - - #define G_DIR_SEPARATOR -@@ -116,6 +117,15 @@ - BeOS-specific code in "#ifdef G_OS_BEOS". -

-
-+
-+

G_OS_HAIKU

-+
#define G_OS_HAIKU
-+
-+

-+This macro is defined only on Haiku. So you can bracket -+Haiku-specific code in "#ifdef G_OS_HAIKU". -+

-+
-
-
-

G_OS_UNIX

-diff -urN glib-2.19.6/docs/reference/glib/html/glib.devhelp glib-2.19.6-haiku/docs/reference/glib/html/glib.devhelp ---- glib-2.19.6/docs/reference/glib/html/glib.devhelp 2009-02-08 07:46:22.000000000 +0000 -+++ glib-2.19.6-haiku/docs/reference/glib/html/glib.devhelp 2009-02-08 07:48:49.000000000 +0000 -@@ -191,6 +191,7 @@ - - - -+ - - - -diff -urN glib-2.19.6/docs/reference/glib/html/glib.devhelp2 glib-2.19.6-haiku/docs/reference/glib/html/glib.devhelp2 ---- glib-2.19.6/docs/reference/glib/html/glib.devhelp2 2009-02-08 07:46:22.000000000 +0000 -+++ glib-2.19.6-haiku/docs/reference/glib/html/glib.devhelp2 2009-02-08 07:48:49.000000000 +0000 -@@ -191,6 +191,7 @@ - - - -+ - - - -diff -urN glib-2.19.6/docs/reference/glib/html/ix01.html glib-2.19.6-haiku/docs/reference/glib/html/ix01.html ---- glib-2.19.6/docs/reference/glib/html/ix01.html 2009-02-08 07:46:22.000000000 +0000 -+++ glib-2.19.6-haiku/docs/reference/glib/html/ix01.html 2009-02-08 07:48:50.000000000 +0000 -@@ -2121,6 +2121,8 @@ - -
G_OS_BEOS, G_OS_BEOS -
-+
G_OS_HAIKU, G_OS_HAIKU -+
-
G_OS_UNIX, G_OS_UNIX -
-
G_OS_WIN32, G_OS_WIN32 -diff -urN glib-2.19.6/docs/reference/glib/tmpl/macros.sgml glib-2.19.6-haiku/docs/reference/glib/tmpl/macros.sgml ---- glib-2.19.6/docs/reference/glib/tmpl/macros.sgml 2009-02-08 07:46:22.000000000 +0000 -+++ glib-2.19.6-haiku/docs/reference/glib/tmpl/macros.sgml 2009-02-08 07:48:50.000000000 +0000 -@@ -33,6 +33,14 @@ - - - -+ -+ -+This macro is defined only on Haiku. So you can bracket -+Haiku-specific code in "#ifdef G_OS_HAIKU". -+ -+ -+ -+ - - - This macro is defined only on UNIX. So you can bracket -diff -urN glib-2.19.6/docs/reference/glib/xml/api-index-full.xml glib-2.19.6-haiku/docs/reference/glib/xml/api-index-full.xml ---- glib-2.19.6/docs/reference/glib/xml/api-index-full.xml 2009-02-08 07:46:23.000000000 +0000 -+++ glib-2.19.6-haiku/docs/reference/glib/xml/api-index-full.xml 2009-02-08 07:48:50.000000000 +0000 -@@ -1027,6 +1027,7 @@ - g_option_group_set_translation_domain - G_OPTION_REMAINING - G_OS_BEOS -+G_OS_HAIKU - G_OS_UNIX - G_OS_WIN32 - -diff -urN glib-2.19.6/docs/reference/glib/xml/macros.xml glib-2.19.6-haiku/docs/reference/glib/xml/macros.xml ---- glib-2.19.6/docs/reference/glib/xml/macros.xml 2009-02-08 07:46:23.000000000 +0000 -+++ glib-2.19.6-haiku/docs/reference/glib/xml/macros.xml 2009-02-08 07:48:50.000000000 +0000 -@@ -19,6 +19,7 @@ - - #define G_OS_WIN32 - #define G_OS_BEOS -+#define G_OS_HAIKU - #define G_OS_UNIX - - #define G_DIR_SEPARATOR -@@ -81,6 +82,14 @@ - This macro is defined only on BeOS. So you can bracket - BeOS-specific code in "#ifdef G_OS_BEOS". - -+ -+G_OS_HAIKU -+G_OS_HAIKU#define G_OS_HAIKU -+ -+ -+This macro is defined only on Haiku. So you can bracket -+Haiku-specific code in "#ifdef G_OS_HAIKU". -+ - - G_OS_UNIX - G_OS_UNIX#define G_OS_UNIX -diff -urN glib-2.19.6/gio/Makefile.am glib-2.19.6-haiku/gio/Makefile.am ---- glib-2.19.6/gio/Makefile.am 2009-02-08 07:46:25.000000000 +0000 -+++ glib-2.19.6-haiku/gio/Makefile.am 2009-02-08 07:48:50.000000000 +0000 -@@ -162,7 +162,7 @@ - - endif - --SUBDIRS += tests -+#SUBDIRS += tests - - libgio_2_0_la_SOURCES = \ - gappinfo.c \ -diff -urN glib-2.19.6/gio/gunixinputstream.c glib-2.19.6-haiku/gio/gunixinputstream.c ---- glib-2.19.6/gio/gunixinputstream.c 2009-02-08 07:46:42.000000000 +0000 -+++ glib-2.19.6-haiku/gio/gunixinputstream.c 2009-02-08 07:48:50.000000000 +0000 -@@ -333,6 +333,9 @@ - GCancellable *cancellable, - GError **error) - { -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+ return -1; -+#else - GUnixInputStream *unix_stream; - gssize res; - GPollFD poll_fds[2]; -@@ -383,6 +386,7 @@ - } - - return res; -+#endif - } - - static gboolean -@@ -488,6 +492,7 @@ - GAsyncReadyCallback callback, - gpointer user_data) - { -+#if !defined(G_OS_BEOS) &&!defined(G_OS_HAIKU) - GSource *source; - GUnixInputStream *unix_stream; - ReadAsyncData *data; -@@ -510,6 +515,7 @@ - g_source_attach (source, NULL); - - g_source_unref (source); -+#endif - } - - static gssize -diff -urN glib-2.19.6/gio/gunixmounts.c glib-2.19.6-haiku/gio/gunixmounts.c ---- glib-2.19.6/gio/gunixmounts.c 2009-02-08 07:46:42.000000000 +0000 -+++ glib-2.19.6-haiku/gio/gunixmounts.c 2009-02-08 07:48:50.000000000 +0000 -@@ -597,6 +597,16 @@ - - return g_list_reverse (return_list); - } -+ -+#elif defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+ -+static GList * -+_g_get_unix_mounts (void) -+{ -+ GList *return_list = NULL; -+ return return_list; -+} -+ - #else - #error No _g_get_unix_mounts() implementation for system - #endif -@@ -975,6 +985,16 @@ - - return g_list_reverse (return_list); - } -+ -+#elif defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+ -+static GList * -+_g_get_unix_mount_points (void) -+{ -+ GList *return_list = NULL; -+ return return_list; -+} -+ - #else - #error No g_get_mount_table() implementation for system - #endif -diff -urN glib-2.19.6/gio/gunixoutputstream.c glib-2.19.6-haiku/gio/gunixoutputstream.c ---- glib-2.19.6/gio/gunixoutputstream.c 2009-02-08 07:46:25.000000000 +0000 -+++ glib-2.19.6-haiku/gio/gunixoutputstream.c 2009-02-08 07:48:50.000000000 +0000 -@@ -319,6 +319,9 @@ - GCancellable *cancellable, - GError **error) - { -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+ return -1; -+#else - GUnixOutputStream *unix_stream; - gssize res; - GPollFD poll_fds[2]; -@@ -370,6 +373,7 @@ - } - - return res; -+#endif - } - - static gboolean -@@ -475,6 +479,7 @@ - GAsyncReadyCallback callback, - gpointer user_data) - { -+#if !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) - GSource *source; - GUnixOutputStream *unix_stream; - WriteAsyncData *data; -@@ -497,6 +502,7 @@ - g_source_attach (source, NULL); - - g_source_unref (source); -+#endif - } - - static gssize -diff -urN glib-2.19.6/gio/makegioalias.pl glib-2.19.6-haiku/gio/makegioalias.pl ---- glib-2.19.6/gio/makegioalias.pl 2009-02-08 07:46:42.000000000 +0000 -+++ glib-2.19.6-haiku/gio/makegioalias.pl 2009-02-08 07:48:50.000000000 +0000 -@@ -1,4 +1,4 @@ --#!/usr/bin/perl -w -+#!/boot/home/config/bin/perl -w - - my $do_def = 0; - -diff -urN glib-2.19.6/gio/xdgmime/xdgmimealias.c glib-2.19.6-haiku/gio/xdgmime/xdgmimealias.c ---- glib-2.19.6/gio/xdgmime/xdgmimealias.c 2009-02-08 07:46:42.000000000 +0000 -+++ glib-2.19.6-haiku/gio/xdgmime/xdgmimealias.c 2009-02-08 07:48:50.000000000 +0000 -@@ -35,7 +35,7 @@ - #include - #include - #include --#include -+//#include - - #ifndef FALSE - #define FALSE (0) -diff -urN glib-2.19.6/gio/xdgmime/xdgmimecache.c glib-2.19.6-haiku/gio/xdgmime/xdgmimecache.c ---- glib-2.19.6/gio/xdgmime/xdgmimecache.c 2009-02-08 07:46:42.000000000 +0000 -+++ glib-2.19.6-haiku/gio/xdgmime/xdgmimecache.c 2009-02-08 07:48:50.000000000 +0000 -@@ -35,7 +35,7 @@ - - #include - #include --#include -+//#include - #include - - #include /* for ntohl/ntohs */ -diff -urN glib-2.19.6/gio/xdgmime/xdgmimeparent.c glib-2.19.6-haiku/gio/xdgmime/xdgmimeparent.c ---- glib-2.19.6/gio/xdgmime/xdgmimeparent.c 2009-02-08 07:46:42.000000000 +0000 -+++ glib-2.19.6-haiku/gio/xdgmime/xdgmimeparent.c 2009-02-08 07:48:50.000000000 +0000 -@@ -35,7 +35,7 @@ - #include - #include - #include --#include -+//#include - - #ifndef FALSE - #define FALSE (0) -diff -urN glib-2.19.6/glib/Makefile.am glib-2.19.6-haiku/glib/Makefile.am ---- glib-2.19.6/glib/Makefile.am 2009-02-08 07:46:24.000000000 +0000 -+++ glib-2.19.6-haiku/glib/Makefile.am 2009-02-08 07:48:50.000000000 +0000 -@@ -19,7 +19,7 @@ - gregex_h = - endif - --SUBDIRS = libcharset $(PRINTF_SUBDIR) $(MAYBE_PCRE) update-pcre . tests -+SUBDIRS = libcharset $(PRINTF_SUBDIR) $(MAYBE_PCRE) update-pcre . - - DIST_SUBDIRS = libcharset gnulib pcre update-pcre tests - -diff -urN glib-2.19.6/glib/gbacktrace.c glib-2.19.6-haiku/glib/gbacktrace.c ---- glib-2.19.6/glib/gbacktrace.c 2009-02-08 07:46:24.000000000 +0000 -+++ glib-2.19.6-haiku/glib/gbacktrace.c 2009-02-08 07:48:50.000000000 +0000 -@@ -158,7 +158,7 @@ - void - g_on_error_stack_trace (const gchar *prg_name) - { --#if defined(G_OS_UNIX) || defined(G_OS_BEOS) -+#if defined(G_OS_UNIX) || defined(G_OS_BEOS) || defined(G_OS_HAIKU) - pid_t pid; - gchar buf[16]; - gchar *args[4] = { "gdb", NULL, NULL, NULL }; -@@ -193,7 +193,7 @@ - #endif - } - --#ifndef G_OS_WIN32 -+#if !defined(G_OS_WIN32) && !defined(G_OS_BEOS) - - static gboolean stack_trace_done = FALSE; - -diff -urN glib-2.19.6/glib/gmain.c glib-2.19.6-haiku/glib/gmain.c ---- glib-2.19.6/glib/gmain.c 2009-02-08 07:46:24.000000000 +0000 -+++ glib-2.19.6-haiku/glib/gmain.c 2009-02-08 07:48:51.000000000 +0000 -@@ -70,6 +70,12 @@ - #include - #endif /* G_OS_BEOS */ - -+#ifdef G_OS_HAIKU -+#include -+#include -+#include "fcntl.h" -+#endif /* G_OS_HAIKU */ -+ - #ifdef G_OS_UNIX - #include - #include -@@ -3699,6 +3705,7 @@ - static void - g_child_watch_source_init_multi_threaded (void) - { -+#if !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) - GError *error = NULL; - struct sigaction action; - -@@ -3718,6 +3725,7 @@ - sigemptyset (&action.sa_mask); - action.sa_flags = SA_RESTART | SA_NOCLDSTOP; - sigaction (SIGCHLD, &action, NULL); -+#endif - } - - static void -diff -urN glib-2.19.6/glib/gslice.c glib-2.19.6-haiku/glib/gslice.c ---- glib-2.19.6/glib/gslice.c 2009-02-08 07:46:24.000000000 +0000 -+++ glib-2.19.6-haiku/glib/gslice.c 2009-02-08 07:48:51.000000000 +0000 -@@ -302,6 +302,8 @@ - GetSystemInfo (&system_info); - sys_page_size = system_info.dwPageSize; - } -+#elif defined(G_OS_BEOS) -+ sys_page_size = 4096; - #else - sys_page_size = sysconf (_SC_PAGESIZE); /* = sysconf (_SC_PAGE_SIZE); = getpagesize(); */ - #endif -diff -urN glib-2.19.6/glib/gspawn.c glib-2.19.6-haiku/glib/gspawn.c ---- glib-2.19.6/glib/gspawn.c 2009-02-08 07:46:24.000000000 +0000 -+++ glib-2.19.6-haiku/glib/gspawn.c 2009-02-08 07:48:51.000000000 +0000 -@@ -238,6 +238,9 @@ - gint *exit_status, - GError **error) - { -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+ return FALSE; -+#else - gint outpipe = -1; - gint errpipe = -1; - GPid pid; -@@ -433,6 +436,7 @@ - - return TRUE; - } -+#endif - } - - /** -@@ -909,7 +913,7 @@ - gint fd; - gint res = 0; - --#ifdef HAVE_SYS_RESOURCE_H -+#if defined(HAVE_SYS_RESOURCE_H) && !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) - struct rlimit rl; - #endif - -@@ -952,7 +956,7 @@ - - #endif - --#ifdef HAVE_SYS_RESOURCE_H -+#if defined(HAVE_SYS_RESOURCE_H) && !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) - - if (getrlimit(RLIMIT_NOFILE, &rl) == 0 && rl.rlim_max != RLIM_INFINITY) - open_max = rl.rlim_max; -diff -urN glib-2.19.6/glib/gstdio.c glib-2.19.6-haiku/glib/gstdio.c ---- glib-2.19.6/glib/gstdio.c 2009-02-08 07:46:24.000000000 +0000 -+++ glib-2.19.6-haiku/glib/gstdio.c 2009-02-08 07:48:51.000000000 +0000 -@@ -47,7 +47,7 @@ - - #include "galias.h" - --#if !defined (G_OS_UNIX) && !defined (G_OS_WIN32) && !defined (G_OS_BEOS) -+#if !defined (G_OS_UNIX) && !defined (G_OS_WIN32) && !defined (G_OS_BEOS) && !defined(G_OS_HAIKU) - #error Please port this to your operating system - #endif - -diff -urN glib-2.19.6/glib/gstrfuncs.c glib-2.19.6-haiku/glib/gstrfuncs.c ---- glib-2.19.6/glib/gstrfuncs.c 2009-02-08 07:46:23.000000000 +0000 -+++ glib-2.19.6-haiku/glib/gstrfuncs.c 2009-02-08 07:48:51.000000000 +0000 -@@ -1410,7 +1410,7 @@ - #ifdef HAVE_STRSIGNAL - const char *msg_locale; - --#if defined(G_OS_BEOS) || defined(G_WITH_CYGWIN) -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) || defined(G_WITH_CYGWIN) - extern const char *strsignal(int); - #else - /* this is declared differently (const) in string.h on BeOS */ -diff -urN glib-2.19.6/glib/gtester.c glib-2.19.6-haiku/glib/gtester.c ---- glib-2.19.6/glib/gtester.c 2009-02-08 07:46:24.000000000 +0000 -+++ glib-2.19.6-haiku/glib/gtester.c 2009-02-08 07:48:51.000000000 +0000 -@@ -630,6 +630,7 @@ - * we must fiddle with sigaction() *before* glib is used, otherwise - * we could revoke signal hanmdler setups from glib initialization code. - */ -+#ifdef SA_RESTART - if (TRUE) - { - struct sigaction sa; -@@ -639,6 +640,7 @@ - sa.sa_flags = SA_RESTART; - sigaction (SIGCHLD, &sa, &osa); - } -+#endif - - g_set_prgname (argv[0]); - parse_args (&argc, &argv); -diff -urN glib-2.19.6/glib/gutils.c glib-2.19.6-haiku/glib/gutils.c ---- glib-2.19.6/glib/gutils.c 2009-02-08 07:46:24.000000000 +0000 -+++ glib-2.19.6-haiku/glib/gutils.c 2009-02-08 07:48:51.000000000 +0000 -@@ -478,7 +478,7 @@ - } - - path = g_getenv ("PATH"); --#if defined(G_OS_UNIX) || defined(G_OS_BEOS) -+#if defined(G_OS_UNIX) || defined(G_OS_BEOS) || defined(G_OS_HAIKU) - if (path == NULL) - { - /* There is no `PATH' in the environment. The default -@@ -2311,6 +2311,21 @@ - } - #endif /* G_OS_WIN32 */ - -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+static void -+load_user_special_dirs (void) -+{ -+ g_user_special_dirs[G_USER_DIRECTORY_DESKTOP] = g_strdup("$HOME/Desktop"); -+ g_user_special_dirs[G_USER_DIRECTORY_DOCUMENTS] = g_strdup("$HOME"); -+ g_user_special_dirs[G_USER_DIRECTORY_DOWNLOAD] = g_strdup("$HOME/Desktop"); -+ g_user_special_dirs[G_USER_DIRECTORY_MUSIC] = NULL; -+ g_user_special_dirs[G_USER_DIRECTORY_PICTURES] = NULL; -+ g_user_special_dirs[G_USER_DIRECTORY_PUBLIC_SHARE] = NULL; -+ g_user_special_dirs[G_USER_DIRECTORY_TEMPLATES] = NULL; -+ g_user_special_dirs[G_USER_DIRECTORY_VIDEOS] = NULL; -+} -+#endif /* G_OS_BEOS */ -+ - static void g_init_user_config_dir (void); - - #if defined(G_OS_UNIX) && !defined(HAVE_CARBON) -diff -urN glib-2.19.6/glib/makegalias.pl glib-2.19.6-haiku/glib/makegalias.pl ---- glib-2.19.6/glib/makegalias.pl 2009-02-08 07:46:24.000000000 +0000 -+++ glib-2.19.6-haiku/glib/makegalias.pl 2009-02-08 07:48:51.000000000 +0000 -@@ -1,4 +1,4 @@ --#!/usr/bin/perl -w -+#!/boot/home/config/bin/perl -w - - my $do_def = 0; - -diff -urN glib-2.19.6/gobject/makegobjectalias.pl glib-2.19.6-haiku/gobject/makegobjectalias.pl ---- glib-2.19.6/gobject/makegobjectalias.pl 2009-02-08 07:46:24.000000000 +0000 -+++ glib-2.19.6-haiku/gobject/makegobjectalias.pl 2009-02-08 07:48:51.000000000 +0000 -@@ -1,4 +1,4 @@ --#!/usr/bin/perl -w -+#!/boot/home/config/bin/perl -w - - my $do_def = 0; - diff --git a/dev-libs/glib/patches/glib-2.22.2.patch b/dev-libs/glib/patches/glib-2.22.2.patch deleted file mode 100644 index bb3c2d0de..000000000 --- a/dev-libs/glib/patches/glib-2.22.2.patch +++ /dev/null @@ -1,578 +0,0 @@ -diff -urN glib-2.22.2/configure.in glib-2.22.2-haiku/configure.in ---- glib-2.22.2/configure.in 2009-10-07 06:29:47.000000000 -0700 -+++ glib-2.22.2-haiku/configure.in 2009-11-20 08:22:30.000000000 -0800 -@@ -116,6 +116,17 @@ - esac - AC_MSG_RESULT([$glib_native_beos]) - -+AC_MSG_CHECKING([for Haiku]) -+case $host in -+ *-*-haiku*) -+ glib_native_haiku="yes" -+ ;; -+ *) -+ glib_native_haiku="no" -+ ;; -+esac -+AC_MSG_RESULT([$glib_native_haiku]) -+ - dnl - - AC_MSG_CHECKING([for Win32]) -@@ -998,6 +1009,8 @@ - AC_CHECK_HEADERS([netdb.h winsock2.h mswsock.h]) - - # For gio/libasyncns -+ -+if test $glib_native_haiku = no; then - if test $glib_native_win32 = no; then - AC_CHECK_FUNCS(strndup setresuid setreuid) - AC_CHECK_HEADERS(sys/prctl.h arpa/nameser_compat.h) -@@ -1019,6 +1032,7 @@ - ] - ) - AC_SUBST(LIBASYNCNS_LIBADD) -+fi else LIBS="-lnetwork $LIBS" - fi - - case $host in -@@ -2682,8 +2696,6 @@ - dnl *** Checks for gtk-doc *** - dnl ************************** - --GTK_DOC_CHECK([1.11]) -- - AC_ARG_ENABLE(man, - [AC_HELP_STRING([--enable-man], - [regenerate man pages from Docbook [default=no]])],enable_man=yes, -@@ -3410,6 +3422,9 @@ - #define G_PLATFORM_WIN32 - #define G_WITH_CYGWIN" - ;; -+ *-*-haiku*) -+ glib_os="#define G_OS_HAIKU" -+ ;; - *-*-mingw*) - glib_os="#define G_OS_WIN32 - #define G_PLATFORM_WIN32" -diff -urN glib-2.22.2/docs/reference/glib/glib-overrides.txt glib-2.22.2-haiku/docs/reference/glib/glib-overrides.txt ---- glib-2.22.2/docs/reference/glib/glib-overrides.txt 2009-03-31 16:04:20.000000000 -0700 -+++ glib-2.22.2-haiku/docs/reference/glib/glib-overrides.txt 2009-11-20 08:30:36.000000000 -0800 -@@ -215,6 +215,11 @@ - #define G_OS_BEOS - - -+ -+G_OS_HAIKU -+#define G_OS_HAIKU -+ -+ - # g_ascii_isxxx - - -diff -urN glib-2.22.2/docs/reference/glib/glib-sections.txt glib-2.22.2-haiku/docs/reference/glib/glib-sections.txt ---- glib-2.22.2/docs/reference/glib/glib-sections.txt 2009-10-07 07:08:11.000000000 -0700 -+++ glib-2.22.2-haiku/docs/reference/glib/glib-sections.txt 2009-11-20 08:30:43.000000000 -0800 -@@ -130,6 +130,7 @@ - - G_OS_WIN32 - G_OS_BEOS -+G_OS_HAIKU - G_OS_UNIX - - -diff -urN glib-2.22.2/docs/reference/glib/html/glib-Standard-Macros.html glib-2.22.2-haiku/docs/reference/glib/html/glib-Standard-Macros.html ---- glib-2.22.2/docs/reference/glib/html/glib-Standard-Macros.html 2009-10-07 07:08:12.000000000 -0700 -+++ glib-2.22.2-haiku/docs/reference/glib/html/glib-Standard-Macros.html 2009-11-20 08:30:50.000000000 -0800 -@@ -62,6 +62,7 @@ - - #define G_OS_WIN32 - #define G_OS_BEOS -+#define G_OS_HAIKU - #define G_OS_UNIX - - #define G_DIR_SEPARATOR -@@ -117,6 +118,15 @@ - BeOS-specific code in "#ifdef G_OS_BEOS". -

-
-+
-+

G_OS_HAIKU

-+
#define G_OS_HAIKU
-+
-+

-+This macro is defined only on Haiku. So you can bracket -+Haiku-specific code in "#ifdef G_OS_HAIKU". -+

-+
-
-
-

G_OS_UNIX

-diff -urN glib-2.22.2/docs/reference/glib/html/glib.devhelp glib-2.22.2-haiku/docs/reference/glib/html/glib.devhelp ---- glib-2.22.2/docs/reference/glib/html/glib.devhelp 2009-10-07 07:08:11.000000000 -0700 -+++ glib-2.22.2-haiku/docs/reference/glib/html/glib.devhelp 2009-11-20 08:30:55.000000000 -0800 -@@ -196,6 +196,7 @@ - - - -+ - - - -diff -urN glib-2.22.2/docs/reference/glib/html/glib.devhelp2 glib-2.22.2-haiku/docs/reference/glib/html/glib.devhelp2 ---- glib-2.22.2/docs/reference/glib/html/glib.devhelp2 2009-10-07 07:08:11.000000000 -0700 -+++ glib-2.22.2-haiku/docs/reference/glib/html/glib.devhelp2 2009-11-20 08:31:04.000000000 -0800 -@@ -196,6 +196,7 @@ - - - -+ - - - -diff -urN glib-2.22.2/docs/reference/glib/html/ix01.html glib-2.22.2-haiku/docs/reference/glib/html/ix01.html ---- glib-2.22.2/docs/reference/glib/html/ix01.html 2009-10-07 07:08:12.000000000 -0700 -+++ glib-2.22.2-haiku/docs/reference/glib/html/ix01.html 2009-11-20 08:31:11.000000000 -0800 -@@ -2174,6 +2174,8 @@ - -
G_OS_BEOS, G_OS_BEOS -
-+
G_OS_HAIKU, G_OS_HAIKU -+
-
G_OS_UNIX, G_OS_UNIX -
-
G_OS_WIN32, G_OS_WIN32 -diff -urN glib-2.22.2/docs/reference/glib/tmpl/macros.sgml glib-2.22.2-haiku/docs/reference/glib/tmpl/macros.sgml ---- glib-2.22.2/docs/reference/glib/tmpl/macros.sgml 2009-10-07 07:08:11.000000000 -0700 -+++ glib-2.22.2-haiku/docs/reference/glib/tmpl/macros.sgml 2009-11-20 08:31:16.000000000 -0800 -@@ -33,6 +33,14 @@ - - - -+ -+ -+This macro is defined only on Haiku. So you can bracket -+Haiku-specific code in "#ifdef G_OS_HAIKU". -+ -+ -+ -+ - - - This macro is defined only on UNIX. So you can bracket -diff -urN glib-2.22.2/docs/reference/glib/xml/api-index-full.xml glib-2.22.2-haiku/docs/reference/glib/xml/api-index-full.xml ---- glib-2.22.2/docs/reference/glib/xml/api-index-full.xml 2009-10-07 07:08:11.000000000 -0700 -+++ glib-2.22.2-haiku/docs/reference/glib/xml/api-index-full.xml 2009-11-20 08:31:23.000000000 -0800 -@@ -1053,6 +1053,7 @@ - g_option_group_set_translation_domain - G_OPTION_REMAINING - G_OS_BEOS -+G_OS_HAIKU - G_OS_UNIX - G_OS_WIN32 - -diff -urN glib-2.22.2/docs/reference/glib/xml/macros.xml glib-2.22.2-haiku/docs/reference/glib/xml/macros.xml ---- glib-2.22.2/docs/reference/glib/xml/macros.xml 2009-10-07 07:08:11.000000000 -0700 -+++ glib-2.22.2-haiku/docs/reference/glib/xml/macros.xml 2009-11-20 08:31:29.000000000 -0800 -@@ -19,6 +19,7 @@ - - #define G_OS_WIN32 - #define G_OS_BEOS -+#define G_OS_HAIKU - #define G_OS_UNIX - - #define G_DIR_SEPARATOR -@@ -81,6 +82,14 @@ - This macro is defined only on BeOS. So you can bracket - BeOS-specific code in "#ifdef G_OS_BEOS". - -+ -+G_OS_HAIKU -+G_OS_HAIKU#define G_OS_HAIKU -+ -+ -+This macro is defined only on Haiku. So you can bracket -+Haiku-specific code in "#ifdef G_OS_HAIKU". -+ - - G_OS_UNIX - G_OS_UNIX#define G_OS_UNIX -diff -urN glib-2.22.2/gio/Makefile.am glib-2.22.2-haiku/gio/Makefile.am ---- glib-2.22.2/gio/Makefile.am 2009-09-29 20:08:03.000000000 -0700 -+++ glib-2.22.2-haiku/gio/Makefile.am 2009-11-20 08:31:42.000000000 -0800 -@@ -174,7 +174,7 @@ - - endif - --SUBDIRS += tests -+#SUBDIRS += tests - - libgio_2_0_la_SOURCES = \ - gappinfo.c \ -diff -urN glib-2.22.2/gio/gunixinputstream.c glib-2.22.2-haiku/gio/gunixinputstream.c ---- glib-2.22.2/gio/gunixinputstream.c 2009-09-18 16:20:05.000000000 -0700 -+++ glib-2.22.2-haiku/gio/gunixinputstream.c 2009-11-20 08:31:46.000000000 -0800 -@@ -329,6 +329,9 @@ - GCancellable *cancellable, - GError **error) - { -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+ return -1; -+#else - GUnixInputStream *unix_stream; - gssize res; - GPollFD poll_fds[2]; -@@ -379,6 +382,7 @@ - } - - return res; -+#endif - } - - static gboolean -@@ -484,6 +488,7 @@ - GAsyncReadyCallback callback, - gpointer user_data) - { -+#if !defined(G_OS_BEOS) &&!defined(G_OS_HAIKU) - GSource *source; - GUnixInputStream *unix_stream; - ReadAsyncData *data; -@@ -506,6 +511,7 @@ - g_source_attach (source, g_main_context_get_thread_default ()); - - g_source_unref (source); -+#endif - } - - static gssize -diff -urN glib-2.22.2/gio/gunixmounts.c glib-2.22.2-haiku/gio/gunixmounts.c ---- glib-2.22.2/gio/gunixmounts.c 2009-03-31 16:04:20.000000000 -0700 -+++ glib-2.22.2-haiku/gio/gunixmounts.c 2009-11-20 08:31:51.000000000 -0800 -@@ -656,6 +656,16 @@ - - return return_list; - } -+ -+#elif defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+ -+static GList * -+_g_get_unix_mounts (void) -+{ -+ GList *return_list = NULL; -+ return return_list; -+} -+ - #else - #error No _g_get_unix_mounts() implementation for system - #endif -@@ -1040,6 +1050,16 @@ - { - return _g_get_unix_mounts (); - } -+ -+#elif defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+ -+static GList * -+_g_get_unix_mount_points (void) -+{ -+ GList *return_list = NULL; -+ return return_list; -+} -+ - #else - #error No g_get_mount_table() implementation for system - #endif -diff -urN glib-2.22.2/gio/gunixoutputstream.c glib-2.22.2-haiku/gio/gunixoutputstream.c ---- glib-2.22.2/gio/gunixoutputstream.c 2009-09-18 16:20:05.000000000 -0700 -+++ glib-2.22.2-haiku/gio/gunixoutputstream.c 2009-11-20 08:31:56.000000000 -0800 -@@ -315,6 +315,9 @@ - GCancellable *cancellable, - GError **error) - { -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+ return -1; -+#else - GUnixOutputStream *unix_stream; - gssize res; - GPollFD poll_fds[2]; -@@ -366,6 +369,7 @@ - } - - return res; -+#endif - } - - static gboolean -@@ -471,6 +475,7 @@ - GAsyncReadyCallback callback, - gpointer user_data) - { -+#if !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) - GSource *source; - GUnixOutputStream *unix_stream; - WriteAsyncData *data; -@@ -493,6 +498,7 @@ - g_source_attach (source, g_main_context_get_thread_default ()); - - g_source_unref (source); -+#endif - } - - static gssize -diff -urN glib-2.22.2/gio/makegioalias.pl glib-2.22.2-haiku/gio/makegioalias.pl ---- glib-2.22.2/gio/makegioalias.pl 2009-03-31 16:04:20.000000000 -0700 -+++ glib-2.22.2-haiku/gio/makegioalias.pl 2009-11-20 08:32:01.000000000 -0800 -@@ -1,4 +1,4 @@ --#!/usr/bin/perl -w -+#!/boot/home/config/bin/perl -w - - my $do_def = 0; - -diff -urN glib-2.22.2/gio/xdgmime/xdgmimealias.c glib-2.22.2-haiku/gio/xdgmime/xdgmimealias.c ---- glib-2.22.2/gio/xdgmime/xdgmimealias.c 2009-03-31 16:04:20.000000000 -0700 -+++ glib-2.22.2-haiku/gio/xdgmime/xdgmimealias.c 2009-11-20 08:32:06.000000000 -0800 -@@ -35,7 +35,7 @@ - #include - #include - #include --#include -+//#include - - #ifndef FALSE - #define FALSE (0) -diff -urN glib-2.22.2/gio/xdgmime/xdgmimecache.c glib-2.22.2-haiku/gio/xdgmime/xdgmimecache.c ---- glib-2.22.2/gio/xdgmime/xdgmimecache.c 2009-10-06 13:07:59.000000000 -0700 -+++ glib-2.22.2-haiku/gio/xdgmime/xdgmimecache.c 2009-11-20 08:32:10.000000000 -0800 -@@ -34,7 +34,7 @@ - - #include - #include --#include -+//#include - #include - - #include /* for ntohl/ntohs */ -diff -urN glib-2.22.2/gio/xdgmime/xdgmimeparent.c glib-2.22.2-haiku/gio/xdgmime/xdgmimeparent.c ---- glib-2.22.2/gio/xdgmime/xdgmimeparent.c 2009-03-31 16:04:20.000000000 -0700 -+++ glib-2.22.2-haiku/gio/xdgmime/xdgmimeparent.c 2009-11-20 08:32:15.000000000 -0800 -@@ -35,7 +35,7 @@ - #include - #include - #include --#include -+//#include - - #ifndef FALSE - #define FALSE (0) -diff -urN glib-2.22.2/glib/Makefile.am glib-2.22.2-haiku/glib/Makefile.am ---- glib-2.22.2/glib/Makefile.am 2009-09-29 20:08:03.000000000 -0700 -+++ glib-2.22.2-haiku/glib/Makefile.am 2009-11-20 08:32:21.000000000 -0800 -@@ -19,7 +19,7 @@ - gregex_h = - endif - --SUBDIRS = libcharset $(PRINTF_SUBDIR) $(MAYBE_PCRE) update-pcre . tests -+SUBDIRS = libcharset $(PRINTF_SUBDIR) $(MAYBE_PCRE) update-pcre . - - DIST_SUBDIRS = libcharset gnulib pcre update-pcre tests - -diff -urN glib-2.22.2/glib/gbacktrace.c glib-2.22.2-haiku/glib/gbacktrace.c ---- glib-2.22.2/glib/gbacktrace.c 2009-03-31 16:04:20.000000000 -0700 -+++ glib-2.22.2-haiku/glib/gbacktrace.c 2009-11-20 08:32:30.000000000 -0800 -@@ -158,7 +158,7 @@ - void - g_on_error_stack_trace (const gchar *prg_name) - { --#if defined(G_OS_UNIX) || defined(G_OS_BEOS) -+#if defined(G_OS_UNIX) || defined(G_OS_BEOS) || defined(G_OS_HAIKU) - pid_t pid; - gchar buf[16]; - gchar *args[4] = { "gdb", NULL, NULL, NULL }; -@@ -193,7 +193,7 @@ - #endif - } - --#ifndef G_OS_WIN32 -+#if !defined(G_OS_WIN32) && !defined(G_OS_BEOS) - - static gboolean stack_trace_done = FALSE; - -diff -urN glib-2.22.2/glib/gmain.c glib-2.22.2-haiku/glib/gmain.c ---- glib-2.22.2/glib/gmain.c 2009-08-28 19:52:23.000000000 -0700 -+++ glib-2.22.2-haiku/glib/gmain.c 2009-11-20 08:32:34.000000000 -0800 -@@ -72,6 +72,12 @@ - #include - #endif /* G_OS_BEOS */ - -+#ifdef G_OS_HAIKU -+#include -+#include -+#include "fcntl.h" -+#endif /* G_OS_HAIKU */ -+ - #ifdef G_OS_UNIX - #include - #include -@@ -3842,6 +3848,7 @@ - static void - g_child_watch_source_init_multi_threaded (void) - { -+#if !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) - GError *error = NULL; - struct sigaction action; - -@@ -3861,6 +3868,7 @@ - sigemptyset (&action.sa_mask); - action.sa_flags = SA_RESTART | SA_NOCLDSTOP; - sigaction (SIGCHLD, &action, NULL); -+#endif - } - - static void -diff -urN glib-2.22.2/glib/gslice.c glib-2.22.2-haiku/glib/gslice.c ---- glib-2.22.2/glib/gslice.c 2009-03-31 16:04:20.000000000 -0700 -+++ glib-2.22.2-haiku/glib/gslice.c 2009-11-20 08:32:42.000000000 -0800 -@@ -302,6 +302,8 @@ - GetSystemInfo (&system_info); - sys_page_size = system_info.dwPageSize; - } -+#elif defined(G_OS_BEOS) -+ sys_page_size = 4096; - #else - sys_page_size = sysconf (_SC_PAGESIZE); /* = sysconf (_SC_PAGE_SIZE); = getpagesize(); */ - #endif -diff -urN glib-2.22.2/glib/gspawn.c glib-2.22.2-haiku/glib/gspawn.c ---- glib-2.22.2/glib/gspawn.c 2009-08-27 20:51:21.000000000 -0700 -+++ glib-2.22.2-haiku/glib/gspawn.c 2009-11-20 08:32:46.000000000 -0800 -@@ -240,6 +240,9 @@ - gint *exit_status, - GError **error) - { -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+ return FALSE; -+#else - gint outpipe = -1; - gint errpipe = -1; - GPid pid; -@@ -439,6 +442,7 @@ - - return TRUE; - } -+#endif - } - - /** -@@ -915,7 +919,7 @@ - gint fd; - gint res = 0; - --#ifdef HAVE_SYS_RESOURCE_H -+#if defined(HAVE_SYS_RESOURCE_H) && !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) - struct rlimit rl; - #endif - -@@ -958,7 +962,7 @@ - - #endif - --#ifdef HAVE_SYS_RESOURCE_H -+#if defined(HAVE_SYS_RESOURCE_H) && !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) - - if (getrlimit(RLIMIT_NOFILE, &rl) == 0 && rl.rlim_max != RLIM_INFINITY) - open_max = rl.rlim_max; -diff -urN glib-2.22.2/glib/gstdio.c glib-2.22.2-haiku/glib/gstdio.c ---- glib-2.22.2/glib/gstdio.c 2009-03-31 16:04:20.000000000 -0700 -+++ glib-2.22.2-haiku/glib/gstdio.c 2009-11-20 08:32:50.000000000 -0800 -@@ -47,7 +47,7 @@ - - #include "galias.h" - --#if !defined (G_OS_UNIX) && !defined (G_OS_WIN32) && !defined (G_OS_BEOS) -+#if !defined (G_OS_UNIX) && !defined (G_OS_WIN32) && !defined (G_OS_BEOS) && !defined(G_OS_HAIKU) - #error Please port this to your operating system - #endif - -diff -urN glib-2.22.2/glib/gstrfuncs.c glib-2.22.2-haiku/glib/gstrfuncs.c ---- glib-2.22.2/glib/gstrfuncs.c 2009-08-27 20:48:13.000000000 -0700 -+++ glib-2.22.2-haiku/glib/gstrfuncs.c 2009-11-20 08:32:55.000000000 -0800 -@@ -1410,7 +1410,7 @@ - #ifdef HAVE_STRSIGNAL - const char *msg_locale; - --#if defined(G_OS_BEOS) || defined(G_WITH_CYGWIN) -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) || defined(G_WITH_CYGWIN) - extern const char *strsignal(int); - #else - /* this is declared differently (const) in string.h on BeOS */ -diff -urN glib-2.22.2/glib/gtester.c glib-2.22.2-haiku/glib/gtester.c ---- glib-2.22.2/glib/gtester.c 2009-03-31 16:04:20.000000000 -0700 -+++ glib-2.22.2-haiku/glib/gtester.c 2009-11-20 08:32:59.000000000 -0800 -@@ -630,6 +630,7 @@ - * we must fiddle with sigaction() *before* glib is used, otherwise - * we could revoke signal hanmdler setups from glib initialization code. - */ -+#ifdef SA_RESTART - if (TRUE) - { - struct sigaction sa; -@@ -639,6 +640,7 @@ - sa.sa_flags = SA_RESTART; - sigaction (SIGCHLD, &sa, &osa); - } -+#endif - - g_set_prgname (argv[0]); - parse_args (&argc, &argv); -diff -urN glib-2.22.2/glib/gutils.c glib-2.22.2-haiku/glib/gutils.c ---- glib-2.22.2/glib/gutils.c 2009-08-28 19:52:23.000000000 -0700 -+++ glib-2.22.2-haiku/glib/gutils.c 2009-11-20 08:33:03.000000000 -0800 -@@ -478,7 +478,7 @@ - } - - path = g_getenv ("PATH"); --#if defined(G_OS_UNIX) || defined(G_OS_BEOS) -+#if defined(G_OS_UNIX) || defined(G_OS_BEOS) || defined(G_OS_HAIKU) - if (path == NULL) - { - /* There is no `PATH' in the environment. The default -@@ -2311,6 +2311,21 @@ - } - #endif /* G_OS_WIN32 */ - -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) -+static void -+load_user_special_dirs (void) -+{ -+ g_user_special_dirs[G_USER_DIRECTORY_DESKTOP] = g_strdup("$HOME/Desktop"); -+ g_user_special_dirs[G_USER_DIRECTORY_DOCUMENTS] = g_strdup("$HOME"); -+ g_user_special_dirs[G_USER_DIRECTORY_DOWNLOAD] = g_strdup("$HOME/Desktop"); -+ g_user_special_dirs[G_USER_DIRECTORY_MUSIC] = NULL; -+ g_user_special_dirs[G_USER_DIRECTORY_PICTURES] = NULL; -+ g_user_special_dirs[G_USER_DIRECTORY_PUBLIC_SHARE] = NULL; -+ g_user_special_dirs[G_USER_DIRECTORY_TEMPLATES] = NULL; -+ g_user_special_dirs[G_USER_DIRECTORY_VIDEOS] = NULL; -+} -+#endif /* G_OS_BEOS */ -+ - static void g_init_user_config_dir (void); - - #if defined(G_OS_UNIX) && !defined(HAVE_CARBON) -diff -urN glib-2.22.2/glib/makegalias.pl glib-2.22.2-haiku/glib/makegalias.pl ---- glib-2.22.2/glib/makegalias.pl 2009-03-31 16:04:20.000000000 -0700 -+++ glib-2.22.2-haiku/glib/makegalias.pl 2009-11-20 08:33:08.000000000 -0800 -@@ -1,4 +1,4 @@ --#!/usr/bin/perl -w -+#!/boot/home/config/bin/perl -w - - my $do_def = 0; - -diff -urN glib-2.22.2/gobject/makegobjectalias.pl glib-2.22.2-haiku/gobject/makegobjectalias.pl ---- glib-2.22.2/gobject/makegobjectalias.pl 2009-03-31 16:04:20.000000000 -0700 -+++ glib-2.22.2-haiku/gobject/makegobjectalias.pl 2009-11-20 08:33:14.000000000 -0800 -@@ -1,4 +1,4 @@ --#!/usr/bin/perl -w -+#!/boot/home/config/bin/perl -w - - my $do_def = 0; - diff --git a/dev-libs/glib/patches/glib-2.24.1.patch b/dev-libs/glib/patches/glib-2.24.1.patch deleted file mode 100644 index def0edf1c..000000000 --- a/dev-libs/glib/patches/glib-2.24.1.patch +++ /dev/null @@ -1,273 +0,0 @@ -diff -urN glib-2.24.1/configure.in glib-2.24.1-haiku/configure.in ---- glib-2.24.1/configure.in 2010-05-02 23:58:58.044040192 +0000 -+++ glib-2.24.1-haiku/configure.in 2010-06-06 21:09:40.325582848 +0000 -@@ -140,6 +140,10 @@ - ;; - esac - ;; -+ *-*-haiku*) -+ glib_native_win32=no -+ glib_pid_type='signed long int' -+ ;; - *) - glib_native_win32=no - glib_pid_type=int -@@ -375,7 +379,7 @@ - AC_PATH_PROG(PERL_PATH, [$PERL]) - fi - if test "x$PERL_PATH" = x ; then -- PERL_PATH="/usr/bin/env perl" -+ PERL_PATH="/bin/env perl" - fi - AC_SUBST(PERL_PATH) - -@@ -1023,14 +1027,14 @@ - [res_query("test", 0, 0, (void *)0, 0);], - [AC_MSG_RESULT([yes])], - [save_libs="$LIBS" -- LIBS="-lresolv $LIBS" -+ LIBS="-lnetwork $LIBS" - AC_TRY_LINK([#include - #include - #include - #include ], - [res_query("test", 0, 0, (void *)0, 0);], -- [AC_MSG_RESULT([in -lresolv]) -- LIBASYNCNS_LIBADD="-lresolv"], -+ [AC_MSG_RESULT([in -lnetwork]) -+ LIBASYNCNS_LIBADD="-lnetwork"], - [LIBS="-lbind $save_libs" - AC_TRY_LINK([#include ], - [res_query("test", 0, 0, (void *)0, 0);], -@@ -3476,6 +3480,10 @@ - *-*-beos*) - glib_os="#define G_OS_BEOS" - ;; -+ *-*-haiku*) -+ glib_os="#define G_OS_HAIKU -+#define G_OS_UNIX" -+ ;; - *-*-cygwin*) - glib_os="#define G_OS_UNIX - #define G_PLATFORM_WIN32 -diff -urN glib-2.24.1/docs/reference/glib/glib-overrides.txt glib-2.24.1-haiku/docs/reference/glib/glib-overrides.txt ---- glib-2.24.1/docs/reference/glib/glib-overrides.txt 2009-03-31 23:04:20.040632320 +0000 -+++ glib-2.24.1-haiku/docs/reference/glib/glib-overrides.txt 2010-06-06 21:09:40.327417856 +0000 -@@ -215,6 +215,11 @@ - #define G_OS_BEOS - - -+ -+G_OS_HAIKU -+#define G_OS_HAIKU -+ -+ - # g_ascii_isxxx - - -diff -urN glib-2.24.1/docs/reference/glib/glib-sections.txt glib-2.24.1-haiku/docs/reference/glib/glib-sections.txt ---- glib-2.24.1/docs/reference/glib/glib-sections.txt 2010-05-03 01:23:07.031981568 +0000 -+++ glib-2.24.1-haiku/docs/reference/glib/glib-sections.txt 2010-06-06 21:09:40.338165760 +0000 -@@ -131,6 +131,7 @@ - G_OS_WIN32 - G_OS_BEOS - G_OS_UNIX -+G_OS_HAIKU - - - G_DIR_SEPARATOR -diff -urN glib-2.24.1/docs/reference/glib/tmpl/macros.sgml glib-2.24.1-haiku/docs/reference/glib/tmpl/macros.sgml ---- glib-2.24.1/docs/reference/glib/tmpl/macros.sgml 2010-05-03 01:23:06.032768000 +0000 -+++ glib-2.24.1-haiku/docs/reference/glib/tmpl/macros.sgml 2010-06-06 21:09:40.348127232 +0000 -@@ -34,6 +34,11 @@ - BeOS-specific code in "#ifdef G_OS_BEOS". - - -+ -+ -+This macro is defined only on Haiku. So you can bracket -+Haiku-specific code in "#ifdef G_OS_HAIKU". -+ - - - -diff -urN glib-2.24.1/gio/gunixmounts.c glib-2.24.1-haiku/gio/gunixmounts.c ---- glib-2.24.1/gio/gunixmounts.c 2009-03-31 23:04:20.054525952 +0000 -+++ glib-2.24.1-haiku/gio/gunixmounts.c 2010-06-06 21:09:40.359661568 +0000 -@@ -656,6 +656,23 @@ - - return return_list; - } -+ -+#elif defined(G_OS_HAIKU) -+ -+static char * -+get_mtab_monitor_file (void) -+{ -+ return NULL; -+} -+ -+static GList * -+_g_get_unix_mounts (void) -+{ -+ /* TODO: implement me */ -+ GList *return_list = NULL; -+ return return_list; -+} -+ - #else - #error No _g_get_unix_mounts() implementation for system - #endif -@@ -1040,6 +1057,16 @@ - { - return _g_get_unix_mounts (); - } -+ -+#elif defined(G_OS_HAIKU) -+ -+static GList * -+_g_get_unix_mount_points (void) -+{ -+ GList *return_list = NULL; -+ return return_list; -+} -+ - #else - #error No g_get_mount_table() implementation for system - #endif -diff -urN glib-2.24.1/gio/makegioalias.pl glib-2.24.1-haiku/gio/makegioalias.pl ---- glib-2.24.1/gio/makegioalias.pl 2009-03-31 23:04:20.004456448 +0000 -+++ glib-2.24.1-haiku/gio/makegioalias.pl 2010-06-06 21:09:40.361496576 +0000 -@@ -1,4 +1,4 @@ --#!/usr/bin/perl -w -+#!/bin/env perl - - my $do_def = 0; - -diff -urN glib-2.24.1/gio/tests/memory-output-stream.c glib-2.24.1-haiku/gio/tests/memory-output-stream.c ---- glib-2.24.1/gio/tests/memory-output-stream.c 2010-04-13 13:33:16.043253760 +0000 -+++ glib-2.24.1-haiku/gio/tests/memory-output-stream.c 2010-06-06 21:09:50.734003200 +0000 -@@ -91,6 +91,8 @@ - GOutputStream *mo; - GDataOutputStream *o; - int i; -+ gsize data_size_fun, data_size_prop; -+ gpointer data_fun, data_prop; - GError *error = NULL; - - g_test_bug ("605733"); -@@ -107,13 +109,11 @@ - g_assert_no_error (error); - } - -- gsize data_size_fun = g_memory_output_stream_get_data_size (G_MEMORY_OUTPUT_STREAM (mo)); -- gsize data_size_prop; -+ data_size_fun = g_memory_output_stream_get_data_size (G_MEMORY_OUTPUT_STREAM (mo)); - g_object_get (mo, "data-size", &data_size_prop, NULL); - g_assert_cmpint (data_size_fun, ==, data_size_prop); - -- gpointer data_fun = g_memory_output_stream_get_data (G_MEMORY_OUTPUT_STREAM (mo)); -- gpointer data_prop; -+ data_fun = g_memory_output_stream_get_data (G_MEMORY_OUTPUT_STREAM (mo)); - g_object_get (mo, "data", &data_prop, NULL); - g_assert_cmphex (data_fun, ==, data_prop); - -diff -urN glib-2.24.1/glib/gen-script-table.pl glib-2.24.1-haiku/glib/gen-script-table.pl ---- glib-2.24.1/glib/gen-script-table.pl 2009-03-31 23:04:20.056885248 +0000 -+++ glib-2.24.1-haiku/glib/gen-script-table.pl 2010-06-06 21:09:40.363069440 +0000 -@@ -1,4 +1,4 @@ --#!/usr/bin/perl -w -+#!/bin/env perl - # - # Script to convert http://www.unicode.org/Public/UNIDATA/Scripts.txt - # into a machine-readable table. -diff -urN glib-2.24.1/glib/gen-unicode-tables.pl glib-2.24.1-haiku/glib/gen-unicode-tables.pl ---- glib-2.24.1/glib/gen-unicode-tables.pl 2009-03-31 23:04:20.061603840 +0000 -+++ glib-2.24.1-haiku/glib/gen-unicode-tables.pl 2010-06-06 21:09:40.379584512 +0000 -@@ -1,4 +1,4 @@ --#! /usr/bin/perl -w -+#! /bin/env perl - - # Copyright (C) 1998, 1999 Tom Tromey - # Copyright (C) 2001 Red Hat Software -diff -urN glib-2.24.1/glib/gstdio.c glib-2.24.1-haiku/glib/gstdio.c ---- glib-2.24.1/glib/gstdio.c 2010-05-02 23:58:59.055836672 +0000 -+++ glib-2.24.1-haiku/glib/gstdio.c 2010-06-06 21:09:40.392167424 +0000 -@@ -47,7 +47,7 @@ - - #include "galias.h" - --#if !defined (G_OS_UNIX) && !defined (G_OS_WIN32) && !defined (G_OS_BEOS) -+#if !defined (G_OS_UNIX) && !defined (G_OS_WIN32) && !defined (G_OS_BEOS) && !defined (G_OS_HAIKU) - #error Please port this to your operating system - #endif - -diff -urN glib-2.24.1/glib/gstrfuncs.c glib-2.24.1-haiku/glib/gstrfuncs.c ---- glib-2.24.1/glib/gstrfuncs.c 2010-04-13 13:33:16.040632320 +0000 -+++ glib-2.24.1-haiku/glib/gstrfuncs.c 2010-06-06 21:09:40.403439616 +0000 -@@ -1410,7 +1410,7 @@ - #ifdef HAVE_STRSIGNAL - const char *msg_locale; - --#if defined(G_OS_BEOS) || defined(G_WITH_CYGWIN) -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) || defined(G_WITH_CYGWIN) - extern const char *strsignal(int); - #else - /* this is declared differently (const) in string.h on BeOS */ -diff -urN glib-2.24.1/glib/gutils.c glib-2.24.1-haiku/glib/gutils.c ---- glib-2.24.1/glib/gutils.c 2010-04-13 13:33:16.062914560 +0000 -+++ glib-2.24.1-haiku/glib/gutils.c 2010-06-06 21:09:40.414711808 +0000 -@@ -478,7 +478,7 @@ - } - - path = g_getenv ("PATH"); --#if defined(G_OS_UNIX) || defined(G_OS_BEOS) -+#if defined(G_OS_UNIX) || defined(G_OS_BEOS) || defined(G_OS_HAIKU) - if (path == NULL) - { - /* There is no `PATH' in the environment. The default -diff -urN glib-2.24.1/glib/makegalias.pl glib-2.24.1-haiku/glib/makegalias.pl ---- glib-2.24.1/glib/makegalias.pl 2009-03-31 23:04:20.055836672 +0000 -+++ glib-2.24.1-haiku/glib/makegalias.pl 2010-06-06 21:09:40.416546816 +0000 -@@ -1,4 +1,4 @@ --#!/usr/bin/perl -w -+#!/bin/env perl - - my $do_def = 0; - -diff -urN glib-2.24.1/gobject/makegobjectalias.pl glib-2.24.1-haiku/gobject/makegobjectalias.pl ---- glib-2.24.1/gobject/makegobjectalias.pl 2009-03-31 23:04:20.025952256 +0000 -+++ glib-2.24.1-haiku/gobject/makegobjectalias.pl 2010-06-06 21:09:40.426508288 +0000 -@@ -1,4 +1,4 @@ --#!/usr/bin/perl -w -+#!/bin/env perl - - my $do_def = 0; - -diff -urN glib-2.24.1/gobject/marshal-genstrings.pl glib-2.24.1-haiku/gobject/marshal-genstrings.pl ---- glib-2.24.1/gobject/marshal-genstrings.pl 2009-03-31 23:04:20.024641536 +0000 -+++ glib-2.24.1-haiku/gobject/marshal-genstrings.pl 2010-06-06 21:09:40.434372608 +0000 -@@ -1,4 +1,4 @@ --#!/usr/bin/perl -+#!/bin/env perl - - open (List, "gmarshal.list"); - -diff -urN glib-2.24.1/tests/gen-casefold-txt.pl glib-2.24.1-haiku/tests/gen-casefold-txt.pl ---- glib-2.24.1/tests/gen-casefold-txt.pl 2009-03-31 23:04:20.060030976 +0000 -+++ glib-2.24.1-haiku/tests/gen-casefold-txt.pl 2010-06-06 21:09:40.446169088 +0000 -@@ -1,4 +1,4 @@ --#! /usr/bin/perl -w -+#! /bin/env perl - - # Copyright (C) 1998, 1999 Tom Tromey - # Copyright (C) 2001 Red Hat Software -diff -urN glib-2.24.1/tests/gen-casemap-txt.pl glib-2.24.1-haiku/tests/gen-casemap-txt.pl ---- glib-2.24.1/tests/gen-casemap-txt.pl 2009-03-31 23:04:20.044564480 +0000 -+++ glib-2.24.1-haiku/tests/gen-casemap-txt.pl 2010-06-06 21:09:40.448004096 +0000 -@@ -1,4 +1,4 @@ --#! /usr/bin/perl -w -+#! /bin/env perl - - # Copyright (C) 1998, 1999 Tom Tromey - # Copyright (C) 2001 Red Hat Software diff --git a/dev-libs/glib/patches/glib-2.24.2.patch b/dev-libs/glib/patches/glib-2.24.2.patch deleted file mode 100644 index 362d692b9..000000000 --- a/dev-libs/glib/patches/glib-2.24.2.patch +++ /dev/null @@ -1,273 +0,0 @@ -diff -urN glib-2.24.2/configure.in glib-2.24.2-haiku/configure.in ---- glib-2.24.2/configure.in 2010-05-02 23:58:58.044040192 +0000 -+++ glib-2.24.2-haiku/configure.in 2010-06-06 21:09:40.325582848 +0000 -@@ -140,6 +140,10 @@ - ;; - esac - ;; -+ *-*-haiku*) -+ glib_native_win32=no -+ glib_pid_type='signed long int' -+ ;; - *) - glib_native_win32=no - glib_pid_type=int -@@ -375,7 +379,7 @@ - AC_PATH_PROG(PERL_PATH, [$PERL]) - fi - if test "x$PERL_PATH" = x ; then -- PERL_PATH="/usr/bin/env perl" -+ PERL_PATH="/bin/env perl" - fi - AC_SUBST(PERL_PATH) - -@@ -1023,14 +1027,14 @@ - [res_query("test", 0, 0, (void *)0, 0);], - [AC_MSG_RESULT([yes])], - [save_libs="$LIBS" -- LIBS="-lresolv $LIBS" -+ LIBS="-lnetwork $LIBS" - AC_TRY_LINK([#include - #include - #include - #include ], - [res_query("test", 0, 0, (void *)0, 0);], -- [AC_MSG_RESULT([in -lresolv]) -- LIBASYNCNS_LIBADD="-lresolv"], -+ [AC_MSG_RESULT([in -lnetwork]) -+ LIBASYNCNS_LIBADD="-lnetwork"], - [LIBS="-lbind $save_libs" - AC_TRY_LINK([#include ], - [res_query("test", 0, 0, (void *)0, 0);], -@@ -3476,6 +3480,10 @@ - *-*-beos*) - glib_os="#define G_OS_BEOS" - ;; -+ *-*-haiku*) -+ glib_os="#define G_OS_HAIKU -+#define G_OS_UNIX" -+ ;; - *-*-cygwin*) - glib_os="#define G_OS_UNIX - #define G_PLATFORM_WIN32 -diff -urN glib-2.24.2/docs/reference/glib/glib-overrides.txt glib-2.24.2-haiku/docs/reference/glib/glib-overrides.txt ---- glib-2.24.2/docs/reference/glib/glib-overrides.txt 2009-03-31 23:04:20.040632320 +0000 -+++ glib-2.24.2-haiku/docs/reference/glib/glib-overrides.txt 2010-06-06 21:09:40.327417856 +0000 -@@ -215,6 +215,11 @@ - #define G_OS_BEOS - - -+ -+G_OS_HAIKU -+#define G_OS_HAIKU -+ -+ - # g_ascii_isxxx - - -diff -urN glib-2.24.2/docs/reference/glib/glib-sections.txt glib-2.24.2-haiku/docs/reference/glib/glib-sections.txt ---- glib-2.24.2/docs/reference/glib/glib-sections.txt 2010-05-03 01:23:07.031981568 +0000 -+++ glib-2.24.2-haiku/docs/reference/glib/glib-sections.txt 2010-06-06 21:09:40.338165760 +0000 -@@ -131,6 +131,7 @@ - G_OS_WIN32 - G_OS_BEOS - G_OS_UNIX -+G_OS_HAIKU - - - G_DIR_SEPARATOR -diff -urN glib-2.24.2/docs/reference/glib/tmpl/macros.sgml glib-2.24.2-haiku/docs/reference/glib/tmpl/macros.sgml ---- glib-2.24.2/docs/reference/glib/tmpl/macros.sgml 2010-05-03 01:23:06.032768000 +0000 -+++ glib-2.24.2-haiku/docs/reference/glib/tmpl/macros.sgml 2010-06-06 21:09:40.348127232 +0000 -@@ -34,6 +34,11 @@ - BeOS-specific code in "#ifdef G_OS_BEOS". - - -+ -+ -+This macro is defined only on Haiku. So you can bracket -+Haiku-specific code in "#ifdef G_OS_HAIKU". -+ - - - -diff -urN glib-2.24.2/gio/gunixmounts.c glib-2.24.2-haiku/gio/gunixmounts.c ---- glib-2.24.2/gio/gunixmounts.c 2009-03-31 23:04:20.054525952 +0000 -+++ glib-2.24.2-haiku/gio/gunixmounts.c 2010-06-06 21:09:40.359661568 +0000 -@@ -656,6 +656,23 @@ - - return return_list; - } -+ -+#elif defined(G_OS_HAIKU) -+ -+static char * -+get_mtab_monitor_file (void) -+{ -+ return NULL; -+} -+ -+static GList * -+_g_get_unix_mounts (void) -+{ -+ /* TODO: implement me */ -+ GList *return_list = NULL; -+ return return_list; -+} -+ - #else - #error No _g_get_unix_mounts() implementation for system - #endif -@@ -1040,6 +1057,16 @@ - { - return _g_get_unix_mounts (); - } -+ -+#elif defined(G_OS_HAIKU) -+ -+static GList * -+_g_get_unix_mount_points (void) -+{ -+ GList *return_list = NULL; -+ return return_list; -+} -+ - #else - #error No g_get_mount_table() implementation for system - #endif -diff -urN glib-2.24.2/gio/makegioalias.pl glib-2.24.2-haiku/gio/makegioalias.pl ---- glib-2.24.2/gio/makegioalias.pl 2009-03-31 23:04:20.004456448 +0000 -+++ glib-2.24.2-haiku/gio/makegioalias.pl 2010-06-06 21:09:40.361496576 +0000 -@@ -1,4 +1,4 @@ --#!/usr/bin/perl -w -+#!/bin/env perl - - my $do_def = 0; - -diff -urN glib-2.24.2/gio/tests/memory-output-stream.c glib-2.24.2-haiku/gio/tests/memory-output-stream.c ---- glib-2.24.2/gio/tests/memory-output-stream.c 2010-04-13 13:33:16.043253760 +0000 -+++ glib-2.24.2-haiku/gio/tests/memory-output-stream.c 2010-06-06 21:09:50.734003200 +0000 -@@ -91,6 +91,8 @@ - GOutputStream *mo; - GDataOutputStream *o; - int i; -+ gsize data_size_fun, data_size_prop; -+ gpointer data_fun, data_prop; - GError *error = NULL; - - g_test_bug ("605733"); -@@ -107,13 +109,11 @@ - g_assert_no_error (error); - } - -- gsize data_size_fun = g_memory_output_stream_get_data_size (G_MEMORY_OUTPUT_STREAM (mo)); -- gsize data_size_prop; -+ data_size_fun = g_memory_output_stream_get_data_size (G_MEMORY_OUTPUT_STREAM (mo)); - g_object_get (mo, "data-size", &data_size_prop, NULL); - g_assert_cmpint (data_size_fun, ==, data_size_prop); - -- gpointer data_fun = g_memory_output_stream_get_data (G_MEMORY_OUTPUT_STREAM (mo)); -- gpointer data_prop; -+ data_fun = g_memory_output_stream_get_data (G_MEMORY_OUTPUT_STREAM (mo)); - g_object_get (mo, "data", &data_prop, NULL); - g_assert_cmphex (data_fun, ==, data_prop); - -diff -urN glib-2.24.2/glib/gen-script-table.pl glib-2.24.2-haiku/glib/gen-script-table.pl ---- glib-2.24.2/glib/gen-script-table.pl 2009-03-31 23:04:20.056885248 +0000 -+++ glib-2.24.2-haiku/glib/gen-script-table.pl 2010-06-06 21:09:40.363069440 +0000 -@@ -1,4 +1,4 @@ --#!/usr/bin/perl -w -+#!/bin/env perl - # - # Script to convert http://www.unicode.org/Public/UNIDATA/Scripts.txt - # into a machine-readable table. -diff -urN glib-2.24.2/glib/gen-unicode-tables.pl glib-2.24.2-haiku/glib/gen-unicode-tables.pl ---- glib-2.24.2/glib/gen-unicode-tables.pl 2009-03-31 23:04:20.061603840 +0000 -+++ glib-2.24.2-haiku/glib/gen-unicode-tables.pl 2010-06-06 21:09:40.379584512 +0000 -@@ -1,4 +1,4 @@ --#! /usr/bin/perl -w -+#! /bin/env perl - - # Copyright (C) 1998, 1999 Tom Tromey - # Copyright (C) 2001 Red Hat Software -diff -urN glib-2.24.2/glib/gstdio.c glib-2.24.2-haiku/glib/gstdio.c ---- glib-2.24.2/glib/gstdio.c 2010-05-02 23:58:59.055836672 +0000 -+++ glib-2.24.2-haiku/glib/gstdio.c 2010-06-06 21:09:40.392167424 +0000 -@@ -47,7 +47,7 @@ - - #include "galias.h" - --#if !defined (G_OS_UNIX) && !defined (G_OS_WIN32) && !defined (G_OS_BEOS) -+#if !defined (G_OS_UNIX) && !defined (G_OS_WIN32) && !defined (G_OS_BEOS) && !defined (G_OS_HAIKU) - #error Please port this to your operating system - #endif - -diff -urN glib-2.24.2/glib/gstrfuncs.c glib-2.24.2-haiku/glib/gstrfuncs.c ---- glib-2.24.2/glib/gstrfuncs.c 2010-04-13 13:33:16.040632320 +0000 -+++ glib-2.24.2-haiku/glib/gstrfuncs.c 2010-06-06 21:09:40.403439616 +0000 -@@ -1410,7 +1410,7 @@ - #ifdef HAVE_STRSIGNAL - const char *msg_locale; - --#if defined(G_OS_BEOS) || defined(G_WITH_CYGWIN) -+#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) || defined(G_WITH_CYGWIN) - extern const char *strsignal(int); - #else - /* this is declared differently (const) in string.h on BeOS */ -diff -urN glib-2.24.2/glib/gutils.c glib-2.24.2-haiku/glib/gutils.c ---- glib-2.24.2/glib/gutils.c 2010-04-13 13:33:16.062914560 +0000 -+++ glib-2.24.2-haiku/glib/gutils.c 2010-06-06 21:09:40.414711808 +0000 -@@ -478,7 +478,7 @@ - } - - path = g_getenv ("PATH"); --#if defined(G_OS_UNIX) || defined(G_OS_BEOS) -+#if defined(G_OS_UNIX) || defined(G_OS_BEOS) || defined(G_OS_HAIKU) - if (path == NULL) - { - /* There is no `PATH' in the environment. The default -diff -urN glib-2.24.2/glib/makegalias.pl glib-2.24.2-haiku/glib/makegalias.pl ---- glib-2.24.2/glib/makegalias.pl 2009-03-31 23:04:20.055836672 +0000 -+++ glib-2.24.2-haiku/glib/makegalias.pl 2010-06-06 21:09:40.416546816 +0000 -@@ -1,4 +1,4 @@ --#!/usr/bin/perl -w -+#!/bin/env perl - - my $do_def = 0; - -diff -urN glib-2.24.2/gobject/makegobjectalias.pl glib-2.24.2-haiku/gobject/makegobjectalias.pl ---- glib-2.24.2/gobject/makegobjectalias.pl 2009-03-31 23:04:20.025952256 +0000 -+++ glib-2.24.2-haiku/gobject/makegobjectalias.pl 2010-06-06 21:09:40.426508288 +0000 -@@ -1,4 +1,4 @@ --#!/usr/bin/perl -w -+#!/bin/env perl - - my $do_def = 0; - -diff -urN glib-2.24.2/gobject/marshal-genstrings.pl glib-2.24.2-haiku/gobject/marshal-genstrings.pl ---- glib-2.24.2/gobject/marshal-genstrings.pl 2009-03-31 23:04:20.024641536 +0000 -+++ glib-2.24.2-haiku/gobject/marshal-genstrings.pl 2010-06-06 21:09:40.434372608 +0000 -@@ -1,4 +1,4 @@ --#!/usr/bin/perl -+#!/bin/env perl - - open (List, "gmarshal.list"); - -diff -urN glib-2.24.2/tests/gen-casefold-txt.pl glib-2.24.2-haiku/tests/gen-casefold-txt.pl ---- glib-2.24.2/tests/gen-casefold-txt.pl 2009-03-31 23:04:20.060030976 +0000 -+++ glib-2.24.2-haiku/tests/gen-casefold-txt.pl 2010-06-06 21:09:40.446169088 +0000 -@@ -1,4 +1,4 @@ --#! /usr/bin/perl -w -+#! /bin/env perl - - # Copyright (C) 1998, 1999 Tom Tromey - # Copyright (C) 2001 Red Hat Software -diff -urN glib-2.24.2/tests/gen-casemap-txt.pl glib-2.24.2-haiku/tests/gen-casemap-txt.pl ---- glib-2.24.2/tests/gen-casemap-txt.pl 2009-03-31 23:04:20.044564480 +0000 -+++ glib-2.24.2-haiku/tests/gen-casemap-txt.pl 2010-06-06 21:09:40.448004096 +0000 -@@ -1,4 +1,4 @@ --#! /usr/bin/perl -w -+#! /bin/env perl - - # Copyright (C) 1998, 1999 Tom Tromey - # Copyright (C) 2001 Red Hat Software diff --git a/dev-libs/glib/patches/glib-2.26.1.patch b/dev-libs/glib/patches/glib-2.26.1.patch deleted file mode 100644 index 4c6346a21..000000000 --- a/dev-libs/glib/patches/glib-2.26.1.patch +++ /dev/null @@ -1,84 +0,0 @@ -diff -urN glib-2.26.1/configure.ac glib-2.26.1-haiku/configure.ac ---- glib-2.26.1/configure.ac 2010-11-14 05:59:52.043778048 +0000 -+++ glib-2.26.1-haiku/configure.ac 2011-01-13 11:12:11.055312384 +0000 -@@ -111,6 +111,10 @@ - *-*-beos*) - glib_native_beos="yes" - ;; -+ *-*-haiku*) -+ glib_native_beos="yes" -+ LIBS="-lnetwork $LIBS" -+ ;; - *) - glib_native_beos="no" - ;; -@@ -3595,6 +3599,9 @@ - *-*-beos*) - glib_os="#define G_OS_BEOS" - ;; -+ *-*-haiku*) -+ glib_os="#define G_OS_HAIKU" -+ ;; - *-*-cygwin*) - glib_os="#define G_OS_UNIX - #define G_PLATFORM_WIN32 -diff -urN glib-2.26.1/glib/gmain.c glib-2.26.1-haiku/glib/gmain.c ---- glib-2.26.1/glib/gmain.c 2010-11-12 13:52:52.057409536 +0000 -+++ glib-2.26.1-haiku/glib/gmain.c 2011-01-11 13:13:26.355991552 +0000 -@@ -79,10 +79,11 @@ - #include - #endif /* G_OS_WIN32 */ - --#ifdef G_OS_BEOS -+#if defined G_OS_HAIKU - #include - #include --#endif /* G_OS_BEOS */ -+#include -+#endif /* G_OS_HAIKU */ - - #ifdef G_OS_UNIX - #include -diff -urN glib-2.26.1/glib/gstdio.c glib-2.26.1-haiku/glib/gstdio.c ---- glib-2.26.1/glib/gstdio.c 2010-09-13 13:40:53.047972352 +0000 -+++ glib-2.26.1-haiku/glib/gstdio.c 2011-01-11 13:17:06.033292288 +0000 -@@ -45,7 +45,7 @@ - #include "gstdio.h" - - --#if !defined (G_OS_UNIX) && !defined (G_OS_WIN32) && !defined (G_OS_BEOS) -+#if !defined (G_OS_UNIX) && !defined (G_OS_WIN32) && !defined (G_OS_HAIKU) - #error Please port this to your operating system - #endif - -diff -urN glib-2.26.1/glib/gstrfuncs.c glib-2.26.1-haiku/glib/gstrfuncs.c ---- glib-2.26.1/glib/gstrfuncs.c 2010-09-04 01:40:14.015466496 +0000 -+++ glib-2.26.1-haiku/glib/gstrfuncs.c 2011-01-11 12:43:29.319815680 +0000 -@@ -1423,12 +1423,12 @@ - #ifdef HAVE_STRSIGNAL - const char *msg_locale; - --#if defined(G_OS_BEOS) || defined(G_WITH_CYGWIN) -+#if defined(G_OS_HAIKU) || defined(G_WITH_CYGWIN) - extern const char *strsignal(int); - #else -- /* this is declared differently (const) in string.h on BeOS */ -+ /* this is declared differently (const) in string.h on HAIKU */ - extern char *strsignal (int sig); --#endif /* !G_OS_BEOS && !G_WITH_CYGWIN */ -+#endif /* !G_OS_HAIKU && !G_WITH_CYGWIN */ - msg_locale = strsignal (signum); - if (g_get_charset (NULL)) - return msg_locale; -diff -urN glib-2.26.1/glib/gutils.c glib-2.26.1-haiku/glib/gutils.c ---- glib-2.26.1/glib/gutils.c 2010-11-12 13:52:52.056098816 +0000 -+++ glib-2.26.1-haiku/glib/gutils.c 2011-01-11 13:27:36.000000000 +0000 -@@ -491,7 +491,7 @@ - } - - path = g_getenv ("PATH"); --#if defined(G_OS_UNIX) || defined(G_OS_BEOS) -+#if defined(G_OS_UNIX) || defined(G_OS_HAIKU) - if (path == NULL) - { - /* There is no `PATH' in the environment. The default diff --git a/dev-libs/glib/patches/glib-trunk.diff b/dev-libs/glib/patches/glib-trunk.diff deleted file mode 100644 index f7942d74d..000000000 --- a/dev-libs/glib/patches/glib-trunk.diff +++ /dev/null @@ -1,374 +0,0 @@ -Index: gio/gunixmounts.c -=================================================================== ---- gio/gunixmounts.c (revision 6849) -+++ gio/gunixmounts.c (working copy) -@@ -592,6 +592,16 @@ - - return g_list_reverse (return_list); - } -+ -+#elif defined(G_OS_BEOS) -+ -+static GList * -+_g_get_unix_mounts (void) -+{ -+ GList *return_list = NULL; -+ return return_list; -+} -+ - #else - #error No _g_get_unix_mounts() implementation for system - #endif -@@ -972,6 +982,16 @@ - - return g_list_reverse (return_list); - } -+ -+#elif defined(G_OS_BEOS) -+ -+static GList * -+_g_get_unix_mount_points (void) -+{ -+ GList *return_list = NULL; -+ return return_list; -+} -+ - #else - #error No g_get_mount_table() implementation for system - #endif -Index: gio/makegioalias.pl -=================================================================== ---- gio/makegioalias.pl (revision 6849) -+++ gio/makegioalias.pl (working copy) -@@ -1,4 +1,4 @@ --#!/usr/bin/perl -w -+#!/boot/home/config/bin/perl -w - - my $do_def = 0; - -Index: gio/gunixinputstream.c -=================================================================== ---- gio/gunixinputstream.c (revision 6849) -+++ gio/gunixinputstream.c (working copy) -@@ -28,7 +28,9 @@ - #include - #include - #include -+#ifdef HAVE_POLL - #include -+#endif - - #include - #include -@@ -172,6 +174,9 @@ - GCancellable *cancellable, - GError **error) - { -+#ifdef G_OS_BEOS -+ return -1; -+#else - GUnixInputStream *unix_stream; - gssize res; - struct pollfd poll_fds[2]; -@@ -227,6 +232,7 @@ - } - - return res; -+#endif - } - - static gboolean -@@ -332,6 +338,7 @@ - GAsyncReadyCallback callback, - gpointer user_data) - { -+#ifndef G_OS_BEOS - GSource *source; - GUnixInputStream *unix_stream; - ReadAsyncData *data; -@@ -354,6 +361,7 @@ - g_source_attach (source, NULL); - - g_source_unref (source); -+#endif - } - - static gssize -Index: gio/Makefile.am -=================================================================== ---- gio/Makefile.am (revision 6849) -+++ gio/Makefile.am (working copy) -@@ -148,7 +148,7 @@ - platform_libadd += -lshlwapi - endif - --SUBDIRS += tests -+#SUBDIRS += tests - - libgio_2_0_la_SOURCES = \ - gappinfo.c \ -Index: gio/xdgmime/xdgmimeglob.c -=================================================================== ---- gio/xdgmime/xdgmimeglob.c (revision 6849) -+++ gio/xdgmime/xdgmimeglob.c (working copy) -@@ -35,7 +35,7 @@ - #include - #include - #include --#include -+//#include - - #ifndef FALSE - #define FALSE (0) -Index: gio/xdgmime/xdgmimealias.c -=================================================================== ---- gio/xdgmime/xdgmimealias.c (revision 6849) -+++ gio/xdgmime/xdgmimealias.c (working copy) -@@ -35,7 +35,7 @@ - #include - #include - #include --#include -+//#include - - #ifndef FALSE - #define FALSE (0) -Index: gio/xdgmime/xdgmimeparent.c -=================================================================== ---- gio/xdgmime/xdgmimeparent.c (revision 6849) -+++ gio/xdgmime/xdgmimeparent.c (working copy) -@@ -35,7 +35,7 @@ - #include - #include - #include --#include -+//#include - - #ifndef FALSE - #define FALSE (0) -Index: gio/xdgmime/xdgmimecache.c -=================================================================== ---- gio/xdgmime/xdgmimecache.c (revision 6849) -+++ gio/xdgmime/xdgmimecache.c (working copy) -@@ -34,7 +34,7 @@ - - #include - #include --#include -+//#include - #include - - #include /* for ntohl/ntohs */ -Index: gio/gunixoutputstream.c -=================================================================== ---- gio/gunixoutputstream.c (revision 6849) -+++ gio/gunixoutputstream.c (working copy) -@@ -28,7 +28,9 @@ - #include - #include - #include -+#ifdef HAVE_POLL - #include -+#endif - - #include - #include -@@ -160,6 +162,9 @@ - GCancellable *cancellable, - GError **error) - { -+#ifdef G_OS_BEOS -+ return -1; -+#else - GUnixOutputStream *unix_stream; - gssize res; - struct pollfd poll_fds[2]; -@@ -216,6 +221,7 @@ - } - - return res; -+#endif - } - - static gboolean -@@ -321,6 +327,7 @@ - GAsyncReadyCallback callback, - gpointer user_data) - { -+#ifndef G_OS_BEOS - GSource *source; - GUnixOutputStream *unix_stream; - WriteAsyncData *data; -@@ -343,6 +350,7 @@ - g_source_attach (source, NULL); - - g_source_unref (source); -+#endif - } - - static gssize -Index: gobject/makegobjectalias.pl -=================================================================== ---- gobject/makegobjectalias.pl (revision 6849) -+++ gobject/makegobjectalias.pl (working copy) -@@ -1,4 +1,4 @@ --#!/usr/bin/perl -w -+#!/boot/home/config/bin/perl -w - - my $do_def = 0; - -Index: glib/gutils.c -=================================================================== ---- glib/gutils.c (revision 6849) -+++ glib/gutils.c (working copy) -@@ -2236,6 +2236,21 @@ - } - #endif /* G_OS_WIN32 */ - -+#if defined(G_OS_BEOS) -+static void -+load_user_special_dirs (void) -+{ -+ g_user_special_dirs[G_USER_DIRECTORY_DESKTOP] = g_strdup("/boot/home/Desktop"); -+ g_user_special_dirs[G_USER_DIRECTORY_DOCUMENTS] = g_strdup("/boot/home"); -+ g_user_special_dirs[G_USER_DIRECTORY_DOWNLOAD] = g_strdup("/boot/home/Desktop"); -+ g_user_special_dirs[G_USER_DIRECTORY_MUSIC] = NULL; -+ g_user_special_dirs[G_USER_DIRECTORY_PICTURES] = NULL; -+ g_user_special_dirs[G_USER_DIRECTORY_PUBLIC_SHARE] = NULL; -+ g_user_special_dirs[G_USER_DIRECTORY_TEMPLATES] = NULL; -+ g_user_special_dirs[G_USER_DIRECTORY_VIDEOS] = NULL; -+} -+#endif /* G_OS_BEOS */ -+ - static void g_init_user_config_dir (void); - - #if defined(G_OS_UNIX) && !defined(HAVE_CARBON) -Index: glib/gmain.c -=================================================================== ---- glib/gmain.c (revision 6849) -+++ glib/gmain.c (working copy) -@@ -3876,6 +3876,7 @@ - static void - g_child_watch_source_init_multi_threaded (void) - { -+#ifndef G_OS_BEOS - GError *error = NULL; - struct sigaction action; - -@@ -3895,6 +3896,7 @@ - sigemptyset (&action.sa_mask); - action.sa_flags = SA_RESTART | SA_NOCLDSTOP; - sigaction (SIGCHLD, &action, NULL); -+#endif - } - - static void -Index: glib/gbacktrace.c -=================================================================== ---- glib/gbacktrace.c (revision 6849) -+++ glib/gbacktrace.c (working copy) -@@ -193,7 +193,7 @@ - #endif - } - --#ifndef G_OS_WIN32 -+#if !defined(G_OS_WIN32) && !defined(G_OS_BEOS) - - static gboolean stack_trace_done = FALSE; - -Index: glib/Makefile.am -=================================================================== ---- glib/Makefile.am (revision 6849) -+++ glib/Makefile.am (working copy) -@@ -19,7 +19,7 @@ - gregex_h = - endif - --SUBDIRS = libcharset $(PRINTF_SUBDIR) $(MAYBE_PCRE) update-pcre . tests -+SUBDIRS = libcharset $(PRINTF_SUBDIR) $(MAYBE_PCRE) update-pcre . - - DIST_SUBDIRS = libcharset gnulib pcre update-pcre tests - -Index: glib/gslice.c -=================================================================== ---- glib/gslice.c (revision 6849) -+++ glib/gslice.c (working copy) -@@ -302,6 +302,8 @@ - GetSystemInfo (&system_info); - sys_page_size = system_info.dwPageSize; - } -+#elif defined(G_OS_BEOS) -+ sys_page_size = 4096; - #else - sys_page_size = sysconf (_SC_PAGESIZE); /* = sysconf (_SC_PAGE_SIZE); = getpagesize(); */ - #endif -Index: glib/gtester.c -=================================================================== ---- glib/gtester.c (revision 6849) -+++ glib/gtester.c (working copy) -@@ -630,6 +630,7 @@ - * we must fiddle with sigaction() *before* glib is used, otherwise - * we could revoke signal hanmdler setups from glib initialization code. - */ -+#ifdef SA_RESTART - if (TRUE) - { - struct sigaction sa; -@@ -639,6 +640,7 @@ - sa.sa_flags = SA_RESTART; - sigaction (SIGCHLD, &sa, &osa); - } -+#endif - - g_set_prgname (argv[0]); - parse_args (&argc, &argv); -Index: glib/gspawn.c -=================================================================== ---- glib/gspawn.c (revision 6849) -+++ glib/gspawn.c (working copy) -@@ -230,6 +230,9 @@ - gint *exit_status, - GError **error) - { -+#ifdef G_OS_BEOS -+ return FALSE; -+#else - gint outpipe = -1; - gint errpipe = -1; - GPid pid; -@@ -425,6 +428,7 @@ - - return TRUE; - } -+#endif - } - - /** -@@ -896,7 +900,7 @@ - gint fd; - gint res = 0; - --#ifdef HAVE_SYS_RESOURCE_H -+#if defined(HAVE_SYS_RESOURCE_H) && !defined(G_OS_BEOS) - struct rlimit rl; - #endif - -@@ -939,7 +943,7 @@ - - #endif - --#ifdef HAVE_SYS_RESOURCE_H -+#if defined(HAVE_SYS_RESOURCE_H) && !defined(G_OS_BEOS) - - if (getrlimit(RLIMIT_NOFILE, &rl) == 0 && rl.rlim_max != RLIM_INFINITY) - open_max = rl.rlim_max; -Index: glib/makegalias.pl -=================================================================== ---- glib/makegalias.pl (revision 6849) -+++ glib/makegalias.pl (working copy) -@@ -1,4 +1,4 @@ --#!/usr/bin/perl -w -+#!/boot/home/config/bin/perl -w - - my $do_def = 0; - diff --git a/dev-libs/glib/patches/glib2-2.38.1.patch b/dev-libs/glib/patches/glib2-2.38.1.patch new file mode 100644 index 000000000..2c0beba7e --- /dev/null +++ b/dev-libs/glib/patches/glib2-2.38.1.patch @@ -0,0 +1,433 @@ +diff --git a/configure.ac b/configure.ac +index f0840d5..f7df259 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -122,6 +122,10 @@ case $host in + *-*-beos*) + glib_native_beos="yes" + ;; ++ *-*-haiku*) ++ glib_native_beos="yes" ++ LIBS="-lnetwork $LIBS" ++ ;; + *) + glib_native_beos="no" + ;; +@@ -2062,8 +2066,8 @@ AS_IF([ test x"$have_threads" = xposix], [ + # One of them does for most gcc versions and some other platforms/compilers + # too and could be considered as the canonical way to go. + case $host in +- *-*-cygwin*|*-*-darwin*) +- # skip cygwin and darwin -pthread or -pthreads test ++ *-*-cygwin*|*-*-darwin*|*-*-haiku*) ++ # skip cygwin, darwin and haiku -pthread or -pthreads test + ;; + *-solaris*) + # These compiler/linker flags work with both Sun Studio and gcc +@@ -2232,8 +2236,8 @@ if test "x$G_THREAD_LIBS" = xerror; then + fi + + case $host in +- *-*-beos*) +- G_THREAD_LIBS="-lbe -lroot -lglib-2.0 " ++ *-*-beos*|*-*-haiku*) ++ G_THREAD_LIBS="-lbe -lroot" + G_THREAD_LIBS_EXTRA="-L\$(top_builddir_full)/.libs" + ;; + *) +@@ -3574,6 +3578,9 @@ case $host in + *-*-beos*) + glib_os="#define G_OS_BEOS" + ;; ++ *-*-haiku*) ++ glib_os="#define G_OS_HAIKU" ++ ;; + *-*-cygwin*) + glib_os="#define G_OS_UNIX + #define G_PLATFORM_WIN32 +diff --git a/gio/data-to-c.pl b/gio/data-to-c.pl +index 20ba2fb..539b7e0 100755 +--- a/gio/data-to-c.pl ++++ b/gio/data-to-c.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl ++#!/usr/bin/env perl + + # Copyright © 2011 Red Hat, Inc + # +diff --git a/gio/gapplicationcommandline.c b/gio/gapplicationcommandline.c +index 9a0840f..896a889 100644 +--- a/gio/gapplicationcommandline.c ++++ b/gio/gapplicationcommandline.c +@@ -29,7 +29,7 @@ + #include + #include + +-#ifdef G_OS_UNIX ++#if defined(G_OS_UNIX) || defined(G_OS_HAIKU) + #include "gunixinputstream.h" + #endif + +@@ -201,7 +201,7 @@ g_application_command_line_real_printerr_literal (GApplicationCommandLine *cmdli + static GInputStream * + g_application_command_line_real_get_stdin (GApplicationCommandLine *cmdline) + { +-#ifdef G_OS_UNIX ++#if defined(G_OS_UNIX) || defined(G_OS_HAIKU) + return g_unix_input_stream_new (0, FALSE); + #else + return g_win32_input_stream_new (GetStdHandle (STD_INPUT_HANDLE), FALSE); +diff --git a/gio/gdbusauthmechanismsha1.c b/gio/gdbusauthmechanismsha1.c +index e4f75eb..2c70803 100644 +--- a/gio/gdbusauthmechanismsha1.c ++++ b/gio/gdbusauthmechanismsha1.c +@@ -252,7 +252,7 @@ ensure_keyring_directory (GError **error) + { + if (g_getenv ("G_DBUS_COOKIE_SHA1_KEYRING_DIR_IGNORE_PERMISSION") == NULL) + { +-#ifdef G_OS_UNIX ++#if defined(G_OS_UNIX) || defined(G_OS_HAIKU) + struct stat statbuf; + if (stat (path, &statbuf) != 0) + { +@@ -947,7 +947,7 @@ mechanism_server_initiate (GDBusAuthMechanism *mechanism, + + if (initial_response != NULL && strlen (initial_response) > 0) + { +-#ifdef G_OS_UNIX ++#if defined(G_OS_UNIX) || defined(G_OS_HAIKU) + gint64 uid; + gchar *endp; + +@@ -1114,7 +1114,7 @@ mechanism_client_initiate (GDBusAuthMechanism *mechanism, + + *out_initial_response_len = -1; + +-#ifdef G_OS_UNIX ++#if defined(G_OS_UNIX) || defined(G_OS_HAIKU) + initial_response = g_strdup_printf ("%" G_GINT64_FORMAT, (gint64) getuid ()); + #elif defined (G_OS_WIN32) + initial_response = _g_dbus_win32_get_user_sid (); +diff --git a/gio/glocalfile.c b/gio/glocalfile.c +index 345214d..11eae36 100644 +--- a/gio/glocalfile.c ++++ b/gio/glocalfile.c +@@ -27,7 +27,7 @@ + #include + #include + #include +-#if G_OS_UNIX ++#if HAVE_DIRENT_H + #include + #endif + #ifdef HAVE_UNISTD_H +@@ -67,7 +67,7 @@ + #include "gioerror.h" + #include + #include "glibintl.h" +-#ifdef G_OS_UNIX ++#if defined(G_OS_UNIX) || defined(G_OS_HAIKU) + #include "glib-unix.h" + #endif + #include "glib-private.h" +@@ -1818,7 +1818,7 @@ _g_local_file_has_trash_dir (const char *dirname, dev_t dir_dev) + return res; + } + +-#ifdef G_OS_UNIX ++#if defined(G_OS_UNIX) || defined(G_OS_HAIKU) + gboolean + _g_local_file_is_lost_found_dir (const char *path, dev_t path_dev) + { +diff --git a/gio/glocalfileinfo.h b/gio/glocalfileinfo.h +index 6d35be5..e286098 100644 +--- a/gio/glocalfileinfo.h ++++ b/gio/glocalfileinfo.h +@@ -58,7 +58,7 @@ typedef struct + + gboolean _g_local_file_has_trash_dir (const char *dirname, + dev_t dir_dev); +-#ifdef G_OS_UNIX ++#if defined(G_OS_UNIX) || defined(G_OS_HAIKU) + gboolean _g_local_file_is_lost_found_dir (const char *path, + dev_t path_dev); + #endif +diff --git a/gio/gsocket.c b/gio/gsocket.c +index 18e6137..689d3c0 100644 +--- a/gio/gsocket.c ++++ b/gio/gsocket.c +@@ -29,7 +29,7 @@ + + #include "gsocket.h" + +-#ifdef G_OS_UNIX ++#if defined(G_OS_UNIX) || defined(G_OS_HAIKU) + #include "glib-unix.h" + #endif + +diff --git a/gio/gthreadedresolver.c b/gio/gthreadedresolver.c +index 1ffaf15..702cf00 100644 +--- a/gio/gthreadedresolver.c ++++ b/gio/gthreadedresolver.c +@@ -245,7 +245,7 @@ lookup_by_address_finish (GResolver *resolver, + } + + +-#if defined(G_OS_UNIX) ++#if defined(G_OS_UNIX) || defined(G_OS_HAIKU) + + #ifdef __BIONIC__ + /* Copy from bionic/libc/private/arpa_nameser_compat.h +@@ -813,7 +813,7 @@ do_lookup_records (GTask *task, + GList *records; + GError *error = NULL; + +-#if defined(G_OS_UNIX) ++#if defined(G_OS_UNIX) || defined(G_OS_HAIKU) + gint len = 512; + gint herr; + GByteArray *answer; +diff --git a/gio/gunixmounts.c b/gio/gunixmounts.c +index 03f1720..cb438a4 100644 +--- a/gio/gunixmounts.c ++++ b/gio/gunixmounts.c +@@ -72,7 +72,6 @@ + #include "glibintl.h" + #include "gthemedicon.h" + +- + #ifdef HAVE_MNTENT_H + static const char *_resolve_dev_root (void); + #endif +@@ -716,6 +715,18 @@ _g_get_unix_mounts (void) + + return return_list; + } ++#elif defined(G_OS_HAIKU) ++static char * ++get_mtab_monitor_file (void) ++{ ++ return NULL; ++} ++ ++static GList * ++_g_get_unix_mounts (void) ++{ ++ return NULL; ++} + #else + #error No _g_get_unix_mounts() implementation for system + #endif +@@ -1106,7 +1117,7 @@ _g_get_unix_mount_points (void) + + return g_list_reverse (return_list); + } +-#elif defined(__INTERIX) ++#elif defined(__INTERIX) || defined(G_OS_HAIKU) + static GList * + _g_get_unix_mount_points (void) + { +diff --git a/glib/gbacktrace.c b/glib/gbacktrace.c +index 4d19d6f..1c46778 100644 +--- a/glib/gbacktrace.c ++++ b/glib/gbacktrace.c +@@ -228,7 +228,7 @@ g_on_error_query (const gchar *prg_name) + void + g_on_error_stack_trace (const gchar *prg_name) + { +-#if defined(G_OS_UNIX) || defined(G_OS_BEOS) ++#if defined(G_OS_UNIX) || defined(G_OS_BEOS) || defined(G_OS_HAIKU) + pid_t pid; + gchar buf[16]; + gchar *args[4] = { "gdb", NULL, NULL, NULL }; +diff --git a/glib/glib-unix.h b/glib/glib-unix.h +index 66ccf74..a03a0cf 100644 +--- a/glib/glib-unix.h ++++ b/glib/glib-unix.h +@@ -34,7 +34,7 @@ + + #include + +-#ifndef G_OS_UNIX ++#if !defined(G_OS_UNIX) && !defined(G_OS_HAIKU) + #error "This header may only be used on UNIX" + #endif + +diff --git a/glib/gmain.c b/glib/gmain.c +index 738e69c..4f5dfab 100644 +--- a/glib/gmain.c ++++ b/glib/gmain.c +@@ -47,7 +47,7 @@ + #define G_MAIN_POLL_DEBUG + #endif + +-#ifdef G_OS_UNIX ++#if defined(G_OS_UNIX) || defined(G_OS_HAIKU) + #include "glib-unix.h" + #include + #ifdef HAVE_EVENTFD +@@ -73,10 +73,11 @@ + #include + #endif /* G_OS_WIN32 */ + +-#ifdef G_OS_BEOS ++#if defined G_OS_BEOS || defined G_OS_HAIKU + #include + #include +-#endif /* G_OS_BEOS */ ++#include ++#endif /* G_OS_BEOS || G_OS_HAIKU */ + + #include "gmain.h" + +@@ -391,7 +392,7 @@ static gboolean g_child_watch_dispatch (GSource *source, + GSourceFunc callback, + gpointer user_data); + static void g_child_watch_finalize (GSource *source); +-#ifdef G_OS_UNIX ++#if defined(G_OS_UNIX) || defined(G_OS_HAIKU) + static void g_unix_signal_handler (int signum); + static gboolean g_unix_signal_watch_prepare (GSource *source, + gint *timeout); +@@ -2259,7 +2260,7 @@ g_source_remove_by_funcs_user_data (GSourceFuncs *funcs, + return FALSE; + } + +-#ifdef G_OS_UNIX ++#if defined(G_OS_UNIX) || defined(G_OS_HAIKU) + /** + * g_source_add_unix_fd: + * @source: a #GSource +@@ -2425,7 +2426,7 @@ g_source_query_unix_fd (GSource *source, + + return poll_fd->revents; + } +-#endif /* G_OS_UNIX */ ++#endif /* G_OS_UNIX || G_OS_HAIKU */ + + /** + * g_get_current_time: +@@ -5471,7 +5472,7 @@ glib_worker_main (gpointer data) + { + g_main_context_iteration (glib_worker_context, TRUE); + +-#ifdef G_OS_UNIX ++#if defined(G_OS_UNIX) || defined(G_OS_HAIKU) + if (any_unix_signal_pending) + dispatch_unix_signals (); + #endif +@@ -5488,7 +5489,7 @@ g_get_worker_context (void) + if (g_once_init_enter (&initialised)) + { + /* mask all signals in the worker thread */ +-#ifdef G_OS_UNIX ++#if defined(G_OS_UNIX) || defined(G_OS_HAIKU) + sigset_t prev_mask; + sigset_t all; + +@@ -5497,7 +5498,7 @@ g_get_worker_context (void) + #endif + glib_worker_context = g_main_context_new (); + g_thread_new ("gmain", glib_worker_main, NULL); +-#ifdef G_OS_UNIX ++#if defined(G_OS_UNIX) || defined(G_OS_HAIKU) + pthread_sigmask (SIG_SETMASK, &prev_mask, NULL); + #endif + g_once_init_leave (&initialised, TRUE); +diff --git a/glib/gmain.h b/glib/gmain.h +index c455353..ad7b330 100644 +--- a/glib/gmain.h ++++ b/glib/gmain.h +@@ -471,7 +471,7 @@ void g_source_set_ready_time (GSource *source, + GLIB_AVAILABLE_IN_2_36 + gint64 g_source_get_ready_time (GSource *source); + +-#ifdef G_OS_UNIX ++#if defined(G_OS_UNIX) || defined(G_OS_HAIKU) + GLIB_AVAILABLE_IN_2_36 + gpointer g_source_add_unix_fd (GSource *source, + gint fd, +@@ -606,7 +606,7 @@ void g_main_context_invoke (GMainContext *context, + GLIB_VAR GSourceFuncs g_timeout_funcs; + GLIB_VAR GSourceFuncs g_child_watch_funcs; + GLIB_VAR GSourceFuncs g_idle_funcs; +-#ifdef G_OS_UNIX ++#if defined(G_OS_UNIX) || defined(G_OS_HAIKU) + GLIB_VAR GSourceFuncs g_unix_signal_funcs; + GLIB_VAR GSourceFuncs g_unix_fd_source_funcs; + #endif +diff --git a/glib/gstdio.c b/glib/gstdio.c +index cca4ff5..6f4ae9c 100644 +--- a/glib/gstdio.c ++++ b/glib/gstdio.c +@@ -46,7 +46,7 @@ + #include "gstdio.h" + + +-#if !defined (G_OS_UNIX) && !defined (G_OS_WIN32) && !defined (G_OS_BEOS) ++#if !defined (G_OS_UNIX) && !defined (G_OS_WIN32) && !defined (G_OS_BEOS) && !defined (G_OS_HAIKU) + #error Please port this to your operating system + #endif + +diff --git a/glib/gutils.c b/glib/gutils.c +index 2620cb6..34f1edd 100644 +--- a/glib/gutils.c ++++ b/glib/gutils.c +@@ -77,6 +77,11 @@ + #include "gwin32.h" + #endif + ++#if defined(G_OS_HAIKU) ++#include ++#include ++#endif ++ + + /** + * SECTION:misc_utils +@@ -421,7 +426,7 @@ g_find_program_in_path (const gchar *program) + } + + path = g_getenv ("PATH"); +-#if defined(G_OS_UNIX) || defined(G_OS_BEOS) ++#if defined(G_OS_UNIX) || defined(G_OS_BEOS) || defined(G_OS_HAIKU) + if (path == NULL) + { + /* There is no 'PATH' in the environment. The default +@@ -1467,6 +1472,36 @@ load_user_special_dirs (void) + + #endif /* HAVE_CARBON */ + ++#if defined(G_OS_HAIKU) ++static void ++load_user_special_dirs (void) ++{ ++ char path[B_PATH_NAME_LENGTH + B_FILE_NAME_LENGTH]; ++ ++ dev_t volume = dev_for_path("/boot"); ++ if (find_directory(B_DESKTOP_DIRECTORY, volume, false, path, sizeof(path)) ++ == B_OK) { ++ g_user_special_dirs[G_USER_DIRECTORY_DESKTOP] = g_strdup(path); ++ g_user_special_dirs[G_USER_DIRECTORY_DOWNLOAD] = g_strdup(path); ++ } else { ++ g_user_special_dirs[G_USER_DIRECTORY_DOCUMENTS] = NULL; ++ g_user_special_dirs[G_USER_DIRECTORY_DESKTOP] = NULL; ++ } ++ ++ if (find_directory(B_USER_DIRECTORY, volume, false, path, sizeof(path)) ++ == B_OK) { ++ g_user_special_dirs[G_USER_DIRECTORY_DOCUMENTS] = g_strdup(path); ++ } else ++ g_user_special_dirs[G_USER_DIRECTORY_DOWNLOAD] = NULL; ++ ++ g_user_special_dirs[G_USER_DIRECTORY_MUSIC] = NULL; ++ g_user_special_dirs[G_USER_DIRECTORY_PICTURES] = NULL; ++ g_user_special_dirs[G_USER_DIRECTORY_PUBLIC_SHARE] = NULL; ++ g_user_special_dirs[G_USER_DIRECTORY_TEMPLATES] = NULL; ++ g_user_special_dirs[G_USER_DIRECTORY_VIDEOS] = NULL; ++} ++#endif /* G_OS_HAIKU */ ++ + #if defined(G_OS_WIN32) + static void + load_user_special_dirs (void) diff --git a/dev-libs/glib/patches/pkgconfig_glib-1.2.10-installable.diff b/dev-libs/glib/patches/pkgconfig_glib-1.2.10-installable.diff deleted file mode 100644 index 4d427538f..000000000 --- a/dev-libs/glib/patches/pkgconfig_glib-1.2.10-installable.diff +++ /dev/null @@ -1,71 +0,0 @@ -diff -Naur glib-1.2.10-original/Makefile.am glib-1.2.10/Makefile.am ---- glib-1.2.10-original/Makefile.am 2009-01-22 23:29:09.000000000 +0000 -+++ glib-1.2.10/Makefile.am 2009-01-22 23:32:21.000000000 +0000 -@@ -1,5 +1,7 @@ - ## Process this file with automake to produce Makefile.in - -+ACLOCAL_AMFLAGS = -I m4 -+ - # require automake 1.4 - AUTOMAKE_OPTIONS = 1.4 - -@@ -7,8 +9,8 @@ - - configincludedir = $(pkglibdir)/include - --noinst_SCRIPTS=glib-config --#BUILT_SOURCES=glib-config -+bin_SCRIPTS=glib-config -+BUILT_SOURCES=glib-config - glib-config: glib-config.in - - INCLUDES = -DG_LOG_DOMAIN=g_log_domain_glib @GLIB_DEBUG_FLAGS@ -@@ -30,7 +32,7 @@ - gthread.pc.in - - --noinst_LTLIBRARIES = libglib.la -+lib_LTLIBRARIES = libglib.la - - libglib_la_SOURCES = \ - garray.c \ -@@ -60,11 +62,11 @@ - gutils.c - - glibincludedir=$(includedir)/glib-1.2 --noinst_HEADERS = \ -+glibinclude_HEADERS = \ - glib.h - --#noinst_DATA = \ --# glibconfig.h -+configinclude_DATA = \ -+ glibconfig.h - - CONFIGURE_DEPENDENCIES = acglib.m4 - -@@ -86,10 +88,10 @@ - testgdateparser_LDADD = libglib.la - - m4datadir = $(datadir)/aclocal --noinst_DATA = glib.m4 -+m4data_DATA = glib.m4 - - pkgconfigdir = $(libdir)/pkgconfig --noinst_DATA = glib.pc gmodule.pc gthread.pc -+pkgconfig_DATA = glib.pc gmodule.pc gthread.pc - - glibconfig.h.win32: $(top_builddir)/config.status $(top_srcdir)/glibconfig.h.win32.in - cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status -diff -Naur glib-1.2.10-original/configure.in glib-1.2.10/configure.in ---- glib-1.2.10-original/configure.in 2009-01-22 23:29:09.000000000 +0000 -+++ glib-1.2.10/configure.in 2009-01-22 23:30:28.000000000 +0000 -@@ -9,6 +9,8 @@ - # init autoconf (and check for presence of glist.c) - AC_INIT(glist.c) - -+AC_CONFIG_MACRO_DIR([m4]) -+ - # Save this value here, since automake will set cflags later - cflags_set=${CFLAGS+set} - diff --git a/dev-libs/gmp/gmp-5.1.1.recipe b/dev-libs/gmp/gmp-5.1.1.recipe index 8edc663a3..8f9f53dd8 100644 --- a/dev-libs/gmp/gmp-5.1.1.recipe +++ b/dev-libs/gmp/gmp-5.1.1.recipe @@ -1,29 +1,40 @@ SUMMARY="GMP - GNU Multiple Precision Arithmetic Library" -DESCRIPTION="GMP - GNU Multiple Precision Arithmetic Library" +DESCRIPTION=" +The GNU Multiple Precision Arithmetic Library (GMP) is a free library for \ +arbitrary-precision arithmetic, operating on signed integers, rational numbers, \ +and floating point numbers. There are no practical limits to the precision \ +except the ones implied by the available memory in the machine GMP runs on \ +(operand dimension limit is 2^(32)-1 bits on 32-bit machines and 2^37 bits on \ +64-bit machines). GMP has a rich set of functions, and the functions have a \ +regular interface. The basic interface is for C but wrappers exist for other \ +languages including Ada, C++, C#, OCaml, Perl, PHP, and Python. +" HOMEPAGE="http://gmplib.org/" SRC_URI="ftp://ftp.gmplib.org/pub/gmp-5.1.1/gmp-5.1.1.tar.xz" -CHECKSUM_MD5="485b1296e6287fa381e6015b19767989" +CHECKSUM_SHA256="4bd64d782fdeb61aeed45b434fca5246d66baa9de76f87cba30c38460d8834c2" LICENSE="GNU GPL v3 GNU LGPL v3" COPYRIGHT="1991-2013 Free Software Foundation, Inc." REVISION="1" ARCHITECTURES="x86 x86_gcc2" -PROVIDES="cmp:gmp = $portVersion compat >= 5.1 - lib:libgmp - lib:libgmp = 10 - lib:libgmp = 10.1.1" -REQUIRES="haiku >= $haikuVersion" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" +PROVIDES="gmp$secondaryArchSuffix = $portVersion compat >= 5.1 + lib:libgmp$secondaryArchSuffix = 10.1.1 compat >= 10 + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " BUILD_REQUIRES=" - haiku_devel >= $haikuVersion - cmd:gcc + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix cmd:libtool cmd:autoconf cmd:automake cmd:make " -SOURE_DIR="$portVersionedName" - BUILD() { libtoolize --force --copy --install @@ -36,7 +47,7 @@ BUILD() INSTALL() { - make install + make install includedir=$includeDir includeexecdir=$includeDir # prepare devel/lib prepareInstalledDevelLibs libgmp @@ -54,10 +65,10 @@ TEST() # ----- devel package PROVIDES_devel=" - libgmp = $portVersion - devel:libgmp = 10.1.1 compat >= 0 + gmp${secondaryArchSuffix}_devel = $portVersion + devel:libgmp$secondaryArchSuffix = 10.1.1 compat >= 0 " REQUIRES_devel=" - libgmp == $portVersion base + gmp$secondaryArchSuffix == $portVersion base " diff --git a/dev-libs/gmp/gmp-5.1.3.recipe b/dev-libs/gmp/gmp-5.1.3.recipe new file mode 100644 index 000000000..8abc19575 --- /dev/null +++ b/dev-libs/gmp/gmp-5.1.3.recipe @@ -0,0 +1,73 @@ +SUMMARY="GMP - GNU Multiple Precision Arithmetic Library" +DESCRIPTION=" +The GNU Multiple Precision Arithmetic Library (GMP) is a free library for \ +arbitrary-precision arithmetic, operating on signed integers, rational numbers, \ +and floating point numbers. There are no practical limits to the precision \ +except the ones implied by the available memory in the machine GMP runs on \ +(operand dimension limit is 2^(32)-1 bits on 32-bit machines and 2^37 bits on \ +64-bit machines). GMP has a rich set of functions, and the functions have a \ +regular interface. The basic interface is for C but wrappers exist for other \ +languages including Ada, C++, C#, OCaml, Perl, PHP, and Python. +" +HOMEPAGE="http://gmplib.org/" +SRC_URI="http://ftp.gnu.org/gnu/gmp/gmp-5.1.3.tar.xz" +CHECKSUM_SHA256="dee2eda37f4ff541f30019932db0c37f6f77a30ba3609234933b1818f9b07071" +LICENSE="GNU GPL v3 + GNU LGPL v3" +COPYRIGHT="1991-2013 Free Software Foundation, Inc." +REVISION="1" +ARCHITECTURES="x86 x86_gcc2 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" +PROVIDES="gmp$secondaryArchSuffix = $portVersion compat >= 5.1 + lib:libgmp$secondaryArchSuffix = 10.1.3 compat >= 10 + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:libtool + cmd:autoconf + cmd:automake + cmd:make + " + +BUILD() +{ + libtoolize --force --copy --install + aclocal + autoconf + automake --add-missing + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install includedir=$includeDir includeexecdir=$includeDir + + # prepare devel/lib + prepareInstalledDevelLibs libgmp + + # devel package + packageEntries devel \ + $developDir +} + +TEST() +{ + make check +} + +# ----- devel package + +PROVIDES_devel=" + gmp${secondaryArchSuffix}_devel = $portVersion + devel:libgmp$secondaryArchSuffix = 10.1.3 compat >= 0 + " +REQUIRES_devel=" + gmp$secondaryArchSuffix == $portVersion base + " diff --git a/dev-libs/gmp/gmp-6.0.0.recipe b/dev-libs/gmp/gmp-6.0.0.recipe new file mode 100644 index 000000000..f276b0fad --- /dev/null +++ b/dev-libs/gmp/gmp-6.0.0.recipe @@ -0,0 +1,73 @@ +SUMMARY="GMP - GNU Multiple Precision Arithmetic Library" +DESCRIPTION=" +The GNU Multiple Precision Arithmetic Library (GMP) is a free library for \ +arbitrary-precision arithmetic, operating on signed integers, rational numbers, \ +and floating point numbers. There are no practical limits to the precision \ +except the ones implied by the available memory in the machine GMP runs on \ +(operand dimension limit is 2^(32)-1 bits on 32-bit machines and 2^37 bits on \ +64-bit machines). GMP has a rich set of functions, and the functions have a \ +regular interface. The basic interface is for C but wrappers exist for other \ +languages including Ada, C++, C#, OCaml, Perl, PHP, and Python. +" +HOMEPAGE="http://gmplib.org/" +SRC_URI="http://ftp.gnu.org/gnu/gmp/gmp-6.0.0a.tar.xz" +CHECKSUM_SHA256="9156d32edac6955bc53b0218f5f3763facb890b73a835d5e1b901dcf8eb8b764" +LICENSE="GNU GPL v3 + GNU LGPL v3" +COPYRIGHT="1991-2014 Free Software Foundation, Inc." +REVISION="1" +ARCHITECTURES="x86 x86_gcc2 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" +PROVIDES="gmp$secondaryArchSuffix = $portVersion compat >= 6.0 + lib:libgmp$secondaryArchSuffix = 10.2.0 compat >= 10 + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:libtool + cmd:autoconf + cmd:automake + cmd:make + " + +BUILD() +{ + libtoolize --force --copy --install + aclocal + autoconf + automake --add-missing + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install includedir=$includeDir includeexecdir=$includeDir + + # prepare devel/lib + prepareInstalledDevelLibs libgmp + + # devel package + packageEntries devel \ + $developDir +} + +TEST() +{ + make check +} + +# ----- devel package + +PROVIDES_devel=" + gmp${secondaryArchSuffix}_devel = $portVersion + devel:libgmp$secondaryArchSuffix = 10.2.0 compat >= 10 + " +REQUIRES_devel=" + gmp$secondaryArchSuffix == $portVersion base + " diff --git a/dev-libs/gnulib/gnulib-2013_12_17.recipe b/dev-libs/gnulib/gnulib-2013_12_17.recipe new file mode 100644 index 000000000..272604b39 --- /dev/null +++ b/dev-libs/gnulib/gnulib-2013_12_17.recipe @@ -0,0 +1,53 @@ +SUMMARY="A library of common routines to be shared at the source level" +DESCRIPTION="Gnulib is a source code library that provides basic functionality \ +to programs and libraries. Many software packages make use of Gnulib to avoid \ +reinventing the portability wheel. +Gnulib is intended to be the canonical source for most of the important \ +“portability†and/or common files for software projects. +These are files intended to be shared at the source level; Gnulib is not a \ +typical library meant to be installed and linked against. Thus, unlike most \ +projects, Gnulib does not normally generate a source tarball distribution; \ +instead, developers grab modules directly from the source repository. +" +HOMEPAGE="http://www.gnu.org/software/gnulib" +SRC_URI="git+git://git.savannah.gnu.org/gnulib.git" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" +LICENSE="GNULIB" +COPYRIGHT="1985-2013 Free Software Foundation." + +PROVIDES=" + gnulib = $portVersion + cmd:gnulib_tool$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES="" # No build, no requirements + +BUILD_PREREQUIRES="" # No build, no requirements + +BUILD() +{ + # Nothing to build + exit 0 +} + +INSTALL() +{ + # Try to install gnulib-tool + + mkdir -p $dataDir/gnulib $binDir + + cp gnulib-tool $dataDir/gnulib/gnulib_tool # Fix binary name in help + cp -R check-copyright check-module posix-modules build-aux config doc lib m4 modules tests top $dataDir/gnulib + ln -s $dataDir/gnulib/gnulib_tool $binDir/gnulib_tool +} + +TEST() +{ + make check +} diff --git a/dev-libs/gnulib/gnulib-9999.recipe b/dev-libs/gnulib/gnulib-9999.recipe deleted file mode 100644 index 35cbc5db5..000000000 --- a/dev-libs/gnulib/gnulib-9999.recipe +++ /dev/null @@ -1,24 +0,0 @@ -DESCRIPTION="Gnulib is a library of common routines intended to be shared at the source level" -HOMEPAGE="http://www.gnu.org/software/gnulib" -SRC_URI="git+git://git.savannah.gnu.org/gnulib.git" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -#CHECKSUM_MD5="" -BUILD() -{ - echo "gnulib isn't meant to be built." -} - -INSTALL() -{ - echo "gnulib isn't meant to be installed." -} - -TEST() -{ - make check -} - -LICENSE="GNULIB" -COPYRIGHT="1985-2011 Free Software Foundation." diff --git a/dev-libs/icu/icu-4.8.1.1.recipe b/dev-libs/icu/icu-4.8.1.1.recipe index e70217151..79708cb1f 100644 --- a/dev-libs/icu/icu-4.8.1.1.recipe +++ b/dev-libs/icu/icu-4.8.1.1.recipe @@ -3,9 +3,9 @@ HOMEPAGE="http://www.icu-project.org" LICENSE="ICU" COPYRIGHT="1997-2011 IBM Corporation and others." SRC_URI="http://download.icu-project.org/files/icu4c/4.8.1.1/icu4c-4_8_1_1-src.tgz" -CHECKSUM_MD5="ea93970a0275be6b42f56953cd332c17" +CHECKSUM_SHA256="0a70491c5fdfc5a0fa7429f820da73951e07d59a268b3d8ffe052eec65820ca1" REVISION="4" -ARCHITECTURES="x86_gcc2 x86 x86_64" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" SECONDARY_ARCHITECTURES="x86_gcc2 x86" PATCHES="icu-4.8.1.1.patch" @@ -28,6 +28,7 @@ BUILD_REQUIRES=" " BUILD_PREREQUIRES=" haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:awk cmd:gcc$secondaryArchSuffix cmd:ld$secondaryArchSuffix cmd:make @@ -85,27 +86,43 @@ TEST() make check } -DESCRIPTION="ICU is a mature, widely used set of C/C++ and Java libraries providing Unicode and Globalization support for software applications. ICU is widely portable and gives applications the same results on all platforms and between C/C++ and Java software. - -ICU is released under a nonrestrictive open source license that is suitable for use with both commercial software and with other open source or free software. - +DESCRIPTION=" +ICU is a mature, widely used set of C/C++ and Java libraries providing Unicode \ +and Globalization support for software applications. ICU is widely portable \ +and gives applications the same results on all platforms and between C/C++ and \ +Java software. +ICU is released under a nonrestrictive open source license that is suitable \ +for use with both commercial software and with other open source or free \ +software. Here are a few highlights of the services provided by ICU: - - * Code Page Conversion: Convert text data to or from Unicode and nearly any other character set or encoding. ICU's conversion tables are based on charset data collected by IBM over the course of many decades, and is the most complete available anywhere. - - * Collation: Compare strings according to the conventions and standards of a particular language, region or country. ICU's collation is based on the Unicode Collation Algorithm plus locale-specific comparison rules from the Common Locale Data Repository, a comprehensive source for this type of data. - - * Formatting: Format numbers, dates, times and currency amounts according the conventions of a chosen locale. This includes translating month and day names into the selected language, choosing appropriate abbreviations, ordering fields correctly, etc. This data also comes from the Common Locale Data Repository. - - * Time Calculations: Multiple types of calendars are provided beyond the traditional Gregorian calendar. A thorough set of timezone calculation APIs are provided. - - * Unicode Support: ICU closely tracks the Unicode standard, providing easy access to all of the many Unicode character properties, Unicode Normalization, Case Folding and other fundamental operations as specified by the Unicode Standard. - - * Regular Expression: ICU's regular expressions fully support Unicode while providing very competitive performance. - - * Bidi: support for handling text containing a mixture of left to right (English) and right to left (Arabic or Hebrew) data. - - * Text Boundaries: Locate the positions of words, sentences, paragraphs within a range of text, or identify locations that would be suitable for line wrapping when displaying the text." +* Code Page Conversion: Convert text data to or from Unicode and nearly any \ +other character set or encoding. ICU's conversion tables are based on charset \ +data collected by IBM over the course of many decades, and is the most \ +complete available anywhere. +* Collation: Compare strings according to the conventions and standards of a \ +particular language, region or country. ICU's collation is based on the \ +Unicode Collation Algorithm plus locale-specific comparison rules from the \ +Common Locale Data Repository, a comprehensive source for this type of data. +* Formatting: Format numbers, dates, times and currency amounts according the \ +conventions of a chosen locale. This includes translating month and day names \ +into the selected language, choosing appropriate abbreviations, ordering \ +fields correctly, etc. This data also comes from the Common Locale Data \ +Repository. +* Time Calculations: Multiple types of calendars are provided beyond the \ +traditional Gregorian calendar. A thorough set of timezone calculation APIs \ +are provided. +* Unicode Support: ICU closely tracks the Unicode standard, providing easy \ +access to all of the many Unicode character properties, Unicode Normalization, \ +Case Folding and other fundamental operations as specified by the Unicode \ +Standard. +* Regular Expression: ICU's regular expressions fully support Unicode while \ +providing very competitive performance. +* Bidi: support for handling text containing a mixture of left to right \ +(English) and right to left (Arabic or Hebrew) data. +* Text Boundaries: Locate the positions of words, sentences, paragraphs within \ +a range of text, or identify locations that would be suitable for line \ +wrapping when displaying the text. +" # ----- devel package ------------------------------------------------------- diff --git a/dev-libs/jansson/jansson-2.4.recipe b/dev-libs/jansson/jansson-2.4.recipe deleted file mode 100644 index c7f74eea7..000000000 --- a/dev-libs/jansson/jansson-2.4.recipe +++ /dev/null @@ -1,31 +0,0 @@ -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/jansson/jansson-2.5.recipe b/dev-libs/jansson/jansson-2.5.recipe new file mode 100644 index 000000000..e5f8073c3 --- /dev/null +++ b/dev-libs/jansson/jansson-2.5.recipe @@ -0,0 +1,74 @@ +SUMMARY="A C library for encoding, decoding and manipulating JSON data" +DESCRIPTION=" +Jansson is a C library for encoding, decoding and manipulating JSON data. It \ +features a simple and intuitive API and data model, comprehensive \ +documentation, no dependencies on other libraries, full unicode support \ +(UTF-8) and an extensive test suite. +" +HOMEPAGE="http://www.digip.org/jansson/" +SRC_URI="http://www.digip.org/jansson/releases/jansson-2.5.tar.gz" +CHECKSUM_SHA256="dd8bbfb38ad5031ce88e066b14d3b7e9c7113243daa7f4cde1994b7fc90bb1b1" +LICENSE="MIT" +COPYRIGHT="2009-2013 Petri Lehtinen + 2011-2012 Basile Starynkevitch + 2011-2012 Graeme Smecher" +REVISION="1" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + jansson$secondaryArchSuffix = $portVersion compat >= 2 + libjansson$secondaryArchSuffix = 4.5.0 compat >= 4 + lib:libjansson$secondaryArchSuffix = 4.5.0 compat >= 4 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:make + " + +BUILD() +{ + sed -i 's/-Wextra/ /g' Makefile.* + sed -i 's/-Wdeclaration-after-statement/ /g' Makefile.* + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install + + # devel package + prepareInstalledDevelLibs \ + libjansson + + fixPkgconfig + packageEntries devel \ + $developDir +} + +TEST() +{ + cd test + run-suites +} + +PROVIDES_devel=" + libjansson${secondaryArchSuffix}_devel = $portVersion + devel:jansson$secondaryArchSuffix = 4.5.0 compat >= 4 + devel:libjansson$secondaryArchSuffix = 4.5.0 compat >= 4 + " + +REQUIRES_devel=" + libjansson$secondaryArchSuffix == 4.5.0 base + " diff --git a/dev-libs/libcdio/libcdio-0.82.recipe b/dev-libs/libcdio/libcdio-0.82.recipe deleted file mode 100644 index cef7033b6..000000000 --- a/dev-libs/libcdio/libcdio-0.82.recipe +++ /dev/null @@ -1,27 +0,0 @@ -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.82.tar.gz" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="dev-libs/libiconv >= 1.12" -CHECKSUM_MD5="1c29b18e01ab2b966162bc727bf3c360" -BUILD() -{ - cd libcdio-0.82 - libtoolize --force --copy --install - aclocal - autoconf - automake - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd libcdio-0.82 - make install -} - -LICENSE="GNU GPL v3" -COPYRIGHT="2003-2009 Rocky Bernstein - 1996-1998 Gerd Knorr and Heiko Eißfeldt" diff --git a/dev-libs/libcdio/libcdio-0.83.recipe b/dev-libs/libcdio/libcdio-0.83.recipe deleted file mode 100644 index 8de9b8fe9..000000000 --- a/dev-libs/libcdio/libcdio-0.83.recipe +++ /dev/null @@ -1,27 +0,0 @@ -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.recipe b/dev-libs/libcdio/libcdio-0.90.recipe deleted file mode 100644 index 21184f10c..000000000 --- a/dev-libs/libcdio/libcdio-0.90.recipe +++ /dev/null @@ -1,28 +0,0 @@ -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/libcdio-0.92.recipe b/dev-libs/libcdio/libcdio-0.92.recipe new file mode 100644 index 000000000..468c53575 --- /dev/null +++ b/dev-libs/libcdio/libcdio-0.92.recipe @@ -0,0 +1,88 @@ +SUMMARY="A library to encapsulate CD-ROM reading and control" +DESCRIPTION=" +The libcdio package contains a library for CD-ROM and CD image \ +access. Applications wishing to be oblivious of the OS- and \ +device-dependent properties of a CD-ROM or of the specific details of \ +various CD-image formats may benefit from using this library. +" +LICENSE="GNU GPL v3" +COPYRIGHT="2002-2008,2010,2012, Rocky Bernstein and Herbert Valerio Riedel." +HOMEPAGE="http://www.gnu.org/software/libcdio" +SRC_URI="ftp://ftp.gnu.org/gnu/libcdio/libcdio-0.92.tar.gz" +CHECKSUM_SHA256="3336bf352aff43b5023e41a6d23525172a3b4ee433c467bd0fab5b8becb33fad" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PATCHES="libcdio-0.92.patchset" + +PROVIDES=" + libcdio$secondaryArchSuffix = $portVersion + cmd:cdda_player + cmd:cd_drive + cmd:cd_info + cmd:cd_read + cmd:iso_info + cmd:iso_read + cmd:mmc_tool + lib:libcdio$secondaryArchSuffix = 15.0.0 compat >= 15 + lib:libcdio++$secondaryArchSuffix = 0.0.2 compat >= 0 + lib:libiso9660$secondaryArchSuffix = 9.0.0 compat >= 9 + lib:libiso9660++$secondaryArchSuffix = 0.0.0 compat >= 0 + lib:libudf$secondaryArchSuffix = 0.0.0 compat >= 0 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libiconv$secondaryArchSuffix + lib:libncurses$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libiconv$secondaryArchSuffix + devel:libncurses$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:autoconf + cmd:automake + " + +BUILD() +{ + libtoolize --force --copy --install + aclocal -I m4 + autoconf + automake + runConfigure ./configure + make +} + +INSTALL() +{ + make install + + # set up the develop directory correctly + prepareInstalledDevelLibs libcdio + + # devel package + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + libcdio${secondaryArchSuffix}_devel = $portVersion + devel:libcdio${secondaryArchSuffix} = 15.0.0 compat >= 15 + devel:libcdio++${secondaryArchSuffix} = 0.0.2 compat >= 0 + devel:libiso9660${secondaryArchSuffix} = 9.0.0 compat >= 9 + devel:libiso9660++${secondaryArchSuffix} = 0.0.0 compat >= 0 + devel:libudf${secondaryArchSuffix} = 0.0.0 compat >= 0 + " +REQUIRES_devel=" + libcdio${secondaryArchSuffix} == $portVersion base + " diff --git a/dev-libs/libcdio/patches/libcdio-0.82.patch b/dev-libs/libcdio/patches/libcdio-0.82.patch deleted file mode 100644 index 4a63b6636..000000000 --- a/dev-libs/libcdio/patches/libcdio-0.82.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -urN libcdio-0.82/configure.ac libcdio-0.82-haiku/configure.ac ---- libcdio-0.82/configure.ac 2009-10-27 11:26:32.055574528 +0000 -+++ libcdio-0.82-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/libcdio/patches/libcdio-0.83.patch b/dev-libs/libcdio/patches/libcdio-0.83.patch deleted file mode 100644 index 4f1ed285f..000000000 --- a/dev-libs/libcdio/patches/libcdio-0.83.patch +++ /dev/null @@ -1,20 +0,0 @@ -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/libcdio/patches/libcdio-0.92.patchset b/dev-libs/libcdio/patches/libcdio-0.92.patchset new file mode 100644 index 000000000..ebeacb701 --- /dev/null +++ b/dev-libs/libcdio/patches/libcdio-0.92.patchset @@ -0,0 +1,45 @@ +From 0773ee4a7e18c12b02a7e83fca1c3f9796f61e73 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Sat, 19 Apr 2014 21:36:18 +0000 +Subject: gcc2 build fix + + +diff --git a/configure.ac b/configure.ac +index d83b885..de089f1 100755 +--- a/configure.ac ++++ b/configure.ac +@@ -241,7 +241,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ + 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 +@@ -623,6 +623,7 @@ if test "x$enable_cddb" != "xno"; then + [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/example/mmc1.c b/example/mmc1.c +index 29991e7..66b7a67 100644 +--- a/example/mmc1.c ++++ b/example/mmc1.c +@@ -90,9 +90,9 @@ main(int argc, const char *argv[]) + { + driver_return_code_t i_status; + bool b_erasable; ++ cdio_mmc_feature_profile_t disctype; + + i_status = mmc_get_disc_erasable(p_cdio, &b_erasable); +- cdio_mmc_feature_profile_t disctype; + if (DRIVER_OP_SUCCESS == i_status) + printf("-- Disc is %serasable.\n", b_erasable ? "" : "not "); + else +-- +1.8.3.4 + diff --git a/dev-libs/libclaw/libclaw-1.7.4.recipe b/dev-libs/libclaw/libclaw-1.7.4.recipe new file mode 100644 index 000000000..b9c8b138b --- /dev/null +++ b/dev-libs/libclaw/libclaw-1.7.4.recipe @@ -0,0 +1,106 @@ +SUMMARY="Absolutely Wonderful C++ Library" +DESCRIPTION=" +Claw is a generalist library written in C++ and providing various structures +and algorithms, like containers, string algorithms, tweeners, Bézier curves and +more. + +The story of Claw begins when I wanted to group all the small tools I have made +along my studies at the university. The library progress from time to time, +mostly when I need a new tool for Plee the Bear, a game I am actively working +on. + +Claw wants to be standard compliant and as portable as possible. Of course, +because I'm currently the only developer, the task is a little bit difficult +and you could have some minor problems. If you experience any problem, please +let me know by contacting me. + +Claw stands for \"C++ Library Absolutely Wonderful\". +" +HOMEPAGE="http://libclaw.sourceforge.net/" +SRC_URI="http://sourceforge.net/projects/libclaw/files/libclaw/$portVersion/libclaw-$portVersion.tar.gz" +CHECKSUM_SHA256="0be289da7f43b1892575f14b27860af5d1e1f6961eae11653d64e625fd7924b7" + +REVISION="1" +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2008-2014 Julien Jorge" +ARCHITECTURES="x86 ?x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + libclaw$secondaryArchSuffix = $portVersion + lib:libclaw_application$secondaryArchSuffix + lib:libclaw_configuration_file$secondaryArchSuffix + lib:libclaw_dynamic_library$secondaryArchSuffix + lib:libclaw_graphic$secondaryArchSuffix + lib:libclaw_logger$secondaryArchSuffix + lib:libclaw_net$secondaryArchSuffix + lib:libclaw_tween$secondaryArchSuffix + cmd:claw_config + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libstdc++$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libjpeg$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:libintl$secondaryArchSuffix + boost_devel${secondaryArchSuffix} + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:cmake >= 3.0 + cmd:make + " + +PATCHES="libclaw-$portVersion.patchset" +BUILD() +{ + cmake . -DCMAKE_INSTALL_PREFIX=$prefix + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libclaw_application libclaw_configuration_file \ + libclaw_dynamic_library libclaw_graphic libclaw_logger libclaw_net \ + libclaw_tween + + packageEntries devel $developDir $libDir/libclaw/ +} + +TEST() { + true +} + +PROVIDES_devel=" + libclaw${secondaryArchSuffix}_devel = $portVersion + devel:libclaw_application$secondaryArchSuffix + devel:libclaw_configuration_file$secondaryArchSuffix + devel:libclaw_dynamic_library$secondaryArchSuffix + devel:libclaw_graphic$secondaryArchSuffix + devel:libclaw_logger$secondaryArchSuffix + devel:libclaw_net$secondaryArchSuffix + devel:libclaw_tween$secondaryArchSuffix + " + +REQUIRES_devel=" + haiku$secondaryArchSuffix >= $haikuVersion + libclaw$secondaryArchSuffix == $portVersion base + " diff --git a/dev-libs/libclaw/patches/libclaw-1.7.4.patchset b/dev-libs/libclaw/patches/libclaw-1.7.4.patchset new file mode 100644 index 000000000..9d5527911 --- /dev/null +++ b/dev-libs/libclaw/patches/libclaw-1.7.4.patchset @@ -0,0 +1,146 @@ +From fa045ed22d1276b0c7deae6f5ca5cf71a58dbe3d Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sat, 5 Apr 2014 18:04:49 +0200 +Subject: Add missing include. + + +diff --git a/claw/socket_traits_unix.hpp b/claw/socket_traits_unix.hpp +index 16761ab..bc471b0 100644 +--- a/claw/socket_traits_unix.hpp ++++ b/claw/socket_traits_unix.hpp +@@ -31,6 +31,7 @@ + #define __CLAW_SOCKET_TRAITS_UNIX_HPP__ + + #include ++#include + #include + #include + #include +-- +1.8.3.4 + + +From f8da4cf7165d68763faa5f3955c79b2f1fff7e32 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sat, 5 Apr 2014 18:09:50 +0200 +Subject: Fix installation paths for Haiku. + + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 0716825..66607b0 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -27,12 +27,20 @@ if(SVN_ENTRIES) + endif(Subversion_FOUND) + endif(SVN_ENTRIES) + +-set( CLAW_CODE_DIR claw/code/ ) ++if (HAIKU) ++set( CLAW_INCLUDE_DIRECTORY "${CMAKE_INSTALL_PREFIX}/develop/headers/" ) ++set( CLAW_INSTALLDIR_DOC data/doc/libclaw${CLAW_VERSION_MAJOR}/ ) ++set( CLAW_TRANSLATIONS_INSTALL_DIR "data/locale" ) ++set( CLAW_INSTALLDIR_SOURCE develop/headers/claw/ ) ++else() + set( CLAW_INCLUDE_DIRECTORY "${CMAKE_INSTALL_PREFIX}/include/" ) +-set( CLAW_INSTALLDIR_SOURCE include/claw/ ) +-set( CLAW_INSTALLDIR_LIB lib/ ) + set( CLAW_INSTALLDIR_DOC share/doc/libclaw${CLAW_VERSION_MAJOR}/ ) + set( CLAW_TRANSLATIONS_INSTALL_DIR "share/locale" ) ++set( CLAW_INSTALLDIR_SOURCE include/claw/ ) ++endif() ++ ++set( CLAW_CODE_DIR claw/code/ ) ++set( CLAW_INSTALLDIR_LIB lib/ ) + set( CLAW_EXECUTABLE_DIR bin/ ) + + set( CLAW_LIBRARIES +diff --git a/cmake-module/CMakeLists.txt b/cmake-module/CMakeLists.txt +index a08a799..c486c5c 100644 +--- a/cmake-module/CMakeLists.txt ++++ b/cmake-module/CMakeLists.txt +@@ -3,7 +3,11 @@ cmake_minimum_required(VERSION 2.6) + project(claw:cmake-modules) + + if( NOT CLAW_CMAKE_MODULES_INSTALL_PATH ) +- set( CLAW_CMAKE_MODULES_INSTALL_PATH "share/cmake/libclaw" ) ++ if(HAIKU) ++ set( CLAW_CMAKE_MODULES_INSTALL_PATH "lib/${CMAKE_HAIKU_SECONDARY_ARCH}/libclaw/cmake/" ) ++ else() ++ set( CLAW_CMAKE_MODULES_INSTALL_PATH "share/cmake/libclaw" ) ++ endif() + endif( NOT CLAW_CMAKE_MODULES_INSTALL_PATH ) + + set( CLAW_CMAKE_MODULES +diff --git a/desktop/locale/libclaw/CMakeLists.txt b/desktop/locale/libclaw/CMakeLists.txt +index f0973ac..8de90bd 100644 +--- a/desktop/locale/libclaw/CMakeLists.txt ++++ b/desktop/locale/libclaw/CMakeLists.txt +@@ -22,7 +22,7 @@ macro(GETTEXT_CREATE_TRANSLATIONS_CUSTOM _targetName _potFile _firstPoFile) + + install( + FILES ${_gmoFile} +- DESTINATION share/locale/${_lang}/LC_MESSAGES ++ DESTINATION ${CLAW_TRANSLATIONS_INSTALL_DIR}/${_lang}/LC_MESSAGES + RENAME ${_potBasename}.mo + ) + +-- +1.8.3.4 + + +From 5850bb81673005cf0101b5470749792989a380eb Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 6 Apr 2014 14:34:30 +0200 +Subject: Fix claw-config to do the right thing. + + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 66607b0..89f0d4e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -28,19 +28,20 @@ if(SVN_ENTRIES) + endif(SVN_ENTRIES) + + if (HAIKU) +-set( CLAW_INCLUDE_DIRECTORY "${CMAKE_INSTALL_PREFIX}/develop/headers/" ) +-set( CLAW_INSTALLDIR_DOC data/doc/libclaw${CLAW_VERSION_MAJOR}/ ) +-set( CLAW_TRANSLATIONS_INSTALL_DIR "data/locale" ) +-set( CLAW_INSTALLDIR_SOURCE develop/headers/claw/ ) ++ set( CLAW_INCLUDE_DIRECTORY "${CMAKE_INSTALL_PREFIX}/develop/headers/${CMAKE_HAIKU_SECONDARY_ARCH}" ) ++ set( CLAW_INSTALLDIR_DOC data/doc/libclaw${CLAW_VERSION_MAJOR}/ ) ++ set( CLAW_TRANSLATIONS_INSTALL_DIR "data/locale" ) ++ set( CLAW_INSTALLDIR_SOURCE develop/headers/${CMAKE_HAIKU_SECONDARY_ARCH}/claw/ ) ++ set( CLAW_INSTALLDIR_LIB lib/${CMAKE_HAIKU_SECONDARY_ARCH}/ ) + else() +-set( CLAW_INCLUDE_DIRECTORY "${CMAKE_INSTALL_PREFIX}/include/" ) +-set( CLAW_INSTALLDIR_DOC share/doc/libclaw${CLAW_VERSION_MAJOR}/ ) +-set( CLAW_TRANSLATIONS_INSTALL_DIR "share/locale" ) +-set( CLAW_INSTALLDIR_SOURCE include/claw/ ) ++ set( CLAW_INCLUDE_DIRECTORY "${CMAKE_INSTALL_PREFIX}/include/" ) ++ set( CLAW_INSTALLDIR_DOC share/doc/libclaw${CLAW_VERSION_MAJOR}/ ) ++ set( CLAW_TRANSLATIONS_INSTALL_DIR "share/locale" ) ++ set( CLAW_INSTALLDIR_SOURCE include/claw/ ) ++ set( CLAW_INSTALLDIR_LIB lib/ ) + endif() + + set( CLAW_CODE_DIR claw/code/ ) +-set( CLAW_INSTALLDIR_LIB lib/ ) + set( CLAW_EXECUTABLE_DIR bin/ ) + + set( CLAW_LIBRARIES +diff --git a/claw-config.in b/claw-config.in +index 73b2b10..c0a8fa5 100755 +--- a/claw-config.in ++++ b/claw-config.in +@@ -140,7 +140,7 @@ while test $# -gt 0; do + echo -I$CLAW_INCLUDE_DIRECTORY + ;; + --libs) +- libdirs="-L${exec_prefix}/lib " ++ libdirs="-L${exec_prefix}/@CLAW_INSTALLDIR_LIB@ " + + echo -n "$libdirs" + echo $(print_libraries) +-- +1.8.3.4 + diff --git a/dev-libs/libcss/libcss-0.2.0_HEAD.recipe b/dev-libs/libcss/libcss-0.2.0_HEAD.recipe deleted file mode 100644 index bf8c96cf7..000000000 --- a/dev-libs/libcss/libcss-0.2.0_HEAD.recipe +++ /dev/null @@ -1,19 +0,0 @@ -DESCRIPTION="LibCSS is a CSS (Cascading Style Sheet) parser and selection engine" -HOMEPAGE="http://www.netsurf-browser.org/projects/libcss/" -SRC_URI="git://git.netsurf-browser.org/libcss.git" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="dev-libs/libparserutils >= 0.1.1" - -BUILD { - cd libcss-0.2.0-HEAD - make PREFIX=/boot/common -} - -INSTALL { - cd libcss-0.2.0-HEAD - make install PREFIX=/boot/common -} - -LICENSE="MIT" -COPYRIGHT="2007 - 2013 J-M Bell" diff --git a/dev-libs/libcss/libcss-0.2.0_git.recipe b/dev-libs/libcss/libcss-0.2.0_git.recipe new file mode 100644 index 000000000..649095dae --- /dev/null +++ b/dev-libs/libcss/libcss-0.2.0_git.recipe @@ -0,0 +1,55 @@ +#TODO:split out _devel +SUMMARY="A CSS parser and selection engine" +DESCRIPTION=" +LibCSS is a CSS (Cascading Style Sheet) parser and selection engine. +" +HOMEPAGE="http://www.netsurf-browser.org/projects/libcss/" +SRC_URI="git://git.netsurf-browser.org/libcss.git" +REVISION="1" +LICENSE="MIT" +COPYRIGHT="2007 - 2013 J-M Bell" + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + libcss$secondaryArchSuffix = $portVersion + lib:libcss$secondaryArchSuffix = $portVersion + devel:libcss$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix + lib:libparserutils${secondaryArchSuffix} + lib:libwapcaplet${secondaryArchSuffix} + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libparserutils${secondaryArchSuffix} >= 0.1.1 + devel:libwapcaplet${secondaryArchSuffix} >= 0.1.1 + netsurf_buildsystem >= 0 + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:perl + cmd:pkg_config + " + + +BUILD() +{ + make PREFIX=$prefix NSSHARED=/system/data/netsurf-buildsystem +} + +INSTALL() +{ + make install PREFIX=$prefix NSSHARED=/system/data/netsurf-buildsystem \ + I=/develop/headers/libcss + mkdir -p $prefix/develop/lib + mv -f $prefix/lib/*.a $prefix/develop/lib/ + mv -f $prefix/lib/pkgconfig $prefix/develop/lib/ +} diff --git a/dev-libs/libdwarf/libdwarf-20120410.recipe b/dev-libs/libdwarf/libdwarf-20120410.recipe index 01c895b41..695e0ef71 100644 --- a/dev-libs/libdwarf/libdwarf-20120410.recipe +++ b/dev-libs/libdwarf/libdwarf-20120410.recipe @@ -1,4 +1,7 @@ -DESCRIPTION="libdwarf and dwarfdump - library and utility for working with DWARF Debugging Information Format" +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" diff --git a/dev-libs/libdwarf/libdwarf-20130729.recipe b/dev-libs/libdwarf/libdwarf-20130729.recipe new file mode 100644 index 000000000..223fa1316 --- /dev/null +++ b/dev-libs/libdwarf/libdwarf-20130729.recipe @@ -0,0 +1,91 @@ +SUMMARY="libdwarf and dwarfdump - library and utility for working with DWARF Debugging Information Format" +DESCRIPTION=" +DWARF is a widely used, standardized debugging data format. DWARF was \ +originally designed along with Executable and Linkable Format (ELF), although \ +it is independent of object file formats. The name is a medieval fantasy \ +complement to ELF that has no official meaning, although the backronym \ +'Debugging With Attributed Record Formats' was later proposed. +The DWARF Debugging Information Format is of interest to programmers working on \ +compilers and debuggers (and anyone interested in reading or writing DWARF \ +information). DWARF uses a data structure called a Debugging Information Entry \ +(DIE) to represent each variable, type, procedure, etc. It was developed by a \ +committee (known as the PLSIG at the time) starting around 1991. Starting \ +around 1991 SGI developed the libdwarf and dwarfdump tools for internal use and \ +as part of SGI IRIX developer tools. Since that time dwarfdump and libdwarf \ +have been shipped (as an executable and archive respectively, not source) with \ +every release of the SGI MIPS/IRIX C compiler. In 1994 (I think the correct \ +year) SGI agreed to open-source libdwarf (and in 1999 to open-source dwarfdump) \ +so anyone could use them. +libdwarf allows reading, creation and manipulation of dwarf data. dwarfdump \ +(written in C) and dwarfdump2 (written in C++) do the same job, they let you \ +dump out, in readable form, the DWARF2, DWARF3, or DWARF4 data from an object \ +file, but dwarfdump2 does a better job in some respects. +This package includes dwarfdump2 and libdwarf, although the source package has \ +been patched to make dwarfdump and dwarfgen haiku compatible as well. +" +HOMEPAGE="http://www.prevanders.net/dwarf.html" +SRC_URI="http://www.prevanders.net/libdwarf-20130729.tar.gz" +CHECKSUM_SHA256="b6455d8616baf2883e2af91f006d6cbd583128fdfff46e3d1fae460bc223bb7b" +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 + " +REVISION="1" +ARCHITECTURES="x86 x86_gcc2" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" +SOURCE_DIR="dwarf-$portVersion" +PATCHES="libdwarf-20130729.patch" + +PROVIDES=" + lib:libdwarf$secondaryArchSuffix = $portVersion + cmd:dwarfdump = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libelf$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libelf$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +BUILD() +{ + cd libdwarf + runConfigure ./configure --enable-shared + make + cd ../dwarfdump2 + LDFLAGS="-L../libdwarf" ./configure $configureDirArgs + LIBRARY_PATH=$LIBRARY_PATH:%A/../libdwarf make +} + +INSTALL() +{ + cd libdwarf + make install bindir=$binDir libdir=$libDir incdir=$includeDir + cd ../dwarfdump2 + make install mandir=$manDir + packageEntries devel $developDir +} + +PROVIDES_devel=" + libdwarf${secondaryArchSuffix}_devel = $portVersion + devel:libdwarf$secondaryArchSuffix = $portVersion + " + +REQUIRES_devel=" + lib:libdwarf$secondaryArchSuffix == $portVersion base + " diff --git a/dev-libs/libdwarf/patches/libdwarf-20130729.patch b/dev-libs/libdwarf/patches/libdwarf-20130729.patch new file mode 100644 index 000000000..d3f8072dd --- /dev/null +++ b/dev-libs/libdwarf/patches/libdwarf-20130729.patch @@ -0,0 +1,168 @@ +diff -Naur dwarf-20130729/dwarfdump/Makefile.in dwarf-20130729-c89/dwarfdump/Makefile.in +--- dwarf-20130729/dwarfdump/Makefile.in 2013-02-02 19:13:55.031981568 +0000 ++++ dwarf-20130729-c89/dwarfdump/Makefile.in 2014-01-06 11:16:30.116916224 +0000 +@@ -154,9 +154,11 @@ + # will work and leave sensible permissions on the resulting files. + # Some adjustment might be required, see README. + install: all +- $(INSTALL) dwarfdump $(bindir)/dwarfdump +- $(INSTALL) $(srcdir)/dwarfdump.conf $(libdir)/dwarfdump.conf +- $(INSTALL) $(srcdir)/dwarfdump.1 $(man1dir)/dwarfdump.1 ++ install -m 0755 -d $(bindir) ++ install -m 0755 -d $(man1dir) ++ install -m 0755 dwarfdump $(bindir) ++ install -m 0755 dwarfdump.conf $(libdir) ++ install -m 0755 dwarfdump.1 $(man1dir) + + uninstall: + -rm -f $(bindir)/dwarfdump +diff -Naur dwarf-20130729/dwarfdump/print_die.c dwarf-20130729-c89/dwarfdump/print_die.c +--- dwarf-20130729/dwarfdump/print_die.c 2013-02-06 20:48:07.024903680 +0000 ++++ dwarf-20130729-c89/dwarfdump/print_die.c 2014-01-06 11:16:30.131596288 +0000 +@@ -3380,6 +3380,7 @@ + we have a serious botch. this FORM + defines the value as a .debug_info + global offset. */ ++ int res = 0; + Dwarf_Off cuoff = 0; + Dwarf_Off culen = 0; + Dwarf_Off die_overall_offset = 0; +@@ -3399,7 +3400,7 @@ + print_error(dbg,small_buf,DW_DLV_OK,0); + } + +- int res = dwarf_die_CU_offset_range(die,&cuoff, ++ res = dwarf_die_CU_offset_range(die,&cuoff, + &culen,&err); + DWARF_CHECK_COUNT(tag_tree_result,1); + if (res != DW_DLV_OK) { +diff -Naur dwarf-20130729/dwarfdump2/dwarfdump.cc dwarf-20130729-c89/dwarfdump2/dwarfdump.cc +--- dwarf-20130729/dwarfdump2/dwarfdump.cc 2013-07-30 16:12:36.033292288 +0000 ++++ dwarf-20130729-c89/dwarfdump2/dwarfdump.cc 2014-01-06 11:19:43.419168256 +0000 +@@ -47,6 +47,9 @@ + #include + #include // for sort + #include ++#if __GNUC__ == 2 ++#include ++#endif + + /* for 'open' */ + #include +@@ -2413,7 +2416,11 @@ + Compiler *pCompiler, Dwarf_Check_Categories category) + { + Dwarf_Check_Result result = pCompiler->results_[category]; ++#if __GNUC__ == 2 ++ cerr << std::setw(24) << ios::left << str << ++#else + cerr << std::setw(24) << std::left << str << ++#endif + IToDec(result.checks_,10) << + " " << + IToDec(result.errors_,10) << endl; +diff -Naur dwarf-20130729/dwarfdump2/Makefile.in dwarf-20130729-c89/dwarfdump2/Makefile.in +--- dwarf-20130729/dwarfdump2/Makefile.in 2013-02-02 19:16:44.038797312 +0000 ++++ dwarf-20130729-c89/dwarfdump2/Makefile.in 2014-01-06 12:53:29.018350080 +0000 +@@ -133,9 +133,11 @@ + # will work and leave sensible permissions on the resulting files. + # Some adjustment might be required, see README. + install: all +- $(INSTALL) dwarfdump $(bindir)/dwarfdump +- $(INSTALL) $(srcdir)/dwarfdump.1 $(man1dir)/dwarfdump.1 +- $(INSTALL) $(srcdir)/dwarfdump.conf $(libdir)/dwarfdump.conf ++ install -m 0755 -d $(bindir) ++ install -m 0755 -d $(man1dir) ++ install -m 0755 dwarfdump $(bindir) ++ install -m 0755 dwarfdump.conf $(libdir) ++ install -m 0755 dwarfdump.1 $(man1dir) + + uninstall: + -rm -f $(bindir)/dwarfdump +diff -Naur dwarf-20130729/dwarfgen/createirepformfrombinary.cc dwarf-20130729-c89/dwarfgen/createirepformfrombinary.cc +--- dwarf-20130729/dwarfgen/createirepformfrombinary.cc 2013-02-01 16:20:06.020971520 +0000 ++++ dwarf-20130729-c89/dwarfgen/createirepformfrombinary.cc 2014-01-06 11:16:30.163577856 +0000 +@@ -28,7 +28,6 @@ + #include // For memset etc + #include //open + #include //open +-#include "elf.h" + #include "gelf.h" + #include "strtabdata.h" + #include "dwarf.h" +diff -Naur dwarf-20130729/dwarfgen/createirepfrombinary.cc dwarf-20130729-c89/dwarfgen/createirepfrombinary.cc +--- dwarf-20130729/dwarfgen/createirepfrombinary.cc 2013-02-01 16:20:11.022282240 +0000 ++++ dwarf-20130729-c89/dwarfgen/createirepfrombinary.cc 2014-01-06 11:16:30.171442176 +0000 +@@ -30,7 +30,6 @@ + #include // For memset etc + #include //open + #include //open +-#include "elf.h" + #include "gelf.h" + #include "strtabdata.h" + #include "dwarf.h" +diff -Naur dwarf-20130729/dwarfgen/dwarfgen.cc dwarf-20130729-c89/dwarfgen/dwarfgen.cc +--- dwarf-20130729/dwarfgen/dwarfgen.cc 2013-02-01 16:20:17.023330816 +0000 ++++ dwarf-20130729-c89/dwarfgen/dwarfgen.cc 2014-01-06 11:16:30.179830784 +0000 +@@ -56,8 +56,8 @@ + #include // For memset etc + #include //open + #include //open ++#include + #include "general.h" +-#include "elf.h" + #include "gelf.h" + #include "strtabdata.h" + #include "dwarf.h" +diff -Naur dwarf-20130729/dwarfgen/irepattrtodbg.cc dwarf-20130729-c89/dwarfgen/irepattrtodbg.cc +--- dwarf-20130729/dwarfgen/irepattrtodbg.cc 2013-02-01 16:20:21.021495808 +0000 ++++ dwarf-20130729-c89/dwarfgen/irepattrtodbg.cc 2014-01-06 11:16:30.192937984 +0000 +@@ -30,7 +30,6 @@ + #include //open + #include //open + #include "general.h" +-#include "elf.h" + #include "gelf.h" + #include "strtabdata.h" + #include "dwarf.h" +diff -Naur dwarf-20130729/dwarfgen/ireptodbg.cc dwarf-20130729-c89/dwarfgen/ireptodbg.cc +--- dwarf-20130729/dwarfgen/ireptodbg.cc 2013-02-01 16:20:26.022544384 +0000 ++++ dwarf-20130729-c89/dwarfgen/ireptodbg.cc 2014-01-06 11:16:30.201064448 +0000 +@@ -28,7 +28,6 @@ + #include // For memset etc + #include //open + #include //open +-#include "elf.h" + #include "gelf.h" + #include "strtabdata.h" + #include "dwarf.h" +diff -Naur dwarf-20130729/libdwarf/gennames.c dwarf-20130729-c89/libdwarf/gennames.c +--- dwarf-20130729/libdwarf/gennames.c 2013-01-25 19:09:11.056885248 +0000 ++++ dwarf-20130729-c89/libdwarf/gennames.c 2014-01-06 11:16:30.209715200 +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 -Naur dwarf-20130729/libdwarf/Makefile.in dwarf-20130729-c89/libdwarf/Makefile.in +--- dwarf-20130729/libdwarf/Makefile.in 2013-07-28 17:58:54.056885248 +0000 ++++ dwarf-20130729-c89/libdwarf/Makefile.in 2014-01-06 11:16:30.217055232 +0000 +@@ -213,8 +214,11 @@ + 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 -d $(libdir) ++ 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 + rm -rf autom4te.cache diff --git a/dev-libs/libebml/libebml-1.3.0.recipe b/dev-libs/libebml/libebml-1.3.0.recipe new file mode 100644 index 000000000..6bab30d64 --- /dev/null +++ b/dev-libs/libebml/libebml-1.3.0.recipe @@ -0,0 +1,65 @@ +SUMMARY="libebml is a C++ library to parse EBML content (read/write)." +DESCRIPTION="libebml is a C++ library to parse EBML content (read/write)." +HOMEPAGE="http://www.matroska.org/" +SRC_URI="http://dl.matroska.org/downloads/libebml/libebml-1.3.0.tar.bz2" +CHECKSUM_SHA256="83b074d6b62715aa0080406ea84d33df2e44b5d874096640233a4db49b8096de" + +REVISION="1" + +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2005-2013 CoreCodec, Inc." + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + libebml$secondaryArchSuffix = $portVersion + lib:libebml$secondaryArchSuffix = 4 + " +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:sed + " + +PATCH() +{ + sed -i 's/^ifeq (BeOS/ifeq (Haiku/g' make/linux/Makefile + sed -i "s,/boot/home/config,$prefix,g" make/linux/Makefile + sed -i "s,^\(libdir\)=\(.*\)$,\1=$libDir,g" make/linux/Makefile + sed -i "s,^\(includedir\)=\(.*\)$,\1=$includeDir/ebml,g" make/linux/Makefile + sed -i 's/-Wextra//g' make/linux/Makefile + sed -i 's/\(#elif defined(__BEOS__)\)/\1 || defined(__HAIKU__)/g' \ + ebml/c/libebml_t.h +} + +BUILD() +{ + cd make/linux + make $jobArgs +} + +INSTALL() +{ + cd make/linux + make install + + prepareInstalledDevelLibs libebml + + packageEntries devel $developDir +} + +PROVIDES_devel=" + libebml${secondaryArchSuffix}_devel = $portVersion + devel:libebml$secondaryArchSuffix = 4 + " +REQUIRES_devel=" + libebml$secondaryArchSuffix == $portVersion base + " diff --git a/dev-libs/libedit/libedit-2012_06_01_3.0.recipe b/dev-libs/libedit/libedit-2012_06_01_3.0.recipe index a7ebed3d6..7663a3d7a 100644 --- a/dev-libs/libedit/libedit-2012_06_01_3.0.recipe +++ b/dev-libs/libedit/libedit-2012_06_01_3.0.recipe @@ -1,32 +1,38 @@ SUMMARY="A BSD licensed replacement for the GNU readline library" -DESCRIPTION="This is an autotool- and libtoolized port of the NetBSD Editline library (libedit). This Berkeley-style licensed command line editor library provides generic line editing, history, and tokenization functions, similar to those found in GNU Readline." +DESCRIPTION=" +This is an autotool- and libtoolized port of the NetBSD Editline library \ +(libedit). This Berkeley-style licensed command line editor library provides \ +generic line editing, history, and tokenization functions, similar to those \ +found in GNU Readline. +" LICENSE="BSD (3-clause)" COPYRIGHT="1992-2012 The NetBSD Foundation, Inc." HOMEPAGE="http://www.thrysoee.dk/editline/" SRC_URI="http://www.thrysoee.dk/editline/libedit-20120601-3.0.tar.gz" -CHECKSUM_MD5="e50f6a7afb4de00c81650f7b1a0f5aea" +CHECKSUM_SHA256="51f0f4b4a97b7ebab26e7b5c2564c47628cdb3042fd8ba8d0605c719d2541918" REVISION="1" ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86" PATCHES="libedit-2012_06_01_3.0.patch" PROVIDES=" - libedit = $portVersion - lib:libedit = 0.0.41 compat >= 0 + libedit$secondaryArchSuffix = $portVersion + lib:libedit$secondaryArchSuffix = 0.0.41 compat >= 0 " REQUIRES=" - haiku >= $haikuVersion - lib:libncurses + haiku$secondaryArchSuffix >= $haikuVersion + lib:libncurses$secondaryArchSuffix " BUILD_REQUIRES=" - devel:libncurses + devel:libncurses$secondaryArchSuffix " BUILD_PREREQUIRES=" - haiku_devel >= $haikuVersion + haiku${secondaryArchSuffix}_devel >= $haikuVersion cmd:aclocal cmd:autoreconf - cmd:gcc - cmd:ld + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix cmd:libtoolize cmd:make cmd:sed @@ -58,9 +64,9 @@ INSTALL() # ----- devel package ------------------------------------------------------- PROVIDES_devel=" - libedit_devel = $portVersion - devel:libedit = 0.0.41 compat >= 0 + libedit${secondaryArchSuffix}_devel = $portVersion + devel:libedit$secondaryArchSuffix = 0.0.41 compat >= 0 " REQUIRES_devel=" - libedit == $portVersion base + libedit$secondaryArchSuffix == $portVersion base " diff --git a/dev-libs/libelf/libelf-0.8.13.recipe b/dev-libs/libelf/libelf-0.8.13.recipe index ce1ff7e9d..6bf8245ee 100644 --- a/dev-libs/libelf/libelf-0.8.13.recipe +++ b/dev-libs/libelf/libelf-0.8.13.recipe @@ -1,24 +1,60 @@ -DESCRIPTION="libelf - ELF object file access library" +SUMMARY="libelf - ELF object file access library" +DESCRIPTION=" +Libelf lets you read, modify or create ELF files in an architecture-independent \ +way. The library takes care of size and endian issues, e.g. you can process a \ +file for SPARC processors on an Intel-based system. This library is a \ +clean-room rewrite of the System V Release 4 library and is source code \ +compatible with it. +" HOMEPAGE="http://www.mr511.de/software/english.html" SRC_URI="http://www.mr511.de/software/libelf-0.8.13.tar.gz" -CHECKSUM_MD5="4136d7b4c04df68b686570afa26988ac" +CHECKSUM_SHA256="591a9b4ec81c1f2042a97aa60564e0cb79d041c52faa7416acb38bc95bd2c76d" +LICENSE="GNU LGPL v2" +COPYRIGHT="1995-2008 Michael Riepe" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" +ARCHITECTURES="x86 x86_gcc2" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" +PATCHES="libelf-0.8.13.patch" + +PROVIDES=" + lib:libelf$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:autoreconf + cmd:make + " + BUILD() { - cd libelf-0.8.13 - libtoolize -fci - autoreconf - ./configure --enable-gnu-names --prefix=$(finddir B_COMMON_DIRECTORY) - make + libtoolize -fci + autoreconf + runConfigure ./configure + make } INSTALL() { - cd libelf-0.8.13 - make install instroot=$DESTDIR - make install-compat instroot=$DESTDIR + make install + make install-compat + prepareInstalledDevelLib libelf + packageEntries devel $developDir } -LICENSE="GNU LGPL v2" -COPYRIGHT="1995-2008 Michael Riepe" + +PROVIDES_devel=" + libelf${secondaryArchSuffix}_devel = $portVersion + devel:libelf$secondaryArchSuffix = $portVersion + " + +REQUIRES_devel=" + lib:libelf$secondaryArchSuffix == $portVersion base + " diff --git a/dev-libs/libevent/libevent-1.4.14b.recipe b/dev-libs/libevent/libevent-1.4.14b.recipe index 3681bbc1a..c63da7b12 100644 --- a/dev-libs/libevent/libevent-1.4.14b.recipe +++ b/dev-libs/libevent/libevent-1.4.14b.recipe @@ -3,7 +3,7 @@ DESCRIPTION="The libevent API provides a mechanism to execute a callback functio libevent is meant to replace the event loop found in event driven network servers. An application just needs to call event_dispatch() and then add or remove events dynamically without having to change the event loop." HOMEPAGE="http://www.libevent.org/" SRC_URI="http://monkey.org/~provos/libevent-1.4.14b-stable.tar.gz" -CHECKSUM_MD5="a00e037e4d3f9e4fe9893e8a2d27918c" +CHECKSUM_SHA256="afa61b476a222ba43fc7cca2d24849ab0bbd940124400cb699915d3c60e46301" LICENSE="BSD (3-clause)" COPYRIGHT="2000-2007 Niels Provos, 2005 Nick Mathewson, and other contributors." @@ -38,7 +38,7 @@ BUILD_PREREQUIRES=" cmd:libtoolize cmd:make " -SOURCE_DIR="$portVersionedName-stable" +SOURCE_DIR="libevent-${portVersion}-stable" PATCHES="libevent-1.4.14b.patch" diff --git a/dev-libs/libevent/libevent-2.0.21.recipe b/dev-libs/libevent/libevent-2.0.21.recipe index adde785c0..cf0e2dd87 100644 --- a/dev-libs/libevent/libevent-2.0.21.recipe +++ b/dev-libs/libevent/libevent-2.0.21.recipe @@ -1,39 +1,46 @@ -SUMMARY="Libevent - an event notification library" -DESCRIPTION="The libevent API provides a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached. Furthermore, libevent also support callbacks due to signals or regular timeouts. -libevent is meant to replace the event loop found in event driven network servers. An application just needs to call event_dispatch() and then add or remove events dynamically without having to change the event loop." +SUMMARY="An event notification library" +DESCRIPTION=" +The libevent API provides a mechanism to execute a callback function when a \ +specific event occurs on a file descriptor or after a timeout has been \ +reached. Furthermore, libevent also support callbacks due to signals or \ +regular timeouts. +libevent is meant to replace the event loop found in event driven network \ +servers. An application just needs to call event_dispatch() and then add or \ +remove events dynamically without having to change the event loop. +" HOMEPAGE="http://www.libevent.org/" SRC_URI="https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz" -CHECKSUM_MD5="b2405cc9ebf264aa47ff615d9de527a2" +CHECKSUM_SHA256="22a530a8a5ba1cb9c080cba033206b17dacd21437762155c6d30ee6469f574f5" LICENSE="BSD (3-clause)" COPYRIGHT="2000-2007 Niels Provos, 2005 Nick Mathewson, and other contributors." -REVISION="1" +REVISION="5" ARCHITECTURES="x86_gcc2 x86" - SECONDARY_ARCHITECTURES="x86_gcc2 x86" PROVIDES=" - cmd:event_rpcgen.py - lib:libevent$secondaryArchSuffix = 2.0_5.1.9 compat >= 2.0_5 + libevent${secondaryArchSuffix} = ${portVersion} + cmd:event_rpcgen.py$secondaryArchSuffix lib:libevent$secondaryArchSuffix = 5.1.9 compat >= 5 lib:libevent_2.0$secondaryArchSuffix = 5.1.9 compat >= 5 lib:libevent_core_2.0$secondaryArchSuffix = 5.1.9 compat >= 5 lib:libevent_extra_2.0$secondaryArchSuffix = 5.1.9 compat >= 5 lib:libevent_pthreads_2.0$secondaryArchSuffix = 5.1.9 compat >= 5 - lib:libevent_openssl_2.0$secondaryArchSuffix= 5.1.9 compat >= 5 + lib:libevent_openssl_2.0$secondaryArchSuffix = 5.1.9 compat >= 5 lib:libevent_core$secondaryArchSuffix = 5.1.9 compat >= 5 lib:libevent_extra$secondaryArchSuffix = 5.1.9 compat >= 5 lib:libevent_pthreads$secondaryArchSuffix = 5.1.9 compat >= 5 - lib:libevent_openssl$secondaryArchSuffix= 5.1.9 compat >= 5 + lib:libevent_openssl$secondaryArchSuffix = 5.1.9 compat >= 5 " REQUIRES=" haiku$secondaryArchSuffix >= $haikuVersion - lib:libnetwork$secondaryArchSuffix >= $haikuVersion lib:libssl$secondaryArchSuffix lib:libcrypto$secondaryArchSuffix - lib:libnetwork >= $haikuVersion + cmd:python " +# haiku${secondaryArchSuffix} doesn't define included libraries yet +# lib:libnetwork$secondaryArchSuffix >= $haikuVersion BUILD_REQUIRES=" devel:libssl$secondaryArchSuffix devel:libcrypto$secondaryArchSuffix @@ -45,12 +52,14 @@ BUILD_PREREQUIRES=" cmd:aclocal cmd:autoconf cmd:automake + cmd:awk cmd:gcc$secondaryArchSuffix cmd:ld$secondaryArchSuffix cmd:libtoolize cmd:make + cmd:python " -SOURCE_DIR="$portVersionedName-stable" +SOURCE_DIR="libevent-${portVersion}-stable" PATCHES="libevent-2.0.21.patch" @@ -77,10 +86,11 @@ INSTALL() libevent_pthreads \ libevent_openssl - mv .libs/libevent_core.* \ - .libs/libevent_extra.* \ - .libs/libevent_pthreads.* \ - .libs/libevent_openssl.* \ + cp .libs/libevent-*.so* \ + .libs/libevent_core-*.so* \ + .libs/libevent_extra-*.so* \ + .libs/libevent_pthreads-*.so* \ + .libs/libevent_openssl-*.so* \ $developLibDir fixPkgconfig @@ -99,8 +109,8 @@ PROVIDES_devel=" lib:libevent_extra_2.0$secondaryArchSuffix = 5.1.9 compat >= 5 lib:libevent_pthreads_2.0$secondaryArchSuffix = 5.1.9 compat >= 5 lib:libevent_openssl_2.0$secondaryArchSuffix = 5.1.9 compat >= 5 - devel:libevent$secondaryArchSuffix = 2.0_5.1.9 compat >= 2.0_5 devel:libevent$secondaryArchSuffix = 5.1.9 compat >= 5 + devel:libevent_2.0$secondaryArchSuffix = 5.1.9 compat >= 5 devel:libevent_core_2.0$secondaryArchSuffix = 5.1.9 compat >= 5 devel:libevent_extra_2.0$secondaryArchSuffix = 5.1.9 compat >= 5 devel:libevent_pthreads_2.0$secondaryArchSuffix = 5.1.9 compat >= 5 @@ -112,7 +122,7 @@ PROVIDES_devel=" " REQUIRES_devel=" - libevent$secondaryArchSuffix == $portVersion base - devel:libssl - devel:libcrypto + libevent$secondaryArchSuffix == $portVersion base + devel:libssl$secondaryArchSuffix + devel:libcrypto$secondaryArchSuffix " diff --git a/dev-libs/libffi/libffi-3.0.11.recipe b/dev-libs/libffi/libffi-3.0.11.recipe deleted file mode 100644 index ad0a8b41c..000000000 --- a/dev-libs/libffi/libffi-3.0.11.recipe +++ /dev/null @@ -1,23 +0,0 @@ -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.13.recipe b/dev-libs/libffi/libffi-3.0.13.recipe new file mode 100644 index 000000000..c38b7cca6 --- /dev/null +++ b/dev-libs/libffi/libffi-3.0.13.recipe @@ -0,0 +1,64 @@ +SUMMARY="A portable, high level programming interface." +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.13.tar.gz" +CHECKSUM_SHA256="1dddde1400c3bcb7749d398071af88c3e4754058d2d4c0b3696c2f82dc5cf11c" +COPYRIGHT="1996-2013 Anthony Green, Red Hat, Inc and others." +LICENSE="MIT" +REVISION="1" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86 x86_64" + +PROVIDES=" + libffi$secondaryArchSuffix = $portVersion compat >= 3 + lib:libffi$secondaryArchSuffix = 6.0.1 compat >= 6 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:make + cmd:awk + " + +BUILD() +{ + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install + + mkdir -p $includeDir + mv -f $libDir/libffi-$portVersion/include/*.h* $includeDir + rm -rf $libDir/libffi-$portVersion + + prepareInstalledDevelLibs libffi + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir \ + $documentationDir +} + +PROVIDES_devel=" + libffi${secondaryArchSuffix}_devel = $portVersion + devel:libffi$secondaryArchSuffix = 6.0.1 compat >= 6 + " + +REQUIRES_devel=" + libffi$secondaryArchSuffix == $portVersion base + " diff --git a/dev-libs/libffi/libffi-3.0.9.recipe b/dev-libs/libffi/libffi-3.0.9.recipe deleted file mode 100644 index 784fae19e..000000000 --- a/dev-libs/libffi/libffi-3.0.9.recipe +++ /dev/null @@ -1,27 +0,0 @@ -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.9.tar.gz" -REVISION="1" -STATUS_HAIKU="stable" -CHECKSUM_MD5="1f300a7a7f975d4046f51c3022fa5ff1" -DEPEND="" -BUILD() -{ - cd libffi-3.0.9 - cp /boot/common/share/libtool/config/config.* . - libtoolize --force --copy - aclocal - automake - autoconf - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd libffi-3.0.9 - make install -} - -COPYRIGHT="1996-2009 Anthony Green, Red Hat, Inc and others." -LICENSE="MIT" diff --git a/dev-libs/libgcrypt/libgcrypt-1.4.5.recipe b/dev-libs/libgcrypt/libgcrypt-1.4.5.recipe deleted file mode 100644 index cb42a44dd..000000000 --- a/dev-libs/libgcrypt/libgcrypt-1.4.5.recipe +++ /dev/null @@ -1,22 +0,0 @@ -DESCRIPTION="libgcrypt" -HOMEPAGE="http://directory.fsf.org/project/libgcrypt/" -SRC_URI="ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.4.5.tar.gz" -REVISION="1" -STATUS_HAIKU="untested" -DEPEND="dev-libs/libgpg-error" -BUILD() -{ - cd libgcrypt-1.4.5 - libtoolize --force --copy --install - autogen.sh - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd libgcrypt-1.4.5 - make install -} -LICENSE="GNU LGPL v3" -COPYRIGHT="2000-2010 Free Software Foundation, Inc." diff --git a/dev-libs/libgcrypt/libgcrypt-1.5.0.recipe b/dev-libs/libgcrypt/libgcrypt-1.5.0.recipe deleted file mode 100644 index a9b064944..000000000 --- a/dev-libs/libgcrypt/libgcrypt-1.5.0.recipe +++ /dev/null @@ -1,26 +0,0 @@ -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/libgcrypt-1.5.3.recipe b/dev-libs/libgcrypt/libgcrypt-1.5.3.recipe new file mode 100644 index 000000000..f7d6e9146 --- /dev/null +++ b/dev-libs/libgcrypt/libgcrypt-1.5.3.recipe @@ -0,0 +1,65 @@ +SUMMARY="GNU's basic cryptographic library." +DESCRIPTION=" +Libgcrypt is a general purpose crypto library based on the code \ +used in GnuPG. +" +LICENSE="GNU LGPL v3" +COPYRIGHT="2000-2013 Free Software Foundation, Inc." +HOMEPAGE="http://directory.fsf.org/project/libgcrypt/" +SRC_URI="ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.5.3.tar.bz2" +CHECKSUM_SHA256="bcf5334e7da352c45de6aec5d2084ce9a1d30029ff4a4a5da13f1848874759d1" +REVISION="2" +ARCHITECTURES="x86" + +PROVIDES=" + libgcrypt = $portVersion compat >= 1.5 + lib:libgcrypt = 11.8.2 compat >= 11 + " + +REQUIRES=" + haiku >= $haikuVersion + lib:libgpg_error + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:libgpg_error + " + +BUILD_PREREQUIRES=" + cmd:autoconf + cmd:make + cmd:gcc + " + +PATCHES="libgcrypt-1.5.3.patch" + +BUILD() +{ + autoconf + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libgcrypt + + packageEntries devel \ + $developDir $binDir +} + +PROVIDES_devel=" + libgcrypt_devel = $portVersion compat >= 1.5 + devel:libgcrypt = 11.8.2 compat >= 11 + cmd:dumpsexp = $portVersion compat >= 1.5 + cmd:libgcrypt_config = $portVersion compat >= 1.5 + cmd:hmac256 = $portVersion compat >= 1.5 + " + +REQUIRES_devel=" + libgcrypt == $portVersion base + libgpg_error_devel + " diff --git a/dev-libs/libgcrypt/patches/libgcrypt-1.4.4.patch b/dev-libs/libgcrypt/patches/libgcrypt-1.4.4.patch deleted file mode 100644 index e923a59ba..000000000 --- a/dev-libs/libgcrypt/patches/libgcrypt-1.4.4.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff -Naur libgcrypt-1.4.4-orig/configure.ac libgcrypt-1.4.4/configure.ac ---- libgcrypt-1.4.4-orig/configure.ac 2009-03-08 17:29:52.000000000 +0000 -+++ libgcrypt-1.4.4/configure.ac 2009-03-08 17:59:06.000000000 +0000 -@@ -564,6 +564,8 @@ - AC_SEARCH_LIBS(setsockopt, [socket], , - [AC_SEARCH_LIBS(setsockopt, [socket], , , [-lnsl])]) - AC_SEARCH_LIBS(setsockopt, [nsl]) -+# Haiku has everything in -lnetwork -+AC_SEARCH_LIBS(socket, [network]) - - ################################## - #### Checks for header files. #### -diff -Naur libgcrypt-1.4.4-orig/src/ath.c libgcrypt-1.4.4/src/ath.c ---- libgcrypt-1.4.4-orig/src/ath.c 2009-03-08 17:29:52.000000000 +0000 -+++ libgcrypt-1.4.4/src/ath.c 2009-03-08 17:59:06.000000000 +0000 -@@ -24,11 +24,6 @@ - - #include /* Right: We need to use assert and not gcry_assert. */ - #include --#ifdef HAVE_SYS_SELECT_H --# include --#else --# include --#endif - #include - #ifndef _WIN32 - #include -diff -Naur libgcrypt-1.4.4-orig/src/ath.h libgcrypt-1.4.4/src/ath.h ---- libgcrypt-1.4.4-orig/src/ath.h 2009-03-08 17:29:52.000000000 +0000 -+++ libgcrypt-1.4.4/src/ath.h 2009-03-08 17:59:06.000000000 +0000 -@@ -25,6 +25,11 @@ - #include - #else - #include -+#ifdef HAVE_SYS_SELECT_H -+# include -+#else -+# include -+#endif - #include - #endif - #include diff --git a/dev-libs/libgcrypt/patches/libgcrypt-1.4.5.patch b/dev-libs/libgcrypt/patches/libgcrypt-1.4.5.patch deleted file mode 100644 index 2ed4c33d7..000000000 --- a/dev-libs/libgcrypt/patches/libgcrypt-1.4.5.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -Naur libgcrypt-1.4.5/configure.ac libgcrypt-1.4.5-haiku/configure.ac ---- libgcrypt-1.4.5/configure.ac 2009-12-11 15:43:15.025165824 +0000 -+++ libgcrypt-1.4.5-haiku/configure.ac 2010-04-27 00:48:26.807141376 +0000 -@@ -574,12 +574,16 @@ - [AC_SEARCH_LIBS(setsockopt, [socket], , , [-lnsl])]) - AC_SEARCH_LIBS(setsockopt, [nsl]) - -+# Haiku has everything in -lnetwork -+AC_SEARCH_LIBS(socket, [network])  -+ - ################################## - #### Checks for header files. #### - ################################## - - AC_HEADER_STDC - AC_CHECK_HEADERS(unistd.h sys/select.h) -+AC_CHECK_HEADERS(sys/select.h sys/time.h) - - ########################################## - #### Checks for typedefs, structures, #### diff --git a/dev-libs/libgcrypt/patches/libgcrypt-1.5.0.patch b/dev-libs/libgcrypt/patches/libgcrypt-1.5.3.patch similarity index 68% rename from dev-libs/libgcrypt/patches/libgcrypt-1.5.0.patch rename to dev-libs/libgcrypt/patches/libgcrypt-1.5.3.patch index 27c4ea590..0702f15b2 100644 --- a/dev-libs/libgcrypt/patches/libgcrypt-1.5.0.patch +++ b/dev-libs/libgcrypt/patches/libgcrypt-1.5.3.patch @@ -1,5 +1,5 @@ ---- 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 +--- libgcrypt-1.5.3/configure.ac 2011-06-29 08:53:22.065011712 +0000 ++++ libgcrypt-1.5.3-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])]) diff --git a/dev-libs/libgpg_error/libgpg_error-1.10.recipe b/dev-libs/libgpg_error/libgpg_error-1.10.recipe deleted file mode 100644 index 9f673b8c1..000000000 --- a/dev-libs/libgpg_error/libgpg_error-1.10.recipe +++ /dev/null @@ -1,28 +0,0 @@ -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.12.recipe b/dev-libs/libgpg_error/libgpg_error-1.12.recipe new file mode 100644 index 000000000..234427854 --- /dev/null +++ b/dev-libs/libgpg_error/libgpg_error-1.12.recipe @@ -0,0 +1,63 @@ +SUMMARY="A library that defines common error values" +DESCRIPTION=" +This is a library that defines common error values for all GnuPG components. \ +Among these are GPG, GPGSM, GPGME, GPG-Agent, libgcrypt, Libksba, DirMngr, \ +Pinentry, SmartCard Daemon and more. +" +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2003-2013 g10 Code GmbH" +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.12.tar.bz2" +CHECKSUM_SHA256="cafc9ed6a87c53a35175d5a1220a96ca386696eef2fa059cc0306211f246e55f" +REVISION="2" +ARCHITECTURES="x86" + +PROVIDES=" + libgpg_error = $portVersion compat >= 1 + lib:libgpg_error = 0.10.0 compat >= 0 + cmd:gpg_error = $portVersion compat >= 1 + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:awk + cmd:make + cmd:gcc + " + +SOURCE_DIR="libgpg-error-$portVersion" + +PATCHES="libgpg_error-$portVersion.patch" + +BUILD() +{ + runConfigure ./configure + make +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libgpg-error + + packageEntries devel \ + $developDir $binDir/gpg-error-config +} + +PROVIDES_devel=" + libgpg_error_devel = $portVersion compat >= 1 + cmd:gpg_error_config = $portVersion compat >= 1 + devel:libgpg_error = 0.10.0 compat >= 0 + " + +REQUIRES_devel=" + libgpg_error == $portVersion + " diff --git a/dev-libs/libgpg_error/libgpg_error-1.7.recipe b/dev-libs/libgpg_error/libgpg_error-1.7.recipe deleted file mode 100644 index 22757c159..000000000 --- a/dev-libs/libgpg_error/libgpg_error-1.7.recipe +++ /dev/null @@ -1,20 +0,0 @@ -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.7.tar.bz2" -REVISION="1" -STATUS_HAIKU="untested" -DEPEND="" -CHECKSUM_MD5="62c0d09d1e76c5b6da8fff92314c4665" -BUILD() -{ - cd libgpg-error-1.7 - autoreconf -vfi -Im4 - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd libgpg-error-1.7 - make install -} diff --git a/dev-libs/libgpg_error/patches/libgpg_error-1.10.patch b/dev-libs/libgpg_error/patches/libgpg_error-1.12.patch similarity index 64% rename from dev-libs/libgpg_error/patches/libgpg_error-1.10.patch rename to dev-libs/libgpg_error/patches/libgpg_error-1.12.patch index 09e99ba4a..824e90fb6 100644 --- a/dev-libs/libgpg_error/patches/libgpg_error-1.10.patch +++ b/dev-libs/libgpg_error/patches/libgpg_error-1.12.patch @@ -1,5 +1,5 @@ ---- 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 +--- libgpg-error-1.12/src/mkerrcodes2.awk 2008-08-26 12:45:58.010747904 +0000 ++++ libgpg-error-1.12-haiku/src/mkerrcodes2.awk 2012-04-09 16:59:18.363855872 +0000 @@ -81,7 +81,7 @@ /^#/ { next; } diff --git a/dev-libs/libgpg_error/patches/libgpg_error-1.7.patch b/dev-libs/libgpg_error/patches/libgpg_error-1.7.patch deleted file mode 100644 index 39d7b3fb2..000000000 --- a/dev-libs/libgpg_error/patches/libgpg_error-1.7.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur libgpg-error-1.7-orig/src/mkerrcodes2.awk libgpg-error-1.7/src/mkerrcodes2.awk ---- libgpg-error-1.7-orig/src/mkerrcodes2.awk 2009-03-08 16:04:38.000000000 +0000 -+++ libgpg-error-1.7/src/mkerrcodes2.awk 2009-03-08 15:50:42.000000000 +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.13.1.recipe b/dev-libs/libiconv/libiconv-1.13.1.recipe index 1a1caf534..fc79a1225 100644 --- a/dev-libs/libiconv/libiconv-1.13.1.recipe +++ b/dev-libs/libiconv/libiconv-1.13.1.recipe @@ -9,9 +9,9 @@ LICENSE=" " COPYRIGHT="2000-2009 Free Software Foundation, Inc." SRC_URI="http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz" -CHECKSUM_MD5="7ab33ebd26687c744a37264a330bbe9a" +CHECKSUM_SHA256="55a36168306089009d054ccdd9d013041bfc3ab26be7033d107821f1c4949a49" REVISION="6" -ARCHITECTURES="x86_gcc2 x86 x86_64" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" SECONDARY_ARCHITECTURES="x86_gcc2 x86" PROVIDES=" @@ -94,105 +94,93 @@ TEST() } DESCRIPTION=" - For historical reasons, international text is often encoded using a - language or country dependent character encoding. With the advent of the - internet and the frequent exchange of text across countries - even the - viewing of a web page from a foreign country is a \"text exchange\" in this - context -, conversions between these encodings have become important. - They have also become a problem, because many characters which are present - in one encoding are absent in many other encodings. To solve this mess, - the Unicode encoding has been created. It is a super-encoding of all - others and is therefore the default encoding for new text formats like XML. - - Still, many computers still operate in locale with a traditional (limited) - character encoding. Some programs, like mailers and web browsers, must be - able to convert between a given text encoding and the user's encoding. - Other programs internally store strings in Unicode, to facilitate internal - processing, and need to convert between internal string representation - (Unicode) and external string representation (a traditional encoding) when - they are doing I/O. GNU libiconv is a conversion library for both kinds - of applications. - - This library provides an iconv() implementation, for use on systems which - don't have one, or whose implementation cannot convert from/to Unicode. - - It provides support for the encodings: - - European languages - ASCII, ISO-8859-{1,2,3,4,5,7,9,10,13,14,15,16}, KOI8-R, KOI8-U, - KOI8-RU, CP{1250,1251,1252,1253,1254,1257}, CP{850,866,1131}, - Mac{Roman,CentralEurope,Iceland,Croatian,Romania}, - Mac{Cyrillic,Ukraine,Greek,Turkish}, Macintosh - Semitic languages - ISO-8859-{6,8}, CP{1255,1256}, CP862, Mac{Hebrew,Arabic} - Japanese - EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP, ISO-2022-JP-2, ISO-2022-JP-1 - Chinese - EUC-CN, HZ, GBK, CP936, GB18030, EUC-TW, BIG5, CP950, BIG5-HKSCS, - BIG5-HKSCS:2004, BIG5-HKSCS:2001, BIG5-HKSCS:1999, ISO-2022-CN, - ISO-2022-CN-EXT - Korean - EUC-KR, CP949, ISO-2022-KR, JOHAB - Armenian - ARMSCII-8 - Georgian - Georgian-Academy, Georgian-PS - Tajik - KOI8-T - Kazakh - PT154, RK1048 - Thai - ISO-8859-11, TIS-620, CP874, MacThai - Laotian - MuleLao-1, CP1133 - Vietnamese - VISCII, TCVN, CP1258 - Platform specifics - HP-ROMAN8, NEXTSTEP - Full Unicode - UTF-8 - UCS-2, UCS-2BE, UCS-2LE - UCS-4, UCS-4BE, UCS-4LE - UTF-16, UTF-16BE, UTF-16LE - UTF-32, UTF-32BE, UTF-32LE - UTF-7 - C99, JAVA - Full Unicode, in terms of uint16_t or uint32_t (with machine dependent - endianness and alignment) - UCS-2-INTERNAL, UCS-4-INTERNAL - Locale dependent, in terms of 'char' or 'wchar_t' (with machine dependent - endianness and alignment, and with OS and locale dependent semantics) - char, wchar_t - The empty encoding name \"\" is equivalent to \"char\": it denotes the - locale dependent character encoding. - - When configured with the option --enable-extra-encodings, it also provides - support for a few extra encodings: - - European languages - CP{437,737,775,852,853,855,857,858,860,861,863,865,869,1125} - Semitic languages - CP864 - Japanese - EUC-JISX0213, Shift_JISX0213, ISO-2022-JP-3 - Chinese - BIG5-2003 (experimental) - Turkmen - TDS565 - Platform specifics - ATARIST, RISCOS-LATIN1 - - It can convert from any of these encodings to any other, through Unicode - conversion. - - It has also some limited support for transliteration, i.e. when a character - cannot be represented in the target character set, it can be approximated - through one or several similarly looking characters. Transliteration is - activated when \"//TRANSLIT\" is appended to the target encoding name. - - libiconv is for you if your application needs to support multiple character - encodings, but that support lacks from your system. - " +For historical reasons, international text is often encoded using a language \ +or country dependent character encoding. With the advent of the internet and \ +the frequent exchange of text across countries - even the viewing of a web \ +page from a foreign country is a \"text exchange\" in this context -, \ +conversions between these encodings have become important. They have also \ +become a problem, because many characters which are present in one encoding \ +are absent in many other encodings. To solve this mess, the Unicode encoding \ +has been created. It is a super-encoding of all others and is therefore the \ +default encoding for new text formats like XML. +Still, many computers still operate in locale with a traditional (limited) \ +character encoding. Some programs, like mailers and web browsers, must be able \ +to convert between a given text encoding and the user's encoding. Other \ +programs internally store strings in Unicode, to facilitate internal \ +processing, and need to convert between internal string representation \ +(Unicode) and external string representation (a traditional encoding) when \ +they are doing I/O. GNU libiconv is a conversion library for both kinds of \ +applications. +This library provides an iconv() implementation, for use on systems which \ +don't have one, or whose implementation cannot convert from/to Unicode. +It provides support for the encodings: +European languages +- ASCII, ISO-8859-{1,2,3,4,5,7,9,10,13,14,15,16}, KOI8-R, KOI8-U, KOI8-RU, \ +CP{1250,1251,1252,1253,1254,1257}, CP{850,866,1131}, \ +Mac{Roman,CentralEurope,Iceland,Croatian,Romania}, \ +Mac{Cyrillic,Ukraine,Greek,Turkish}, Macintosh +Semitic languages +- ISO-8859-{6,8}, CP{1255,1256}, CP862, Mac{Hebrew,Arabic} +Japanese +- EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP, ISO-2022-JP-2, ISO-2022-JP-1 +Chinese +- EUC-CN, HZ, GBK, CP936, GB18030, EUC-TW, BIG5, CP950, BIG5-HKSCS, \ +BIG5-HKSCS:2004, BIG5-HKSCS:2001, BIG5-HKSCS:1999, ISO-2022-CN, ISO-2022-CN-EXT +Korean +- EUC-KR, CP949, ISO-2022-KR, JOHAB +Armenian +- ARMSCII-8 +Georgian +- Georgian-Academy, Georgian-PS +Tajik +- KOI8-T +Kazakh +- PT154, RK1048 +Thai +- ISO-8859-11, TIS-620, CP874, MacThai +Laotian +- MuleLao-1, CP1133 +Vietnamese +- VISCII, TCVN, CP1258 +Platform specifics +- HP-ROMAN8, NEXTSTEP +Full Unicode +- UTF-8 +- UCS-2, UCS-2BE, UCS-2LE +- UCS-4, UCS-4BE, UCS-4LE +- UTF-16, UTF-16BE, UTF-16LE +- UTF-32, UTF-32BE, UTF-32LE +- UTF-7 +- C99, JAVA +Full Unicode, in terms of uint16_t or uint32_t (with machine dependent \ +endianness and alignment) +- UCS-2-INTERNAL, UCS-4-INTERNAL +Locale dependent, in terms of 'char' or 'wchar_t' (with machine dependent \ +endianness and alignment, and with OS and locale dependent semantics) +- char, wchar_t +- The empty encoding name \"\" is equivalent to \"char\": it denotes the \ +locale dependent character encoding. +When configured with the option --enable-extra-encodings, it also provides \ +support for a few extra encodings: +European languages +- CP{437,737,775,852,853,855,857,858,860,861,863,865,869,1125} +Semitic languages +- CP864 +Japanese +- EUC-JISX0213, Shift_JISX0213, ISO-2022-JP-3 +Chinese +- BIG5-2003 (experimental) +Turkmen +- TDS565 +Platform specifics +- ATARIST, RISCOS-LATIN1 +It can convert from any of these encodings to any other, through Unicode conversion. +It has also some limited support for transliteration, i.e. when a character \ +cannot be represented in the target character set, it can be approximated \ +through one or several similarly looking characters. Transliteration is \ +activated when \"//TRANSLIT\" is appended to the target encoding name. +libiconv is for you if your application needs to support multiple character encodings, but that support lacks from your system. +" # ----- devel package ------------------------------------------------------- diff --git a/dev-libs/libidl/libidl-0.6.8.recipe b/dev-libs/libidl/libidl-0.6.8.recipe new file mode 100644 index 000000000..af0895bf4 --- /dev/null +++ b/dev-libs/libidl/libidl-0.6.8.recipe @@ -0,0 +1,80 @@ +SUMMARY="Library for creating CORBA Interface Definition Language files" +DESCRIPTION=" +libIDL is a library for creating trees of CORBA Interface Definition Language \ +(IDL) files, which is a specification for defining portable interfaces. libIDL \ +was initially written for ORBit (the ORB from the GNOME project, and the \ +primary means of libIDL distribution). However, the functionality was designed \ +to be as reusable and portable as possible. +" +HOMEPAGE="http://andrewtv.org/libIDL/" +SRC_URI="http://andrewtv.org/libIDL/libIDL-0.6.8.tar.gz" +CHECKSUM_SHA256="50e8f7674815e42a6e8be32610838d9b7da91b3043784d2b69d17b79c7203e7b" +COPYRIGHT="1998-1999 Andrew T. Veliath" +LICENSE="GNU LGPL v2" +REVISION="1" +ARCHITECTURES="x86 ?x86_gcc2" +SECONDARY_ARCHITECTURES="x86 ?x86_gcc2" + +PROVIDES=" + libidl$secondaryArchSuffix = $portVersion + lib:libIDL$secondaryArchSuffix = $portVersion compat = 0.4.4 + lib:libIDL_0.6$secondaryArchSuffix = $portVersion compat = 0.4.4 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libglib + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libglib$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:libtoolize + cmd:autoconf + cmd:flex + cmd:bison + " + +PROVIDES_devel=" + libidl${secondaryArchSuffix}_devel = $portVersion + cmd:libIDL_config = $portVersion + devel:libIDL$secondaryArchSuffix = $portVersion + devel:libIDL_0.6$secondaryArchSuffix = $portVersion + " + +REQUIRES_devel=" + libidl$secondaryArchSuffix == $portVersion + " + +SOURCE_DIR="libIDL-$portVersion" + +PATCHES="libidl-0.6.8.patchset" + +BUILD() +{ + libtoolize -fci + aclocal + autoconf + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libIDL libIDL-0.6 + + fixDevelopLibDirReferences $binDir/libIDL-config \ + $libDir/libIDLConf.sh + + packageEntries devel \ + $developDir $binDir \ + $dataDir $infoDir \ + $libDir/libIDLConf.sh +} diff --git a/dev-libs/libidl/patches/libidl-0.6.8.patchset b/dev-libs/libidl/patches/libidl-0.6.8.patchset new file mode 100644 index 000000000..60c656103 --- /dev/null +++ b/dev-libs/libidl/patches/libidl-0.6.8.patchset @@ -0,0 +1,51 @@ +From 5b768320419c034d19d2f4646365c3e3f2b93ff8 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Mon, 9 Dec 2013 18:27:26 -0700 +Subject: Attempt to bring libIDL into the modern age + + +diff --git a/acinclude.m4 b/acinclude.m4 +index 0481a2f..0fc8e87 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -1,4 +1,15 @@ + dnl Autoconf extension macros for libIDL ++# GLIB_AC_DIVERT_BEFORE_HELP(STUFF) ++# --------------------------------- ++# Put STUFF early enough so that they are available for $ac_help expansion. ++# Handle both classic (<= v2.13) and modern autoconf ++AC_DEFUN([GLIB_AC_DIVERT_BEFORE_HELP], ++[ifdef([m4_divert_text], [m4_divert_text([NOTICE],[$1])], ++ [ifdef([AC_DIVERT], [AC_DIVERT([NOTICE],[$1])], ++ [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl ++$1 ++AC_DIVERT_POP()])])]) ++ + AC_DEFUN(AC_CPP_ACCEPT_IDL, + [AC_CACHE_CHECK([if C preprocessor likes IDL], + ac_cv_cpp_accept_idl, +diff --git a/configure.in b/configure.in +index 3b32bbe..a4af53d 100644 +--- a/configure.in ++++ b/configure.in +@@ -3,7 +3,7 @@ dnl Process this file with autoconf to produce a configure script. + + AC_INIT(IDL.h.new.in) + +-AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl ++GLIB_AC_DIVERT_BEFORE_HELP([ + # + # Making releases: + # LIBIDL_MICRO_VERSION += 1; +@@ -20,7 +20,7 @@ LIBIDL_INTERFACE_AGE=4 + LIBIDL_BINARY_AGE=8 + LIBIDL_LIBRARY_VERSION=$LIBIDL_MAJOR_VERSION.$LIBIDL_MINOR_VERSION.$LIBIDL_MICRO_VERSION + GLIB_VERSION_REQUIRED=1.2.0 +-AC_DIVERT_POP()dnl ++]) + + AC_SUBST(LIBIDL_MAJOR_VERSION) + AC_SUBST(LIBIDL_MINOR_VERSION) +-- +1.8.3.4 + diff --git a/dev-libs/libidn/libidn-1.9.recipe b/dev-libs/libidn/libidn-1.9.recipe new file mode 100644 index 000000000..500642dcf --- /dev/null +++ b/dev-libs/libidn/libidn-1.9.recipe @@ -0,0 +1,102 @@ +SUMMARY="A library to encode and decode internationalized domain names" +DESCRIPTION=" +GNU Libidn is a fully documented implementation of the Stringprep, Punycode \ +and IDNA specifications. Libidn's purpose is to encode and decode internationalized domain names. +" +HOMEPAGE="http://www.gnu.org/software/libidn/" +SRC_URI="http://ftpmirror.gnu.org/libidn/libidn-1.9.tar.gz" +CHECKSUM_SHA256="bd5d01e9e8b2d78b56828e7533a394239146cdca3965b4dd891508cbeb727470" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +REVISION="1" + +LICENSE=" + GNU GPL v3 + GNU LGPL v2.1 + " +COPYRIGHT=" + 2004-2008 Simon Josefsson + 1998, 1999 Tom Tromey + 2001 Red Hat Software + 1994-2007 Free Software Foundation + " + +PROVIDES=" + libidn = $portVersion + lib:libidn$secondaryArchSuffix = $portVersion + cmd:idn$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libiconv$secondaryArchSuffix + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libiconv$secondaryArchSuffix + gettext${secondaryArchSuffix}_libintl + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:gnulib_tool$secondaryArchSuffix + cmd:gperf + cmd:help2man$secondaryArchSuffix + cmd:libtoolize + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:make + cmd:makeinfo + " + +PATCHES="libidn-1.9.patch" + +BUILD() +{ + gnulib_tool --import --local-dir=gl/override --source-base=gl \ + --m4-base=gl/m4 --libtool --no-vc-files \ + csharpcomp-script error fdl gendocs getopt gnupload gpl-3.0 lgpl-2.1 \ + maintainer-makefile progname version-etc + + gnulib_tool --import --local-dir=lib/gl/override --source-base=lib/gl \ + --m4-base=lib/gl/m4 --lgpl=2 --libtool --macro-prefix=lgl --no-vc-files \ + gettext-h stdint striconv strverscmp + + libtoolize --force --copy --install + + # Libtoolize is going to ask us to add the contents of some files + # to aclocal.m4 + for i in m4/{libtool,lt{options,sugar,version,~obsolete}}.m4; do cat $i >> aclocal.m4; done + + aclocal -I m4 -I gl/m4 -I lib/gl/m4 + autoconf + automake --add-missing + + runConfigure ./configure --enable-shared + make +} + +INSTALL() +{ + make install + + prepareInstalledDevelLib libidn + fixPkgconfig + + packageEntries devel \ + $developDir \ + $documentationDir +} + +# ------ devel package ------------------------------------------------------ + +PROVIDES_devel=" + libidn${secondaryArchSuffix}_devel = $portVersion + devel:libidn$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + libidn$secondaryArchSuffix == $portVersion base + " diff --git a/dev-libs/libidn/patches/libidn-1.9.patch b/dev-libs/libidn/patches/libidn-1.9.patch new file mode 100644 index 000000000..75210c0fe --- /dev/null +++ b/dev-libs/libidn/patches/libidn-1.9.patch @@ -0,0 +1,11 @@ +diff -ur libidn-1.9-orig/configure.ac libidn-1.9/configure.ac +--- libidn-1.9-orig/configure.ac 2013-12-24 15:51:24.035913728 +0000 ++++ libidn-1.9/configure.ac 2013-12-24 16:39:55.968622080 +0000 +@@ -28,6 +28,7 @@ + AC_SUBST(LT_REVISION, 38) + AC_SUBST(LT_AGE, 5) + ++AC_CONFIG_MACRO_DIR([m4]) + AC_CONFIG_AUX_DIR([build-aux]) + AM_INIT_AUTOMAKE([1.10]) + AB_INIT diff --git a/dev-libs/liboil/liboil-0.3.17.recipe b/dev-libs/liboil/liboil-0.3.17.recipe index 1ac563a5b..20d19bad5 100644 --- a/dev-libs/liboil/liboil-0.3.17.recipe +++ b/dev-libs/liboil/liboil-0.3.17.recipe @@ -1,4 +1,6 @@ -DESCRIPTION="liboil is a library of simple functions that are optimized for various CPUs." +DESCRIPTION=" +liboil is a library of simple functions that are optimized for various CPUs. +" HOMEPAGE="http://liboil.freedesktop.org/wiki/" SRC_URI="http://liboil.freedesktop.org/download/liboil-0.3.17.tar.gz" REVISION="1" @@ -23,4 +25,4 @@ INSTALL() } LICENSE="BSD (2-clause)" -COPYRIGHT="2002-2005 David A. Schleef, All rights reserved." \ No newline at end of file +COPYRIGHT="2002-2005 David A. Schleef, All rights reserved." diff --git a/dev-libs/libparserutils/libparserutils-0.1.2_HEAD.recipe b/dev-libs/libparserutils/libparserutils-0.1.2_HEAD.recipe deleted file mode 100644 index cfe926525..000000000 --- a/dev-libs/libparserutils/libparserutils-0.1.2_HEAD.recipe +++ /dev/null @@ -1,19 +0,0 @@ -DESCRIPTION="LibParserUtils is a library for building efficient parsers" -HOMEPAGE="http://www.netsurf-browser.org/projects/libparserutils/" -SRC_URI="git://git.netsurf-browser.org/libparserutils.git" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="dev-util/buildsystem >= 0.0.1" - -BUILD { - cd libparserutils-0.1.2-HEAD - make PREFIX=/boot/common -} - -INSTALL { - cd libparserutils-0.1.2-HEAD - make install PREFIX=/boot/common -} - -LICENSE="MIT" -COPYRIGHT="2007 - 2013 J-M Bell" diff --git a/dev-libs/libparserutils/libparserutils-0.1.2_git.recipe b/dev-libs/libparserutils/libparserutils-0.1.2_git.recipe new file mode 100644 index 000000000..0ee101344 --- /dev/null +++ b/dev-libs/libparserutils/libparserutils-0.1.2_git.recipe @@ -0,0 +1,52 @@ +#TODO:split out _devel +SUMMARY="A library for building efficient parsers" +DESCRIPTION=" +LibParserUtils is a library for building efficient parsers. +" +HOMEPAGE="http://www.netsurf-browser.org/projects/libparserutils/" +SRC_URI="git://git.netsurf-browser.org/libparserutils.git" +REVISION="1" +LICENSE="MIT" +COPYRIGHT="2007 - 2013 J-M Bell" + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + libparserutils$secondaryArchSuffix = $portVersion + lib:libparserutils$secondaryArchSuffix = $portVersion + devel:libparserutils$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix + lib:libiconv${secondaryArchSuffix} + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libiconv${secondaryArchSuffix} + netsurf_buildsystem >= 0 + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:perl + " + + +BUILD() +{ + make PREFIX=$prefix NSSHARED=/system/data/netsurf-buildsystem +} + +INSTALL() +{ + make install PREFIX=$prefix NSSHARED=/system/data/netsurf-buildsystem \ + I=/develop/headers/libparserutils + mkdir -p $prefix/develop/lib + mv -f $prefix/lib/*.a $prefix/develop/lib/ + mv -f $prefix/lib/pkgconfig $prefix/develop/lib/ +} diff --git a/dev-libs/libpcre/libpcre-8.21.recipe b/dev-libs/libpcre/libpcre-8.21.recipe index 2a0093640..a34e8ded8 100644 --- a/dev-libs/libpcre/libpcre-8.21.recipe +++ b/dev-libs/libpcre/libpcre-8.21.recipe @@ -13,33 +13,39 @@ COPYRIGHT=" 1997-2011 University of Cambridge 2007-2011, Google Inc. All rights reserved. " -SRC_URI="ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.21.tar.bz2" -CHECKSUM_MD5="0a7b592bea64b7aa7f4011fc7171a730" +SRC_URI="http://sourceforge.net/projects/pcre/files/pcre/8.21/pcre-8.21.tar.bz2" +CHECKSUM_SHA256="a4b8509d11fc2764fb4e1415b764ad2c214459edc011ce48aeeb6bbe1ac599e3" REVISION="5" ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86 x86_gcc2" PROVIDES=" - libpcre = $portVersion - cmd:pcregrep = $portVersion compat >= 8 - cmd:pcretest = $portVersion compat >= 8 - lib:libpcre = 0.0.1 compat >= 0 - lib:libpcrecpp = 0.0.1 compat >= 0 - lib:libpcreposix = 0.0.1 compat >= 0 + libpcre${secondaryArchSuffix} = $portVersion + lib:libpcre${secondaryArchSuffix} = 0.0.1 compat >= 0 + lib:libpcrecpp${secondaryArchSuffix} = 0.0.1 compat >= 0 + lib:libpcreposix${secondaryArchSuffix} = 0.0.1 compat >= 0 " +if [ -z "$secondaryArchSuffix" ];then +PROVIDES="$PROVIDES + cmd:pcregrep = $portVersion compat >= 8 + cmd:pcretest = $portVersion compat >= 8 + " +fi + REQUIRES=" - haiku >= $haikuVersion + haiku$secondaryArchSuffix >= $haikuVersion " BUILD_REQUIRES=" " BUILD_PREREQUIRES=" - haiku_devel >= $haikuVersion + haiku${secondaryArchSuffix}_devel >= $haikuVersion cmd:aclocal cmd:autoconf cmd:automake - cmd:gcc + cmd:gcc$secondaryArchSuffix cmd:make - cmd:ld + cmd:ld$secondaryArchSuffix cmd:libtoolize " @@ -84,12 +90,12 @@ TEST() # ----- devel package ------------------------------------------------------- PROVIDES_devel=" - libpcre_devel = $portVersion + libpcre${secondaryArchSuffix}_devel = $portVersion cmd:pcre_config = $portVersion compat >= 8 - devel:libpcre = 0.0.1 compat >= 0 - devel:libpcrecpp = 0.0.1 compat >= 0 - devel:libpcreposix = 0.0.1 compat >= 0 + devel:libpcre$secondaryArchSuffix = 0.0.1 compat >= 0 + devel:libpcrecpp$secondaryArchSuffix = 0.0.1 compat >= 0 + devel:libpcreposix$secondaryArchSuffix = 0.0.1 compat >= 0 " REQUIRES_devel=" - libpcre == $portVersion base + libpcre$secondaryArchSuffix == $portVersion base " diff --git a/dev-libs/libpcre/libpcre-8.33.recipe b/dev-libs/libpcre/libpcre-8.33.recipe new file mode 100644 index 000000000..d50c21a9b --- /dev/null +++ b/dev-libs/libpcre/libpcre-8.33.recipe @@ -0,0 +1,101 @@ +SUMMARY="Perl5 Compatible Regular Expressions" +DESCRIPTION=" +The PCRE library is a set of functions that implement regular expression \ +pattern matching using the same syntax and semantics as Perl 5. PCRE has its \ +own native API, as well as a set of wrapper functions that correspond to the \ +POSIX regular expression API. The PCRE library is free, even for building \ +proprietary software. +This package contains the native API. +" +HOMEPAGE="http://www.pcre.org/" +LICENSE="PCRE" +COPYRIGHT=" + 1997-2011 University of Cambridge + 2007-2011, Google Inc. All rights reserved. + " +SRC_URI="ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.33.tar.bz2" +CHECKSUM_SHA256="c603957a4966811c04af5f6048c71cfb4966ec93312d7b3118116ed9f3bc0478" +REVISION="2" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86 x86_gcc2" + +PROVIDES=" + libpcre${secondaryArchSuffix} = $portVersion + lib:libpcre${secondaryArchSuffix} = 1.2.1 compat >= 1 + lib:libpcrecpp${secondaryArchSuffix} = 0.0.1 compat >= 0 + lib:libpcreposix${secondaryArchSuffix} = 0.0.2 compat >= 0 + " + +if [ -z "$secondaryArchSuffix" ];then +PROVIDES="$PROVIDES + cmd:pcregrep = $portVersion compat >= 8 + cmd:pcretest = $portVersion compat >= 8 + " +fi + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:make + cmd:ld$secondaryArchSuffix + cmd:libtoolize + " + +SOURCE_DIR="pcre-$portVersion" + +BUILD() +{ + libtoolize --force --copy --install + aclocal + autoconf + automake --add-missing + runConfigure ./configure \ + --enable-utf8 \ + --enable-unicode-properties \ + --with-pic + make $jobArgs +} + +INSTALL() +{ + make install + + # prepare develop/lib + prepareInstalledDevelLibs libpcre libpcrecpp libpcreposix + fixPkgconfig + + # fix pcre-config + fixDevelopLibDirReferences $binDir/pcre-config + + # devel package + packageEntries devel \ + $binDir/pcre-config \ + $developDir \ + $manDir/man3 +} + +TEST() +{ + make check +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + libpcre${secondaryArchSuffix}_devel = $portVersion + cmd:pcre_config = $portVersion compat >= 8 + devel:libpcre$secondaryArchSuffix = 1.2.1 compat >= 1 + devel:libpcrecpp$secondaryArchSuffix = 0.0.1 compat >= 0 + devel:libpcreposix$secondaryArchSuffix = 0.0.2 compat >= 0 + " +REQUIRES_devel=" + libpcre$secondaryArchSuffix == $portVersion base + " diff --git a/dev-libs/libpcre/libpcre0-8.21.recipe b/dev-libs/libpcre/libpcre0-8.21.recipe new file mode 100644 index 000000000..d9357b3fd --- /dev/null +++ b/dev-libs/libpcre/libpcre0-8.21.recipe @@ -0,0 +1,70 @@ +SUMMARY="Perl5 Compatible Regular Expressions" +DESCRIPTION=" + The PCRE library is a set of functions that implement regular expression + pattern matching using the same syntax and semantics as Perl 5. PCRE has + its own native API, as well as a set of wrapper functions that correspond + to the POSIX regular expression API. The PCRE library is free, even for + building proprietary software. + This package contains the native API. + " +HOMEPAGE="http://www.pcre.org/" +LICENSE="PCRE" +COPYRIGHT=" + 1997-2011 University of Cambridge + 2007-2011, Google Inc. All rights reserved. + " +SRC_URI="http://sourceforge.net/projects/pcre/files/pcre/8.21/pcre-8.21.tar.bz2" +CHECKSUM_SHA256="a4b8509d11fc2764fb4e1415b764ad2c214459edc011ce48aeeb6bbe1ac599e3" +REVISION="6" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86 x86_gcc2" + +PROVIDES=" + libpcre0${secondaryArchSuffix} = $portVersion + lib:libpcre${secondaryArchSuffix} = 0.0.1 compat >= 0 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:make + cmd:ld$secondaryArchSuffix + cmd:libtoolize + " + +SOURCE_DIR="pcre-$portVersion" + +BUILD() +{ + libtoolize --force --copy --install + aclocal + autoconf + automake --add-missing + runConfigure ./configure \ + --enable-utf8 \ + --enable-unicode-properties \ + --with-pic --disable-cpp --disable-static + make $jobArgs +} + +INSTALL() +{ + make install-exec-am + + rm -Rf $binDir $libDir/libpcreposix* \ + $libDir/libpcre.la $libDir/libpcre.so +} + +TEST() +{ + make check +} + diff --git a/dev-libs/libpthread_stubs/libpthread_stubs-0.3.2.recipe b/dev-libs/libpthread_stubs/libpthread_stubs-0.3.2.recipe deleted file mode 100644 index 7d65949e3..000000000 --- a/dev-libs/libpthread_stubs/libpthread_stubs-0.3.2.recipe +++ /dev/null @@ -1,21 +0,0 @@ -DESCRIPTION="libpthread-stubs" -HOMEPAGE="http://xcb.freedesktop.org/" -SRC_URI="http://xcb.freedesktop.org/dist/libpthread-stubs-0.3.tar.gz" -CHECKSUM_MD5="a09d928c4af54fe5436002345ef71138" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="x11-misc/util-macros >= 1.7.0" -BUILD() -{ - cd libpthread-stubs-0.3 - libtoolize --force --copy --install - autoreconf -i - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd libpthread-stubs-0.3 - make install -} diff --git a/dev-libs/libpthread_stubs/libpthread_stubs-0.3.recipe b/dev-libs/libpthread_stubs/libpthread_stubs-0.3.recipe index 7d65949e3..fdbd1df31 100644 --- a/dev-libs/libpthread_stubs/libpthread_stubs-0.3.recipe +++ b/dev-libs/libpthread_stubs/libpthread_stubs-0.3.recipe @@ -1,21 +1,53 @@ -DESCRIPTION="libpthread-stubs" +SUMMARY="libpthread-stubs" +DESCRIPTION=" +libpthread-stubs +" HOMEPAGE="http://xcb.freedesktop.org/" SRC_URI="http://xcb.freedesktop.org/dist/libpthread-stubs-0.3.tar.gz" -CHECKSUM_MD5="a09d928c4af54fe5436002345ef71138" +CHECKSUM_SHA256="3031f466cf0b06de6b3ccbf2019d15c4fcf75229b7d226a711bc1885b3a82cde" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="x11-misc/util-macros >= 1.7.0" + +COPYRIGHT="2006 Diego Pettenò" +LICENSE="MIT" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + libpthread_stubs$secondaryArchSuffix = $portVersion + devel:libpthread_stubs$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:util_macros$secondaryArchSuffix + cmd:autoconf + cmd:libtool + cmd:aclocal + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:pkg_config$secondaryArchSuffix + " + +SOURCE_DIR="libpthread-stubs-$portVersion" + BUILD() { - cd libpthread-stubs-0.3 libtoolize --force --copy --install autoreconf -i - ./configure --prefix=`finddir B_COMMON_DIRECTORY` + runConfigure ./configure make } INSTALL() { - cd libpthread-stubs-0.3 make install + fixPkgconfig } diff --git a/dev-libs/libsigsegv/libsigsegv-2.8.recipe b/dev-libs/libsigsegv/libsigsegv-2.8.recipe index 43ca12414..8e6e99f8b 100644 --- a/dev-libs/libsigsegv/libsigsegv-2.8.recipe +++ b/dev-libs/libsigsegv/libsigsegv-2.8.recipe @@ -1,4 +1,6 @@ -DESCRIPTION="library for handling page faults in user mode" +DESCRIPTION=" +A library for handling page faults in user mode. +" HOMEPAGE="libsigsegv.sourceforge.net" SRC_URI="http://ftp.gnu.org/pub/gnu/libsigsegv/libsigsegv-2.8.tar.gz" REVISION="1" diff --git a/dev-libs/libsolv/libsolv-0.3.0_haiku_2013_04_18.recipe b/dev-libs/libsolv/libsolv-0.3.0_haiku_2013_04_18.recipe index 522d04a76..921e0572a 100644 --- a/dev-libs/libsolv/libsolv-0.3.0_haiku_2013_04_18.recipe +++ b/dev-libs/libsolv/libsolv-0.3.0_haiku_2013_04_18.recipe @@ -23,7 +23,6 @@ BUILD_PREREQUIRES="haiku_devel >= $haikuVersion cmd:sed " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/dev-libs/libsolv/libsolv-0.3.0_haiku_2013_05_20.recipe b/dev-libs/libsolv/libsolv-0.3.0_haiku_2013_05_20.recipe index 9f14ce4ff..1a7e22288 100644 --- a/dev-libs/libsolv/libsolv-0.3.0_haiku_2013_05_20.recipe +++ b/dev-libs/libsolv/libsolv-0.3.0_haiku_2013_05_20.recipe @@ -23,7 +23,6 @@ BUILD_PREREQUIRES="haiku_devel >= $haikuVersion cmd:sed " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/dev-libs/libsolv/libsolv-0.3.0_haiku_2013_05_30.recipe b/dev-libs/libsolv/libsolv-0.3.0_haiku_2013_05_30.recipe index 3d86900af..1f19d399e 100644 --- a/dev-libs/libsolv/libsolv-0.3.0_haiku_2013_05_30.recipe +++ b/dev-libs/libsolv/libsolv-0.3.0_haiku_2013_05_30.recipe @@ -27,7 +27,6 @@ BUILD_PREREQUIRES="haiku_devel >= $haikuVersion cmd:sed " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/dev-libs/libsolv/libsolv-0.3.0_haiku_2013_10_01.recipe b/dev-libs/libsolv/libsolv-0.3.0_haiku_2013_10_01.recipe index 46e61e7ea..6347a39fa 100644 --- a/dev-libs/libsolv/libsolv-0.3.0_haiku_2013_10_01.recipe +++ b/dev-libs/libsolv/libsolv-0.3.0_haiku_2013_10_01.recipe @@ -1,11 +1,14 @@ -SUMMARY="Library for solving packages and reading repositories" -DESCRIPTION="Library for solving packages and reading repositories." +SUMMARY="A library for solving packages and reading repositories" +DESCRIPTION="A Library for solving packages and reading repositories." LICENSE="BSD (3-clause)" COPYRIGHT="2007-2013, Novell Inc." HOMEPAGE="http://github.com/openSUSE/libsolv" -SRC_URI="git+git://github.com/weinhold/libsolv.git#01ed09a3e1f4637f72d4239fe3724fcafa39be94" -REVISION="1" -ARCHITECTURES="x86_gcc2 x86 x86_64" +srcGitRev="01ed09a3e1f4637f72d4239fe3724fcafa39be94" +SRC_URI="https://github.com/weinhold/libsolv/archive/$srcGitRev.tar.gz" +CHECKSUM_SHA256="4e96208d44dc15ed7ac95a86f35790f34a2bb97c0f0aa3dc355263a54a6ea7e1" +SRC_FILENAME="$portVersionedName.tar.gz" +REVISION="2" +ARCHITECTURES="x86_gcc2 x86 x86_64 ppc arm" SECONDARY_ARCHITECTURES="x86_gcc2 x86" PROVIDES=" @@ -31,6 +34,8 @@ BUILD_PREREQUIRES=" cmd:sed " +SOURCE_DIR="libsolv-$srcGitRev" + PATCH() { sed -i 's,${CMAKE_INSTALL_PREFIX}/bin',$binDir, CMakeLists.txt diff --git a/dev-libs/libtar/libtar-1.2.20.recipe b/dev-libs/libtar/libtar-1.2.20.recipe new file mode 100644 index 000000000..6bd5455df --- /dev/null +++ b/dev-libs/libtar/libtar-1.2.20.recipe @@ -0,0 +1,81 @@ +SUMMARY="A C library for manipulating tar files." +DESCRIPTION=" +libtar is a library for manipulating tar files from within C programs. +Here are some of its features: + + * Handles both POSIX tar file format and the GNU extensions. + * API provides functions for easy use, such as tar_extract_all(). + * Also provides functions for more granular use, such as \ +tar_append_regfile(). +" +HOMEPAGE="http://repo.or.cz/w/libtar.git/" +SRC_URI="http://repo.or.cz/w/libtar.git/snapshot/0907a9034eaf2a57e8e4a9439f793f3f05d446cd.tar.gz" +SRC_FILENAME="$portVersionedName.tar.gz" +CHECKSUM_SHA256="d1b2660d0af735fed2d2a0c3369dda7bea7445a4b1ef2f2742b352b1e1eec5f8" +REVISION="1" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + libtar${secondaryArchSuffix} = $portVersion + cmd:libtar + lib:libtar${secondaryArchSuffix} = 0.0.0 compat >= 0 + " +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:cmake + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:autoheader + " + +SOURCE_DIR="$portName" + +BUILD() +{ + aclocal + libtoolize -fci + autoheader + automake --add-missing + autoconf + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libtar + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir +} + +PROVIDES_devel=" + libtar${secondaryArchSuffix}_devel = $portVersion + devel:libtar$secondaryArchSuffix = 0.0.0 + " + +REQUIRES_devel=" + libtar$secondaryArchSuffix == $portVersion base + " + +LICENSE="BSD (3-clause)" +COPYRIGHT=" + 1998-2003 University of Illinois Board of Trustees + 1998-2003 Mark D. Roth +" diff --git a/dev-libs/libunistring/libunistring-0.9.1.1.recipe b/dev-libs/libunistring/libunistring-0.9.1.1.recipe index c131742e8..e99f21559 100644 --- a/dev-libs/libunistring/libunistring-0.9.1.1.recipe +++ b/dev-libs/libunistring/libunistring-0.9.1.1.recipe @@ -1,4 +1,7 @@ -DESCRIPTION="libunistring provides functions for manipulating Unicode strings and for manipulating C strings according to the Unicode standard." +DESCRIPTION=" +libunistring provides functions for manipulating Unicode strings and for \ +manipulating C strings according to the Unicode standard. +" HOMEPAGE="http://www.gnu.org/software/libunistring/" SRC_URI="http://ftp.gnu.org/gnu/libunistring/libunistring-0.9.1.1.tar.gz" REVISION="1" diff --git a/dev-libs/libusb/libusb-1.0.17.recipe b/dev-libs/libusb/libusb-1.0.17.recipe new file mode 100644 index 000000000..3e383bc34 --- /dev/null +++ b/dev-libs/libusb/libusb-1.0.17.recipe @@ -0,0 +1,90 @@ +SUMMARY="libusbx is a library that provides generic access to USB devices." +DESCRIPTION=" +libusbx is a library that provides generic access to USB devices. As a library, +it is meant to be used by developers, to facilitate the production of +applications that communicate with USB hardware. + +It is portable: Using a single cross-platform API, it provides access to USB +devices on Linux, OS X, Windows and OpenBSD. + +It is user-mode: No special privilege or elevation is required for the +application to communicate with a device. + +It is version-agnostic: All versions of the USB protocol, from 1.0 to 3.0 +(latest), are supported. +" +LICENSE="GNU LGPL v2.1" +COPYRIGHT=" +2001 Johannes Erdfelt +2007-2009 Daniel Drake +2010-2012 Peter Stuge +2008-2013 Nathan Hjelm +2009-2013 Pete Batard +2009-2013 Ludovic Rousseau +2010-2012 Michael Plante +2011-2013 Hans de Goede +2012-2013 Martin Pieuchot +2012-2013 Toby Gray +" +HOMEPAGE="http://libusbx.org/" +SRC_URI="git+git://github.com/pulkomandy/libusbx#c6f866b9914f266ab198a3313eba45e55c094024" +REVISION="2" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PATCHES="$portVersionedName.patchset" + +PROVIDES=" + libusb$secondaryArchSuffix = $portVersion + lib:libusb_1.0$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:autoconf + cmd:automake + cmd:libtool + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:sed + " + +BUILD() +{ + sh bootstrap.sh + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install + + # set up the develop directory correctly + prepareInstalledDevelLibs libusb-1.0 + fixPkgconfig libusb-1.0 + + # devel package + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + libusb${secondaryArchSuffix}_devel = $portVersion + devel:libusb_1.0${secondaryArchSuffix} = $portVersion + " +REQUIRES_devel=" + libusb${secondaryArchSuffix} == $portVersion base + " diff --git a/dev-libs/libusb/patches/libusb-1.0.17.patchset b/dev-libs/libusb/patches/libusb-1.0.17.patchset new file mode 100644 index 000000000..581ddea6f --- /dev/null +++ b/dev-libs/libusb/patches/libusb-1.0.17.patchset @@ -0,0 +1,31 @@ +From 91edd51cfa1be577227e396f3460f7564964b46c Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Wed, 21 May 2014 21:18:27 +0000 +Subject: build fix + + +diff --git a/libusb/os/haiku_usbkit.cpp b/libusb/os/haiku_usbkit.cpp +index f4955c0..eec2007 100644 +--- a/libusb/os/haiku_usbkit.cpp ++++ b/libusb/os/haiku_usbkit.cpp +@@ -69,7 +69,7 @@ private: + usb_configuration_descriptor** fConfigurationDescriptors; + uint32 fActiveConfiguration; + char* fPath; +- volatile int32 fOpenCount; ++ int32 fOpenCount; + }; + + +@@ -609,7 +609,7 @@ UsbRoster::DeviceRemoved(BUSBDevice* device) + + + UsbRoster gUsbRoster; +-volatile int32 gInitCount = 0; ++int32 gInitCount = 0; + + static int + haiku_init(struct libusb_context* ctx) +-- +1.8.3.4 + diff --git a/dev-libs/libwapcaplet/libwapcaplet-0.2.0_HEAD.recipe b/dev-libs/libwapcaplet/libwapcaplet-0.2.0_HEAD.recipe deleted file mode 100644 index 1f91e617d..000000000 --- a/dev-libs/libwapcaplet/libwapcaplet-0.2.0_HEAD.recipe +++ /dev/null @@ -1,19 +0,0 @@ -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.2.0-HEAD - make PREFIX=/boot/common -} - -INSTALL { - cd libwapcaplet-0.2.0-HEAD - make install PREFIX=/boot/common -} - -LICENSE="MIT" -COPYRIGHT="2009 - 2012 The NetSurf Browser project" diff --git a/dev-libs/libwapcaplet/libwapcaplet-0.2.0_git.recipe b/dev-libs/libwapcaplet/libwapcaplet-0.2.0_git.recipe new file mode 100644 index 000000000..dfc4b2a7d --- /dev/null +++ b/dev-libs/libwapcaplet/libwapcaplet-0.2.0_git.recipe @@ -0,0 +1,49 @@ +#TODO:split out _devel +SUMMARY="LibWapcaplet is a string internment library" +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" +LICENSE="MIT" +COPYRIGHT="2009 - 2012 The NetSurf Browser project" + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + libwapcaplet$secondaryArchSuffix = $portVersion + lib:libwapcaplet$secondaryArchSuffix = $portVersion + devel:libwapcaplet$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + netsurf_buildsystem >= 0 + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + + +BUILD() +{ + make PREFIX=$prefix NSSHARED=/system/data/netsurf-buildsystem +} + +INSTALL() +{ + make install PREFIX=$prefix NSSHARED=/system/data/netsurf-buildsystem \ + I=/develop/headers/libwapcaplet + mkdir -p $prefix/develop/lib + mv -f $prefix/lib/*.a $prefix/develop/lib/ + mv -f $prefix/lib/pkgconfig $prefix/develop/lib/ +} diff --git a/dev-libs/libxml2/libxml2-2.8.0.recipe b/dev-libs/libxml2/libxml2-2.8.0.recipe index 32c97981f..7f87250bd 100644 --- a/dev-libs/libxml2/libxml2-2.8.0.recipe +++ b/dev-libs/libxml2/libxml2-2.8.0.recipe @@ -3,8 +3,8 @@ HOMEPAGE="http://www.xmlsoft.org/" LICENSE="MIT" COPYRIGHT="1998-2003 Daniel Veillard. All Rights Reserved." SRC_URI="ftp://xmlsoft.org/libxml2/libxml2-2.8.0.tar.gz" -CHECKSUM_MD5="c62106f02ee00b6437f0fb9d370c1093" -REVISION="6" +CHECKSUM_SHA256="f2e2d0e322685193d1affec83b21dc05d599e17a7306d7b90de95bb5b9ac622a" +REVISION="7" ARCHITECTURES="x86_gcc2 x86 x86_64" SECONDARY_ARCHITECTURES="x86_gcc2 x86" diff --git a/dev-libs/libxml2/libxml2-2.9.0.recipe b/dev-libs/libxml2/libxml2-2.9.0.recipe deleted file mode 100644 index bd26c3d12..000000000 --- a/dev-libs/libxml2/libxml2-2.9.0.recipe +++ /dev/null @@ -1,39 +0,0 @@ -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/libxml2-2.9.1.recipe b/dev-libs/libxml2/libxml2-2.9.1.recipe new file mode 100644 index 000000000..b7a25eded --- /dev/null +++ b/dev-libs/libxml2/libxml2-2.9.1.recipe @@ -0,0 +1,223 @@ +SUMMARY="The XML C parser and toolkit of Gnome" +HOMEPAGE="http://www.xmlsoft.org/" +LICENSE="MIT" +COPYRIGHT="1998-2013 Daniel Veillard. All Rights Reserved." +SRC_URI="ftp://xmlsoft.org/libxml2/libxml2-2.9.1.tar.gz" +CHECKSUM_SHA256="fd3c64cb66f2c4ea27e934d275904d92cec494a8e8405613780cbc8a71680fdb" +REVISION="2" +ARCHITECTURES="!x86_gcc2 !x86 x86_64" +SECONDARY_ARCHITECTURES="!x86_gcc2 !x86" + +PATCHES="libxml2-2.9.1.patchset" + +# build the python module only for the primary architecture +pythonModuleEnabled=false +if [ -z "$secondaryArchSuffix" ]; then + pythonModuleEnabled=true +fi + +PROVIDES=" + libxml2$secondaryArchSuffix = $portVersion compat >= 2 + lib:libxml2$secondaryArchSuffix = $portVersion compat >= 2 + " +if [ -z "$secondaryArchSuffix" ]; then + PROVIDES="$PROVIDES + cmd:xmlcatalog = $portVersion compat >= 2 + cmd:xmllint = $portVersion compat >= 2 + " +fi + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libz$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libz$secondaryArchSuffix + " +if $pythonModuleEnabled; then + BUILD_REQUIRES="$BUILD_REQUIRES + python >= 2.7 + " + # Note: We don't use "cmd:python" here to avoid issues with the + # python search path. +fi + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + haiku_devel >= $haikuVersion + lib:libicudata$secondaryArchSuffix + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:make + cmd:sed + " + +PATCH() +{ + # replace hard-coded references to the development documentation dir + sed -i "s,^DEVHELP_DIR=\(.*\),DEVHELP_DIR=${developDocDir}," \ + doc/devhelp/Makefile.am + sed -i "s,%{_datadir}/gtk-doc/html/libxml2,${developDocDir},g" \ + libxml.spec.in +} + +BUILD() +{ + libtoolize --force --copy --install + aclocal + autoconf + automake + + withPython= + if $pythonModuleEnabled; then + # We symlink python's directories into our packaging directory and tell + # configure that it can find python there. This way the correct + # installation directory for the python module is determined. + pythonDir="$portPackageLinksDir/python" + ln -s $pythonDir/bin $pythonDir/develop $pythonDir/lib $prefix + withPython="--with-python=$prefix" + fi + + runConfigure ./configure LDFLAGS="-lnetwork" \ + --with-html-dir=$docDir/html \ + --with-html-subdir="" \ + $withPython + make $jobArgs +} + +INSTALL() +{ + if $pythonModuleEnabled; then + # Unfortunately we can't just remove the in symlinks we created in + # BUILD() and install normally, since then make detects that the + # Python.h is missing and tries to rebuild the module. So we leave + # things as is and use DESTDIR to install the everything in a subdir. + # Then we remove the symlinks and move everything where it belongs. + make DESTDIR=$prefix install + rm -f $prefix/bin $prefix/develop $prefix/lib + mv $prefix/$prefix/* $prefix + rm -r $prefix/packages + else + make install + fi + + # prepare develop/lib + prepareInstalledDevelLibs libxml2 + fixPkgconfig + mv $libDir/xml2Conf.sh $developLibDir/ + fixDevelopLibDirReferences $developLibDir/xml2Conf.sh $binDir/xml2-config + + # python package + if $pythonModuleEnabled; then + packageEntries python \ + $libDir/python* \ + ${docDir}_python* + fi + + # devel package + packageEntries devel \ + $binDir/xml2-config \ + $dataDir \ + $developDir \ + $docDir \ + $manDir/man1/xml2-config.1 \ + $manDir/man3 + + # Remove stuff we don't need in the secondary architecture base package. + if [ -n "$secondaryArchSuffix" ]; then + rm -rf $binDir + rm -rf $documentationDir + else + # left-over since all contents has been moved to other packages + rmdir $(dirname $docDir) + fi +} + +TEST() +{ + make tests +} + +# ----- devel package --------------------------------------------------------- + +PROVIDES_devel=" + libxml2${secondaryArchSuffix}_devel = $portVersion + cmd:xml2_config$secondaryArchSuffix = $portVersion compat >= 2 + devel:libxml2$secondaryArchSuffix = $portVersion compat >= 2 + " +REQUIRES_devel=" + libxml2$secondaryArchSuffix == $portVersion base + " + +# ----- python package ------------------------------------------------------- + +if $pythonModuleEnabled; then + SUMMARY_python="The python module for libxml2" + PROVIDES_python=" + libxml2_python = $portVersion + " + REQUIRES_python=" + libxml2 == $portVersion base + cmd:python + " +fi + +# ----- DESCRIPTION ----------------------------------------------------------- + +DESCRIPTION=" + Libxml2 is the XML C parser and toolkit developed for the Gnome project + (but usable outside of the Gnome platform), it is free software available + under the MIT License. XML itself is a metalanguage to design markup + languages, i.e. text language where semantic and structure are added to + the content using extra "markup" information enclosed between angle + brackets. HTML is the most well-known markup language. Though the library + is written in C a variety of language bindings make it available in other + environments. + + Libxml2 implements a number of existing standards related to markup + languages: + + - the XML standard: http://www.w3.org/TR/REC-xml + - Namespaces in XML: http://www.w3.org/TR/REC-xml-names/ + - XML Base: http://www.w3.org/TR/xmlbase/ + - RFC 2396 : Uniform Resource Identifiers + - XML Path Language (XPath) 1.0: http://www.w3.org/TR/xpath + - HTML4 parser: http://www.w3.org/TR/html401/ + - XML Pointer Language (XPointer) Version 1.0: http://www.w3.org/TR/xptr + - XML Inclusions (XInclude) Version 1.0: http://www.w3.org/TR/xinclude/ + - ISO-8859-x encodings, as well as rfc2044 [UTF-8] and rfc2781 [UTF-16] + Unicode encodings, and more if using iconv support part of SGML Open + Technical Resolution TR9401:1997 + - XML Catalogs Working Draft 06 August 2001: + http://www.oasis-open.org/committees/entity/spec-2001-08-06.html + - Canonical XML Version 1.0: + http://www.w3.org/TR/xml-c14n and the Exclusive XML Canonicalization + CR draft http://www.w3.org/TR/xml-exc-c14n + - Relax NG, ISO/IEC 19757-2:2003, + http://www.oasis-open.org/committees/relax-ng/spec-20011203.html + - W3C XML Schemas Part 2: Datatypes REC 02 May 2001 + - W3C xml:id Working Draft 7 April 2004 + + In most cases libxml2 tries to implement the specifications in a + relatively strictly compliant way. As of release 2.4.16, libxml2 passed + all 1800+ tests from the OASIS XML Tests Suite. + + To some extent libxml2 provides support for the following additional + specifications but doesn't claim to implement them completely: + + - Document Object Model (DOM) http://www.w3.org/TR/DOM-Level-2-Core/ + the document model, but it doesn't implement the API itself, gdome2 + does this on top of libxml2 + - RFC 959 : libxml2 implements a basic FTP client code + - RFC 1945 : HTTP/1.0, again a basic HTTP client code + - SAX: a SAX2 like interface and a minimal SAX1 implementation compatible + with early expat versions + + A partial implementation of XML Schemas Part 1: Structure is being worked + on but it would be far too early to make any conformance statement about + it at the moment. + " diff --git a/dev-libs/libxml2/patches/libxml2-2.8.0.patchset b/dev-libs/libxml2/patches/libxml2-2.8.0.patchset index d01d3ef3b..04aea95d4 100644 --- a/dev-libs/libxml2/patches/libxml2-2.8.0.patchset +++ b/dev-libs/libxml2/patches/libxml2-2.8.0.patchset @@ -1,4 +1,4 @@ -From 847ae3527f9a7c10bbb81a299c0779bdedaa078b Mon Sep 17 00:00:00 2001 +From 5f1f102b9ca68a60598e75acd2dfcc03eedf48f0 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Fri, 9 Aug 2013 03:04:24 +0200 Subject: applying patch libxml2-2.8.0.patch @@ -57,10 +57,10 @@ index 2989325..162d348 100644 --exec-prefix) -- -1.7.10.2 +1.8.3.4 -From 6a3fd0a71df7e9f9207cc44dab2abd77822939fa Mon Sep 17 00:00:00 2001 +From af85142e9157eec3acd0b5f6d171eeb63a5dd6c5 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Fri, 9 Aug 2013 20:15:20 +0200 Subject: configure.in: hack to find python directories on Haiku @@ -88,10 +88,10 @@ index a5f86ca..ade0cf8 100644 if test -r $prefix/include/python$PYTHON_VERSION/Python.h then -- -1.7.10.2 +1.8.3.4 -From 76ec01677cdf7b754497320bca5587c423d0bf65 Mon Sep 17 00:00:00 2001 +From 077d229d4c92bbb11d5ce2dfa6ce9334b77c30db Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Fri, 9 Aug 2013 23:00:24 +0200 Subject: python[/tests]/Makefile.am: $(datadir)/doc -> $(docdir) @@ -121,5 +121,32 @@ index 52c89fc..7549db9 100644 PYTESTS= \ -- -1.7.10.2 +1.8.3.4 + + +From 020e1f1fb2f2234d0a7222e03c6077e9df06e8fb Mon Sep 17 00:00:00 2001 +From: Oliver Tappe +Date: Fri, 18 Oct 2013 23:51:10 +0200 +Subject: Adjust libxml2 to use vendor-packages directory. + + +diff --git a/configure.in b/configure.in +index ade0cf8..522a2c0 100644 +--- a/configure.in ++++ b/configure.in +@@ -767,10 +767,10 @@ if test "$with_python" != "no" ; then + if test "$PYTHON_VERSION" != "" + then + if test -r $with_python/develop/headers/python$PYTHON_VERSION/Python.h -a \ +- -d $with_python/lib/python$PYTHON_VERSION/site-packages ++ -d $with_python/lib/python$PYTHON_VERSION/vendor-packages + then + PYTHON_INCLUDES=$with_python/develop/headers/python$PYTHON_VERSION +- PYTHON_SITE_PACKAGES=$with_python/lib/python$PYTHON_VERSION/site-packages ++ PYTHON_SITE_PACKAGES=$with_python/lib/python$PYTHON_VERSION/vendor-packages + else + if test -r $prefix/include/python$PYTHON_VERSION/Python.h + then +-- +1.8.3.4 diff --git a/dev-libs/libxml2/patches/libxml2-2.9.0.patch b/dev-libs/libxml2/patches/libxml2-2.9.0.patch deleted file mode 100644 index b5ca0e802..000000000 --- a/dev-libs/libxml2/patches/libxml2-2.9.0.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- 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/libxml2/patches/libxml2-2.9.1.patchset b/dev-libs/libxml2/patches/libxml2-2.9.1.patchset new file mode 100644 index 000000000..244d7ba0d --- /dev/null +++ b/dev-libs/libxml2/patches/libxml2-2.9.1.patchset @@ -0,0 +1,113 @@ +From 52a5d213a7c464b51c0259f855811ecda990e3c6 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Wed, 1 Jan 2014 22:13:22 +0100 +Subject: Port patches from libxml2-2.8.0. + + +diff --git a/Makefile.am b/Makefile.am +index a4a9f87..40c06ee 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -1221,8 +1221,8 @@ pkgconfig_DATA = libxml-2.0.pc + # + # Install the tests program sources as examples + # +-BASE_DIR=$(datadir)/doc +-DOC_MODULE=libxml2-$(VERSION) ++BASE_DIR=$(docdir) ++DOC_MODULE= + EXAMPLES_DIR=$(BASE_DIR)/$(DOC_MODULE)/examples + + install-data-local: +diff --git a/configure.in b/configure.in +index d449b11..8db6662 100644 +--- a/configure.in ++++ b/configure.in +@@ -784,23 +784,23 @@ if test "$with_python" != "no" ; then + fi + if test "$PYTHON_VERSION" != "" -a "$PYTHON_INCLUDES" = "" + then +- if test -r $with_python/include/python$PYTHON_VERSION/Python.h ++ if test -r $with_python/develop/headers/python$PYTHON_VERSION/Python.h + then +- PYTHON_INCLUDES=$with_python/include/python$PYTHON_VERSION ++ PYTHON_INCLUDES=$with_python/develop/headers/python$PYTHON_VERSION + else +- if test -r $prefix/include/python$PYTHON_VERSION/Python.h ++ if test -r $prefix/develop/headers/python$PYTHON_VERSION/Python.h + then +- PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION ++ PYTHON_INCLUDES=$prefix/develop/headers/python$PYTHON_VERSION + else +- if test -r /usr/include/python$PYTHON_VERSION/Python.h ++ if test -r /usr/develop/headers/python$PYTHON_VERSION/Python.h + then +- PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION ++ PYTHON_INCLUDES=/usr/develop/headers/python$PYTHON_VERSION + else +- if test -r $with_python/include/Python.h ++ if test -r $with_python/develop/headers/Python.h + then +- PYTHON_INCLUDES=$with_python/include ++ PYTHON_INCLUDES=$with_python/develop/headers + else +- echo could not find python$PYTHON_VERSION/Python.h or $with_python/include/Python.h ++ echo could not find python$PYTHON_VERSION/Python.h or $with_python/develop/headers/Python.h + fi + fi + fi +@@ -808,13 +808,13 @@ if test "$with_python" != "no" ; then + fi + if test "$PYTHON_VERSION" != "" -a "$PYTHON_SITE_PACKAGES" = "" + then +- if test -d $libdir/python$PYTHON_VERSION/site-packages ++ if test -d $libdir/python$PYTHON_VERSION/vendor-packages + then +- PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages ++ PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/vendor-packages + else +- if test -d $with_python/lib/site-packages ++ if test -d $with_python/lib/vendor-packages + then +- PYTHON_SITE_PACKAGES=$with_python/lib/site-packages ++ PYTHON_SITE_PACKAGES=$with_python/lib/vendor-packages + else + PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_lib())"` + fi +diff --git a/python/tests/Makefile.am b/python/tests/Makefile.am +index 95ebead..64d9a4e 100644 +--- a/python/tests/Makefile.am ++++ b/python/tests/Makefile.am +@@ -1,4 +1,4 @@ +-exampledir = $(datadir)/doc/libxml2-python-$(LIBXML_VERSION)/examples ++exampledir = $(docdir)_python-$(LIBXML_VERSION)/examples + dist_example_DATA = $(PYTESTS) $(XMLS) + + PYTESTS= \ +diff --git a/xml2-config.in b/xml2-config.in +index 1957486..9c98a0e 100644 +--- a/xml2-config.in ++++ b/xml2-config.in +@@ -40,8 +40,8 @@ while test $# -gt 0; do + case "$1" in + --prefix=*) + prefix=$optarg +- includedir=$prefix/include +- libdir=$prefix/lib ++ includedir=$prefix/develop/headers ++ libdir=$prefix/develop/lib + ;; + + --prefix) +@@ -50,7 +50,7 @@ while test $# -gt 0; do + + --exec-prefix=*) + exec_prefix=$optarg +- libdir=$exec_prefix/lib ++ libdir=$exec_prefix/develop/lib + ;; + + --exec-prefix) +-- +1.8.3.4 + diff --git a/dev-libs/libxslt/libxslt-1.1.28.recipe b/dev-libs/libxslt/libxslt-1.1.28.recipe index 3af348ce2..747816d4b 100644 --- a/dev-libs/libxslt/libxslt-1.1.28.recipe +++ b/dev-libs/libxslt/libxslt-1.1.28.recipe @@ -3,10 +3,10 @@ HOMEPAGE="http://www.xmlsoft.org/" LICENSE="MIT" COPYRIGHT="2001-2002 Daniel Veillard. All Rights Reserved." SRC_URI="ftp://xmlsoft.org/libxml2/libxslt-1.1.28.tar.gz" -CHECKSUM_MD5="9667bf6f9310b957254fdcf6596600b7" +CHECKSUM_SHA256="5fc7151a57b89c03d7b825df5a0fae0a8d5f05674c0e7cf2937ecec4d54a028c" REVISION="2" -ARCHITECTURES="x86_gcc2 x86" -SECONDARY_ARCHITECTURES="x86_gcc2 x86" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86 x86_64" PROVIDES=" libxslt$secondaryArchSuffix = $portVersion @@ -60,16 +60,15 @@ INSTALL() } DESCRIPTION=" - Libxslt is the XSLT C library developed for the GNOME project. XSLT itself - is a an XML language to define transformation for XML. Libxslt is based on - libxml2 the XML C library developed for the GNOME project. It also - implements most of the EXSLT set of processor-portable extensions functions - and some of Saxon's evaluate and expressions extensions. - - People can either embed the library in their application or use xsltproc - the command line processing tool. This library is free software and can be - reused in commercial applications. - " +Libxslt is the XSLT C library developed for the GNOME project. XSLT itself is \ +a an XML language to define transformation for XML. Libxslt is based on \ +libxml2 the XML C library developed for the GNOME project. It also implements \ +most of the EXSLT set of processor-portable extensions functions and some of \ +Saxon's evaluate and expressions extensions. +People can either embed the library in their application or use xsltproc the \ +command line processing tool. This library is free software and can be reused \ +in commercial applications. +" PROVIDES_devel=" libxslt${secondaryArchSuffix}_devel = $portVersion diff --git a/dev-libs/libzip/libzip-0.10.1.recipe b/dev-libs/libzip/libzip-0.10.1.recipe index 11d333880..10cae8a6e 100644 --- a/dev-libs/libzip/libzip-0.10.1.recipe +++ b/dev-libs/libzip/libzip-0.10.1.recipe @@ -1,24 +1,75 @@ +SUMMARY="A C library for reading, creating, and modifying zip archives." 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" +CHECKSUM_SHA256="5b1eaf60968cb22df49d73bcaa759961fb27451917ac76b275374c2ed260ce92" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + libzip${secondaryArchSuffix} = $portVersion + lib:libzip${secondaryArchSuffix} = $portVersion + cmd:zipcmp${secondaryArchSuffix} + cmd:zipmerge${secondaryArchSuffix} + cmd:ziptorrent${secondaryArchSuffix} + " +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + lib:libz${secondaryArchSuffix} + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libz${secondaryArchSuffix} + " +BUILD_PREREQUIRES=" + cmd:cmake + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + " + 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 + + cmake -DCMAKE_INSTALL_PREFIX=$prefix + make $jobArgs } INSTALL() { - cd libzip-0.10.1 make install + + # clean up includes + mkdir -p $includeDir + mv $prefix/include/* $includeDir/ + rm -rf $prefix/include + + # clean up man pages + mkdir -p $manDir + mv $prefix/man/* $manDir/ + rm -rf $prefix/man + + prepareInstalledDevelLibs \ + libzip \ + + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir } +PROVIDES_devel=" + libzip${secondaryArchSuffix}_devel = $portVersion + devel:libzip$secondaryArchSuffix = $portVersion + " + +REQUIRES_devel=" + libzip$secondaryArchSuffix == $portVersion base + " + LICENSE="BSD (3-clause)" COPYRIGHT="1999-2012 Dieter Baron and Thomas Klausner" diff --git a/dev-libs/libzip/libzip-0.11.2.recipe b/dev-libs/libzip/libzip-0.11.2.recipe new file mode 100644 index 000000000..b88c0d0d9 --- /dev/null +++ b/dev-libs/libzip/libzip-0.11.2.recipe @@ -0,0 +1,77 @@ +SUMMARY="A C library for reading, creating, and modifying zip archives." +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.11.2.tar.gz" +CHECKSUM_SHA256="83db1fb43a961ff7d1d1b50e1c6bea09c67e6af867686d1fc92ecb7dc6cf98d5" +REVISION="1" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + libzip${secondaryArchSuffix} = $portVersion + lib:libzip${secondaryArchSuffix} = $portVersion + cmd:zipcmp${secondaryArchSuffix} + cmd:zipmerge${secondaryArchSuffix} + cmd:ziptorrent${secondaryArchSuffix} + " +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + lib:libz${secondaryArchSuffix} + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libz${secondaryArchSuffix} + " +BUILD_PREREQUIRES=" + cmd:cmake + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + " + +BUILD() +{ + sed -i 's/LN = ln/LN = cp/' man/Makefile.in + + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install + +# # clean up includes +# mkdir -p $includeDir +# mv $prefix/include/* $includeDir/ +# rm -rf $prefix/include +# +# # clean up man pages +# mkdir -p $manDir +# mv $prefix/man/* $manDir/ +# rm -rf $prefix/man + + prepareInstalledDevelLibs \ + libzip \ + + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir +} + +PROVIDES_devel=" + libzip${secondaryArchSuffix}_devel = $portVersion + devel:libzip$secondaryArchSuffix = $portVersion + " + +REQUIRES_devel=" + libzip$secondaryArchSuffix == $portVersion base + " + +LICENSE="BSD (3-clause)" +COPYRIGHT="1999-2012 Dieter Baron and Thomas Klausner" diff --git a/dev-libs/lzo/lzo-2.06.recipe b/dev-libs/lzo/lzo-2.06.recipe index 0828119ae..1798a7d80 100644 --- a/dev-libs/lzo/lzo-2.06.recipe +++ b/dev-libs/lzo/lzo-2.06.recipe @@ -1,28 +1,75 @@ -DESCRIPTION="An extremely fast compression and decompression library" +SUMMARY="LZO is a portable lossless data compression library written in ANSI C." +DESCRIPTION=" +LZO is a data compression library which is suitable for data de-/compression in +real-time. This means it favours speed over compression ratio. + +LZO is written in ANSI C. Both the source code and the compressed data format +are designed to be portable across platforms. + +LZO implements a number of algorithms with the following features: +* Decompression is simple and *very* fast. +* Requires no memory for decompression. +* Compression is pretty fast. +* Requires 64 kB of memory for compression. +* Allows you to dial up extra compression at a speed cost in the compressor. + The speed of the decompressor is not reduced. +* Includes compression levels for generating pre-compressed data which achieve + a quite competitive compression ratio. +* There is also a compression level which needs only 8 kB for compression. +* Algorithm is thread safe. +* Algorithm is lossless. +* LZO supports overlapping compression and in-place decompression. +" HOMEPAGE="http://www.oberhumer.com/opensource/lzo/" SRC_URI="http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gz" -CHECKSUM_MD5="95380bd4081f85ef08c5209f4107e9f8" +CHECKSUM_SHA256="ff79e6f836d62d3f86ef6ce893ed65d07e638ef4d3cb952963471b4234d43e73" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" +ARCHITECTURES="x86_gcc2 x86" +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + lzo$secondaryArchSuffix = $portVersion + lib:liblzo2$secondaryArchSuffix + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:make + cmd:awk + " + BUILD() { - cd lzo-2.06 - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make + runConfigure ./configure + make $jobArgs } INSTALL() { - cd lzo-2.06 make install + + prepareInstalledDevelLib liblzo2 + packageEntries devel $developDir } TEST() { - cd lzo-2.06 make check } +PROVIDES_devel=" + lzo${secondaryArchSuffix}_devel = $portVersion + devel:liblzo2$secondaryArchSuffix + " + +REQUIRES_devel=" + lzo$secondaryArchSuffix == $portVersion base + " + LICENSE="GNU GPL v2" COPYRIGHT="1996-2011 Markus F.X.J Oberhumer" diff --git a/dev-libs/openssl/openssl-1.0.0d.recipe b/dev-libs/openssl/openssl-1.0.0d.recipe index 5bc4a71bd..cdf43d957 100644 --- a/dev-libs/openssl/openssl-1.0.0d.recipe +++ b/dev-libs/openssl/openssl-1.0.0d.recipe @@ -1,22 +1,21 @@ SUMMARY="Full-strength general purpose cryptography library (with SSL/TLS)" DESCRIPTION=" - The OpenSSL Project is a collaborative effort to develop a robust, - commercial-grade, full-featured, and Open Source toolkit implementing the - Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) - protocols as well as a full-strength general purpose cryptography library. - The project is managed by a worldwide community of volunteers that use the - Internet to communicate, plan, and develop the OpenSSL toolkit and its - related documentation. - - OpenSSL is based on the excellent SSLeay library developed by Eric A. Young - and Tim J. Hudson. The OpenSSL toolkit is licensed under an Apache-style - licence, which basically means that you are free to get and use it for - commercial and non-commercial purposes subject to some simple license - conditions. - " +The OpenSSL Project is a collaborative effort to develop a robust, \ +commercial-grade, full-featured, and Open Source toolkit implementing the \ +Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) \ +protocols as well as a full-strength general purpose cryptography library. The \ +project is managed by a worldwide community of volunteers that use the \ +Internet to communicate, plan, and develop the OpenSSL toolkit and its related \ +documentation. +OpenSSL is based on the excellent SSLeay library developed by Eric A. Young \ +and Tim J. Hudson. The OpenSSL toolkit is licensed under an Apache-style \ +licence, which basically means that you are free to get and use it for \ +commercial and non-commercial purposes subject to some simple license \ +conditions. +" HOMEPAGE="http://www.openssl.org/" SRC_URI="http://www.openssl.org/source/openssl-1.0.0d.tar.gz" -CHECKSUM_MD5="40b6ea380cc8a5bf9734c2f8bf7e701e" +CHECKSUM_SHA256="92511d1f0caaa298dba250426f8e7d5d00b271847886d1adc62422778d6320db" LICENSE="OpenSSL" COPYRIGHT=" 1995-1998 Eric Young @@ -50,7 +49,6 @@ BUILD_PREREQUIRES=" cmd:sed " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/dev-libs/openssl/openssl-1.0.0j.recipe b/dev-libs/openssl/openssl-1.0.0j.recipe index 90b2d83e7..47c8745c0 100644 --- a/dev-libs/openssl/openssl-1.0.0j.recipe +++ b/dev-libs/openssl/openssl-1.0.0j.recipe @@ -1,29 +1,28 @@ SUMMARY="Full-strength general purpose cryptography library (with SSL/TLS)" DESCRIPTION=" - The OpenSSL Project is a collaborative effort to develop a robust, - commercial-grade, full-featured, and Open Source toolkit implementing the - Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) - protocols as well as a full-strength general purpose cryptography library. - The project is managed by a worldwide community of volunteers that use the - Internet to communicate, plan, and develop the OpenSSL toolkit and its - related documentation. - - OpenSSL is based on the excellent SSLeay library developed by Eric A. Young - and Tim J. Hudson. The OpenSSL toolkit is licensed under an Apache-style - licence, which basically means that you are free to get and use it for - commercial and non-commercial purposes subject to some simple license - conditions. - " +The OpenSSL Project is a collaborative effort to develop a robust, \ +commercial-grade, full-featured, and Open Source toolkit implementing the \ +Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) \ +protocols as well as a full-strength general purpose cryptography library. The \ +project is managed by a worldwide community of volunteers that use the \ +Internet to communicate, plan, and develop the OpenSSL toolkit and its related \ +documentation. +OpenSSL is based on the excellent SSLeay library developed by Eric A. Young \ +and Tim J. Hudson. The OpenSSL toolkit is licensed under an Apache-style \ +licence, which basically means that you are free to get and use it for \ +commercial and non-commercial purposes subject to some simple license \ +conditions. +" HOMEPAGE="http://www.openssl.org/" SRC_URI="http://www.openssl.org/source/openssl-1.0.0j.tar.gz" -CHECKSUM_MD5="cbe4ac0d8f598680f68a951e04b0996b" +CHECKSUM_SHA256="626fb8fcb3eb7e966edbe71553ff993d137f6e8a87b05051a3695e621098b8af" LICENSE="OpenSSL" COPYRIGHT=" 1995-1998 Eric Young 1998-2012 The OpenSSL Project. " -REVISION="4" -ARCHITECTURES="x86_gcc2 x86 x86_64" +REVISION="5" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" SECONDARY_ARCHITECTURES="x86_gcc2 x86" PATCHES="openssl-1.0.0j.patch" @@ -70,9 +69,6 @@ PATCH() BUILD() { - # Fix hardcoded directory for manpages - sed -i "s@MANDIR=.*\$@MANDIR=$manDir@g" Make* - PERL="/bin/env perl" \ ./config --prefix=$prefix --libdir=$relativeLibDir \ --openssldir=$dataRootDir/ssl \ @@ -83,7 +79,7 @@ BUILD() INSTALL() { - make install + make MANDIR=$manDir install # move include dir to correct location mkdir -p $(dirname $includeDir) diff --git a/dev-libs/openssl/openssl-1.0.0l.recipe b/dev-libs/openssl/openssl-1.0.0l.recipe new file mode 100644 index 000000000..0a3aeaeb7 --- /dev/null +++ b/dev-libs/openssl/openssl-1.0.0l.recipe @@ -0,0 +1,121 @@ +SUMMARY="Full-strength general purpose cryptography library (with SSL/TLS)" +DESCRIPTION=" +The OpenSSL Project is a collaborative effort to develop a robust, \ +commercial-grade, full-featured, and Open Source toolkit implementing the \ +Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) \ +protocols as well as a full-strength general purpose cryptography library. The \ +project is managed by a worldwide community of volunteers that use the \ +Internet to communicate, plan, and develop the OpenSSL toolkit and its related \ +documentation. +OpenSSL is based on the excellent SSLeay library developed by Eric A. Young \ +and Tim J. Hudson. The OpenSSL toolkit is licensed under an Apache-style \ +licence, which basically means that you are free to get and use it for \ +commercial and non-commercial purposes subject to some simple license \ +conditions. +" +HOMEPAGE="http://www.openssl.org/" +SRC_URI="http://www.openssl.org/source/openssl-$portVersion.tar.gz" +CHECKSUM_SHA256="2a072e67d9e3ae900548c43d7936305ba576025bd083d1e91ff14d68ded1fdec" +LICENSE="OpenSSL" +COPYRIGHT=" + 1995-1998 Eric Young + 1998-2012 The OpenSSL Project. + " +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PATCHES="openssl-$portVersion.patchset" + +PROVIDES=" + openssl$secondaryArchSuffix = $portVersion compat >= 1.0.0 + lib:libcrypto$secondaryArchSuffix = $portVersion compat >= 1.0.0 + lib:libssl$secondaryArchSuffix = $portVersion compat >= 1.0.0 + " +if [ -z "$secondaryArchSuffix" ]; then + PROVIDES="$PROVIDES + cmd:c_rehash = $portVersion compat >= 1 + cmd:openssl = $portVersion compat >= 1 + " +fi + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libz$secondaryArchSuffix >= 1.2.3 + " +if [ -n "$secondaryArchSuffix" ]; then + REQUIRES="$REQUIRES + openssl == $portVersion base + " +fi + +BUILD_REQUIRES=" + devel:libz$secondaryArchSuffix >= 1.2.3 + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc${secondaryArchSuffix} + cmd:ld${secondaryArchSuffix} + cmd:make + cmd:perl >= 5 + cmd:sed + " + +PATCH() +{ + # fix hard-coded perl path + sed -i 's,/usr/bin/perl,/bin/env perl,g' apps/tsget +} + +BUILD() +{ + PERL="/bin/env perl" \ + ./config --prefix=$prefix --libdir=$relativeLibDir \ + --openssldir=$dataRootDir/ssl \ + zlib shared + make + # multi-job builds don't work correctly +} + +INSTALL() +{ + make MANDIR=$manDir install + + # move include dir to correct location + mkdir -p $(dirname $includeDir) + mv $prefix/include $includeDir + + # prepare develop/lib + prepareInstalledDevelLibs libcrypto libssl + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir \ + $manDir/man3 + + # Remove stuff we don't need in the secondary architecture base package, + # since we make it depend on the primary package. + if [ -n "$secondaryArchSuffix" ]; then + rm -rf $prefix/bin + rm -rf $dataRootDir/ssl + rm -rf $documentationDir + fi +} + +TEST() +{ + cd openssl-1.0.0j + make test +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + openssl${secondaryArchSuffix}_devel = $portVersion + devel:libcrypto${secondaryArchSuffix} = $portVersion compat >= 1.0.0 + devel:libssl${secondaryArchSuffix} = $portVersion compat >= 1.0.0 + " +REQUIRES_devel=" + openssl${secondaryArchSuffix} == $portVersion base + " diff --git a/dev-libs/openssl/openssl-1.0.1g.recipe b/dev-libs/openssl/openssl-1.0.1g.recipe new file mode 100644 index 000000000..fce0a8dc6 --- /dev/null +++ b/dev-libs/openssl/openssl-1.0.1g.recipe @@ -0,0 +1,120 @@ +SUMMARY="Full-strength general purpose cryptography library (with SSL/TLS)" +DESCRIPTION=" +The OpenSSL Project is a collaborative effort to develop a robust, \ +commercial-grade, full-featured, and Open Source toolkit implementing the \ +Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) \ +protocols as well as a full-strength general purpose cryptography library. The \ +project is managed by a worldwide community of volunteers that use the \ +Internet to communicate, plan, and develop the OpenSSL toolkit and its related \ +documentation. +OpenSSL is based on the excellent SSLeay library developed by Eric A. Young \ +and Tim J. Hudson. The OpenSSL toolkit is licensed under an Apache-style \ +licence, which basically means that you are free to get and use it for \ +commercial and non-commercial purposes subject to some simple license \ +conditions. +" +HOMEPAGE="http://www.openssl.org/" +SRC_URI="http://www.openssl.org/source/openssl-1.0.1g.tar.gz" +CHECKSUM_SHA256="53cb818c3b90e507a8348f4f5eaedb05d8bfe5358aabb508b7263cc670c3e028" +LICENSE="OpenSSL" +COPYRIGHT=" + 1995-1998 Eric Young + 1998-2013 The OpenSSL Project. + " +REVISION="1" +ARCHITECTURES="!x86_gcc2 !x86 !x86_64" +SECONDARY_ARCHITECTURES="!x86_gcc2 !x86" + +PATCHES="openssl-1.0.1e.patchset" + +PROVIDES=" + openssl$secondaryArchSuffix = $portVersion compat >= 1.0.0 + lib:libcrypto$secondaryArchSuffix = $portVersion compat >= 1.0.0 + lib:libssl$secondaryArchSuffix = $portVersion compat >= 1.0.0 + " +if [ -z "$secondaryArchSuffix" ]; then + PROVIDES="$PROVIDES + cmd:c_rehash = $portVersion compat >= 1 + cmd:openssl = $portVersion compat >= 1 + " +fi + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libz$secondaryArchSuffix >= 1.2.3 + " +if [ -n "$secondaryArchSuffix" ]; then + REQUIRES="$REQUIRES + openssl == $portVersion base + " +fi + +BUILD_REQUIRES=" + devel:libz$secondaryArchSuffix >= 1.2.3 + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc${secondaryArchSuffix} + cmd:ld${secondaryArchSuffix} + cmd:make + cmd:perl >= 5 + cmd:sed + " + +PATCH() +{ + # fix hard-coded perl path + sed -i 's,/usr/bin/perl,/bin/env perl,g' apps/tsget +} + +BUILD() +{ + PERL="/bin/env perl" \ + ./config --prefix=$prefix --libdir=$relativeLibDir \ + --openssldir=$dataRootDir/ssl \ + zlib shared + make + # multi-job builds don't work correctly +} + +INSTALL() +{ + make MANDIR=$manDir install + + # move include dir to correct location + mkdir -p $(dirname $includeDir) + mv $prefix/include $includeDir + + # prepare develop/lib + prepareInstalledDevelLibs libcrypto libssl + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir \ + $manDir/man3 + + # Remove stuff we don't need in the secondary architecture base package, + # since we make it depend on the primary package. + if [ -n "$secondaryArchSuffix" ]; then + rm -rf $prefix/bin + rm -rf $dataRootDir/ssl + rm -rf $documentationDir + fi +} + +TEST() +{ + make test +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + openssl${secondaryArchSuffix}_devel = $portVersion + devel:libcrypto${secondaryArchSuffix} = $portVersion compat >= 1.0.1 + devel:libssl${secondaryArchSuffix} = $portVersion compat >= 1.0.1 + " +REQUIRES_devel=" + openssl${secondaryArchSuffix} == $portVersion base + " diff --git a/dev-libs/openssl/patches/openssl-1.0.0j.patch b/dev-libs/openssl/patches/openssl-1.0.0j.patch index 7caa8475d..2cd6bf0e3 100644 --- a/dev-libs/openssl/patches/openssl-1.0.0j.patch +++ b/dev-libs/openssl/patches/openssl-1.0.0j.patch @@ -1,38 +1,6 @@ -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 +diff -Naur openssl-1.0.0j/config openssl-1.0.0j-haiku/config +--- openssl-1.0.0j/config 2012-03-13 14:22:26.025427968 -0500 ++++ openssl-1.0.0j-haiku/config 2013-10-19 01:35:15.671612928 -0500 @@ -134,6 +134,14 @@ echo "${MACHINE}-dg-dgux"; exit 0 ;; @@ -58,3 +26,454 @@ diff -urN openssl-1.0.0j.orig/config openssl-1.0.0j/config # these are all covered by the catchall below # *-dgux) OUT="dgux" ;; mips-sony-newsos4) OUT="newsos4-gcc" ;; +diff -Naur openssl-1.0.0j/Configure openssl-1.0.0j-haiku/Configure +--- openssl-1.0.0j/Configure 2012-03-03 07:48:21.025690112 -0600 ++++ openssl-1.0.0j-haiku/Configure 2013-10-19 01:35:15.666632192 -0500 +@@ -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 -Naur openssl-1.0.0j/doc/apps/cms.pod openssl-1.0.0j-haiku/doc/apps/cms.pod +--- openssl-1.0.0j/doc/apps/cms.pod 2009-09-30 18:40:37.031195136 -0500 ++++ openssl-1.0.0j-haiku/doc/apps/cms.pod 2013-10-19 01:35:39.000786432 -0500 +@@ -450,28 +450,28 @@ + + =over 4 + +-=item 0 ++=item C<0> + + the operation was completely successfully. + +-=item 1 ++=item C<1> + + an error occurred parsing the command options. + +-=item 2 ++=item C<2> + + one of the input files could not be read. + +-=item 3 ++=item C<3> + + an error occurred creating the CMS file or when reading the MIME + message. + +-=item 4 ++=item C<4> + + an error occurred decrypting or verifying the message. + +-=item 5 ++=item C<5> + + the message was verified correctly but an error occurred writing out + the signers certificates. +diff -Naur openssl-1.0.0j/doc/apps/smime.pod openssl-1.0.0j-haiku/doc/apps/smime.pod +--- openssl-1.0.0j/doc/apps/smime.pod 2010-10-04 08:28:35.034603008 -0500 ++++ openssl-1.0.0j-haiku/doc/apps/smime.pod 2013-10-19 01:35:39.003407872 -0500 +@@ -308,28 +308,28 @@ + + =over 4 + +-=item 0 ++=item C<0> + + the operation was completely successfully. + +-=item 1 ++=item C<1> + + an error occurred parsing the command options. + +-=item 2 ++=item C<2> + + one of the input files could not be read. + +-=item 3 ++=item C<3> + + an error occurred creating the PKCS#7 file or when reading the MIME + message. + +-=item 4 ++=item C<4> + + an error occurred decrypting or verifying the message. + +-=item 5 ++=item C<5> + + the message was verified correctly but an error occurred writing out + the signers certificates. +diff -Naur openssl-1.0.0j/doc/crypto/X509_STORE_CTX_get_error.pod openssl-1.0.0j-haiku/doc/crypto/X509_STORE_CTX_get_error.pod +--- openssl-1.0.0j/doc/crypto/X509_STORE_CTX_get_error.pod 2009-10-18 10:28:59.056360960 -0500 ++++ openssl-1.0.0j-haiku/doc/crypto/X509_STORE_CTX_get_error.pod 2013-10-19 01:35:39.005767168 -0500 +@@ -278,6 +278,8 @@ + an application specific error. This will never be returned unless explicitly + set by an application. + ++=back ++ + =head1 NOTES + + The above functions should be used instead of directly referencing the fields +diff -Naur openssl-1.0.0j/doc/ssl/SSL_accept.pod openssl-1.0.0j-haiku/doc/ssl/SSL_accept.pod +--- openssl-1.0.0j/doc/ssl/SSL_accept.pod 2003-06-03 04:59:44.058982400 -0500 ++++ openssl-1.0.0j-haiku/doc/ssl/SSL_accept.pod 2013-10-19 01:35:39.007864320 -0500 +@@ -44,12 +44,12 @@ + + =over 4 + +-=item 1 ++=item C<1> + + The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been + established. + +-=item 0 ++=item C<0> + + The TLS/SSL handshake was not successful but was shut down controlled and + by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the +diff -Naur openssl-1.0.0j/doc/ssl/SSL_clear.pod openssl-1.0.0j-haiku/doc/ssl/SSL_clear.pod +--- openssl-1.0.0j/doc/ssl/SSL_clear.pod 2011-10-13 08:24:37.059244544 -0500 ++++ openssl-1.0.0j-haiku/doc/ssl/SSL_clear.pod 2013-10-19 01:35:39.009961472 -0500 +@@ -56,12 +56,12 @@ + + =over 4 + +-=item 0 ++=item C<0> + + The SSL_clear() operation could not be performed. Check the error stack to + find out the reason. + +-=item 1 ++=item C<1> + + The SSL_clear() operation was successful. + +diff -Naur openssl-1.0.0j/doc/ssl/SSL_COMP_add_compression_method.pod openssl-1.0.0j-haiku/doc/ssl/SSL_COMP_add_compression_method.pod +--- openssl-1.0.0j/doc/ssl/SSL_COMP_add_compression_method.pod 2003-11-29 04:33:25.059506688 -0600 ++++ openssl-1.0.0j-haiku/doc/ssl/SSL_COMP_add_compression_method.pod 2013-10-19 01:35:39.012058624 -0500 +@@ -53,11 +53,11 @@ + + =over 4 + +-=item 0 ++=item C<0> + + The operation succeeded. + +-=item 1 ++=item C<1> + + The operation failed. Check the error queue to find out the reason. + +diff -Naur openssl-1.0.0j/doc/ssl/SSL_connect.pod openssl-1.0.0j-haiku/doc/ssl/SSL_connect.pod +--- openssl-1.0.0j/doc/ssl/SSL_connect.pod 2003-06-03 04:59:44.059506688 -0500 ++++ openssl-1.0.0j-haiku/doc/ssl/SSL_connect.pod 2013-10-19 01:35:39.014155776 -0500 +@@ -41,12 +41,12 @@ + + =over 4 + +-=item 1 ++=item C<1> + + The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been + established. + +-=item 0 ++=item C<0> + + The TLS/SSL handshake was not successful but was shut down controlled and + by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the +diff -Naur openssl-1.0.0j/doc/ssl/SSL_CTX_add_session.pod openssl-1.0.0j-haiku/doc/ssl/SSL_CTX_add_session.pod +--- openssl-1.0.0j/doc/ssl/SSL_CTX_add_session.pod 2002-10-28 18:33:01.059768832 -0600 ++++ openssl-1.0.0j-haiku/doc/ssl/SSL_CTX_add_session.pod 2013-10-19 01:35:39.016252928 -0500 +@@ -52,13 +52,13 @@ + + =over 4 + +-=item 0 ++=item C<0> + + The operation failed. In case of the add operation, it was tried to add + the same (identical) session twice. In case of the remove operation, the + session was not found in the cache. + +-=item 1 ++=item C<1> + + The operation succeeded. + +diff -Naur openssl-1.0.0j/doc/ssl/SSL_CTX_load_verify_locations.pod openssl-1.0.0j-haiku/doc/ssl/SSL_CTX_load_verify_locations.pod +--- openssl-1.0.0j/doc/ssl/SSL_CTX_load_verify_locations.pod 2001-09-07 01:13:39.060293120 -0500 ++++ openssl-1.0.0j-haiku/doc/ssl/SSL_CTX_load_verify_locations.pod 2013-10-19 01:35:39.018350080 -0500 +@@ -100,13 +100,13 @@ + + =over 4 + +-=item 0 ++=item C<0> + + The operation failed because B and B are NULL or the + processing at one of the locations specified failed. Check the error + stack to find out the reason. + +-=item 1 ++=item C<1> + + The operation succeeded. + +diff -Naur openssl-1.0.0j/doc/ssl/SSL_CTX_set_client_CA_list.pod openssl-1.0.0j-haiku/doc/ssl/SSL_CTX_set_client_CA_list.pod +--- openssl-1.0.0j/doc/ssl/SSL_CTX_set_client_CA_list.pod 2001-04-12 11:02:34.061079552 -0500 ++++ openssl-1.0.0j-haiku/doc/ssl/SSL_CTX_set_client_CA_list.pod 2013-10-19 01:35:39.020709376 -0500 +@@ -66,11 +66,11 @@ + + =over 4 + +-=item 1 ++=item C<1> + + The operation succeeded. + +-=item 0 ++=item C<0> + + A failure while manipulating the STACK_OF(X509_NAME) object occurred or + the X509_NAME could not be extracted from B. Check the error stack +diff -Naur openssl-1.0.0j/doc/ssl/SSL_CTX_set_session_id_context.pod openssl-1.0.0j-haiku/doc/ssl/SSL_CTX_set_session_id_context.pod +--- openssl-1.0.0j/doc/ssl/SSL_CTX_set_session_id_context.pod 2004-06-14 08:27:28.062390272 -0500 ++++ openssl-1.0.0j-haiku/doc/ssl/SSL_CTX_set_session_id_context.pod 2013-10-19 01:35:39.022806528 -0500 +@@ -64,13 +64,13 @@ + + =over 4 + +-=item 0 ++=item C<0> + + The length B of the session id context B exceeded + the maximum allowed length of B. The error + is logged to the error stack. + +-=item 1 ++=item C<1> + + The operation succeeded. + +diff -Naur openssl-1.0.0j/doc/ssl/SSL_CTX_set_ssl_version.pod openssl-1.0.0j-haiku/doc/ssl/SSL_CTX_set_ssl_version.pod +--- openssl-1.0.0j/doc/ssl/SSL_CTX_set_ssl_version.pod 2005-08-14 16:48:32.062652416 -0500 ++++ openssl-1.0.0j-haiku/doc/ssl/SSL_CTX_set_ssl_version.pod 2013-10-19 01:35:39.024903680 -0500 +@@ -42,11 +42,11 @@ + + =over 4 + +-=item 0 ++=item C<0> + + The new choice failed, check the error stack to find out the reason. + +-=item 1 ++=item C<1> + + The operation succeeded. + +diff -Naur openssl-1.0.0j/doc/ssl/SSL_CTX_use_psk_identity_hint.pod openssl-1.0.0j-haiku/doc/ssl/SSL_CTX_use_psk_identity_hint.pod +--- openssl-1.0.0j/doc/ssl/SSL_CTX_use_psk_identity_hint.pod 2006-03-10 17:06:17.063176704 -0600 ++++ openssl-1.0.0j-haiku/doc/ssl/SSL_CTX_use_psk_identity_hint.pod 2013-10-19 01:35:39.027262976 -0500 +@@ -81,6 +81,8 @@ + + Return values from the server callback are interpreted as follows: + ++=over ++ + =item > 0 + + PSK identity was found and the server callback has provided the PSK +@@ -94,9 +96,11 @@ + connection will fail with decryption_error before it will be finished + completely. + +-=item 0 ++=item C<0> + + PSK identity was not found. An "unknown_psk_identity" alert message + will be sent and the connection setup fails. + ++=back ++ + =cut +diff -Naur openssl-1.0.0j/doc/ssl/SSL_do_handshake.pod openssl-1.0.0j-haiku/doc/ssl/SSL_do_handshake.pod +--- openssl-1.0.0j/doc/ssl/SSL_do_handshake.pod 2002-07-19 06:05:49.063438848 -0500 ++++ openssl-1.0.0j-haiku/doc/ssl/SSL_do_handshake.pod 2013-10-19 01:35:39.029622272 -0500 +@@ -45,12 +45,12 @@ + + =over 4 + +-=item 1 ++=item C<1> + + The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been + established. + +-=item 0 ++=item C<0> + + The TLS/SSL handshake was not successful but was shut down controlled and + by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the +diff -Naur openssl-1.0.0j/doc/ssl/SSL_read.pod openssl-1.0.0j-haiku/doc/ssl/SSL_read.pod +--- openssl-1.0.0j/doc/ssl/SSL_read.pod 2008-08-01 10:03:20.065536000 -0500 ++++ openssl-1.0.0j-haiku/doc/ssl/SSL_read.pod 2013-10-19 01:35:39.031719424 -0500 +@@ -86,7 +86,7 @@ + The read operation was successful; the return value is the number of + bytes actually read from the TLS/SSL connection. + +-=item 0 ++=item C<0> + + The read operation was not successful. The reason may either be a clean + shutdown due to a "close notify" alert sent by the peer (in which case +diff -Naur openssl-1.0.0j/doc/ssl/SSL_session_reused.pod openssl-1.0.0j-haiku/doc/ssl/SSL_session_reused.pod +--- openssl-1.0.0j/doc/ssl/SSL_session_reused.pod 2001-07-20 13:57:15.066060288 -0500 ++++ openssl-1.0.0j-haiku/doc/ssl/SSL_session_reused.pod 2013-10-19 01:35:39.033816576 -0500 +@@ -27,11 +27,11 @@ + + =over 4 + +-=item 0 ++=item C<0> + + A new session was negotiated. + +-=item 1 ++=item C<1> + + A session was reused. + +diff -Naur openssl-1.0.0j/doc/ssl/SSL_set_fd.pod openssl-1.0.0j-haiku/doc/ssl/SSL_set_fd.pod +--- openssl-1.0.0j/doc/ssl/SSL_set_fd.pod 2000-09-16 11:00:38.066322432 -0500 ++++ openssl-1.0.0j-haiku/doc/ssl/SSL_set_fd.pod 2013-10-19 01:35:39.035913728 -0500 +@@ -35,11 +35,11 @@ + + =over 4 + +-=item 0 ++=item C<0> + + The operation failed. Check the error stack to find out why. + +-=item 1 ++=item C<1> + + The operation succeeded. + +diff -Naur openssl-1.0.0j/doc/ssl/SSL_set_session.pod openssl-1.0.0j-haiku/doc/ssl/SSL_set_session.pod +--- openssl-1.0.0j/doc/ssl/SSL_set_session.pod 2001-10-12 07:29:16.066584576 -0500 ++++ openssl-1.0.0j-haiku/doc/ssl/SSL_set_session.pod 2013-10-19 01:35:39.038010880 -0500 +@@ -37,11 +37,11 @@ + + =over 4 + +-=item 0 ++=item C<0> + + The operation failed; check the error stack to find out the reason. + +-=item 1 ++=item C<1> + + The operation succeeded. + +diff -Naur openssl-1.0.0j/doc/ssl/SSL_shutdown.pod openssl-1.0.0j-haiku/doc/ssl/SSL_shutdown.pod +--- openssl-1.0.0j/doc/ssl/SSL_shutdown.pod 2004-11-14 07:55:16.066846720 -0600 ++++ openssl-1.0.0j-haiku/doc/ssl/SSL_shutdown.pod 2013-10-19 01:35:39.040108032 -0500 +@@ -92,12 +92,12 @@ + + =over 4 + +-=item 1 ++=item C<1> + + The shutdown was successfully completed. The "close notify" alert was sent + and the peer's "close notify" alert was received. + +-=item 0 ++=item C<0> + + The shutdown is not yet finished. Call SSL_shutdown() for a second time, + if a bidirectional shutdown shall be performed. +diff -Naur openssl-1.0.0j/doc/ssl/SSL_write.pod openssl-1.0.0j-haiku/doc/ssl/SSL_write.pod +--- openssl-1.0.0j/doc/ssl/SSL_write.pod 2002-07-19 06:53:54.000000000 -0500 ++++ openssl-1.0.0j-haiku/doc/ssl/SSL_write.pod 2013-10-19 01:35:39.042467328 -0500 +@@ -79,7 +79,7 @@ + The write operation was successful, the return value is the number of + bytes actually written to the TLS/SSL connection. + +-=item 0 ++=item C<0> + + The write operation was not successful. Probably the underlying connection + was closed. Call SSL_get_error() with the return value B to find out, +diff -Naur openssl-1.0.0j/doc/apps/genpkey.pod openssl-1.0.0j-haiku/doc/apps/genpkey.pod +--- openssl-1.0.0j/doc/apps/genpkey.pod 2009-04-10 11:42:27.032505856 -0500 ++++ openssl-1.0.0j-haiku/doc/apps/genpkey.pod 2013-10-19 01:56:29.162529280 -0500 +@@ -114,6 +114,8 @@ + + The number of bits in the generated parameters. If not specified 1024 is used. + ++=back ++ + =head1 DH PARAMETER GENERATION OPTIONS + + =over 4 +diff -Naur openssl-1.0.0j/doc/apps/openssl.pod openssl-1.0.0j-haiku/doc/apps/openssl.pod +--- openssl-1.0.0j/doc/apps/openssl.pod 2010-01-21 12:46:28.033030144 -0600 ++++ openssl-1.0.0j-haiku/doc/apps/openssl.pod 2013-10-19 02:04:12.774111232 -0500 +@@ -287,8 +287,6 @@ + + SHA-1 Digest + +-=back +- + =item B + + SHA-224 Digest +@@ -305,6 +303,8 @@ + + SHA-512 Digest + ++=back ++ + =head2 ENCODING AND CIPHER COMMANDS + + =over 10 +diff -Naur openssl-1.0.0j/Makefile.shared openssl-1.0.0j-haiku/Makefile.shared +--- openssl-1.0.0j/Makefile.shared 2010-08-21 06:36:49.017039360 -0500 ++++ openssl-1.0.0j-haiku/Makefile.shared 2013-10-19 01:35:15.668991488 -0500 +@@ -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 --git a/dev-libs/openssl/patches/openssl-1.0.0l.patchset b/dev-libs/openssl/patches/openssl-1.0.0l.patchset new file mode 100644 index 000000000..8b8e0ab62 --- /dev/null +++ b/dev-libs/openssl/patches/openssl-1.0.0l.patchset @@ -0,0 +1,579 @@ +From 4f6b8899f1231fbc3250dc17c63200007a51b2f5 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Thu, 15 May 2014 18:19:59 +0000 +Subject: import patch from 1.0.0j + + +diff --git a/Configure b/Configure +index cd849e3..0ff7727 100755 +--- a/Configure ++++ b/Configure +@@ -583,6 +583,10 @@ my %table=( + "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 --git a/Makefile.shared b/Makefile.shared +index e753f44..cce510f 100644 +--- a/Makefile.shared ++++ b/Makefile.shared +@@ -594,10 +594,10 @@ symlink.hpux: + 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 --git a/config b/config +index 30e9a37..c2894cc 100755 +--- a/config ++++ b/config +@@ -134,6 +134,14 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in + 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 @@ case "$GUESSOS" in + 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/doc/apps/cms.pod b/doc/apps/cms.pod +index a09588a..2d19d91 100644 +--- a/doc/apps/cms.pod ++++ b/doc/apps/cms.pod +@@ -450,28 +450,28 @@ remains DER. + + =over 4 + +-=item 0 ++=item C<0> + + the operation was completely successfully. + +-=item 1 ++=item C<1> + + an error occurred parsing the command options. + +-=item 2 ++=item C<2> + + one of the input files could not be read. + +-=item 3 ++=item C<3> + + an error occurred creating the CMS file or when reading the MIME + message. + +-=item 4 ++=item C<4> + + an error occurred decrypting or verifying the message. + +-=item 5 ++=item C<5> + + the message was verified correctly but an error occurred writing out + the signers certificates. +diff --git a/doc/apps/genpkey.pod b/doc/apps/genpkey.pod +index 1611b5c..c74d097 100644 +--- a/doc/apps/genpkey.pod ++++ b/doc/apps/genpkey.pod +@@ -114,6 +114,8 @@ hexadecimal value if preceded by B<0x>. Default value is 65537. + + The number of bits in the generated parameters. If not specified 1024 is used. + ++=back ++ + =head1 DH PARAMETER GENERATION OPTIONS + + =over 4 +diff --git a/doc/apps/openssl.pod b/doc/apps/openssl.pod +index 738142e..64a160c 100644 +--- a/doc/apps/openssl.pod ++++ b/doc/apps/openssl.pod +@@ -287,8 +287,6 @@ SHA Digest + + SHA-1 Digest + +-=back +- + =item B + + SHA-224 Digest +@@ -305,6 +303,8 @@ SHA-384 Digest + + SHA-512 Digest + ++=back ++ + =head2 ENCODING AND CIPHER COMMANDS + + =over 10 +diff --git a/doc/apps/smime.pod b/doc/apps/smime.pod +index e4e89af..72c7b24 100644 +--- a/doc/apps/smime.pod ++++ b/doc/apps/smime.pod +@@ -308,28 +308,28 @@ remains DER. + + =over 4 + +-=item 0 ++=item C<0> + + the operation was completely successfully. + +-=item 1 ++=item C<1> + + an error occurred parsing the command options. + +-=item 2 ++=item C<2> + + one of the input files could not be read. + +-=item 3 ++=item C<3> + + an error occurred creating the PKCS#7 file or when reading the MIME + message. + +-=item 4 ++=item C<4> + + an error occurred decrypting or verifying the message. + +-=item 5 ++=item C<5> + + the message was verified correctly but an error occurred writing out + the signers certificates. +diff --git a/doc/ssl/SSL_COMP_add_compression_method.pod b/doc/ssl/SSL_COMP_add_compression_method.pod +index 42fa66b..80175a3 100644 +--- a/doc/ssl/SSL_COMP_add_compression_method.pod ++++ b/doc/ssl/SSL_COMP_add_compression_method.pod +@@ -53,11 +53,11 @@ SSL_COMP_add_compression_method() may return the following values: + + =over 4 + +-=item 0 ++=item C<0> + + The operation succeeded. + +-=item 1 ++=item C<1> + + The operation failed. Check the error queue to find out the reason. + +diff --git a/doc/ssl/SSL_CTX_add_session.pod b/doc/ssl/SSL_CTX_add_session.pod +index 82676b2..fd927f8 100644 +--- a/doc/ssl/SSL_CTX_add_session.pod ++++ b/doc/ssl/SSL_CTX_add_session.pod +@@ -52,13 +52,13 @@ The following values are returned by all functions: + + =over 4 + +-=item 0 ++=item C<0> + + The operation failed. In case of the add operation, it was tried to add + the same (identical) session twice. In case of the remove operation, the + session was not found in the cache. + +-=item 1 ++=item C<1> + + The operation succeeded. + +diff --git a/doc/ssl/SSL_CTX_load_verify_locations.pod b/doc/ssl/SSL_CTX_load_verify_locations.pod +index 84a799f..de01065 100644 +--- a/doc/ssl/SSL_CTX_load_verify_locations.pod ++++ b/doc/ssl/SSL_CTX_load_verify_locations.pod +@@ -100,13 +100,13 @@ The following return values can occur: + + =over 4 + +-=item 0 ++=item C<0> + + The operation failed because B and B are NULL or the + processing at one of the locations specified failed. Check the error + stack to find out the reason. + +-=item 1 ++=item C<1> + + The operation succeeded. + +diff --git a/doc/ssl/SSL_CTX_set_client_CA_list.pod b/doc/ssl/SSL_CTX_set_client_CA_list.pod +index 5e66133..bcf35dc 100644 +--- a/doc/ssl/SSL_CTX_set_client_CA_list.pod ++++ b/doc/ssl/SSL_CTX_set_client_CA_list.pod +@@ -66,13 +66,13 @@ values: + + =over 4 + +-=item 0 ++=item C<0> + + A failure while manipulating the STACK_OF(X509_NAME) object occurred or + the X509_NAME could not be extracted from B. Check the error stack + to find out the reason. + +-=item 1 ++=item C<1> + + The operation succeeded. + +diff --git a/doc/ssl/SSL_CTX_set_session_id_context.pod b/doc/ssl/SSL_CTX_set_session_id_context.pod +index 58fc685..ed0a81c 100644 +--- a/doc/ssl/SSL_CTX_set_session_id_context.pod ++++ b/doc/ssl/SSL_CTX_set_session_id_context.pod +@@ -64,13 +64,13 @@ return the following values: + + =over 4 + +-=item 0 ++=item C<0> + + The length B of the session id context B exceeded + the maximum allowed length of B. The error + is logged to the error stack. + +-=item 1 ++=item C<1> + + The operation succeeded. + +diff --git a/doc/ssl/SSL_CTX_set_ssl_version.pod b/doc/ssl/SSL_CTX_set_ssl_version.pod +index 254f2b4..5ea8f0d 100644 +--- a/doc/ssl/SSL_CTX_set_ssl_version.pod ++++ b/doc/ssl/SSL_CTX_set_ssl_version.pod +@@ -42,11 +42,11 @@ and SSL_set_ssl_method(): + + =over 4 + +-=item 0 ++=item C<0> + + The new choice failed, check the error stack to find out the reason. + +-=item 1 ++=item C<1> + + The operation succeeded. + +diff --git a/doc/ssl/SSL_CTX_use_psk_identity_hint.pod b/doc/ssl/SSL_CTX_use_psk_identity_hint.pod +index 7e60df5..721e884 100644 +--- a/doc/ssl/SSL_CTX_use_psk_identity_hint.pod ++++ b/doc/ssl/SSL_CTX_use_psk_identity_hint.pod +@@ -83,6 +83,8 @@ Return values from the server callback are interpreted as follows: + + =over 4 + ++=over ++ + =item > 0 + + PSK identity was found and the server callback has provided the PSK +diff --git a/doc/ssl/SSL_clear.pod b/doc/ssl/SSL_clear.pod +index d4df1bf..2da0b02 100644 +--- a/doc/ssl/SSL_clear.pod ++++ b/doc/ssl/SSL_clear.pod +@@ -56,12 +56,12 @@ The following return values can occur: + + =over 4 + +-=item 0 ++=item C<0> + + The SSL_clear() operation could not be performed. Check the error stack to + find out the reason. + +-=item 1 ++=item C<1> + + The SSL_clear() operation was successful. + +diff --git a/doc/ssl/SSL_read.pod b/doc/ssl/SSL_read.pod +index 7038cd2..3982b81 100644 +--- a/doc/ssl/SSL_read.pod ++++ b/doc/ssl/SSL_read.pod +@@ -86,7 +86,7 @@ The following return values can occur: + The read operation was successful; the return value is the number of + bytes actually read from the TLS/SSL connection. + +-=item 0 ++=item C<0> + + The read operation was not successful. The reason may either be a clean + shutdown due to a "close notify" alert sent by the peer (in which case +diff --git a/doc/ssl/SSL_session_reused.pod b/doc/ssl/SSL_session_reused.pod +index da7d062..033d54c 100644 +--- a/doc/ssl/SSL_session_reused.pod ++++ b/doc/ssl/SSL_session_reused.pod +@@ -27,11 +27,11 @@ The following return values can occur: + + =over 4 + +-=item 0 ++=item C<0> + + A new session was negotiated. + +-=item 1 ++=item C<1> + + A session was reused. + +diff --git a/doc/ssl/SSL_set_fd.pod b/doc/ssl/SSL_set_fd.pod +index 7029112..59e1b2b 100644 +--- a/doc/ssl/SSL_set_fd.pod ++++ b/doc/ssl/SSL_set_fd.pod +@@ -35,11 +35,11 @@ The following return values can occur: + + =over 4 + +-=item 0 ++=item C<0> + + The operation failed. Check the error stack to find out why. + +-=item 1 ++=item C<1> + + The operation succeeded. + +diff --git a/doc/ssl/SSL_set_session.pod b/doc/ssl/SSL_set_session.pod +index 5f54714..d35e6d3 100644 +--- a/doc/ssl/SSL_set_session.pod ++++ b/doc/ssl/SSL_set_session.pod +@@ -37,11 +37,11 @@ The following return values can occur: + + =over 4 + +-=item 0 ++=item C<0> + + The operation failed; check the error stack to find out the reason. + +-=item 1 ++=item C<1> + + The operation succeeded. + +diff --git a/doc/ssl/SSL_write.pod b/doc/ssl/SSL_write.pod +index e013c12..30f9e2b 100644 +--- a/doc/ssl/SSL_write.pod ++++ b/doc/ssl/SSL_write.pod +@@ -79,7 +79,7 @@ The following return values can occur: + The write operation was successful, the return value is the number of + bytes actually written to the TLS/SSL connection. + +-=item 0 ++=item C<0> + + The write operation was not successful. Probably the underlying connection + was closed. Call SSL_get_error() with the return value B to find out, +-- +1.8.3.4 + + +From 0c4539d72e181675fcc7bd1fdbf3d5ebabed2d51 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Thu, 15 May 2014 19:58:00 +0000 +Subject: doc fixes + + +diff --git a/doc/ssl/SSL_CTX_use_psk_identity_hint.pod b/doc/ssl/SSL_CTX_use_psk_identity_hint.pod +index 721e884..d2644c6 100644 +--- a/doc/ssl/SSL_CTX_use_psk_identity_hint.pod ++++ b/doc/ssl/SSL_CTX_use_psk_identity_hint.pod +@@ -98,7 +98,7 @@ data to B and return the length of the random data, so the + connection will fail with decryption_error before it will be finished + completely. + +-=item 0 ++=item C<0> + + PSK identity was not found. An "unknown_psk_identity" alert message + will be sent and the connection setup fails. +-- +1.8.3.4 + + +From 94e239bab7b08aef02831852932696e7e472ea9f Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Thu, 15 May 2014 20:16:41 +0000 +Subject: doc fixes + + +diff --git a/doc/ssl/SSL_CTX_use_psk_identity_hint.pod b/doc/ssl/SSL_CTX_use_psk_identity_hint.pod +index d2644c6..45f1ed5 100644 +--- a/doc/ssl/SSL_CTX_use_psk_identity_hint.pod ++++ b/doc/ssl/SSL_CTX_use_psk_identity_hint.pod +@@ -83,8 +83,6 @@ Return values from the server callback are interpreted as follows: + + =over 4 + +-=over +- + =item > 0 + + PSK identity was found and the server callback has provided the PSK +-- +1.8.3.4 + + +From 5c9a621eef12a8bb020f7994014cd34d97daee0d Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Thu, 15 May 2014 20:26:29 +0000 +Subject: doc fixes + + +diff --git a/doc/ssl/SSL_accept.pod b/doc/ssl/SSL_accept.pod +index b1c34d1..288203f 100644 +--- a/doc/ssl/SSL_accept.pod ++++ b/doc/ssl/SSL_accept.pod +@@ -44,13 +44,13 @@ The following return values can occur: + + =over 4 + +-=item 0 ++=item C<0> + + The TLS/SSL handshake was not successful but was shut down controlled and + by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the + return value B to find out the reason. + +-=item 1 ++=item C<1> + + The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been + established. +-- +1.8.3.4 + + +From 282293a280a46d39cfecb786c45749e6532392b9 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Thu, 15 May 2014 20:40:45 +0000 +Subject: doc fixes + + +diff --git a/doc/ssl/SSL_connect.pod b/doc/ssl/SSL_connect.pod +index 946ca89..e62a838 100644 +--- a/doc/ssl/SSL_connect.pod ++++ b/doc/ssl/SSL_connect.pod +@@ -41,13 +41,13 @@ The following return values can occur: + + =over 4 + +-=item 0 ++=item C<0> + + The TLS/SSL handshake was not successful but was shut down controlled and + by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the + return value B to find out the reason. + +-=item 1 ++=item C<1> + + The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been + established. +diff --git a/doc/ssl/SSL_do_handshake.pod b/doc/ssl/SSL_do_handshake.pod +index 7f8cf24..88947ca 100644 +--- a/doc/ssl/SSL_do_handshake.pod ++++ b/doc/ssl/SSL_do_handshake.pod +@@ -45,13 +45,13 @@ The following return values can occur: + + =over 4 + +-=item 0 ++=item C<0> + + The TLS/SSL handshake was not successful but was shut down controlled and + by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the + return value B to find out the reason. + +-=item 1 ++=item C<1> + + The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been + established. +diff --git a/doc/ssl/SSL_set_shutdown.pod b/doc/ssl/SSL_set_shutdown.pod +index 011a022..9139211 100644 +--- a/doc/ssl/SSL_set_shutdown.pod ++++ b/doc/ssl/SSL_set_shutdown.pod +@@ -24,7 +24,7 @@ The shutdown state of an ssl connection is a bitmask of: + + =over 4 + +-=item 0 ++=item C<0> + + No shutdown setting, yet. + +diff --git a/doc/ssl/SSL_shutdown.pod b/doc/ssl/SSL_shutdown.pod +index 42a89b7..d86ac7c 100644 +--- a/doc/ssl/SSL_shutdown.pod ++++ b/doc/ssl/SSL_shutdown.pod +@@ -92,19 +92,19 @@ The following return values can occur: + + =over 4 + +-=item 0 ++=item C<0> + + The shutdown is not yet finished. Call SSL_shutdown() for a second time, + if a bidirectional shutdown shall be performed. + The output of L may be misleading, as an + erroneous SSL_ERROR_SYSCALL may be flagged even though no error occurred. + +-=item 1 ++=item C<1> + + The shutdown was successfully completed. The "close notify" alert was sent + and the peer's "close notify" alert was received. + +-=item -1 ++=item C<-1> + + The shutdown was not successful because a fatal error occurred either + at the protocol level or a connection failure occurred. It can also occur if +-- +1.8.3.4 + diff --git a/dev-libs/openssl/patches/openssl-1.0.1e.patchset b/dev-libs/openssl/patches/openssl-1.0.1e.patchset new file mode 100644 index 000000000..2aeb0bca2 --- /dev/null +++ b/dev-libs/openssl/patches/openssl-1.0.1e.patchset @@ -0,0 +1,478 @@ +From 1e96233956f08910cfc2f288a069c8435c343f06 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Mon, 21 Oct 2013 10:01:47 +0200 +Subject: Convert existing patch into patchset format. + + +diff --git a/Configure b/Configure +index 9c803dc..8798a10 100755 +--- a/Configure ++++ b/Configure +@@ -615,6 +615,10 @@ my %table=( + "uClinux-dist","$ENV{'CC'}:\$(CFLAGS)::-D_REENTRANT::\$(LDFLAGS) \$(LDLIBS):BN_LLONG:${no_asm}:$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:${no_asm}:$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 --git a/Makefile.shared b/Makefile.shared +index e753f44..cce510f 100644 +--- a/Makefile.shared ++++ b/Makefile.shared +@@ -594,10 +594,10 @@ symlink.hpux: + 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 --git a/config b/config +index 88b9bc6..950f3f4 100755 +--- a/config ++++ b/config +@@ -134,6 +134,14 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in + 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 + ;; +@@ -829,6 +837,9 @@ case "$GUESSOS" in + 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/doc/apps/cms.pod b/doc/apps/cms.pod +index a09588a..2d19d91 100644 +--- a/doc/apps/cms.pod ++++ b/doc/apps/cms.pod +@@ -450,28 +450,28 @@ remains DER. + + =over 4 + +-=item 0 ++=item C<0> + + the operation was completely successfully. + +-=item 1 ++=item C<1> + + an error occurred parsing the command options. + +-=item 2 ++=item C<2> + + one of the input files could not be read. + +-=item 3 ++=item C<3> + + an error occurred creating the CMS file or when reading the MIME + message. + +-=item 4 ++=item C<4> + + an error occurred decrypting or verifying the message. + +-=item 5 ++=item C<5> + + the message was verified correctly but an error occurred writing out + the signers certificates. +diff --git a/doc/apps/smime.pod b/doc/apps/smime.pod +index e4e89af..72c7b24 100644 +--- a/doc/apps/smime.pod ++++ b/doc/apps/smime.pod +@@ -308,28 +308,28 @@ remains DER. + + =over 4 + +-=item 0 ++=item C<0> + + the operation was completely successfully. + +-=item 1 ++=item C<1> + + an error occurred parsing the command options. + +-=item 2 ++=item C<2> + + one of the input files could not be read. + +-=item 3 ++=item C<3> + + an error occurred creating the PKCS#7 file or when reading the MIME + message. + +-=item 4 ++=item C<4> + + an error occurred decrypting or verifying the message. + +-=item 5 ++=item C<5> + + the message was verified correctly but an error occurred writing out + the signers certificates. +diff --git a/doc/crypto/X509_STORE_CTX_get_error.pod b/doc/crypto/X509_STORE_CTX_get_error.pod +index a883f6c..60e8332 100644 +--- a/doc/crypto/X509_STORE_CTX_get_error.pod ++++ b/doc/crypto/X509_STORE_CTX_get_error.pod +@@ -278,6 +278,8 @@ happen if extended CRL checking is enabled. + an application specific error. This will never be returned unless explicitly + set by an application. + ++=back ++ + =head1 NOTES + + The above functions should be used instead of directly referencing the fields +diff --git a/doc/ssl/SSL_COMP_add_compression_method.pod b/doc/ssl/SSL_COMP_add_compression_method.pod +index 42fa66b..80175a3 100644 +--- a/doc/ssl/SSL_COMP_add_compression_method.pod ++++ b/doc/ssl/SSL_COMP_add_compression_method.pod +@@ -53,11 +53,11 @@ SSL_COMP_add_compression_method() may return the following values: + + =over 4 + +-=item 0 ++=item C<0> + + The operation succeeded. + +-=item 1 ++=item C<1> + + The operation failed. Check the error queue to find out the reason. + +diff --git a/doc/ssl/SSL_CTX_add_session.pod b/doc/ssl/SSL_CTX_add_session.pod +index 82676b2..fd927f8 100644 +--- a/doc/ssl/SSL_CTX_add_session.pod ++++ b/doc/ssl/SSL_CTX_add_session.pod +@@ -52,13 +52,13 @@ The following values are returned by all functions: + + =over 4 + +-=item 0 ++=item C<0> + + The operation failed. In case of the add operation, it was tried to add + the same (identical) session twice. In case of the remove operation, the + session was not found in the cache. + +-=item 1 ++=item C<1> + + The operation succeeded. + +diff --git a/doc/ssl/SSL_CTX_load_verify_locations.pod b/doc/ssl/SSL_CTX_load_verify_locations.pod +index 84a799f..de01065 100644 +--- a/doc/ssl/SSL_CTX_load_verify_locations.pod ++++ b/doc/ssl/SSL_CTX_load_verify_locations.pod +@@ -100,13 +100,13 @@ The following return values can occur: + + =over 4 + +-=item 0 ++=item C<0> + + The operation failed because B and B are NULL or the + processing at one of the locations specified failed. Check the error + stack to find out the reason. + +-=item 1 ++=item C<1> + + The operation succeeded. + +diff --git a/doc/ssl/SSL_CTX_set_client_CA_list.pod b/doc/ssl/SSL_CTX_set_client_CA_list.pod +index 632b556..04d0a3c 100644 +--- a/doc/ssl/SSL_CTX_set_client_CA_list.pod ++++ b/doc/ssl/SSL_CTX_set_client_CA_list.pod +@@ -66,11 +66,11 @@ values: + + =over 4 + +-=item 1 ++=item C<1> + + The operation succeeded. + +-=item 0 ++=item C<0> + + A failure while manipulating the STACK_OF(X509_NAME) object occurred or + the X509_NAME could not be extracted from B. Check the error stack +diff --git a/doc/ssl/SSL_CTX_set_session_id_context.pod b/doc/ssl/SSL_CTX_set_session_id_context.pod +index 58fc685..ed0a81c 100644 +--- a/doc/ssl/SSL_CTX_set_session_id_context.pod ++++ b/doc/ssl/SSL_CTX_set_session_id_context.pod +@@ -64,13 +64,13 @@ return the following values: + + =over 4 + +-=item 0 ++=item C<0> + + The length B of the session id context B exceeded + the maximum allowed length of B. The error + is logged to the error stack. + +-=item 1 ++=item C<1> + + The operation succeeded. + +diff --git a/doc/ssl/SSL_CTX_set_ssl_version.pod b/doc/ssl/SSL_CTX_set_ssl_version.pod +index 254f2b4..5ea8f0d 100644 +--- a/doc/ssl/SSL_CTX_set_ssl_version.pod ++++ b/doc/ssl/SSL_CTX_set_ssl_version.pod +@@ -42,11 +42,11 @@ and SSL_set_ssl_method(): + + =over 4 + +-=item 0 ++=item C<0> + + The new choice failed, check the error stack to find out the reason. + +-=item 1 ++=item C<1> + + The operation succeeded. + +diff --git a/doc/ssl/SSL_CTX_use_psk_identity_hint.pod b/doc/ssl/SSL_CTX_use_psk_identity_hint.pod +index b80e25b..ba5c23f 100644 +--- a/doc/ssl/SSL_CTX_use_psk_identity_hint.pod ++++ b/doc/ssl/SSL_CTX_use_psk_identity_hint.pod +@@ -81,6 +81,8 @@ SSL_CTX_use_psk_identity_hint() and SSL_use_psk_identity_hint() return + + Return values from the server callback are interpreted as follows: + ++=over ++ + =item > 0 + + PSK identity was found and the server callback has provided the PSK +@@ -94,9 +96,11 @@ data to B and return the length of the random data, so the + connection will fail with decryption_error before it will be finished + completely. + +-=item 0 ++=item C<0> + + PSK identity was not found. An "unknown_psk_identity" alert message + will be sent and the connection setup fails. + ++=back ++ + =cut +diff --git a/doc/ssl/SSL_accept.pod b/doc/ssl/SSL_accept.pod +index cc724c0..44dbee6 100644 +--- a/doc/ssl/SSL_accept.pod ++++ b/doc/ssl/SSL_accept.pod +@@ -44,12 +44,12 @@ The following return values can occur: + + =over 4 + +-=item 1 ++=item C<1> + + The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been + established. + +-=item 0 ++=item C<0> + + The TLS/SSL handshake was not successful but was shut down controlled and + by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the +diff --git a/doc/ssl/SSL_clear.pod b/doc/ssl/SSL_clear.pod +index d4df1bf..2da0b02 100644 +--- a/doc/ssl/SSL_clear.pod ++++ b/doc/ssl/SSL_clear.pod +@@ -56,12 +56,12 @@ The following return values can occur: + + =over 4 + +-=item 0 ++=item C<0> + + The SSL_clear() operation could not be performed. Check the error stack to + find out the reason. + +-=item 1 ++=item C<1> + + The SSL_clear() operation was successful. + +diff --git a/doc/ssl/SSL_connect.pod b/doc/ssl/SSL_connect.pod +index cc56ebb..3257f71 100644 +--- a/doc/ssl/SSL_connect.pod ++++ b/doc/ssl/SSL_connect.pod +@@ -41,12 +41,12 @@ The following return values can occur: + + =over 4 + +-=item 1 ++=item C<1> + + The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been + established. + +-=item 0 ++=item C<0> + + The TLS/SSL handshake was not successful but was shut down controlled and + by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the +diff --git a/doc/ssl/SSL_do_handshake.pod b/doc/ssl/SSL_do_handshake.pod +index 2435764..a0afc27 100644 +--- a/doc/ssl/SSL_do_handshake.pod ++++ b/doc/ssl/SSL_do_handshake.pod +@@ -45,12 +45,12 @@ The following return values can occur: + + =over 4 + +-=item 1 ++=item C<1> + + The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been + established. + +-=item 0 ++=item C<0> + + The TLS/SSL handshake was not successful but was shut down controlled and + by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the +diff --git a/doc/ssl/SSL_read.pod b/doc/ssl/SSL_read.pod +index 7038cd2..3982b81 100644 +--- a/doc/ssl/SSL_read.pod ++++ b/doc/ssl/SSL_read.pod +@@ -86,7 +86,7 @@ The following return values can occur: + The read operation was successful; the return value is the number of + bytes actually read from the TLS/SSL connection. + +-=item 0 ++=item C<0> + + The read operation was not successful. The reason may either be a clean + shutdown due to a "close notify" alert sent by the peer (in which case +diff --git a/doc/ssl/SSL_session_reused.pod b/doc/ssl/SSL_session_reused.pod +index da7d062..033d54c 100644 +--- a/doc/ssl/SSL_session_reused.pod ++++ b/doc/ssl/SSL_session_reused.pod +@@ -27,11 +27,11 @@ The following return values can occur: + + =over 4 + +-=item 0 ++=item C<0> + + A new session was negotiated. + +-=item 1 ++=item C<1> + + A session was reused. + +diff --git a/doc/ssl/SSL_set_fd.pod b/doc/ssl/SSL_set_fd.pod +index 7029112..59e1b2b 100644 +--- a/doc/ssl/SSL_set_fd.pod ++++ b/doc/ssl/SSL_set_fd.pod +@@ -35,11 +35,11 @@ The following return values can occur: + + =over 4 + +-=item 0 ++=item C<0> + + The operation failed. Check the error stack to find out why. + +-=item 1 ++=item C<1> + + The operation succeeded. + +diff --git a/doc/ssl/SSL_set_session.pod b/doc/ssl/SSL_set_session.pod +index 5f54714..d35e6d3 100644 +--- a/doc/ssl/SSL_set_session.pod ++++ b/doc/ssl/SSL_set_session.pod +@@ -37,11 +37,11 @@ The following return values can occur: + + =over 4 + +-=item 0 ++=item C<0> + + The operation failed; check the error stack to find out the reason. + +-=item 1 ++=item C<1> + + The operation succeeded. + +diff --git a/doc/ssl/SSL_shutdown.pod b/doc/ssl/SSL_shutdown.pod +index 89911ac..f863812 100644 +--- a/doc/ssl/SSL_shutdown.pod ++++ b/doc/ssl/SSL_shutdown.pod +@@ -92,12 +92,12 @@ The following return values can occur: + + =over 4 + +-=item 1 ++=item C<1> + + The shutdown was successfully completed. The "close notify" alert was sent + and the peer's "close notify" alert was received. + +-=item 0 ++=item C<0> + + The shutdown is not yet finished. Call SSL_shutdown() for a second time, + if a bidirectional shutdown shall be performed. +diff --git a/doc/ssl/SSL_write.pod b/doc/ssl/SSL_write.pod +index e013c12..30f9e2b 100644 +--- a/doc/ssl/SSL_write.pod ++++ b/doc/ssl/SSL_write.pod +@@ -79,7 +79,7 @@ The following return values can occur: + The write operation was successful, the return value is the number of + bytes actually written to the TLS/SSL connection. + +-=item 0 ++=item C<0> + + The write operation was not successful. Probably the underlying connection + was closed. Call SSL_get_error() with the return value B to find out, +-- +1.8.3.4 + diff --git a/dev-libs/serd/serd-0.18.0.recipe b/dev-libs/serd/serd-0.18.0.recipe index d48670c8d..d90817418 100644 --- a/dev-libs/serd/serd-0.18.0.recipe +++ b/dev-libs/serd/serd-0.18.0.recipe @@ -1,4 +1,7 @@ -DESCRIPTION="Serd is a lightweight C library for RDF syntax which supports reading and writing Turtle and NTriples." +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" diff --git a/dev-libs/tinyxml/tinyxml-2.6.2.recipe b/dev-libs/tinyxml/tinyxml-2.6.2.recipe index 0bcaeec8b..751918998 100644 --- a/dev-libs/tinyxml/tinyxml-2.6.2.recipe +++ b/dev-libs/tinyxml/tinyxml-2.6.2.recipe @@ -1,4 +1,7 @@ -DESCRIPTION="TinyXML is a simple, small, C++ XML parser that can be easily integrating into other programs" +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" diff --git a/dev-libs/tinyxml2/tinyxml2-2.recipe b/dev-libs/tinyxml2/tinyxml2-2.recipe new file mode 100644 index 000000000..e87544cf0 --- /dev/null +++ b/dev-libs/tinyxml2/tinyxml2-2.recipe @@ -0,0 +1,68 @@ +SUMMARY="A simple C++ XML parser" +DESCRIPTION=" +TinyXML-2 is a simple, small, efficient, C++ XML parser that can be \ +easily integrated into other programs. +" +HOMEPAGE="http://www.grinninglizard.com/tinyxml2/" +LICENSE="Zlib" +COPYRIGHT="2011-2013 Lee Thomason" +SRC_URI="git+https://github.com/leethomason/tinyxml2.git#343a5ff3bdd7336644db4080f001759e062c359e" +REVISION="1" +ARCHITECTURES="!x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86" + + +PROVIDES=" + tinyxml2$secondaryArchSuffix = $portVersion + lib:libtinyxml2$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +BUILD() +{ + g++ -fpic -c tinyxml2.cpp + g++ -shared -Wl,-soname,libtinyxml2.so -o libtinyxml2.so tinyxml2.o +} + +INSTALL() +{ + mkdir -p $libDir + # also install shared lib + cp -a libtinyxml2.so $libDir + + # move headers + mkdir -p $includeDir + mv tinyxml2.h $includeDir + + # prepare development lib links + prepareInstalledDevelLib libtinyxml2 + + # devel package + packageEntries devel $developDir +} + +TEST() +{ + make test +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + tinyxml2${secondaryArchSuffix}_devel = $portVersion + devel:libtinyxml2$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + tinyxml2$secondaryArchSuffix == $portVersion base + " diff --git a/dev-libs/uriparser/uriparser-0.7.5.recipe b/dev-libs/uriparser/uriparser-0.7.5.recipe deleted file mode 100644 index a65afc5c7..000000000 --- a/dev-libs/uriparser/uriparser-0.7.5.recipe +++ /dev/null @@ -1,27 +0,0 @@ -DESCRIPTION="Uriparser is a strictly RFC 3986 compliant URI parsing library in C" -HOMEPAGE="http://uriparser.sourceforge.net/" -SRC_URI="http://downloads.sourceforge.net/project/uriparser/Sources/0.7.5/uriparser-0.7.5.tar.gz" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -CHECKSUM_MD5="459c2786758929b92bfbd0cee25b5aa0" -BUILD() -{ - cd uriparser-0.7.5 - libtoolize --force --copy - aclocal - autoconf - automake - ./configure --prefix=`finddir B_COMMON_DIRECTORY` -disable-test --disable-doc - make -} - -INSTALL() -{ - cd uriparser-0.7.5 - make install -} - -LICENSE="BSD (3-clause)" -COPYRIGHT="2007 Weijia Song - 2007-2008 Sebastian Pipping" diff --git a/dev-libs/uriparser/uriparser-0.7.9.recipe b/dev-libs/uriparser/uriparser-0.7.9.recipe new file mode 100644 index 000000000..03e067273 --- /dev/null +++ b/dev-libs/uriparser/uriparser-0.7.9.recipe @@ -0,0 +1,64 @@ +SUMMARY="A strictly RFC 3986 compliant URI parsing library in C" +DESCRIPTION=" +Uriparser is a strictly RFC 3986 compliant URI parsing library in C. +" +HOMEPAGE="http://uriparser.sourceforge.net/" +SRC_URI="http://downloads.sourceforge.net/project/uriparser/Sources/0.7.9/uriparser-0.7.9.tar.bz2" +CHECKSUM_SHA256="a1d8f1007757ca1cf68b49edbac50876100cdee23a54cf1214f257b9ce51100d" +LICENSE="BSD (3-clause)" +COPYRIGHT="2007 Weijia Song + 2007-2008 Sebastian Pipping" + +REVISION="1" + +ARCHITECTURES="x86_gcc2 x86 x86_64" + +PROVIDES=" + uriparser = $portVersion compat >= 0.7 + lib:liburiparser = 1.0.14 compat >= 1 + " + +REQUIRES=" + haiku + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku_devel + cmd:gcc + cmd:libtool + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:make + " + +BUILD() +{ + libtoolize --force --copy --install + aclocal -I m4 + autoconf + automake --add-missing + runConfigure ./configure -disable-test --disable-doc + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLib liburiparser + fixPkgconfig + + packageEntries devel \ + $developDir +} + +PROVIDES_devel=" + devel:uriparser = 1.0.14 compat >= 1 + devel:liburiparser = 1.0.14 compat >= 1 + " + +REQUIRES_devel=" + liburiparser == $portVersion base + " diff --git a/dev-libs/xerces_c/xerces_c-3.1.1.recipe b/dev-libs/xerces_c/xerces_c-3.1.1.recipe index 6e0ce264f..8b26e5394 100644 --- a/dev-libs/xerces_c/xerces_c-3.1.1.recipe +++ b/dev-libs/xerces_c/xerces_c-3.1.1.recipe @@ -1,4 +1,6 @@ -DESCRIPTION="Xerces-C++ is a validating XML parser written in a portable subset of C++" +DESCRIPTION=" +Xerces-C++ is a validating XML parser written in a portable subset of C++. +" HOMEPAGE="http://xerces.apache.org/xerces-c/" SRC_URI="http://mirror.pop-sc.rnp.br/apache//xerces/c/3/sources/xerces-c-3.1.1.tar.gz" CHECKSUM_MD5="6a8ec45d83c8cfb1584c5a5345cb51ae" diff --git a/dev-libs/zziplib/zziplib-0.13.59.recipe b/dev-libs/zziplib/zziplib-0.13.59.recipe index dfa96f4ec..88deb4673 100644 --- a/dev-libs/zziplib/zziplib-0.13.59.recipe +++ b/dev-libs/zziplib/zziplib-0.13.59.recipe @@ -1,4 +1,7 @@ -DESCRIPTION="Lightweight library used to easily extract data from files archived in a single zip file" +DESCRIPTION=" +Lightweight library used to easily extract data from files archived in a \ +single zip file. +" HOMEPAGE="http://zziplib.sourceforge.net/" SRC_URI="http://sourceforge.net/projects/zziplib/files/zziplib13/0.13.59/zziplib-0.13.59.tar.bz2/download" REVISION="1" diff --git a/dev-lua/luafilesystem/luafilesystem-1.6.2_git.recipe b/dev-lua/luafilesystem/luafilesystem-1.6.2_git.recipe new file mode 100644 index 000000000..9b4241b95 --- /dev/null +++ b/dev-lua/luafilesystem/luafilesystem-1.6.2_git.recipe @@ -0,0 +1,43 @@ +SUMMARY="A Lua library for file system operations" +DESCRIPTION=" +LuaFileSystem is a Lua library developed to complement the set of functions \ +related to file systems offered by the standard Lua distribution. +LuaFileSystem offers a portable way to access the underlying directory \ +structure and file attributes. +" +HOMEPAGE="http://keplerproject.github.io/luafilesystem/" +SRC_URI="git+https://github.com/keplerproject/luafilesystem.git#2fd989cd6c777583be1c93616018c55b2cbb1bcf" +COPYRIGHT="2004-2012 Kepler Project" +LICENSE="MIT" +REVISION="1" +ARCHITECTURES="x86 x86_gcc2" +SOURCE_DIR="" + +PROVIDES=" + luafilesystem = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + lua >= 5.2 + " + +BUILD_REQUIRES=" + lua_devel + " + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:make + cmd:gcc + " + +BUILD() +{ + make LUA_INC=$developDir LUA_LIBDIR=$libDir/lua/5.2 +} + +INSTALL() +{ + make LUA_INC=$developDir LUA_LIBDIR=$libDir/lua/5.2 install +} diff --git a/dev-perl/HTML_Parser/HTML_Parser-3.70.recipe b/dev-perl/HTML_Parser/HTML_Parser-3.70.recipe deleted file mode 100644 index e7ddbaf6f..000000000 --- a/dev-perl/HTML_Parser/HTML_Parser-3.70.recipe +++ /dev/null @@ -1,20 +0,0 @@ -#dev-perl/XML-Parser -DESCRIPTION="HTML-Entities - Encode or decode strings with HTML entities" -HOMEPAGE="http://search.cpan.org/~gaas/HTML-Parser/" -SRC_URI="http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/HTML-Parser-3.70.tar.gz" -REVISION="1" -# only tested on gcc4 -STATUS_HAIKU="stable" -DEPEND="" -CHECKSUM_MD5="efe7699f5ece3a230d730a3682359c08" - -BUILD { - cd HTML-Parser-3.70 - perl Makefile.PL - make -} - -INSTALL { - cd HTML-Parser-3.70 - make install DESTDIR="${DESTDIR}" -} diff --git a/dev-perl/XML_Parser/XML_Parser-2.36.recipe b/dev-perl/XML_Parser/XML_Parser-2.36.recipe deleted file mode 100644 index 4bb691719..000000000 --- a/dev-perl/XML_Parser/XML_Parser-2.36.recipe +++ /dev/null @@ -1,25 +0,0 @@ -#dev-perl/XML-Parser -DESCRIPTION="XML-Parser - A perl module for parsing XML documents" -HOMEPAGE="http://search.cpan.org/~msergeant/XML-Parser-2.36/" -SRC_URI="http://search.cpan.org/CPAN/authors/id/M/MS/MSERGEANT/XML-Parser-2.36.tar.gz" -REVISION="1" -# only tested on gcc4 -STATUS_HAIKU="stable" -DEPEND="" -CHECKSUM_MD5="1b868962b658bd87e1563ecd56498ded" - -# TODO: Remove hardcoded paths. The following shows how to get the the file path: -#find /boot/common/lib/perl5 -type f -name unixish.h | grep -FzZ BePC-haiku/CORE/unixish.h - -BUILD() -{ - cd XML-Parser-2.36 - perl Makefile.PL - make -} - -INSTALL() -{ - cd XML-Parser-2.36 - make install DESTDIR="${DESTDIR}" -} diff --git a/dev-perl/html_parser/html_parser-3.70.recipe b/dev-perl/html_parser/html_parser-3.70.recipe new file mode 100644 index 000000000..746baa915 --- /dev/null +++ b/dev-perl/html_parser/html_parser-3.70.recipe @@ -0,0 +1,44 @@ +#FIXME: Appending installation info to /packages/html_parser-3.70-1/.self/lib/perl5/5.18.1/BePC-haiku/perllocal.pod +#FIXME: Warning: prerequisite HTML::Tagset 3 not found. +SUMMARY="Encode or decode strings with HTML entities" +HOMEPAGE="http://search.cpan.org/~gaas/HTML-Parser/" +SRC_URI="http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/HTML-Parser-3.70.tar.gz" +CHECKSUM_SHA256="a9a18c79b1d2b315daedafe7598dc1068d562eaeaa5bd46265a6ebd2805446c1" +REVISION="1" +ARCHITECTURES="x86 x86_gcc2" +PROVIDES=" + html_parser = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + perl + " +COPYRIGHT=" +1995-2009 Gisle Aas. All rights reserved. +1999-2000 Michael A. Chase. All rights reserved. +" +LICENSE=" + GNU GPL v1 + Artistic (Perl) +" + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + cmd:gcc + cmd:make + cmd:perl" + +SOURCE_DIR="HTML-Parser-3.70" +BUILD() { + perl Makefile.PL PREFIX=$prefix + make +} + +INSTALL() { + make install +} + +DESCRIPTION=" +The HTML-Parser distribution is is a collection of perl modules that parse and \ +extract information from HTML documents. +" diff --git a/dev-perl/xml_parser/xml_parser-2.36.recipe b/dev-perl/xml_parser/xml_parser-2.36.recipe new file mode 100644 index 000000000..67a5fcad6 --- /dev/null +++ b/dev-perl/xml_parser/xml_parser-2.36.recipe @@ -0,0 +1,44 @@ +SUMMARY="A perl module for parsing XML documents" +DESCRIPTION=" +XML-Parser - A perl module for parsing XML documents. +" +HOMEPAGE="http://search.cpan.org/~msergeant/XML-Parser-2.36/" +SRC_URI="http://search.cpan.org/CPAN/authors/id/M/MS/MSERGEANT/XML-Parser-2.36.tar.gz" +CHECKSUM_SHA256="9fd529867402456bd826fe0e5588d35b3a2e27e586a2fd838d1352b71c2ed73f" +REVISION="1" +COPYRIGHT="1998-2000 Larry Wall and Clark Cooper. All rights reserved." +LICENSE="Artistic (Perl)" + +ARCHITECTURES="x86 x86_gcc2" + +PROVIDES=" + xml_parser = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + lib:libexpat + perl + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:libexpat + cmd:gcc + cmd:make + cmd:perl" + +SOURCE_DIR="XML-Parser-2.36" + +# TODO: Remove hardcoded paths. The following shows how to get the the file path: +#find /boot/common/lib/perl5 -type f -name unixish.h | grep -FzZ BePC-haiku/CORE/unixish.h + +BUILD() +{ + perl Makefile.PL PREFIX=$prefix + make +} + +INSTALL() +{ + make install DESTDIR="${DESTDIR}" +} diff --git a/dev-python/cnf/cnf-1.0_git.recipe b/dev-python/cnf/cnf-1.0_git.recipe index 5b0f89989..5112c48ce 100644 --- a/dev-python/cnf/cnf-1.0_git.recipe +++ b/dev-python/cnf/cnf-1.0_git.recipe @@ -1,4 +1,8 @@ -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)." +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" @@ -17,4 +21,3 @@ INSTALL() } LICENSE="GNU GPL v3" COPYRIGHT="2011 Jack Laxson" - diff --git a/dev-python/docutils/docutils-0.11.recipe b/dev-python/docutils/docutils-0.11.recipe new file mode 100644 index 000000000..5d0125c4a --- /dev/null +++ b/dev-python/docutils/docutils-0.11.recipe @@ -0,0 +1,57 @@ +SUMMARY="Docutils is an open-source text processing system" +DESCRIPTION=" +Docutils is an open-source text processing system for processing plaintext \ +documentation into useful formats, such as HTML, LaTeX, man-pages, \ +open-document or XML. It includes reStructuredText, the easy to read, easy to \ +use, what-you-see-is-what-you-get plaintext markup language. +" +HOMEPAGE="http://docutils.sourceforge.net/" +SRC_URI="http://sourceforge.net/projects/docutils/files/docutils/0.11/docutils-0.11.tar.gz" +CHECKSUM_SHA256="9af4166adf364447289c5c697bb83c52f1d6f57e77849abcccd6a4a18a5e7ec9" +COPYRIGHT="Günter Milde + John Gruber + Alex Fernández" +LICENSE="Public Domain + BSD (2-clause) + GNU GPL v3 + Python" +REVISION="1" +ARCHITECTURES="x86 x86_gcc2" + +PROVIDES=" + docutils = $portVersion + cmd:rst2html.py = $portVersion + cmd:rst2latex.py = $portVersion + cmd:rst2man.py = $portVersion + cmd:rst2newlatex.py = $portVersion + cmd:rst2odt_prepstyles.py = $portVersion + cmd:rst2odt.py = $portVersion + cmd:rst2pseudoxml.py = $portVersion + cmd:rst2s5.py = $portVersion + cmd:rst2xetex.py = $portVersion + cmd:rst2xml.py = $portVersion + cmd:rstpep2html.py = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + cmd:python + " + +BUILD_REQUIRES="" +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:python + " + +BUILD() +{ + $portPackageLinksDir/cmd~python/bin/python setup.py build +} + +INSTALL() +{ + $portPackageLinksDir/cmd~python/bin/python setup.py install \ + --prefix="$prefix" \ + --force +} diff --git a/dev-python/dulwich/dulwich-0.9.1.recipe b/dev-python/dulwich/dulwich-0.9.1.recipe new file mode 100644 index 000000000..a0ff8b3e4 --- /dev/null +++ b/dev-python/dulwich/dulwich-0.9.1.recipe @@ -0,0 +1,48 @@ +SUMMARY="Simple Python implementation of the Git file formats and protocols." +DESCRIPTION=" +Dulwich is a simple Python implementation of the Git file formats and \ +protocols. All functionality is available in pure Python. Optional C \ +extensions can be built for improved performance. +" +HOMEPAGE="http://www.samba.org/~jelmer/dulwich/" +SRC_URI="https://pypi.python.org/packages/source/d/dulwich/dulwich-0.9.1.tar.gz" +CHECKSUM_SHA256="e9f69677b7428c57f6260f1876f075057c7e24907979b4da6e5fcad3c6852545" +LICENSE="GNU GPL v2" +COPYRIGHT="2008-2013 Jelmer Vernooij" +REVISION="1" + +ARCHITECTURES="x86 x86_gcc2" + +PROVIDES=" + dulwich = $portVersion + cmd:dul_daemon = $portVersion + cmd:dul_receive_pack = $portVersion + cmd:dul_upload_pack = $portVersion + cmd:dul_web = $portVersion + cmd:dulwich = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + cmd:python + " + +BUILD_REQUIRES="" + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:python + cmd:gcc + " + + +BUILD() +{ + $portPackageLinksDir/cmd~python/bin/python setup.py build +} + +INSTALL() +{ + $portPackageLinksDir/cmd~python/bin/python setup.py install \ + --prefix=$prefix +} diff --git a/dev-python/dulwich/dulwich-0.9.4.recipe b/dev-python/dulwich/dulwich-0.9.4.recipe new file mode 100644 index 000000000..c93b166fa --- /dev/null +++ b/dev-python/dulwich/dulwich-0.9.4.recipe @@ -0,0 +1,47 @@ +SUMMARY="Simple Python implementation of the Git file formats and protocols." +DESCRIPTION=" +Dulwich is a simple Python implementation of the Git file formats and \ +protocols. All functionality is available in pure Python. Optional C \ +extensions can be built for improved performance. +" +HOMEPAGE="http://www.samba.org/~jelmer/dulwich/" +SRC_URI="https://pypi.python.org/packages/source/d/dulwich/dulwich-0.9.4.tar.gz" +CHECKSUM_SHA256="1cd555533d9a5cc319f5c68e21e31be190104ee1be5b5d3899a8a522e924b3fc" +LICENSE="GNU GPL v2" +COPYRIGHT="2008-2013 Jelmer Vernooij" +REVISION="1" + +ARCHITECTURES="x86 x86_gcc2" + +PROVIDES=" + dulwich = $portVersion + cmd:dul_daemon = $portVersion + cmd:dul_receive_pack = $portVersion + cmd:dul_upload_pack = $portVersion + cmd:dul_web = $portVersion + cmd:dulwich = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + cmd:python + " + +BUILD_REQUIRES="" + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:python + cmd:gcc + " + +BUILD() +{ + $portPackageLinksDir/cmd~python/bin/python setup.py build +} + +INSTALL() +{ + $portPackageLinksDir/cmd~python/bin/python setup.py install \ + --prefix=$prefix +} diff --git a/dev-python/iniparse/iniparse-0.4.recipe b/dev-python/iniparse/iniparse-0.4.recipe new file mode 100644 index 000000000..a07bc555b --- /dev/null +++ b/dev-python/iniparse/iniparse-0.4.recipe @@ -0,0 +1,60 @@ +SUMMARY="An INI parser for Python" +DESCRIPTION=" +iniparse is a INI parser for Python which is: +* Compatiable with ConfigParser: Backward compatible implementations of \ +ConfigParser, RawConfigParser, and SafeConfigParser are included that are \ +API-compatible with the Python standard library. They pass all the unit tests \ +included with Python. +* Preserves structure of INI files: Order of sections & options, indentation, \ +comments, and blank lines are preserved as far as possible when data is updated. +* More convenient: Values can be accessed using dotted notation \ +(cfg.user.name), or using container syntax (cfg['user']['name']). +* It is very useful for config files that are updated both by users and by \ +programs, since it is very disorienting for a user to have her config file \ +completely rearranged whenever a program changes it. iniparse also allows \ +making the order of entries in a config file significant, which is desirable \ +in applications like image galleries. +" +HOMEPAGE="http://code.google.com/p/iniparse/" +SRC_URI="http://iniparse.googlecode.com/files/iniparse-0.4.tar.gz" +CHECKSUM_SHA256="abc1ee12d2cfb2506109072d6c21e40b6c75a3fe90a9c924327d80bc0d99c054" +COPYRIGHT="2001-2008 Python Software Foundation +2004-2009 Paramjit Oberoi +2007 Tim Lauridsen" +LICENSE="MIT" +REVISION="1" +ARCHITECTURES="x86 ?x86_gcc2" +SECONDARY_ARCHITECTURES="x86 ?x86_gcc2" + +SOURCE_DIR="iniparse-0.4" + +PROVIDES=" + iniparse$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + cmd:python$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:python$secondaryArchSuffix + " + +PATCHES="iniparse-0.4.patchset" + +BUILD() +{ + $portPackageLinksDir/cmd~python/bin/python setup.py build +} + +INSTALL() +{ + $portPackageLinksDir/cmd~python/bin/python setup.py install \ + --prefix=$prefix \ + --install-data=$docDir +} diff --git a/dev-python/iniparse/patches/iniparse-0.4.patchset b/dev-python/iniparse/patches/iniparse-0.4.patchset new file mode 100644 index 000000000..30be0eab3 --- /dev/null +++ b/dev-python/iniparse/patches/iniparse-0.4.patchset @@ -0,0 +1,22 @@ +From 3ad56bb195c2eb428f11302ca7aff21d20d27944 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Thu, 21 Nov 2013 00:51:59 -0700 +Subject: Remove hardcoded share path + + +diff --git a/setup.py b/setup.py +index 736cfa1..3ac886c 100644 +--- a/setup.py ++++ b/setup.py +@@ -31,7 +31,7 @@ use.''', + ], + packages = ['iniparse'], + data_files = [ +- ('share/doc/iniparse-%s' % VERSION, ['README', 'LICENSE-PSF', ++ ('', ['README', 'LICENSE-PSF', + 'LICENSE', 'Changelog', + 'html/index.html', + 'html/style.css', +-- +1.8.3.4 + diff --git a/dev-python/numpy/numpy-1.4.1.recipe b/dev-python/numpy/numpy-1.4.1.recipe index 776c39a1b..0d1e71bb3 100644 --- a/dev-python/numpy/numpy-1.4.1.recipe +++ b/dev-python/numpy/numpy-1.4.1.recipe @@ -1,4 +1,6 @@ -DESCRIPTION="NumPy is the fundamental package needed for scientific computing with Python." +DESCRIPTION=" +NumPy is the fundamental package needed for scientific computing with Python. +" HOMEPAGE="http://numpy.scipy.org/" SRC_URI="http://sourceforge.net/projects/numpy/files/NumPy/1.4.1/numpy-1.4.1.tar.gz/download?" CHECKSUM_MD5="5c7b5349dc3161763f7f366ceb96516b" diff --git a/dev-python/numpy/numpy-1.5.0.recipe b/dev-python/numpy/numpy-1.5.0.recipe index 59be61f97..e68eea85b 100644 --- a/dev-python/numpy/numpy-1.5.0.recipe +++ b/dev-python/numpy/numpy-1.5.0.recipe @@ -1,4 +1,6 @@ -DESCRIPTION="NumPy is the fundamental package needed for scientific computing with Python." +DESCRIPTION=" +NumPy is the fundamental package needed for scientific computing with Python. +" HOMEPAGE="http://numpy.scipy.org/" SRC_URI="http://sourceforge.net/projects/numpy/files/NumPy/1.5.0/numpy-1.5.0.tar.gz/download?" CHECKSUM_MD5="3a8bfdc434df782d647161c48943ee09" diff --git a/dev-python/ordereddict/ordereddict-1.1.recipe b/dev-python/ordereddict/ordereddict-1.1.recipe new file mode 100644 index 000000000..68eb1e0dd --- /dev/null +++ b/dev-python/ordereddict/ordereddict-1.1.recipe @@ -0,0 +1,41 @@ +SUMMARY="A substitute for Py2.7's collections.OrderedDict for Python 2.4-2.6." +DESCRIPTION=" +Drop-in substitute for Py2.7's new collections.OrderedDict. The recipe has \ +big-oh performance that matches regular dictionaries (amortized O(1) \ +insertion/deletion/lookup and O(n) iteration/repr/copy/equality_testing). +" +HOMEPAGE="https://pypi.python.org/pypi/ordereddict" +SRC_URI="https://pypi.python.org/packages/source/o/ordereddict/ordereddict-1.1.tar.gz" +CHECKSUM_SHA256="1c35b4ac206cef2d24816c89f89cf289dd3d38cf7c449bb3fab7bf6d43f01b1f" +COPYRIGHT="2009 Raymond Hettinger" +LICENSE="MIT" +REVISION="1" +ARCHITECTURES="x86 x86_gcc2" + + +PROVIDES=" + ordereddict = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + cmd:python < 2.7 + " + +BUILD_REQUIRES="" + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:python < 2.7 + " + +BUILD() +{ + $portPackageLinksDir/cmd~python/bin/python setup.py build +} + +INSTALL() +{ + $portPackageLinksDir/cmd~python/bin/python setup.py install \ + --prefix=$prefix +} diff --git a/dev-python/pycrypto/pycrypto-2.3.recipe b/dev-python/pycrypto/pycrypto-2.3.recipe index 70209d8cb..9eee1d88c 100644 --- a/dev-python/pycrypto/pycrypto-2.3.recipe +++ b/dev-python/pycrypto/pycrypto-2.3.recipe @@ -1,4 +1,6 @@ -DESCRIPTION="Download, build, install, upgrade, and uninstall Python packages -- easily!" +DESCRIPTION=" +Download, build, install, upgrade, and uninstall Python packages -- easily! +" HOMEPAGE="http://pypi.python.org/pypi/pycrypto/2.3" SRC_URI="http://pypi.python.org/packages/source/p/pycrypto/pycrypto-2.3.tar.gz" REVISION="1" diff --git a/dev-python/pydispatcher/pydispatcher-2.0.1.recipe b/dev-python/pydispatcher/pydispatcher-2.0.1.recipe index 48c54d4f0..7afa525cf 100644 --- a/dev-python/pydispatcher/pydispatcher-2.0.1.recipe +++ b/dev-python/pydispatcher/pydispatcher-2.0.1.recipe @@ -1,4 +1,6 @@ -DESCRIPTION="Multi-producer-multi-consumer signal dispatching mechanism in python" +DESCRIPTION=" +Multi-producer-multi-consumer signal dispatching mechanism in python. +" HOMEPAGE="http://pydispatcher.sourceforge.net/" SRC_URI="http://downloads.sourceforge.net/project/pydispatcher/pydispatcher/2.0.1/PyDispatcher-2.0.1.tar.gz" REVISION="1" diff --git a/dev-python/pygame/pygame-1.9.1.recipe b/dev-python/pygame/pygame-1.9.1.recipe index eb266e8ba..545dbeeff 100644 --- a/dev-python/pygame/pygame-1.9.1.recipe +++ b/dev-python/pygame/pygame-1.9.1.recipe @@ -1,4 +1,6 @@ -DESCRIPTION="pygame - python bindings to sdl and other libs that facilitate game production" +DESCRIPTION=" +pygame - python bindings to sdl and other libs that facilitate game production. +" HOMEPAGE="http://www.pygame.org" SRC_URI="http://www.pygame.org/ftp/pygame-1.9.1release.tar.gz" CHECKSUM_MD5="1c4cdc708d17c8250a2d78ef997222fc" @@ -26,5 +28,5 @@ COPYRIGHT="2000-2004, 2007 Pete Shinners 2004 Takafumi Mizuno 2006-2007 Rene Dudfield 2007 Richard Goedeken - 2007-2008 Marcus von Appen" - + 2007-2008 Marcus von Appen + " diff --git a/dev-python/pygments/pygments-1.6.recipe b/dev-python/pygments/pygments-1.6.recipe new file mode 100644 index 000000000..833272325 --- /dev/null +++ b/dev-python/pygments/pygments-1.6.recipe @@ -0,0 +1,53 @@ +SUMMARY="a generic syntax highlighter for general use" +DESCRIPTION=" +It is a generic syntax highlighter for general use in all kinds of software \ +such as forum systems, wikis or other applications that need to prettify \ +source code. Highlights are: +* a wide range of common languages and markup formats is supported +* special attention is paid to details that increase highlighting quality +* support for new languages and formats are added easily; most languages use a \ +simple regex-based lexing mechanism +* a number of output formats is available, among them HTML, RTF, LaTeX and \ +ANSI sequences +* it is usable as a command-line tool and as a library +* ... and it highlights even Brainf*ck! +" +HOMEPAGE="http://pygments.org/" +SRC_URI="https://pypi.python.org/packages/source/P/Pygments/Pygments-1.6.tar.gz" +CHECKSUM_SHA256="799ed4caf77516e54440806d8d9cd82a7607dfdf4e4fb643815171a4b5c921c0" +COPYRIGHT="2006-2013 by the Pygments team, see AUTHORS" +LICENSE="BSD (2-clause)" +REVISION="1" +ARCHITECTURES="x86 ?x86_gcc2" +SECONDARY_ARCHITECTURES="x86 ?x86_gcc2" + +SOURCE_DIR="Pygments-1.6" + +PROVIDES=" + pygments$secondaryArchSuffix = $portVersion + cmd:pygmentize$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + cmd:python$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:python$secondaryArchSuffix + " + +BUILD() +{ + $portPackageLinksDir/cmd~python/bin/python setup.py build +} + +INSTALL() +{ + $portPackageLinksDir/cmd~python/bin/python setup.py install \ + --prefix=$prefix +} diff --git a/dev-python/setuptools/setuptools-0.6.recipe b/dev-python/setuptools/setuptools-0.6.recipe deleted file mode 100644 index 1f274cae1..000000000 --- a/dev-python/setuptools/setuptools-0.6.recipe +++ /dev/null @@ -1,26 +0,0 @@ -DESCRIPTION="Download, build, install, upgrade, and uninstall Python packages -- easily!" -HOMEPAGE="http://pypi.python.org/pypi/setuptools" -SRC_URI="http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -CHECKSUM_MD5="7df2a529a074f613b509fb44feefe74e" - -BUILD() -{ - cd setuptools-0.6c11 - python setup.py build -} - -INSTALL() -{ - cd setuptools-0.6c11 - if [ -n "${DESTDIR}" ];then - python setup.py install --root=${DESTDIR} - else - python setup.py install - fi -} - -LICENSE="Python" -COPYRIGHT="2009, Phillip J. Eby" diff --git a/dev-python/setuptools/setuptools-0.6c11.recipe b/dev-python/setuptools/setuptools-0.6c11.recipe new file mode 100644 index 000000000..6bbaeaca5 --- /dev/null +++ b/dev-python/setuptools/setuptools-0.6c11.recipe @@ -0,0 +1,31 @@ +SUMMARY="Download, build, (un)install, upgrade, Python packages" +DESCRIPTION=" +Download, build, install, upgrade, and uninstall Python packages -- easily! +" +HOMEPAGE="http://pypi.python.org/pypi/setuptools" +SRC_URI="https://pypi.python.org/packages/source/s/setuptools/setuptools-$portVersion.tar.gz" +CHECKSUM_SHA256="630fea9b726320b73ee3ca6ff61732cb32675b0389be658080fe46383b87a1d3" +REVISION="1" + +ARCHITECTURES="!x86_gcc2" + +PROVIDES=" + $portName = $portVersion + " + +BUILD_PREREQUIRES=" + cmd:python + " + +BUILD() +{ + python setup.py build +} + +INSTALL() +{ + python setup.py install --root=$portDir +} + +LICENSE="Python" +COPYRIGHT="2009-2014, Phillip J. Eby" diff --git a/dev-python/setuptools/setuptools-3.3.recipe b/dev-python/setuptools/setuptools-3.3.recipe new file mode 100644 index 000000000..f2389aa7f --- /dev/null +++ b/dev-python/setuptools/setuptools-3.3.recipe @@ -0,0 +1,31 @@ +SUMMARY="Download, build, (un)install, upgrade, Python packages" +DESCRIPTION=" +Download, build, install, upgrade, and uninstall Python packages -- easily! +" +HOMEPAGE="http://pypi.python.org/pypi/setuptools" +SRC_URI="https://pypi.python.org/packages/source/s/setuptools/setuptools-$portVersion.tar.gz" +CHECKSUM_SHA256="f3e6155f9bb62bfd59b7f6cc2ecda21aae903e6b585f8bc55e801609c5f7814f" +REVISION="1" + +ARCHITECTURES="!x86_gcc2" + +PROVIDES=" + $portName = $portVersion + " + +BUILD_PREREQUIRES=" + cmd:python + " + +BUILD() +{ + python setup.py build +} + +INSTALL() +{ + python setup.py install --root=$portDir +} + +LICENSE="Python" +COPYRIGHT="2009-2014, Phillip J. Eby" diff --git a/dev-python/simpleparse/simpleparse-2.1.1a2.recipe b/dev-python/simpleparse/simpleparse-2.1.1a2.recipe index 673b4ba77..28d4b3906 100644 --- a/dev-python/simpleparse/simpleparse-2.1.1a2.recipe +++ b/dev-python/simpleparse/simpleparse-2.1.1a2.recipe @@ -1,20 +1,36 @@ -DESCRIPTION="A Parser Generator for Python (w/mxTextTools derivative)" +SUMMARY="A Parser Generator for Python (w/mxTextTools derivative)" +DESCRIPTION=" +SimpleParse is a BSD-licensed Python package providing a simple and fast parser +generator using a modified version of the mxTextTools text-tagging engine. +SimpleParse allows you to generate parsers directly from your EBNF grammar. +Unlike most parser generators, SimpleParse generates single-pass parsers (there +is no distinct tokenization stage), an approach taken from the predecessor +project (mcf.pars) which attempted to create \"autonomously parsing regex +objects\". The resulting parsers are not as generalized as those created by, for +instance, the Earley algorithm, but they do tend to be useful for the parsing of +computer file formats and the like (as distinct from natural language and +similar \"hard\" parsing problems)." HOMEPAGE="http://simpleparse.sourceforge.net/" SRC_URI="http://downloads.sourceforge.net/project/simpleparse/simpleparse/2.1.1a2/SimpleParse-2.1.1a2.tar.gz" +CHECKSUM_SHA256="9899df932c6805dbb6433c7395e696fd60723f463513933e925cc77314c6bbb8" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -CHECKSUM_MD5="9c4e13b4f9b087442f76e7382ba97e3b" +ARCHITECTURES="!x86_gcc2" +PROVIDES=" + simpleparse = $portVersion + " +BUILD_PREREQUIRES=" + cmd:python + " + +SOURCE_DIR="SimpleParse-$portVersion" BUILD() { - cd SimpleParse-2.1.1a2 python setup.py build } INSTALL() { - cd SimpleParse-2.1.1a2 python setup.py install --root=${DESTDIR} } diff --git a/dev-qt/qtcore/patches/qt-4.7.3.patch b/dev-qt/qtcore/patches/qt-4.7.3.patch deleted file mode 100644 index 74615b5ac..000000000 --- a/dev-qt/qtcore/patches/qt-4.7.3.patch +++ /dev/null @@ -1,14261 +0,0 @@ -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/patches/qtcore-4.8.5.git.patchset b/dev-qt/qtcore/patches/qtcore-4.8.5.git.patchset new file mode 100644 index 000000000..99a41cd3b --- /dev/null +++ b/dev-qt/qtcore/patches/qtcore-4.8.5.git.patchset @@ -0,0 +1,76 @@ +From ebc513ce5d748e963f4ffefe6adb7f45503b44c3 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Thu, 14 Nov 2013 15:34:00 -0700 +Subject: Adjust font paths for updated Haiku fs layout + + +diff --git a/src/gui/text/qfontdatabase_haiku.cpp b/src/gui/text/qfontdatabase_haiku.cpp +index c1b9526..f7b6dd7 100644 +--- a/src/gui/text/qfontdatabase_haiku.cpp ++++ b/src/gui/text/qfontdatabase_haiku.cpp +@@ -50,9 +50,10 @@ static void initializeDb() + FT_Library lib = qt_getFreetype(); + + directory_which FontDirs[] = { +- B_BEOS_FONTS_DIRECTORY, +- B_COMMON_FONTS_DIRECTORY, +- B_USER_FONTS_DIRECTORY ++ B_SYSTEM_FONTS_DIRECTORY, ++ B_SYSTEM_NONPACKAGED_FONTS_DIRECTORY, ++ B_USER_FONTS_DIRECTORY, ++ B_USER_NONPACKAGED_FONTS_DIRECTORY + }; + + +-- +1.8.3.4 + + +From 5aa0dcc8cb9c37c048a771de7f36c57b0c5f16b5 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Fri, 15 Nov 2013 19:50:49 -0700 +Subject: Remove check for /boot/common/bin/qsystray + + +diff --git a/src/gui/util/qsystemtrayicon_haiku.cpp b/src/gui/util/qsystemtrayicon_haiku.cpp +index 2167476..7f1b1f4 100644 +--- a/src/gui/util/qsystemtrayicon_haiku.cpp ++++ b/src/gui/util/qsystemtrayicon_haiku.cpp +@@ -449,8 +449,9 @@ void QSystemTrayIconPrivate::updateToolTip_sys() + + bool QSystemTrayIconPrivate::isSystemTrayAvailable_sys() + { +- QFileInfo qsystrayfile("/boot/common/bin/qsystray"); +- return qsystrayfile.exists(); ++// QFileInfo qsystrayfile("/boot/common/bin/qsystray"); ++// return qsystrayfile.exists(); ++ return true; + } + + bool QSystemTrayIconPrivate::supportsMessages_sys() +-- +1.8.3.4 + + +From e2c3be50acfb8007501788f8cc78d1a7d5729323 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Sat, 16 Nov 2013 02:45:20 -0700 +Subject: Fix notification timeout milli->micro conversion + + +diff --git a/src/gui/util/qsystemtrayicon_haiku.cpp b/src/gui/util/qsystemtrayicon_haiku.cpp +index 7f1b1f4..d4d5953 100644 +--- a/src/gui/util/qsystemtrayicon_haiku.cpp ++++ b/src/gui/util/qsystemtrayicon_haiku.cpp +@@ -411,7 +411,7 @@ void QSystemTrayIconPrivate::showMessage_sys(const QString &title, const QStrin + notification.SetTitle(stitle); + notification.SetMessageID(smessageId); + notification.SetContent(smessage); +- notification.Send(timeOut/1000); ++ notification.Send(timeOut*1000); + } + } + +-- +1.8.3.4 + diff --git a/dev-qt/qtcore/qtcore-4.7.3.recipe b/dev-qt/qtcore/qtcore-4.7.3.recipe deleted file mode 100644 index 5124291b7..000000000 --- a/dev-qt/qtcore/qtcore-4.7.3.recipe +++ /dev/null @@ -1,26 +0,0 @@ -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/dev-qt/qtcore/qtcore-4.8.5.git.recipe b/dev-qt/qtcore/qtcore-4.8.5.git.recipe new file mode 100644 index 000000000..6f448dad4 --- /dev/null +++ b/dev-qt/qtcore/qtcore-4.8.5.git.recipe @@ -0,0 +1,227 @@ +SUMMARY="A comprehensive C++ application development framework" +DESCRIPTION=" +Qt is a cross-platform application and UI framework for developers using C++ \ +or QML, a CSS & JavaScript like language. Qt Creator is the supporting Qt IDE. +Qt, Qt Quick and the supporting tools are developed as an open source project \ +governed by an inclusive meritocratic model. Qt can be used under open source \ +(LGPL v2.1) or commercial terms. +" +HOMEPAGE="http://qt-haiku.ru" +SRC_URI="git://gitorious.org/+qt-haiku/qt/qt-haiku-port.git" +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2011 Nokia Corporation and/or its subsidiary(-ies)." +REVISION="4" +ARCHITECTURES="x86" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + qtcore$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:qtconfig$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:qsystray$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libphonon$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQt3Support$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtCLucene$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtCore$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtDeclarative$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtDesigner$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtDesignerComponents$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtGui$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtHelp$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtMultimedia$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtNetwork$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtScript$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtScriptTools$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtSql$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtSvg$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtTest$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtWebKit$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtXml$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtXmlPatterns$secondaryArchSuffix = $portVersion compat >= 4.8 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libcrypto$secondaryArchSuffix + lib:libssl$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libicuuc$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + " + +# haiku_x86 doesn't claim to provide lib:libtiff_x86 on gcc2 builds +if [ "$targetArchitecture" != x86_gcc2 ];then + REQUIRES="$REQUIRES lib:libtiff$secondaryArchSuffix" +fi + +BUILD_REQUIRES=" + icu${secondaryArchSuffix}_devel + devel:libz$secondaryArchSuffix + devel:libcrypto$secondaryArchSuffix + devel:libssl$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + " +# should have devel:libtiff too but that doesn't seem to be provided + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:make + cmd:g++$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:perl + cmd:find + cmd:awk + " + +if [ "$targetArchitecture" = x86_gcc2 ];then + BUILD_PREREQUIRES="$BUILD_PREREQUIRES cmd:g++" +fi + +PROVIDES_devel=" + qtcore${secondaryArchSuffix}_devel = $portVersion compat >= 4.8 + cmd:assistant$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:designer$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:lconvert$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:linguist$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:lrelease$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:lupdate$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:moc$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:pixeltool$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:qcollectiongenerator$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:qdoc3$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:qhelpconverter$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:qhelpgenerator$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:qmake$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:qmlplugindump$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:qmlviewer$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:qt3to4$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:qttracereplay$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:rcc$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:uic$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:uic3$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:xmlpatterns$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:xmlpatternsvalidator$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libphonon$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQt3Support$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtCLucene$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtCore$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtDeclarative$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtDesigner$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtDesignerComponents$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtGui$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtHelp$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtMultimedia$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtNetwork$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtScript$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtScriptTools$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtSql$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtSvg$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtTest$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtWebKit$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtXml$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtXmlPatterns$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtUiTools$secondaryArchSuffix = $portVersion compat >= 4.8 + " + +REQUIRES_devel=" + qtcore$secondaryArchSuffix == $portVersion + haiku$secondaryArchSuffix >= $haikuVersion + lib:libz$secondaryArchSuffix + " + +PATCHES="qtcore-4.8.5.git.patchset" + +SOURCE_DIR="qt-haiku-port" + +BUILD() +{ + + ./configure \ + -prefix $prefix \ + -bindir $binDir \ + -libdir $libDir \ + -headerdir $includeDir \ + -docdir $docDir/Qt \ + -datadir $dataDir/Qt \ + -translationdir $dataDir/Qt/translations \ + -sysconfdir $settingsDir \ + -demosdir $dataDir/Qt/demos \ + -examplesdir $dataDir/Qt/examples \ + -importdir $dataDir/Qt/imports \ + -plugindir $addOnsDir/Qt \ + -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 $jobArgs + + cd src/3rdparty/haiku-tools/qsystray + if [ "$targetArchitecture" = x86 ];then + make -f Makefile.gcc4 + else + export PATH="/bin:$PATH" + make -f Makefile.gcc2 + fi +} + +INSTALL() +{ + make install + + cd src/3rdparty/haiku-tools/qsystray + if [ "$targetArchitecture" = x86 ];then + cp -af qsystray $binDir + else + cp -af qsystray_gcc2 $binDir/qsystray + fi + + prepareInstalledDevelLibs libphonon \ + libQt3Support libQtCLucene \ + libQtCore libQtDeclarative \ + libQtDesigner libQtDesignerComponents \ + libQtGui libQtHelp \ + libQtMultimedia libQtNetwork \ + libQtScript libQtScriptTools \ + libQtSql libQtSvg \ + libQtTest libQtWebKit \ + libQtXml libQtXmlPatterns \ + libQtUiTools + + fixPkgconfig + + #UGLY HACK -- REMOVE ME WHEN QMAKE/CMAKE/ETC IS FIXED + cd $libDir + for i in lib*.so.4.*;do + ln -s $i $(echo $i | cut -f1,2 -d.) + done + + devCommands="assistant designer lconvert + linguist lrelease lupdate + moc pixeltool qcollectiongenerator + qdoc3 qhelpconverter qhelpgenerator + qmake qmlplugindump qmlviewer + qt3to4 qttracereplay rcc + uic uic3 xmlpatterns + xmlpatternsvalidator" + + for i in $devCommands;do + devPackageCommands="$devPackageCommands $binDir/$i" + done + + packageEntries devel $developDir \ + $devPackageCommands \ + $dataDir/Qt/mkspecs + + # move tests to demo/example package when it exists + rm -rf $prefix/tests + rm -rf $dataDir/Qt/demos $dataDir/Qt/examples +} diff --git a/dev-qt/qtcore/qtcore-4.8.x.recipe b/dev-qt/qtcore/qtcore-4.8.x.recipe deleted file mode 100644 index e427e3c4f..000000000 --- a/dev-qt/qtcore/qtcore-4.8.x.recipe +++ /dev/null @@ -1,26 +0,0 @@ -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.8.0.5.recipe b/dev-scheme/chicken/chicken-4.8.0.5.recipe new file mode 100644 index 000000000..e92b84ac1 --- /dev/null +++ b/dev-scheme/chicken/chicken-4.8.0.5.recipe @@ -0,0 +1,108 @@ +SUMMARY="A Scheme interpreter and native Scheme to C compiler" +DESCRIPTION=" +CHICKEN is a compiler for the Scheme programming language. CHICKEN produces \ +portable and efficient C, supports almost all of the R5RS Scheme language \ +standard, and includes many enhancements and extensions. CHICKEN runs on \ +Linux, MacOS X, Windows, and many Unix flavours. +" +HOMEPAGE="http://www.call-cc.org/" +SRC_URI="http://code.call-cc.org/releases/4.8.0/chicken-4.8.0.5.tar.gz" +CHECKSUM_SHA256="5b9192951bc61cc19dd4963cceb93908bff46b6868d7927f19850e8973c430fb" +REVISION="1" +LICENSE="BSD (2-clause)" +COPYRIGHT="2008-2013 The Chicken Team + 2000-2007 Felix L. Winkelmann" + +ARCHITECTURES="?x86 ?x86_gcc2" + +PROVIDES=" + chicken = $portVersion compat >= 4.8 + cmd:csi = $portVersion compat >= 4.8 + cmd:csc = $portVersion compat >= 4.8 + cmd:chicken = $portVersion compat >= 4.8 + cmd:chicken_bug = $portVersion compat >= 4.8 + cmd:chicken_install = $portVersion compat >= 4.8 + cmd:chicken_profile = $portVersion compat >= 4.8 + cmd:chicken_status = $portVersion compat >= 4.8 + cmd:chicken_uninstall = $portVersion compat >= 4.8 + lib:libchicken = $portVersion compat >= 4.8 + " + +REQUIRES=" + haiku >= $haikuVersion + cmd:gcc + cmd:ld + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:gcc + cmd:make + cmd:ld + " + +PROVIDES_devel=" + chicken_devel = $portVersion + devel:libchicken = $portVersion + " + +REQUIRES_devel=" + chicken == $portVersion + " + + +PATCH() +{ +if [ "$targetArchitecture" = x86_gcc2 ]; then + echo "Removing -fwrapv flag for gcc2 build" + sed -i 's/-fwrapv//' Makefile.haiku +fi + echo "Removing git check" + sed -i 's/sh $(SRCDIR)identify.sh/echo/' rules.make +} + +PATCHES="chicken-4.8.0.5.patchset" + +GLOBAL_WRITABLE_FILES=" + non-packaged/lib/chicken/6 directory keep-old + " + +BUILD() +{ + # odd timestamp issue + touch build-version.c + + make PLATFORM=haiku PREFIX=$prefix \ + MANDIR=$manDir/man1 \ + DOCDIR=$docDir \ + DATADIR=$dataDir/chicken \ + INCDIR=$includeDir/chicken \ + HOSTNAME=shredder +} + +INSTALL() +{ + make install PLATFORM=haiku PREFIX=$prefix \ + MANDIR=$manDir/man1 \ + DOCDIR=$docDir \ + DATADIR=$dataDir/chicken \ + INCDIR=$includeDir/chicken \ + HOSTNAME=shredder + + prepareInstalledDevelLibs libchicken + packageEntries devel $developDir + + rm -rf $prefix/share +} + +TEST() +{ + if ! type -p csi > /dev/null;then + echo "ERROR: Chicken must be installed before running the test suite" + exit 1 + fi + make PLATFORM=haiku PREFIX=$prefix check +} diff --git a/dev-scheme/chicken/patches/chicken-4.8.0.5.patchset b/dev-scheme/chicken/patches/chicken-4.8.0.5.patchset new file mode 100644 index 000000000..5e0d9f494 --- /dev/null +++ b/dev-scheme/chicken/patches/chicken-4.8.0.5.patchset @@ -0,0 +1,109 @@ +From a74b33e6d278ad461c2eba2991e09cf54a1e4d72 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Thu, 7 Nov 2013 02:07:02 -0700 +Subject: Minor fixes + + +diff --git a/chicken.h b/chicken.h +index de48141..98f7071 100644 +--- a/chicken.h ++++ b/chicken.h +@@ -2888,7 +2888,7 @@ C_path_to_executable(C_char *fname) + + while (get_next_image_info(0, &cookie, &info) == B_OK) { + if (info.type == B_APP_IMAGE) { +- C_strcat(buffer, info.name); ++ C_strcpy(buffer, info.name); + + for(i = C_strlen(buffer); i >= 0 && buffer[ i ] != '/'; --i); + +diff --git a/library.c b/library.c +index b54b578..fedf35b 100644 +--- a/library.c ++++ b/library.c +@@ -79,13 +79,14 @@ fast_read_line_from_file(C_word str, C_word port, C_word size) { + static C_word + fast_read_string_from_file(C_word dest, C_word port, C_word len, C_word pos) + { ++ size_t m; + int n = C_unfix (len); + char * buf = ((char *)C_data_pointer (dest) + C_unfix (pos)); + C_FILEPTR fp = C_port_file (port); + + if(feof(fp)) return C_SCHEME_END_OF_FILE; + +- size_t m = fread (buf, sizeof (char), n, fp); ++ m = fread (buf, sizeof (char), n, fp); + + if (m < n) { + if (ferror(fp)) /* Report to Scheme, which may retry, so clear errors */ +-- +1.8.3.4 + + +From ed8542b12f0695222d24261d2ad97853f3f19cb1 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Thu, 7 Nov 2013 02:55:03 -0700 +Subject: Adjust include path + + +diff --git a/Makefile.haiku b/Makefile.haiku +index 7489637..077daf2 100644 +--- a/Makefile.haiku ++++ b/Makefile.haiku +@@ -64,6 +64,7 @@ include $(SRCDIR)/defaults.make + + chicken-config.h: chicken-defaults.h + echo "/* GENERATED */" >$@ ++ echo "#define C_TARGET_INCLUDE_HOME \"$(TARGET_PREFIX)/develop/headers/chicken\"" >>$@ + echo "#define HAVE_DIRENT_H 1" >>$@ + echo "#define HAVE_DLFCN_H 1" >>$@ + echo "#define HAVE_INTTYPES_H 1" >>$@ +-- +1.8.3.4 + + +From 04cdda51c590a1648c74be2565c29073f0c09562 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Thu, 7 Nov 2013 03:04:04 -0700 +Subject: Adjust develop library paths + + +diff --git a/Makefile.haiku b/Makefile.haiku +index 077daf2..6cab4fe 100644 +--- a/Makefile.haiku ++++ b/Makefile.haiku +@@ -65,6 +65,8 @@ include $(SRCDIR)/defaults.make + chicken-config.h: chicken-defaults.h + echo "/* GENERATED */" >$@ + echo "#define C_TARGET_INCLUDE_HOME \"$(TARGET_PREFIX)/develop/headers/chicken\"" >>$@ ++ echo "#define C_TARGET_LIB_HOME \"$(TARGET_PREFIX)/develop/lib\"" >>$@ ++ echo "#define C_TARGET_STATIC_LIB_HOME \"$(TARGET_PREFIX)/develop/lib\"" >>$@ + echo "#define HAVE_DIRENT_H 1" >>$@ + echo "#define HAVE_DLFCN_H 1" >>$@ + echo "#define HAVE_INTTYPES_H 1" >>$@ +-- +1.8.3.4 + + +From ed3a7c3bee260c4b09c4559b4a53ce346482ea1f Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Thu, 7 Nov 2013 03:33:47 -0700 +Subject: Adjust egg location + + +diff --git a/Makefile.haiku b/Makefile.haiku +index 6cab4fe..c7c2824 100644 +--- a/Makefile.haiku ++++ b/Makefile.haiku +@@ -67,6 +67,7 @@ chicken-config.h: chicken-defaults.h + echo "#define C_TARGET_INCLUDE_HOME \"$(TARGET_PREFIX)/develop/headers/chicken\"" >>$@ + echo "#define C_TARGET_LIB_HOME \"$(TARGET_PREFIX)/develop/lib\"" >>$@ + echo "#define C_TARGET_STATIC_LIB_HOME \"$(TARGET_PREFIX)/develop/lib\"" >>$@ ++ echo "#define EGGDIR \"$(TARGET_PREFIX)/non-packaged/lib/chicken/$(BINARY_VERSION)\"" >>$@ + echo "#define HAVE_DIRENT_H 1" >>$@ + echo "#define HAVE_DLFCN_H 1" >>$@ + echo "#define HAVE_INTTYPES_H 1" >>$@ +-- +1.8.3.4 + diff --git a/dev-util/abi_compliance_checker/abi_compliance_checker-1.98.3.recipe b/dev-util/abi_compliance_checker/abi_compliance_checker-1.98.3.recipe index 3befe3f31..8493e7882 100644 --- a/dev-util/abi_compliance_checker/abi_compliance_checker-1.98.3.recipe +++ b/dev-util/abi_compliance_checker/abi_compliance_checker-1.98.3.recipe @@ -1,13 +1,45 @@ -DESCRIPTION="tool for checking backward binary and source-level compatibility of a C/C++ library." +SUMMARY="binary & source-level backwards compatibility checker" +DESCRIPTION=" +ABI Compliance Checker (ACC) is a tool for checking backward binary and \ +source-level compatibility of aC/C++ library. The tool checks header files \ +and shared libraries of old and new versions and analyzes changes in API and \ +ABI (ABI=API+compiler ABI) that may break binary and/or source compatibility. +" 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" +CHECKSUM_SHA256="d397530027ec781d53d80287a77f18a872b35720fbb1e559e0bda7e715607013" +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" REVISION="1" -STATUS_HAIKU="broken" -DEPEND="" -CHECKSUM_MD5="e2ca96bf71b014eefa11fe10a6f7d1f6" + +ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + abi_compliance_checker = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:sed + cmd:gcc + cmd:make + perl + " + +SOURCE_DIR="abi-compliance-checker-1.98.3" + 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 @@ -15,23 +47,9 @@ BUILD() 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 +# TODO: Need to figure out what goes where, as this isn't working +# mkdir -p $prefix +# perl Makefile.pl -install $PREFIX=$prefix +# cp -r $portDir/example-descriptors $dataDir/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/astyle/astyle-2.03.recipe b/dev-util/astyle/astyle-2.03.recipe new file mode 100644 index 000000000..c9e945f34 --- /dev/null +++ b/dev-util/astyle/astyle-2.03.recipe @@ -0,0 +1,62 @@ +SUMMARY="A source code formatter and beautifier for C, C++, C# and Java" +DESCRIPTION=" +Artistic Style is a filter written in C++ that automatically re-indents and \ +re-formats C / C++ / C# / Java source files. It can be used from a command \ +line, or it can be incorporated as classes in another C++ program. +" +HOMEPAGE="http://astyle.sourceforge.net" +SRC_URI="http://sourceforge.net/projects/astyle/files/astyle/astyle%202.03/astyle_2.03_linux.tar.gz" +CHECKSUM_SHA256="22b5249a0b8c9fab3b3bcd467abcb3c6b4a78458b528028634a83dca4c6ca389" +LICENSE="GNU LGPL v3" +COPYRIGHT="1998-2002 by Tal Davidson + 2006-2013 Jim Pattee" +REVISION="1" +ARCHITECTURES="x86" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +# On x86_gcc2 we don't want to install the commands in bin//, but in bin/. +commandSuffix=$secondaryArchSuffix +commandBinDir=$binDir +if [ "$targetArchitecture" = x86_gcc2 ]; then + commandSuffix= + commandBinDir=$prefix/bin +fi + +PROVIDES=" + astyle$secondaryArchSuffix = $portVersion + cmd:astyle$commandSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:make + cmd:g++$secondaryArchSuffix + " + +SOURCE_DIR="astyle" + +BUILD() +{ + cd build/gcc + make prefix=$prefix +} + +INSTALL() +{ + cd build/gcc + make install \ + prefix=$prefix \ + SYSCONF_PATH=$docDir \ + INSTALL=install +} diff --git a/dev-util/astyle/astyle-r339.recipe b/dev-util/astyle/astyle-r339.recipe deleted file mode 100644 index 95757a163..000000000 --- a/dev-util/astyle/astyle-r339.recipe +++ /dev/null @@ -1,24 +0,0 @@ -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.recipe b/dev-util/astyle/astyle-r361.recipe deleted file mode 100644 index 7dcb35fff..000000000 --- a/dev-util/astyle/astyle-r361.recipe +++ /dev/null @@ -1,24 +0,0 @@ -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/bakefile/bakefile-0.2.8.recipe b/dev-util/bakefile/bakefile-0.2.8.recipe index 3c075665b..579b3be2f 100644 --- a/dev-util/bakefile/bakefile-0.2.8.recipe +++ b/dev-util/bakefile/bakefile-0.2.8.recipe @@ -1,24 +1,58 @@ -DESCRIPTION="Native makefiles generator" -HOMEPAGE="http://www.bakefile.org" +SUMMARY="Native makefiles generator" +DESCRIPTION=" +Bakefile is cross-platform, cross-compiler native makefiles generator. It \ +takes compiler-independent description of build tasks as input and generates \ +native makefile (autoconf's Makefile.in, Visual C++ project, bcc makefile etc.). +" +HOMEPAGE="http://www.bakefile.org" SRC_URI="http://sourceforge.net/projects/bakefile/files/bakefile/0.2.8/bakefile-0.2.8.tar.gz/download" -CHECKSUM_MD5="874da5c9035514366b7723bc7657c71c" +CHECKSUM_SHA256="e262b5edff1c9126cc32de7d3fcef5b24e997156f91f5a6eeccb45d29522fd1c" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" +LICENSE="MIT" +COPYRIGHT="2003-2007 (c) Vaclav Slavik" + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + bakefile = $portVersion + cmd:bakefile = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:python + cmd:gcc + cmd:make + cmd:touch + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:libtoolize + cmd:autoreconf + " + +PATCHES=" + bakefile-0.2.8.patch + " + BUILD() { - cd bakefile-0.2.8 touch ./ChangeLog libtoolize --force --copy --install + automake --add-missing autoreconf -i - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make + runConfigure ./configure + make $jobArgs } INSTALL() { - cd bakefile-0.2.8 - make install + make install DESTDIR=${developDir} } -LICENSE="MIT" -COPYRIGHT="2003-2007 (c) Vaclav Slavik" diff --git a/dev-util/buildsystem/buildsystem-0.recipe b/dev-util/buildsystem/buildsystem-0.recipe deleted file mode 100644 index e8074bdb9..000000000 --- a/dev-util/buildsystem/buildsystem-0.recipe +++ /dev/null @@ -1,21 +0,0 @@ -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/buildsystem/buildsystem-1.0_HEAD.recipe b/dev-util/buildsystem/buildsystem-1.0_HEAD.recipe deleted file mode 100644 index 7a2f6bd08..000000000 --- a/dev-util/buildsystem/buildsystem-1.0_HEAD.recipe +++ /dev/null @@ -1,18 +0,0 @@ -DESCRIPTION="NetSurf build framework for compiling some of their libraries" -HOMEPAGE="http://www.netsurf-browser.org/" -SRC_URI="git://git.netsurf-browser.org/buildsystem.git" -REVISION="1" -STATUS_HAIKU="stable" - -BUILD { - cd buildsystem-1.0-HEAD - make -} - -INSTALL { - cd buildsystem-1.0-HEAD - make install PREFIX=/boot/common/ -} - -LICENSE="MIT" -COPYRIGHT="2009 - 2013 The NetSurf Browser project" diff --git a/dev-util/ccache/ccache-3.1.9.recipe b/dev-util/ccache/ccache-3.1.9.recipe index 3ab1af323..aa59b7745 100644 --- a/dev-util/ccache/ccache-3.1.9.recipe +++ b/dev-util/ccache/ccache-3.1.9.recipe @@ -1,25 +1,35 @@ -SUMMARY="ccache is a fast compiler cache." -DESCRIPTION="ccache is a compiler cache. It speeds up recompilation by caching previous compilations and detecting when same compilation is being done again. Supported languages are C, C++, Objective-C and Objective-C++." -HOMEPAGE="http://ccache.samba.org/" +SUMMARY="A fast compiler cache" +DESCRIPTION=" +ccache is a compiler cache. It speeds up recompilation by caching previous \ +compilations and detecting when same compilation is being done again. \ +Supported languages are C, C++, Objective-C and Objective-C++. +" +HOMEPAGE="http://ccache.samba.org/" SRC_URI="http://samba.org/ftp/ccache/ccache-3.1.9.tar.bz2" +CHECKSUM_SHA256="04d3e2e438ac8d4cc4b110b68cdd61bd59226c6588739a4a386869467f5ced7c" REVISION="1" LICENSE="GNU GPL v3" COPYRIGHT="2002-2007 Andrew Tridgell 2009-2013 Joel Rosdahl" -CHECKSUM_MD5="65f48376a91d3651d6527ca568858be8" ARCHITECTURES="x86 x86_gcc2" + PROVIDES=" + ccache = $portVersion cmd:ccache " + REQUIRES=" - lib:libroot >= $haikuVersion + haiku >= $haikuVersion lib:libz >= 1 " + BUILD_REQUIRES=" + haiku_devel >= $haikuVersion " + BUILD_PREREQUIRES=" cmd:gcc cmd:make diff --git a/dev-util/cmake/cmake-2.8.11.2.recipe b/dev-util/cmake/cmake-2.8.11.2.recipe index 2c10c2503..1da2a50f9 100644 --- a/dev-util/cmake/cmake-2.8.11.2.recipe +++ b/dev-util/cmake/cmake-2.8.11.2.recipe @@ -1,17 +1,18 @@ SUMMARY="Cross platform Make" -DESCRIPTION="CMake is a cross-platform, open-source build system. It is a - family of tools designed to build, test and package software. CMake is used - to control the software compilation process using simple platform and - compiler independent configuration files. CMake generates native makefiles - and workspaces that can be used in the compiler environment of your choice. - " +DESCRIPTION=" +CMake is a cross-platform, open-source build system. It is a family of tools \ +designed to build, test and package software. CMake is used to control the \ +software compilation process using simple platform and compiler independent \ +configuration files. CMake generates native makefiles and workspaces that can \ +be used in the compiler environment of your choice. +" HOMEPAGE="http://www.cmake.org" LICENSE="CMake" COPYRIGHT="2002-2013 Kitware, Inc., Insight Consortium, All rights reserved." SRC_URI="http://www.cmake.org/files/v2.8/cmake-2.8.11.2.tar.gz" -CHECKSUM_MD5="6f5d7b8e7534a5d9e1a7664ba63cf882" -REVISION="2" -ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64" +CHECKSUM_SHA256="b32acb483afdd14339941c6e4ec25f633d916a7a472653a0b00838771a6c0562" +REVISION="7" +ARCHITECTURES="x86_gcc2 x86 x86_64" PROVIDES=" cmake = $portVersion compat >= 2.8 diff --git a/dev-util/cmake/cmake-2.8.5.recipe b/dev-util/cmake/cmake-2.8.5.recipe index bb36e152c..3f8de3c12 100644 --- a/dev-util/cmake/cmake-2.8.5.recipe +++ b/dev-util/cmake/cmake-2.8.5.recipe @@ -1,10 +1,15 @@ -SUMMARY="Cross platform Make" -DESCRIPTION="CMake is a cross-platform, open-source build system. It is a family of tools designed to build, test and package software. CMake is used to control the software compilation process using simple platform and compiler independent configuration files. CMake generates native makefiles and workspaces that can be used in the compiler environment of your choice." +DESCRIPTION=" +CMake is a cross-platform, open-source build system. It is a family of tools \ +designed to build, test and package software. CMake is used to control the \ +software compilation process using simple platform and compiler independent \ +configuration files. CMake generates native makefiles and workspaces that can \ +be used in the compiler environment of your choice. +" HOMEPAGE="http://www.cmake.org" LICENSE="CMake" COPYRIGHT="2002-2011 Kitware, Inc., Insight Consortium, All rights reserved." SRC_URI="http://www.cmake.org/files/v2.8/cmake-2.8.5.tar.gz" -CHECKSUM_MD5="3c5d32cec0f4c2dc45f4c2e84f4a20c5" +CHECKSUM_SHA256="5e18bff75f01656c64f553412a8905527e1b85efaf3163c6fb81ea5aaced0b91" REVISION="6" ARCHITECTURES="x86_gcc2 x86 x86_64" @@ -31,7 +36,6 @@ BUILD_PREREQUIRES=" cmd:sed " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/dev-util/cmake/cmake-3.0.0_git.recipe b/dev-util/cmake/cmake-3.0.0_git.recipe new file mode 100644 index 000000000..93b4bcb04 --- /dev/null +++ b/dev-util/cmake/cmake-3.0.0_git.recipe @@ -0,0 +1,72 @@ +SUMMARY="Cross platform Make" +DESCRIPTION=" +CMake is a cross-platform, open-source build system. It is a family of tools \ +designed to build, test and package software. CMake is used to control the \ +software compilation process using simple platform and compiler independent \ +configuration files. CMake generates native makefiles and workspaces that can \ +be used in the compiler environment of your choice. +" +HOMEPAGE="http://www.cmake.org" +LICENSE="CMake" +COPYRIGHT="2002-2014 Kitware, Inc., Insight Consortium, All rights reserved." +SRC_URI="git+http://cmake.org/cmake.git" +CHECKSUM_MD5="3f6e729a52e15cc3b1d58e2d1195c421" +REVISION="1" +ARCHITECTURES="?x86 ?x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES ?x86_gcc2" +fi +SECONDARY_ARCHITECTURES="?x86" + +PROVIDES=" + cmake = $portVersion compat >= 3.0 + cmd:cmake = $portVersion compat >= 3.0 + cmd:ccmake = $portVersion compat >= 3.0 + cmd:cpack = $portVersion compat >= 3.0 + cmd:ctest = $portVersion compat >= 3.0 + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libncurses$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libncurses$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + haiku_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:grep + cmd:ld$secondaryArchSuffix + cmd:libtool + cmd:make + cmd:sed + " +PATCHES="cmake-$portVersion.patchset" +#SOURCE_DIR="cmake-3.0.0-rc1" +BUILD() +{ + ./configure --prefix=$prefix \ + --datadir=/$relativeDataDir/cmake \ + --docdir=/$relativeDocDir \ + --mandir=/$relativeManDir + make $jobArgs +} + +INSTALL() +{ + make install + + # No way to tell this to configure... + mv $prefix/share/aclocal $dataDir + rmdir $prefix/share +} + +TEST() +{ + cp bin/ctest Bootstrap.cmk/ + make test VERBOSE=1 +} + diff --git a/dev-util/cmake/cmake-3.0.0_rc1.recipe b/dev-util/cmake/cmake-3.0.0_rc1.recipe new file mode 100644 index 000000000..718b4e4c2 --- /dev/null +++ b/dev-util/cmake/cmake-3.0.0_rc1.recipe @@ -0,0 +1,72 @@ +SUMMARY="Cross platform Make" +DESCRIPTION=" +CMake is a cross-platform, open-source build system. It is a family of tools \ +designed to build, test and package software. CMake is used to control the \ +software compilation process using simple platform and compiler independent \ +configuration files. CMake generates native makefiles and workspaces that can \ +be used in the compiler environment of your choice. +" +HOMEPAGE="http://www.cmake.org" +LICENSE="CMake" +COPYRIGHT="2002-2013 Kitware, Inc., Insight Consortium, All rights reserved." +SRC_URI="http://www.cmake.org/files/v3.0/cmake-3.0.0-rc1.tar.gz" +CHECKSUM_SHA256="f13ac75c2440cb81aa1c193cf4f3898092f72a0c2d43b7b02f8476a8e5e1d1e6" +REVISION="7" +ARCHITECTURES="x86 x86_64 arm" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + cmake = $portVersion compat >= 3.0 + cmd:cmake = $portVersion compat >= 3.0 + cmd:ccmake = $portVersion compat >= 3.0 + cmd:cpack = $portVersion compat >= 3.0 + cmd:ctest = $portVersion compat >= 3.0 + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libncurses$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libncurses$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + haiku_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:grep + cmd:ld$secondaryArchSuffix + cmd:libtool + cmd:make + cmd:sed + " +PATCHES="cmake-$portVersion.patchset" +SOURCE_DIR="cmake-3.0.0-rc1" +BUILD() +{ + ./configure --prefix=$prefix \ + --datadir=/$relativeDataDir/cmake \ + --docdir=/$relativeDocDir \ + --mandir=/$relativeManDir + make $jobArgs +} + +INSTALL() +{ + make install + + # No way to tell this to configure... + mv $prefix/share/aclocal $dataDir + rmdir $prefix/share +} + +TEST() +{ + cp bin/ctest Bootstrap.cmk/ + make test VERBOSE=1 +} + diff --git a/dev-util/cmake/cmake-3.0.0_rc3.recipe b/dev-util/cmake/cmake-3.0.0_rc3.recipe new file mode 100644 index 000000000..c0f868f39 --- /dev/null +++ b/dev-util/cmake/cmake-3.0.0_rc3.recipe @@ -0,0 +1,73 @@ +SUMMARY="Cross platform Make" +DESCRIPTION=" +CMake is a cross-platform, open-source build system. It is a family of tools \ +designed to build, test and package software. CMake is used to control the \ +software compilation process using simple platform and compiler independent \ +configuration files. CMake generates native makefiles and workspaces that can \ +be used in the compiler environment of your choice. +" +HOMEPAGE="http://www.cmake.org" +LICENSE="CMake" +COPYRIGHT="2002-2013 Kitware, Inc., Insight Consortium, All rights reserved." +SRC_URI="http://www.cmake.org/files/v3.0/cmake-3.0.0-rc3.tar.gz" +CHECKSUM_SHA256="5d4fc1783825caa2a898374b7bf656652531984290f5969bf86e87222f16a2d3" +REVISION="1" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + cmake = $portVersion compat >= 3.0 + cmd:cmake = $portVersion compat >= 3.0 + cmd:ccmake = $portVersion compat >= 3.0 + cmd:cpack = $portVersion compat >= 3.0 + cmd:ctest = $portVersion compat >= 3.0 + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libstdc++$secondaryArchSuffix + lib:libncurses$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libncurses$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + haiku_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:grep + cmd:ld$secondaryArchSuffix + cmd:libtool + cmd:make + cmd:sed + " +PATCHES="cmake-3.0.0_rc1.patchset" +SOURCE_DIR="cmake-3.0.0-rc3" +BUILD() +{ + ./configure --prefix=$prefix \ + --datadir=/$relativeDataDir/cmake \ + --docdir=/$relativeDocDir \ + --mandir=/$relativeManDir + make $jobArgs +} + +INSTALL() +{ + make install + + # No way to tell this to configure... + mv $prefix/share/aclocal $dataDir + rmdir $prefix/share +} + +TEST() +{ + cp bin/ctest Bootstrap.cmk/ + make test VERBOSE=1 +} + diff --git a/dev-util/cmake/cmake-3.0.0_rc5.recipe b/dev-util/cmake/cmake-3.0.0_rc5.recipe new file mode 100644 index 000000000..eeb2d72e7 --- /dev/null +++ b/dev-util/cmake/cmake-3.0.0_rc5.recipe @@ -0,0 +1,73 @@ +SUMMARY="Cross platform Make" +DESCRIPTION=" +CMake is a cross-platform, open-source build system. It is a family of tools \ +designed to build, test and package software. CMake is used to control the \ +software compilation process using simple platform and compiler independent \ +configuration files. CMake generates native makefiles and workspaces that can \ +be used in the compiler environment of your choice. +" +HOMEPAGE="http://www.cmake.org" +LICENSE="CMake" +COPYRIGHT="2002-2013 Kitware, Inc., Insight Consortium, All rights reserved." +SRC_URI="http://www.cmake.org/files/v3.0/cmake-3.0.0-rc5.tar.gz" +CHECKSUM_SHA256="fa8e76e5ed44199f4ceef24abd65a4d7df2d857edf44094d4ae7a2401af78389" +REVISION="1" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + cmake = $portVersion compat >= 3.0 + cmd:cmake = $portVersion compat >= 3.0 + cmd:ccmake = $portVersion compat >= 3.0 + cmd:cpack = $portVersion compat >= 3.0 + cmd:ctest = $portVersion compat >= 3.0 + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libstdc++$secondaryArchSuffix + lib:libncurses$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libncurses$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + haiku_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:grep + cmd:ld$secondaryArchSuffix + cmd:libtool + cmd:make + cmd:sed + " +PATCHES="cmake-3.0.0_rc1.patchset" +SOURCE_DIR="cmake-3.0.0-rc5" +BUILD() +{ + ./configure --prefix=$prefix \ + --datadir=/$relativeDataDir/cmake \ + --docdir=/$relativeDocDir \ + --mandir=/$relativeManDir + make $jobArgs +} + +INSTALL() +{ + make install + + # No way to tell this to configure... + mv $prefix/share/aclocal $dataDir + rmdir $prefix/share +} + +TEST() +{ + cp bin/ctest Bootstrap.cmk/ + make test VERBOSE=1 +} + diff --git a/dev-util/cmake/patches/cmake-2.8-git.patch b/dev-util/cmake/patches/cmake-2.8-git.patch deleted file mode 100644 index 6fac71153..000000000 --- a/dev-util/cmake/patches/cmake-2.8-git.patch +++ /dev/null @@ -1,241 +0,0 @@ -diff -urN cmake-2.8.10.2-orig/Modules/FindLua51.cmake cmake-2.8.10.2/Modules/FindLua51.cmake ---- cmake-2.8-git-orig/Modules/FindLua51.cmake 2012-11-27 05:26:32.033030144 -0800 -+++ cmake-2.8-git/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 AND NOT BEOS) -+ 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-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.11.2.patch b/dev-util/cmake/patches/cmake-2.8.11.2.patch deleted file mode 100644 index 6b3bd2f94..000000000 --- a/dev-util/cmake/patches/cmake-2.8.11.2.patch +++ /dev/null @@ -1,249 +0,0 @@ -diff -urN cmake-2.8.11.2-orig/Modules/Platform/Haiku.cmake cmake-2.8.11.2/Modules/Platform/Haiku.cmake ---- cmake-2.8.11.2-orig/Modules/FindFreetype.cmake 2012-11-27 13:26:32.037486592 +0000 -+++ cmake-2.8.11.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 - ---- cmake-2.8.11.2-orig/Modules/Platform/Haiku.cmake 2012-12-03 12:11:47.804519936 -0800 -+++ cmake-2.8.11.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.11.2-orig/Source/cmExportCommand.cxx cmake-2.8.11.2/Source/cmExportCommand.cxx ---- cmake-2.8.11.2-orig/Source/cmExportCommand.cxx 2012-11-27 05:26:33.039059456 -0800 -+++ cmake-2.8.11.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.11.2-orig/Source/cmFindPackageCommand.cxx cmake-2.8.11.2/Source/cmFindPackageCommand.cxx ---- cmake-2.8.11.2-orig/Source/cmFindPackageCommand.cxx 2012-11-27 05:26:33.059768832 -0800 -+++ cmake-2.8.11.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.11.2-orig/Source/cmLocalGenerator.cxx cmake-2.8.11.2/Source/cmLocalGenerator.cxx ---- cmake-2.8.11.2-orig/Source/cmLocalGenerator.cxx 2012-11-27 05:26:33.035389440 -0800 -+++ cmake-2.8.11.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.11.2-orig/Source/CPack/cmCPackGenerator.cxx cmake-2.8.11.2/Source/CPack/cmCPackGenerator.cxx ---- cmake-2.8.11.2-orig/Source/CPack/cmCPackGenerator.cxx 2012-11-27 05:26:32.015466496 -0800 -+++ cmake-2.8.11.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.11.2-orig/Tests/ComplexOneConfig/Library/CMakeLists.txt cmake-2.8.11.2/Tests/ComplexOneConfig/Library/CMakeLists.txt ---- cmake-2.8.11.2-orig/Tests/ComplexOneConfig/Library/CMakeLists.txt 2012-11-27 05:26:34.013369344 -0800 -+++ cmake-2.8.11.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.11.2-orig/Utilities/cmcurl/CMake/CurlTests.c cmake-2.8.11.2/Utilities/cmcurl/CMake/CurlTests.c ---- cmake-2.8.11.2-orig/Utilities/cmcurl/CMake/CurlTests.c 2012-11-27 05:26:34.045350912 -0800 -+++ cmake-2.8.11.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.11.2-orig/Utilities/cmcurl/select.c cmake-2.8.11.2/Utilities/cmcurl/select.c ---- cmake-2.8.11.2-orig/Utilities/cmcurl/select.c 2012-11-27 05:26:34.055312384 -0800 -+++ cmake-2.8.11.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.11.2-orig/Utilities/cmzlib/zconf.h cmake-2.8.11.2/Utilities/cmzlib/zconf.h ---- cmake-2.8.11.2-orig/Utilities/cmzlib/zconf.h 2012-11-27 05:26:34.022020096 -0800 -+++ cmake-2.8.11.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 --git a/dev-util/cmake/patches/cmake-2.8.11.2.patchset b/dev-util/cmake/patches/cmake-2.8.11.2.patchset index 11b7db37d..af4d9410e 100644 --- a/dev-util/cmake/patches/cmake-2.8.11.2.patchset +++ b/dev-util/cmake/patches/cmake-2.8.11.2.patchset @@ -1,4 +1,4 @@ -From 2e3be20216cac12e4e6ace37d132bdc0b5b68b21 Mon Sep 17 00:00:00 2001 +From 1d587bbcbad19d5159f6fea4a321bf6a07bd7105 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Sat, 5 Oct 2013 16:26:02 +0200 Subject: Several fixes to Haiku platform module @@ -212,7 +212,7 @@ index 5c43052..f00cbd6 100644 1.8.3.4 -From e1f3d70eb59d4e87438c2b792a0d64dc2805218d Mon Sep 17 00:00:00 2001 +From 0a6815d452ef64e7daff785a7fbf5732b21e95b3 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Sat, 5 Oct 2013 16:31:36 +0200 Subject: Remove use of B_COMMON_DIRECTORY @@ -363,7 +363,7 @@ index ee5b9d8..1369dab 100644 1.8.3.4 -From a2d6be58cf08774f05427d90de2c0ed7179d16e3 Mon Sep 17 00:00:00 2001 +From 8708f2b2761e1467c96f42d9e4c83e645b601287 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Sat, 5 Oct 2013 16:33:52 +0200 Subject: Remove useless preprocessor checks @@ -449,7 +449,7 @@ index 74ef1f8..3053cd8 100644 1.8.3.4 -From abc2262574468318d404a9d4271a818926aab507 Mon Sep 17 00:00:00 2001 +From 658016cb993a786c2d5ff9ae96f28b60529f2868 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Sat, 5 Oct 2013 16:59:25 +0200 Subject: Include files cleanup @@ -500,7 +500,7 @@ index 61c1572..fc0215e 100644 1.8.3.4 -From b932917065447fbd619e642a67ab294a17ffc97c Mon Sep 17 00:00:00 2001 +From 570101cdfddf50182bea0d3b24aa8fc5d980ab6c Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Sat, 5 Oct 2013 17:01:03 +0200 Subject: FindSDL: Fix broken include paths @@ -525,7 +525,7 @@ index fec142e..6adec1f 100644 1.8.3.4 -From ff28e08e29c0d54d794185ada1ddf496b41285e0 Mon Sep 17 00:00:00 2001 +From 04575f63ff3b05cefba384667defda6e16b99a9d Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Mon, 14 Oct 2013 09:35:02 +0200 Subject: Enable command-line length limitation on Haiku. @@ -547,3 +547,1367 @@ index 7e48cd7..3d15900 100644 -- 1.8.3.4 + +From 296607343aab4e0e8762104ca2bff6da0973539c Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Thu, 17 Oct 2013 19:27:38 +0200 +Subject: Enable ELF support on Haiku + + * The Ninja build system can't work with CPack when this is missing + * This is used to modify ELF files and change the rpath inside them +when installing or packaging them. + +diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt +index f0519fe..7dc55db 100644 +--- a/Source/CMakeLists.txt ++++ b/Source/CMakeLists.txt +@@ -15,7 +15,14 @@ CHECK_INCLUDE_FILE("elf.h" HAVE_ELF_H) + if(HAVE_ELF_H) + set(CMAKE_USE_ELF_PARSER 1) + else() +- set(CMAKE_USE_ELF_PARSER) ++ # Non-standard filename for Haiku, works all the same ++ CHECK_INCLUDE_FILE("elf32.h" HAVE_ELF32_H ++ "-I/system/develop/headers/private/system -I/system/develop/headers/private/system/arch/x86") ++ if(HAVE_ELF32_H) ++ set(CMAKE_USE_ELF_PARSER 1) ++ else() ++ set(CMAKE_USE_ELF_PARSER) ++ endif() + endif() + + set(EXECUTABLE_OUTPUT_PATH ${CMake_BIN_DIR}) +@@ -400,6 +407,14 @@ if(APPLE) + target_link_libraries(CMakeLib "-framework CoreFoundation") + endif() + ++# On Haiku, elf32.h is hidden in the "private" include dir ++if(HAIKU) ++ include_directories( ++ "/system/develop/headers/private/system" ++ "/system/develop/headers/private/system/arch/x86" ++ ) ++endif() ++ + # On some platforms we need the rpcrt4 library for the VS 7 generators. + if(CMAKE_BUILD_ON_VISUAL_STUDIO OR MINGW) + target_link_libraries(CMakeLib rpcrt4) +@@ -505,6 +520,12 @@ if(UNIX) + ) + endif() + ++if(HAIKU) ++ set(CPACK_SRCS ${CPACK_SRCS} ++ CPack/cmCPackHpkgGenerator.cxx ++ ) ++endif() ++ + if(WIN32) + set(CPACK_SRCS ${CPACK_SRCS} + CPack/WiX/cmCPackWIXGenerator.cxx +diff --git a/Source/elf.h b/Source/elf.h +new file mode 100644 +index 0000000..6b868bb +--- /dev/null ++++ b/Source/elf.h +@@ -0,0 +1,42 @@ ++/* ++ * ++ * /boot/common/include/elf.h ++ * ++ * -I/system/develop/headers/private/system ++ * -I/system/develop/headers/private/system/arch_x86 ++ * ++ * As found on other platforms, for benefit of GHC Haskell compiler, ++ * Donn ++ * */ ++ ++#ifdef __HAIKU__ ++ ++#include ++#include ++ ++typedef struct Elf32_Ehdr Elf32_Ehdr; ++typedef struct Elf32_Shdr Elf32_Shdr; ++typedef struct Elf32_Sym Elf32_Sym; ++typedef struct Elf32_Rel Elf32_Rel; ++typedef struct Elf32_Rela Elf32_Rela; ++ ++#define ELFMAG0 0x7F ++#define ELFMAG1 'E' ++#define ELFMAG2 'L' ++#define ELFMAG3 'F' ++ ++#define ET_NONE 0 ++#define ET_REL 1 ++#define ET_EXEC 2 ++#define ET_DYN 3 ++#define ET_CORE 4 ++ ++#define EM_386 3 ++#define EM_SPARC 2 ++#define EM_PPC 20 ++ ++#else ++ ++#include_next ++ ++#endif +-- +1.8.3.4 + + +From 9e7428567599bd566aa8680e6e09ecee28c54bab Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Thu, 17 Oct 2013 19:35:25 +0200 +Subject: CPack: add Haiku hpkg support + + +diff --git a/Modules/CPackHpkg.cmake b/Modules/CPackHpkg.cmake +new file mode 100644 +index 0000000..3308889 +--- /dev/null ++++ b/Modules/CPackHpkg.cmake +@@ -0,0 +1,297 @@ ++##section Variables specific to CPack Haiku (HPKG) generator ++##end ++##module ++# - The builtin (binary) CPack Haiku generator (Haiku only) ++# CPackHaiku may be used to create Haiku packages using CPack. ++# CPackHaiku is a CPack generator thus it uses the CPACK_XXX variables ++# used by CPack : http://www.cmake.org/Wiki/CMake:CPackConfiguration. ++# CPackHaiku will work only on haiku as it uss the 'package' tool available ++# there. With the custom archive format and compression algorithm, there is ++# currently no better way. ++# ++# CPackHaiku has specific features which are controlled by ++# the specifics CPACK_HAIKU_XXX variables.You'll find a detailed usage on ++# the wiki: ++# http://www.cmake.org/Wiki/CMake:CPackPackageGenerators#HAIKU_.28HAIKU_only.29 ++# However as a handy reminder here comes the list of specific variables: ++##end ++# ++##variable ++# CPACK_HAIKU_PACKAGE_NAME ++# Mandatory : YES ++# Default : CPACK_PACKAGE_NAME (lower case) ++# The haiku package name ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_VERSION ++# Mandatory : YES ++# Default : CPACK_PACKAGE_VERSION ++# The haiku package version ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_REVISION ++# Mandatory : YES ++# Default : 1 ++# The haiku package version ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_ARCHITECTURE ++# Mandatory : YES ++# Default : $ENV{BE_SYSTEM_CPU}, or x86_gcc2 if using gcc2. ++# The haiku package architecture ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_PACKAGER ++# Mandatory : YES ++# Default : CPACK_PACKAGE_CONTACT ++# The haiku package maintainer e-mail address ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_VENDOR ++# Mandatory : YES ++# Default : CPACK_PACKAGE_VENDOR ++# The haiku package vendor ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_DESCRIPTION ++# Mandatory : YES ++# Default : CPACK_PACKAGE_DESCRIPTION ++# The haiku package description ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_DESCRIPTION_SUMMARY ++# Mandatory : YES ++# Default : CPACK_PACKAGE_DESCRIPTION_SUMMARY ++# The haiku package one-line description ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_COPYRIGHT ++# Mandatory : YES ++# Default : - ++# The haiku package copyright holders ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_LICENSES ++# Mandatory : YES ++# Default : - ++# The haiku package licenses. This must be available in /system/data/licenses, ++# either provided by the package or one of the system-provided licenses. ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_URL ++# Mandatory : NO ++# Default : - ++# The URL of the web site for this package, preferably (when applicable) the ++# site from which the original source can be obtained and any additional ++# upstream documentation or information may be found. ++# The content of this field is a simple URL without any surrounding ++# characters such as <>. ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_DEBUG ++# Mandatory : NO ++# Default : - ++# May be set when invoking cpack in order to trace debug information ++# during CPackHpkg run. ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_PREREQUIRES ++# Mandatory : NO ++# Default : - ++# This is similar to REQUIRES, but the package will not be rebuilt. This ++# makes it possible to have circular dependencies between prerequired ++# packages ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_SUPPLEMENTS ++# Mandatory : NO ++# Default : - ++# This field allow adding functionality to an existing package. This will ++# be made visible to the original package in its private directory. ++# It is used to declare that a package can enhance the functionality of another package. ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_CONFLICTS ++# Mandatory : NO ++# Default : - ++# When one binary package declares a conflict with another using a Conflicts field, ++# Haiku will refuse to allow them to be installed on the system at the same time. ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_CONTROL_EXTRA ++# Mandatory : NO ++# Default : - ++# This variable allow advanced user to add other entries to the .PackageInfo file ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_PROVIDES ++# Mandatory : YES ++# Default : - ++# List of provided entries for the package, with version constraints. ++# There should be an entry for each binary, application, library and add-on ++# provided by the package. The packages always provides itself, there is no ++# need for explicitly mentionning it in this variable. ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_REQUIRES ++# Mandatory : NO ++# Default : - ++# May be used to set package dependencies. ++##end ++ ++ ++#============================================================================= ++# Copyright 2007-2013 Kitware, Inc. ++# Copyright 2007-2009 Mathieu Malaterre ++# ++# Distributed under the OSI-approved BSD License (the "License"); ++# see accompanying file Copyright.txt for details. ++# ++# This software is distributed WITHOUT ANY WARRANTY; without even the ++# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++# See the License for more information. ++#============================================================================= ++# (To distribute this file outside of CMake, substitute the full ++# License text for the above reference.) ++ ++# CPack script for creating Haiku packages ++# Author: Adrien Destugues ++# ++# http://wiki.debian.org/HowToPackageForDebian ++ ++if(CMAKE_BINARY_DIR) ++ message(FATAL_ERROR "CPackHpkg.cmake may only be used by CPack internally.") ++endif() ++ ++if(NOT HAIKU) ++ message(FATAL_ERROR "CPackHpkg.cmake may only be used under Haiku.") ++endif() ++ ++find_program(FAKEROOT_EXECUTABLE fakeroot) ++if(FAKEROOT_EXECUTABLE) ++ set(CPACK_DEBIAN_FAKEROOT_EXECUTABLE ${FAKEROOT_EXECUTABLE}) ++endif() ++ ++ ++# Let's define the .PackageInfo file found in haiku package: ++ ++# Package: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_NAME) ++ string(TOLOWER "${CPACK_PACKAGE_NAME}" CPACK_HAIKU_PACKAGE_NAME) ++ string(REPLACE "_unspecified" "" CPACK_HAIKU_PACKAGE_NAME ++ "${CPACK_HAIKU_PACKAGE_NAME}") ++endif() ++ ++# Version: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_VERSION) ++ if(NOT CPACK_PACKAGE_VERSION) ++ message(FATAL_ERROR "CPackHpkg: Haiku package requires a package version") ++ endif() ++ set(CPACK_HAIKU_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION}) ++endif() ++ ++# Revision: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_REVISION) ++ set(CPACK_HAIKU_PACKAGE_REVISION 1) ++endif() ++ ++# Architecture: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_ARCHITECTURE) ++ if(CMAKE_C_COMPILER_VERSION VERSION_LESS 3.0) ++ set(CPACK_HAIKU_PACKAGE_ARCHITECTURE "x86_gcc2") ++ else() ++ set(CPACK_HAIKU_PACKAGE_ARCHITECTURE $ENV{BE_HOST_CPU}) ++ endif() ++endif() ++ ++# have a look at get_property(result GLOBAL PROPERTY ENABLED_FEATURES), ++# this returns the successful find_package() calls, maybe this can help ++# Depends: ++# You should set: DEBIAN_PACKAGE_DEPENDS ++# TODO: automate 'objdump -p | grep NEEDED' ++if(NOT CPACK_HAIKU_PACKAGE_DEPENDS) ++ message(STATUS "CPACK_HAIKU_PACKAGE_DEPENDS not set, the package will have no dependencies.") ++endif() ++ ++# Maintainer: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_PACKAGER) ++ if(NOT CPACK_PACKAGE_CONTACT) ++ message(FATAL_ERROR "CPackHpkg: Haiku package requires a maintainer, set CPACK_PACKAGE_CONTACT or CPACK_HAIKU_PACKAGE_PACKAGER") ++ endif() ++ set(CPACK_HAIKU_PACKAGE_MAINTAINER ${CPACK_PACKAGE_PACKAGER}) ++endif() ++ ++# Vendor: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_VENDOR) ++ if(NOT CPACK_PACKAGE_VENDOR) ++ message(FATAL_ERROR "CPackHpkg: Haiku package requires a vendor, set CPACK_PACKAGE_VENDOR or CPACK_HAIKU_PACKAGE_VENDOR") ++ endif() ++ set(CPACK_HAIKU_PACKAGE_VENDOR ${CPACK_PACKAGE_VENDOR}) ++endif() ++ ++# Copyright: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_COPYRIGHT) ++ message(FATAL_ERROR "CPackHaiku: Haiku package requires a copyright for a package, set CPACK_HAIKU_PACKAGE_COPYRIGHT") ++endif() ++ ++# License: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_LICENSES) ++ message(FATAL_ERROR "CPackHaiku: Haiku package requires a copyright for a package, set CPACK_HAIKU_PACKAGE_LICENSES") ++endif() ++ ++# Description: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_DESCRIPTION) ++ if(NOT CPACK_PACKAGE_DESCRIPTION) ++ message(FATAL_ERROR "CPackHaiku: Haiku package requires a description for a package, set CPACK_PACKAGE_DESCRIPTION or CPACK_HAIKU_PACKAGE_DESCRIPTION") ++ endif() ++ set(CPACK_HAIKU_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION}) ++endif() ++ ++# Summary: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_DESCRIPTION_SUMMARY) ++ if(NOT CPACK_PACKAGE_DESCRIPTION_SUMMARY) ++ message(FATAL_ERROR "CPackHaiku: Haiku package requires a summary for a package, set CPACK_PACKAGE_DESCRIPTION_SUMMARY or CPACK_HAIKU_PACKAGE_DESCRIPTION_SUMMARY") ++ endif() ++ set(CPACK_HAIKU_PACKAGE_DESCRIPTION_SUMMARY ${CPACK_PACKAGE_DESCRIPTION_SUMMARY}) ++endif() ++ ++# Provides: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_PROVIDES) ++ set(CPACK_HAIKU_PACKAGE_PROVIDES ${CPACK_HAIKU_PACKAGE_NAME}) ++else() ++ set(CPACK_HAIKU_PACKAGE_PROVIDES ${CPACK_HAIKU_PACKAGE_NAME} ${CPACK_HAIKU_PACKAGE_PROVIDES}) ++endif() ++ ++# CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA ++# This variable allow advanced user to add custom script to the control.tar.gz (inside the .deb archive) ++# Typical examples are: ++# - conffiles ++# - postinst ++# - postrm ++# - prerm" ++# Usage: ++# set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA ++# "${CMAKE_CURRENT_SOURCE_DIR/prerm;${CMAKE_CURRENT_SOURCE_DIR}/postrm") ++ ++# Are we packaging components ? ++if(CPACK_HAIKU_PACKAGE_COMPONENT) ++ set(CPACK_HAIKU_PACKAGE_COMPONENT_PART_NAME "_${CPACK_HAIKU_PACKAGE_COMPONENT}") ++ string(TOLOWER "${CPACK_PACKAGE_NAME}${CPACK_HAIKU_PACKAGE_COMPONENT_PART_NAME}" CPACK_HAIKU_PACKAGE_NAME) ++else() ++ set(CPACK_HAIKU_PACKAGE_COMPONENT_PART_NAME "") ++endif() ++ ++set(WDIR "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}${CPACK_HAIKU_PACKAGE_COMPONENT_PART_PATH}") ++ ++# Print out some debug information if we were asked for that ++if(CPACK_HAIKU_PACKAGE_DEBUG) ++ message("CPackHpkg:Debug: CPACK_TOPLEVEL_DIRECTORY = ${CPACK_TOPLEVEL_DIRECTORY}") ++ message("CPackHpkg:Debug: CPACK_TOPLEVEL_TAG = ${CPACK_TOPLEVEL_TAG}") ++ message("CPackHpkg:Debug: CPACK_TEMPORARY_DIRECTORY = ${CPACK_TEMPORARY_DIRECTORY}") ++ message("CPackHpkg:Debug: CPACK_OUTPUT_FILE_NAME = ${CPACK_OUTPUT_FILE_NAME}") ++ message("CPackHpkg:Debug: CPACK_OUTPUT_FILE_PATH = ${CPACK_OUTPUT_FILE_PATH}") ++ message("CPackHpkg:Debug: CPACK_PACKAGE_FILE_NAME = ${CPACK_PACKAGE_FILE_NAME}") ++ message("CPackHpkg:Debug: CPACK_PACKAGE_INSTALL_DIRECTORY = ${CPACK_PACKAGE_INSTALL_DIRECTORY}") ++ message("CPackHpkg:Debug: CPACK_TEMPORARY_PACKAGE_FILE_NAME = ${CPACK_TEMPORARY_PACKAGE_FILE_NAME}") ++endif() ++ +diff --git a/Source/CPack/cmCPackGeneratorFactory.cxx b/Source/CPack/cmCPackGeneratorFactory.cxx +index b36c2a2..7d8f8a5 100644 +--- a/Source/CPack/cmCPackGeneratorFactory.cxx ++++ b/Source/CPack/cmCPackGeneratorFactory.cxx +@@ -42,6 +42,10 @@ + # include "WiX/cmCPackWIXGenerator.h" + #endif + ++#ifdef __HAIKU__ ++# include "cmCPackHpkgGenerator.h" ++#endif ++ + #include "cmCPackLog.h" + + #if defined(__BORLANDC__) +@@ -138,6 +142,13 @@ cmCPackGeneratorFactory::cmCPackGeneratorFactory() + cmCPackRPMGenerator::CreateGenerator); + } + #endif ++#if defined(__HAIKU__) ++ if (cmCPackHpkgGenerator::CanGenerate()) ++ { ++ this->RegisterGenerator("HPKG", "Haiku packages", ++ cmCPackHpkgGenerator::CreateGenerator); ++ } ++#endif + } + + //---------------------------------------------------------------------- +diff --git a/Source/CPack/cmCPackHpkgGenerator.cxx b/Source/CPack/cmCPackHpkgGenerator.cxx +new file mode 100644 +index 0000000..f4933cf +--- /dev/null ++++ b/Source/CPack/cmCPackHpkgGenerator.cxx +@@ -0,0 +1,509 @@ ++/*============================================================================ ++ CMake - Cross Platform Makefile Generator ++ Copyright 2000-2009 Kitware, Inc., Insight Software Consortium ++ ++ Distributed under the OSI-approved BSD License (the "License"); ++ see accompanying file Copyright.txt for details. ++ ++ This software is distributed WITHOUT ANY WARRANTY; without even the ++ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++ See the License for more information. ++============================================================================*/ ++#include "cmCPackHpkgGenerator.h" ++ ++#include "cmSystemTools.h" ++#include "cmMakefile.h" ++#include "cmGeneratedFileStream.h" ++#include "cmCPackLog.h" ++ ++#include ++#include ++ ++#include // USHRT_MAX ++ ++// NOTE: ++// Haiku .hpkg files are package using a custom compression and archive format. ++// The only way of creating them isusing the package tool provided with Haiku. ++ ++//---------------------------------------------------------------------- ++cmCPackHpkgGenerator::cmCPackHpkgGenerator() ++{ ++} ++ ++//---------------------------------------------------------------------- ++cmCPackHpkgGenerator::~cmCPackHpkgGenerator() ++{ ++} ++ ++//---------------------------------------------------------------------- ++int cmCPackHpkgGenerator::InitializeInternal() ++{ ++ // Haiku packages are "rootless": the hierarchy inside them is relative to ++ // the package mount/install point. ++ this->SetOption("CPACK_PACKAGING_INSTALL_PREFIX", NULL); ++ if (cmSystemTools::IsOn(this->GetOption("CPACK_SET_DESTDIR"))) ++ { ++ this->SetOption("CPACK_SET_DESTDIR", "I_OFF"); ++ } ++ return this->Superclass::InitializeInternal(); ++} ++ ++//---------------------------------------------------------------------- ++int cmCPackHpkgGenerator::PackageOnePack(std::string initialTopLevel, ++ std::string packageName) ++ { ++ int retval = 1; ++ // Begin the archive for this pack ++ std::string localToplevel(initialTopLevel); ++ std::string packageFileName( ++ cmSystemTools::GetParentDirectory(toplevel.c_str()) ++ ); ++ std::string outputFileName( ++ std::string(this->GetOption("CPACK_PACKAGE_FILE_NAME")) ++ +"_"+packageName + this->GetOutputExtension() ++ ); ++ ++ cmCPackLogger(cmCPackLog::LOG_DEBUG, ++ "Packaging " << outputFileName << std::endl); ++ ++ localToplevel += "/"+ packageName; ++ /* replace the TEMP DIRECTORY with the component one */ ++ this->SetOption("CPACK_TEMPORARY_DIRECTORY",localToplevel.c_str()); ++ packageFileName += "/"+ outputFileName; ++ /* replace proposed CPACK_OUTPUT_FILE_NAME */ ++ this->SetOption("CPACK_OUTPUT_FILE_NAME",outputFileName.c_str()); ++ /* replace the TEMPORARY package file name */ ++ this->SetOption("CPACK_TEMPORARY_PACKAGE_FILE_NAME", ++ packageFileName.c_str()); ++ // Tell CPackHpkg.cmake the name of the component GROUP. ++ this->SetOption("CPACK_HAIKU_PACKAGE_COMPONENT",packageName.c_str()); ++ // Tell CPackHpkg.cmake the path where the component is. ++ std::string component_path = "/"; ++ component_path += packageName; ++ this->SetOption("CPACK_HAIKU_PACKAGE_COMPONENT_PART_PATH", ++ component_path.c_str()); ++ if (!this->ReadListFile("CPackHpkg.cmake")) ++ { ++ cmCPackLogger(cmCPackLog::LOG_ERROR, ++ "Error while execution CPackHpkg.cmake" << std::endl); ++ retval = 0; ++ return retval; ++ } ++ ++ cmsys::Glob gl; ++ std::string findExpr(this->GetOption("WDIR")); ++ findExpr += "/*"; ++ gl.RecurseOn(); ++ if ( !gl.FindFiles(findExpr) ) ++ { ++ cmCPackLogger(cmCPackLog::LOG_ERROR, ++ "Cannot find any files in the installed directory" << std::endl); ++ return 0; ++ } ++ packageFiles = gl.GetFiles(); ++ ++ int res = createHpkg(packageName); ++ if (res != 1) ++ { ++ retval = 0; ++ } ++ // add the generated package to package file names list ++ packageFileNames.push_back(packageFileName); ++ return retval; ++} ++ ++//---------------------------------------------------------------------- ++int cmCPackHpkgGenerator::PackageComponents(bool ignoreGroup) ++{ ++ int retval = 1; ++ /* Reset package file name list it will be populated during the ++ * component packaging run*/ ++ packageFileNames.clear(); ++ std::string initialTopLevel(this->GetOption("CPACK_TEMPORARY_DIRECTORY")); ++ ++ cmCPackLogger(cmCPackLog::LOG_DEBUG, ++ "Packaging in components mode" << std::endl); ++ ++ // The default behavior is to have one package by component group ++ // unless CPACK_COMPONENTS_IGNORE_GROUP is specified. ++ if (!ignoreGroup) ++ { ++ std::map::iterator compGIt; ++ for (compGIt=this->ComponentGroups.begin(); ++ compGIt!=this->ComponentGroups.end(); ++compGIt) ++ { ++ cmCPackLogger(cmCPackLog::LOG_VERBOSE, "Packaging component group: " ++ << compGIt->first ++ << std::endl); ++ // Begin the archive for this group ++ retval &= PackageOnePack(initialTopLevel,compGIt->first); ++ } ++ // Handle Orphan components (components not belonging to any groups) ++ std::map::iterator compIt; ++ for (compIt=this->Components.begin(); ++ compIt!=this->Components.end(); ++compIt ) ++ { ++ // Does the component belong to a group? ++ if (compIt->second.Group==NULL) ++ { ++ cmCPackLogger(cmCPackLog::LOG_VERBOSE, ++ "Component <" ++ << compIt->second.Name ++ << "> does not belong to any group, package it separately." ++ << std::endl); ++ // Begin the archive for this orphan component ++ retval &= PackageOnePack(initialTopLevel,compIt->first); ++ } ++ } ++ } ++ // CPACK_COMPONENTS_IGNORE_GROUPS is set ++ // We build 1 package per component ++ else ++ { ++ cmCPackLogger(cmCPackLog::LOG_DEBUG, ++ "Groups are ignored" << std::endl); ++ ++ std::map::iterator compIt; ++ for (compIt=this->Components.begin(); ++ compIt!=this->Components.end(); ++compIt ) ++ { ++ retval &= PackageOnePack(initialTopLevel,compIt->first); ++ } ++ } ++ return retval; ++} ++ ++//---------------------------------------------------------------------- ++int cmCPackHpkgGenerator::PackageComponentsAllInOne() ++{ ++ int retval = 1; ++ std::string compInstDirName; ++ /* Reset package file name list it will be populated during the ++ * component packaging run*/ ++ packageFileNames.clear(); ++ std::string initialTopLevel(this->GetOption("CPACK_TEMPORARY_DIRECTORY")); ++ ++ compInstDirName = "ALL_COMPONENTS_IN_ONE"; ++ ++ cmCPackLogger(cmCPackLog::LOG_VERBOSE, ++ "Packaging all groups in one package..." ++ "(CPACK_COMPONENTS_ALL_[GROUPS_]IN_ONE_PACKAGE is set)" ++ << std::endl); ++ ++ cmCPackLogger(cmCPackLog::LOG_DEBUG, ++ "Packaging in all-in-one mode" << std::endl); ++ ++ // The ALL GROUPS in ONE package case ++ std::string localToplevel(initialTopLevel); ++ std::string packageFileName( ++ cmSystemTools::GetParentDirectory(toplevel.c_str()) ++ ); ++ std::string outputFileName( ++ std::string(this->GetOption("CPACK_PACKAGE_FILE_NAME")) ++ + this->GetOutputExtension() ++ ); ++ // all GROUP in one vs all COMPONENT in one ++ localToplevel += "/"+compInstDirName; ++ ++ /* replace the TEMP DIRECTORY with the component one */ ++ this->SetOption("CPACK_TEMPORARY_DIRECTORY",localToplevel.c_str()); ++ packageFileName += "/"+ outputFileName; ++ /* replace proposed CPACK_OUTPUT_FILE_NAME */ ++ this->SetOption("CPACK_OUTPUT_FILE_NAME",outputFileName.c_str()); ++ /* replace the TEMPORARY package file name */ ++ this->SetOption("CPACK_TEMPORARY_PACKAGE_FILE_NAME", ++ packageFileName.c_str()); ++ // Tell CPackHpkg.cmake the path where the component is. ++ std::string component_path = "/"; ++ component_path += compInstDirName; ++ this->SetOption("CPACK_HPKG_PACKAGE_COMPONENT_PART_PATH", ++ component_path.c_str()); ++ if (!this->ReadListFile("CPackHpkg.cmake")) ++ { ++ cmCPackLogger(cmCPackLog::LOG_ERROR, ++ "Error while execution CPackHpkg.cmake" << std::endl); ++ retval = 0; ++ return retval; ++ } ++ ++ cmsys::Glob gl; ++ std::string findExpr(this->GetOption("WDIR")); ++ findExpr += "/*"; ++ gl.RecurseOn(); ++ if ( !gl.FindFiles(findExpr) ) ++ { ++ cmCPackLogger(cmCPackLog::LOG_ERROR, ++ "Cannot find any files in the installed directory" << std::endl); ++ return 0; ++ } ++ packageFiles = gl.GetFiles(); ++ ++ int res = createHpkg(); ++ if (res != 1) ++ { ++ retval = 0; ++ } ++ // add the generated package to package file names list ++ packageFileNames.push_back(packageFileName); ++ return retval; ++} ++ ++//---------------------------------------------------------------------- ++int cmCPackHpkgGenerator::PackageFiles() ++{ ++ int retval = -1; ++ ++ /* Are we in the component packaging case */ ++ if (WantsComponentInstallation()) { ++ // CASE 1 : COMPONENT ALL-IN-ONE package ++ // If ALL GROUPS or ALL COMPONENTS in ONE package has been requested ++ // then the package file is unique and should be open here. ++ if (componentPackageMethod == ONE_PACKAGE) ++ { ++ return PackageComponentsAllInOne(); ++ } ++ // CASE 2 : COMPONENT CLASSICAL package(s) (i.e. not all-in-one) ++ // There will be 1 package for each component group ++ // however one may require to ignore component group and ++ // in this case you'll get 1 package for each component. ++ else ++ { ++ return PackageComponents(componentPackageMethod == ++ ONE_PACKAGE_PER_COMPONENT); ++ } ++ } ++ // CASE 3 : NON COMPONENT package. ++ else ++ { ++ if (!this->ReadListFile("CPackHpkg.cmake")) ++ { ++ cmCPackLogger(cmCPackLog::LOG_ERROR, ++ "Error while execution CPackHpkg.cmake" << std::endl); ++ retval = 0; ++ } ++ else ++ { ++ packageFiles = files; ++ return createHpkg(); ++ } ++ } ++ return retval; ++} ++ ++int cmCPackHpkgGenerator::createHpkg(std::string packageName) ++{ ++ // .PackageInfo file ++ std::string infofilename; ++ infofilename = this->GetOption("WDIR"); ++ infofilename += "/.PackageInfo"; ++ ++ std::string haiku_pkg_id = this->GetOption("CPACK_HAIKU_PACKAGE_NAME"); ++ if(packageName == "Unspecified") { ++ // Remove package specifier for the "unspecified" package ++ haiku_pkg_id.erase(haiku_pkg_id.length() - packageName.length() - 1); ++ packageName = ""; ++ } else if(packageName.length() > 0) { ++ packageName += "_"; ++ } ++ // haiku policy enforce lower case for package name ++ std::string haiku_pkg_name = cmsys::SystemTools::LowerCase(haiku_pkg_id); ++ ++ // mandatory entries: ++ const char* haiku_pkg_version = ++ this->GetOption("CPACK_HAIKU_PACKAGE_VERSION"); ++ const char* haiku_pkg_revision = ++ this->GetOption("CPACK_HAIKU_PACKAGE_REVISION"); ++ const char* haiku_pkg_arch = ++ this->GetOption("CPACK_HAIKU_PACKAGE_ARCHITECTURE"); ++ const char* maintainer = this->GetOption("CPACK_HAIKU_PACKAGE_PACKAGER"); ++ const char* vendor = this->GetOption("CPACK_HAIKU_PACKAGE_VENDOR"); ++ const char* summary = this->GetOption("CPACK_HAIKU_PACKAGE_DESCRIPTION_SUMMARY"); ++ const char* desc = this->GetOption("CPACK_HAIKU_PACKAGE_DESCRIPTION"); ++ const char* copyrights = this->GetOption("CPACK_HAIKU_PACKAGE_COPYRIGHT"); ++ const char* haiku_pkg_licenses = ++ this->GetOption("CPACK_HAIKU_PACKAGE_LICENSES"); ++ ++ // component-specific entries ++ std::string pkg_requires_option = "CPACK_HAIKU_" + packageName ++ + "PACKAGE_REQUIRES"; ++ const char* haiku_pkg_dep = this->GetOption(pkg_requires_option.c_str()); ++ std::string pkg_provides_option = "CPACK_HAIKU_" + packageName ++ + "PACKAGE_PROVIDES"; ++ const char* haiku_pkg_provides = this->GetOption(pkg_provides_option.c_str()); ++ ++ // optional entries ++ const char* haiku_pkg_url = this->GetOption("CPACK_HAIKU_PACKAGE_HOMEPAGE"); ++ const char* haiku_pkg_enhances = ++ this->GetOption("CPACK_HAIKU_PACKAGE_ENHANCES"); ++ const char* haiku_pkg_conflicts = ++ this->GetOption("CPACK_HAIKU_PACKAGE_CONFLICTS"); ++ const char* haiku_pkg_replaces = ++ this->GetOption("CPACK_HAIKU_PACKAGE_REPLACES"); ++ ++ { // the scope is needed for cmGeneratedFileStream ++ cmGeneratedFileStream out(infofilename.c_str()); ++ out << "name " << haiku_pkg_name << "\n"; ++ out << "version " << haiku_pkg_version << "-" << haiku_pkg_revision << "\n"; ++ out << "architecture " << haiku_pkg_arch << "\n"; ++ if(haiku_pkg_dep && *haiku_pkg_dep) ++ { ++ out << "requires {"; ++ std::vector requiresList; ++ cmSystemTools::ExpandListArgument(haiku_pkg_dep, requiresList); ++ for(std::vector::iterator i = ++ requiresList.begin(); i != requiresList.end(); ++i) ++ { ++ out << *i << "\n"; ++ } ++ ++ out << "}\n"; ++ } ++ if(haiku_pkg_url && *haiku_pkg_url) ++ { ++ out << "urls " << haiku_pkg_url << "\n"; ++ } ++ if (haiku_pkg_enhances && *haiku_pkg_enhances) ++ { ++ out << "freshens " << haiku_pkg_enhances << "\n"; ++ } ++ if (haiku_pkg_conflicts && *haiku_pkg_conflicts) ++ { ++ out << "conflicts " << haiku_pkg_conflicts << "\n"; ++ } ++ if (haiku_pkg_replaces && *haiku_pkg_replaces) ++ { ++ out << "replaces " << haiku_pkg_replaces << "\n"; ++ } ++ ++ out << "provides {"; ++ std::vector providesList; ++ cmSystemTools::ExpandListArgument(haiku_pkg_provides, providesList); ++ for(std::vector::iterator i = ++ providesList.begin(); i != providesList.end(); ++i) ++ { ++ out << *i << "\n"; ++ } ++ ++ out << "}\n"; ++ ++ out << "licenses {"; ++ std::vector licensesList; ++ cmSystemTools::ExpandListArgument(haiku_pkg_licenses, licensesList); ++ for(std::vector::iterator i = ++ licensesList.begin(); i != licensesList.end(); ++i) ++ { ++ out << "\"" << *i << "\"\n"; ++ } ++ ++ out << "}\n"; ++ ++ out << "copyrights {\"" << copyrights << "\"}\n"; ++ out << "packager " << maintainer << "\n"; ++ out << "vendor \"" << vendor << "\"\n"; ++ out << "summary \"" << summary << "\"\n"; ++ out << "description \"" << desc << "\"\n"; ++ out << std::endl; ++ } ++ ++ std::string cmd; ++ if (NULL != this->GetOption("CPACK_HAIKU_FAKEROOT_EXECUTABLE")) { ++ cmd += this->GetOption("CPACK_HAIKU_FAKEROOT_EXECUTABLE"); ++ } ++ cmd += "package create "; ++ cmd += this->GetOption("CPACK_TEMPORARY_PACKAGE_FILE_NAME"); ++ ++ std::string output; ++ int retval = -1; ++ int res = cmSystemTools::RunSingleCommand(cmd.c_str(), &output, ++ &retval, this->GetOption("WDIR"), this->GeneratorVerbose, 0); ++ ++ if ( !res || retval ) ++ { ++ std::string tmpFile = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); ++ tmpFile += "/Hpkg.log"; ++ cmGeneratedFileStream ofs(tmpFile.c_str()); ++ ofs << "# Run command: " << cmd.c_str() << std::endl ++ << "# Working directory: " << toplevel << std::endl ++ << "# Output:" << std::endl ++ << output.c_str() << std::endl; ++ cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem running package command: " ++ << cmd.c_str() << std::endl ++ << "Please check " << tmpFile.c_str() << " for errors" << std::endl); ++ return 0; ++ } ++ ++ const char* infoExtra = ++ this->GetOption("CPACK_HAIKU_PACKAGE_INFO_EXTRA"); ++ if( infoExtra ) ++ { ++ std::vector controlExtraList; ++ cmSystemTools::ExpandListArgument(infoExtra, controlExtraList); ++ for(std::vector::iterator i = ++ controlExtraList.begin(); i != controlExtraList.end(); ++i) ++ { ++ std::string filenamename = ++ cmsys::SystemTools::GetFilenameName(i->c_str()); ++ std::string localcopy = this->GetOption("WDIR"); ++ localcopy += "/"; ++ localcopy += filenamename; ++ // if we can copy the file, it means it does exist, let's add it: ++ if( cmsys::SystemTools::CopyFileIfDifferent( ++ i->c_str(), localcopy.c_str()) ) ++ { ++ // haiku is picky and need relative to ./ path in the tar.gz ++ cmd += " ./"; ++ cmd += filenamename; ++ } ++ } ++ } ++ res = cmSystemTools::RunSingleCommand(cmd.c_str(), &output, ++ &retval, this->GetOption("WDIR"), this->GeneratorVerbose, 0); ++ ++ if ( !res || retval ) ++ { ++ std::string tmpFile = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); ++ tmpFile += "/Hpkg.log"; ++ cmGeneratedFileStream ofs(tmpFile.c_str()); ++ ofs << "# Run command: " << cmd.c_str() << std::endl ++ << "# Working directory: " << toplevel << std::endl ++ << "# Output:" << std::endl ++ << output.c_str() << std::endl; ++ cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem running tar command: " ++ << cmd.c_str() << std::endl ++ << "Please check " << tmpFile.c_str() << " for errors" << std::endl); ++ return 0; ++ } ++ ++ return 1; ++} ++ ++bool cmCPackHpkgGenerator::SupportsComponentInstallation() const ++ { ++ return true; ++ } ++ ++std::string cmCPackHpkgGenerator::GetComponentInstallDirNameSuffix( ++ const std::string& componentName) ++ { ++ if (componentPackageMethod == ONE_PACKAGE_PER_COMPONENT) { ++ return componentName; ++ } ++ ++ if (componentPackageMethod == ONE_PACKAGE) { ++ return std::string("ALL_COMPONENTS_IN_ONE"); ++ } ++ // We have to find the name of the COMPONENT GROUP ++ // the current COMPONENT belongs to. ++ std::string groupVar = "CPACK_COMPONENT_" + ++ cmSystemTools::UpperCase(componentName) + "_GROUP"; ++ if (NULL != GetOption(groupVar.c_str())) ++ { ++ return std::string(GetOption(groupVar.c_str())); ++ } ++ else ++ { ++ return componentName; ++ } ++ } ++ ++ +diff --git a/Source/CPack/cmCPackHpkgGenerator.h b/Source/CPack/cmCPackHpkgGenerator.h +new file mode 100644 +index 0000000..ffa803d +--- /dev/null ++++ b/Source/CPack/cmCPackHpkgGenerator.h +@@ -0,0 +1,82 @@ ++/*============================================================================ ++ CMake - Cross Platform Makefile Generator ++ Copyright 2000-2013 Kitware, Inc. ++ ++ Distributed under the OSI-approved BSD License (the "License"); ++ see accompanying file Copyright.txt for details. ++ ++ This software is distributed WITHOUT ANY WARRANTY; without even the ++ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++ See the License for more information. ++============================================================================*/ ++ ++#ifndef cmCPackHpkgGenerator_h ++#define cmCPackHpkgGenerator_h ++ ++ ++#include "cmCPackGenerator.h" ++ ++/** \class cmCPackHpkgGenerator ++ * \brief A generator for Haiku packages ++ * ++ */ ++class cmCPackHpkgGenerator : public cmCPackGenerator ++{ ++public: ++ cmCPackTypeMacro(cmCPackHpkgGenerator, cmCPackGenerator); ++ ++ /** ++ * Construct generator ++ */ ++ cmCPackHpkgGenerator(); ++ virtual ~cmCPackHpkgGenerator(); ++ ++ static bool CanGenerate() ++ { ++#ifdef __HAIKU__ ++ return true; ++#else ++ // Sorry! Need the "package" tool from Haiku! ++ return false; ++#endif ++ } ++ ++protected: ++ virtual int InitializeInternal(); ++ /** ++ * This method factors out the work done in component packaging case. ++ */ ++ int PackageOnePack(std::string initialToplevel, std::string packageName); ++ /** ++ * The method used to package files when component ++ * install is used. This will create one ++ * archive for each component group. ++ */ ++ int PackageComponents(bool ignoreGroup); ++ /** ++ * Special case of component install where all ++ * components will be put in a single installer. ++ */ ++ int PackageComponentsAllInOne(); ++ virtual int PackageFiles(); ++ virtual const char* GetOutputExtension() { return ".hpkg"; } ++ virtual enum CPackSetDestdirSupport SupportsSetDestdir() const ++ { ++ return SETDESTDIR_UNSUPPORTED; ++ } ++ ++ virtual bool SupportsAbsoluteDestination() const ++ { ++ return false; ++ } ++ virtual bool SupportsComponentInstallation() const; ++ virtual std::string GetComponentInstallDirNameSuffix( ++ const std::string& componentName); ++ ++private: ++ int createHpkg(std::string packageName = ""); ++ std::vector packageFiles; ++ ++}; ++ ++#endif +-- +1.8.3.4 + + +From 85631af98a7204959db7cf8e9abedc52b1b7c2d6 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Tue, 12 Nov 2013 15:15:33 +0100 +Subject: Remove remaining references to "common" directory. + + +diff --git a/Modules/Platform/Haiku.cmake b/Modules/Platform/Haiku.cmake +index 825f851..a3ebe24 100644 +--- a/Modules/Platform/Haiku.cmake ++++ b/Modules/Platform/Haiku.cmake +@@ -53,14 +53,12 @@ else() + endif() + + list(APPEND CMAKE_SYSTEM_PREFIX_PATH +- /boot/common/non-packaged +- /boot/common ++ /boot/system/non-packaged + /boot/system + ) + + LIST(APPEND CMAKE_HAIKU_COMMON_INCLUDE_DIRECTORIES +- /boot/common/non-packaged/develop/headers${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} +- /boot/common/develop/headers${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} ++ /boot/system/non-packaged/develop/headers${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} + /boot/system/develop/headers/os + /boot/system/develop/headers/os/app + /boot/system/develop/headers/os/device +@@ -108,8 +106,7 @@ LIST(APPEND CMAKE_HAIKU_CXX_INCLUDE_DIRECTORIES + LIST(APPEND CMAKE_SYSTEM_INCLUDE_PATH ${CMAKE_HAIKU_C_INCLUDE_DIRECTORIES}) + + LIST(APPEND CMAKE_HAIKU_DEVELOP_LIB_DIRECTORIES +- /boot/common/non-packaged/develop/lib${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} +- /boot/common/develop/lib${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} ++ /boot/system/non-packaged/develop/lib${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} + /boot/system/develop/lib${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} + ) + +@@ -120,6 +117,6 @@ LIST(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES + LIST(APPEND CMAKE_SYSTEM_LIBRARY_PATH ${CMAKE_HAIKU_DEVELOP_LIB_DIRECTORIES}) + + if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) +- set(CMAKE_INSTALL_PREFIX "/boot/common" CACHE PATH ++ set(CMAKE_INSTALL_PREFIX "/boot/system" CACHE PATH + "Install path prefix, prepended onto install directories." FORCE) + endif() +-- +1.8.3.4 + + +From de31f720462b7589a7c44ca8c13a39abbd7f2191 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Tue, 12 Nov 2013 15:48:13 +0100 +Subject: Fix compiler detection when distcc is involved + +cmake will set CMAKE_CXX_COMPILER to "distcc" and put the actual compiler +into another variable, with other arguments. Append CMAKE_CXX_COMPILER_ARG1 +to our compiler invocation to take this into account. + +diff --git a/Modules/Platform/Haiku.cmake b/Modules/Platform/Haiku.cmake +index a3ebe24..dd4c55e 100644 +--- a/Modules/Platform/Haiku.cmake ++++ b/Modules/Platform/Haiku.cmake +@@ -21,18 +21,25 @@ set(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic") + # "/boot/system/develop/lib//", which we assume to be the secondary + # architecture specific subdirectory and extract the name of the architecture + # accordingly. +-set(__HAIKU_COMPILER ${CMAKE_C_COMPILER}) + +-if(NOT __HAIKU_COMPILER) +- set(__HAIKU_COMPILER ${CMAKE_CXX_COMPILER}) ++# First of all, find a C or C++ compiler we can run. The "arg1" is necessary ++# here for compilers such as "distcc gcc-x86" or "ccache gcc-x86" ++# TODO See CMakeDetermineCompilerId.cmake for some more things we may want to do. ++if(CMAKE_C_COMPILER) ++ set(__HAIKU_COMPILER ${CMAKE_C_COMPILER}) ++ string (STRIP "${CMAKE_C_COMPILER_ARG1}" __HAIKU_COMPILER_FLAGS) ++else() ++ set(__HAIKU_COMPILER ${CMAKE_CXX_COMPILER}) ++ string (STRIP "${CMAKE_CXX_COMPILER_ARG1}" __HAIKU_COMPILER_FLAGS) + endif() + + execute_process( +- COMMAND ${__HAIKU_COMPILER} -print-search-dirs ++ COMMAND ${__HAIKU_COMPILER} ${__HAIKU_COMPILER_FLAGS} -print-search-dirs + OUTPUT_VARIABLE _HAIKU_SEARCH_DIRS ++ RESULT_VARIABLE _HAIKU_SEARCH_DIRS_FOUND + OUTPUT_STRIP_TRAILING_WHITESPACE) + +-string(REGEX MATCH ".*\nlibraries: =?([^\n]*:)?/boot/system/develop/lib/([^/]*)/(:[^\n]*)?\n.*" _dummy "\n${_HAIKU_SEARCH_DIRS}\n") ++string(REGEX MATCH "libraries: =?([^\n]*:)?/boot/system/develop/lib/([^/]*)/(:[^\n]*)?" _dummy "${_HAIKU_SEARCH_DIRS}") + set(CMAKE_HAIKU_SECONDARY_ARCH "${CMAKE_MATCH_2}") + + if(NOT CMAKE_HAIKU_SECONDARY_ARCH) +-- +1.8.3.4 + + +From 106b40a8444dde739ac5295b785474b7ca13ebb7 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Fri, 22 Nov 2013 17:49:55 +0100 +Subject: CPack: fix architecture detection and packager check + +CPack can't access CMake compiler settings directly, as it is run in a +different context. Try getting data we export ourselves from the +platform script, and when that doesn't work, fail with a message. + +diff --git a/Modules/CPackHpkg.cmake b/Modules/CPackHpkg.cmake +index 3308889..9b6917f 100644 +--- a/Modules/CPackHpkg.cmake ++++ b/Modules/CPackHpkg.cmake +@@ -197,11 +197,11 @@ endif() + + # Architecture: (mandatory) + if(NOT CPACK_HAIKU_PACKAGE_ARCHITECTURE) +- if(CMAKE_C_COMPILER_VERSION VERSION_LESS 3.0) +- set(CPACK_HAIKU_PACKAGE_ARCHITECTURE "x86_gcc2") +- else() +- set(CPACK_HAIKU_PACKAGE_ARCHITECTURE $ENV{BE_HOST_CPU}) ++ if(NOT CMAKE_HAIKU_ARCHITECTURE) ++ message(FATAL_ERROR "CPackHpkg: Please set CPACK_HAIKU_PACKAGE_ARCHITECTURE or CMAKE_HAIKU_ARCHITECTURE") + endif() ++ ++ set(CPACK_HAIKU_PACKAGE_ARCHITECTURE "${CMAKE_HAIKU_ARCHITECTURE}") + endif() + + # have a look at get_property(result GLOBAL PROPERTY ENABLED_FEATURES), +@@ -216,9 +216,9 @@ endif() + # Maintainer: (mandatory) + if(NOT CPACK_HAIKU_PACKAGE_PACKAGER) + if(NOT CPACK_PACKAGE_CONTACT) +- message(FATAL_ERROR "CPackHpkg: Haiku package requires a maintainer, set CPACK_PACKAGE_CONTACT or CPACK_HAIKU_PACKAGE_PACKAGER") ++ message(FATAL_ERROR "CPackHpkg: Haiku package requires a packager, set CPACK_PACKAGE_CONTACT or CPACK_HAIKU_PACKAGE_PACKAGER") + endif() +- set(CPACK_HAIKU_PACKAGE_MAINTAINER ${CPACK_PACKAGE_PACKAGER}) ++ set(CPACK_HAIKU_PACKAGE_PACKAGER ${CPACK_PACKAGE_CONTACT}) + endif() + + # Vendor: (mandatory) +diff --git a/Modules/Platform/Haiku.cmake b/Modules/Platform/Haiku.cmake +index dd4c55e..36576d1 100644 +--- a/Modules/Platform/Haiku.cmake ++++ b/Modules/Platform/Haiku.cmake +@@ -39,7 +39,7 @@ execute_process( + RESULT_VARIABLE _HAIKU_SEARCH_DIRS_FOUND + OUTPUT_STRIP_TRAILING_WHITESPACE) + +-string(REGEX MATCH "libraries: =?([^\n]*:)?/boot/system/develop/lib/([^/]*)/(:[^\n]*)?" _dummy "${_HAIKU_SEARCH_DIRS}") ++string(REGEX MATCH "libraries: =?([^\n]*:)?/boot/system/develop/lib/([^/]*)/[:^\n]" _dummy "${_HAIKU_SEARCH_DIRS}") + set(CMAKE_HAIKU_SECONDARY_ARCH "${CMAKE_MATCH_2}") + + if(NOT CMAKE_HAIKU_SECONDARY_ARCH) +@@ -59,6 +59,14 @@ else() + set(CMAKE_CXX_LIBRARY_ARCHITECTURE ${CMAKE_HAIKU_SECONDARY_ARCH}) + endif() + ++if(CMAKE_C_COMPILER_VERSION) ++ if(CMAKE_C_COMPILER_VERSION VERSION_LESS 3.0) ++ set(CMAKE_HAIKU_ARCHITECTURE "x86_gcc2") ++ else() ++ set(CMAKE_HAIKU_ARCHITECTURE "$ENV{BE_HOST_CPU}") ++ endif() ++endif() ++ + list(APPEND CMAKE_SYSTEM_PREFIX_PATH + /boot/system/non-packaged + /boot/system +-- +1.8.3.4 + + +From 876c0bffbbdf5c77ebc5f072f025e8cc3f6d0828 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 5 Jan 2014 22:24:23 +0100 +Subject: Make sure the extraction of secondary arch works + +Sometimes the string didn't end with a newline, leading to misdetection +of the secondary arch. Should fix use of CMake to build hybrid packages. + +diff --git a/Modules/Platform/Haiku.cmake b/Modules/Platform/Haiku.cmake +index 36576d1..3d06566 100644 +--- a/Modules/Platform/Haiku.cmake ++++ b/Modules/Platform/Haiku.cmake +@@ -39,7 +39,7 @@ execute_process( + RESULT_VARIABLE _HAIKU_SEARCH_DIRS_FOUND + OUTPUT_STRIP_TRAILING_WHITESPACE) + +-string(REGEX MATCH "libraries: =?([^\n]*:)?/boot/system/develop/lib/([^/]*)/[:^\n]" _dummy "${_HAIKU_SEARCH_DIRS}") ++string(REGEX MATCH "libraries: =?([^\n]*:)?/boot/system/develop/lib/([^/]*)/[:\n]" _dummy "${_HAIKU_SEARCH_DIRS}\n") + set(CMAKE_HAIKU_SECONDARY_ARCH "${CMAKE_MATCH_2}") + + if(NOT CMAKE_HAIKU_SECONDARY_ARCH) +-- +1.8.3.4 + + +From 3a261e325314152375f3ec0a670c96416562847f Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 5 Jan 2014 22:46:37 +0100 +Subject: Fix search directories for SDL image,mixer,ttf. + +The path starting with "include" should probably be removed, but I fear +of breaking other platforms. + +diff --git a/Modules/FindSDL_image.cmake b/Modules/FindSDL_image.cmake +index 30d74ac..5685434 100644 +--- a/Modules/FindSDL_image.cmake ++++ b/Modules/FindSDL_image.cmake +@@ -40,7 +40,7 @@ find_path(SDL_IMAGE_INCLUDE_DIR SDL_image.h + HINTS + ENV SDLIMAGEDIR + ENV SDLDIR +- PATH_SUFFIXES include/SDL include/SDL12 include/SDL11 include ++ PATH_SUFFIXES SDL include/SDL include/SDL12 include/SDL11 include + ) + + if(NOT SDL_IMAGE_LIBRARY AND SDLIMAGE_LIBRARY) +diff --git a/Modules/FindSDL_mixer.cmake b/Modules/FindSDL_mixer.cmake +index 8ca7cc3..80b7b60 100644 +--- a/Modules/FindSDL_mixer.cmake ++++ b/Modules/FindSDL_mixer.cmake +@@ -40,7 +40,7 @@ find_path(SDL_MIXER_INCLUDE_DIR SDL_mixer.h + HINTS + ENV SDLMIXERDIR + ENV SDLDIR +- PATH_SUFFIXES include/SDL include/SDL12 include/SDL11 include ++ PATH_SUFFIXES SDL include/SDL include/SDL12 include/SDL11 include + ) + + if(NOT SDL_MIXER_LIBRARY AND SDLMIXER_LIBRARY) +diff --git a/Modules/FindSDL_ttf.cmake b/Modules/FindSDL_ttf.cmake +index bb0ca91..91577d6 100644 +--- a/Modules/FindSDL_ttf.cmake ++++ b/Modules/FindSDL_ttf.cmake +@@ -40,7 +40,7 @@ find_path(SDL_TTF_INCLUDE_DIR SDL_ttf.h + HINTS + ENV SDLTTFDIR + ENV SDLDIR +- PATH_SUFFIXES include/SDL include/SDL12 include/SDL11 include ++ PATH_SUFFIXES SDL include/SDL include/SDL12 include/SDL11 include + ) + + if(NOT SDL_TTF_LIBRARY AND SDLTTF_LIBRARY) +-- +1.8.3.4 + + +From bedbd8de5e3b520b82bfd8c69c6634db2e0a17f4 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Mon, 13 Jan 2014 20:35:48 +0100 +Subject: FindFreetype: fix search path. + + +diff --git a/Modules/FindFreetype.cmake b/Modules/FindFreetype.cmake +index 1df2399..31346a0 100644 +--- a/Modules/FindFreetype.cmake ++++ b/Modules/FindFreetype.cmake +@@ -61,7 +61,7 @@ find_path(FREETYPE_INCLUDE_DIR_freetype2 freetype/config/ftheader.h + /usr/local/X11R6 + /usr/local/X11 + /usr/freeware +- PATH_SUFFIXES include/freetype2 include ++ PATH_SUFFIXES include/freetype2 include freetype2 + ) + + find_library(FREETYPE_LIBRARY +-- +1.8.3.4 + + +From 1b8453c65fdfddc529097fad179ded9e699eef90 Mon Sep 17 00:00:00 2001 +From: Rene Gollent +Date: Mon, 3 Mar 2014 16:56:33 -0500 +Subject: Rework CPU frequency calculation to use newer topology APIs. + + +diff --git a/Source/kwsys/SystemInformation.cxx b/Source/kwsys/SystemInformation.cxx +index 9e2a93d..4b5ad8f 100644 +--- a/Source/kwsys/SystemInformation.cxx ++++ b/Source/kwsys/SystemInformation.cxx +@@ -4354,8 +4354,25 @@ bool SystemInformationImplementation::QueryHaikuInfo() + system_info info; + get_system_info(&info); + ++ uint32 topologyNodeCount = 0; ++ cpu_topology_node_info* topology = NULL; ++ get_cpu_topology_info(NULL, &topologyNodeCount); ++ if (topologyNodeCount != 0) ++ topology = new cpu_topology_node_info[topologyNodeCount]; ++ get_cpu_topology_info(topology, &topologyNodeCount); ++ ++ uint64 cpuFrequency = 0; ++ for (uint32 i = 0; i < topologyNodeCount; i++) { ++ if (topology[i].type == B_TOPOLOGY_CORE) { ++ cpuFrequency = topology[i].data.core.default_frequency; ++ break; ++ } ++ } ++ ++ delete[] topology; ++ + this->NumberOfPhysicalCPU = info.cpu_count; +- this->CPUSpeedInMHz = info.cpu_clock_speed / 1000000.0F; ++ this->CPUSpeedInMHz = cpuFrequency / 1000000.0f; + + // Physical Memory + this->TotalPhysicalMemory = (info.max_pages * B_PAGE_SIZE) / (1024 * 1024) ; +-- +1.8.3.4 + diff --git a/dev-util/cmake/patches/cmake-2.8.4.patch b/dev-util/cmake/patches/cmake-2.8.4.patch deleted file mode 100644 index 910b48e92..000000000 --- a/dev-util/cmake/patches/cmake-2.8.4.patch +++ /dev/null @@ -1,116 +0,0 @@ -diff -urN cmake-2.8.4/Modules/FindGLUT.cmake cmake-2.8.4-haiku/Modules/FindGLUT.cmake ---- cmake-2.8.4/Modules/FindGLUT.cmake 2011-02-15 17:47:27.017301504 +0000 -+++ cmake-2.8.4-haiku/Modules/FindGLUT.cmake 2011-04-26 07:50:24.890241024 +0000 -@@ -46,12 +46,14 @@ - /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/ - ) -- -+ IF(NOT BEOS) - FIND_LIBRARY( GLUT_Xi_LIBRARY Xi - /usr/openwin/lib - ) -@@ -59,7 +61,7 @@ - FIND_LIBRARY( GLUT_Xmu_LIBRARY Xmu - /usr/openwin/lib - ) -- -+ ENDIF(NOT BEOS) - ENDIF (APPLE) - - ENDIF (WIN32) -@@ -69,12 +71,18 @@ - IF(GLUT_glut_LIBRARY) - # 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. -+ IF(BEOS) -+ SET( GLUT_LIBRARIES -+ ${GLUT_glut_LIBRARY} -+ ) -+ ELSE(BEOS) - SET( GLUT_LIBRARIES - ${GLUT_glut_LIBRARY} - ${GLUT_Xmu_LIBRARY} - ${GLUT_Xi_LIBRARY} - ${GLUT_cocoa_LIBRARY} - ) -+ ENDIF(BEOS) - SET( GLUT_FOUND "YES" ) - - #The following deprecated settings are for backwards compatibility with CMake1.4 -@@ -84,9 +92,16 @@ - ENDIF(GLUT_glut_LIBRARY) - ENDIF(GLUT_INCLUDE_DIR) - -+IF(BEOS) -+MARK_AS_ADVANCED( -+ GLUT_INCLUDE_DIR -+ GLUT_glut_LIBRARY -+ ) -+ELSE(BEOS) - MARK_AS_ADVANCED( - GLUT_INCLUDE_DIR - GLUT_glut_LIBRARY - GLUT_Xmu_LIBRARY - GLUT_Xi_LIBRARY - ) -+ENDIF(BEOS) -diff -urN cmake-2.8.4/Modules/FindLua51.cmake cmake-2.8.4-haiku/Modules/FindLua51.cmake ---- cmake-2.8.4/Modules/FindLua51.cmake 2011-02-15 17:47:27.019660800 +0000 -+++ cmake-2.8.4-haiku/Modules/FindLua51.cmake 2011-04-26 07:50:24.944504832 +0000 -@@ -57,13 +57,13 @@ - - IF(LUA_LIBRARY) - # include the math library for Unix -- IF(UNIX AND NOT APPLE) -+ IF(UNIX AND NOT APPLE AND NOT BEOS) - 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 - ELSE(UNIX AND NOT APPLE) - SET( LUA_LIBRARIES "${LUA_LIBRARY}" CACHE STRING "Lua Libraries") -- ENDIF(UNIX AND NOT APPLE) -+ ENDIF(UNIX AND NOT APPLE AND NOT BEOS) - ENDIF(LUA_LIBRARY) - - INCLUDE(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) -diff -urN cmake-2.8.4/Modules/FindOpenGL.cmake cmake-2.8.4-haiku/Modules/FindOpenGL.cmake ---- cmake-2.8.4/Modules/FindOpenGL.cmake 2011-02-15 17:47:27.020447232 +0000 -+++ cmake-2.8.4-haiku/Modules/FindOpenGL.cmake 2011-04-26 07:50:25.026214400 +0000 -@@ -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.4/bootstrap cmake-2.8.4-haiku/bootstrap ---- cmake-2.8.4/bootstrap 2011-02-15 17:47:26.054001664 +0000 -+++ cmake-2.8.4-haiku/bootstrap 2011-04-26 07:50:25.222035968 +0000 -@@ -142,7 +142,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 --git a/dev-util/cmake/patches/cmake-2.8.5.patch b/dev-util/cmake/patches/cmake-2.8.5.patch deleted file mode 100644 index e99aeb04f..000000000 --- a/dev-util/cmake/patches/cmake-2.8.5.patch +++ /dev/null @@ -1,521 +0,0 @@ -diff -ur cmake-2.8.5_orig/bootstrap cmake-2.8.5/bootstrap ---- cmake-2.8.5_orig/bootstrap 2011-07-08 12:21:43.031981568 +0000 -+++ cmake-2.8.5/bootstrap 2011-07-09 17:59:50.059768832 +0000 -@@ -142,7 +142,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 -ur cmake-2.8.5_orig/Modules/CheckForPthreads.c cmake-2.8.5/Modules/CheckForPthreads.c ---- cmake-2.8.5_orig/Modules/CheckForPthreads.c 2011-07-08 12:21:44.040632320 +0000 -+++ cmake-2.8.5/Modules/CheckForPthreads.c 2011-07-09 17:59:50.060817408 +0000 -@@ -16,7 +16,7 @@ - pthread_create(&tid[0], 0, runner, (void*)1); - pthread_create(&tid[1], 0, runner, (void*)2); - --#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__) // (no usleep on BeOS 5.) -+#if defined(__BEOS__) && !defined(__ZETA__) // (no usleep on BeOS 5.) - usleep(1); // for strange behavior on single-processor sun - #endif - -diff -ur cmake-2.8.5_orig/Modules/CMakeFortranCompilerId.F.in cmake-2.8.5/Modules/CMakeFortranCompilerId.F.in ---- cmake-2.8.5_orig/Modules/CMakeFortranCompilerId.F.in 2011-07-08 12:21:44.047448064 +0000 -+++ cmake-2.8.5/Modules/CMakeFortranCompilerId.F.in 2011-07-09 17:59:50.062128128 +0000 -@@ -74,12 +74,8 @@ - PRINT *, 'INFO:platform[IRIX]' - #elif defined(__hpux) || defined(__hpux__) - PRINT *, 'INFO:platform[HP-UX]' --#elif defined(__HAIKU) || defined(__HAIKU__) || defined(_HAIKU) -+#elif defined(__HAIKU__) - PRINT *, 'INFO:platform[Haiku]' --# if 0 --! Haiku also defines __BEOS__ so we must --! put it prior to the check for __BEOS__ --# endif - #elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) - PRINT *, 'INFO:platform[BeOS]' - #elif defined(__QNX__) || defined(__QNXNTO__) -diff -ur cmake-2.8.5_orig/Modules/CMakePlatformId.h.in cmake-2.8.5/Modules/CMakePlatformId.h.in ---- cmake-2.8.5_orig/Modules/CMakePlatformId.h.in 2011-07-08 12:21:44.048758784 +0000 -+++ cmake-2.8.5/Modules/CMakePlatformId.h.in 2011-07-09 17:59:50.063176704 +0000 -@@ -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" -diff -ur cmake-2.8.5_orig/Modules/FindGLUT.cmake cmake-2.8.5/Modules/FindGLUT.cmake ---- cmake-2.8.5_orig/Modules/FindGLUT.cmake 2011-07-08 12:21:44.063438848 +0000 -+++ cmake-2.8.5/Modules/FindGLUT.cmake 2011-07-09 18:02:18.662437888 +0000 -@@ -46,20 +46,22 @@ - /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(NOT BEOS AND NOT HAIKU) - ENDIF (APPLE) - - ENDIF (WIN32) -@@ -69,12 +71,18 @@ - IF(GLUT_glut_LIBRARY) - # 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(BEOS OR HAIKU) -+ SET( GLUT_LIBRARIES -+ ${GLUT_glut_LIBRARY} -+ ${GLUT_Xmu_LIBRARY} -+ ${GLUT_Xi_LIBRARY} -+ ${GLUT_cocoa_LIBRARY} -+ ) -+ ENDIF(BEOS OR HAIKU) - SET( GLUT_FOUND "YES" ) - - #The following deprecated settings are for backwards compatibility with CMake1.4 -@@ -84,9 +92,16 @@ - ENDIF(GLUT_glut_LIBRARY) - ENDIF(GLUT_INCLUDE_DIR) - --MARK_AS_ADVANCED( -- GLUT_INCLUDE_DIR -- GLUT_glut_LIBRARY -- GLUT_Xmu_LIBRARY -- GLUT_Xi_LIBRARY -- ) -+IF(BEOS OR HAIKU) -+ MARK_AS_ADVANCED( -+ GLUT_INCLUDE_DIR -+ GLUT_glut_LIBRARY -+ ) -+ELSE(BEOS OR HAIKU) -+ MARK_AS_ADVANCED( -+ GLUT_INCLUDE_DIR -+ GLUT_glut_LIBRARY -+ GLUT_Xmu_LIBRARY -+ GLUT_Xi_LIBRARY -+ ) -+ENDIF(BEOS OR HAIKU) -diff -ur cmake-2.8.5_orig/Modules/FindLua51.cmake cmake-2.8.5/Modules/FindLua51.cmake ---- cmake-2.8.5_orig/Modules/FindLua51.cmake 2011-07-08 12:21:44.066060288 +0000 -+++ cmake-2.8.5/Modules/FindLua51.cmake 2011-07-09 17:59:50.090439680 +0000 -@@ -57,13 +57,13 @@ - - 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 - ELSE(UNIX AND NOT APPLE) - SET( LUA_LIBRARIES "${LUA_LIBRARY}" CACHE STRING "Lua Libraries") -- ENDIF(UNIX AND NOT APPLE) -+ ENDIF(UNIX AND NOT APPLE AND NOT BEOS AND NOT HAIKU) - ENDIF(LUA_LIBRARY) - - INCLUDE(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) -diff -ur cmake-2.8.5_orig/Modules/FindOpenGL.cmake cmake-2.8.5/Modules/FindOpenGL.cmake ---- cmake-2.8.5_orig/Modules/FindOpenGL.cmake 2011-07-08 12:21:44.066846720 +0000 -+++ cmake-2.8.5/Modules/FindOpenGL.cmake 2011-07-09 17:59:50.091488256 +0000 -@@ -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 -ur cmake-2.8.5_orig/Modules/Platform/Haiku.cmake cmake-2.8.5/Modules/Platform/Haiku.cmake ---- cmake-2.8.5_orig/Modules/Platform/Haiku.cmake 2011-07-08 12:21:44.016777216 +0000 -+++ cmake-2.8.5/Modules/Platform/Haiku.cmake 2011-07-10 23:52:01.025952256 +0000 -@@ -1,18 +1,25 @@ --SET(BEOS 1) -+SET(HAIKU 1) -+SET(UNIX 1) - --SET(CMAKE_DL_LIBS root be) -+SET(CMAKE_DL_LIBS "") - SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") --SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-nostart") -+SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") - 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") - --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_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 -+ ) - LIST(APPEND CMAKE_SYSTEM_INCLUDE_PATH /boot/develop/headers/3rdparty) - LIST(APPEND CMAKE_SYSTEM_LIBRARY_PATH /boot/develop/lib/x86) - -diff -ur cmake-2.8.5_orig/Source/cmCTest.cxx cmake-2.8.5/Source/cmCTest.cxx ---- cmake-2.8.5_orig/Source/cmCTest.cxx 2011-07-08 12:21:45.037486592 +0000 -+++ cmake-2.8.5/Source/cmCTest.cxx 2011-07-09 17:59:50.095682560 +0000 -@@ -53,7 +53,7 @@ - #include - #include - --#if defined(__BEOS__) && !defined(__HAIKU__) -+#if defined(__BEOS__) - #include /* disable_debugger() API. */ - #endif - -diff -ur cmake-2.8.5_orig/Source/cmExportCommand.cxx cmake-2.8.5/Source/cmExportCommand.cxx ---- cmake-2.8.5_orig/Source/cmExportCommand.cxx 2011-07-08 12:21:45.046923776 +0000 -+++ cmake-2.8.5/Source/cmExportCommand.cxx 2011-07-09 18:36:22.770179072 +0000 -@@ -20,7 +20,8 @@ - #include "cmExportBuildFileGenerator.h" - - #if defined(__HAIKU__) --#include -+#include -+#include - #endif - - cmExportCommand::cmExportCommand() -@@ -297,14 +298,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 -ur cmake-2.8.5_orig/Source/cmFindPackageCommand.cxx cmake-2.8.5/Source/cmFindPackageCommand.cxx ---- cmake-2.8.5_orig/Source/cmFindPackageCommand.cxx 2011-07-08 12:21:46.051118080 +0000 -+++ cmake-2.8.5/Source/cmFindPackageCommand.cxx 2011-07-09 18:26:27.005242880 +0000 -@@ -19,7 +19,9 @@ - #endif - - #if defined(__HAIKU__) --#include -+#include -+#include -+#include - #endif - - void cmFindPackageNeedBackwardsCompatibility(const std::string& variable, -@@ -1292,12 +1294,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 -ur cmake-2.8.5_orig/Source/cmLocalGenerator.cxx cmake-2.8.5/Source/cmLocalGenerator.cxx ---- cmake-2.8.5_orig/Source/cmLocalGenerator.cxx 2011-07-08 12:21:46.065273856 +0000 -+++ cmake-2.8.5/Source/cmLocalGenerator.cxx 2011-07-09 18:30:30.565182464 +0000 -@@ -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 -ur cmake-2.8.5_orig/Source/CPack/cmCPackGenerator.cxx cmake-2.8.5/Source/CPack/cmCPackGenerator.cxx ---- cmake-2.8.5_orig/Source/CPack/cmCPackGenerator.cxx 2011-07-08 12:21:47.017563648 +0000 -+++ cmake-2.8.5/Source/CPack/cmCPackGenerator.cxx 2011-07-09 18:33:59.244842496 +0000 -@@ -27,7 +27,8 @@ - #include - - #if defined(__HAIKU__) --#include -+#include -+#include - #endif - - //---------------------------------------------------------------------- -@@ -1206,10 +1207,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 -ur cmake-2.8.5_orig/Source/CPack/cmCPackGeneratorFactory.cxx cmake-2.8.5/Source/CPack/cmCPackGeneratorFactory.cxx ---- cmake-2.8.5_orig/Source/CPack/cmCPackGeneratorFactory.cxx 2011-07-08 12:21:47.017825792 +0000 -+++ cmake-2.8.5/Source/CPack/cmCPackGeneratorFactory.cxx 2011-07-09 17:59:50.096731136 +0000 -@@ -32,7 +32,7 @@ - #endif - - #if !defined(_WIN32) && !defined(__APPLE__) \ -- && !defined(__QNXNTO__) && !defined(__BEOS__) -+ && !defined(__QNXNTO__) && !defined(__BEOS__) && !defined(__HAIKU__) - # include "cmCPackDebGenerator.h" - # include "cmCPackRPMGenerator.h" - #endif -@@ -73,7 +73,7 @@ - cmCPackOSXX11Generator::CreateGenerator); - #endif - #if !defined(_WIN32) && !defined(__APPLE__) \ -- && !defined(__QNXNTO__) && !defined(__BEOS__) -+ && !defined(__QNXNTO__) && !defined(__BEOS__) && !defined(__HAIKU__) - this->RegisterGenerator("DEB", "Debian packages", - cmCPackDebGenerator::CreateGenerator); - this->RegisterGenerator("RPM", "RPM packages", -diff -ur cmake-2.8.5_orig/Source/kwsys/ProcessUNIX.c cmake-2.8.5/Source/kwsys/ProcessUNIX.c ---- cmake-2.8.5_orig/Source/kwsys/ProcessUNIX.c 2011-07-08 12:21:48.042729472 +0000 -+++ cmake-2.8.5/Source/kwsys/ProcessUNIX.c 2011-07-09 17:59:50.100401152 +0000 -@@ -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 -ur cmake-2.8.5_orig/Source/kwsys/SystemTools.cxx cmake-2.8.5/Source/kwsys/SystemTools.cxx ---- cmake-2.8.5_orig/Source/kwsys/SystemTools.cxx 2011-07-08 12:21:48.044826624 +0000 -+++ cmake-2.8.5/Source/kwsys/SystemTools.cxx 2011-07-09 17:59:50.103284736 +0000 -@@ -150,7 +150,7 @@ - #include - #endif - --#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__) -+#if defined(__BEOS__) && !defined(__ZETA__) - #include - #include - -diff -ur cmake-2.8.5_orig/Source/kwsys/testDynamicLoader.cxx cmake-2.8.5/Source/kwsys/testDynamicLoader.cxx ---- cmake-2.8.5_orig/Source/kwsys/testDynamicLoader.cxx 2011-07-08 12:21:49.045613056 +0000 -+++ cmake-2.8.5/Source/kwsys/testDynamicLoader.cxx 2011-07-09 17:59:50.105119744 +0000 -@@ -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 -ur cmake-2.8.5_orig/Source/kwsys/testProcess.c cmake-2.8.5/Source/kwsys/testProcess.c ---- cmake-2.8.5_orig/Source/kwsys/testProcess.c 2011-07-08 12:21:49.046399488 +0000 -+++ cmake-2.8.5/Source/kwsys/testProcess.c 2011-07-09 17:59:50.108265472 +0000 -@@ -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 -ur cmake-2.8.5_orig/Tests/Complex/Library/CMakeLists.txt cmake-2.8.5/Tests/Complex/Library/CMakeLists.txt ---- cmake-2.8.5_orig/Tests/Complex/Library/CMakeLists.txt 2011-07-08 12:21:50.003670016 +0000 -+++ cmake-2.8.5/Tests/Complex/Library/CMakeLists.txt 2011-07-09 17:59:50.114294784 +0000 -@@ -52,9 +52,9 @@ - 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(NOT BEOS AND NOT WIN32) -+ENDIF(NOT BEOS AND NOT WIN32 AND NOT HAIKU) - GET_TARGET_PROPERTY(FOO_BAR_VAR CMakeTestCLibraryShared FOO) - IF(${FOO_BAR_VAR} MATCHES "BAR") - ELSE(${FOO_BAR_VAR} MATCHES "BAR") -diff -ur cmake-2.8.5_orig/Tests/ComplexOneConfig/Library/CMakeLists.txt cmake-2.8.5/Tests/ComplexOneConfig/Library/CMakeLists.txt ---- cmake-2.8.5_orig/Tests/ComplexOneConfig/Library/CMakeLists.txt 2011-07-08 12:21:50.007864320 +0000 -+++ cmake-2.8.5/Tests/ComplexOneConfig/Library/CMakeLists.txt 2011-07-09 17:59:50.116654080 +0000 -@@ -52,9 +52,9 @@ - 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(NOT BEOS AND NOT WIN32) -+ENDIF(NOT BEOS AND NOT WIN32 AND NOT HAIKU) - GET_TARGET_PROPERTY(FOO_BAR_VAR CMakeTestCLibraryShared FOO) - IF(${FOO_BAR_VAR} MATCHES "BAR") - ELSE(${FOO_BAR_VAR} MATCHES "BAR") -diff -ur cmake-2.8.5_orig/Tests/ComplexRelativePaths/Library/CMakeLists.txt cmake-2.8.5/Tests/ComplexRelativePaths/Library/CMakeLists.txt ---- cmake-2.8.5_orig/Tests/ComplexRelativePaths/Library/CMakeLists.txt 2011-07-08 12:21:50.012320768 +0000 -+++ cmake-2.8.5/Tests/ComplexRelativePaths/Library/CMakeLists.txt 2011-07-09 17:59:50.119013376 +0000 -@@ -52,9 +52,9 @@ - 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(NOT BEOS AND NOT WIN32) -+ENDIF(NOT BEOS AND NOT WIN32 AND NOT HAIKU) - GET_TARGET_PROPERTY(FOO_BAR_VAR CMakeTestCLibraryShared FOO) - IF(${FOO_BAR_VAR} MATCHES "BAR") - ELSE(${FOO_BAR_VAR} MATCHES "BAR") -diff -ur cmake-2.8.5_orig/Utilities/cmcurl/CMake/CurlTests.c cmake-2.8.5/Utilities/cmcurl/CMake/CurlTests.c ---- cmake-2.8.5_orig/Utilities/cmcurl/CMake/CurlTests.c 2011-07-08 12:21:54.052953088 +0000 -+++ cmake-2.8.5/Utilities/cmcurl/CMake/CurlTests.c 2011-07-09 17:59:50.122421248 +0000 -@@ -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 -ur cmake-2.8.5_orig/Utilities/cmcurl/select.c cmake-2.8.5/Utilities/cmcurl/select.c ---- cmake-2.8.5_orig/Utilities/cmcurl/select.c 2011-07-08 12:21:55.063176704 +0000 -+++ cmake-2.8.5/Utilities/cmcurl/select.c 2011-07-09 17:59:50.125829120 +0000 -@@ -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 -ur cmake-2.8.5_orig/Utilities/cmzlib/zconf.h cmake-2.8.5/Utilities/cmzlib/zconf.h ---- cmake-2.8.5_orig/Utilities/cmzlib/zconf.h 2011-07-08 12:21:58.054001664 +0000 -+++ cmake-2.8.5/Utilities/cmzlib/zconf.h 2011-07-09 17:59:50.128712704 +0000 -@@ -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 -ur cmake-2.8.5_orig/Utilities/cmzlib/zutil.h cmake-2.8.5/Utilities/cmzlib/zutil.h ---- cmake-2.8.5_orig/Utilities/cmzlib/zutil.h 2011-07-08 12:21:58.054525952 +0000 -+++ cmake-2.8.5/Utilities/cmzlib/zutil.h 2011-07-09 17:59:50.129761280 +0000 -@@ -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.5.patchset b/dev-util/cmake/patches/cmake-2.8.5.patchset deleted file mode 100644 index 40215e05f..000000000 --- a/dev-util/cmake/patches/cmake-2.8.5.patchset +++ /dev/null @@ -1,664 +0,0 @@ -From 63b3bcd0d6804a07fe94d9af0fc7a7810fab538d Mon Sep 17 00:00:00 2001 -From: Ingo Weinhold -Date: Sun, 16 Jun 2013 21:42:39 +0200 -Subject: Haiku specific changes - - -diff --git a/Modules/CMakeFortranCompilerId.F.in b/Modules/CMakeFortranCompilerId.F.in -index 4d25de0..f84852a 100644 ---- a/Modules/CMakeFortranCompilerId.F.in -+++ b/Modules/CMakeFortranCompilerId.F.in -@@ -74,12 +74,8 @@ - PRINT *, 'INFO:platform[IRIX]' - #elif defined(__hpux) || defined(__hpux__) - PRINT *, 'INFO:platform[HP-UX]' --#elif defined(__HAIKU) || defined(__HAIKU__) || defined(_HAIKU) -+#elif defined(__HAIKU__) - PRINT *, 'INFO:platform[Haiku]' --# if 0 --! Haiku also defines __BEOS__ so we must --! put it prior to the check for __BEOS__ --# endif - #elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) - PRINT *, 'INFO:platform[BeOS]' - #elif defined(__QNX__) || defined(__QNXNTO__) -diff --git a/Modules/CMakePlatformId.h.in b/Modules/CMakePlatformId.h.in -index cb3f40a..db98bc3 100644 ---- a/Modules/CMakePlatformId.h.in -+++ b/Modules/CMakePlatformId.h.in -@@ -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" -diff --git a/Modules/CheckForPthreads.c b/Modules/CheckForPthreads.c -index d831078..02526fb 100644 ---- a/Modules/CheckForPthreads.c -+++ b/Modules/CheckForPthreads.c -@@ -16,7 +16,7 @@ int main(int ac, char*av[]){ - pthread_create(&tid[0], 0, runner, (void*)1); - pthread_create(&tid[1], 0, runner, (void*)2); - --#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__) // (no usleep on BeOS 5.) -+#if defined(__BEOS__) && !defined(__ZETA__) // (no usleep on BeOS 5.) - usleep(1); // for strange behavior on single-processor sun - #endif - -diff --git a/Modules/FindGLUT.cmake b/Modules/FindGLUT.cmake -index af88997..8c0a733 100644 ---- a/Modules/FindGLUT.cmake -+++ b/Modules/FindGLUT.cmake -@@ -46,20 +46,22 @@ ELSE (WIN32) - /usr/openwin/include - /opt/graphics/OpenGL/include - /opt/graphics/OpenGL/contrib/libglut -+ /boot/system/develop/headers/os/opengl - ) - - FIND_LIBRARY( GLUT_glut_LIBRARY glut - /usr/openwin/lib - ) -- -- 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(NOT BEOS AND NOT HAIKU) - ENDIF (APPLE) - - ENDIF (WIN32) -@@ -69,12 +71,18 @@ IF(GLUT_INCLUDE_DIR) - IF(GLUT_glut_LIBRARY) - # 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(BEOS OR HAIKU) -+ SET( GLUT_LIBRARIES -+ ${GLUT_glut_LIBRARY} -+ ${GLUT_Xmu_LIBRARY} -+ ${GLUT_Xi_LIBRARY} -+ ${GLUT_cocoa_LIBRARY} -+ ) -+ ENDIF(BEOS OR HAIKU) - SET( GLUT_FOUND "YES" ) - - #The following deprecated settings are for backwards compatibility with CMake1.4 -@@ -84,9 +92,16 @@ IF(GLUT_INCLUDE_DIR) - ENDIF(GLUT_glut_LIBRARY) - ENDIF(GLUT_INCLUDE_DIR) - --MARK_AS_ADVANCED( -- GLUT_INCLUDE_DIR -- GLUT_glut_LIBRARY -- GLUT_Xmu_LIBRARY -- GLUT_Xi_LIBRARY -- ) -+IF(BEOS OR HAIKU) -+ MARK_AS_ADVANCED( -+ GLUT_INCLUDE_DIR -+ GLUT_glut_LIBRARY -+ ) -+ELSE(BEOS OR HAIKU) -+ MARK_AS_ADVANCED( -+ GLUT_INCLUDE_DIR -+ GLUT_glut_LIBRARY -+ GLUT_Xmu_LIBRARY -+ GLUT_Xi_LIBRARY -+ ) -+ENDIF(BEOS OR HAIKU) -diff --git a/Modules/FindLua51.cmake b/Modules/FindLua51.cmake -index 123fd5d..5047fbd 100644 ---- a/Modules/FindLua51.cmake -+++ b/Modules/FindLua51.cmake -@@ -57,13 +57,13 @@ FIND_LIBRARY(LUA_LIBRARY - - 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 - ELSE(UNIX AND NOT APPLE) - SET( LUA_LIBRARIES "${LUA_LIBRARY}" CACHE STRING "Lua Libraries") -- ENDIF(UNIX AND NOT APPLE) -+ ENDIF(UNIX AND NOT APPLE AND NOT BEOS AND NOT HAIKU) - ENDIF(LUA_LIBRARY) - - INCLUDE(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) -diff --git a/Modules/FindOpenGL.cmake b/Modules/FindOpenGL.cmake -index 98d8808..1ac4de6 100644 ---- a/Modules/FindOpenGL.cmake -+++ b/Modules/FindOpenGL.cmake -@@ -80,6 +80,7 @@ ELSE (WIN32) - /usr/share/doc/NVIDIA_GLX-1.0/include - /usr/openwin/share/include - /opt/graphics/OpenGL/include /usr/X11R6/include -+ /boot/system/develop/headers/os/opengl - ) - - FIND_PATH(OPENGL_xmesa_INCLUDE_DIR GL/xmesa.h -diff --git a/Modules/Platform/Haiku.cmake b/Modules/Platform/Haiku.cmake -index 8277a24..7eb0bd5 100644 ---- a/Modules/Platform/Haiku.cmake -+++ b/Modules/Platform/Haiku.cmake -@@ -1,20 +1,121 @@ --SET(BEOS 1) -+# process only once -+IF(HAIKU) -+ RETURN() -+ENDIF(HAIKU) - --SET(CMAKE_DL_LIBS root be) -+SET(HAIKU 1) -+SET(UNIX 1) -+ -+SET(CMAKE_DL_LIBS "") - SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") --SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-nostart") -+SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") - 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") -+ -+# Determine, if the C or C++ compiler is configured for a secondary -+# architecture. If so, that will change the search paths we set below. We check -+# whether the compiler's library search paths contain a -+# "/boot/system/develop/lib//", which we assume to be the secondary -+# architecture specific subdirectory and extract the name of the architecture -+# accordingly. -+SET(HAIKU_COMPILER ${CMAKE_C_COMPILER}) -+IF ("${HAIKU_COMPILER}" STREQUAL "") -+ SET(HAIKU_COMPILER ${CMAKE_CXX_COMPILER}) -+ENDIF ("${HAIKU_COMPILER}" STREQUAL "") -+EXECUTE_PROCESS( -+ COMMAND ${HAIKU_COMPILER} -print-search-dirs -+ COMMAND sed -ne "/^libraries:/!d; s,libraries: =*\\(.*\\):,\\1,; s,:,\\n,gp" -+ COMMAND sed -ne "/\\/boot\\/system\\/develop\\/lib\\/[^\\/]*\\/$/!d; s,.*/\\([^/]*\\)/$,\\1,; p" -+ OUTPUT_VARIABLE CMAKE_HAIKU_SECONDARY_ARCH) -+STRING(STRIP "${CMAKE_HAIKU_SECONDARY_ARCH}" -+ CMAKE_HAIKU_SECONDARY_ARCH) -+ -+IF ("${CMAKE_HAIKU_SECONDARY_ARCH}" STREQUAL "") -+ SET(CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR "") -+ UNSET(CMAKE_HAIKU_SECONDARY_ARCH) -+ELSE ("${CMAKE_HAIKU_SECONDARY_ARCH}" STREQUAL "") -+ SET(CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR "/${CMAKE_HAIKU_SECONDARY_ARCH}") -+ -+ # Override CMAKE_*LIBRARY_ARCHITECTURE. This will cause FIND_LIBRARY to search -+ # the libraries in the correct subdirectory first. It still isn't completely -+ # correct, since the parent directories shouldn't be searched at all. The -+ # primary architecture library might still be found, if there isn't one -+ # installed for the secondary architecture or it is installed in a less -+ # specific location. -+ SET(CMAKE_LIBRARY_ARCHITECTURE ${CMAKE_HAIKU_SECONDARY_ARCH}) -+ SET(CMAKE_C_LIBRARY_ARCHITECTURE ${CMAKE_HAIKU_SECONDARY_ARCH}) -+ SET(CMAKE_CXX_LIBRARY_ARCHITECTURE ${CMAKE_HAIKU_SECONDARY_ARCH}) -+ENDIF ("${CMAKE_HAIKU_SECONDARY_ARCH}" STREQUAL "") -+ -+LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH -+ /boot/common/non-packaged -+ /boot/common -+ /boot/system -+ ) -+ -+LIST(APPEND CMAKE_HAIKU_COMMON_INCLUDE_DIRECTORIES -+ /boot/common/non-packaged/develop/headers${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} -+ /boot/common/develop/headers${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} -+ /boot/system/develop/headers/os -+ /boot/system/develop/headers/os/app -+ /boot/system/develop/headers/os/device -+ /boot/system/develop/headers/os/drivers -+ /boot/system/develop/headers/os/game -+ /boot/system/develop/headers/os/interface -+ /boot/system/develop/headers/os/kernel -+ /boot/system/develop/headers/os/locale -+ /boot/system/develop/headers/os/mail -+ /boot/system/develop/headers/os/media -+ /boot/system/develop/headers/os/midi -+ /boot/system/develop/headers/os/midi2 -+ /boot/system/develop/headers/os/net -+ /boot/system/develop/headers/os/opengl -+ /boot/system/develop/headers/os/storage -+ /boot/system/develop/headers/os/support -+ /boot/system/develop/headers/os/translation -+ /boot/system/develop/headers/os/add-ons/graphics -+ /boot/system/develop/headers/os/add-ons/input_server -+ /boot/system/develop/headers/os/add-ons/screen_saver -+ /boot/system/develop/headers/os/add-ons/tracker -+ /boot/system/develop/headers/os/be_apps/Deskbar -+ /boot/system/develop/headers/os/be_apps/NetPositive -+ /boot/system/develop/headers/os/be_apps/Tracker -+ /boot/system/develop/headers/3rdparty -+ /boot/system/develop/headers/bsd -+ /boot/system/develop/headers/glibc -+ /boot/system/develop/headers/gnu -+ /boot/system/develop/headers/posix -+ /boot/system/develop/headers${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} -+ ) -+IF (CMAKE_HAIKU_SECONDARY_ARCH) -+ LIST(APPEND CMAKE_HAIKU_COMMON_INCLUDE_DIRECTORIES -+ /boot/system/develop/headers -+ ) -+ENDIF (CMAKE_HAIKU_SECONDARY_ARCH) -+ -+LIST(APPEND CMAKE_HAIKU_C_INCLUDE_DIRECTORIES -+ ${CMAKE_HAIKU_COMMON_INCLUDE_DIRECTORIES} -+ ) -+ -+LIST(APPEND CMAKE_HAIKU_CXX_INCLUDE_DIRECTORIES -+ ${CMAKE_HAIKU_COMMON_INCLUDE_DIRECTORIES}) -+ -+LIST(APPEND CMAKE_SYSTEM_INCLUDE_PATH ${CMAKE_HAIKU_C_INCLUDE_DIRECTORIES}) -+ -+LIST(APPEND CMAKE_HAIKU_DEVELOP_LIB_DIRECTORIES -+ /boot/common/non-packaged/develop/lib${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} -+ /boot/common/develop/lib${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} -+ /boot/system/develop/lib${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} -+ ) -+ -+LIST(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES -+ ${CMAKE_HAIKU_DEVELOP_LIB_DIRECTORIES} -+ ) - --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) -+LIST(APPEND CMAKE_SYSTEM_LIBRARY_PATH ${CMAKE_HAIKU_DEVELOP_LIB_DIRECTORIES}) - - IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - SET(CMAKE_INSTALL_PREFIX "/boot/common" CACHE PATH -diff --git a/Source/CPack/cmCPackGenerator.cxx b/Source/CPack/cmCPackGenerator.cxx -index 7e5b26d..733c521 100644 ---- a/Source/CPack/cmCPackGenerator.cxx -+++ b/Source/CPack/cmCPackGenerator.cxx -@@ -27,7 +27,8 @@ - #include - - #if defined(__HAIKU__) --#include -+#include -+#include - #endif - - //---------------------------------------------------------------------- -@@ -1206,10 +1207,10 @@ const char* cmCPackGenerator::GetInstallPath() - 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 --git a/Source/CPack/cmCPackGeneratorFactory.cxx b/Source/CPack/cmCPackGeneratorFactory.cxx -index a04b403..878e8c0 100644 ---- a/Source/CPack/cmCPackGeneratorFactory.cxx -+++ b/Source/CPack/cmCPackGeneratorFactory.cxx -@@ -32,7 +32,7 @@ - #endif - - #if !defined(_WIN32) && !defined(__APPLE__) \ -- && !defined(__QNXNTO__) && !defined(__BEOS__) -+ && !defined(__QNXNTO__) && !defined(__BEOS__) && !defined(__HAIKU__) - # include "cmCPackDebGenerator.h" - # include "cmCPackRPMGenerator.h" - #endif -@@ -73,7 +73,7 @@ cmCPackGeneratorFactory::cmCPackGeneratorFactory() - cmCPackOSXX11Generator::CreateGenerator); - #endif - #if !defined(_WIN32) && !defined(__APPLE__) \ -- && !defined(__QNXNTO__) && !defined(__BEOS__) -+ && !defined(__QNXNTO__) && !defined(__BEOS__) && !defined(__HAIKU__) - this->RegisterGenerator("DEB", "Debian packages", - cmCPackDebGenerator::CreateGenerator); - this->RegisterGenerator("RPM", "RPM packages", -diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx -index 75a564e..83e3c6e 100644 ---- a/Source/cmCTest.cxx -+++ b/Source/cmCTest.cxx -@@ -53,14 +53,10 @@ - #include - #include - --#if defined(__BEOS__) && !defined(__HAIKU__) -+#if defined(__BEOS__) || defined(__HAIKU__) - #include /* disable_debugger() API. */ - #endif - --#if defined(__HAIKU__) --#include /* disable_debugger() API. */ --#endif -- - - #define DEBUGOUT std::cout << __LINE__ << " "; std::cout - #define DEBUGERR std::cerr << __LINE__ << " "; std::cerr -diff --git a/Source/cmExportCommand.cxx b/Source/cmExportCommand.cxx -index cb614d4..1954662 100644 ---- a/Source/cmExportCommand.cxx -+++ b/Source/cmExportCommand.cxx -@@ -20,7 +20,8 @@ - #include "cmExportBuildFileGenerator.h" - - #if defined(__HAIKU__) --#include -+#include -+#include - #endif - - cmExportCommand::cmExportCommand() -@@ -297,14 +298,15 @@ void cmExportCommand::StorePackageRegistryDir(std::string const& package, - 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 --git a/Source/cmFindPackageCommand.cxx b/Source/cmFindPackageCommand.cxx -index 5f106bc..a2f9823 100644 ---- a/Source/cmFindPackageCommand.cxx -+++ b/Source/cmFindPackageCommand.cxx -@@ -19,7 +19,9 @@ - #endif - - #if defined(__HAIKU__) --#include -+#include -+#include -+#include - #endif - - void cmFindPackageNeedBackwardsCompatibility(const std::string& variable, -@@ -1292,12 +1294,13 @@ void cmFindPackageCommand::AddPrefixesUserRegistry() - #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 --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx -index 7da35eb..5867030 100644 ---- a/Source/cmLocalGenerator.cxx -+++ b/Source/cmLocalGenerator.cxx -@@ -37,7 +37,8 @@ - #include - - #if defined(__HAIKU__) --#include -+#include -+#include - #endif - - cmLocalGenerator::cmLocalGenerator() -@@ -354,12 +355,12 @@ void cmLocalGenerator::GenerateInstallRules() - 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 --git a/Source/kwsys/ProcessUNIX.c b/Source/kwsys/ProcessUNIX.c -index 9c66a44..6fe4232 100644 ---- a/Source/kwsys/ProcessUNIX.c -+++ b/Source/kwsys/ProcessUNIX.c -@@ -63,10 +63,6 @@ do. - #include /* DIR, dirent */ - #include /* isspace */ - --#ifdef __HAIKU__ --#undef __BEOS__ --#endif -- - #if defined(__VMS) - # define KWSYSPE_VMS_NONBLOCK , O_NONBLOCK - #else -diff --git a/Source/kwsys/SystemTools.cxx b/Source/kwsys/SystemTools.cxx -index eefa7f5..8798615 100644 ---- a/Source/kwsys/SystemTools.cxx -+++ b/Source/kwsys/SystemTools.cxx -@@ -145,12 +145,7 @@ public: - #define _chdir chdir - #endif - --#if defined(__HAIKU__) --#include --#include --#endif -- --#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__) -+#if defined(__BEOS__) && !defined(__ZETA__) - #include - #include - -diff --git a/Source/kwsys/testDynamicLoader.cxx b/Source/kwsys/testDynamicLoader.cxx -index a7adbca..16b89ad 100644 ---- a/Source/kwsys/testDynamicLoader.cxx -+++ b/Source/kwsys/testDynamicLoader.cxx -@@ -15,14 +15,10 @@ - #include KWSYS_HEADER(ios/iostream) - #include KWSYS_HEADER(stl/string) - --#if defined(__BEOS__) && !defined(__HAIKU__) -+#if defined(__BEOS__) || defined(__HAIKU__) - #include /* disable_debugger() API. */ - #endif - --#if defined(__HAIKU__) --#include /* disable_debugger() API. */ --#endif -- - // Work-around CMake dependency scanning limitation. This must - // duplicate the above list of headers. - #if 0 -diff --git a/Source/kwsys/testProcess.c b/Source/kwsys/testProcess.c -index 877002a..17a068c 100644 ---- a/Source/kwsys/testProcess.c -+++ b/Source/kwsys/testProcess.c -@@ -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 --git a/Tests/Complex/Library/CMakeLists.txt b/Tests/Complex/Library/CMakeLists.txt -index 281e48a..7d8adb2 100644 ---- a/Tests/Complex/Library/CMakeLists.txt -+++ b/Tests/Complex/Library/CMakeLists.txt -@@ -52,9 +52,9 @@ DEFINE_PROPERTY( - 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(NOT BEOS AND NOT WIN32) -+ENDIF(NOT BEOS AND NOT WIN32 AND NOT HAIKU) - GET_TARGET_PROPERTY(FOO_BAR_VAR CMakeTestCLibraryShared FOO) - IF(${FOO_BAR_VAR} MATCHES "BAR") - ELSE(${FOO_BAR_VAR} MATCHES "BAR") -diff --git a/Tests/ComplexOneConfig/Library/CMakeLists.txt b/Tests/ComplexOneConfig/Library/CMakeLists.txt -index 281e48a..7d8adb2 100644 ---- a/Tests/ComplexOneConfig/Library/CMakeLists.txt -+++ b/Tests/ComplexOneConfig/Library/CMakeLists.txt -@@ -52,9 +52,9 @@ DEFINE_PROPERTY( - 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(NOT BEOS AND NOT WIN32) -+ENDIF(NOT BEOS AND NOT WIN32 AND NOT HAIKU) - GET_TARGET_PROPERTY(FOO_BAR_VAR CMakeTestCLibraryShared FOO) - IF(${FOO_BAR_VAR} MATCHES "BAR") - ELSE(${FOO_BAR_VAR} MATCHES "BAR") -diff --git a/Tests/ComplexRelativePaths/Library/CMakeLists.txt b/Tests/ComplexRelativePaths/Library/CMakeLists.txt -index 281e48a..7d8adb2 100644 ---- a/Tests/ComplexRelativePaths/Library/CMakeLists.txt -+++ b/Tests/ComplexRelativePaths/Library/CMakeLists.txt -@@ -52,9 +52,9 @@ DEFINE_PROPERTY( - 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(NOT BEOS AND NOT WIN32) -+ENDIF(NOT BEOS AND NOT WIN32 AND NOT HAIKU) - GET_TARGET_PROPERTY(FOO_BAR_VAR CMakeTestCLibraryShared FOO) - IF(${FOO_BAR_VAR} MATCHES "BAR") - ELSE(${FOO_BAR_VAR} MATCHES "BAR") -diff --git a/Utilities/cmcurl/CMake/CurlTests.c b/Utilities/cmcurl/CMake/CurlTests.c -index d74a4f0..c5ba7c2 100644 ---- a/Utilities/cmcurl/CMake/CurlTests.c -+++ b/Utilities/cmcurl/CMake/CurlTests.c -@@ -38,7 +38,7 @@ main () - # 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 --git a/Utilities/cmcurl/select.c b/Utilities/cmcurl/select.c -index 51adbcf..82f9dc2 100644 ---- a/Utilities/cmcurl/select.c -+++ b/Utilities/cmcurl/select.c -@@ -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 --git a/Utilities/cmzlib/zconf.h b/Utilities/cmzlib/zconf.h -index 6eb52d1..7a3b6fd 100644 ---- a/Utilities/cmzlib/zconf.h -+++ b/Utilities/cmzlib/zconf.h -@@ -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 --git a/Utilities/cmzlib/zutil.h b/Utilities/cmzlib/zutil.h -index 74ef1f8..3053cd8 100644 ---- a/Utilities/cmzlib/zutil.h -+++ b/Utilities/cmzlib/zutil.h -@@ -147,12 +147,6 @@ extern const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ - # 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/bootstrap b/bootstrap -index c999888..c573a90 100755 ---- a/bootstrap -+++ b/bootstrap -@@ -142,7 +142,9 @@ if ${cmake_system_mingw}; then - 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/packages/cmake-${cmake_version}" - else - cmake_default_prefix="/usr/local" - fi --- -1.7.10.2 - diff --git a/dev-util/cmake/patches/cmake-3.0.0_git.patchset b/dev-util/cmake/patches/cmake-3.0.0_git.patchset new file mode 100644 index 000000000..1c97ac007 --- /dev/null +++ b/dev-util/cmake/patches/cmake-3.0.0_git.patchset @@ -0,0 +1,1120 @@ +From d96821f7bb988822d4d24aea8a5f1eb68076b600 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Mon, 3 Mar 2014 15:47:08 +0100 +Subject: Haiku: Enable CMake builtin ELF editor + +Co-Author: Brad King + +diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt +index 762470f..27d099d 100644 +--- a/Source/CMakeLists.txt ++++ b/Source/CMakeLists.txt +@@ -18,6 +18,23 @@ else() + endif() + if(HAVE_ELF_H) + set(CMAKE_USE_ELF_PARSER 1) ++elseif(HAIKU) ++ # On Haiku, we need to include elf32.h from the private headers ++ set(CMake_HAIKU_INCLUDE_DIRS ++ /boot/system/develop/headers/private/system ++ /boot/system/develop/headers/private/system/arch/x86 ++ ) ++ ++ set(CMAKE_REQUIRED_INCLUDES ${CMake_HAIKU_INCLUDE_DIRS}) ++ CHECK_INCLUDE_FILE("elf32.h" HAVE_ELF32_H) ++ unset(CMAKE_REQUIRED_INCLUDES) ++ ++ if(HAVE_ELF32_H) ++ set(CMAKE_USE_ELF_PARSER 1) ++ else() ++ unset(CMake_HAIKU_INCLUDE_DIRS) ++ set(CMAKE_USE_ELF_PARSER) ++ endif() + else() + set(CMAKE_USE_ELF_PARSER) + endif() +@@ -57,6 +74,7 @@ include_directories( + ${CMAKE_EXPAT_INCLUDES} + ${CMAKE_TAR_INCLUDES} + ${CMAKE_COMPRESS_INCLUDES} ++ ${CMake_HAIKU_INCLUDE_DIRS} + ) + + # let cmake know it is supposed to use it +diff --git a/Source/cmELF.cxx b/Source/cmELF.cxx +index bc1c25b..dc6772c 100644 +--- a/Source/cmELF.cxx ++++ b/Source/cmELF.cxx +@@ -23,6 +23,26 @@ + #if defined(__OpenBSD__) + # include + # include ++#elif defined(__HAIKU__) ++# include ++# include ++ typedef struct Elf32_Ehdr Elf32_Ehdr; ++ typedef struct Elf32_Shdr Elf32_Shdr; ++ typedef struct Elf32_Sym Elf32_Sym; ++ typedef struct Elf32_Rel Elf32_Rel; ++ typedef struct Elf32_Rela Elf32_Rela; ++# define ELFMAG0 0x7F ++# define ELFMAG1 'E' ++# define ELFMAG2 'L' ++# define ELFMAG3 'F' ++# define ET_NONE 0 ++# define ET_REL 1 ++# define ET_EXEC 2 ++# define ET_DYN 3 ++# define ET_CORE 4 ++# define EM_386 3 ++# define EM_SPARC 2 ++# define EM_PPC 20 + #else + # include + #endif +-- +1.8.3.4 + + +From 88fe347ab31291ec0535d4d4438717355544a191 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Mon, 3 Mar 2014 15:57:05 +0100 +Subject: Haiku: Fix compiler detection when using distcc + +Also remove outdated include directories. + +diff --git a/Modules/Platform/Haiku.cmake b/Modules/Platform/Haiku.cmake +index 825f851..dfc2664 100644 +--- a/Modules/Platform/Haiku.cmake ++++ b/Modules/Platform/Haiku.cmake +@@ -21,18 +21,26 @@ set(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic") + # "/boot/system/develop/lib//", which we assume to be the secondary + # architecture specific subdirectory and extract the name of the architecture + # accordingly. +-set(__HAIKU_COMPILER ${CMAKE_C_COMPILER}) + +-if(NOT __HAIKU_COMPILER) ++# First of all, find a C or C++ compiler we can run. The "arg1" is necessary ++# here for compilers such as "distcc gcc-x86" or "ccache gcc-x86" ++# TODO See CMakeDetermineCompilerId.cmake for some more things we may want to do. ++if(CMAKE_C_COMPILER) ++ set(__HAIKU_COMPILER ${CMAKE_C_COMPILER}) ++ string (STRIP "${CMAKE_C_COMPILER_ARG1}" __HAIKU_COMPILER_FLAGS) ++else() + set(__HAIKU_COMPILER ${CMAKE_CXX_COMPILER}) ++ string (STRIP "${CMAKE_CXX_COMPILER_ARG1}" __HAIKU_COMPILER_FLAGS) + endif() + ++ + execute_process( +- COMMAND ${__HAIKU_COMPILER} -print-search-dirs ++ COMMAND ${__HAIKU_COMPILER} ${__HAIKU_COMPILER_FLAGS} -print-search-dirs + OUTPUT_VARIABLE _HAIKU_SEARCH_DIRS ++ RESULT_VARIABLE _HAIKU_SEARCH_DIRS_FOUND + OUTPUT_STRIP_TRAILING_WHITESPACE) + +-string(REGEX MATCH ".*\nlibraries: =?([^\n]*:)?/boot/system/develop/lib/([^/]*)/(:[^\n]*)?\n.*" _dummy "\n${_HAIKU_SEARCH_DIRS}\n") ++string(REGEX MATCH "libraries: =?([^\n]*:)?/boot/system/develop/lib/([^/]*)/?(:?\n+)" _dummy "${_HAIKU_SEARCH_DIRS}\n") + set(CMAKE_HAIKU_SECONDARY_ARCH "${CMAKE_MATCH_2}") + + if(NOT CMAKE_HAIKU_SECONDARY_ARCH) +@@ -53,14 +61,12 @@ else() + endif() + + list(APPEND CMAKE_SYSTEM_PREFIX_PATH +- /boot/common/non-packaged +- /boot/common ++ /boot/system/non-packaged + /boot/system + ) + + LIST(APPEND CMAKE_HAIKU_COMMON_INCLUDE_DIRECTORIES +- /boot/common/non-packaged/develop/headers${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} +- /boot/common/develop/headers${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} ++ /boot/system/non-packaged/develop/headers${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} + /boot/system/develop/headers/os + /boot/system/develop/headers/os/app + /boot/system/develop/headers/os/device +@@ -108,8 +114,7 @@ LIST(APPEND CMAKE_HAIKU_CXX_INCLUDE_DIRECTORIES + LIST(APPEND CMAKE_SYSTEM_INCLUDE_PATH ${CMAKE_HAIKU_C_INCLUDE_DIRECTORIES}) + + LIST(APPEND CMAKE_HAIKU_DEVELOP_LIB_DIRECTORIES +- /boot/common/non-packaged/develop/lib${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} +- /boot/common/develop/lib${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} ++ /boot/system/non-packaged/develop/lib${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} + /boot/system/develop/lib${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} + ) + +@@ -120,6 +125,6 @@ LIST(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES + LIST(APPEND CMAKE_SYSTEM_LIBRARY_PATH ${CMAKE_HAIKU_DEVELOP_LIB_DIRECTORIES}) + + if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) +- set(CMAKE_INSTALL_PREFIX "/boot/common" CACHE PATH ++ set(CMAKE_INSTALL_PREFIX "/boot/system" CACHE PATH + "Install path prefix, prepended onto install directories." FORCE) + endif() +-- +1.8.3.4 + + +From 5d126e36b08d159cccb3eeddbfa3b9432b6521a3 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Mon, 3 Mar 2014 15:51:49 +0100 +Subject: CPack: Add HPKG generation support + +Use "make package" to get an hpkg out of any cmake-based buildsystem. + +diff --git a/Modules/CPackHpkg.cmake b/Modules/CPackHpkg.cmake +new file mode 100644 +index 0000000..772f422 +--- /dev/null ++++ b/Modules/CPackHpkg.cmake +@@ -0,0 +1,296 @@ ++##section Variables specific to CPack Haiku (HPKG) generator ++##end ++##module ++# - The builtin (binary) CPack Haiku generator (Haiku only) ++# CPackHaiku may be used to create Haiku packages using CPack. ++# CPackHaiku is a CPack generator thus it uses the CPACK_XXX variables ++# used by CPack : http://www.cmake.org/Wiki/CMake:CPackConfiguration. ++# CPackHaiku will work only on haiku as it uss the 'package' tool available ++# there. With the custom archive format and compression algorithm, there is ++# currently no better way. ++# ++# CPackHaiku has specific features which are controlled by ++# the specifics CPACK_HAIKU_XXX variables.You'll find a detailed usage on ++# the wiki: ++# http://www.cmake.org/Wiki/CMake:CPackPackageGenerators#HAIKU_.28HAIKU_only.29 ++# However as a handy reminder here comes the list of specific variables: ++##end ++# ++##variable ++# CPACK_HAIKU_PACKAGE_NAME ++# Mandatory : YES ++# Default : CPACK_PACKAGE_NAME (lower case) ++# The haiku package name ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_VERSION ++# Mandatory : YES ++# Default : CPACK_PACKAGE_VERSION ++# The haiku package version ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_REVISION ++# Mandatory : YES ++# Default : 1 ++# The haiku package version ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_ARCHITECTURE ++# Mandatory : YES ++# Default : $ENV{BE_SYSTEM_CPU}, or x86_gcc2 if using gcc2. ++# The haiku package architecture ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_PACKAGER ++# Mandatory : YES ++# Default : CPACK_PACKAGE_CONTACT ++# The haiku package maintainer e-mail address ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_VENDOR ++# Mandatory : YES ++# Default : CPACK_PACKAGE_VENDOR ++# The haiku package vendor ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_DESCRIPTION ++# Mandatory : YES ++# Default : CPACK_PACKAGE_DESCRIPTION ++# The haiku package description ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_DESCRIPTION_SUMMARY ++# Mandatory : YES ++# Default : CPACK_PACKAGE_DESCRIPTION_SUMMARY ++# The haiku package one-line description ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_COPYRIGHT ++# Mandatory : YES ++# Default : - ++# The haiku package copyright holders ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_LICENSES ++# Mandatory : YES ++# Default : - ++# The haiku package licenses. This must be available in /system/data/licenses, ++# either provided by the package or one of the system-provided licenses. ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_URL ++# Mandatory : NO ++# Default : - ++# The URL of the web site for this package, preferably (when applicable) the ++# site from which the original source can be obtained and any additional ++# upstream documentation or information may be found. ++# The content of this field is a simple URL without any surrounding ++# characters such as <>. ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_DEBUG ++# Mandatory : NO ++# Default : - ++# May be set when invoking cpack in order to trace debug information ++# during CPackHpkg run. ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_PREREQUIRES ++# Mandatory : NO ++# Default : - ++# This is similar to REQUIRES, but the package will not be rebuilt. This ++# makes it possible to have circular dependencies between prerequired ++# packages ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_SUPPLEMENTS ++# Mandatory : NO ++# Default : - ++# This field allow adding functionality to an existing package. This will ++# be made visible to the original package in its private directory. ++# It is used to declare that a package can enhance the functionality of another package. ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_CONFLICTS ++# Mandatory : NO ++# Default : - ++# When one binary package declares a conflict with another using a Conflicts field, ++# Haiku will refuse to allow them to be installed on the system at the same time. ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_CONTROL_EXTRA ++# Mandatory : NO ++# Default : - ++# This variable allow advanced user to add other entries to the .PackageInfo file ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_PROVIDES ++# Mandatory : YES ++# Default : - ++# List of provided entries for the package, with version constraints. ++# There should be an entry for each binary, application, library and add-on ++# provided by the package. The packages always provides itself, there is no ++# need for explicitly mentionning it in this variable. ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_REQUIRES ++# Mandatory : NO ++# Default : - ++# May be used to set package dependencies. ++##end ++ ++ ++#============================================================================= ++# Copyright 2007-2013 Kitware, Inc. ++# Copyright 2007-2009 Mathieu Malaterre ++# ++# Distributed under the OSI-approved BSD License (the "License"); ++# see accompanying file Copyright.txt for details. ++# ++# This software is distributed WITHOUT ANY WARRANTY; without even the ++# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++# See the License for more information. ++#============================================================================= ++# (To distribute this file outside of CMake, substitute the full ++# License text for the above reference.) ++ ++# CPack script for creating Haiku packages ++# Author: Adrien Destugues ++# ++# http://wiki.debian.org/HowToPackageForDebian ++ ++if(CMAKE_BINARY_DIR) ++ message(FATAL_ERROR "CPackHpkg.cmake may only be used by CPack internally.") ++endif() ++ ++if(NOT HAIKU) ++ message(FATAL_ERROR "CPackHpkg.cmake may only be used under Haiku.") ++endif() ++ ++find_program(FAKEROOT_EXECUTABLE fakeroot) ++if(FAKEROOT_EXECUTABLE) ++ set(CPACK_DEBIAN_FAKEROOT_EXECUTABLE ${FAKEROOT_EXECUTABLE}) ++endif() ++ ++ ++# Let's define the .PackageInfo file found in haiku package: ++ ++# Package: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_NAME) ++ string(TOLOWER "${CPACK_PACKAGE_NAME}" CPACK_HAIKU_PACKAGE_NAME) ++ string(REPLACE "_unspecified" "" CPACK_HAIKU_PACKAGE_NAME ++ "${CPACK_HAIKU_PACKAGE_NAME}") ++endif() ++ ++# Version: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_VERSION) ++ if(NOT CPACK_PACKAGE_VERSION) ++ message(FATAL_ERROR "CPackHpkg: Haiku package requires a package version") ++ endif() ++ set(CPACK_HAIKU_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION}) ++endif() ++ ++# Revision: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_REVISION) ++ set(CPACK_HAIKU_PACKAGE_REVISION 1) ++endif() ++ ++# Architecture: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_ARCHITECTURE) ++ if(NOT CMAKE_HAIKU_ARCHITECTURE) ++ message(FATAL_ERROR "CPackHpkg: Please set CPACK_HAIKU_PACKAGE_ARCHITECTURE or CMAKE_HAIKU_ARCHITECTURE") ++ endif() ++ ++ set(CPACK_HAIKU_PACKAGE_ARCHITECTURE "${CMAKE_HAIKU_ARCHITECTURE}") ++endif() ++ ++# have a look at get_property(result GLOBAL PROPERTY ENABLED_FEATURES), ++# this returns the successful find_package() calls, maybe this can help ++# Depends: ++# You should set: DEBIAN_PACKAGE_DEPENDS ++# TODO: automate 'objdump -p | grep NEEDED' ++if(NOT CPACK_HAIKU_PACKAGE_DEPENDS) ++ message(STATUS "CPACK_HAIKU_PACKAGE_DEPENDS not set, the package will have no dependencies.") ++endif() ++ ++# Maintainer: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_PACKAGER) ++ if(NOT CPACK_PACKAGE_CONTACT) ++ message(FATAL_ERROR "CPackHpkg: Haiku package requires a packager, set CPACK_PACKAGE_CONTACT or CPACK_HAIKU_PACKAGE_PACKAGER") ++ endif() ++ set(CPACK_HAIKU_PACKAGE_PACKAGER ${CPACK_PACKAGE_CONTACT}) ++endif() ++ ++# Vendor: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_VENDOR) ++ if(NOT CPACK_PACKAGE_VENDOR) ++ message(FATAL_ERROR "CPackHpkg: Haiku package requires a vendor, set CPACK_PACKAGE_VENDOR or CPACK_HAIKU_PACKAGE_VENDOR") ++ endif() ++ set(CPACK_HAIKU_PACKAGE_VENDOR ${CPACK_PACKAGE_VENDOR}) ++endif() ++ ++# Copyright: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_COPYRIGHT) ++ message(FATAL_ERROR "CPackHaiku: Haiku package requires a copyright for a package, set CPACK_HAIKU_PACKAGE_COPYRIGHT") ++endif() ++ ++# License: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_LICENSES) ++ message(FATAL_ERROR "CPackHaiku: Haiku package requires a copyright for a package, set CPACK_HAIKU_PACKAGE_LICENSES") ++endif() ++ ++# Description: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_DESCRIPTION) ++ if(NOT CPACK_PACKAGE_DESCRIPTION) ++ message(FATAL_ERROR "CPackHaiku: Haiku package requires a description for a package, set CPACK_PACKAGE_DESCRIPTION or CPACK_HAIKU_PACKAGE_DESCRIPTION") ++ endif() ++ set(CPACK_HAIKU_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION}) ++endif() ++ ++# Summary: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_DESCRIPTION_SUMMARY) ++ if(NOT CPACK_PACKAGE_DESCRIPTION_SUMMARY) ++ message(FATAL_ERROR "CPackHaiku: Haiku package requires a summary for a package, set CPACK_PACKAGE_DESCRIPTION_SUMMARY or CPACK_HAIKU_PACKAGE_DESCRIPTION_SUMMARY") ++ endif() ++ set(CPACK_HAIKU_PACKAGE_DESCRIPTION_SUMMARY ${CPACK_PACKAGE_DESCRIPTION_SUMMARY}) ++endif() ++ ++# Provides: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_PROVIDES) ++ set(CPACK_HAIKU_PACKAGE_PROVIDES ${CPACK_HAIKU_PACKAGE_NAME}) ++else() ++ set(CPACK_HAIKU_PACKAGE_PROVIDES ${CPACK_HAIKU_PACKAGE_NAME} ${CPACK_HAIKU_PACKAGE_PROVIDES}) ++endif() ++ ++# CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA ++# This variable allow advanced user to add custom script to the control.tar.gz (inside the .deb archive) ++# Typical examples are: ++# - conffiles ++# - postinst ++# - postrm ++# - prerm" ++# Usage: ++# set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA ++# "${CMAKE_CURRENT_SOURCE_DIR/prerm;${CMAKE_CURRENT_SOURCE_DIR}/postrm") ++ ++# Are we packaging components ? ++if(CPACK_HAIKU_PACKAGE_COMPONENT) ++ set(CPACK_HAIKU_PACKAGE_COMPONENT_PART_NAME "_${CPACK_HAIKU_PACKAGE_COMPONENT}") ++ string(TOLOWER "${CPACK_PACKAGE_NAME}${CPACK_HAIKU_PACKAGE_COMPONENT_PART_NAME}" CPACK_HAIKU_PACKAGE_NAME) ++else() ++ set(CPACK_HAIKU_PACKAGE_COMPONENT_PART_NAME "") ++endif() ++ ++set(WDIR "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}${CPACK_HAIKU_PACKAGE_COMPONENT_PART_PATH}") ++ ++# Print out some debug information if we were asked for that ++if(CPACK_HAIKU_PACKAGE_DEBUG) ++ message("CPackHpkg:Debug: CPACK_TOPLEVEL_DIRECTORY = ${CPACK_TOPLEVEL_DIRECTORY}") ++ message("CPackHpkg:Debug: CPACK_TOPLEVEL_TAG = ${CPACK_TOPLEVEL_TAG}") ++ message("CPackHpkg:Debug: CPACK_TEMPORARY_DIRECTORY = ${CPACK_TEMPORARY_DIRECTORY}") ++ message("CPackHpkg:Debug: CPACK_OUTPUT_FILE_NAME = ${CPACK_OUTPUT_FILE_NAME}") ++ message("CPackHpkg:Debug: CPACK_OUTPUT_FILE_PATH = ${CPACK_OUTPUT_FILE_PATH}") ++ message("CPackHpkg:Debug: CPACK_PACKAGE_FILE_NAME = ${CPACK_PACKAGE_FILE_NAME}") ++ message("CPackHpkg:Debug: CPACK_PACKAGE_INSTALL_DIRECTORY = ${CPACK_PACKAGE_INSTALL_DIRECTORY}") ++ message("CPackHpkg:Debug: CPACK_TEMPORARY_PACKAGE_FILE_NAME = ${CPACK_TEMPORARY_PACKAGE_FILE_NAME}") ++endif() +diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt +index 27d099d..bbf979b 100644 +--- a/Source/CMakeLists.txt ++++ b/Source/CMakeLists.txt +@@ -589,6 +589,12 @@ if(UNIX) + ) + endif() + ++if(HAIKU) ++ set(CPACK_SRCS ${CPACK_SRCS} ++ CPack/cmCPackHpkgGenerator.cxx ++ ) ++endif() ++ + if(WIN32) + set(CPACK_SRCS ${CPACK_SRCS} + CPack/WiX/cmCPackWIXGenerator.cxx +diff --git a/Source/CPack/cmCPackGeneratorFactory.cxx b/Source/CPack/cmCPackGeneratorFactory.cxx +index 9faf2b0..89cf7a8 100644 +--- a/Source/CPack/cmCPackGeneratorFactory.cxx ++++ b/Source/CPack/cmCPackGeneratorFactory.cxx +@@ -42,6 +42,10 @@ + # include "WiX/cmCPackWIXGenerator.h" + #endif + ++#ifdef __HAIKU__ ++# include "cmCPackHpkgGenerator.h" ++#endif ++ + #include "cmCPackLog.h" + + #if defined(__BORLANDC__) +@@ -138,6 +142,13 @@ cmCPackGeneratorFactory::cmCPackGeneratorFactory() + cmCPackRPMGenerator::CreateGenerator); + } + #endif ++#if defined(__HAIKU__) ++ if (cmCPackHpkgGenerator::CanGenerate()) ++ { ++ this->RegisterGenerator("HPKH", "Haiku Packages", ++ cmCPackHpkgGenerator::CreateGenerator); ++ } ++#endif + } + + //---------------------------------------------------------------------- +diff --git a/Source/CPack/cmCPackHpkgGenerator.cxx b/Source/CPack/cmCPackHpkgGenerator.cxx +new file mode 100644 +index 0000000..732777b +--- /dev/null ++++ b/Source/CPack/cmCPackHpkgGenerator.cxx +@@ -0,0 +1,509 @@ ++/*============================================================================ ++ CMake - Cross Platform Makefile Generator ++ Copyright 2000-2009 Kitware, Inc., Insight Software Consortium ++ ++ Distributed under the OSI-approved BSD License (the "License"); ++ see accompanying file Copyright.txt for details. ++ ++ This software is distributed WITHOUT ANY WARRANTY; without even the ++ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++ See the License for more information. ++============================================================================*/ ++#include "cmCPackHpkgGenerator.h" ++ ++#include "cmSystemTools.h" ++#include "cmMakefile.h" ++#include "cmGeneratedFileStream.h" ++#include "cmCPackLog.h" ++ ++#include ++#include ++ ++#include // USHRT_MAX ++ ++// NOTE: ++// Haiku .hpkg files are package using a custom compression and archive format. ++// The only way of creating them isusing the package tool provided with Haiku. ++ ++//---------------------------------------------------------------------- ++cmCPackHpkgGenerator::cmCPackHpkgGenerator() ++{ ++} ++ ++//---------------------------------------------------------------------- ++cmCPackHpkgGenerator::~cmCPackHpkgGenerator() ++{ ++} ++ ++//---------------------------------------------------------------------- ++int cmCPackHpkgGenerator::InitializeInternal() ++{ ++ // Haiku packages are "rootless": the hierarchy inside them is relative to ++ // the package mount/install point. ++ this->SetOption("CPACK_PACKAGING_INSTALL_PREFIX", NULL); ++ if (cmSystemTools::IsOn(this->GetOption("CPACK_SET_DESTDIR"))) ++ { ++ this->SetOption("CPACK_SET_DESTDIR", "I_OFF"); ++ } ++ return this->Superclass::InitializeInternal(); ++} ++ ++//---------------------------------------------------------------------- ++int cmCPackHpkgGenerator::PackageOnePack(std::string initialTopLevel, ++ std::string packageName) ++{ ++ int retval = 1; ++ // Begin the archive for this pack ++ std::string localToplevel(initialTopLevel); ++ std::string packageFileName( ++ cmSystemTools::GetParentDirectory(toplevel.c_str()) ++ ); ++ std::string outputFileName( ++ std::string(this->GetOption("CPACK_PACKAGE_FILE_NAME")) ++ +"_"+packageName + this->GetOutputExtension() ++ ); ++ ++ cmCPackLogger(cmCPackLog::LOG_DEBUG, ++ "Packaging " << outputFileName << std::endl); ++ ++ localToplevel += "/"+ packageName; ++ /* replace the TEMP DIRECTORY with the component one */ ++ this->SetOption("CPACK_TEMPORARY_DIRECTORY",localToplevel.c_str()); ++ packageFileName += "/"+ outputFileName; ++ /* replace proposed CPACK_OUTPUT_FILE_NAME */ ++ this->SetOption("CPACK_OUTPUT_FILE_NAME",outputFileName.c_str()); ++ /* replace the TEMPORARY package file name */ ++ this->SetOption("CPACK_TEMPORARY_PACKAGE_FILE_NAME", ++ packageFileName.c_str()); ++ // Tell CPackHpkg.cmake the name of the component GROUP. ++ this->SetOption("CPACK_HAIKU_PACKAGE_COMPONENT",packageName.c_str()); ++ // Tell CPackHpkg.cmake the path where the component is. ++ std::string component_path = "/"; ++ component_path += packageName; ++ this->SetOption("CPACK_HAIKU_PACKAGE_COMPONENT_PART_PATH", ++ component_path.c_str()); ++ if (!this->ReadListFile("CPackHpkg.cmake")) ++ { ++ cmCPackLogger(cmCPackLog::LOG_ERROR, ++ "Error while execution CPackHpkg.cmake" << std::endl); ++ retval = 0; ++ return retval; ++ } ++ ++ cmsys::Glob gl; ++ std::string findExpr(this->GetOption("WDIR")); ++ findExpr += "/*"; ++ gl.RecurseOn(); ++ if ( !gl.FindFiles(findExpr) ) ++ { ++ cmCPackLogger(cmCPackLog::LOG_ERROR, ++ "Cannot find any files in the installed directory" << std::endl); ++ return 0; ++ } ++ packageFiles = gl.GetFiles(); ++ ++ int res = createHpkg(packageName); ++ if (res != 1) ++ { ++ retval = 0; ++ } ++ // add the generated package to package file names list ++ packageFileNames.push_back(packageFileName); ++ return retval; ++} ++ ++//---------------------------------------------------------------------- ++int cmCPackHpkgGenerator::PackageComponents(bool ignoreGroup) ++{ ++ int retval = 1; ++ /* Reset package file name list it will be populated during the ++ * component packaging run*/ ++ packageFileNames.clear(); ++ std::string initialTopLevel(this->GetOption("CPACK_TEMPORARY_DIRECTORY")); ++ ++ cmCPackLogger(cmCPackLog::LOG_DEBUG, ++ "Packaging in components mode" << std::endl); ++ ++ // The default behavior is to have one package by component group ++ // unless CPACK_COMPONENTS_IGNORE_GROUP is specified. ++ if (!ignoreGroup) ++ { ++ std::map::iterator compGIt; ++ for (compGIt=this->ComponentGroups.begin(); ++ compGIt!=this->ComponentGroups.end(); ++compGIt) ++ { ++ cmCPackLogger(cmCPackLog::LOG_VERBOSE, "Packaging component group: " ++ << compGIt->first ++ << std::endl); ++ // Begin the archive for this group ++ retval &= PackageOnePack(initialTopLevel,compGIt->first); ++ } ++ // Handle Orphan components (components not belonging to any groups) ++ std::map::iterator compIt; ++ for (compIt=this->Components.begin(); ++ compIt!=this->Components.end(); ++compIt ) ++ { ++ // Does the component belong to a group? ++ if (compIt->second.Group==NULL) ++ { ++ cmCPackLogger(cmCPackLog::LOG_VERBOSE, ++ "Component <" ++ << compIt->second.Name ++ << "> does not belong to any group, package it separately." ++ << std::endl); ++ // Begin the archive for this orphan component ++ retval &= PackageOnePack(initialTopLevel,compIt->first); ++ } ++ } ++ } ++ // CPACK_COMPONENTS_IGNORE_GROUPS is set ++ // We build 1 package per component ++ else ++ { ++ cmCPackLogger(cmCPackLog::LOG_DEBUG, ++ "Groups are ignored" << std::endl); ++ ++ std::map::iterator compIt; ++ for (compIt=this->Components.begin(); ++ compIt!=this->Components.end(); ++compIt ) ++ { ++ retval &= PackageOnePack(initialTopLevel,compIt->first); ++ } ++ } ++ return retval; ++} ++ ++//---------------------------------------------------------------------- ++int cmCPackHpkgGenerator::PackageComponentsAllInOne() ++{ ++ int retval = 1; ++ std::string compInstDirName; ++ /* Reset package file name list it will be populated during the ++ * component packaging run*/ ++ packageFileNames.clear(); ++ std::string initialTopLevel(this->GetOption("CPACK_TEMPORARY_DIRECTORY")); ++ ++ compInstDirName = "ALL_COMPONENTS_IN_ONE"; ++ ++ cmCPackLogger(cmCPackLog::LOG_VERBOSE, ++ "Packaging all groups in one package..." ++ "(CPACK_COMPONENTS_ALL_[GROUPS_]IN_ONE_PACKAGE is set)" ++ << std::endl); ++ ++ cmCPackLogger(cmCPackLog::LOG_DEBUG, ++ "Packaging in all-in-one mode" << std::endl); ++ ++ // The ALL GROUPS in ONE package case ++ std::string localToplevel(initialTopLevel); ++ std::string packageFileName( ++ cmSystemTools::GetParentDirectory(toplevel.c_str()) ++ ); ++ std::string outputFileName( ++ std::string(this->GetOption("CPACK_PACKAGE_FILE_NAME")) ++ + this->GetOutputExtension() ++ ); ++ // all GROUP in one vs all COMPONENT in one ++ localToplevel += "/"+compInstDirName; ++ ++ /* replace the TEMP DIRECTORY with the component one */ ++ this->SetOption("CPACK_TEMPORARY_DIRECTORY",localToplevel.c_str()); ++ packageFileName += "/"+ outputFileName; ++ /* replace proposed CPACK_OUTPUT_FILE_NAME */ ++ this->SetOption("CPACK_OUTPUT_FILE_NAME",outputFileName.c_str()); ++ /* replace the TEMPORARY package file name */ ++ this->SetOption("CPACK_TEMPORARY_PACKAGE_FILE_NAME", ++ packageFileName.c_str()); ++ // Tell CPackHpkg.cmake the path where the component is. ++ std::string component_path = "/"; ++ component_path += compInstDirName; ++ this->SetOption("CPACK_HPKG_PACKAGE_COMPONENT_PART_PATH", ++ component_path.c_str()); ++ if (!this->ReadListFile("CPackHpkg.cmake")) ++ { ++ cmCPackLogger(cmCPackLog::LOG_ERROR, ++ "Error while execution CPackHpkg.cmake" << std::endl); ++ retval = 0; ++ return retval; ++ } ++ ++ cmsys::Glob gl; ++ std::string findExpr(this->GetOption("WDIR")); ++ findExpr += "/*"; ++ gl.RecurseOn(); ++ if ( !gl.FindFiles(findExpr) ) ++ { ++ cmCPackLogger(cmCPackLog::LOG_ERROR, ++ "Cannot find any files in the installed directory" << std::endl); ++ return 0; ++ } ++ packageFiles = gl.GetFiles(); ++ ++ int res = createHpkg(); ++ if (res != 1) ++ { ++ retval = 0; ++ } ++ // add the generated package to package file names list ++ packageFileNames.push_back(packageFileName); ++ return retval; ++} ++ ++//---------------------------------------------------------------------- ++int cmCPackHpkgGenerator::PackageFiles() ++{ ++ int retval = -1; ++ ++ /* Are we in the component packaging case */ ++ if (WantsComponentInstallation()) { ++ // CASE 1 : COMPONENT ALL-IN-ONE package ++ // If ALL GROUPS or ALL COMPONENTS in ONE package has been requested ++ // then the package file is unique and should be open here. ++ if (componentPackageMethod == ONE_PACKAGE) ++ { ++ return PackageComponentsAllInOne(); ++ } ++ // CASE 2 : COMPONENT CLASSICAL package(s) (i.e. not all-in-one) ++ // There will be 1 package for each component group ++ // however one may require to ignore component group and ++ // in this case you'll get 1 package for each component. ++ else ++ { ++ return PackageComponents(componentPackageMethod == ++ ONE_PACKAGE_PER_COMPONENT); ++ } ++ } ++ // CASE 3 : NON COMPONENT package. ++ else ++ { ++ if (!this->ReadListFile("CPackHpkg.cmake")) ++ { ++ cmCPackLogger(cmCPackLog::LOG_ERROR, ++ "Error while execution CPackHpkg.cmake" << std::endl); ++ retval = 0; ++ } ++ else ++ { ++ packageFiles = files; ++ return createHpkg(); ++ } ++ } ++ return retval; ++} ++ ++int cmCPackHpkgGenerator::createHpkg(std::string packageName) ++{ ++ // .PackageInfo file ++ std::string infofilename; ++ infofilename = this->GetOption("WDIR"); ++ infofilename += "/.PackageInfo"; ++ ++ std::string haiku_pkg_id = this->GetOption("CPACK_HAIKU_PACKAGE_NAME"); ++ if(packageName == "Unspecified") { ++ // Remove package specifier for the "unspecified" package ++ haiku_pkg_id.erase(haiku_pkg_id.length() - packageName.length() - 1); ++ packageName = ""; ++ } else if(packageName.length() > 0) { ++ packageName += "_"; ++ } ++ // haiku policy enforce lower case for package name ++ std::string haiku_pkg_name = cmsys::SystemTools::LowerCase(haiku_pkg_id); ++ ++ // mandatory entries: ++ const char* haiku_pkg_version = ++ this->GetOption("CPACK_HAIKU_PACKAGE_VERSION"); ++ const char* haiku_pkg_revision = ++ this->GetOption("CPACK_HAIKU_PACKAGE_REVISION"); ++ const char* haiku_pkg_arch = ++ this->GetOption("CPACK_HAIKU_PACKAGE_ARCHITECTURE"); ++ const char* maintainer = this->GetOption("CPACK_HAIKU_PACKAGE_PACKAGER"); ++ const char* vendor = this->GetOption("CPACK_HAIKU_PACKAGE_VENDOR"); ++ const char* summary = ++ this->GetOption("CPACK_HAIKU_PACKAGE_DESCRIPTION_SUMMARY"); ++ const char* desc = this->GetOption("CPACK_HAIKU_PACKAGE_DESCRIPTION"); ++ const char* copyrights = this->GetOption("CPACK_HAIKU_PACKAGE_COPYRIGHT"); ++ const char* haiku_pkg_licenses = ++ this->GetOption("CPACK_HAIKU_PACKAGE_LICENSES"); ++ ++ // component-specific entries ++ std::string pkg_requires_option = "CPACK_HAIKU_" + packageName ++ + "PACKAGE_REQUIRES"; ++ const char* haiku_pkg_dep = this->GetOption(pkg_requires_option.c_str()); ++ std::string pkg_provides_option = "CPACK_HAIKU_" + packageName ++ + "PACKAGE_PROVIDES"; ++ const char* haiku_pkg_provides = ++ this->GetOption(pkg_provides_option.c_str()); ++ ++ // optional entries ++ const char* haiku_pkg_url = this->GetOption("CPACK_HAIKU_PACKAGE_HOMEPAGE"); ++ const char* haiku_pkg_enhances = ++ this->GetOption("CPACK_HAIKU_PACKAGE_ENHANCES"); ++ const char* haiku_pkg_conflicts = ++ this->GetOption("CPACK_HAIKU_PACKAGE_CONFLICTS"); ++ const char* haiku_pkg_replaces = ++ this->GetOption("CPACK_HAIKU_PACKAGE_REPLACES"); ++ ++ { // the scope is needed for cmGeneratedFileStream ++ cmGeneratedFileStream out(infofilename.c_str()); ++ out << "name " << haiku_pkg_name << "\n"; ++ out << "version " << haiku_pkg_version << "-" << haiku_pkg_revision << "\n"; ++ out << "architecture " << haiku_pkg_arch << "\n"; ++ if(haiku_pkg_dep && *haiku_pkg_dep) ++ { ++ out << "requires {"; ++ std::vector requiresList; ++ cmSystemTools::ExpandListArgument(haiku_pkg_dep, requiresList); ++ for(std::vector::iterator i = ++ requiresList.begin(); i != requiresList.end(); ++i) ++ { ++ out << *i << "\n"; ++ } ++ ++ out << "}\n"; ++ } ++ if(haiku_pkg_url && *haiku_pkg_url) ++ { ++ out << "urls " << haiku_pkg_url << "\n"; ++ } ++ if (haiku_pkg_enhances && *haiku_pkg_enhances) ++ { ++ out << "freshens " << haiku_pkg_enhances << "\n"; ++ } ++ if (haiku_pkg_conflicts && *haiku_pkg_conflicts) ++ { ++ out << "conflicts " << haiku_pkg_conflicts << "\n"; ++ } ++ if (haiku_pkg_replaces && *haiku_pkg_replaces) ++ { ++ out << "replaces " << haiku_pkg_replaces << "\n"; ++ } ++ ++ out << "provides {"; ++ std::vector providesList; ++ cmSystemTools::ExpandListArgument(haiku_pkg_provides, providesList); ++ for(std::vector::iterator i = ++ providesList.begin(); i != providesList.end(); ++i) ++ { ++ out << *i << "\n"; ++ } ++ ++ out << "}\n"; ++ ++ out << "licenses {"; ++ std::vector licensesList; ++ cmSystemTools::ExpandListArgument(haiku_pkg_licenses, licensesList); ++ for(std::vector::iterator i = ++ licensesList.begin(); i != licensesList.end(); ++i) ++ { ++ out << "\"" << *i << "\"\n"; ++ } ++ ++ out << "}\n"; ++ ++ out << "copyrights {\"" << copyrights << "\"}\n"; ++ out << "packager " << maintainer << "\n"; ++ out << "vendor \"" << vendor << "\"\n"; ++ out << "summary \"" << summary << "\"\n"; ++ out << "description \"" << desc << "\"\n"; ++ out << std::endl; ++ } ++ ++ std::string cmd; ++ if (NULL != this->GetOption("CPACK_HAIKU_FAKEROOT_EXECUTABLE")) { ++ cmd += this->GetOption("CPACK_HAIKU_FAKEROOT_EXECUTABLE"); ++ } ++ cmd += "package create "; ++ cmd += this->GetOption("CPACK_TEMPORARY_PACKAGE_FILE_NAME"); ++ ++ std::string output; ++ int retval = -1; ++ int res = cmSystemTools::RunSingleCommand(cmd.c_str(), &output, ++ &retval, this->GetOption("WDIR"), this->GeneratorVerbose, 0); ++ ++ if ( !res || retval ) ++ { ++ std::string tmpFile = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); ++ tmpFile += "/Hpkg.log"; ++ cmGeneratedFileStream ofs(tmpFile.c_str()); ++ ofs << "# Run command: " << cmd.c_str() << std::endl ++ << "# Working directory: " << toplevel << std::endl ++ << "# Output:" << std::endl ++ << output.c_str() << std::endl; ++ cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem running package command: " ++ << cmd.c_str() << std::endl ++ << "Please check " << tmpFile.c_str() << " for errors" << std::endl); ++ return 0; ++ } ++ ++ const char* infoExtra = ++ this->GetOption("CPACK_HAIKU_PACKAGE_INFO_EXTRA"); ++ if( infoExtra ) ++ { ++ std::vector controlExtraList; ++ cmSystemTools::ExpandListArgument(infoExtra, controlExtraList); ++ for(std::vector::iterator i = ++ controlExtraList.begin(); i != controlExtraList.end(); ++i) ++ { ++ std::string filenamename = ++ cmsys::SystemTools::GetFilenameName(i->c_str()); ++ std::string localcopy = this->GetOption("WDIR"); ++ localcopy += "/"; ++ localcopy += filenamename; ++ // if we can copy the file, it means it does exist, let's add it: ++ if( cmsys::SystemTools::CopyFileIfDifferent( ++ i->c_str(), localcopy.c_str()) ) ++ { ++ // haiku is picky and need relative to ./ path in the tar.gz ++ cmd += " ./"; ++ cmd += filenamename; ++ } ++ } ++ } ++ res = cmSystemTools::RunSingleCommand(cmd.c_str(), &output, ++ &retval, this->GetOption("WDIR"), this->GeneratorVerbose, 0); ++ ++ if ( !res || retval ) ++ { ++ std::string tmpFile = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); ++ tmpFile += "/Hpkg.log"; ++ cmGeneratedFileStream ofs(tmpFile.c_str()); ++ ofs << "# Run command: " << cmd.c_str() << std::endl ++ << "# Working directory: " << toplevel << std::endl ++ << "# Output:" << std::endl ++ << output.c_str() << std::endl; ++ cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem running tar command: " ++ << cmd.c_str() << std::endl ++ << "Please check " << tmpFile.c_str() << " for errors" << std::endl); ++ return 0; ++ } ++ ++ return 1; ++} ++ ++bool cmCPackHpkgGenerator::SupportsComponentInstallation() const ++{ ++ return true; ++} ++ ++std::string cmCPackHpkgGenerator::GetComponentInstallDirNameSuffix( ++ const std::string& componentName) ++{ ++ if (componentPackageMethod == ONE_PACKAGE_PER_COMPONENT) { ++ return componentName; ++ } ++ ++ if (componentPackageMethod == ONE_PACKAGE) { ++ return std::string("ALL_COMPONENTS_IN_ONE"); ++ } ++ // We have to find the name of the COMPONENT GROUP ++ // the current COMPONENT belongs to. ++ std::string groupVar = "CPACK_COMPONENT_" + ++ cmSystemTools::UpperCase(componentName) + "_GROUP"; ++ if (NULL != GetOption(groupVar.c_str())) ++ { ++ return std::string(GetOption(groupVar.c_str())); ++ } ++ else ++ { ++ return componentName; ++ } ++} +diff --git a/Source/CPack/cmCPackHpkgGenerator.h b/Source/CPack/cmCPackHpkgGenerator.h +new file mode 100644 +index 0000000..ffa803d +--- /dev/null ++++ b/Source/CPack/cmCPackHpkgGenerator.h +@@ -0,0 +1,82 @@ ++/*============================================================================ ++ CMake - Cross Platform Makefile Generator ++ Copyright 2000-2013 Kitware, Inc. ++ ++ Distributed under the OSI-approved BSD License (the "License"); ++ see accompanying file Copyright.txt for details. ++ ++ This software is distributed WITHOUT ANY WARRANTY; without even the ++ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++ See the License for more information. ++============================================================================*/ ++ ++#ifndef cmCPackHpkgGenerator_h ++#define cmCPackHpkgGenerator_h ++ ++ ++#include "cmCPackGenerator.h" ++ ++/** \class cmCPackHpkgGenerator ++ * \brief A generator for Haiku packages ++ * ++ */ ++class cmCPackHpkgGenerator : public cmCPackGenerator ++{ ++public: ++ cmCPackTypeMacro(cmCPackHpkgGenerator, cmCPackGenerator); ++ ++ /** ++ * Construct generator ++ */ ++ cmCPackHpkgGenerator(); ++ virtual ~cmCPackHpkgGenerator(); ++ ++ static bool CanGenerate() ++ { ++#ifdef __HAIKU__ ++ return true; ++#else ++ // Sorry! Need the "package" tool from Haiku! ++ return false; ++#endif ++ } ++ ++protected: ++ virtual int InitializeInternal(); ++ /** ++ * This method factors out the work done in component packaging case. ++ */ ++ int PackageOnePack(std::string initialToplevel, std::string packageName); ++ /** ++ * The method used to package files when component ++ * install is used. This will create one ++ * archive for each component group. ++ */ ++ int PackageComponents(bool ignoreGroup); ++ /** ++ * Special case of component install where all ++ * components will be put in a single installer. ++ */ ++ int PackageComponentsAllInOne(); ++ virtual int PackageFiles(); ++ virtual const char* GetOutputExtension() { return ".hpkg"; } ++ virtual enum CPackSetDestdirSupport SupportsSetDestdir() const ++ { ++ return SETDESTDIR_UNSUPPORTED; ++ } ++ ++ virtual bool SupportsAbsoluteDestination() const ++ { ++ return false; ++ } ++ virtual bool SupportsComponentInstallation() const; ++ virtual std::string GetComponentInstallDirNameSuffix( ++ const std::string& componentName); ++ ++private: ++ int createHpkg(std::string packageName = ""); ++ std::vector packageFiles; ++ ++}; ++ ++#endif +-- +1.8.3.4 + diff --git a/dev-util/cmake/patches/cmake-3.0.0_rc1.patchset b/dev-util/cmake/patches/cmake-3.0.0_rc1.patchset new file mode 100644 index 000000000..09491fcba --- /dev/null +++ b/dev-util/cmake/patches/cmake-3.0.0_rc1.patchset @@ -0,0 +1,1295 @@ +From cec0c89807f9215ea077b7e9c14dc9d053919bd6 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Mon, 3 Mar 2014 15:47:08 +0100 +Subject: Allow use of elf relocation on Haiku. + +This is needed to use the Ninja generator, which doesn't support the +alternative methods. + +diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt +index 175a034..ae9e32e 100644 +--- a/Source/CMakeLists.txt ++++ b/Source/CMakeLists.txt +@@ -19,7 +19,14 @@ endif() + if(HAVE_ELF_H) + set(CMAKE_USE_ELF_PARSER 1) + else() +- set(CMAKE_USE_ELF_PARSER) ++ # Haiku has the same API in a different file. ++ CHECK_INCLUDE_FILE("elf32.h" HAVE_ELF32_H ++ "-I/boot/system/develop/headers/private/system -I/boot/system/develop/headers/private/system/arch/x86") ++ if(HAVE_ELF32_H) ++ set(CMAKE_USE_ELF_PARSER 1) ++ else() ++ set(CMAKE_USE_ELF_PARSER) ++ endif() + endif() + + set(EXECUTABLE_OUTPUT_PATH ${CMake_BIN_DIR}) +@@ -452,6 +459,14 @@ if(APPLE) + target_link_libraries(CMakeLib "-framework CoreFoundation") + endif() + ++# On Haiku, we need to include elf32.h from the private headers ++if(HAVE_ELF32_H) ++ include_directories( ++ "/boot/system/develop/headers/private/system" ++ "/boot/system/develop/headers/private/system/arch/x86" ++ ) ++endif() ++ + # On some platforms we need the rpcrt4 library for the VS 7 generators. + if(CMAKE_BUILD_ON_VISUAL_STUDIO OR MINGW) + target_link_libraries(CMakeLib rpcrt4) +@@ -558,6 +573,12 @@ if(UNIX) + ) + endif() + ++if(HAIKU) ++ set(CPACK_SRCS ${CPACK_SRCS} ++ CPack/cmCPackHpkgGenerator.cxx ++ ) ++endif() ++ + if(WIN32) + set(CPACK_SRCS ${CPACK_SRCS} + CPack/WiX/cmCPackWIXGenerator.cxx +diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx +index 73ba815..28cf0f3 100644 +--- a/Source/cmNinjaNormalTargetGenerator.cxx ++++ b/Source/cmNinjaNormalTargetGenerator.cxx +@@ -591,7 +591,7 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement() + cmSystemTools::GetEnv(forceRspFile) == 0) { + #ifdef _WIN32 + commandLineLengthLimit = 8000 - linkRuleLength; +-#elif defined(__linux) || defined(__APPLE__) ++#elif defined(__linux) || defined(__APPLE__) || defined(__HAIKU__) + // for instance ARG_MAX is 2096152 on Ubuntu or 262144 on Mac + commandLineLengthLimit = ((int)sysconf(_SC_ARG_MAX))-linkRuleLength-1000; + #else +diff --git a/Source/elf.h b/Source/elf.h +new file mode 100644 +index 0000000..6b868bb +--- /dev/null ++++ b/Source/elf.h +@@ -0,0 +1,42 @@ ++/* ++ * ++ * /boot/common/include/elf.h ++ * ++ * -I/system/develop/headers/private/system ++ * -I/system/develop/headers/private/system/arch_x86 ++ * ++ * As found on other platforms, for benefit of GHC Haskell compiler, ++ * Donn ++ * */ ++ ++#ifdef __HAIKU__ ++ ++#include ++#include ++ ++typedef struct Elf32_Ehdr Elf32_Ehdr; ++typedef struct Elf32_Shdr Elf32_Shdr; ++typedef struct Elf32_Sym Elf32_Sym; ++typedef struct Elf32_Rel Elf32_Rel; ++typedef struct Elf32_Rela Elf32_Rela; ++ ++#define ELFMAG0 0x7F ++#define ELFMAG1 'E' ++#define ELFMAG2 'L' ++#define ELFMAG3 'F' ++ ++#define ET_NONE 0 ++#define ET_REL 1 ++#define ET_EXEC 2 ++#define ET_DYN 3 ++#define ET_CORE 4 ++ ++#define EM_386 3 ++#define EM_SPARC 2 ++#define EM_PPC 20 ++ ++#else ++ ++#include_next ++ ++#endif +-- +1.8.3.4 + + +From a9a536582f3d035673438734cf6872871fce3605 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Mon, 3 Mar 2014 15:51:49 +0100 +Subject: Add HPKG generation support to CPack. + +Use "make package" to get an hpkg out of any cmake-based buildsystem. + +diff --git a/Modules/CPackHpkg.cmake b/Modules/CPackHpkg.cmake +new file mode 100644 +index 0000000..9b6917f +--- /dev/null ++++ b/Modules/CPackHpkg.cmake +@@ -0,0 +1,297 @@ ++##section Variables specific to CPack Haiku (HPKG) generator ++##end ++##module ++# - The builtin (binary) CPack Haiku generator (Haiku only) ++# CPackHaiku may be used to create Haiku packages using CPack. ++# CPackHaiku is a CPack generator thus it uses the CPACK_XXX variables ++# used by CPack : http://www.cmake.org/Wiki/CMake:CPackConfiguration. ++# CPackHaiku will work only on haiku as it uss the 'package' tool available ++# there. With the custom archive format and compression algorithm, there is ++# currently no better way. ++# ++# CPackHaiku has specific features which are controlled by ++# the specifics CPACK_HAIKU_XXX variables.You'll find a detailed usage on ++# the wiki: ++# http://www.cmake.org/Wiki/CMake:CPackPackageGenerators#HAIKU_.28HAIKU_only.29 ++# However as a handy reminder here comes the list of specific variables: ++##end ++# ++##variable ++# CPACK_HAIKU_PACKAGE_NAME ++# Mandatory : YES ++# Default : CPACK_PACKAGE_NAME (lower case) ++# The haiku package name ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_VERSION ++# Mandatory : YES ++# Default : CPACK_PACKAGE_VERSION ++# The haiku package version ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_REVISION ++# Mandatory : YES ++# Default : 1 ++# The haiku package version ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_ARCHITECTURE ++# Mandatory : YES ++# Default : $ENV{BE_SYSTEM_CPU}, or x86_gcc2 if using gcc2. ++# The haiku package architecture ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_PACKAGER ++# Mandatory : YES ++# Default : CPACK_PACKAGE_CONTACT ++# The haiku package maintainer e-mail address ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_VENDOR ++# Mandatory : YES ++# Default : CPACK_PACKAGE_VENDOR ++# The haiku package vendor ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_DESCRIPTION ++# Mandatory : YES ++# Default : CPACK_PACKAGE_DESCRIPTION ++# The haiku package description ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_DESCRIPTION_SUMMARY ++# Mandatory : YES ++# Default : CPACK_PACKAGE_DESCRIPTION_SUMMARY ++# The haiku package one-line description ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_COPYRIGHT ++# Mandatory : YES ++# Default : - ++# The haiku package copyright holders ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_LICENSES ++# Mandatory : YES ++# Default : - ++# The haiku package licenses. This must be available in /system/data/licenses, ++# either provided by the package or one of the system-provided licenses. ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_URL ++# Mandatory : NO ++# Default : - ++# The URL of the web site for this package, preferably (when applicable) the ++# site from which the original source can be obtained and any additional ++# upstream documentation or information may be found. ++# The content of this field is a simple URL without any surrounding ++# characters such as <>. ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_DEBUG ++# Mandatory : NO ++# Default : - ++# May be set when invoking cpack in order to trace debug information ++# during CPackHpkg run. ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_PREREQUIRES ++# Mandatory : NO ++# Default : - ++# This is similar to REQUIRES, but the package will not be rebuilt. This ++# makes it possible to have circular dependencies between prerequired ++# packages ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_SUPPLEMENTS ++# Mandatory : NO ++# Default : - ++# This field allow adding functionality to an existing package. This will ++# be made visible to the original package in its private directory. ++# It is used to declare that a package can enhance the functionality of another package. ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_CONFLICTS ++# Mandatory : NO ++# Default : - ++# When one binary package declares a conflict with another using a Conflicts field, ++# Haiku will refuse to allow them to be installed on the system at the same time. ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_CONTROL_EXTRA ++# Mandatory : NO ++# Default : - ++# This variable allow advanced user to add other entries to the .PackageInfo file ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_PROVIDES ++# Mandatory : YES ++# Default : - ++# List of provided entries for the package, with version constraints. ++# There should be an entry for each binary, application, library and add-on ++# provided by the package. The packages always provides itself, there is no ++# need for explicitly mentionning it in this variable. ++##end ++##variable ++# CPACK_HAIKU_PACKAGE_REQUIRES ++# Mandatory : NO ++# Default : - ++# May be used to set package dependencies. ++##end ++ ++ ++#============================================================================= ++# Copyright 2007-2013 Kitware, Inc. ++# Copyright 2007-2009 Mathieu Malaterre ++# ++# Distributed under the OSI-approved BSD License (the "License"); ++# see accompanying file Copyright.txt for details. ++# ++# This software is distributed WITHOUT ANY WARRANTY; without even the ++# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++# See the License for more information. ++#============================================================================= ++# (To distribute this file outside of CMake, substitute the full ++# License text for the above reference.) ++ ++# CPack script for creating Haiku packages ++# Author: Adrien Destugues ++# ++# http://wiki.debian.org/HowToPackageForDebian ++ ++if(CMAKE_BINARY_DIR) ++ message(FATAL_ERROR "CPackHpkg.cmake may only be used by CPack internally.") ++endif() ++ ++if(NOT HAIKU) ++ message(FATAL_ERROR "CPackHpkg.cmake may only be used under Haiku.") ++endif() ++ ++find_program(FAKEROOT_EXECUTABLE fakeroot) ++if(FAKEROOT_EXECUTABLE) ++ set(CPACK_DEBIAN_FAKEROOT_EXECUTABLE ${FAKEROOT_EXECUTABLE}) ++endif() ++ ++ ++# Let's define the .PackageInfo file found in haiku package: ++ ++# Package: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_NAME) ++ string(TOLOWER "${CPACK_PACKAGE_NAME}" CPACK_HAIKU_PACKAGE_NAME) ++ string(REPLACE "_unspecified" "" CPACK_HAIKU_PACKAGE_NAME ++ "${CPACK_HAIKU_PACKAGE_NAME}") ++endif() ++ ++# Version: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_VERSION) ++ if(NOT CPACK_PACKAGE_VERSION) ++ message(FATAL_ERROR "CPackHpkg: Haiku package requires a package version") ++ endif() ++ set(CPACK_HAIKU_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION}) ++endif() ++ ++# Revision: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_REVISION) ++ set(CPACK_HAIKU_PACKAGE_REVISION 1) ++endif() ++ ++# Architecture: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_ARCHITECTURE) ++ if(NOT CMAKE_HAIKU_ARCHITECTURE) ++ message(FATAL_ERROR "CPackHpkg: Please set CPACK_HAIKU_PACKAGE_ARCHITECTURE or CMAKE_HAIKU_ARCHITECTURE") ++ endif() ++ ++ set(CPACK_HAIKU_PACKAGE_ARCHITECTURE "${CMAKE_HAIKU_ARCHITECTURE}") ++endif() ++ ++# have a look at get_property(result GLOBAL PROPERTY ENABLED_FEATURES), ++# this returns the successful find_package() calls, maybe this can help ++# Depends: ++# You should set: DEBIAN_PACKAGE_DEPENDS ++# TODO: automate 'objdump -p | grep NEEDED' ++if(NOT CPACK_HAIKU_PACKAGE_DEPENDS) ++ message(STATUS "CPACK_HAIKU_PACKAGE_DEPENDS not set, the package will have no dependencies.") ++endif() ++ ++# Maintainer: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_PACKAGER) ++ if(NOT CPACK_PACKAGE_CONTACT) ++ message(FATAL_ERROR "CPackHpkg: Haiku package requires a packager, set CPACK_PACKAGE_CONTACT or CPACK_HAIKU_PACKAGE_PACKAGER") ++ endif() ++ set(CPACK_HAIKU_PACKAGE_PACKAGER ${CPACK_PACKAGE_CONTACT}) ++endif() ++ ++# Vendor: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_VENDOR) ++ if(NOT CPACK_PACKAGE_VENDOR) ++ message(FATAL_ERROR "CPackHpkg: Haiku package requires a vendor, set CPACK_PACKAGE_VENDOR or CPACK_HAIKU_PACKAGE_VENDOR") ++ endif() ++ set(CPACK_HAIKU_PACKAGE_VENDOR ${CPACK_PACKAGE_VENDOR}) ++endif() ++ ++# Copyright: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_COPYRIGHT) ++ message(FATAL_ERROR "CPackHaiku: Haiku package requires a copyright for a package, set CPACK_HAIKU_PACKAGE_COPYRIGHT") ++endif() ++ ++# License: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_LICENSES) ++ message(FATAL_ERROR "CPackHaiku: Haiku package requires a copyright for a package, set CPACK_HAIKU_PACKAGE_LICENSES") ++endif() ++ ++# Description: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_DESCRIPTION) ++ if(NOT CPACK_PACKAGE_DESCRIPTION) ++ message(FATAL_ERROR "CPackHaiku: Haiku package requires a description for a package, set CPACK_PACKAGE_DESCRIPTION or CPACK_HAIKU_PACKAGE_DESCRIPTION") ++ endif() ++ set(CPACK_HAIKU_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION}) ++endif() ++ ++# Summary: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_DESCRIPTION_SUMMARY) ++ if(NOT CPACK_PACKAGE_DESCRIPTION_SUMMARY) ++ message(FATAL_ERROR "CPackHaiku: Haiku package requires a summary for a package, set CPACK_PACKAGE_DESCRIPTION_SUMMARY or CPACK_HAIKU_PACKAGE_DESCRIPTION_SUMMARY") ++ endif() ++ set(CPACK_HAIKU_PACKAGE_DESCRIPTION_SUMMARY ${CPACK_PACKAGE_DESCRIPTION_SUMMARY}) ++endif() ++ ++# Provides: (mandatory) ++if(NOT CPACK_HAIKU_PACKAGE_PROVIDES) ++ set(CPACK_HAIKU_PACKAGE_PROVIDES ${CPACK_HAIKU_PACKAGE_NAME}) ++else() ++ set(CPACK_HAIKU_PACKAGE_PROVIDES ${CPACK_HAIKU_PACKAGE_NAME} ${CPACK_HAIKU_PACKAGE_PROVIDES}) ++endif() ++ ++# CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA ++# This variable allow advanced user to add custom script to the control.tar.gz (inside the .deb archive) ++# Typical examples are: ++# - conffiles ++# - postinst ++# - postrm ++# - prerm" ++# Usage: ++# set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA ++# "${CMAKE_CURRENT_SOURCE_DIR/prerm;${CMAKE_CURRENT_SOURCE_DIR}/postrm") ++ ++# Are we packaging components ? ++if(CPACK_HAIKU_PACKAGE_COMPONENT) ++ set(CPACK_HAIKU_PACKAGE_COMPONENT_PART_NAME "_${CPACK_HAIKU_PACKAGE_COMPONENT}") ++ string(TOLOWER "${CPACK_PACKAGE_NAME}${CPACK_HAIKU_PACKAGE_COMPONENT_PART_NAME}" CPACK_HAIKU_PACKAGE_NAME) ++else() ++ set(CPACK_HAIKU_PACKAGE_COMPONENT_PART_NAME "") ++endif() ++ ++set(WDIR "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}${CPACK_HAIKU_PACKAGE_COMPONENT_PART_PATH}") ++ ++# Print out some debug information if we were asked for that ++if(CPACK_HAIKU_PACKAGE_DEBUG) ++ message("CPackHpkg:Debug: CPACK_TOPLEVEL_DIRECTORY = ${CPACK_TOPLEVEL_DIRECTORY}") ++ message("CPackHpkg:Debug: CPACK_TOPLEVEL_TAG = ${CPACK_TOPLEVEL_TAG}") ++ message("CPackHpkg:Debug: CPACK_TEMPORARY_DIRECTORY = ${CPACK_TEMPORARY_DIRECTORY}") ++ message("CPackHpkg:Debug: CPACK_OUTPUT_FILE_NAME = ${CPACK_OUTPUT_FILE_NAME}") ++ message("CPackHpkg:Debug: CPACK_OUTPUT_FILE_PATH = ${CPACK_OUTPUT_FILE_PATH}") ++ message("CPackHpkg:Debug: CPACK_PACKAGE_FILE_NAME = ${CPACK_PACKAGE_FILE_NAME}") ++ message("CPackHpkg:Debug: CPACK_PACKAGE_INSTALL_DIRECTORY = ${CPACK_PACKAGE_INSTALL_DIRECTORY}") ++ message("CPackHpkg:Debug: CPACK_TEMPORARY_PACKAGE_FILE_NAME = ${CPACK_TEMPORARY_PACKAGE_FILE_NAME}") ++endif() ++ +diff --git a/Source/CPack/cmCPackGeneratorFactory.cxx b/Source/CPack/cmCPackGeneratorFactory.cxx +index b36c2a2..29d4c3c 100644 +--- a/Source/CPack/cmCPackGeneratorFactory.cxx ++++ b/Source/CPack/cmCPackGeneratorFactory.cxx +@@ -42,6 +42,10 @@ + # include "WiX/cmCPackWIXGenerator.h" + #endif + ++#ifdef __HAIKU__ ++# include "cmCPackHpkgGenerator.h" ++#endif ++ + #include "cmCPackLog.h" + + #if defined(__BORLANDC__) +@@ -138,6 +142,13 @@ cmCPackGeneratorFactory::cmCPackGeneratorFactory() + cmCPackRPMGenerator::CreateGenerator); + } + #endif ++#if defined(__HAIKU__) ++ if (cmCPackHpkgGenerator::CanGenerate()) ++ { ++ this->RegisterGenerator("HPKH", "Haiku Packages", ++ cmCPackHpkgGenerator::CreateGenerator); ++ } ++#endif + } + + //---------------------------------------------------------------------- +diff --git a/Source/CPack/cmCPackHpkgGenerator.cxx b/Source/CPack/cmCPackHpkgGenerator.cxx +new file mode 100644 +index 0000000..f4933cf +--- /dev/null ++++ b/Source/CPack/cmCPackHpkgGenerator.cxx +@@ -0,0 +1,509 @@ ++/*============================================================================ ++ CMake - Cross Platform Makefile Generator ++ Copyright 2000-2009 Kitware, Inc., Insight Software Consortium ++ ++ Distributed under the OSI-approved BSD License (the "License"); ++ see accompanying file Copyright.txt for details. ++ ++ This software is distributed WITHOUT ANY WARRANTY; without even the ++ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++ See the License for more information. ++============================================================================*/ ++#include "cmCPackHpkgGenerator.h" ++ ++#include "cmSystemTools.h" ++#include "cmMakefile.h" ++#include "cmGeneratedFileStream.h" ++#include "cmCPackLog.h" ++ ++#include ++#include ++ ++#include // USHRT_MAX ++ ++// NOTE: ++// Haiku .hpkg files are package using a custom compression and archive format. ++// The only way of creating them isusing the package tool provided with Haiku. ++ ++//---------------------------------------------------------------------- ++cmCPackHpkgGenerator::cmCPackHpkgGenerator() ++{ ++} ++ ++//---------------------------------------------------------------------- ++cmCPackHpkgGenerator::~cmCPackHpkgGenerator() ++{ ++} ++ ++//---------------------------------------------------------------------- ++int cmCPackHpkgGenerator::InitializeInternal() ++{ ++ // Haiku packages are "rootless": the hierarchy inside them is relative to ++ // the package mount/install point. ++ this->SetOption("CPACK_PACKAGING_INSTALL_PREFIX", NULL); ++ if (cmSystemTools::IsOn(this->GetOption("CPACK_SET_DESTDIR"))) ++ { ++ this->SetOption("CPACK_SET_DESTDIR", "I_OFF"); ++ } ++ return this->Superclass::InitializeInternal(); ++} ++ ++//---------------------------------------------------------------------- ++int cmCPackHpkgGenerator::PackageOnePack(std::string initialTopLevel, ++ std::string packageName) ++ { ++ int retval = 1; ++ // Begin the archive for this pack ++ std::string localToplevel(initialTopLevel); ++ std::string packageFileName( ++ cmSystemTools::GetParentDirectory(toplevel.c_str()) ++ ); ++ std::string outputFileName( ++ std::string(this->GetOption("CPACK_PACKAGE_FILE_NAME")) ++ +"_"+packageName + this->GetOutputExtension() ++ ); ++ ++ cmCPackLogger(cmCPackLog::LOG_DEBUG, ++ "Packaging " << outputFileName << std::endl); ++ ++ localToplevel += "/"+ packageName; ++ /* replace the TEMP DIRECTORY with the component one */ ++ this->SetOption("CPACK_TEMPORARY_DIRECTORY",localToplevel.c_str()); ++ packageFileName += "/"+ outputFileName; ++ /* replace proposed CPACK_OUTPUT_FILE_NAME */ ++ this->SetOption("CPACK_OUTPUT_FILE_NAME",outputFileName.c_str()); ++ /* replace the TEMPORARY package file name */ ++ this->SetOption("CPACK_TEMPORARY_PACKAGE_FILE_NAME", ++ packageFileName.c_str()); ++ // Tell CPackHpkg.cmake the name of the component GROUP. ++ this->SetOption("CPACK_HAIKU_PACKAGE_COMPONENT",packageName.c_str()); ++ // Tell CPackHpkg.cmake the path where the component is. ++ std::string component_path = "/"; ++ component_path += packageName; ++ this->SetOption("CPACK_HAIKU_PACKAGE_COMPONENT_PART_PATH", ++ component_path.c_str()); ++ if (!this->ReadListFile("CPackHpkg.cmake")) ++ { ++ cmCPackLogger(cmCPackLog::LOG_ERROR, ++ "Error while execution CPackHpkg.cmake" << std::endl); ++ retval = 0; ++ return retval; ++ } ++ ++ cmsys::Glob gl; ++ std::string findExpr(this->GetOption("WDIR")); ++ findExpr += "/*"; ++ gl.RecurseOn(); ++ if ( !gl.FindFiles(findExpr) ) ++ { ++ cmCPackLogger(cmCPackLog::LOG_ERROR, ++ "Cannot find any files in the installed directory" << std::endl); ++ return 0; ++ } ++ packageFiles = gl.GetFiles(); ++ ++ int res = createHpkg(packageName); ++ if (res != 1) ++ { ++ retval = 0; ++ } ++ // add the generated package to package file names list ++ packageFileNames.push_back(packageFileName); ++ return retval; ++} ++ ++//---------------------------------------------------------------------- ++int cmCPackHpkgGenerator::PackageComponents(bool ignoreGroup) ++{ ++ int retval = 1; ++ /* Reset package file name list it will be populated during the ++ * component packaging run*/ ++ packageFileNames.clear(); ++ std::string initialTopLevel(this->GetOption("CPACK_TEMPORARY_DIRECTORY")); ++ ++ cmCPackLogger(cmCPackLog::LOG_DEBUG, ++ "Packaging in components mode" << std::endl); ++ ++ // The default behavior is to have one package by component group ++ // unless CPACK_COMPONENTS_IGNORE_GROUP is specified. ++ if (!ignoreGroup) ++ { ++ std::map::iterator compGIt; ++ for (compGIt=this->ComponentGroups.begin(); ++ compGIt!=this->ComponentGroups.end(); ++compGIt) ++ { ++ cmCPackLogger(cmCPackLog::LOG_VERBOSE, "Packaging component group: " ++ << compGIt->first ++ << std::endl); ++ // Begin the archive for this group ++ retval &= PackageOnePack(initialTopLevel,compGIt->first); ++ } ++ // Handle Orphan components (components not belonging to any groups) ++ std::map::iterator compIt; ++ for (compIt=this->Components.begin(); ++ compIt!=this->Components.end(); ++compIt ) ++ { ++ // Does the component belong to a group? ++ if (compIt->second.Group==NULL) ++ { ++ cmCPackLogger(cmCPackLog::LOG_VERBOSE, ++ "Component <" ++ << compIt->second.Name ++ << "> does not belong to any group, package it separately." ++ << std::endl); ++ // Begin the archive for this orphan component ++ retval &= PackageOnePack(initialTopLevel,compIt->first); ++ } ++ } ++ } ++ // CPACK_COMPONENTS_IGNORE_GROUPS is set ++ // We build 1 package per component ++ else ++ { ++ cmCPackLogger(cmCPackLog::LOG_DEBUG, ++ "Groups are ignored" << std::endl); ++ ++ std::map::iterator compIt; ++ for (compIt=this->Components.begin(); ++ compIt!=this->Components.end(); ++compIt ) ++ { ++ retval &= PackageOnePack(initialTopLevel,compIt->first); ++ } ++ } ++ return retval; ++} ++ ++//---------------------------------------------------------------------- ++int cmCPackHpkgGenerator::PackageComponentsAllInOne() ++{ ++ int retval = 1; ++ std::string compInstDirName; ++ /* Reset package file name list it will be populated during the ++ * component packaging run*/ ++ packageFileNames.clear(); ++ std::string initialTopLevel(this->GetOption("CPACK_TEMPORARY_DIRECTORY")); ++ ++ compInstDirName = "ALL_COMPONENTS_IN_ONE"; ++ ++ cmCPackLogger(cmCPackLog::LOG_VERBOSE, ++ "Packaging all groups in one package..." ++ "(CPACK_COMPONENTS_ALL_[GROUPS_]IN_ONE_PACKAGE is set)" ++ << std::endl); ++ ++ cmCPackLogger(cmCPackLog::LOG_DEBUG, ++ "Packaging in all-in-one mode" << std::endl); ++ ++ // The ALL GROUPS in ONE package case ++ std::string localToplevel(initialTopLevel); ++ std::string packageFileName( ++ cmSystemTools::GetParentDirectory(toplevel.c_str()) ++ ); ++ std::string outputFileName( ++ std::string(this->GetOption("CPACK_PACKAGE_FILE_NAME")) ++ + this->GetOutputExtension() ++ ); ++ // all GROUP in one vs all COMPONENT in one ++ localToplevel += "/"+compInstDirName; ++ ++ /* replace the TEMP DIRECTORY with the component one */ ++ this->SetOption("CPACK_TEMPORARY_DIRECTORY",localToplevel.c_str()); ++ packageFileName += "/"+ outputFileName; ++ /* replace proposed CPACK_OUTPUT_FILE_NAME */ ++ this->SetOption("CPACK_OUTPUT_FILE_NAME",outputFileName.c_str()); ++ /* replace the TEMPORARY package file name */ ++ this->SetOption("CPACK_TEMPORARY_PACKAGE_FILE_NAME", ++ packageFileName.c_str()); ++ // Tell CPackHpkg.cmake the path where the component is. ++ std::string component_path = "/"; ++ component_path += compInstDirName; ++ this->SetOption("CPACK_HPKG_PACKAGE_COMPONENT_PART_PATH", ++ component_path.c_str()); ++ if (!this->ReadListFile("CPackHpkg.cmake")) ++ { ++ cmCPackLogger(cmCPackLog::LOG_ERROR, ++ "Error while execution CPackHpkg.cmake" << std::endl); ++ retval = 0; ++ return retval; ++ } ++ ++ cmsys::Glob gl; ++ std::string findExpr(this->GetOption("WDIR")); ++ findExpr += "/*"; ++ gl.RecurseOn(); ++ if ( !gl.FindFiles(findExpr) ) ++ { ++ cmCPackLogger(cmCPackLog::LOG_ERROR, ++ "Cannot find any files in the installed directory" << std::endl); ++ return 0; ++ } ++ packageFiles = gl.GetFiles(); ++ ++ int res = createHpkg(); ++ if (res != 1) ++ { ++ retval = 0; ++ } ++ // add the generated package to package file names list ++ packageFileNames.push_back(packageFileName); ++ return retval; ++} ++ ++//---------------------------------------------------------------------- ++int cmCPackHpkgGenerator::PackageFiles() ++{ ++ int retval = -1; ++ ++ /* Are we in the component packaging case */ ++ if (WantsComponentInstallation()) { ++ // CASE 1 : COMPONENT ALL-IN-ONE package ++ // If ALL GROUPS or ALL COMPONENTS in ONE package has been requested ++ // then the package file is unique and should be open here. ++ if (componentPackageMethod == ONE_PACKAGE) ++ { ++ return PackageComponentsAllInOne(); ++ } ++ // CASE 2 : COMPONENT CLASSICAL package(s) (i.e. not all-in-one) ++ // There will be 1 package for each component group ++ // however one may require to ignore component group and ++ // in this case you'll get 1 package for each component. ++ else ++ { ++ return PackageComponents(componentPackageMethod == ++ ONE_PACKAGE_PER_COMPONENT); ++ } ++ } ++ // CASE 3 : NON COMPONENT package. ++ else ++ { ++ if (!this->ReadListFile("CPackHpkg.cmake")) ++ { ++ cmCPackLogger(cmCPackLog::LOG_ERROR, ++ "Error while execution CPackHpkg.cmake" << std::endl); ++ retval = 0; ++ } ++ else ++ { ++ packageFiles = files; ++ return createHpkg(); ++ } ++ } ++ return retval; ++} ++ ++int cmCPackHpkgGenerator::createHpkg(std::string packageName) ++{ ++ // .PackageInfo file ++ std::string infofilename; ++ infofilename = this->GetOption("WDIR"); ++ infofilename += "/.PackageInfo"; ++ ++ std::string haiku_pkg_id = this->GetOption("CPACK_HAIKU_PACKAGE_NAME"); ++ if(packageName == "Unspecified") { ++ // Remove package specifier for the "unspecified" package ++ haiku_pkg_id.erase(haiku_pkg_id.length() - packageName.length() - 1); ++ packageName = ""; ++ } else if(packageName.length() > 0) { ++ packageName += "_"; ++ } ++ // haiku policy enforce lower case for package name ++ std::string haiku_pkg_name = cmsys::SystemTools::LowerCase(haiku_pkg_id); ++ ++ // mandatory entries: ++ const char* haiku_pkg_version = ++ this->GetOption("CPACK_HAIKU_PACKAGE_VERSION"); ++ const char* haiku_pkg_revision = ++ this->GetOption("CPACK_HAIKU_PACKAGE_REVISION"); ++ const char* haiku_pkg_arch = ++ this->GetOption("CPACK_HAIKU_PACKAGE_ARCHITECTURE"); ++ const char* maintainer = this->GetOption("CPACK_HAIKU_PACKAGE_PACKAGER"); ++ const char* vendor = this->GetOption("CPACK_HAIKU_PACKAGE_VENDOR"); ++ const char* summary = this->GetOption("CPACK_HAIKU_PACKAGE_DESCRIPTION_SUMMARY"); ++ const char* desc = this->GetOption("CPACK_HAIKU_PACKAGE_DESCRIPTION"); ++ const char* copyrights = this->GetOption("CPACK_HAIKU_PACKAGE_COPYRIGHT"); ++ const char* haiku_pkg_licenses = ++ this->GetOption("CPACK_HAIKU_PACKAGE_LICENSES"); ++ ++ // component-specific entries ++ std::string pkg_requires_option = "CPACK_HAIKU_" + packageName ++ + "PACKAGE_REQUIRES"; ++ const char* haiku_pkg_dep = this->GetOption(pkg_requires_option.c_str()); ++ std::string pkg_provides_option = "CPACK_HAIKU_" + packageName ++ + "PACKAGE_PROVIDES"; ++ const char* haiku_pkg_provides = this->GetOption(pkg_provides_option.c_str()); ++ ++ // optional entries ++ const char* haiku_pkg_url = this->GetOption("CPACK_HAIKU_PACKAGE_HOMEPAGE"); ++ const char* haiku_pkg_enhances = ++ this->GetOption("CPACK_HAIKU_PACKAGE_ENHANCES"); ++ const char* haiku_pkg_conflicts = ++ this->GetOption("CPACK_HAIKU_PACKAGE_CONFLICTS"); ++ const char* haiku_pkg_replaces = ++ this->GetOption("CPACK_HAIKU_PACKAGE_REPLACES"); ++ ++ { // the scope is needed for cmGeneratedFileStream ++ cmGeneratedFileStream out(infofilename.c_str()); ++ out << "name " << haiku_pkg_name << "\n"; ++ out << "version " << haiku_pkg_version << "-" << haiku_pkg_revision << "\n"; ++ out << "architecture " << haiku_pkg_arch << "\n"; ++ if(haiku_pkg_dep && *haiku_pkg_dep) ++ { ++ out << "requires {"; ++ std::vector requiresList; ++ cmSystemTools::ExpandListArgument(haiku_pkg_dep, requiresList); ++ for(std::vector::iterator i = ++ requiresList.begin(); i != requiresList.end(); ++i) ++ { ++ out << *i << "\n"; ++ } ++ ++ out << "}\n"; ++ } ++ if(haiku_pkg_url && *haiku_pkg_url) ++ { ++ out << "urls " << haiku_pkg_url << "\n"; ++ } ++ if (haiku_pkg_enhances && *haiku_pkg_enhances) ++ { ++ out << "freshens " << haiku_pkg_enhances << "\n"; ++ } ++ if (haiku_pkg_conflicts && *haiku_pkg_conflicts) ++ { ++ out << "conflicts " << haiku_pkg_conflicts << "\n"; ++ } ++ if (haiku_pkg_replaces && *haiku_pkg_replaces) ++ { ++ out << "replaces " << haiku_pkg_replaces << "\n"; ++ } ++ ++ out << "provides {"; ++ std::vector providesList; ++ cmSystemTools::ExpandListArgument(haiku_pkg_provides, providesList); ++ for(std::vector::iterator i = ++ providesList.begin(); i != providesList.end(); ++i) ++ { ++ out << *i << "\n"; ++ } ++ ++ out << "}\n"; ++ ++ out << "licenses {"; ++ std::vector licensesList; ++ cmSystemTools::ExpandListArgument(haiku_pkg_licenses, licensesList); ++ for(std::vector::iterator i = ++ licensesList.begin(); i != licensesList.end(); ++i) ++ { ++ out << "\"" << *i << "\"\n"; ++ } ++ ++ out << "}\n"; ++ ++ out << "copyrights {\"" << copyrights << "\"}\n"; ++ out << "packager " << maintainer << "\n"; ++ out << "vendor \"" << vendor << "\"\n"; ++ out << "summary \"" << summary << "\"\n"; ++ out << "description \"" << desc << "\"\n"; ++ out << std::endl; ++ } ++ ++ std::string cmd; ++ if (NULL != this->GetOption("CPACK_HAIKU_FAKEROOT_EXECUTABLE")) { ++ cmd += this->GetOption("CPACK_HAIKU_FAKEROOT_EXECUTABLE"); ++ } ++ cmd += "package create "; ++ cmd += this->GetOption("CPACK_TEMPORARY_PACKAGE_FILE_NAME"); ++ ++ std::string output; ++ int retval = -1; ++ int res = cmSystemTools::RunSingleCommand(cmd.c_str(), &output, ++ &retval, this->GetOption("WDIR"), this->GeneratorVerbose, 0); ++ ++ if ( !res || retval ) ++ { ++ std::string tmpFile = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); ++ tmpFile += "/Hpkg.log"; ++ cmGeneratedFileStream ofs(tmpFile.c_str()); ++ ofs << "# Run command: " << cmd.c_str() << std::endl ++ << "# Working directory: " << toplevel << std::endl ++ << "# Output:" << std::endl ++ << output.c_str() << std::endl; ++ cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem running package command: " ++ << cmd.c_str() << std::endl ++ << "Please check " << tmpFile.c_str() << " for errors" << std::endl); ++ return 0; ++ } ++ ++ const char* infoExtra = ++ this->GetOption("CPACK_HAIKU_PACKAGE_INFO_EXTRA"); ++ if( infoExtra ) ++ { ++ std::vector controlExtraList; ++ cmSystemTools::ExpandListArgument(infoExtra, controlExtraList); ++ for(std::vector::iterator i = ++ controlExtraList.begin(); i != controlExtraList.end(); ++i) ++ { ++ std::string filenamename = ++ cmsys::SystemTools::GetFilenameName(i->c_str()); ++ std::string localcopy = this->GetOption("WDIR"); ++ localcopy += "/"; ++ localcopy += filenamename; ++ // if we can copy the file, it means it does exist, let's add it: ++ if( cmsys::SystemTools::CopyFileIfDifferent( ++ i->c_str(), localcopy.c_str()) ) ++ { ++ // haiku is picky and need relative to ./ path in the tar.gz ++ cmd += " ./"; ++ cmd += filenamename; ++ } ++ } ++ } ++ res = cmSystemTools::RunSingleCommand(cmd.c_str(), &output, ++ &retval, this->GetOption("WDIR"), this->GeneratorVerbose, 0); ++ ++ if ( !res || retval ) ++ { ++ std::string tmpFile = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); ++ tmpFile += "/Hpkg.log"; ++ cmGeneratedFileStream ofs(tmpFile.c_str()); ++ ofs << "# Run command: " << cmd.c_str() << std::endl ++ << "# Working directory: " << toplevel << std::endl ++ << "# Output:" << std::endl ++ << output.c_str() << std::endl; ++ cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem running tar command: " ++ << cmd.c_str() << std::endl ++ << "Please check " << tmpFile.c_str() << " for errors" << std::endl); ++ return 0; ++ } ++ ++ return 1; ++} ++ ++bool cmCPackHpkgGenerator::SupportsComponentInstallation() const ++ { ++ return true; ++ } ++ ++std::string cmCPackHpkgGenerator::GetComponentInstallDirNameSuffix( ++ const std::string& componentName) ++ { ++ if (componentPackageMethod == ONE_PACKAGE_PER_COMPONENT) { ++ return componentName; ++ } ++ ++ if (componentPackageMethod == ONE_PACKAGE) { ++ return std::string("ALL_COMPONENTS_IN_ONE"); ++ } ++ // We have to find the name of the COMPONENT GROUP ++ // the current COMPONENT belongs to. ++ std::string groupVar = "CPACK_COMPONENT_" + ++ cmSystemTools::UpperCase(componentName) + "_GROUP"; ++ if (NULL != GetOption(groupVar.c_str())) ++ { ++ return std::string(GetOption(groupVar.c_str())); ++ } ++ else ++ { ++ return componentName; ++ } ++ } ++ ++ +diff --git a/Source/CPack/cmCPackHpkgGenerator.h b/Source/CPack/cmCPackHpkgGenerator.h +new file mode 100644 +index 0000000..ffa803d +--- /dev/null ++++ b/Source/CPack/cmCPackHpkgGenerator.h +@@ -0,0 +1,82 @@ ++/*============================================================================ ++ CMake - Cross Platform Makefile Generator ++ Copyright 2000-2013 Kitware, Inc. ++ ++ Distributed under the OSI-approved BSD License (the "License"); ++ see accompanying file Copyright.txt for details. ++ ++ This software is distributed WITHOUT ANY WARRANTY; without even the ++ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++ See the License for more information. ++============================================================================*/ ++ ++#ifndef cmCPackHpkgGenerator_h ++#define cmCPackHpkgGenerator_h ++ ++ ++#include "cmCPackGenerator.h" ++ ++/** \class cmCPackHpkgGenerator ++ * \brief A generator for Haiku packages ++ * ++ */ ++class cmCPackHpkgGenerator : public cmCPackGenerator ++{ ++public: ++ cmCPackTypeMacro(cmCPackHpkgGenerator, cmCPackGenerator); ++ ++ /** ++ * Construct generator ++ */ ++ cmCPackHpkgGenerator(); ++ virtual ~cmCPackHpkgGenerator(); ++ ++ static bool CanGenerate() ++ { ++#ifdef __HAIKU__ ++ return true; ++#else ++ // Sorry! Need the "package" tool from Haiku! ++ return false; ++#endif ++ } ++ ++protected: ++ virtual int InitializeInternal(); ++ /** ++ * This method factors out the work done in component packaging case. ++ */ ++ int PackageOnePack(std::string initialToplevel, std::string packageName); ++ /** ++ * The method used to package files when component ++ * install is used. This will create one ++ * archive for each component group. ++ */ ++ int PackageComponents(bool ignoreGroup); ++ /** ++ * Special case of component install where all ++ * components will be put in a single installer. ++ */ ++ int PackageComponentsAllInOne(); ++ virtual int PackageFiles(); ++ virtual const char* GetOutputExtension() { return ".hpkg"; } ++ virtual enum CPackSetDestdirSupport SupportsSetDestdir() const ++ { ++ return SETDESTDIR_UNSUPPORTED; ++ } ++ ++ virtual bool SupportsAbsoluteDestination() const ++ { ++ return false; ++ } ++ virtual bool SupportsComponentInstallation() const; ++ virtual std::string GetComponentInstallDirNameSuffix( ++ const std::string& componentName); ++ ++private: ++ int createHpkg(std::string packageName = ""); ++ std::vector packageFiles; ++ ++}; ++ ++#endif +-- +1.8.3.4 + + +From 8637f997646e2e3af5e1cc2506a217c712dec978 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Mon, 3 Mar 2014 15:57:05 +0100 +Subject: Haiku: Fix compiler detection when using distcc. + +Also remove outdated include directories. + +diff --git a/Modules/Platform/Haiku.cmake b/Modules/Platform/Haiku.cmake +index 825f851..af6697a 100644 +--- a/Modules/Platform/Haiku.cmake ++++ b/Modules/Platform/Haiku.cmake +@@ -21,18 +21,26 @@ set(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic") + # "/boot/system/develop/lib//", which we assume to be the secondary + # architecture specific subdirectory and extract the name of the architecture + # accordingly. +-set(__HAIKU_COMPILER ${CMAKE_C_COMPILER}) + +-if(NOT __HAIKU_COMPILER) ++# First of all, find a C or C++ compiler we can run. The "arg1" is necessary ++# here for compilers such as "distcc gcc-x86" or "ccache gcc-x86" ++# TODO See CMakeDetermineCompilerId.cmake for some more things we may want to do. ++if(CMAKE_C_COMPILER) ++ set(__HAIKU_COMPILER ${CMAKE_C_COMPILER}) ++ string (STRIP "${CMAKE_C_COMPILER_ARG1}" __HAIKU_COMPILER_FLAGS) ++else() + set(__HAIKU_COMPILER ${CMAKE_CXX_COMPILER}) ++ string (STRIP "${CMAKE_CXX_COMPILER_ARG1}" __HAIKU_COMPILER_FLAGS) + endif() + ++ + execute_process( +- COMMAND ${__HAIKU_COMPILER} -print-search-dirs ++ COMMAND ${__HAIKU_COMPILER} ${__HAIKU_COMPILER_FLAGS} -print-search-dirs + OUTPUT_VARIABLE _HAIKU_SEARCH_DIRS ++ RESULT_VARIABLE _HAIKU_SEARCH_DIRS_FOUND + OUTPUT_STRIP_TRAILING_WHITESPACE) + +-string(REGEX MATCH ".*\nlibraries: =?([^\n]*:)?/boot/system/develop/lib/([^/]*)/(:[^\n]*)?\n.*" _dummy "\n${_HAIKU_SEARCH_DIRS}\n") ++string(REGEX MATCH "libraries: =?([^\n]*:)?/boot/system/develop/lib/([^/]*)/(:[\n]*)?" _dummy "${_HAIKU_SEARCH_DIRS}\n") + set(CMAKE_HAIKU_SECONDARY_ARCH "${CMAKE_MATCH_2}") + + if(NOT CMAKE_HAIKU_SECONDARY_ARCH) +@@ -53,14 +61,12 @@ else() + endif() + + list(APPEND CMAKE_SYSTEM_PREFIX_PATH +- /boot/common/non-packaged +- /boot/common ++ /boot/system/non-packaged + /boot/system + ) + + LIST(APPEND CMAKE_HAIKU_COMMON_INCLUDE_DIRECTORIES +- /boot/common/non-packaged/develop/headers${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} +- /boot/common/develop/headers${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} ++ /boot/system/non-packaged/develop/headers${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} + /boot/system/develop/headers/os + /boot/system/develop/headers/os/app + /boot/system/develop/headers/os/device +@@ -108,8 +114,7 @@ LIST(APPEND CMAKE_HAIKU_CXX_INCLUDE_DIRECTORIES + LIST(APPEND CMAKE_SYSTEM_INCLUDE_PATH ${CMAKE_HAIKU_C_INCLUDE_DIRECTORIES}) + + LIST(APPEND CMAKE_HAIKU_DEVELOP_LIB_DIRECTORIES +- /boot/common/non-packaged/develop/lib${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} +- /boot/common/develop/lib${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} ++ /boot/system/non-packaged/develop/lib${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} + /boot/system/develop/lib${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} + ) + +@@ -120,6 +125,6 @@ LIST(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES + LIST(APPEND CMAKE_SYSTEM_LIBRARY_PATH ${CMAKE_HAIKU_DEVELOP_LIB_DIRECTORIES}) + + if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) +- set(CMAKE_INSTALL_PREFIX "/boot/common" CACHE PATH ++ set(CMAKE_INSTALL_PREFIX "/boot/system" CACHE PATH + "Install path prefix, prepended onto install directories." FORCE) + endif() +-- +1.8.3.4 + + +From a0951c88746d915cc54fb9261ca4c9e56a22898c Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Mon, 3 Mar 2014 16:01:23 +0100 +Subject: Adjust header search paths for some modules. + +On haiku, the headers aren't in an 'include' directory, so these too +restrictive search pathes are not working for us. Add a more tolerant +alternative. + +diff --git a/Modules/FindFreetype.cmake b/Modules/FindFreetype.cmake +index 6f03c86..f0f9fe1 100644 +--- a/Modules/FindFreetype.cmake ++++ b/Modules/FindFreetype.cmake +@@ -62,7 +62,7 @@ find_path(FREETYPE_INCLUDE_DIR_ft2build ft2build.h + ENV GTKMM_BASEPATH + [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path] + [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path] +- PATH_SUFFIXES include/freetype2 include ++ PATH_SUFFIXES include/freetype2 include freetype2 + ) + + find_path(FREETYPE_INCLUDE_DIR_freetype2 +@@ -79,7 +79,7 @@ find_path(FREETYPE_INCLUDE_DIR_freetype2 + ENV GTKMM_BASEPATH + [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path] + [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path] +- PATH_SUFFIXES include/freetype2 include ++ PATH_SUFFIXES include/freetype2 include freetype2 + ) + + find_library(FREETYPE_LIBRARY +diff --git a/Modules/FindSDL_image.cmake b/Modules/FindSDL_image.cmake +index e5173e3..da5799e 100644 +--- a/Modules/FindSDL_image.cmake ++++ b/Modules/FindSDL_image.cmake +@@ -54,7 +54,7 @@ find_path(SDL_IMAGE_INCLUDE_DIR SDL_image.h + HINTS + ENV SDLIMAGEDIR + ENV SDLDIR +- PATH_SUFFIXES include/SDL include/SDL12 include/SDL11 include ++ PATH_SUFFIXES SDL include/SDL include/SDL12 include/SDL11 include + ) + + if(CMAKE_SIZEOF_VOID_P EQUAL 8) +diff --git a/Modules/FindSDL_mixer.cmake b/Modules/FindSDL_mixer.cmake +index 8f2f066..b6ece11 100644 +--- a/Modules/FindSDL_mixer.cmake ++++ b/Modules/FindSDL_mixer.cmake +@@ -54,7 +54,7 @@ find_path(SDL_MIXER_INCLUDE_DIR SDL_mixer.h + HINTS + ENV SDLMIXERDIR + ENV SDLDIR +- PATH_SUFFIXES include/SDL include/SDL12 include/SDL11 include ++ PATH_SUFFIXES SDL include/SDL include/SDL12 include/SDL11 include + ) + + if(CMAKE_SIZEOF_VOID_P EQUAL 8) +diff --git a/Modules/FindSDL_ttf.cmake b/Modules/FindSDL_ttf.cmake +index 3f58ac1..c48fcbe 100644 +--- a/Modules/FindSDL_ttf.cmake ++++ b/Modules/FindSDL_ttf.cmake +@@ -54,7 +54,7 @@ find_path(SDL_TTF_INCLUDE_DIR SDL_ttf.h + HINTS + ENV SDLTTFDIR + ENV SDLDIR +- PATH_SUFFIXES include/SDL include/SDL12 include/SDL11 include ++ PATH_SUFFIXES SDL include/SDL include/SDL12 include/SDL11 include + ) + + if(CMAKE_SIZEOF_VOID_P EQUAL 8) +-- +1.8.3.4 + + +From 963b8828af64669032a8b03363e9e25844646bfc Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Mon, 3 Mar 2014 16:10:05 +0100 +Subject: Update CPU frequency detection code. + +The scheduler branch in Haiku changed the API for this. +(patch already submitted upstream) + +diff --git a/Source/kwsys/SystemInformation.cxx b/Source/kwsys/SystemInformation.cxx +index 5f20853..9c26380 100644 +--- a/Source/kwsys/SystemInformation.cxx ++++ b/Source/kwsys/SystemInformation.cxx +@@ -4698,11 +4698,28 @@ bool SystemInformationImplementation::QueryHaikuInfo() + { + #if defined(__HAIKU__) + ++ // CPU count + system_info info; + get_system_info(&info); +- + this->NumberOfPhysicalCPU = info.cpu_count; +- this->CPUSpeedInMHz = info.cpu_clock_speed / 1000000.0F; ++ ++ // CPU speed ++ uint32 topologyNodeCount = 0; ++ cpu_topology_node_info* topology = 0; ++ get_cpu_topology_info(0, &topologyNodeCount); ++ if (topologyNodeCount != 0) ++ topology = new cpu_topology_node_info[topologyNodeCount]; ++ get_cpu_topology_info(topology, &topologyNodeCount); ++ ++ for (uint32 i = 0; i < topologyNodeCount; i++) { ++ if (topology[i].type == B_TOPOLOGY_CORE) { ++ this->CPUSpeedInMHz = topology[i].data.core.default_frequency / ++ 1000000.0f; ++ break; ++ } ++ } ++ ++ delete[] topology; + + // Physical Memory + this->TotalPhysicalMemory = (info.max_pages * B_PAGE_SIZE) / (1024 * 1024) ; +-- +1.8.3.4 + + +From e8af83035ae75596f931c7e8a2b5b47d8160933a Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Mon, 10 Mar 2014 14:11:01 +0100 +Subject: Fix the architecture detection regexp again. + +Turns out it didn't work with the main compiler on a gcc4 install. +This new regexp was written by GSoC candidate akshay1994, part of his efforts +to build WebKit and fix one ticket for it. Thanks for getting through +this! + +diff --git a/Modules/Platform/Haiku.cmake b/Modules/Platform/Haiku.cmake +index af6697a..920ae8f 100644 +--- a/Modules/Platform/Haiku.cmake ++++ b/Modules/Platform/Haiku.cmake +@@ -40,7 +40,7 @@ execute_process( + RESULT_VARIABLE _HAIKU_SEARCH_DIRS_FOUND + OUTPUT_STRIP_TRAILING_WHITESPACE) + +-string(REGEX MATCH "libraries: =?([^\n]*:)?/boot/system/develop/lib/([^/]*)/(:[\n]*)?" _dummy "${_HAIKU_SEARCH_DIRS}\n") ++string(REGEX MATCH "libraries: =?([^\n]*:)?/boot/system/develop/lib/([^/]*)/?(:?\n+)" _dummy "${_HAIKU_SEARCH_DIRS}\n") + set(CMAKE_HAIKU_SECONDARY_ARCH "${CMAKE_MATCH_2}") + + if(NOT CMAKE_HAIKU_SECONDARY_ARCH) +-- +1.8.3.4 + diff --git a/dev-util/cppunit/cppunit-1.12.1.recipe b/dev-util/cppunit/cppunit-1.12.1.recipe index ccad5254c..9394c30c3 100644 --- a/dev-util/cppunit/cppunit-1.12.1.recipe +++ b/dev-util/cppunit/cppunit-1.12.1.recipe @@ -1,23 +1,81 @@ -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" +SUMMARY="C++ unit testing framework" +DESCRIPTION=" +CppUnit is a C++ unit testing framework. It started its life as a port of \ +JUnit to C++ by Michael Feathers. +" +HOMEPAGE="http://cppunit.sourceforge.net/" +SRC_URI="http://downloads.sourceforge.net/cppunit/cppunit-1.12.1.tar.gz" +CHECKSUM_SHA256="ac28a04c8e6c9217d910b0ae7122832d28d9917fa668bcc9e0b8b09acb4ea44a" +LICENSE="GNU LGPL v2.1" +COPYRIGHT=" + Michael Feathers + Jerome Lacoste + E. Sommerlade + Baptiste Lepilleur + Bastiaan Bakker + Steve Robbins + " REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" +ARCHITECTURES="x86 x86_gcc2" + +SOURCE_DIR="$portName-$portVersion" + +PROVIDES=" + cppunit = $portVersion compat >= 1.12 + cmd:cppunit_config = $portVersion compat >= 1.12 + cmd:DllPlugInTester = $portVersion compat >= 1.12 + lib:libcppunit = $portVersion compat >= 1.12 + lib:libcppunit_1.12 = $portVersion compat >= 1.12 + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:libtoolize + cmd:autoreconf + cmd:g++ + cmd:ld + cmd:make + cmd:sed + " + +PATCH() +{ + # change obsolete macro + sed -i -e 's#AM_CONFIG_HEADER(\(.*\))#AC_CONFIG_HEADERS([\1])#g' \ + configure.in +} + BUILD() { - cd cppunit-1.12.1 libtoolize --force --copy --install autoreconf -i - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make + + # there seems to be a problem with dirname + sed -i -e 's#\/\* automatically generated \*\/#$ac_prefix_conf_INP#g' \ + configure + + runConfigure ./configure + make $jobArgs } INSTALL() { - cd cppunit-1.12.1 make install + + prepareInstalledDevelLib libcppunit + fixPkgconfig + + packageEntries devel $developDir } -LICENSE="GNU LGPL v2.1" +PROVIDES_devel=" + cppunit_devel = $portVersion + devel:libcppunit = $portVersion compat >= 1.12 + " +REQUIRES_devel=" + cppunit == $portVersion base + " diff --git a/dev-util/cscope/cscope-15.7a.recipe b/dev-util/cscope/cscope-15.7a.recipe index af4f32cdd..dd2641b9e 100644 --- a/dev-util/cscope/cscope-15.7a.recipe +++ b/dev-util/cscope/cscope-15.7a.recipe @@ -1,24 +1,23 @@ -SUMMARY="Cscope is a developer's tool for browsing source code." +SUMMARY="A developer's tool for browsing source code" DESCRIPTION=" Allows searching code for: - * all references to a symbol - * global definitions - * functions called by a function - * functions calling a function - * text string - * regular expression pattern - * a file - * files including a file +* all references to a symbol +* global definitions +* functions called by a function +* functions calling a function +* text string +* regular expression pattern +* a file +* files including a file " HOMEPAGE="http://cscope.sourceforge.net/" SRC_URI="http://sourceforge.net/projects/cscope/files/cscope/15.7a/cscope-15.7a.tar.bz2" -CHECKSUM_MD5="da43987622ace8c36bbf14c15a350ec1" +CHECKSUM_SHA256="02638bcba790bc8b0562f28dbe789e61794415079d94a676efc287d18dc96037" REVISION="1" ARCHITECTURES="x86 x86_gcc2" LICENSE="BSD (3-clause)" COPYRIGHT="1998-2000 The Santa Cruz Operation" -SOURCE_DIR="$portVersionedName" PATCHES="cscope-15.7a.patch" diff --git a/dev-util/ctags/ctags-5.8.recipe b/dev-util/ctags/ctags-5.8.recipe index ada66ce26..341b7c862 100644 --- a/dev-util/ctags/ctags-5.8.recipe +++ b/dev-util/ctags/ctags-5.8.recipe @@ -1,10 +1,12 @@ -SUMMARY="Exuberant Ctags creates tags files for code browsing in editors" -DESCRIPTION="Exuberant Ctags creates tags files for code browsing in editors." +SUMMARY="A tool that creates tags files for code browsing in editors" +DESCRIPTION=" +Exuberant Ctags creates tags files for code browsing in editors. +" HOMEPAGE="http://ctags.sourceforge.net/" COPYRIGHT="1996-2009, Darren Hiebert" LICENSE="GNU GPL v2" SRC_URI="http://prdownloads.sourceforge.net/ctags/ctags-5.8.tar.gz" -CHECKSUM_MD5="c00f82ecdcc357434731913e5b48630d" +CHECKSUM_SHA256="0e44b45dcabe969e0bbbb11e30c246f81abe5d32012db37395eb57d66e9e99c7" REVISION="3" ARCHITECTURES="x86_gcc2 x86 x86_64" @@ -25,7 +27,6 @@ BUILD_PREREQUIRES=" cmd:sed " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/dev-util/fastdep/fastdep-0.16.recipe b/dev-util/fastdep/fastdep-0.16.recipe index 9aebf221e..39f5492ff 100644 --- a/dev-util/fastdep/fastdep-0.16.recipe +++ b/dev-util/fastdep/fastdep-0.16.recipe @@ -1,9 +1,13 @@ -SUMMARY="fastdep is a fast dependency generator for C/C++ files." -DESCRIPTION="fastdep is a preprocessor which generates dependency information suitable for Makefile inclusion from C or C++ source files. Meant to run on slower hardware, it is several orders of magnitude faster than gcc." -HOMEPAGE="http://www.irule.be/bvh/c++/fastdep/" +SUMMARY="A fast dependency generator for C/C++ files." +DESCRIPTION=" +fastdep is a preprocessor which generates dependency information suitable for \ +Makefile inclusion from C or C++ source files. Meant to run on slower \ +hardware, it is several orders of magnitude faster than gcc. +" +HOMEPAGE="http://www.irule.be/bvh/c++/fastdep/" SRC_URI="http://ports-space.haiku-files.org/dev-util/source/fastdep-0.16.tar.gz" +CHECKSUM_SHA256="ce87d5aba71a38ad175c831f4f380498e04c22d75478310299812485b3202abb" REVISION="1" -CHECKSUM_MD5="838c08b790a5dfe9a50a4aec7947bc54" LICENSE="GNU GPL v2" COPYRIGHT="2003 Bart Vanhauwaert" @@ -14,20 +18,20 @@ PATCHES="fastdep-0.16.patch" PROVIDES=" cmd:fastdep = $portVersion compat >= 0 " - + REQUIRES=" - lib:libstdc++.r4 - lib:libroot >= $haikuVersion" - -BUILD_REQUIRES=" + haiku >= $haikuVersion " - + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + BUILD_PREREQUIRES=" cmd:gcc cmd:make " -SOURCE_DIR="$portVersionedName" BUILD() { @@ -40,5 +44,3 @@ INSTALL() mkdir -p $binDir cp -f fastdep $binDir } - - diff --git a/dev-util/gdb/gdb-7.7.recipe b/dev-util/gdb/gdb-7.7.recipe new file mode 100644 index 000000000..baf71ce9e --- /dev/null +++ b/dev-util/gdb/gdb-7.7.recipe @@ -0,0 +1,71 @@ +SUMMARY="The GNU debugger" +DESCRIPTION=" +GDB, the GNU Project debugger, allows you to see what is going on \`inside' another program while it executes -- or what another program was doing at the moment it crashed. + +GDB can do four main kinds of things (plus other things in support of these) to help you catch bugs in the act: + + * Start your program, specifying anything that might affect its behavior. + * Make your program stop on specified conditions. + * Examine what has happened, when your program has stopped. + * Change things in your program, so you can experiment with correcting the effects of one bug and go on to learn about another. + +The program being debugged can be written in Ada, C, C++, Objective-C, Pascal (and many other languages). Those programs might be executing on the same machine as GDB (native) or on another machine (remote). GDB can run on most popular UNIX and Microsoft Windows variants. +" + +HOMEPAGE="http://sourceware.org/gdb/" +LICENSE="GNU GPL v3" +COPYRIGHT="Free Software Foundation" + +SRC_URI="http://ftp.gnu.org/gnu/gdb/gdb-7.7.tar.bz2" +CHECKSUM_SHA256="0404d1c6ee6b3ddd811722b5197944758d37b4591c216030effbac204f5a6c23" +REVISION="1" + +PATCHES="gdb-7.7.patchset" + +ARCHITECTURES="!x86_64" + +PROVIDES=" + gdb = $portVersion + cmd:gdb = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + lib:libiconv + lib:libintl + lib:libncurses + " + +BUILD_REQUIRES=" + gettext + libiconv_devel + ncurses_devel + " + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:autoreconf + cmd:awk + cmd:gcc + cmd:ld + cmd:make + " + +BUILD() +{ + cd gdb && autoreconf; cd .. + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install + mkdir -p /packaging/gdb/develop/lib + for i in libbfd.a libbfd.la libopcodes.a libopcodes.la; do + mv /packaging/gdb/lib/$i /packaging/gdb/develop/lib/$i + done +} diff --git a/dev-util/gdb/patches/gdb-7.7.patchset b/dev-util/gdb/patches/gdb-7.7.patchset new file mode 100644 index 000000000..5f67a67d9 --- /dev/null +++ b/dev-util/gdb/patches/gdb-7.7.patchset @@ -0,0 +1,222 @@ +From d1451ae108bc3bef182ca16e5b1a625483346cfe Mon Sep 17 00:00:00 2001 +From: Jonathan Schleifer +Date: Wed, 26 Mar 2014 02:26:37 +0100 +Subject: [PATCH 1/5] Add Haiku to config.bfd + +Merged the config.bfd from gdb-7.7 with the config.bfd from our +buildtools. +--- + bfd/config.bfd | 24 ++++++++++++++++++++++-- + 1 file changed, 22 insertions(+), 2 deletions(-) + +diff --git a/bfd/config.bfd b/bfd/config.bfd +index 4edcc6a..91a72db 100644 +--- a/bfd/config.bfd ++++ b/bfd/config.bfd +@@ -334,7 +334,7 @@ case "${targ}" in + ;; + arm-*-elf | arm-*-freebsd* | arm*-*-linux-* | arm*-*-conix* | \ + arm*-*-uclinux* | arm-*-kfreebsd*-gnu | \ +- arm*-*-eabi* ) ++ arm*-*-eabi* | arm*-*-haiku*) + targ_defvec=bfd_elf32_littlearm_vec + targ_selvecs=bfd_elf32_bigarm_vec + ;; +@@ -668,6 +668,11 @@ case "${targ}" in + targ_selvecs="bfd_elf32_i386_vec bfd_elf32_x86_64_vec i386linux_vec i386pei_vec x86_64pei_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec" + want64=true + ;; ++ x86_64-*-haiku*) ++ targ_defvec=bfd_elf64_x86_64_vec ++ targ_selvecs="bfd_elf32_i386_vec" ++ want64=true ++ ;; + x86_64-*-nacl*) + targ_defvec=bfd_elf32_x86_64_nacl_vec + targ_selvecs="bfd_elf32_i386_nacl_vec bfd_elf64_x86_64_nacl_vec bfd_elf32_bigarm_nacl_vec bfd_elf32_littlearm_nacl_vec" +@@ -716,6 +721,9 @@ case "${targ}" in + targ_defvec=bfd_elf32_i386_vec + targ_selvecs="i386pe_vec i386pei_vec" + ;; ++ i[3-7]86-*-haiku*) ++ targ_defvec=bfd_elf32_i386_vec ++ ;; + i[3-7]86-*-interix*) + targ_defvec=i386pei_vec + targ_selvecs="i386pe_vec" +@@ -907,7 +915,10 @@ case "${targ}" in + targ_selvecs=ieee_vec + targ_underscore=yes + ;; +- ++ m68*-*-haiku*) ++ targ_defvec=bfd_elf32_m68k_vec ++ targ_selvecs="m68kcoff_vec ieee_vec" ++ ;; + m88*-harris-cxux* | m88*-*-dgux* | m88*-*-sysv4*) + targ_defvec=bfd_elf32_m88k_vec + targ_selvecs=m88kbcs_vec +@@ -963,6 +974,10 @@ case "${targ}" in + targ_defvec=bfd_elf32_tradlittlemips_vec + targ_selvecs="bfd_elf32_tradbigmips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec ecoff_little_vec ecoff_big_vec" + ;; ++ mips*el-*-haiku*) ++ targ_defvec=bfd_elf32_littlemips_vec ++ targ_selvecs="bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_little_vec ecoff_big_vec" ++ ;; + mips*-*-netbsd*) + targ_defvec=bfd_elf32_tradbigmips_vec + targ_selvecs="bfd_elf32_tradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec ecoff_big_vec ecoff_little_vec" +@@ -1276,6 +1291,11 @@ case "${targ}" in + targ_selvecs="mach_o_be_vec mach_o_le_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec" + targ_archs="$targ_archs bfd_i386_arch" + ;; ++ powerpc-*-haiku*) ++ targ_defvec=bfd_elf32_powerpc_vec ++ targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec pef_vec pef_xlib_vec pmac_xcoff_vec ppcboot_vec" ++ targ_cflags=-D__HAIKU_TARGET__ ++ ;; + powerpc-*-macos*) + targ_defvec=pmac_xcoff_vec + ;; +-- +Jonathan + + +From 95c56e69655292af02df81204a6957af8589f91e Mon Sep 17 00:00:00 2001 +From: Jonathan Schleifer +Date: Wed, 26 Mar 2014 02:36:02 +0100 +Subject: [PATCH 2/5] Add Haiku to gdb/configure.tgt + +--- + gdb/configure.tgt | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/gdb/configure.tgt b/gdb/configure.tgt +index 47e98d9..e7843f6 100644 +--- a/gdb/configure.tgt ++++ b/gdb/configure.tgt +@@ -687,6 +687,10 @@ x86_64-*-openbsd*) + i387-tdep.o i386bsd-tdep.o i386obsd-tdep.o \ + bsd-uthread.o solib-svr4.o" + ;; ++x86_64-*-haiku*) ++ # Target: Haiku/x86_64 ++ gdb_target_obs="amd64-tdep.o i386-tdep.o i387-tdep.o solib-svr4.o" ++ ;; + xtensa*-*-linux*) gdb_target=linux + # Target: GNU/Linux Xtensa + gdb_target_obs="xtensa-tdep.o xtensa-config.o xtensa-linux-tdep.o \ +-- +Jonathan + + +From 809b3250039450b348f16aee7430d4c98b8ca2ec Mon Sep 17 00:00:00 2001 +From: Jonathan Schleifer +Date: Wed, 26 Mar 2014 02:54:53 +0100 +Subject: [PATCH 3/5] Add gdb/config/i386/haiku64.mh + +--- + gdb/config/i386/haiku64.mh | 2 ++ + gdb/configure.host | 1 + + 2 files changed, 3 insertions(+) + create mode 100644 gdb/config/i386/haiku64.mh + +diff --git a/gdb/config/i386/haiku64.mh b/gdb/config/i386/haiku64.mh +new file mode 100644 +index 0000000..aa99883 +--- /dev/null ++++ b/gdb/config/i386/haiku64.mh +@@ -0,0 +1,2 @@ ++# Host: Haiku/x86_64 ++NATDEPFILES= fork-child.o amd64-nat.o +diff --git a/gdb/configure.host b/gdb/configure.host +index 634213f..e91e8bd 100644 +--- a/gdb/configure.host ++++ b/gdb/configure.host +@@ -183,6 +183,7 @@ x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu) + x86_64-*-netbsd* | x86_64-*-knetbsd*-gnu) + gdb_host=nbsd64 ;; + x86_64-*-openbsd*) gdb_host=obsd64 ;; ++x86_64-*-haiku*) gdb_host=haiku64 ;; + x86_64-*-mingw*) gdb_host=mingw64 + gdb_host_obs=mingw-hdep.o + ;; +-- +Jonathan + + +From 4ed8b2a84a58416de1baf6d2222b377e1462a3d5 Mon Sep 17 00:00:00 2001 +From: Jonathan Schleifer +Date: Wed, 26 Mar 2014 03:11:41 +0100 +Subject: [PATCH 4/5] Look for socketpair and gethostbyname in -lnetwork + +--- + gdb/configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gdb/configure.ac b/gdb/configure.ac +index 55f37d2..6fd12a7 100644 +--- a/gdb/configure.ac ++++ b/gdb/configure.ac +@@ -510,10 +510,10 @@ AC_CHECK_FUNC(wctype, [], + [AC_CHECK_LIB(w, wctype)]) + + # Some systems (e.g. Solaris) have `gethostbyname' in libnsl. +-AC_SEARCH_LIBS(gethostbyname, nsl) ++AC_SEARCH_LIBS(gethostbyname, [nsl network]) + + # Some systems (e.g. Solaris) have `socketpair' in libsocket. +-AC_SEARCH_LIBS(socketpair, socket) ++AC_SEARCH_LIBS(socketpair, [socket network]) + + # Link in zlib if we can. This allows us to read compressed debug sections. + AM_ZLIB +-- +Jonathan + + +From ede4bf96bdfa2e6f4f36d7e0056adc5cdec70058 Mon Sep 17 00:00:00 2001 +From: Jonathan Schleifer +Date: Wed, 26 Mar 2014 03:17:18 +0100 +Subject: [PATCH 5/5] Remove autoconf version check + +--- + config/override.m4 | 21 --------------------- + 1 file changed, 21 deletions(-) + +diff --git a/config/override.m4 b/config/override.m4 +index 52bd1c3..3af7e21 100644 +--- a/config/override.m4 ++++ b/config/override.m4 +@@ -27,27 +27,6 @@ AC_DEFUN([AC_PREREQ], [frob]) + m4_copy_force([_AC_PREREQ], [AC_PREREQ]) + + +-dnl Ensure exactly this Autoconf version is used +-m4_ifndef([_GCC_AUTOCONF_VERSION], +- [m4_define([_GCC_AUTOCONF_VERSION], [2.64])]) +- +-dnl Test for the exact version when AC_INIT is expanded. +-dnl This allows to update the tree in steps (for testing) +-dnl by putting +-dnl m4_define([_GCC_AUTOCONF_VERSION], [X.Y]) +-dnl in configure.ac before AC_INIT, +-dnl without rewriting this file. +-dnl Or for updating the whole tree at once with the definition above. +-AC_DEFUN([_GCC_AUTOCONF_VERSION_CHECK], +-[m4_if(m4_defn([_GCC_AUTOCONF_VERSION]), +- m4_defn([m4_PACKAGE_VERSION]), [], +- [m4_fatal([Please use exactly Autoconf ]_GCC_AUTOCONF_VERSION[ instead of ]m4_defn([m4_PACKAGE_VERSION])[.])]) +-]) +-m4_define([AC_INIT], m4_defn([AC_INIT])[ +-_GCC_AUTOCONF_VERSION_CHECK +-]) +- +- + dnl Ensure we do not use a buggy M4. + m4_if(m4_index([..wi.d.], [.d.]), [-1], + [m4_fatal(m4_do([m4 with buggy strstr detected. Please install +-- +Jonathan + diff --git a/dev-util/global/global-6.2.9.recipe b/dev-util/global/global-6.2.9.recipe index d2fea9bd6..9293a643a 100644 --- a/dev-util/global/global-6.2.9.recipe +++ b/dev-util/global/global-6.2.9.recipe @@ -1,23 +1,21 @@ -SUMMARY="GNU Global is a source code tagging system." +SUMMARY="A source code tagging system." DESCRIPTION=" -GNU GLOBAL is a source code tagging system that works the same way -across diverse environments (emacs, vi, less, bash, web browser, etc). -You can locate symbols in source files and move there easily. It is -useful for hacking a large project containing many sub-directories, -many #ifdef and many main() functions. It is similar to ctags or -etags but is different from them at the point of independence of any -editor. It runs on a UNIX(POSIX) compatible operating system like GNU -and BSD." - +GNU GLOBAL is a source code tagging system that works the same way across \ +diverse environments (emacs, vi, less, bash, web browser, etc). You can locate \ +symbols in source files and move there easily. It is useful for hacking a \ +large project containing many sub-directories, many #ifdef and many main() \ +functions. It is similar to ctags or etags but is different from them at the \ +point of independence of any editor. It runs on a UNIX(POSIX) compatible \ +operating system like GNU and BSD. +" HOMEPAGE="http://www.gnu.org/software/global/" SRC_URI="http://ftp.gnu.org/pub/gnu/global/global-6.2.9.tar.gz" -CHECKSUM_MD5="39a1dd6e537929b66600b9e54aae1a6b" -REVISION="1" +CHECKSUM_SHA256="d8d831cbd9bac9f51598af316231290cc328e4f18dc29b58a2f2ae0fee44c303" +REVISION="2" LICENSE="GNU GPL v3" COPYRIGHT="2000-2013 Tama Communications Corporation 2007-2013 Free Software Foundation, Inc." -SOURCE_DIR="$portVersionedName" ARCHITECTURES="x86 x86_gcc2" PATCHES="global-6.2.9.patch" @@ -66,8 +64,8 @@ BUILD() autoreconf -fi runConfigure ./configure \ --with-ncurses \ - --with-exuberant-ctags=${packageLinksDir}/cmd~ctags/bin/ctags \ - --with-posix-sort=${packageLinksDir}/cmd~sort/bin/sort + --with-exuberant-ctags=${portPackageLinksDir}/cmd~ctags/bin/ctags \ + --with-posix-sort=${portPackageLinksDir}/cmd~sort/bin/sort make } diff --git a/dev-util/gperf/gperf-3.0.4.recipe b/dev-util/gperf/gperf-3.0.4.recipe index 309ff1491..c4196d033 100644 --- a/dev-util/gperf/gperf-3.0.4.recipe +++ b/dev-util/gperf/gperf-3.0.4.recipe @@ -1,14 +1,20 @@ SUMMARY="GNU perfect hash function generator" -DESCRIPTION="GNU gperf is a perfect hash function generator. For a given list of strings, it produces a hash function and hash table, in form of C or C++ code, for looking up a value depending on the input string. The hash function is perfect, which means that the hash table has no collisions, and the hash table lookup needs a single string comparison only. - -GNU gperf is highly customizable. There are options for generating C or C++ code, for emitting switch statements or nested ifs instead of a hash table, and for tuning the algorithm employed by gperf. - -Online Manual is available at www.gnu.org/software/gperf/manual/gperf.html" +DESCRIPTION=" +GNU gperf is a perfect hash function generator. For a given list of strings, \ +it produces a hash function and hash table, in form of C or C++ code, for \ +looking up a value depending on the input string. The hash function is \ +perfect, which means that the hash table has no collisions, and the hash table \ +lookup needs a single string comparison only. +GNU gperf is highly customizable. There are options for generating C or C++ \ +code, for emitting switch statements or nested ifs instead of a hash table, \ +and for tuning the algorithm employed by gperf. +Online Manual is available at www.gnu.org/software/gperf/manual/gperf.html +" HOMEPAGE="http://www.gnu.org/software/gperf/" COPYRIGHT="1989-1998, 2000-2004, 2006-2009 Free Software Foundation, Inc." LICENSE="GNU GPL v3" SRC_URI="http://ftp.gnu.org/pub/gnu/gperf/gperf-3.0.4.tar.gz" -CHECKSUM_MD5="c1f1db32fb6598d6a93e6e88796a8632" +CHECKSUM_SHA256="767112a204407e62dbc3106647cf839ed544f3cf5d0f0523aaa2508623aad63e" REVISION="1" ARCHITECTURES="x86_gcc2 x86 x86_64" diff --git a/dev-util/idutils/idutils-4.6.recipe b/dev-util/idutils/idutils-4.6.recipe index 788e41def..5ec691dd9 100644 --- a/dev-util/idutils/idutils-4.6.recipe +++ b/dev-util/idutils/idutils-4.6.recipe @@ -1,25 +1,21 @@ SUMMARY="Fast, high-capacity, identifier database tool." DESCRIPTION=" -An 'ID database' is a binary file containing a list of file names, a -list of tokens, and a sparse matrix indicating which tokens appear -in which files. - -With this database and some tools to query it, many text-searching -tasks become simpler and faster. For example, you can list all -files that reference a particular #include' file throughout a huge -source hierarchy, search for all the memos containing references to a -project, or automatically invoke an editor on all files containing -references to some function or variable. Anyone with a large -software project to maintain, or a large set of text files to -organize, can benefit from the ID utilities." - +An 'ID database' is a binary file containing a list of file names, a list of \ +tokens, and a sparse matrix indicating which tokens appear in which files. +With this database and some tools to query it, many text-searching tasks \ +become simpler and faster. For example, you can list all files that reference \ +a particular #include' file throughout a huge source hierarchy, search for all \ +the memos containing references to a project, or automatically invoke an \ +editor on all files containing references to some function or variable. Anyone \ +with a large software project to maintain, or a large set of text files to \ +organize, can benefit from the ID utilities. +" HOMEPAGE="http://www.gnu.org/software/idutils/" SRC_URI="http://ftp.gnu.org/gnu/idutils/idutils-4.6.tar.xz" -CHECKSUM_MD5="99b572536377fcddb4d38e86a3c215fd" -REVISION="1" +CHECKSUM_SHA256="8181f43a4fb62f6f0ccf3b84dbe9bec71ecabd6dfdcf49c6b5584521c888aac2" +REVISION="2" LICENSE="GNU GPL v2" COPYRIGHT="1986-2012 Free Software Foundation, Inc." -SOURCE_DIR="$portVersionedName" ARCHITECTURES="x86 x86_gcc2" PATCHES="idutils-4.6.patchset" @@ -65,4 +61,5 @@ BUILD() INSTALL() { make install + rm $libDir/charset.alias } diff --git a/dev-util/indent/indent-2.2.11.recipe b/dev-util/indent/indent-2.2.11.recipe index aebc21acc..bcc2e7068 100644 --- a/dev-util/indent/indent-2.2.11.recipe +++ b/dev-util/indent/indent-2.2.11.recipe @@ -35,5 +35,5 @@ COPYRIGHT="1999-2000 Carlo Wood. All rights reserved 1992, 2002, 2008 Free Software Foundation, Inc. All rights reserved. 1985 Sun Microsystems, Inc. 1980 The Regents of the University of California. - 1976 Board of Trustees of the University of Illinois. All rights reserved." - + 1976 Board of Trustees of the University of Illinois. All rights reserved. + " diff --git a/dev-util/intltool/intltool-0.40.6.recipe b/dev-util/intltool/intltool-0.40.6.recipe index 05eb668c7..ec3709fec 100644 --- a/dev-util/intltool/intltool-0.40.6.recipe +++ b/dev-util/intltool/intltool-0.40.6.recipe @@ -1,25 +1,64 @@ -DESCRIPTION="intltool" -HOMEPAGE="http://www.gnome.org/" +SUMMARY="A set of tools to centralize translation of file formats." +DESCRIPTION=" +intltool is a set of tools to centralize translation of many different file \ +formats using GNU gettext-compatible PO files. +The intltool collection can be used to do these things: +* Extract translatable strings from various source files (.xml.in, glade, \ +.desktop.in, .server.in, .oaf.in). +* Collect the extracted strings together with messages from traditional source \ +files (.c, .h) in po/PACKAGE.pot. +* Merge back the translations from .po files into .xml, .desktop and oaf \ +files. This merge step will happen at build resp. installation time. +" +HOMEPAGE="http://freedesktop.org/wiki/Software/intltool" SRC_URI="ftp://ftp.gnome.org/pub/gnome/sources/intltool/0.40/intltool-0.40.6.tar.gz" -CHECKSUM_MD5="8e40f9d1c7308eddbfd24b22cd540631" -REVISION="2" -STATUS_HAIKU="stable" -MESSAGE="Requires XML::Parser perl module installed" -DEPEND="" +CHECKSUM_SHA256="36cd8fe249d0cc20918b6d4583267208bf74c8d541c67a5fe63316846344f9f7" + +LICENSE="GNU GPL v2" +COPYRIGHT="1994-1996, 1999-2002, 2004, 2005 Free Software Foundation, Inc." + +REVISION="3" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + intltool = $portVersion + cmd:intltool_extract$secondaryArchSuffix = $portVersion + cmd:intltool_merge$secondaryArchSuffix = $portVersion + cmd:intltool_prepare$secondaryArchSuffix = $portVersion + cmd:intltool_update$secondaryArchSuffix = $portVersion + cmd:intltoolize$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + cmd:perl + xml_parser + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + xml_parser + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:perl + cmd:autoconf + " + BUILD() { - cd intltool-0.40.6 - ./configure --prefix="$(finddir B_COMMON_DIRECTORY)" \ - --datarootdir="$(finddir B_COMMON_DATA_DIRECTORY)" \ - --mandir="$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man" \ + runConfigure ./configure make } INSTALL() { - cd intltool-0.40.6 make install +} + +TEST () +{ make check } -LICENSE="GNU GPL v2" -COPYRIGHT="1994-1996, 1999-2002, 2004, 2005 Free Software Foundation, Inc." diff --git a/dev-util/netsurf_buildsystem/netsurf_buildsystem-1.0_git.recipe b/dev-util/netsurf_buildsystem/netsurf_buildsystem-1.0_git.recipe new file mode 100644 index 000000000..00f6e381a --- /dev/null +++ b/dev-util/netsurf_buildsystem/netsurf_buildsystem-1.0_git.recipe @@ -0,0 +1,44 @@ +SUMMARY="NetSurf build framework" +DESCRIPTION=" +NetSurf build framework for compiling some of their libraries. +" +HOMEPAGE="http://www.netsurf-browser.org/" +SRC_URI="git://git.netsurf-browser.org/buildsystem.git" +REVISION="1" +LICENSE="MIT" +COPYRIGHT="2009 - 2013 The NetSurf Browser project" + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + netsurf_buildsystem$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + + +BUILD() +{ + # no-op + # make + : +} + +INSTALL() +{ + make install PREFIX=$prefix BASE=$prefix/data/netsurf-buildsystem +} + diff --git a/dev-util/ninja/ninja-1.4.0.recipe b/dev-util/ninja/ninja-1.4.0.recipe index dad0224b6..dbf3f63b1 100644 --- a/dev-util/ninja/ninja-1.4.0.recipe +++ b/dev-util/ninja/ninja-1.4.0.recipe @@ -39,23 +39,19 @@ INSTALL() } DESCRIPTION=" - Ninja is a small build system with a focus on speed. It differs from other - build systems in two major respects: it is designed to have its input files - generated by a higher-level build system, and it is designed to run builds - as fast as possible. - - Why yet another build system? - Where other build systems are high-level languages Ninja aims to be an - assembler. - - Ninja build files are human-readable but not especially convenient to write - by hand. (See the generated build file used to build Ninja itself.) These - constrained build files allow Ninja to evaluate incremental builds quickly. - For the Chrome browser on Linux (the motivating project behind Ninja), - Ninja is under a second for a no-op build where the equivalent Makefiles - took over ten seconds. - - Ninja's low-level approach makes it perfect for embedding into more - featureful build systems. Via gyp it can build Chrome and v8 and node.js - etc.; via CMake it can build LLVM and KDE and Blender etc. - " +Ninja is a small build system with a focus on speed. It differs from other \ +build systems in two major respects: it is designed to have its input files \ +generated by a higher-level build system, and it is designed to run builds as \ +fast as possible. +Why yet another build system? Where other build systems are high-level \ +languages Ninja aims to be an assembler. +Ninja build files are human-readable but not especially convenient to write by \ +hand. (See the generated build file used to build Ninja itself.) These \ +constrained build files allow Ninja to evaluate incremental builds quickly. \ +For the Chrome browser on Linux (the motivating project behind Ninja), Ninja \ +is under a second for a no-op build where the equivalent Makefiles took over \ +ten seconds. +Ninja's low-level approach makes it perfect for embedding into more featureful \ +build systems. Via gyp it can build Chrome and v8 and node.js etc.; via CMake \ +it can build LLVM and KDE and Blender etc. +" diff --git a/dev-util/patchutils/patchutils-0.3.3.recipe b/dev-util/patchutils/patchutils-0.3.3.recipe index 04e7517c7..d74818d29 100644 --- a/dev-util/patchutils/patchutils-0.3.3.recipe +++ b/dev-util/patchutils/patchutils-0.3.3.recipe @@ -1,34 +1,29 @@ -SUMMARY="A small collection of programs that operate on patch files." +SUMMARY="A small collection of programs that operate on patch files" DESCRIPTION=" - *Interdiff generates an incremental patch from two patches - against a common source. - *Combinediff generates a single patch from two incremental - patches, allowing you to merge patches together. - *Filterdiff will select the portions of a patch file that apply - to files matching (or, alternatively, not matching) a shell - wildcard. - *Fixcvsdiff is for correcting the output of ‘cvs diff’. - *Rediff corrects hand-edited patches, by comparing the original - patch with the modified one and adjusting the offsets and - counts. - *Lsdiff displays a short listing of affected files in a patch - file, along with (optionally) the line numbers of the start of - each patch. - *Splitdiff separates out patches from a patch file so that each - new patch file only alters any given file once. - *Grepdiff displays a list of the files modified by a patch where - the patch contains a given regular expression. - *Recountdiff fixes up counts and offsets in a unified diff. - *Unwrapdiff fixes word-wrapped unified diffs. +*Interdiff generates an incremental patch from two patches against a common \ +source. +*Combinediff generates a single patch from two incremental patches, allowing \ +you to merge patches together. +*Filterdiff will select the portions of a patch file that apply to files \ +matching (or, alternatively, not matching) a shell wildcard. +*Fixcvsdiff is for correcting the output of ‘cvs diff’. +*Rediff corrects hand-edited patches, by comparing the original patch with the \ +modified one and adjusting the offsets and counts. +*Lsdiff displays a short listing of affected files in a patch file, along with \ +(optionally) the line numbers of the start of each patch. +*Splitdiff separates out patches from a patch file so that each new patch file \ +only alters any given file once. +*Grepdiff displays a list of the files modified by a patch where the patch \ +contains a given regular expression. +*Recountdiff fixes up counts and offsets in a unified diff. +*Unwrapdiff fixes word-wrapped unified diffs. " - HOMEPAGE="http://cyberelk.net/tim/patchutils/" SRC_URI="http://cyberelk.net/tim/data/patchutils/stable/patchutils-0.3.3.tar.xz" -CHECKSUM_MD5="b640b6b8af6183f83eacf7bd6d2460cb" +CHECKSUM_SHA256="91f4e8451b2efcac5d40c966e42c175803450f0de94c926bfecc12c90070ad3c" REVISION="1" LICENSE="GNU GPL v2" COPYRIGHT="2001-2013 Tim Waugh" -SOURCE_DIR="$portVersionedName" ARCHITECTURES="x86 x86_gcc2" PROVIDES=" diff --git a/dev-util/pkgconfig/pkgconfig-0.27.1.recipe b/dev-util/pkgconfig/pkgconfig-0.27.1.recipe index 8fa68597d..052d0e0aa 100644 --- a/dev-util/pkgconfig/pkgconfig-0.27.1.recipe +++ b/dev-util/pkgconfig/pkgconfig-0.27.1.recipe @@ -1,36 +1,47 @@ SUMMARY="Helper tool for compiling applications and libraries" -DESCRIPTION="pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the correct compiler options on the command line so an application can use gcc -o test test.cpkg-config --libs --cflags glib-2.0 for instance, rather than hard-coding values on where to find glib (or other libraries). It is language-agnostic, so it can be used for defining the location of documentation tools, for instance." +DESCRIPTION=" +pkg-config is a helper tool used when compiling applications and libraries. It \ +helps you insert the correct compiler options on the command line so an \ +application can use gcc -o test test.cpkg-config --libs --cflags glib-2.0 for \ +instance, rather than hard-coding values on where to find glib (or other \ +libraries). It is language-agnostic, so it can be used for defining the \ +location of documentation tools, for instance. +" HOMEPAGE="http://pkg-config.freedesktop.org/wiki/" LICENSE="GNU GPL v2" COPYRIGHT="1998, 2001-2006 Red Hat Inc." SRC_URI="http://pkgconfig.freedesktop.org/releases/pkg-config-0.27.1.tar.gz" -CHECKSUM_MD5="5392b4e3372879c5bf856173b418d6a2" -REVISION="1" +CHECKSUM_SHA256="4f63d0df3035101b12949250da5231af49e3c3afcd8fb18554fa7c3cb92d8c17" +REVISION="2" ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" PATCHES="pkgconfig-0.27.1.patchset" PROVIDES=" - pkgconfig = $portVersion compat >= 0.27 - cmd:pkg_config = $portVersion compat >= 0.27 + pkgconfig$secondaryArchSuffix = $portVersion compat >= 0.27 + cmd:pkg_config$secondaryArchSuffix = $portVersion compat >= 0.27 " REQUIRES=" - haiku >= $haikuVersion - lib:libiconv + haiku$secondaryArchSuffix >= $haikuVersion + lib:libiconv$secondaryArchSuffix " BUILD_REQUIRES=" - devel:libiconv + devel:libiconv$secondaryArchSuffix " BUILD_PREREQUIRES=" - haiku_devel >= $haikuVersion + haiku${secondaryArchSuffix}_devel >= $haikuVersion cmd:aclocal cmd:autoconf cmd:automake cmd:autoreconf - cmd:gcc - cmd:ld + cmd:awk + cmd:find + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix cmd:libtoolize cmd:make + cmd:xargs " SOURCE_DIR="pkg-config-0.27.1" @@ -46,9 +57,9 @@ BUILD() autoconf automake --add-missing - pcPathSubdir="develop/lib/pkgconfig" - pcPath="/boot/common/non-packaged/$pcPathSubdir" - pcPath="$pcPath:/boot/common/$pcPathSubdir" + pcPathSubdir="develop/lib${secondaryArchSuffix/_//}/pkgconfig" + pcPath="/boot/home/config/non-packaged/$pcPathSubdir" + pcPath="$pcPath:/boot/home/config/$pcPathSubdir" pcPath="$pcPath:/boot/system/$pcPathSubdir" runConfigure ./configure \ diff --git a/dev-util/pkgconfig/pkgconfig-0.28.recipe b/dev-util/pkgconfig/pkgconfig-0.28.recipe index 631471ba4..1d63e08e0 100644 --- a/dev-util/pkgconfig/pkgconfig-0.28.recipe +++ b/dev-util/pkgconfig/pkgconfig-0.28.recipe @@ -5,7 +5,8 @@ CHECKSUM_MD5="aa3c86e67551adc3ac865160e34a2a0d" REVISION="1" STATUS_HAIKU="stable" DEPEND="" -BUILD { +BUILD() +{ # because we patched configure.ac... cd pkg-config-0.28/glib autoreconf -i -f @@ -22,7 +23,8 @@ BUILD { make } -INSTALL { +INSTALL() +{ cd pkg-config-0.28 make install } diff --git a/dev-util/posixtestsuite/posixtestsuite-1.5.2.recipe b/dev-util/posixtestsuite/posixtestsuite-1.5.2.recipe index 3a9eda09b..dbd5694e5 100644 --- a/dev-util/posixtestsuite/posixtestsuite-1.5.2.recipe +++ b/dev-util/posixtestsuite/posixtestsuite-1.5.2.recipe @@ -1,4 +1,7 @@ -DESCRIPTION="The Open POSIX Test Suite is a test suite for POSIX 2001 APIs, not tied to specific implementations." +DESCRIPTION=" +The Open POSIX Test Suite is a test suite for POSIX 2001 APIs, not tied to \ +specific implementations. +" HOMEPAGE="http://posixtest.sourceforge.net/" SRC_URI="http://sourceforge.net/projects/posixtest/files/posixtest/posixtestsuite-1.5.2/posixtestsuite-1.5.2.tar.gz/download" CHECKSUM_MD5="9a8e6516585c886fddc257270061b59c" diff --git a/dev-util/ragel/patches/ragel-6.8.patch b/dev-util/ragel/patches/ragel-6.8.patch new file mode 100644 index 000000000..756ff6a5b --- /dev/null +++ b/dev-util/ragel/patches/ragel-6.8.patch @@ -0,0 +1,23 @@ +diff -ur ragel-6.8/ragel/common.h ragel-6.8-haiku/ragel/common.h +--- ragel-6.8/ragel/common.h 2013-02-11 01:57:45.020971520 +0000 ++++ ragel-6.8-haiku/ragel/common.h 2013-12-30 19:13:12.330301440 +0000 +@@ -24,6 +24,7 @@ + + #include + #include ++#include + #include "dlist.h" + + /* Location in an input file. */ +diff -ur ragel-6.8/ragel/mlcodegen.cpp ragel-6.8-haiku/ragel/mlcodegen.cpp +--- ragel-6.8/ragel/mlcodegen.cpp 2013-02-11 01:57:45.022282240 +0000 ++++ ragel-6.8-haiku/ragel/mlcodegen.cpp 2013-12-30 19:18:36.937426944 +0000 +@@ -514,7 +514,7 @@ + { + data_prefix = string(fsmName) + "_"; + if (data_prefix.size() > 0) +- data_prefix[0] = ::tolower(data_prefix[0]); // uncapitalize ++ data_prefix[0] = tolower(data_prefix[0]); // uncapitalize + } + if ( !noPrefix ) + return data_prefix; diff --git a/dev-util/ragel/ragel-6.8.recipe b/dev-util/ragel/ragel-6.8.recipe new file mode 100644 index 000000000..99d3f3f2c --- /dev/null +++ b/dev-util/ragel/ragel-6.8.recipe @@ -0,0 +1,54 @@ +SUMMARY="Ragel compiles executable finite state machines from regular languages" +DESCRIPTION=" +Ragel compiles executable finite state machines from regular languages. +Ragel targets C, C++, Objective-C, C#, D, Java, Ruby, OCaml and Go. +Ragel state machines can not only recognize byte sequences as regular \ +expression machines do, but can also execute code at arbitrary points in the \ +recognition of a regular language. +Code embedding is done using inline operators that do not disrupt the regular \ +language syntax. +" +HOMEPAGE="http://www.complang.org/ragel" +SRC_URI="http://www.complang.org/ragel/ragel-6.8.tar.gz" +CHECKSUM_SHA256="dd7f7d22f3a58147379bda61334d341c2caa0caf9f71897e3e4ec05c8f398764" + +REVISION="1" + +LICENSE="GNU GPL v1" +COPYRIGHT=" + 2001-2009 Adrian Thurston + 2007 Victor Hugo Borja + 2011 Josef Goettgens + " + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + ragel$secondaryArchSuffix = $portVersion + cmd:ragel$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +PATCHES="ragel-6.8.patch" + +BUILD() +{ + runConfigure ./configure + make +} + +INSTALL() +{ + make install +} diff --git a/dev-util/scons/scons-2.2.0.recipe b/dev-util/scons/scons-2.2.0.recipe index 000be6c55..d5b49e719 100644 --- a/dev-util/scons/scons-2.2.0.recipe +++ b/dev-util/scons/scons-2.2.0.recipe @@ -1,11 +1,17 @@ SUMMARY="Open Source software construction tool" -DESCRIPTION="SCons is an Open Source software construction tool—that is, a next-generation build tool. Think of SCons as an improved, cross-platform substitute for the classic Make utility with integrated functionality similar to autoconf/automake and compiler caches such as ccache. In short, SCons is an easier, more reliable and faster way to build software." +DESCRIPTION=" +SCons is an Open Source software construction tool—that is, a next-generation \ +build tool. Think of SCons as an improved, cross-platform substitute for the \ +classic Make utility with integrated functionality similar to \ +autoconf/automake and compiler caches such as ccache. In short, SCons is an \ +easier, more reliable and faster way to build software. +" 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" +SRC_URI="http://sourceforge.net/projects/scons/files/scons/2.2.0/scons-2.2.0.tar.gz" +CHECKSUM_SHA256="f7fcd11a7af7ec13d587a2f7cf14a92e3223eea64bf078454a9856ec0ab465b9" +REVISION="3" ARCHITECTURES="x86_gcc2 x86 x86_64" PATCHES="scons-2.2.0.patchset" diff --git a/dev-util/scons/scons-2.3.1.recipe b/dev-util/scons/scons-2.3.1.recipe new file mode 100644 index 000000000..34c143f5a --- /dev/null +++ b/dev-util/scons/scons-2.3.1.recipe @@ -0,0 +1,53 @@ +SUMMARY="Open Source software construction tool" +DESCRIPTION=" +SCons is an Open Source software construction tool—that is, a next-generation \ +build tool. Think of SCons as an improved, cross-platform substitute for the \ +classic Make utility with integrated functionality similar to \ +autoconf/automake and compiler caches such as ccache. In short, SCons is an \ +easier, more reliable and faster way to build software. +" +HOMEPAGE="http://www.scons.org/" +LICENSE="MIT" +COPYRIGHT="2001-2012 The SCons Foundation" +SRC_URI="http://sourceforge.net/projects/scons/files/scons/$portVersion/scons-$portVersion.tar.gz" +CHECKSUM_SHA256="091ab468f8e6084c30f3ae9fd48828e3884021401cfef4b713d13161ba120201" +REVISION="3" +ARCHITECTURES="x86_gcc2 x86 x86_64" + +PATCHES="scons-2.2.0.patchset" + +PROVIDES=" + scons = $portVersion compat >= 2 + cmd:scons = $portVersion compat >= 2 + cmd:scons_$portVersion = $portVersion compat >= 2 + cmd:scons_time = $portVersion compat >= 2 + cmd:scons_time_$portVersion = $portVersion compat >= 2 + cmd:sconsign = $portVersion compat >= 2 + cmd:sconsign_$portVersion = $portVersion compat >= 2 + " +REQUIRES=" + haiku >= $haikuVersion + cmd:python + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + cmd:python + " + +BUILD() +{ + 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() +{ + options="$options --prefix=$prefix" + options="$options --install-data=$documentationDir" + options="$options --symlink-scons" + options="$options --standard-lib" + python setup.py install $options +} diff --git a/dev-vcs/bzr/bzr-2.2.0.recipe b/dev-vcs/bzr/bzr-2.2.0.recipe deleted file mode 100644 index 876b25b26..000000000 --- a/dev-vcs/bzr/bzr-2.2.0.recipe +++ /dev/null @@ -1,40 +0,0 @@ -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" -DEPEND="" - -BUILD() -{ - cd bzr-2.2.0 - if [ -n "$(setgcc | grep '2')" ]; then - python setup.py build_ext --allow-python-fallback - else - python setup.py build - fi -} - -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=$COMMON_DIR --root=${DESTDIR} - else - python setup.py install --prefix=$COMMON_DIR --root=${DESTDIR} - fi -## Now put the man file(s) in the correct directory - 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}/$COMMON_DIR/man - fi -} - -LICENSE="GNU GPL v2 - GNU GPL v3" -COPYRIGHT="2007-2010 The Bazaar Team" diff --git a/dev-vcs/bzr/bzr-2.2.1.recipe b/dev-vcs/bzr/bzr-2.2.1.recipe deleted file mode 100644 index 4823f24ec..000000000 --- a/dev-vcs/bzr/bzr-2.2.1.recipe +++ /dev/null @@ -1,37 +0,0 @@ -DESCRIPTION="Bazaar" -HOMEPAGE="https://launchpad.net/bzr/" -SRC_URI="http://launchpad.net/bzr/2.2/2.2.1/+download/bzr-2.2.1.tar.gz" -CHECKSUM_MD5="8a6abd8f888fb3e0845e2044d41a24bc" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" - -BUILD() -{ - cd bzr-2.2.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.2.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-2010 The Bazaar Team" diff --git a/dev-vcs/bzr/bzr-2.2.2.recipe b/dev-vcs/bzr/bzr-2.2.2.recipe deleted file mode 100644 index dc46f3f74..000000000 --- a/dev-vcs/bzr/bzr-2.2.2.recipe +++ /dev/null @@ -1,37 +0,0 @@ -DESCRIPTION="Bazaar" -HOMEPAGE="https://launchpad.net/bzr/" -SRC_URI="http://launchpad.net/bzr/2.2/2.2.2/+download/bzr-2.2.2.tar.gz" -CHECKSUM_MD5="d1bfa2fd1aad282c423c78d62ebacb21" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" - -BUILD() -{ - cd bzr-2.2.2 - if [ -n "$(setgcc | grep '2')" ]; then - python setup.py build_ext --allow-python-fallback - else - python setup.py build - fi -} - -INSTALL() -{ - cd bzr-2.2.2 - 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-2010 The Bazaar Team" diff --git a/dev-vcs/bzr/bzr-2.2b4.recipe b/dev-vcs/bzr/bzr-2.2b4.recipe deleted file mode 100644 index aee57c6ba..000000000 --- a/dev-vcs/bzr/bzr-2.2b4.recipe +++ /dev/null @@ -1,37 +0,0 @@ -DESCRIPTION="Bazaar" -HOMEPAGE="https://launchpad.net/bzr/" -SRC_URI="http://launchpad.net/bzr/2.2/2.2b4/+download/bzr-2.2b4.tar.gz" -CHECKSUM_MD5="974722332a457dbb5ba1f05e9ed4fb9e" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" - -BUILD() -{ - cd bzr-2.2b4 - if [ -n "$(setgcc | grep '2')" ]; then - python setup.py build_ext --allow-python-fallback - else - python setup.py build - fi -} - -INSTALL() -{ - cd bzr-2.2b4 - 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-2010 The Bazaar Team" diff --git a/dev-vcs/bzr/bzr-2.5.1.recipe b/dev-vcs/bzr/bzr-2.5.1.recipe deleted file mode 100644 index f527f3a01..000000000 --- a/dev-vcs/bzr/bzr-2.5.1.recipe +++ /dev/null @@ -1,37 +0,0 @@ -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=$COMMON_DIR --root=${DESTDIR} - else - python setup.py install --prefix=$COMMON_DIR --root=${DESTDIR} - fi -## Now put the man file(s) in the correct directory - 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}/$COMMON_DIR/man - fi -} - -LICENSE="GNU GPL v2 - GNU GPL v3" -COPYRIGHT="2007-2012 The Bazaar Team" diff --git a/dev-vcs/bzr/bzr-2.6.0.recipe b/dev-vcs/bzr/bzr-2.6.0.recipe new file mode 100644 index 000000000..140a71dff --- /dev/null +++ b/dev-vcs/bzr/bzr-2.6.0.recipe @@ -0,0 +1,49 @@ +SUMMARY="A friendly powerful distributed version control system" +DESCRIPTION=" +Bazaar is a version control system that helps you track project history over \ +time and to collaborate easily with others. Whether you're a single developer, \ +a co-located team or a community of developers scattered across the world, \ +Bazaar scales and adapts to meet your needs. Part of the GNU Project, Bazaar \ +is free software sponsored by Canonical. +" +HOMEPAGE="http://bazaar.canonical.com" +SRC_URI="https://launchpadlibrarian.net/145980211/bzr-2.6.0.tar.gz" +CHECKSUM_SHA256="0994797182eb828867eee81cccc79480bd2946c99304266bc427b902cf91dab0" +REVISION="1" +LICENSE="GNU GPL v2" +COPYRIGHT="2005-2013 Canonical" + +ARCHITECTURES="!x86 !x86_gcc2 !x86_64" + +PROVIDES=" + bzr = $portVersion compat >= 2.6.0 + cmd:bzr = $portVersion compat >= 2.6.0 + " + +REQUIRES=" + haiku >= $haikuVersion + cmd:python + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:python + cmd:gcc + " + +SOURCE_DIR="bzr-$portVersion" + +BUILD() +{ + python setup.py build +} + +INSTALL() +{ + python setup.py install \ + --prefix=$prefix \ + --install-data=$manDir +} diff --git a/dev-vcs/bzr/bzr-2.6b1.recipe b/dev-vcs/bzr/bzr-2.6b1.recipe deleted file mode 100644 index ea1c17639..000000000 --- a/dev-vcs/bzr/bzr-2.6b1.recipe +++ /dev/null @@ -1,37 +0,0 @@ -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.1.recipe b/dev-vcs/cvs/cvs-1.12.13.1.recipe index 90733f849..1658ea96b 100644 --- a/dev-vcs/cvs/cvs-1.12.13.1.recipe +++ b/dev-vcs/cvs/cvs-1.12.13.1.recipe @@ -1,22 +1,43 @@ SUMMARY="Concurrent Versions System" -DESCRIPTION="CVS is a version control system, an important component of Source Configuration Management (SCM). Using it, you can record the history of sources files, and documents. It fills a similar role to the free software RCS, PRCS, and Aegis packages. - -CVS is a production quality system in wide use around the world, including many free software projects. - -While CVS stores individual file history in the same format as RCS, it offers the following significant advantages over RCS: - - * It can run scripts which you can supply to log CVS operations or enforce site-specific polices. - * Client/server CVS enables developers scattered by geography or slow modems to function as a single team. The version history is stored on a single central server and the client machines have a copy of all the files that the developers are working on. Therefore, the network between the client and the server must be up to perform CVS operations (such as checkins or updates) but need not be up to edit or manipulate the current versions of the files. Clients can perform all the same operations which are available locally. - * In cases where several developers or teams want to each maintain their own version of the files, because of geography and/or policy, CVS's vendor branches can import a version from another team (even if they don't use CVS), and then CVS can merge the changes from the vendor branch with the latest files if that is what is desired. - * Unreserved checkouts, allowing more than one developer to work on the same files at the same time. - * CVS provides a flexible modules database that provides a symbolic mapping of names to components of a larger software distribution. It applies names to collections of directories and files. A single command can manipulate the entire collection. - * CVS servers run on most unix variants, and clients for Windows NT/95, OS/2 and VMS are also available. CVS will also operate in what is sometimes called server mode against local repositories on Windows 95/NT." +DESCRIPTION=" +CVS is a version control system, an important component of Source \ +Configuration Management (SCM). Using it, you can record the history of \ +sources files, and documents. It fills a similar role to the free software \ +RCS, PRCS, and Aegis packages. +CVS is a production quality system in wide use around the world, including \ +many free software projects. +While CVS stores individual file history in the same format as RCS, it offers \ +the following significant advantages over RCS: +* It can run scripts which you can supply to log CVS operations or enforce \ +site-specific polices. +* Client/server CVS enables developers scattered by geography or slow modems \ +to function as a single team. The version history is stored on a single \ +central server and the client machines have a copy of all the files that the \ +developers are working on. Therefore, the network between the client and the \ +server must be up to perform CVS operations (such as checkins or updates) but \ +need not be up to edit or manipulate the current versions of the files. \ +Clients can perform all the same operations which are available locally. +* In cases where several developers or teams want to each maintain their own \ +version of the files, because of geography and/or policy, CVS's vendor \ +branches can import a version from another team (even if they don't use CVS), \ +and then CVS can merge the changes from the vendor branch with the latest \ +files if that is what is desired. +* Unreserved checkouts, allowing more than one developer to work on the same \ +files at the same time. +* CVS provides a flexible modules database that provides a symbolic mapping of \ +names to components of a larger software distribution. It applies names to \ +collections of directories and files. A single command can manipulate the \ +entire collection. +* CVS servers run on most unix variants, and clients for Windows NT/95, OS/2 \ +and VMS are also available. CVS will also operate in what is sometimes called \ +server mode against local repositories on Windows 95/NT. +" HOMEPAGE="http://www.nongnu.org/cvs/" COPYRIGHT="1986-2005 Free Software Foundation, Inc." LICENSE="GNU GPL v1 GNU LGPL v2" SRC_URI="ftp://ftp.ru.debian.org/gentoo-distfiles/distfiles/cvs-1.12.13.1.tar.bz2" -CHECKSUM_MD5="cfd07b224956daaed53fb3063bece1bf" +CHECKSUM_SHA256="de7f374d8c4ac414c04e8d44ce9a5d3da919825a6a332d747e299dc7a80c2218" REVISION="6" ARCHITECTURES="x86_gcc2 x86 x86_64" @@ -47,7 +68,6 @@ BUILD_PREREQUIRES=" cmd:nano " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/dev-vcs/cvsps/cvsps-2.2b1.recipe b/dev-vcs/cvsps/cvsps-2.2b1.recipe new file mode 100644 index 000000000..7e2295506 --- /dev/null +++ b/dev-vcs/cvsps/cvsps-2.2b1.recipe @@ -0,0 +1,57 @@ +SUMMARY="Generate patch sets from a CVS repository" +DESCRIPTION=" +CVSps is a program for generating 'patchset' information from a CVS +repository. A patchset in this case is defined as a set of changes made +to a collection of files, and all committed at the same time (using a +single 'cvs commit' command). This information is valuable to seeing the +big picture of the evolution of a cvs project. While cvs tracks revision +information, it is often difficult to see what changes were committed +'atomically' to the repository. +" +HOMEPAGE="http://www.cobite.com/cvsps/" +COPYRIGHT="2001-2003 David Mansfield" +LICENSE="GNU GPL v2" +SRC_URI="http://www.cobite.com/cvsps/cvsps-2.2b1.tar.gz" +CHECKSUM_SHA256="6906acb3636cdb4a4a9d608111aec22a85530037cb08a62ed5eb74ca0b218f81" +REVISION="1" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + cvsps$secondaryArchSuffix = $portVersion + cmd:cvsps = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libz$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + + +BUILD() +{ + CC="gcc -lnetwork" make $jobArgs +} + +INSTALL() +{ + # even when building as hybrid, we want this as cvsps, not cvsps-x86. + mkdir -p $prefix/bin + cp cvsps $prefix/bin + + mkdir -p $manDir + cp cvsps.1 $manDir +} diff --git a/dev-vcs/fossil/fossil-1.22.recipe b/dev-vcs/fossil/fossil-1.22.recipe deleted file mode 100644 index f06bf257a..000000000 --- a/dev-vcs/fossil/fossil-1.22.recipe +++ /dev/null @@ -1,29 +0,0 @@ -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/fossil-1.28.recipe b/dev-vcs/fossil/fossil-1.28.recipe new file mode 100644 index 000000000..2aee98bff --- /dev/null +++ b/dev-vcs/fossil/fossil-1.28.recipe @@ -0,0 +1,50 @@ +SUMMARY="Simple, high-reliability, distributed software configuration management" +DESCRIPTION=" +Simple, high-reliability, distributed software configuration management +" +HOMEPAGE="http://www.fossil-scm.org/" +SRC_URI="http://www.fossil-scm.org/download/fossil-src-20140127173344.tar.gz" +CHECKSUM_SHA256="aca7c5a7c39ae2880712020e089c9c12543ba656c71d8cf8ac50e3c8871baa80" +REVISION="1" +LICENSE="BSD (2-clause)" +COPYRIGHT="2007 D. Richard Hipp" + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + fossil = $portVersion + cmd:fossil = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + lib:libz + openssl >= 1.0.0 + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:libz >= 1.2.3 + openssl_devel >= 1.0.0 + " +# tests require cmd:tclsh +BUILD_PREREQUIRES=" + cmd:make + cmd:gcc + " + +SOURCE_DIR="fossil-src-20140127173344" + +BUILD() +{ + ./configure --prefix=$prefix + make +} + +INSTALL() +{ + make install +} + +TEST() +{ + make test +} diff --git a/dev-vcs/fossil/patches/fossil-1.22.patch b/dev-vcs/fossil/patches/fossil-1.22.patch deleted file mode 100644 index c0e765c57..000000000 --- a/dev-vcs/fossil/patches/fossil-1.22.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- 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.7.10.2.recipe b/dev-vcs/git/git-1.7.10.2.recipe index 59acbc1d9..fb4865ba4 100644 --- a/dev-vcs/git/git-1.7.10.2.recipe +++ b/dev-vcs/git/git-1.7.10.2.recipe @@ -1,28 +1,25 @@ SUMMARY="Fast, scalable, distributed revision control system" DESCRIPTION=" - Git is a free and open source distributed version control system designed - to handle everything from small to very large projects with speed and - efficiency. - - Git is easy to learn and has a tiny footprint with lightning fast - performance. It outclasses SCM tools like Subversion, CVS, Perforce, - and ClearCase with features like cheap local branching, convenient - staging areas, and multiple workflows. - " +Git is a free and open source distributed version control system designed to \ +handle everything from small to very large projects with speed and efficiency. +Git is easy to learn and has a tiny footprint with lightning fast performance. \ +It outclasses SCM tools like Subversion, CVS, Perforce, and ClearCase with \ +features like cheap local branching, convenient staging areas, and multiple \ +workflows. +" HOMEPAGE="http://git-scm.com/" LICENSE="GNU GPL v2" COPYRIGHT="2005-2012 Git Authors (see git web site for list)" SRC_URI="http://git-core.googlecode.com/files/git-1.7.10.2.tar.gz" -CHECKSUM_MD5="2e2ee53243ab8e7cf10f15c5229c3fce" -SOURCE_DIR="$portVersionedName" +CHECKSUM_SHA256="335e978814659f328e377715b13a33336859275ae6f215bf28bbbb2ae711bb43" PATCHES="git-1.7.10.2.patch" SRC_URI_2="http://git-core.googlecode.com/files/git-manpages-1.7.10.2.tar.gz" -CHECKSUM_MD5_2="79bae5456db8366803d28db867892d74" +CHECKSUM_SHA256_2="bc57810ec8d87f7a10f320e31ceeb1f9eaf254e62e0f6414af67f17d0cf7d522" SRC_URI_3="http://git-core.googlecode.com/files/git-htmldocs-1.7.10.2.tar.gz" -CHECKSUM_MD5_3="9c401a36aee40d68f5ca3513818e8f29" +CHECKSUM_SHA256_3="4cb17519eb621060d657c71ba8b10d755a6ea71123642ed6cc73d24ce8f0b734" REVISION="2" diff --git a/dev-vcs/git/git-1.8.3.4.recipe b/dev-vcs/git/git-1.8.3.4.recipe index 29cdc9ed1..6614006ac 100644 --- a/dev-vcs/git/git-1.8.3.4.recipe +++ b/dev-vcs/git/git-1.8.3.4.recipe @@ -1,30 +1,28 @@ SUMMARY="Fast, scalable, distributed revision control system" DESCRIPTION=" - Git is a free and open source distributed version control system designed - to handle everything from small to very large projects with speed and - efficiency. - - Git is easy to learn and has a tiny footprint with lightning fast - performance. It outclasses SCM tools like Subversion, CVS, Perforce, - and ClearCase with features like cheap local branching, convenient - staging areas, and multiple workflows. - " +Git is a free and open source distributed version control system designed to \ +handle everything from small to very large projects with speed and efficiency. +Git is easy to learn and has a tiny footprint with lightning fast performance. \ +It outclasses SCM tools like Subversion, CVS, Perforce, and ClearCase with \ +features like cheap local branching, convenient staging areas, and multiple \ +workflows. +" HOMEPAGE="http://git-scm.com/" LICENSE="GNU GPL v2" COPYRIGHT="2005-2012 Git Authors (see git web site for list)" SRC_URI="http://git-core.googlecode.com/files/git-1.8.3.4.tar.gz" -CHECKSUM_MD5="80eec3201a5d012913d287b85adaee8e" -SOURCE_DIR="$portVersionedName" +CHECKSUM_SHA256="dfa2cdf2df92b4abe956b1e7586030381c4e39e89161ab789a660d8d1f24d9d9" PATCHES="git-1.8.3.4.patchset" SRC_URI_2="http://git-core.googlecode.com/files/git-manpages-1.8.3.4.tar.gz" -CHECKSUM_MD5_2="86fd812754d25201fd72c7476045dfec" +CHECKSUM_SHA256_2="6943c3b2362c107ab32d8ed81b8f4811c6e5a2eddd91b8e4188ccf6b4be2b740" SRC_URI_3="http://git-core.googlecode.com/files/git-htmldocs-1.8.3.4.tar.gz" -CHECKSUM_MD5_3="be01cc4be1b946b053b69d12b422854a" +CHECKSUM_SHA256_3="da13f9453489145d5aaefeb6535ce43621fdb7ff426c50304acf2c2e4430005c" -REVISION="2" + +REVISION="4" ARCHITECTURES="x86_gcc2 x86 x86_64" @@ -85,6 +83,7 @@ REQUIRES_arch=" REQUIRES_cvs=" haiku >= $haikuVersion git == $portVersion base + cmd:cvsps " REQUIRES_daemon=" haiku >= $haikuVersion @@ -120,6 +119,7 @@ BUILD_REQUIRES=" BUILD_PREREQUIRES=" haiku_devel >= $haikuVersion cmd:autoconf + cmd:find cmd:gcc cmd:gettext cmd:ld diff --git a/dev-vcs/mercurial/mercurial-2.2.2.recipe b/dev-vcs/mercurial/mercurial-2.2.2.recipe index 8439a5fa0..932a92806 100644 --- a/dev-vcs/mercurial/mercurial-2.2.2.recipe +++ b/dev-vcs/mercurial/mercurial-2.2.2.recipe @@ -1,10 +1,12 @@ SUMMARY="Free, distributed source control management tool" -DESCRIPTION="Mercurial is a free, distributed source control management tool." +DESCRIPTION=" +Mercurial is a free, distributed source control management tool. +" HOMEPAGE="http://mercurial.selenic.com/" COPYRIGHT="2005-2012 Matt Mackall et al." LICENSE="GNU GPL v2" SRC_URI="http://mercurial.selenic.com/release/mercurial-2.2.2.tar.gz" -CHECKSUM_MD5="9f59b5d71969cbb2671702cd2a7a5a11" +CHECKSUM_SHA256="3489110ec11fefbd2cbdefb8d715d0a869cef3dd729aaf4d5141108f8be1600a" REVISION="5" ARCHITECTURES="x86_gcc2 x86 x86_64" @@ -34,7 +36,6 @@ BUILD_PREREQUIRES=" cmd:make " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/dev-vcs/mercurial/mercurial-2.7.2.recipe b/dev-vcs/mercurial/mercurial-2.8.1.recipe similarity index 70% rename from dev-vcs/mercurial/mercurial-2.7.2.recipe rename to dev-vcs/mercurial/mercurial-2.8.1.recipe index 882943274..cb46dd3b6 100644 --- a/dev-vcs/mercurial/mercurial-2.7.2.recipe +++ b/dev-vcs/mercurial/mercurial-2.8.1.recipe @@ -1,38 +1,41 @@ SUMMARY="Free, distributed source control management tool" -DESCRIPTION="Mercurial is a free, distributed source control management tool." +DESCRIPTION=" +Mercurial is a free, distributed source control management tool. +" HOMEPAGE="http://mercurial.selenic.com/" COPYRIGHT="2005-2012 Matt Mackall et al." LICENSE="GNU GPL v2" -SRC_URI="http://mercurial.selenic.com/release/mercurial-2.7.2.tar.gz" -CHECKSUM_MD5="ec00ddc6aadfea1e11b23650cb741d53" +SRC_URI="http://mercurial.selenic.com/release/mercurial-2.8.1.tar.gz" +CHECKSUM_SHA256="d239a204cc76b6456b4121eaf35e584f33c510855865da0376dd1f708dd33366" REVISION="1" -ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64" +ARCHITECTURES="x86_gcc2 x86 x86_64" -PATCHES="mercurial-2.7.2.patch" +PATCHES="mercurial-2.8.1.patch" PROVIDES=" mercurial = $portVersion compat >= 2 cmd:hg = $portVersion compat >= 2 " + REQUIRES=" haiku_devel >= $haikuVersion cmd:python cmd:nano - lib:libintl " + BUILD_REQUIRES=" - " -BUILD_PREREQUIRES=" haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" cmd:python cmd:gcc cmd:gettext cmd:ld cmd:make + cmd:msgfmt " -SOURCE_DIR="$portVersionedName" - BUILD() { $portPackageLinksDir/cmd~python/bin/python setup.py build --force diff --git a/dev-vcs/mercurial/mercurial-2.9.1.recipe b/dev-vcs/mercurial/mercurial-2.9.1.recipe new file mode 100644 index 000000000..09d14f259 --- /dev/null +++ b/dev-vcs/mercurial/mercurial-2.9.1.recipe @@ -0,0 +1,56 @@ +SUMMARY="Free, distributed source control management tool" +DESCRIPTION=" +Mercurial is a free, distributed source control management tool. +" +HOMEPAGE="http://mercurial.selenic.com/" +COPYRIGHT="2005-2012 Matt Mackall et al." +LICENSE="GNU GPL v2" +SRC_URI="http://mercurial.selenic.com/release/mercurial-2.9.1.tar.gz" +CHECKSUM_SHA256="a20fb1434ecbdb070ef955c7c292db9eb2676bfc1ac165e95ba73866623bc01a" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" + +PATCHES="mercurial-2.8.1.patch" + +PROVIDES=" + mercurial = $portVersion compat >= 2 + cmd:hg = $portVersion compat >= 2 + " + +REQUIRES=" + haiku_devel >= $haikuVersion + cmd:python + cmd:nano + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:python + cmd:gcc + cmd:gettext + cmd:ld + cmd:make + cmd:msgfmt + " + +BUILD() +{ + $portPackageLinksDir/cmd~python/bin/python setup.py build --force +} + +INSTALL() +{ + $portPackageLinksDir/cmd~python/bin/python setup.py install \ + --prefix="$prefix" \ + --install-headers="$includedir" \ + --force +} + +TEST() +{ + cd tests + python run-tests.py +} diff --git a/dev-vcs/mercurial/mercurial-2.9.2.recipe b/dev-vcs/mercurial/mercurial-2.9.2.recipe new file mode 100644 index 000000000..540756cd4 --- /dev/null +++ b/dev-vcs/mercurial/mercurial-2.9.2.recipe @@ -0,0 +1,56 @@ +SUMMARY="Free, distributed source control management tool" +DESCRIPTION=" +Mercurial is a free, distributed source control management tool. +" +HOMEPAGE="http://mercurial.selenic.com/" +COPYRIGHT="2005-2014 Matt Mackall et al." +LICENSE="GNU GPL v2" +SRC_URI="http://mercurial.selenic.com/release/mercurial-$portVersion.tar.gz" +CHECKSUM_SHA256="86462b3a1518e137cfe813dc273b8acb120ad71230a1813c0dc9335223b38f53" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" + +PATCHES="mercurial-2.8.1.patch" + +PROVIDES=" + mercurial = $portVersion compat >= 2 + cmd:hg = $portVersion compat >= 2 + " + +REQUIRES=" + haiku_devel >= $haikuVersion + cmd:python + cmd:nano + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:python + cmd:gcc + cmd:gettext + cmd:ld + cmd:make + cmd:msgfmt + " + +BUILD() +{ + $portPackageLinksDir/cmd~python/bin/python setup.py build --force +} + +INSTALL() +{ + $portPackageLinksDir/cmd~python/bin/python setup.py install \ + --prefix="$prefix" \ + --install-headers="$includedir" \ + --force +} + +TEST() +{ + cd tests + python run-tests.py +} diff --git a/dev-vcs/mercurial/patches/mercurial-2.7.2.patch b/dev-vcs/mercurial/patches/mercurial-2.8.1.patch similarity index 64% rename from dev-vcs/mercurial/patches/mercurial-2.7.2.patch rename to dev-vcs/mercurial/patches/mercurial-2.8.1.patch index e5ba9e92f..edfe44133 100644 --- a/dev-vcs/mercurial/patches/mercurial-2.7.2.patch +++ b/dev-vcs/mercurial/patches/mercurial-2.8.1.patch @@ -1,6 +1,6 @@ -diff -up mercurial-2.7.1/mercurial/ui.py.orig mercurial-2.7.1/mercurial/ui.py ---- mercurial-2.7.2/mercurial/ui.py.orig 2012-06-01 22:48:21.025690112 -0600 -+++ mercurial-2.7.2/mercurial/ui.py 2012-06-04 17:15:16.317980672 -0600 +diff -up mercurial-2.8.1/mercurial/ui.py.orig mercurial-2.8.1/mercurial/ui.py +--- mercurial-2.8.1/mercurial/ui.py.orig 2012-06-01 22:48:21.025690112 -0600 ++++ mercurial-2.8.1/mercurial/ui.py 2012-06-04 17:15:16.317980672 -0600 @@ -693,7 +693,7 @@ class ui(object): # avoid confusion. editor = 'E' diff --git a/dev-vcs/subversion/subversion-1.6.15.recipe b/dev-vcs/subversion/subversion-1.6.15.recipe index 7f65e4efa..b6bf0d8f9 100644 --- a/dev-vcs/subversion/subversion-1.6.15.recipe +++ b/dev-vcs/subversion/subversion-1.6.15.recipe @@ -1,17 +1,16 @@ SUMMARY="Open source version control system" DESCRIPTION=" - Subversion exists to be universally recognized and adopted as an - open-source, centralized version control system characterized by its - reliability as a safe haven for valuable data; the simplicity of its - model and usage; and its ability to support the needs of a wide - variety of users and projects, from individuals to large-scale enterprise - operations. - " +Subversion exists to be universally recognized and adopted as an open-source, \ +centralized version control system characterized by its reliability as a safe \ +haven for valuable data; the simplicity of its model and usage; and its \ +ability to support the needs of a wide variety of users and projects, from \ +individuals to large-scale enterprise operations. +" HOMEPAGE="http://subversion.apache.org" LICENSE="Apache-Subversion" COPYRIGHT="2010 The Apache Software Foundation" SRC_URI="http://subversion.tigris.org/downloads/subversion-1.6.15.tar.bz2" -CHECKSUM_MD5="113fca1d9e4aa389d7dc2b210010fa69" +CHECKSUM_SHA256="b2919d603a5f3c19f42e3265c4b930e2376c43b3969b90ef9c42b2f72d5aaa45" REVISION="5" ARCHITECTURES="x86_gcc2 ?x86" @@ -64,7 +63,6 @@ BUILD_PREREQUIRES=" cmd:make " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/dev-vcs/subversion/subversion-1.6.18.recipe b/dev-vcs/subversion/subversion-1.6.18.recipe index 310f8886f..1b24c5dd8 100644 --- a/dev-vcs/subversion/subversion-1.6.18.recipe +++ b/dev-vcs/subversion/subversion-1.6.18.recipe @@ -1,17 +1,16 @@ SUMMARY="Open source version control system" DESCRIPTION=" - Subversion exists to be universally recognized and adopted as an - open-source, centralized version control system characterized by its - reliability as a safe haven for valuable data; the simplicity of its - model and usage; and its ability to support the needs of a wide - variety of users and projects, from individuals to large-scale enterprise - operations. - " +Subversion exists to be universally recognized and adopted as an open-source, \ +centralized version control system characterized by its reliability as a safe \ +haven for valuable data; the simplicity of its model and usage; and its \ +ability to support the needs of a wide variety of users and projects, from \ +individuals to large-scale enterprise operations. +" HOMEPAGE="http://subversion.apache.org" LICENSE="Apache-Subversion" COPYRIGHT="2010 The Apache Software Foundation" SRC_URI="http://subversion.tigris.org/downloads/subversion-1.6.18.tar.bz2" -CHECKSUM_MD5="c5c662a5d19d047256fa333bd890a925" +CHECKSUM_SHA256="b50f073336249565c12dca1a4f4fef830f1d7492b3d39747f1635da2a8c6f188" REVISION="6" ARCHITECTURES="x86_gcc2 x86 x86_64" @@ -80,7 +79,6 @@ USER_SETTINGS_FILES=" settings/subversion directory " -SOURCE_DIR="$portVersionedName" PATCH() { diff --git a/games-action/maelstrom/maelstrom-3.0.6.recipe b/games-action/maelstrom/maelstrom-3.0.6.recipe new file mode 100644 index 000000000..def64fb01 --- /dev/null +++ b/games-action/maelstrom/maelstrom-3.0.6.recipe @@ -0,0 +1,75 @@ +SUMMARY="Blast the Asteroids!" +DESCRIPTION=" +You pilot your ship through the dreaded \"Maelstrom\" asteroid belt -- suddenly +your best friend thrusts towards you and fires, directly at your cockpit. You +raise your shields just in time, and the battle is joined. + +The deadliest stretch of space known to mankind has just gotten deadlier. +Everywhere massive asteroids jostle for a chance to crush your ship, and deadly +shinobi fighter patrols pursue you across the asteroid belt. But the deadliest +of them all is your sister ship, assigned to you on patrol. The pilot, trained +by your own Navy, battle hardened by months in the Maelstrom, is equipped with +a twin of your own ship and intimate knowledge of your tactics. + +The lovely Stratocaster R&R facility never sounded so good, but as you fire +full thrusters to dodge the latest barrage you begin to think you'll never get +home... +" +HOMEPAGE="http://www.libsdl.org/projects/Maelstrom" +COPYRIGHT="Copyright (C) 1996-2005 Sam Lantinga" +LICENSE="GNU GPL v2" +SRC_URI="http://www.libsdl.org/projects/Maelstrom/src/Maelstrom-$portVersion.tar.gz" +CHECKSUM_SHA256="e7983c2c7376cdcca1944db1706d92aedd529638cf13358c88a60df982ba7b46" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86" +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + maelstrom$secondaryArchSuffix = $portVersion + app:Maelstrom + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libsdl$secondaryArchSuffix + lib:libSDL_net$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libsdl$secondaryArchSuffix + devel:libSDL_net$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:autom4te + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:nasm + cmd:libtoolize + " +SOURCE_DIR="Maelstrom-$portVersion" +PATCHES="maelstrom-$portVersion.patchset" + +BUILD() +{ + libtoolize --force --copy --install + aclocal + touch NEWS AUTHORS ChangeLog # Yeah, automake needs all this stuff... + automake --add-missing + autoconf + + export LDFLAGS=-lnetwork + export CPPFLAGS=-D__BEOS__ + runConfigure --omit-dirs "docDir dataRootDir" ./configure + make $jobArgs +} + +INSTALL() +{ + make install + rm -rf $appsDir + mv $prefix/games $appsDir + + cp Maelstrom Maelstrom-netd $appsDir/Maelstrom/ + + addAppDeskbarSymlink $appsDir/Maelstrom/Maelstrom Maelstrom +} diff --git a/games-action/maelstrom/patches/maelstrom-3.0.6.patchset b/games-action/maelstrom/patches/maelstrom-3.0.6.patchset new file mode 100644 index 000000000..d857f160c --- /dev/null +++ b/games-action/maelstrom/patches/maelstrom-3.0.6.patchset @@ -0,0 +1,24 @@ +From 0aac53a13823ba5d1025006650115865a75944d4 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 12 Jan 2014 13:27:13 +0100 +Subject: Add haiku support to configure script. + + +diff --git a/configure.in b/configure.in +index 0170f4b..4f99f3f 100644 +--- a/configure.in ++++ b/configure.in +@@ -33,6 +33,10 @@ case "$target" in + MATHLIB="" + INETLIB="" + ;; ++ *-*-haiku*) ++ MATHLIB="" ++ INETLIB="-lnetwork" ++ ;; + *-*-darwin*) + MATHLIB="" + INETLIB="" +-- +1.8.3.4 + diff --git a/games-action/quake3/quake3-0.6.1.recipe b/games-action/quake3/quake3-0.6.1.recipe new file mode 100644 index 000000000..65890bf45 --- /dev/null +++ b/games-action/quake3/quake3-0.6.1.recipe @@ -0,0 +1,51 @@ +SUMMARY="A multiplayer-focused first-person shooter" +DESCRIPTION=" +Quake 3 (also known as Q3A or Q3) is a fast paced first-person shooter based. + +Warning: While the Quake 3 game engine was released under the GPL, this \ +version requires a valid Quake 3 license code and the original Quake 3 CD \ +(placed into ~/.q3a/baseq3 or ~/.q3a/demota depending on which Quake 3 media \ +you have). +" +HOMEPAGE="http://www.idsoftware.com" +COPYRIGHT="Copyright (C) 1999-2005 Id Software, Inc." +LICENSE="GNU GPL v2" +SRC_URI="https://github.com/kallisti5/quake3/archive/$portVersion.tar.gz" +CHECKSUM_SHA256="755fc8ea237bd6f296764c7e2ea84638797ec6ffd88a9e17a486a8ee1c666a95" +SRC_FILENAME="quake3-$portVersion.tar.gz" +REVISION="2" +ARCHITECTURES="x86_gcc2 x86" +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + quake3$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libGL$secondaryArchSuffix + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:nasm + devel:libGL$secondaryArchSuffix + " +SOURCE_DIR="quake3-$portVersion" + +BUILD() +{ + cd code/beos + make $jobArgs +} + +INSTALL() +{ + mkdir -p $appsDir + + cp $(find code/beos/* -name 'Quake3') $appsDir/ + addAppDeskbarSymlink $appsDir/Quake3 +} diff --git a/games-arcade/f1spirit/f1spirit-0.rc9.1615.recipe b/games-arcade/f1spirit/f1spirit-0.rc9.1615.recipe new file mode 100644 index 000000000..71acbfcda --- /dev/null +++ b/games-arcade/f1spirit/f1spirit-0.rc9.1615.recipe @@ -0,0 +1,66 @@ +SUMMARY="a top down Formula One Racing game" +HOMEPAGE="http://www2.braingames.getput.com/f1spirit/" +LICENSE="GNU GPL v2" +COPYRIGHT="2002-2008 Brain Games" +SRC_URI="http://braingames.jorito.net/f1spirit/f1spirit.src_0.rc9-1615.tgz" +CHECKSUM_SHA256="fc1778dcec68ccd31b9da893abee67e64a7931a34c75a63f8563355b810acbd7" +REVISION="1" +ARCHITECTURES="x86_gcc2" + +PROVIDES=" + $portName = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libcurl$secondaryArchSuffix + lib:libglu$secondaryArchSuffix + lib:libsdl$secondaryArchSuffix + lib:libSDL_image$secondaryArchSuffix + lib:libSDL_mixer$secondaryArchSuffix + lib:libSDL_net_1.2$secondaryArchSuffix + lib:libssl$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libcurl$secondaryArchSuffix + devel:libglu$secondaryArchSuffix + devel:libsdl$secondaryArchSuffix + devel:libSDL_image$secondaryArchSuffix + devel:libSDL_mixer$secondaryArchSuffix + devel:libSDL_net_1.2$secondaryArchSuffix + lib:libSDL_net_1.2$secondaryArchSuffix +# Why is that required? + devel:libssl$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + haiku_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +PATCHES="$portName-$portVersion.patchset" +BUILD() +{ + make $jobArgs +} + +INSTALL() +{ + installDir=$appsDir/"F-1 Spirit" + mkdir -p "$installDir" + make install PREFIX="$installDir" GAMEDIR="$installDir" + + cd "$installDir" + echo -e "#!/bin/sh\ncd \"$installDir\"/share/games/f1spirit && ./f1spirit" > f1spirit + + addAppDeskbarSymlink "$installDir/$portName" "F-1 Spirit" +} + +DESCRIPTION=" +Race against your opponents on 21 tracks. Features online high scores, realtime +rain effect, split-screen multiplayer, and more! +" diff --git a/games-arcade/f1spirit/patches/f1spirit-0.rc9.1615.patchset b/games-arcade/f1spirit/patches/f1spirit-0.rc9.1615.patchset new file mode 100644 index 000000000..dc4dce04b --- /dev/null +++ b/games-arcade/f1spirit/patches/f1spirit-0.rc9.1615.patchset @@ -0,0 +1,21 @@ +From 1ddc81cdd051fabb1e56e861f5fd5a9da429029c Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Tue, 21 Jan 2014 22:40:24 +0100 +Subject: Remove outdated include. + + +diff --git a/sources/F1Shttp.cpp b/sources/F1Shttp.cpp +index 59a213c..9cb48cc 100644 +--- a/sources/F1Shttp.cpp ++++ b/sources/F1Shttp.cpp +@@ -3,7 +3,6 @@ + #include "string.h" + + #include +-#include + #include + + #include "F1Shttp.h" +-- +1.8.3.4 + diff --git a/games-arcade/goonies/goonies-1.4.1528.recipe b/games-arcade/goonies/goonies-1.4.1528.recipe new file mode 100644 index 000000000..e0c0dcbf1 --- /dev/null +++ b/games-arcade/goonies/goonies-1.4.1528.recipe @@ -0,0 +1,76 @@ +SUMMARY="Find treasure and escape back to save the Goon Docks from demolition." +HOMEPAGE="http://www2.braingames.getput.com/goonies/" +LICENSE="GNU GPL v2" +COPYRIGHT="2006-2009 Brain Games" +SRC_URI="http://braingames.jorito.net/goonies/downloads/goonies.src_1.4.1528.tgz" +CHECKSUM_SHA256="9e9c1e67a41dfae512e975b6931828cdc82f07397921ca0a41a81c3020a73799" +REVISION="1" +ARCHITECTURES="x86" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + goonies = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libsdl$secondaryArchSuffix + lib:libSDL_image$secondaryArchSuffix + lib:libSDL_mixer$secondaryArchSuffix +# lib:libSDL_sound$secondaryArchSuffix +# lib:libSDL_ttf$secondaryArchSuffix + lib:libGLU$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libsdl$secondaryArchSuffix + devel:libSDL_image$secondaryArchSuffix + devel:libSDL_mixer$secondaryArchSuffix +# devel:libSDL_sound$secondaryArchSuffix +# devel:libSDL_ttf$secondaryArchSuffix + devel:libGLU$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + haiku_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +PATCHES="goonies-$portVersion.patchset" +BUILD() +{ + make $jobArgs +} + +INSTALL() +{ + installDir=$appsDir/"Goonies" + mkdir -p "$installDir" + make install PREFIX="$installDir" GAMEDIR="$installDir" + +# cd "$installDir" +# echo -e "#!/bin/sh\n`cat roadfighter`" > roadfighter + + addAppDeskbarSymlink "$installDir/goonies" "Goonies" +} + +DESCRIPTION=" +The action takes place in the sleepy seaside town of Cauldron Point - down in +an area known as the Goon Docks. The Goonies are a group of local kids - Mikey, +Brand, Mouth, Chunk and Data. One day they find an old treasure map in Mikey's +attic. Data figures that this must be the fabulous hidden treasure of the +notorious local pirate, One-Eyed Willy. The girls, Andy and Stef, join the +other Goonies and the adventure begins. But the secret underground tunnels they +are exploring are actually the hideout of the Fratelli Gang, and the Goonies +are soon trapped! The Goonies have a powerful ally on their side, however, in +the form of the huge and amiable Sloth. + +When you play this game, you are Sloth! Can you help the Goonies find the +treasure and escape back to save the Goon Docks from demolition? +" diff --git a/games-arcade/goonies/patches/goonies-1.4.1528.patchset b/games-arcade/goonies/patches/goonies-1.4.1528.patchset new file mode 100644 index 000000000..0f2c72ec9 --- /dev/null +++ b/games-arcade/goonies/patches/goonies-1.4.1528.patchset @@ -0,0 +1,22 @@ +From 0945ad6ec688efbc88d8adfb3a546085819b8d30 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Tue, 28 Jan 2014 22:43:44 +0100 +Subject: Use the right compiler. + + +diff --git a/build/linux/Makefile b/build/linux/Makefile +index df4bb3d..3ccca0c 100644 +--- a/build/linux/Makefile ++++ b/build/linux/Makefile +@@ -56,7 +56,7 @@ OBJS = \ + $(SRC)/Symbol.o $(SRC)/TheGooniesApp.o \ + $(SRC)/TheGoonies.o $(SRC)/Vector.o + +-CC = gcc ++CC = g++ + CFLAGS = -g3 -O3 -Wno-write-strings `sdl-config --cflags` -I/usr/X11R6/include + LDFLAGS = `sdl-config --libs` -L/usr/X11R6/lib/ -lSDL_image -lSDL_mixer -lGL -lGLU + RM = rm -f +-- +1.8.3.4 + diff --git a/games-arcade/mog/mog-0.63.1548.recipe b/games-arcade/mog/mog-0.63.1548.recipe new file mode 100644 index 000000000..238b0e768 --- /dev/null +++ b/games-arcade/mog/mog-0.63.1548.recipe @@ -0,0 +1,67 @@ +SUMMARY="The Maze of Galious." +HOMEPAGE="http://www2.braingames.getput.com/mog/" +LICENSE="GNU GPL v2" +COPYRIGHT="2002-2009 Brain Games" +SRC_URI="http://braingames.jorito.net/mog/downloads/mog.src_0.63-1548.tgz" +CHECKSUM_SHA256="707bbc1b167a55989916f803dbe55c288652fb54df6194be029c41be99e9ec3a" +REVISION="1" +ARCHITECTURES="x86_gcc2" + +PROVIDES=" + mog = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libsdl$secondaryArchSuffix + lib:libSDL_image$secondaryArchSuffix + lib:libSDL_mixer$secondaryArchSuffix + lib:libSDL_sound$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libsdl$secondaryArchSuffix + devel:libSDL_image$secondaryArchSuffix + devel:libSDL_mixer$secondaryArchSuffix + devel:libSDL_sound$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + haiku_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +BUILD() +{ + make $jobArgs +} + +INSTALL() +{ + installDir=$appsDir/"Maze of Galious" + mkdir -p "$installDir" + make install PREFIX="$installDir" GAMEDIR="$installDir" + addAppDeskbarSymlink "$installDir/mog" "Maze of Galious" +} + +DESCRIPTION=" +The Maze of Galious (MoG in short) was originally a Konami game for the MSX +computer system. Its real name is Knightmare II: The Maze of Galious and is the +sequel of another Konami game called Knightmare. + +MoG is a very addictive game where you have to kill thousands of enemies, +collect items in order to obtain new powers and defeat some really great demons +at the end of each level. The gameplay of MoG is not the boring linear one. In +MoG you are free to go everywhere you want from the beginning of the game. You +have to be very careful of the order in which you visit all the rooms in the +HUGE map if you want to keep your character alive. The map is structured in a +main map (called the castle) and 10 submaps (called the worlds). Initially you +are in the castle and you have to find the keys that open the doors to go to +each of the worlds. To complete the game you have to defeat the boss at the end +of each one of the 10 worlds. You are free to revisit each world as often as +you want in order to see if you have missed something. To defeat all 10 demons +you control two characters: Popolon and Aphrodite. Each one has special +abilities, i.e. Popolon has a greater ability to jump and Aphrodite is able to +dive. +" diff --git a/games-arcade/plee_the_bear/patches/plee_the_bear-0.7.0.patchset b/games-arcade/plee_the_bear/patches/plee_the_bear-0.7.0.patchset new file mode 100644 index 000000000..fdd9681f1 --- /dev/null +++ b/games-arcade/plee_the_bear/patches/plee_the_bear-0.7.0.patchset @@ -0,0 +1,129 @@ +From 03033c51349e01d5d06ee74545a15a534525d785 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 6 Apr 2014 14:54:36 +0200 +Subject: Fix search paths for SDL2 header files. + + +diff --git a/bear/cmake-helper/FindSDL2.cmake b/bear/cmake-helper/FindSDL2.cmake +index 7665a55..bcd3050 100644 +--- a/bear/cmake-helper/FindSDL2.cmake ++++ b/bear/cmake-helper/FindSDL2.cmake +@@ -70,7 +70,7 @@ + find_path(SDL2_INCLUDE_DIR SDL.h + HINTS + ENV SDL2DIR +- PATH_SUFFIXES include/SDL2 include ++ PATH_SUFFIXES include/SDL2 include SDL2 + ) + + # SDL2-1.1 is the name used by FreeBSD ports... +diff --git a/bear/cmake-helper/FindSDL2_mixer.cmake b/bear/cmake-helper/FindSDL2_mixer.cmake +index 59ed911..d795965 100644 +--- a/bear/cmake-helper/FindSDL2_mixer.cmake ++++ b/bear/cmake-helper/FindSDL2_mixer.cmake +@@ -40,7 +40,7 @@ find_path(SDL2_MIXER_INCLUDE_DIR SDL_mixer.h + HINTS + ENV SDL2MIXERDIR + ENV SDL2DIR +- PATH_SUFFIXES include/SDL2 include ++ PATH_SUFFIXES include/SDL2 include SDL2 + ) + + if(NOT SDL2_MIXER_LIBRARY AND SDL2MIXER_LIBRARY) +-- +1.8.3.4 + + +From 4a4404ab5a5b9c67925ec6d910ddc5f47fb1b910 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 6 Apr 2014 17:02:35 +0200 +Subject: Link libintl on haiku. + + +diff --git a/bear/bear-engine/running_bear/CMakeLists.txt b/bear/bear-engine/running_bear/CMakeLists.txt +index 8b04d89..4fffd94 100644 +--- a/bear/bear-engine/running_bear/CMakeLists.txt ++++ b/bear/bear-engine/running_bear/CMakeLists.txt +@@ -38,7 +38,7 @@ set( + ${CLAW_APPLICATION_LIBRARIES} + ) + +-if(WIN32) ++if(WIN32 OR HAIKU) + set( + RUNNING_BEAR_LINK_LIBRARIES + ${RUNNING_BEAR_LINK_LIBRARIES} +diff --git a/plee-the-bear/launcher/src/CMakeLists.txt b/plee-the-bear/launcher/src/CMakeLists.txt +index 9ed5d32..ff88206 100644 +--- a/plee-the-bear/launcher/src/CMakeLists.txt ++++ b/plee-the-bear/launcher/src/CMakeLists.txt +@@ -121,7 +121,7 @@ set( + ${CLAW_APPLICATION_LIBRARIES} + ) + +-if(WIN32) ++if(WIN32 OR HAIKU) + set( + PTB_LAUNCHER_LINK_LIBRARIES + ${PTB_LAUNCHER_LINK_LIBRARIES} +-- +1.8.3.4 + + +From 415c83accad83bf6677dd3d578ab6712582910b9 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 6 Apr 2014 19:41:58 +0200 +Subject: Fix install directories. + + +diff --git a/bear/cmake-helper/bear-config.cmake b/bear/cmake-helper/bear-config.cmake +index e66d79e..b483445 100644 +--- a/bear/cmake-helper/bear-config.cmake ++++ b/bear/cmake-helper/bear-config.cmake +@@ -47,7 +47,7 @@ if( NOT BEAR_ENGINE_INSTALL_LIBRARY_DIR ) + "${BEAR_ENGINE_INSTALL_EXECUTABLE_DIR}" + ) + else( WIN32 ) +- set( BEAR_ENGINE_INSTALL_LIBRARY_DIR lib ) ++ set( BEAR_ENGINE_INSTALL_LIBRARY_DIR lib${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR} ) + endif( WIN32 ) + endif( NOT BEAR_ENGINE_INSTALL_LIBRARY_DIR ) + +diff --git a/bear/cmake-module/CMakeLists.txt b/bear/cmake-module/CMakeLists.txt +index e182689..24c2113 100644 +--- a/bear/cmake-module/CMakeLists.txt ++++ b/bear/cmake-module/CMakeLists.txt +@@ -1,7 +1,7 @@ + project(bear:cmake-modules) + + if( NOT BEAR_CMAKE_MODULES_INSTALL_PATH ) +- set( BEAR_CMAKE_MODULES_INSTALL_PATH "share/cmake/bear-engine" ) ++ set( BEAR_CMAKE_MODULES_INSTALL_PATH "data/cmake/bear-engine" ) + endif( NOT BEAR_CMAKE_MODULES_INSTALL_PATH ) + + set( BEAR_CMAKE_MODULES +diff --git a/plee-the-bear/CMakeLists.txt b/plee-the-bear/CMakeLists.txt +index 6a123d9..9bc8df3 100644 +--- a/plee-the-bear/CMakeLists.txt ++++ b/plee-the-bear/CMakeLists.txt +@@ -23,7 +23,7 @@ include( docbook-to-man ) + #------------------------------------------------------------------------------- + # where the game resources are installed + if( NOT PTB_INSTALL_DATA_DIR ) +- set( PTB_INSTALL_DATA_DIR share/plee-the-bear ) ++ set( PTB_INSTALL_DATA_DIR data/plee-the-bear ) + endif( NOT PTB_INSTALL_DATA_DIR ) + + # where the game executables are installed +@@ -154,7 +154,7 @@ subdirs( + + install( + DIRECTORY "lib/item-description" +- DESTINATION "share/bear-factory/plee-the-bear" ++ DESTINATION "data/bear-factory/plee-the-bear" + FILE_PERMISSIONS OWNER_READ OWNER_WRITE + GROUP_READ + WORLD_READ +-- +1.8.3.4 + diff --git a/games-arcade/plee_the_bear/plee_the_bear-0.7.0.recipe b/games-arcade/plee_the_bear/plee_the_bear-0.7.0.recipe new file mode 100644 index 000000000..55d0e5075 --- /dev/null +++ b/games-arcade/plee_the_bear/plee_the_bear-0.7.0.recipe @@ -0,0 +1,108 @@ +SUMMARY="A platform game in which you play an angry bear whose son has been kidnapped by god." +HOMEPAGE="http://www.stuff-o-matic.com/plee-the-bear/" +LICENSE="GNU GPL v3" +COPYRIGHT="2012 Stuff O Matic" +SRC_URI="http://www.stuff-o-matic.com/plee-the-bear/download/file.php?platform=source" +CHECKSUM_SHA256="41dfe864fe2d791d6f99ba7cd330e22c94fce19d82909054eeac594aa4f2924e" +SRC_FILENAME="plee-the-bear-0.7.0.tgz" + +REVISION="1" +ARCHITECTURES="?x86" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + plee_the_bear = $portVersion + cmd:plee_the_bear = $portVersion + lib:libbear_audio$secondaryArchSuffix + lib:libbear_communication$secondaryArchSuffix + lib:libbear_debug$secondaryArchSuffix + lib:libbear_engine$secondaryArchSuffix + lib:libbear_expr$secondaryArchSuffix + lib:libbear_generic_items$secondaryArchSuffix + lib:libbear_gui$secondaryArchSuffix + lib:libbear_input$secondaryArchSuffix + lib:libbear_net$secondaryArchSuffix + lib:libbear_text_interface$secondaryArchSuffix + lib:libbear_time$secondaryArchSuffix + lib:libbear_universe$secondaryArchSuffix + lib:libbear_visual$secondaryArchSuffix + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libstdc++$secondaryArchSuffix + lib:libsdl2$secondaryArchSuffix + lib:libsdl$secondaryArchSuffix + lib:libsdl2_mixer$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + lib:libGL$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libclaw_dynamic_library$secondaryArchSuffix + lib:libclaw_graphic$secondaryArchSuffix + lib:libclaw_net$secondaryArchSuffix + lib:libclaw_tween$secondaryArchSuffix + lib:libboost_system$secondaryArchSuffix + lib:libboost_thread$secondaryArchSuffix + lib:libboost_filesystem$secondaryArchSuffix + lib:libboost_regex$secondaryArchSuffix + lib:libfreetype$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libsdl2$secondaryArchSuffix + devel:libsdl2_mixer$secondaryArchSuffix + devel:libsdl$secondaryArchSuffix + devel:sdl_mixer$secondaryArchSuffix + devel:libfreetype$secondaryArchSuffix + devel:libclaw_application$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:libintl$secondaryArchSuffix + boost_devel${secondaryArchSuffix} + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:cmake >= 3.0 + " + +SOURCE_DIR="plee-the-bear-0.7.0-light" +PATCHES="plee_the_bear-$portVersion.patchset" +BUILD() +{ + cmake . -DBEAR_EDITORS_ENABLED=FALSE -DCMAKE_INSTALL_PREFIX=$prefix + make $jobArgs +} + +INSTALL() +{ + make install + rm -r $prefix/share + + addAppDeskbarSymlink $binDir/plee_the_bear "Plee the Bear" +} + +# ----- DESCRIPTION ----------------------------------------------------------- + +DESCRIPTION=" +Plee the Bear is a platform game in which you play an angry bear whose son has +been kidnapped by god. Here is a guy hard to brave! Jump in this amazing journey +to find and rescue your son. Because you want to rescue him, don't you? Or to +slap him? Maybe both…. + +With three levels of the storyline and four mini-games, Plee the Bear did +received very positive criticisms. The players loved the fun, the graphics and +the music; the community around the free software movement appreciated the +overall process and the quality of the resources, remarkable for a free game; +and the indie gaming community was pleasantly surprised by the technical skills +and the details of the game. +" diff --git a/games-arcade/roadfighter/roadfighter-1.0.1269.recipe b/games-arcade/roadfighter/roadfighter-1.0.1269.recipe new file mode 100644 index 000000000..d4e9fc9d9 --- /dev/null +++ b/games-arcade/roadfighter/roadfighter-1.0.1269.recipe @@ -0,0 +1,58 @@ +SUMMARY="A 2d racing game. Can you finish the race in time?" +HOMEPAGE="http://www2.braingames.getput.com/roadf/" +LICENSE="GNU GPL v2" +COPYRIGHT="2003-2009 Brain Games" +SRC_URI="http://braingames.jorito.net/roadfighter/downloads/roadfighter.src_1.0.1269.tgz" +CHECKSUM_SHA256="c6ed315c4b2bf25d598ffa6b5dfd471e7f187ff29b86fd3213054fb6be7c57e7" +REVISION="1" +ARCHITECTURES="x86_gcc2" + +PROVIDES=" + roadfighter = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libsdl$secondaryArchSuffix + lib:libSDL_image$secondaryArchSuffix + lib:libSDL_mixer$secondaryArchSuffix + lib:libSDL_sound$secondaryArchSuffix + lib:libSDL_ttf$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libsdl$secondaryArchSuffix + devel:libSDL_image$secondaryArchSuffix + devel:libSDL_mixer$secondaryArchSuffix + devel:libSDL_sound$secondaryArchSuffix + devel:libSDL_ttf$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + haiku_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +BUILD() +{ + make $jobArgs +} + +INSTALL() +{ + installDir=$appsDir/"Road Fighter" + mkdir -p "$installDir" + make install PREFIX="$installDir" GAMEDIR="$installDir" + + cd "$installDir" + echo -e "#!/bin/sh\n`cat roadfighter`" > roadfighter + + addAppDeskbarSymlink "$installDir/roadfighter" "Road Fighter" +} + +DESCRIPTION=" +The goal is to reach the finish line within the stages without running out of +time, hitting other cars or running out of fuel (fuel is refilled by hitting a +special type of car). +" diff --git a/games-arcade/rocksndiamonds/patches/rocksndiamonds-3.3.1.2.patchset b/games-arcade/rocksndiamonds/patches/rocksndiamonds-3.3.1.2.patchset new file mode 100644 index 000000000..b7c633931 --- /dev/null +++ b/games-arcade/rocksndiamonds/patches/rocksndiamonds-3.3.1.2.patchset @@ -0,0 +1,86 @@ +From ba88fe1ad26fc936fcfece46929b4b1eebb091c1 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Tue, 28 Jan 2014 20:36:56 +0100 +Subject: remove hardcoded -lm and add -lnetwork. + + +diff --git a/src/Makefile b/src/Makefile +index a67cd14..8493bb9 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -53,6 +53,11 @@ EXTRA_LDFLAGS = -lnsl -lsocket -R$(XLIB_PATH) + PLATFORM = unix + endif + ++ifeq ($(PLATFORM),haiku) # native compiling to Haiku ++EXTRA_LDFLAGS = -lnetwork ++PLATFORM = unix ++endif ++ + ifeq ($(PLATFORM),macosx) # native compiling to Mac OS X + EXTRA_LDFLAGS = -lstdc++ + PLATFORM = unix +@@ -163,7 +168,7 @@ OPTIONS = -O3 -Wall + endif + + CFLAGS = $(OPTIONS) $(SYS_CFLAGS) $(EXTRA_CFLAGS) $(CONFIG) +-LDFLAGS = $(SYS_LDFLAGS) $(EXTRA_LDFLAGS) -lm ++LDFLAGS = $(SYS_LDFLAGS) $(EXTRA_LDFLAGS) + + + SRCS = main.c \ +-- +1.8.3.4 + + +From 142ac2bc985591b85860f6fea82b5161fc4446e9 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Tue, 28 Jan 2014 21:10:09 +0100 +Subject: Store user files at the right place. + + +diff --git a/src/main.c b/src/main.c +index aaa3a5b..03723fb 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -13,6 +13,9 @@ + + #include "libgame/libgame.h" + ++#include ++#include ++ + #include "main.h" + #include "init.h" + #include "game.h" +@@ -5588,11 +5591,27 @@ int main(int argc, char *argv[]) + { + char * window_title_string = getWindowTitleString(); + ++#ifdef __HAIKU__ ++ char datadir[256]; ++ find_directory(B_USER_SETTINGS_DIRECTORY, 0, true, datadir, sizeof(datadir)); ++ strcat(datadir,"/rocksndiamonds"); ++ find_directory(B_USER_DIRECTORY, 0, true, datadir, sizeof(datadir)); ++ char* ptr = datadir; ++ while(*ptr != 0) ptr++; ++ ptr++; ++ mkdir(ptr, 0770); ++ InitProgramInfo(argv[0], ptr, ptr, ++ PROGRAM_TITLE_STRING, window_title_string, ICON_TITLE_STRING, ++ X11_ICON_FILENAME, X11_ICONMASK_FILENAME, SDL_ICON_FILENAME, ++ MSDOS_POINTER_FILENAME, ++ COOKIE_PREFIX, FILENAME_PREFIX, GAME_VERSION_ACTUAL); ++#else + InitProgramInfo(argv[0], USERDATA_DIRECTORY, USERDATA_DIRECTORY_UNIX, + PROGRAM_TITLE_STRING, window_title_string, ICON_TITLE_STRING, + X11_ICON_FILENAME, X11_ICONMASK_FILENAME, SDL_ICON_FILENAME, + MSDOS_POINTER_FILENAME, + COOKIE_PREFIX, FILENAME_PREFIX, GAME_VERSION_ACTUAL); ++#endif + + InitExitMessageFunction(DisplayExitMessage); + InitExitFunction(CloseAllAndExit); +-- +1.8.3.4 + diff --git a/games-arcade/rocksndiamonds/rocksndiamonds-3.3.1.2.recipe b/games-arcade/rocksndiamonds/rocksndiamonds-3.3.1.2.recipe new file mode 100644 index 000000000..4e90b7c02 --- /dev/null +++ b/games-arcade/rocksndiamonds/rocksndiamonds-3.3.1.2.recipe @@ -0,0 +1,71 @@ +SUMMARY="Arcade style game in the style of Boulder Dash." +HOMEPAGE="http://www.artsoft.org/rocksndiamonds/" +LICENSE="GNU GPL v2" +COPYRIGHT="2001-2013 Artsoft Entertainment" +SRC_URI="http://www.artsoft.org/RELEASES/unix/rocksndiamonds/rocksndiamonds-3.3.1.2.tar.gz" +CHECKSUM_SHA256="c117c20026299c6c935bd531ef9b0dc767731f600881d12ceb80c831483755f3" +REVISION="1" +ARCHITECTURES="x86" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + rocksndiamonds = $portVersion + app:rocksndiamonds = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libsdl$secondaryArchSuffix + lib:libsdl_image$secondaryArchSuffix + lib:libsdl_mixer$secondaryArchSuffix + lib:libsdl_net$secondaryArchSuffix +# lib:libz$secondaryArchSuffix + lib:libsmpeg$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libsdl$secondaryArchSuffix + devel:libsdl_image$secondaryArchSuffix + devel:libsdl_mixer$secondaryArchSuffix + devel:libsdl_net$secondaryArchSuffix +# devel:libz$secondaryArchSuffix + devel:libsmpeg$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +PATCHES="rocksndiamonds-$portVersion.patchset" +BUILD() +{ + # Parallel build doesn't work. + PLATFORM=haiku make sdl +} + +INSTALL() +{ + destdir=$appsDir/"Rocks'n'Diamonds" + mkdir -p $destdir + cp -r rocksndiamonds sounds graphics levels music $destdir + addAppDeskbarSymlink $destdir/rocksndiamonds "Rocks'n'Diamonds" +} + +# ----- DESCRIPTION ----------------------------------------------------------- + +DESCRIPTION=" +- network multiplayer games (upto 4 players) +- local multiplayer games (upto 4 players) +- soft scrolling with 50 frames per second +- freely customizable keyboard and joystick support +- stereo sound effects and music +- music modules and fullscreen in SDL version +- contains levels to play Boulder Dash, Emerald Mine and Sokoban +- lots of additional levels available (over 10.000) +" diff --git a/games-arcade/sdlscavenger/patches/sdlscavenger-145.1.patchset b/games-arcade/sdlscavenger/patches/sdlscavenger-145.1.patchset new file mode 100644 index 000000000..f74b8d878 --- /dev/null +++ b/games-arcade/sdlscavenger/patches/sdlscavenger-145.1.patchset @@ -0,0 +1,47 @@ +From a39fa224fe4adcfc7a9189ad93b05a7e89b7a0fd Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Fri, 29 Nov 2013 16:15:13 +0100 +Subject: gcc2 and main directory fixes. + + +diff --git a/scav.c b/scav.c +index fa22286..38ad157 100644 +--- a/scav.c ++++ b/scav.c +@@ -4,6 +4,8 @@ + #define VERSION "SDL Scavenger version 1.4.5.1 (11/05/2010)" + + #include "scav.h" ++#include ++#include + + char demolevel0[]={ + 0x04,0x44,0x44,0x07,0x00,0x06,0x60,0x00,0x70,0x44,0x44,0x40, +@@ -1703,6 +1705,8 @@ int main (int argc, char **argv) + strcpy(rcname,RCNAME); + strcpy(LevelsName,LEVELSNAME); /* Normally use default name */ + ++ chdir(dirname(argv[0])); ++ + #if defined(__WIN32__) || defined(WIN32) + /* Crude command line options for windows (no getopt function) */ + if (argc != 1) /* command line option used */ +@@ -1757,7 +1761,6 @@ int main (int argc, char **argv) + while (1) + { + int option_index = 0; +- opterr = 0; + static struct option long_options[] = { + {"window", 0, 0, 'w'}, + {"help", 0, 0, 'h'}, +@@ -1769,6 +1772,7 @@ int main (int argc, char **argv) + {"quiet", 0, 0, 'q'}, + {0, 0, 0, 0} + }; ++ opterr = 0; + + c = getopt_long (argc, argv, "hvwsqc:l:L:", + long_options, &option_index); +-- +1.8.3.4 + diff --git a/games-arcade/sdlscavenger/sdlscavenger-145.1.recipe b/games-arcade/sdlscavenger/sdlscavenger-145.1.recipe new file mode 100644 index 000000000..463f07e10 --- /dev/null +++ b/games-arcade/sdlscavenger/sdlscavenger-145.1.recipe @@ -0,0 +1,50 @@ +SUMMARY="An SDL clone of Lode Runner" +HOMEPAGE="http://sourceforge.net/projects/sdlscavenger/files/" +LICENSE="GNU GPL v2" +COPYRIGHT="1999-2010 Dave Ashley" +SRC_URI="http://www.mirrorservice.org/sites/downloads.sourceforge.net/s/sd/sdlscavenger/sdlscav-145.1_2010_11_5.tgz" +CHECKSUM_SHA256="c63666c0783d05b24895065781608994c43e4b359605be6806845b46f093d016" +REVISION="1" +ARCHITECTURES="x86_gcc2" + +PROVIDES=" + sdlscavenger = $portVersion + app:sdlscavenger = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libsdl$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libsdl$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + haiku_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +SOURCE_DIR="sdlscav-145" +PATCHES="sdlscavenger-145.1.patchset" +BUILD() +{ + make $jobArgs +} + +INSTALL() +{ + mkdir -p $appsDir/sdlscavenger + cp sdlscav $appsDir/sdlscavenger + cp -r data $appsDir/sdlscavenger/data + addAppDeskbarSymlink $appsDir/sdlscavenger/sdlscav Scavenger +} + +# ----- DESCRIPTION ----------------------------------------------------------- + +DESCRIPTION=" +Grab all the diamonds, but don't get caught! Escape or trap ennemies by \ +digging holes in the ground, climb ladders and ropes, and, or course, run fast! +" diff --git a/games-arcade/super_transball/patches/super_transball-2.1.5.patchset b/games-arcade/super_transball/patches/super_transball-2.1.5.patchset new file mode 100644 index 000000000..e82dda843 --- /dev/null +++ b/games-arcade/super_transball/patches/super_transball-2.1.5.patchset @@ -0,0 +1,671 @@ +From d5e22939a27c71bc0e55a56623b7ea83dceca155 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 19 Jan 2014 17:50:47 +0100 +Subject: Split writable files to writable directory + +* Patch adapted from the Debian package. +* Rename "pause" to "paused" to avoid conflict with unistd.h pause(). + +diff --git a/sources/Makefile b/sources/Makefile +index 08a898f..779f7bd 100644 +--- a/sources/Makefile ++++ b/sources/Makefile +@@ -12,11 +12,11 @@ OBJS := \ + all: stransball2 + + %.o: %.cpp +- c++ -c -g3 -O3 $< -o $@ `sdl-config --cflags` -I/usr/local/include/SDL ++ c++ -c -g3 -O3 $< -o $@ `sdl-config --cflags` + + # dynamically linked binary: + stransball2: $(OBJS) +- c++ $^ -o $@ `sdl-config --libs` -lSDL_image -lSDL_mixer -lSDL_sound -lSDL_sound -lSGE -I/usr/local/include/SDL ++ c++ $^ -o $@ `sdl-config --libs` -lSDL_image -lSDL_mixer -lSDL_sound -lSDL_sound -lSGE -lbe + mv ./stransball2 .. + + clean: +diff --git a/sources/configuration.cpp b/sources/configuration.cpp +index b39fdc2..8ef89f9 100644 +--- a/sources/configuration.cpp ++++ b/sources/configuration.cpp +@@ -1,4 +1,5 @@ + #include "stdio.h" ++#include + + #include "SDL.h" + +@@ -9,13 +10,17 @@ extern SDLKey PAUSE_KEY; + extern bool fullscreen; + extern int PIXEL_SIZE; + ++extern char *datadir; ++extern char *confdir; + + bool load_configuration(void) + { + int a,b,c,d,e,f,g; + FILE *fp; + ++ chdir(confdir); + fp=fopen("transball.cfg","r"); ++ chdir(datadir); + + if (fp==0) return false; + +@@ -46,7 +51,9 @@ void save_configuration(void) + { + FILE *fp; + ++ chdir(confdir); + fp=fopen("transball.cfg","w"); ++ chdir(datadir); + + if (fp==0) return; + +diff --git a/sources/encoder.cpp b/sources/encoder.cpp +index f2d4945..9780520 100644 +--- a/sources/encoder.cpp ++++ b/sources/encoder.cpp +@@ -1,4 +1,8 @@ + #include "stdio.h" ++#include "unistd.h" ++ ++extern char *confdir; ++extern char *datadir; + + void encode(char *in,char *out) + { +@@ -9,8 +13,11 @@ void encode(char *in,char *out) + FILE *fpin; + FILE *fpout; + ++ chdir(datadir); + fpin=fopen(in,"rb"); ++ chdir(confdir); + fpout=fopen(out,"wb"); ++ chdir(datadir); + if (fpin==0 || fpout==0) return; + + do{ +@@ -40,8 +47,11 @@ void decode(char *in,char *out) + FILE *fpin; + FILE *fpout; + ++ chdir(datadir); + fpin=fopen(in,"rb"); ++ chdir(confdir); + fpout=fopen(out,"wb"); ++ chdir(datadir); + if (fpin==0 || fpout==0) return; + + do{ +diff --git a/sources/game.cpp b/sources/game.cpp +index 6429e2d..901e3ee 100644 +--- a/sources/game.cpp ++++ b/sources/game.cpp +@@ -8,6 +8,7 @@ + #endif + + #include ++#include + #include + #include + #include "SDL/SDL.h" +@@ -84,6 +85,9 @@ extern TRANSBALL *game; + /* Frames per second counter: */ + extern int frames_per_sec; + ++extern char *datadir; ++extern char *confdir; ++ + FILE *replayfile; + int replaynum; + int replay_source=0; +@@ -92,7 +96,7 @@ int replay_source=0; + SDLKey THRUST_KEY=SDLK_q,ANTITHRUST_KEY=SDLK_a,LEFT_KEY=SDLK_o,RIGHT_KEY=SDLK_p; + SDLKey FIRE_KEY=SDLK_SPACE,ATRACTOR_KEY=SDLK_RETURN; + SDLKey PAUSE_KEY=SDLK_F1; +-bool pause=false; ++bool paused=false; + + unsigned char old_keyboard[SDLK_LAST]; + SDL_Surface *image=0,*image2=0; /* For the tittle screen, etc. */ +@@ -133,8 +137,10 @@ bool gamecycle(SDL_Surface *screen,int sx,int sy) + strcpy(tmp,"maps/"); + strcat(tmp,levelpack); + ++ chdir(datadir); + decode(tmp,"decoding.tmp"); + ++ chdir(confdir); + fp=fopen("decoding.tmp","r+"); + if (fp!=0) { + fscanf(fp,"%i",&NLEVELS); +@@ -167,6 +173,8 @@ bool gamecycle(SDL_Surface *screen,int sx,int sy) + + if (NLEVELS==-1) return false; + ++ chdir(datadir); ++ + switch(STATE) { + case 0: if (!state_logo_cycle(screen,sx,sy,keyboard)) return false; + break; +diff --git a/sources/main.cpp b/sources/main.cpp +index 285740a..b633601 100644 +--- a/sources/main.cpp ++++ b/sources/main.cpp +@@ -12,6 +12,14 @@ + #include "SDL_mixer.h" + #include "sge.h" + ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ + #include "fonts.h" + #include "list.h" + +@@ -42,6 +50,8 @@ int frames_per_sec=0; + int frames_per_sec_tmp=0; + int init_time=0; + ++char *datadir; ++char *confdir; + + /* Surfaces: */ + SDL_Surface *screen_sfc=0,*buffer_screen_sfc=0; +@@ -126,6 +136,33 @@ int main(int argc, char** argv) + setupTickCount(); + #endif + ++ mode_t mode; ++ FILE *cfg; ++ ++ datadir=dirname(argv[0]); ++ BPath confPath; ++ find_directory(B_USER_SETTINGS_DIRECTORY, &confPath, true); ++ confdir = (char*) malloc(strlen(confPath.Path()) + 17); ++ strcpy(confdir, confPath.Path()); ++ strcat(confdir,"/supertransball2"); ++ ++ mode=S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP; ++ mkdir(confdir,mode); ++ chdir(confdir); ++ mkdir("replays",mode); ++ mkdir("high",mode); ++ ++ cfg=fopen("transball.cfg", "r"); ++ if (!cfg) ++ { ++ cfg=fopen("transball.cfg", "w"); ++ fprintf(cfg,"%s","113 97 111 112 32 13 282"); ++ } ++ ++ fclose(cfg); ++ ++ chdir(datadir); ++ + int time,act_time; + SDL_Event event; + bool quit = false; +diff --git a/sources/maps.cpp b/sources/maps.cpp +index 56df6f7..f1506c7 100644 +--- a/sources/maps.cpp ++++ b/sources/maps.cpp +@@ -1,4 +1,5 @@ + #include ++#include + #include + #include "SDL/SDL.h" + #include "SDL_mixer.h" +@@ -13,6 +14,8 @@ + #define EMPTY_ROWS 8 + #define FACTOR 512 + ++extern char *datadir; ++extern char *confdir; + + TRANSBALL_MAP::TRANSBALL_MAP(char *file) + { +@@ -25,6 +28,7 @@ TRANSBALL_MAP::TRANSBALL_MAP(char *file) + S_enemyhit=0; + S_switch=0; + ++ chdir(datadir); + fp=fopen(file,"r"); + if (fp==0) { + sx=0; +diff --git a/sources/replays.cpp b/sources/replays.cpp +index 1d4e885..5d95fc5 100644 +--- a/sources/replays.cpp ++++ b/sources/replays.cpp +@@ -1,5 +1,8 @@ + #include "stdio.h" ++#include "unistd.h" + ++extern char* datadir; ++extern char* confdir; + + int replay_parameters(char *file, int *ship, int *length, char *levelname) + { +@@ -8,7 +11,9 @@ int replay_parameters(char *file, int *ship, int *length, char *levelname) + int l,end; + int v1,v2,fuel; + ++ chdir(confdir); + fp=fopen(file,"rb"); ++ chdir(datadir); + if (fp==0) return -1; + v1=fgetc(fp); + v2=fgetc(fp); +@@ -35,8 +40,11 @@ void replay_copy(char *f1,char *f2) + + FILE *fp1,*fp2; + ++ chdir(confdir); + fp1=fopen(f1,"rb"); ++ /* chdir(confdir); */ + fp2=fopen(f2,"wb"); ++ chdir(datadir); + + do{ + fputc(fgetc(fp1),fp2); +diff --git a/sources/state_changepack.cpp b/sources/state_changepack.cpp +index 41c28da..0b56928 100644 +--- a/sources/state_changepack.cpp ++++ b/sources/state_changepack.cpp +@@ -8,6 +8,7 @@ + #endif + + #include ++#include "unistd.h" + #include + #include + #include "SDL/SDL.h" +@@ -43,7 +44,7 @@ extern int replay_source; + extern SDLKey THRUST_KEY,ANTITHRUST_KEY,LEFT_KEY,RIGHT_KEY; + extern SDLKey FIRE_KEY,ATRACTOR_KEY; + extern SDLKey PAUSE_KEY; +-extern bool pause; ++extern bool paused; + extern unsigned char old_keyboard[SDLK_LAST]; + extern SDL_Surface *image,*image2; + extern char edit_text[80]; +@@ -63,6 +64,8 @@ extern char *leveltext[MAXLEVELS]; + extern char *levelcode[MAXLEVELS]; + extern int initialfuel[MAXLEVELS]; + ++extern char *confdir; ++extern char *datadir; + + bool state_changepack_cycle(SDL_Surface *screen,int sx,int sy,unsigned char *keyboard) + { +@@ -97,7 +100,8 @@ bool state_changepack_cycle(SDL_Surface *screen,int sx,int sy,unsigned char *key + #else + DIR *dp; + struct dirent *ep; +- ++ ++ chdir(datadir); + dp = opendir ("maps"); + if (dp != NULL) + { +diff --git a/sources/state_chooseship.cpp b/sources/state_chooseship.cpp +index 6de61e2..7262269 100644 +--- a/sources/state_chooseship.cpp ++++ b/sources/state_chooseship.cpp +@@ -43,7 +43,7 @@ extern int replay_source; + extern SDLKey THRUST_KEY,ANTITHRUST_KEY,LEFT_KEY,RIGHT_KEY; + extern SDLKey FIRE_KEY,ATRACTOR_KEY; + extern SDLKey PAUSE_KEY; +-extern bool pause; ++extern bool paused; + extern unsigned char old_keyboard[SDLK_LAST]; + extern SDL_Surface *image,*image2; + extern char edit_text[80]; +diff --git a/sources/state_endsequence.cpp b/sources/state_endsequence.cpp +index 963a9f7..ed3d3ad 100644 +--- a/sources/state_endsequence.cpp ++++ b/sources/state_endsequence.cpp +@@ -43,7 +43,7 @@ extern int replay_source; + extern SDLKey THRUST_KEY,ANTITHRUST_KEY,LEFT_KEY,RIGHT_KEY; + extern SDLKey FIRE_KEY,ATRACTOR_KEY; + extern SDLKey PAUSE_KEY; +-extern bool pause; ++extern bool paused; + extern unsigned char old_keyboard[SDLK_LAST]; + extern SDL_Surface *image,*image2; + extern char edit_text[80]; +diff --git a/sources/state_game.cpp b/sources/state_game.cpp +index 10f515f..43856a2 100644 +--- a/sources/state_game.cpp ++++ b/sources/state_game.cpp +@@ -43,7 +43,7 @@ extern int replay_source; + extern SDLKey THRUST_KEY,ANTITHRUST_KEY,LEFT_KEY,RIGHT_KEY; + extern SDLKey FIRE_KEY,ATRACTOR_KEY; + extern SDLKey PAUSE_KEY; +-extern bool pause; ++extern bool paused; + extern unsigned char old_keyboard[SDLK_LAST]; + extern SDL_Surface *image,*image2; + extern char edit_text[80]; +@@ -69,11 +69,11 @@ bool state_game_cycle(SDL_Surface *screen,int sx,int sy,unsigned char *keyboard) + int retval=0; + + if (keyboard[PAUSE_KEY] && !old_keyboard[PAUSE_KEY]) { +- if (pause) pause=false; +- else pause=true; ++ if (paused) paused=false; ++ else paused=true; + } /* if */ + +- if (!pause) { ++ if (!paused) { + retval=game->cycle(keyboard); + if (replayfile!=0) { + fputc(keyboard[THRUST_KEY],replayfile); +@@ -88,7 +88,7 @@ bool state_game_cycle(SDL_Surface *screen,int sx,int sy,unsigned char *keyboard) + + game->render(screen,sx,sy); + +- if (pause) { ++ if (paused) { + surface_fader(screen,0.5F,0.5F,0.5F,-1,0); + font_print(sx/2,sy/2-16,"PAUSE",screen); + } else { +diff --git a/sources/state_gameover.cpp b/sources/state_gameover.cpp +index 7c02012..4b280b5 100644 +--- a/sources/state_gameover.cpp ++++ b/sources/state_gameover.cpp +@@ -43,7 +43,7 @@ extern int replay_source; + extern SDLKey THRUST_KEY,ANTITHRUST_KEY,LEFT_KEY,RIGHT_KEY; + extern SDLKey FIRE_KEY,ATRACTOR_KEY; + extern SDLKey PAUSE_KEY; +-extern bool pause; ++extern bool paused; + extern unsigned char old_keyboard[SDLK_LAST]; + extern SDL_Surface *image,*image2; + extern char edit_text[80]; +diff --git a/sources/state_instructions.cpp b/sources/state_instructions.cpp +index acd6e03..882db1c 100644 +--- a/sources/state_instructions.cpp ++++ b/sources/state_instructions.cpp +@@ -41,7 +41,7 @@ extern int replay_source; + extern SDLKey THRUST_KEY,ANTITHRUST_KEY,LEFT_KEY,RIGHT_KEY; + extern SDLKey FIRE_KEY,ATRACTOR_KEY; + extern SDLKey PAUSE_KEY; +-extern bool pause; ++extern bool paused; + extern unsigned char old_keyboard[SDLK_LAST]; + extern SDL_Surface *image,*image2; + extern char edit_text[80]; +diff --git a/sources/state_interphase.cpp b/sources/state_interphase.cpp +index 41a7810..24a0ecf 100644 +--- a/sources/state_interphase.cpp ++++ b/sources/state_interphase.cpp +@@ -8,6 +8,7 @@ + #endif + + #include ++#include + #include + #include + #include "SDL/SDL.h" +@@ -43,7 +44,7 @@ extern int replay_source; + extern SDLKey THRUST_KEY,ANTITHRUST_KEY,LEFT_KEY,RIGHT_KEY; + extern SDLKey FIRE_KEY,ATRACTOR_KEY; + extern SDLKey PAUSE_KEY; +-extern bool pause; ++extern bool paused; + extern unsigned char old_keyboard[SDLK_LAST]; + extern SDL_Surface *image,*image2; + extern char edit_text[80]; +@@ -63,6 +64,8 @@ extern char *leveltext[MAXLEVELS]; + extern char *levelcode[MAXLEVELS]; + extern int initialfuel[MAXLEVELS]; + ++extern char *datadir; ++extern char *confdir; + + bool state_interphase_cycle(SDL_Surface *screen,int sx,int sy,unsigned char *keyboard) + { +@@ -92,7 +95,9 @@ bool state_interphase_cycle(SDL_Surface *screen,int sx,int sy,unsigned char *key + if (game=0) delete game; + game=new TRANSBALL("graphics/","sound/","maps/",initialfuel[level],levelnames[level],ship_type); + sprintf(tmp,"replays/replay%.3i.rpl",replaynum++); ++ chdir(confdir); + replayfile=fopen(tmp,"wb+"); ++ chdir(datadir); + fputc(32,replayfile); + fputc(0,replayfile); + /* level name: */ +diff --git a/sources/state_keyredefinition.cpp b/sources/state_keyredefinition.cpp +index b062e62..11355b6 100644 +--- a/sources/state_keyredefinition.cpp ++++ b/sources/state_keyredefinition.cpp +@@ -43,7 +43,7 @@ extern int replay_source; + extern SDLKey THRUST_KEY,ANTITHRUST_KEY,LEFT_KEY,RIGHT_KEY; + extern SDLKey FIRE_KEY,ATRACTOR_KEY; + extern SDLKey PAUSE_KEY; +-extern bool pause; ++extern bool paused; + extern unsigned char old_keyboard[SDLK_LAST]; + extern SDL_Surface *image,*image2; + extern char edit_text[80]; +diff --git a/sources/state_levelfinished.cpp b/sources/state_levelfinished.cpp +index 31ccd8a..16993ec 100644 +--- a/sources/state_levelfinished.cpp ++++ b/sources/state_levelfinished.cpp +@@ -43,7 +43,7 @@ extern int replay_source; + extern SDLKey THRUST_KEY,ANTITHRUST_KEY,LEFT_KEY,RIGHT_KEY; + extern SDLKey FIRE_KEY,ATRACTOR_KEY; + extern SDLKey PAUSE_KEY; +-extern bool pause; ++extern bool paused; + extern unsigned char old_keyboard[SDLK_LAST]; + extern SDL_Surface *image,*image2; + extern char edit_text[80]; +diff --git a/sources/state_logo.cpp b/sources/state_logo.cpp +index 1487e8b..4518429 100644 +--- a/sources/state_logo.cpp ++++ b/sources/state_logo.cpp +@@ -41,7 +41,7 @@ extern int replay_source; + extern SDLKey THRUST_KEY,ANTITHRUST_KEY,LEFT_KEY,RIGHT_KEY; + extern SDLKey FIRE_KEY,ATRACTOR_KEY; + extern SDLKey PAUSE_KEY; +-extern bool pause; ++extern bool paused; + extern unsigned char old_keyboard[SDLK_LAST]; + extern SDL_Surface *image,*image2; + extern char edit_text[80]; +diff --git a/sources/state_mainmenu.cpp b/sources/state_mainmenu.cpp +index e689caf..9d6f86b 100644 +--- a/sources/state_mainmenu.cpp ++++ b/sources/state_mainmenu.cpp +@@ -8,6 +8,7 @@ + #endif + + #include ++#include + #include + #include + #include "SDL/SDL.h" +@@ -41,7 +42,7 @@ extern int replay_source; + extern SDLKey THRUST_KEY,ANTITHRUST_KEY,LEFT_KEY,RIGHT_KEY; + extern SDLKey FIRE_KEY,ATRACTOR_KEY; + extern SDLKey PAUSE_KEY; +-extern bool pause; ++extern bool paused; + extern unsigned char old_keyboard[SDLK_LAST]; + extern SDL_Surface *image,*image2; + extern char edit_text[80]; +@@ -57,6 +58,8 @@ extern List levelpacks; + extern int act_levelpack; + extern char levelpack[256]; + ++extern char *datadir; ++extern char *confdir; + + bool state_mainmenu_cycle(SDL_Surface *screen,int sx,int sy,unsigned char *keyboard) + { +@@ -157,6 +160,7 @@ bool state_mainmenu_cycle(SDL_Surface *screen,int sx,int sy,unsigned char *keybo + tittle_alpha=255; + + sprintf(tmp,"demos/demo%i.rpl",((rand()%40)/10)+1); ++ chdir(datadir); + replayfile=fopen(tmp,"rb"); + v1=fgetc(replayfile); + v2=fgetc(replayfile); // To maintain compatibility with a previous version +diff --git a/sources/state_replay.cpp b/sources/state_replay.cpp +index a38ac37..f8d2ba8 100644 +--- a/sources/state_replay.cpp ++++ b/sources/state_replay.cpp +@@ -43,7 +43,7 @@ extern int replay_source; + extern SDLKey THRUST_KEY,ANTITHRUST_KEY,LEFT_KEY,RIGHT_KEY; + extern SDLKey FIRE_KEY,ATRACTOR_KEY; + extern SDLKey PAUSE_KEY; +-extern bool pause; ++extern bool paused; + extern unsigned char old_keyboard[SDLK_LAST]; + extern SDL_Surface *image,*image2; + extern char edit_text[80]; +@@ -71,11 +71,11 @@ bool state_replay_cycle(SDL_Surface *screen,int sx,int sy,unsigned char *keyboar + SUBSTATE++; + + if (keyboard[PAUSE_KEY] && !old_keyboard[PAUSE_KEY]) { +- if (pause) pause=false; +- else pause=true; ++ if (paused) paused=false; ++ else paused=true; + } /* if */ + +- if (!pause) { ++ if (!paused) { + int i; + unsigned char tmp[SDLK_LAST]; + for(i=0;irender(screen,sx,sy); + +- if (pause) { ++ if (paused) { + surface_fader(screen,0.5F,0.5F,0.5F,-1,0); + font_print(sx/2,sy/2-16,"PAUSE",screen); + } else { +diff --git a/sources/state_replaymanager.cpp b/sources/state_replaymanager.cpp +index e767de2..7eb324c 100644 +--- a/sources/state_replaymanager.cpp ++++ b/sources/state_replaymanager.cpp +@@ -8,6 +8,7 @@ + #endif + + #include ++#include + #include + #include + #include "SDL/SDL.h" +@@ -43,7 +44,7 @@ extern int replay_source; + extern SDLKey THRUST_KEY,ANTITHRUST_KEY,LEFT_KEY,RIGHT_KEY; + extern SDLKey FIRE_KEY,ATRACTOR_KEY; + extern SDLKey PAUSE_KEY; +-extern bool pause; ++extern bool paused; + extern unsigned char old_keyboard[SDLK_LAST]; + extern SDL_Surface *image,*image2; + extern char edit_text[80]; +@@ -63,6 +64,8 @@ extern char *leveltext[MAXLEVELS]; + extern char *levelcode[MAXLEVELS]; + extern int initialfuel[MAXLEVELS]; + ++extern char *datadir; ++extern char *confdir; + + bool state_replaymanager_cycle(SDL_Surface *screen,int sx,int sy,unsigned char *keyboard) + { +@@ -103,6 +106,7 @@ bool state_replaymanager_cycle(SDL_Surface *screen,int sx,int sy,unsigned char * + DIR *dp; + struct dirent *ep; + ++ chdir(confdir); + if (replay_source==0) dp = opendir ("replays"); + else dp = opendir ("high"); + if (dp != NULL) +@@ -124,6 +128,7 @@ bool state_replaymanager_cycle(SDL_Surface *screen,int sx,int sy,unsigned char * + } + (void) closedir (dp); + } ++ chdir(datadir); + #endif + first_file=0; + act_file=0; +@@ -210,7 +215,9 @@ bool state_replaymanager_cycle(SDL_Surface *screen,int sx,int sy,unsigned char * + + if (replay_source==0) sprintf(tmp,"replays/%s",files[act_file]); + else sprintf(tmp,"high/%s",files[act_file]); ++ chdir(confdir); + replayfile=fopen(tmp,"rb"); ++ chdir(datadir); + v1=fgetc(replayfile); + v2=fgetc(replayfile); // To maintain compatibility with a previous version + +@@ -309,6 +316,7 @@ bool state_replaymanager_cycle(SDL_Surface *screen,int sx,int sy,unsigned char * + DIR *dp; + struct dirent *ep; + ++ chdir(confdir); + dp = opendir ("replays"); + if (dp != NULL) + { +@@ -329,6 +337,7 @@ bool state_replaymanager_cycle(SDL_Surface *screen,int sx,int sy,unsigned char * + } + (void) closedir (dp); + } ++ chdir(datadir); + #endif + + /* Check if this replay is a highscore: */ +diff --git a/sources/state_typetext.cpp b/sources/state_typetext.cpp +index da45793..20c5017 100644 +--- a/sources/state_typetext.cpp ++++ b/sources/state_typetext.cpp +@@ -43,7 +43,7 @@ extern int replay_source; + extern SDLKey THRUST_KEY,ANTITHRUST_KEY,LEFT_KEY,RIGHT_KEY; + extern SDLKey FIRE_KEY,ATRACTOR_KEY; + extern SDLKey PAUSE_KEY; +-extern bool pause; ++extern bool paused; + extern unsigned char old_keyboard[SDLK_LAST]; + extern SDL_Surface *image,*image2; + extern char edit_text[80]; +-- +1.8.3.4 + + +From b382be38bd296d72071c135e9fddd6872040c532 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 19 Jan 2014 18:56:20 +0100 +Subject: Avoid waste of CPU. + +We can sleep longer than 1ms without slowing down the game. + +diff --git a/sources/main.cpp b/sources/main.cpp +index b633601..5445993 100644 +--- a/sources/main.cpp ++++ b/sources/main.cpp +@@ -284,7 +284,7 @@ int main(int argc, char** argv) + } /* if */ + SDL_Flip(screen_sfc); + } +- SDL_Delay(1); ++ SDL_Delay(REDRAWING_PERIOD); + } + + fonts_termination(); +-- +1.8.3.4 + diff --git a/games-arcade/super_transball/super_transball-2.1.5.recipe b/games-arcade/super_transball/super_transball-2.1.5.recipe new file mode 100644 index 000000000..70e4fd1c2 --- /dev/null +++ b/games-arcade/super_transball/super_transball-2.1.5.recipe @@ -0,0 +1,60 @@ +SUMMARY="find and capture the SPHERE, and carry it to the sky." +HOMEPAGE="http://www2.braingames.getput.com/stransball2/default.asp" +LICENSE="GNU GPL v2" +COPYRIGHT="2003-2005 Brain Games" +SRC_URI="http://www2.braingames.getput.com/stransball2/downloads/stransball2-v15-windows.zip" +CHECKSUM_SHA256="644cf89c8b7084abe0451ff433db25b41e43da77d5d92edad8253baf48b018db" +REVISION="1" +ARCHITECTURES="x86_gcc2" + +PROVIDES=" + super_transball = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libsdl$secondaryArchSuffix + lib:libSDL_image$secondaryArchSuffix + lib:libSDL_mixer$secondaryArchSuffix + lib:libSDL_sound$secondaryArchSuffix + lib:libSGE$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libsdl$secondaryArchSuffix + devel:libSDL_image$secondaryArchSuffix + devel:libSDL_mixer$secondaryArchSuffix + devel:libSDL_sound$secondaryArchSuffix + devel:libSGE$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + haiku_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +SOURCE_DIR="stransball2" +PATCHES="super_transball-$portVersion.patchset" +BUILD() +{ + cd sources + make $jobArgs +} + +INSTALL() +{ + installDir=$appsDir/"Super Transball 2" + mkdir -p "$installDir" + cp -r stransball2 demos graphics maps sound "$installDir" + addAppDeskbarSymlink "$installDir/stransball2" "Super Transball 2" +} + +DESCRIPTION=" +\"Super Transbal 2\" is the sequel of \"Transball\" and \"Transball 2\", +Inspired in THRUST type of games (and concretely in ZARA THRUSTA for the Amiga +500). In each level of Transball, the goal is to find the SPHERE, capture it +and carry it to the upper part of the level. The main obstacle is the gravity, +that impulses you towards the ground. But many other obstacles, canons, tanks, +doors, etc. will try to make difficult your journey... +" diff --git a/games-arcade/supertux/supertux-0.1.3.recipe b/games-arcade/supertux/supertux-0.1.3.recipe index ecd275ffe..169162f3b 100644 --- a/games-arcade/supertux/supertux-0.1.3.recipe +++ b/games-arcade/supertux/supertux-0.1.3.recipe @@ -1,4 +1,7 @@ -DESCRIPTION="SuperTux is a classic 2D jump'n run sidescroller game in a style similar to the original Super Mario games." +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" diff --git a/games-arcade/xrick/licenses/xrick b/games-arcade/xrick/licenses/xrick new file mode 100644 index 000000000..dfa22afca --- /dev/null +++ b/games-arcade/xrick/licenses/xrick @@ -0,0 +1,14 @@ +I have written the xrick code. However, graphics and maps and sounds are by the +authors of the original Rick Dangerous game, and "Rick Dangerous" remains a +trademark of its owners (Core Design) who have yet to reply to my emails. + +This makes it a bit difficult to formally release the whole code, including +data for graphics and maps and sounds, under the terms of licences such as the +GNU General Public License. So the code is released in the spirit of the GNU +GPL. Whatever that means. Do what you want with it, but please let me know. I +hate it when I discover xrick has been ported to the FooDoo GameSphereTM and I +was not even aware of it. + +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. diff --git a/games-arcade/xrick/patches/xrick-021212.patchset b/games-arcade/xrick/patches/xrick-021212.patchset new file mode 100644 index 000000000..3f130c1d8 --- /dev/null +++ b/games-arcade/xrick/patches/xrick-021212.patchset @@ -0,0 +1,30 @@ +From 1989e5b49aa41dee60c76b0951fea2dd8b1b2251 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 12 Jan 2014 21:32:19 +0100 +Subject: Look for the datafile next to the executable. + +XRick can be run from Deskbar or Tracker this way. + +diff --git a/src/xrick.c b/src/xrick.c +index 38d4e26..870adc7 100644 +--- a/src/xrick.c ++++ b/src/xrick.c +@@ -25,8 +25,13 @@ main(int argc, char *argv[]) + sys_init(argc, argv); + if (sysarg_args_data) + data_setpath(sysarg_args_data); +- else +- data_setpath("data.zip"); ++ else { ++ const char* basename = dirname(argv[0]); ++ char* datapath = malloc(strlen(basename) + strlen("/data.zip") + 1); ++ strcpy(datapath, basename); ++ strcat(datapath, "/data.zip"); ++ data_setpath(datapath); ++ } + game_run(); + data_closepath(); + sys_shutdown(); +-- +1.8.3.4 + diff --git a/games-arcade/xrick/xrick-021212.recipe b/games-arcade/xrick/xrick-021212.recipe new file mode 100644 index 000000000..e86a18b81 --- /dev/null +++ b/games-arcade/xrick/xrick-021212.recipe @@ -0,0 +1,55 @@ +SUMMARY="xrick is a clone of Rick Dangerous." +HOMEPAGE="http://www.bigorno.net/xrick" +LICENSE="xrick" +COPYRIGHT="2000-2006 Bigorno.net" +SRC_URI="http://www.bigorno.net/xrick/xrick-021212.tgz" +CHECKSUM_SHA256="aa8542120bec97a730258027a294bd16196eb8b3d66134483d085f698588fc2b" +REVISION="1" +ARCHITECTURES="x86_gcc2" + +PROVIDES=" + xrick = $portVersion + app:xrick = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libsdl$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libsdl$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + haiku_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +PATCHES="xrick-$portVersion.patchset" +BUILD() +{ + make $jobArgs +} + +INSTALL() +{ + mkdir -p $appsDir/XRick + cp xrick $appsDir/XRick + cp data.zip $appsDir/XRick + addAppDeskbarSymlink $appsDir/XRick/xrick "Rick Dangerous" +} + +# ----- DESCRIPTION ----------------------------------------------------------- + +DESCRIPTION=" +Remember Rick Dangerous? + +Way before Lara Croft, back in the 1980's and early 1990's, Rick Dangerous was +the Indiana Jones of computer games, running away from rolling rocks, avoiding +traps, from South America to a futuristic missile base via Egypt and the +Schwarzendumpf castle. +" diff --git a/games-emulation/dosbox/dosbox-0.74-svn.patch b/games-emulation/dosbox/dosbox-0.74-svn.patch deleted file mode 100644 index 1e81c8f9e..000000000 --- a/games-emulation/dosbox/dosbox-0.74-svn.patch +++ /dev/null @@ -1,20 +0,0 @@ -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/dosbox/dosbox-0.74.recipe b/games-emulation/dosbox/dosbox-0.74.recipe new file mode 100644 index 000000000..3d2507a9a --- /dev/null +++ b/games-emulation/dosbox/dosbox-0.74.recipe @@ -0,0 +1,74 @@ +SUMMARY="A DOS-Emulator that uses SDL library" +DESCRIPTION=" +DOSBox is a DOS-emulator that uses the SDL-library which makes DOSBox very \ +easy to port to different platforms. DOSBox has already been ported to many \ +different platforms, such as Windows, BeOS, Linux, MacOS X... +DOSBox also emulates CPU:286/386 realmode/protected mode, Directory \ +FileSystem/XMS/EMS, Tandy/Hercules/CGA/EGA/VGA/VESA graphics, a \ +SoundBlaster/Gravis Ultra Sound card for excellent sound compatibility with \ +older games... +You can re-live the good old days with the help of DOSBox, it can run plenty \ +of the old classics that don't run on your new computer! +DOSBox is totally free of charge and OpenSource. +" +HOMEPAGE="http://www.dosbox.com" +SRC_URI="http://sourceforge.net/projects/dosbox/files/dosbox/0.74/dosbox-0.74.tar.gz/download" +CHECKSUM_SHA256="13f74916e2d4002bad1978e55727f302ff6df3d9be2f9b0e271501bd0a938e05" +REVISION="1" +LICENSE="GNU GPL v2" +COPYRIGHT="2002-2013 The DosBox Team" + +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86 x86_64" + +PROVIDES=" + dosbox$secondaryArchSuffix = $portVersion + app:dosbox$secondaryArchSuffix = $portVersion +" +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libsdl$secondaryArchSuffix + lib:libsdl_net$secondaryArchSuffix + lib:libsdl_sound$secondaryArchSuffix + lib:libglu$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + lib:libz$secondaryArchSuffix +" +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libglu$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:libsdl_net$secondaryArchSuffix + devel:libsdl_sound$secondaryArchSuffix + libsdl${secondaryArchSuffix}_devel +" +BUILD_PREREQUIRES=" + cmd:autoconf + cmd:libtoolize + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:aclocal +" +SOURCE_DIR="dosbox-0.74" + +PATCHES=" + powf.patch +" + +BUILD() +{ + ./configure --prefix=$prefix --disable-dynamic-core --bindir=$appsDir --datarootdir=$dataDir + make +} +INSTALL() +{ + make install + addAppDeskbarSymlink $appsDir/dosbox "DOSBox" +} diff --git a/games-emulation/dosbox/dosbox-0.74_svn.recipe b/games-emulation/dosbox/dosbox-0.74_svn.recipe deleted file mode 100644 index e6b48bf79..000000000 --- a/games-emulation/dosbox/dosbox-0.74_svn.recipe +++ /dev/null @@ -1,27 +0,0 @@ -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/patches/dosbox-0.74_svn.patch b/games-emulation/dosbox/patches/dosbox-0.74_svn.patch deleted file mode 100644 index 1e81c8f9e..000000000 --- a/games-emulation/dosbox/patches/dosbox-0.74_svn.patch +++ /dev/null @@ -1,20 +0,0 @@ -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/dosbox/patches/powf.patch b/games-emulation/dosbox/patches/powf.patch new file mode 100644 index 000000000..ac3732b23 --- /dev/null +++ b/games-emulation/dosbox/patches/powf.patch @@ -0,0 +1,19 @@ +diff --git a/configure.in b/configure.in +index 016ea95..f222548 100644 +--- a/configure.in ++++ b/configure.in +@@ -121,13 +121,7 @@ d_test.d_type = 0; + + + 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 avalible])]) + + + dnl Checks for libraries. diff --git a/games-emulation/visualboyadvance/patches/Makefile.am.patch b/games-emulation/visualboyadvance/patches/Makefile.am.patch new file mode 100644 index 000000000..9aef1e939 --- /dev/null +++ b/games-emulation/visualboyadvance/patches/Makefile.am.patch @@ -0,0 +1,91 @@ +diff --git a/src/sdl/Makefile.am b/src/sdl/Makefile.am +index bcc9f92..ba6db7a 100644 +--- a/src/sdl/Makefile.am ++++ b/src/sdl/Makefile.am +@@ -1,7 +1,5 @@ + bin_PROGRAMS = VisualBoyAdvance + +-noinst_PROGRAMS = TestEmu +- + VisualBoyAdvance_SOURCES = \ + SDL.cpp \ + debugger.cpp \ +@@ -79,78 +77,6 @@ VisualBoyAdvance_LDADD = @VBA_LIBS@ @SDL_LIBS@ + + VisualBoyAdvance_DEPENDENCIES = @VBA_LIBS@ + +-TestEmu_SOURCES = \ +- TestEmu.cpp \ +- debugger.cpp \ +- debugger.h \ +- ../2xSaI.cpp \ +- ../AutoBuild.h \ +- ../Cheats.cpp \ +- ../Cheats.h \ +- ../EEprom.cpp \ +- ../EEprom.h \ +- ../Flash.cpp \ +- ../Flash.h \ +- ../GBA.cpp \ +- ../GBA.h \ +- ../GBAinline.h \ +- ../Gfx.cpp \ +- ../Gfx.h \ +- ../Globals.cpp \ +- ../Globals.h \ +- ../Mode0.cpp \ +- ../Mode1.cpp \ +- ../Mode2.cpp \ +- ../Mode3.cpp \ +- ../Mode4.cpp \ +- ../Mode5.cpp \ +- ../NLS.h \ +- ../Port.h \ +- ../RTC.cpp \ +- ../RTC.h \ +- ../Sound.cpp \ +- ../Sound.h \ +- ../Sram.cpp \ +- ../Sram.h \ +- ../System.h \ +- ../Text.cpp \ +- ../Text.h \ +- ../Util.cpp \ +- ../Util.h \ +- ../admame.cpp \ +- ../agbprint.cpp \ +- ../agbprint.h \ +- ../arm-new.h \ +- ../armdis.cpp \ +- ../armdis.h \ +- ../bios.cpp \ +- ../bios.h \ +- ../elf.cpp \ +- ../elf.h \ +- ../expr-lex.cpp \ +- ../expr.cpp \ +- ../expr.cpp.h \ +- ../exprNode.cpp \ +- ../exprNode.h \ +- ../hq2x.cpp \ +- ../hq2x.h \ +- ../interp.h \ +- ../lq2x.h \ +- ../memgzio.c \ +- ../memgzio.h \ +- ../motionblur.cpp \ +- ../pixel.cpp \ +- ../remote.cpp \ +- ../scanline.cpp \ +- ../simple2x.cpp \ +- ../thumb.h \ +- ../unzip.cpp \ +- ../unzip.h +- +-TestEmu_LDADD = @VBA_LIBS@ @SDL_LIBS@ +- +-TestEmu_DEPENDENCIES = @VBA_LIBS@ +- + AM_CPPFLAGS = \ + -I$(top_srcdir)/src \ + -DSDL \ diff --git a/games-emulation/visualboyadvance/patches/Util.patch b/games-emulation/visualboyadvance/patches/Util.patch new file mode 100644 index 000000000..891ac1d84 --- /dev/null +++ b/games-emulation/visualboyadvance/patches/Util.patch @@ -0,0 +1,26 @@ +diff --git a/src/Util.cpp b/src/Util.cpp +index 9e3b7d9..6ab1614 100644 +--- a/src/Util.cpp ++++ b/src/Util.cpp +@@ -86,8 +86,12 @@ bool utilWritePNGFile(const char *fileName, int w, int h, u8 *pix) + fclose(fp); + return false; + } ++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4 + ++#else + if(setjmp(png_ptr->jmpbuf)) { ++#endif ++ if(setjmp(png_jmpbuf(png_ptr))) { + png_destroy_write_struct(&png_ptr,NULL); + fclose(fp); + return false; +@@ -992,7 +996,7 @@ void utilWriteData(gzFile gzFile, variable_desc *data) + + gzFile utilGzOpen(const char *file, const char *mode) + { +- utilGzWriteFunc = (int (ZEXPORT *)(void *,void * const, unsigned int))gzwrite; ++ utilGzWriteFunc = (int (ZEXPORT *)(gzFile,const voidp, unsigned int))gzwrite; + utilGzReadFunc = gzread; + utilGzCloseFunc = gzclose; + diff --git a/games-emulation/visualboyadvance/patches/configure.in.patch b/games-emulation/visualboyadvance/patches/configure.in.patch new file mode 100644 index 000000000..0ff81324a --- /dev/null +++ b/games-emulation/visualboyadvance/patches/configure.in.patch @@ -0,0 +1,12 @@ +diff --git a/configure.in b/configure.in +index 159bf87..1ad2fac 100644 +--- a/configure.in ++++ b/configure.in +@@ -64,6 +64,7 @@ dnl Checks for libraries. + AC_CHECK_LIB(z, gzopen, + , AC_MSG_ERROR([*** Cannot compile without zlib.])) + AC_CHECK_LIB(pthread, pthread_yield) ++AC_CHECK_LIB(network, socket) + + PKG_CHECK_MODULES(LIBPNG, libpng) + CPPFLAGS="$CPPFLAGS $LIBPNG_CFLAGS" diff --git a/games-emulation/visualboyadvance/patches/visualboyadvance-1.7.2.patch b/games-emulation/visualboyadvance/patches/visualboyadvance-1.7.2.patch deleted file mode 100644 index 1f45d7d7b..000000000 --- a/games-emulation/visualboyadvance/patches/visualboyadvance-1.7.2.patch +++ /dev/null @@ -1,11 +0,0 @@ -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.recipe b/games-emulation/visualboyadvance/visualboyadvance-1.7.2.recipe deleted file mode 100644 index 2cfddb434..000000000 --- a/games-emulation/visualboyadvance/visualboyadvance-1.7.2.recipe +++ /dev/null @@ -1,33 +0,0 @@ -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-emulation/visualboyadvance/visualboyadvance-1.8.recipe b/games-emulation/visualboyadvance/visualboyadvance-1.8.recipe new file mode 100644 index 000000000..d48158e72 --- /dev/null +++ b/games-emulation/visualboyadvance/visualboyadvance-1.8.recipe @@ -0,0 +1,72 @@ +SUMMARY="A Game Boy Advance Emulator" +DESCRIPTION=" +VisualBoyAdvance is a Game Boy Advance emulator which runs your prefered ROMS. +" +HOMEPAGE="http://vba.ngemu.com" +SRC_URI="git://git.debian.org/git/pkg-games/visualboyadvance" +REVISION="1" +LICENSE="GNU GPL v2" +COPYRIGHT="2002-2004 Forgotten" + +ARCHITECTURES="x86 ?x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86 ?x86_64" + +PROVIDES=" + visualboyadvance$secondaryArchSuffix = $portVersion + app:visualboyadvance$secondaryArchSuffix = $portVersion +" + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libsdl$secondaryArchSuffix + lib:libsdl_mixer$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libpng$secondaryArchSuffix +" +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libsdl$secondaryArchSuffix + devel:libsdl_mixer$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:libpng$secondaryArchSuffix +" +BUILD_PREREQUIRES=" + cmd:nasm$secondaryArchSuffix + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:autoconf + cmd:aclocal + cmd:pkg_config +" + +SOURCE_DIR="VisualBoyAdvance-1.8" + +PATCHES=" + Util.patch + Makefile.am.patch + configure.in.patch +" + +BUILD() +{ + libtoolize --force --copy --install + autoreconf -i + runConfigure ./configure --enable-c-core --disable-profilling --without-mmx + make +} + +INSTALL() +{ + cd src + GAMEDIR=$appsDir/Visualboyadvance + mkdir -p ${GAMEDIR} + cp VisualBoyAdvance.cfg ${GAMEDIR} + cp sdl/VisualBoyAdvance ${GAMEDIR} + + addAppDeskbarSymlink ${GAMEDIR}/VisualBoyAdvance +} diff --git a/games-engines/love/love-0.9.0.recipe b/games-engines/love/love-0.9.0.recipe new file mode 100644 index 000000000..e0756bc61 --- /dev/null +++ b/games-engines/love/love-0.9.0.recipe @@ -0,0 +1,90 @@ +SUMMARY="LÖVE is an *awesome* framework you can use to make 2D games in Lua." +DESCRIPTION=" +Hi there! LÖVE is an *awesome* framework you can use to make 2D games in Lua. +It's free, open-source, and works on Windows, Mac OS X and Linux. +" +HOMEPAGE="http://love2d.org/" +SRC_URI="https://bitbucket.org/rude/love/downloads/love-0.9.0-linux-src.tar.gz" +CHECKSUM_SHA256="4f0d24945223fc3ba78f0a81799a179f06b97e9b0aea2c9c6ad532820a491611" +REVISION="1" +LICENSE="Zlib" +COPYRIGHT="2010-2014 Löve" + +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + love$secondaryArchSuffix = $portVersion + cmd:love$secondaryArchSuffix = $portVersion + lib:liblove$secondaryArchSuffix = $portVersion +" +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libSDL2_2.0$secondaryArchSuffix + lib:libvorbis$secondaryArchSuffix + lib:libvorbisfile$secondaryArchSuffix + lib:libmodplug$secondaryArchSuffix >= 0.8.0 + lib:libphysfs$secondaryArchSuffix + lib:libluajit_5.1$secondaryArchSuffix + lib:libopenal$secondaryArchSuffix + lib:libogg$secondaryArchSuffix + lib:libfreetype$secondaryArchSuffix + lib:libIL$secondaryArchSuffix + lib:libGL$secondaryArchSuffix + lib:libmpg123$secondaryArchSuffix + lib:libz$secondaryArchSuffix +" +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libSDL2$secondaryArchSuffix + devel:libvorbis$secondaryArchSuffix + devel:libvorbisfile$secondaryArchSuffix + devel:libmodplug$secondaryArchSuffix >= 0.8.0 + devel:libphysfs$secondaryArchSuffix + devel:libluajit_5.1$secondaryArchSuffix + devel:libopenal$secondaryArchSuffix + devel:libogg$secondaryArchSuffix + devel:libfreetype$secondaryArchSuffix + devel:libIL$secondaryArchSuffix + devel:libGL$secondaryArchSuffix + devel:libmpg123$secondaryArchSuffix + devel:libz$secondaryArchSuffix +" +BUILD_PREREQUIRES=" + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:pkg_config$secondaryArchSuffix + cmd:awk +" + +PATCHES="love-0.9.0.patchset" +BUILD() +{ + runConfigure ./configure + # The pkg-config for freetype doesn't give this directory, which means + # there is no good way of finding it... + make $jobArgs CXXFLAGS="-I/system/develop/headers/x86/freetype2/ --std=c++11" +} + +INSTALL() +{ + make install + + prepareInstalledDevelLib liblove + packageEntries devel $developDir +} + +PROVIDES_devel=" + love${secondaryArchSuffix}_devel = $portVersion + devel:liblove$secondaryArchSuffix = $portVersion +" + +REQUIRES_devel=" + love$secondaryArchSuffix == $portVersion base +" diff --git a/games-engines/love/patches/love-0.9.0.patchset b/games-engines/love/patches/love-0.9.0.patchset new file mode 100644 index 000000000..ff417add8 --- /dev/null +++ b/games-engines/love/patches/love-0.9.0.patchset @@ -0,0 +1,79 @@ +From 812eb4fa9c69400b4bd0c10e29db3ca14dc51bf0 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Tue, 28 Jan 2014 20:25:18 +0100 +Subject: Hack Glee to compile (we don't need GLX!) + + +diff --git a/src/modules/graphics/opengl/GLee.c b/src/modules/graphics/opengl/GLee.c +index 789e189..850a87d 100644 +--- a/src/modules/graphics/opengl/GLee.c ++++ b/src/modules/graphics/opengl/GLee.c +@@ -22418,7 +22418,7 @@ const char *__GLeeGetExtStrPlat( void ) + + if (wglGetExtensionsStringARB) + return (const char *)wglGetExtensionsStringARB(wglGetCurrentDC()); +-#elif defined(__APPLE__) || defined(__APPLE_CC__) ++#elif defined(__APPLE__) || defined(__APPLE_CC__) || defined(__HAIKU__) + #else + Display *dpy=glXGetCurrentDisplay(); + if(dpy) +diff --git a/src/modules/graphics/opengl/GLee.h b/src/modules/graphics/opengl/GLee.h +index 631cddc..42782ec 100644 +--- a/src/modules/graphics/opengl/GLee.h ++++ b/src/modules/graphics/opengl/GLee.h +@@ -64,7 +64,9 @@ + #define __glxext_h_ /* prevent glxext.h from being included */ + #define GLX_GLXEXT_PROTOTYPES + #include +- #include ++ #ifndef __HAIKU__ ++ #include ++ #endif + #endif + + #ifndef APIENTRY +@@ -1152,7 +1154,7 @@ GLEE_EXTERN GLboolean _GLEE_SGIX_igloo_interface; + DECLARE_HANDLE(HVIDEOINPUTDEVICENV); + #endif + +-#elif defined(__APPLE__) || defined(__APPLE_CC__) ++#elif defined(__APPLE__) || defined(__APPLE_CC__) || defined(__HAIKU__) + + /* Mac OS X */ + +@@ -23178,7 +23180,7 @@ GLEE_EXTERN GLboolean _GLEE_WGL_NV_video_output; + #define wglGetVideoInfoNV GLeeFuncPtr_wglGetVideoInfoNV + #endif + #endif +-#elif defined(__APPLE__) || defined(__APPLE_CC__) ++#elif defined(__APPLE__) || defined(__APPLE_CC__) || defined(__HAIKU__) + #else /* GLX */ + + /* Extension querying variables */ +-- +1.8.3.4 + + +From cd63b6001a9dca28e0af9803b50f5127621ef1b7 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Tue, 1 Apr 2014 22:32:15 +0200 +Subject: Remove dupliczte definition of __stdcall + +* Haiku defines that to empty already, for legacy reasons. + +diff --git a/src/modules/graphics/opengl/GLee.c b/src/modules/graphics/opengl/GLee.c +index 850a87d..1f46525 100644 +--- a/src/modules/graphics/opengl/GLee.c ++++ b/src/modules/graphics/opengl/GLee.c +@@ -55,7 +55,7 @@ typedef GLuint(*GLEE_LINK_FUNCTION)(void); + + GLboolean __GLeeInited=GL_FALSE; + +-#ifndef _WIN32 ++#if !defined(_WIN32) && !defined(__HAIKU__) + #define __stdcall /* nothing */ + #endif + +-- +1.8.3.4 + diff --git a/games-engines/scummvm/patches/scummvm_haiku.diff b/games-engines/scummvm/patches/scummvm_haiku.diff deleted file mode 100644 index 9f2d49e78..000000000 --- a/games-engines/scummvm/patches/scummvm_haiku.diff +++ /dev/null @@ -1,111 +0,0 @@ -Index: configure -=================================================================== ---- configure (revision 35712) -+++ configure (working copy) - -1052,11 +1052,23 @@ - beos*) - DEFINES="$DEFINES -DUNIX -DSYSTEM_NOT_SUPPORTING_D_TYPE" - # Needs -lbind -lsocket for the timidity MIDI driver -+ LDFLAGS="-L/boot/home/config/lib" -+ CFLAGS="-I/boot/home/config/include" -+ CXXFLAGS="$CXXFLAGS -fhuge-objects" - LIBS="$LIBS -lbind -lsocket" - type_1_byte='char' - type_2_byte='short' - type_4_byte='long' - ;; -+ haiku*) -+ DEFINES="$DEFINES -DUNIX -DSYSTEM_NOT_SUPPORTING_D_TYPE" -+ # Needs -lnetwork for the timidity MIDI driver -+ LIBS="$LIBS -lnetwork" -+ CXXFLAGS="$CXXFLAGS -fhuge-objects" -+ type_1_byte='char' -+ type_2_byte='short' -+ type_4_byte='long' -+ ;; - solaris*) - DEFINES="$DEFINES -DUNIX -DSOLARIS -DSYSTEM_NOT_SUPPORTING_D_TYPE" - # Needs -lbind -lsocket for the timidity MIDI driver -Index: gui/ThemeData.h -=================================================================== ---- gui/ThemeData.h (revision 35712) -+++ gui/ThemeData.h (working copy) - -27,6 +27,7 @@ - #define GUI_THEME_DATA_H - - #include "gui/ThemeEngine.h" -+#include "graphics/VectorRenderer.h" - - namespace GUI { - -Index: config.guess -=================================================================== ---- config.guess (revision 35712) -+++ config.guess (working copy) - -1206,6 +1206,9 @@ - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; -+ BePC:Haiku:*:*) # BeOS running on Intel PC compatible. -+ echo i586-pc-haiku -+ exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; -Index: config.sub -=================================================================== ---- config.sub (revision 35712) -+++ config.sub (working copy) - -1559,6 +1559,9 @@ - -beos*) - vendor=be - ;; -+ -haiku*) -+ vendor=haiku -+ ;; - -hpux*) - vendor=hp - ;; -Index: graphics/scaler/hq2x_i386.asm -=================================================================== ---- graphics/scaler/hq2x_i386.asm (revision 35712) -+++ graphics/scaler/hq2x_i386.asm (working copy) - -1841,7 +1841,7 @@ - dd ..@flag0, ..@flag0, ..@flag0, ..@flag0 - - --%ifidn __OUTPUT_FORMAT__,elf --section .note.GNU-stack noalloc noexec nowrite progbits --%endif -+# %ifidn __OUTPUT_FORMAT__,elf -+# section .note.GNU-stack noalloc noexec nowrite progbits -+# %endif - -Index: graphics/scaler/hq3x_i386.asm -=================================================================== ---- graphics/scaler/hq3x_i386.asm (revision 35712) -+++ graphics/scaler/hq3x_i386.asm (working copy) - -2433,7 +2433,7 @@ - dd ..@flag0, ..@flag0, ..@flag0, ..@flag0 - - --%ifidn __OUTPUT_FORMAT__,elf --section .note.GNU-stack noalloc noexec nowrite progbits --%endif -+# %ifidn __OUTPUT_FORMAT__,elf -+# section .note.GNU-stack noalloc noexec nowrite progbits -+# %endif - -Index: graphics/surface.h -=================================================================== ---- graphics/surface.h (revision 35712) -+++ graphics/surface.h (working copy) - -47,7 +47,7 @@ - Surface() : w(0), h(0), pitch(0), pixels(0), bytesPerPixel(0) {} - - inline const void *getBasePtr(int x, int y) const { -- return static_cast(pixels) + y * pitch + x * bytesPerPixel; -+ return (const byte *)(pixels) + y * pitch + x * bytesPerPixel; - } - - inline void *getBasePtr(int x, int y) { \ No newline at end of file diff --git a/games-engines/scummvm/scummvm-1.6.0.recipe b/games-engines/scummvm/scummvm-1.6.0.recipe new file mode 100644 index 000000000..03f773944 --- /dev/null +++ b/games-engines/scummvm/scummvm-1.6.0.recipe @@ -0,0 +1,61 @@ +SUMMARY="Script Creation Utility for Maniac Mansion Virtual Machine" +DESCRIPTION=" +ScummVM is a program which allows you to run certain classic graphical \ +point-and-click adventure games, provided you already have their data files. \ +The clever part about this: ScummVM just replaces the executables shipped with \ +the games, allowing you to play them on systems for which they were never \ +designed! +" +HOMEPAGE="http://scummvm.org" +SRC_URI="http://prdownloads.sourceforge.net/scummvm/scummvm-1.6.0.tar.bz2?download" +CHECKSUM_SHA256="396060da6a8f391438055c292a280048d29dc408c5b615db43256a86f0e57ec4" +SRC_FILENAME="scummvm-$portVersion.tar.bz2" +REVISION="1" +LICENSE="GNU GPL v2" +COPYRIGHT="2001-2013 ScummVM Team" + +ARCHITECTURES="x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86 ?x86_64" + +PROVIDES=" + scummvm = $portVersion + app:scummvm = $portVersion +" +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libSDL$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libogg$secondaryArchSuffix + lib:libvorbis$secondaryArchSuffix +" +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libSDL$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:libogg$secondaryArchSuffix + devel:libvorbis$secondaryArchSuffix + devel:libglu$secondaryArchSuffix +" +BUILD_PREREQUIRES=" + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:nasm$secondaryArchSuffix + cmd:libtoolize +" + +SOURCE_DIR="scummvm-1.6.0" + +BUILD() +{ + libtoolize --force --copy --install + ./configure --prefix=$prefix --bindir=$appsDir --libdir=$libDir --datarootdir=$dataDir --mandir=$manDir --docdir=$docDir \ + --enable-release + make +} +INSTALL() +{ + make install + + addAppDeskbarSymlink $appsDir/scummvm +} diff --git a/games-engines/solarus/patches/solarus-luajit-1.1.1.patch b/games-engines/solarus/patches/solarus-luajit-1.1.1.patch new file mode 100644 index 000000000..4020dcc88 --- /dev/null +++ b/games-engines/solarus/patches/solarus-luajit-1.1.1.patch @@ -0,0 +1,75 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 782799a..c17a479 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -16,7 +16,7 @@ find_package(OpenAL REQUIRED) + find_package(VorbisFile REQUIRED) + find_package(Ogg REQUIRED) + find_package(ModPlug REQUIRED) +-find_package(Lua51 REQUIRED) ++find_package(LuaJIT REQUIRED) + find_package(PhysFS REQUIRED) + + # Explicit link to libdl is needed for Lua on some systems. +diff --git a/cmake/modules/FindLuaJIT.cmake b/cmake/modules/FindLuaJIT.cmake +new file mode 100644 +index 0000000..6b45ed6 +--- /dev/null ++++ b/cmake/modules/FindLuaJIT.cmake +@@ -0,0 +1,56 @@ ++# Locate LuaJIT library ++# This module defines ++# LUAJIT_FOUND, if false, do not try to link to Lua ++# LUA_LIBRARIES ++# LUA_INCLUDE_DIR, where to find lua.h ++# LUAJIT_VERSION_STRING, the version of Lua found (since CMake 2.8.8) ++ ++## Copied from default CMake FindLua51.cmake ++ ++find_path(LUA_INCLUDE_DIR luajit.h ++ HINTS ++ ENV LUA_DIR ++ PATH_SUFFIXES include/luajit-2.0 include ++ PATHS ++ ~/Library/Frameworks ++ /Library/Frameworks ++ /sw # Fink ++ /opt/local # DarwinPorts ++ /opt/csw # Blastwave ++ /opt ++) ++ ++find_library(LUA_LIBRARY ++ NAMES luajit-5.1 ++ HINTS ++ ENV LUA_DIR ++ PATH_SUFFIXES lib ++ PATHS ++ ~/Library/Frameworks ++ /Library/Frameworks ++ /sw ++ /opt/local ++ /opt/csw ++ /opt ++) ++ ++if(LUA_LIBRARY) ++ set( LUA_LIBRARIES "${LUA_LIBRARY}" CACHE STRING "Lua Libraries") ++endif() ++ ++if(LUA_INCLUDE_DIR AND EXISTS "${LUA_INCLUDE_DIR}/luajit.h") ++ file(STRINGS "${LUA_INCLUDE_DIR}/luajit.h" luajit_version_str REGEX "^#define[ \t]+LUAJIT_VERSION[ \t]+\"LuaJIT .+\"") ++ ++ string(REGEX REPLACE "^#define[ \t]+LUAJIT_VERSION[ \t]+\"LuaJIT ([^\"]+)\".*" "\\1" LUAJIT_VERSION_STRING "${luajit_version_str}") ++ unset(luajit_version_str) ++endif() ++ ++include(FindPackageHandleStandardArgs) ++# handle the QUIETLY and REQUIRED arguments and set LUA_FOUND to TRUE if ++# all listed variables are TRUE ++FIND_PACKAGE_HANDLE_STANDARD_ARGS(LuaJIT ++ REQUIRED_VARS LUA_LIBRARIES LUA_INCLUDE_DIR ++ VERSION_VAR LUAJIT_VERSION_STRING) ++ ++mark_as_advanced(LUA_INCLUDE_DIR LUA_LIBRARIES LUA_LIBRARY LUA_MATH_LIBRARY) ++ diff --git a/games-engines/solarus/solarus-1.1.1.recipe b/games-engines/solarus/solarus-1.1.1.recipe new file mode 100644 index 000000000..efc7397bc --- /dev/null +++ b/games-engines/solarus/solarus-1.1.1.recipe @@ -0,0 +1,61 @@ +SUMMARY="An ARPG game engine" +DESCRIPTION=" +Solarus is an open-source Zelda-like 2D game engine. +" +HOMEPAGE="http://solarus-games.org" +SRC_URI="http://www.solarus-games.org/downloads/solarus/solarus-1.1.1-src.tar.gz" +CHECKSUM_SHA256="5355e95edbd5234f57a8748d1417ca346468e5804e44293d2523b57367eb5615" +REVISION="2" +LICENSE="GNU GPL v3" +COPYRIGHT="2006-2013 Christopho, Solarus" + +ARCHITECTURES="x86_gcc2 !x86 !x86_64" +SECONDARY_ARCHITECTURES="x86 !x86_64" + +PROVIDES=" + solarus$secondaryArchSuffix = $portVersion + cmd:solarus = $portVersion +" +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libSDL$secondaryArchSuffix + lib:libsdl_ttf$secondaryArchSuffix + lib:libsdl_image$secondaryArchSuffix + lib:libvorbis$secondaryArchSuffix + lib:libmodplug$secondaryArchSuffix >= 0.8.0 + lib:libphysfs$secondaryArchSuffix + lib:liblua$secondaryArchSuffix == 5.1.4 + lib:libopenal$secondaryArchSuffix + lib:libogg$secondaryArchSuffix +" +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libSDL$secondaryArchSuffix + devel:libsdl_ttf$secondaryArchSuffix + devel:libsdl_image$secondaryArchSuffix + devel:libvorbis$secondaryArchSuffix + devel:libmodplug$secondaryArchSuffix >= 0.8.0 + devel:libphysfs$secondaryArchSuffix + devel:liblua$secondaryArchSuffix == 5.1.4 + devel:libopenal$secondaryArchSuffix + devel:libogg$secondaryArchSuffix +" +BUILD_PREREQUIRES=" + cmd:cmake + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize +" + +BUILD() +{ + cmake -DCMAKE_INSTALL_PREFIX="$prefix" \ + -DCMAKE_BUILD_TYPE=Release . + make $jobArgs +} + +INSTALL() +{ + make install +} diff --git a/games-kids/dragonmemory/dragonmemory-1.recipe b/games-kids/dragonmemory/dragonmemory-1.recipe new file mode 100644 index 000000000..5fa86c8b2 --- /dev/null +++ b/games-kids/dragonmemory/dragonmemory-1.recipe @@ -0,0 +1,60 @@ +SUMMARY="A memory game with addictive gameplay" +DESCRIPTION=" +Dragon Memory is a simple but fun memory game with very detailed graphics and \ +addictive gameplay. +" +HOMEPAGE="http://sourceforge.net/projects/dragonmemory/" +SRC_URI="http://cznic.dl.sourceforge.net/project/dragonmemory/DragonMemory-source.tgz + http://heanet.dl.sourceforge.net/project/dragonmemory/DragonMemory-source.tgz" +SRC_FILENAME="DragonMemory-1-source.tgz" +CHECKSUM_SHA256="e0d7ff168cc7a5e01247e4c290346bf26a8423e0fc7b7b3047f437451c8f37b5" +REVISION="1" +ARCHITECTURES="!x86_gcc2 !x86 !x86_64" +SOURCE_DIR="DragonMemory" + +PROVIDES=" + dragonmemory = $portVersion + app:dragonmemory = $portVersion" + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + makefile_engine + libsdl + sdl_image + sdl_mixer + glu +# cmd:sdl-config + cmd:gcc + cmd:make + cmd:mkdepend" + + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:libsdl + devel:sdl_image + devel:sdl_mixer + devel:libglu + " + +REQUIRES=" + lib:libsdl + lib:libsdl_image + lib:libsdl_mixer + lib:libglu + " + +COPYRIGHT="2011 Santiago Radeff Leria http://www.dragontech.net/" +LICENSE="GNU GPL v3" + +BUILD() +{ + make +} + +INSTALL() +{ + mkdir -p $appsDir/DragonMemory + cp -R dragonmemory gfx fonts music themes sounds $appsDir/DragonMemory + addAppDeskbarSymlink $appsDir/DragonMemory/dragonmemory +} diff --git a/games-kids/pipepanic/patches/pipepanic-0.1.3.patch b/games-kids/pipepanic/patches/pipepanic-0.1.3.patch new file mode 100644 index 000000000..371ff24ad --- /dev/null +++ b/games-kids/pipepanic/patches/pipepanic-0.1.3.patch @@ -0,0 +1,57 @@ +--- ../main.c 2006-05-16 22:11:29.042991616 +0200 ++++ main-new.c 2013-12-09 16:52:30.000000000 +0100 +@@ -16,6 +16,10 @@ + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + + /* Includes */ ++// chdir() ++#include ++#include ++ + #include + #include + #include +@@ -102,6 +106,9 @@ + int main(int argc, char *argv[]) { + int count, count2; + ++ // For tracker (Thanks PulkoMandy) ++ chdir(dirname(argv[0])); ++ + /* Initialise the highscoreboard array because there may not yet + be a saved highscore[board]/rc file */ + for (count = 0; count < 5; count++) { + +--- ../pipepanic.rdef ++++ pipepanic.rdef +@@ -0,0 +1,30 @@ ++resource app_signature "application/x-vnd.Thnor-Pipepanic"; ++ ++resource app_version { ++ major = 0, ++ middle = 1, ++ minor = 3, ++ ++ variety = B_APPV_FINAL, ++ internal = 0, ++ ++ short_info = "A pipe connecting game", ++ long_info = "A pipe connecting game" ++}; ++ ++resource app_flags B_SINGLE_LAUNCH; ++ ++resource vector_icon { ++ $"6E636966070500020006030000003ABFAEBABFAE0000004B750A49FE3D1BFF00" ++ $"0082FF8C8CE0FF0000020006030000003ABFAEBABFAE0000004D228549FE3D1B" ++ $"197F008200FF00E0657F00020006030000003A2000BA20000000004AB0004A00" ++ $"00000000FF807272FFFB0000FF020006030000003A2000BA20000000004AB000" ++ $"4A000000CCBC3E7EFFEB4EFBCCBC3E020016030000003A123DBA123D00000048" ++ $"A6E149FEE1004883FFFD4804228D070A042635264B2F4B2F350A044B354B4B54" ++ $"4B54350A093C353CC41042C42042484A484A38423842BB5C3CBB5C0A04383538" ++ $"4B3C4B3C350A042F382F48384838380A042F382F49304930380A142F35263526" ++ $"4B2F4B2F483848384B424B42484B484B4B544B54354B354B3842384235383538" ++ $"382F380B0A0601062027280A0001061001178402040A010100000A020101000A" ++ $"030102000A040103000A050104000A000105000A0001052028200A0001052033" ++ $"200A000105203B1F" ++}; diff --git a/games-kids/pipepanic/pipepanic-0.1.3.recipe b/games-kids/pipepanic/pipepanic-0.1.3.recipe new file mode 100644 index 000000000..766366857 --- /dev/null +++ b/games-kids/pipepanic/pipepanic-0.1.3.recipe @@ -0,0 +1,48 @@ +SUMMARY="A pipe connecting game." +DESCRIPTION="Pipepanic is a pipe connecting game using libSDL. Connect as many different \ +shaped pipes together as possible within the time given. +" +HOMEPAGE="http://www.users.waitrose.com/~thunor/pipepanic/" +SRC_URI="http://www.users.waitrose.com/~thunor/pipepanic/dload/pipepanic-0.1.3-source.tar.gz" +CHECKSUM_SHA256="4b02249c92228b03f4cc3c1d999cacf3fe52c16df53c6bf76fc6c1e2caa74318" +SOURCE_DIR="pipepanic-0.1.3-source" +LICENSE="GNU GPL v2" +COPYRIGHT="2005-2013 Thunor" +REVISION="3" +ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + pipepanic = $portVersion + app:pipepanic = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libsdl$secondaryArchSuffix + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libsdl$secondaryArchSuffix + cmd:xres + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:make + " +PATCHES=" + pipepanic-0.1.3.patch + " + +BUILD() +{ + make + rc -o pipepanic.rsrc pipepanic.rdef + xres -o pipepanic pipepanic.rsrc +} + +INSTALL() +{ + mkdir -p $appsDir/Pipepanic + cp pipepanic $appsDir/Pipepanic/Pipepanic + cp ascii15.bmp ascii30.bmp digits24.bmp digits48.bmp tiles24.bmp tiles48.bmp $appsDir/Pipepanic/ + addAppDeskbarSymlink $appsDir/Pipepanic/Pipepanic +} diff --git a/games-puzzle/gemz/gemz-0.97.0.recipe b/games-puzzle/gemz/gemz-0.97.0.recipe new file mode 100644 index 000000000..d0891a46f --- /dev/null +++ b/games-puzzle/gemz/gemz-0.97.0.recipe @@ -0,0 +1,59 @@ +SUMMARY="An SDL implementation of the popular puzzle game 'Bejeweled'" +DESCRIPTION=" +Gemz is an SDL implementation of the popular puzzle game 'Bejeweled'. +The objective of this game is to swap one gem with an adjacent gem to form a \ +horizontal or vertical chain of three or more gems. Bonus points are given \ +when chains of more than three identical gems are formed and when two chains \ +are formed in one swap. Gems disappear when chains are formed and gems fall \ +from the top to fill in gaps. Sometimes chain reactions, called cascades, are \ +triggered, where chains are formed by the falling gems. +" +HOMEPAGE="http://sourceforge.net/projects/gemz/" +SRC_URI="http://sourceforge.net/projects/gemz/files/gemz/Source/gemz-0.97.0.tgz/download" +CHECKSUM_SHA256="8a61bf40e6e12d6764a1a6d4f99aec27f1c54a31f26ce09d13a6596a33d8ee5a" +LICENSE="GNU GPL v2" +COPYRIGHT="2003-2013 Jonathan Bilodeau" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + gemz = $portVersion + app:gemz = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libsdl$secondaryArchSuffix + lib:libsdl_image$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libsdl$secondaryArchSuffix + devel:libsdl_image$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:make + cmd:which + cmd:sdl_config$secondaryArchSuffix + " + +PATCHES=" + gemz-0.97.0.patch + " + +BUILD() +{ + make +} + +INSTALL() +{ + mkdir -p $appsDir/gemz + cp -r fonts gfx tilesets $appsDir/gemz + cp gemz $appsDir/gemz/gemz + + addAppDeskbarSymlink $appsDir/gemz/gemz "Gemz" +} diff --git a/games-puzzle/gemz/patches/gemz-0.97.0.patch b/games-puzzle/gemz/patches/gemz-0.97.0.patch new file mode 100644 index 000000000..6cf8f0355 --- /dev/null +++ b/games-puzzle/gemz/patches/gemz-0.97.0.patch @@ -0,0 +1,37 @@ +--- ../Makefile 2004-05-07 05:39:47.034340864 +0000 ++++ Makefile-new 2013-12-13 22:51:00.000000000 +0000 +@@ -2,7 +2,7 @@ + CFLAGS+=-O2 -Wall -W -g + #CFLAGS+=-O2 -Wall -W -g -fprofile-arcs -ftest-coverage -pg + CFLAGS+=`sdl-config --cflags` +-LFLAGS=`sdl-config --libs` -lSDL_image -L/usr/X11R6/lib -lX11 ++LFLAGS=`sdl-config --libs` -lSDL_image + SRCS= \ + SFont.c \ + board.c \ +--- ../main.c 2004-05-07 05:36:26.035389440 +0000 ++++ main-new.c 2013-12-13 23:41:06.150994944 +0000 +@@ -2,6 +2,8 @@ + #include + #include + #include ++#include ++#include + + #include "board.h" + #include "graphics.h" +@@ -27,11 +29,12 @@ + /* 3. Start the game loop */ + /* 4. Clean up before the program exits */ + /* ************************************************************************ */ +-int main() ++int main(int argc, char *argv[]) + { + game_t game; + screen_t screen; +- ++ // For tracker ++ chdir(dirname(argv[0])); + /* initialize various systems (sounds, graphics, input, etc) */ + if (init(&screen)) + { diff --git a/games-puzzle/gnurobbo/gnurobbo-0.65.recipe b/games-puzzle/gnurobbo/gnurobbo-0.65.recipe index 9e96c5ba6..3db62d4ee 100644 --- a/games-puzzle/gnurobbo/gnurobbo-0.65.recipe +++ b/games-puzzle/gnurobbo/gnurobbo-0.65.recipe @@ -1,4 +1,7 @@ -DESCRIPTION="GNU Robbo is a free open source reimplementation of Janusz Pelc's Robbo for the Atari XE/XL which was distributed by LK Avalon in 1989." +DESCRIPTION=" +GNU Robbo is a free open source reimplementation of Janusz Pelc's Robbo for \ +the Atari XE/XL which was distributed by LK Avalon in 1989. +" HOMEPAGE="http://gnurobbo.sourceforge.net/" SRC_URI="http://mirrors.ludost.net/gentoo/distfiles/gnurobbo-0.65.6-source.tar.gz" CHECKSUM_MD5="bb7d2bc1282429ac5c0b89966b07e0cc" diff --git a/games-puzzle/mirrormagic/mirrormagic-2.0.2.recipe b/games-puzzle/mirrormagic/mirrormagic-2.0.2.recipe new file mode 100644 index 000000000..5da7e81e1 --- /dev/null +++ b/games-puzzle/mirrormagic/mirrormagic-2.0.2.recipe @@ -0,0 +1,54 @@ +SUMMARY="a game like Deflektor (C64) or Mindbender (Amiga) " +HOMEPAGE="http://www.artsoft.org/mirrormagic/" +LICENSE="GNU GPL v2" +COPYRIGHT="1989-2003 Artsoft Entertainment" +SRC_URI="http://www.artsoft.org/RELEASES/unix/mirrormagic/mirrormagic-2.0.2.tar.gz" +CHECKSUM_SHA256="79b3f13d493523438eeb988beffc272c804bc7a4361b83167a082c77e74b3ce2" +REVISION="1" +ARCHITECTURES="x86_gcc2" + +PROVIDES=" + mirrormagic = $portVersion + app:mirrormagic = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libsdl$secondaryArchSuffix + lib:libsdl_image$secondaryArchSuffix + lib:libsdl_mixer$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libsdl$secondaryArchSuffix + devel:libsdl_image$secondaryArchSuffix + devel:libsdl_mixer$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + haiku_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +PATCHES="mirrormagic-2.0.2.patchset" +BUILD() +{ + # parallel build not available. + make sdl +} + +INSTALL() +{ + destDir="$appsDir/Mirror Magic" + mkdir -p "$destDir" + cp -r mirrormagic graphics levels music sounds "$destDir" + addAppDeskbarSymlink "$destDir/mirrormagic" "Mirror Magic" +} + +# ----- DESCRIPTION ----------------------------------------------------------- + +DESCRIPTION=" +Make the Laser reach the target by rotating mirrors, but take care of not +overheating. +" diff --git a/games-puzzle/mirrormagic/patches/mirrormagic-2.0.2.patchset b/games-puzzle/mirrormagic/patches/mirrormagic-2.0.2.patchset new file mode 100644 index 000000000..e66c04ec2 --- /dev/null +++ b/games-puzzle/mirrormagic/patches/mirrormagic-2.0.2.patchset @@ -0,0 +1,106 @@ +From 5e9e47e0aa86949c07c14a0012180614695ba74b Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Mon, 20 Jan 2014 20:59:52 +0100 +Subject: Remove hardcoded -lm + + +diff --git a/src/Makefile b/src/Makefile +index 6ab93a5..6944437 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -113,7 +113,7 @@ OPTIONS = -O3 -Wall + endif + + CFLAGS = $(OPTIONS) $(SYS_CFLAGS) $(CONFIG) +-LDFLAGS = $(SYS_LDFLAGS) $(EXTRA_LDFLAGS) -lm ++LDFLAGS = $(SYS_LDFLAGS) $(EXTRA_LDFLAGS) + + + SRCS = main.c \ +-- +1.8.3.4 + + +From 587046f039a7a29ed96383d9d73b1d605a398701 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Mon, 20 Jan 2014 21:07:38 +0100 +Subject: Have MirrorMagic looks for files in its own dir. + + +diff --git a/src/main.c b/src/main.c +index 0e3f90e..7a2cfaa 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -620,6 +620,8 @@ int num_element_info = sizeof(element_info)/sizeof(char *); + + int main(int argc, char *argv[]) + { ++ chdir(dirname(argv[0])); ++ + InitCommandName(argv[0]); + InitExitFunction(CloseAllAndExit); + InitPlatformDependantStuff(); +-- +1.8.3.4 + + +From 78ab3228259485da50b6a78fa66d47ea08ae6f4f Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Mon, 20 Jan 2014 21:29:11 +0100 +Subject: Fix settings dir. + + +diff --git a/src/init.c b/src/init.c +index 923da8c..e287635 100644 +--- a/src/init.c ++++ b/src/init.c +@@ -23,6 +23,10 @@ + #include "tools.h" + #include "files.h" + ++#if __HAIKU__ ++#include ++#endif ++ + static void InitPlayerInfo(void); + static void InitLevelInfo(void); + static void InitSound(void); +@@ -33,10 +37,20 @@ static void InitElementProperties(void); + + void OpenAll(void) + { ++#if __HAIKU__ ++ char dir[256]; ++ find_directory(B_USER_SETTINGS_DIRECTORY, 0, true, dir, sizeof(dir)); ++ strcat(dir, "/mirrormagic"); ++ InitProgramInfo(dir, ++ PROGRAM_TITLE_STRING, WINDOW_TITLE_STRING, ++ ICON_TITLE_STRING, X11_ICON_FILENAME, X11_ICONMASK_FILENAME, ++ MSDOS_POINTER_FILENAME); ++#else + InitProgramInfo(UNIX_USERDATA_DIRECTORY, + PROGRAM_TITLE_STRING, WINDOW_TITLE_STRING, + ICON_TITLE_STRING, X11_ICON_FILENAME, X11_ICONMASK_FILENAME, + MSDOS_POINTER_FILENAME); ++#endif + + InitPlayerInfo(); + +diff --git a/src/libgame/misc.c b/src/libgame/misc.c +index 7a55d94..a46a298 100644 +--- a/src/libgame/misc.c ++++ b/src/libgame/misc.c +@@ -348,7 +348,9 @@ char *getRealName() + + char *getHomeDir() + { +-#if defined(PLATFORM_UNIX) ++#if __HAIKU__ ++ return ""; ++#elif defined(PLATFORM_UNIX) + static char *home_dir = NULL; + + if (!home_dir) +-- +1.8.3.4 + diff --git a/games-puzzle/neverball/neverball-1.5.4.recipe b/games-puzzle/neverball/neverball-1.5.4.recipe new file mode 100644 index 000000000..3d8e2d59c --- /dev/null +++ b/games-puzzle/neverball/neverball-1.5.4.recipe @@ -0,0 +1,71 @@ +SUMMARY="Tilt the floor to roll a ball through an course before time runs out." +DESCRIPTION=" +Neverball is part puzzle game, part action game, and entirely a test of skill. \ +Tilt the floor to roll a ball through an obstacle course before time runs out. +" +HOMEPAGE="http://neverball.org" +COPYRIGHT="2002-2010 The Neverball Team" +LICENSE="GNU GPL v2" +SRC_URI="http://neverball.org/neverball-1.5.4.tar.gz" +CHECKSUM_SHA256="ea31ca9f6eec70c8e66eaa20d7ce9e48295fdb077313b97637c503b16b7b0da6" +REVISION="1" +ARCHITECTURES="x86 ?x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" +PATCHES="neverball-1.5.4.patch" + +PROVIDES=" + neverball$secondaryArchSuffix = $portVersion + app:neverball$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libphysfs$secondaryArchSuffix + lib:libsdl$secondaryArchSuffix + lib:libsdl_mixer$secondaryArchSuffix + lib:libsdl_ttf$secondaryArchSuffix + lib:libvorbis$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + + lib:libpng$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:libogg$secondaryArchSuffix + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libphysfs$secondaryArchSuffix + devel:libsdl$secondaryArchSuffix + devel:libsdl_mixer$secondaryArchSuffix + devel:libsdl_ttf$secondaryArchSuffix + devel:libvorbis$secondaryArchSuffix + + devel:libpng$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:libogg$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + gettext$secondaryArchSuffix # it's needed + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:libpng_config$secondaryArchSuffix + " + +BUILD() +{ + make +} + +INSTALL() +{ + mkdir -p $appsDir/neverball + cp -rf neverball neverputt mapc README COPYING CHANGES data $appsDir/neverball + addAppDeskbarSymlink $appsDir/neverball/neverball +} diff --git a/games-puzzle/neverball/patches/neverball-1.5.4.patch b/games-puzzle/neverball/patches/neverball-1.5.4.patch new file mode 100644 index 000000000..60a118e94 --- /dev/null +++ b/games-puzzle/neverball/patches/neverball-1.5.4.patch @@ -0,0 +1,13 @@ +diff --git a/Makefile b/Makefile +index a22fed1..e095a3a 100644 +--- a/Makefile ++++ b/Makefile +@@ -111,7 +111,7 @@ ifeq ($(ENABLE_WII),1) + TILT_LIBS := -lcwiimote -lbluetooth + endif + +-OGL_LIBS := -lGL -lm ++OGL_LIBS := -lGL -lintl + + ifdef MINGW + ifneq ($(ENABLE_NLS),0) diff --git a/games-puzzle/numptyphysics/numptyphysics-0.2_157.recipe b/games-puzzle/numptyphysics/numptyphysics-0.2_157.recipe index 66901eda6..2dd1e71fc 100644 --- a/games-puzzle/numptyphysics/numptyphysics-0.2_157.recipe +++ b/games-puzzle/numptyphysics/numptyphysics-0.2_157.recipe @@ -1,4 +1,6 @@ -DESCRIPTION="Numpty Physics is a drawing puzzle game in the spirit of Crayon Physics" +DESCRIPTION=" +Numpty Physics is a drawing puzzle game in the spirit of Crayon Physics. +" HOMEPAGE="http://numptyphysics.garage.maemo.org" SRC_URI="svn+https://vcs.maemo.org/svn/numptyphysics/trunk/#157" #CHECKSUM_MD5="" diff --git a/games-puzzle/rezerwar/patches/rezerwar-0.4.2.patchset b/games-puzzle/rezerwar/patches/rezerwar-0.4.2.patchset new file mode 100644 index 000000000..1ac7b966e --- /dev/null +++ b/games-puzzle/rezerwar/patches/rezerwar-0.4.2.patchset @@ -0,0 +1,68 @@ +From 4daa17a279a72f67e7ca9414e3be6ef6d95c21ad Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Sun, 22 Dec 2013 19:53:37 -0700 +Subject: applying patch rezerwar-0.4.2.patch + + +diff --git a/configure b/configure +index 7933d69..623bd32 100755 +--- a/configure ++++ b/configure +@@ -232,7 +232,7 @@ Debug) + Haiku|BeOS) + check_sdl + check_sdl_mixer +- [ -z "$PREFIX" ] && PREFIX="/boot/apps/rezerwar" ++ [ -z "$PREFIX" ] && PREFIX="data" + [ -z "$TARGET" ] && TARGET="$PREFIX" + TARGET_BIN="$TARGET" + TARGET_DOC="$TARGET" +diff --git a/src/main.c b/src/main.c +index ffc8a06..3132672 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -32,7 +32,8 @@ + #endif + + #include "SDL.h" +- ++#include ++#include + #include "rezerwar.h" + #include "config.h" + +@@ -231,7 +232,8 @@ main(int ac, char **av) + bool loop = true; + char *path; + SDL_Joystick *js; +- ++ // For tracker ++ chdir(dirname(av[0])); + /* Version number only */ + if (has_flag(ac, av, "-v")) { + printf("%s\n", VERSION); +-- +1.8.3.4 + + +From 8fcb551ba8ea30777bf83db46a163c24f3308a06 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Sun, 22 Dec 2013 19:54:31 -0700 +Subject: Enable sound fx + + +diff --git a/configure b/configure +index 623bd32..10584ec 100755 +--- a/configure ++++ b/configure +@@ -239,7 +239,6 @@ Haiku|BeOS) + TARGET_DATA="$TARGET" + CFG_DATAPATH="$TARGET" + CFG_CFGPATH=".rezerwar" +- CFG_NOSOUND=1 + MK_EXTRAOBJS="strsep.o" + ;; + Win32|MINGW32*) +-- +1.8.3.4 + diff --git a/games-puzzle/rezerwar/rezerwar-0.4.2.recipe b/games-puzzle/rezerwar/rezerwar-0.4.2.recipe new file mode 100644 index 000000000..decd12bc8 --- /dev/null +++ b/games-puzzle/rezerwar/rezerwar-0.4.2.recipe @@ -0,0 +1,60 @@ +SUMMARY="A puzzle game" +DESCRIPTION=" +Rezerwar is a puzzle game that could be described as the illegitimate child of \ +a known tetromino game and the average pipe game. +It runs on Linux, Windows, Nintendo Wii (homebrew), FreeBSD, Amiga OS, And \ +Now Haiku! +The whole game was created with open-source software including graphics, \ +sounds and musics. Feel free to contribute. The goal of this game is \ +basically to create networks of water to make them disappear, a couple tricks \ +and techniques will help you achieve this goal faster. +" +HOMEPAGE="http://tamentis.com/projects/rezerwar/" +SRC_URI="http://tamentis.com/projects/rezerwar/files/rezerwar-0.4.2.tar.gz" +CHECKSUM_SHA256="a93ca501803c2fdac0fb695d9a1eeed45807307316d28d3eb8abac8849fcaf02" +LICENSE="BSD (2-clause)" +COPYRIGHT="2008, 2009 Bertrand Janin" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + rezerwar = $portVersion + app:rezerwar = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libsdl$secondaryArchSuffix + lib:libsdl_mixer$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libsdl$secondaryArchSuffix + devel:libsdl_mixer$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:make + cmd:which + cmd:sdl_config$secondaryArchSuffix + " + +PATCHES="rezerwar-0.4.2.patchset" + +BUILD() +{ + ./configure + make +} + +INSTALL() +{ + mkdir -p $appsDir/rezerwar + cp -r data $appsDir/rezerwar + #cp -r rezerwar $appsDir/rezerwar + cp src/rezerwar $appsDir/rezerwar/rezerwar + + addAppDeskbarSymlink $appsDir/rezerwar/rezerwar "Rezerwar" +} diff --git a/games-puzzle/sdllopan/patches/sdllopan-10.patchset b/games-puzzle/sdllopan/patches/sdllopan-10.patchset new file mode 100644 index 000000000..c218ad2cd --- /dev/null +++ b/games-puzzle/sdllopan/patches/sdllopan-10.patchset @@ -0,0 +1,1036 @@ +From 6aaf58f76675bf2ad86b72206aceffd825b26778 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Thu, 28 Nov 2013 20:44:31 +0100 +Subject: Search data in app directory. + + +diff --git a/lopan.c b/lopan.c +index d653914..a597b9f 100644 +--- a/lopan.c ++++ b/lopan.c +@@ -1,3 +1,4 @@ ++#include + #include + #include + #include +@@ -543,6 +544,8 @@ int code; + unsigned char redraw; + int backup; + ++ chdir(dirname(argv[0])); ++ + bgsetnumber=tilesetnumber=-1; + randomize(); + opendisplay(640,400); +-- +1.8.3.4 + + +From 139c572f10c107a0ac0a93ea4402021c6aef53dc Mon Sep 17 00:00:00 2001 +From: Humdinger +Date: Sat, 24 May 2014 10:07:16 +0200 +Subject: Added Haiku vector icon and resource file. + + +diff --git a/Lopan-icon b/Lopan-icon +new file mode 100644 +index 0000000000000000000000000000000000000000..d43e0aea7a4c37869d27620bcab52591054562ea +GIT binary patch +literal 9587 +zcmeHMU2IfE6rN?JAYwt|5B|lK5EL;65rr7yZYx@qma33w0xC6NHGPeR!1)sp+!{}9qtOucS8sfleDZ|Ab^XA^b`e-&F5vn+P&6{&uBl}K4J_DJ3tsmzG}*d6+IOUjTWSF8*d-fo!5{y)Tz^QL*Ue|3noj +zn(0$CATSZ9}Db6_sO%q +zTmnynp3`30B!p)MGRt;9S2jmzQ`jgfsn_MN|{W +z*C3mazXx&?@+%=Xx%>uSE|KSiI|?pNroTF$6n-J-Maq00g%zVt&mI%NCNW;7bGS%^d?6}4spIPm9tdPT=LYl1f+#czvHcekcge+Xnk^7-H +zW_K}f#b~x$#S};B)2KR*((>uBZ`vvgAvbN6RgjxbspoyU+$xL^6kSsTx;_U+q~i); +zw-Y6)`WYor-x;QdjVqC6BE}TPCASyPZ|HJV7nYfJOQcADCa?M7&1rE*6~x0%sRtz9WncZ +z_)OptF{ibeGbCgBJ__!OMcH&)w`g;-Zh^+ivoVUzgi26msG%ps$uV)D>IvzXkaC9b +z;R)%OFoqCbzjj`Rk#l`Ja-y6$V>va={{H@QXCdA0WN_2H2wj``z5^3Hq%}=?-j(^* +zNdUQy^O2doP6o`N!Sq+nta6cZ8Kebr;)2D;*C!6!K+MjqH2mZu; +ztm1CvP&;<)7;-2}huXW&o4{pm-4=uzTjYg{ +z#5OsMcnV!@M%jv9;ed=5xWO0&sDNoyBrt+l&Whi9!+{hhzymlO0n^utRz!3q?!>b`**CcL(EHY08Iq?ef*`ckuistqYAFu-V*05NG&2!sO7 +zo)nTBCWQ}Bl0t%G_^hv^{U?F+6_A<8`V4I9P?EAQL^f5$S?Kf6|yj(2*_eZ +zlEt;-`6$2f2W({uVwLaI-G!n@$Kcqev;u7!Kk8vvnTQ=R4CA5CWa3fn)cTg-KQO}1 +zei3vzZd{xek<+OaPIZB^a~{_P`lBQAn*;fo5jnrOlQ(V-y=iD?iLW1c^xR^>?al}S +zm1s-n(TtB>tlWqHjL4dUe>@aal}Idg+VKw}mByxe96TTrSqEhxQys!BlNPMq_3LHF +zl3tfvC}xydst3%d_lL6Zuk0iGs?9#yggKq4!;O5@I@~Tpo7$(*{enZoxL-(|@~7xN +z(%(EQ`-L0^`-K(h3iN3{%ugO8Yb_bsjG3M&M))AD#mFSInHb?-Fd@IVhJ2MTuQ0;1 +zC18XV$q2`iZ`+ec$vR6)wqU9!iW0u*YEg1I+Dw!Q!7`^P+0a4hh-!GvtijEr33wz + +literal 0 +HcmV?d00001 + +diff --git a/lopan.rdef b/lopan.rdef +new file mode 100644 +index 0000000..78d07c4 +--- /dev/null ++++ b/lopan.rdef +@@ -0,0 +1,31 @@ ++resource app_signature "application/x-vnd.dave.ashley.lopan"; ++ ++resource app_flags B_SINGLE_LAUNCH; ++ ++resource app_version { ++ major = 1, ++ middle = 0, ++ minor = 0, ++ ++ /* 0 = development 1 = alpha 2 = beta ++ 3 = gamma 4 = golden master 5 = final */ ++ variety = 5, ++ ++ internal = 0, ++ ++ short_info = "The well known Lopan (Mah Jongg) game", ++ long_info = "The well known Lopan (Mah Jongg) game." ++}; ++ ++resource vector_icon { ++ $"6E6369660603010000020006023CADF1B9F5753B2AF93E24E54728E447795600" ++ $"FFFCE8FED7D3B4020006023C96323A4D3FBAFC013D5A974B57A549844D006662" ++ $"4DFFA4A08202000602BC592FBB29A73C0CE4BD0B7C4892C04B796600C3BC8FFF" ++ $"C3BFA3040180020106023D60000000000000003CE00049000048800000FF0000" ++ $"FFB70000070A06224222494159593B59323B280A042242414F59323B280A0441" ++ $"4E4159593B59320A04224222494159414E0A04415B475B603A59390606EE0E41" ++ $"2E4130422F4031304536433542374244324731C22EB9F349300204393238313A" ++ $"334B384B374B39453D443C463E353839383637070A040104000A000100100117" ++ $"8400040A010101000A020102000A030103000A0501052021210A050106100117" ++ $"830004" ++}; +-- +1.8.3.4 + + +From 06acfc88f5f898265edb519434ac387a157ef6e7 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Tue, 27 May 2014 11:58:09 +0200 +Subject: Import a better tileset from kmahjonglib (also GPL licensed) + + +diff --git a/data/tiles0.pcx b/data/tiles0.pcx +index 5da49630a3bbc778d3a498f0afe35d48b0383eec..f3d6d572b81847644f63864ad91aa90df0ed8d1f 100644 +GIT binary patch +literal 46720 +zcmd44eQ;D)mf$IDGxp1`mr{rUA!9jOjxd3($ceQ>e`G2qq?MaRw9pE$9HGSySBAq1 +zgpd+_L`kGdRx0yG?4P;r?wEG9Yi25TC$_35idt{CT4ke_+V`bC_>>G3(6qr|Tn3DX +z#@G}#Mo9ZR_q{~o!)|xQ%tkw`B=fy@?>*<-bI;d3_dMV7Wseo`-|l5s<)4Cw9(u^{ +z_ZJox{@Z{1Zy$gB@jv>bKU%wX?YedA{@uU(ch5cdTxDftEEfCs|Nh_q@gM*3pZv+6 +z{Pekkf@R5N%L;z~$U_gC=Ktc4pIlTtPMsMIE>Fs2XedqA60Dyy&Q +zPxKjmR$tU#Pe0(150#$Rmz|IFC4GBJ?(b70zS!%d<$gW2Pjv^%$Hrs6&8Fofz1`OH +z``v#IDCc(8w3t+xk#o{?Lg|IE*D`12`;_W>PtVUPeO({ZNAxKmIAgw@*0(0*foY|` +z)tB`J2ELv>tWx6*!yS6T40O+}{?UdJJ(bPh`o^^S%(T+Cye_`VnA;O-bME2cBT9eG +zSSOtejC)jH^Tuln^y;bDhTWrnJ)=67KdOOu&OfGSHpDu51KSNQIZyzmqmF?5m0)~X +zALGYyeI+}oAm&Ma9Mcyw6M2N!6nMBhL2H#keNuHiT(}&Z^ygrH4m7XR%jf1_f#++} +zmfmjbGn3NwR|iyPgKxqLj4=kJx%-x$ub8xgdcvc%*Xo4+{Q;S}v-EIGUo$r+RI2y& +zNA&y$;Kewf@#tre_gj4xIBu9xr&Vz8c3-UA*IThi`9>Rp>VX?c;BpXDIKSw^|SrCT6!On;n(P?yXYw;1aSeL|ns3ptl2uC +zv|^IdvrVeh@&>@Z!P-8> +z181c92SWWRrDq>5%pPRMjziLK7*9U0n?LFCHsk-!^e3}w*pX`&=;C7*%>w^2`n0OH +zw4)c^t*GqCZsM!K_Inyksq89$ubywHV0tQiz25T~U^@m;Zwtjh{w4#Q2Bcd&&zB>> +zH4o@#SR^-u#qwM_srnzvLUkCMTOZNGbvXGX03PwUY)bW8de-U<#l|1+2&%%>tDaQB +zj<;Xh5J*`mtKU#vmNGrk!%6!2jB&r@`*}!w9KwG_?^l_MWANf<`V?0`0>ZCoaoI53 +zS-v03INo~n2rm-uu?oZfZsstc@f3lgy0!a5j^Dq~oA6ecfiPbNcs2h8PZl +z5?6s_!F0?bx<<>ZX6}#Z6UdgUF!wQih7o404SKfF3i_>$*;PRn9MemKFT4h_Zrld* +zZi5bMT+alokdJ?7gB9KsfZ-7a5k_#ImvwzqpJM=Fw9EVw;Eyx(W$1NGpEeCARl~~t +zie?`4ihG{JVk#Z$G_p%ZTT}`(b0 +zm%&GdM~&1x4oz+_CBFlkTZYo7Gl$)2*$~hZ0LH|8sy{Tye@pilKw8$sc_XX^r5pLF +z`A8oXEPmXEwVZMn73t97~Nu@vgmS1Go +z<32sR-tzdE2|cZkXWey@0g{t6UVth`MctUDhS6?hxGEecYc)^yNwsDZQb45p$ME)b +zZXMO3xT;wGZz|OGpq{UGEau6nFgiq3 +zr#nO6FrMh=vry)wyOzF%P*>^le13+^Sl5`F3p{$-%+MUozx8G)wc6-Lketn}fFrZW +z&pCsJ=nLV4oQl@1h~jf{%#C>pUaBD>zy>=x(LDGpZ&P6ku +z7lmbbP{{H1q>A~o!HQI%0?usMZH?z=NZQCO-`(b)xbn@U3avq=Z0`1L?zMJky*RDM +z!0;B2T!zZ>DN;go`Vp~ZAn-{h2LWL4{{)PVKr(sqx)~Mw2;;@vybg?KfZ(!0`*Q^t +zq81RtsDN*|b=IuDX_X4bz;!0oTliMiQM-Ftf8{H>Q!J;sSRm!i)GR~XfK(#hu0WXU +z5bhHe%?XAV@?GWnF@)PCeVVHx-h`l+`8`l=-<}z&~TA +z|1#+3=VwM34h_VGPneLS{9Vx}vIyc6+_=pRQB%L;#+;cQmfYML%L!Q3nSCnrg5?id +zYu+&CCscOz{HM_U6c`I}zUHdfOt&$!PXN>{IuboE<9!1dq9Q-#ZeGu0H!i$a?whm% +zC||QMn2?h^B1HQZ<`Jt2^TaUvw+!>CHzCaP3A1`dke;JQF}-E>kMjL4xpqu6|8bDI +z<>MxW9vjVc4^Cpw$SR$8eB)N;O!k!&Xn +z^%>|4aLmH3M>4D#`3F>lDq`b_pt}X6dC7)-;CzdX%>yF;&$F6v6X-xz;cd~rB92cP +zVw}+58r_09d~-)f>X1rx?C9Sw><5t-c<2Ou+=MV<%U%{EM)dV%Xnz>$EU{(rkf1M9 +zPq(fudr)QGa{?Rnl%8|&eDtC1l~!SgAvbD7mfv*%`NR-@mI)P}`iAzG;I&ivS&=32 +zje(WPL(PiFJIVu>^6L-rC^G9R9UKLovveTSyTGs0Xx2m4o>a(JvD%7dR|Z`<{?D{< +ztnI!2KxN1p(F=hm@`iwjD^U`{K4+PIENa6SA2Eh2)^2j=DC9oLy$czBoHT8b+dO(K +zC(8r7g-5PKq0jX105q?Y=fps`VYuzO>lH$~?2O80@Dq*QvH<uBVGa(#4CqTQr$|C+28xm(Uo1vKu@fi|yHssrc(UI-0gs<~B +z%Vdhky8F=?Coq!AW;&j*M$AH|$FI$Um-RdrC#zcwtt&azkKqe{&e6wFV3S_HGUUEs +z+OcXxaZAWROplL1?UepR7N3Zri}0rChEw|dte`%vvX#Nn-QAmf@9k6Lz6PgvG$@uo +zx8Ti!?B>8f$oGA!-yfq-Su8+U+la_zn +zKun`=^hpyc_yRIaJREuq-4CTcG#y=b+jHj(lXs1-uNuBHY^E2oKzV}8A_8wPgD3Q? +zN1~BXY9zE8_t)1urFwncdTMoHgPscwdvwY?G`?cFp%VtsZ0Jeku<#lVZI;1hqJd(8 +z4#mcs304|1q3+J{Q$))ZMit7Q24|s^n17!eDjiYjMDvUBzO3AFjyNJ(KJ~l|SzL&F +z=M!4bqE2Tt9RJh(57ea+`7Rc_{5N4VL}yFclE-W03uy|;VmABos&f*6fioB?u;ZQJ*k*r6b!d|IH +z5Y)t*!z2{ZBK#?T$LVuk=?mQXc(o{vEI_82Zer%qvCV +zwUJ``=}wvGFMw85s4D?33Vc;slS%S1>%z^Jk&MRX#<3iAnb@ +z*B5ZE=FLMWjTtND@7OdxT;3KUN}_e;3vJcCzLfQbS#1YZX#0u^gP(b}O?1AI86r1C +zmwf$`fu8`8xRdgEf$^~4H-y|p#=MEb7L9cZs-6L7X?ERML^CQKEs78JbUMj8J8mu+ +zlx9^+@uXdsHtcys`Kz-9ddA=f@aKR)RP05NJHhz)6xmbmOo5A@^>sh7=e;M}f*{jT +zvH7J!LC^~&AWetTImEzQB4M&l8m*T0xMqFGOb0Hqk=ft0l;!M552OQluA$`gyw3~Y +z9fnIj;l^38xB%Jrt9qcYKTiNR!ZxP>n3OIn?Qmg2?<6&DcO%c8CdLwX*x +zaJ@i``8%mU-&&SVrlVQa6Ydnog%oG>M{OPjiCc->7703QSnsfk)F;Ay&0)K&ufAlc +zxWyoSRArVAdsy#s3Las6rz}%vmz3FMLvg#$F!h8=N9?Nho(uFyt}90hqEM$`!=y!paqTBBkfX0@eG}#^9))OX-P~g?homcuOSxV#%}ZJ>jII +zT1$rFPFZ}QIN_+ia5AyBbj#q{W@8sks_~#eb2OSlUNIVPA|C~P7 +zZ>0<%hD#5rwA~Y}Z!PW|tS=rY-dR`cAzD$8M|4;MLih&*cD%>lsxqD7rlD|?hbkPA +zO~e!FfzlGz)>b>7?TNRi2iFx18pVe~&U_>|Vm&Nu^gC8?EV~~d9m}`T+c;3^a8LbH +zi60g9)HOP)tR-H&v!%p|M;%q$*b|PoKULpZk`L)MRG=MLi5XPynbv1jU+rKc6iM4Z +z;VSNmsGWJMYbkn3dobJ{X?d||pd?ZCV!X_t$8=Blf_VhXorlVEsuLy;rz6FKRb{HI +z#-Jw`zZ%D&N`F-Dl`v(w>Z +zU3*jA&Is@&%XT`=?Q8qOjw(&mZf&nih6iot#qh(%O8wv9hZ8X5`KJ0D>_gzNsE;La +z-fUgm!mYa(rNr9SI=iQ=vuevW7bOV@EFTZVGKPI&vNkUO +zupoPbTcSUSz~6-~3>w+`O6lOxt3^Y_t&LS?24%a%S-$LHJ?G&Ydri+2=y^vag-zq> +zq2wZ)=2U4kZ8r@>J9pZBui8l9Xlb^%cBrbg$9CH7q(OLEwS*fT7H#W3)fsN=8)#n_ +zan*(JZne*`0(-M8=g|PnTkY8&0(yO8)9x{dPpO`wz8ya0Wa6okEko;?JjtXd{Kn|QT9WwRt*4u@2hv56Y@}ZN6y)&*eX@%f +zt04eh=y=cy5*RP+^0ZKUI9XfLK9C&PVk0E-S}5acA)rAQChYo5do=P&y2n#Oj2+1o +z)ueZ(A>5WQQH1KG0l?k3^HLipqAt9IO$MuAQdIgj_U|URrw>+GBY8U`x_0oz +z9BVPr8E#!_XKcmJ$Yck$hMyiXk2179&}vu3YwgB#X=F<6w0k=3NW3vzm5r1DnPJCF +zI2nmMiIzxDcuG|{+oF9n>F_{Fj{#vyWpJcph5A58aI}FabH%0|{*LY^D!TmM1hHzH +ziXHozPV|4g#IZ|Th5k=DcJVeh7%-(C-+-9Lwv`FTL+mLjixyRtMhBfUC?YYn4tqYw +zVO8zlrQZ+ctW{lOR-2K%GiqoZvz^%4g8|iSE_r5Ewxwv&u651DoEj>MX4*^aqULOq +z-8rSwrDf^PG8;kNYR5g_3z<~fSrzRpP1?X%6>qLhlxFOKVjhPQvMZJHb(J@aKA|VX +zj%=%F7+GQLNIheC5ex^@?4UbC2h`A@Yw1p@argkV#3TJ0+lrV}s$=gcsNRF~E9vbCqTU-m)UhW&ch%;A1QU!&vQ*>q#L$ce18OWMsG8eEOBza{P( +z`xC0&j`pc^Cf#T^?qhwe?Nqt+Hs;hrGh5QWH8PlvH11rBM6W_)CF>#sw#&uXQFB&` +z-IP6J!{s|bGqfYNp)JNH58~EE(+tVPhpLHzi>u;pmz`sEUPW3<2!sHWxZH&FLe)k* +z98wi;cUv8!eygyT72YTZ@2Y!qY)_kBz)|>CGysP6 +z=bn3W*G<_D`WWBh3(rWHRP9A}SrnW073_zeV!JdN3A5PE{7k9lNV?9kYlq5=lJ4nT +z8?G6wsWK4KZE(j(@Z}MVXa|?hiS_#TjEDAU?fG;DZN%IZt{Rbe?0Qz{O@R9dLtKzY +zr{EME(O)rVt|vyA%-2>~jtwym)@}9y7`=oj!e@}C7&RB+$$-qv4;hRY{u-37Q!gf*50W}ykU&Gk(k^cUM9hZg{WMf!uIZ#V1>=$paUpRXPd8f39CZu%?rOe|-G_U;Z< +zWPd9_Vb;$C{G%FQmcW8FB4HzAmtD|vNV%_ZqcGrHp1tSUcX?J~e6rnv1HFJTE`HV} +zGszPwSzOYZR_V@2xP6}*EGvo+smza~cHG>aR_S^tTokTnp?0ow#O*N9V}Qm2!vupT +zs(oV;6N+{08V*#ti`XMW_W3}U{+xK%B|V=p4(-RlAt?nXu~fbuvqtlAH9XFnf!9~P +z8?)M0j60R@1q>l@v6VP#gctPzm`srWimoNe +z{WO18(>g>qWo6%JNs}g9lV^h2OVo`(og6R-RdqKf^%CyFI>P +z7?M4dX<^69dalwh49q060IZI;s$UA~+1)V8TyVHyg-42AR{yH<{&EW+X3E;JDU`)g +zG~o$twe|XatNqq{dLdYjJd$0d3(!KM+NT(RD2!~~9&`OSIPra}!)@`h*FsFkFT}Co +zUx}T#5%>J|cTTm~oqge=Xi<1)y0{h>*lryx4iimj&Xh$ALD>4~Y<{JaREy-R%{yTg +zgNu`$Rat`<3Vayf)A}X +zmD)f^gLP##RTx0_DrU1xfqaqu&KpK~=hV_hdY)ETO$aRZzJ-!7uN$(K9F8M*_I9eu +zvSp=1PC8PQt`}3Nu_#kjG?0dS243|{p=qQ|acxcUS{&C*T{v1-R+KR7ND{~nj%)qK +zA@#;<(GrgO9Y}RJ0gQNYsNBkQm)Tn=WcmH^>+%+}`e$5UCd{1n6 +zd1O;8WEE-$2ZHv8)DCO+bHNUMa~JVGt6>M)$RpR=8%9Fn`Og+Q!>dF#&mxaJiiOHk +z7E2mk>hAc0y6nA!_!$%QVkZc!Wy{7ym<{{6Z6@3{?_0gJk&Oe10=m1(zk{zt=?Ra0 +z?NPb73ZFM&H}`nPbEGUC-qIJY8(3;Q50*5goz9`g5)^H=CNkKU7;G;}m^Fkvn_1yo +z5wcD;DbT^IoZqf`A2&F!=6iCzJ7S6em~T05#ufFhS98!JmJ`e +z9o7@p3lNS32xxH5rJK7`e#)bpM52hyyL5YkCLPv#T8x<%Cs}#!{{5FccHX0!*&Ftn +zl++E{E$#NUKD!4C8(%Au32*JO>j&+fi90SwUDaTzQ(Q7o)ik9NMMJgW(r|lAnJboM +zC;f#~FFP}<)?^@R`D*lOZ>l=*hEZOS!ndnBw0*O0SLFsrgcY;#txN2JO?W{pI4 +zXR{R~eQb1>mf4mzi|O~WASIpShB0CDtU{~D-BxeY%3F|drMqD|Cz~FkR_9G0?nY%! +zMN6_zm$4wD#pyb;Aj9dZ;(>IwEpyV(4@e`0e +z!WHvI<$q{o`zJ3TWUYIi1`qDWCV +zF&M7HS+!dROGK*2(0dR{P&rlzdtniWb~v#etf4G%<>wkkR+8`lnPwKr^npr^ +zR9C#9wYPJCEwd14XtOrIp(na_7Y5%5?eVOD>PRtE9P~APpPdv*Hp1b=|H~;NZTF)cGuNY>#;ypZ2 +zf+3t9Y%dF=xrWNZjmh*-BI22eQ>wOppg4l1R8x=ODNRR9YKmHR7U!KhlNvhy`mXhr +zuj7k{#@AQ&j*7$23NhU~D)xk)t@ek;Sy~4j^)fjW!+{`nQefOsyZrsH2mRHl!i`20 +z8VZJNR>^qNt38P1ftIFio%xGB#bx!4 +zr6qmLU!qE)CS9s5Ty&g +z47;NV@x2-}dxOBZ2tW4Cc+4r^jBS4M?mOn0eJb7J)VH!{lCUH5--4mjK>+9JB&|Lu%Q4L{+pG%Ws|PZE=?%0-eU +zBxxRE!f)j8OJI|9)QLn1`RlV>_{z+dSkCVqQ<=@a++y1I?1q@WNsg*y5MSW$w&{(T +zo2%Rm;m{s({gPhrHd*$HF?8o5nGH8MA8?r`nM=0zoQiwzf4%g+URY0{mL9(0>SuuI +zHRsE9u6%B6es0g?Dn|CBL|PN2tp*@4o5v$0;fy%*jU29z;V>SZs~jeHMRFw~N{j+j +zd9tWIQPczOk|8fX<3)qNu--$fjY{u8RZ0CBr`m2Cz_IjbeF?F)|xK@O5k@X$%qlwCtumfIik5XmUsL!nin +z3Z4-QS<>7tOXkm=j<_+)FY#uM>aR=-F3mZyhZ}?{Sygw3D&m8jG2(U>BHq$h*qO=V +z(Ow6Aah7FY_+!`h043`MA=Sqs-dswR5%YE_MLyW4cL)_)vx*&=Sr)4AwFYa9g#d5^7^3MNfN3sddTR8ktH+brN@34sj?d(RYlI)NI1E}5K7J!R6~oq +zh%})_mh1QLr_l2+y!E{l!lQfqwO~02ejkPA3RVZ7Ml0AqR$#mhCW!) +zC!pzPguEpEku2godB_R#IO)+!-y=VSJX31pDi-Y2gcW+8!w{~@hBGDo|6U3)GrigI +zNAD#O04)^wA6~xud)P>xL2V5C`SN{aS}5pkTh22-h)iHTvy2c-+IC99ch=h-LdlS% +zT!>r}9{SSop-EFUtdyq}qs@<08(t#4hDSv{h3V0(ItB87prY$cFI-yo9 +zd%J>NzPlL-GCdLtuD+j4S*Ihonke6QuQp(reW>!$hVP?NPWe}cFd}~_jm859g+iUt +z2T_PaDXh{@;Ug?UzFpEE@_7$^;HCA#OPr4|zP=Es#OW+^#ggPMaWKatQJ2<-Rht?k +zz}Zb$2=~UQo$RLEhWiLbCR=Qe?1<(G;tHin)wT=tzDFbxDkdKC{X`<)pK~QYoJ<(T +z6A)^`zMo8Zwns(yN!s3R5l-yKEg+x1xQ|l1D@P#T=i~+ojV5d;#CMlAza_#?P%dY^ +zp&A@(#1IA%eg>M~;LnxREJgR+)Ok-r8{%+~%JD=qiAe-OjojsyZ4(ya+@1a%@)#hYOY}N36h;R;=;~M`G--hERZ=lSS^tk{c;$U9VC+T}B +zLNd>JgdU)VG1dIL0yqiT;DqHT?&2W?#@Fa|5h)bzHD?hm`N@*YPpNori|C=_t_j&) +zJ^KYe$okDs_z^;yvfT1h>fX*zsiXye2jZOk62y@ihd5y)9St4j@AqpxXw2fwA(m07b(j4HEa`AxX{K6A>fS=WwYA2v6D5WB~kGV2yA +zitIs_+;>}1AE+#8Yhl;7VEM_S70+H4{Wa#3kSy+mXh30XkzjJV(+_jY2@9zX5S+3qaNiaJD*_#` +zx~qi#r7QY>3?=0J-zB)1WNTE@thHe{FfL0|L_Wg(%)J!(Ty!x$zMLI3^vF9%&_fbQ +zBwxU@Xq&gW7A;pe&!8{miE^0>WSp}gW+tszq2&))zCw48^Z#!S$%x;X7wlphxq=;B +zI2~mKrAw8ps&uJ>aewuGq7e9F`%H4Vk7}|y?;^=}dDfh7&J*Mo0}Jg47mrU^)i_6! +zR)@I>JZvaVu_1Jn9l_+r*zO~xcuUF%7ZQ&OQHhR +z4Gaa3s^?>R>XEz=BaA2~Y28I!AUYAG&swtQzP)F=>NqLZ?ko1-#zsT~9lP0su +zCEy}h<{PlZcUIjC+bQSjB5d1Nxvvakm7C}4BJ=w-|9m00cA(Y&wyhDhv +zmW-s2SdGW|yXsgQ0M;5)9S)n*X7cU_%_$Dw3)&H5^SM0k1bhax9P7p-Sz)!wWHske +z%p|(c3tVA(GbA%TxC8?#F^Ep^C$%EZ5ba)7ZpAhDj#G`O3S+AsD08S#Ot3WA~gKjlbaMX+5`igKrnPcGgR6{-J9T5kmZm +zuna{of{zmH1!*~Z>6Uo;K`RmPMG(oMEsB6t_cmn8GqKg<-7gi;KVaYdaM4AoNd*uD32usGv3bwy`7Vu2EL0}q_^gS$IzSP +z8#x2zk;=UXNOuQ~4V})2pvx~cl4Rd@*V;9)b?!5bm{F_%5r`zD-D3rubtl5et*m<5 +zU3PNb)Uu2EqFi#iYt +zp`kD$Nn8PLPNW&32|@E_wHy{hIEWYVPyF3&RZGgs3FjD^cPQ+Xh6m_~W5oOsitsv$ +z+C!o0h5*T!vFbo9w3-cTW+W#i0D48Kk<^p3 +zNP*AwDIv}h!qEOY?XjAZP9jPB+x)uj+CZ$b;{UA>4n7ddtlCjHTwUHK3k-hbkJE-` +z-Tx0ENlRbkl?Qp3KWK#+U3VAq5JdM;FJl8 +zFPVL=-lh@xCz%!}-jb%1tNflbo$OP+p#VuCSyEXGR|JA9o^yT+wEw^&n=>lLkmW2| +z=d2eaGt%`O7e3NwjChspT#msnDkLerfEVB@B!@WVqB;_HL~fpQ%w_a_hRwCj&begN=4jX!*0cK+yjsd9IF{fdZv#0t$>3`H8{9pR3{K2y` +z04m3^-H@UomnbVve;IO#L4v|vB$wPgeurFgGq1fJ_m)R2x8V|{?OyPR<=yp&C9#7g +z#5!YGFz<9#xQgg2k*P~4b<~lw&QgR)jCIL36-=({b6ll@6W5kd3dc)~1JOzB`L1&b +zg`z!w#}eH17Moq0tX`AvX}CyY*B>n<%URT@OO*4%ze|boF&FSXJsy&HXr3s1C2q3F +zLsFXRE?Y+W`Y^Acy}KS+E`Y`ovityFl;E5rX#nEYhz$;-%OZpr!hC0_9rKA;&i9b! +zd*kr1(7c{f4YC(!9E(K?N&XiT=^1{GFdnwBVH>Fyd15JrGy6W`*COL^!@cdX +zj@+fZ+M>PZ_U5sUch{ql^z$#Jkz0aK^0q(8VCEq^MChH=SKZ2JU-Ia%^>=p{uuRoJtRKoZ9k-H;OW+cy*(1;=tb1fgUQ92rDVp^y-Q!==k&PQX>J +z=0ia27%xyKNH1(A58p8f_y4-+@`H5NV)Bj1WC_TK4|Lqfmdk`d?x)N@7f2;CI@9)Y +zL#5xhndH$$x_qJV!j?#4_y_OSXe|6>tbs*I%*y|L5;g+w0qB0RY*{35H6a8KZrDPc0|sN%tHp*ZTLho_oepG363Q}7|I2~V*dg? +z^?};{?k3A0%WW?>K)K@*y0z#4PqEl#zo?;*eg;lje+ffpkSF5Gx@7_&ATh +z*q-wEXEYTfOm4dIbPNgCDB)NOu-~}}br#43k_QhjQs;p-AZbSbw78zG;SITNxV|lG +zKuVaHjn+>W)%H2@u-p|?>ZoV$7=9G#Gt2U*8tovn!XSPGe6AA(lQa4d-n{%G@!2NTWGLl|%ZZfX~IYl_gvCt#W1gSZCB|DR5(|{yk +zlj43)ymj#>XA;>Bp|H=S>T-t1vI1a^k}syc=efdkJVD^L(|NTWTl;H%UB)8(?u6o{ +ziN)p;!waGnXL%Uu* +zXLh!ck_#2x=7`O2m3w6W1GUGbWoM};VO9o)+~fVG@H9oS%M0~{oO&9`SLmgEVJ~NS +zDmYbV9-mU{M>&YtHTurxce^|#HK}$x!SZRff`B{{p`$vq+B_>AuGTZ`V)?8UZ6>sS +zMD<#Jeb7J$fe#fvF88}BKV)t*DGL=Vd-2Z}f`#JH^_El9*O*bia`sYA3Xk~q +zzCNvdR&};AUr_t7(6o36dFhf`38LznAwl1a~bEAN(59;&7s+vA{O +zs4$@doFy$F_lh3Mr>s!F#}|U%T(DuhEjQJn-ybIbdPTpHCCu~8!xYBP=(+CqLKD`o +zhh%?Yh*iizW=ee#is^218FE6c9xeyTu?eeiPlMH~#+ffplTmutEe+!$?`u=5}=25c3D@)a%APg?zZ8|16G9xr9QYE*5dHt +zsG~+E7cpMu^e&rL4R0Y)E36fI-s5CD5vql +zyOkjrs=T4C_YDNV&0Y%a?a+<~d#nP!IB1P!8>}ZO*qSn;9RUz@LY%xlmp#JmMNHq{CTO1pj`n-?_(@! +z&gQ^;3nXpvz5qQ%)qEg7?VZs^0>E7}n*&pDgaHkuFgC6ydQ+L~?o9#GVQw0jW)S99 +zgH;||WxXU4*s;b92{<=fZH-nGq6^;XAHPH5BMkSvq=bTkc9#P%9uP5^9doSmeov{* +zP$5GEz@%c~hRVmh8eJc#4y%&oGG|H6?DBwDAjs%M5wyYb4$4AIG_2r|1Fx>o6EUCl +zx(B{P(aX8+@mOfeilq#Uv#QIt-||zD9?Zdb50g@{GCMkLt?4!o98tg&LZ*qI>OE>WNy9ieI!Btilsr~`$z3#5}3LR_5v|RUK-9S!w +zY=}IhA^1av@CVhXugy{AYr1(o +z#;S5uoD^MV0K9}behnjYM&%!aiJTUDuaJ6RZv^}=K$Oj<53bJm0;u0C(Xd(f$yttz +z$5`fL(-yTgmVyjW?~QJ6>q@zHibP?Nd;S%bdoc_s8iie^C)jBkzROnnhcLq;Uw-jzB{nQnh^fVu`0$s?0atpl< +z$cIr|EE{vi%*b+<_D#+qm~xFk!RbBMGW)F>h^LJW@LSc>;(j}>5<4k#KsUcttqEg( +zA6IdT{p7_d1fMMovM^O)%zB;d%SPiGJDVr +zc1)#=P1xnV<1@yaJ~~!o9y38Po~i^H5j%#y{|ovJ>U)1YKJr4 +zP)&B3*IkWWWo}ci?^%1RcQFs>F?FZ;F%B1pGv?7*HSlZ#Ydh@HYgYBF>r-*N)CK+n +zwKFoP8ttg}?6yccTV*$zoH$4G|lAv_Rwj9Kbl6;TV&qsa_lM;x^?oHkv7 +z*fUEIqY9_#`5Cw8nL9n_!DzNy9aRq~+2nvHM>$K}!^th+$s`BOwOLO5N&ULwK1ZdK +zLq`74)zcJxOWQ+oE$uy*EM7}ZHYtKOlyqx$%}~3j)=`NFK2*}RJ@3Q*{t=~m=#mk= +z-ZMq)pH(%-Ysve4#gl@AHl@`{TjEtkj@@pqeW3b^3Gvy9ZPBnD?lXKX8I#+54!(6x}!OtT%4EJFaO<>6&M2 +z8smwc&TxEN72xEG%WB-A_Nl%|%@%I$47WB>>WFNglBeoTtNp4yQoFUKvnO8Gx>d^C +zaBJ-=2EctP9;s{MR%4_^U@YR+GdsOjjnTU1*3KTMCSFgCE^d`ZI=xm^(fVyWJ9{FH +z@j3_v6w#z09B6L#@Bp=Q$M_3t6>1BOPq +zEFIb`Ux9_VRpZfZ`O%ea%tfgy7_+1b+E^dqb- +zBrL}P&xm#V-z~o9(El!7^ccYkR_O8A?;E +z&RjdJ1|6!d#O=gTdYxA%_z+be!mWv>a57DUPVc!^yJTmgzGNUh;MhqI&KK=Ms2)CB-4-4H;h?^3dHwdfhkL2`Qc6Aoe5fd>kfF#33YiqoZn?kUDlz(i_+%)7C{Y +zJ!ss+caQ5)xZPe`Q)O4xzlb3Ck#}vI9jS@fwe?c2FX6#lXGd$+h3guda(2>yOugH1 +zRZUq*ozsYPp=Olff^1Q7RjnMxr@C5+E2~@mTL#k6o2$=9pjH@g{qQ8iw_W`r@9>7on5)RFmD5s9D?7N&VeH +z1ILW2fpa2NJ&EWd7-+jhX?;&(9W?_zXzx(z=|w8JLnao7JnRlxH^e6SMi9u=>ncCTII0x`qaK~+zNOOxH0UvyhJ +zBr94LEL?9L-hBXdGDR=mJ)}IgIHU)~i=}l@k@$8=ol91zv$pOTyQrktE_=~DG^@%Y +zb!B#ONs+xS?h!Q;j@Fihf4!o8Xfjjjc1ZQfEM?RGqYqI(+kHZ9W_{|lB`*Zr!HRWX;ulWgoHid +zUCVL?zO`Nb2s0sWyAeSY1M=X-K2--;^`!<1dA9~I4yg!`MXO9>j{D{m_K_5WE#Be* +zdk;wrAomQ4L*@?psynC$Noi7LBC0c*Of=fLXiZb6>mM^p>5v+zSMmD3M6F%rL~EK| +zBZxX^k&Nn$tH$OZw@1S@(W=^b(sTI|HCfe?P|?<&olg~Wr!GEdEQfm1nhN2Y(zc +ztAnk=wiCvpnY1GV#$O|5FxYNKYS+Q@`CCz6dz6Iu_E2(NxIS96c&{X3XmC({$0P`Ri3h_c +zx9)-utm@sm@KdU<6que#45me*#O-7@-G?v^Cye_$rP@ol9qk-U{|M>QXs0tnJ=BOS +z?lZTi)vF~`*6$fgi=c^?sLYVmMl7R94C0+?QqZ!Y-F1`b`htsz3Gp|OGcTT!~T~DHlTE_S)=(dPQl5D*ljhERyRQ!*k3Leu~Q9eRgYSoVuJjwGB1uweBe@*$PJiT{{ZwMZ1LR(semI|Kb5NozH&fbbdeV +zl(&tBs~!lu!5zC<1XE4Vgk4q=X$e0oh6;|+;>{n~FSb&Ge{FG1+^!O#gGpfSvPN(| +z?N$teFr2;BuE&$hV+Fr+H)8kHFl+;&0Mw+;@bO>&)%Csj2vZ}dOH9eJ4J6SX? +zG6$jWmh{ffK~7>fXX;Q6O)Lq6$szS4N|WvE8FI3bo$099b&ma_H(H(DIe>qo(j|R^ +zPq(P-v)F~6-1?q5I|$vr3rb}7gP=6y9l~~@_E~L{O0$d|yU7Ev*(SX=8)@Zo8W-1v +z;IOIi9IzTJVx{0}*+s6P#kehrB9}_iOe?co>JsfB#BHS1 +zbR-KtGP|x6{k}OkM4jpfz;oy>czCZxj|Y7=!T^KfoI>+DH?$_u#DS(5qYQF48zGE6 +z6bAi7SsH!l*gL)UeX>Yj;S~@=rF7~&Ntk3xN%8i9BD*+`VY48fji6k6cmaf~-GrtI +z9yK(@^v%=suJM~pulN&7$8Yt9N|wSyJD(YBby!{AwM2AUHPxh>S*1q9&8Sx!r+M>1 +zy3P)_d(YH^U?vhDLhDiY%Qeg+;Fm5*43=SbdSj+bssA=m+?Oo2*HNjO=kV*6lC0Jx +z8SnF8(B>tB9#-+iK|L^^5 +z;zkl?)WDW$DCpQvxuyelaGXNLIYhPz5a1GtjJS&=_YFkYb8#TkjG^JV%(iHcab1WE +zQ8+BUrN;GS2u)Ep%&BujI^5i+25K7f;V6FfMVs?s9DXIDE%_MKeJJ16ujxtpHG^Ih +z`hMrfJrLe`Zs{KVcYV+A(M$0!*}-2ZIL@E@Yw5M`9^D&mq2T2AfOy|S6jbZh3+81V +z6RJ12OW*XqJ2NV^%gOH23+DYScaQ;q#UXg3;6sn`rq(k;mkH%x?)WLTo!R~*FAp)h +z{u63bKs{N|tq&D=9TAml?M$1SOMziZxajT<{mV0N6nOnL6g)!Z64+tG_Ove8;PuXC0UM+5Eq`)a^|KKZNEwTsC#szp*$-kz +z%^P4+`5z0tvFuU(zSn;u=LK^OQ!W+~o?rG}CbXLOzLOI$ +zl^-VN9MCuSDKZBP7QASvpg}F?pq@9#Aa=+i5)5+NWN)8Ahst3GUPF86&S;~nAIp<$ +z?2%=UNg~8V&dOu-R_?L#ePmfY;SHpx9@B?Zb?CHAKLrhPHm`!tuMjdu%n`P)*kF;g +z=r5Lxl3M1Da#V7igQm?9^|loQqM6YVcZbE0gk&Kkjmg$9zY$Zsc8_BFLZ(|84yEwz +zvg{Fh^x~k(%a3t>p|X0j_fDUqY6nL)y)i1R@|T{>vGwR~u$n%PD&DTJbO>_@;5>UG +zkVmrLMm$5V*8DzqJiueSsN9Wd9+k~GJz+*-lV)~z$KDEd?pM5{54x^6 +z88clQL&1J~Shfw@CUG2NR);l!rd=4SZCM=cnbU +z)Z$5*Q4gw@rmfW-9^z!&q+YA^Pg;At;Y#cX>>e-01~ev`!5&p@%GYo{hB2-(8bvtB +zc>>#yyul8t)Sg%y=5i`$^%|}_s-Ck#%q!r!eO)U4j50V*a0h0zG1xIWu8gZ^9(N>N+%P|H3V>r*48vO +zzfv|~uU#x)2}QppDN)kZ%#>82pWy>*h +zAt!Myj0JLPe^`z3 +zcM~~PXu0Wc3_}r^(QYXP|C}{Urop?88U`Y?1rU)y!5(*xdALrykDzDKCM&B3R}jmD^*f%Gv+3<|g#LpY-AY$;+)1RYEARZ0e#Y0raY +z-X!gU^<|EiT_4U9X~cTlg-G){=nQ!|RwNO9IX-E(!k}fIZ;*#d@`x|V@ox8hjJ#_2 +z4qRi@lQo>h))Ftt11>$|L53jXysn<_TH_EFM#I?*SXF@SBvE1uGzYkM$JN6RwXjsrJHA@2-M&ukFsz +zV^FG9W?7W}UM5EN$i^%(s496U(rkZM+uk763XJC=Syj#~Q@jJc!eYKjJ|R^KN%$~} +zgpD!c3NXuHi(^;SMv#z8SO632TjxWnQhaC(4pPc_aR%~Qj%Z0e3DKzJAsZYhojz^s +zj0GzQIum5IjO5cWv&a^z?@zpJ`AEfUuvX)xte>#PT@@)gU>C`*W#^*02k=Y0W#c@04-k<& +z%)tqy5IMyjuw5h_RXbyOh)2lUiMiQqoE3vpg@63k1~_KMXZ21?vgq?L6{J1@7x<>F +zC#a{I9kr^B`+}tkSkHy9N_>^W+L47%ZdZ!*Lc{$BRIO~lvOn@-XWyW^Wns7jKtBS) +zOGtQm#rp55A&8KYQV`75MWp6YL;(q0c{X8Vv)`%~9w!g6+XVf29S!hKkS|3VqomNS +z<}Om4El~7gVg6Opq?7t8Vv|<2m|xBYcV~?S%VO|X>>2NFvx3sC4f_((v@xq}a$i)~{0A7n=e(CS?ZmI$V;D3<(kSfpJ&l(9&=1CE3d=T*Gl8 +zj66T=huyKmBb1)st0%}+c?-WpR=`b9>%2p~66W!MwE}a=S^<=YNPhGhkrl(@>%0d> +z_{yv|$%9A412ff(_VFqU&&DwD?Gda+D;iA+7hB~j^G@aJAo*D<8*-Ae=auxFQJbw5 +z<;*O(U%q!;%M&o>$?g?Jz#BA3SbM`N=36uy7NMq#AG!luIhpBF|+=e@Lvm!`^8#RL-Mi>Mn +zv75KivsgTnd|Hv0+Ll8QpsXmpZ&i}tXwp!5Er@A%MC9(>aEb;vJ}Jdeu#AK=DMcfP +zHb7SvKL=OuK$)`MxdUXEm#znUA7oILa4seJiK4~f)_^B{4x#jYUHB)Yj%7p&ZU +z<=hwF4T~!qd>a;>LfXZE+Q)*#OXc-dG(p{9_aL84mxv@$)#vrK!OBq;^bi`xFQ5Qi?ZvOpG(7DAWdOO(I&&U0!S+61A5jxm7;18>TD@>d$*x +z7>$P6G!`P~EYszTL3n&C_np&6B+j@5O6(FT3Gun85PbpZc~<`(b!3kn3p#>d2O%;IHgOq%tH!M +zOfJ458*#j$#aYH&0Tx-**Ln0?tV<3|PrCr24dKrBB`4e$wDx*%q5MZl>onYr?8M;yibBN2QwnyxNUfGKa<`tBaK6@GCrcV-UAjVFK;vZ +zoQO0hdH|9M<@-5~`y8D(!uW=0IkkHQC3<41^(Oy0V0AF)973A3M9{?w0QwH$AS2&c +zqAQKrhQm)jv>W%~ZLea8WC<=g4SPoPp`18Md(Cr4)RubyGhqnvY0l~6knJMNmRAXw +zm!e%j(NMybtEW5?((4EY2FdE>a*O~8odTAdSa(kv`1Y$!nCu2TOk|`Q^Xz3a^Y#wD +z=ON^KtUQE{tkCl*vkDf$OD|3*vTPpnTizG`3BX)6XP?gM!;tSQX7-CaGpnZx$?8Vt +z1g$ZEHg(D>tleO4uYI8%23Va&w! +zifVqrXtm9z-w#aW!ljEG&#%BRBzKv7{hQvnTkIm^)nAluya?c7LQb#48nYdnDpyrh +zZ}&V~fEs6T+LJ}!fr|EOMtmTG{SK17Ryj)f;Dq&-=do|K%N{U7kf}2XvnOQbvXafy +z9|(=St`4g4-UDh+&g$|y;{DqX=&0K2F#ViVD=q)1v4%cS@U)&c51&L>TJB4`j<7%R +zqX+bm>2gzdPpaLodq-M6P`vEWeJKvQ(M>TvqFTcP_cizE2Js++<-Q}vTqA1MxAfeY +znZL!SkEo1!Yslgi@0&dLU9sd#Kason=&>73zI@;Be>ReAX8OO~7fhD8-h!|lXC#d= +zat~}&Iozjc23OBuDbAD9JL`&1r14%3hvk2ob_WzHEc-X8zuP~{z4`x&r$zUMTS=!T +zg2MmF#I&#-yxg7ot?Ha^95NOzJjMZwHr4u&e=cz +z)t`$6pbsrWaMII$HT-Lirp-R~&~kTSoMrZ0@q0jpy7c6mfBCb&__dyt!%B|3d|6_n +z1#&6?a7ljL+4@vX>rOXTMAqQHd2Cq+Szq-vWQPqB*@|x2ns8qLE0)yT=<6YcdBVKD&z{a@>uzmQvP%L`n9<*7Hv0eNC|)<0~h +zLvMZ9s>KU>stSiSR*zUg65@z-J<|MJbBsujE!O+=*S{b*<+gy-Y6;qEce;M`vm%qVw +z{h2;2O7Q1;nk>)S&Zca%r>NbmEg|5exI~rs>!ZvYZ<$HI+NT=h**Hlh2D#plt84bD +zU+vX7v%NwdaczWmndj_n2kWkvQP`VjHbnF`MVJV`axCi#7m=9 +zb~r*}SYFa1)267nWj3j%)i3nEU+9~vJn#Z@pb!1@O);b#Vz=u`pLPSKBz_l@MH}zi +zg4Hw_NhBMKBir1SKBfNlr!V~%UZ+V*gvcbspZO{N4-Rc2%RX?s!F|7a?yr!Yy;NqJ +zX0cA_NifG8xNRKFSj8E?sY+XG$i`_*4_P$6x8GSOwlVS8t3nKRI7tS>lz#S^@( +zb;9h8POD$*X+87HY_Jf%*7JX%_rHlG;Fyl1b1Zmwg9Ncr+=yCAZ#|%ThLSZs$-b7T +zt0bn>-;6*vJ@MCnCNF^f=_sVly0#&_I~T$nd$|Hjb|tl6Y6yH8fPej0e>wxK))p+~QI2u^~AAcp~1OM_*^=%XQIG|n{6?S*_ +z>zkE(a%#n47f3zxe@oEeH^0zdZ*oE1um0xEjGXWB0IlkbHxUeP$t4VBQQpI7vYh(q +z&-LMPz3<&W&!N*?3KGx$OEHT7^CmETHt}@r|M^o{UHUfE_FzrgW#QUEb2bXR_W#*0 +zDhN4|@RL^W=zS(?%NE;869-us`SUmbBcTZb&jwfyEkXf3`=*}z4}nVA7dMzO0k_`N +z`w2a}6d*>{PTm~pKaG(d59GE=Ro+2p;Ae0CCimtqelxE3yQGE1zy3KdM%MG`nrEt1 +zZRh_krz`dRfBBU$Ko6)D|8o-lLkG0>n89c;s}H|JWKIn=S4A6}74f@YIe)3=y#~qu +z^^cS3oy|Ya>V3Zn-~v6F2c7SkpZ=`S$FbgtTMfY +zFXj;$BWv4_wmZvWW1`!$vLQ6m1rd20$7bWT%6exI!n@c*I*SvFw$~HC5*MLj1c)Vj +za5p5eRq+}z8N$|DfnwxFTqeaWA<{^(32!&IC=EkdE72O9b_3H~@TxD65D~HKWOWYd +zr~zxKu1Y4aa>-%fL`uyh89c+KqB$&CiHEB1+l@ +zq{Z$)PJ%o)2M9;oIy#7O-ZkLAsTdn-t{@XANPtUYIb+KOIk6utcFjT{Dzqb=$YH55 +zOcQ!B@ICxi5_Kbo;+Dc*=>Wc94X|Wcd6mg3$8Ff+kv=r71RSI?D{Z9KqUlhuRyABx +zu2@$VGC4n-{#kC^Dl=eRJ-nVv#g~I4SmVa1Ms6x0hVQxy4FrBQctZ+$_i4rxf}S$`7;LWa1Zj +zjV28|gQ5y1k((D2$TZOw@}}H^T(hCbj+3Y*m2-jx5^RzHp1TyK>SCOG9C;GvU?^V% +zZs7AkZLD$DgC;6>L4ojS5MFGSyS1#vya$QSygw7?^-(fTiB1`EkC4i0><@QWP>*%P +z-I4TZ&+KGX#d`3n@=Ru^#mz><8ZhqN&iFeM)HEsz49F8m189k*;shbTDd?zgwks`! +zS-T74U2%Y}vngVhTU}`Wj4MxTnsMP6D(#X^O!j6tLQvXl1qgx@8xiE@REqurL5o&} +z^^8+A3ZvjkXJg?Q6%Q`X&)~*Sz^(BfMA_8-rpa)Wv<{J=AKE-vV3Q^xQNog+n9Q0( +zMJjzE>GXJo9?aOupxjl}>6%wQf@oVtSS@(GDq?EHaZfO@NZB(ei>ivR2qfqSE1FT#d`_HG{1sPHC> +zFwwJ-{)D6mjCKG=u3@0KbUd&;E29+$pDE!M-Du+KJDywQTsHTQ?XFUQ`oOptjm+ie +zQe(rCF3wW>q53?8z2spGyWC3T!iv+WC=7&!u!Q)R$+O{xaRZ}pT5_2WvM!Gbo}PYT +ziYOagwq`qSIxfmBEZXpRO&tPq-0CE$#g?z+mX!7EMu!~KTbY_|U2||{xzr|tu(93< +zU_`>|G%OBOpt25A1ceX)P$jW8qitJg@@UjvbSk3DlP_CKZo%v6 +z@<(^*>lH*_!`oGMUBihec|Jy!oFr9vuC34nB5x9BQAjDPc6G?ie^OD{;r2Yl<~7!4 +zgZ@W3xZr*sCQ3-61*p#~FUkY&zox#Z5u2r^!zu)VxcZgqh+_879xYI_xQRlp1<6&e +z7r^r}(ZFIvM?LNUw^*BtLp|FHi?z8}E!>^cZpoIx*G=Ji)WsfwTLCFdMo}f$xOv?B +zI=+q@XZ5*%A1CHKBemq%%d>8*Uha0}n2B)`liI}AxXhZzSrQU)A@C3zl8A7@e?~Dw +z&aSm+t%X$-!osz#?J$112pC;TbG=;M$t{I?f?iO|peP~>pb+=IsOYfDZADhL!+=pM +zwI)dkH!Z2EUdtP_WS<#`at>ow3N(x5P95AGZ_leZISLXr&VJ;Y3FG!k?wrX8d$?2* +z9LXA$T`g;7erlBb@aQ=*Is&N41f-al3q@WA2EsRt!xXw^rrz!>u1d0UQ#m&?gqTFK +z2|}KW7?LP4VrI3zs8EixMUsX?Fa*U2=hdbn8CES!*PK||6hZ(`?>)q-(imV-iMrX! +zHWdg4YAFjAo9;qeF8U%@73!aBJII<9WMG9T5w^iX&noaiu|zR{2!!qAbT2l+w6v1p +zdoy|kwg*d^Wo(^-wf)2;oh}0s2%=Sc1r9p_DbYHYckg2FC|m5ZF{s!nOr(L)>B}#= +z$LP4g#@8dfGB%Mqh}R5Czd=(d(nb*@ETR&Rg_0-Ksx(yv7HX~VC$X&)L@(2TG_14e +zLF(qlH&O^HMRbLv9T{CsF^D}7QK>~22&v=81bKzeeOVwCYmivu{Hxi{O}c}lAvYpV +zI-+pILcfFpv&&)yb=Z}st)kSAX|j1Qn~%A(V!r4^3-L?X`0Ji+xEam_mP+FSw*iP~p#uHq6m%PQn%2Of%cF1^wB13W@# +z+`o!1AaWmpN_n_7nCVc|Igygth{;8NH%(eMl6$x%oe(p!gCe5urEoKPK2c~;iRGXl380a%58i;JW+IybSHGjsRL97b9i=Xnnw5z(ab&1*ZUGOxoliEm8-+6( +z$RGmJjN5p*lGNXCWZU3g08&&0#?YlBTLadvSRSDXyq%0!`^{m5H=Q3a}nF1U< +zX+>!ajXgxC3be=+AEkIg7Ql%`SkP22ZRRp3*=dBtD<1_0YL?kFI)%L6LYmcV?w|Zv +z8fggtFK#Ij#ff;V)uj;ch9jgp0ZlS1s*3+sNLc64{e`q=zT**ct{F*XxeB9iD}>$A +z^Q#olUJv90s$pfUZuM-B!-{Y#*-#iMiD>n(?W={{L?^3JR`IM}4F<@HD0IQh!mS}b +z!5j&`U@o%)BgRkA7vVS9;NEBmsd<|p85ik7u{bE8t#}z=gYSygGAdAiYP6OD_-jow +zldGeXogxu;9NoCu(G`fP0RmheNMZcxp2I-_lPyPp&OkYt_?wItZgC_sB!%9SK)zsQ +z00U@}r1p`V^#xkqsIXD(gs_=Q59Rc*K_Oh9$Q%jttUpS3`wTgdiDI$k=NaTKs}(mR6ScW4D2Df +zv8G-xE7T}8jHyuEl_}zLbGOFHx;-SH_MoiD8FKqPK8|y9*Qk#3B!Nmb$%;aJLYb26^_Xm!XQyl6KslT|L5< +zJgYOIq&9-+jcV0|7=Xo5I+GPfk6T)u(TX)%DQz__6*Tn*Ft1!n +z`aLVN%62KO=7)KlJ1R9fiKS4q5-9?h2XZEzmF!WcHkm`3!J1 +zav&T0Vycy)*zT%b%UV?rtT!@z$>Dr%;z;Fcp;933+@&{qaWneH7#=$74RUE;WK?qA +zyX1wuR$&~+(ZL7h#R9~Mzeo{JFIt0@I1Xkqcz-qkU4NKdiIN1OZ3;BrAQky!%QJ`Z +z4yw!?sWTF@%#7fEJN-ZiafI}c6?XW7V`a>NJ^8K&xH5Hh7>(PRceD4kkOZtHO$Gp6 +z%fZeRq5^&;H@_z9Y{}~E45_o+btGINNPlPD2#|=NCrTpRq@U_A4aD3ePvw@fh>OLD +z4bIFR!ScXGx`1!9tA()?_F?2IVS^ybL&X~?Upm&^y;>xM<1{nc$o}{+h%V1a;tzF= +zT=fC|gdN+Q%oq@H$s0m3_&)YPzGGe(`0Ho@f-r1gMK&&UM}%FSvwGc#v<(vO08hf_ +z_HyYMKr~F_?O5+}3gMJn^hG9XVKP@II!R>L0H-1GJlZ|2d@{QlO@h2E$8A)I^ +z>+XykksdvVw&Zm?QS^s37?K2LxXBR|dQfp +z5*y1J1RY?+Ct#3svC{T68QwQ}-g3oXy$WedKZWIP?~_t3JS@P0Px +z4kzPNu`6ydGQk*3b@_!adHY3i|LhY#K7mB=)o7`g1*mc5eeIG=A#a>ZmyEFf81B?% +zkufYt+reeBIBg0mTkNFYoJ9dClWE;dCBnQ!P_9Y!Nc&mXtn)LZo13H~G6N7iHA5od +zKmX|peu4}F%m`9}K*|)$%hM#>?LPt@5C{AcXb&6j;%2FH5t>jKT}lOgC1}m72S7<# +z%K3o=-XBT;P*!@UPmmz?0||tmAOYO#QclK-`?xuZpih&l?%>vH?hgFgB8GYfj*;%) +zS#k(nj1+e1^&3aH@k%6RB2{6U#ADo2=fqrc0g|VD%VGe+UE=O^ri9Puh?h%C;`9p@ +zUHWx~7t`Yz0uh%#i^V0;gyTG{RJlMcm`hz|12Kk*@RhLeW(lBr$KB+>h%|o*U&x#E +zrvly{J|GFfdWPKN{_%j{9diq}RN>ENNGQzr3g7btdc+0uzdypr&^KV&EcWm~2fpvQ +zI!nqBoULP-VdX6EPTuUfTg&6+h2Jn%qiY3bUvYae;!k+QO~ +z^78VEii!;zHf-9o>FKAR_LlvH_h)}qTU*=v=wF}Rkl(iGbCY;4@Qb7xaiQ~#EGbvm7|`oYs%*YDZ0=VJ8(ExN`7yBgl9zTf|BN!y-= +zK_6J%a=G4bd-m9|V{bWH +zN36em`Q?{So;-Qku20w+Pn|k-&AFQ+d->!0lP6lvoH^6ib!zl=OX}4Z2D?v8zHaI3 +z>zi^P@}KvnPajTqS*Oq1-|z2vHyBJ^eC^VuOY^=HasP!-D0K7UsmqryMu +zoQ=ohpGGe5JpWI_!SV6&$;rvza92J`r+zo_{@mQ$Kc}yL_~D2DdUN8FPd@pV&p!P9 +zr}JNY@x>p0^Q$kv{PK@q{r1~GeEr|w{@2pdl6(J#V;$SNOi#UWbcgR;=hU#jli6u| +zMgJ0OIDOuJ`}RU0)>o!4QyP`37gXvt^`?WHp0Yf(*|NE5SJRgEEzfp5yKn!#ZJpb+ +zN3_q`cJ6y&pO(??Ji2qg>$#l{edDpl-Okc#`d@i5^!ky(ZpW3Lm*N**8}5H?`0cLIz?o~8yxc%v +z>b?G{q2TmzX!dI42KT`Y?&?3L`CrXWe*WP{pME^|+fV-C%g;Xl-LHTB`!B!x=HLF~ +HKmYhYho5zt + +literal 43124 +zcmeHQTXGy%axFBgM-EdH6DB}B838Xr5tIe*Yee?7tUH^S2K_{Oi4YPoF;ZqOE^tpO^mc +z$4S?$yS|@H=gqWR)9TyFgEs2_GMO%#DH?Z^Mf=TU+ARG3E0WQ}N!#5y>h3%;!b`7z +zg73Ls?EAzBv4l@wPo}d(>Wj%qJ39syuY78RX6Z?U(&MyCJxijq_D**+JM50`T-Z>- +z=#Y_9V~lKkHCZ$#PWX$-tnH2u4-UIy+<4*a_-ryeUKqhBdx|>BVNK>}%B!>MEQ?iF +zoK9v91(N(7SUv0x_7C>E!#mb-f%*=YnC|y2ksQ{YjWBXL0ZOxp3#UGlhb_dL?HwE* +z8@Ct`6_VKakB6)_Dytswd@@~*OCHuxw?74QGcqH|+dD@G-F~;X+wC75-XUz1m~}5N +z`L`{)mmruqE!yLQZg=PQ?m?1vR>>b&6lxhrYnBA+-Q?8N6nYNE#dNBp7q~hh@zg~= +zI^5qgPWJW>j|_QhGbbw39))6*u+l`ms9OecI?jD_9$4~JrpyjWv6Ol5_PaN?Z|@x* +zlLBNxSwJ(-x2T}2tI2TCb97Bew2Q+d$l~fNWe6XfwI?PYS(;Gm`@6SqZbKdW2S>t) +zy=Rkoqku6S5bP`)LAbUuc`X7+xbGwZ#IB{@j}P{DZvN}`&i+B5(Uk~Q53pNAO2wfe +z3yX<)G-Kmgd(20C>&&w>La>&2drvd$&$_N{CkG>C){s*8tY9$$l@1uvLP*POPq!?S}q0&gL6 +z<>s^2AUAc))EZ3m-5 +zCb;AGUm*BQR!5#XANq3*Ri2N2VbE0j?(OZHp>|YtcI8RnVJeF{!o#ay +zqc}lTXFo6RO>NdW`$wtPWG%)*bCO~4;6Q`|Ng_Zb8FLhORKn@(!G3ozJ3Mmf&j(IF +z@rcHXz1`a#qrqMo4H$kF7~sD0i4fer8CoM!_Yq(}3P{Z-+pX>aJv^DQD7!?Z;S@x0 +zgH`~+U8r=X2#+barihbnqC2t(%yWDD%RR(?;3B)=WC&bppEuZBn&O3-A@wPmxj#!K^nI}KGWM0`2sDJd<1<{j#Ia+hF@8%9h?lTH@`H2$I_>~T=ho37F(A`s +z9aU&B{yj}{5ou0$5PZCf-|Tx*Cs*_Ok-{f4MSd^Ma+)?!1~W$279#_Q>{$>bI&pCc#?2FYov9IqcR>xLSYrECBoIca4|Q6wZL$8ZreW^P?!%B +z2S&h)I)ccoIUFltF^r-RgI|(>by05yQ>AH>UfxD3?m)D5nP3q^G>T@1a6OIfj=}g+ +zYsVr9$ojNHvc(9-TkuyQT}HI(9<3YB%UopuAYirJ=^QGCVF)gyst{8n^(dJV$Bs+V +z_o6qlyE>e+6$4_Lj0r^ftnr^DvL$(TRKOWWiL+56EIcAq6^bmt9=|o2h|>PS-abL< +zcD8qB+dJExL4_#`NOec_oCjshv3|xls~&n)Ud2)r*2uq#EU)XwdPgY-mHU;=(<8rY +zT_jQTnDZ#()<_{mWU3rW%(8Pvb?naCHLWIW_!ltPzPWvC4lo#^efB0D3alN5Y%VMZ +zM*UT7MxvMMVd-Dze%W3;h5(72hFS#TOy-NcEEK2dFNR>`u9dswehABo-YJ}=8{tV`7B=YB3bp&{UT?7gK)1i$e|bSPL798rvOKW!=s0miq+!#C*aS +z`Ok{Z1?8yXCK(E*PU?^xQ;+9(Mvh)Bug`OjB+fOZ<(A|l9XY9GPiad~t~maIPfbiI +zvUse>x|_E;iECDmSV<)RY+Y&R5VVeUasyWVtlVQ{o+V +zGU&OPC!2yPG2|^3e1y$MI>Prxl6R)zGX0buSe4fvr$rcK4MMW`I7@UOZ4T|_y|`zu +z@d-bVmsDEbKyvmiogoZ7mvv;LfiFh}Fx$TMFE?l5$%tdwlPl5dXp~v;^(b~+lsGvT +zc{>#i3eHAXU0LwebGS^w!5MgP=7;F|*5>%F5IDk8%OU76w*UZWKO#9CS?=wDoYWWQ +za1q4QDpbY)ZIzHY4;?*<0PFl{Q^g6gIxWkqDO!}rEn#WnRXI-SHr2iK&3TInaiIjQ?akdP{vWKmIiD3yOHfrg7L~iUs7w}6&B3{I3IvsSs;>Ylk*n@0G4>o0 +zwQRa#{$~G_z;%1f$)Mnt#uO=>Sx}^Lft%o$O%^2K?zz8fMc<|5o-}?dCr=CJZg;MAVJvnODC?gkLvvZU&ak~8PAONw`q#HJUQW> +z7QG?3fu^xYT7BGlcXu2SE>MB2wfd1%n8o +zo)#&D0*qSK0;9LYAFTNe45~II0@e0MPI6Oy*;bwec>~J=IEA8hb=jiE?i6;RZ5Re$ +z>dlU@#HUHxBA0%_9V=EW7t=LI}7O +zGqo7m2FZ9NXk>#j1WydBTq?<)fgP!@;41B`x~J@ChQp(+*N;*@m5S2MWjWPYP?wnQv=npvR{s0Fz0}iZWKgCEW>8~G9cD#eTc^m6 +z&bSc8@rkjiRc|6)YefTpyPA@eP+wN$ki9x*)dDow7YC8RoEm@i)1?!fjxceJ$@EVt +z;QBJ;i(DUU(sUI`OB&}v&bR~e!wO+SRj^nLSc3s_u-7@*-p%T)iq+!SUSgA(8?&t&-4=*OD?=hZaE!VRGX7@P5)0tk +zVYDr%If_I)*iFUcnrv~dz`Zj&h50o20NWbR5pnWCGrmnKs%8ZsVdym;lNUK{pdjaY2Mojo +z#3>w2T~ftKwiZX+3$hs3JJny1aB23j8j1%3fy6Kv1~lWaFi0qJ +zEu-Pw?A38&7x?hj4cc+p(&)hT*uXx(6xqlHYO#Qj5S2b^ICb%yfv^T85Czq?nN62% +z2dvUSU28~KueqrC*Q{m8qkDXYFVT!Zx}cK?rkjaP1aL@Gj)#S_6do29_YfNBdhEn;VYp%_O6mD&(nxIy +z0hr{xfxlzP{TUAYan^DcjVHDT^Ie`elutwf2gN43Rl|}15%d0%8ic16P|ZFb8i0?W +z*!#9w`U-+8J$aa@1KCI!iZV(~=6Zsad}_{4OiJ!FwJYhG_40==BApnDZXn<+bISlo +zyO*v^_C$4fLzPVlD%~Ib-a%Z&<@b~Uj!nmteR;_7(ro@>my>oF_|p0^yDCjQp3YGl +z_hutB{*z|&VcDkIU +z3Xx#RQIXQJR03wuw`hV}tQ(2~wfF|@v?P&~MFS{n2FZ~EBBI4eT??{yh={C^zsto- +zS;`FO>0E&54aWp&jEcYgN|huFlZc8?St?+|vH>Q~C07b{gDl$8%nO6S$n+`Ji!nH_ +zV$}rhV2#cYMUCd!K2d6nlF3C&=kv=-m6b&v9MZ}qbEcV^f|R9$IBc9!S2HBY46wW` +zR}H;x86hUEP|{5ZDKe0Rp_xJ%aT9JBU{VQrC*Qw-jLyTO5KV$WQkx56O%mUIF)c?y +zmR}3%(?~2i;ya{-YayI|nI=&YMdoOhl|u}*j;zK?`v$90s8ZGl(o|(-nslS08neFf +z1xcMh(ucXy<;)6uH%ZoDfcY4*4yTFEP_z2j+{K4<14PX5IL5fV2t)`Hh`U8g#2@~p +zSXG8WP^KEA$zkj8q5@UIYQ+TMv*Y0Aq;`qUyJQ#ESGzr^li4&}u?Ek_=KUFvQ6MvqGLK@uiuudjgyum&WG>~24jRF^tBWmG8H(AY +znFa39M|R?ii3;>fok2s;4Rnc|#x`s~JXxLJ$ePLEW`af>$cNa_4+C{ml-Rf70V(WZ +zMF@x-&wBtxW>Mm?=NZtm1q5iM`rgF<$1~?Fav9KZ4=x~{%?Z@MO3>O$Af9FmVg>Q+ +zVRW)WH0In2je8G?CuVT`v5IdV;L}W%ZjyY?&sC-@agNV4C9CAsNXN*H%%CTp3o@9g +za;5=HPH5jHfH~O!s(CWbIR-2ioy7jUohN}{pNYly!nX +zo0Lqyxe^?>#B?9r7VTiP;0_j>1ba3@Jn|@#0r7l_bhSW59$W>L-~^E+ZUv|_#Zs`7 +z>wpkLPcGms3b@`XO4&@T>$B+MF_l(b_NW9wG>x!Wee0!a+JDhoPc#-OdXJlu2OvFS +zl^o^diyl~694#*j65p#b+tk~bA6cG2RMTGm6xWx@BqtA%^z0$E`)J+O5q^gNZlK(CY=J(_}JI?nCR&5B5=4)D(&>$}t*MmnXuNSQfND{0HIw`D-)WNo;5)(VAhup16 +zoD)R{7sF8rT@H5W?Y3Y`3!I!bGFT91wOI=+Y*xvO{D^8x5$Gt3Q>d$yK5~GxLIOeC;DU +z)YIn6Bj`pGCUpbfwy@b>H*ofZ?W9k+FSKA?8B4IuTEB=_bEpiR^jUHZPr$U5BE*KP +zR{)&WtO)kXGk!@lfaxOcp-b?Kag1vss$Ty~?-_O-mXw2Z +z?b+l>amY)j4i@dgjyTOteXqXkG3e{;+N-C{{qEPz|I3e|gG(6rNAr31#vB1($oi3t0kI3~klsvjy+dmbX9>5>WaRiSL|TK3ngYqp%XW)CD_ +zbaBRkXkSG>9SzZY@LIlwNltputYquS=O>27 +z#}aMtqb(+W+JKxdIUXo#L^lI)xS>SS6P4bVh<3)1Lur3`iTr2|nIR?yfnbAqhowX* +zj(s_>Dv??zdQ;<~x@x4NP#55vU^j#G5*!3u>cjaQ*2vC+hb~zadzksOR5)5%d<|}; +zv!$g4GK3 +zvaMlRK#cq$Y#ku6HES-U5|j|=M8l#0f_K3~xX +zq+ul4|Ed;4DaNFIvyus+koo1M8~?$m@lyLywnE1oorX2unmiHPaMaK@dnhhahp2U| +z*Hg2UMX%ZA1l~*3IEGuqM%2bRzK-&JiH$s2Iq{=s3`-uP4bX99*k)K_GZ(_4QKMFj +z*09|sB|{E2DcOYb>*W$>8nE4j`88qXVN;t>BXww5)WPBlt6W!ymPNmMymkFvwr<^c +zf1grcv|l0zN;A)mC+P_o^T~ASGfnjjEU(bIPp$6#c5v~qy}&B~qCtDFpYZorH^8&k +z)lZwZT-UFrQa{!G>Zi?HuImRX&^$NBO!9P(K4t@|sh`R|bpsa%) +zWf|g7(JoLPmLX;r?E>YpY<1tUF@Uo926N-gA#fgy@^eQ1Iej|SKxg4{neTm-Y=S`m(*_Z3VQgf9;EwodU97P?@aN3 +zm)3vj{AS7|$J@mX=A%hhU);X8H!`wB-|AN@L`m*pQyaFMn);r4`G6iNmDI|y>~xsu +zfd}oB$389hQF(8p4X7d)TTF!Kuuku`xW2s(5@5DTC;|n%m&LOoh7}VKU>PoCDi@Fl +z(h8@lv_}JNLx;>6Eb~k4NnP(rfKR+V#5cy(v*CtkeD~<0=Y^r(FTV~vW9?kvtP>*_ +z`S?MyMdSo}uZ`DbJiJi#LtbELx_<1(97xyp?AUs4Iy1`+3pOMRD)=K1dJ(O+CkHRF|@tCc6DV0;Sn;ODS5=K4{pcT`+)vV{LbI`?AOpSLkfw0X^JS1s|pGLGV; +zq%aH~K$}(w6yH+Lkp0TG$Y0^Tj7?`cKtg2F#qwT+?9~#VZ>R;7dxR_Fe2TZ`EXTV|JM_hS)S7+Un)^oC +z8yZO%!ynQ;(M7L!uu~mBm1CpIW?joRa*9509haO-%;zbIBj$3sU7zvXOHng#dGdf( +z%9sFTak0mjDv3Djr3>F7V0=~EXio~%6t9Rfyw~Uv2Tlvyom(upejM8y{E(J;OuBcw +zBL*t-8tH7sw_w&%JHjfN$B3tPyjzb8q&9bA+g! +zGpjV)hzKT>^d^%inZ3rR^*~GOQ=!GN(uFxJ-Lsq{;J0nv>H@8|n?It%ObT2g4t4I0 +zLPRqx?Efy10UscBL5yJ^3u1zc*vk62S0!((Vk%Mh7FV-CjH9gI;^5*PTE4J*ySOncnKEnU +zEG%@00CaA)AV03qu|Jv-Y857CIqYS&X}xi8Xln(;l@O439Db>hpP2=KbMUM9jJXRQ +zBkilU|4GfgY`;z4EOCshwEd;tvkb>2=fhH1g8jfW^Qt*8=k+Ga$W6Qp(w{;8-{AR2 +zGw_FVqKk!=YNXm*?jyAwnznae(lx6watlY-HN^qn#P#P)seUa7e +zWj(?1_2Zt%sdx={ +zrg`on`Ww!mYx%Zokbh^U(R`IdO867FT&ht)<2hG|*N$Vu5E$E8swpugzL@`rI?h7! +zi7Rg8d^YzJ4?GKdV1Z2C-`eHfR@R1kw?847Efd&H(-xBlbtz&;xn{ +zb85nAGdJ{e$X>$w{_L4zy!q)h<(<)${3q1$%&4OnVvz=RYxbr{10-m7h80^u57ZRr +zLPi`SUqoymDZKF={v`^seDqF~h`RA29TtBT#~%GWP&_HKzV0%(h>45dh$~+$ZPogJk~_NI3Jk3 +zUU`xB#Er8Y>s(e9HUG!t-zZ1};QO)=%6(-=3ax +zK7GqLdS()A`uW`VA~$ajq?FNGbS1*@ZLS+&MRQv{pv<#B*deXb^nfyJk)Nw}Rh!VA +zD3?7*1Dc~&eSEg{cw?o-*agkZwb$!i8>rE5cp1IK`CM80-;bn8V-~MNQ?6B_qswY} +zKcQ~0qOq2`Px`FtvOd%|+PWq!OHEXvS=k9S0zHeXf*#AGwS7;VGkm)hm^Qr)dy-q! +z*^JQd>(7$n*Cyq{q~qHnVn*DPh71$PtL(k>OqCTV*KOpP_Kq<17V`8;jiENBUk=7D +z#^o+i@I|dHk{;8@#tmE5TKu)kXLeiYEUdKj0U~G5?y1M4}vtQ!lS0meH??#ak1B=}1d2wHs=lfxg +zH~+>Gnno1ZY+SzSfdyH9kGTOmKD5}^TXr@6^uBfY`EJuRcbjH8`@!@u6U_w?!0RPs~PeAhJRP4juveAYDgn{`J`z+Zkmsp=7Xkr +zziEz}=69m-;>Axt{q)^;-<_YIfByOBpMCb(y?ggQ{q)mMKKbP1k3atCqmMrL;Dh(y +ffB*RS_;Ie*Yee?7tUH^S2K_{Oi4YPoF;ZqOE^tpO^mc +z$4S?$yS|@H=gqWR)9TyFgEs2_GMO%#DH?Z^Mf=TU+ARG3E0WQ}N!#5y>h3%;!b`7z +zg73Ls?EAzBv4l@wPo}d(>Wj%qJ39syuY78RX6Z?U(&MyCJxijq_D**+JM50`T-Z>- +z=#Y_9V~lKkHCZ$#PWX$-tnH2u4-UIy+<4*a_-ryeUKqhBdx|>BVNK>}%B!>MEQ?iF +zoK9v91(N(7SUv0x_7C>E!#mb-f%*=YnC|y2ksQ{YjWBXL0ZOxp3#UGlhb_dL?HwE* +z8@Ct`6_VKakB6)_Dytswd@@~*OCHuxw?74QGcqH|+dD@G-F~;X+wC75-XUz1m~}5N +z`L`{)mmruqE!yLQZg=PQ?m?1vR>>b&6lxhrYnBA+-Q?8N6nYNE#dNBp7q~hh@zg~= +zI^5qgPWJW>j|_QhGbbw39))6*u+l`ms9OecI?jD_9$4~JrpyjWv6Ol5_PaN?Z|@x* +zlLBNxSwJ(-x2T}2tI2TCb97Bew2Q+d$l~fNWe6XfwI?PYS(;Gm`@6SqZbKdW2S>t) +zy=Rkoqku6S5bP`)LAbUuc`X7+xbGwZ#IB{@j}P{DZvN}`&i+B5(Uk~Q53pNAO2wfe +z3yX<)G-Kmgd(20C>&&w>La>&2drvd$&$_N{CkG>C){s*8tY9$$l@1uvLP*POPq!?S}q0&gL6 +z<>s^2AUAc))EZ3m-5 +zCb;AGUm*BQR!5#XANq3*Ri2N2VbE0j?(OZHp>|YtcI8RnVJeF{!o#ay +zqc}lTXFo6RO>NdW`$wtPWG%)*bCO~4;6Q`|Ng_Zb8FLhORKn@(!G3ozJ3Mmf&j(IF +z@rcHXz1`a#qrqMo4H$kF7~sD0i4fer8CoM!_Yq(}3P{Z-+pX>aJv^DQD7!?Z;S@x0 +zgH`~+U8r=X2#+barihbnqC2t(%yWDD%RR(?;3B)=WC&bppEuZBn&O3-A@wPmxj#!K^nI}KGWM0`2sDJd<1<{j#Ia+hF@8%9h?lTH@`H2$I_>~T=ho37F(A`s +z9aU&B{yj}{5ou0$5PZCf-|Tx*Cs*_Ok-{f4MSd^Ma+)?!1~W$279#_Q>{$>bI&pCc#?2FYov9IqcR>xLSYrECBoIca4|Q6wZL$8ZreW^P?!%B +z2S&h)I)ccoIUFltF^r-RgI|(>by05yQ>AH>UfxD3?m)D5nP3q^G>T@1a6OIfj=}g+ +zYsVr9$ojNHvc(9-TkuyQT}HI(9<3YB%UopuAYirJ=^QGCVF)gyst{8n^(dJV$Bs+V +z_o6qlyE>e+6$4_Lj0r^ftnr^DvL$(TRKOWWiL+56EIcAq6^bmt9=|o2h|>PS-abL< +zcD8qB+dJExL4_#`NOec_oCjshv3|xls~&n)Ud2)r*2uq#EU)XwdPgY-mHU;=(<8rY +zT_jQTnDZ#()<_{mWU3rW%(8Pvb?naCHLWIW_!ltPzPWvC4lo#^efB0D3alN5Y%VMZ +zM*UT7MxvMMVd-Dze%W3;h5(72hFS#TOy-NcEEK2dFNR>`u9dswehABo-YJ}=8{tV`7B=YB3bp&{UT?7gK)1i$e|bSPL798rvOKW!=s0miq+!#C*aS +z`Ok{Z1?8yXCK(E*PU?^xQ;+9(Mvh)Bug`OjB+fOZ<(A|l9XY9GPiad~t~maIPfbiI +zvUse>x|_E;iECDmSV<)RY+Y&R5VVeUasyWVtlVQ{o+V +zGU&OPC!2yPG2|^3e1y$MI>Prxl6R)zGX0buSe4fvr$rcK4MMW`I7@UOZ4T|_y|`zu +z@d-bVmsDEbKyvmiogoZ7mvv;LfiFh}Fx$TMFE?l5$%tdwlPl5dXp~v;^(b~+lsGvT +zc{>#i3eHAXU0LwebGS^w!5MgP=7;F|*5>%F5IDk8%OU76w*UZWKO#9CS?=wDoYWWQ +za1q4QDpbY)ZIzHY4;?*<0PFl{Q^g6gIxWkqDO!}rEn#WnRXI-SHr2iK&3TInaiIjQ?akdP{vWKmIiD3yOHfrg7L~iUs7w}6&B3{I3IvsSs;>Ylk*n@0G4>o0 +zwQRa#{$~G_z;%1f$)Mnt#uO=>Sx}^Lft%o$O%^2K?zz8fMc<|5o-}?dCr=CJZg;MAVJvnODC?gkLvvZU&ak~8PAONw`q#HJUQW> +z7QG?3fu^xYT7BGlcXu2SE>MB2wfd1%n8o +zo)#&D0*qSK0;9LYAFTNe45~II0@e0MPI6Oy*;bwec>~J=IEA8hb=jiE?i6;RZ5Re$ +z>dlU@#HUHxBA0%_9V=EW7t=LI}7O +zGqo7m2FZ9NXk>#j1WydBTq?<)fgP!@;41B`x~J@ChQp(+*N;*@m5S2MWjWPYP?wnQv=npvR{s0Fz0}iZWKgCEW>8~G9cD#eTc^m6 +z&bSc8@rkjiRc|6)YefTpyPA@eP+wN$ki9x*)dDow7YC8RoEm@i)1?!fjxceJ$@EVt +z;QBJ;i(DUU(sUI`OB&}v&bR~e!wO+SRj^nLSc3s_u-7@*-p%T)iq+!SUSgA(8?&t&-4=*OD?=hZaE!VRGX7@P5)0tk +zVYDr%If_I)*iFUcnrv~dz`Zj&h50o20NWbR5pnWCGrmnKs%8ZsVdym;lNUK{pdjaY2Mojo +z#3>w2T~ftKwiZX+3$hs3JJny1aB23j8j1%3fy6Kv1~lWaFi0qJ +zEu-Pw?A38&7x?hj4cc+p(&)hT*uXx(6xqlHYO#Qj5S2b^ICb%yfv^T85Czq?nN62% +z2dvUSU28~KueqrC*Q{m8qkDXYFVT!Zx}cK?rkjaP1aL@Gj)#S_6do29_YfNBdhEn;VYp%_O6mD&(nxIy +z0hr{xfxlzP{TUAYan^DcjVHDT^Ie`elutwf2gN43Rl|}15%d0%8ic16P|ZFb8i0?W +z*!#9w`U-+8J$aa@1KCI!iZV(~=6Zsad}_{4OiJ!FwJYhG_40==BApnDZXn<+bISlo +zyO*v^_C$4fLzPVlD%~Ib-a%Z&<@b~Uj!nmteR;_7(ro@>my>oF_|p0^yDCjQp3YGl +z_hutB{*z|&VcDkIU +z3Xx#RQIXQJR03wuw`hV}tQ(2~wfF|@v?P&~MFS{n2FZ~EBBI4eT??{yh={C^zsto- +zS;`FO>0E&54aWp&jEcYgN|huFlZc8?St?+|vH>Q~C07b{gDl$8%nO6S$n+`Ji!nH_ +zV$}rhV2#cYMUCd!K2d6nlF3C&=kv=-m6b&v9MZ}qbEcV^f|R9$IBc9!S2HBY46wW` +zR}H;x86hUEP|{5ZDKe0Rp_xJ%aT9JBU{VQrC*Qw-jLyTO5KV$WQkx56O%mUIF)c?y +zmR}3%(?~2i;ya{-YayI|nI=&YMdoOhl|u}*j;zK?`v$90s8ZGl(o|(-nslS08neFf +z1xcMh(ucXy<;)6uH%ZoDfcY4*4yTFEP_z2j+{K4<14PX5IL5fV2t)`Hh`U8g#2@~p +zSXG8WP^KEA$zkj8q5@UIYQ+TMv*Y0Aq;`qUyJQ#ESGzr^li4&}u?Ek_=KUFvQ6MvqGLK@uiuudjgyum&WG>~24jRF^tBWmG8H(AY +znFa39M|R?ii3;>fok2s;4Rnc|#x`s~JXxLJ$ePLEW`af>$cNa_4+C{ml-Rf70V(WZ +zMF@x-&wBtxW>Mm?=NZtm1q5iM`rgF<$1~?Fav9KZ4=x~{%?Z@MO3>O$Af9FmVg>Q+ +zVRW)WH0In2je8G?CuVT`v5IdV;L}W%ZjyY?&sC-@agNV4C9CAsNXN*H%%CTp3o@9g +za;5=HPH5jHfH~O!s(CWbIR-2ioy7jUohN}{pNYly!nX +zo0Lqyxe^?>#B?9r7VTiP;0_j>1ba3@Jn|@#0r7l_bhSW59$W>L-~^E+ZUv|_#Zs`7 +z>wpkLPcGms3b@`XO4&@T>$B+MF_l(b_NW9wG>x!Wee0!a+JDhoPc#-OdXJlu2OvFS +zl^o^diyl~694#*j65p#b+tk~bA6cG2RMTGm6xWx@BqtA%^z0$E`)J+O5q^gNZlK(CY=J(_}JI?nCR&5B5=4)D(&>$}t*MmnXuNSQfND{0HIw`D-)WNo;5)(VAhup16 +zoD)R{7sF8rT@H5W?Y3Y`3!I!bGFT91wOI=+Y*xvO{D^8x5$Gt3Q>d$yK5~GxLIOeC;DU +z)YIn6Bj`pGCUpbfwy@b>H*ofZ?W9k+FSKA?8B4IuTEB=_bEpiR^jUHZPr$U5BE*KP +zR{)&WtO)kXGk!@lfaxOcp-b?Kag1vss$Ty~?-_O-mXw2Z +z?b+l>amY)j4i@dgjyTOteXqXkG3e{;+N-C{{qEPz|I3e|gG(6rNAr31#vB1($oi3t0kI3~klsvjy+dmbX9>5>WaRiSL|TK3ngYqp%XW)CD_ +zbaBRkXkSG>9SzZY@LIlwNltputYquS=O>27 +z#}aMtqb(+W+JKxdIUXo#L^lI)xS>SS6P4bVh<3)1Lur3`iTr2|nIR?yfnbAqhowX* +zj(s_>Dv??zdQ;<~x@x4NP#55vU^j#G5*!3u>cjaQ*2vC+hb~zadzksOR5)5%d<|}; +zv!$g4GK3 +zvaMlRK#cq$Y#ku6HES-U5|j|=M8l#0f_K3~xX +zq+ul4|Ed;4DaNFIvyus+koo1M8~?$m@lyLywnE1oorX2unmiHPaMaK@dnhhahp2U| +z*Hg2UMX%ZA1l~*3IEGuqM%2bRzK-&JiH$s2Iq{=s3`-uP4bX99*k)K_GZ(_4QKMFj +z*09|sB|{E2DcOYb>*W$>8nE4j`88qXVN;t>BXww5)WPBlt6W!ymPNmMymkFvwr<^c +zf1grcv|l0zN;A)mC+P_o^T~ASGfnjjEU(bIPp$6#c5v~qy}&B~qCtDFpYZorH^8&k +z)lZwZT-UFrQa{!G>Zi?HuImRX&^$NBO!9P(K4t@|sh`R|bpsa%) +zWf|g7(JoLPmLX;r?E>YpY<1tUF@Uo926N-gA#fgy@^eQ1Iej|SKxg4{neTm-Y=S`m(*_Z3VQgf9;EwodU97P?@aN3 +zm)3vj{AS7|$J@mX=A%hhU);X8H!`wB-|AN@L`m*pQyaFMn);r4`G6iNmDI|y>~xsu +zfd}oB$389hQF(8p4X7d)TTF!Kuuku`xW2s(5@5DTC;|n%m&LOoh7}VKU>PoCDi@Fl +z(h8@lv_}JNLx;>6Eb~k4NnP(rfKR+V#5cy(v*CtkeD~<0=Y^r(FTV~vW9?kvtP>*_ +z`S?MyMdSo}uZ`DbJiJi#LtbELx_<1(97xyp?AUs4Iy1`+3pOMRD)=K1dJ(O+CkHRF|@tCc6DV0;Sn;ODS5=K4{pcT`+)vV{LbI`?AOpSLkfw0X^JS1s|pGLGV; +zq%aH~K$}(w6yH+Lkp0TG$Y0^Tj7?`cKtg2F#qwT+?9~#VZ>R;7dxR_Fe2TZ`EXTV|JM_hS)S7+Un)^oC +z8yZO%!ynQ;(M7L!uu~mBm1CpIW?joRa*9509haO-%;zbIBj$3sU7zvXOHng#dGdf( +z%9sFTak0mjDv3Djr3>F7V0=~EXio~%6t9Rfyw~Uv2Tlvyom(upejM8y{E(J;OuBcw +zBL*t-8tH7sw_w&%JHjfN$B3tPyjzb8q&9bA+g! +zGpjV)hzKT>^d^%inZ3rR^*~GOQ=!GN(uFxJ-Lsq{;J0nv>H@8|n?It%ObT2g4t4I0 +zLPRqx?Efy10UscBL5yJ^3u1zc*vk62S0!((Vk%Mh7FV-CjH9gI;^5*PTE4J*ySOncnKEnU +zEG%@00CaA)AV03qu|Jv-Y857CIqYS&X}xi8Xln(;l@O439Db>hpP2=KbMUM9jJXRQ +zBkilU|4GfgY`;z4EOCshwEd;tvkb>2=fhH1g8jfW^Qt*8=k+Ga$W6Qp(w{;8-{AR2 +zGw_FVqKk!=YNXm*?jyAwnznae(lx6watlY-HN^qn#P#P)seUa7e +zWj(?1_2Zt%sdx={ +zrg`on`Ww!mYx%Zokbh^U(R`IdO867FT&ht)<2hG|*N$Vu5E$E8swpugzL@`rI?h7! +zi7Rg8d^YzJ4?GKdV1Z2C-`eHfR@R1kw?847Efd&H(-xBlbtz&;xn{ +zb85nAGdJ{e$X>$w{_L4zy!q)h<(<)${3q1$%&4OnVvz=RYxbr{10-m7h80^u57ZRr +zLPi`SUqoymDZKF={v`^seDqF~h`RA29TtBT#~%GWP&_HKzV0%(h>45dh$~+$ZPogJk~_NI3Jk3 +zUU`xB#Er8Y>s(e9HUG!t-zZ1};QO)=%6(-=3ax +zK7GqLdS()A`uW`VA~$ajq?FNGbS1*@ZLS+&MRQv{pv<#B*deXb^nfyJk)Nw}Rh!VA +zD3?7*1Dc~&eSEg{cw?o-*agkZwb$!i8>rE5cp1IK`CM80-;bn8V-~MNQ?6B_qswY} +zKcQ~0qOq2`Px`FtvOd%|+PWq!OHEXvS=k9S0zHeXf*#AGwS7;VGkm)hm^Qr)dy-q! +z*^JQd>(7$n*Cyq{q~qHnVn*DPh71$PtL(k>OqCTV*KOpP_Kq<17V`8;jiENBUk=7D +z#^o+i@I|dHk{;8@#tmE5TKu)kXLeiYEUdKj0U~G5?y1M4}vtQ!lS0meH??#ak1B=}1d2wHs=lfxg +zH~+>Gnno1ZY+SzSfdyH9kGTOmKD5}^TXr@6^uBfY`EJuRcbjH8`@!@u6U_w?!0RPs~PeAhJRP4juveAYDgn{`J`z+Zkmsp=7Xkr +zziEz}=69m-;>Axt{q)^;-<_YIfByOBpMCb(y?ggQ{q)mMKKbP1k3atCqmMrL;Dh(y +ffB*RS_;= 1.2.1) if you want sound! +-(see see http://www.libsdl.org/) +---> compiling without sound support +---------------------------------------------------]) +-summary_sound="SDL_mixer not found") ++AC_CHECK_LIB([SDL_mixer], [Mix_ChannelFinished]) + + if test x$want_vorbis = xyes; then +-AC_CHECK_LIB([ogg], [oggpack_read],, AC_MSG_WARN([ +--------------------------------------------------- +-libogg not found! +-You need the Ogg libs installed if you want +-Freedroid to be able to play Ogg files (e.g. the Intro theme) +---------------------------------------------------]) +-summary_sound="no libogg") ++AC_CHECK_LIB([ogg], [oggpack_read]) + +-AC_CHECK_LIB([vorbis], [vorbis_block_init],, AC_MSG_WARN([ +--------------------------------------------------- +-libvorbis not found! +-You need the Vorbis libs installed if you want +-Freedroid to be able to play Ogg files (e.g. the Intro theme) +---------------------------------------------------]) +-summary_sound="no libvorbis") ++AC_CHECK_LIB([vorbis], [vorbis_block_init]) + else + AC_DEFINE(HAVE_LIBOGG,0, [Define to 1 if ogg libs were found]) + AC_DEFINE(HAVE_LIBVORBIS,0, [Define to 1 if Vorbis libs were found]) +@@ -219,7 +190,17 @@ AC_TYPE_SIZE_T + AC_HEADER_TIME + + # Checks for library functions. +-AC_CHECK_FUNCS([alarm getcwd gettimeofday memset sqrt strstr strtok alphasort scandir nl_langinfo dirname]) ++AC_DEFINE([HAVE_ALARM],[1],[Haiku has alarm]) ++AC_DEFINE([HAVE_DIRNAME],[1],[Haiku has dirname]) ++AC_DEFINE([HAVE_GETCWD],[1],[Haiku has getcwd]) ++AC_DEFINE([HAVE_GETTIMEOFDAY],[1],[Haiku has gettimeofday]) ++AC_DEFINE([HAVE_STRSTR],[1],[Haiku has strstr]) ++AC_DEFINE([HAVE_STRTOK],[1],[Haiku has strtok]) ++AC_DEFINE([HAVE_SQRT],[1],[Haiku has sqrt]) ++AC_DEFINE([HAVE_MEMSET],[1],[Haiku has memset]) ++AC_DEFINE([HAVE_SCANDIR],[1],[Haiku has scandir]) ++AC_DEFINE([HAVE_ALPHASORT],[1],[Haiku has alphashort]) ++AC_DEFINE([PACKAGE_BUGREPORT],["http://bitbucket.org/haikuports/haikuports"],[Haikuports bugs]) + + if test x$want_backtrace = xyes; then + AC_CHECK_FUNCS([backtrace]) diff --git a/games-rpg/freedroidrpg/patches/configure.ac.patch b/games-rpg/freedroidrpg/patches/configure.ac.patch new file mode 100644 index 000000000..a2b7e08a0 --- /dev/null +++ b/games-rpg/freedroidrpg/patches/configure.ac.patch @@ -0,0 +1,25 @@ +diff --git a/configure.ac b/configure.ac +index dad2e72..73a762a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -8,7 +8,7 @@ AC_CANONICAL_TARGET + dnl Setup for automake + AM_INIT_AUTOMAKE([tar-ustar dist-bzip2]) + +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADERS(config.h) + + # Checks for programs. + AC_PROG_CC +@@ -17,9 +17,8 @@ AC_PROG_MAKE_SET + + AC_HEADER_STDC + # 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_PATH_X + AC_PATH_XTRA diff --git a/games-simulation/corsix_th/corsix_th-0.30.recipe b/games-simulation/corsix_th/corsix_th-0.30.recipe new file mode 100644 index 000000000..42ac22e3d --- /dev/null +++ b/games-simulation/corsix_th/corsix_th-0.30.recipe @@ -0,0 +1,75 @@ +SUMMARY="Open source clone of Theme Hospital" +DESCRIPTION=" +CorsixTH aims to reimplement the game engine of Theme Hospital, and be able to +load the original game data files. This means that you will need a purchased +copy of Theme Hospital, or a copy of the demo, in order to use CorsixTH. After +most of the original engine has been reimplemented in open source code, the +project will serve as a base from which extensions and improvements to the +original game can be made. +" +HOMEPAGE="http://github.com/CorsixTH" +SRC_URI="https://github.com/CorsixTH/CorsixTH/archive/v$portVersion.tar.gz" +CHECKSUM_SHA256="4947ebdc50b01fde0aca797250d50b9806b9e6f3f4323872fd914f033f4c92e7" +SRC_FILENAME="CorsixTH-$portVersion.tar.gz" +REVISION="1" +ARCHITECTURES="x86" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + corsix_th = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libsdl$secondaryArchSuffix + lib:libsdl_mixer$secondaryArchSuffix + lib:libavcodec$secondaryArchSuffix + lib:libluajit_5.1$secondaryArchSuffix + lib:libfreetype$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libsdl$secondaryArchSuffix + devel:libsdl_mixer$secondaryArchSuffix + devel:libavcodec$secondaryArchSuffix + devel:libluajit_5.1$secondaryArchSuffix + devel:libfreetype$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:git + cmd:make + cmd:cmake + cmd:pkg_config$secondaryArchSuffix + " + +SOURCE_DIR="CorsixTH-$portVersion" +PATCHES="corsix_th-$portVersion.patchset" +BUILD() +{ + cmake . -DLUA_LIBRARY=/system/$relativeLibDir/libluajit-5.1.so.2.0.2 \ + -DCMAKE_INSTALL_PREFIX=$appsDir + cd CorsixTH + make $jobArgs +} + +INSTALL() +{ + touch CorsixTH/LICENSE.txt + make install + + addattr -f Icon_Haiku -t "'VICN'" "BEOS:ICON" $appsDir/CorsixTH/CorsixTH + addAppDeskbarSymlink $appsDir/CorsixTH/CorsixTH "Corsix Theme Hospital" +} + +# no TEST script available + +COPYRIGHT="2005-2013 Corsix" +LICENSE="MIT" diff --git a/games-simulation/corsix_th/patches/corsix_th-0.30.patchset b/games-simulation/corsix_th/patches/corsix_th-0.30.patchset new file mode 100644 index 000000000..fdfd773ba --- /dev/null +++ b/games-simulation/corsix_th/patches/corsix_th-0.30.patchset @@ -0,0 +1,77 @@ +From 6ffdc30a00c95287e9e42fc65462bbcb17b7cff2 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Mon, 13 Jan 2014 21:36:21 +0100 +Subject: Fix config file path. + + +diff --git a/CorsixTH/Lua/config_finder.lua b/CorsixTH/Lua/config_finder.lua +index 5de4dfb..c643f65 100644 +--- a/CorsixTH/Lua/config_finder.lua ++++ b/CorsixTH/Lua/config_finder.lua +@@ -35,7 +35,7 @@ if pathsep == "\\" then + config_path = os.getenv("AppData") or ourpath + else + -- Linux, OS X, etc. +- config_path = os.getenv("XDG_CONFIG_HOME") or pathconcat(os.getenv("HOME") or "~", ".config") ++ config_path = os.getenv("XDG_CONFIG_HOME") or pathconcat(os.getenv("HOME") or "~", "config/settings") + end + if config_path ~= ourpath then + config_path = pathconcat(config_path, "CorsixTH") +-- +1.8.3.4 + + +From d2181fb6daaf3b434de528caaaf25c4da8bcb29d Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Mon, 13 Jan 2014 21:36:49 +0100 +Subject: Add vector icon. + + +diff --git a/Icon_Haiku b/Icon_Haiku +new file mode 100644 +index 0000000000000000000000000000000000000000..e33288c7f66a04b72128533415302926dd613c58 +GIT binary patch +literal 9704 +zcmeHM&u5&Lcu|R06Rn9SFLF?0Jox;4W_EUGx3hJmJQ`ysneN-qe0RRz +z`Fy|M+3!yG?i=YJ*tch=Kr5iPa@xVigeYRXBO`-b`CLJ)7ybPs`#8r>_Yzfe6~u-Z +z{}vPcjInhXGx3G3LR`O3$xl_96AiHlDHp5WfE+bytF%_Vhyq4v)!i64WmrWm;sl;_ +zQSuQUUT-MjWd=v&bFY!Ol>{ycClpeQz_ +z@K=HHS>l63LvkM8zlpBq*(`DDWj`O`er2*ICk$)VrkDymzlo8n<)lya31RlDWhqti +zd`H1x`k$w)2EGpiYGa~+M#f9kdeGo~4`_2?{uq|!%KRpn&So;d8TX^;^t{Qu#;1Xs +z%xnC6;3o6L*#}^cjrrFiTry9Ct6|V+#MF=W3ULFS*X^L5zx8zh_x!D|=5J!AEXT~b +zICi7gaGg1*73iy0ps%;8NV&efn$n@e@L@}Z(4m4`2%UyETtny{$g-Is#NXS|JJHP$ +z(s&neGlVog1l$ZEHK!2A<9X7_`+9`S5ZZv7U0iN=97CcEEb6m}19oAitsdkxE1-O4 +zmq>AKQY^~r+$gTY6)T}wXI++Jji10uO^P-C18|dK;_Q22k1b0XGQ{&J*6BIl3wQSk +z!Rt-*v*?THOgCQ5-;~j^%&5^wPG9+q`khHr3Y!n#ZbeC&wog+kbX1OJ(o{U|7(*k4 +zmBkQK_aJ&UhBVF>n;AnI{|2}jL&Vv4!X8@;?TPTb7^1(q!!F`l#+9+5uXF^viE)gw +zdaE~gXDvU_XT(lB6{whLj|OY3q_&$`Q0r0@T!ed8vfa?#CG>2lX#53?nW3WbL%{hv +zTaLX2%oZvaBHT4p7zPXt^1ppKm)ivGu1ia%UGTr=UZ$x4h>oteOZq*Xku +zGjWD3KhMpLfP9f(?m7j0g6eb7KInWJ7_BX0OL%Fp??tZkS@e_m!F{0!t9ZCaoc(kB +zQSuLn14D!S-jFt4%fY{kaOs6oSUV!6WpT$Fw%AqJu*6V0&VH;x41WGxikc%J-) +zO}|QA)NN}=F-Cj!#z|%Ud3LlQ}c+tB9zZp!2NN2xRI*P+k2ngZfY%)~0T*-_#h67>Mc9bWvRfnazhiim& +zmem91$P=%ex%S(Rn>{g`m8KV{*>P^r6Fr%^EX5~qJnQ-6LQHyo>4ewt4tsU4Iag{_ +zEA^Uuda^QW8<;Pjk9w&?u6&w~ +zagwCu(=k4igP)D?B*vL(ag1{*@vhA??=HD@Ct-fa9rJ;sV=lq+b~$DX=FW3W7shOk +znFMZg3{T)}IA1=*6UT7YrH)~xBpowW36Ev{a{YHs@ynIVA8#H0YWPxjbp1l(c(x?O +za2eP6R%@udmN4;4!98I>Ug8(t#0hg4^~87>O#5S5$58AJ?PTvcCd?-=s9g!enlCS5 +zp2CL^cF>WCu`*3EV3z|Bn&sNIAOSnOUH1HsBgxCnOk#8XBiWqb*>~^{(@~T +zrPZG>o3CUN#Kr}3S+}FK+J<@ZN~`B0UD?uV9`@Kut1G~1Th>`$=HNd@c;YOsXsNTf +z)5?GNb*&XxE(KQSf2P1XiwJPZfQyKLc5O?1cjj$NPh!lrEqTCgksjvYrz1RxbS&Hw +z>C7tiukF<I@`h??ntWyO$7a=%)?hu`u+{>W&5rG + +literal 0 +HcmV?d00001 + +-- +1.8.3.4 + diff --git a/games-simulation/openttd/openttd-1.2.3.recipe b/games-simulation/openttd/openttd-1.2.3.recipe deleted file mode 100644 index 4f92f7b00..000000000 --- a/games-simulation/openttd/openttd-1.2.3.recipe +++ /dev/null @@ -1,32 +0,0 @@ -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/games-simulation/openttd/openttd-1.3.3.recipe b/games-simulation/openttd/openttd-1.3.3.recipe new file mode 100644 index 000000000..3e0b35ebd --- /dev/null +++ b/games-simulation/openttd/openttd-1.3.3.recipe @@ -0,0 +1,80 @@ +SUMMARY="OpenTTD is a clone of Transport Tycoon Deluxe" +DESCRIPTION=" +OpenTTD is an open source simulation game based upon the popular Microprose +game \"Transport Tycoon Deluxe\", written by Chris Sawyer. It attempts to mimic +the original game as closely as possible while extending it with new features. +" +HOMEPAGE="http://www.openttd.org" +SRC_URI="http://binaries.openttd.org/releases/$portVersion/openttd-$portVersion-source.tar.xz" +CHECKSUM_SHA256="6991ed2c0170481800c3a92a1b43546821a658de91d3ac7efe868588387eca5d" +REVISION="2" +ARCHITECTURES="x86" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + openttd$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libsdl$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:liblzma$secondaryArchSuffix + lib:liblzo2$secondaryArchSuffix + + openttd_gfx + openttd_sfx + openttd_msx + timgmsoundfont + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libsdl$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:liblzma$secondaryArchSuffix + devel:liblzo2$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:git + cmd:make + cmd:pkg_config$secondaryArchSuffix + " + +PATCHES="openttd-$portVersion.patchset" +BUILD() +{ + export includeDir=/system/$relativeIncludeDir + # Non-autotools script, can't use runConfigure. + ./configure --prefix=$prefix --binary-dir=$relativeAppsDir \ + --data-dir=$relativeDataDir/openttd --doc-dir=$relativeDocDir/openttd \ + --man-dir=$relativeManDir --icon-dir=trash --menu-dir=trash + make $jobArgs +} + +INSTALL() +{ + make install + # The install script leaves some mess all around, let's clean it up... + rm -r $prefix/trash + rm -r $prefix/16x16 + rm -r $prefix/32x32 + rm -r $prefix/48x48 + rm -r $prefix/64x64 + rm -r $prefix/128x128 + rm -r $prefix/256x256 + + addAppDeskbarSymlink $appsDir/openttd "OpenTTD" +} + +# no TEST script available + +COPYRIGHT="2005-2013 OpenTTD Team" +LICENSE="GNU GPL v2" diff --git a/games-simulation/openttd/patches/openttd-1.3.3.patchset b/games-simulation/openttd/patches/openttd-1.3.3.patchset new file mode 100644 index 000000000..174dbc4c0 --- /dev/null +++ b/games-simulation/openttd/patches/openttd-1.3.3.patchset @@ -0,0 +1,27 @@ +From 0d2515090adbf1ed589046047727ce9a088c0db2 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 12 Jan 2014 18:36:42 +0100 +Subject: Hack to avoid hardcoded library search path. + +Makes it possible to find zlib when building as an hybrid package. + +diff --git a/config.lib b/config.lib +index 2dc14a8..215705d 100644 +--- a/config.lib ++++ b/config.lib +@@ -2597,10 +2597,10 @@ detect_library() { + fi + fi + if [ -z "$res" ] && [ "$os" = "HAIKU" ]; then +- eval "$2=`ls -1 /boot/common/include/$4*.h 2>/dev/null | egrep \"\/$5\$\"`" ++ eval "$2=`ls -1 $includeDir/$4*.h 2>/dev/null | egrep \"\/$5\$\"`" + eval "res=\$$2" + if [ -z "$res" ]; then +- log 2 " trying /boot/common/include/$4$5... no" ++ log 2 " trying $includeDir/$4$5... no" + fi + fi + +-- +1.8.3.4 + diff --git a/games-simulation/openttd_gfx/openttd_gfx-0.4.7.recipe b/games-simulation/openttd_gfx/openttd_gfx-0.4.7.recipe new file mode 100644 index 000000000..f746dcd7f --- /dev/null +++ b/games-simulation/openttd_gfx/openttd_gfx-0.4.7.recipe @@ -0,0 +1,44 @@ +SUMMARY="OpenTTD - free graphics files" +DESCRIPTION=" +OpenTTD is an open source simulation game based upon the popular Microprose +game \"Transport Tycoon Deluxe\", written by Chris Sawyer. It attempts to mimic +the original game as closely as possible while extending it with new features. + +This package provides free to use graphics file. You can use them if you don't +have the files from the original Transport Tycoon Deluxe game. +" +HOMEPAGE="http://www.openttd.org" +SRC_URI="http://binaries.openttd.org/extra/opengfx/$portVersion/opengfx-$portVersion-all.zip" +CHECKSUM_SHA256="10032c683f98b4d378c0651118a4858ae6d3f0a5059302dc3f96bfbfcdc67241" +REVISION="1" +ARCHITECTURES="any" + +SOURCE_DIR="opengfx-$portVersion" +PROVIDES=" + openttd_gfx = $portVersion + " + +#REQUIRES=" +# " + +#BUILD_REQUIRES=" +# " + +#BUILD_PREREQUIRES=" +# " + +BUILD() +{ + true +} + +INSTALL() +{ + mkdir -p $dataDir/openttd/baseset/opengfx + cp * $dataDir/openttd/baseset/opengfx +} + +# no TEST script available + +COPYRIGHT="2005-2013 OpenTTD Team" +LICENSE="GNU GPL v2" diff --git a/games-simulation/openttd_msx/openttd_msx-0.3.1.recipe b/games-simulation/openttd_msx/openttd_msx-0.3.1.recipe new file mode 100644 index 000000000..d9290e4b2 --- /dev/null +++ b/games-simulation/openttd_msx/openttd_msx-0.3.1.recipe @@ -0,0 +1,44 @@ +SUMMARY="OpenTTD - free music files" +DESCRIPTION=" +OpenTTD is an open source simulation game based upon the popular Microprose +game \"Transport Tycoon Deluxe\", written by Chris Sawyer. It attempts to mimic +the original game as closely as possible while extending it with new features. + +This package provides free to use music files. You can use them if you don't +have the files from the original Transport Tycoon Deluxe game. +" +HOMEPAGE="http://www.openttd.org" +SRC_URI="http://binaries.openttd.org/extra/openmsx/$portVersion/openmsx-$portVersion-all.zip" +CHECKSUM_SHA256="92e293ae89f13ad679f43185e83fb81fb8cad47fe63f4af3d3d9f955130460f5" +REVISION="1" +ARCHITECTURES="any" + +SOURCE_DIR="openmsx-$portVersion" +PROVIDES=" + openttd_msx = $portVersion + " + +#REQUIRES=" +# " + +#BUILD_REQUIRES=" +# " + +#BUILD_PREREQUIRES=" +# " + +BUILD() +{ + true +} + +INSTALL() +{ + mkdir -p $dataDir/openttd/baseset/openmsx + cp * $dataDir/openttd/baseset/openmsx +} + +# no TEST script available + +COPYRIGHT="2005-2013 OpenTTD Team" +LICENSE="GNU GPL v2" diff --git a/games-simulation/openttd_sfx/openttd_sfx-0.2.3.recipe b/games-simulation/openttd_sfx/openttd_sfx-0.2.3.recipe new file mode 100644 index 000000000..098600f7b --- /dev/null +++ b/games-simulation/openttd_sfx/openttd_sfx-0.2.3.recipe @@ -0,0 +1,44 @@ +SUMMARY="OpenTTD - free sound files" +DESCRIPTION=" +OpenTTD is an open source simulation game based upon the popular Microprose +game \"Transport Tycoon Deluxe\", written by Chris Sawyer. It attempts to mimic +the original game as closely as possible while extending it with new features. + +This package provides free to use sound files. You can use them if you don't +have the files from the original Transport Tycoon Deluxe game. +" +HOMEPAGE="http://www.openttd.org" +SRC_URI="http://binaries.openttd.org/extra/opensfx/$portVersion/opensfx-$portVersion-all.zip" +CHECKSUM_SHA256="6831b651b3dc8b494026f7277989a1d757961b67c17b75d3c2e097451f75af02" +REVISION="1" +ARCHITECTURES="any" + +SOURCE_DIR="opensfx-$portVersion" +PROVIDES=" + openttd_sfx = $portVersion + " + +#REQUIRES=" +# " + +#BUILD_REQUIRES=" +# " + +#BUILD_PREREQUIRES=" +# " + +BUILD() +{ + true +} + +INSTALL() +{ + mkdir -p $dataDir/openttd/baseset/opensfx + cp * $dataDir/openttd/baseset/opensfx +} + +# no TEST script available + +COPYRIGHT="2005-2013 OpenTTD Team" +LICENSE="GNU GPL v2" diff --git a/games-strategy/uqm/patches/uqm-0.7.0.patchset b/games-strategy/uqm/patches/uqm-0.7.0.patchset new file mode 100644 index 000000000..54042ce8d --- /dev/null +++ b/games-strategy/uqm/patches/uqm-0.7.0.patchset @@ -0,0 +1,100 @@ +From 45ee17169b5ca4ebb52661725d3e0bb9f1377a4c Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Wed, 15 Jan 2014 23:08:17 +0100 +Subject: Add pre-configured config.state file. + +This avoids the build script asking questions using an interactive menu. + +diff --git a/config.state b/config.state +new file mode 100644 +index 0000000..01b69f6 +--- /dev/null ++++ b/config.state +@@ -0,0 +1,14 @@ ++CHOICE_debug_VALUE='nodebug' ++CHOICE_graphics_VALUE='opengl' ++CHOICE_sound_VALUE='mixsdl' ++CHOICE_mikmod_VALUE='external' ++CHOICE_ovcodec_VALUE='standard' ++CHOICE_netplay_VALUE='ipv4' ++CHOICE_joystick_VALUE='enabled' ++CHOICE_ioformat_VALUE='stdio_zip' ++CHOICE_accel_VALUE='asm' ++CHOICE_threadlib_VALUE='pthread' ++INPUT_install_prefix_VALUE='PREFIX_HERE' ++INPUT_install_bindir_VALUE='$prefix/bin' ++INPUT_install_libdir_VALUE='$prefix/lib' ++INPUT_install_sharedir_VALUE='$prefix/share' +-- +1.8.3.4 + + +From 3833a4d67d17c88f0ca5d042134a2f77e97475cb Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Wed, 15 Jan 2014 23:08:55 +0100 +Subject: Make buildsystem aware of Haiku. + + +diff --git a/build/unix/config_functions b/build/unix/config_functions +index 4f017f1..7c4aa5a 100644 +--- a/build/unix/config_functions ++++ b/build/unix/config_functions +@@ -1060,6 +1060,8 @@ set_host_system() { + HOST_SYSTEM="ARMV5" ;; + [Gg][Cc][Cc][Ee]) + HOST_SYSTEM="GCCE" ;; ++ [Hh][Aa][Ii][Kk][Uu]) ++ HOST_SYSTEM="Haiku" ;; + *) + build_message "Warning: host type '$BUILD_HOST' unknown. Using defaults." + ;; +diff --git a/build/unix/config_proginfo_host b/build/unix/config_proginfo_host +index 6e0466c..d95c6c9 100644 +--- a/build/unix/config_proginfo_host ++++ b/build/unix/config_proginfo_host +@@ -299,7 +299,7 @@ case "$HOST_SYSTEM" in + LIB_pthread_LDFLAGS="$(pthread-config --ldflags)" + LIB_pthread_VERSION="$(pthread-config --version)" + ;; +- WINSCW|ARMV5|GCCE) ++ WINSCW|ARMV5|GCCE|Haiku) + LIB_pthread_DETECT="true" + ;; + *) +@@ -321,6 +321,11 @@ case "$HOST_SYSTEM" in + ARMV5|WINSCW|GCCE) + LIB_netlibs_DETECT="false" + ;; ++ Haiku) ++ LIB_netlibs_CFLAGS="" ++ LIB_netlibs_LDFLAGS="-lnetwork" ++ LIB_netlibs_VERSION="" ++ ;; + esac + + +-- +1.8.3.4 + + +From 0cf24463ad192a871fc103821b477cf49bc91306 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Wed, 15 Jan 2014 23:09:08 +0100 +Subject: Add missing include for use of select(). + + +diff --git a/src/libs/network/netmanager/netmanager_bsd.c b/src/libs/network/netmanager/netmanager_bsd.c +index 29159f8..4390eb8 100644 +--- a/src/libs/network/netmanager/netmanager_bsd.c ++++ b/src/libs/network/netmanager/netmanager_bsd.c +@@ -30,6 +30,7 @@ + #include + #include + #include ++#include + + #include "netmanager_common.ci" + #include "ndindex.ci" +-- +1.8.3.4 + diff --git a/games-strategy/uqm/uqm-0.7.0.recipe b/games-strategy/uqm/uqm-0.7.0.recipe new file mode 100644 index 000000000..cf3618a3a --- /dev/null +++ b/games-strategy/uqm/uqm-0.7.0.recipe @@ -0,0 +1,74 @@ +SUMMARY="a port of Star Control II for modern personal computers and operating systems" +DESCRIPTION=" +The project started in August 2002, when Toys For Bob released the partially +ported sources of Star Control 2 3DO version to the fan community. Our goal is +to port this wonderful game to current personal computers and operating systems. +It is and will remain 100% free of charge, and anyone can contribute to the +project and thus help make it even better. For more information, look at our +info page. +" +HOMEPAGE="http://sc2.sourceforge.net/" +SRC_URI="http://prdownloads.sourceforge.net/sc2/uqm-0.7.0-source.tgz" +CHECKSUM_SHA256="a3695c5f7f0be7ec9c0f80ec569907b382023a1fee6e635532bd53b7b53bb221" +REVISION="1" +ARCHITECTURES="!x86 ?x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +#PATCHES="vcmi-0.94.patchset" +PROVIDES=" + uqm$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libSDL_1.2$secondaryArchSuffix + lib:libsdl_image$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + lib:libvorbisfile$secondaryArchSuffix + lib:libogg$secondaryArchSuffix + lib:libmikmod$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libSDL$secondaryArchSuffix + devel:libsdl_image$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libvorbisfile$secondaryArchSuffix + devel:libogg$secondaryArchSuffix + devel:libmikmod$secondaryArchSuffix + devel:libglu$secondaryArchSuffix +" + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:as$secondaryArchSuffix + cmd:sed + cmd:make + cmd:tr + cmd:pkg_config$secondaryArchSuffix +" + +PATCHES="uqm-$portVersion.patchset" +BUILD() +{ + sed -i -e"s!PREFIX_HERE!$prefix!" config.state + ./build.sh uqm reprocess_config + ./build.sh uqm +} + +INSTALL() +{ + ./build.sh uqm install +} + +COPYRIGHT="2005-2013 VCMI Team" +LICENSE="GNU GPL v2" diff --git a/games-strategy/vcmi/patches/vcmi-0.94.patchset b/games-strategy/vcmi/patches/vcmi-0.94.patchset new file mode 100644 index 000000000..a1d6a870b --- /dev/null +++ b/games-strategy/vcmi/patches/vcmi-0.94.patchset @@ -0,0 +1,115 @@ +From d1531a4d6125f9542d8729eb3712fd41cc88a565 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Tue, 7 Jan 2014 23:02:10 +0100 +Subject: Link to libnetwork, since we use sockets. + + +diff --git a/server/CMakeLists.txt b/server/CMakeLists.txt +index 2110879..d1fed38 100644 +--- a/server/CMakeLists.txt ++++ b/server/CMakeLists.txt +@@ -19,6 +19,10 @@ endif() + + target_link_libraries(vcmiserver vcmi ${Boost_LIBRARIES} ${RT_LIB} ${DL_LIB}) + ++if (HAIKU) ++ target_link_libraries(vcmiserver network) ++endif() ++ + if (NOT APPLE) # Already inside vcmiclient bundle + install(TARGETS vcmiserver DESTINATION ${BIN_DIR}) + endif() +-- +1.8.3.4 + + +From 17615226b8b9b67a81330aade5609e7eb5a22024 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Wed, 8 Jan 2014 21:14:51 +0100 +Subject: Support for renaming threads. + + +diff --git a/lib/CThreadHelper.cpp b/lib/CThreadHelper.cpp +index 6a4a89e..983ee5b 100644 +--- a/lib/CThreadHelper.cpp ++++ b/lib/CThreadHelper.cpp +@@ -3,6 +3,8 @@ + + #ifdef _WIN32 + #include ++#elif defined(__HAIKU__) ++ #include + #elif !defined(__APPLE__) + #include + #endif +@@ -80,6 +82,8 @@ void setThreadName(const std::string &name) + //not supported + #endif + ++#elif defined(__HAIKU__) ++ rename_thread(find_thread(NULL), name.c_str()); + #elif defined(__linux__) + prctl(PR_SET_NAME, name.c_str(), 0, 0, 0); + #endif +-- +1.8.3.4 + + +From ea422b71bc3fa1af3f84ab5cd2da02649e42a227 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Mon, 27 Jan 2014 20:18:36 +0100 +Subject: Fix settings dir path. + + +diff --git a/lib/VCMIDirs.cpp b/lib/VCMIDirs.cpp +index be00323..9fed4f8 100644 +--- a/lib/VCMIDirs.cpp ++++ b/lib/VCMIDirs.cpp +@@ -123,12 +123,22 @@ std::string VCMIDirs::libraryName(std::string basename) const + + #else + ++#if defined(__haiku__) ++std::string VCMIDirs::userDataPath() const ++{ ++ BPath settingsDir; ++ if (find_directory(B_USER_SETTINGS_DIRECTORY, &path) == B_OK) ++ return std::string(path.Path()) + "vcmi"; ++ return "."; ++} ++#else + std::string VCMIDirs::userDataPath() const + { + if (getenv("HOME") != nullptr ) + return std::string(getenv("HOME")) + "/.vcmi"; + return "."; + } ++#endif + + std::string VCMIDirs::libraryPath() const + { +diff --git a/vcmibuilder b/vcmibuilder +index 472a00d..1f60b12 100755 +--- a/vcmibuilder ++++ b/vcmibuilder +@@ -64,7 +64,7 @@ then + echo " --download " "Automatically download requied packages using wget" + echo " " "Requires wget and Internet connection" + echo +- echo " --dest DIRECTORY " "Path where resulting data will be placed. Default is ~/.vcmi" ++ echo " --dest DIRECTORY " "Path where resulting data will be placed. Default is `finddir B_USER_SETTINGS_DIRECTORY`/vcmi" + echo + echo " --validate " "Run basic validness checks" + exit 0 +@@ -163,7 +163,7 @@ fi + + if [[ -z "$dest_dir" ]] + then +- dest_dir="$HOME/.vcmi" ++ dest_dir="`finddir B_USER_SETTINGS_DIRECTORY`/vcmi" + fi + + temp_dir="$dest_dir"/buildertmp +-- +1.8.3.4 + diff --git a/games-strategy/vcmi/vcmi-0.94.recipe b/games-strategy/vcmi/vcmi-0.94.recipe new file mode 100644 index 000000000..b3e0bf244 --- /dev/null +++ b/games-strategy/vcmi/vcmi-0.94.recipe @@ -0,0 +1,89 @@ +SUMMARY="VCMI is an open source engine for Heroes or Migh and Magic III" +DESCRIPTION=" +We want to rewrite the entire H3 engine (VCMI is NOT another mod) giving it +new possibilities. Few years of intensive work resulted in creating application +with impressive amount of features. + +You require the original game files to use this port +" +HOMEPAGE="http://vcmi.eu" +SRC_URI="http://download.vcmi.eu/vcmi-0.94.tar.gz" +CHECKSUM_SHA256="2a1ad60cd64e7d5cb0a9eda11c6bc1cbf8866035f95597e467591c958dfde4d7" +REVISION="1" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PATCHES="vcmi-0.94.patchset" +PROVIDES=" + vcmi$secondaryArchSuffix = $portVersion + cmd:vcmibuilder + cmd:vcmiclient + cmd:vcmiserver + lib:libminizip$secondaryArchSuffix + lib:libvcmi$secondaryArchSuffix + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libSDL_1.2$secondaryArchSuffix + lib:libsdl_mixer$secondaryArchSuffix + lib:libsdl_image$secondaryArchSuffix + lib:libsdl_ttf$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libavcodec$secondaryArchSuffix + lib:libboost_program_options$secondaryArchSuffix + lib:libboost_filesystem$secondaryArchSuffix + lib:libboost_system$secondaryArchSuffix + lib:libboost_thread$secondaryArchSuffix + lib:libboost_unit_test_framework$secondaryArchSuffix + lib:libstdc++$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libSDL$secondaryArchSuffix + devel:libsdl_mixer$secondaryArchSuffix + devel:libsdl_image$secondaryArchSuffix + devel:libsdl_ttf$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:libavcodec$secondaryArchSuffix + devel:libboost_program_options$secondaryArchSuffix + devel:libboost_filesystem$secondaryArchSuffix + devel:libboost_system$secondaryArchSuffix + devel:libboost_thread$secondaryArchSuffix + devel:libboost_unit_test_framework$secondaryArchSuffix +" + +BUILD_PREREQUIRES=" + cmd:cmake + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:as$secondaryArchSuffix +" + +BUILD() +{ + mkdir -p build + cd build + export CFLAGS=-DUSE_FILE32API + export CXXFLAGS=$CFLAGS + cmake .. -DDATA_DIR=$relativeDataDir/vcmi -DCMAKE_INSTALL_PREFIX=$prefix \ + -DLIB_DIR=$relativeLibDir + make $jobArgs +} + +INSTALL() +{ + cd build + make install + + rm -r $prefix/share # desktop file and png icons we don't care about +} + +COPYRIGHT="2005-2013 VCMI Team" +LICENSE="GNU GPL v2" diff --git a/gnome-base/gnome_common/gnome_common-2.28.recipe b/gnome-base/gnome_common/gnome_common-2.28.recipe index e3a6aa65d..bb66e9288 100644 --- a/gnome-base/gnome_common/gnome_common-2.28.recipe +++ b/gnome-base/gnome_common/gnome_common-2.28.recipe @@ -1,4 +1,6 @@ -DESCRIPTION="A module that is required only when building GNOME from the repository" +DESCRIPTION=" +A module that is required only when building GNOME from the repository. +" HOMEPAGE="http://git.gnome.org/browse/gnome-common/" SRC_URI="git+git://git.gnome.org/gnome-common" REVISION="1" diff --git a/haiku-apps/W6/W6-1.7.recipe b/haiku-apps/W6/W6-1.7.recipe deleted file mode 100644 index 0a217b667..000000000 --- a/haiku-apps/W6/W6-1.7.recipe +++ /dev/null @@ -1,28 +0,0 @@ -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/a_book/a_book-1.1.recipe b/haiku-apps/a_book/a_book-1.1.recipe new file mode 100644 index 000000000..2309d3f6b --- /dev/null +++ b/haiku-apps/a_book/a_book-1.1.recipe @@ -0,0 +1,51 @@ +SUMMARY="A small calendar application with reminders." +DESCRIPTION=" +A small calendar application with reminders. You can use this app to organize \ +your time. The application supports the addition to each day tasks with the \ +appropriate hours and browse all of them. Your job will be saved to a file \ +when the application is closed. +" +HOMEPAGE="https://github.com/HaikuArchives/A-Book" +SRC_URI="git+https://github.com/HaikuArchives/A-Book.git#fe6c66c631" +REVISION="2" + +COPYRIGHT="2002 Maurice Michalski" + +LICENSE="MIT" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + a_book = $portVersion + app:a_book = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc + cmd:make + cmd:mkdepend + " + +PATCHES="a_book-1.1.patchset" + +BUILD() +{ + make OBJ_DIR=objects \ + BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` +} + +INSTALL() +{ + mkdir -p $appsDir + cp -a objects/A-Book $appsDir + addAppDeskbarSymlink $appsDir/A-Book +} diff --git a/haiku-apps/a_book/patches/a_book-1.1.patchset b/haiku-apps/a_book/patches/a_book-1.1.patchset new file mode 100644 index 000000000..b126dbe85 --- /dev/null +++ b/haiku-apps/a_book/patches/a_book-1.1.patchset @@ -0,0 +1,22 @@ +From 2c7f24af4d3a0336d40a48155556527cdfc6362a Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Mon, 2 Dec 2013 17:30:53 -0700 +Subject: Fix makefile stdc++ libs + + +diff --git a/makefile b/makefile +index a28bcd4..1c0d18d 100644 +--- a/makefile ++++ b/makefile +@@ -56,7 +56,7 @@ RSRCS= + # naming scheme you need to specify the path to the library + # and it's name + # library: my_lib.a entry: my_lib.a or path/my_lib.a +-LIBS=be ++LIBS=be $(STDCPPLIBS) + + # specify additional paths to directories following the standard + # libXXX.so or libXXX.a naming scheme. You can specify full paths +-- +1.8.3.4 + diff --git a/haiku-apps/aalibtranslator/aalibtranslator-0.0.1.recipe b/haiku-apps/aalibtranslator/aalibtranslator-0.0.1.recipe new file mode 100644 index 000000000..a584cd1ee --- /dev/null +++ b/haiku-apps/aalibtranslator/aalibtranslator-0.0.1.recipe @@ -0,0 +1,44 @@ +SUMMARY="Save image files as ASCII text art" +DESCRIPTION=" +The AalibTranslator for Haiku allows you to save image files as ASCII text art. +" +HOMEPAGE="https://github.com/noryb009/AalibTranslator/" +SRC_URI="git://github.com/noryb009/AalibTranslator.git#e69df6765106af986454611fa2c960e0ecdb1562" +LICENSE="MIT" +COPYRIGHT="2013 Luke (noryb009)" +REVISION="1" +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + aalibtranslator = $portVersion + app:aalibtranslator = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + lib:libaa + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:libaa + " +BUILD_PREREQUIRES=" + cmd:gcc + makefile_engine + cmd:make + cmd:mkdepend + " + +BUILD() +{ + make \ + BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` \ + TARGET_DIR=. +} + +INSTALL() +{ + mkdir -p $addOnsDir/Translators + cp AALIBTranslator $addOnsDir/Translators +} diff --git a/haiku-apps/album/album-0.9.2.recipe b/haiku-apps/album/album-0.9.2.recipe index 58c428455..8543edd40 100644 --- a/haiku-apps/album/album-0.9.2.recipe +++ b/haiku-apps/album/album-0.9.2.recipe @@ -1,20 +1,56 @@ -DESCRIPTION="An image viewer/organiser designed for BeOS-compatible operating systems" +SUMMARY="An image viewer/organiser designed for BeOS-compatible systems" +DESCRIPTION=" +Album is a file browsing and tagging utility for BeOS and compatibles. It \ +started out with a goal of the ultimate image organiser (code named \ +Aberration), but ended up as something much more modest and BeOS-specific. The \ +idea is to have a work pad for pictures from different locations where they \ +can be previewed and tagged in one place. The program is not limited to \ +picture files and BFS (Be File System) volumes, although that further limits \ +whatever the usefulness since much of the functionality has to do with file \ +attributes. +" 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=" " +SRC_URI="git://github.com/HaikuArchives/Album#64aa3371a9" +LICENSE="MIT" +COPYRIGHT="2006-2009 by Matjaž KovaÄ" +REVISION="3" +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +PROVIDES=" + Album = $portVersion + app:Album = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc + cmd:make + cmd:mkdepend + " + +PATCHES="album-0.9.2.patchset" + +USER_SETTINGS_FILES=" + settings/Album_settings + " + BUILD() { - cd album-0.9.2/src - make + cd src + make OBJ_DIR=objects \ + BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` } + INSTALL() { - cd album-0.9.2 - mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Album - cp -a Album ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Album + mkdir -p $appsDir + cp -a src/objects/Album $appsDir + addAppDeskbarSymlink $appsDir/Album } -LICENSE="MIT" -COPYRIGHT="2006-2009 by Matjaž KovaÄ" \ No newline at end of file diff --git a/haiku-apps/album/patches/album-0.9.2.patchset b/haiku-apps/album/patches/album-0.9.2.patchset new file mode 100644 index 000000000..14fffeab6 --- /dev/null +++ b/haiku-apps/album/patches/album-0.9.2.patchset @@ -0,0 +1,45 @@ +From 47be97d358d8db50026e107d94a63d15f39e7fb1 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Mon, 2 Dec 2013 17:23:41 -0700 +Subject: applying patch album-0.9.2.patch + + +diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp +index 4fcb98a..66ed596 100644 +--- a/src/MainWindow.cpp ++++ b/src/MainWindow.cpp +@@ -142,7 +142,7 @@ MainWindow::MainWindow(BRect frame, const char *title): + + // Create a tempory repository for negotiated drops from image ditors etc. + BPath path; +- if (find_directory(B_COMMON_TEMP_DIRECTORY, &path) == B_OK) { ++ if (find_directory(B_SYSTEM_TEMP_DIRECTORY, &path) == B_OK) { + path.Append("Album"); + if (create_directory(path.Path(), 0x777) == B_OK) { + fRepository.SetTo(path.Path()); +-- +1.8.3.4 + + +From 8f2c953908de0b0e23ae027802902072b153c686 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Mon, 2 Dec 2013 17:27:22 -0700 +Subject: Fix makefile stdc++ libs + + +diff --git a/src/makefile b/src/makefile +index 02e892f..38f0454 100644 +--- a/src/makefile ++++ b/src/makefile +@@ -63,7 +63,7 @@ RSRCS= Album.rsrc + # naming scheme you need to specify the path to the library + # and it's name + # library: my_lib.a entry: my_lib.a or path/my_lib.a +-LIBS=root be translation iptcdata ++LIBS=be translation iptcdata $(STDCPPLIBS) + + # specify additional paths to directories following the standard + # libXXX.so or libXXX.a naming scheme. You can specify full paths +-- +1.8.3.4 + diff --git a/haiku-apps/aplayer/aplayer-4.0.1.recipe b/haiku-apps/aplayer/aplayer-4.0.1.recipe index a6be885ac..632910dbf 100644 --- a/haiku-apps/aplayer/aplayer-4.0.1.recipe +++ b/haiku-apps/aplayer/aplayer-4.0.1.recipe @@ -1,4 +1,7 @@ -DESCRIPTION="APlayer is a module player and can play a lot of different music file formats, from Amiga and elsewhere." +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" @@ -19,5 +22,5 @@ INSTALL() LICENSE="Artistic Licence" COPYRIGHT="1994-2002 Polycode - 2011-2012 Adrien Destugues" - + 2011-2012 Adrien Destugues + " diff --git a/haiku-apps/aplayer/aplayer-4.0_svn.recipe b/haiku-apps/aplayer/aplayer-4.0_svn.recipe new file mode 100644 index 000000000..dda56215a --- /dev/null +++ b/haiku-apps/aplayer/aplayer-4.0_svn.recipe @@ -0,0 +1,58 @@ +SUMMARY="A player for Amiga modules and other formats" +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="2" +LICENSE="Artistic" +COPYRIGHT=" + 1994-2002 Polycode + 2011-2012 Adrien Destugues +" + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + aplayer$secondaryArchSuffix = $portVersion + app:aplayer$secondaryArchSuffix = $portVersion + lib:PolyKit = $portVersion + lib:APlayerKit = $portVersion +" +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion +" +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion +" +BUILD_PREREQUIRES=" + cmd:g++$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:nasm$secondaryArchSuffix +" +SOURCE_DIR="trunk" + +PATCHES=" + aplayer.patch + aplayer_2.patch +" +BUILD() +{ + cd Master + make + cd .. +} + +INSTALL() +{ + aplayerDir=$appsDir/APlayer + mkdir -p $aplayerDir $aplayerDir/add-ons $aplayerDir/Documentation $aplayerDir/lib + + cp APlayer/bin/BeOS_/APlayer $aplayerDir + cp -r Documentation/* $aplayerDir/Documentation + cp -r APlayer/bin/BeOS_/add-ons/* $aplayerDir/add-ons + cp APlayer/bin/BeOS_/lib/APlayerKit.so $aplayerDir/lib + cp PolyKit/bin/BeOS/PolyKit.so $aplayerDir/lib + + addAppDeskbarSymlink $aplayerDir/APlayer +} diff --git a/haiku-apps/aplayer/patches/aplayer.patch b/haiku-apps/aplayer/patches/aplayer.patch new file mode 100644 index 000000000..6e13e6c8c --- /dev/null +++ b/haiku-apps/aplayer/patches/aplayer.patch @@ -0,0 +1,268 @@ +diff --git a/APlayer/Players/GameMusic/libgme/Gbs_Emu.cpp b/APlayer/Players/GameMusic/libgme/Gbs_Emu.cpp +index 05a0b99..c35c22f 100644 +--- a/APlayer/Players/GameMusic/libgme/Gbs_Emu.cpp ++++ b/APlayer/Players/GameMusic/libgme/Gbs_Emu.cpp +@@ -18,10 +18,8 @@ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ + + #include "blargg_source.h" + +-Gbs_Emu::equalizer_t const Gbs_Emu::handheld_eq = +- Music_Emu::make_equalizer( -47.0, 2000 ); +-Gbs_Emu::equalizer_t const Gbs_Emu::headphones_eq = +- Music_Emu::make_equalizer( 0.0, 300 ); ++Gbs_Emu::equalizer_t const Gbs_Emu::handheld_eq ( -47.0, 2000 ); ++Gbs_Emu::equalizer_t const Gbs_Emu::headphones_eq ( 0.0, 300 ); + + Gbs_Emu::Gbs_Emu() + { +@@ -40,8 +38,8 @@ Gbs_Emu::Gbs_Emu() + set_silence_lookahead( 6 ); + set_max_initial_silence( 21 ); + set_gain( 1.2 ); +- +- set_equalizer( make_equalizer( -1.0, 120 ) ); ++ static equalizer_t const eq ( -1.0, 120 ); ++ set_equalizer( eq ); + } + + Gbs_Emu::~Gbs_Emu() { } +diff --git a/APlayer/Players/GameMusic/libgme/Gbs_Emu.h b/APlayer/Players/GameMusic/libgme/Gbs_Emu.h +index b233a2b..c9054cc 100644 +--- a/APlayer/Players/GameMusic/libgme/Gbs_Emu.h ++++ b/APlayer/Players/GameMusic/libgme/Gbs_Emu.h +@@ -41,7 +41,9 @@ public: + + public: + // deprecated +- using Music_Emu::load; ++ #if !defined(__GNUC__) || __GNUC__ > 2 ++ Music_Emu::load; ++ #endif + blargg_err_t load( header_t const& h, Data_Reader& in ) // use Remaining_Reader + { return load_remaining_( &h, sizeof h, in ); } + +diff --git a/APlayer/Players/GameMusic/libgme/Gym_Emu.h b/APlayer/Players/GameMusic/libgme/Gym_Emu.h +index 1e4ed8b..d11440e 100644 +--- a/APlayer/Players/GameMusic/libgme/Gym_Emu.h ++++ b/APlayer/Players/GameMusic/libgme/Gym_Emu.h +@@ -34,7 +34,9 @@ public: + + public: + // deprecated +- using Music_Emu::load; ++ #if !defined(__GNUC__) || __GNUC__ > 2 ++ Music_Emu::load; ++ #endif + blargg_err_t load( header_t const& h, Data_Reader& in ) // use Remaining_Reader + { return load_remaining_( &h, sizeof h, in ); } + enum { gym_rate = 60 }; +diff --git a/APlayer/Players/GameMusic/libgme/Music_Emu.cpp b/APlayer/Players/GameMusic/libgme/Music_Emu.cpp +index 942e86e..065e42b 100644 +--- a/APlayer/Players/GameMusic/libgme/Music_Emu.cpp ++++ b/APlayer/Players/GameMusic/libgme/Music_Emu.cpp +@@ -24,8 +24,7 @@ int const silence_threshold = 0x10; + long const fade_block_size = 512; + int const fade_shift = 8; // fade ends with gain at 1.0 / (1 << fade_shift) + +-Music_Emu::equalizer_t const Music_Emu::tv_eq = +- Music_Emu::make_equalizer( -8.0, 180 ); ++Music_Emu::equalizer_t const Music_Emu::tv_eq ( -8.0, 180 ); + + void Music_Emu::clear_track_vars() + { +@@ -50,6 +49,7 @@ void Music_Emu::unload() + } + + Music_Emu::Music_Emu() ++ : equalizer_(-1.0, 60) + { + effects_buffer = 0; + +@@ -62,8 +62,6 @@ Music_Emu::Music_Emu() + max_initial_silence = 2; + silence_lookahead = 3; + ignore_silence_ = false; +- equalizer_.treble = -1.0; +- equalizer_.bass = 60; + + static const char* const names [] = { + "Voice 1", "Voice 2", "Voice 3", "Voice 4", +diff --git a/APlayer/Players/GameMusic/libgme/Music_Emu.h b/APlayer/Players/GameMusic/libgme/Music_Emu.h +index d98f7ce..0a8bc0a 100644 +--- a/APlayer/Players/GameMusic/libgme/Music_Emu.h ++++ b/APlayer/Players/GameMusic/libgme/Music_Emu.h +@@ -64,7 +64,11 @@ public: + void ignore_silence( bool disable = true ); + + // Info for current track +- using Gme_File::track_info; ++ #if (!defined(__GNUC__) || (__GNUC__ > 2)) ++ Gme_File::track_info; ++ #else ++ blargg_err_t track_info( track_info_t* out, int k ) const {return Gme_File::track_info(out,k); } ++ #endif + blargg_err_t track_info( track_info_t* out ) const; + + // Sound customization +@@ -199,7 +203,7 @@ struct Gme_Info_ : Music_Emu + + inline blargg_err_t Music_Emu::track_info( track_info_t* out ) const + { +- return track_info( out, current_track_ ); ++ return Gme_File::track_info( out, current_track_ ); + } + + inline long Music_Emu::sample_rate() const { return sample_rate_; } +diff --git a/APlayer/Players/GameMusic/libgme/Nsf_Emu.cpp b/APlayer/Players/GameMusic/libgme/Nsf_Emu.cpp +index eab4bfb..0de854a 100644 +--- a/APlayer/Players/GameMusic/libgme/Nsf_Emu.cpp ++++ b/APlayer/Players/GameMusic/libgme/Nsf_Emu.cpp +@@ -31,10 +31,8 @@ int const fme7_flag = 0x20; + + long const clock_divisor = 12; + +-Nsf_Emu::equalizer_t const Nsf_Emu::nes_eq = +- Music_Emu::make_equalizer( -1.0, 80 ); +-Nsf_Emu::equalizer_t const Nsf_Emu::famicom_eq = +- Music_Emu::make_equalizer( -15.0, 80 ); ++Nsf_Emu::equalizer_t const Nsf_Emu::nes_eq ( -1.0, 80 ); ++Nsf_Emu::equalizer_t const Nsf_Emu::famicom_eq ( -15.0, 80 ); + + int Nsf_Emu::pcm_read( void* emu, nes_addr_t addr ) + { +diff --git a/APlayer/Players/GameMusic/libgme/Nsf_Emu.h b/APlayer/Players/GameMusic/libgme/Nsf_Emu.h +index 0b00168..08b987a 100644 +--- a/APlayer/Players/GameMusic/libgme/Nsf_Emu.h ++++ b/APlayer/Players/GameMusic/libgme/Nsf_Emu.h +@@ -44,7 +44,11 @@ public: + + public: + // deprecated +- using Music_Emu::load; ++ #if (!defined(__GNUC__) || (__GNUC__ > 2)) ++ Music_Emu::load; ++ #else ++ blargg_err_t load( Data_Reader& r) {return Music_Emu::load(r);} ++ #endif + blargg_err_t load( header_t const& h, Data_Reader& in ) // use Remaining_Reader + { return load_remaining_( &h, sizeof h, in ); } + +diff --git a/APlayer/Players/GameMusic/libgme/Spc_Emu.h b/APlayer/Players/GameMusic/libgme/Spc_Emu.h +index 09063f1..5f08719 100644 +--- a/APlayer/Players/GameMusic/libgme/Spc_Emu.h ++++ b/APlayer/Players/GameMusic/libgme/Spc_Emu.h +@@ -48,7 +48,9 @@ public: + + public: + // deprecated +- using Music_Emu::load; ++ #if !defined(__GNUC__) || __GNUC__ > 2 ++ Music_Emu::load; ++ #endif + blargg_err_t load( header_t const& h, Data_Reader& in ) // use Remaining_Reader + { return load_remaining_( &h, sizeof h, in ); } + byte const* trailer() const; // use track_info() +diff --git a/APlayer/Players/GameMusic/libgme/Vgm_Emu.cpp b/APlayer/Players/GameMusic/libgme/Vgm_Emu.cpp +index 5c6bc7c..bfc42d8 100644 +--- a/APlayer/Players/GameMusic/libgme/Vgm_Emu.cpp ++++ b/APlayer/Players/GameMusic/libgme/Vgm_Emu.cpp +@@ -35,8 +35,8 @@ Vgm_Emu::Vgm_Emu() + set_voice_types( types ); + + set_silence_lookahead( 1 ); // tracks should already be trimmed +- +- set_equalizer( make_equalizer( -14.0, 80 ) ); ++ static equalizer_t const eq( -14.0, 80 ); ++ set_equalizer( eq); + } + + Vgm_Emu::~Vgm_Emu() { } +diff --git a/APlayer/Players/GameMusic/libgme/Vgm_Emu.h b/APlayer/Players/GameMusic/libgme/Vgm_Emu.h +index 65895af..4a1f778 100644 +--- a/APlayer/Players/GameMusic/libgme/Vgm_Emu.h ++++ b/APlayer/Players/GameMusic/libgme/Vgm_Emu.h +@@ -51,7 +51,9 @@ public: + + public: + // deprecated +- using Music_Emu::load; ++ #if (!defined(__GNUC__) || (__GNUC__ > 2)) ++ Music_Emu::load; ++ #endif + blargg_err_t load( header_t const& h, Data_Reader& in ) // use Remaining_Reader + { return load_remaining_( &h, sizeof h, in ); } + byte const* gd3_data( int* size_out = 0 ) const; // use track_info() +diff --git a/APlayer/Players/GameMusic/libgme/gme.cpp b/APlayer/Players/GameMusic/libgme/gme.cpp +index 4770984..98fee50 100644 +--- a/APlayer/Players/GameMusic/libgme/gme.cpp ++++ b/APlayer/Players/GameMusic/libgme/gme.cpp +@@ -359,9 +359,7 @@ BLARGG_EXPORT void gme_set_equalizer ( Music_Emu* me, gme_equalizer_t cons + + BLARGG_EXPORT void gme_equalizer( Music_Emu const* me, gme_equalizer_t* out ) + { +- gme_equalizer_t e = gme_equalizer_t(); // Default-init all fields to 0.0f +- e.treble = me->equalizer().treble; +- e.bass = me->equalizer().bass; ++ gme_equalizer_t e(me->equalizer().treble, me->equalizer().bass); + *out = e; + } + +diff --git a/APlayer/Players/GameMusic/libgme/gme.h b/APlayer/Players/GameMusic/libgme/gme.h +index 8eb952e..666538e 100644 +--- a/APlayer/Players/GameMusic/libgme/gme.h ++++ b/APlayer/Players/GameMusic/libgme/gme.h +@@ -143,6 +143,8 @@ typedef struct gme_equalizer_t + double bass; /* 1 = full bass, 90 = average, 16000 = almost no bass */ + + double d2,d3,d4,d5,d6,d7,d8,d9; /* reserved */ ++ ++ gme_equalizer_t(double t, double b) {treble = t; bass = b;}; + } gme_equalizer_t; + + /* Get current frequency equalizater parameters */ +diff --git a/Master/Makefile b/Master/Makefile +index 7ac0424..f8ad52f 100644 +--- a/Master/Makefile ++++ b/Master/Makefile +@@ -5,20 +5,20 @@ VERSION := 4.0.1 + #build date is not currently used. + BUILDDATE := $(shell date +%b_%d_%Y) + +-ARCH := $(shell setgcc | cut -d' ' -f3) ++ARCH := $(shell setg++ | cut -d' ' -f3) + OBJDIR := __OBJ_$(ARCH) + DEPDIR := __DEP_$(ARCH) + RULESDIR := __RULES_$(ARCH) + MAKEFILEDIR := makefiles_x86 + +-CC := gcc -c -pipe +-LD := gcc ++CC := g++ -c -pipe ++LD := g++ + + #Dependency generator +-#DEP := gcc -M -DBEOS_BUILD ++#DEP := g++ -M -DBEOS_BUILD + #Ignores system headers. A bit faster, but might give + #small problems if local headers are used with <> insetad of "". +-DEP := gcc -MM -DBEOS_BUILD ++DEP := g++ -MM -DBEOS_BUILD + + BUILD_DEBUG=TRUE + #BUILD_DEBUG=FALSE +diff --git a/Master/makefiles_x86/makefile.APlayer b/Master/makefiles_x86/makefile.APlayer +index 6b93ba8..aa75bb3 100644 +--- a/Master/makefiles_x86/makefile.APlayer ++++ b/Master/makefiles_x86/makefile.APlayer +@@ -20,9 +20,9 @@ $(NAME)_TYPE := APP + $(NAME)_LIBS := $(APLAYER_LIBS) be root + + ifeq ($(findstring gcc2,$(ARCH)),gcc2) +-$(NAME)_LIBS += stdc++.r4 ++$(NAME)_LIBS += stdc++.r4.r4 + else +-$(NAME)_LIBS += stdc++ ++$(NAME)_LIBS += stdc++.r4 + endif + + $(NAME)_RSRCS := $(ROOTDIR)/BeOS/Server_x86.rsrc diff --git a/haiku-apps/aplayer/patches/aplayer_2.patch b/haiku-apps/aplayer/patches/aplayer_2.patch new file mode 100644 index 000000000..6fe4a518c --- /dev/null +++ b/haiku-apps/aplayer/patches/aplayer_2.patch @@ -0,0 +1,34 @@ +diff --git a/APlayer/Players/GameMusic/libgme/Music_Emu.h b/APlayer/Players/GameMusic/libgme/Music_Emu.h +index 0a8bc0a..fd5dbc1 100644 +--- a/APlayer/Players/GameMusic/libgme/Music_Emu.h ++++ b/APlayer/Players/GameMusic/libgme/Music_Emu.h +@@ -107,14 +107,6 @@ public: + + // Set frequency equalizer parameters + void set_equalizer( equalizer_t const& ); +- +- // Construct equalizer of given treble/bass settings +- static const equalizer_t make_equalizer( double treble, double bass ) +- { +- const Music_Emu::equalizer_t e = { treble, bass, +- 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; +- return e; +- } + + // Equalizer settings for TV speaker + static equalizer_t const tv_eq; +diff --git a/APlayer/Players/GameMusic/libgme/Nsfe_Emu.h b/APlayer/Players/GameMusic/libgme/Nsfe_Emu.h +index 32b05d5..880b951 100644 +--- a/APlayer/Players/GameMusic/libgme/Nsfe_Emu.h ++++ b/APlayer/Players/GameMusic/libgme/Nsfe_Emu.h +@@ -46,7 +46,9 @@ public: + public: + // deprecated + struct header_t { char tag [4]; }; +- using Music_Emu::load; ++ #ifdef (!defined(__GNUC__) || (__GNUC__ > 2)) ++ Music_Emu::load; ++ #endif + blargg_err_t load( header_t const& h, Data_Reader& in ) // use Remaining_Reader + { return load_remaining_( &h, sizeof h, in ); } + void disable_playlist( bool = true ); // use clear_playlist() diff --git a/haiku-apps/armyknife/armyknife-4.3.0.recipe b/haiku-apps/armyknife/armyknife-4.3.0.recipe new file mode 100644 index 000000000..7a1f5a111 --- /dev/null +++ b/haiku-apps/armyknife/armyknife-4.3.0.recipe @@ -0,0 +1,47 @@ +SUMMARY="The all-in-one metadata editor for audio files" +DESCRIPTION=" +ArmyKnife is an application that lets you edit the metadata of audio files. +" +HOMEPAGE="https://github.com/HaikuArchives/ArmyKnife" +SRC_URI="git://github.com/HaikuArchives/ArmyKnife.git#67ce56a906" +COPYRIGHT="2000-2001 Jason Burgess" +LICENSE="MIT" +REVISION="1" +ARCHITECTURES="x86_gcc2 !x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 !x86" + +PROVIDES=" + armyknife = $portVersion + app:ArmyKnife = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libtag$secondaryArchSuffix + lib:libsanta$secondaryArchSuffix + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + taglib${secondaryArchSuffix}_devel + libsanta${secondaryArchSuffix}_devel + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:unzip + " + +BUILD() +{ + make $jobArgs +} + +INSTALL() +{ + make zipfile + + mkdir -p $appsDir + unzip release/ArmyKnife-*.zip -d $appsDir + + addAppDeskbarSymlink $appsDir/ArmyKnife/ArmyKnife +} diff --git a/haiku-apps/armyknife/armyknife-61.recipe b/haiku-apps/armyknife/armyknife-61.recipe deleted file mode 100644 index b0628d81b..000000000 --- a/haiku-apps/armyknife/armyknife-61.recipe +++ /dev/null @@ -1,20 +0,0 @@ -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#61" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="media-libs/taglib >= 1.6.3" -#CHECKSUM_MD5="" -BUILD() -{ - cd armyknife-61 - make -} - -INSTALL() -{ - cd armyknife-61 - make zipfile - mkdir -p ${DESTDIR}/boot/apps - unzip release/ArmyKnife-*.zip -d ${DESTDIR}/boot/apps -} diff --git a/haiku-apps/armyknife/armyknife-62.recipe b/haiku-apps/armyknife/armyknife-62.recipe deleted file mode 100644 index b76790c4b..000000000 --- a/haiku-apps/armyknife/armyknife-62.recipe +++ /dev/null @@ -1,20 +0,0 @@ -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-66.recipe b/haiku-apps/armyknife/armyknife-66.recipe deleted file mode 100644 index 471b2c863..000000000 --- a/haiku-apps/armyknife/armyknife-66.recipe +++ /dev/null @@ -1,38 +0,0 @@ -SUMMARY="The all-in-one metadata editor for audio files." -DESCRIPTION="ArmyKnife is an application that lets you edit the metadata of audio files." -HOMEPAGE="http://dev.osdrawer.net/projects/armyknife" -SRC_URI="git://github.com:HaikuArchives/ArmyKnife.git" -COPYRIGHT="2000-2001 Jason Burgess" -LICENSE="MIT" -REVISION="1" -ARCHITECTURES="x86_gcc2 ?x86" - -PROVIDES=" - armyknife = $portVersion - " -REQUIRES=" - haiku >= $haikuVersion - " -BUILD_REQUIRES=" - taglib >= 1.6 - " -BUILD_PREREQUIRED=" - haiku_devel >= $haikuVersion - cmd:gcc - cmd:cmake - cmd:make - " -SOURCE_DIR="$portVersionedName" - -BUILD() -{ - make -} - -INSTALL() -{ - make zipfile - mkdir -p ${DESTDIR}/boot/apps - unzip release/ArmyKnife-*.zip -d ${DESTDIR}/boot/apps -} - diff --git a/haiku-apps/artpaint/artpaint-339.recipe b/haiku-apps/artpaint/artpaint-339.recipe deleted file mode 100644 index 3a80a0bdb..000000000 --- a/haiku-apps/artpaint/artpaint-339.recipe +++ /dev/null @@ -1,20 +0,0 @@ -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="broken" -DEPEND="" -#CHECKSUM_MD5="" -BUILD() -{ - echo "Need to figure out how to build this still" -} - -INSTALL() -{ - echo "Need to figure out how to install this still" -} - -LICENSE="MIT" -COPYRIGHT="2003, Heikki Suhonen - 2008-2009 ArtPaint Maintainers" diff --git a/haiku-apps/backup/backup-0.0.1.recipe b/haiku-apps/backup/backup-0.0.1.recipe new file mode 100644 index 000000000..841dd9abb --- /dev/null +++ b/haiku-apps/backup/backup-0.0.1.recipe @@ -0,0 +1,42 @@ +SUMMARY="A backup application for Haiku" +DESCRIPTION=" +A backup application for Haiku. +" +COPYRIGHT="2013 Alexander von Gluck IV" +LICENSE="MIT" +HOMEPAGE="https://github.com/kallisti5/backup" +SRC_URI="git+https://github.com/kallisti5/backup#34e156f64d" +REVISION="2" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + backup = $portVersion + app:backup = $portVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc + cmd:make + cmd:mkdepend + " + +PATCHES="backup-0.0.1.patch" + +BUILD() +{ + make OBJ_DIR=objects \ + BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` +} + +INSTALL() +{ + mkdir -p $appsDir + cp objects/backup $appsDir/Backup + addAppDeskbarSymlink $appsDir/Backup +} diff --git a/haiku-apps/backup/patches/backup-0.0.1.patch b/haiku-apps/backup/patches/backup-0.0.1.patch new file mode 100644 index 000000000..fd90d8a98 --- /dev/null +++ b/haiku-apps/backup/patches/backup-0.0.1.patch @@ -0,0 +1,12 @@ +diff -Naur backup/BackupView.cpp backup-fix/BackupView.cpp +--- backup/BackupView.cpp 2013-11-18 21:15:38.949223424 +0000 ++++ backup-fix/BackupView.cpp 2013-11-18 21:15:33.142344192 +0000 +@@ -120,7 +120,7 @@ + + // Refresh System Directory + BPath sysSettingsDirectory; +- find_directory(B_COMMON_SETTINGS_DIRECTORY, &sysSettingsDirectory); ++ find_directory(B_SYSTEM_SETTINGS_DIRECTORY, &sysSettingsDirectory); + fSysSettingBytes = DirectorySize(&sysSettingsDirectory); + size_to_string(fSysSettingBytes, sizeText, 512); + fSysSettingSizeText->SetText(sizeText); diff --git a/haiku-apps/bafx/bafx-0.0.1.recipe b/haiku-apps/bafx/bafx-0.0.1.recipe new file mode 100644 index 000000000..41a4dda7f --- /dev/null +++ b/haiku-apps/bafx/bafx-0.0.1.recipe @@ -0,0 +1,41 @@ +SUMMARY="A file manager for Haiku." +DESCRIPTION=" +BAfx is a file manager for Haiku. +" +HOMEPAGE="https://github.com/marbocub/BAfx" +SRC_URI="git+https://github.com/marbocub/BAfx#4b14a8ba4c" +COPYRIGHT="2012 @marbocub" +LICENSE="MIT" +REVISION="2" +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + bafx = $portVersion + app:bafx = $portVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc + cmd:make + cmd:mkdepend + " + +PATCHES="bafx-0.0.1.patchset" + +BUILD() +{ + make OBJ_DIR=objects \ + BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` +} + +INSTALL() +{ + mkdir -p $appsDir + cp -a objects/BAfx $appsDir + addAppDeskbarSymlink $appsDir/BAfx +} diff --git a/haiku-apps/bafx/patches/bafx-0.0.1.patchset b/haiku-apps/bafx/patches/bafx-0.0.1.patchset new file mode 100644 index 000000000..f5c0c7ee4 --- /dev/null +++ b/haiku-apps/bafx/patches/bafx-0.0.1.patchset @@ -0,0 +1,22 @@ +From 7c5605074b639c6daa54275d1ced9720555da3d1 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Mon, 2 Dec 2013 17:37:11 -0700 +Subject: Fix makefile stdc++ libs + + +diff --git a/Makefile b/Makefile +index 6f14782..50893a9 100755 +--- a/Makefile ++++ b/Makefile +@@ -56,7 +56,7 @@ RSRCS= + # naming scheme you need to specify the path to the library + # and it's name + # library: my_lib.a entry: my_lib.a or path/my_lib.a +-LIBS= be ++LIBS= be $(STDCPPLIBS) + + # specify additional paths to directories following the standard + # libXXX.so or libXXX.a naming scheme. You can specify full paths +-- +1.8.3.4 + diff --git a/haiku-apps/bdhcalc/bdhcalc-1.1.recipe b/haiku-apps/bdhcalc/bdhcalc-1.1.recipe new file mode 100644 index 000000000..552321b93 --- /dev/null +++ b/haiku-apps/bdhcalc/bdhcalc-1.1.recipe @@ -0,0 +1,47 @@ +SUMMARY="Fully functunal 64bit calculator" +DESCRIPTION=" +BDH Calc is a fully functional 64bit calculator, supporting common arithmetic \ +operations like adding, subtracting, dividing and multiplying as well as \ +bitwise operators. You can choose the word size and whether the sign is \ +considered to simulate any integral data type. Moreover the calculator \ +supports binary, decimal and hexadecimal conversion. +" +HOMEPAGE="http://haikuware.com/directory/view-details/science-math/calculators/bdh-calc-for-haiku" +SRC_URI="git://github.com/ThomasCompix/BDH-Calc.git#4a6865932ae0e95244ed0149b6e8c4f437ea742a" +REVISION="1" +LICENSE="Undetermined" +COPYRIGHT="1999 Scott Hammond" + +ARCHITECTURES="x86 x86_gcc2 !ppc" + +PROVIDES=" + bdhcalc = $portVersion + app:bdhcalc = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:gcc + " + +BUILD() +{ + g++ -c src/bdh_main.cpp -o bdh_main.o + g++ -c src/bdh_view.cpp -o bdh_view.o + g++ -lbe bdh_main.o bdh_view.o -o bdhcalc + xres -o bdhcalc Ressources/bdh.rsrc + mimeset -f bdhcalc +} + +INSTALL() +{ + mkdir -p $appsDir + mv bdhcalc $appsDir/bdhcalc + addAppDeskbarSymlink $appsDir/bdhcalc "BDH Calc" +} diff --git a/haiku-apps/beae/beae-1.2.recipe b/haiku-apps/beae/beae-1.2.recipe new file mode 100644 index 000000000..a450f3119 --- /dev/null +++ b/haiku-apps/beae/beae-1.2.recipe @@ -0,0 +1,48 @@ +SUMMARY="Well featured audio editor for Haiku" +DESCRIPTION=" +BeAE is an audio editor for Haiku, with features like silencing, fading \ +in/out, analyzing etc. +" +HOMEPAGE="http://developer.berlios.de/projects/beae" +SRC_URI="git+https://github.com/HaikuArchives/BeAE.git#b4e8a39e0d" +REVISION="1" +COPYRIGHT="2003 Xentronix" +LICENSE="BSD (3-clause)" + +ARCHITECTURES="x86_gcc2 !x86 ?x86_64" +SECONDARY_ARCHITECTURES="!x86" + +PROVIDES=" + beae = $portVersion + app:beae = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:make + cmd:cmake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + " + +BUILD() +{ + cmake . + make +} + +INSTALL() +{ + mkdir -p $appsDir/BeAE + + cd build + mv * $appsDir/BeAE + addAppDeskbarSymlink $appsDir/BeAE/BeAE +} diff --git a/haiku-apps/beae/beae-20.recipe b/haiku-apps/beae/beae-20.recipe deleted file mode 100644 index e8e81f9f3..000000000 --- a/haiku-apps/beae/beae-20.recipe +++ /dev/null @@ -1,29 +0,0 @@ -DESCRIPTION="BeAE - Audio Editor" -HOMEPAGE="http://beae.berlios.de/" -SRC_URI="svn+http://svn.berlios.de/svnroot/repos/beae/trunk#20" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="dev-util/cmake >= 2.8.0" -#CHECKSUM_MD5="" -BUILD() -{ - cd beae-20 - cmake . - make -} - -INSTALL() -{ - cd beae-20 - 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="BeAE" -COPYRIGHT="2003 Xentronix" diff --git a/haiku-apps/beae/beae-22.recipe b/haiku-apps/beae/beae-22.recipe deleted file mode 100644 index 925c91399..000000000 --- a/haiku-apps/beae/beae-22.recipe +++ /dev/null @@ -1,29 +0,0 @@ -DESCRIPTION="BeAE - Audio Editor" -HOMEPAGE="http://beae.berlios.de/" -SRC_URI="svn+http://svn.berlios.de/svnroot/repos/beae/trunk#22" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="dev-util/cmake >= 2.8.0" -#CHECKSUM_MD5="" -BUILD() -{ - cd beae-22 - cmake . - make -} - -INSTALL() -{ - cd beae-22 - 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/beae/beae-25.recipe b/haiku-apps/beae/beae-25.recipe deleted file mode 100644 index 6eed421f7..000000000 --- a/haiku-apps/beae/beae-25.recipe +++ /dev/null @@ -1,29 +0,0 @@ -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.recipe b/haiku-apps/beam/beam-1.2alpha.recipe index 7688305c8..c49195fbc 100644 --- a/haiku-apps/beam/beam-1.2alpha.recipe +++ b/haiku-apps/beam/beam-1.2alpha.recipe @@ -1,8 +1,8 @@ SUMMARY="An e-mail client." HOMEPAGE="http://beam.sourceforge.net" SRC_URI="git://beam.git.sourceforge.net/gitroot/beam/beam" -REVISION="1" -ARCHITECTURES="x86_gcc2" +REVISION="3" +ARCHITECTURES="x86_gcc2 x86" PROVIDES=" beam = $portVersion " @@ -24,9 +24,12 @@ BUILD_PREREQUIRES=" cmd:bison cmd:flex " + +PATCHES="beam-1.2alpha.patchset" + BUILD() { - jam -q -j$jobArgs + jam -q $jobArgs } INSTALL() @@ -39,10 +42,12 @@ INSTALL() cd ${appsDir}/Beam/tools ln -s ../lib . ln -s ../add-ons . + + addAppDeskbarSymlink ${appsDir}/Beam/Beam } LICENSE="GNU GPL v2" COPYRIGHT="2000-2012 Oliver Tappe" DESCRIPTION=" -Beam (BEware, Another Mailer) is an open source e-mail client for BeOS (R5 and +Beam (BEware, Another Mailer) is an open source e-mail client for BeOS (R5 and \ onwards) that aims to be fast, stable and feature-complete. " diff --git a/haiku-apps/beam/patches/beam-1.2alpha.patchset b/haiku-apps/beam/patches/beam-1.2alpha.patchset new file mode 100644 index 000000000..5ac3ffe2d --- /dev/null +++ b/haiku-apps/beam/patches/beam-1.2alpha.patchset @@ -0,0 +1,22 @@ +From 6545d15dfc53594f4141047bf4c84d55cfccda6d Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Thu, 14 Nov 2013 02:12:56 -0700 +Subject: Adjust search path for libbnetapi + + +diff --git a/build-jam/BuildSettings b/build-jam/BuildSettings +index d411b68..4874ac6 100644 +--- a/build-jam/BuildSettings ++++ b/build-jam/BuildSettings +@@ -44,7 +44,7 @@ if $(OSPLAT) = X86 { + PLATFORM = zeta ; + } + # check for libbnetapi... +- local haveLibbnetapi = [ GLOB /boot/develop/lib/x86 : libbnetapi.so ] ; ++ local haveLibbnetapi = [ GLOB /boot/system/develop/lib : libbnetapi.so ] ; + if $(haveLibbnetapi) { + LIBNETAPI = bnetapi ; + } +-- +1.8.3.4 + diff --git a/haiku-apps/becasso/becasso-2.0.recipe b/haiku-apps/becasso/becasso-2.0.recipe new file mode 100644 index 000000000..38c3b0905 --- /dev/null +++ b/haiku-apps/becasso/becasso-2.0.recipe @@ -0,0 +1,50 @@ +SUMMARY="Paint and imaging software for Haiku" +DESCRIPTION=" +BeCasso - Paint and imaging software for Haiku, originally written for BeOS by \ +Sum Software. +" +HOMEPAGE="https://github.com/orangejua/Becasso" +SRC_URI="git+https://github.com/orangejua/Becasso" +REVISION="1" + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + becasso = $portVersion + app:becasso = $portVersion" + +BUILD_PREREQUIRES=" + cmd:nasm + cmd:gcc + cmd:jam" + +BUILD_REQUIRES=" + haiku >= $haikuVersion + haiku_devel >= $haikuVersion + devel:libz" + +USER_SETTINGS_FILES=" + settings/Becasso directory" + +COPYRIGHT=" + 1997-2003 Sum Software + 2013 Julian Harnath " + +LICENSE="MIT" + +BUILD() +{ + jam -q +} + +INSTALL() +{ + jam install + + beCassoDir=$appsDir/BeCasso + mkdir -p $beCassoDir + + cp -R target/* $beCassoDir + + addAppDeskbarSymlink $beCassoDir/Becasso +} diff --git a/haiku-apps/beezer/beezer-0.99.hg.recipe b/haiku-apps/beezer/beezer-0.99.hg.recipe new file mode 100644 index 000000000..3256f108e --- /dev/null +++ b/haiku-apps/beezer/beezer-0.99.hg.recipe @@ -0,0 +1,60 @@ +SUMMARY="An archive manager for Haiku, similar to winzip" +DESCRIPTION=" +Beezer is an archive manager for Haiku. It can extract and browse, create and \ +add to archive files. In addition, Beezer can split and rejoin files. +It can extract 7zip, arj, bzip2, gzip, lha, rar, tar, xz and zip files. +It can create 7zip, bzip2, gzip, tar and zip files. +" +HOMEPAGE="https://bitbucket.org/cpr/beezer" +SRC_URI="hg+https://bitbucket.org/cpr/beezer" +LICENSE="BSD (3-clause)" +COPYRIGHT=" + 2009 Ramshankar (aka Teknomancer) + 2011-2012 Chris Roberts + " +REVISION="2" +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + beezer = $portVersion + app:beezer = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:cmake >= 2.8 + cmd:gcc + cmd:make + " + +PATCHES=" + beezer-0.99.hg.patch + " + +BUILD() +{ + cd Source + cmake . + make $jobArgs +} + +INSTALL() +{ + cd Source/build + + mkdir -p $appsDir/Beezer + cp Beezer $appsDir/Beezer + cp -a add-ons $appsDir/Beezer + cp -a ../Beezer/docs $appsDir/Beezer + addAppDeskbarSymlink $appsDir/Beezer/Beezer + + mkdir -p $addOnsDir/Tracker + cp -a TrackerAddOn/BeezerAddOn $addOnsDir/Tracker +} diff --git a/haiku-apps/beezer/beezer-1.recipe b/haiku-apps/beezer/beezer-1.recipe deleted file mode 100644 index 7b9dbb02f..000000000 --- a/haiku-apps/beezer/beezer-1.recipe +++ /dev/null @@ -1,28 +0,0 @@ -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/beezer/patches/beezer-0.99.hg.patch b/haiku-apps/beezer/patches/beezer-0.99.hg.patch new file mode 100644 index 000000000..638f8e7e2 --- /dev/null +++ b/haiku-apps/beezer/patches/beezer-0.99.hg.patch @@ -0,0 +1,57 @@ +From 3728835e4083c862c9b03dd5ffdb5941f34f9da5 Mon Sep 17 00:00:00 2001 +From: Luke +Date: Sun, 1 Dec 2013 12:22:29 +0000 +Subject: [PATCH] Remove references to B_COMMON_ + +--- + Source/Archiver/Archiver.cpp | 13 +------------ + Source/Beezer/FSUtils/FSUtils.cpp | 2 +- + 2 files changed, 2 insertions(+), 13 deletions(-) + +diff --git a/Source/Archiver/Archiver.cpp b/Source/Archiver/Archiver.cpp +index c272333..7b57313 100644 +--- a/Source/Archiver/Archiver.cpp ++++ b/Source/Archiver/Archiver.cpp +@@ -625,7 +625,7 @@ status_t Archiver::SetComment(char* commentStr, const char* tempDirPath) + bool Archiver::IsBinaryFound(char* filePath, const char* fileName) const + { + // Check if the given fileName exists in the given dir, if so copy the full path of fileName to filePath +- // Path priority /workers -> B_SYSTEM_BIN_DIRECTORY -> B_COMMON_BIN_DIRECTORY ++ // Path priority /workers -> B_SYSTEM_BIN_DIRECTORY + BPath binPath; + app_info appInfo; + be_app->GetAppInfo(&appInfo); +@@ -652,17 +652,6 @@ bool Archiver::IsBinaryFound(char* filePath, const char* fileName) const + } + } + +- if (find_directory(B_COMMON_BIN_DIRECTORY, &binPath) == B_OK) +- { +- binPath.Append(fileName); +- BEntry entry(binPath.Path(), true); +- if (entry.Exists()) +- { +- strcpy(filePath, binPath.Path()); +- return true; +- } +- } +- + // TODO full search of $PATH + + filePath = '\0'; +diff --git a/Source/Beezer/FSUtils/FSUtils.cpp b/Source/Beezer/FSUtils/FSUtils.cpp +index a651c58..8fbb01d 100644 +--- a/Source/Beezer/FSUtils/FSUtils.cpp ++++ b/Source/Beezer/FSUtils/FSUtils.cpp +@@ -177,7 +177,7 @@ BString CreateTempDirectory(const char* prefix, BDirectory** createdDir, bool cr + prefixStr << prefix << "_"; + + BPath tmpPath; +- find_directory(B_COMMON_TEMP_DIRECTORY, &tmpPath, true); ++ find_directory(B_SYSTEM_TEMP_DIRECTORY, &tmpPath, true); + BString tempDirName = tempnam(const_cast(tmpPath.Path()), const_cast(prefixStr.String())); + + // Further random the dir name (the below number is a prime) +-- +1.8.3.4 + diff --git a/haiku-apps/beget/beget-1.2.3.recipe b/haiku-apps/beget/beget-1.2.3.recipe index be90a33de..3b43424b7 100644 --- a/haiku-apps/beget/beget-1.2.3.recipe +++ b/haiku-apps/beget/beget-1.2.3.recipe @@ -1,26 +1,48 @@ -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" +SUMMARY="A GUI frontend to the command-line downloader wget" +DESCRIPTION=" +BeGet is a easy-to-use download manager for the popular command line tool \ +wget. BeGet can also accept more than one link at the same time. BeGet saves \ +your downloaded files to /home/Downloads +" +HOMEPAGE="http://github.com/HaikuArchives/BeGet" +SRC_URI="git://github.com/HaikuArchives/BeGet#fe8db7ccb6" +REVISION="3" +LICENSE="GNU GPL v2" +COPYRIGHT="1999-2001 Atsushi Takamatsu" + +ARCHITECTURES="x86_gcc2 !x86 !x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 !x86 !x86_64" + +PROVIDES=" + beget = $portVersion + app:beget = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + cmd:wget$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:cmake + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + " 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 + mkdir -p $appsDir + cp BeGet $appsDir + addAppDeskbarSymlink $appsDir/BeGet } - -LICENSE="GNU GPL v2" -COPYRIGHT="1999-2001 Atsushi Takamatsu" diff --git a/haiku-apps/behappy/behappy-1.06e_git.recipe b/haiku-apps/behappy/behappy-1.06e_git.recipe new file mode 100644 index 000000000..3a1c4f0a9 --- /dev/null +++ b/haiku-apps/behappy/behappy-1.06e_git.recipe @@ -0,0 +1,47 @@ +SUMMARY="An HTML documentation viewer" +DESCRIPTION=" +HTML documentation viewer +" +HOMEPAGE="http://www.becoz.org/beos-en/behappy" +SRC_URI="git+https://github.com/HaikuArchives/BeHappy.git" +REVISION="1" +#CHECKSUM_MD5="" +LICENSE="MIT" +COPYRIGHT="2006 Sylvain Tertois + 2008-2009 François Revol" + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + behappy = $portVersion + app:behappy = $portVersion +" +REQUIRES=" + haiku >= $haikuVersion +# app:netsurf >= 2.6 +" +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion +" +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc + cmd:make + cmd:mkdepend + cmd:ld +" + + +BUILD() +{ + cd trunk + make BUILDHOME=/system/develop +} + +INSTALL() +{ + cd trunk + make install BUILDHOME=/system/develop + addAppDeskbarSymlink $appsDir/BeHappy/BeHappy +} + diff --git a/haiku-apps/beindexed/beindexed-0.2.0_alpha.recipe b/haiku-apps/beindexed/beindexed-0.2.0_alpha.recipe new file mode 100644 index 000000000..fe19629d4 --- /dev/null +++ b/haiku-apps/beindexed/beindexed-0.2.0_alpha.recipe @@ -0,0 +1,64 @@ +SUMMARY="Search through your files with ease!" +DESCRIPTION=" +BeIndexed searches all your files and builds a database with their content. \ +You can then search for files by content, like on Google etc. Index files with \ +Indexer, Find files with Finder. +" +HOMEPAGE="https://github.com/HaikuArchives/BeIndexed" #Or web.archive.org and eiman.tv/BeIndexed +SRC_URI="git://github.com/HaikuArchives/BeIndexed.git#4bbd3e9709d7288ffefbc215ab41a152a24a2276" + +REVISION="1" + +LICENSE="BSD (3-clause)" +COPYRIGHT="2003 Mikael Eiman" + +ARCHITECTURES="x86_gcc2 x86" + + +PROVIDES=" + beindexed = $portVersion + app:Finder = $portVersion + cmd:Indexer = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + lib:libsqlite3 + lib:liblayout + " + +BUILD_PREREQUIRES=" + makefile_engine + cmd:g++ + cmd:xres + cmd:make + cmd:mkdepend + " + +BUILD_REQUIRES=" + makefile_engine + haiku_devel >= $haikuVersion + devel:libsqlite3 + devel:liblayout + " + +USER_SETTINGS_FILES=" + data/BeIndexed directory + " + +BUILD() +{ + mkdir bin || true + make +} + +INSTALL() +{ + mkdir -p $binDir + mkdir -p $appsDir + + cp bin/Indexer $binDir + cp bin/Finder $appsDir + + addAppDeskbarSymlink $appsDir/Finder +} diff --git a/haiku-apps/belife/belife-1.0.0.recipe b/haiku-apps/belife/belife-1.0.0.recipe new file mode 100644 index 000000000..d5934879a --- /dev/null +++ b/haiku-apps/belife/belife-1.0.0.recipe @@ -0,0 +1,48 @@ +SUMMARY="An app to play the game of life" +DESCRIPTION=" +The Game of Life is not a game in the conventional sense. There are no \ +players, and no winning or losing. Once the \"pieces\" are placed in the \ +starting position, the rules determine everything that happens later. \ +Nevertheless, Life is full of surprises! In most cases, it is impossible to \ +look at a starting position (or pattern) and see what will happen in the \ +future. The only way to find out is to follow the rules of the game. +" +HOMEPAGE="https://github.com/HaikuArchives/BeLife" +SRC_URI="git://github.com/HaikuArchives/BeLife.git#aa35a935e55e9ee17fbb9d414534ba79798a95a1" +REVISION="1" +LICENSE="BeLife License" +COPYRIGHT="2006 Studio-33" + +ARCHITECTURES="x86 x86_gcc2" + +PROVIDES=" + belife = $portVersion + app:belife = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_PREREQUIRES=" + makefile_engine + cmd:g++ + cmd:make + cmd:mkdepend + cmd:xres + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD() +{ + cd src + make +} + +INSTALL() +{ + cd src + make install INSTALL_DIR=$appsDir/BeLife + addAppDeskbarSymlink $appsDir/BeLife/BeLife + cp ../readme $appsDir/BeLife +} diff --git a/haiku-apps/belife/licenses/BeLife License b/haiku-apps/belife/licenses/BeLife License new file mode 100644 index 000000000..3389defc2 --- /dev/null +++ b/haiku-apps/belife/licenses/BeLife License @@ -0,0 +1 @@ +Copyright 2006 Studio-33, All Rights Reserved. diff --git a/haiku-apps/bepdf/bepdf-1.1.1~beta5_2013_04_28.recipe b/haiku-apps/bepdf/bepdf-1.1.1~beta5_2013_04_28.recipe index 7c3e64e4b..9b9a6f314 100644 --- a/haiku-apps/bepdf/bepdf-1.1.1~beta5_2013_04_28.recipe +++ b/haiku-apps/bepdf/bepdf-1.1.1~beta5_2013_04_28.recipe @@ -1,11 +1,10 @@ SUMMARY="A PDF viewer" DESCRIPTION=" - BePDF is a PDF viewer for the BeOS, Haiku & Zeta. - - Besides viewing, it supports annotating and user-defined bookmarking for - unencrypted PDFs. It's fully localized for 20 languages at the moment - with additional languages being easily added via text files. - " +BePDF is a PDF viewer for the BeOS, Haiku & Zeta. +Besides viewing, it supports annotating and user-defined bookmarking for \ +unencrypted PDFs. It's fully localized for 20 languages at the moment with \ +additional languages being easily added via text files. +" HOMEPAGE="http://bepdf.sourceforge.net/" SRC_URI="cvs://:pserver:anonymous@bepdf.cvs.sourceforge.net:/cvsroot/bepdf/BePDF#04/28/13" COPYRIGHT=" @@ -13,20 +12,25 @@ COPYRIGHT=" 1999-2000 Hubert Figuiere 2000-2010 Michael Pfeiffer" LICENSE="GNU GPL v2" -REVISION="1" +REVISION="2" ARCHITECTURES="x86_gcc2 x86" PROVIDES=" bepdf = $portVersion - cmd:BePDF = $portVersion + app:BePDF = $portVersion " + REQUIRES=" haiku >= $haikuVersion + lib:liblayout " + BUILD_REQUIRES=" - " -BUILD_PREREQUIRES=" haiku_devel >= $haikuVersion + devel:liblayout + " + +BUILD_PREREQUIRES=" cmd:gcc cmd:jam cmd:htmldoc @@ -34,7 +38,14 @@ BUILD_PREREQUIRES=" cmd:sed " -SOURCE_DIR="$portVersionedName" +PATCHES="bepdf-1.1.1~beta5_2013_04_28.patchset" + +PATCH() +{ + if [ "$targetArchitecture" = x86 ];then + sed -i 's/stdc++.r4/stdc++/' bepdf/Jamfile + fi +} BUILD() { @@ -55,6 +66,7 @@ INSTALL() fi mkdir -p $appsDir rm -f generated/$bepdfArch/*Deskbar + rm -rf generated/$bepdfArch/lib cp -dR generated/$bepdfArch $appsDir/BePDF addAppDeskbarSymlink $appsDir/BePDF/BePDF diff --git a/haiku-apps/bepdf/patches/bepdf-1.1.1~beta5_2013_04_28.patchset b/haiku-apps/bepdf/patches/bepdf-1.1.1~beta5_2013_04_28.patchset new file mode 100644 index 000000000..7844e77fc --- /dev/null +++ b/haiku-apps/bepdf/patches/bepdf-1.1.1~beta5_2013_04_28.patchset @@ -0,0 +1,103 @@ +From a586ff65e3d422ed194b89fc2a9e1be205d613cc Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Tue, 12 Nov 2013 15:17:24 -0700 +Subject: Change COMMON font dirs to USER and add non-packaged entries + + +diff --git a/bepdf/beos/PreferencesWindow.cpp b/bepdf/beos/PreferencesWindow.cpp +index 7f8aa37..309e5ef 100644 +--- a/bepdf/beos/PreferencesWindow.cpp ++++ b/bepdf/beos/PreferencesWindow.cpp +@@ -263,8 +263,10 @@ DisplayCIDFonts::Type PreferencesWindow::GetType(const char* file) { + } + + void PreferencesWindow::FillFontFileMenu(BMenuField* menuField, const char* name, const char* file) { +- FillFontFileMenu(menuField, B_BEOS_FONTS_DIRECTORY, TRANSLATE("System Fonts"), name, file); +- FillFontFileMenu(menuField, B_COMMON_FONTS_DIRECTORY, TRANSLATE("Common Fonts"), name, file); ++ FillFontFileMenu(menuField, B_SYSTEM_FONTS_DIRECTORY, TRANSLATE("System Fonts"), name, file); ++ FillFontFileMenu(menuField, B_USER_FONTS_DIRECTORY, TRANSLATE("User Fonts"), name, file); ++ FillFontFileMenu(menuField, B_SYSTEM_NONPACKAGED_FONTS_DIRECTORY, TRANSLATE("System Fonts"), name, file); ++ FillFontFileMenu(menuField, B_USER_NONPACKAGED_FONTS_DIRECTORY, TRANSLATE("User Fonts"), name, file); + // B_USER_FONTS_DIRECTORY is same as B_COMMON_FONTS_DIRECTORY in + // BeOS R5 + // FillFontFileMenu(menu, B_USER_FONTS_DIRECTORY, TRANSLATE("User Fonts"), name, file); +-- +1.8.3.4 + + +From cd1c88d6110d6721107c374d176220f7a9a77277 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Tue, 12 Nov 2013 15:50:24 -0700 +Subject: Add -fpermissive to the compile flags + + +diff --git a/bepdf/Jamfile b/bepdf/Jamfile +index a672bdb..6b24096 100644 +--- a/bepdf/Jamfile ++++ b/bepdf/Jamfile +@@ -193,7 +193,7 @@ SYMBOLS = ; + # DEBUGGER = ; + + # Specify additional compiler flags for all files +-COMPILER_FLAGS = -Wno-write-strings ; ++COMPILER_FLAGS = -Wno-write-strings -fpermissive ; + + # Specify additional linker flags + LINKER_FLAGS = ; +-- +1.8.3.4 + + +From 896408ce30fad08237400ba8a07fba9d59c35c2b Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Tue, 12 Nov 2013 15:57:40 -0700 +Subject: Adjust liblayout directories/flags + + +diff --git a/bepdf/Jamfile b/bepdf/Jamfile +index 6b24096..a1412bf 100644 +--- a/bepdf/Jamfile ++++ b/bepdf/Jamfile +@@ -113,7 +113,7 @@ translation + # additional libraries + ../xpdf/obj.X86/libxpdf.a + ../freetype2/objs/libfreetype.a +-../layout/lib/liblayout.so ++layout + ../santa/obj.X86/libsanta.a + ; + +@@ -131,8 +131,6 @@ LIBPATHS = + # source file directories are NOT auto-included here + SYSTEM_INCLUDE_PATHS = + +-../layout/headers +- + ../santa + ../santa/BetterScrollView + ../santa/ColumnListView +-- +1.8.3.4 + + +From 6b76eae819fbb2bd68612c8596245ef3b5b68b40 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Tue, 12 Nov 2013 16:16:02 -0700 +Subject: Add liblayout to the include search path + + +diff --git a/bepdf/Jamfile b/bepdf/Jamfile +index a1412bf..530be70 100644 +--- a/bepdf/Jamfile ++++ b/bepdf/Jamfile +@@ -130,6 +130,7 @@ LIBPATHS = + # These use the form: #include
+ # source file directories are NOT auto-included here + SYSTEM_INCLUDE_PATHS = ++/boot/system/develop/headers/liblayout + + ../santa + ../santa/BetterScrollView +-- +1.8.3.4 + diff --git a/haiku-apps/bescreencapture/bescreencapture-1.9.2.recipe b/haiku-apps/bescreencapture/bescreencapture-1.9.2.recipe new file mode 100644 index 000000000..573b37ebc --- /dev/null +++ b/haiku-apps/bescreencapture/bescreencapture-1.9.2.recipe @@ -0,0 +1,50 @@ +SUMMARY="A screen recorder utility" +DESCRIPTION=" +BeScreenCapture, created by Stefano Ceccherini, is a screen recorder utility \ +for Haiku. It allows you to record what happens on your screen, then save it \ +to any media format that Haiku supports. +BeScreenCapture can record either the entire screen, or just a section you \ +select. +" +HOMEPAGE="https://github.com/jackburton79/bescreencapture" +SRC_URI="git://github.com/jackburton79/bescreencapture.git#fb7de7c5dec3768509072e3f3ee2a433bc9285bb" +LICENSE=" + BSD (3-clause) + MIT + " +COPYRIGHT="2013 Stefano Ceccherini" +REVISION="2" +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + bescreencapture = $portVersion + app:bescreencapture = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + makefile_engine + cmd:make + cmd:gcc + cmd:mkdepend + " + +BUILD() +{ + make OBJ_DIR=objects \ + BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` +} + +INSTALL() +{ + mkdir -p $appsDir + cp -a objects/BeScreenCapture $appsDir + addAppDeskbarSymlink $appsDir/BeScreenCapture +} diff --git a/haiku-apps/bescreencapture/bescreencapture-1.9.3.recipe b/haiku-apps/bescreencapture/bescreencapture-1.9.3.recipe new file mode 100644 index 000000000..67349650d --- /dev/null +++ b/haiku-apps/bescreencapture/bescreencapture-1.9.3.recipe @@ -0,0 +1,52 @@ +SUMMARY="A screen recorder utility" +DESCRIPTION=" +BeScreenCapture, created by Stefano Ceccherini, is a screen recorder utility \ +for Haiku. It allows you to record what happens on your screen, then save it \ +to any media format that Haiku supports. +BeScreenCapture can record either the entire screen, or just a section you \ +select. +" +HOMEPAGE="https://github.com/jackburton79/bescreencapture" +SRC_URI="https://github.com/jackburton79/bescreencapture/archive/v1.9.3.tar.gz" +CHECKSUM_SHA256="02e0a4657161e1cf4c9470d0693b3bd4521b7e001ea7d493c9730ec7315a1a79" +SRC_FILENAME="bescreencapture-1.9.3.tar.gz" +LICENSE=" + BSD (3-clause) + MIT + " +COPYRIGHT="2013 Stefano Ceccherini" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + bescreencapture = $portVersion + app:bescreencapture = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + makefile_engine + cmd:make + cmd:gcc + cmd:mkdepend + " + +BUILD() +{ + make OBJ_DIR=objects \ + BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` +} + +INSTALL() +{ + mkdir -p $appsDir + cp -a objects/BeScreenCapture $appsDir + addAppDeskbarSymlink $appsDir/BeScreenCapture +} diff --git a/haiku-apps/bescreencapture/bescreencapture-1.9.4.recipe b/haiku-apps/bescreencapture/bescreencapture-1.9.4.recipe new file mode 100644 index 000000000..26ab91618 --- /dev/null +++ b/haiku-apps/bescreencapture/bescreencapture-1.9.4.recipe @@ -0,0 +1,52 @@ +SUMMARY="A screen recorder utility" +DESCRIPTION=" +BeScreenCapture, created by Stefano Ceccherini, is a screen recorder utility \ +for Haiku. It allows you to record what happens on your screen, then save it \ +to any media format that Haiku supports. +BeScreenCapture can record either the entire screen, or just a section you \ +select. +" +HOMEPAGE="https://github.com/jackburton79/bescreencapture" +SRC_URI="https://github.com/jackburton79/bescreencapture/archive/v1.9.4.tar.gz" +CHECKSUM_SHA256="c1f8d6230feb965cda03d01998b4953f4be34fbcc3d0735c6d0039fa5905bc8c" +SRC_FILENAME="bescreencapture-1.9.4.tar.gz" +LICENSE=" + BSD (3-clause) + MIT + " +COPYRIGHT="2014 Stefano Ceccherini" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + bescreencapture = $portVersion + app:bescreencapture = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + makefile_engine + cmd:make + cmd:gcc + cmd:mkdepend + " + +BUILD() +{ + make OBJ_DIR=objects \ + BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` +} + +INSTALL() +{ + mkdir -p $appsDir + cp -a objects/BeScreenCapture $appsDir + addAppDeskbarSymlink $appsDir/BeScreenCapture +} diff --git a/haiku-apps/binary_clock/binary_clock-2.0.recipe b/haiku-apps/binary_clock/binary_clock-2.0.recipe new file mode 100644 index 000000000..47a38e20e --- /dev/null +++ b/haiku-apps/binary_clock/binary_clock-2.0.recipe @@ -0,0 +1,51 @@ +SUMMARY="A binary clock application and screensaver" +DESCRIPTION=" +A Binary Clock. And yes, you really can use this to tell time! I have found it \ +quite enjoyable to reprogram my brain to learn to read it at a glance. It just \ +takes a little getting used to. +" +HOMEPAGE="http://github.com/HaikuArchives/BinaryClock" +SRC_URI="git://github.com/HaikuArchives/BinaryClock#5d04da1137" +REVISION="2" +LICENSE="GNU GPL v2" +COPYRIGHT="2000 David Enderson" + +ARCHITECTURES="x86_gcc2 !x86 !x86_64" + +PROVIDES=" + app:binary_clock = $portVersion + binary_clock = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:make + cmd:gcc + cmd:ld + " + +USER_SETTINGS_FILES=" + settings/BinaryClock_2.xx + " + +BUILD() +{ + cd Application + g++ -o BinaryClock *.cpp -lbe -ltranslation + xres -o BinaryClock BinaryClock.rsrc + mimeset -f BinaryClock +} + +INSTALL() +{ + mkdir -p $appsDir + cp Application/BinaryClock $appsDir + addAppDeskbarSymlink $appsDir/BinaryClock "Binary Clock" +} diff --git a/haiku-apps/blogpositive/blogpositive-0.1.0.recipe b/haiku-apps/blogpositive/blogpositive-0.1.0.recipe new file mode 100644 index 000000000..1c8f94142 --- /dev/null +++ b/haiku-apps/blogpositive/blogpositive-0.1.0.recipe @@ -0,0 +1,51 @@ +SUMMARY="The one blog app to rule them all!" +DESCRIPTION=" +Want to blog, but WebPositive isn't quick enough? Now you can use the new blog \ +app: BlogPositive! It can only connect to your Wordpress blogs for now. +" +HOMEPAGE="http://blogpositive.puckipedia.com" +SRC_URI="git://github.com/puckipedia/BlogPositive.git#tags/v0.1.0" +REVISION="2" + +LICENSE="MIT" +COPYRIGHT="2013 :Puck Meerburg" + +ARCHITECTURES="x86 x86_gcc2 x86_64" + +PROVIDES=" + blogpositive = $portVersion + app:blogpositive = $portVersion + " + +REQUIRES=" + lib:libcurl + lib:libz + haiku >= $haikuVersion + " +BUILD_PREREQUIRES=" + makefile_engine + cmd:g++ + cmd:xres + cmd:mkdepend + " +BUILD_REQUIRES=" + devel:libcurl + devel:libz + haiku_devel >= $haikuVersion + " + +USER_SETTINGS_FILES=" + settings/BlogPositive directory + " + +BUILD() +{ + make + make bindcatalogs +} + +INSTALL() +{ + make install INSTALL_DIR=$appsDir + addAppDeskbarSymlink $appsDir/BlogPositive +} diff --git a/haiku-apps/blogpositive/blogpositive-0.2.0.recipe b/haiku-apps/blogpositive/blogpositive-0.2.0.recipe new file mode 100644 index 000000000..bd923a629 --- /dev/null +++ b/haiku-apps/blogpositive/blogpositive-0.2.0.recipe @@ -0,0 +1,51 @@ +SUMMARY="The one blog app to rule them all!" +DESCRIPTION=" +Want to blog, but WebPositive isn't quick enough? Now you can use the new blog \ +app: BlogPositive! It can connect to Wordpress and LiveJournal blogs for now. +" +HOMEPAGE="http://blogpositive.puckipedia.com" +SRC_URI="git://github.com/puckipedia/BlogPositive.git#tags/v0.2.0" +REVISION="1" + +LICENSE="MIT" +COPYRIGHT="2013 :Puck Meerburg" + +ARCHITECTURES="x86 x86_gcc2 x86_64" + +PROVIDES=" + blogpositive = $portVersion + app:blogpositive = $portVersion + " + +REQUIRES=" + lib:libcurl + lib:libz + haiku >= $haikuVersion + " +BUILD_PREREQUIRES=" + makefile_engine + cmd:g++ + cmd:xres + cmd:mkdepend + " +BUILD_REQUIRES=" + devel:libcurl + devel:libz + haiku_devel >= $haikuVersion + " + +USER_SETTINGS_FILES=" + settings/BlogPositive directory + " + +BUILD() +{ + make + make bindcatalogs +} + +INSTALL() +{ + make install INSTALL_DIR=$appsDir + addAppDeskbarSymlink $appsDir/BlogPositive +} diff --git a/haiku-apps/blogpositive/blogpositive-0.3.0.recipe b/haiku-apps/blogpositive/blogpositive-0.3.0.recipe new file mode 100644 index 000000000..43fb7e597 --- /dev/null +++ b/haiku-apps/blogpositive/blogpositive-0.3.0.recipe @@ -0,0 +1,62 @@ +SUMMARY="The one blog app to rule them all!" +DESCRIPTION=" +Want to blog, but WebPositive isn't quick enough? Now you can use the new blog \ +app: BlogPositive! It can connect to Wordpress, LiveJournal and OnSugar blogs. +" +HOMEPAGE="http://blogpositive.puckipedia.com" +SRC_URI="git://github.com/puckipedia/BlogPositive.git#tags/v0.3" +REVISION="1" + +LICENSE="MIT" +COPYRIGHT="2013 :Puck Meerburg" + +ARCHITECTURES="x86 x86_gcc2 x86_64" + +PROVIDES=" + blogpositive = $portVersion + app:blogpositive = $portVersion + " + +REQUIRES=" + lib:libcurl + lib:libz + haiku >= $haikuVersion + " +BUILD_PREREQUIRES=" + makefile_engine + cmd:g++ + cmd:xres + cmd:mkdepend + " +BUILD_REQUIRES=" + devel:libcurl + devel:libz + haiku_devel >= $haikuVersion + " + +USER_SETTINGS_FILES=" + settings/BlogPositive directory + " + +BUILD() +{ + make + for i in BlogPositivePlugins/*; do + if [ -f $i/makefile ]; then + make -C $i + fi + done + make bindcatalogs +} + +INSTALL() +{ + make install INSTALL_DIR=$appsDir + addAppDeskbarSymlink $appsDir/BlogPositive + + for i in BlogPositivePlugins/*; do + if [ -f $i/makefile ]; then + make -C $i install INSTALL_DIR=$addOnsDir/BlogPositive + fi + done +} diff --git a/haiku-apps/blogpositive/blogpositive-0.4.0.recipe b/haiku-apps/blogpositive/blogpositive-0.4.0.recipe new file mode 100644 index 000000000..364240bd5 --- /dev/null +++ b/haiku-apps/blogpositive/blogpositive-0.4.0.recipe @@ -0,0 +1,62 @@ +SUMMARY="The one blog app to rule them all!" +DESCRIPTION=" +Want to blog, but WebPositive isn't quick enough? Now you can use the new blog \ +app: BlogPositive! It can connect to Wordpress, LiveJournal and OnSugar blogs. +" +HOMEPAGE="http://blogpositive.puckipedia.com" +SRC_URI="git://github.com/puckipedia/BlogPositive.git#tags/v0.4" +REVISION="1" + +LICENSE="MIT" +COPYRIGHT="2013 :Puck Meerburg" + +ARCHITECTURES="x86 x86_gcc2 x86_64" + +PROVIDES=" + blogpositive = $portVersion + app:blogpositive = $portVersion + " + +REQUIRES=" + lib:libcurl + lib:libz + haiku >= $haikuVersion + " +BUILD_PREREQUIRES=" + makefile_engine + cmd:g++ + cmd:xres + cmd:mkdepend + " +BUILD_REQUIRES=" + devel:libcurl + devel:libz + haiku_devel >= $haikuVersion + " + +USER_SETTINGS_FILES=" + settings/BlogPositive directory + " + +BUILD() +{ + make + for i in BlogPositivePlugins/*; do + if [ -f $i/makefile ]; then + make -C $i + fi + done + make bindcatalogs +} + +INSTALL() +{ + make install INSTALL_DIR=$appsDir + addAppDeskbarSymlink $appsDir/BlogPositive + + for i in BlogPositivePlugins/*; do + if [ -f $i/makefile ]; then + make -C $i install INSTALL_DIR=$addOnsDir/BlogPositive + fi + done +} diff --git a/haiku-apps/bowser/bowser-1.1.1_cvs.recipe b/haiku-apps/bowser/bowser-1.1.1_cvs.recipe deleted file mode 100644 index 4a127a126..000000000 --- a/haiku-apps/bowser/bowser-1.1.1_cvs.recipe +++ /dev/null @@ -1,19 +0,0 @@ -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() -{ - true -} - -INSTALL() -{ - true -} - -#COPYRIGHT="" -#LICENSE=" diff --git a/haiku-apps/burnitnow/burnitnow-27.recipe b/haiku-apps/burnitnow/burnitnow-27.recipe deleted file mode 100644 index 7d9667d50..000000000 --- a/haiku-apps/burnitnow/burnitnow-27.recipe +++ /dev/null @@ -1,33 +0,0 @@ -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#27" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="dev-util/cmake >= 2.8.0 - app-cdr/cdrtools > 3.00" -#CHECKSUM_MD5="" -BUILD() -{ - cd burnitnow-27 - cmake . - make -} - -INSTALL() -{ - cd burnitnow-27 - 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 BurnItNow Maintainers" diff --git a/haiku-apps/burnitnow/burnitnow-38.recipe b/haiku-apps/burnitnow/burnitnow-38.recipe deleted file mode 100644 index 22f906cb4..000000000 --- a/haiku-apps/burnitnow/burnitnow-38.recipe +++ /dev/null @@ -1,33 +0,0 @@ -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#38" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="dev-util/cmake >= 2.8.0 - app-cdr/cdrtools > 3.00" -#CHECKSUM_MD5="" -BUILD() -{ - cd burnitnow-38 - cmake . - make -} - -INSTALL() -{ - cd burnitnow-38 - 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 BurnItNow Maintainers" diff --git a/haiku-apps/burnitnow/burnitnow-39.recipe b/haiku-apps/burnitnow/burnitnow-39.recipe deleted file mode 100644 index 4ed1fbf85..000000000 --- a/haiku-apps/burnitnow/burnitnow-39.recipe +++ /dev/null @@ -1,33 +0,0 @@ -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#39" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="dev-util/cmake >= 2.8.0 - app-cdr/cdrtools > 3.00" -#CHECKSUM_MD5="" -BUILD() -{ - cd burnitnow-39 - cmake . - make -} - -INSTALL() -{ - cd burnitnow-39 - 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 BurnItNow Maintainers" diff --git a/haiku-apps/burnitnow/burnitnow-43.recipe b/haiku-apps/burnitnow/burnitnow-43.recipe deleted file mode 100644 index 0d3dcdd90..000000000 --- a/haiku-apps/burnitnow/burnitnow-43.recipe +++ /dev/null @@ -1,33 +0,0 @@ -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.recipe b/haiku-apps/burnitnow/burnitnow-beta5_svn.recipe deleted file mode 100644 index d2c4e80e7..000000000 --- a/haiku-apps/burnitnow/burnitnow-beta5_svn.recipe +++ /dev/null @@ -1,33 +0,0 @@ -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.recipe b/haiku-apps/burnitnow/burnitnow-beta6.recipe deleted file mode 100644 index 08a74e2e1..000000000 --- a/haiku-apps/burnitnow/burnitnow-beta6.recipe +++ /dev/null @@ -1,35 +0,0 @@ -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/burnitnow-trunk.recipe b/haiku-apps/burnitnow/burnitnow-trunk.recipe new file mode 100644 index 000000000..8ab792f81 --- /dev/null +++ b/haiku-apps/burnitnow/burnitnow-trunk.recipe @@ -0,0 +1,49 @@ +SUMMARY="A utility for burning CD" +DESCRIPTION=" +BurnItNow is a CD burning utility application for Haiku. +" +HOMEPAGE="https://github.com/HaikuArchives/BurnItNow" +SRC_URI="git+https://github.com/HaikuArchives/BurnItNow.git#a790db9a87" +REVISION="1" +COPYRIGHT=" + 2010-2013 BurnItNow Team + " +LICENSE="MIT" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + burnitnow = $portVersion + app:burnintnow = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + cmd:cdrecord + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:cmake + cmd:make + cmd:gcc$secondaryArchSuffix + " + +#SOURCE_DIR="$portName/burnitnow2" + +BUILD() +{ + cmake . + make +} + +INSTALL() +{ + mkdir -p $appsDir/BurnItNow + cp BurnItNow $appsDir/BurnItNow + addAppDeskbarSymlink $appsDir/BurnItNow/BurnItNow +} diff --git a/haiku-apps/capitalbe/capitalbe-1.0.recipe b/haiku-apps/capitalbe/capitalbe-1.0.recipe new file mode 100644 index 000000000..1653073a8 --- /dev/null +++ b/haiku-apps/capitalbe/capitalbe-1.0.recipe @@ -0,0 +1,44 @@ +SUMMARY="A finance manager" +DESCRIPTION=" +Capital Be is a finance manager for Haiku. Easily track where your money is \ +going. View reports, reconcile accounts and more! Like other programs \ +published by the same author, Capital Be focuses on keeping easy jobs easy and \ +making tough ones easier. +" +HOMEPAGE="http://github.com/HaikuArchives/CapitalBe" +SRC_URI="git://github.com/HaikuArchives/CapitalBe.git#eb8d7f92bbaa1594dddeb07c64f90442de106a3e" +REVISION="1" +LICENSE="MIT" +COPYRIGHT="2009 DarkWyrm" +ARCHITECTURES="?x86 x86_gcc2 ?ppc" +PROVIDES=" + capitalbe = $portVersion + app:capitalbe = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:libsqlite3 + " +BUILD_PREREQUIRES=" + cmd:gcc + " + +BUILD() +{ + g++ -lbe -ltracker -ltranslation -lsqlite3 src/*.cpp -o capitalbe + rc -o capitalbe.rsrc src/capitalbe.rdef + xres -o capitalbe capitalbe.rsrc + mimeset -f capitalbe +} + +INSTALL() +{ + mkdir -p $appsDir/capitalbe + mkdir -p $appsDir/capitalbe/helpfiles + cp -r src/helpfiles/* $appsDir/capitalbe/helpfiles/ + mv capitalbe $appsDir/capitalbe/capitalbe + addAppDeskbarSymlink $appsDir/capitalbe/capitalbe "Capital Be" +} diff --git a/haiku-apps/caya/caya-2013.07.31.recipe b/haiku-apps/caya/caya-2013.07.31.recipe index 0a68638f9..02f7a0ff5 100644 --- a/haiku-apps/caya/caya-2013.07.31.recipe +++ b/haiku-apps/caya/caya-2013.07.31.recipe @@ -56,6 +56,8 @@ INSTALL() cp application/CayaProtocol.h $includeDir/caya/ cp application/CayaConstants.h $includeDir/caya/ cp application/CayaProtocolMessages.h $includeDir/caya/ + + addAppDeskbarSymlink $appsDir/Caya/Caya } LICENSE="MIT" @@ -66,6 +68,6 @@ COPYRIGHT=" 2011-2012 Casalinuovo Dario " DESCRIPTION=" - Caya is a multiprotocol chat client for Haiku. It supports msn, aim, jabber, - google talk, and facebook. - " +Caya is a multiprotocol chat client for Haiku. It supports msn, aim, jabber, \ +google talk, and facebook. +" diff --git a/haiku-apps/caya/caya-236.recipe b/haiku-apps/caya/caya-236.recipe deleted file mode 100644 index adb7367fc..000000000 --- a/haiku-apps/caya/caya-236.recipe +++ /dev/null @@ -1,35 +0,0 @@ -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.recipe b/haiku-apps/caya/caya-240.recipe deleted file mode 100644 index 78f0e79d5..000000000 --- a/haiku-apps/caya/caya-240.recipe +++ /dev/null @@ -1,35 +0,0 @@ -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.recipe b/haiku-apps/caya/caya-264.recipe deleted file mode 100644 index c7a92ce6d..000000000 --- a/haiku-apps/caya/caya-264.recipe +++ /dev/null @@ -1,36 +0,0 @@ -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.recipe b/haiku-apps/caya/caya-278.recipe deleted file mode 100644 index ced844436..000000000 --- a/haiku-apps/caya/caya-278.recipe +++ /dev/null @@ -1,36 +0,0 @@ -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.recipe b/haiku-apps/caya/caya-279.recipe deleted file mode 100644 index 87fce694e..000000000 --- a/haiku-apps/caya/caya-279.recipe +++ /dev/null @@ -1,36 +0,0 @@ -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/caya/caya-293.recipe b/haiku-apps/caya/caya-293.recipe deleted file mode 100644 index fbf25e70e..000000000 --- a/haiku-apps/caya/caya-293.recipe +++ /dev/null @@ -1,60 +0,0 @@ -SUMMARY="Caya is a multiprotocol IM client." -HOMEPAGE="http://dev.osdrawer.net/projects/caya" -SRC_URI="svn+http://svn.osdrawer.net/caya/trunk#293" -REVISION="2" -ARCHITECTURES="x86 x86_gcc2" - -PROVIDES=" - caya = $portVersion - lib:libexpat - " - -REQUIRES=" - haiku >= $haikuVersion - " -BUILD_REQUIRES=" - devel:libexpat - " -BUILD_PREREQUIRES=" - haiku_devel >= $haikuVersion - cmd:gcc - cmd:ld - cmd:jam - cmd:which - " - -BUILD() -{ - mkdir -p $sourceDir/generated/objects-haiku-x86-gcc2-debug/application - echo $portVersion > $sourceDir/generated/objects-haiku-x86-gcc2-debug/application/svn_revision - ./configure - jam -} - -INSTALL() -{ - mkdir -p $appsDir/Caya - mkdir -p $appsDir/Caya/smileys - mkdir -p $appsDir/Caya/protocols - mkdir -p $includeDir/caya/ - - cp generated/distro-haiku-*-debug/Caya $appsDir/Caya - cp generated/distro-haiku-*-debug/aim $appsDir/Caya/protocols - cp smileys/*.gif smileys/settings.xml $appsDir/Caya/smileys - cp application/Caya.h $includeDir/caya/ - cp application/CayaProtocol.h $includeDir/caya/ - cp application/CayaConstants.h $includeDir/caya/ - cp application/CayaProtocolMessages.h $includeDir/caya/ -} - -LICENSE="MIT" -COPYRIGHT=" - 2009-2011 Andrea Anzani - 2009-2011 Pierluigi Fiorini - 2010-2011 Oliver Ruiz Dorantes - 2011-2012 Casalinuovo Dario - " -DESCRIPTION=" - Caya is a multiprotocol chat client for Haiku. It supports msn, aim, jabber, - google talk, and facebook. - " diff --git a/haiku-apps/caya/patches/caya-293.patchset b/haiku-apps/caya/patches/caya-293.patchset deleted file mode 100644 index 05202ecd3..000000000 --- a/haiku-apps/caya/patches/caya-293.patchset +++ /dev/null @@ -1,49 +0,0 @@ -From abd4aac88a07ea0a9967be553833a121bf98ccf9 Mon Sep 17 00:00:00 2001 -From: Adrien Destugues -Date: Sat, 5 Oct 2013 13:17:26 +0200 -Subject: Fix gcc4 detection - - -diff --git a/build/jam/CheckRules b/build/jam/CheckRules -index 6fbc213..294fab7 100644 ---- a/build/jam/CheckRules -+++ b/build/jam/CheckRules -@@ -14,7 +14,7 @@ rule CheckGccPlatform - # /boot/develop/lib/x86 to judge whether this is a BeOS compatible and thus - # gcc 2 platform. This is not entirely correct, but should be good enough - # for the time being. -- local haveLibStdC++.R4 = [ Glob /boot/develop/lib/x86 : libstdc++.r4.so ] ; -+ local haveLibStdC++.R4 = [ Glob /boot/system/develop/tools/lib : libstdc++.r4.so ] ; - if ! $(haveLibStdC++.R4) { - IS_GCC4_PLATFORM = 1 ; - Echo Using GCC4 platform ; --- -1.8.3.4 - - -From db90c28cb36b59a010abec5406f77c1c4135f378 Mon Sep 17 00:00:00 2001 -From: Adrien Destugues -Date: Sat, 5 Oct 2013 13:19:23 +0200 -Subject: Let haikuporter compute the version - - * The .svn dir isn't available in the chroot, so there is no way it can -be used to detect the SVN revision. - -diff --git a/build/jam/MainBuildRules b/build/jam/MainBuildRules -index 292a2a5..314c4d7 100644 ---- a/build/jam/MainBuildRules -+++ b/build/jam/MainBuildRules -@@ -368,9 +368,7 @@ rule CreateSVNRevisionFile file - { - # CreateSVNRevisionFile - -- local svnEntries = entries ; -- SEARCH on $(svnEntries) = [ FDirName $(TOP) .svn ] ; -- Depends $(file) : $(svnEntries) ; -+ # Let haikuporter do it as the .svn dir is removed on checkout - } - - actions CreateSVNRevisionFile --- -1.8.3.4 - diff --git a/haiku-apps/caya_gpl_protocols/caya_gpl_protocols-0.HEAD.recipe b/haiku-apps/caya_gpl_protocols/caya_gpl_protocols-0.HEAD.recipe deleted file mode 100644 index 225624b42..000000000 --- a/haiku-apps/caya_gpl_protocols/caya_gpl_protocols-0.HEAD.recipe +++ /dev/null @@ -1,31 +0,0 @@ -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.recipe b/haiku-apps/caya_gpl_protocols/caya_gpl_protocols-19.recipe deleted file mode 100644 index 93816baed..000000000 --- a/haiku-apps/caya_gpl_protocols/caya_gpl_protocols-19.recipe +++ /dev/null @@ -1,30 +0,0 @@ -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.recipe b/haiku-apps/caya_gpl_protocols/caya_gpl_protocols-24.recipe deleted file mode 100644 index e6c00dd27..000000000 --- a/haiku-apps/caya_gpl_protocols/caya_gpl_protocols-24.recipe +++ /dev/null @@ -1,31 +0,0 @@ -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.recipe b/haiku-apps/caya_gpl_protocols/caya_gpl_protocols-35.recipe deleted file mode 100644 index f6df24bd5..000000000 --- a/haiku-apps/caya_gpl_protocols/caya_gpl_protocols-35.recipe +++ /dev/null @@ -1,31 +0,0 @@ -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.recipe b/haiku-apps/caya_gpl_protocols/caya_gpl_protocols-36.recipe index cb9dd4d2c..f0f3cf544 100644 --- a/haiku-apps/caya_gpl_protocols/caya_gpl_protocols-36.recipe +++ b/haiku-apps/caya_gpl_protocols/caya_gpl_protocols-36.recipe @@ -45,7 +45,6 @@ COPYRIGHT="2010-2011 Casalinuovo Dario 2009-2011 Pierluigi Fiorini 2010-2011 Oliver Ruiz Dorantes" DESCRIPTION=" - Caya is a multi-protocol IM client. - This package enables support for XMPP (jabber, google talk, facebook) - and MSN protocols. - " +Caya is a multi-protocol IM client. This package enables support for XMPP \ +(jabber, google talk, facebook) and MSN protocols. +" 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 deleted file mode 100644 index a45bd230b..000000000 --- a/haiku-apps/caya_gpl_protocols/patches/caya_gpl_protocols-0.HEAD.patch +++ /dev/null @@ -1,214 +0,0 @@ -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/chat/chat-20100903.recipe b/haiku-apps/chat/chat-20100903.recipe new file mode 100644 index 000000000..848452832 --- /dev/null +++ b/haiku-apps/chat/chat-20100903.recipe @@ -0,0 +1,52 @@ +SUMMARY="XMPP client for Haiku Operating System." +DESCRIPTION=" + Haiku Chat is tiny, about 300KB XMPP client. It supports core XMPP protocol, \ + multi-user chat, Google accounts, Psi bookmarks, In-band registration and \ + other features. It is written for Haiku, free open-source operating system \ + inspired by BeOS. Haiku Chat is simplest and smallest client that supports \ + XMPP Advanced Client 2009 profile. + " +HOMEPAGE="http://synrc.com/client/chat/haiku/" +SRC_URI="git+https://github.com/devaspot/chat.git" +LICENSE="MIT" +COPYRIGHT="2010-2014 Maxim Sokhatsky" +REVISION="2" +ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + Chat = $portVersion + app:Chat = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libssl$secondaryArchSuffix + lib:libexpat$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libssl$secondaryArchSuffix + devel:libexpat$SecondaryArchSuffix + " + +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc$secondaryArchSuffix + cmd:make + cmd:which + cmd:mkdepend + " + +BUILD() +{ + cd src + BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` make +} + +INSTALL() +{ + mkdir -p $appsDir + cp src/objects.*-release/Chat $appsDir/Chat + addAppDeskbarSymlink $appsDir/Chat "Chat" +} diff --git a/haiku-apps/cherry_blossom/cherry_blossom-1.0.recipe b/haiku-apps/cherry_blossom/cherry_blossom-1.0.recipe new file mode 100644 index 000000000..39bd17c49 --- /dev/null +++ b/haiku-apps/cherry_blossom/cherry_blossom-1.0.recipe @@ -0,0 +1,50 @@ +SUMMARY="Cherry Blossom is media player for the Haiku Operating System" +DESCRIPTION=" +Cherry Blossom is a 100% native application. Cherry Blossom uses Haiku \ +specific API’s for handling media, so if Haiku can play your media files, then \ +Cherry Blossom will also be able to play your files. +" +HOMEPAGE="http://gitorious.org/cherry-blossom/" +SRC_URI="git+http://gitorious.org/cherry-blossom/cherry-blossom.git" +REVISION="1" + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +LICENSE="MIT" +COPYRIGHT="2010 Bryce Groff" + +PROVIDES=" + cherry_blosom = $portVersion + app:cherry_blosom = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + taglib_devel + " + +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc + cmd:make + cmd:mkdepend + " + +PATCHES="cherry_blossom-1.0.patch" + +BUILD() +{ + make OBJ_DIR=objects \ + BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` +} + +INSTALL() +{ + mkdir -p ${appsDir} + cp -a objects/Cherry_Blossom $appsDir + addAppDeskbarSymlink ${appsDir}/Cherry_Blossom +} diff --git a/haiku-apps/cherry_blossom/patches/cherry_blossom-1.0.patch b/haiku-apps/cherry_blossom/patches/cherry_blossom-1.0.patch new file mode 100644 index 000000000..984da661e --- /dev/null +++ b/haiku-apps/cherry_blossom/patches/cherry_blossom-1.0.patch @@ -0,0 +1,36 @@ +diff --git a/makefile b/makefile +new file mode 100644 +index 0000000..d134de0 +--- /dev/null ++++ b/makefile +@@ -0,0 +1,30 @@ ++NAME= Cherry_Blossom ++ ++TYPE= APP ++ ++SRCS= interface/DrawingTidbits.cpp \ ++interface/PositionToolTip.cpp \ ++interface/TransportButton.cpp \ ++interface/PeakView.cpp \ ++interface/SeekSlider.cpp \ ++interface/VolumeSlider.cpp \ ++views/AlbumView.cpp \ ++views/ControlView.cpp \ ++views/MusicView.cpp \ ++views/SearchView.cpp \ ++views/ArtistView.cpp \ ++views/GenreView.cpp \ ++views/PlayListView.cpp \ ++views/SongView.cpp \ ++CherryBlossom.cpp \ ++CherryBlossomWindow.cpp \ ++ ++SYSTEM_INCLUDE_PATHS = /boot/system/develop/headers/private/interface/ \ ++ /boot/system/develop/headers/private/shared/ ++ ++ ++LIBS= be locale tag ++ ++APP_VERSION = 1.0 ++ ++include $(BUILDHOME)/etc/makefile-engine diff --git a/haiku-apps/clipup/clipup-2.0.3.recipe b/haiku-apps/clipup/clipup-2.0.3.recipe new file mode 100644 index 000000000..fa619d324 --- /dev/null +++ b/haiku-apps/clipup/clipup-2.0.3.recipe @@ -0,0 +1,69 @@ +SUMMARY="A tool to manage multiple clipboards" +DESCRIPTION="Ever had something important in your clipboard but you copied \ +something else and lost the previous contents? ClipUp allows you to keep \ +multiple clips and protect them even between reboots. + +ClipUp is invoked by pressing CMD+SHIFT+V or by clicking on the icon in the \ +Deskbar. +" +HOMEPAGE="https://github.com/HaikuArchives/ClipUp" +SRC_URI="git://github.com/HaikuArchives/ClipUp#d47f0f6835" +REVISION="2" +LICENSE="MIT" +COPYRIGHT="2002 Werner Freytag" + +ARCHITECTURES="x86_gcc2" + +PROVIDES=" + clipup = $portVersion + app:clipup = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_PREREQUIRES=" + makefile_engine + cmd:make + cmd:mkdepend + cmd:gcc + cmd:xres + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +USER_SETTINGS_FILES=" + settings/ClipUp_settings + settings/clipup_clips + " + +BUILD() +{ + cd "Input Device" + make + cd "../Input Filter Ctrl-V" + make + cd "../Main" + make +} + +INSTALL() +{ + mkdir -p $addOnsDir/input_server/devices + mkdir -p $addOnsDir/input_server/filters + + cd "Input Device" + make install INSTALL_DIR=temp + mv temp/* $addOnsDir/input_server/devices + cd .. + + cd "Input Filter Ctrl-V" + make install INSTALL_DIR=temp + mv temp/* $addOnsDir/input_server/filters + cd .. + + cd "Main" + make install INSTALL_DIR=$appsDir + mkdir -p "$dataDir/deskbar/menu/Desktop applets" + symlinkRelative -s "$appsDir/ClipUp" "$dataDir/deskbar/menu/Desktop applets" +} diff --git a/haiku-apps/clockwerk/clockwerk-78.recipe b/haiku-apps/clockwerk/clockwerk-78.recipe deleted file mode 100644 index 85399a2e8..000000000 --- a/haiku-apps/clockwerk/clockwerk-78.recipe +++ /dev/null @@ -1,25 +0,0 @@ -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#78" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -#CHECKSUM_MD5="" -BUILD() -{ - cd clockwerk-78 - jam -} - -INSTALL() -{ - cd clockwerk-78 - mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Clockwerk - cp generated/distro-haiku/* ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Clockwerk -} - -LICENSE="GNU GPL v2" -COPYRIGHT="2002-2010 Stephan Aßmus - 2005-2006 Axel Dörfler - 2006-2009 Ingo Weinhold" - diff --git a/haiku-apps/clockwerk/clockwerk-80.recipe b/haiku-apps/clockwerk/clockwerk-80.recipe index b0fdc9f33..f01c3cb30 100644 --- a/haiku-apps/clockwerk/clockwerk-80.recipe +++ b/haiku-apps/clockwerk/clockwerk-80.recipe @@ -1,4 +1,6 @@ -DESCRIPTION="Clockwerk is a multi-track audio/video compositing and animation software." +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" @@ -22,4 +24,3 @@ LICENSE="GNU GPL v2" COPYRIGHT="2002-2012 Stephan Aßmus 2005-2006 Axel Dörfler 2006-2009 Ingo Weinhold" - diff --git a/haiku-apps/clockwerk/clockwerk-git.recipe b/haiku-apps/clockwerk/clockwerk-git.recipe new file mode 100644 index 000000000..14ce264fc --- /dev/null +++ b/haiku-apps/clockwerk/clockwerk-git.recipe @@ -0,0 +1,56 @@ +SUMMARY="An open source media compositing tool for the Haiku platform" +DESCRIPTION="Clockwerk is an Open Source media compositing tool for the Haiku platform. + +It has been in development from Jan 2006 to July 2008 by Mindwork (www.mindwork.de) as one of the main in-house components of an application suit to realize distributed multimedia playback on Haiku client machines." + +HOMEPAGE="https://github.com/stippi/Clockwerk" +SRC_URI="git+https://github.com/stippi/Clockwerk.git#8c3a33e" + +REVISION="1" + +LICENSE="GNU GPL v2" +COPYRIGHT=" + 2001-2009 Stephan Aßmus + 2000-2006 Ingo Weinhold + " + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + clockwerk = $portVersion + app:clockwerk = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libfreetype$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:jam + " + +USER_SETTINGS_FILES=" + settings/mindwork-m3 directory + " + +BUILD() +{ + jam -q +} + +INSTALL() +{ + mkdir -p $appsDir + + jam fulldistro + + cd generated/distro-haiku-with-libs + cp Clockwerk $appsDir + + addAppDeskbarSymlink $appsDir/Clockwerk +} diff --git a/haiku-apps/cmake_haiku/cmake_haiku-git.recipe b/haiku-apps/cmake_haiku/cmake_haiku-git.recipe new file mode 100644 index 000000000..a620da366 --- /dev/null +++ b/haiku-apps/cmake_haiku/cmake_haiku-git.recipe @@ -0,0 +1,48 @@ +SUMMARY="Cmake GUI with Haiku Native Widgets" +DESCRIPTION=" +cmake_haiku is a native GUI frontend for Cmake with features like configuring \ +a project and generating files for other build systems like Makefiles, Ninja \ +etc. +" +HOMEPAGE="https://github.com/AdrianArroyoCalle/cmake-haiku" +SRC_URI="git+https://github.com/AdrianArroyoCalle/cmake-haiku.git#a42d55b" + +LICENSE="BSD (3-clause)" +COPYRIGHT="2012-2013 Adrián Arroyo Calle " + +REVISION="1" + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 ?x86" + +PROVIDES=" + cmake_haiku = $portVersion + app:cmake_haiku = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + cmd:cmake + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:cmake + cmd:make + " + +BUILD() +{ + cmake . + make +} + +INSTALL() +{ + mkdir -p $appsDir + cp cmake-gui $appsDir/CmakeHaiku + + addAppDeskbarSymlink $appsDir/CmakeHaiku +} diff --git a/haiku-apps/converttolf/converttolf-0.0.0.recipe b/haiku-apps/converttolf/converttolf-0.0.0.recipe new file mode 100644 index 000000000..ca03f5469 --- /dev/null +++ b/haiku-apps/converttolf/converttolf-0.0.0.recipe @@ -0,0 +1,50 @@ +SUMMARY="A small tool to turn CRLF into LF without fuss!" +DESCRIPTION=" +ConvertToLF is a filter that removes the carriage returns used in the end of \ +file markers on some operating systems. Haiku uses just a line feed to mark \ +the end of line, and gcc, the Haiku compiler and StyledEdit don't function \ +properly with carriage returns in source code / text files. +" # Taken from the homepage +HOMEPAGE="https://github.com/HaikuArchives/ConvertToLF/" +SRC_URI="git://github.com/HaikuArchives/ConvertToLF.git#d8ec50f92a65d9fd1058adf98fe2515fbafa243c" + +REVISION="1" + +COPYRIGHT=" + 2001 fReT + " + +LICENSE="GNU GPL v2" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + ConvertToLF = $portVersion + app:ConvertToLF = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:gcc + cmd:xres + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " +BUILD() +{ + g++ -lbe -ltracker -o ConvertToLF Source/Strip.cpp + rc -o ConvertToLF.rsrc Source/ConvertToLF.rdef + xres -o ConvertToLF ConvertToLF.rsrc + mimeset -f ConvertToLF +} + +INSTALL() +{ + mkdir -p $addOnsDir/Tracker + cp ConvertToLF $addOnsDir/Tracker +} diff --git a/haiku-apps/copynametoclipboard/copynametoclipboard-1.0.1.recipe b/haiku-apps/copynametoclipboard/copynametoclipboard-1.0.1.recipe new file mode 100644 index 000000000..675f4ff5f --- /dev/null +++ b/haiku-apps/copynametoclipboard/copynametoclipboard-1.0.1.recipe @@ -0,0 +1,46 @@ +SUMMARY="A Tracker add-on to get the path to a file quick and easy" +DESCRIPTION=" +This Tracker add-on allows you to get the path to one or more files, \ +in different ways: +Holding shift copies just the file name, and holding control \ +prints just one file name/path per line. +" +HOMEPAGE="https://github.com/HaikuArchives/CopyNameToClipboard" +SRC_URI="git://github.com/HaikuArchives/CopyNameToClipboard.git#d0d1c757a156981232aec44e0f88a2f35cfe0b96" +REVISION="1" +LICENSE="MIT" +COPYRIGHT=" + 2000 Werner Freytag + 2012 Humdinger + " + +ARCHITECTURES="x86_gcc2" + +PROVIDES=" + copynametoclipboard = $portVersion + app:copynametoclipboard = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_PREREQUIRES=" + makefile_engine + cmd:mkdepend + cmd:g++ + cmd:xres + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD() +{ + cd trunk + make +} + +INSTALL() +{ + cd trunk + make install INSTALL_DIR=$addOnsDir/Tracker +} diff --git a/haiku-apps/digiclock/digiclock-1.0.recipe b/haiku-apps/digiclock/digiclock-1.0.recipe new file mode 100644 index 000000000..4ede0549c --- /dev/null +++ b/haiku-apps/digiclock/digiclock-1.0.recipe @@ -0,0 +1,44 @@ +SUMMARY="DigiClock Screensaver" +DESCRIPTION="Based on BinaryClock by David Enderson. DigiClock uses filled rectangles and random colors." + +HOMEPAGE="https://github.com/bbjimmy/DigiClock" +SRC_URI="git+https://github.com/bbjimmy/DigiClock.git#7c49eb1ec29b1eb1046f9d7911646e2d5f5e6def" + +LICENSE="GNU GPL v2" +COPYRIGHT="2012 Jim Saxton, Fat Elk Software" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" +app:digiclock = $portVersion" + +REVISION="1" + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion" + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion" + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:make + makefile_engine" + +BUILD() +{ + cd source + make $jobArgs BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` +} + +INSTALL() +{ + mkdir -p $addOnsDir/Screen\ Savers + cd source/objects* + cp DigiClock $addOnsDir/Screen\ Savers/DigiClock + mkdir -p $dataDir/FatElk + cd .. + unzip -o fatelk + cp "FAT ELK" $dataDir/FatElk/ + cp "Fat Elk" $dataDir/FatElk/ +} diff --git a/haiku-apps/dockbert/dockbert-1.0.2b1.recipe b/haiku-apps/dockbert/dockbert-1.0.2b1.recipe new file mode 100644 index 000000000..6530c7d16 --- /dev/null +++ b/haiku-apps/dockbert/dockbert-1.0.2b1.recipe @@ -0,0 +1,50 @@ +SUMMARY="DockBert adds a dock to your deskbar" +DESCRIPTION=" +DockBert is a Deskbar modification. It adds a dock to your deskbar where you \ +may have shortcuts organized in \"tabs\", a tab of the running apps and some \ +other general eyecandy. +" +HOMEPAGE="https://github.com/HaikuArchives/DockBert" +SRC_URI="git+https://github.com/HaikuArchives/DockBert#057c54674d" +COPYRIGHT="2005 yellowTAB GmbH" +LICENSE="BSD (3-clause)" + +REVISION="2" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + dockbert = $portVersion + app:dockbert = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc + cmd:make + cmd:mkdepend + " + +PATCHES="dockbert-1.0.2b1.patchset" + +BUILD() +{ + cd trunk + make OBJ_DIR=objects \ + BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` +} + +INSTALL() +{ + mkdir -p $appsDir + cp -a trunk/objects/Dock $appsDir/Dock + addAppDeskbarSymlink $appsDir/Dock +} diff --git a/haiku-apps/dockbert/patches/dockbert-1.0.2b1.patchset b/haiku-apps/dockbert/patches/dockbert-1.0.2b1.patchset new file mode 100644 index 000000000..7d7c88028 --- /dev/null +++ b/haiku-apps/dockbert/patches/dockbert-1.0.2b1.patchset @@ -0,0 +1,22 @@ +From c7dd365b426c78ef62bfb1b1b8ba149e9b6a7afb Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Mon, 2 Dec 2013 18:12:54 -0700 +Subject: Fix makefile stdc++ libs + + +diff --git a/trunk/Makefile b/trunk/Makefile +index fa6193c..748e5fd 100644 +--- a/trunk/Makefile ++++ b/trunk/Makefile +@@ -60,7 +60,7 @@ RSRCS= dockbert.rsrc + # naming scheme you need to specify the path to the library + # and it's name + # library: my_lib.a entry: my_lib.a or path/my_lib.a +-LIBS= be tracker stdc++.r4 locale localestub ++LIBS= be tracker $(STDCPPLIBS) localestub + + # specify additional paths to directories following the standard + # libXXX.so or libXXX.a naming scheme. You can specify full paths +-- +1.8.3.4 + diff --git a/haiku-apps/documentviewer/documentviewer-0.3.2.recipe b/haiku-apps/documentviewer/documentviewer-0.3.2.recipe index 40b750dbb..7cc6abf2c 100644 --- a/haiku-apps/documentviewer/documentviewer-0.3.2.recipe +++ b/haiku-apps/documentviewer/documentviewer-0.3.2.recipe @@ -1,25 +1,68 @@ -DESCRIPTION="DocumentViewer is a Viewer supporting PDF and DJVU Files." +SUMMARY="A viewer supporting PDF and DJVU Files" +DESCRIPTION=" +DocumentViewer is a Viewer supporting PDF and DJVU Files. +" +LICENSE="MIT" +COPYRIGHT="2010-2012 Haiku, Inc" 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." +CHECKSUM_SHA256="92449ddaa6013443bb97920a373e07b7cc43786ce25780d94b02cb9d5f3dd7d3" +REVISION="2" +PATCHES="documentviewer-0.3.2.patchset" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + documentviewer$secondaryArchSuffix = $portVersion + app:documentviewer = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libdjvulibre + lib:libfreetype + lib:libz + lib:libjpeg + lib:libopenjpeg + lib:libjbig2dec + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libdjvulibre + devel:libfitz + devel:libfreetype + devel:libz + devel:libjpeg + devel:libopenjpeg + devel:libjbig2dec + " + +BUILD_PREREQUIRES=" + cmd:find + cmd:g++$secondaryArchSuffix + cmd:jam + " + +SOURCE_DIR="documentviewer-0.3.2" BUILD() { - cd documentviewer-0.3.2 - jam + # Yes, the source package actually contains binaries... + find . \( -name '*.o' -or -name '*.a' \) -delete + jam -q } INSTALL() { - cd documentviewer-0.3.2 - mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/DocumentViewer - cp application/DocumentViewer ${DESTDIR}/`finddir B_APPS_DIRECTORY`/DocumentViewer + mkdir -p $appsDir + cp application/DocumentViewer $appsDir + addAppDeskbarSymlink $appsDir/DocumentViewer } - -LICENSE="MIT" -COPYRIGHT="2010-2012 Haiku, Inc" diff --git a/haiku-apps/documentviewer/patches/documentviewer-0.3.2.patchset b/haiku-apps/documentviewer/patches/documentviewer-0.3.2.patchset new file mode 100644 index 000000000..c36466e03 --- /dev/null +++ b/haiku-apps/documentviewer/patches/documentviewer-0.3.2.patchset @@ -0,0 +1,139 @@ +From 37a6e0dc8fa52531136c65ae8e0797bb1557fc89 Mon Sep 17 00:00:00 2001 +From: Jonathan Schleifer +Date: Mon, 24 Mar 2014 22:12:11 +0100 +Subject: [PATCH] Fix compilation on x86_64 + +--- + application/Debug.h | 4 ++-- + application/ImageButton.cpp | 10 ++++++---- + application/MainWindow.cpp | 8 ++++---- + application/Tools.h | 10 ++++++---- + libs/columnlistview/ColumnListView.cpp | 4 ++-- + 5 files changed, 20 insertions(+), 16 deletions(-) + +diff --git a/application/Debug.h b/application/Debug.h +index 0cdf14a..ee14cef 100644 +--- a/application/Debug.h ++++ b/application/Debug.h +@@ -91,7 +91,7 @@ public: + return( *this ); + } + +- Debug& operator<<(int32 number) ++ Debug& operator<<(long number) + { + fStr << number; + return *this; +@@ -143,7 +143,7 @@ public: + Debug& operator<<(int) { return *this; } + Debug& operator<<(uint) { return *this; } + Debug& operator<<(char) { return *this; } +- Debug& operator<<(int32) { return *this; } ++ Debug& operator<<(long) { return *this; } + bool const& state(void) { return fState; } + void Clear(void) { } + +diff --git a/application/ImageButton.cpp b/application/ImageButton.cpp +index fc1ed66..2609613 100644 +--- a/application/ImageButton.cpp ++++ b/application/ImageButton.cpp +@@ -8,6 +8,8 @@ + */ + #include "ImageButton.h" + ++#include ++ + #include + + #include +@@ -248,12 +250,12 @@ ImageButton::_RescaleBitmap(const BBitmap* src, int32 width, int32 height) + void* srcData = src->Bits(); + + for (int32 y = 0; y <= height; y++) { +- void* dstRow = (void*)((uint32)dstData + (uint32)(y * dstYOff)); +- void* srcRow = (void*)((uint32)srcData + ((uint32)(y * dy) * srcYOff)); ++ void* dstRow = (void*)((uintptr_t)dstData + (uintptr_t)(y * dstYOff)); ++ void* srcRow = (void*)((uintptr_t)srcData + ((uintptr_t)(y * dy) * srcYOff)); + + for (int32 x = 0; x <= width; x++) +- memcpy((void*)((uint32)dstRow + (x * bpp)), (void*)((uint32)srcRow +- + ((uint32)(x * dx) * bpp)), bpp); ++ memcpy((void*)((uintptr_t)dstRow + (x * bpp)), (void*)((uintptr_t)srcRow ++ + ((uintptr_t)(x * dx) * bpp)), bpp); + } + + return res; +diff --git a/application/MainWindow.cpp b/application/MainWindow.cpp +index e8002bd..af73601 100644 +--- a/application/MainWindow.cpp ++++ b/application/MainWindow.cpp +@@ -316,10 +316,10 @@ MainWindow::_SaveSettings(void) + + if (fDocumentLayout != nullptr) { + settings +- << "Split10" << fSplitView1->ItemWeight(0L) +- << "Split11" << fSplitView1->ItemWeight(1L) +- << "Split20" << fSplitView2->ItemWeight(0L) +- << "Split21" << fSplitView2->ItemWeight(1L) ++ << "Split10" << fSplitView1->ItemWeight(0) ++ << "Split11" << fSplitView1->ItemWeight(1) ++ << "Split20" << fSplitView2->ItemWeight(0) ++ << "Split21" << fSplitView2->ItemWeight(1) + << "RibbonTab" << fRibbon->ActiveTab() + << "SidebarTab" << fTabView1->Selection() + << "Fullscreen" << (int32)fFullscreenIsOn +diff --git a/application/Tools.h b/application/Tools.h +index 4941ac0..f994a6b 100644 +--- a/application/Tools.h ++++ b/application/Tools.h +@@ -9,6 +9,8 @@ + #ifndef TOOLS_H + #define TOOLS_H + ++#include ++ + #include + #include + +@@ -266,12 +268,12 @@ public: + void* srcData = src->Bits(); + + for (int32 y = 0; y <= height; y++) { +- void* dstRow = (void*)((uint32)dstData + (uint32)(y * dstYOff)); +- void* srcRow = (void*)((uint32)srcData + ((uint32)(y * dy) * srcYOff)); ++ void* dstRow = (void*)((uintptr_t)dstData + (uintptr_t)(y * dstYOff)); ++ void* srcRow = (void*)((uintptr_t)srcData + ((uintptr_t)(y * dy) * srcYOff)); + + for (int32 x = 0; x <= width; x++) +- memcpy((void*)((uint32)dstRow + (x * bpp)), (void*)((uint32)srcRow +- + ((uint32)(x * dx) * bpp)), bpp); ++ memcpy((void*)((uintptr_t)dstRow + (x * bpp)), (void*)((uintptr_t)srcRow ++ + ((uintptr_t)(x * dx) * bpp)), bpp); + } + + std::unique_ptr bitmap(res); +diff --git a/libs/columnlistview/ColumnListView.cpp b/libs/columnlistview/ColumnListView.cpp +index baa05a2..fe3bbcb 100644 +--- a/libs/columnlistview/ColumnListView.cpp ++++ b/libs/columnlistview/ColumnListView.cpp +@@ -454,7 +454,7 @@ BRow::BRow(float height) + BRow::~BRow() + { + while (true) { +- BField* field = (BField*) fFields.RemoveItem(0L); ++ BField* field = (BField*) fFields.RemoveItem(0); + if (field == 0) + break; + +@@ -750,7 +750,7 @@ BColumnListView::BColumnListView(const char* name, uint32 flags, + + BColumnListView::~BColumnListView() + { +- while (BColumn* column = (BColumn*)fColumns.RemoveItem(0L)) ++ while (BColumn* column = (BColumn*)fColumns.RemoveItem(0)) + delete column; + } + +-- +1.8.3.4 + diff --git a/haiku-apps/ducksaver/ducksaver-1.1.0.recipe b/haiku-apps/ducksaver/ducksaver-1.1.0.recipe new file mode 100755 index 000000000..88df80e7d --- /dev/null +++ b/haiku-apps/ducksaver/ducksaver-1.1.0.recipe @@ -0,0 +1,35 @@ +SUMMARY="DuckSaver screen saver" +DESCRIPTION="DuckSaver is a screen saver which transforms your screen into a duck pool." +HOMEPAGE="http://maybe.de/software/ducksaver" +SRC_URI="git://github.com/jscipione/DuckSaver#4859bfaf74d3d42883e03c85ef02a2ef03569a19" +REVISION="1" +COPYRIGHT="2002-2008, Werner Freytag, 2009-2014 Haiku, Inc." +LICENSE="MIT" +ARCHITECTURES="x86_gcc2 x86 x86_64" +PROVIDES=" + ducksaver = $portVersion + addon:ducksaver = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc + cmd:make + cmd:mkdepend + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD() +{ + make +} + +INSTALL() +{ + mkdir -p $addOnsDir/Screen\ Savers + make install INSTALL_DIR="$addOnsDir/Screen\\ Savers/" +} diff --git a/haiku-apps/filecropper/filecropper-1.recipe b/haiku-apps/filecropper/filecropper-1.recipe new file mode 100644 index 000000000..07e5512c3 --- /dev/null +++ b/haiku-apps/filecropper/filecropper-1.recipe @@ -0,0 +1,44 @@ +SUMMARY="Truncates files of any kind." +DESCRIPTION=" +FileCropper is a GUI app which truncates files of any kind. It Cuts off \ +everything from a given offset (bytes) to the end of the file. +" +COPYRIGHT="2002 Maurice Michalski" +LICENSE="MIT" +HOMEPAGE="https://github.com/HaikuArchives/FileCropper" +SRC_URI="git://github.com/HaikuArchives/FileCropper.git#0dde0f752a" +REVISION="2" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + filecropper = $portVersion + app:filecropper = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:gcc + cmd:xres + " + +BUILD() +{ + g++ app.cpp mainWindow.cpp -lbe -o FileCropper + xres -o FileCropper FileCropper.rsrc + mimeset -f FileCropper +} + +INSTALL() +{ + mkdir -p $appsDir + cp FileCropper $appsDir + addAppDeskbarSymlink $appsDir/FileCropper +} diff --git a/haiku-apps/filer/filer-1.0.0beta3.recipe b/haiku-apps/filer/filer-1.0.0beta3.recipe new file mode 100644 index 000000000..22957c0c8 --- /dev/null +++ b/haiku-apps/filer/filer-1.0.0beta3.recipe @@ -0,0 +1,56 @@ +SUMMARY="An automated file management system" +DESCRIPTION=" +The Filer is a powerful, flexible automatic file organizer. It is an \ +implementation of the Sorting Chute idea conceived on the Glass Elevator \ +mailing list for Haiku. Just drag and drop files onto its icon, use the \ +Terminal, or send it files via the Open With menu. It can even automatically \ +file items in folders you specify. Simple enough for the novice user, powerful \ +enough for developers. It automates file management according to a set of \ +rules you determine and is pretty much limited only by your imagination. \ +Powerful on its own, it can also be extended by shell scripting. +" # Taken from homepage +HOMEPAGE="http://darkwyrm.beemulated.net/apps/filer.htm" +SRC_URI="git://github.com/HaikuArchives/Filer.git#4618b2ae9d7238254860cf3633701dd4f52dad37" +REVISION="1" + +LICENSE="MIT" +COPYRIGHT="2008 DarkWyrm" + +ARCHITECTURES="x86 x86_gcc2" + + +PROVIDES=" + filer = $portVersion + app:filer = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + lib:libsqlite3 + " + +BUILD_PREREQUIRES=" + cmd:gcc + cmd:xres + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:libsqlite3 + " + +BUILD() +{ + cd sources/Filer + gcc -lbe -lsqlite3 -ltranslation -o ../FilerApp *.cpp + rc -o Filer.rsrc Filer.rdef + xres -o ../FilerApp Filer.rsrc + mimeset -f ../FilerApp +} + +INSTALL() +{ + mkdir -p $appsDir + cp sources/FilerApp $appsDir/Filer + addAppDeskbarSymlink $appsDir/Filer +} diff --git a/haiku-apps/filwip/filwip-1.0.0.recipe b/haiku-apps/filwip/filwip-1.0.0.recipe new file mode 100644 index 000000000..52297e72e --- /dev/null +++ b/haiku-apps/filwip/filwip-1.0.0.recipe @@ -0,0 +1,59 @@ +SUMMARY="An app to clean all temporary and unwanted files" +DESCRIPTION=" +It cleans your hard disk of all unwanted files such as left-over temporary \ +files, cache files of internet sessions, logs, history files and the like. It \ +works with easy to write text files that include information about where the \ +files to delete are. +" +HOMEPAGE="https://sites.google.com/site/appfilwip/home" +SRC_URI="git://github.com/HaikuArchives/FilWip.git#8ec265e771019d31ed63be69cb8cc0d8a271f19b" +REVISION="2" + +LICENSE="SPL" +COPYRIGHT="2002 Ramshankar" + +ARCHITECTURES="x86 x86_gcc2" + + +PROVIDES=" + filwip = $portVersion + app:filwip = $portVersion + cmd:filwip = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:g++ + cmd:xres + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +USER_SETTINGS_FILES=" + settings/FilWip_settings + " + +BUILD() +{ + cd Source + g++ -o ../FilWip -lbe -ltranslation -ltracker *.cpp */*.cpp + rc -o ../FilWip.rsrc FilWip.rdef + xres -o ../FilWip ../FilWip.rsrc + mimeset -f ../FilWip +} + +INSTALL() +{ + mkdir -p $appsDir/FilWip + mkdir -p $binDir + + cp -rf Plugins $appsDir/FilWip/Plugins + cp FilWip $appsDir/FilWip/FilWip + + addAppDeskbarSymlink $appsDir/FilWip/FilWip + ln -s $appsDir/FilWip/FilWip $binDir/FilWip +} diff --git a/haiku-apps/filwip/licenses/SPL b/haiku-apps/filwip/licenses/SPL new file mode 100644 index 000000000..c21379288 --- /dev/null +++ b/haiku-apps/filwip/licenses/SPL @@ -0,0 +1,202 @@ +=================== +Somebody Public License (SPL) +=================== + +Copyright 2002-2003 Ramshankar +All rights reserved. + +1. Definitions + + 1. The term "Software" refers to BeConverter program that + accompanies this license, all associated data files including + but not limited to documentation, pictures and source code + and all files associated with the source code. Any exclusions + that does not belong to the term "Software" will be explicitly + stated in the appropriate section of this License, eg: source + files that are written by third party users etc. + + 2. The term "Author" refers to the individual V.Ramshankar, + who wrote the Software and holds the copyright. Section 5 + of this License defines the owner(s) of this Software. + + 3. The term "Commercial Use" or "Commercial distribution" + means distribution of the Software, or parts thereof, for + monetary benefits to any entity including but not limited + to companies. + + 4. The term "License" means this document. + + 5. The term "Original Code" refers to the source code for the + Software written fully by the Author. If the source code + contains third-party source code, they do not fall under this + license. When the Author makes changes to the Original + code, the changed code thereof is referred as Original Code. + Thus any code written by the Author is referred to as + Original Code. + + 6. The term "Modifications" means any addition or deletion + from the substance or structure of the Original Code by any + entity other than the Author. The modified source code will + thereof not be called Original Code as it was not modified by + the Author. + + 7. The term "Source Code" means those files that are either + compiled and/or linked by a compiler/linker to produce the + final binary file which can be executed by the Operating + System. The Source Code can either be in compressed or + archival form, provided the appropriate decompression or + de-archiving program is widely available for no charge. + + 8. The term "You" or "Your" means an individual or a legal + entity exercising rights under, and complying with all of + the terms of, this License or a future version of this + License. For legal entities, "You" includes any entity which + 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. Source Code License + + This section is only applicable if the source code is distributed by + the Author. Otherwise just ignore section 2 of this agreement. + + This section of the license does not apply to source code written + by third parties included with and/or used by the Software. These + include libraries, components and/or other third party modules' + source code. All third party code fall under their respective licenses + defined in "License.txt" of that particular code component. The + term "Code" or "Source Code" refers to the source code and/or + parts thereof, of the Software. + + 2.1.1 Using the Source Code in freeware programs + You are allowed to use parts of the Code in your program/s + provided the program is distributed totally free of cost. In this case + you must give credit to the Author in your program's interactive + mode (i.e. viewable by the end-user). Notification about the use + of the Code to the Author would be appreciated but not needed. + + 2.1.2. Using the Source Code in Commercial/Paid softwares + You are allowed to use the Code and parts thereof in commercial + or shareware programs provided you adhere to the following + condition: + The Author receives a free copy of ever major + version of the commercial/paid software through download + from a website, in the latter case the Author must be given + the details of where to download. + + 2.2.1 Modifying the Source Code + You are allowed to modify the Source Code in any manner and + distribute it, provided you disclaim the Author from any and all + responsibilities and/or liabilities and you explicitly state that the + modified distribution is not an original distribution made by the + Author and that it is in fact a modified version of the Source + Code. This modified code can be used as the Source Code/Code + in Sections 2.1.1 and 2.1.2 of this License. + + 2.2.2 Public distribution in websites etc. + Publishing the Source Code, or parts thereof and/or modified + versions of the Source Code, or parts thereof, in public mediums + such as CD-ROMs, floppy disks, DVDs and/or the Internet or in + other mediums such as books, journals etc. are allowed. If the + medium and/or viewing of the medium is commercial (providing + monetary gains to one or more entities) the Author must + be contacted to negotiate a premium. If the medium and/or + viewing of the medium is completely free of cost to the public, + informing the Author about such a medium would be appreciated. + +3. Program License + You are permitted to copy and distribute the Software any + number of times, provided you include this License and all + other License agreements (if any) that you received along with + this Software. You also must keep any and all documentation + intact. You may or may not distribute the Source Code + but if you are distributing the Source Code, it must be in + accord with Section 2 of thise License. For any enquiries with + this clause please contact the Author for clarification. Any and + all distributions here forth will be in accord to Section 3 of the License. + + 3.1.1 Bundling in Commercial distributions. + You are allowed to "bundle" this Software or parts thereof, + in a commercial or shareware distribution provided You give + credit to the Author as viewable by the end-user/customer. + And You must contact the Author for negotiating a premium + for such a distribution. The premium amount if any at all will + be determined by the Author. The amount will be in accord to + the cost of purchase of the distribution. + + 3.1.2. Bundling in Freeware distributions. + You are allowed to "bundle" this Software in any non- + commercial (freeware) distribution, meaning the distributor/s + do not gain any monetary benefits of any kind. Prior + permission must be obtained from the Author, and credit for + the Software must be explicitly mentioned as viewable by the + end-users of the package. + +4. Term and Termination + This License is effective until terminated. If you install the + Software and/or parts thereof, it implies you have read this + License and agreed to and will comply with all the terms and + conditions of this License. + + If you do not agree to any of the terms and conditions of this + License, you are not permitted to install the Software or + parts thereof, and this License will be terminated and be + void. In which case, You must remove all copies of the + Software and its install program from your all Your computer + system/s. Additionally, you may terminate this License at + any time by destroying the Software and all copies and parts + thereof in computer system/s owned by You. This License + automatically terminates if you fail to comply with all its + terms and conditions. You agree that, upon such termination, + you will destroy (permanently erase) all copies of the + Software and parts thereof, including but not limited to + documentation and data files. + +5. Ownership + You agree that you neither own nor hereby acquire any + claim or right of ownership of the Software or to any related + patents, copyrights, trademarks or other intellectual property. + You only own the magnetic or other physical media on which + the Software is recorded or fixed. The Author retains all right, + title and interest in and to all copies of the Software as recorded + on the original media and all subsequent copies of the Software + at all times, regardless of the form or media or media in or on + which the original or other copies my subsequently exist. The + License is not a sale of the original or any subsequent copy. + +6. Disclaimer + THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT + NOT LIMITED TO, THE IMPLIED WARRANTIES OF TITLE, + NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + SHALL THE AUTHOR 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. + +7. Additional Information + If you have questions about this License, or if you wish to + contact the author for any reason, you may write to following + e-mail address: + + ramshankar@bemail.org + ramshankar@themail.com + + Or visit the following website for the latest info on how + to contact the author: + + http://www.geocities.com/ram_beos/ + +All cited trademarks and registered trademarks are the property +of their respective owners. diff --git a/haiku-apps/finance/finance-1.0.0.recipe b/haiku-apps/finance/finance-1.0.0.recipe new file mode 100644 index 000000000..e6318511c --- /dev/null +++ b/haiku-apps/finance/finance-1.0.0.recipe @@ -0,0 +1,51 @@ +SUMMARY="Manage all your finances with this easy-to-use app!" +DESCRIPTION=" +Finance is an app made to provide all features expected from personal finance \ +software while using the style of Haiku. It can be used to balance multiple \ +accounts and you can import Quicken or Money data, reconcile statements, view \ +spending categorization and net worth trends, all with customizable categories \ +and payees. +" +HOMEPAGE="https://github.com/HaikuArchives/Finance" +SRC_URI="git://github.com/HaikuArchives/Finance.git#33513a1c44b6f94a46ccae563f19a64440dea46a" +REVISION="1" +LICENSE="GNU GPL v2" +COPYRIGHT=" + 2001 Bunru Software + 2009 Pier Luigi Fiorini + " + +ARCHITECTURES="x86_gcc2" + +PROVIDES=" + finance = $portVersion + app:finance = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:xres + cmd:gcc + cmd:jam + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +USER_SETTINGS_FILES=" + settings/BeFinancial_data + " + +BUILD() +{ + runConfigure ./configure + jam +} + +INSTALL() +{ + mkdir -p $appsDir + cp generated/distro-haiku-*-release/Finance $appsDir + addAppDeskbarSymlink $appsDir/Finance +} diff --git a/haiku-apps/foldershaper/foldershaper-1.0.recipe b/haiku-apps/foldershaper/foldershaper-1.0.recipe new file mode 100644 index 000000000..c93c0ccb5 --- /dev/null +++ b/haiku-apps/foldershaper/foldershaper-1.0.recipe @@ -0,0 +1,50 @@ +SUMMARY="A tool to retro-fit looks and layout of existing folders" +DESCRIPTION=" +If you want your folders to have a certain icon, set of columns, backgrounds, \ +pergaps even some default content, FolderShaper lets you chnage all that in a \ +snap. Create a perfect folder, add it as a foldershaper template, then drop \ +your folders on FolderShaper and select the template from the pop-up menu. +" +HOMEPAGE="https://github.com/HaikuArchives/FolderShaper" +SRC_URI="git://github.com/HaikuArchives/FolderShaper.git" +REVISION="1" +LICENSE="Public Domain" +COPYRIGHT="2005 Jonas Sundström" +ARCHITECTURES="x86 x86_gcc2" + +PROVIDES=" + foldershaper = $portVersion + app:foldershaper = $portVersion + addon:foldershaper = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc + cmd:make + cmd:mkdepend + " + +BUILD() +{ + cd Source + make +} + +INSTALL() +{ + cd Source + make install INSTALL_DIR=$appsDir/FolderShaper + mkdir -p $addOnsDir/Tracker + ln -s $appsDir/FolderShaper/FolderShaper $addOnsDir/Tracker + addAppDeskbarSymlink $appsDir/FolderShaper/FolderShaper "FolderShaper" + cp ../README $appsDir/FolderShaper/README +} diff --git a/haiku-apps/fontboy/fontboy-0.9.7.recipe b/haiku-apps/fontboy/fontboy-0.9.7.recipe new file mode 100644 index 000000000..0157ffcc5 --- /dev/null +++ b/haiku-apps/fontboy/fontboy-0.9.7.recipe @@ -0,0 +1,48 @@ +SUMMARY="A small application to show your installed fonts in Haiku." +DESCRIPTION=" +Fontboy is a small application to show your installed fonts in Haiku. You can \ +get additional information of the selected font and a preview of the complete \ +Unicode charset. Fontboy allows you to adjust the appearence to your desired \ +needs and it's fast because Haiku is. +" +HOMEPAGE="https://github.com/HaikuArchives/FontBoy" +SRC_URI="git://github.com/HaikuArchives/FontBoy.git#2195924e69096a5e7a9774cfaec8fdc277045ecf" +REVISION="1" +LICENSE="FontBoy" +COPYRIGHT="1999-2003 Oliver 'Madison' Kohl" + +ARCHITECTURES="x86 x86_gcc2" + +PROVIDES=" + fontboy = $portVersion + app:fontboy = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_PREREQUIRES=" + makefile_engine + cmd:g++ + cmd:xres + cmd:mkdepend + cmd:make + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " +USER_SETTINGS_FILES=" + settings/Fontboy_prefs + " + +BUILD() +{ + cd src + make +} + +INSTALL() +{ + cd src + make install INSTALL_DIR=$appsDir/ + addAppDeskbarSymlink $appsDir/FontBoy +} diff --git a/haiku-apps/fontboy/licenses/FontBoy b/haiku-apps/fontboy/licenses/FontBoy new file mode 100644 index 000000000..db7d4cc26 --- /dev/null +++ b/haiku-apps/fontboy/licenses/FontBoy @@ -0,0 +1 @@ +Feel free to copy and distribute this version of Fontboy as you want, as long as the original archive remains unchanged. In no event shall I be held liable for any damages arising from the use of this software. Be and BeOS are registered trademarks of Palm Inc. All other trademarks mentioned belong to their respective owners. diff --git a/haiku-apps/fortuna/fortuna-1.0.0.recipe b/haiku-apps/fortuna/fortuna-1.0.0.recipe new file mode 100644 index 000000000..89cac231c --- /dev/null +++ b/haiku-apps/fortuna/fortuna-1.0.0.recipe @@ -0,0 +1,52 @@ +SUMMARY="A small GUI for showing the well known fortunes" +DESCRIPTION=" +Fortuna is a nice-looking graphical program which displays a fortune when you \ +open it. Yeah, sure, there is already a fortune program, but it only shows \ +from the command line, you'll get a lot of repeats, it's quite a bit of work \ +to install more, and you have to muck around with your UserBootScript. Lots of \ +messing around. Then again, you can use Fortuna, which has none of this. +" # Taken from homepage +HOMEPAGE="http://darkwyrm.beemulated.net/apps/fortuna.htm" +SRC_URI="git://github.com/HaikuArchives/Fortuna.git#9e0cd6c1e6" +REVISION="1" + +LICENSE="MIT" +COPYRIGHT="2006 DarkWyrm" + +ARCHITECTURES="x86 x86_gcc2" + +PATCHES="fortuna-1.0.0.patch" + +PROVIDES=" + fortuna = $portVersion + app:fortuna = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:gcc + cmd:xres + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD() +{ + + rc src/Fortuna.rdef + g++ -o Fortuna -lbe src/main.cpp src/FortuneWindow.cpp src/FortuneFunctions.cpp + xres -o Fortuna src/Fortuna.rsrc + mimeset -f Fortuna +} + +INSTALL() +{ + mkdir -p $appsDir + cp Fortuna $appsDir + addAppDeskbarSymlink $appsDir/Fortuna +} diff --git a/haiku-apps/fortuna/patches/fortuna-1.0.0.patch b/haiku-apps/fortuna/patches/fortuna-1.0.0.patch new file mode 100644 index 000000000..d3603b43b --- /dev/null +++ b/haiku-apps/fortuna/patches/fortuna-1.0.0.patch @@ -0,0 +1,97 @@ +diff --git a/src/FortuneFunctions.cpp b/src/FortuneFunctions.cpp +index 5fc031a..c083cee 100644 +--- a/src/FortuneFunctions.cpp ++++ b/src/FortuneFunctions.cpp +@@ -13,6 +13,11 @@ FortuneAccess::FortuneAccess(const char *folder) + SetFolder(folder); + } + ++FortuneAccess::FortuneAccess() ++{ ++ ++} ++ + FortuneAccess::~FortuneAccess(void) + { + MakeEmpty(); +diff --git a/src/FortuneFunctions.h b/src/FortuneFunctions.h +index 07cb8f5..85eb1e0 100644 +--- a/src/FortuneFunctions.h ++++ b/src/FortuneFunctions.h +@@ -8,6 +8,7 @@ class FortuneAccess + { + public: + FortuneAccess(const char *folder); ++ FortuneAccess(); + ~FortuneAccess(void); + + status_t SetFolder(const char *folder); +diff --git a/src/FortuneWindow.cpp b/src/FortuneWindow.cpp +index d79c7f5..0f3bcf8 100644 +--- a/src/FortuneWindow.cpp ++++ b/src/FortuneWindow.cpp +@@ -1,22 +1,30 @@ + #include "FortuneWindow.h" + #include +-#include +-#include +-#include + #include ++#include ++#include ++#include + #include ++#include ++#include + + #define M_GET_ANOTHER_FORTUNE 'gafn' + #define M_ABOUT_REQUESTED 'abrq' + + FortuneWindow::FortuneWindow(void) +- : BWindow(BRect(0,0,300,300),"Fortune",B_DOCUMENT_WINDOW,B_ASYNCHRONOUS_CONTROLS), +- fFortune("/boot/beos/etc/fortunes") ++ : BWindow(BRect(0,0,300,300),"Fortune",B_DOCUMENT_WINDOW,B_ASYNCHRONOUS_CONTROLS), ++ fFortune() + { ++ BPath path; ++ find_directory(B_SYSTEM_DATA_DIRECTORY, &path); ++ path.Append("fortunes"); ++ ++ fFortune.SetFolder(path.Path()); ++ + BView *back = new BView(Bounds(),"background",B_FOLLOW_ALL, B_WILL_DRAW); + back->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); + AddChild(back); +- ++ + BButton *close = new BButton(BRect(0,0,1,1),"closebutton","Close", + new BMessage(B_QUIT_REQUESTED), B_FOLLOW_RIGHT | B_FOLLOW_BOTTOM); + close->ResizeToPreferred(); +@@ -63,7 +71,9 @@ FortuneWindow::FortuneWindow(void) + { + fTextView->SetText("Fortuna had a problem getting a fortune.\n\n" + "Please make sure that you have installed fortune files to " +- "the folder /boot/beos/etc/fortunes."); ++ "the folder "); ++ fTextView->Insert(path.Path()); ++ fTextView->Insert("."); + } + + next->MakeFocus(true); +@@ -100,9 +110,15 @@ void FortuneWindow::MessageReceived(BMessage *msg) + } + else + { ++ BPath path; ++ find_directory(B_SYSTEM_DATA_DIRECTORY, &path); ++ path.Append("fortunes"); ++ + fTextView->SetText("Fortuna had a problem getting a fortune.\n\n" + "Please make sure that you have installed fortune files to " +- "the folder /boot/beos/etc/fortunes."); ++ "the folder "); ++ fTextView->Insert(path.Path()); ++ fTextView->Insert("."); + } + } + else diff --git a/haiku-apps/friss/friss-0.7_svn.recipe b/haiku-apps/friss/friss-0.7_svn.recipe deleted file mode 100644 index 4ab354445..000000000 --- a/haiku-apps/friss/friss-0.7_svn.recipe +++ /dev/null @@ -1,29 +0,0 @@ -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/friss/friss-0.8beta.recipe b/haiku-apps/friss/friss-0.8beta.recipe new file mode 100644 index 000000000..912d38b00 --- /dev/null +++ b/haiku-apps/friss/friss-0.8beta.recipe @@ -0,0 +1,36 @@ +SUMMARY="RSS and ATOM feeds reader" +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/src#44" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86" +PROVIDES=" + friss = $portVersion + app:friss = $portVersion + " + +BUILD_REQUIRES=" + cmd:jam + cmd:gcc + haiku_devel >= $haikuVersion + " +BUILD() +{ + if [ x86_gcc2 -ne $buildArchitecture ]; then + sed -i 's/lstdc++.r4/lstdc++/' Jamfile + fi + jam +} + +INSTALL() +{ + mkdir -p $appsDir/fRiSS + cp -a friss $appsDir/fRiSS/ + addAppDeskbarSymlink $appsDir/fRiSS/friss fRiSS +} + +LICENSE="MIT" +COPYRIGHT="2004 Andreas Herzig (N3S) + 2010-2013 Adrien Destugues (PulkoMandy)" diff --git a/haiku-apps/ftppositive/ftppositive-1.0.recipe b/haiku-apps/ftppositive/ftppositive-1.0.recipe new file mode 100644 index 000000000..264cc8299 --- /dev/null +++ b/haiku-apps/ftppositive/ftppositive-1.0.recipe @@ -0,0 +1,45 @@ +SUMMARY="A simple graphical FTP client" +DESCRIPTION=" +FtpPositive is a simple graphical FTP client. +" +HOMEPAGE="https://github.com/HaikuArchives/FtpPositive" +SRC_URI="git+https://github.com/HaikuArchives/FtpPositive#442f47a22f" +COPYRIGHT="2007 momoziro" +LICENSE="FtpPositive" + +REVISION="2" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + ftppositive = $portVersion + app:ftppositive = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:gcc + cmd:jam" + +BUILD() +{ + cd src + jam + + #too lazy to fix the jamfile + mimeset -f FtpPositive +} + +INSTALL() +{ + mkdir -p $appsDir + cp -a src/FtpPositive $appsDir + addAppDeskbarSymlink $appsDir/FtpPositive +} diff --git a/haiku-apps/ftppositive/licenses/FtpPositive b/haiku-apps/ftppositive/licenses/FtpPositive new file mode 100644 index 000000000..64d748695 --- /dev/null +++ b/haiku-apps/ftppositive/licenses/FtpPositive @@ -0,0 +1 @@ +Copyright momoziro 2007 All Rights Reserved. diff --git a/haiku-apps/hare/hare-1.1.1.recipe b/haiku-apps/hare/hare-1.1.1.recipe new file mode 100644 index 000000000..57b23bb34 --- /dev/null +++ b/haiku-apps/hare/hare-1.1.1.recipe @@ -0,0 +1,54 @@ +SUMMARY="Haiku Audio Ripper Encoder" +DESCRIPTION=" +Hare - Haiku Audio Ripper Encoder, formerly known as Flip-Side A.E. +" +HOMEPAGE="http://github.com/HaikuArchives/Hare" +SRC_URI="git://github.com/HaikuArchives/Hare.git#af69ba7b06" +LICENSE="MIT" +COPYRIGHT="2000 FlipSide Software + 2001-2003 BeUnited.org + 2009-2013 Hare Maintainers + " + +REVISION="1" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + Hare = $portVersion + app:Hare = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + cmd:lame + cmd:oggenc$secondaryArchSuffix + cmd:flac$secondaryArchSuffix + cmd:gogo_enc$secondaryArchSuffix + lib:libtag$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libtag$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:cmake + cmd:make + " + +BUILD() +{ + cmake . + make +} + +INSTALL() +{ + mkdir -p $appsDir/Hare + cp -r build/* $appsDir/Hare + addAppDeskbarSymlink $appsDir/Hare/Hare Hare +} diff --git a/haiku-apps/hare/hare-beta1_git.recipe b/haiku-apps/hare/hare-beta1_git.recipe deleted file mode 100644 index 5bb48106f..000000000 --- a/haiku-apps/hare/hare-beta1_git.recipe +++ /dev/null @@ -1,30 +0,0 @@ -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/jammin/jammin-0.1.0.recipe b/haiku-apps/jammin/jammin-0.1.0.recipe new file mode 100644 index 000000000..5a906c8a5 --- /dev/null +++ b/haiku-apps/jammin/jammin-0.1.0.recipe @@ -0,0 +1,50 @@ +SUMMARY="The Jamfile Administrator" +DESCRIPTION=" +The JamMin manages your jamfiles. Jamfiles are the thing that is most \ +important to the user, bacause they declare the targets that should be built. \ +Jamfiles are also used for organizing targets— each Jamfile is a separate \ +project that can be built independently from the other projects. +" +HOMEPAGE="https://github.com/HaikuArchives/JamMin" +SRC_URI="git+https://github.com/HaikuArchives/JamMin.git#681e87d6d4" +REVISION="2" +COPYRIGHT="2003 Guido Casiraghi" +LICENSE="MIT" + +ARCHITECTURES="x86_gcc2 !x86 !x86_64" + +PROVIDES=" + JamMin = $portVersion + app:JamMin = $portVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc + cmd:make + cmd:mkdepend + " + +REQUIRES=" + haiku >= $haikuVersion + " + +PATCHES="jampatch-1.patch" + + +BUILD() +{ + make OBJ_DIR=objects \ + BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` +} + +INSTALL() +{ + mkdir -p $appsDir + cp objects/JamApp $appsDir + addAppDeskbarSymlink $appsDir/JamApp +} diff --git a/haiku-apps/jammin/patches/jampatch-1.patch b/haiku-apps/jammin/patches/jampatch-1.patch new file mode 100644 index 000000000..ab7bb8b26 --- /dev/null +++ b/haiku-apps/jammin/patches/jampatch-1.patch @@ -0,0 +1,51 @@ +diff --git a/JamMin.rdef b/JamMin.rdef +index 1707392..a46587d 100644 +--- a/JamMin.rdef ++++ b/JamMin.rdef +@@ -13,10 +13,7 @@ resource app_version { + variety = B_APPV_ALPHA, + internal = 0, + +- short_info = "The Jamfile Administrator", +- long_info = #'CSTR' array { +- +- } ++ short_info = "The Jamfile Administrator" + }; + + resource app_flags B_SINGLE_LAUNCH; +diff --git a/JamMinWindow.cpp b/JamMinWindow.cpp +index 2b0077f..2b3c9af 100644 +--- a/JamMinWindow.cpp ++++ b/JamMinWindow.cpp +@@ -1001,10 +1001,6 @@ JamMinWindow::IsSystemLibraryPath(BPath* libPath) + //if (ret == B_OK) { + if ( strcmp(libPath->Path(), path.Path()) == 0 ) return true; + //} +- ret = find_directory(B_COMMON_LIB_DIRECTORY, &path); +- if (ret == B_OK) { +- if ( strcmp(libPath->Path(), path.Path()) == 0 ) return true; +- } + + ret = find_directory(B_USER_LIB_DIRECTORY, &path); //the same as B_COMMON_LIB_DIRECTORY + if (ret == B_OK) { +diff --git a/makefile b/makefile +new file mode 100644 +index 0000000..8514e9d +--- /dev/null ++++ b/makefile +@@ -0,0 +1,14 @@ ++## JamMin makefile for Haiku OS ## ++ ++NAME= JamApp ++ ++TYPE= APP ++ ++SRCS= TargetSettingsWin.cpp TargetConfig.cpp main.cpp LinkerSettingsView.cpp JMOpenFilePanel.cpp JamMinWindow.cpp JamMinApp.cpp JamFile.cpp IncludeSettingsView.cpp GeneralSettingsView.cpp CompilerSettingsView.cpp ++RDEFS= JamMin.rdef ++LIBS= be stdc++.r4 root tracker ++OPTIMIZE= FULL ++WARNINGS = ALL ++ ++## include makefile engine ++include $(BUILDHOME)/etc/makefile-engine diff --git a/haiku-apps/keymapswitcher/keymapswitcher-1.2.7.10.recipe b/haiku-apps/keymapswitcher/keymapswitcher-1.2.7.10.recipe index 174a7daa3..03e09df07 100644 --- a/haiku-apps/keymapswitcher/keymapswitcher-1.2.7.10.recipe +++ b/haiku-apps/keymapswitcher/keymapswitcher-1.2.7.10.recipe @@ -1,5 +1,9 @@ SUMMARY="Easy to use Keymap Switcher for Haiku" -DESCRIPTION="This is a keymap switcher for Haiku. It is very similar to what you used to have in windows to change the keymap with hotkeys, but has some additional features (and lacks some, for sure)." +DESCRIPTION=" +This is a keymap switcher for Haiku. It is very similar to what you used to \ +have in windows to change the keymap with hotkeys, but has some additional \ +features (and lacks some, for sure). +" HOMEPAGE="http://www.sf.net/projects/switcher" COPYRIGHT="1999-2003 Stas Maximov" LICENSE="BSD (4-clause)" @@ -24,7 +28,6 @@ BUILD_PREREQUIRES=" cmd:mkdepend " -SOURCE_DIR="$portVersionedName" PATCH() { diff --git a/haiku-apps/keymapswitcher/keymapswitcher-1.2.7.11.recipe b/haiku-apps/keymapswitcher/keymapswitcher-1.2.7.11.recipe new file mode 100644 index 000000000..71a969d4b --- /dev/null +++ b/haiku-apps/keymapswitcher/keymapswitcher-1.2.7.11.recipe @@ -0,0 +1,53 @@ +SUMMARY="Easy to use Keymap Switcher for Haiku" +DESCRIPTION=" +This is a keymap switcher for Haiku. It is very similar to what you used to \ +have in windows to change the keymap with hotkeys, but has some additional \ +features (and lacks some, for sure). +" +HOMEPAGE="http://www.sf.net/projects/switcher" +COPYRIGHT="1999-2003 Stas Maximov" +LICENSE="BSD (4-clause)" +SRC_URI="cvs://:pserver:anonymous@switcher.cvs.sourceforge.net:/cvsroot/switcher/keymapswitcher(haiku)#release_1_2_7_11" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" + +PROVIDES=" + keymapswitcher = $portVersion compat >= 1.2.7 + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + makefile_engine + cmd:gcc + cmd:ld + cmd:make + cmd:mkdepend + " + + +PATCHES="keymapswitcher-$portVersion.patchset" +PATCH() +{ + # Fix makefile not to use BUILDHOME as an install dir variable. + sed -i "s,BUILDHOME,HPKG_INSTALL_DIR,g" makefile +} + +BUILD() +{ + make $jobArgs BUILDHOME=/boot/system/develop HPKG_INSTALL_DIR=$prefix +} + +INSTALL() +{ + # We're not interested in the package, but that target copies the + # interesting files to a well-known directory structure. Otherwise we'd have + # to find out the name of the object dir and collect everything ourselves. + # Obviously an install target would be even better. + make BUILDHOME=/boot/system/develop HPKG_INSTALL_DIR=$prefix hpkg + + addPreferencesDeskbarSymlink $preferencesDir/KeymapSwitcher +} diff --git a/haiku-apps/keymapswitcher/keymapswitcher-1.2.7.9.recipe b/haiku-apps/keymapswitcher/keymapswitcher-1.2.7.9.recipe index d73ddd84a..e94097d48 100644 --- a/haiku-apps/keymapswitcher/keymapswitcher-1.2.7.9.recipe +++ b/haiku-apps/keymapswitcher/keymapswitcher-1.2.7.9.recipe @@ -1,5 +1,9 @@ SUMMARY="Easy to use Keymap Switcher for Haiku" -DESCRIPTION="This is a keymap switcher for Haiku. It is very similar to what you used to have in windows to change the keymap with hotkeys, but has some additional features (and lacks some, for sure)." +DESCRIPTION=" +This is a keymap switcher for Haiku. It is very similar to what you used to \ +have in windows to change the keymap with hotkeys, but has some additional \ +features (and lacks some, for sure). +" HOMEPAGE="http://www.sf.net/projects/switcher" COPYRIGHT="1999-2003 Stas Maximov" LICENSE="BSD (4-clause)" @@ -24,7 +28,6 @@ BUILD_PREREQUIRES=" cmd:mkdepend " -SOURCE_DIR="$portVersionedName" PATCH() { diff --git a/haiku-apps/keymapswitcher/patches/keymapswitcher-1.2.7.11.patchset b/haiku-apps/keymapswitcher/patches/keymapswitcher-1.2.7.11.patchset new file mode 100644 index 000000000..b46fde143 --- /dev/null +++ b/haiku-apps/keymapswitcher/patches/keymapswitcher-1.2.7.11.patchset @@ -0,0 +1,21 @@ +From 5b34e6a6930216d0855e58bebc168e6dc50f76cc Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Fri, 7 Feb 2014 15:24:16 +0100 +Subject: Fix gcc2 build. + + +diff --git a/SettingsWindow.h b/SettingsWindow.h +index 251fb38..de49f94 100644 +--- a/SettingsWindow.h ++++ b/SettingsWindow.h +@@ -78,6 +78,7 @@ class SettingsWindow: public BWindow + virtual void SelectionChanged(); + virtual void MouseDown(BPoint point); + }; ++ friend class KeymapOutlineListView; + + class MoveButton : public BPictureButton + { +-- +1.8.3.4 + diff --git a/haiku-apps/konfetti/konfetti-1.0.0.recipe b/haiku-apps/konfetti/konfetti-1.0.0.recipe new file mode 100644 index 000000000..da1418473 --- /dev/null +++ b/haiku-apps/konfetti/konfetti-1.0.0.recipe @@ -0,0 +1,42 @@ +SUMMARY="A little screensaver which draws confetti on your desktop" +DESCRIPTION=" +Konfetti is a small screensaver which draws semi-transparent confetti on your \ +desktop. +" +HOMEPAGE="https://github.com/HaikuArchives/Konfetti/" +SRC_URI="git://github.com/HaikuArchives/Konfetti.git#b667a6e39bc28300298c66bed6209c5141b04e71" +REVISION="1" +COPYRIGHT="2001 Werner Freytag" +LICENSE="MIT" + +ARCHITECTURES="x86_gcc2 x86 x86_64" + +PROVIDES=" + konfetti = $portVersion + app:konfetti = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc + cmd:mkdepend + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD() +{ + cd src + make +} + +INSTALL() +{ + mkdir -p $addOnsDir/Screen\ Savers + cd src + make install INSTALL_DIR=temp + mv temp/* $addOnsDir/Screen\ Savers +} diff --git a/haiku-apps/launchpad/launchpad-1.3.recipe b/haiku-apps/launchpad/launchpad-1.3.recipe new file mode 100644 index 000000000..93e823650 --- /dev/null +++ b/haiku-apps/launchpad/launchpad-1.3.recipe @@ -0,0 +1,62 @@ +SUMMARY="A simple BeOS application/file/folder launcher" +DESCRIPTION=" +A simple BeOS application/file/folder launcher. +" +HOMEPAGE="http://sourceforge.net/projects/launchpad" +SRC_URI="http://launchpad.cvs.sourceforge.net/viewvc/launchpad/buta/LaunchPad/?view=tar&pathrev=release-1-3-0" +SRC_FILENAME="launchpad-1.3.tar.gz" +CHECKSUM_MD5="9001e130b7ceb90aaef9791b8fac1afb" + +REVISION="1" +LICENSE="BSD (3-clause)" +COPYRIGHT="1997-2000 Hiromasa Kato" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + launchpad = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libprefs + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + lib:libprefs + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:autoconf + cmd:libtool + cmd:aclocal + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +SOURCE_DIR="LaunchPad" + +PATCHES=" + configure.patch + configure.in.patch + Makefile.in.patch + " + +BUILD() +{ + libtoolize --force --copy --install + ./configure --with-libprefs=$portPackageLinksDir/lib~libprefs/lib + make +} + +INSTALL() +{ + mkdir -p $appsDir + cp src/LaunchPad $appsDir + addAppDeskbarSymlink $appsDir/LaunchPad + +} diff --git a/haiku-apps/launchpad/patches/Makefile.in.patch b/haiku-apps/launchpad/patches/Makefile.in.patch new file mode 100644 index 000000000..640f62bd6 --- /dev/null +++ b/haiku-apps/launchpad/patches/Makefile.in.patch @@ -0,0 +1,13 @@ +diff --git a/src/Makefile.in b/src/Makefile.in +index 15486d7..c8c4802 100644 +--- a/src/Makefile.in ++++ b/src/Makefile.in +@@ -25,7 +25,7 @@ RSRCS = LaunchPad_ppc.rsrc + + OBJS = $(addsuffix .o, $(foreach file, $(SRCS), $(basename $(notdir $(file))))) + +-LIBS = $(LIBPREFSDIR)/bigprefs.$(CPU).a -lbe ++LIBS = $(LIBPREFSDIR)/libprefs.so -lbe # Was first $(LIBPREFSDIR)/bigprefs.$(CPU).a + + all: LaunchPad + diff --git a/haiku-apps/launchpad/patches/configure.in.patch b/haiku-apps/launchpad/patches/configure.in.patch new file mode 100644 index 000000000..18bdaf601 --- /dev/null +++ b/haiku-apps/launchpad/patches/configure.in.patch @@ -0,0 +1,26 @@ +diff --git a/configure.in b/configure.in +index 9cd3a85..0138f84 100644 +--- a/configure.in ++++ b/configure.in +@@ -20,21 +20,6 @@ esac + AC_SUBST(CPU) + + dnl ------------------------------------------------------------------- +-dnl Check for BeOS R4 +-dnl ------------------------------------------------------------------- +-AC_MSG_CHECKING( [BeOS Release] ) +-release=[$(uname -r | sed 's/\([^\.]*\)\..*/\1/')] +-case "$release" in +- 5|4) +- AC_MSG_RESULT( [post-R4] ) +- ;; +- *) +- AC_MSG_RESULT( [not R4] ) +- AC_MSG_ERROR( [BeOS Release 4 is required] ) +- ;; +-esac +- +-dnl ------------------------------------------------------------------- + dnl Check for libprefs source distribution + dnl ------------------------------------------------------------------- + AC_ARG_WITH( libprefs, [ --with-libprefs=PATH path to the libprefs distribution ] ) diff --git a/haiku-apps/launchpad/patches/configure.patch b/haiku-apps/launchpad/patches/configure.patch new file mode 100644 index 000000000..bec72bfbe --- /dev/null +++ b/haiku-apps/launchpad/patches/configure.patch @@ -0,0 +1,13 @@ +diff --git a/configure b/configure +index a438f22..1162706 100755 +--- a/configure ++++ b/configure +@@ -585,7 +585,7 @@ echo $ac_n "checking BeOS Release ""... $ac_c" 1>&6 + echo "configure:586: checking BeOS Release " >&5 + release=$(uname -r | sed 's/\([^\.]*\)\..*/\1/') + case "$release" in +- 5|4) ++ 5|4|1) + echo "$ac_t""post-R4 " 1>&6 + ;; + *) diff --git a/haiku-apps/masterpiece/masterpiece-r742.recipe b/haiku-apps/masterpiece/masterpiece-r742.recipe new file mode 100644 index 000000000..8d523a3cf --- /dev/null +++ b/haiku-apps/masterpiece/masterpiece-r742.recipe @@ -0,0 +1,59 @@ +SUMMARY="New way to create opendocument compatible books/documents" +DESCRIPTION=" +This is an attempt to create a new way to create documents or books. It moves \ +away from the WYSIWYG paradigm of microsoft word, openoffice, etc. etc. etc. \ +It takes a more keyboard only, thought flowing and typing markup language, \ +object oriented approach where a user who has ideas or thoughts can jot these \ +down and have them go into a list. to build their document/book, they would \ +then order the list of thoughts, images, tables, etc. into the correct order \ +and preview/publish their book. +" +HOMEPAGE="http://code.google.com/p/masterpiece/" +SRC_URI="svn+http://masterpiece.googlecode.com/svn/trunk#r742" + +REVISION="1" + +LICENSE="MIT" +COPYRIGHT="2010-2012 Pasquale J. Rinaldi, Jr." + +ARCHITECTURES="x86_gcc2 !x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 !x86" + +PROVIDES=" + masterpiece = $portVersion + app:masterpiece = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libsqlite3$secondaryArchSuffix + lib:liblayout + lib:libpython2.6 + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libsqlite3$secondaryArchSuffix + devel:libpython2.6 + " +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:mkdepend + cmd:make + " + +PATCHES="masterpiece-r742.patch" + +BUILD() +{ + make BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` \ + OBJ_DIR=objects +} + +INSTALL() +{ + mkdir -p $appsDir + + cp objects/MasterPiece $appsDir + addAppDeskbarSymlink $appsDir/MasterPiece +} diff --git a/haiku-apps/masterpiece/patches/masterpiece-r742.patch b/haiku-apps/masterpiece/patches/masterpiece-r742.patch new file mode 100644 index 000000000..664639a2f --- /dev/null +++ b/haiku-apps/masterpiece/patches/masterpiece-r742.patch @@ -0,0 +1,150 @@ +diff -Pur masterpiece/Makefile masterpiece-haiku/Makefile +--- masterpiece/Makefile 1970-01-01 00:00:00.000000000 +0000 ++++ masterpiece-haiku/Makefile 2013-12-31 20:32:00.608960512 +0000 +@@ -0,0 +1,146 @@ ++## BeOS Generic Makefile v2.5 ## ++ ++## Fill in this file to specify the project being created, and the referenced ++## makefile-engine will do all of the hard work for you. This handles both ++## Intel and PowerPC builds of the BeOS and Haiku. ++ ++## Application Specific Settings --------------------------------------------- ++ ++# specify the name of the binary ++NAME= MasterPiece ++ ++# specify the type of binary ++#        APP:        Application ++#        SHARED:        Shared library or add-on ++#        STATIC:        Static library archive ++#        DRIVER: Kernel Driver ++TYPE= APP ++ ++#         if you plan to use localization features ++#         specify the application MIME siganture ++APP_MIME_SIG= ++ ++#        add support for new Pe and Eddie features ++#        to fill in generic makefile ++ ++#%{ ++# @src->@ ++ ++#        specify the source files to use ++#        full paths or paths relative to the makefile can be included ++#         all files, regardless of directory, will have their object ++#        files created in the common object directory. ++#        Note that this means this makefile will not work correctly ++#        if two source files with the same name (source.c or source.cpp) ++#        are included from different directories. Also note that spaces ++#        in folder names do not work well with this makefile. ++SRCS= AboutWindow.cpp App.cpp BuilderButton.cpp BuilderListView.cpp \ ++CommonFunctions.cpp EditIdeaName.cpp EditorTextView.cpp HelperWindows.cpp \ ++HelpStringItem.cpp IdeaStringItem.cpp MainMenu.cpp MarkupWindow.cpp \ ++MPBuilder.cpp MPEditor.cpp MPLauncher.cpp PublishFilePanel.cpp SaveIdea.cpp ++ ++#        specify the resource definition files to use ++#        full path or a relative path to the resource file can be used. ++RDEFS= Resources.rdef ++ ++#        specify the resource files to use. ++#        full path or a relative path to the resource file can be used. ++#        both RDEFS and RSRCS can be defined in the same makefile. ++RSRCS= Resources.rsrc ++ ++# @<-src@ ++#%} ++ ++#        end support for Pe and Eddie ++ ++#        specify additional libraries to link against ++#        there are two acceptable forms of library specifications ++#        -        if your library follows the naming pattern of: ++#                libXXX.so or libXXX.a you can simply specify XXX ++#                library: libbe.so entry: be ++# ++#        -        for version-independent linking of standard C++ libraries please add ++#                $(STDCPPLIBS) instead of raw "stdc++[.r4] [supc++]" library names ++# ++#        -        for localization support add following libs: ++#                locale localestub ++#                ++#        -         if your library does not follow the standard library ++#                naming scheme you need to specify the path to the library ++#                and it's name ++#                library: my_lib.a entry: my_lib.a or path/my_lib.a ++LIBS=root be sqlite3 $(STDCPPLIBS) python2.6 tracker ++ ++#        specify additional paths to directories following the standard ++#        libXXX.so or libXXX.a naming scheme. You can specify full paths ++#        or paths relative to the makefile. The paths included may not ++#        be recursive, so include all of the paths where libraries can ++#        be found. Directories where source files are found are ++#        automatically included. ++LIBPATHS= ++ ++#        additional paths to look for system headers ++#        thes use the form: #include
++#        source file directories are NOT auto-included here ++SYSTEM_INCLUDE_PATHS= ++ ++#        additional paths to look for local headers ++#        thes use the form: #include "header" ++#        source file directories are automatically included ++LOCAL_INCLUDE_PATHS= ++ ++#        specify the level of optimization that you desire ++#        NONE, SOME, FULL ++OPTIMIZE= ++ ++#         specify here the codes for languages you are going ++#         to support in this application. The default "en" ++#         one must be provided too. "make catkeys" will recreate only ++#         locales/en.catkeys file. Use it as template for creating other ++#         languages catkeys. All localization files must be placed ++#         in "locales" sub-directory. ++LOCALES= ++ ++#        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= ++ ++#        specify whether image symbols will be created ++#        so that stack crawls in the debugger are meaningful ++#        if TRUE symbols will be created ++SYMBOLS= ++ ++#        specify debug settings ++#        if TRUE will allow application to be run from a source-level ++#        debugger. Note that this will disable all optimzation. ++DEBUGGER= ++ ++#        specify additional compiler flags for all files ++COMPILER_FLAGS= -g ++ ++#        specify additional linker flags ++LINKER_FLAGS= ++ ++#        specify the version of this particular item ++#        (for example, -app 3 4 0 d 0 -short 340 -long "340 "`echo -n -e '\302\251'`"1999 GNU GPL") ++#        This may also be specified in a resource. ++APP_VERSION= ++ ++#        (for TYPE == DRIVER only) Specify desired location of driver in the /dev ++#        hierarchy. Used by the driverinstall rule. E.g., DRIVER_PATH = video/usb will ++#        instruct the driverinstall rule to place a symlink to your driver's binary in ++#        ~/add-ons/kernel/drivers/dev/video/usb, so that your driver will appear at ++#        /dev/video/usb when loaded. Default is "misc". ++DRIVER_PATH= ++ ++## include the makefile-engine ++include $(BUILDHOME)/etc/makefile-engine diff --git a/haiku-apps/minimizeall/minimizeall-1.0.0.recipe b/haiku-apps/minimizeall/minimizeall-1.0.0.recipe new file mode 100644 index 000000000..74aaee786 --- /dev/null +++ b/haiku-apps/minimizeall/minimizeall-1.0.0.recipe @@ -0,0 +1,71 @@ +SUMMARY="Minimize all your apps with the press of a button!" +DESCRIPTION=" +MinimizeAll is a small app that minimizes all your apps with the press of a \ +button on the Deskbar, or with a keypress. The app contains two parts: A \ +standalone app that minimizes the whole app, and a replicant for your Deskbar. \ +Both do the same: Minimize all your apps! +" +HOMEPAGE="https://github.com/HaikuArchives/MinimizeAll/" +SRC_URI="git://github.com/HaikuArchives/MinimizeAll.git#12fefdf26131375f695693a680bf01edb35d57a9" + +REVISION="1" + +COPYRIGHT=" + 2001-2008 Werner Freytag + 2009 Haiku + " + +LICENSE="MIT" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + MinimizeAll = $portVersion + app:MinimizeAll = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:gcc + cmd:xres + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " +BUILD() +{ + cd trunk + mkdir -p bin + + # Step 1 - Building the app + cd app + gcc -o ../bin/MinimizeAll -lbe main.cpp ../minimize.cpp + rc -o ../bin/MinimizeAll.rsrc Application.rdef + xres -o ../bin/MinimizeAll ../bin/MinimizeAll.rsrc + mimeset -f ../bin/MinimizeAll + cd .. + + # Step 2 - The DeskBar AddOn! + cd "deskbar add-on" + gcc -o ../bin/DeskbarAddOn -lbe DeskbarView.cpp ../minimize.cpp + rc -o ../bin/DeskbarAddOn.rsrc DeskbarAddOn.rdef + xres -o ../bin/DeskbarAddOn ../bin/DeskbarAddOn.rsrc + mimeset -f ../bin/DeskbarAddOn + cd .. + +} + +INSTALL() +{ + mkdir -p $appsDir/MinimizeAll + cp trunk/bin/MinimizeAll $appsDir/MinimizeAll/MinimizeAll + cp trunk/bin/DeskbarAddOn $appsDir/MinimizeAll/DeskbarAddOn + addAppDeskbarSymlink $appsDir/MinimizeAll/MinimizeAll + mkdir -p "$dataDir/deskbar/menu/Desktop applets" + symlinkRelative -s "$appsDir/MinimizeAll/DeskbarAddOn" \ + "$dataDir/deskbar/menu/Desktop applets/MinimizeAll" +} diff --git a/haiku-apps/mkdepend/mkdepend-1.7.recipe b/haiku-apps/mkdepend/mkdepend-1.7.recipe index d79500d01..7fa822c5f 100644 --- a/haiku-apps/mkdepend/mkdepend-1.7.recipe +++ b/haiku-apps/mkdepend/mkdepend-1.7.recipe @@ -1,5 +1,8 @@ SUMMARY="MkDepend for BeOS" -DESCRIPTION="MkDepend scans C-source files recursively for includes and writes the found dependency trees into an existing makefile." +DESCRIPTION=" +MkDepend scans C-source files recursively for includes and writes the found \ +dependency trees into an existing makefile. +" HOMEPAGE="http://www.bearnip.com/lars/be/mkdepend.html" LICENSE="MIT" COPYRIGHT="1995-2001 Lars Düning. All Rights Reserved" @@ -24,7 +27,6 @@ BUILD_PREREQUIRES=" cmd:ld " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/haiku-apps/mrpeeps/mrpeeps-1.2_beta.recipe b/haiku-apps/mrpeeps/mrpeeps-1.2_beta.recipe new file mode 100644 index 000000000..c5aa54163 --- /dev/null +++ b/haiku-apps/mrpeeps/mrpeeps-1.2_beta.recipe @@ -0,0 +1,43 @@ +SUMMARY="Easy to use powerful contact manager for haiku" +DESCRIPTION=" +MrPeeps is an app for managing People files that has more features than other \ +contact managers. For more info read the README file. +" +HOMEPAGE="https://github.com/HaikuArchives/MrPeeps" +SRC_URI="git+https://github.com/HaikuArchives/MrPeeps#ce2e65" +LICENSE="MIT" +COPYRIGHT="2003 DarkWyrm" +REVISION="1" +ARCHITECTURES="x86 x86_gcc2 x86_64" +PROVIDES=" + MrPeeps = $portVersion + app:MrPeeps = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:gcc + " +PATCHES="MrPeeps-1.2_beta.patch" + +BUILD() +{ + cd src + cp Locale\ Support/* ./ + g++ -lbe -ltranslation -lroot AboutWindow.cpp BitmapDump.cpp \ + BitmapView.cpp BStringList.cpp DataView.cpp Formatting.cpp \ + IntroView.cpp ListData.cpp MrPeeps.cpp NewTextControl.cpp \ + PeepsItem.cpp PeepsWindow.cpp PeopleList.cpp LocaleRoster.cpp \ + Locale.cpp TextFile.cpp -o ../MrPeeps +} + +INSTALL() +{ + mkdir -p $appsDir + cp -f ./MrPeeps $appsDir + addAppDeskbarSymlink $appsDir/MrPeeps +} diff --git a/haiku-apps/mrpeeps/patches/MrPeeps-1.2_beta.patch b/haiku-apps/mrpeeps/patches/MrPeeps-1.2_beta.patch new file mode 100644 index 000000000..069aa06a4 --- /dev/null +++ b/haiku-apps/mrpeeps/patches/MrPeeps-1.2_beta.patch @@ -0,0 +1,50 @@ +diff -Naur -x .git /boot/home/MrPeeps/src/ListData.h ./src/ListData.h +--- /boot/home/MrPeeps/src/ListData.h 2013-12-01 19:17:49.441188352 +0400 ++++ ./src/ListData.h 2013-12-09 19:07:33.235667456 +0400 +@@ -3,10 +3,11 @@ + + #include + #include ++#include + #include +-#include "BStringList.h" + #include + #include "BitmapDump.h" ++#include "BStringList.h" + + class PeepsListItem; + class GroupItem; +diff -Naur -x .git /boot/home/MrPeeps/src/PeepsWindow.h ./src/PeepsWindow.h +--- /boot/home/MrPeeps/src/PeepsWindow.h 2013-12-01 19:17:49.467927040 +0400 ++++ ./src/PeepsWindow.h 2013-12-09 19:07:59.108789760 +0400 +@@ -1,16 +1,18 @@ + #ifndef PEEPSWINDOW_H + #define PEEPSWINDOW_H + +-#include +-#include +-#include +-#include + #include ++#include ++#include + #include + #include +-#include "NewTextControl.h" + #include ++#include ++#include ++#include ++#include + #include "LocaleRoster.h" ++#include "NewTextControl.h" + + class PeopleList; + class PeepsListItem; +@@ -117,4 +119,4 @@ + + #define TRANSLATE(x) gCurrentLocale->Translate(x).String() + +-#endif +\ No newline at end of file ++#endif diff --git a/haiku-apps/netpulse/netpulse-0.2.3.recipe b/haiku-apps/netpulse/netpulse-0.2.3.recipe new file mode 100644 index 000000000..f2d0d5733 --- /dev/null +++ b/haiku-apps/netpulse/netpulse-0.2.3.recipe @@ -0,0 +1,44 @@ +SUMMARY="NetPulse by Carlos Hasan" +DESCRIPTION=" + Network status replicant that gives an indication of data being sent \ + or received over the network. + " +HOMEPAGE="https://github.com/HaikuArchive/NetPulse" +SRC_URI="git://github.com/jscipione/NetPulse#a04b459309827ace18418539618bf07511000aac" +COPYRIGHT="Copyright 2001 Carlos Hasan" +LICENSE="MIT" +REVISION="1" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + netpulse = $portVersion + " +REQUIRES="" + +BUILD_REQUIRES="haiku >= $haikuVersion" + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + makefile_engine + cmd:gcc$secondaryArchSuffix + cmd:make + cmd:mkdepend + " + +BUILD() +{ + make $jobArgs +} + +INSTALL() +{ + mkdir -p $appsDir + cp objects*/NetPulse $appsDir/NetPulse + + # Add a symlink to the Desktop applets directory in Deskbar + desktopAppletsDir="$dataDir/deskbar/menu/Desktop applets" + mkdir -p "$desktopAppletsDir" + ln -s $appsDir/NetPulse "$desktopAppletsDir" +} diff --git a/haiku-apps/nightandday/nightsandday-0.1.2.recipe b/haiku-apps/nightandday/nightsandday-0.1.2.recipe new file mode 100644 index 000000000..324793d85 --- /dev/null +++ b/haiku-apps/nightandday/nightsandday-0.1.2.recipe @@ -0,0 +1,49 @@ +SUMMARY="Automatic desktop color changer" +DESCRIPTION=" +This program was inspired by the 'TaveDesktop' program by the Tave Software \ +Group. I think that 'TaveDesktop' was a good idea, but I wanted to be able to \ +choose my own colors, since the 'TaveDesktop' colors looks bad on an 8bpp \ +display. +This program should be self-explanatory. You'll find a small Popup menu when \ +clicking the small screen at the top-right corner of the window. +" +COPYRIGHT="1998-1999 Jean-Baptiste M. Queru" +LICENSE="GNU GPL v2" +HOMEPAGE="https://github.com/HaikuArchives/NightAndDay" +SRC_URI="git+git://github.com/HaikuArchives/NightAndDay.git#3bcc1a5a39" +REVISION="2" + +ARCHITECTURES="x86_gcc2 !x86 !x86_64" + +PROVIDES=" + nightanddays = $portVersion + app:nightanddays = $portVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:gcc + cmd:ld + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD() +{ + cd src + g++ -o NightAndDay nd.cpp -fno-pic -fomit-frame-pointer -ffast-math -Wall -W -Wno-multichar -Werror -D PI=3.141592 -lbe +} + +INSTALL() +{ + mkdir -p $appsDir + cp src/NightAndDay $appsDir + mkdir -p $docDir + cp ReadMe $docDir + addAppDeskbarSymlink $appsDir/NightAndDay +} diff --git a/haiku-apps/open_sum_it/open_sum_it-108.recipe b/haiku-apps/open_sum_it/open_sum_it-108.recipe deleted file mode 100644 index a37479aee..000000000 --- a/haiku-apps/open_sum_it/open_sum_it-108.recipe +++ /dev/null @@ -1,26 +0,0 @@ -DESCRIPTION="Open-Sum-It" -HOMEPAGE="http://dev.osdrawer.net/projects/sum-it" -SRC_URI="svn+http://svn.osdrawer.net/sum-it/sum-it#108" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="bsl >= 108 - rez >= 108" -#CHECKSUM_MD5="" - -BUILD() -{ - cd open-sum-it-108 - make -} - -INSTALL() -{ - cd open-sum-it-108 - APPS_DIR=`finddir B_APPS_DIRECTORY` - mkdir -p ${DESTDIR}${APPS_DIR}/Open-Sum-It - cp Sum-It ${DESTDIR}${APPS_DIR}/Open-Sum-It/Open-Sum-It -} - -LICENSE="BSD (4-clause)" -COPYRIGHT="1996-1998, 2000 Hekkelman Programmatuur B.V. All rights reserved. - 1999-2000 Tim Vernum. All rights reserved." diff --git a/haiku-apps/optipngtranslator/optipngtranslator-0.0.1.recipe b/haiku-apps/optipngtranslator/optipngtranslator-0.0.1.recipe new file mode 100644 index 000000000..523fed676 --- /dev/null +++ b/haiku-apps/optipngtranslator/optipngtranslator-0.0.1.recipe @@ -0,0 +1,50 @@ +SUMMARY="Save optimized PNG files" +DESCRIPTION=" +The OptiPNGTranslator for Haiku allows you to save images as PNG files which \ +have been optimized by OptiPNG. +" +HOMEPAGE="https://github.com/noryb009/OptiPNGTranslator/" +SRC_URI="git://github.com/noryb009/OptiPNGTranslator.git#8e3996a92d840f3c097cf954e001d4f371265161" +LICENSE="MIT" +COPYRIGHT="2013 Luke (noryb009)" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" + +if [ $buildArchitecture = x86_gcc2 ] && \ + [ $targetArchitecture = x86_gcc2 ]; then + optipngSuffix="_x86" +fi + +PROVIDES=" + optipngtranslator = $portVersion + app:optipngtranslator = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + cmd:optipng$optipngSuffix + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:as + cmd:gcc + makefile_engine + cmd:make + cmd:mkdepend + " + +BUILD() +{ + make \ + BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` \ + TARGET_DIR=. +} + +INSTALL() +{ + mkdir -p $addOnsDir/Translators + cp OptiPNGTranslator $addOnsDir/Translators +} diff --git a/haiku-apps/organizer/organizer-0.1.recipe b/haiku-apps/organizer/organizer-0.1.recipe new file mode 100644 index 000000000..58b4e480a --- /dev/null +++ b/haiku-apps/organizer/organizer-0.1.recipe @@ -0,0 +1,57 @@ +SUMMARY="An organizer to keep track on your appointments, notes and stuff" +DESCRIPTION=" +An organizer that helps you keep track on your appointments, notes and stuff. +" +COPYRIGHT="2013 Marius Stene" +LICENSE="Public Domain" +HOMEPAGE="https://github.com/HaikuArchives/Organizer" +SRC_URI="git+https://github.com/HaikuArchives/Organizer#a534f0e992" +REVISION="2" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + organizer = $portVersion + app:organizer = $portVersion + lib:libfSub + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc + cmd:make + cmd:mkdepend + " + +REQUIRES=" + haiku >= $haikuVersion + " + +PATCHES="organizer-0.1.patch" + +USER_SETTINGS_FILES=" + settings/fSub directory" + +PATCHES="organizer-0.1.patchset" + +BUILD() +{ + cd Source + make OBJ_DIR=objects BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` +} + +INSTALL() +{ + mkdir -p $appsDir + cp Organizer $appsDir + + cd Source/lib + mkdir -p $libDir + cp libfSub.so $libDir + + addAppDeskbarSymlink $appsDir/Organizer +} diff --git a/haiku-apps/organizer/patches/organizer-0.1.patchset b/haiku-apps/organizer/patches/organizer-0.1.patchset new file mode 100644 index 000000000..3bf5d9b7d --- /dev/null +++ b/haiku-apps/organizer/patches/organizer-0.1.patchset @@ -0,0 +1,562 @@ +From 9c4c954831ab5388dfc2bd18b1a220ca8b6e3b47 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Mon, 2 Dec 2013 18:52:50 -0700 +Subject: applying patch organizer-0.1.patch + + +diff --git a/Source/App/Secret/glView.cpp b/Source/App/Secret/glView.cpp +index 96ef6c5..931e9a6 100644 +--- a/Source/App/Secret/glView.cpp ++++ b/Source/App/Secret/glView.cpp +@@ -22,7 +22,7 @@ + // Constructor/destructor + TutGLView::TutGLView( Wind *owner_wind, BRect frame, const char *name, + int32 mode, int32 flags ) +- : BGLView( frame, const_cast( name ), mode, flags, ++ : BGLView( frame, name, mode, flags, + BGL_RGB | BGL_DOUBLE | BGL_DEPTH ), + pad_x( 1.0 ), + pad_y(-2.0), +@@ -131,7 +131,7 @@ void TutGLView::ErrorCallback( GLenum err ) + // out. You'll have to run the application from a Terminal to see + // these. + fprintf( stderr, "Unexpected error occured (%ld):\n", err ); +- fprintf( stderr, "\t%s\n", gluErrorString( err ) ); ++ //fprintf( stderr, "\t%s\n", gluErrorString( err ) ); + } + + void TutGLView::Render( void ) +@@ -164,7 +164,7 @@ void TutGLView::gInit( void ) + glMatrixMode( GL_PROJECTION ); + glLoadIdentity(); + BRect r = Bounds(); +- gluPerspective( 45.0, r.Width() / r.Height(), 0.1, 100.0 ); ++ //gluPerspective( 45.0, r.Width() / r.Height(), 0.1, 100.0 ); + glMatrixMode( GL_MODELVIEW ); + } + +@@ -178,7 +178,7 @@ void TutGLView::gReshape( int width, int height ) + glViewport( 0, 0, width, height ); + glMatrixMode( GL_PROJECTION ); + glLoadIdentity(); +- gluPerspective( 45.0, (float)width/(float)height, 0.1, 100.0 ); ++ //gluPerspective( 45.0, (float)width/(float)height, 0.1, 100.0 ); + glMatrixMode( GL_MODELVIEW ); + } + +diff --git a/Source/App/calenderView.cpp b/Source/App/calenderView.cpp +index 54f6930..d72b47e 100644 +--- a/Source/App/calenderView.cpp ++++ b/Source/App/calenderView.cpp +@@ -55,7 +55,7 @@ mCalender->SetDay(mCalender->ThisDay()); + //Load Settings + MSave load("load"); + +-find_directory(B_COMMON_SETTINGS_DIRECTORY, &Path); ++find_directory(B_SYSTEM_SETTINGS_DIRECTORY, &Path); + String.SetTo(Path.Path()); + String.Append(SAVE_SETTINGS_PATH); + Path.SetTo(String.String()); +diff --git a/Source/App/editScriptView.cpp b/Source/App/editScriptView.cpp +index a4df6d3..70a2cd4 100644 +--- a/Source/App/editScriptView.cpp ++++ b/Source/App/editScriptView.cpp +@@ -145,7 +145,7 @@ BString tempString2; + BString tempString3; + BString FilePath; + +-find_directory(B_COMMON_SETTINGS_DIRECTORY, &fPath); ++find_directory(B_SYSTEM_SETTINGS_DIRECTORY, &fPath); + tempString.SetTo(fPath.Path()); + tempString.Append(SAVE_HISTORY_PATH); + fPath = tempString.String(); +@@ -183,7 +183,7 @@ BPath Path; + int ItemNumber = 1; + MSave Save("Save"); + +-find_directory(B_COMMON_SETTINGS_DIRECTORY, &Path); ++find_directory(B_SYSTEM_SETTINGS_DIRECTORY, &Path); + tempString.SetTo(Path.Path()); + tempString.Append(SAVE_HISTORY_PATH); + for (int a = 1; a <= INT_MAXFILES; a++) +diff --git a/Source/App/editWindow.cpp b/Source/App/editWindow.cpp +index 6684829..1feb57e 100644 +--- a/Source/App/editWindow.cpp ++++ b/Source/App/editWindow.cpp +@@ -302,7 +302,7 @@ BString FilePath; + MSave Save("save"); + if(!strcmp(fPath.String(), "")) + { +- find_directory(B_COMMON_SETTINGS_DIRECTORY, &Path); ++ find_directory(B_SYSTEM_SETTINGS_DIRECTORY, &Path); + fPath.SetTo(Path.Path()); + fPath.Append(SAVE_NOTE_PATH); + Path = fPath.String(); +@@ -359,7 +359,7 @@ BEntry Entry("/boot/home"); + MSave Save("save"); + if(!strcmp(fPath.String(), "")) + { +- find_directory(B_COMMON_SETTINGS_DIRECTORY, &Path); ++ find_directory(B_SYSTEM_SETTINGS_DIRECTORY, &Path); + fPath.SetTo(Path.Path()); + fPath.Append(SAVE_NOTE_PATH); + Path = fPath.String(); +@@ -430,7 +430,7 @@ BEntry Entry("/boot/home"); + MSave Save("save"); + if(!strcmp(fPath.String(), "")) + { +- find_directory(B_COMMON_SETTINGS_DIRECTORY, &Path); ++ find_directory(B_SYSTEM_SETTINGS_DIRECTORY, &Path); + fPath.SetTo(Path.Path()); + fPath.Append(SAVE_HISTORY_PATH); + Path = fPath.String(); +@@ -509,7 +509,7 @@ BString FilePath; + MSave Save("save"); + if(!strcmp(fPath.String(), "")) + { +- find_directory(B_COMMON_SETTINGS_DIRECTORY, &Path); ++ find_directory(B_SYSTEM_SETTINGS_DIRECTORY, &Path); + fPath.SetTo(Path.Path()); + fPath.Append(SAVE_NOTE_PATH); + Path = fPath.String(); +diff --git a/Source/App/exportWindow.cpp b/Source/App/exportWindow.cpp +index 1ed3d33..0db456b 100644 +--- a/Source/App/exportWindow.cpp ++++ b/Source/App/exportWindow.cpp +@@ -114,7 +114,7 @@ BPath Path; + BEntry Entry("/boot/home"); + MSave Load("Load"); + +-find_directory(B_COMMON_SETTINGS_DIRECTORY, &Path); ++find_directory(B_SYSTEM_SETTINGS_DIRECTORY, &Path); + fFolderPath.SetTo(Path.Path()); + fFolderPath.Append(SAVE_NOTE_PATH); + +diff --git a/Source/App/mWindow.cpp b/Source/App/mWindow.cpp +index 597f4ad..426bf83 100644 +--- a/Source/App/mWindow.cpp ++++ b/Source/App/mWindow.cpp +@@ -339,7 +339,7 @@ void mWindow::GetSettingsPath(BPath *path) + { + BPath Path; + BString string; +-find_directory(B_COMMON_SETTINGS_DIRECTORY, &Path); ++find_directory(B_SYSTEM_SETTINGS_DIRECTORY, &Path); + string.SetTo(Path.Path()); + string.Append(SAVE_SETTINGS_PATH); + path->SetTo(string.String()); +@@ -358,7 +358,7 @@ BString tempString4; + BString FilePath; + BEntry Entry("/boot/home"); + +-find_directory(B_COMMON_SETTINGS_DIRECTORY, &fPath); ++find_directory(B_SYSTEM_SETTINGS_DIRECTORY, &fPath); + tempString.SetTo(fPath.Path()); + tempString.Append(SAVE_NOTE_PATH); + fPath = tempString.String(); +diff --git a/Source/App/main.cpp b/Source/App/main.cpp +index 88a0269..aaf47e6 100644 +--- a/Source/App/main.cpp ++++ b/Source/App/main.cpp +@@ -11,7 +11,7 @@ int main(int32 argc, char** argv) + BPath path; + BString tmp; + MSave savefile("savefile"); +-find_directory(B_COMMON_SETTINGS_DIRECTORY, &path); ++find_directory(B_SYSTEM_SETTINGS_DIRECTORY, &path); + tmp.SetTo(path.Path()); + tmp.Append(SAVE_SETTINGS_PATH); + path.SetTo(tmp.String()); +@@ -62,7 +62,7 @@ RunNotification = true; + \Notes + *********************************************/ + //Make sure all the folders are there +-find_directory(B_COMMON_SETTINGS_DIRECTORY, &path); ++find_directory(B_SYSTEM_SETTINGS_DIRECTORY, &path); + //Make fSub folder + tmp.SetTo("mkdir "); + tmp.Append(path.Path()); +@@ -364,7 +364,7 @@ void mApp::MessageReceived(BMessage *message) + BString tempString; + BString tempString2; + BPath Path; +- find_directory(B_COMMON_SETTINGS_DIRECTORY, &Path); ++ find_directory(B_SYSTEM_SETTINGS_DIRECTORY, &Path); + tempString.SetTo(path.Path()); + tempString.Append(SAVE_SETTINGS_PATH); + save.FindString(tempString.String(), SAVE_FILE_NAME, NAME_EXEC_DIR, &tempString2, "M_ERROR"); +@@ -476,7 +476,7 @@ int32 + mApp::CheckForUpdateThread_static(void *data) + { + mApp *check4updates = (mApp *)data; +- check4updates->CheckForUpdateThread(); ++ //check4updates->CheckForUpdateThread(); + return 0; + } + +@@ -577,7 +577,7 @@ BEntry Entry("/boot/home"); + tmpString << _mWindow->_CalenderView->mCalender->ThisYear(); + _mWindow->Unlock(); + +- find_directory(B_COMMON_SETTINGS_DIRECTORY, &Path); ++ find_directory(B_SYSTEM_SETTINGS_DIRECTORY, &Path); + FolderPath.SetTo(Path.Path()); + FolderPath << SAVE_NOTE_PATH; + for (int a = 1; a <= INT_MAXFILES; a++) +@@ -631,7 +631,7 @@ BEntry Entry("/boot/home"); + if (NowMinute == TodayMinute && NowHour == TodayHour) + { + Save.FindString(FolderPath.String(), FileName.String(), SAVE_FILE_NOTE, &tmpString, "M_ERROR"); +- find_directory(B_COMMON_SETTINGS_DIRECTORY, &Path); ++ find_directory(B_SYSTEM_SETTINGS_DIRECTORY, &Path); + FolderPath.SetTo(Path.Path()); + FolderPath << SAVE_PATH_PART_1 << SAVE_PATH_PART_2; + FileName.SetTo("TempRunScript"); +diff --git a/Source/App/makefile b/Source/App/makefile +index 40cc7b6..dd0b811 100644 +--- a/Source/App/makefile ++++ b/Source/App/makefile +@@ -29,7 +29,7 @@ LIBS= root \ + translation \ + fSub + DEFINES= +-LIBPATHS= ../../lib ++LIBPATHS= ../lib + + SYSTEM_INCLUDE_PATHS = + LOCAL_INCLUDE_PATHS = +diff --git a/Source/App/obsolete/Language.cpp b/Source/App/obsolete/Language.cpp +index 0c23228..89aa24b 100644 +--- a/Source/App/obsolete/Language.cpp ++++ b/Source/App/obsolete/Language.cpp +@@ -201,7 +201,7 @@ void mWindow::SetSettingsPath(BPath *path) + { + BPath Path; + BString string; +-find_directory(B_COMMON_SETTINGS_DIRECTORY, &Path); ++find_directory(B_SYSTEM_SETTINGS_DIRECTORY, &Path); + string.SetTo(Path.Path()); + string.Append(SAVE_SETTINGS_PATH); + path->SetTo(string.String()); +diff --git a/Source/App/preferencesView.cpp b/Source/App/preferencesView.cpp +index 4b45894..e5ad788 100644 +--- a/Source/App/preferencesView.cpp ++++ b/Source/App/preferencesView.cpp +@@ -49,7 +49,7 @@ AddChild(mSettingsBox); + + MSave load("load"); + +-find_directory(B_COMMON_SETTINGS_DIRECTORY, &Path); ++find_directory(B_SYSTEM_SETTINGS_DIRECTORY, &Path); + String.SetTo(Path.Path()); + String.Append(SAVE_SETTINGS_PATH); + Path.SetTo(String.String()); +diff --git a/Source/App/preferencesWindow.cpp b/Source/App/preferencesWindow.cpp +index f93ebfa..7b0f391 100644 +--- a/Source/App/preferencesWindow.cpp ++++ b/Source/App/preferencesWindow.cpp +@@ -39,7 +39,7 @@ void PreferencesWindow::MessageReceived(BMessage *message) + BPath Path; + BString String; + +- find_directory(B_COMMON_SETTINGS_DIRECTORY, &Path); ++ find_directory(B_SYSTEM_SETTINGS_DIRECTORY, &Path); + String.SetTo(Path.Path()); + String.Append(SAVE_SETTINGS_PATH); + String.Append(SAVE_FILE_NAME); +diff --git a/Source/lib/makefile b/Source/lib/makefile +index 0e9b9fb..0758c08 100644 +--- a/Source/lib/makefile ++++ b/Source/lib/makefile +@@ -1,4 +1,4 @@ +-NAME= ../../../lib/libfSub.so ++NAME= ../libfSub.so + TYPE= SHARED + SRCS= Bitmap.cpp \ + Bubble.cpp \ +-- +1.8.3.4 + + +From f6aca393df0895574cec3aac1c03cda254085b84 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Mon, 2 Dec 2013 19:16:30 -0700 +Subject: Misc fixes + + +diff --git a/Source/App/Constants.h b/Source/App/Constants.h +index 3e709f9..6d1172e 100644 +--- a/Source/App/Constants.h ++++ b/Source/App/Constants.h +@@ -6,7 +6,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +diff --git a/Source/App/Secret/glView.cpp b/Source/App/Secret/glView.cpp +index 931e9a6..11cb5e7 100644 +--- a/Source/App/Secret/glView.cpp ++++ b/Source/App/Secret/glView.cpp +@@ -7,7 +7,7 @@ + #include "glWindow.h" + + #include +-#include ++//#include + #include + #include + #include +diff --git a/Source/App/exportWindow.cpp b/Source/App/exportWindow.cpp +index 0db456b..5971456 100644 +--- a/Source/App/exportWindow.cpp ++++ b/Source/App/exportWindow.cpp +@@ -210,7 +210,7 @@ fContent << "\n"; + fSaveTo.Append("/"); + fSaveTo.Append(_ExportView->mFileNameControl->Text()); + FILE* file = fopen(fSaveTo.String(), "w"); +-cout << fSaveTo.String() << endl; ++std::cout << fSaveTo.String() << std::endl; + fprintf(file, fContent.String()); + fclose(file); + } +diff --git a/Source/App/main.cpp b/Source/App/main.cpp +index aaf47e6..aa6d86d 100644 +--- a/Source/App/main.cpp ++++ b/Source/App/main.cpp +@@ -409,16 +409,16 @@ void mApp::MessageReceived(BMessage *message) + //----------------------------------------------------------------- + void mApp::RefsReceived(BMessage *message) + { +-cout << "REFS RECIEVED!! " << endl; ++std::cout << "REFS RECIEVED!! " << std::endl; + //Get Filepanelpath + int32 count = 0; + uint32 type = 0; + message->GetInfo("refs", &type, &count); +-cout << "type is " << type << "count is " << count << endl; ++std::cout << "type is " << type << "count is " << count << std::endl; + for (int32 i = 0; i < count; i++) + { + entry_ref ref; +- cout << " asd its " << i << endl; ++ std::cout << " asd its " << i <FindRef("refs", i, &ref) == B_NO_ERROR) + { + BEntry entry(&ref); +@@ -432,12 +432,12 @@ cout << "type is " << type << "count is " << count << endl; + } + else + { +- cout << "2_" << endl; ++ std::cout << "2_" << std::endl; + } + } + else + { +- cout << "1_" << endl; ++ std::cout << "1_" << std::endl; + } + } + } +diff --git a/Source/App/makefile b/Source/App/makefile +index dd0b811..7db6791 100644 +--- a/Source/App/makefile ++++ b/Source/App/makefile +@@ -20,9 +20,8 @@ SRCS=aboutWindow.cpp \ + Secret/glView.cpp \ + Secret/glWindow.cpp + RSRCS= Project.rsrc +-LIBS= root \ +- be \ +- stdc++.r4 \ ++LIBS= be \ ++ $(STDCPPLIBS) \ + game \ + GL \ + tracker \ +@@ -38,7 +37,7 @@ DRIVER_PATH = + APP_VERSION = + DEBUGGER = + LINKER_FLAGS = +-COMPILER_FLAGS = ++CFLAGS= -fpermissive + SYMBOLS = + WARNINGS = + +diff --git a/Source/lib/Alert.cpp b/Source/lib/Alert.cpp +index b079d5e..1de9b04 100644 +--- a/Source/lib/Alert.cpp ++++ b/Source/lib/Alert.cpp +@@ -52,7 +52,7 @@ Button1_Text.SetTo(button1_text); + + + _SetupEverything(); +-cout << "Setup everything" << endl; ++std::cout << "Setup everything" << std::endl; + } + + //----------------------------------------------------------------- +@@ -124,7 +124,7 @@ SetTitle(Alert_Name.String()); + } + else + { +- cout << "only one button" << endl; ++ std::cout << "only one button" << std::endl; + TempFrame.Set(ButtonPostItsFrame3.left, ButtonPostItsFrame3.top, ButtonPostItsFrame3.right, ButtonPostItsFrame3.bottom); + } + if (fButton3Enabled) +@@ -143,7 +143,7 @@ SetTitle(Alert_Name.String()); + } + else + { +- cout << "Only two buttons" << endl; ++ std::cout << "Only two buttons" << std::endl; + TempFrame.Set(ButtonPostItsFrame3.left, ButtonPostItsFrame3.top, ButtonPostItsFrame3.right, ButtonPostItsFrame3.bottom); + } + AlertButton2 = new BButton(TempFrame, "AlertButton2", Button2_Text.String(), new BMessage(MSG_BUTTON2)); +@@ -153,7 +153,7 @@ SetTitle(Alert_Name.String()); + //3 + if (fButton3Enabled) + { +- cout << "OMG, three buttons" << endl; ++ std::cout << "OMG, three buttons" << std::endl; + TempFrame.Set(ButtonPostItsFrame3.left, ButtonPostItsFrame3.top, ButtonPostItsFrame3.right, ButtonPostItsFrame3.bottom); + AlertButton3 = new BButton(TempFrame, "AlertButton3", Button3_Text.String(), new BMessage(MSG_BUTTON3)); + AlertButton3->MakeDefault(true); +diff --git a/Source/lib/Alert.h b/Source/lib/Alert.h +index ae91d88..8b87263 100644 +--- a/Source/lib/Alert.h ++++ b/Source/lib/Alert.h +@@ -6,7 +6,7 @@ + #include + #include + #include +-#include ++#include + + #define MSG_BUTTON1 '1001' + #define MSG_BUTTON2 '1002' +diff --git a/Source/lib/Bubble.h b/Source/lib/Bubble.h +index 6c0e3e9..7b13a91 100644 +--- a/Source/lib/Bubble.h ++++ b/Source/lib/Bubble.h +@@ -6,7 +6,7 @@ + #include + #include + #include +-#include ++#include + + + class _EXPORT MBubble +diff --git a/Source/lib/Calender.cpp b/Source/lib/Calender.cpp +index 2918439..5d2a89f 100644 +--- a/Source/lib/Calender.cpp ++++ b/Source/lib/Calender.cpp +@@ -266,7 +266,7 @@ _SetBoxBounds(); + //We dont take your false dates around here + if (fYear < 2000 || fMonthNumber > 12 || fMonthNumber < 1 || fDayNumber > 31 || fDayNumber < 1) + { +- cout << "Date doesnt exist" << endl; ++ std::cout << "Date doesnt exist" << std::endl; + } + //If American style, add one more day (they are stupid and begin the week with a sunday) + if (fCalenderIsAmericaStyle) +diff --git a/Source/lib/Calender.h b/Source/lib/Calender.h +index c9aacb1..0c62dc5 100644 +--- a/Source/lib/Calender.h ++++ b/Source/lib/Calender.h +@@ -9,7 +9,7 @@ + #include + #include + #include +-#include ++#include + + // Project Includes ------------------------------------------------------------ + +@@ -122,4 +122,4 @@ BString fDayNumberString; + + }; + +-#endif +\ No newline at end of file ++#endif +diff --git a/Source/lib/CustomListItem.h b/Source/lib/CustomListItem.h +index d252ad1..9609697 100644 +--- a/Source/lib/CustomListItem.h ++++ b/Source/lib/CustomListItem.h +@@ -9,7 +9,7 @@ + #include + #include + #include +-#include ++#include + + //----------------------- Global includes ---------------------- + +diff --git a/Source/lib/Postit.h b/Source/lib/Postit.h +index 84a9650..2eb8c58 100644 +--- a/Source/lib/Postit.h ++++ b/Source/lib/Postit.h +@@ -6,7 +6,7 @@ + #include + #include + #include +-#include ++#include + + #define MSG_BUTTON1 '1001' + #define MSG_BUTTON2 '1002' +diff --git a/Source/lib/Save.h b/Source/lib/Save.h +index c3604a8..a7770b3 100644 +--- a/Source/lib/Save.h ++++ b/Source/lib/Save.h +@@ -6,7 +6,7 @@ + #include + #include + #include +-#include ++#include + + + class _EXPORT MSave : public BMessage { +@@ -130,4 +130,4 @@ class _EXPORT MSave : public BMessage { + + }; + +-#endif +\ No newline at end of file ++#endif +diff --git a/Source/lib/makefile b/Source/lib/makefile +index 0758c08..04c355e 100644 +--- a/Source/lib/makefile ++++ b/Source/lib/makefile +@@ -7,9 +7,8 @@ SRCS= Bitmap.cpp \ + FlickerFreeStringView.cpp \ + Postit.cpp \ + Save.cpp +-LIBS= root \ +- be \ +- stdc++.r4 ++LIBS= be \ ++ $(STDCPPLIBS) + RSRCS= + DEFINES= + LIBPATHS= +@@ -21,7 +20,7 @@ DRIVER_PATH = + APP_VERSION = + DEBUGGER = + LINKER_FLAGS = +-COMPILER_FLAGS = ++CFLAGS= -fpermissive + SYMBOLS = + WARNINGS = + +-- +1.8.3.4 + diff --git a/haiku-apps/paladin/paladin-1.3.recipe b/haiku-apps/paladin/paladin-1.3.recipe index dc671765c..b74ba4f5e 100644 --- a/haiku-apps/paladin/paladin-1.3.recipe +++ b/haiku-apps/paladin/paladin-1.3.recipe @@ -1,41 +1,116 @@ -DESCRIPTION="Paladin is an open source integrated development environment (IDE) modeled after BeOS' BeIDE." -HOMEPAGE="http://paladin.sourceforge.net" +SUMMARY="Paladin is a open source integrated development environment (IDE)" +DESCRIPTION=" +Paladin is an open source integrated development environment (IDE) modeled \ +after BeOS' BeIDE. +" +HOMEPAGE="http://paladin.sourceforge.net" SRC_URI="http://sourceforge.net/projects/paladin/files/Paladin-1.3.src.zip/download" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="dev-libs/libpcre >= 8.02" -CHECKSUM_MD5="5cf4b445f77626f71956ccc325ed77dc" +CHECKSUM_SHA256="5f804544f9cc489697d08eee5795b22de76961c62c3882af2cc15d095d7766f4" +REVISION="2" +LICENSE="MIT" +COPYRIGHT="2008-2010 DarkWyrm" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86 x86_64" + +PROVIDES=" + paladin = $portVersion + app:paladin = $portVersion + paledit = $portVersion + app:paledit = $portVersion + symbolfinder = $portVersion + app:symbolfinder = $portVersion + libhekkel = $portVersion + lib:libhekkel = $portVersion + rez = $portVersion + cmd:rez = $portVersion +" +REQUIRES=" + haiku >= $haikuVersion + lib:libpcre + cmd:fastdep + cmd:ccache +" +BUILD_REQUIRES=" + devel:libpcre +" +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix +" + +USER_SETTINGS_FILE="settings/Paladin_settings" + +SOURCE_DIR="Paladin-1.3.src" + +PATCHES=" + paladin-1.3.patch + LibWindow.patch +" + BUILD() { - cd Paladin-1.3.src/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 + #Paladin + cd Paladin + ./build.sh + cd .. + + #Rez + cd PalEdit/rez/Sources + g++ -o rez *.cpp -I. -lbe + cd ../../.. + + #PalEdit + cd PalEdit/Sources + g++ -shared -fPIC -o libhekkel.so HAppResFile.cpp HButtonBar.cpp HColorControl.cpp \ + HColorPicker2.cpp HColorUtils.cpp HDialog.cpp HDialogViews.cpp HError.cpp \ + HHelpWindow.cpp HLazyObject.cpp HPreferences.cpp HStream.cpp HTabSheet.cpp \ + MAlert.cpp MTextAddOn.cpp MThread.cpp -lbe + g++ -o PalEdit -fPIC -o PalEdit AboutWindow.cpp Benaphore.cpp CCharObject.cpp CDiff.cpp \ + CDiffWindow.cpp CDoc.cpp CDocIO.cpp CDocWindow.cpp CFilterChoiceDialog.cpp CFindDialog.cpp \ + CGoToLine.cpp CGrepBox.cpp CInfoDialog.cpp CKeyCapturer.cpp CKeyMapper.cpp CLanguageInterface.cpp \ + CLanguageAddOn.cpp CLineObject.cpp CListBox.cpp CLogin.cpp CMessageItem.cpp \ + CMimeBox.cpp COpenSelection.cpp CPathsBox.cpp CPrefsDialog.cpp CProjectFile.cpp \ + CProjectJamFile.cpp CProjectMakeFile.cpp CProjectRoster.cpp CRegex.cpp CStdErrBox.cpp \ + CStdErrParser.cpp CFontStyle.cpp MTextAddOnImpl.cpp PAddOn.cpp PApp.cpp PCmd.cpp \ + PDoc.cpp PErrorWindow.cpp PFindFunctionDialog.cpp PGroupWindow.cpp PItalicMenuItem.cpp \ + PKeyDownFilter.cpp PLongAction.cpp PMessageWindow.cpp PProjectWindow.cpp PScrollBar.cpp \ + PSplitter.cpp PStatus.cpp PText.cpp PTextBuffer.cpp PToolBar.cpp PTypeAHeadList.cpp Sstdio.cpp \ + utf-support.cpp Utils.cpp libhekkel.so -lpcre -lbe -ltracker -lmail -ltextencoding -ltranslation \ + -lnetwork + cd ../.. + + #SymbolFinder + cd SymbolFinder + g++ -o SymbolFinder *.cpp -lbe -lroot + cd .. } INSTALL() { - cd Paladin-1.3.src - mkdir -p ${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/ + mkdir -p $appsDir/Paladin + mkdir -p $libDir + mkdir -p $binDir + + #Paladin + cp Paladin/Paladin $appsDir/Paladin + cp Paladin/README $appsDir/Paladin + cp -r Templates $appsDir/Paladin + cp -r Paladin/Licenses $appsDir/Paladin + + #Rez + cp PalEdit/rez/Sources/rez $binDir + + #PalEdit + cp PalEdit/Sources/PalEdit $appsDir/Paladin/PalEdit + cp PalEdit/Sources/libhekkel.so $libDir + + #SymbolFinder + cp SymbolFinder/SymbolFinder $appsDir/Paladin + + addAppDeskbarSymlink $appsDir/Paladin/Paladin Paladin + addAppDeskbarSymlink $appsDir/Paladin/PalEdit PalEdit + addAppDeskbarSymlink $appsDir/Paladin/SymbolFinder "Symbol Finder" } -LICENSE="MIT" -COPYRIGHT="2008-2010 DarkWyrm" diff --git a/haiku-apps/paladin/paladin-1.3_hg.recipe b/haiku-apps/paladin/paladin-1.3_hg.recipe index e107fa3fc..a9b2dff1f 100644 --- a/haiku-apps/paladin/paladin-1.3_hg.recipe +++ b/haiku-apps/paladin/paladin-1.3_hg.recipe @@ -1,4 +1,7 @@ -DESCRIPTION="Paladin is an open source integrated development environment (IDE) modeled after BeOS' BeIDE." +DESCRIPTION=" +Paladin is an open source integrated development environment (IDE) modeled \ +after BeOS' BeIDE. +" HOMEPAGE="http://paladin.sourceforge.net" SRC_URI="hg+http://paladin.hg.sourceforge.net:8000/hgroot/paladin/paladin" REVISION="1" diff --git a/haiku-apps/paladin/paladin-git.recipe b/haiku-apps/paladin/paladin-git.recipe new file mode 100644 index 000000000..9aed2ebc7 --- /dev/null +++ b/haiku-apps/paladin/paladin-git.recipe @@ -0,0 +1,82 @@ +SUMMARY="Paladin is a open source integrated development environment (IDE)" +DESCRIPTION=" +Paladin is an open source integrated development environment (IDE) modeled \ +after BeOS' BeIDE. +" +HOMEPAGE="http://paladin.sourceforge.net" +SRC_URI="git://github.com/HaikuArchives/Paladin" +REVISION="1" +LICENSE="MIT" +COPYRIGHT="2008-2010 DarkWyrm" + +ARCHITECTURES="x86_gcc2 x86 x86_64" + +PROVIDES=" + paladin = $portVersion + app:paladin = $portVersion + paledit = $portVersion + app:paledit = $portVersion + symbolfinder = $portVersion + app:symbolfinder = $portVersion + libhekkel = $portVersion + lib:libhekkel = $portVersion + rez = $portVersion + cmd:rez = $portVersion + ccache = $portVersion + cmd:ccache = $portVersion + fastdep = 0.16 + cmd:fastdep = 0.16 + " + +REQUIRES=" + haiku >= $haikuVersion + lib:libpcre + lib:libz + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:libpcre + devel:libz + " + +BUILD_PREREQUIRES=" + cmd:bison + cmd:find + cmd:flex + cmd:gcc + cmd:jam + cmd:ld + cmd:make + " + +USER_SETTINGS_FILE="settings/Paladin_settings" + +SOURCE_DIR="Paladin" + +PATCHES="paladin-git.patchset" +BUILD() +{ + ./buildsuite.sh 1 +} + +INSTALL() +{ + mkdir -p $appsDir/Paladin + mkdir -p $libDir + mkdir -p $binDir + + cp ccache/ccache $binDir + cp fastdep-0.16/fastdep $binDir + cp Paladin/Paladin $appsDir/Paladin/ + cp PalEdit/rez/rez $binDir + cp PalEdit/generated/distro/PalEdit $appsDir/Paladin/ + cp PalEdit/generated/distro/lib/libhekkel.so $libDir + cp -r PalEdit/generated/distro/Languages $appsDir/Paladin/ + cp -r PalEdit/generated/distro/Extensions $appsDir/Paladin/ + cp SymbolFinder/SymbolFinder $appsDir/Paladin/ + + addAppDeskbarSymlink $appsDir/Paladin/Paladin Paladin + addAppDeskbarSymlink $appsDir/Paladin/PalEdit PalEdit + addAppDeskbarSymlink $appsDir/Paladin/SymbolFinder SymbolFinder +} diff --git a/haiku-apps/paladin/patches/LibWindow.patch b/haiku-apps/paladin/patches/LibWindow.patch new file mode 100644 index 000000000..ce379b039 --- /dev/null +++ b/haiku-apps/paladin/patches/LibWindow.patch @@ -0,0 +1,13 @@ +diff --git a/Paladin/LibWindow.cpp b/Paladin/LibWindow.cpp +index c75e6ee..fb1537f 100644 +--- a/Paladin/LibWindow.cpp ++++ b/Paladin/LibWindow.cpp +@@ -208,7 +208,7 @@ LibraryWindow::ScanThread(void *data) + + r.OffsetBy(0,r.Height() + 10); + +- out = win->ScanFolder(r.LeftTop(),"/boot/common/lib",&maxwidth); ++ out = win->ScanFolder(r.LeftTop(),"/boot/system/lib",&maxwidth); + if (out != BRect(0,0,-1,-1)); + { + r = out; diff --git a/haiku-apps/paladin/patches/paladin-1.3.patch b/haiku-apps/paladin/patches/paladin-1.3.patch index 2a750a736..b6463edf3 100644 --- a/haiku-apps/paladin/patches/paladin-1.3.patch +++ b/haiku-apps/paladin/patches/paladin-1.3.patch @@ -1,181 +1,130 @@ -diff -up Paladin-1.3.src/PalEdit/Jamfile.orig Paladin-1.3.src/PalEdit/Jamfile ---- Paladin-1.3.src/PalEdit/Jamfile.orig 2013-07-26 16:21:05.044040192 -0600 -+++ Paladin-1.3.src/PalEdit/Jamfile 2013-07-26 16:21:05.049807360 -0600 -@@ -0,0 +1,10 @@ -+SubDir TOP ; -+ -+SubInclude TOP rez ; -+SubInclude TOP Sources ; -+SubInclude TOP Extensions ; -+SubInclude TOP Resources ; -+SubInclude TOP Languages ; -+ -+MakeDistro distro ; -+ -diff -up Paladin-1.3.src/PalEdit/Jamrules.orig Paladin-1.3.src/PalEdit/Jamrules ---- Paladin-1.3.src/PalEdit/Jamrules.orig 2013-07-26 16:21:05.068157440 -0600 -+++ Paladin-1.3.src/PalEdit/Jamrules 2013-07-26 16:21:05.068419584 -0600 -@@ -0,0 +1,67 @@ -+ -+# The directories used by the build. -+BUILD_DIR = [ FDirName $(TOP) build ] ; -+GENERATED_DIR = [ FDirName $(TOP) generated ] ; -+DISTRO_DIR = [ FDirName $(TOP) generated distro ] ; -+ -+# First find out which gcc version the platform uses. -+IS_GCC_4_PLATFORM = ; -+if $(OS) = HAIKU { -+ # Only Haiku might use gcc 4. We use the existence of a libstdc++.r4.so in -+ # /boot/develop/lib/x86 to judge whether this is a BeOS compatible and thus -+ # gcc 2 platform. This is not entirely correct, but should be good enough -+ # for the time being. -+ local hasLibStdC++.R4 = [ Glob /boot/develop/lib/x86 : libstdc++.r4.so ] ; -+ if ! $(hasLibStdC++.R4) { -+ IS_GCC_4_PLATFORM = 1 ; -+ } -+} -+ -+include [ FDirName $(BUILD_DIR) HelperRules ] ; -+include [ FDirName $(BUILD_DIR) ConfigRules ] ; -+include [ FDirName $(BUILD_DIR) OverriddenJamRules ] ; -+include [ FDirName $(BUILD_DIR) MainBuildRules ] ; -+include [ FDirName $(BUILD_DIR) BuildSettings ] ; -+ -+# Include UserBuildConfig. -+{ -+ local userBuildConfig = [ GLOB $(BUILD_DIR) : UserBuildConfig ] ; -+ if $(userBuildConfig) -+ { -+ LOCATE on UserBuildConfig = $(BUILD_DIR) ; -+ include UserBuildConfig ; -+ } -+} -+ -+# default to strip generated apps if not specified otherwise: -+STRIP_APPS ?= 1 ; -+ -+# Cache files for header scanning and jamfile caching. -+HCACHEFILE = header_cache ; -+JCACHEFILE = jamfile_cache ; -+LOCATE on $(HCACHEFILE) $(JCACHEFILE) = $(GENERATED_DIR) ; -+ -+ -+rule MakeDistro -+{ -+ # MakeDistro -+ -+ local target = $1 ; -+ -+ NotFile $(target) ; -+ Always $(target) ; -+} -+ -+actions MakeDistro -+{ -+ echo "making distro $(DISTRO_DIR)" ; -+ rm -rf $(DISTRO_DIR)/Documentation ; -+ mkdir $(DISTRO_DIR)/Documentation ; -+ cp -a $(TOP)/doc/*.html $(DISTRO_DIR)/Documentation/ ; -+ mkdir $(DISTRO_DIR)/Documentation/gifs ; -+ cp -a $(TOP)/doc/gifs/*.gif $(DISTRO_DIR)/Documentation/gifs/ ; -+ ln -sf Documentation/index.html $(DISTRO_DIR)/Documentation.html ; -+ ln -sfn $(COMMON_FOLDER)/bin $(DISTRO_DIR)/\(drag\ lpe\ here\ to\ install\) ; -+ cp -a $(COMMON_FOLDER)/lib/libpcre*.so $(DISTRO_DIR)/lib/ ; -+} -+ -diff -up Paladin-1.3.src/PalEdit/build/MainBuildRules.orig Paladin-1.3.src/PalEdit/build/MainBuildRules ---- Paladin-1.3.src/PalEdit/build/MainBuildRules.orig 2013-07-26 16:22:28.599523328 -0600 -+++ Paladin-1.3.src/PalEdit/build/MainBuildRules 2013-07-26 16:22:40.338690048 -0600 -@@ -64,7 +64,7 @@ rule SharedLibrary - MakeLocate $(lib) : $(LOCATE_MAIN_TARGET) ; - local linkFlags ; - if $(OSPLAT) = X86 { -- linkFlags = -nostart -Xlinker -soname=\"$(lib)\" ; -+ linkFlags = -shared -Xlinker -soname=\"$(lib)\" ; - } else { - linkFlags = -xms ; - } -diff -up Paladin-1.3.src/Paladin/Project.cpp.orig Paladin-1.3.src/Paladin/Project.cpp ---- Paladin-1.3.src/Paladin/Project.cpp.orig 2013-07-26 16:23:09.954728448 -0600 -+++ Paladin-1.3.src/Paladin/Project.cpp 2013-07-26 16:23:23.971505664 -0600 -@@ -799,7 +799,7 @@ Project::Link(void) - } - case TARGET_SHARED_LIB: +diff --git a/PalEdit/Sources/CDoc.cpp b/PalEdit/Sources/CDoc.cpp +index e5ced11..d9f5dfa 100644 +--- a/PalEdit/Sources/CDoc.cpp ++++ b/PalEdit/Sources/CDoc.cpp +@@ -451,7 +451,7 @@ void CDoc::AddRecent(const char *path) + BPath tp; + try + { +- FailOSErr(find_directory(B_COMMON_TEMP_DIRECTORY, &tp)); ++ FailOSErr(find_directory(B_SYSTEM_TEMP_DIRECTORY, &tp)); + if (strncmp(tp.Path(), path, strlen(tp.Path())) == 0) + return; + } +diff --git a/PalEdit/Sources/CDocIO.cpp b/PalEdit/Sources/CDocIO.cpp +index 81fe4b1..1ae3366 100644 +--- a/PalEdit/Sources/CDocIO.cpp ++++ b/PalEdit/Sources/CDocIO.cpp +@@ -198,7 +198,7 @@ static bool CopyFile(BEntry& srcEntry, BEntry& dstEntry) + return true; + } + +-#ifndef B_ZETA_VERSION_1_2_0 // maybe even B_ZETA_VERSION_1_1_0 ++#ifndef B_HAIKU_VERSION // maybe even B_ZETA_VERSION_1_1_0 + bool operator< (const node_ref& left, const node_ref& right) + { + if (left.node < right.node) +diff --git a/PalEdit/Sources/CDocIO.h b/PalEdit/Sources/CDocIO.h +index aa96fef..0ae9856 100644 +--- a/PalEdit/Sources/CDocIO.h ++++ b/PalEdit/Sources/CDocIO.h +@@ -52,7 +52,7 @@ inline time_t CDocIO::LastSaved() const + return fLastSaved; + } + +-#ifndef B_ZETA_VERSION_1_2_0 // maybe even B_ZETA_VERSION_1_1_0 ++#ifndef B_HAIKU_VERSION // maybe even B_ZETA_VERSION_1_1_0 + bool operator< (const node_ref& left, const node_ref& right); + #endif + +diff --git a/PalEdit/Sources/CMimeBox.cpp b/PalEdit/Sources/CMimeBox.cpp +index f4fc7cc..c86cf37 100644 +--- a/PalEdit/Sources/CMimeBox.cpp ++++ b/PalEdit/Sources/CMimeBox.cpp +@@ -71,7 +71,7 @@ CMimeItem::CMimeItem(const char *mime) + try + { + char p[PATH_MAX]; +- if (find_directory(B_COMMON_TEMP_DIRECTORY, 0, true, p, PATH_MAX) == B_OK) ++ if (find_directory(B_SYSTEM_TEMP_DIRECTORY, 0, true, p, PATH_MAX) == B_OK) { -- linkString << "-nostart -Xlinker -soname=" << GetTargetName() << " "; -+ linkString << "-shared -Xlinker -soname=" << GetTargetName() << " "; - break; - } - default: -diff -up Paladin-1.3.src/Paladin/buildhaikugcc2.sh.orig Paladin-1.3.src/Paladin/buildhaikugcc2.sh ---- Paladin-1.3.src/Paladin/buildhaikugcc2.sh.orig 2013-07-26 16:21:04.718798848 -0600 -+++ Paladin-1.3.src/Paladin/buildhaikugcc2.sh 2013-07-26 16:21:05.096731136 -0600 -@@ -1,5 +1,5 @@ - #!/bin/sh - --gcc -pipe -D_ZETA_TS_FIND_DIR_ -o Paladin AboutWindow.cpp AddNewFileWindow.cpp AppDebug.cpp DebugTools.cpp ErrorWindow.cpp FileActions.cpp FileUtils.cpp FindOpenFileWindow.cpp Globals.cpp GroupRenameWindow.cpp LibWindow.cpp Makemake.cpp Paladin.cpp PrefsWindow.cpp Project.cpp ProjectList.cpp ProjectPath.cpp ProjectSettingsWindow.cpp ProjectWindow.cpp RunArgsWindow.cpp StartWindow.cpp TemplateManager.cpp TemplateWindow.cpp TerminalWindow.cpp AsciiWindow.cpp CodeLib.cpp CodeLibWindow.cpp LicenseManager.cpp VRegWindow.cpp BuildSystem/BuildInfo.cpp BuildSystem/ErrorParser.cpp BuildSystem/FileFactory.cpp BuildSystem/ProjectBuilder.cpp BuildSystem/SourceFile.cpp BuildSystem/SourceType.cpp BuildSystem/SourceTypeC.cpp BuildSystem/SourceTypeLex.cpp BuildSystem/SourceTypeLib.cpp BuildSystem/SourceTypeResource.cpp BuildSystem/SourceTypeRez.cpp BuildSystem/SourceTypeShell.cpp BuildSystem/SourceTypeYacc.cpp BuildSystem/StatCache.cpp ThirdParty/AutoTextControl.cpp ThirdParty/BeIDEProject.cpp ThirdParty/BitmapButton.cpp ThirdParty/CRegex.cpp ThirdParty/ClickableStringView.cpp ThirdParty/DListView.cpp ThirdParty/DNode.cpp ThirdParty/DPath.cpp ThirdParty/DWindow.cpp ThirdParty/DelayedMessenger.cpp ThirdParty/GetTextWindow.cpp ThirdParty/LaunchHelper.cpp ThirdParty/PathBox.cpp ThirdParty/Settings.cpp ThirdParty/StringInputWindow.cpp ThirdParty/TextFile.cpp ThirdParty/TypedRefFilter.cpp SourceControl/GitSourceControl.cpp SourceControl/HgSourceControl.cpp SourceControl/SCMImportWindow.cpp SourceControl/SCMImporter.cpp SourceControl/SCMManager.cpp SourceControl/SCMOutputWindow.cpp SourceControl/SVNSourceControl.cpp SourceControl/SourceControl.cpp -I ./BuildSystem -I ./ -I ./ThirdParty -I ./SourceControl -lbe -lroot -ltracker -ltranslation -lpcre -llocale -+gcc -pipe -D_ZETA_TS_FIND_DIR_ -o Paladin AboutWindow.cpp AddNewFileWindow.cpp AppDebug.cpp DebugTools.cpp ErrorWindow.cpp FileActions.cpp FileUtils.cpp FindOpenFileWindow.cpp Globals.cpp GroupRenameWindow.cpp LibWindow.cpp Makemake.cpp Paladin.cpp PrefsWindow.cpp Project.cpp ProjectList.cpp ProjectPath.cpp ProjectSettingsWindow.cpp ProjectWindow.cpp RunArgsWindow.cpp StartWindow.cpp TemplateManager.cpp TemplateWindow.cpp TerminalWindow.cpp AsciiWindow.cpp CodeLib.cpp CodeLibWindow.cpp LicenseManager.cpp VRegWindow.cpp BuildSystem/BuildInfo.cpp BuildSystem/ErrorParser.cpp BuildSystem/FileFactory.cpp BuildSystem/ProjectBuilder.cpp BuildSystem/SourceFile.cpp BuildSystem/SourceType.cpp BuildSystem/SourceTypeC.cpp BuildSystem/SourceTypeLex.cpp BuildSystem/SourceTypeLib.cpp BuildSystem/SourceTypeResource.cpp BuildSystem/SourceTypeRez.cpp BuildSystem/SourceTypeShell.cpp BuildSystem/SourceTypeYacc.cpp BuildSystem/StatCache.cpp ThirdParty/AutoTextControl.cpp ThirdParty/BeIDEProject.cpp ThirdParty/BitmapButton.cpp ThirdParty/CRegex.cpp ThirdParty/ClickableStringView.cpp ThirdParty/DListView.cpp ThirdParty/DNode.cpp ThirdParty/DPath.cpp ThirdParty/DWindow.cpp ThirdParty/DelayedMessenger.cpp ThirdParty/GetTextWindow.cpp ThirdParty/LaunchHelper.cpp ThirdParty/PathBox.cpp ThirdParty/Settings.cpp ThirdParty/StringInputWindow.cpp ThirdParty/TextFile.cpp ThirdParty/TypedRefFilter.cpp SourceControl/GitSourceControl.cpp SourceControl/HgSourceControl.cpp SourceControl/SCMImportWindow.cpp SourceControl/SCMImporter.cpp SourceControl/SCMManager.cpp SourceControl/SCMOutputWindow.cpp SourceControl/SVNSourceControl.cpp SourceControl/SourceControl.cpp -I ./BuildSystem -I ./ -I ./ThirdParty -I ./SourceControl -lbe -lroot -ltracker -ltranslation -lpcre - xres -o Paladin Paladin.rsrc - mimeset -all Paladin -diff -up Paladin-1.3.src/Paladin/buildhaikugcc4.sh.orig Paladin-1.3.src/Paladin/buildhaikugcc4.sh ---- Paladin-1.3.src/Paladin/buildhaikugcc4.sh.orig 2013-07-26 16:21:04.719323136 -0600 -+++ Paladin-1.3.src/Paladin/buildhaikugcc4.sh 2013-07-26 16:21:05.099090432 -0600 -@@ -1,5 +1,5 @@ - #!/bin/sh - --gcc -pipe -D_ZETA_TS_FIND_DIR_ -o Paladin AboutWindow.cpp AddNewFileWindow.cpp AppDebug.cpp DebugTools.cpp ErrorWindow.cpp FileActions.cpp FileUtils.cpp FindOpenFileWindow.cpp Globals.cpp GroupRenameWindow.cpp LibWindow.cpp Makemake.cpp Paladin.cpp PrefsWindow.cpp Project.cpp ProjectList.cpp ProjectPath.cpp ProjectSettingsWindow.cpp ProjectWindow.cpp RunArgsWindow.cpp StartWindow.cpp TemplateManager.cpp TemplateWindow.cpp TerminalWindow.cpp AsciiWindow.cpp CodeLib.cpp CodeLibWindow.cpp LicenseManager.cpp VRegWindow.cpp BuildSystem/BuildInfo.cpp BuildSystem/ErrorParser.cpp BuildSystem/FileFactory.cpp BuildSystem/ProjectBuilder.cpp BuildSystem/SourceFile.cpp BuildSystem/SourceType.cpp BuildSystem/SourceTypeC.cpp BuildSystem/SourceTypeLex.cpp BuildSystem/SourceTypeLib.cpp BuildSystem/SourceTypeResource.cpp BuildSystem/SourceTypeRez.cpp BuildSystem/SourceTypeShell.cpp BuildSystem/SourceTypeYacc.cpp BuildSystem/StatCache.cpp ThirdParty/AutoTextControl.cpp ThirdParty/BeIDEProject.cpp ThirdParty/BitmapButton.cpp ThirdParty/CRegex.cpp ThirdParty/ClickableStringView.cpp ThirdParty/DListView.cpp ThirdParty/DNode.cpp ThirdParty/DPath.cpp ThirdParty/DWindow.cpp ThirdParty/DelayedMessenger.cpp ThirdParty/GetTextWindow.cpp ThirdParty/LaunchHelper.cpp ThirdParty/PathBox.cpp ThirdParty/Settings.cpp ThirdParty/StringInputWindow.cpp ThirdParty/TextFile.cpp ThirdParty/TypedRefFilter.cpp SourceControl/GitSourceControl.cpp SourceControl/HgSourceControl.cpp SourceControl/SCMImportWindow.cpp SourceControl/SCMImporter.cpp SourceControl/SCMManager.cpp SourceControl/SCMOutputWindow.cpp SourceControl/SVNSourceControl.cpp SourceControl/SourceControl.cpp -I ./BuildSystem -I ./ -I ./ThirdParty -I ./SourceControl -lbe -lroot -ltracker -ltranslation -lsupc++ -lstdc++ -lpcre -llocale -+gcc -pipe -D_ZETA_TS_FIND_DIR_ -o Paladin AboutWindow.cpp AddNewFileWindow.cpp AppDebug.cpp DebugTools.cpp ErrorWindow.cpp FileActions.cpp FileUtils.cpp FindOpenFileWindow.cpp Globals.cpp GroupRenameWindow.cpp LibWindow.cpp Makemake.cpp Paladin.cpp PrefsWindow.cpp Project.cpp ProjectList.cpp ProjectPath.cpp ProjectSettingsWindow.cpp ProjectWindow.cpp RunArgsWindow.cpp StartWindow.cpp TemplateManager.cpp TemplateWindow.cpp TerminalWindow.cpp AsciiWindow.cpp CodeLib.cpp CodeLibWindow.cpp LicenseManager.cpp VRegWindow.cpp BuildSystem/BuildInfo.cpp BuildSystem/ErrorParser.cpp BuildSystem/FileFactory.cpp BuildSystem/ProjectBuilder.cpp BuildSystem/SourceFile.cpp BuildSystem/SourceType.cpp BuildSystem/SourceTypeC.cpp BuildSystem/SourceTypeLex.cpp BuildSystem/SourceTypeLib.cpp BuildSystem/SourceTypeResource.cpp BuildSystem/SourceTypeRez.cpp BuildSystem/SourceTypeShell.cpp BuildSystem/SourceTypeYacc.cpp BuildSystem/StatCache.cpp ThirdParty/AutoTextControl.cpp ThirdParty/BeIDEProject.cpp ThirdParty/BitmapButton.cpp ThirdParty/CRegex.cpp ThirdParty/ClickableStringView.cpp ThirdParty/DListView.cpp ThirdParty/DNode.cpp ThirdParty/DPath.cpp ThirdParty/DWindow.cpp ThirdParty/DelayedMessenger.cpp ThirdParty/GetTextWindow.cpp ThirdParty/LaunchHelper.cpp ThirdParty/PathBox.cpp ThirdParty/Settings.cpp ThirdParty/StringInputWindow.cpp ThirdParty/TextFile.cpp ThirdParty/TypedRefFilter.cpp SourceControl/GitSourceControl.cpp SourceControl/HgSourceControl.cpp SourceControl/SCMImportWindow.cpp SourceControl/SCMImporter.cpp SourceControl/SCMManager.cpp SourceControl/SCMOutputWindow.cpp SourceControl/SVNSourceControl.cpp SourceControl/SourceControl.cpp -I ./BuildSystem -I ./ -I ./ThirdParty -I ./SourceControl -lbe -lroot -ltracker -ltranslation -lsupc++ -lstdc++ -lpcre - xres -o Paladin Paladin.rsrc - mimeset -all Paladin -diff -up Paladin-1.3.src/SymbolFinder/Makefile.orig Paladin-1.3.src/SymbolFinder/Makefile ---- Paladin-1.3.src/SymbolFinder/Makefile.orig 2013-07-26 16:21:33.282329088 -0600 -+++ Paladin-1.3.src/SymbolFinder/Makefile 2013-07-26 16:21:33.282066944 -0600 -@@ -0,0 +1,27 @@ -+NAME= SymbolFinder -+TYPE= APP -+SRCS= App.cpp DPath.cpp DWindow.cpp MainWindow.cpp -+RSRCS= -+LIBS= /boot/develop/lib/x86/libroot.so /boot/develop/lib/x86/libbe.so /boot/system/lib/libstdc++.so /boot/develop/lib/x86/libsupc++.so /boot/develop/lib/x86/libstdc++.so -+LIBPATHS= -+SYSTEM_INCLUDE_PATHS= /boot/develop/headers/be /boot/develop/headers/cpp /boot/develop/headers/posix /boot/home/config/include /boot/develop/abi/x86/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= -+LINKER_FLAGS= -+ -+## include the makefile-engine -+include $(BUILDHOME)/etc/makefile-engine -diff -urN Paladin-1.3.src/Paladin/buildhaikugcc2.sh Paladin-1.3.src/Paladin/buildhaikugcc2.sh- ---- Paladin-1.3.src/Paladin/buildhaikugcc2.sh 2013-07-19 18:41:25.292028416 +0200 -+++ Paladin-1.3.src/Paladin/buildhaikugcc2.sh- 2013-07-19 18:38:29.508035072 +0200 -@@ -1,5 +1,5 @@ - #!/bin/sh - --gcc -pipe -D_ZETA_TS_FIND_DIR_ -o Paladin AboutWindow.cpp AddNewFileWindow.cpp AppDebug.cpp DebugTools.cpp ErrorWindow.cpp FileActions.cpp FileUtils.cpp FindOpenFileWindow.cpp Globals.cpp GroupRenameWindow.cpp LibWindow.cpp Makemake.cpp Paladin.cpp PrefsWindow.cpp Project.cpp ProjectList.cpp ProjectPath.cpp ProjectSettingsWindow.cpp ProjectWindow.cpp RunArgsWindow.cpp StartWindow.cpp TemplateManager.cpp TemplateWindow.cpp TerminalWindow.cpp AsciiWindow.cpp CodeLib.cpp CodeLibWindow.cpp LicenseManager.cpp VRegWindow.cpp BuildSystem/BuildInfo.cpp BuildSystem/ErrorParser.cpp BuildSystem/FileFactory.cpp BuildSystem/ProjectBuilder.cpp BuildSystem/SourceFile.cpp BuildSystem/SourceType.cpp BuildSystem/SourceTypeC.cpp BuildSystem/SourceTypeLex.cpp BuildSystem/SourceTypeLib.cpp BuildSystem/SourceTypeResource.cpp BuildSystem/SourceTypeRez.cpp BuildSystem/SourceTypeShell.cpp BuildSystem/SourceTypeYacc.cpp BuildSystem/StatCache.cpp ThirdParty/AutoTextControl.cpp ThirdParty/BeIDEProject.cpp ThirdParty/BitmapButton.cpp ThirdParty/CRegex.cpp ThirdParty/ClickableStringView.cpp ThirdParty/DListView.cpp ThirdParty/DNode.cpp ThirdParty/DPath.cpp ThirdParty/DWindow.cpp ThirdParty/DelayedMessenger.cpp ThirdParty/GetTextWindow.cpp ThirdParty/LaunchHelper.cpp ThirdParty/PathBox.cpp ThirdParty/Settings.cpp ThirdParty/StringInputWindow.cpp ThirdParty/TextFile.cpp ThirdParty/TypedRefFilter.cpp SourceControl/GitSourceControl.cpp SourceControl/HgSourceControl.cpp SourceControl/SCMImportWindow.cpp SourceControl/SCMImporter.cpp SourceControl/SCMManager.cpp SourceControl/SCMOutputWindow.cpp SourceControl/SVNSourceControl.cpp SourceControl/SourceControl.cpp -I ./BuildSystem -I ./ -I ./ThirdParty -I ./SourceControl -lbe -lroot -ltracker -ltranslation -lpcre -llocale -+gcc -pipe -D_ZETA_TS_FIND_DIR_ -o Paladin AboutWindow.cpp AddNewFileWindow.cpp AppDebug.cpp DebugTools.cpp ErrorWindow.cpp FileActions.cpp FileUtils.cpp FindOpenFileWindow.cpp Globals.cpp GroupRenameWindow.cpp LibWindow.cpp Makemake.cpp Paladin.cpp PrefsWindow.cpp Project.cpp ProjectList.cpp ProjectPath.cpp ProjectSettingsWindow.cpp ProjectWindow.cpp RunArgsWindow.cpp StartWindow.cpp TemplateManager.cpp TemplateWindow.cpp TerminalWindow.cpp AsciiWindow.cpp CodeLib.cpp CodeLibWindow.cpp LicenseManager.cpp VRegWindow.cpp BuildSystem/BuildInfo.cpp BuildSystem/ErrorParser.cpp BuildSystem/FileFactory.cpp BuildSystem/ProjectBuilder.cpp BuildSystem/SourceFile.cpp BuildSystem/SourceType.cpp BuildSystem/SourceTypeC.cpp BuildSystem/SourceTypeLex.cpp BuildSystem/SourceTypeLib.cpp BuildSystem/SourceTypeResource.cpp BuildSystem/SourceTypeRez.cpp BuildSystem/SourceTypeShell.cpp BuildSystem/SourceTypeYacc.cpp BuildSystem/StatCache.cpp ThirdParty/AutoTextControl.cpp ThirdParty/BeIDEProject.cpp ThirdParty/BitmapButton.cpp ThirdParty/CRegex.cpp ThirdParty/ClickableStringView.cpp ThirdParty/DListView.cpp ThirdParty/DNode.cpp ThirdParty/DPath.cpp ThirdParty/DWindow.cpp ThirdParty/DelayedMessenger.cpp ThirdParty/GetTextWindow.cpp ThirdParty/LaunchHelper.cpp ThirdParty/PathBox.cpp ThirdParty/Settings.cpp ThirdParty/StringInputWindow.cpp ThirdParty/TextFile.cpp ThirdParty/TypedRefFilter.cpp SourceControl/GitSourceControl.cpp SourceControl/HgSourceControl.cpp SourceControl/SCMImportWindow.cpp SourceControl/SCMImporter.cpp SourceControl/SCMManager.cpp SourceControl/SCMOutputWindow.cpp SourceControl/SVNSourceControl.cpp SourceControl/SourceControl.cpp -I ./BuildSystem -I ./ -I ./ThirdParty -I ./SourceControl -lbe -lroot -ltracker -ltranslation -lpcre - xres -o Paladin Paladin.rsrc - mimeset -all Paladin - -diff -urN Paladin-1.3.src/Paladin/buildhaikugcc4.sh Paladin-1.3.src/Paladin/buildhaikugcc4.sh- ---- Paladin-1.3.src/Paladin/buildhaikugcc4.sh 2013-07-19 18:41:14.299368448 +0200 -+++ Paladin-1.3.src/Paladin/buildhaikugcc4.sh- 2013-07-19 18:38:34.475004928 +0200 -@@ -1,5 +1,5 @@ - #!/bin/sh - --gcc -pipe -D_ZETA_TS_FIND_DIR_ -o Paladin AboutWindow.cpp AddNewFileWindow.cpp AppDebug.cpp DebugTools.cpp ErrorWindow.cpp FileActions.cpp FileUtils.cpp FindOpenFileWindow.cpp Globals.cpp GroupRenameWindow.cpp LibWindow.cpp Makemake.cpp Paladin.cpp PrefsWindow.cpp Project.cpp ProjectList.cpp ProjectPath.cpp ProjectSettingsWindow.cpp ProjectWindow.cpp RunArgsWindow.cpp StartWindow.cpp TemplateManager.cpp TemplateWindow.cpp TerminalWindow.cpp AsciiWindow.cpp CodeLib.cpp CodeLibWindow.cpp LicenseManager.cpp VRegWindow.cpp BuildSystem/BuildInfo.cpp BuildSystem/ErrorParser.cpp BuildSystem/FileFactory.cpp BuildSystem/ProjectBuilder.cpp BuildSystem/SourceFile.cpp BuildSystem/SourceType.cpp BuildSystem/SourceTypeC.cpp BuildSystem/SourceTypeLex.cpp BuildSystem/SourceTypeLib.cpp BuildSystem/SourceTypeResource.cpp BuildSystem/SourceTypeRez.cpp BuildSystem/SourceTypeShell.cpp BuildSystem/SourceTypeYacc.cpp BuildSystem/StatCache.cpp ThirdParty/AutoTextControl.cpp ThirdParty/BeIDEProject.cpp ThirdParty/BitmapButton.cpp ThirdParty/CRegex.cpp ThirdParty/ClickableStringView.cpp ThirdParty/DListView.cpp ThirdParty/DNode.cpp ThirdParty/DPath.cpp ThirdParty/DWindow.cpp ThirdParty/DelayedMessenger.cpp ThirdParty/GetTextWindow.cpp ThirdParty/LaunchHelper.cpp ThirdParty/PathBox.cpp ThirdParty/Settings.cpp ThirdParty/StringInputWindow.cpp ThirdParty/TextFile.cpp ThirdParty/TypedRefFilter.cpp SourceControl/GitSourceControl.cpp SourceControl/HgSourceControl.cpp SourceControl/SCMImportWindow.cpp SourceControl/SCMImporter.cpp SourceControl/SCMManager.cpp SourceControl/SCMOutputWindow.cpp SourceControl/SVNSourceControl.cpp SourceControl/SourceControl.cpp -I ./BuildSystem -I ./ -I ./ThirdParty -I ./SourceControl -lbe -lroot -ltracker -ltranslation -lsupc++ -lstdc++ -lpcre -llocale -+gcc -pipe -D_ZETA_TS_FIND_DIR_ -o Paladin AboutWindow.cpp AddNewFileWindow.cpp AppDebug.cpp DebugTools.cpp ErrorWindow.cpp FileActions.cpp FileUtils.cpp FindOpenFileWindow.cpp Globals.cpp GroupRenameWindow.cpp LibWindow.cpp Makemake.cpp Paladin.cpp PrefsWindow.cpp Project.cpp ProjectList.cpp ProjectPath.cpp ProjectSettingsWindow.cpp ProjectWindow.cpp RunArgsWindow.cpp StartWindow.cpp TemplateManager.cpp TemplateWindow.cpp TerminalWindow.cpp AsciiWindow.cpp CodeLib.cpp CodeLibWindow.cpp LicenseManager.cpp VRegWindow.cpp BuildSystem/BuildInfo.cpp BuildSystem/ErrorParser.cpp BuildSystem/FileFactory.cpp BuildSystem/ProjectBuilder.cpp BuildSystem/SourceFile.cpp BuildSystem/SourceType.cpp BuildSystem/SourceTypeC.cpp BuildSystem/SourceTypeLex.cpp BuildSystem/SourceTypeLib.cpp BuildSystem/SourceTypeResource.cpp BuildSystem/SourceTypeRez.cpp BuildSystem/SourceTypeShell.cpp BuildSystem/SourceTypeYacc.cpp BuildSystem/StatCache.cpp ThirdParty/AutoTextControl.cpp ThirdParty/BeIDEProject.cpp ThirdParty/BitmapButton.cpp ThirdParty/CRegex.cpp ThirdParty/ClickableStringView.cpp ThirdParty/DListView.cpp ThirdParty/DNode.cpp ThirdParty/DPath.cpp ThirdParty/DWindow.cpp ThirdParty/DelayedMessenger.cpp ThirdParty/GetTextWindow.cpp ThirdParty/LaunchHelper.cpp ThirdParty/PathBox.cpp ThirdParty/Settings.cpp ThirdParty/StringInputWindow.cpp ThirdParty/TextFile.cpp ThirdParty/TypedRefFilter.cpp SourceControl/GitSourceControl.cpp SourceControl/HgSourceControl.cpp SourceControl/SCMImportWindow.cpp SourceControl/SCMImporter.cpp SourceControl/SCMManager.cpp SourceControl/SCMOutputWindow.cpp SourceControl/SVNSourceControl.cpp SourceControl/SourceControl.cpp -I ./BuildSystem -I ./ -I ./ThirdParty -I ./SourceControl -lbe -lroot -ltracker -ltranslation -lsupc++ -lstdc++ -lpcre - xres -o Paladin Paladin.rsrc - mimeset -all Paladin + BDirectory tmpdir; + FailOSErr(tmpdir.SetTo(p)); +diff --git a/PalEdit/Sources/Sstdio.cpp b/PalEdit/Sources/Sstdio.cpp +index 76c7b19..88b2a24 100644 +--- a/PalEdit/Sources/Sstdio.cpp ++++ b/PalEdit/Sources/Sstdio.cpp +@@ -37,7 +37,7 @@ + #include "Sstdio.h" + #include + #include +-#ifdef BONE_BUILD ++#ifdef B_HAIKU_VERSION + #include + #include + #else +diff --git a/Paladin/Project.cpp b/Paladin/Project.cpp +index 9f4c42d..054e72f 100644 +--- a/Paladin/Project.cpp ++++ b/Paladin/Project.cpp +@@ -214,7 +214,7 @@ Project::Load(const char *path) + if (actualPlatform == PLATFORM_HAIKU_GCC4 && actualPlatform != fPlatform) + { + BPath libpath; +- find_directory(B_COMMON_DEVELOP_DIRECTORY,&libpath); ++ find_directory(B_SYSTEM_DEVELOP_DIRECTORY,&libpath); + libpath.Append("lib/x86/libsupc++.so"); + AddLibrary(libpath.Path()); + } +@@ -1473,7 +1473,7 @@ Project::FindLibrary(const char *libname) + return outpath; + } + +- find_directory(B_COMMON_LIB_DIRECTORY,&tempPath); ++ find_directory(B_SYSTEM_LIB_DIRECTORY,&tempPath); + tempPath.Append(libname); + if (BEntry(tempPath.Path()).Exists()) + { +@@ -1485,7 +1485,7 @@ Project::FindLibrary(const char *libname) + return outpath; + } + +- find_directory(B_COMMON_DEVELOP_DIRECTORY,&tempPath); ++ find_directory(B_SYSTEM_DEVELOP_DIRECTORY,&tempPath); + tempPath.Append("lib/x86/"); + tempPath.Append(libname); + if (BEntry(tempPath.Path()).Exists()) +diff --git a/Paladin/TemplateManager.cpp b/Paladin/TemplateManager.cpp +index 01f41f9..aea1e89 100644 +--- a/Paladin/TemplateManager.cpp ++++ b/Paladin/TemplateManager.cpp +@@ -242,10 +242,10 @@ ProjectTemplate::RefForLib(const BString &path) + find_directory(B_USER_LIB_DIRECTORY,&bpath); + str.IReplaceFirst("B_USER_LIB_DIRECTORY",bpath.Path()); + } +- else if (str.IFindFirst("B_COMMON_LIB_DIRECTORY") >= 0) ++ else if (str.IFindFirst("B_SYSTEM_LIB_DIRECTORY") >= 0) + { +- find_directory(B_COMMON_LIB_DIRECTORY,&bpath); +- str.IReplaceFirst("B_COMMON_LIB_DIRECTORY",bpath.Path()); ++ find_directory(B_SYSTEM_LIB_DIRECTORY,&bpath); ++ str.IReplaceFirst("B_SYSTEM_LIB_DIRECTORY",bpath.Path()); + } + + entry_ref ref; +diff --git a/Paladin/build.sh b/Paladin/build.sh +old mode 100644 +new mode 100755 +diff --git a/SymbolFinder/MainWindow.cpp b/SymbolFinder/MainWindow.cpp +index a53848b..aab1c63 100644 +--- a/SymbolFinder/MainWindow.cpp ++++ b/SymbolFinder/MainWindow.cpp +@@ -130,7 +130,7 @@ MainWindow::DoSearch(const char *text) + if (status == B_OK && find_directory(B_USER_LIB_DIRECTORY,&path) == B_OK) + status = SearchLibPath(path.Path(),text); + +- if (status == B_OK && BEntry("/boot/common").Exists() && find_directory(B_COMMON_LIB_DIRECTORY,&path) == B_OK) ++ if (status == B_OK && BEntry("/boot/system").Exists() && find_directory(B_SYSTEM_LIB_DIRECTORY,&path) == B_OK) + status = SearchLibPath(path.Path(),text); + + Lock(); diff --git a/haiku-apps/pe/patches/pe-2.4.3_hg611.patch b/haiku-apps/pe/patches/pe-2.4.3_hg611.patch new file mode 100644 index 000000000..f4b9b5d4e --- /dev/null +++ b/haiku-apps/pe/patches/pe-2.4.3_hg611.patch @@ -0,0 +1,13 @@ +diff --git a/build/BuildSettings b/build/BuildSettings +index 3c10281..e9c0c62 100644 +--- a/build/BuildSettings ++++ b/build/BuildSettings +@@ -43,7 +43,7 @@ if $(OS) = HAIKU { + } + + # check for pcre... +-local haveHeadersPcre = [ GLOB /boot/common/develop/headers : pcre.h ] ; ++local haveHeadersPcre = [ GLOB /boot/system/develop/headers : pcre.h ] ; + if ! $(haveHeadersPcre) { + Exit "You need to have pcre installed on your system." ; + } diff --git a/haiku-apps/pe/patches/pe-2.4.3_hg611.patch2 b/haiku-apps/pe/patches/pe-2.4.3_hg611.patch2 new file mode 100644 index 000000000..8829c769c --- /dev/null +++ b/haiku-apps/pe/patches/pe-2.4.3_hg611.patch2 @@ -0,0 +1,52 @@ +diff --git a/Extensions/HeaderHeader.cpp b/Extensions/HeaderHeader.cpp +index 249fc04..1a9c446 100644 +--- a/Extensions/HeaderHeader.cpp ++++ b/Extensions/HeaderHeader.cpp +@@ -300,7 +300,7 @@ GetSettingsDir(BDirectory &dir, BPath &path) + //BPath path; + status_t err; + // TODO: build list from text files +- err = find_directory(B_COMMON_SETTINGS_DIRECTORY, &path, true); ++ err = find_directory(B_SYSTEM_SETTINGS_DIRECTORY, &path, true); + if (err < B_OK) + return err; + dir.SetTo(path.Path()); +diff --git a/Languages/Sources/Lout_Popup.l b/Languages/Sources/Lout_Popup.l +index 7d3c2db..ede28f4 100644 +--- a/Languages/Sources/Lout_Popup.l ++++ b/Languages/Sources/Lout_Popup.l +@@ -221,7 +221,7 @@ static status_t GetLoutDirectory(const char* subDir, BPath& path) + + if (!PathExists(path)) + { +- if (find_directory(B_COMMON_ETC_DIRECTORY, &path) == B_OK) ++ if (find_directory(B_SYSTEM_ETC_DIRECTORY, &path) == B_OK) + { + path.Append("lout"); + path.Append(subDir); +diff --git a/Sources/CDoc.cpp b/Sources/CDoc.cpp +index 002e6c1..75d652a 100644 +--- a/Sources/CDoc.cpp ++++ b/Sources/CDoc.cpp +@@ -472,7 +472,7 @@ void CDoc::AddRecent(const char *path) + BPath tp; + try + { +- FailOSErr(find_directory(B_COMMON_TEMP_DIRECTORY, &tp)); ++ FailOSErr(find_directory(B_SYSTEM_TEMP_DIRECTORY, &tp)); + if (strncmp(tp.Path(), path, strlen(tp.Path())) == 0) + return; + } +diff --git a/Sources/CMimeBox.cpp b/Sources/CMimeBox.cpp +index e9ac4f9..a29a79b 100644 +--- a/Sources/CMimeBox.cpp ++++ b/Sources/CMimeBox.cpp +@@ -71,7 +71,7 @@ CMimeItem::CMimeItem(const char *mime) + try + { + char p[PATH_MAX]; +- if (find_directory(B_COMMON_TEMP_DIRECTORY, 0, true, p, PATH_MAX) == B_OK) ++ if (find_directory(B_SYSTEM_TEMP_DIRECTORY, 0, true, p, PATH_MAX) == B_OK) + { + BDirectory tmpdir; + FailOSErr(tmpdir.SetTo(p)); diff --git a/haiku-apps/pe/patches/pe-2.4.3_hg611.patch3 b/haiku-apps/pe/patches/pe-2.4.3_hg611.patch3 new file mode 100644 index 000000000..a54f63bb2 --- /dev/null +++ b/haiku-apps/pe/patches/pe-2.4.3_hg611.patch3 @@ -0,0 +1,217 @@ +diff --git a/Languages/Resources/Jamfile b/Languages/Resources/Jamfile +index 4b19f87..7ccef27 100644 +--- a/Languages/Resources/Jamfile ++++ b/Languages/Resources/Jamfile +@@ -20,6 +20,7 @@ RezObjects + keywords.pl.r + keywords.py.r + keywords.rb.r ++ keywords.recipe.r + keywords.rez.r + keywords.sh.r + keywords.sql.r +diff --git a/Languages/Resources/keywords.recipe b/Languages/Resources/keywords.recipe +new file mode 100644 +index 0000000..7c68e3e +--- /dev/null ++++ b/Languages/Resources/keywords.recipe +@@ -0,0 +1,11 @@ ++case do done elif else esac fi for function if in select then until while cmd devel lib app add_on ++- Keyword ++BUILD_PACKAGE_ACTIVATION_FILE DISABLE_SOURCE_PACKAGE HOMEPAGE MESSAGE REVISION CHECKSUM_MD5 PATCHES SOURCE_DIR SRC_FILENAME SRC_URI ARCHITECTURES BUILD_PREREQUIRES BUILD_REQUIRES CONFLICTS COPYRIGHT DESCRIPTION FRESHENS GLOBAL_WRITABLE_FILES LICENSE PACKAGE_GROUPS PACKAGE_USERS POST_INSTALL_SCRIPTS PROVIDES REPLACES REQUIRES SUMMARY SUPPLEMENTS USER_SETTING_FILES ++- Function ++PATCH BUILD INSTALL TEST ++- Define ++addOnsDir appsDir binDir buildArchitecture configureDirArgs dataDir dataRootDir debugInfoDir developDir developDocDir developLibDir docDir documentationDir fontsDir haikuVersion includeDir infodir installDestDir isCrossRepository jobArgs jobs libDir libExecDir localStateDir manDir oldIncludeDir portBaseDir portDir portFullVersion portName portPackageLinksdir portRevision portRevisionedName portVersion portVersionedName postInstallDir preferencesDir prefix relativeAddOnsDir relativeAppsDir relativeBinDir relativeDataDir relativeDataRootDir relativeDebugInfoDir relativeDevelopDir relativeDevelopDocDir relativeDevelopLibDir relativeDocDir relativeDocumentationDir relativeFontsDir relativeIncludeDir relativeInfoDir relativeLibDir relativeLibExecDir relativeLocalStateDir relativeManDir relativeOldIncludeDir relativePostInstallDir relativePreferencesDir relativeSbinDir relativeSettingsDir relativeSharedStateDir sbinDir settingsDir sharedStateDir sourceDir targetArchitecture buildMachineTriple buildMachineTripleAsName crossSysrootDir targetMachineTriple targetMachineTripleAsName secondaryArchSuffix ++- Function ++addAppDeskbarSymlink addPreferencesDeskbarSymlink defineDebugInfoPackage extractDebugInfo fixDevelopLibDirReferences fixPkgconfig packageEntries prepareInstalledDevelLib prepareInstalledDevelLibs runConfigure ++- Type ++cmd devel lib app add_on +diff --git a/Languages/Resources/keywords.recipe.r b/Languages/Resources/keywords.recipe.r +new file mode 100644 +index 0000000..5e8410c +--- /dev/null ++++ b/Languages/Resources/keywords.recipe.r +@@ -0,0 +1,2 @@ ++read 'KeyW' (0, "keywords.recipe") ++ "keywords.recipe"; +\ No newline at end of file +diff --git a/Languages/Sources/Jamfile b/Languages/Sources/Jamfile +index 3b1a77e..ff33e31 100644 +--- a/Languages/Sources/Jamfile ++++ b/Languages/Sources/Jamfile +@@ -146,6 +146,14 @@ PeLanguage PythonExt + # + + # ++PeLanguage RecipeExt ++ : Recipe_Language.cpp ++ : be ++ : keywords.recipe.rsrc ++ ; ++# ++ ++# + PeLanguage RezExt + : Rez_Language.cpp Rez_Popup.l + : be +diff --git a/Languages/Sources/Recipe_Language.cpp b/Languages/Sources/Recipe_Language.cpp +new file mode 100644 +index 0000000..752eba8 +--- /dev/null ++++ b/Languages/Sources/Recipe_Language.cpp +@@ -0,0 +1,154 @@ ++#include "CLanguageAddOn.h" ++#include "HColorUtils.h" ++ ++_EXPORT const char kLanguageName[] = "Recipe"; ++_EXPORT const char kLanguageExtensions[] = "recipe"; ++_EXPORT const char kLanguageCommentStart[] = "#"; ++_EXPORT const char kLanguageCommentEnd[] = ""; ++_EXPORT const char kLanguageKeywordFile[] = "keywords.recipe"; ++_EXPORT const int16 kInterfaceVersion = 2; ++ ++enum { ++ START, IDENT, LCOMMENT, STRING1, STRING2 ++}; ++ ++#define GETCHAR (c = (i++ < size) ? text[i - 1] : 0) ++ ++_EXPORT void ColorLine(CLanguageProxy& proxy, int32& state) ++{ ++ const char *text = proxy.Text(); ++ int32 size = proxy.Size(); ++ int32 i = 0, s = 0, kws = 0, esc = 0; ++ char c = 0; ++ bool leave = false; ++ ++ if (state == LCOMMENT) ++ proxy.SetColor(0, kColorComment1); ++ else ++ proxy.SetColor(0, kColorText); ++ ++ if (size <= 0) ++ return; ++ ++ while (!leave) ++ { ++ char b = c; ++ GETCHAR; ++ ++ switch (state) { ++ case START: ++ if (c == '#' && (!b || isspace(b))) ++ state = LCOMMENT; ++ else if (isalpha(c) || c == '_') ++ { ++ kws = proxy.Move(c, 1); ++ state = IDENT; ++ } ++ else if (c == '"') ++ state = STRING1; ++ else if (c == '\'') ++ state = STRING2; ++ else if (c == '\n' || c == 0) ++ leave = true; ++ ++ if (leave || (state != START && s < i)) ++ { ++ proxy.SetColor(s, kColorText); ++ s = i - 1; ++ } ++ break; ++ ++ case LCOMMENT: ++ proxy.SetColor(s, kColorComment1); ++ leave = true; ++ if (text[size - 1] == '\n') ++ state = START; ++ break; ++ ++ case IDENT: ++ if (!isalnum(c) && c != '_') ++ { ++ int kwc; ++ ++ if (i >= s + 1 && (kwc = proxy.IsKeyword(kws)) != 0) ++ { ++ switch (kwc) ++ { ++ case 1: proxy.SetColor(s, kColorKeyword1); break; ++ case 2: proxy.SetColor(s, kColorUserSet1); break; ++ case 3: proxy.SetColor(s, kColorUserSet2); break; ++ case 4: proxy.SetColor(s, kColorUserSet3); break; ++ case 5: proxy.SetColor(s, kColorUserSet4); break; ++// default:ASSERT(false); ++ } ++ } ++ else ++ { ++ proxy.SetColor(s, kColorText); ++ } ++ ++ s = --i; ++ state = START; ++ } ++ else if (kws) ++ kws = proxy.Move((int)(unsigned char)c, kws); ++ break; ++ ++ case STRING1: ++ if (c == '"' && !esc) ++ { ++ proxy.SetColor(s, kColorString1); ++ s = i; ++ state = START; ++ } ++ else if (c == '\n' || c == 0) ++ { ++ if (text[i - 2] == '\\' && text[i - 3] != '\\') ++ { ++ proxy.SetColor(s, kColorString1); ++ } ++ else ++ { ++ proxy.SetColor(s, kColorText); ++ state = START; ++ } ++ ++ s = size; ++ leave = true; ++ } ++ else ++ esc = !esc && (c == '\\'); ++ break; ++ ++ case STRING2: ++ if (c == '\'' && !esc) ++ { ++ proxy.SetColor(s, kColorString1); ++ s = i; ++ state = START; ++ } ++ else if (c == '\n' || c == 0) ++ { ++ if (text[i - 2] == '\\' && text[i - 3] != '\\') ++ { ++ proxy.SetColor(s, kColorString1); ++ } ++ else ++ { ++ proxy.SetColor(s, kColorText); ++ state = START; ++ } ++ ++ s = size; ++ leave = true; ++ } ++ else ++ esc = !esc && (c == '\\'); ++ break; ++ ++ default: // error condition, gracefully leave the loop ++ leave = true; ++ break; ++ } ++ } ++} /* CshellIntf::ColorLine */ diff --git a/haiku-apps/pe/pe-2.4.3_hg602.recipe b/haiku-apps/pe/pe-2.4.3_hg602.recipe index 12c5e075b..90d1cb793 100644 --- a/haiku-apps/pe/pe-2.4.3_hg602.recipe +++ b/haiku-apps/pe/pe-2.4.3_hg602.recipe @@ -1,5 +1,9 @@ SUMMARY="A programmer's editor" -DESCRIPTION="A programmer's editor" +DESCRIPTION=" +Pe is a native programmer's editor for Haiku. It features syntax highlighting \ +and a structural view for several programming language, as well as basic \ +support for Makefile and Jamfile project management. +" HOMEPAGE="http://pe-editor.berlios.de/" LICENSE=" BSD (4-clause) @@ -43,7 +47,6 @@ USER_SETTINGS_FILES=" settings/pe directory " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/haiku-apps/pe/pe-2.4.3_hg606.recipe b/haiku-apps/pe/pe-2.4.3_hg606.recipe index 3b8507d15..9d880d602 100644 --- a/haiku-apps/pe/pe-2.4.3_hg606.recipe +++ b/haiku-apps/pe/pe-2.4.3_hg606.recipe @@ -1,5 +1,9 @@ SUMMARY="A programmer's editor" -DESCRIPTION="A programmer's editor" +DESCRIPTION=" +Pe is a native programmer's editor for Haiku. It features syntax highlighting \ +and a structural view for several programming language, as well as basic \ +support for Makefile and Jamfile project management. +" HOMEPAGE="http://pe-editor.berlios.de/" LICENSE=" BSD (4-clause) @@ -43,7 +47,6 @@ USER_SETTINGS_FILES=" settings/pe directory " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/haiku-apps/pe/pe-2.4.3_hg610.recipe b/haiku-apps/pe/pe-2.4.3_hg610.recipe index cd5e867e4..51f7ae6d3 100644 --- a/haiku-apps/pe/pe-2.4.3_hg610.recipe +++ b/haiku-apps/pe/pe-2.4.3_hg610.recipe @@ -1,5 +1,9 @@ SUMMARY="A programmer's editor" -DESCRIPTION="A programmer's editor" +DESCRIPTION=" +Pe is a native programmer's editor for Haiku. It features syntax highlighting \ +and a structural view for several programming language, as well as basic \ +support for Makefile and Jamfile project management. +" HOMEPAGE="http://pe-editor.berlios.de/" LICENSE=" BSD (4-clause) @@ -41,7 +45,6 @@ USER_SETTINGS_FILES=" settings/pe directory " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/haiku-apps/pe/pe-2.4.3_hg611.recipe b/haiku-apps/pe/pe-2.4.3_hg611.recipe index 998ad00e6..12a2d9662 100644 --- a/haiku-apps/pe/pe-2.4.3_hg611.recipe +++ b/haiku-apps/pe/pe-2.4.3_hg611.recipe @@ -1,14 +1,20 @@ SUMMARY="A programmer's editor" -DESCRIPTION="A programmer's editor" +DESCRIPTION=" +Pe is a native programmer's editor for Haiku. It features syntax highlighting \ +and a structural view for several programming language, as well as basic \ +support for Makefile and Jamfile project management. +" HOMEPAGE="http://pe-editor.berlios.de/" LICENSE=" BSD (4-clause) MIT " + COPYRIGHT=" 1996-2002 Maarteen Hekkelman 2003-2013 Team Pe " + SRC_URI="hg+http://hg.berlios.de/repos/pe-editor#611" REVISION="1" ARCHITECTURES="x86_gcc2 x86 x86_64" @@ -24,10 +30,12 @@ REQUIRES=" lib:libpcre lib:libpcreposix " + BUILD_REQUIRES=" - devel:libpcre >= 0.0.1 - devel:libpcreposix >= 0.0.1 + devel:libpcre >= 1 + devel:libpcreposix >= 1 " + BUILD_PREREQUIRES=" haiku_devel cmd:bison @@ -41,7 +49,12 @@ USER_SETTINGS_FILES=" settings/pe directory " -SOURCE_DIR="$portVersionedName" + +PATCHES=" + pe-2.4.3_hg611.patch + pe-2.4.3_hg611.patch2 + pe-2.4.3_hg611.patch3 + " BUILD() { diff --git a/haiku-apps/pe/pe-2.4.3_hg614.recipe b/haiku-apps/pe/pe-2.4.3_hg614.recipe new file mode 100644 index 000000000..19da91e5f --- /dev/null +++ b/haiku-apps/pe/pe-2.4.3_hg614.recipe @@ -0,0 +1,75 @@ +SUMMARY="A programmer's editor" +DESCRIPTION=" +Pe is a native programmer's editor for Haiku. It features syntax highlighting \ +and a structural view for several programming language, as well as basic \ +support for Makefile and Jamfile project management. +" +HOMEPAGE="http://pe-editor.berlios.de/" +LICENSE=" + BSD (4-clause) + MIT + " + +COPYRIGHT=" + 1996-2002 Maarteen Hekkelman + 2003-2013 Team Pe + " + +SRC_URI="hg+http://hg.berlios.de/repos/pe-editor#614" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" + +PROVIDES=" + pe = $portVersion + cmd:Pe = $portVersion compat >= 2 + cmd:lpe = $portVersion compat >= 2 + " + +REQUIRES=" + haiku + lib:libpcre + lib:libpcreposix + " + +BUILD_REQUIRES=" + devel:libpcre + devel:libpcreposix + " + +BUILD_PREREQUIRES=" + haiku_devel + cmd:bison + cmd:flex + cmd:gcc + cmd:jam + cmd:ld + " + +USER_SETTINGS_FILES=" + settings/pe directory + " + + +PATCHES=" + pe-2.4.3_hg611.patch3 + " + +BUILD() +{ + jam -q + # multi-job builds don't work reliably +} + +INSTALL() +{ + peDir=$appsDir/Pe + + mkdir -p $appsDir + cp -a generated/distro $peDir + cp -a doc $peDir/Documentation + + mkdir $binDir + ln -sfn $peDir/lpe $binDir + + addAppDeskbarSymlink $peDir/Pe +} diff --git a/haiku-apps/pe/pe-2.4.3_hg615.recipe b/haiku-apps/pe/pe-2.4.3_hg615.recipe new file mode 100644 index 000000000..b73c027e7 --- /dev/null +++ b/haiku-apps/pe/pe-2.4.3_hg615.recipe @@ -0,0 +1,70 @@ +SUMMARY="A programmer's editor" +DESCRIPTION=" +Pe is a native programmer's editor for Haiku. It features syntax highlighting \ +and a structural view for several programming language, as well as basic \ +support for Makefile and Jamfile project management. +" +HOMEPAGE="http://pe-editor.berlios.de/" +LICENSE=" + BSD (4-clause) + MIT + " + +COPYRIGHT=" + 1996-2002 Maarteen Hekkelman + 2003-2013 Team Pe + " + +SRC_URI="hg+http://hg.berlios.de/repos/pe-editor#615" +REVISION="2" +ARCHITECTURES="x86_gcc2 x86 x86_64" + +PROVIDES=" + pe = $portVersion + app:Pe = $portVersion compat >= 2 + cmd:lpe = $portVersion compat >= 2 + " + +REQUIRES=" + haiku + lib:libpcre + lib:libpcreposix + " + +BUILD_REQUIRES=" + haiku_devel + devel:libpcre + devel:libpcreposix + " + +BUILD_PREREQUIRES=" + cmd:bison + cmd:flex + cmd:gcc + cmd:jam + cmd:ld + " + +USER_SETTINGS_FILES=" + settings/pe directory + " + +BUILD() +{ + jam -q + # multi-job builds don't work reliably +} + +INSTALL() +{ + peDir=$appsDir/Pe + + mkdir -p $appsDir + cp -a generated/distro $peDir + cp -a doc $peDir/Documentation + + mkdir $binDir + ln -sfn $peDir/lpe $binDir + + addAppDeskbarSymlink $peDir/Pe +} diff --git a/haiku-apps/pe/pe-2.4.4_2014_03_18.recipe b/haiku-apps/pe/pe-2.4.4_2014_03_18.recipe new file mode 100644 index 000000000..9a1829720 --- /dev/null +++ b/haiku-apps/pe/pe-2.4.4_2014_03_18.recipe @@ -0,0 +1,76 @@ +SUMMARY="A programmer's editor" +DESCRIPTION=" +Pe is a native programmer's editor for Haiku. It features syntax highlighting \ +and a structural view for several programming language, as well as basic \ +support for Makefile and Jamfile project management. +" +HOMEPAGE="https://github.com/olta/pe" +LICENSE=" + BSD (4-clause) + MIT + " + +COPYRIGHT=" + 1996-2002 Maarteen Hekkelman + 2003-2014 Team Pe + " + +srcrev="0c0b4928d863b58433e41fe76f59dc6170dff7c0" +SOURCE_DIR="pe-$srcrev" +SRC_URI="https://github.com/olta/pe/archive/$srcrev.tar.gz" +CHECKSUM_SHA256="f43f0b919d514a16cfc51fa289d658af55b32a653ba1735ab21bec15b37e10b3" +SRC_FILENAME="pe-$srcrev.tar.gz" + + +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" + +PROVIDES=" + pe = $portVersion + app:Pe = $portVersion compat >= 2 + cmd:lpe = $portVersion compat >= 2 + " + +REQUIRES=" + haiku + lib:libpcre + lib:libpcreposix + " + +BUILD_REQUIRES=" + haiku_devel + devel:libpcre + devel:libpcreposix + " + +BUILD_PREREQUIRES=" + cmd:bison + cmd:flex + cmd:gcc + cmd:jam + cmd:ld + " + +USER_SETTINGS_FILES=" + settings/pe directory + " + +BUILD() +{ + jam -q + # multi-job builds don't work reliably +} + +INSTALL() +{ + peDir=$appsDir/Pe + + mkdir -p $appsDir + cp -a generated/distro $peDir + cp -a doc $peDir/Documentation + + mkdir $binDir + ln -sfn $peDir/lpe $binDir + + addAppDeskbarSymlink $peDir/Pe +} diff --git a/haiku-apps/pe/pe-2.4.4_2014_05_29.recipe b/haiku-apps/pe/pe-2.4.4_2014_05_29.recipe new file mode 100644 index 000000000..1b5134999 --- /dev/null +++ b/haiku-apps/pe/pe-2.4.4_2014_05_29.recipe @@ -0,0 +1,76 @@ +SUMMARY="A programmer's editor" +DESCRIPTION=" +Pe is a native programmer's editor for Haiku. It features syntax highlighting \ +and a structural view for several programming language, as well as basic \ +support for Makefile and Jamfile project management. +" +HOMEPAGE="https://github.com/olta/pe" +LICENSE=" + BSD (4-clause) + MIT + " + +COPYRIGHT=" + 1996-2002 Maarteen Hekkelman + 2003-2014 Team Pe + " + +srcrev="8c23b804617361c0ce25dc42fce1c6dea46bbde5" +SOURCE_DIR="pe-$srcrev" +SRC_URI="https://github.com/olta/pe/archive/$srcrev.tar.gz" +CHECKSUM_SHA256="b3cb6b102a4b509aa6882d7c5a1dd55b3bc6fb072a9a784f98be03809967c247" +SRC_FILENAME="pe-$srcrev.tar.gz" + + +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" + +PROVIDES=" + pe = $portVersion + app:Pe = $portVersion compat >= 2 + cmd:lpe = $portVersion compat >= 2 + " + +REQUIRES=" + haiku + lib:libpcre + lib:libpcreposix + " + +BUILD_REQUIRES=" + haiku_devel + devel:libpcre + devel:libpcreposix + " + +BUILD_PREREQUIRES=" + cmd:bison + cmd:flex + cmd:gcc + cmd:jam + cmd:ld + " + +USER_SETTINGS_FILES=" + settings/pe directory + " + +BUILD() +{ + jam -q + # multi-job builds don't work reliably +} + +INSTALL() +{ + peDir=$appsDir/Pe + + mkdir -p $appsDir + cp -a generated/distro $peDir + cp -a doc $peDir/Documentation + + mkdir $binDir + ln -sfn $peDir/lpe $binDir + + addAppDeskbarSymlink $peDir/Pe +} diff --git a/haiku-apps/phantomlimb/phantomlimb-1.recipe b/haiku-apps/phantomlimb/phantomlimb-1.recipe new file mode 100644 index 000000000..e3f991cf9 --- /dev/null +++ b/haiku-apps/phantomlimb/phantomlimb-1.recipe @@ -0,0 +1,59 @@ +SUMMARY="A program to generate tones, and test your discrimination of frequency deltas" +DESCRIPTION=" +PhantomLimb is a little program to generate tones, and test your \ +discrimination of frequency deltas. I wrote it for a friend of mine who is \ +suffering from tinnitus ('ringing in the ears') due to an ear infection. \ +(the infection destroyed some nerve cells in his inner ear, and the lack of \ +signals from the destroyed nerve cells is what causes the ringing--similar to \ +the 'phantom limb' sensations experienced by amputees. Hence the name of this \ +program) By practicing discriminating between the sound of the tinnitus and \ +'nearby' sounds, he hopes to be able to train his brain to discriminate \ +between the 'phantom' sound and other, real sounds. +" +COPYRIGHT=" + 2001 Ben Loftis + 2013 Jeremy Friesner" +LICENSE="Public Domain" +HOMEPAGE="https://github.com/HaikuArchives/PhantomLimb" +SRC_URI="git+git://github.com/HaikuArchives/PhantomLimb.git#5444867ac9" +REVISION="2" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + phantomlimb = $portVersion + app:phantomlimb = $portVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:g++ + cmd:xres + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD() +{ + cd source + gcc -c -o PhantomApp.o PhantomApp.cpp + gcc -c -o PhantomWindow.o PhantomWindow.cpp + gcc -c -o PhantomPlayer.o PhantomPlayer.cpp -D PI=3.141592 + gcc -c -o PhantomView.o PhantomView.cpp + gcc -c -o LRUEntry.o LRUEntry.cpp + g++ -o PhantomLimb PhantomApp.o PhantomWindow.o PhantomPlayer.o PhantomView.o LRUEntry.o -lbe -lmedia + xres -o PhantomLimb Phantom.rsrc + mimeset -f PhantomLimb +} + +INSTALL() +{ + mkdir -p $appsDir + cp source/PhantomLimb $appsDir + addAppDeskbarSymlink $appsDir/PhantomLimb +} diff --git a/haiku-apps/ppviewer/ppviewer-1.0.0.recipe b/haiku-apps/ppviewer/ppviewer-1.0.0.recipe new file mode 100644 index 000000000..2ba0dc1ec --- /dev/null +++ b/haiku-apps/ppviewer/ppviewer-1.0.0.recipe @@ -0,0 +1,37 @@ +SUMMARY="Decrypts your PowerPacker encrypted files" +DESCRIPTION=" +Decrypts PowerPacker encrypted files using Stuart Caie's ppcrack 0.1 \ +decrypting routines. +" +HOMEPAGE="https://github.com/HaikuArchives/PPViewer" +SRC_URI="git+https://github.com/HaikuArchives/PPViewer#ce572506ca6e69c888898abf5b958701e068122b" +REVISION="1" +LICENSE="MIT" +COPYRIGHT="2002 Maurice Michalski" +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + ppviewer = $portVersion + app:ppviewer = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:g++ + " + +BUILD() +{ + g++ -lbe -ltracker -o PPViewer *.cpp +} + +INSTALL() +{ + mkdir -p $appsDir + cp PPViewer $appsDir + addAppDeskbarSymlink $appsDir/PPViewer +} diff --git a/haiku-apps/puri/puri-0.3.9.1.recipe b/haiku-apps/puri/puri-0.3.9.1.recipe deleted file mode 100644 index 272c4df9d..000000000 --- a/haiku-apps/puri/puri-0.3.9.1.recipe +++ /dev/null @@ -1,29 +0,0 @@ -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/querywatcher/patches/querywatcher-1.4.patchset b/haiku-apps/querywatcher/patches/querywatcher-1.4.patchset new file mode 100644 index 000000000..3dbf69223 --- /dev/null +++ b/haiku-apps/querywatcher/patches/querywatcher-1.4.patchset @@ -0,0 +1,109 @@ +From 88d1ebaf009131526657d0e848495b46bc001aee Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Mon, 2 Dec 2013 19:32:02 -0700 +Subject: Misc gcc4 fixes + + +diff --git a/src/App.cpp b/src/App.cpp +index 6dd6ad8..25a4bac 100644 +--- a/src/App.cpp ++++ b/src/App.cpp +@@ -41,7 +41,7 @@ const char *kTrackerQueryVolume = "_trk/qryvol1"; + #include + + // Yes, globals are bad. But, sssh! +-typedef list reflist; ++typedef std::list reflist; + reflist gIgnoreList; + BPath gSettingsPath; + +@@ -57,7 +57,7 @@ struct query_load_info + BRect rect; + }; + +-typedef list vollist; ++typedef std::list vollist; + + char *ReadAttribute(BNode node, const char *attribute, int32 *length = NULL) { + attr_info info; +@@ -583,7 +583,7 @@ QueryView::ShouldIgnore( BMessage * msg ) + ref.node = node; + ref.device = device; + +- list::iterator iter; ++ std::list::iterator iter; + iter = find(fIgnoredMatches.begin(), fIgnoredMatches.end(), ref); + + if ( iter == fIgnoredMatches.end() ) +@@ -601,7 +601,7 @@ QueryView::ShouldIgnore( BMessage * msg ) + if ( !result ) + { + // remove node from ignore list if present +- list::iterator iter; ++ std::list::iterator iter; + + node_ref ref; + ref.node = node; +@@ -619,7 +619,7 @@ QueryView::ShouldIgnore( BMessage * msg ) + if ( opcode == B_ENTRY_REMOVED ) + { + // remove from fIgnoredMatches if there +- list::iterator iter; ++ std::list::iterator iter; + + node_ref ref; + ref.node = node; +@@ -653,7 +653,7 @@ QueryView::MessageReceived(BMessage* msg) + msg->FindInt32("device",&node.device); + msg->FindInt64("node",&node.node); + +- list::iterator iter; ++ std::list::iterator iter; + + iter = find(fIgnoredMatches.begin(),fIgnoredMatches.end(),node); + +diff --git a/src/App.h b/src/App.h +index fe5e49c..765eabe 100644 +--- a/src/App.h ++++ b/src/App.h +@@ -28,7 +28,7 @@ class LabelView; + class ColorView; + + // slaad +-typedef list querylist; ++typedef std::list querylist; + + class App : public BApplication + { +@@ -104,7 +104,7 @@ private: + BString fPredicate; + + // eiman +- list fIgnoredMatches; ++ std::list fIgnoredMatches; + }; + + IMPEXP class LabelView : public BStringView +diff --git a/src/makefile b/src/makefile +index 07ea621..ac5d9b2 100644 +--- a/src/makefile ++++ b/src/makefile +@@ -47,7 +47,7 @@ SRCS := \ + # naming scheme you need to specify the path to the library + # and it's name + # library: my_lib.a entry: my_lib.a or path/my_lib.a +-LIBS= be ++LIBS= be $(STDCPPLIBS) + + # specify additional paths to directories following the standard + # libXXX.so or libXXX.a naming scheme. You can specify full paths +@@ -149,4 +149,4 @@ else + LIBS += zeta tracker + endif + +-include $(BUILDHOME)/etc/makefile-engine +\ No newline at end of file ++include $(BUILDHOME)/etc/makefile-engine +-- +1.8.3.4 + diff --git a/haiku-apps/querywatcher/querywatcher-1.4.recipe b/haiku-apps/querywatcher/querywatcher-1.4.recipe new file mode 100644 index 000000000..67f9bf7f2 --- /dev/null +++ b/haiku-apps/querywatcher/querywatcher-1.4.recipe @@ -0,0 +1,54 @@ +SUMMARY="An application that monitors Tracker queries" +DESCRIPTION=" +This is a tiny little GUI application that monitors any regular Tracker \ +queries and displays miniature indicator lights for the presence of results. +" +HOMEPAGE="https://github.com/HaikuArchives/QueryWatcher" +SRC_URI="git://github.com/HaikuArchives/QueryWatcher.git#64b66ee9e9" +LICENSE="Public Domain" +COPYRIGHT=" + 2003-2004 Michael Armida + 2004 Mikael Eiman + 2004 Michael Davidson + " +REVISION="2" +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + QueryWatcher = $portVersion + app:QueryWatcher = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc + cmd:make + cmd:mkdepend + " + +PATCHES="querywatcher-1.4.patchset" + +BUILD() +{ + cd src + make OBJ_DIR=objects \ + BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` +} + +INSTALL() +{ + mkdir -p $appsDir + cp -a src/objects/QueryWatcher $appsDir + addAppDeskbarSymlink $appsDir/QueryWatcher + + mkdir -p $docDir + cp README $docDir +} diff --git a/haiku-apps/quicklaunch/quicklaunch-0.9.5.recipe b/haiku-apps/quicklaunch/quicklaunch-0.9.5.recipe deleted file mode 100644 index a98dae242..000000000 --- a/haiku-apps/quicklaunch/quicklaunch-0.9.5.recipe +++ /dev/null @@ -1,35 +0,0 @@ -DESCRIPTION="A tool to quickly start any installed application" -HOMEPAGE="https://sourceforge.net/p/quicklaunch-h" -SRC_URI="git://git.code.sf.net/p/quicklaunch-h/code" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" - -BUILD { - cd quicklaunch-0.9.5 - rc -o QuickLaunch.rsrc QuickLaunch.rdef - make -} - -INSTALL { - cd quicklaunch-0.9.5 - cd objects.x86-gcc`setgcc | tail -c -2`-release - mkdir -p $DESTDIR`finddir B_APPS_DIRECTORY`/QuickLaunch - cp -af QuickLaunch $DESTDIR`finddir B_APPS_DIRECTORY`/QuickLaunch - cd .. - unzip -o ReadMe.zip -d $DESTDIR`finddir B_APPS_DIRECTORY`/QuickLaunch - chmod +x Add\ to\ Deskbar.sh - cp -af Add\ to\ Deskbar.sh $DESTDIR`finddir B_APPS_DIRECTORY`/QuickLaunch - mkdir -p $DESTDIR`finddir B_USER_DESKBAR_DIRECTORY`/Applications - ln -sf `finddir B_APPS_DIRECTORY`/QuickLaunch/QuickLaunch \ - $DESTDIR`finddir B_USER_DESKBAR_DIRECTORY`/Applications - if [ -z "$DESTDIR" ] - then - cd `finddir B_APPS_DIRECTORY`/QuickLaunch - desklink --remove=QuickLaunch - desklink "cmd=Remove replicant:desklink --remove=QuickLaunch" QuickLaunch - fi -} - -LICENSE="MIT" -COPYRIGHT="2013 Humdinger" diff --git a/haiku-apps/quicklaunch/quicklaunch-0.9.6.recipe b/haiku-apps/quicklaunch/quicklaunch-0.9.6.recipe new file mode 100644 index 000000000..b2b4a080e --- /dev/null +++ b/haiku-apps/quicklaunch/quicklaunch-0.9.6.recipe @@ -0,0 +1,54 @@ +SUMMARY="A tool to quickly start any installed application" +DESCRIPTION=" +QuickLaunch is a small launcher tool that helps you to quickly start any \ +installed application. Simply start to enter the name of an application and \ +QuickLaunch will find all programs matching these initial letters and show \ +them in a list. You choose an app from that list with the CursorUp/Down keys \ +and launch it by hitting Return. Escape quits QuickLaunch. +" +HOMEPAGE="http://sourceforge.net/projects/quicklaunch-h/" +SRC_URI="git://git.code.sf.net/p/quicklaunch-h/code#0effdf6464be346374d1b9ea7f63f2af0a2cfbca" +LICENSE="MIT" +COPYRIGHT="2013 Humdinger" +REVISION="2" +ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + quicklaunch = $portVersion + app:quicklaunch = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc + cmd:make + cmd:mkdepend + " + +USER_SETTINGS_FILES="settings/QuickLaunch_settings" + +BUILD() +{ + make $jobArgs +} + +INSTALL() +{ + quicklaunchDir=$appsDir/QuickLaunch + mkdir -p $quicklaunchDir + + ARCH=$(echo $buildArchitecture | sed 's/_/-/g') + cp -af objects.$ARCH-release/QuickLaunch $quicklaunchDir + cp -af ReadMe.html $quicklaunchDir + cp -r images $quicklaunchDir + + chmod +x Add\ to\ Deskbar.sh + cp -af Add\ to\ Deskbar.sh $quicklaunchDir + + addAppDeskbarSymlink $quicklaunchDir/QuickLaunch +} diff --git a/haiku-apps/quicklaunch/quicklaunch-0.9.7.recipe b/haiku-apps/quicklaunch/quicklaunch-0.9.7.recipe new file mode 100644 index 000000000..46367d6ac --- /dev/null +++ b/haiku-apps/quicklaunch/quicklaunch-0.9.7.recipe @@ -0,0 +1,54 @@ +SUMMARY="A tool to quickly start any installed application" +DESCRIPTION=" +QuickLaunch is a small launcher tool that helps you to quickly start any \ +installed application. Simply start to enter the name of an application and \ +QuickLaunch will find all programs matching these initial letters and show \ +them in a list. You choose an app from that list with the CursorUp/Down keys \ +and launch it by hitting Return. Escape quits QuickLaunch. +" +HOMEPAGE="http://sourceforge.net/projects/quicklaunch-h/" +SRC_URI="git://git.code.sf.net/p/quicklaunch-h/code#cc905c63a50c1e007bcd516312f833766afe393e" +LICENSE="MIT" +COPYRIGHT="2014 Humdinger" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + quicklaunch = $portVersion + app:quicklaunch = $portVersion + " +REQUIRES=" + haiku >= r1~alpha4_pm_hrev46536-1 + " +BUILD_REQUIRES=" + haiku_devel >= r1~alpha4_pm_hrev46536-1 + " +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc + cmd:make + cmd:mkdepend + " + +USER_SETTINGS_FILES="settings/QuickLaunch_settings" + +BUILD() +{ + make $jobArgs +} + +INSTALL() +{ + quicklaunchDir=$appsDir/QuickLaunch + mkdir -p $quicklaunchDir + + ARCH=$(echo $buildArchitecture | sed 's/_/-/g') + cp -af objects.$ARCH-release/QuickLaunch $quicklaunchDir + cp -af ReadMe.html $quicklaunchDir + cp -r images $quicklaunchDir + + chmod +x Add\ to\ Deskbar.sh + cp -af Add\ to\ Deskbar.sh $quicklaunchDir + + addAppDeskbarSymlink $quicklaunchDir/QuickLaunch +} diff --git a/haiku-apps/randomizer/patches/randomizer-1.0.0b1.patch b/haiku-apps/randomizer/patches/randomizer-1.0.0b1.patch new file mode 100644 index 000000000..0951e990f --- /dev/null +++ b/haiku-apps/randomizer/patches/randomizer-1.0.0b1.patch @@ -0,0 +1,147 @@ +From 24da7eed9c8cd793d4f873100584b70ea11d4458 Mon Sep 17 00:00:00 2001 +From: Luke +Date: Sat, 7 Dec 2013 13:04:48 +0000 +Subject: [PATCH] Add makefile + +--- + src/makefile | 128 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 128 insertions(+) + create mode 100644 src/makefile + +diff --git a/src/makefile b/src/makefile +new file mode 100644 +index 0000000..c6df5ad +--- /dev/null ++++ b/src/makefile +@@ -0,0 +1,128 @@ ++## BeOS Generic Makefile v2.3 ## ++ ++## Fill in this file to specify the project being created, and the referenced ++## makefile-engine will do all of the hard work for you. This handles both ++## Intel and PowerPC builds of the BeOS and Haiku. ++ ++## Application Specific Settings --------------------------------------------- ++ ++# specify the name of the binary ++NAME=Randomizer ++ ++# specify the type of binary ++# APP: Application ++# SHARED: Shared library or add-on ++# STATIC: Static library archive ++# DRIVER: Kernel Driver ++TYPE=APP ++ ++# add support for new Pe and Eddie features ++# to fill in generic makefile ++ ++#%{ ++# @src->@ ++ ++# specify the source files to use ++# full paths or paths relative to the makefile can be included ++# all files, regardless of directory, will have their object ++# files created in the common object directory. ++# Note that this means this makefile will not work correctly ++# if two source files with the same name (source.c or source.cpp) ++# are included from different directories. Also note that spaces ++# in folder names do not work well with this makefile. ++SRCS=App.cpp AppView.cpp AppWindow.cpp Generator.cpp main.cpp \ ++RandoBox.cpp RandoMenuBar.cpp RandoTextView.cpp ++ ++# specify the resource definition files to use ++# full path or a relative path to the resource file can be used. ++RDEFS= ++ ++# specify the resource files to use. ++# full path or a relative path to the resource file can be used. ++# both RDEFS and RSRCS can be defined in the same makefile. ++RSRCS=Randomizer.rsrc ++ ++# @<-src@ ++#%} ++ ++# end support for Pe and Eddie ++ ++# specify additional libraries to link against ++# there are two acceptable forms of library specifications ++# - if your library follows the naming pattern of: ++# libXXX.so or libXXX.a you can simply specify XXX ++# library: libbe.so entry: be ++# ++# - if your library does not follow the standard library ++# naming scheme you need to specify the path to the library ++# and it's name ++# library: my_lib.a entry: my_lib.a or path/my_lib.a ++LIBS=be $(STDCPPLIBS) ++ ++# specify additional paths to directories following the standard ++# libXXX.so or libXXX.a naming scheme. You can specify full paths ++# or paths relative to the makefile. The paths included may not ++# be recursive, so include all of the paths where libraries can ++# be found. Directories where source files are found are ++# automatically included. ++LIBPATHS= ++ ++# additional paths to look for system headers ++# thes use the form: #include
++# source file directories are NOT auto-included here ++SYSTEM_INCLUDE_PATHS = ++ ++# additional paths to look for local headers ++# thes use the form: #include "header" ++# source file directories are automatically included ++LOCAL_INCLUDE_PATHS = ++ ++# specify the level of optimization that you desire ++# NONE, SOME, FULL ++OPTIMIZE= ++ ++# 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 = ++ ++# specify whether image symbols will be created ++# so that stack crawls in the debugger are meaningful ++# if TRUE symbols will be created ++SYMBOLS = ++ ++# specify debug settings ++# if TRUE will allow application to be run from a source-level ++# debugger. Note that this will disable all optimzation. ++DEBUGGER = ++ ++# specify additional compiler flags for all files ++COMPILER_FLAGS = ++ ++# specify additional linker flags ++LINKER_FLAGS = ++ ++# specify the version of this particular item ++# (for example, -app 3 4 0 d 0 -short 340 -long "340 "`echo -n -e '\302\251'`"1999 GNU GPL") ++# This may also be specified in a resource. ++APP_VERSION = ++ ++# (for TYPE == DRIVER only) Specify desired location of driver in the /dev ++# hierarchy. Used by the driverinstall rule. E.g., DRIVER_PATH = video/usb will ++# instruct the driverinstall rule to place a symlink to your driver's binary in ++# ~/add-ons/kernel/drivers/dev/video/usb, so that your driver will appear at ++# /dev/video/usb when loaded. Default is "misc". ++DRIVER_PATH = ++ ++TARGET_DIR = . ++ ++## include the makefile-engine ++include $(BUILDHOME)/etc/makefile-engine +-- +1.8.3.4 + diff --git a/haiku-apps/randomizer/randomizer-1.0.0b1.recipe b/haiku-apps/randomizer/randomizer-1.0.0b1.recipe new file mode 100644 index 000000000..1cbcbc3f4 --- /dev/null +++ b/haiku-apps/randomizer/randomizer-1.0.0b1.recipe @@ -0,0 +1,51 @@ +SUMMARY="A random symbol sequence generator" +DESCRIPTION=" +Randomizer is a random symbol sequence generator. You can create sequences of \ +any given length, and control what characters are used. +This program can be used for many purposes, such as for generating random \ +passwords or random numbers. +" +HOMEPAGE="https://code.google.com/p/randomizer/" +SRC_URI="svn+http://randomizer.googlecode.com/svn/trunk/@r12" +LICENSE="MIT" +COPYRIGHT="2005-2009 Sergey S. Kazenyuk" +REVISION="1" +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + randomizer = $portVersion + app:randomizer = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:gcc + makefile_engine + cmd:make + cmd:mkdepend + " + +PATCHES=" + randomizer-1.0.0b1.patch + " + +SRC_FILENAME="download" + +BUILD() +{ + cd src + make BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` +} + +INSTALL() +{ + mkdir -p $appsDir + cp src/Randomizer $appsDir + addAppDeskbarSymlink $appsDir/Randomizer +} diff --git a/haiku-apps/recibe/additional-files/install_recipes_database.sh b/haiku-apps/recibe/additional-files/install_recipes_database.sh new file mode 100755 index 000000000..4bbcf677c --- /dev/null +++ b/haiku-apps/recibe/additional-files/install_recipes_database.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +settingsDir="$(finddir B_USER_SETTINGS_DIRECTORY)" + +recibeSysDataDir="$(finddir B_SYSTEM_DATA_DIRECTORY)" +recibeUserDataDir="$(finddir B_USER_DATA_DIRECTORY)" +recibesFileBase="recibe/recipes.db.zip" + +if [ -f "$settingsDir/recipes.db" ]; then + exit 0 # already have a recipes database +fi + +if [ -f "$recibeSysDataDir/$recibesFileBase" ]; then + recipesZipFile="$recibeSysDataDir/$recibesFileBase" +elif [ -f "$recibeUserDataDir/$recibesFileBase" ]; then + recipesZipFile="$recibeUserDataDir/$recibesFileBase" +else + exit 1 # couldn't find recipes.db +fi + +cd "$settingsDir" +unzip "$recipesZipFile" diff --git a/haiku-apps/recibe/recibe-1.0b1.recipe b/haiku-apps/recibe/recibe-1.0b1.recipe new file mode 100644 index 000000000..79355fe1a --- /dev/null +++ b/haiku-apps/recibe/recibe-1.0b1.recipe @@ -0,0 +1,68 @@ +SUMMARY="A cooking recipe manager" +DESCRIPTION=" +Recibe, written by DarkWyrm, is a cooking recipe manager. The included \ +database contains around 52,000 different recipes for you to try. +" +HOMEPAGE="https://github.com/HaikuArchives/Recibe" +SRC_URI="git://github.com/HaikuArchives/Recibe.git#c1d5a57264d8964a2592bc9b43588b3430bd48ad" +SRC_URI_2="http://ports-space.haiku-files.org/recibe/recipes.db.zip#noarchive" +CHECKSUM_SHA256_2="c0732e801dceead4ad37910a51e72dda0ae608892763b62bfe5d2ed403f63d15" +LICENSE="MIT" +COPYRIGHT="2007 DarkWyrm" +REVISION="1" +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +ADDITIONAL_FILES=" + install_recipes_database.sh + " + +PROVIDES=" + recibe = $portVersion + app:recibe = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + lib:libsqlite3 + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:libsqlite3 + " + +BUILD_PREREQUIRES=" + cmd:gcc + makefile_engine + cmd:make + cmd:mkdepend + cmd:xres + " + +USER_SETTINGS_FILES=" + settings/recipes.db + settings/Recibe_favorites + " +POST_INSTALL_SCRIPTS=" + $relativePostInstallDir/install_recipes_database.sh + " + +BUILD() +{ + cd sources + make OBJ_DIR=objects \ + BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` +} + +INSTALL() +{ + mkdir -p $appsDir + cp sources/objects/Recibe $appsDir + addAppDeskbarSymlink $appsDir/Recibe + + mkdir -p $dataDir/recibe + cp $sourceDir2/recipes.db.zip $dataDir/recibe + + mkdir -p $postInstallDir + cp $portDir/additional-files/install_recipes_database.sh $postInstallDir +} diff --git a/haiku-apps/remotecontrol/licenses/RemoteControl Unknown b/haiku-apps/remotecontrol/licenses/RemoteControl Unknown new file mode 100644 index 000000000..2ae52a044 --- /dev/null +++ b/haiku-apps/remotecontrol/licenses/RemoteControl Unknown @@ -0,0 +1,2 @@ +There isn't a specific license set, but on BeBits and HaikuWare it says the license is Freeware. HaikuWare and BeBits also have the source when +you download it. The official website (http://thomas.thiriez.free.fr/beos/RemoteControl/index.html) also just says "freeware" diff --git a/haiku-apps/remotecontrol/remotecontrol-1.1.recipe b/haiku-apps/remotecontrol/remotecontrol-1.1.recipe new file mode 100644 index 000000000..7a78c17ee --- /dev/null +++ b/haiku-apps/remotecontrol/remotecontrol-1.1.recipe @@ -0,0 +1,54 @@ +SUMMARY="Remote control your Haiku machines with ease!" +DESCRIPTION=" +With the Remote Control app, you can control another Haiku computer also \ +running the Remote Control app, no matter where it is. The app is able to just \ +view what's on the screen, or also control the computer. This package contains \ +the RCClient client and RCServer server. Both are to be run in the terminal. +" +HOMEPAGE="http://thomas.thiriez.free.fr/beos/RemoteControl/index.html" +SRC_URI="git://github.com/HaikuArchives/RemoteControl#c59e89e3643e4693a75e5b5456596533d068cc29" +REVISION="1" +LICENSE="RemoteControl Unknown" +COPYRIGHT="2001 Thomas Thiriez" + +ARCHITECTURES="x86 x86_gcc2" + + +PROVIDES=" + remotecontrol = $portVersion + cmd:rcserver = $portVersion + cmd:rcclient = $portVersion + addon:rcinputfilter = $portVersion + addon:rcinputdevice = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_PREREQUIRES=" + makefile_engine + cmd:g++ + cmd:xres + cmd:make + cmd:mkdepend + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD() +{ + cd sources + make -C RCClient + make -C RCInputDevice + make -C RCInputFilter + make -C RCServer +} + +INSTALL() +{ + cd sources + make -C RCClient install INSTALL_DIR=$binDir + make -C RCServer install INSTALL_DIR=$binDir + make -C RCInputDevice install INSTALL_DIR=$addOnsDir/input_server/devices + make -C RCInputFilter install INSTALL_DIR=$addOnsDir/input_server/filters +} diff --git a/haiku-apps/resourceedit/resourceedit-1.recipe b/haiku-apps/resourceedit/resourceedit-1.recipe new file mode 100644 index 000000000..2e227b4bc --- /dev/null +++ b/haiku-apps/resourceedit/resourceedit-1.recipe @@ -0,0 +1,52 @@ +DESCRIPTION=" +This is an editor for resource files (.rsrc), binary files that get compiled \ +into an application and can then be accessed by that application. +" +SUMMARY="Resource editor" +HOMEPAGE="https://github.com/HaikuArchives/ResourceEdit" +LICENSE="MIT" +COPYRIGHT="2012-2013 Tri-Edge AI" +SRC_URI="git+https://github.com/HaikuArchives/ResourceEdit.git#1873c33591e2d2ccb3dccb692c175e9f10a0e450" +REVISION="1" + +ARCHITECTURES="!x86 ?x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="!x86 ?x86_64" + +PROVIDES=" + resourceedit$secondaryArchSuffix = $portVersion + app:resourceedit$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:mkdepend + " + +BUILD() +{ + make +} + +INSTALL() +{ + # supports "x86" architecture only + mkdir $appsDir + cp objects.x86-gcc4-release/ResourceEdit $appsDir + addAppDeskbarSymlink $appsDir/ResourceEdit +} diff --git a/haiku-apps/resourcer/resourcer-1.0.recipe b/haiku-apps/resourcer/resourcer-1.0.recipe new file mode 100644 index 000000000..e6ca5b750 --- /dev/null +++ b/haiku-apps/resourcer/resourcer-1.0.recipe @@ -0,0 +1,64 @@ +SUMMARY="A resource and attribute editor with an interface editor" +DESCRIPTION=" +Resourcer is an all-purpose resource and attribute editor with a full-featured \ +interface editor. It also contains plug-in editors for 31 other data types, \ +including images, cursors, sounds, movies, text, and icons. +" +COPYRIGHT="2000 Nathan Whitehorn" +LICENSE="BSD (3-clause)" +HOMEPAGE="https://gitorious.org/desknotes/resourcer" +SRC_URI="git+https://git.gitorious.org/desknotes/resourcer.git#b93cb9e" +REVISION="2" + +ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + resourcer = $portVersion + app:resourcer = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_PREREQUIRES=" + makefile_engine + cmd:make + cmd:gcc + cmd:mkdepend" + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD() +{ + cd main + make OBJ_DIR=objects \ + BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` + + # The two next steps might not be required + # The first one probably isn't, because according to the description + # the editors are plug-ins + # but I'm not really sure about the second one + + cd ../editors + make OBJ_DIR=objects \ + BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` + + cd ../reslib + make OBJ_DIR=objects \ + BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` +} + +INSTALL() +{ + # Installing only the file in main, + # because I can't figure out how the files in the other directories + # should be installed + + mkdir -p $appsDir + cp -a main/objects/Resourcer $appsDir + + addAppDeskbarSymlink $appsDir/Resourcer +} diff --git a/haiku-apps/runprogram/patches/runprogram-1.0rc1.patchset b/haiku-apps/runprogram/patches/runprogram-1.0rc1.patchset new file mode 100644 index 000000000..0a2c636eb --- /dev/null +++ b/haiku-apps/runprogram/patches/runprogram-1.0rc1.patchset @@ -0,0 +1,63 @@ +From 6b3517facc71d33974bfd81a78a7567704a94554 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Mon, 2 Dec 2013 19:41:16 -0700 +Subject: applying patch runprogram-1.0rc1.patch + + +diff --git a/src/ExeBox.cpp b/src/ExeBox.cpp +index b4ee544..b3c3bb2 100644 +--- a/src/ExeBox.cpp ++++ b/src/ExeBox.cpp +@@ -212,7 +212,7 @@ ExeBox::InitializeAutocompletion(void) + sPathData->AddItem(new entry_ref(ref)); + } + +- find_directory(B_COMMON_BIN_DIRECTORY,&path); ++ find_directory(B_SYSTEM_BIN_DIRECTORY,&path); + dir.SetTo(path.Path()); + dir.Rewind(); + while (dir.GetNextRef(&ref) == B_OK) +@@ -271,7 +271,7 @@ ExeBox::QueryThread(void *data) + { + if ( ref.directory == B_USER_ADDONS_DIRECTORY + || ref.directory == B_BEOS_ADDONS_DIRECTORY +- || ref.directory == B_COMMON_ADDONS_DIRECTORY) ++ || ref.directory == B_SYSTEM_ADDONS_DIRECTORY) + continue; + + if (ref.directory == -1) +@@ -341,7 +341,7 @@ ExeBox::UpdateThread(void *data) + queryList.AddItem(new entry_ref(ref)); + } + +- find_directory(B_COMMON_BIN_DIRECTORY,&path); ++ find_directory(B_SYSTEM_BIN_DIRECTORY,&path); + dir.SetTo(path.Path()); + dir.Rewind(); + +-- +1.8.3.4 + + +From 522d633b7593a3009fbccf0da8efd3943cceb31b Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Mon, 2 Dec 2013 19:46:25 -0700 +Subject: Fix includes for building with gcc4 + + +diff --git a/src/ExeBox.cpp b/src/ExeBox.cpp +index b3c3bb2..4d154bb 100644 +--- a/src/ExeBox.cpp ++++ b/src/ExeBox.cpp +@@ -13,6 +13,8 @@ + #include + #include + ++#include ++ + static BObjectList *sPathData = NULL; + BLocker sPathDataLock; + thread_id sThreadID = -1; +-- +1.8.3.4 + diff --git a/haiku-apps/runprogram/runprogram-1.0rc1.recipe b/haiku-apps/runprogram/runprogram-1.0rc1.recipe new file mode 100644 index 000000000..c16026d68 --- /dev/null +++ b/haiku-apps/runprogram/runprogram-1.0rc1.recipe @@ -0,0 +1,54 @@ +SUMMARY="A simple program for running a quick terminal command" +DESCRIPTION=" +Run Program, written by DarkWyrm, is a simple program that runs a command. It \ +can autocomplete commands as you type, and is case insensitive. +If bound to a key combination via Shortcuts, commands can be run without even \ +touching the mouse. +" +HOMEPAGE="https://github.com/HaikuArchives/RunProgram" +SRC_URI="git+git://github.com/HaikuArchives/RunProgram.git#a8fe29319e8dde884d8634a0c5a82838a3706563" +LICENSE="MIT" +COPYRIGHT="2008 DarkWyrm" +REVISION="2" +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + RunProgram = $portVersion + app:RunProgram = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:gcc + cmd:xres + " + +PATCHES="runprogram-1.0rc1.patchset" + +BUILD() +{ + cd src + rm -f ObjectList.h + g++ -o RunProgram -lbe \ + AutoTextControl.cpp \ + ExeBox.cpp \ + main.cpp \ + RunWindow.cpp \ + TextFile.cpp + xres -o RunProgram "Run Program.rsrc" + mimeset -f RunProgram +} + +INSTALL() +{ + mkdir -p $appsDir + cp src/RunProgram $appsDir + addAppDeskbarSymlink $appsDir/RunProgram +} diff --git a/haiku-apps/sawteeth/sawteeth-1.3.recipe b/haiku-apps/sawteeth/sawteeth-1.3.recipe index ef0d7ce6c..28dc054a4 100644 --- a/haiku-apps/sawteeth/sawteeth-1.3.recipe +++ b/haiku-apps/sawteeth/sawteeth-1.3.recipe @@ -1,4 +1,8 @@ -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" +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" diff --git a/haiku-apps/slayer/slayer-0.9.recipe b/haiku-apps/slayer/slayer-0.9.recipe new file mode 100644 index 000000000..dd7343a1d --- /dev/null +++ b/haiku-apps/slayer/slayer-0.9.recipe @@ -0,0 +1,39 @@ +SUMMARY="Team/thread manager" +DESCRIPTION=" +Monitor CPU and memory usage for running thread and teams, adjust their +priorities or kill them. +" +LICENSE="GNU GPL v3" +COPYRIGHT="1998 Arto Jalkanen." +HOMEPAGE="https://github.com/pulkomandy/Slayer" +SRC_URI="git+https://github.com/pulkomandy/Slayer.git#f36790b1fe9" +REVISION="1" +ARCHITECTURES="?x86 x86_gcc2" + +PROVIDES=" + slayer = $portVersion + app:slayer = $portVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + makefile_engine + " + +BUILD_PREREQUIRES=" + cmd:make + cmd:gcc + " + +BUILD() +{ + cd src + make $jobArgs +} + +INSTALL() +{ + mkdir -p $appsDir + cp src/objects.*-release/Slayer $appsDir/Slayer + addAppDeskbarSymlink $appsDir/Slayer +} diff --git a/haiku-apps/sum_it/sum_it-0.2beta.recipe b/haiku-apps/sum_it/sum_it-0.2beta.recipe new file mode 100644 index 000000000..c73cc4c8e --- /dev/null +++ b/haiku-apps/sum_it/sum_it-0.2beta.recipe @@ -0,0 +1,54 @@ +SUMMARY="Sum-It is a native spreadsheet for BeOS" +DESCRIPTION=" +Sum-It is a spreadsheet for BeOS (Download BeOS for free). This is Open \ +Sum-It, the open source version of Maarten Hekkelman's Sum-It application. \ +Sum-It has many features, including a plug-in architecture for formulas and \ +graphs. This product includes software developed by Hekkelman Programmatuur B.V. +" +LICENSE="BSD (4-clause)" +COPYRIGHT="1996-1998, 2000 Hekkelman Programmatuur B.V. All rights reserved. + 1999-2000 Tim Vernum. All rights reserved." +HOMEPAGE="https://github.com/HaikuArchives/OpenSumIt" +SRC_URI="git+https://github.com/HaikuArchives/OpenSumIt.git#cdab184a27" +REVISION="2" +ARCHITECTURES="!x86 x86_gcc2" + +PROVIDES=" + sum_it = $portVersion + app:sum_it = $portVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:make + cmd:gcc + cmd:flex + cmd:bison + " + +BUILD() +{ + pushd bsl + BE_C_COMPILER=gcc make + PATH=`pwd`:$PATH + popd + + + pushd rez + BE_C_COMPILER=gcc make + PATH=`pwd`:$PATH + popd + + cd sum-it + BE_C_COMPILER=gcc make +} + +INSTALL() +{ + mkdir -p $appsDir + cp sum-it/OpenSum-It $appsDir/Sum-It + addAppDeskbarSymlink $appsDir/Sum-It +} diff --git a/haiku-apps/systeminfo/systeminfo-2.recipe b/haiku-apps/systeminfo/systeminfo-2.recipe new file mode 100644 index 000000000..fb03b72f1 --- /dev/null +++ b/haiku-apps/systeminfo/systeminfo-2.recipe @@ -0,0 +1,53 @@ +SUMMARY="A system monitor for Haiku" +DESCRIPTION=" +It is an little application through which we can see some statistics about our \ +system. +It currently only shows: +- CPU 0 usage +- CPU 1 usage (this is omitted if you have 1 cpu of course) +- Memory usage +- Boot disk used space +- Uptime +" +COPYRIGHT=" + 2002 Brent Miszalski + 2012 Disreali" +LICENSE="MIT" +HOMEPAGE="https://github.com/disreali/SystemInfo" +SRC_URI="git+git://github.com/disreali/SystemInfo.git#ae36df9999" +REVISION="2" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + SystemInfo = $portVersion + app:SystemInfo = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:gcc + cmd:xres + " + +BUILD() +{ + echo "const uint32 CP_CHANGE_BG = 'CPBG'; const uint32 CP_CHANGE_FG = 'CPFG';" > ./DigitalView.h + g++ CPUPercent.cpp ColourPrefs.cpp ImageView.cpp MemUsage.cpp SIReplicant.cpp main.cpp -o SystemInfo -lbe + xres -o SystemInfo SystemInfo.rsrc + mimeset -f SystemInfo +} + +INSTALL() +{ + mkdir -p $appsDir + cp SystemInfo $appsDir + addAppDeskbarSymlink $appsDir/SystemInfo +} diff --git a/haiku-apps/takenotes/patches/takenotes-1.0.0.patchset b/haiku-apps/takenotes/patches/takenotes-1.0.0.patchset new file mode 100644 index 000000000..42bc9ba6e --- /dev/null +++ b/haiku-apps/takenotes/patches/takenotes-1.0.0.patchset @@ -0,0 +1,36 @@ +From 06e5cb378bf63d5352a90605d2cd80ee5200d456 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Mon, 2 Dec 2013 19:59:47 -0700 +Subject: Misc gcc4 fixes + + +diff --git a/ChoiceView.cpp b/ChoiceView.cpp +index f33aa88..4293e22 100644 +--- a/ChoiceView.cpp ++++ b/ChoiceView.cpp +@@ -31,8 +31,8 @@ + #define BUTTON_UNDO 'btun' + + // Constructor +-ChoiceView :: ChoiceView(BRect rect, char *name,BHandler *handler) +- : BView(rect, name, B_FOLLOW_ALL, B_WILL_DRAW | B_FRAME_EVENTS | B_FULL_UPDATE_ON_RESIZE){ ++ChoiceView :: ChoiceView(BRect rect, char *vname,BHandler *handler) ++ : BView(rect, vname, B_FOLLOW_ALL, B_WILL_DRAW | B_FRAME_EVENTS | B_FULL_UPDATE_ON_RESIZE){ + + // Variables + BStringView *instructions; +diff --git a/NoteWindow.h b/NoteWindow.h +index a07ffe7..38e7ce3 100644 +--- a/NoteWindow.h ++++ b/NoteWindow.h +@@ -31,6 +31,7 @@ + #include + #include + #include ++#include + + /* == DATA STRUCTURE == + * Structure containing all the informations about the current post-it +-- +1.8.3.4 + diff --git a/haiku-apps/takenotes/takenotes-1.0.0.recipe b/haiku-apps/takenotes/takenotes-1.0.0.recipe new file mode 100644 index 000000000..97380a848 --- /dev/null +++ b/haiku-apps/takenotes/takenotes-1.0.0.recipe @@ -0,0 +1,52 @@ +SUMMARY="A note taking application" +DESCRIPTION=" +With this application you can: +- Write a note +- Edit the font family, color and size +- Change the color of your note +- Move your note on the desktop +- Link a note to a particular application +- Tag your note for easy search +- Set an alarm to reminds you date, appointments and so on +" +COPYRIGHT="Copyright 2009, Ilio Catallo, Stefano Celentano, Eleonora Ciceri, all rights reserved" +LICENSE="GNU GPL v2" +HOMEPAGE="https://github.com/HaikuArchives/TakeNotes" +SRC_URI="git+https://github.com/HaikuArchives/TakeNotes#3ee7d80b53" +REVISION="2" +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + takenotes=$portVersion + app:takenotes=$portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc + cmd:make + cmd:mkdepend + " + +PATCHES="takenotes-1.0.0.patchset" + +BUILD() +{ + make OBJ_DIR=objects \ + BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` +} + +INSTALL() +{ + mkdir -p $appsDir + cp objects/TakeNotes $appsDir + addAppDeskbarSymlink $appsDir/TakeNotes +} diff --git a/haiku-apps/thememanager/thememanager-0_svn.recipe b/haiku-apps/thememanager/thememanager-0_svn.recipe deleted file mode 100644 index 69eb763d7..000000000 --- a/haiku-apps/thememanager/thememanager-0_svn.recipe +++ /dev/null @@ -1,20 +0,0 @@ -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/thememanager/thememanager-1.0_git.recipe b/haiku-apps/thememanager/thememanager-1.0_git.recipe new file mode 100644 index 000000000..29835e5af --- /dev/null +++ b/haiku-apps/thememanager/thememanager-1.0_git.recipe @@ -0,0 +1,45 @@ +SUMMARY="Manages Haiku themes" +DESCRIPTION=" +The Haiku Theme Manager is compatible with the one that shipped with ZETA. \ +Users can choose which part of a theme to apply or save. It can also import \ +BeTheme themes, and to some degree, MS Plus themes. It is add-ons based, so it \ +can be extended. +" +HOMEPAGE="https://github.com/HaikuArchives/HaikuThemeManager" +SRC_URI="git://github.com/HaikuArchives/HaikuThemeManager.git#400a0ff17173a2510e24bf737df0bb218a9c531c" +# 20 October 2013 commit +LICENSE="MIT" +COPYRIGHT="2000-2012 François Revol" +REVISION="1" +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" +PROVIDES=" + thememanager = $portVersion + app:thememanager = $portVersion +" +REQUIRES=" + haiku >= $haikuVersion +" +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion +" +BUILD_PREREQUIRES=" + makefile_engine + cmd:git + cmd:gcc + cmd:make + cmd:mkdepend + cmd:ld +" + +BUILD() +{ + cd src + make OBJ_DIR=objects BUILDHOME=/boot/system/develop $jobArgs +} + +INSTALL() +{ + cd src + make OBJ_DIR=objects BUILDHOME=/boot/system/develop INSTALL_DIR=$preferencesDir install + addPreferencesDeskbarSymlink $preferencesDir/ThemeManager +} diff --git a/haiku-apps/tolmach/patches/tolmach-1.1.0.patch b/haiku-apps/tolmach/patches/tolmach-1.1.0.patch new file mode 100644 index 000000000..00afa60d2 --- /dev/null +++ b/haiku-apps/tolmach/patches/tolmach-1.1.0.patch @@ -0,0 +1,13 @@ +diff --git a/TolmachApp.cpp b/TolmachApp.cpp +index acfacb1..c7c190a 100644 +--- a/TolmachApp.cpp ++++ b/TolmachApp.cpp +@@ -421,7 +421,7 @@ void + TolmachApplication::LoadDictList() + { + BPath pathDicts; +- find_directory(B_COMMON_DATA_DIRECTORY, &pathDicts); ++ find_directory(B_USER_DATA_DIRECTORY, &pathDicts); + pathDicts.Append(cszDictionariesDir); + BDirectory dir(pathDicts.Path()); + BEntry entry; diff --git a/haiku-apps/tolmach/tolmach-1.1.0.recipe b/haiku-apps/tolmach/tolmach-1.1.0.recipe new file mode 100644 index 000000000..a4d855328 --- /dev/null +++ b/haiku-apps/tolmach/tolmach-1.1.0.recipe @@ -0,0 +1,54 @@ +SUMMARY="A dictionary for Haiku" +DESCRIPTION=" +This program is a BeOS port of KDictionary translation program for Linux by \ +Ivan V. Murasko. It follows the main concept of original linux program but \ +mainly is a real BeOS program. +" +COPYRIGHT="1999 Ivan V. Murasko" +LICENSE="GNU GPL v2" +HOMEPAGE="https://gitorious.org/desknotes/tolmach" +SRC_URI="git+https://gitorious.org/desknotes/tolmach.git#dcddbac" +REVISION="1" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + tolmach = $portVersion + app:tolmach = $portVersion + lib:libfSub + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc + cmd:make + cmd:mkdepend + " + +PATCHES="tolmach-1.1.0.patch" + +USER_SETTINGS_FILES=" + settings/Tolmach_Preferences directory" + +BUILD() +{ + make BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` +} + +INSTALL() +{ + architecture=`echo $buildArchitecture | sed 's/_/-/g'` + + mkdir -p $appsDir/Tolmach $dataDir/Tolmach + + cd objects.$architecture-release + cp Tolmach $appsDir/Tolmach + addAppDeskbarSymlink $appsDir/Tolmach/Tolmach + + cd ../Dictionaries + cp *.pgb $dataDir/Tolmach +} diff --git a/haiku-apps/torrentor/torrentor-0.0.5.recipe b/haiku-apps/torrentor/torrentor-0.0.5.recipe new file mode 100644 index 000000000..a1e1f8bd5 --- /dev/null +++ b/haiku-apps/torrentor/torrentor-0.0.5.recipe @@ -0,0 +1,63 @@ +DESCRIPTION=" +Torrentor is a torrent client for the Haiku operating system. \ +BitTorrent protocol is created for relieving servers and speed up \ +downloading files. Users are not downloading data directly from \ +server, but they are sending to and receiving it from themselves. +" +SUMMARY="Torrentor is a torrent client for the haiku operating system." +HOMEPAGE="https://github.com/Prodito/Torrentor" +SRC_URI="git+https://github.com/Prodito/Torrentor.git#c1fa0cb62963ec3c4980d99fb12e203789d9ab1a" +COPYRIGHT="2012 Guido Pola" +LICENSE="MIT" +REVISION="1" +ARCHITECTURES="x86 ?x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + torrentor${secondaryArchSuffix} = $portVersion + app:torrentor${secondaryArchSuffix} = $portVersion + " + +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + lib:libssl${secondaryArchSuffix} + lib:libcurl${secondaryArchSuffix} + lib:libevent${secondaryArchSuffix} + lib:libz${secondaryArchSuffix} + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libevent${secondaryArchSuffix} + devel:libssl${secondaryArchSuffix} + devel:libcurl${secondaryArchSuffix} + devel:libz${secondaryArchSuffix} + " + +BUILD_PREREQUIRES=" + makefile_engine + curl${secondaryArchSuffix} + cmd:jam + cmd:gcc${secondaryArchSuffix} + cmd:make + cmd:mkdepend + " + +BUILD() +{ + jam +} + +INSTALL() # just trying compile, code below doesn't have to work well +{ + mkdir -p $appsDir/Torrentor + cp Torrentor $appsDir/Torrentor/ + addAppDeskbarSymlink $appsDir/Torrentor/Torrentor +} diff --git a/haiku-apps/trackergrep/patches/trackergrep-5.1.patchset b/haiku-apps/trackergrep/patches/trackergrep-5.1.patchset new file mode 100644 index 000000000..01fd9988e --- /dev/null +++ b/haiku-apps/trackergrep/patches/trackergrep-5.1.patchset @@ -0,0 +1,49 @@ +From c02a072f11683914ce9dbe77adf0b478f613885e Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Mon, 2 Dec 2013 20:22:01 -0700 +Subject: Fix directory and include issues + + +diff --git a/source/Grepper.cpp b/source/Grepper.cpp +index d2e5c58..71befc8 100644 +--- a/source/Grepper.cpp ++++ b/source/Grepper.cpp +@@ -139,8 +139,10 @@ int32 Grepper::GrepperThread() + char command[B_PATH_NAME_LENGTH + 32]; + + BPath tempFile; +- sprintf(fileName, "/boot/var/tmp/TrackerGrep%ld", fThreadId); +- tempFile.SetTo(fileName); ++ if (find_directory(B_SYSTEM_TEMP_DIRECTORY, &tempFile, true) != B_OK) ++ return -1; ++ sprintf(fileName, "TrackerGrep%ld", fThreadId); ++ tempFile.Append(fileName); + + while (!fMustQuit && GetNextName(fileName)) { + message.MakeEmpty(); +@@ -159,8 +161,9 @@ int32 Grepper::GrepperThread() + + EscapeSpecialChars(fileName); + ++ //assume that grep is already in $PATH + sprintf( +- command, "/boot/beos/bin/grep -hn %s %s \"%s\" > \"%s\"", ++ command, "grep -hn %s %s \"%s\" > \"%s\"", + fModel->fCaseSensitive ? "" : "-i", fPattern, fileName, + tempFile.Path()); + +diff --git a/source/Model.h b/source/Model.h +index a73d801..8ec1d24 100644 +--- a/source/Model.h ++++ b/source/Model.h +@@ -30,6 +30,7 @@ + #include + #include + #include ++#include + #include + + #define PREFS_FILE "TrackerGrepSettings" +-- +1.8.3.4 + diff --git a/haiku-apps/trackergrep/trackergrep-5.1.recipe b/haiku-apps/trackergrep/trackergrep-5.1.recipe new file mode 100644 index 000000000..aa35d1f21 --- /dev/null +++ b/haiku-apps/trackergrep/trackergrep-5.1.recipe @@ -0,0 +1,55 @@ +SUMMARY="A simple Tracker add-on that lets you search through text files." +DESCRIPTION=" +Tracker Grep is a simple Tracker add-on that lets you search through text \ +files. Haiku already comes with a tool that lets you do that, grep, but you \ +need to use it from a Terminal window. Gone are those days of command-line \ +trouble, because from now on Tracker Grep lets you run grep directly from the \ +Tracker. +" +HOMEPAGE="https://github.com/HaikuArchives/TrackerGrep/" +SRC_URI="git://github.com/HaikuArchives/TrackerGrep.git#001a0b68be" +REVISION="2" +COPYRIGHT=" + 1998-2006 Matthijs Hollemans + 2007 Jonas Sundström." +LICENSE="MIT" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + TrackerGrep = $portVersion + app:TrackerGrep = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:gcc + cmd:xres + " + +PATCHES="trackergrep-5.1.patchset" + +BUILD() +{ + cd source + g++ -o TrackerGrep GrepApp.cpp GrepWindow.cpp Model.cpp \ + TrackerGrep.cpp Grepper.cpp GrepListView.cpp -fpermissive \ + -lbe -ltracker -ltextencoding + xres -o TrackerGrep TrackerGrep.rsrc + mimeset -f TrackerGrep +} + +INSTALL() +{ + cd source + mkdir -p $addOnsDir/Tracker + cp TrackerGrep $addOnsDir/Tracker + addAppDeskbarSymlink $appsDir/TrackerGrep +} diff --git a/haiku-apps/ubertuber/patches/ubertuber-0.9.7.patchset b/haiku-apps/ubertuber/patches/ubertuber-0.9.7.patchset new file mode 100644 index 000000000..ea63fb80c --- /dev/null +++ b/haiku-apps/ubertuber/patches/ubertuber-0.9.7.patchset @@ -0,0 +1,22 @@ +From bc2604eee4490c94747cbfb268e9a6cdf72d2052 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Mon, 2 Dec 2013 20:33:29 -0700 +Subject: Misc fixes for gcc4 + + +diff --git a/Makefile b/Makefile +index 8b2ae37..9af3924 100644 +--- a/Makefile ++++ b/Makefile +@@ -2,7 +2,7 @@ NAME= UberTuber + TYPE= APP + SRCS= App.cpp MainWindow.cpp Settings.cpp + RDEFS= UberTuber.rdef +-LIBS= /boot/system/lib/libroot.so /boot/system/lib/libbe.so /boot/system/lib/libtracker.so ++LIBS= be tracker $(STDCPPLIBS) + LIBPATHS= + SYSTEM_INCLUDE_PATHS= $(BUILDHOME)/headers/be $(BUILDHOME)/headers/cpp $(BUILDHOME)/headers/posix ~/config/include + LOCAL_INCLUDE_PATHS= +-- +1.8.3.4 + diff --git a/haiku-apps/ubertuber/ubertuber-0.9.10.recipe b/haiku-apps/ubertuber/ubertuber-0.9.10.recipe new file mode 100644 index 000000000..58c04a7b9 --- /dev/null +++ b/haiku-apps/ubertuber/ubertuber-0.9.10.recipe @@ -0,0 +1,68 @@ +SUMMARY="A tool to play back online videos in MediaPlayer" +DESCRIPTION=" +UberTuber grabs clips from various sites and opens them in your media player \ +while they're being downloaded. The Python script youtube-dl downloads the \ +video file to the temporary folder. From there it is either played back while \ +it gets downloaded or moved to another location determined in a file dialog. + +UberTuber monitors the system clipboard for URLs pointing to the supported \ +websites and automatically inserts them into its URL text field. + +If the playback of a clip from a particular website works, depends on the \ +underlying youtube-dl script, which gets updated from time to time. At this \ +moment there is support for clips from: + +YouTube, Google video, MetaCafe, DailyMotion, Yahoo video, Photobucket, \ +DepositFiles, Vimeo.com, blip.tv, Facebook video, Escapist magazine and many \ +more + +For a complete list, check http://rg3.github.io/youtube-dl/supportedsites.html +" +HOMEPAGE="http://sourceforge.net/projects/ubertuber/" +SRC_URI="git://git.code.sf.net/p/ubertuber/code#771c4b17d74e8a29cf2c75263019bd5815de9e09" +LICENSE="MIT" +COPYRIGHT="2011-2014 Humdinger" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + ubertuber = $portVersion + app:ubertuber = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + cmd:python + cmd:youtube_dl + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc + cmd:make + cmd:mkdepend + " + +USER_SETTINGS_FILES=" + settings/UberTuber_settings + settings/UberTuber_monitored_sites + " + +BUILD() +{ + make $jobArgs +} + +INSTALL() +{ + ubertuberDir=$appsDir/UberTuber + mkdir -p $ubertuberDir + + ARCH=$(echo $buildArchitecture | sed 's/_/-/g') + cp -af objects.$ARCH-release/UberTuber $ubertuberDir + cp -af ReadMe.html $ubertuberDir + cp -r images $ubertuberDir + + addAppDeskbarSymlink $ubertuberDir/UberTuber +} diff --git a/haiku-apps/ubertuber/ubertuber-0.9.5.recipe b/haiku-apps/ubertuber/ubertuber-0.9.5.recipe deleted file mode 100644 index ea2f5d7f0..000000000 --- a/haiku-apps/ubertuber/ubertuber-0.9.5.recipe +++ /dev/null @@ -1,25 +0,0 @@ -DESCRIPTION="A tool to play back online videos in MediaPlayer" -HOMEPAGE="https://sourceforge.net/p/ubertuber" -SRC_URI="git://git.code.sf.net/p/ubertuber/code" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" - -BUILD { - cd ubertuber-0.9.5 - rc -o UberTuber.rsrc UberTuber.rdef - make -} - -INSTALL { - cd ubertuber-0.9.5 - cd objects.x86-gcc`setgcc | tail -c -2`-release - mkdir -p $DESTDIR`finddir B_APPS_DIRECTORY`/UberTuber - cp -af UberTuber $DESTDIR`finddir B_APPS_DIRECTORY`/UberTuber - cd .. - cp -af youtube-dl $DESTDIR`finddir B_APPS_DIRECTORY`/UberTuber - unzip -o ReadMe.zip -d $DESTDIR`finddir B_APPS_DIRECTORY`/UberTuber -} - -LICENSE="MIT" -COPYRIGHT="2013 Humdinger" diff --git a/haiku-apps/ubertuber/ubertuber-0.9.7.recipe b/haiku-apps/ubertuber/ubertuber-0.9.7.recipe new file mode 100644 index 000000000..b536dc221 --- /dev/null +++ b/haiku-apps/ubertuber/ubertuber-0.9.7.recipe @@ -0,0 +1,64 @@ +SUMMARY="A tool to play back online videos in MediaPlayer" +DESCRIPTION=" +UberTuber grabs clips from various sites and opens them in your media player \ +while they're being downloaded. The Python script youtube-dl downloads the \ +video file to the temporary folder. From there it is eitherplayed back while \ +it gets downloaded or moved to another location determined in a file dialog. +UberTuber monitors the system clipboard for URLs pointing to the supported \ +websites and automatically inserts them into its URL text field. +At this moment there is support for clips from: +YouTube, Google video, MetaCafe, DailyMotion, Yahoo video, Photobucket, \ +DepositFiles, Vimeo.com, blip.tv, Facebook video and Escapist magazine. +It may also work on videos from other sites... +" +HOMEPAGE="http://sourceforge.net/projects/ubertuber/" +SRC_URI="git://git.code.sf.net/p/ubertuber/code#7971df0e58a145d7357261600442116321257065" +LICENSE="MIT" +COPYRIGHT="2013 Humdinger" +REVISION="2" +ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + ubertuber = $portVersion + app:ubertuber = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + cmd:python + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + makefile_engine + " + +BUILD_PREREQUIRES=" + cmd:gcc + cmd:ld + cmd:make + cmd:mkdepend + cmd:unzip + cmd:xres + " + +PATCHES="ubertuber-0.9.7.patchset" + +BUILD() +{ + make OBJ_DIR=objects \ + BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` +} + +INSTALL() +{ + ubertuberDir=$appsDir/UberTuber + mkdir -p $ubertuberDir + + cp -af objects/UberTuber $ubertuberDir + cp -af youtube-dl $ubertuberDir + cp -af ReadMe.html $ubertuberDir + cp -r images $ubertuberDir + + addAppDeskbarSymlink $ubertuberDir/UberTuber +} diff --git a/haiku-apps/ubertuber/ubertuber-0.9.8.recipe b/haiku-apps/ubertuber/ubertuber-0.9.8.recipe new file mode 100644 index 000000000..be0677f1b --- /dev/null +++ b/haiku-apps/ubertuber/ubertuber-0.9.8.recipe @@ -0,0 +1,57 @@ +SUMMARY="A tool to play back online videos in MediaPlayer" +DESCRIPTION=" +UberTuber grabs clips from various sites and opens them in your media player \ +while they're being downloaded. The Python script youtube-dl downloads the \ +video file to the temporary folder. From there it is eitherplayed back while \ +it gets downloaded or moved to another location determined in a file dialog. +UberTuber monitors the system clipboard for URLs pointing to the supported \ +websites and automatically inserts them into its URL text field. +At this moment there is support for clips from: +YouTube, Google video, MetaCafe, DailyMotion, Yahoo video, Photobucket, \ +DepositFiles, Vimeo.com, blip.tv, Facebook video and Escapist magazine. +For a complete list, check http://rg3.github.io/youtube-dl/supportedsites.html +" +HOMEPAGE="http://sourceforge.net/projects/ubertuber/" +SRC_URI="git://git.code.sf.net/p/ubertuber/code#12bc4486522dab6255f95c5a041674cd8b2cde2c" +LICENSE="MIT" +COPYRIGHT="2013 Humdinger" +REVISION="2" +ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + ubertuber = $portVersion + app:ubertuber = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + cmd:youtube_dl + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc + cmd:make + cmd:mkdepend + " + +USER_SETTINGS_FILES="settings/UberTuber_settings" + +BUILD() +{ + make $jobArgs +} + +INSTALL() +{ + ubertuberDir=$appsDir/UberTuber + mkdir -p $ubertuberDir + + ARCH=$(echo $buildArchitecture | sed 's/_/-/g') + cp -af objects.$ARCH-release/UberTuber $ubertuberDir + cp -af ReadMe.html $ubertuberDir + cp -r images $ubertuberDir + + addAppDeskbarSymlink $ubertuberDir/UberTuber +} diff --git a/haiku-apps/ubertuber/ubertuber-0.9.9.recipe b/haiku-apps/ubertuber/ubertuber-0.9.9.recipe new file mode 100644 index 000000000..89ed1584b --- /dev/null +++ b/haiku-apps/ubertuber/ubertuber-0.9.9.recipe @@ -0,0 +1,68 @@ +SUMMARY="A tool to play back online videos in MediaPlayer" +DESCRIPTION=" +UberTuber grabs clips from various sites and opens them in your media player \ +while they're being downloaded. The Python script youtube-dl downloads the \ +video file to the temporary folder. From there it is either played back while \ +it gets downloaded or moved to another location determined in a file dialog. + +UberTuber monitors the system clipboard for URLs pointing to the supported \ +websites and automatically inserts them into its URL text field. + +If the playback of a clip from a particular website works, depends on the \ +underlying youtube-dl script, which gets updated from time to time. At this \ +moment there is support for clips from: + +YouTube, Google video, MetaCafe, DailyMotion, Yahoo video, Photobucket, \ +DepositFiles, Vimeo.com, blip.tv, Facebook video, Escapist magazine and many \ +more + +For a complete list, check http://rg3.github.io/youtube-dl/supportedsites.html +" +HOMEPAGE="http://sourceforge.net/projects/ubertuber/" +SRC_URI="git://git.code.sf.net/p/ubertuber/code#ec9fdbc666fca65e1e031852a5da48a0b0008c46" +LICENSE="MIT" +COPYRIGHT="2011-2014 Humdinger" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + ubertuber = $portVersion + app:ubertuber = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + cmd:python + cmd:youtube_dl + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc + cmd:make + cmd:mkdepend + " + +USER_SETTINGS_FILES=" + settings/UberTuber_settings + settings/UberTuber_monitored_sites + " + +BUILD() +{ + make $jobArgs +} + +INSTALL() +{ + ubertuberDir=$appsDir/UberTuber + mkdir -p $ubertuberDir + + ARCH=$(echo $buildArchitecture | sed 's/_/-/g') + cp -af objects.$ARCH-release/UberTuber $ubertuberDir + cp -af ReadMe.html $ubertuberDir + cp -r images $ubertuberDir + + addAppDeskbarSymlink $ubertuberDir/UberTuber +} diff --git a/haiku-apps/vision/patches/vision-0.9.7-gcc2.patch b/haiku-apps/vision/patches/vision-0.9.7-gcc2.patch deleted file mode 100644 index 081346c85..000000000 --- a/haiku-apps/vision/patches/vision-0.9.7-gcc2.patch +++ /dev/null @@ -1,16 +0,0 @@ -Index: Makefile -=================================================================== ---- Vision/Makefile (revision 946) -+++ Vision/Makefile (working copy) -@@ -84,10 +84,7 @@ - - LDFLAGS := $(REG_LIBS) -nodefaultlibs - --ifeq ($(wildcard /boot/common/include/infopopper/InfoPopper.h), ) --else -- CFLAGS += -DUSE_INFOPOPPER=1 --endif -+CFLAGS += -DUSE_INFOPOPPER=1 - - DEP := gcc -MM -DBEOS_BUILD - diff --git a/haiku-apps/vision/patches/vision-0.9.7-gcc4.patch b/haiku-apps/vision/patches/vision-0.9.7-gcc4.patch index 37997208f..d526da332 100644 --- a/haiku-apps/vision/patches/vision-0.9.7-gcc4.patch +++ b/haiku-apps/vision/patches/vision-0.9.7-gcc4.patch @@ -11,15 +11,3 @@ Index: Makefile # lua LUA_LIBS := -L./src/lua/lib -llua -llualib -@@ -84,10 +84,7 @@ - - LDFLAGS := $(REG_LIBS) -nodefaultlibs - --ifeq ($(wildcard /boot/common/include/infopopper/InfoPopper.h), ) --else -- CFLAGS += -DUSE_INFOPOPPER=1 --endif -+CFLAGS += -DUSE_INFOPOPPER=1 - - DEP := gcc -MM -DBEOS_BUILD - diff --git a/haiku-apps/vision/vision-0.9.7.r946.recipe b/haiku-apps/vision/vision-0.9.7.r949.recipe similarity index 73% rename from haiku-apps/vision/vision-0.9.7.r946.recipe rename to haiku-apps/vision/vision-0.9.7.r949.recipe index 8434bb1e4..5eded6d46 100644 --- a/haiku-apps/vision/vision-0.9.7.r946.recipe +++ b/haiku-apps/vision/vision-0.9.7.r949.recipe @@ -1,15 +1,17 @@ SUMMARY="IRC client for Haiku" -DESCRIPTION="Vision is an IRC client for Haiku." +DESCRIPTION=" +Vision is an IRC client for Haiku. +" HOMEPAGE="http://vision.sourceforge.net/" -SRC_URI="svn://svn.code.sf.net/p/vision/code/branches/0.9.7#946" +SRC_URI="http://haiku-files.org/distfiles/vision-0.9.7.r949.tar.gz" +CHECKSUM_SHA256="9718be3a3b374ae280728e6fc2257d5e5430574c4c81b8b1dabeee14eadee638" LICENSE="MPL v1.1" COPYRIGHT="1999-2010 The Vision Team" -REVISION="1" +REVISION="3" ARCHITECTURES="x86_gcc2 x86 x86_64" -if [ $targetArchitecture == x86_gcc2 ]; then - PATCHES="vision-0.9.7-gcc2.patch" -else + +if [ $targetArchitecture != x86_gcc2 ]; then PATCHES="vision-0.9.7-gcc4.patch" fi @@ -25,6 +27,7 @@ BUILD_REQUIRES=" " BUILD_PREREQUIRES=" haiku_devel >= $haikuVersion + cmd:find cmd:gcc cmd:ld cmd:make @@ -34,7 +37,6 @@ USER_SETTINGS_FILES=" settings/Vision directory " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/haiku-apps/waveview/waveview-1.0.recipe b/haiku-apps/waveview/waveview-1.0.recipe new file mode 100644 index 000000000..48c05bbdc --- /dev/null +++ b/haiku-apps/waveview/waveview-1.0.recipe @@ -0,0 +1,55 @@ +SUMMARY="A simple audio wave viewer" +DESCRIPTION=" +Waveview is a simple audio wave viewer. +" +HOMEPAGE="https://github.com/aldeck/waveview" +LICENSE="MIT" +COPYRIGHT="2011 Alexandre Deckner (alex@zappotek.com)" +SRC_URI="git+https://github.com/aldeck/waveview#fce091e76a" +REVISION="2" +ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + waveview = $portVersion + app:waveview = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + lib:libpcre + lib:libpcreposix + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:libpcre + devel:libpcreposix + " + +BUILD_PREREQUIRES=" + makefile_engine + cmd:bison + cmd:flex + cmd:gcc + cmd:jam + cmd:ld + cmd:make + cmd:mkdepend + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD() +{ + make OBJ_DIR=objects \ + BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` +} + +INSTALL() +{ + mkdir -p $appsDir + cp -a objects/WaveView $appsDir + addAppDeskbarSymlink $appsDir/WaveView +} diff --git a/haiku-apps/whisper/whisper-1.2.recipe b/haiku-apps/whisper/whisper-1.2.recipe new file mode 100644 index 000000000..88765ec77 --- /dev/null +++ b/haiku-apps/whisper/whisper-1.2.recipe @@ -0,0 +1,50 @@ +SUMMARY="VoIP for Haiku" +DESCRIPTION=" +Whisper BeNet aims to provide a VoIP solution to the Haiku Platform. It was \ +ported from ZETA. +" +COPYRIGHT=" + 1998-2001 the BeNet team + 2004-2006 Bernd Korz & Oliver Ruiz Dorantes oliver.ruiz.dorantes@gmail.com + 2008 Oliver Ruiz Dorantes oliver.ruiz.dorantes@gmail.com + " +LICENSE="MIT" +HOMEPAGE="https://github.com/HaikuArchives/WhisperBeNet" +SRC_URI="git+https://github.com/HaikuArchives/WhisperBeNet#902635a" +REVISION="1" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + whisper = $portVersion + app:whisper = $portVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc + cmd:make + cmd:mkdepend + " + +USER_SETTINGS_FILES=" + settings/BeNet directory" + +BUILD() +{ + rc -o BeNet.rsrc BeNet.rdef + make $jobArgs BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` +} + +INSTALL() +{ + mkdir -p $appsDir + + cd build + cp Whisper $appsDir + addAppDeskbarSymlink $appsDir/Whisper +} diff --git a/haiku-apps/wonderbrush/wonderbrush-2.1.2.recipe b/haiku-apps/wonderbrush/wonderbrush-2.1.2.recipe index ecfa7adf1..c108925a0 100644 --- a/haiku-apps/wonderbrush/wonderbrush-2.1.2.recipe +++ b/haiku-apps/wonderbrush/wonderbrush-2.1.2.recipe @@ -1,14 +1,30 @@ SUMMARY="Native editor for bitmap graphics" -DESCRIPTION="WonderBrush is an editor for bitmap graphics. The main window holds any number of documents, which are called Canvas. A canvas has an associated name and pixel resolution as well as some other properties. It also references up to two files, which represent it on disk, one is a file in some export format (ie. an SVG document, a flat Translator bitmap or soure code), the other a full-featured project file. -Each canvas can have any number of Layers, currently arranged as a list. Each layer represents an individual bitmap in the size of the canvas. Depending on each layers blending mode, they are composed on top of each other to form the final canvas bitmap. -Each layer can contain any number of Objects, which are created by WonderBrushs tools. Each object has a set of properties which define the unique appearance of the object on the layer. -At any time, it is possible to reorder the layers, or the objects they contain. This could be called non-linear editing. It is also possible to change most of an objects properties later on. This could be called non-destructive editing, because adding another object (like a filter) does not actually destroy any pixel data." +DESCRIPTION=" +WonderBrush is an editor for bitmap graphics. The main window holds any number \ +of documents, which are called Canvas. A canvas has an associated name and \ +pixel resolution as well as some other properties. It also references up to \ +two files, which represent it on disk, one is a file in some export format \ +(ie. an SVG document, a flat Translator bitmap or soure code), the other a \ +full-featured project file. +Each canvas can have any number of Layers, currently arranged as a list. Each \ +layer represents an individual bitmap in the size of the canvas. Depending on \ +each layers blending mode, they are composed on top of each other to form the \ +final canvas bitmap. +Each layer can contain any number of Objects, which are created by \ +WonderBrush's tools. Each object has a set of properties which define the \ +unique appearance of the object on the layer. +At any time, it is possible to reorder the layers, or the objects they \ +contain. This could be called non-linear editing. It is also possible to \ +change most of an objects properties later on. This could be called \ +non-destructive editing, because adding another object (like a filter) does \ +not actually destroy any pixel data. +" HOMEPAGE="http://yellowbites.com/wonderbrush.html" LICENSE="WonderBrush" COPYRIGHT="2005, Stephan Aßmus und Ingo Weinhold GbR" SRC_URI="http://yellowbites.com/downloads/WonderBrush-2.1.2-x86-gcc2-2013-01-02.zip#noarchive" -CHECKSUM_MD5="28e64a56946c9f5aefa40486f35ffc77" -REVISION="4" +CHECKSUM_SHA256="d0e9fad818c3f7900a475b80a249c9aa4eb118dc8498a6370a87e7a10fa42067" +REVISION="5" ARCHITECTURES="x86_gcc2" if [ $effectiveTargetArchitecture = x86_gcc2 -a $targetArchitecture = x86 ] then @@ -24,6 +40,7 @@ REQUIRES=" haiku$secondaryArchSuffix >= r1~alpha3_pm-1 lib:libfreetype$secondaryArchSuffix >= 6 lib:libz$secondaryArchSuffix >= 1 + lib:liblayout$secondaryArchSuffix " BUILD_REQUIRES=" " @@ -50,6 +67,8 @@ INSTALL() mkdir -p $appsDir unzip -d $appsDir WonderBrush-2.1.2-x86-gcc2-2013-01-02.zip + rm -f $wonderbrushDir/lib/liblayout.so + # Hack to make libfreetype and libz available under the name WonderBrush # has been linked against them. ln -s $portPackageLinksDir/lib~libfreetype$secondaryArchSuffix/lib/libfreetype.so.6 \ diff --git a/haiku-apps/yab/patches/yab-1.6.patch b/haiku-apps/yab/patches/yab-1.6.patch deleted file mode 100644 index e3b3ee9e5..000000000 --- a/haiku-apps/yab/patches/yab-1.6.patch +++ /dev/null @@ -1,20 +0,0 @@ -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.recipe b/haiku-apps/yab/yab-1.6.recipe deleted file mode 100644 index 3cf2e5014..000000000 --- a/haiku-apps/yab/yab-1.6.recipe +++ /dev/null @@ -1,28 +0,0 @@ -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/yab_ide/yab_ide-2.2.1.recipe b/haiku-apps/yab_ide/yab_ide-2.2.1.recipe new file mode 100644 index 000000000..3352b6916 --- /dev/null +++ b/haiku-apps/yab_ide/yab_ide-2.2.1.recipe @@ -0,0 +1,77 @@ +SUMMARY="integrated development environment for yab." +DESCRIPTION=" +Yab allows fast prototyping with simple and clean code. yab contains a large \ +number of BeAPI specific commands for GUI creation and much, much more. + +yab wouldn't be complete without the yab-IDE, a powerful development \ +environment, which of course is programmed in yab itself. +" +HOMEPAGE="http://sourceforge.net/projects/yab-interpreter" +SRC_URI="git+https://github.com/HaikuArchives/Yab.git#a5681d8a3403c142eae0ad416a59abd2aa7a28e4" +REVISION="2" + +LICENSE="Artistic" +COPYRIGHT="1995-2006 Marc-Oliver Ihm (yabasic) + 2006-2009 Jan Bungeroth (yab improvements) + 2013 Jim Saxton (yab improvements)" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + yab_ide$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libncurses$secondaryArchSuffix + yab$secondaryArchSuffix >= 1.7.02 + devel:libncurses$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libncurses$secondaryArchSuffix + devel:libz$secondaryArchSuffix +" + +BUILD_PREREQUIRES=" + cmd:bison + cmd:flex + cmd:gcc$secondaryArchSuffix + cmd:make + cmd:mkdepend + cmd:perl + makefile_engine + " + +BUILD() +{ + cd src + make $jobArgs BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` + unzip -o App_YAB.zip + copyattr App_YAB yab +} + +INSTALL() +{ + mkdir -p $binDir + mkdir -p tmp + mkdir -p tmp/buildfactory + + cp -r src/* tmp/buildfactory + cp -r yab-IDE/BuildFactory/* tmp/buildfactory/ + unzip -o tmp/buildfactory/parts/yabstuff.zip -d tmp/buildfactory/parts + cp yab-IDE/src/yab-IDE.yab tmp/buildfactory/ + + pushd tmp/buildfactory + BuildFactory.yab yab-IDE yab-IDE.yab application/x-vnd.yab-IDE + popd + + mkdir -p $appsDir + cp -r yab-IDE/ $appsDir/ + cp tmp/buildfactory/yab-IDE $appsDir/yab-IDE/ + cp yab-IDE/src/yab-IDE.yab $appsDir/yab-IDE/src/ + + addAppDeskbarSymlink $appsDir/yab-IDE/yab-IDE "Yab IDE" +} diff --git a/haiku-data/be_book/be_book-2008_10_26.recipe b/haiku-data/be_book/be_book-2008_10_26.recipe index e80c99ba6..964c1422e 100644 --- a/haiku-data/be_book/be_book-2008_10_26.recipe +++ b/haiku-data/be_book/be_book-2008_10_26.recipe @@ -4,7 +4,7 @@ HOMEPAGE="http://www.haiku-os.org/documents" COPYRIGHT="ACCESS Co., Ltd." LICENSE="Attribution-NonCommercial-NoDerivs 3.0 Unported" SRC_URI="http://haiku-files.org/files/data/bebook_20081026.zip" -CHECKSUM_MD5="78d58b64a41ae4e8f84a14f22aea4adb" +CHECKSUM_SHA256="8bd4836744c2542567b95b3b1cacf60333562e178d5cbcf3aa0a69a02d2f7a28" REVISION="1" ARCHITECTURES="any" DISABLE_SOURCE_PACKAGE=yes diff --git a/haiku-data/ca_root_certificates/ca_root_certificates-2012_12_29.recipe b/haiku-data/ca_root_certificates/ca_root_certificates-2012_12_29.recipe index 68ce3cddf..830975cc4 100644 --- a/haiku-data/ca_root_certificates/ca_root_certificates-2012_12_29.recipe +++ b/haiku-data/ca_root_certificates/ca_root_certificates-2012_12_29.recipe @@ -8,7 +8,7 @@ LICENSE=" GNU LGPL v2.1 " SRC_URI="http://haiku-files.org/files/data/cacert_121229.pem#noarchive" -CHECKSUM_MD5="47961e7ef15667c93cd99be01b51f00a" +CHECKSUM_SHA256="f5f79efd63440f2048ead91090eaca3102d13ea17a548f72f738778a534c646d" REVISION="1" ARCHITECTURES="any" DISABLE_SOURCE_PACKAGE=yes @@ -34,15 +34,13 @@ INSTALL() } DESCRIPTION=" - Certificate data from Mozilla as of: Sat Dec 29 20:03:40 2012 - - This is a bundle of X.509 certificates of public Certificate Authorities - (CA). These were automatically extracted from Mozilla's root certificates - file (certdata.txt). This file can be found in the mozilla source tree: - http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt?raw=1 - - It contains the certificates in PEM format and therefore - can be directly used with curl / libcurl / php_curl, or with - an Apache+mod_ssl webserver for SSL client authentication. - Just configure this file as the SSLCACertificateFile. - " +Certificate data from Mozilla as of: Sat Dec 29 20:03:40 2012 +This is a bundle of X.509 certificates of public Certificate Authorities (CA). \ +These were automatically extracted from Mozilla's root certificates file \ +(certdata.txt). This file can be found in the mozilla source tree: \ +http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt?raw=1 +It contains the certificates in PEM format and therefore can be directly used \ +with curl / libcurl / php_curl, or with an Apache+mod_ssl webserver for SSL \ +client authentication. +Just configure this file as the SSLCACertificateFile. +" diff --git a/haiku-data/timgmsoundfont/timgmsoundfont-2004_01_24.recipe b/haiku-data/timgmsoundfont/timgmsoundfont-2004_01_24.recipe index 5ab8ee577..776afe35b 100644 --- a/haiku-data/timgmsoundfont/timgmsoundfont-2004_01_24.recipe +++ b/haiku-data/timgmsoundfont/timgmsoundfont-2004_01_24.recipe @@ -4,7 +4,7 @@ HOMEPAGE="http://ocmnet.com/saxguru/Timidity.htm" LICENSE="Public Domain" COPYRIGHT="2004 Tim Brechbill" SRC_URI="http://ocmnet.com/saxguru/TimGM6mb.sf2#noarchive" -CHECKSUM_MD5="1f569cc40159a6bd9250f816225ae222" +CHECKSUM_SHA256="82475b91a76de15cb28a104707d3247ba932e228bada3f47bba63c6b31aaf7a1" REVISION="4" ARCHITECTURES="any" DISABLE_SOURCE_PACKAGE=yes diff --git a/haiku-games/becheckers/becheckers-1.0.1.recipe b/haiku-games/becheckers/becheckers-1.0.1.recipe new file mode 100644 index 000000000..525258e52 --- /dev/null +++ b/haiku-games/becheckers/becheckers-1.0.1.recipe @@ -0,0 +1,42 @@ +SUMMARY="A simple checkers game for two players" +DESCRIPTION=" +BeCheckers is a simple checkers game for two players. It follows almost all \ +American Checker Federation (ACF) rules. +" +HOMEPAGE="https://github.com/HaikuArchives/BeCheckers" +SRC_URI="git://github.com/HaikuArchives/BeCheckers.git#930d3e37339c4570d58e59c3300dba7d69dd4439" +LICENSE="MIT" +COPYRIGHT="2000 Jeremy J. Gibbons" +REVISION="1" +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + BeCheckers = $portVersion + app:BeCheckers = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:gcc + " + +BUILD() +{ + cd trunk + g++ -o BeCheckers -lbe \ + BeCheckers.cpp BeCheckersWindow.cpp \ + Checker.cpp CheckerBoard.cpp +} + +INSTALL() +{ + mkdir -p $appsDir + cp trunk/BeCheckers $appsDir + addAppDeskbarSymlink $appsDir/BeCheckers +} diff --git a/haiku-games/bespider/bespider-0.1.0.recipe b/haiku-games/bespider/bespider-0.1.0.recipe new file mode 100644 index 000000000..002a1a37c --- /dev/null +++ b/haiku-games/bespider/bespider-0.1.0.recipe @@ -0,0 +1,46 @@ +SUMMARY="A spider solitaire clone for Haiku" +DESCRIPTION=" +Spider solitaire is a popular version of solitaire, where the goal \ +is to stack all the cards of a suit, from king to ace. +When you have stacked as many cards as you can, you can use a \ +stock to place a new card on top of every pile. +" +HOMEPAGE="https://github.com/HaikuArchives/BeSpider" +SRC_URI="git://github.com/HaikuArchives/BeSpider.git#2af10fba06839a79a96b7cde98fd7e10abce7ec9" +LICENSE="MIT" +COPYRIGHT="2013 Przemysław Buczkowski, + 2013 Luke (noryb009)" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" + +PROVIDES=" + bespider = $portVersion + app:bespider = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:gcc + makefile_engine + cmd:make + cmd:mkdepend + " + +BUILD() +{ + make + make bindcatalogs +} + +INSTALL() +{ + make install INSTALL_DIR=$appsDir + addAppDeskbarSymlink $appsDir/BeSpider +} diff --git a/haiku-games/bevexed/bevexed-1.1.recipe b/haiku-games/bevexed/bevexed-1.1.recipe new file mode 100644 index 000000000..25ab71ea5 --- /dev/null +++ b/haiku-games/bevexed/bevexed-1.1.recipe @@ -0,0 +1,52 @@ +SUMMARY="A maddeningly-addictive puzzle game." +DESCRIPTION=" +A maddeningly-addictive puzzle game. The concept is simple: put the tiles in \ +the grid on the left such that the numbers match wherever 2 tiles touch. +" +HOMEPAGE="https://github.com/HaikuArchives/BeVexed" +SRC_URI="git+https://github.com/HaikuArchives/BeVexed#3a45d8f364" +REVISION="1" + +LICENSE="MIT" +COPYRIGHT="2006 DarkWyrm" + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + BeVexed = $portVersion + app:BeVexed = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc + cmd:make + cmd:mkdepend + " + +USER_SETTINGS_FILES=" + settings/BeVexed + " + +BUILD() +{ + cd source + make OBJ_DIR=objects \ + BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` +} + +INSTALL() +{ + cd source + mkdir -p $appsDir + cp -a objects/BeVexed $appsDir + addAppDeskbarSymlink $appsDir/BeVexed +} diff --git a/haiku-games/guitarmaster/guitarmaster-r21.recipe b/haiku-games/guitarmaster/guitarmaster-r21.recipe new file mode 100644 index 000000000..ceaf4fdfa --- /dev/null +++ b/haiku-games/guitarmaster/guitarmaster-r21.recipe @@ -0,0 +1,48 @@ +SUMMARY="A game of musical skill and fast fingers" +DESCRIPTION=" +Guitar Master is a Frets on Fire clone made for Haiku. It uses low-resolution \ +graphics in order to run on Haiku's software-GL. +Usage: GuitarMaster [/path/to/songsDirectory] +" +HOMEPAGE="http://code.google.com/p/guitarmaster/" +SRC_URI="svn+http://guitarmaster.googlecode.com/svn/trunk/@21" +LICENSE="MIT" +COPYRIGHT="Toxic Labs 2008-2009" +REVISION="1" +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + guitarmaster = $portVersion + app:guitarmaster = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES="" +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:gcc + " + +SRC_FILENAME="download" +SOURCE_DIR="$portName" + +BUILD() +{ + g++ -o GuitarMaster -lbe -lGL \ + main.cpp \ + TApp.cpp \ + TGameView.cpp \ + TGraphics.cpp \ + TMainWindow.cpp \ + TMidiReader.cpp +} + +INSTALL() +{ + mkdir -p $appsDir + cp -a GuitarMaster $appsDir + addAppDeskbarSymlink $appsDir/GuitarMaster +} diff --git a/haiku-games/puri/puri-0.3.9.1.recipe b/haiku-games/puri/puri-0.3.9.1.recipe new file mode 100644 index 000000000..f8f554ed6 --- /dev/null +++ b/haiku-games/puri/puri-0.3.9.1.recipe @@ -0,0 +1,65 @@ +SUMMARY="Puri is a 2D and 3D chess game" +DESCRIPTION=" +Puri is a 2D and 3D chess game. You can play against a computer, or play \ +online against other people. +" +HOMEPAGE="https://gitorious.org/puri-master-of-chess/puri/" +SRC_URI="https://gitorious.org/puri-master-of-chess/puri/archive/59b5db4b337fc432b64a7d099f7b7e0fc8ece3c7.tar.gz" +CHECKSUM_SHA256="9635f5af5c154855dfe6a1496caa3373dcabc4fe875039cd0f05c438576e83cd" +SRC_FILENAME="puri-$portVersion.tar.gz" +LICENSE="MIT" +COPYRIGHT="2010-2012 Haiku Inc." +REVISION="1" +ARCHITECTURES="?x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi + +PROVIDES=" + Puri$secondaryArchSuffix = $portVersion + app:Puri$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libpng$secondaryArchSuffix + lib:libglu$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libglu$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + gcc$secondaryArchSuffix + cmd:jam + cmd:ar$secondaryArchSuffix + cmd:as$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:ranlib$secondaryArchSuffix + " + +SOURCE_DIR="puri-master-of-chess-puri" + +BUILD() +{ + jam +} + +INSTALL() +{ + cd source + + mkdir -p $appsDir/Puri + + cp Puri $appsDir/Puri + addAppDeskbarSymlink $appsDir/Puri/Puri + + cp -R data $appsDir/Puri/data + cp -R Engines $appsDir/Puri/Engines + chmod 755 $appsDir/Puri/Engines/stockfish +} diff --git a/haiku-apps/W6/patches/w6-1.7.patch b/haiku-games/w6/patches/w6-1.7.patch similarity index 52% rename from haiku-apps/W6/patches/w6-1.7.patch rename to haiku-games/w6/patches/w6-1.7.patch index a99e78ed2..25a6f228a 100644 --- a/haiku-apps/W6/patches/w6-1.7.patch +++ b/haiku-games/w6/patches/w6-1.7.patch @@ -28,7 +28,26 @@ diff -Naur W6Haiku/W6.cpp W6Haiku-haiku/W6.cpp + //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->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 -Naur W6Haiku/makefile W6Haiku/makefil +e-new +--- W6Haiku/makefile 2014-01-09 17:29:39.128974848 +0100 ++++ W6Haiku/makefile-new 2014-01-09 17:31:10.101974016 +0100 +@@ -3,9 +3,12 @@ + NAME := W6Haiku + TYPE := APP + SRCS := BarView.cpp BubbleHelper.cpp BuyWindow.cpp ChooseView.cpp ChooseWindow.cpp ColGrpView.cpp ColorWindow.cpp EditGrpWindow.cpp EditPolWindow.cpp EditWindow.cpp EditorGrpView.cpp EditorPolView.cpp EditorView.cpp FlagView.cpp GroupView.cpp GroupWindow.cpp HistoryView.cpp InfoView.cpp InfoWindow.cpp Init.cpp MapView.cpp OrderWindow.cpp PowerView.cpp Running.cpp SendWindow.cpp SpeedWindow.cpp StatusView.cpp TopView.cpp TxtView.cpp W6.cpp W6Window.cpp WeatherView.cpp attack.cpp classSound.cpp classSoundMaster.cpp country.cpp day.cpp group.cpp politic.cpp weapon.cpp +-LIBS := be media png tracker root translation ++LIBS := be media tracker root translation + OPTIMIZE := FULL + RSRCS := img.rsrc w6.rsrc + CC=g++#Additional makerules go here, use '#' to comment out lines + +-include /boot/develop/etc/makefile-engine ++## include the makefile-engine ++DEVEL_DIRECTORY := \ ++ $(shell findpaths -r "makefile_engine" B_FIND_PATH_DEVELOP_DIRECTORY) ++include $(DEVEL_DIRECTORY)/etc/makefile-engine diff --git a/haiku-games/w6/w6-1.7.recipe b/haiku-games/w6/w6-1.7.recipe new file mode 100644 index 000000000..6130be20d --- /dev/null +++ b/haiku-games/w6/w6-1.7.recipe @@ -0,0 +1,56 @@ +SUMMARY="A strategy game simulating a world wide war" +DESCRIPTION="\"What Went Wrong? it's a World Wide War!\" features a worldmap \ +with every single country on this planet including Swaziland (great hello to \ +all of you Swaziland BeOS users). It has real data for every country in the \ +world (at least in the 70's), including population, PNB etc. +Using the editor, you can let the computer play alone and turn it in kind of \ +war simulation software. +" +HOMEPAGE="http://lema.link-u.com/be/" +SRC_URI="http://lema.link-u.com/be/W6Haiku.zip" +CHECKSUM_SHA256="6393cb0f4d31728d575ccfc70d5c40153c610024163487d2e46b8db4e8aa3c58" +SRC_URI_2="http://lema.link-u.com/be/W6forR5-with-sources.zip" +CHECKSUM_SHA256_2="0e12d3a80d668a6d86c4d2ea67aa1c18d7ece5f218d2512b36f96cdf3071bbdf" +REVISION="1" +LICENSE="Public Domain" +COPYRIGHT="1998-1999 Santiago Lema" + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + w6 = $portVersion + app:w6 = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + makefile_engine + cmd:make + cmd:gcc + " + +SOURCE_DIR="W6Haiku" +SOURCE_DIR_2="W6" + +PATCHES="w6-1.7.patch" + +BUILD() +{ + make $jobArgs +} + +INSTALL() +{ + ARCHITECTURE=$(echo $buildArchitecture | sed 's/_/-/g') + + APPDIR=$appsDir/W6 + mkdir -p $APPDIR + cp -a objects.$ARCHITECTURE-release/W6Haiku $APPDIR/W6 + cp -r $sourceDir2/w6s $APPDIR + cp -r $sourceDir2/help $APPDIR + addAppDeskbarSymlink $APPDIR/W6 +} diff --git a/haiku-libs/ale/ale-0.9.1.recipe b/haiku-libs/ale/ale-0.9.1.recipe new file mode 100644 index 000000000..e24665865 --- /dev/null +++ b/haiku-libs/ale/ale-0.9.1.recipe @@ -0,0 +1,86 @@ +SUMMARY="ALE: GUI Editor to create and edit constraint-based layouts." +DESCRIPTION="The Auckland Layout Editor (ALE) is a constraint-based layout \ +editor that is based on the BALMLayout layout class. The constraint-based \ +layout model is very powerful and can describe layouts that can't be described \ +with other layout models, like for example, the grid-bag layout model. Layouts \ +created with ALE are automatically resizable and non-overlapping. This means \ +while editing a layout you can't create a layout that has two overlapping \ +views. Furthermore, layouts created with ALE have no conflicting constraints. +ALE provides a small but powerful set of edit operations. These edit \ +operations keep views automatically aligned to each other. This makes \ +creating and editing layouts very easy. +For more information read: +https://www.cs.auckland.ac.nz/~lutteroth/publications/ZeidlerEtAl2013-AucklandLayoutEditor.pdf +or watch: +http://www.youtube.com/watch?v=ZPv58AWWGRQ" +HOMEPAGE="http://github.com/czeidler/ALEditor" +srcGitRef="52a5a621e3c28fc04d46402fae263b9693bd68ab" +CHECKSUM_SHA256="cda6bc713485c058b326bc79231a99c24abad36e7d0b68a9cbbc2b292092e683" +SRC_FILENAME="ALEditor-52a5a621e3c28fc04d46402fae263b9693bd68ab.tar.gz" +SOURCE_DIR="ALEditor-$srcGitRef" +SRC_URI="https://github.com/czeidler/ALEditor/archive/$srcGitRef.tar.gz" +COPYRIGHT="Copyright (C) 2009-2014 by UniAuckland Team" +LICENSE="MIT" +REVISION="2" +ARCHITECTURES="x86 x86_gcc2 x86_64" + +PROVIDES=" + ale = $portVersion + lib:libale = $portVersion + app:ALEditor = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:gcc + cmd:ld + cmd:cmake + cmd:make + " + +BUILD() +{ + cmake . + make +} + +INSTALL() +{ + mkdir -p $appsDir/ALEditor + cp ALEditor $appsDir/ALEditor/ALEditor + mkdir -p $libDir + cp libale.so $libDir/libale.so + + addAppDeskbarSymlink $appsDir/ALEditor/ALEditor ALEditor + + # copy development headers + headersALE="LayoutArchive.h" + headersALM="ALMGroup.h ALMLayout.h ALMLayoutBuilder.h Area.h Column.h Row.h Tab.h" + headersLinearSpec="Constraint.h LinearProgrammingTypes.h LinearSpec.h Summand.h Variable.h" + + mkdir -p $includeDir/ale + for file in $headersALE + do + cp headers/editor/${file} $includeDir/ale/${file} + done + + mkdir -p $includeDir/alm + for file in $headersALM + do + cp headers/haiku_private/alm/${file} $includeDir/alm/${file} + done + + mkdir -p $includeDir/linearspec + for file in $headersLinearSpec + do + cp headers/haiku_private/linearspec/${file} $includeDir/linearspec/${file} + done + + # copy example + mkdir -p $dataDir/ale/example + cp example/* $dataDir/ale/example/ +} diff --git a/haiku-libs/haikuwebkit/haikuwebkit-1.1.3_2013_08_09.recipe b/haiku-libs/haikuwebkit/haikuwebkit-1.1.3_2013_08_09.recipe index 6e30ea577..b54bb4539 100644 --- a/haiku-libs/haikuwebkit/haikuwebkit-1.1.3_2013_08_09.recipe +++ b/haiku-libs/haikuwebkit/haikuwebkit-1.1.3_2013_08_09.recipe @@ -1,5 +1,10 @@ SUMMARY="Open source web browser engine" -DESCRIPTION="WebKit is an open source web browser engine. WebKit is also the name of the Mac OS X system framework version of the engine that's used by Safari, Dashboard, Mail, and many other OS X applications. WebKit's HTML and JavaScript code began as a branch of the KHTML and KJS libraries from KDE." +DESCRIPTION=" +WebKit is an open source web browser engine. WebKit is also the name of the \ +Mac OS X system framework version of the engine that's used by Safari, \ +Dashboard, Mail, and many other OS X applications. WebKit's HTML and \ +JavaScript code began as a branch of the KHTML and KJS libraries from KDE. +" HOMEPAGE="http://www.webkit.org/" COPYRIGHT="1998-2012 Apple Inc., Google Inc., et al" LICENSE=" @@ -9,7 +14,7 @@ LICENSE=" MIT " SRC_URI="http://www.haiku-files.org/files/haiku-webkit-lastgood-no-tests-2013-08-09.tar.bz2" -CHECKSUM_MD5="a6551b2573612678e9d2d27fda4fae48" +CHECKSUM_SHA256="5df4e69bf765fffc030c431f5af9b3b285fe747cb9d355ef4657d461e025b245" REVISION="2" ARCHITECTURES="x86 x86_64" if [ $effectiveTargetArchitecture != x86_gcc2 ]; then diff --git a/haiku-libs/haikuwebkit/haikuwebkit-1.1.3_2013_10_11.recipe b/haiku-libs/haikuwebkit/haikuwebkit-1.1.3_2013_10_11.recipe index d9ffa6c1f..247dc8f8b 100644 --- a/haiku-libs/haikuwebkit/haikuwebkit-1.1.3_2013_10_11.recipe +++ b/haiku-libs/haikuwebkit/haikuwebkit-1.1.3_2013_10_11.recipe @@ -1,5 +1,10 @@ SUMMARY="Open source web browser engine" -DESCRIPTION="WebKit is an open source web browser engine. WebKit is also the name of the Mac OS X system framework version of the engine that's used by Safari, Dashboard, Mail, and many other OS X applications. WebKit's HTML and JavaScript code began as a branch of the KHTML and KJS libraries from KDE." +DESCRIPTION=" +WebKit is an open source web browser engine. WebKit is also the name of the \ +Mac OS X system framework version of the engine that's used by Safari, \ +Dashboard, Mail, and many other OS X applications. WebKit's HTML and \ +JavaScript code began as a branch of the KHTML and KJS libraries from KDE. +" HOMEPAGE="http://www.webkit.org/" COPYRIGHT="1998-2012 Apple Inc., Google Inc., et al" LICENSE=" diff --git a/haiku-libs/haikuwebkit/haikuwebkit-1.2.0.recipe b/haiku-libs/haikuwebkit/haikuwebkit-1.2.0.recipe new file mode 100644 index 000000000..4d3551f9d --- /dev/null +++ b/haiku-libs/haikuwebkit/haikuwebkit-1.2.0.recipe @@ -0,0 +1,102 @@ +SUMMARY="Open source web browser engine" +DESCRIPTION=" +WebKit is an open source web browser engine. WebKit is also the name of the \ +Mac OS X system framework version of the engine that's used by Safari, \ +Dashboard, Mail, and many other OS X applications. WebKit's HTML and \ +JavaScript code began as a branch of the KHTML and KJS libraries from KDE. +" +HOMEPAGE="http://www.webkit.org/" +COPYRIGHT="1998-2012 Apple Inc., Google Inc., et al" +LICENSE=" + GNU LGPL v2 + GNU LGPL v2.1 + MIT + " +SRC_URI="http://pulkomandy.tk/drop/haikuwebkit_x86-1.2.0-Source.tar.bz2" +CHECKSUM_SHA256="b840d22eaf76f4b8fb14aa18e140a80abc0d58fa3c14694c978374c8fb4383d7" +REVISION="1" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + haikuwebkit$secondaryArchSuffix = $portVersion + lib:libWebKit$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + icu$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + lib:libsqlite3$secondaryArchSuffix + lib:libxml2$secondaryArchSuffix + lib:libxslt$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + haiku_devel >= $haikuVersion + icu${secondaryArchSuffix}_devel + cmd:pkg_config + devel:libruby$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libsqlite3$secondaryArchSuffix + devel:libxml2$secondaryArchSuffix + devel:libxslt$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:flex + cmd:bison + cmd:gcc$secondaryArchSuffix + cmd:gperf + cmd:ld$secondaryArchSuffix + cmd:m4 + cmd:make + cmd:perl + cmd:python + cmd:cmake + cmd:ruby + " + +SOURCE_DIR="haikuwebkit_x86-$portVersion-Source" + +BUILD() +{ + #cmake -DPORT=Haiku \ + # -DCMAKE_INSTALL_PREFIX=$prefix -DLIB_SUFFIX=/`echo $secondaryArchSuffix | tr -d _` + #make + Tools/Scripts/build-webkit --haiku --no-webkit2 \ + --cmakearg="-DCMAKE_LIBRARY_PATH=`finddir B_SYSTEM_DEVELOP_DIRECTORY`/lib -DCMAKE_INSTALL_PREFIX=$prefix" +} + +INSTALL() +{ + cd WebKitBuild/Release + make install + + prepareInstalledDevelLibs libWebKit + + # devel package + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + haikuwebkit${secondaryArchSuffix}_devel = $portVersion + devel:libjavascriptcore$secondaryArchSuffix = $portVersion + devel:libwebcore$secondaryArchSuffix = $portVersion + devel:libwebkit$secondaryArchSuffix = $portVersion + devel:libwtf$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + haikuwebkit$secondaryArchSuffix == $portVersion base + " diff --git a/haiku-libs/haikuwebkit/haikuwebkit-1.2.1.recipe b/haiku-libs/haikuwebkit/haikuwebkit-1.2.1.recipe new file mode 100644 index 000000000..5c0452b39 --- /dev/null +++ b/haiku-libs/haikuwebkit/haikuwebkit-1.2.1.recipe @@ -0,0 +1,100 @@ +SUMMARY="Open source web browser engine" +DESCRIPTION=" +WebKit is an open source web browser engine. WebKit is also the name of the \ +Mac OS X system framework version of the engine that's used by Safari, \ +Dashboard, Mail, and many other OS X applications. WebKit's HTML and \ +JavaScript code began as a branch of the KHTML and KJS libraries from KDE. +" +HOMEPAGE="http://www.webkit.org/" +COPYRIGHT="1998-2012 Apple Inc., Google Inc., et al" +LICENSE=" + GNU LGPL v2 + GNU LGPL v2.1 + MIT + " +SRC_URI="http://pulkomandy.tk/drop/haikuwebkit_x86-1.2.1-Source.tar.bz2" +CHECKSUM_MD5="9b5624345b633693ec90a95a1e9e52bf" +REVISION="1" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + haikuwebkit$secondaryArchSuffix = $portVersion + lib:libWebKit$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libicuuc$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + lib:libsqlite3$secondaryArchSuffix + lib:libxml2$secondaryArchSuffix + lib:libxslt$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + haiku_devel >= $haikuVersion + devel:libicuuc$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libsqlite3$secondaryArchSuffix + devel:libxml2$secondaryArchSuffix + devel:libxslt$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:pkg_config + cmd:flex + cmd:bison + cmd:gcc$secondaryArchSuffix + cmd:gperf + cmd:ld$secondaryArchSuffix + cmd:m4 + cmd:make + cmd:perl + cmd:python + cmd:cmake + cmd:ruby + " + +SOURCE_DIR="haikuwebkit_x86-$portVersion-Source" + +BUILD() +{ + export PKG_CONFIG_LIBDIR="`finddir B_SYSTEM_DIRECTORY`/$relativeDevelopLibDir/pkgconfig" + Tools/Scripts/build-webkit --haiku --no-webkit2 \ + --cmakearg="-DCMAKE_LIBRARY_PATH=`finddir B_SYSTEM_DIRECTORY`/$relativeDevelopLibDir -DCMAKE_INCLUDE_PATH=`finddir B_SYSTEM_DIRECTORY`/$relativeIncludeDir -DCMAKE_INSTALL_PREFIX=$prefix" +} + +INSTALL() +{ + cd WebKitBuild/Release + make install + + rm $developLibDir/* + prepareInstalledDevelLibs libWebKit + + # devel package + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + haikuwebkit${secondaryArchSuffix}_devel = $portVersion + devel:libjavascriptcore$secondaryArchSuffix = $portVersion + devel:libwebcore$secondaryArchSuffix = $portVersion + devel:libWebKit$secondaryArchSuffix = $portVersion + devel:libwtf$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + haikuwebkit$secondaryArchSuffix == $portVersion base + " diff --git a/haiku-libs/haikuwebkit/haikuwebkit-1.2.2.recipe b/haiku-libs/haikuwebkit/haikuwebkit-1.2.2.recipe new file mode 100644 index 000000000..07d7b7124 --- /dev/null +++ b/haiku-libs/haikuwebkit/haikuwebkit-1.2.2.recipe @@ -0,0 +1,102 @@ +SUMMARY="Open source web browser engine" +DESCRIPTION=" +WebKit is an open source web browser engine. WebKit is also the name of the \ +Mac OS X system framework version of the engine that's used by Safari, \ +Dashboard, Mail, and many other OS X applications. WebKit's HTML and \ +JavaScript code began as a branch of the KHTML and KJS libraries from KDE. +" +HOMEPAGE="http://www.webkit.org/" +COPYRIGHT="1998-2012 Apple Inc., Google Inc., et al" +LICENSE=" + GNU LGPL v2 + GNU LGPL v2.1 + MIT + " +SRC_URI="http://pulkomandy.tk/drop/haikuwebkit_x86-1.2.2-Source.tar.bz2" +CHECKSUM_SHA256="50688a5f78cbcc80dc2ec512effbcde36295560d2bbec0efaa9e0c679f303a42" +REVISION="1" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PATCHES="haikuwebkit-1.2.2.patchset" + +PROVIDES=" + haikuwebkit$secondaryArchSuffix = $portVersion + lib:libWebKit$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libicuuc$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + lib:libsqlite3$secondaryArchSuffix + lib:libxml2$secondaryArchSuffix + lib:libxslt$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + haiku_devel >= $haikuVersion + devel:libicuuc$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libsqlite3$secondaryArchSuffix + devel:libxml2$secondaryArchSuffix + devel:libxslt$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:pkg_config + cmd:flex + cmd:bison + cmd:gcc$secondaryArchSuffix + cmd:gperf + cmd:ld$secondaryArchSuffix + cmd:m4 + cmd:make + cmd:perl + cmd:python + cmd:cmake + cmd:ruby + " + +SOURCE_DIR="haikuwebkit_x86-$portVersion-Source" + +BUILD() +{ + export PKG_CONFIG_LIBDIR="`finddir B_SYSTEM_DIRECTORY`/$relativeDevelopLibDir/pkgconfig" + Tools/Scripts/build-webkit --haiku --no-webkit2 \ + --cmakearg="-DCMAKE_INSTALL_PREFIX=$prefix" +} + +INSTALL() +{ + cd WebKitBuild/Release + make install + + rm $developLibDir/* + prepareInstalledDevelLibs libWebKit + + # devel package + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + haikuwebkit${secondaryArchSuffix}_devel = $portVersion + devel:libjavascriptcore$secondaryArchSuffix = $portVersion + devel:libwebcore$secondaryArchSuffix = $portVersion + devel:libWebKit$secondaryArchSuffix = $portVersion + devel:libwtf$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + haikuwebkit$secondaryArchSuffix == $portVersion base + " diff --git a/haiku-libs/haikuwebkit/haikuwebkit-1.2.3.recipe b/haiku-libs/haikuwebkit/haikuwebkit-1.2.3.recipe new file mode 100644 index 000000000..0113d6281 --- /dev/null +++ b/haiku-libs/haikuwebkit/haikuwebkit-1.2.3.recipe @@ -0,0 +1,101 @@ +SUMMARY="Open source web browser engine" +DESCRIPTION=" +WebKit is an open source web browser engine. WebKit is also the name of the \ +Mac OS X system framework version of the engine that's used by Safari, \ +Dashboard, Mail, and many other OS X applications. WebKit's HTML and \ +JavaScript code began as a branch of the KHTML and KJS libraries from KDE. +" +HOMEPAGE="http://www.webkit.org/" +COPYRIGHT="1998-2012 Apple Inc., Google Inc., et al" +LICENSE=" + GNU LGPL v2 + GNU LGPL v2.1 + MIT + " +SRC_URI="https://github.com/haiku/webkit/archive/1.2.3.tar.gz" +CHECKSUM_SHA256="4784781c36dfbf7d09fb41bedbe3777bdd216c5a25ed77463c49a8120c1777a1" +SRC_FILENAME="haikuwebkit-1.2.3.tar.gz" +REVISION="1" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + haikuwebkit$secondaryArchSuffix = $portVersion + lib:libWebKit$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libicuuc$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + lib:libsqlite3$secondaryArchSuffix + lib:libxml2$secondaryArchSuffix + lib:libxslt$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + haiku_devel >= $haikuVersion + devel:libicuuc$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libsqlite3$secondaryArchSuffix + devel:libxml2$secondaryArchSuffix + devel:libxslt$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:pkg_config + cmd:flex + cmd:bison + cmd:gcc$secondaryArchSuffix + cmd:gperf + cmd:ld$secondaryArchSuffix + cmd:m4 + cmd:make + cmd:perl + cmd:python + cmd:cmake + cmd:ruby + " + +SOURCE_DIR="webkit-$portVersion" + +BUILD() +{ + export PKG_CONFIG_LIBDIR="`finddir B_SYSTEM_DIRECTORY`/$relativeDevelopLibDir/pkgconfig" + Tools/Scripts/build-webkit --haiku --no-webkit2 \ + --cmakeargs="-DCMAKE_INSTALL_PREFIX=$prefix" +} + +INSTALL() +{ + cd WebKitBuild/Release + make install + + rm $developLibDir/* + prepareInstalledDevelLibs libWebKit + + # devel package + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + haikuwebkit${secondaryArchSuffix}_devel = $portVersion + devel:libjavascriptcore$secondaryArchSuffix = $portVersion + devel:libwebcore$secondaryArchSuffix = $portVersion + devel:libWebKit$secondaryArchSuffix = $portVersion + devel:libwtf$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + haikuwebkit$secondaryArchSuffix == $portVersion base + " diff --git a/haiku-libs/haikuwebkit/haikuwebkit-1.2.4.recipe b/haiku-libs/haikuwebkit/haikuwebkit-1.2.4.recipe new file mode 100644 index 000000000..3a5237b48 --- /dev/null +++ b/haiku-libs/haikuwebkit/haikuwebkit-1.2.4.recipe @@ -0,0 +1,101 @@ +SUMMARY="Open source web browser engine" +DESCRIPTION=" +WebKit is an open source web browser engine. WebKit is also the name of the \ +Mac OS X system framework version of the engine that's used by Safari, \ +Dashboard, Mail, and many other OS X applications. WebKit's HTML and \ +JavaScript code began as a branch of the KHTML and KJS libraries from KDE. +" +HOMEPAGE="http://www.webkit.org/" +COPYRIGHT="1998-2014 Apple Inc., Google Inc., et al" +LICENSE=" + GNU LGPL v2 + GNU LGPL v2.1 + MIT + " +SRC_URI="https://github.com/haiku/webkit/archive/$portVersion.tar.gz" +CHECKSUM_SHA256="891df5f95ad796c86691267912739ef774de0222073f9f8bfc91523a082eab49" +SRC_FILENAME="haikuwebkit-$portVersion.tar.gz" +REVISION="1" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + haikuwebkit$secondaryArchSuffix = $portVersion + lib:libWebKit$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libicuuc$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + lib:libsqlite3$secondaryArchSuffix + lib:libxml2$secondaryArchSuffix + lib:libxslt$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + haiku_devel >= $haikuVersion + devel:libicuuc$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libsqlite3$secondaryArchSuffix + devel:libxml2$secondaryArchSuffix + devel:libxslt$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:pkg_config + cmd:flex + cmd:bison + cmd:gcc$secondaryArchSuffix + cmd:gperf + cmd:ld$secondaryArchSuffix + cmd:m4 + cmd:make + cmd:perl + cmd:python + cmd:cmake + cmd:ruby + " + +SOURCE_DIR="webkit-$portVersion" + +BUILD() +{ + export PKG_CONFIG_LIBDIR="`finddir B_SYSTEM_DIRECTORY`/$relativeDevelopLibDir/pkgconfig" + Tools/Scripts/build-webkit --haiku --no-webkit2 \ + --cmakeargs="-DCMAKE_INSTALL_PREFIX=$prefix" +} + +INSTALL() +{ + cd WebKitBuild/Release + make install + + rm $developLibDir/* + prepareInstalledDevelLibs libWebKit + + # devel package + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + haikuwebkit${secondaryArchSuffix}_devel = $portVersion + devel:libjavascriptcore$secondaryArchSuffix = $portVersion + devel:libwebcore$secondaryArchSuffix = $portVersion + devel:libWebKit$secondaryArchSuffix = $portVersion + devel:libwtf$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + haikuwebkit$secondaryArchSuffix == $portVersion base + " diff --git a/haiku-libs/haikuwebkit/haikuwebkit-1.2.5.recipe b/haiku-libs/haikuwebkit/haikuwebkit-1.2.5.recipe new file mode 100644 index 000000000..6d992ca9a --- /dev/null +++ b/haiku-libs/haikuwebkit/haikuwebkit-1.2.5.recipe @@ -0,0 +1,104 @@ +SUMMARY="Open source web browser engine" +DESCRIPTION=" +WebKit is an open source web browser engine. WebKit is also the name of the \ +Mac OS X system framework version of the engine that's used by Safari, \ +Dashboard, Mail, and many other OS X applications. WebKit's HTML and \ +JavaScript code began as a branch of the KHTML and KJS libraries from KDE. +" +HOMEPAGE="http://www.webkit.org/" +COPYRIGHT="1998-2014 Apple Inc., Google Inc., et al" +LICENSE=" + GNU LGPL v2 + GNU LGPL v2.1 + MIT + " +SRC_URI="https://github.com/haiku/webkit/archive/$portVersion.tar.gz" +CHECKSUM_SHA256="751a4818c017deafb0b872e1ba83e6473ddcc7bbab278618acb1b99686a6b646" +SRC_FILENAME="haikuwebkit-$portVersion.tar.gz" +REVISION="2" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + + +PATCHES="haikuwebkit-1.2.5.patchset" + +PROVIDES=" + haikuwebkit$secondaryArchSuffix = $portVersion + lib:libWebKit$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libicuuc$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + lib:libsqlite3$secondaryArchSuffix + lib:libxml2$secondaryArchSuffix + lib:libxslt$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + haiku_devel >= $haikuVersion + devel:libicuuc$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libsqlite3$secondaryArchSuffix + devel:libxml2$secondaryArchSuffix + devel:libxslt$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:pkg_config + cmd:flex + cmd:bison + cmd:gcc$secondaryArchSuffix + cmd:gperf + cmd:ld$secondaryArchSuffix + cmd:m4 + cmd:make + cmd:perl + cmd:python + cmd:cmake + cmd:ruby + " + +SOURCE_DIR="webkit-$portVersion" + +BUILD() +{ + export PKG_CONFIG_LIBDIR="`finddir B_SYSTEM_DIRECTORY`/$relativeDevelopLibDir/pkgconfig" + Tools/Scripts/build-webkit --haiku --no-webkit2 \ + --cmakeargs="-DCMAKE_INSTALL_PREFIX=$prefix" +} + +INSTALL() +{ + cd WebKitBuild/Release + make install + + rm $developLibDir/* + prepareInstalledDevelLibs libWebKit + + # devel package + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + haikuwebkit${secondaryArchSuffix}_devel = $portVersion + devel:libjavascriptcore$secondaryArchSuffix = $portVersion + devel:libwebcore$secondaryArchSuffix = $portVersion + devel:libWebKit$secondaryArchSuffix = $portVersion + devel:libwtf$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + haikuwebkit$secondaryArchSuffix == $portVersion base + " diff --git a/haiku-libs/haikuwebkit/haikuwebkit-1.3.0.recipe b/haiku-libs/haikuwebkit/haikuwebkit-1.3.0.recipe new file mode 100644 index 000000000..cd1262412 --- /dev/null +++ b/haiku-libs/haikuwebkit/haikuwebkit-1.3.0.recipe @@ -0,0 +1,109 @@ +SUMMARY="Open source web browser engine" +DESCRIPTION=" +WebKit is an open source web browser engine. WebKit is also the name of the \ +Mac OS X system framework version of the engine that's used by Safari, \ +Dashboard, Mail, and many other OS X applications. WebKit's HTML and \ +JavaScript code began as a branch of the KHTML and KJS libraries from KDE. +" +HOMEPAGE="http://www.webkit.org/" +COPYRIGHT="1998-2014 Apple Inc., Google Inc., et al" +LICENSE=" + GNU LGPL v2 + GNU LGPL v2.1 + MIT + " +SRC_URI="https://github.com/haiku/webkit/archive/$portVersion.tar.gz" +CHECKSUM_SHA256="6466ca02d5f1bd3632bcfff5451af8fae15f62696afba1231e11ac10a961449c" +SRC_FILENAME="haikuwebkit-$portVersion.tar.gz" +REVISION="2" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + + +if [ $effectiveTargetArchitecture == x86_64 ]; then + PATCHES="haikuwebkit-1.2.5.patchset" +fi + +PROVIDES=" + haikuwebkit$secondaryArchSuffix = $portVersion + lib:libWebKit$secondaryArchSuffix = $portVersion + cmd:jsc$secondaryArchSuffix + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libicuuc$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + lib:libsqlite3$secondaryArchSuffix + lib:libxml2$secondaryArchSuffix + lib:libxslt$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libavcodec$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + haiku_devel >= $haikuVersion + devel:libicuuc$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libsqlite3$secondaryArchSuffix + devel:libxml2$secondaryArchSuffix + devel:libxslt$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:libavcodec$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:pkg_config + cmd:flex + cmd:bison + cmd:gcc$secondaryArchSuffix + cmd:gperf + cmd:ld$secondaryArchSuffix + cmd:m4 + cmd:make + cmd:perl + cmd:python + cmd:cmake + cmd:ruby + " + +SOURCE_DIR="webkit-$portVersion" + +BUILD() +{ + export PKG_CONFIG_LIBDIR="`finddir B_SYSTEM_DIRECTORY`/$relativeDevelopLibDir/pkgconfig" + Tools/Scripts/build-webkit --haiku --no-webkit2 \ + --cmakeargs="-DCMAKE_INSTALL_PREFIX=$prefix" +} + +INSTALL() +{ + cd WebKitBuild/Release + make install + + rm $developLibDir/* + prepareInstalledDevelLibs libWebKit + + # devel package + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + haikuwebkit${secondaryArchSuffix}_devel = $portVersion + devel:libjavascriptcore$secondaryArchSuffix = $portVersion + devel:libwebcore$secondaryArchSuffix = $portVersion + devel:libWebKit$secondaryArchSuffix = $portVersion + devel:libwtf$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + haikuwebkit$secondaryArchSuffix == $portVersion base + " diff --git a/haiku-libs/haikuwebkit/haikuwebkit-1.3.1.recipe b/haiku-libs/haikuwebkit/haikuwebkit-1.3.1.recipe new file mode 100644 index 000000000..8f4f94b61 --- /dev/null +++ b/haiku-libs/haikuwebkit/haikuwebkit-1.3.1.recipe @@ -0,0 +1,112 @@ +SUMMARY="Open source web browser engine" +DESCRIPTION=" +WebKit is an open source web browser engine. WebKit is also the name of the \ +Mac OS X system framework version of the engine that's used by Safari, \ +Dashboard, Mail, and many other OS X applications. WebKit's HTML and \ +JavaScript code began as a branch of the KHTML and KJS libraries from KDE. +" +HOMEPAGE="http://www.webkit.org/" +COPYRIGHT="1998-2014 Apple Inc., Google Inc., et al" +LICENSE=" + GNU LGPL v2 + GNU LGPL v2.1 + MIT + " +SRC_URI="https://github.com/haiku/webkit/archive/$portVersion.tar.gz" +CHECKSUM_SHA256="a1992fd1001d85d431b469addf62451eccd8d491c14a82b1a4fd478c731aa41d" +SRC_FILENAME="haikuwebkit-$portVersion.tar.gz" +REVISION="1" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + + +if [ $effectiveTargetArchitecture == x86_64 ]; then + PATCHES="haikuwebkit-1.2.5.patchset" +fi + +PROVIDES=" + haikuwebkit$secondaryArchSuffix = $portVersion + lib:libWebKit$secondaryArchSuffix = $portVersion + cmd:jsc$secondaryArchSuffix + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libicuuc$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + lib:libsqlite3$secondaryArchSuffix + lib:libxml2$secondaryArchSuffix + lib:libxslt$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libavcodec$secondaryArchSuffix + lib:libexecinfo$secondaryArchSuffix + lib:libstdc++$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + haiku_devel >= $haikuVersion + devel:libicuuc$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libsqlite3$secondaryArchSuffix + devel:libxml2$secondaryArchSuffix + devel:libxslt$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:libavcodec$secondaryArchSuffix + devel:libexecinfo$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:pkg_config + cmd:flex + cmd:bison + cmd:gcc$secondaryArchSuffix + cmd:gperf + cmd:ld$secondaryArchSuffix + cmd:m4 + cmd:make + cmd:perl + cmd:python + cmd:cmake + cmd:ruby + " + +SOURCE_DIR="webkit-$portVersion" + +BUILD() +{ + export PKG_CONFIG_LIBDIR="`finddir B_SYSTEM_DIRECTORY`/$relativeDevelopLibDir/pkgconfig" + Tools/Scripts/build-webkit --haiku --no-webkit2 \ + --cmakeargs="-DCMAKE_INSTALL_PREFIX=$prefix" +} + +INSTALL() +{ + cd WebKitBuild/Release + make install + + rm $developLibDir/* + prepareInstalledDevelLibs libWebKit + + # devel package + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + haikuwebkit${secondaryArchSuffix}_devel = $portVersion + devel:libjavascriptcore$secondaryArchSuffix = $portVersion + devel:libwebcore$secondaryArchSuffix = $portVersion + devel:libWebKit$secondaryArchSuffix = $portVersion + devel:libwtf$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + haikuwebkit$secondaryArchSuffix == $portVersion base + " diff --git a/haiku-libs/haikuwebkit/haikuwebkit-1.3.2.recipe b/haiku-libs/haikuwebkit/haikuwebkit-1.3.2.recipe new file mode 100644 index 000000000..822a935cf --- /dev/null +++ b/haiku-libs/haikuwebkit/haikuwebkit-1.3.2.recipe @@ -0,0 +1,114 @@ +SUMMARY="Open source web browser engine" +DESCRIPTION=" +WebKit is an open source web browser engine. WebKit is also the name of the \ +Mac OS X system framework version of the engine that's used by Safari, \ +Dashboard, Mail, and many other OS X applications. WebKit's HTML and \ +JavaScript code began as a branch of the KHTML and KJS libraries from KDE. +" +HOMEPAGE="http://www.webkit.org/" +COPYRIGHT="1998-2014 Apple Inc., Google Inc., et al" +LICENSE=" + GNU LGPL v2 + GNU LGPL v2.1 + MIT + " +SRC_URI="https://github.com/haiku/webkit/archive/$portVersion.tar.gz" +CHECKSUM_SHA256="9f620ab0c2e65a543f7976421e1a9dbc059c8a3dc7b8766860732792cdddd6bf" +SRC_FILENAME="haikuwebkit-$portVersion.tar.gz" +REVISION="1" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + + +if [ $effectiveTargetArchitecture == x86_64 ]; then + PATCHES="haikuwebkit-1.2.5.patchset" +fi + +PROVIDES=" + haikuwebkit$secondaryArchSuffix = $portVersion + lib:libWebKit$secondaryArchSuffix = $portVersion + cmd:jsc + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libicuuc$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + lib:libsqlite3$secondaryArchSuffix + lib:libxml2$secondaryArchSuffix + lib:libxslt$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libavcodec$secondaryArchSuffix + lib:libexecinfo$secondaryArchSuffix + lib:libstdc++$secondaryArchSuffix + lib:libGL$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + haiku_devel >= $haikuVersion + devel:libicuuc$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libsqlite3$secondaryArchSuffix + devel:libxml2$secondaryArchSuffix + devel:libxslt$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:libavcodec$secondaryArchSuffix + devel:libexecinfo$secondaryArchSuffix + devel:libGL$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:pkg_config + cmd:flex + cmd:bison + cmd:gcc$secondaryArchSuffix + cmd:gperf + cmd:ld$secondaryArchSuffix + cmd:m4 + cmd:make + cmd:perl + cmd:python + cmd:cmake + cmd:ruby + " + +SOURCE_DIR="webkit-$portVersion" + +BUILD() +{ + export PKG_CONFIG_LIBDIR="`finddir B_SYSTEM_DIRECTORY`/$relativeDevelopLibDir/pkgconfig" + Tools/Scripts/build-webkit --haiku --no-webkit2 \ + --cmakeargs="-DCMAKE_INSTALL_PREFIX=$prefix -DSHOULD_INSTALL_JS_SHELL=ON" +} + +INSTALL() +{ + cd WebKitBuild/Release + make install + + rm $developLibDir/* + prepareInstalledDevelLibs libWebKit + + # devel package + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + haikuwebkit${secondaryArchSuffix}_devel = $portVersion + devel:libjavascriptcore$secondaryArchSuffix = $portVersion + devel:libwebcore$secondaryArchSuffix = $portVersion + devel:libWebKit$secondaryArchSuffix = $portVersion + devel:libwtf$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + haikuwebkit$secondaryArchSuffix == $portVersion base + " diff --git a/haiku-libs/haikuwebkit/patches/haikuwebkit-1.2.2.patchset b/haiku-libs/haikuwebkit/patches/haikuwebkit-1.2.2.patchset new file mode 100644 index 000000000..766eefe2c --- /dev/null +++ b/haiku-libs/haikuwebkit/patches/haikuwebkit-1.2.2.patchset @@ -0,0 +1,31 @@ +From 8a3edba7aa5d5d96531bac23172e924e8619c71d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= +Date: Tue, 7 Jan 2014 21:19:15 +0000 +Subject: Haiku: defines cpu options only for x86 + + +diff --git a/Source/cmake/OptionsHaiku.cmake b/Source/cmake/OptionsHaiku.cmake +index fe1ffa8..1135b4c 100644 +--- a/Source/cmake/OptionsHaiku.cmake ++++ b/Source/cmake/OptionsHaiku.cmake +@@ -176,10 +176,13 @@ if (CMAKE_BUILD_TYPE STREQUAL release AND CMAKE_COMPILER_IS_GNUCC AND UNIX AND N + set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--gc-sections ${CMAKE_SHARED_LINKER_FLAGS}") + endif () + +-# i686 is the official requirement for Haiku, let's try to keep this working for everyone +-# Moreover, our stack isn't 16-byte aligned so this avoid crashes where gcc would otherwise use SSE2 instructions. +-set(CMAKE_C_FLAGS "-march=i686 ${CMAKE_C_FLAGS}") +-set(CMAKE_CXX_FLAGS "-march=i686 ${CMAKE_CXX_FLAGS}") ++string(TOLOWER ${CMAKE_HOST_SYSTEM_PROCESSOR} LOWERCASE_CMAKE_HOST_SYSTEM_PROCESSOR) ++if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND "${LOWERCASE_CMAKE_HOST_SYSTEM_PROCESSOR}" STREQUAL "x86") ++ # i686 is the official requirement for Haiku, let's try to keep this working for everyone ++ # Moreover, our stack isn't 16-byte aligned so this avoid crashes where gcc would otherwise use SSE2 instructions. ++ set(CMAKE_C_FLAGS "-march=i686 ${CMAKE_C_FLAGS}") ++ set(CMAKE_CXX_FLAGS "-march=i686 ${CMAKE_CXX_FLAGS}") ++endif () + + if (WTF_USE_TILED_BACKING_STORE) + add_definitions(-DWTF_USE_ACCELERATED_COMPOSITING=1) +-- +1.8.3.4 + diff --git a/haiku-libs/haikuwebkit/patches/haikuwebkit-1.2.5.patchset b/haiku-libs/haikuwebkit/patches/haikuwebkit-1.2.5.patchset new file mode 100644 index 000000000..d4c97a1f8 --- /dev/null +++ b/haiku-libs/haikuwebkit/patches/haikuwebkit-1.2.5.patchset @@ -0,0 +1,29 @@ +From 77b90ebb44229f5e920e95d517cd153c5c3c0ce8 Mon Sep 17 00:00:00 2001 +From: Jonathan Schleifer +Date: Wed, 19 Mar 2014 00:52:39 +0100 +Subject: [PATCH] Fix compilation on x86_64 + +--- + Source/JavaScriptCore/offlineasm/asm.rb | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/Source/JavaScriptCore/offlineasm/asm.rb b/Source/JavaScriptCore/offlineasm/asm.rb +index 8fe6228..0f5849c 100644 +--- a/Source/JavaScriptCore/offlineasm/asm.rb ++++ b/Source/JavaScriptCore/offlineasm/asm.rb +@@ -209,7 +209,11 @@ class Assembler + + def self.labelReference(labelName) + if !$emitWinAsm +- "\" LOCAL_REFERENCE(#{labelName}) \"" ++ if labelName == 'llint_throw_from_slow_path_trampoline' ++ "\" GLOBAL_REFERENCE(#{labelName}) \"" ++ else ++ "\" LOCAL_REFERENCE(#{labelName}) \"" ++ end + else + "#{labelName}" + end +-- +Jonathan + diff --git a/haiku-libs/libburndevice/libburndevice-git.recipe b/haiku-libs/libburndevice/libburndevice-git.recipe new file mode 100644 index 000000000..f31c0db88 --- /dev/null +++ b/haiku-libs/libburndevice/libburndevice-git.recipe @@ -0,0 +1,76 @@ +SUMMARY="A disc burning library for Haiku" +DESCRIPTION=" +LibBurnDevice is a disc burning library for Haiku +" + +HOMEPAGE="https://github.com/HaikuArchives/Lava" +SRC_URI="git+https://github.com/HaikuArchives/Lava.git" + +REVISION="1" + +LICENSE="Public Domain" +COPYRIGHT=" + 2007, 2010 Team MAUI + 2003-2006 Haiku Inc. + " + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTRUES="x86_gcc2 x86" + +PROVIDES=" + libburndevice = $portVersion + lib:libburndevice$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + cmd:cdrtools + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:mkdepend + makefile_engine" + +BUILD() +{ + exit 0 + cd LibBurnDevice + make TYPE=SHARED OBJ_DIR=objects-shared \ + BUILDHOME=$(finddir B_SYSTEM_DEVELOP_DIRECTORY) + + make TYPE=STATIC OBJ_DIR=objects-static \ + BUILDHOME=$(finddir B_SYSTEM_DEVELOP_DIRECTORY) +} + +INSTALL() +{ + mkdir -p $libDir $developLibDir $includeDir/burndevice + + cd LibBurnDevice + + cp objects-static/libburndevice.a $developLibDir + cp objects-shared/libburndevice $libDir/libburndevice.so + + cp BurnDevice.h $includeDir/burndevice + + symlinkRelative -s $libDir/libburndevice.so $developLibDir + + packageEntries devel \ + $developLibDir \ + $includeDir + +} + +# -------- devel package -------------------------------------------------- + +PROVIDES_devel=" + libburndevice${secondaryArchSuffix}_devel = $portVersion + devel:libburndevice$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + libburndevice$secondaryArchSuffix == $portVersion base + " diff --git a/haiku-libs/libprefs/libprefs-1.2.5.recipe b/haiku-libs/libprefs/libprefs-1.2.5.recipe new file mode 100644 index 000000000..d6306bfb8 --- /dev/null +++ b/haiku-libs/libprefs/libprefs-1.2.5.recipe @@ -0,0 +1,50 @@ +SUMMARY="Shared library to take care your preferences" +DESCRIPTION=" +Shared library to take care your preferences. +" +HOMEPAGE="ftp://ftp.icm.edu.pl/vol/rzm1/beos/contrib/libraries" +SRC_URI="ftp://ftp.icm.edu.pl/vol/rzm1/beos/contrib/libraries/libprefs125.zip" +CHECKSUM_SHA256="39532c9c6c69f915a6d99fde4fd827a5bdb676ee0cf00558b6956fc91db9a737" +REVISION="1" +LICENSE="Public Domain" +COPYRIGHT="1998 libprefs@mindcontrol.org" + +ARCHITECTURES="x86_gcc2 !x86 !x86_64" +SECONDARY_ACRHITECTURES="x86_gcc2 !x86" + +PROVIDES=" + libprefs$secondaryArchSuffix = $portVersion + lib:libprefs$secondaryArchSuffix = $portVersion +" +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion +" +BUILD_REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc +" +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix +" + +SOURCE_DIR="libprefs125" + +PATCHES="libprefs.patch" + +BUILD() +{ + g++ -shared -fPIC -o libprefs.so src/libprefs.cpp -lroot -lbe +} +INSTALL() +{ + mkdir -p $libDir + mkdir -p $includeDir + + #cp bigprefs.x86.a $libDir/bigprefs.x86.a + cp libprefs.so $libDir + cp src/*.h $includeDir +} diff --git a/haiku-libs/libprefs/patches/libprefs.patch b/haiku-libs/libprefs/patches/libprefs.patch new file mode 100644 index 000000000..a08e04b42 --- /dev/null +++ b/haiku-libs/libprefs/patches/libprefs.patch @@ -0,0 +1,50 @@ +diff --git a/src/libprefs.cpp b/src/libprefs.cpp +index da58013..90d0aa4 100644 +--- a/src/libprefs.cpp ++++ b/src/libprefs.cpp +@@ -71,6 +71,7 @@ + #include + #endif + ++#include + + /* identifier for this implementation of the prefs library */ + #define PREF_VERSION_STRING "simple libprefs.so version 1.2.4" +@@ -435,7 +436,7 @@ _PREFMakePath( + { + status_t err = B_OK; + BPath bpath; +- err = find_directory(user_level ? B_USER_SETTINGS_DIRECTORY : B_COMMON_SETTINGS_DIRECTORY, &bpath, true, NULL); ++ err = find_directory(B_USER_SETTINGS_DIRECTORY, &bpath, true, NULL); + if (err < B_OK) return err; + strncpy(path, bpath.Path(), path_max); + path[path_max-1] = 0; +@@ -894,9 +895,9 @@ PREFReloadSet(PREFData data) + #if DEBUG + printf("reload read %d\n", rd); + #endif ++ char * buffer = (char *)malloc(size); + if (rd < 0) { err = rd; goto cleanup; } + if (rd != sizeof(size)) { err = B_ERROR; goto cleanup; } +- char * buffer = (char *)malloc(size); + if (buffer == NULL) { err = B_NO_MEMORY; goto cleanup; } + rd = read(data->transaction->fd, buffer, size); + #if DEBUG +@@ -1156,7 +1157,7 @@ typedef struct _PREFAppIterator { + curItem = 0; + item = new char*[block]; + BPath bpath; +- if (!find_directory(user_level ? B_USER_SETTINGS_DIRECTORY : B_COMMON_SETTINGS_DIRECTORY, &bpath, true, NULL)) ++ if (!find_directory(B_USER_SETTINGS_DIRECTORY, &bpath, true, NULL)) + { + BDirectory dir(bpath.Path()); + BEntry entry; +@@ -1278,7 +1279,7 @@ typedef struct _PREFSetIterator + curItem = 0; + item = new char*[block]; + BPath bpath; +- if (!find_directory(user_level ? B_USER_SETTINGS_DIRECTORY : B_COMMON_SETTINGS_DIRECTORY, &bpath, true, NULL)) ++ if (!find_directory(B_USER_SETTINGS_DIRECTORY, &bpath, true, NULL)) + { + char str[B_FILE_NAME_LENGTH+20]; + strcpy(str, LP_MAGIC); diff --git a/haiku-libs/libsanta/libsanta-3.0.0.recipe b/haiku-libs/libsanta/libsanta-3.0.0.recipe new file mode 100644 index 000000000..dd8da8c57 --- /dev/null +++ b/haiku-libs/libsanta/libsanta-3.0.0.recipe @@ -0,0 +1,94 @@ +SUMMARY="Custom widget library" +DESCRIPTION=" +libsanta has some useful custom widgets (color picker, column \ +list view, scroll view etc.) +NOT recommended for new apps! Use Haiku's Layout Manager instead. \ +The recipe exists only for legacy BeOS apps. +" +HOMEPAGE="https://github.com/HaikuArchives/SantasGiftBag" +COPYRIGHT="briant@timelinevista.com" +LICENSE="libsanta" +SRC_URI="git+https://github.com/HaikuArchives/SantasGiftBag#4b62541" +REVISION="2" +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + libsanta$secondaryArchSuffix = $portVersion + lib:libsanta$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:mkdepend + " + +BUILD() +{ + make TYPE=STATIC \ + OBJ_DIR=obj-static \ + BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` + + make TYPE=SHARED \ + OBJ_DIR=obj-shared \ + BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` +} + +INSTALL() +{ + mkdir -p $developLibDir $developDocDir $includeDir/santa $libDir + + cp -R Documentation/* $developDocDir + + cd obj-static + cp libsanta.a $developLibDir + + cd ../obj-shared + cp libsanta $libDir/libsanta.so.3.0.0 + + ln -s $libDir/libsanta.so.3.0.0 $libDir/libsanta.so.3 + ln -s $libDir/libsanta.so.3.0.0 $libDir/libsanta.so + + cd .. + + # Copy header files to $includeDir + + cp ./BetterScrollView/BetterScrollView.h \ + ./Colors.h \ + ./ColumnListView/CLVColumn.h \ + ./ColumnListView/CLVColumnLabelView.h \ + ./ColumnListView/CLVEasyItem.h \ + ./ColumnListView/CLVListItem.h \ + ./ColumnListView/ColumnListView.h \ + ./Cursors/Cursors.h \ + ./NewStrings/NewStrings.h \ + ./PrefilledBitmap/PrefilledBitmap.h \ + ./ScrollViewCorner/ScrollViewCorner.h $includeDir/santa + + symlinkRelative -s $libDir/libsanta.so.3.0.0 $developLibDir + + packageEntries devel \ + $developLibDir \ + $developDocDir \ + $includeDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + libsanta${secondaryArchSuffix}_devel = $portVersion + devel:libsanta$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + libsanta$secondaryArchSuffix == $portVersion base + " diff --git a/haiku-libs/libsanta/licenses/libsanta b/haiku-libs/libsanta/licenses/libsanta new file mode 100644 index 000000000..a528e5e41 --- /dev/null +++ b/haiku-libs/libsanta/licenses/libsanta @@ -0,0 +1,12 @@ +License + +The source code, object code, libraries, and the other components of Santa's Gift Bag are being made publicly available and free to use in freeware and shareware products with a price under $25 (I believe that shareware should be cheap). For overpriced shareware (hehehe) or commercial products, please contact me to negotiate a fee for use. After all, I did work hard on these classes and invested a lot of time into it. That being said, DON'T WORRY I don't want much. It totally depends on the sort of project you're working on and how much you expect to make off it. If someone makes money using my work, I'd like to get at least a little something for my contribution to that profit. + +If any of the components of Santa's Gift Bag are is used in a shareware or commercial product, I get a free copy. The source is made available so that you can improve and extend it as you need. In general it is best to customize these classes through inheritance, leaving the original Santa's Gift Bag source code unmodified, so that you can take advantage of enhancements and bug fixes as they become available. + +Feel free to distribute any components of this archive, but you are required to keep the documentation and license with it. If you wish to distribute modified source, also feel free to do so, but do so in such a manner that it is very clear what was modified, why, how, that it is not an official Santa's Gift Bag release, and you are also required to keep the documentation and license with any modified versions. + +I can be contacted at: +briant@timelinevista.com + +Thank you for using Santa's Gift Bag, and enjoy! \ No newline at end of file diff --git a/haiku-libs/libwalter/libwalter-97.recipe b/haiku-libs/libwalter/libwalter-97.recipe index e90d86b06..c9b5f6720 100644 --- a/haiku-libs/libwalter/libwalter-97.recipe +++ b/haiku-libs/libwalter/libwalter-97.recipe @@ -1,4 +1,7 @@ -DESCRIPTION="LibWalter is a supplementary collection of class and controls not present in the standard Haiku API" +DESCRIPTION=" +LibWalter is a supplementary collection of class and controls not present in \ +the standard Haiku API. +" HOMEPAGE="http://dev.osdrawer.net/projects/libwalter" SRC_URI="svn+http://svn.osdrawer.net/libwalter#97" REVISION="1" diff --git a/kde-misc/kdiff3/additional-files/kdiff3.rdef b/kde-misc/kdiff3/additional-files/kdiff3.rdef new file mode 100644 index 000000000..344a32799 --- /dev/null +++ b/kde-misc/kdiff3/additional-files/kdiff3.rdef @@ -0,0 +1,72 @@ + +resource app_flags B_MULTIPLE_LAUNCH | B_ARGV_ONLY; + +resource app_version { + major = 0, + middle = 9, + minor = 7, + + variety = B_APPV_DEVELOPMENT, + internal = 0, + + short_info = "Diff and merge tool", + long_info = "" +}; + +resource large_icon array { + $"1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B" + $"1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B" + $"1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B" + $"1B0000000000000000000000000000000000000000000000000000000000001B" + $"1B001F1F1F1F1F1F1F1F1F001F1F1F1F1F1F1F1F1F001F1F1F1F1F1F1F1F001B" + $"1B001F0000000000001F1F001F0000000000001F1F001F0000000000001F001B" + $"1B001F1F1F1F1F1F1F1F1F001F1F1F1F1F1F1F1F1F001F1F1F1F1F1F1F1F001B" + $"1B001F000000001F1F1F1F001F000000001F1F1F1F001F000000001F1F1F001B" + $"1B001F1F1F1F1F1F1F1F1F001F1F1F1F1F1F1F1F1F001F1F1F1F1F1F1F1F001B" + $"1B001F2A2A2A2A2A2A1F1F001F2A2A2A2A2A2A1F1F001F2A2A2A2A2A1F1F001B" + $"1B001F1F1F1F1F1F1F1F1F001F1F1F1F1F1F1F1F1F001F1F1F1F1F1F1F1F001B" + $"1B001F39393939391F1F1F001F2A2A2A1F1F1F1F1F001F39393939391F1F001B" + $"1B001F1F1F1F1F1F1F1F1F001F1F1F1F1F1F1F1F1F001F1F1F1F1F1F1F1F001B" + $"1B001FE1E1E1E1E1E1E11F001FE1E1E1E1E1E1E11F001F1F1F1F1F1F1F1F001B" + $"1B001F1F1F1F1F1F1F1F1F001F1F1F1F1F1F1F1F1F001F1F1F1F1F1F1F1F001B" + $"1B001FE1E1E1E1E11F1F1F001FE1E1E1E1E11F1F1F001F1F1F1F1F1F1F1F001B" + $"1B001F1F1F1F1F1F1F1F1F001F1F1F1F1F1F1F1F1F001F1F1F1F1F1F1F1F001B" + $"1B0000000000000000000000000000000000000000000000000000000000001B" + $"1B001F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F001B" + $"1B001F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F001B" + $"1B001F281F1F1F281F282828281F1F1F1F1F1F281F1F1F281F2828281F1F001B" + $"1B001F281F1F281F1F281F1F1F281F281F1F281F1F1F281F1F1F1F1F281F001B" + $"1B001F281F281F1F1F281F1F1F281F1F1F2828281F2828281F1F1F1F281F001B" + $"1B001F28281F1F1F1F281F1F1F281F281F1F281F1F1F281F1F1F28281F1F001B" + $"1B001F281F281F1F1F281F1F1F281F281F1F281F1F1F281F1F1F1F1F281F001B" + $"1B001F281F1F281F1F281F1F1F281F281F1F281F1F1F281F1F1F1F1F281F001B" + $"1B001F281F1F1F281F282828281F1F281F2828281F2828281F2828281F1F001B" + $"1B001F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F001B" + $"1B001F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F001B" + $"1B0000000000000000000000000000000000000000000000000000000000001B" + $"1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B" + $"1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B" +}; + +resource mini_icon array { + $"00000000000000000000000000000000" + $"001F1F1F1F1F86272728281F1F1F1F1F" + $"001F0C001FAE1F27281F271F0E001F0C" + $"001F1F1F1F1F1F861F26281F1F1F1F1F" + $"001F78B81FA01F1F2727281F1F1F1F1F" + $"001F1F1F1F1F1F861F26281F1F1F1F1F" + $"001F7B2A1FA21F27281F271F7B2A1FA3" + $"001F1F1F1F1F86272728281F1F1F1F1F" + $"00000000000000000000000000000000" + $"1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F" + $"28271F1F281F1F271F1FD51E28271F1F" + $"281F271F1F1F271F1FD51E1F1F1F271F" + $"281F271F281F27281F27051E1F261F1F" + $"281F271F281F271F1FD51D1F1F1F271F" + $"28271F1F281F271F1FD51D1F27281F1F" + $"1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F" +}; + +resource app_signature "application/x-vnd.kdiff3"; + +resource file_types message; diff --git a/kde-misc/kdiff3/kdiff3-0.9.97.recipe b/kde-misc/kdiff3/kdiff3-0.9.97.recipe new file mode 100644 index 000000000..3e0ac1ec4 --- /dev/null +++ b/kde-misc/kdiff3/kdiff3-0.9.97.recipe @@ -0,0 +1,79 @@ +SUMMARY="KDiff3 is a diff and merge program" +DESCRIPTION=" +KDiff3 is a diff and merge program that: +* compares or merges two or three text input files or directories, +* shows the differences line by line and character by character (!), +* provides an automatic merge-facility and +* an integrated editor for comfortable solving of merge-conflicts, +* supports Unicode, UTF-8 and other codecs, autodetection via byte-order-mark \ +'BOM' +* supports KIO on KDE (allows accessing ftp, sftp, fish, smb etc.), +* Printing of differences, +* Manual alignment of lines, +* Automatic merging of version control history ($Log$), +* and has an intuitive graphical user interface. +" +HOMEPAGE="http://kdiff3.sourceforge.net/" +SRC_URI="http://sourceforge.net/projects/kdiff3/files/kdiff3/0.9.97/kdiff3-0.9.97.tar.gz" +CHECKSUM_SHA256="e3b716bb449c814d8c30817ec1ca23fba0ed9eee5a635e766c1f2b90ddb75a2a" +COPYRIGHT="2002-2012 by Joachim Eibl" +LICENSE="GNU GPL v2" +REVISION="1" +ARCHITECTURES="x86" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES ?x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + kdiff3$secondaryArchSuffix = $portVersion + cmd:kdiff3$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libQtGui$secondaryArchSuffix + lib:libQtCore$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + " + +BUILD_PREREQUIRES=" + cmd:make + cmd:qmake$secondaryArchSuffix + cmd:g++$secondaryArchSuffix + " + +PATCHES="kdiff3-0.9.97.patchset" + +BUILD() +{ + mkdir build + cd build + qmake$secondaryArchSuffix CONFIG+=release ../src-QT4/kdiff3.pro + make $jobArgs + + rc $portDir/additional-files/kdiff3.rdef \ + -o $sourceDir/build/kdiff3.rsrc + + xres -o kdiff3 kdiff3.rsrc + mimeset -f kdiff3 +} + +INSTALL() +{ + mkdir -p $binDir + cp -af build/kdiff3 $binDir + + addAppDeskbarSymlink $binDir/kdiff3 KDiff3 + + mkdir -p $docDir + cp -af doc/* $docDir + rm -f $docDir/CMakeLists.txt $docDir/*/CMakeLists.txt +} diff --git a/kde-misc/kdiff3/patches/kdiff3-0.9.97.patchset b/kde-misc/kdiff3/patches/kdiff3-0.9.97.patchset new file mode 100644 index 000000000..ecad04e33 --- /dev/null +++ b/kde-misc/kdiff3/patches/kdiff3-0.9.97.patchset @@ -0,0 +1,22 @@ +From 5029aa9583f572d2635e56a02f480d1eafb44076 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Mon, 25 Nov 2013 23:56:56 -0700 +Subject: Don't use precompiled headers on Haiku + + +diff --git a/src-QT4/kdiff3.pro b/src-QT4/kdiff3.pro +index 84ddf47..41f9f60 100644 +--- a/src-QT4/kdiff3.pro ++++ b/src-QT4/kdiff3.pro +@@ -1,7 +1,7 @@ + TEMPLATE = app + # When unresolved items remain during linking: Try adding "shared" in the CONFIG. + CONFIG += qt warn_on thread precompile_header +-!os2:PRECOMPILED_HEADER = stable.h ++!os2:!haiku:PRECOMPILED_HEADER = stable.h + HEADERS = version.h \ + diff.h \ + difftextwindow.h \ +-- +1.8.3.4 + diff --git a/media-fonts/anonymous_pro/anonymous_pro-1.002.001.recipe b/media-fonts/anonymous_pro/anonymous_pro-1.002.001.recipe new file mode 100644 index 000000000..c3b0ad6dd --- /dev/null +++ b/media-fonts/anonymous_pro/anonymous_pro-1.002.001.recipe @@ -0,0 +1,36 @@ +SUMMARY="The Anonymous Pro Font Family" +DESCRIPTION=" +Anonymous Pro is a family of fixed-width fonts. It was designed especially for \ +coding - characers that could be mistaken for one another (e. g. O and 0) have \ +distinct shapes. It supports most of the Latin-based Western and Central \ +European languages, as well as Greek and Cyrillic. +" +HOMEPAGE="http://www.marksimonson.com/fonts/view/anonymous-pro" +SRC_URI="http://www.marksimonson.com/assets/content/fonts/AnonymousPro-1.002.zip" +CHECKSUM_SHA256="86665847a51cdfb58a1e1dfd8b1ba33f183485affe50b53e3304f63d3d3552ab" +LICENSE="SIL Open Font License v1.1" +COPYRIGHT="2009 Mark Simonson, with reserved font name Anonymous Pro" +REVISION="1" + +ARCHITECTURES="any" +DISABLE_SOURCE_PACKAGE=yes + +PROVIDES="anonymous_pro = $portVersion" +REQUIRES="" +BUILD_REQUIRES="" +BUILD_PREREQUIRES="coreutils" + +SOURCE_DIR="AnonymousPro-1.002.001" + +BUILD() +{ + true +} + +INSTALL() +{ + FONTDIR=$fontsDir/anonymous-pro + mkdir -p ${FONTDIR} + cp *.ttf ${FONTDIR} + cp README.txt ${FONTDIR}/anonymous-pro-readme.txt +} diff --git a/media-fonts/anonymous_pro/licenses/SIL Open Font License v1.1 b/media-fonts/anonymous_pro/licenses/SIL Open Font License v1.1 new file mode 100644 index 000000000..ad1f9ac76 --- /dev/null +++ b/media-fonts/anonymous_pro/licenses/SIL Open Font License v1.1 @@ -0,0 +1,86 @@ +----------------------------------------------------------- +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/arabeyes_fonts/arabeyes_fonts-1.1.recipe b/media-fonts/arabeyes_fonts/arabeyes_fonts-1.1.recipe index ce25c8d8e..9a1b7b09a 100644 --- a/media-fonts/arabeyes_fonts/arabeyes_fonts-1.1.recipe +++ b/media-fonts/arabeyes_fonts/arabeyes_fonts-1.1.recipe @@ -1,10 +1,15 @@ -SUMMARY="Arabeyes Arabic TrueType fonts" -DESCRIPTION="Arabeyes is a Meta project that is aimed at fully supporting the Arabic language in the Unix/Linux environment. It is designed to be a central location to standardize the Arabization process. Arabeyes relies on voluntary contributions." +SUMMARY="Arabeyes Arabic TrueType fonts" +DESCRIPTION=" +Arabeyes is a Meta project that is aimed at fully supporting the Arabic \ +language in the Unix/Linux environment. It is designed to be a central \ +location to standardize the Arabization process. Arabeyes relies on voluntary \ +contributions. +" 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" +CHECKSUM_SHA256="c517f6ac0643d2416101c9b375be38ec4fe7810b7ad3a1465438dd45b819e054" REVISION="1" DEPEND="" -CHECKSUM_MD5="11000a74da50b461b374f711392f1d46" LICENSE="GNU GPL v2" COPYRIGHT="2003-2007 Arabeyes.org 2002-2005 Free Software Foundation" diff --git a/media-fonts/cantarell/cantarell-0.0.7.recipe b/media-fonts/cantarell/cantarell-0.0.7.recipe new file mode 100644 index 000000000..b25153a71 --- /dev/null +++ b/media-fonts/cantarell/cantarell-0.0.7.recipe @@ -0,0 +1,39 @@ +SUMMARY="The Cantarell Font Family" +DESCRIPTION=" +The Cantarell font family is a contemporary humanistic sans serif. It was \ +designed by Dave Crossland for on-screen reading - in particular for reading \ +web pages on the author's HTC mobile phone. Since 2010 it's the default \ +typaface of Gnome, the popular graphical user interface. Currently it fully \ +supports Basic Latin, Western European, Catalan, Baltic, Turkish, Central \ +European, Dutch and Afrikaans writing systems. The Cantarell typeface is \ +included in Google Fonts too. +" +HOMEPAGE="http://wiki.gnome.org/CantarellFonts" +SRC_URI="http://ftp.gnome.org/pub/GNOME/sources/cantarell-fonts/0.0/cantarell-fonts-0.0.7.tar.bz2" +CHECKSUM_SHA256="79f69beca780d84c7c5753566d801ca14e46b6c111ec71527e37ae29377c2c79" +LICENSE="SIL Open Font License v1.1" +COPYRIGHT="2009-2011 Understanding Limited, 2010-2011 Jakub Steiner" +REVISION="1" + +ARCHITECTURES="any" +DISABLE_SOURCE_PACKAGE=yes + +PROVIDES="cantarell = $portVersion" +REQUIRES="" +BUILD_REQUIRES="" +BUILD_PREREQUIRES="coreutils" + +SOURCE_DIR="cantarell-fonts-0.0.7" + +BUILD() +{ + true +} + +INSTALL() +{ + FONTDIR=$fontsDir/cantarell + mkdir -p ${FONTDIR} + cp otf/*.otf ${FONTDIR} + cp README ${FONTDIR}/cantarell-readme.txt +} diff --git a/media-fonts/cantarell/licenses/SIL Open Font License v1.1 b/media-fonts/cantarell/licenses/SIL Open Font License v1.1 new file mode 100644 index 000000000..ad1f9ac76 --- /dev/null +++ b/media-fonts/cantarell/licenses/SIL Open Font License v1.1 @@ -0,0 +1,86 @@ +----------------------------------------------------------- +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/cardo/cardo-1.04.recipe b/media-fonts/cardo/cardo-1.04.recipe new file mode 100644 index 000000000..c3c3274c7 --- /dev/null +++ b/media-fonts/cardo/cardo-1.04.recipe @@ -0,0 +1,36 @@ +SUMMARY="Font for classicists, medievalists and linguists" +DESCRIPTION=" +Cardo is a large Unicode font specifically designed for the needs of \ +classicists, Biblical scholars, medievalists, and linguists. Since it may be \ +used to prepare materials for publication, it also contains features that are \ +required for high-quality typography, such as ligatures, text figures, true \ +small capitals and a variety of punctuation and space characters. +" +HOMEPAGE="http://scholarsfonts.net/cardofnt.html" +SRC_URI="http://scholarsfonts.net/cardo104.zip" +CHECKSUM_SHA256="9401db6357cb71fa1f8791323679f81d6b0473d6280a7ec8abdf11b5e52f455f" +LICENSE="SIL Open Font License v1.1" +COPYRIGHT="2004–2011 David J. Perry, with Reserved Font Name Cardo" +REVISION="1" + +ARCHITECTURES="any" +DISABLE_SOURCE_PACKAGE=yes + +PROVIDES="cardo = $portVersion" +REQUIRES="" +BUILD_REQUIRES="" +BUILD_PREREQUIRES="coreutils" + +SOURCE_DIR="" + +BUILD() +{ + true +} + +INSTALL() +{ + FONTDIR=$fontsDir/cardo + mkdir -p ${FONTDIR} + cp *.ttf ${FONTDIR} +} diff --git a/media-fonts/courier_prime/courier_prime-1.0.recipe b/media-fonts/courier_prime/courier_prime-1.0.recipe index 9f41b8a26..309374cbe 100644 --- a/media-fonts/courier_prime/courier_prime-1.0.recipe +++ b/media-fonts/courier_prime/courier_prime-1.0.recipe @@ -1,9 +1,14 @@ -SUMMARY="It's Courier, just better." -DESCRIPTION="Courier Prime is optimized for 12 point size, and matches the metrics of Courier and Courier Final Draft, so you can often swap it out one-for-one." +SUMMARY="It's Courier, just better" +DESCRIPTION="Courier Prime was designed to replace the legendary Courier \ +especially in screenwriting. It's Courier, just better. Courier Prime is \ +optimized for 12 point size, and matches the metrics of Courier and Courier \ +Final Draft, so you can (mostly) swap it out one-for-one and your page count \ +should not change. +" HOMEPAGE="http://quoteunquoteapps.com/courierprime/" SRC_URI="http://quoteunquoteapps.com/downloads/courier-prime.zip" +CHECKSUM_SHA256="d5d4faf1bee0d1f52bab1103cbfdfb354976331c86f999c110c22a098cb12d73" REVISION="1" -CHECKSUM_MD5="cf79336ce1cf439560a5364ab7856738" LICENSE="SIL Open Font License v1.1" COPYRIGHT="2013 Quote-Unquote Apps" diff --git a/media-fonts/droid/droid-113.recipe b/media-fonts/droid/droid-113.recipe index 86eb4f9ce..2b908a4b0 100644 --- a/media-fonts/droid/droid-113.recipe +++ b/media-fonts/droid/droid-113.recipe @@ -1,8 +1,13 @@ -SUMMARY="Font family from Google's Android project" -DESCRIPTION="The Droid family of fonts was designed by Ascender's Steve Matteson beginning in the fall of 2006. The goal was to provide optimal quality and reading comfort on a mobile handset. The Droid fonts were optimized for use in application menus, web browsers and for other screen text." +SUMMARY="Font family from Google's Android project" +DESCRIPTION=" +The Droid family of fonts was designed by Ascender's Steve Matteson beginning \ +in the fall of 2006. The goal was to provide optimal quality and reading \ +comfort on a mobile handset. The Droid fonts were optimized for use in \ +application menus, web browsers and for other screen text. +" HOMEPAGE="http://www.droidfonts.com" SRC_URI="http://ports-space.haiku-files.org/media-fonts/source/droid-113.tar.gz" -CHECKSUM_MD5="4e11069eedc2ceda6b1cec7fd5939039" +CHECKSUM_SHA256="c9339f0f1aaa055f8b06a2b28c1c3fb5ddffe6c6a6a7a7735fc0ad93d0eab12f" LICENSE="Apache v2" COPYRIGHT="2005-2008 The Android Open Source Project" REVISION="1" diff --git a/media-fonts/droid/droid-4.3_r2.2.recipe b/media-fonts/droid/droid-4.3_r2.2.recipe index 1bf34711d..0b802f2c0 100644 --- a/media-fonts/droid/droid-4.3_r2.2.recipe +++ b/media-fonts/droid/droid-4.3_r2.2.recipe @@ -1,9 +1,14 @@ -SUMMARY="Font family from Google's Android project" -DESCRIPTION="The Droid family of fonts was designed by Ascender's Steve Matteson beginning in the fall of 2006. The goal was to provide optimal quality and reading comfort on a mobile handset. The Droid fonts were optimized for use in application menus, web browsers and for other screen text." +SUMMARY="Font family from Google's Android project" +DESCRIPTION=" +The Droid family of fonts was designed by Ascender's Steve Matteson beginning \ +in the fall of 2006. The goal was to provide optimal quality and reading \ +comfort on a mobile handset. The Droid fonts were optimized for use in \ +application menus, web browsers and for other screen text. +" HOMEPAGE="http://www.droidfonts.com" # source zip extracted from git clone https://android.googlesource.com/platform/frameworks/base tag android-4.3_r2.2 /data/fonts SRC_URI="http://ports-space.haiku-files.org/media-fonts/source/droid-4.3_r2.2.zip" -CHECKSUM_MD5="a91c8129ac25f160ca83e23d77c00862" +CHECKSUM_SHA256="221133c329efdb2b911c18ef222eeb3fcb011e5be7c37623e68faa90c15b8cd0" LICENSE="Apache v2" COPYRIGHT="2005-2008 The Android Open Source Project" REVISION="1" diff --git a/media-fonts/humor_sans/humor_sans-1.0.recipe b/media-fonts/humor_sans/humor_sans-1.0.recipe new file mode 100644 index 000000000..f010cebeb --- /dev/null +++ b/media-fonts/humor_sans/humor_sans-1.0.recipe @@ -0,0 +1,33 @@ +SUMMARY="The Human-Sans font" +DESCRIPTION=" +A sanserif typeface in the style of xkcd. Xkcd is a popular webcomics with \ +focus on computer science or everything else. +" +HOMEPAGE="http://antiyawn.com/uploads/humorsans.html" +SRC_URI="http://antiyawn.com/uploads/Humor-Sans-1.0.ttf" +CHECKSUM_SHA256="2ded6a27448c9ed30aaff177744e2bcf1e52e0aab018b2a8be64565df633318f" +LICENSE="SIL Open Font License v1.1" +COPYRIGHT="2009, Michael Ciuffo, with Reserved Font Name Humor-Sans" +REVISION="1" + +ARCHITECTURES="!any" +DISABLE_SOURCE_PACKAGE=yes + +PROVIDES="humor_sans= $portVersion" +REQUIRES="" +BUILD_REQUIRES="" +BUILD_PREREQUIRES="coreutils" + +SOURCE_DIR="" + +BUILD() +{ + true +} + +INSTALL() +{ + FONTDIR=$fontsDir/humor-sans + mkdir -p ${FONTDIR} + cp *.ttf ${FONTDIR} +} diff --git a/media-fonts/liberation_fonts/liberation_fonts-1.06.0.20100721.recipe b/media-fonts/liberation_fonts/liberation_fonts-1.06.0.20100721.recipe index 226727d72..57da7e16c 100644 --- a/media-fonts/liberation_fonts/liberation_fonts-1.06.0.20100721.recipe +++ b/media-fonts/liberation_fonts/liberation_fonts-1.06.0.20100721.recipe @@ -1,4 +1,7 @@ -DESCRIPTION="The Liberation(tm) Fonts is a font family which aims at metric compatibility with Arial, Times New Roman, and Courier New. It is sponsored by Red Hat" +DESCRIPTION=" +The Liberation(tm) Fonts is a font family which aims at metric compatibility \ +with Arial, Times New Roman, and Courier New. It is sponsored by Red Hat. +" HOMEPAGE="https://fedorahosted.org/liberation-fonts" SRC_URI="http://ports-space.haiku-files.org/media-fonts/source/liberation-fonts-1.06.0.20100721.tar.gz" REVISION="1" diff --git a/media-fonts/lohit/lohit-2.3.8.recipe b/media-fonts/lohit/lohit-2.3.8.recipe new file mode 100644 index 000000000..f1da927e3 --- /dev/null +++ b/media-fonts/lohit/lohit-2.3.8.recipe @@ -0,0 +1,39 @@ +SUMMARY="The Lohit family of Indic fonts" +DESCRIPTION=" +Lohit, which means 'red' in Sanskrit, is a family of Indic fonts. It was first \ +released by Red Hat in 2004 but now it's developed by Fedora Project. The \ +font family currently supports 21 Indian languages: Assamese, Bengali, \ +Devanagari (Hindi, Kashmiri, Konkani, Maithili, Marathi, Nepali, Sindhi, \ +Santali, Bodo, Dogri), Gujarati, Kannada, Malayalam, Manipuri, Oriya, \ +Punjabi, Tamil, and Telugu. The fonts are used as web fonts for Wikipedia and \ +some other Wikimedia Foundation sites. +" +HOMEPAGE="http://fedorahosted.org/lohit" +SRC_URI="http://rbhalera.fedorapeople.org/released/lohit/lohit-fonts-2.3.8.tar.gz" +CHECKSUM_SHA256="68091ab047f9e4e22f069f802dceac52994267f126dc238b3815eed217a02991" +LICENSE="GNU GPL v2" +COPYRIGHT="2004-2011 Red Hat" +REVISION="1" + +ARCHITECTURES="any" +DISABLE_SOURCE_PACKAGE=yes + +PROVIDES="lohit = $portVersion" +REQUIRES="" +BUILD_REQUIRES="" +BUILD_PREREQUIRES="coreutils" + +SOURCE_DIR="lohit-fonts-2.3.8" + +BUILD() +{ + true +} + +INSTALL() +{ + FONTDIR=$fontsDir/lohit + mkdir -p ${FONTDIR} + find . -name "*.ttf" -exec cp {} ${FONTDIR} \; + cp README ${FONTDIR}/lohit-readme.txt +} diff --git a/media-fonts/nafees_nastaleeq/nafees_nastaleeq-1.02.recipe b/media-fonts/nafees_nastaleeq/nafees_nastaleeq-1.02.recipe index fc56440a3..38f5396b4 100644 --- a/media-fonts/nafees_nastaleeq/nafees_nastaleeq-1.02.recipe +++ b/media-fonts/nafees_nastaleeq/nafees_nastaleeq-1.02.recipe @@ -1,4 +1,7 @@ -DESCRIPTION="Urdu language font developed according to calligraphic rules, following the style of one of the finest calligraphers of Pakistan (Nafees Raqam)" +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" diff --git a/media-fonts/nafees_riqa/nafees_riqa-1.00.recipe b/media-fonts/nafees_riqa/nafees_riqa-1.00.recipe index ca16a2cf9..7ec14d2d5 100644 --- a/media-fonts/nafees_riqa/nafees_riqa-1.00.recipe +++ b/media-fonts/nafees_riqa/nafees_riqa-1.00.recipe @@ -1,4 +1,6 @@ -DESCRIPTION="Open Type Font for writng Urdu in Riqa script based on Unicode standard" +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" diff --git a/media-fonts/nanumfont/nanumfont-2.0.recipe b/media-fonts/nanumfont/nanumfont-2.0.recipe index afa82f449..957a28fe2 100644 --- a/media-fonts/nanumfont/nanumfont-2.0.recipe +++ b/media-fonts/nanumfont/nanumfont-2.0.recipe @@ -1,4 +1,6 @@ -DESCRIPTION="Korean monospace font distributed by NHN" +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" diff --git a/media-fonts/roboto/roboto-1.2.recipe b/media-fonts/roboto/roboto-1.2.recipe new file mode 100644 index 000000000..825c43caf --- /dev/null +++ b/media-fonts/roboto/roboto-1.2.recipe @@ -0,0 +1,50 @@ +SUMMARY="The Android Roboto font" +DESCRIPTION=" +The Android design language relies on traditional typographic tools such as \ +scale, space, rhythm, and alignment with an underlying grid. Successful \ +deployment of these tools is essential to help users quickly understand a \ +screen of information. To support such use of typography, Ice Cream Sandwich \ +introduced a new type family named Roboto, created specifically for the \ +requirements of UI and high-resolution screens. +The current TextView framework offers Roboto in thin, light, regular and bold \ +weights, along with an italic style for each weight. The framework also offers \ +the Roboto Condensed variant in regular and bold weights, along with an italic \ +style for each weight. +" +HOMEPAGE="http://www.google.com/fonts/specimen/Roboto" +SRC_URI="http://developer.android.com/downloads/design/roboto-1.2.zip" +CHECKSUM_SHA256="5101b5bdb3b7b14cc922a771ba068bfcae8634467c1f446bc89bc2b4f8b4f1b5" +LICENSE="Apache v2" +COPYRIGHT="2013 Christian Robertson" +REVISION="1" +ARCHITECTURES="any" +DISABLE_SOURCE_PACKAGE=yes +PROVIDES=" + Roboto=$portVersion + " +REQUIRES=" " +BUILD_REQUIRES=" " +BUILD_PREREQUIRES=" + coreutils + " +SOURCE_DIR="" + +BUILD() +{ + true +} + +INSTALL() +{ + FONTDIR=$fontsDir/roboto + mkdir -p ${FONTDIR} + + cd Roboto_v$portVersion + + cd Roboto + cp *.ttf ${FONTDIR} + + cd .. + cd RobotoCondensed + cp *.ttf ${FONTDIR} +} diff --git a/media-fonts/scheherazade_font/scheherazade_font-1.005.recipe b/media-fonts/scheherazade_font/scheherazade_font-1.005.recipe index 2d438f87a..68b702406 100644 --- a/media-fonts/scheherazade_font/scheherazade_font-1.005.recipe +++ b/media-fonts/scheherazade_font/scheherazade_font-1.005.recipe @@ -1,4 +1,6 @@ -DESCRIPTION="Arabic script font" +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" @@ -19,4 +21,4 @@ INSTALL() } LICENSE="SIL Open Font License v1.1" -COPYRIGHT="2004-2011 SIL International" \ No newline at end of file +COPYRIGHT="2004-2011 SIL International" diff --git a/media-fonts/terminus_ttf/terminus_ttf-4.38.2.recipe b/media-fonts/terminus_ttf/terminus_ttf-4.38.2.recipe new file mode 100644 index 000000000..36a0677d4 --- /dev/null +++ b/media-fonts/terminus_ttf/terminus_ttf-4.38.2.recipe @@ -0,0 +1,32 @@ +SUMMARY="TTF version of the Terminus font" +DESCRIPTION="Terminus TTF is a TrueType version of the great Terminus Font, a fixed-width bitmap font optimized for long work with computers" +HOMEPAGE="http://files.ax86.net/terminus-ttf/" +SRC_URI="http://files.ax86.net/terminus-ttf/files/$portVersion/terminus-ttf-$portVersion.zip" +CHECKSUM_SHA256="95896b5711e8c96cae180e3c8c837f23618c611e1aebc40639bc983d519dd5bd" +SOURCE_DIR="terminus-ttf-$portVersion" +REVISION="1" +ARCHITECTURES="x86 x86_gcc2 x86_64" +LICENSE="SIL Open Font License v1.1" +COPYRIGHT="2010 Dimitar Toshkov Zhekov + 2011 Tilman Blumenbach" + +PROVIDES=" + terminus_ttf = $portVersion + " +BUILD_PREREQUIRES=" + cmd:cp + cmd:mkdir + " + + +BUILD() +{ + echo "No building required." +} + +INSTALL() +{ + FONTDIR=$fontsDir/terminus-ttf + mkdir -p ${FONTDIR} + cp -r *.ttf ${FONTDIR}/ +} diff --git a/media-fonts/ubuntu_font_family/ubuntu_font_family-0.80.recipe b/media-fonts/ubuntu_font_family/ubuntu_font_family-0.80.recipe index c494c73e1..9d4763f48 100644 --- a/media-fonts/ubuntu_font_family/ubuntu_font_family-0.80.recipe +++ b/media-fonts/ubuntu_font_family/ubuntu_font_family-0.80.recipe @@ -1,8 +1,13 @@ SUMMARY="Font family from Ubuntu operating system" -DESCRIPTION="Font family from Ubuntu operating system" +DESCRIPTION=" +The Ubuntu Font Family belongs to sans-serif typeface. It's set as default \ +font for the current releases of Ubuntu, one of the most popular Linux-based \ +operating systems. It was designed by Dalton Maag in 2010 and now it covers \ +200-250 languages. The Ubuntu Font Family is included in Google Fonts too. +" HOMEPAGE="http://font.ubuntu.com" SRC_URI="http://font.ubuntu.com/download/ubuntu-font-family-0.80.zip" -CHECKSUM_MD5="a1fc70f5a5b1d096ab8310886cddaa1c" +CHECKSUM_SHA256="107170099bbc3beae8602b97a5c423525d363106c3c24f787d43e09811298e4c" LICENSE="Ubuntu Font License 1.0" COPYRIGHT="2011 Canonical Ltd." REVISION="3" diff --git a/media-fonts/vollkorn/vollkorn-2.1.recipe b/media-fonts/vollkorn/vollkorn-2.1.recipe new file mode 100644 index 000000000..63bf217a8 --- /dev/null +++ b/media-fonts/vollkorn/vollkorn-2.1.recipe @@ -0,0 +1,35 @@ +SUMMARY="The typeface for bread and butter use" +DESCRIPTION=" +Vollkorn means wholemeal in German. The Vollkorn typeface is free and healthy \ +typeface for bread and butter use. It intends to be a quiet, modest and well \ +working text face. It might be used. It might be used as body type as well as \ +for headlines and titles. +" +HOMEPAGE="http://friedrichalthausen.de/vollkorn/" +SRC_URI="http://friedrichalthausen.de/wp-content/plugins/cimy-counter/cc_redirect.php?cc=Vollkorn%202.0&fn=http://friedrichalthausen.de/Vollkorn-2.1.zip" +CHECKSUM_SHA256="2eaa427dbe42e37bfdc182c1e3446abdc889806fe0b6c9a14e0fc0c3acc997f5" +LICENSE="SIL Open Font License v1.1" +COPYRIGHT="Friedrich Althausen" +REVISION="1" + +ARCHITECTURES="any" +DISABLE_SOURCE_PACKAGE=yes + +PROVIDES="anonymous_pro = $portVersion" +REQUIRES="" +BUILD_REQUIRES="" +BUILD_PREREQUIRES="coreutils" + +SOURCE_DIR="" + +BUILD() +{ + true +} + +INSTALL() +{ + FONTDIR=$fontsDir/vollkorn + mkdir -p ${FONTDIR} + cp *.ttf ${FONTDIR} +} diff --git a/media-fonts/wqy_microhei/wqy_microhei-0.2.0~beta.recipe b/media-fonts/wqy_microhei/wqy_microhei-0.2.0~beta.recipe index 7e945a544..38e19e6bb 100644 --- a/media-fonts/wqy_microhei/wqy_microhei-0.2.0~beta.recipe +++ b/media-fonts/wqy_microhei/wqy_microhei-0.2.0~beta.recipe @@ -1,8 +1,10 @@ SUMMARY="A droid derived Sans-Serif style CJK font" -DESCRIPTION="A droid derived Sans-Serif style CJK font." +DESCRIPTION=" +A droid derived Sans-Serif style CJK font. +" HOMEPAGE="http://wenq.org/wqy2/index.cgi?Home" SRC_URI="http://sourceforge.net/projects/wqy/files/wqy-microhei/0.2.0-beta/wqy-microhei-0.2.0-beta.tar.gz" -CHECKSUM_MD5="a124c5c6606f4f3b733d3477380e9d2f" +CHECKSUM_SHA256="2802ac8023aa36a66ea6e7445854e3a078d377ffff42169341bd237871f7213e" LICENSE=" Apache v2 GNU GPL v3 diff --git a/media-fonts/wqy_zenhei/wqy_zenhei-0.9.45.recipe b/media-fonts/wqy_zenhei/wqy_zenhei-0.9.45.recipe index 07f31932c..c04558372 100644 --- a/media-fonts/wqy_zenhei/wqy_zenhei-0.9.45.recipe +++ b/media-fonts/wqy_zenhei/wqy_zenhei-0.9.45.recipe @@ -1,8 +1,10 @@ SUMMARY="WenQuanYi Hei-Ti Style (sans-serif) Chinese outline font" -DESCRIPTION="WenQuanYi Hei-Ti Style (sans-serif) Chinese outline font." +DESCRIPTION=" +WenQuanYi Hei-Ti Style (sans-serif) Chinese outline font. +" HOMEPAGE="http://wenq.org/wqy2/index.cgi?Home" SRC_URI="http://sourceforge.net/projects/wqy/files/wqy-zenhei/0.9.45%20%28Fighting-state%20RC1%29/wqy-zenhei-0.9.45.tar.gz" -CHECKSUM_MD5="4c6c3f4e902dd5ee0a121e8c41d040bd" +CHECKSUM_SHA256="e4b7e306475bf9427d1757578f0e4528930c84c44eaa3f167d4c42f110ee75d6" LICENSE=" GNU GPL v2 GNU GPL v2 with font embedding exception diff --git a/media-fonts/x_series_fonts/x_series_fonts-2.0.recipe b/media-fonts/x_series_fonts/x_series_fonts-2.0.recipe index c63036006..f4ac36b1b 100644 --- a/media-fonts/x_series_fonts/x_series_fonts-2.0.recipe +++ b/media-fonts/x_series_fonts/x_series_fonts-2.0.recipe @@ -1,4 +1,8 @@ -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)." +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" diff --git a/media-gfx/graphviz/graphviz-2.26.3.recipe b/media-gfx/graphviz/graphviz-2.26.3.recipe index eb05ab454..57d2937f9 100644 --- a/media-gfx/graphviz/graphviz-2.26.3.recipe +++ b/media-gfx/graphviz/graphviz-2.26.3.recipe @@ -1,12 +1,22 @@ SUMMARY="Open Source Graph Visualization Software" -DESCRIPTION="Graphviz is open source graph visualization software. Graph visualization is a way of representing structural information as diagrams of abstract graphs and networks. It has important applications in networking, bioinformatics, software engineering, database and web design, machine learning, and in visual interfaces for other technical domains. - -The Graphviz layout programs take descriptions of graphs in a simple text language, and make diagrams in useful formats, such as images and SVG for web pages, PDF or Postscript for inclusion in other documents; or display in an interactive graph browser. (Graphviz also supports GXL, an XML dialect.) Graphviz has many useful features for concrete diagrams, such as options for colors, fonts, tabular node layouts, line styles, hyperlinks, rolland custom shapes." +DESCRIPTION="Graphviz is open source graph visualization software. Graph \ +visualization is a way of representing structural information as diagrams of \ +abstract graphs and networks. It has important applications in networking, \ +bioinformatics, software engineering, database and web design, machine \ +learning, and in visual interfaces for other technical domains. +The Graphviz layout programs take descriptions of graphs in a simple text \ +language, and make diagrams in useful formats, such as images and SVG for web \ +pages, PDF or Postscript for inclusion in other documents; or display in an \ +interactive graph browser. (Graphviz also supports GXL, an XML dialect.) \ +Graphviz has many useful features for concrete diagrams, such as options for \ +colors, fonts, tabular node layouts, line styles, hyperlinks, rolland custom \ +shapes. +" HOMEPAGE="http://www.graphviz.org/" LICENSE="CPL v1.0" COPYRIGHT="1994-2010 AT&T Corp." SRC_URI="http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.26.3.tar.gz" -CHECKSUM_MD5="6f45946fa622770c45609778c0a982ee" +CHECKSUM_SHA256="f410996e69b1095237c2128deae5fc7b6ce99055b095271abb14447bc2f37fa1" REVISION="2" ARCHITECTURES="!x86_gcc2" @@ -34,7 +44,6 @@ BUILD_PREREQUIRES=" cmd:make " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/media-gfx/hqx/hqx-1.1.recipe b/media-gfx/hqx/hqx-1.1.recipe index 83976d146..1046e5c58 100644 --- a/media-gfx/hqx/hqx-1.1.recipe +++ b/media-gfx/hqx/hqx-1.1.recipe @@ -1,4 +1,7 @@ -DESCRIPTION="hqx ('hq' stands for 'high quality' and 'x' stands for magnification) is one of the pixel art scaling algorithms developed by Maxim Stepin" +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" diff --git a/media-gfx/optipng/optipng-0.7.4.recipe b/media-gfx/optipng/optipng-0.7.4.recipe new file mode 100644 index 000000000..3edbfe0c4 --- /dev/null +++ b/media-gfx/optipng/optipng-0.7.4.recipe @@ -0,0 +1,52 @@ +SUMMARY="A PNG optimizer, making PNG files smaller" +DESCRIPTION=" +OptiPNG is a PNG optimizer, recompressing PNG files so they become smaller, \ +without losing any information. Additionally, OptiPNG can convert other image \ +formats, such as BMP, GIF, PNM and TIFF, to PNG files. +" +HOMEPAGE="http://optipng.sourceforge.net/" +SRC_URI="http://prdownloads.sourceforge.net/optipng/optipng-0.7.4.tar.gz" +CHECKSUM_SHA256="520b5d5a9405dbdc5c905dd0cff87211e69c4ed2059744037510e613fe8237ff" +LICENSE="Zlib" +COPYRIGHT="2001-2012 Cosmin Truta" +REVISION="2" +ARCHITECTURES="x86_gcc2 x86 x86_64" + +PROVIDES=" + optipng$secondaryArchSuffix = $portVersion + cmd:optipng$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libpng + lib:libz + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libpng + devel:libz + " + +BUILD_PREREQUIRES=" + cmd:ar + cmd:gcc$secondaryArchSuffix + cmd:make + cmd:ranlib + " + +PATCHES="optipng-0.7.4.patchset" + +BUILD() +{ + ./configure -bindir=$binDir -mandir=$manDir \ + -with-system-libpng \ + -with-system-zlib + make +} + +INSTALL() +{ + make install +} diff --git a/media-gfx/optipng/patches/optipng-0.7.4.patchset b/media-gfx/optipng/patches/optipng-0.7.4.patchset new file mode 100644 index 000000000..aeb75492f --- /dev/null +++ b/media-gfx/optipng/patches/optipng-0.7.4.patchset @@ -0,0 +1,45 @@ +From 9aeb37585d609791981ff00956a99d54a9bf446e Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Mon, 23 Dec 2013 12:13:23 -0700 +Subject: applying patch optipng-0.7.4.patch + + +diff --git a/configure b/configure +index 5437b74..f7087fe 100755 +--- a/configure ++++ b/configure +@@ -305,7 +305,7 @@ sed_config=" + s#@ARFLAGS@#${ARFLAGS-cru}#g + s#@RANLIB@#${RANLIB-ranlib}#g + s#@LIBS@#${LIBS-}#g +- s#@LIBM@#${LIBM--lm}#g ++ s#@LIBM@#${LIBM-}#g + s#@LIBZ@#${LIBZ--lz}#g + s#@LIBPNG@#${LIBPNG--lpng}#g + s#@DIFF@#${DIFF-diff -b -u}#g +-- +1.8.3.4 + + +From 02727f980a432201225b91c51f7f76fad3d12cca Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Mon, 23 Dec 2013 12:16:17 -0700 +Subject: Remove Wextra from CFLAGS to make gcc2 happy + + +diff --git a/configure b/configure +index f7087fe..f3bca47 100755 +--- a/configure ++++ b/configure +@@ -192,7 +192,7 @@ rm -f $test.c $test.o + if test $gccish -ne 0 + then + CC="${CC-$cc}" +- CFLAGS="${CFLAGS--O2 -Wall -Wextra}" ++ CFLAGS="${CFLAGS--O2 -Wall}" + else + CC="${CC-cc}" + CFLAGS="${CFLAGS--O}" +-- +1.8.3.4 + diff --git a/media-gfx/pngcrush/pngcrush-1.7.67.recipe b/media-gfx/pngcrush/pngcrush-1.7.67.recipe index c35be6463..cfb6c50e6 100644 --- a/media-gfx/pngcrush/pngcrush-1.7.67.recipe +++ b/media-gfx/pngcrush/pngcrush-1.7.67.recipe @@ -1,23 +1,23 @@ -SUMMARY="Pngcrush is an optimizer for PNG (Portable Network Graphics) files." +SUMMARY="Pngcrush is an optimizer for PNG files" DESCRIPTION=" -Pngcrush is an optimizer for PNG (Portable Network Graphics) files. -It can be run from a commandline in an MSDOS window, or from a UNIX -or LINUX commandline. Its main purpose is to reduce the size of the -PNG IDAT datastream by trying various compression levels and PNG -filter methods. It also can be used to remove unwanted ancillary -chunks, or to add certain chunks including gAMA, tRNS, iCCP, and -textual chunks." - +Pngcrush is an optimizer for PNG (Portable Network Graphics) files. It can be \ +run from a commandline in an MSDOS window, or from a UNIX or LINUX \ +commandline. Its main purpose is to reduce the size of the PNG IDAT datastream \ +by trying various compression levels and PNG filter methods. It also can be \ +used to remove unwanted ancillary chunks, or to add certain chunks including \ +gAMA, tRNS, iCCP, and textual chunks. +" HOMEPAGE="http://pmt.sourceforge.net/pngcrush/" -SRC_URI="http://sourceforge.net/projects/pmt/files/pngcrush/1.7.67/pngcrush-1.7.67-nolib.tar.xz" -CHECKSUM_MD5="682318b86be2e01056b8dba7b90dee01" +SRC_URI="http://sourceforge.net/projects/pmt/files/pngcrush/old-versions/1.7/1.7.67/pngcrush-1.7.67-nolib.tar.xz/download" +CHECKSUM_SHA256="1ed050059f38504ca9eeef5bfae88fe8c69905e7337e454254cf2fad20f8e83c" +SRC_FILENAME="pngcrush-1.7.67-nolib.tar.xz" REVISION="1" LICENSE="LibPNG" COPYRIGHT="1998-2009 Glenn Randers-Pehrson 2005 Greg Roelofs" ARCHITECTURES="x86 x86_gcc2" -SOURCE_DIR="${portVersionedName}-nolib" +SOURCE_DIR="pngcrush-${portVersion}-nolib" PROVIDES=" pngcrush = $portVersion compat >= 1.7 diff --git a/media-gfx/qrencode/qrencode-3.3.0.recipe b/media-gfx/qrencode/qrencode-3.3.0.recipe new file mode 100644 index 000000000..9ed1ed1ed --- /dev/null +++ b/media-gfx/qrencode/qrencode-3.3.0.recipe @@ -0,0 +1,74 @@ +SUMMARY="QR Code encoding library" +DESCRIPTION=" +QLibqrencode is a library for encoding data in a QR Code symbol, a kind of 2D \ +symbology that can be scanned by handy terminals such as a mobile phone with \ +CCD. The capacity of QR Code is up to 7000 digits or 4000 characters, and has \ +high robustness. + +Libqrencode accepts a string or a list of data chunks then encodes in a QR Code \ +symbol as a bitmap array. While other QR Code applications generate an image \ +file, using libqrencode allows applications to render QR Code symbols from raw \ +bitmap data directly. This library also contains a command-line utility outputs \ +a QR Code symbol as a PNG image. It will help light-weight CGI programs. +" +HOMEPAGE="http://fukuchi.org/works/qrencode/" +COPYRIGHT=" + Copyright (C) 2006-2012 Kentaro Fukuchi + " +LICENSE="GNU LGPL v2.1" +SRC_URI="http://fukuchi.org/works/qrencode/qrencode-$portVersion.tar.gz" +CHECKSUM_SHA256="499b2c86c218b16378e2496fefc858e4db4271c048336a29df9cc5754413d1d1" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + qrencode$secondaryArchSuffix = $portVersion + lib:libqrencode$secondaryArchSuffix = 3.3.0 compat >= 3 + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libpng$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libpng$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:pkg_config + cmd:sed + cmd:awk + " + +BUILD() +{ + runConfigure ./configure --without-tools \ + --enable-static + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libqrencode + + # devel package + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + qrencode${secondaryArchSuffix}_devel = $portVersion compat >= 3 + devel:libqrencode$secondaryArchSuffix = 3.3.0 compat >= 3 + " +REQUIRES_devel=" + qrencode$secondaryArchSuffix == $portVersion + " diff --git a/media-gfx/tuxpaint/tuxpaint-0.9.2x_cvs.recipe b/media-gfx/tuxpaint/tuxpaint-0.9.2x_cvs.recipe index f0893b193..4576a755e 100644 --- a/media-gfx/tuxpaint/tuxpaint-0.9.2x_cvs.recipe +++ b/media-gfx/tuxpaint/tuxpaint-0.9.2x_cvs.recipe @@ -1,35 +1,80 @@ -DESCRIPTION="tuxpaint - Drawing program designed for young children" +SUMMARY="Drawing program designed for young children" +DESCRIPTION=" +tuxpaint - Drawing program designed for young children. +" HOMEPAGE="http://www.tuxpaint.org/" -SRC_URI="cvs://:pserver:anonymous@tuxpaint.cvs.sourceforge.net:/cvsroot/tuxpaint/tuxpaint" +#SRC_URI="cvs://:pserver:anonymous@tuxpaint.cvs.sourceforge.net:/cvsroot/tuxpaint/tuxpaint" +SRC_URI="http://ports-space.haiku-files.org/source/tuxpaint-snapshot-2013-11-06.zip" +CHECKSUM_SHA256="8eca858c590b7aad4cfebe252ea1e5745d043bd46c18bc4c4e5bb59fd47d41d3" +COPYRIGHT="2002-2010 Bill Kendrick and others" +LICENSE="GNU GPL v2" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="media-libs/libsdl >= 1.2.14 - media-libs/sdl-ttf >= 2.0.9 - media-libs/sdl-image > 1.2.10 - dev-libs/fribidi >= 0.19.2 - app-text/libpaper >= 1.1.23 - media-libs/libpng >= 1.2 - media-libs/freetype >= 2.3.11 - media-libs/sdl-mixer >= 1.2.11 - dev-util/pkgconfig >= 0.23 - sys-devel/gettext >= 0.17 - dev-utils/gperf >= 3.0.4" - + +ARCHITECTURES="x86 x86_gcc2 ?x86_64" + +PROVIDES=" + tuxpaint = $portVersion + " + +REQUIRES=" + haiku + lib:libpaper + lib:libsdl + lib:libintl + lib:libSDL_ttf + lib:libSDL_image + lib:libSDL_mixer + lib:libfribidi + lib:freetype + lib:gettext + lib:libpng + lib:libiconv + lib:libz + " + +BUILD_REQUIRES=" + devel:libsdl + devel:libintl + devel:libpaper + devel:libSDL_ttf + devel:libSDL_image + devel:libSDL_mixer + devel:libfribidi +# devel:freetype +# devel:gettext + devel:libpng + devel:libz + devel:libiconv + " + +BUILD_PREREQUIRES=" + haiku_devel + cmd:make + cmd:gcc + cmd:gperf + cmd:pkg_config + cmd:ld + " + +USER_SETTINGS_FILES=" + settings/TuxPaint directory + " + +SOURCE_DIR="tuxpaint" + BUILD() { - cd tuxpaint-0.9.2x-cvs - if [ ! -f /boot/common/lib/libstdc++.so ] - then - ln -s /boot/system/lib/libstdc++.r4.so /boot/common/lib/libstdc++.so - fi - make + make $jobArgs FRIBIDI_LIB=-lfribidi } INSTALL() { - cd tuxpaint-0.9.2x-cvs - make install DESTDIR=${DESTDIR} -} + tuxpaintDir=$appsDir/TuxPaint + mkdir -p $tuxpaintDir + + cp tuxpaint $tuxpaintDir/TuxPaint -COPYRIGHT="2002-2010 by Bill Kendrick and others" -LICENSE="GNU GPL v2" +# make install + + #TODO Get TuxPaint put where we want it and create the settings folder, etc. +} diff --git a/media-libs/a52dec/a52dec-0.7.4.recipe b/media-libs/a52dec/a52dec-0.7.4.recipe index b062a6fbd..dd1fb5342 100644 --- a/media-libs/a52dec/a52dec-0.7.4.recipe +++ b/media-libs/a52dec/a52dec-0.7.4.recipe @@ -1,23 +1,74 @@ -DESCRIPTION="a52dec - library for decoding ATSC A/52 streams used in DVD" +SUMMARY="A ATSC A/52 decoding library used on streams in DVD's" +DESCRIPTION=" +A library for decoding ATSC A/52 streams used in DVD's. +" HOMEPAGE="http://liba52.sourceforge.net/" SRC_URI="http://liba52.sourceforge.net/files/a52dec-0.7.4.tar.gz" -CHECKSUM_MD5="caa9f5bc44232dc8aeea773fea56be80" +CHECKSUM_SHA256="a21d724ab3b3933330194353687df82c475b5dfb997513eef4c25de6c865ec33" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" +LICENSE="GNU GPL v2" +COPYRIGHT="Copyright (C) 1999-2002 Aaron Holtzman and Michel Lespinasse" +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 ?x86" + +PATCHES="a52dec-$portVersion.patch" + +PROVIDES=" + a52dec${secondaryArchSuffix} = $portVersion + lib:liba52 + cmd:a52dec + cmd:extract_a52 + " + +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc${secondaryArchSuffix} + cmd:ld${secondaryArchSuffix} + cmd:make + cmd:libtoolize + cmd:aclocal + cmd:autoconf + " + +SOURCE_DIR="a52dec-0.7.4" + BUILD() { - cd a52dec-0.7.4 libtoolize --force --copy --install aclocal autoconf -# automake - ./configure --prefix=`finddir B_COMMON_DIRECTORY` --enable-shared - make + automake --add-missing + + runConfigure ./configure --enable-shared + make $jobArgs } INSTALL() { - cd a52dec-0.7.4 - make install DESTDIR=${DESTDIR} + make install + + # prepare develop/lib + prepareInstalledDevelLibs liba52 + fixPkgconfig + + packageEntries devel \ + $developDir } + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + a52dec${secondaryArchSuffix}_devel = $portVersion + devel:liba52$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + a52dec$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/a52dec/patches/a52dec-0.7.4.patch b/media-libs/a52dec/patches/a52dec-0.7.4.patch new file mode 100644 index 000000000..46ab326d4 --- /dev/null +++ b/media-libs/a52dec/patches/a52dec-0.7.4.patch @@ -0,0 +1,12 @@ +diff -Naur a52dec-0.7.4/configure.in a52dec-0.7.4-haiku/configure.in +--- a52dec-0.7.4/configure.in 2002-07-27 22:50:20.043515904 -0500 ++++ a52dec-0.7.4-haiku/configure.in 2013-11-26 16:13:12.837550080 -0600 +@@ -6,7 +6,7 @@ + AC_CONFIG_FILES([Makefile autotools/Makefile include/Makefile test/Makefile + doc/Makefile src/Makefile liba52/Makefile libao/Makefile vc++/Makefile]) + AM_INIT_AUTOMAKE([a52dec],[0.7.4]) +-AM_CONFIG_HEADER(include/config.h) ++AC_CONFIG_HEADERS(include/config.h) + AM_MAINTAINER_MODE + AC_CANONICAL_HOST + diff --git a/media-libs/aalib/aalib-1.4rc4.recipe b/media-libs/aalib/aalib-1.4rc4.recipe index 29a13d8cb..f47de0ca0 100644 --- a/media-libs/aalib/aalib-1.4rc4.recipe +++ b/media-libs/aalib/aalib-1.4rc4.recipe @@ -1,31 +1,85 @@ -DESCRIPTION="aalib is an ASCII rendering 2D library" +SUMMARY="aalib is an ASCII rendering 2D library" +DESCRIPTION=" +aalib is a software library which allows applications to automatically convert \ +still and moving images into ASCII art. +" 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="" +CHECKSUM_SHA256="0b214b98850f559e0a9ef7282de2ff336b094e1aacedefff3ffa50f07711db58" +SOURCE_DIR="aalib-1.4.0" +REVISION="2" +LICENSE="Public Domain" +COPYRIGHT="1997 Jam Hubicka" + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + aalib$secondaryArchSuffix = $portVersion compat >= 1 + lib:libaa$secondaryArchSuffix = 1.0.4 compat >= 1 + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:make + cmd:makeinfo + cmd:ranlib + " + +PATCHES=" + aalib-1.4rc4.patch + " + 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 + aclocal + autoconf + automake --add-missing + runConfigure ./configure + make $jobArgs } INSTALL() { - cd aalib-1.4.0 make install + prepareInstalledDevelLibs libaa + fixPkgconfig + + # devel package + packageEntries devel \ + $binDir \ + $dataDir \ + $developDir \ + $documentationDir } -LICENSE="Public Domain" -#COPYRIGHT="" +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + aalib${secondaryArchSuffix}_devel = $portVersion compat >= 1 + devel:aalib$secondaryArchSuffix = $portVersion compat >= 1 + devel:libaa$secondaryArchSuffix = $portVersion compat >= 1 + cmd:aafire$secondaryArchSuffix = $portVersion compat >= 1 + cmd:aainfo$secondaryArchSuffix = $portVersion compat >= 1 + cmd:aalib_config$secondaryArchSuffix = $portVersion compat >= 1 + cmd:aasavefont$secondaryArchSuffix = $portVersion compat >= 1 + cmd:aatest$secondaryArchSuffix = $portVersion compat >= 1 + " + +REQUIRES_devel=" + aalib$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/aalib/patches/aalib-1.4rc4.patch b/media-libs/aalib/patches/aalib-1.4rc4.patch new file mode 100644 index 000000000..52cf48b45 --- /dev/null +++ b/media-libs/aalib/patches/aalib-1.4rc4.patch @@ -0,0 +1,10 @@ +--- aalib-1.4.0/configure.in 2001-04-24 14:00:02.060293120 +0000 ++++ aalib-1.4.0-haiku/configure.in 2013-11-29 18:22:31.000000000 +0000 +@@ -4,6 +4,6 @@ + AC_CANONICAL_HOST + AC_CANONICAL_TARGET + +-AM_CONFIG_HEADER(src/config.h) ++AC_CONFIG_HEADERS(src/config.h) + + dnl Initialize the compiler and linker flags for AALIB applications diff --git a/media-libs/allegro/allegro-4.4.0.recipe b/media-libs/allegro/allegro-4.4.0.recipe deleted file mode 100644 index 7a3ff42b1..000000000 --- a/media-libs/allegro/allegro-4.4.0.recipe +++ /dev/null @@ -1,21 +0,0 @@ -DESCRIPTION="Allegro game programming library" -HOMEPAGE="http://alleg.sourceforge.net/" -SRC_URI="http://downloads.sourceforge.net/project/alleg/allegro/4.4.0/allegro-4.4.0.tar.gz" -CHECKSUM_MD5="8a0bd73f5225ba8961211a5c440ff45d" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="media-libs/libvorbis >= 1.2.3" -BUILD() -{ - cd allegro-4.4.0 - cmake . - make -} - -INSTALL() -{ - cd allegro-4.4.0 - make install -} -LICENSE="Allegro" -COPYRIGHT="1998-2010 Shawn Hargreaves et al." diff --git a/media-libs/allegro/allegro-4.4.1.1.recipe b/media-libs/allegro/allegro-4.4.1.1.recipe index 925c2c10a..3ba492d44 100644 --- a/media-libs/allegro/allegro-4.4.1.1.recipe +++ b/media-libs/allegro/allegro-4.4.1.1.recipe @@ -1,27 +1,85 @@ -DESCRIPTION="Allegro game programming library" +SUMMARY="Allegro game programming library" +DESCRIPTION=" +Allegro game programming library. +" HOMEPAGE="http://alleg.sourceforge.net/" SRC_URI="http://sourceforge.net/projects/alleg/files/allegro/4.4.1.1/allegro-4.4.1.1.tar.gz/download" -CHECKSUM_MD5="0f1cfff8f2cf88e5c91a667d9fd386ec" +CHECKSUM_SHA256="4e29884cba88b289da5b22da93e8760d68a197d093b23f61e994f3594760d782" +LICENSE="Allegro" +COPYRIGHT="1998-2010 Shawn Hargreaves et al." + REVISION="1" -STATUS_HAIKU="stable" -DEPEND="dev-util/cmake >= 2.6.0 - media-libs/libvorbis >= 1.2.3 - media-libs/libogg >= 1.1.4" + +ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + allegro$secondaryArchSuffix = $portVersion + lib:liballeg$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libpng + lib:libz + lib:libogg + lib:libvorbis + " + +BUILD_REQUIRES=" + devel:libpng$secondaryArchSuffix + devel:libz + devel:libogg + devel:libvorbis + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:cmake + cmd:make + cmd:pkg_config + " + +PATCHES="allegro-4.4.1.1.patchset" BUILD() { - cd allegro-4.4.1.1 - mkdir -p `finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info - mkdir -p `finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man - cmake . -DINFODIR:=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info \ - -DMANDIR:=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man - make + cmake . -DCMAKE_INSTALL_PREFIX=$prefix -DDOCDIR=$docDir -DMANDIR=$manDir + make $jobArgs } INSTALL() { - cd allegro-4.4.1.1 make install + + prepareInstalledDevelLibs liballeg libjpgalleg libloadpng liblogg + + packageEntries devel $developDir $binDir } -LICENSE="Allegro" -COPYRIGHT="1998-2010 Shawn Hargreaves et al." + +PROVIDES_devel=" + allegro${secondaryArchSuffix}_devel = $portVersion compat >= 4.4 + devel:liballeg$secondaryArchSuffix = $portVersion compat >= 4.4 + cmd:allegro_config = $portVersion compat >= 4.4 + cmd:colormap = $portVersion compat >= 4.4 + cmd:dat = $portVersion compat >= 4.4 + cmd:dat2c = $portVersion compat >= 4.4 + cmd:dat2s = $portVersion compat >= 4.4 + cmd:exedat = $portVersion compat >= 4.4 + cmd:grabber = $portVersion compat >= 4.4 + cmd:pack = $portVersion compat >= 4.4 + cmd:pat2dat = $portVersion compat >= 4.4 + cmd:rgbmap = $portVersion compat >= 4.4 + cmd:textconv = $portVersion compat >= 4.4 + devel:libjpgalleg = $portVersion compat >= 4.4 + devel:liblogg = $portVersion compat >= 4.4 + devel:libloadpng = $portVersion compat >= 4.4 + " + +REQUIRES_devel=" + haiku$secondaryArchSuffix >= $haikuVersion + allegro$secondaryArchSuffix == $portVersion base + " + diff --git a/media-libs/allegro/allegro-4.4.2.recipe b/media-libs/allegro/allegro-4.4.2.recipe new file mode 100644 index 000000000..21e488176 --- /dev/null +++ b/media-libs/allegro/allegro-4.4.2.recipe @@ -0,0 +1,94 @@ +SUMMARY="Allegro game programming library" +DESCRIPTION=" +Allegro 4 and Allegro 5 are cross-platform, libraries mainly aimed at video \ +game and multimedia programming. They handle common, low-level tasks such as \ +creating windows, accepting user input, loading data, drawing images, playing \ +sounds, etc. and generally abstracting away the underlying platform. However, \ +Allegro is not a game engine: you are free to design and structure your \ +program as you like. + +According to the Oxford Companion to Music, Allegro is the Italian for «quick, \ +lively, bright». It is also a recursive acronym which stands for «Allegro Low \ +LEvel Game ROutines». Allegro was started by Shawn Hargreaves in the mid-90's \ +but has since received contributions from hundreds of people over the net. +" +HOMEPAGE="http://alleg.sourceforge.net/" +SRC_URI="http://sourceforge.net/projects/alleg/files/allegro/4.4.2/allegro-4.4.2.tar.gz/download" +CHECKSUM_SHA256="1b21e7577dbfada02d85ca4510bd22fedaa6ce76fde7f4838c7c1276eb840fdc" +LICENSE="Allegro" +COPYRIGHT="1998-2010 Shawn Hargreaves et al." + +REVISION="1" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + allegro$secondaryArchSuffix = $portVersion + lib:liballeg$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libpng$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libogg$secondaryArchSuffix + lib:libvorbis$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libpng$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:libogg$secondaryArchSuffix + devel:libvorbis$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:cmake + cmd:make + cmd:pkg_config$secondaryArchSuffix + " + +PATCHES="allegro-4.4.2.patchset" + +BUILD() +{ + cmake . -DCMAKE_INSTALL_PREFIX=$prefix -DDOCDIR=$docDir -DMANDIR=$manDir + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs liballeg libjpgalleg libloadpng liblogg + + packageEntries devel $developDir $binDir +} + +PROVIDES_devel=" + allegro${secondaryArchSuffix}_devel = $portVersion compat >= 4.4 + devel:liballeg$secondaryArchSuffix = $portVersion compat >= 4.4 + cmd:allegro_config = $portVersion compat >= 4.4 + cmd:colormap = $portVersion compat >= 4.4 + cmd:dat = $portVersion compat >= 4.4 + cmd:dat2c = $portVersion compat >= 4.4 + cmd:dat2s = $portVersion compat >= 4.4 + cmd:exedat = $portVersion compat >= 4.4 + cmd:grabber = $portVersion compat >= 4.4 + cmd:pack = $portVersion compat >= 4.4 + cmd:pat2dat = $portVersion compat >= 4.4 + cmd:rgbmap = $portVersion compat >= 4.4 + cmd:textconv = $portVersion compat >= 4.4 + devel:libjpgalleg = $portVersion compat >= 4.4 + devel:liblogg = $portVersion compat >= 4.4 + devel:libloadpng = $portVersion compat >= 4.4 + " + +REQUIRES_devel=" + haiku$secondaryArchSuffix >= $haikuVersion + allegro$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/allegro/allegro-4.4.x_svn.recipe b/media-libs/allegro/allegro-4.4.x_svn.recipe deleted file mode 100644 index e114b9ab5..000000000 --- a/media-libs/allegro/allegro-4.4.x_svn.recipe +++ /dev/null @@ -1,27 +0,0 @@ -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.0.patch b/media-libs/allegro/patches/allegro-4.4.0.patch deleted file mode 100644 index 16ce69664..000000000 --- a/media-libs/allegro/patches/allegro-4.4.0.patch +++ /dev/null @@ -1,67 +0,0 @@ -diff -ur allegro-4.4.0/CMakeLists.txt allegro-4.4.0-haiku/CMakeLists.txt ---- allegro-4.4.0/CMakeLists.txt 2009-12-20 15:47:59.000000000 -0700 -+++ allegro-4.4.0-haiku/CMakeLists.txt 2009-12-21 20:43:57.000000000 -0700 -@@ -270,7 +270,17 @@ - endif(COMPILER_GCC) - endif(APPLE) - --if(UNIX AND NOT APPLE) -+if(BEOS) -+ if(CMAKE_SYSTEM_NAME STREQUAL Haiku) -+ set(ALLEGRO_HAIKU 1) -+ else(CMAKE_SYSTEM_NAME STREQUAL Haiku) -+ set(ALLEGRO_BEOS 1) -+ endif(CMAKE_SYSTEM_NAME STREQUAL Haiku) -+ set(WFLAGS "-W -Wall -Wno-unused -Wno-multichar -Wno-ctor-dtor-privacy") -+ set(WFLAGS_C_ONLY "") -+endif(BEOS) -+ -+if(UNIX AND NOT APPLE AND NOT BEOS) - set(ALLEGRO_UNIX 1) - endif() - -@@ -560,6 +570,13 @@ - ) - endif(WIN32) - -+# -- Haiku/BeOS -- -+ -+if(BEOS) -+ list(APPEND PLATFORM_SOURCES ${ALLEGRO_SRC_BEOS_FILES}) -+ list(APPEND PLATFORM_LIBS game midi device) -+endif(BEOS) -+ - # -- Mac OS X -- - - if(ALLEGRO_MACOSX) -@@ -644,6 +661,9 @@ - if(ALLEGRO_WITH_XWINDOWS) - add_headers("" include/xalleg.h) - endif(ALLEGRO_WITH_XWINDOWS) -+if(BEOS) -+ add_headers("" include/bealleg.h) -+endif(BEOS) - - #-----------------------------------------------------------------------------# - # -diff -ur allegro-4.4.0/cmake/FileList.cmake allegro-4.4.0-haiku/cmake/FileList.cmake ---- allegro-4.4.0/cmake/FileList.cmake 2009-11-08 19:24:05.000000000 -0700 -+++ allegro-4.4.0-haiku/cmake/FileList.cmake 2009-12-21 20:43:06.000000000 -0700 -@@ -207,7 +207,7 @@ - src/beos/bmousapi.cpp - src/beos/bmousdrv.c - src/beos/bmouse.c -- src/beos/boverlay.c -+ src/beos/boverlay.cpp - src/beos/bsnd.c - src/beos/bsndapi.cpp - src/beos/bsnddrv.c -@@ -218,7 +218,7 @@ - src/beos/btimeapi.cpp - src/beos/btimedrv.c - src/beos/btimer.c -- src/beos/bwindow.c -+ src/beos/bwindow.cpp - src/beos/bwscreen.cpp - src/unix/ufile.c - src/misc/colconv.c diff --git a/media-libs/allegro/patches/allegro-4.4.1.1.patch b/media-libs/allegro/patches/allegro-4.4.1.1.patch deleted file mode 100644 index cd809ec5b..000000000 --- a/media-libs/allegro/patches/allegro-4.4.1.1.patch +++ /dev/null @@ -1,62 +0,0 @@ -diff -urN allegro-4.4.1.1/src/beos/bdwindow.cpp allegro-4.4.1.1-haiku/src/beos/bdwindow.cpp ---- allegro-4.4.1.1/src/beos/bdwindow.cpp 2008-10-21 01:03:43.061865984 +0000 -+++ allegro-4.4.1.1-haiku/src/beos/bdwindow.cpp 2010-10-30 22:40:51.000000000 +0000 -@@ -413,9 +413,9 @@ - } - - #ifdef ALLEGRO_NO_ASM -- bmp->read_bank = _be_gfx_bwindow_read_write_bank; -- bmp->write_bank = _be_gfx_bwindow_read_write_bank; -- _screen_vtable.unwrite_bank = _be_gfx_bwindow_unwrite_bank; -+ bmp->read_bank = (void *)_be_gfx_bwindow_read_write_bank; -+ bmp->write_bank = (void *)_be_gfx_bwindow_read_write_bank; -+ _screen_vtable.unwrite_bank = (void *)_be_gfx_bwindow_unwrite_bank; - #else - bmp->read_bank = _be_gfx_bwindow_read_write_bank_asm; - bmp->write_bank = _be_gfx_bwindow_read_write_bank_asm; -diff -urN allegro-4.4.1.1/src/beos/bwindow.cpp allegro-4.4.1.1-haiku/src/beos/bwindow.cpp ---- allegro-4.4.1.1/src/beos/bwindow.cpp 2008-10-20 08:27:27.061603840 +0000 -+++ allegro-4.4.1.1-haiku/src/beos/bwindow.cpp 2010-10-30 22:40:51.000000000 +0000 -@@ -347,9 +347,9 @@ - } - - #ifdef ALLEGRO_NO_ASM -- bmp->read_bank = _be_gfx_bwindow_read_write_bank; -- bmp->write_bank = _be_gfx_bwindow_read_write_bank; -- _screen_vtable.unwrite_bank = _be_gfx_bwindow_unwrite_bank; -+ bmp->read_bank = (void *)_be_gfx_bwindow_read_write_bank; -+ bmp->write_bank = (void *)_be_gfx_bwindow_read_write_bank; -+ _screen_vtable.unwrite_bank = (void *)_be_gfx_bwindow_unwrite_bank; - #else - bmp->read_bank = _be_gfx_bwindow_read_write_bank_asm; - bmp->write_bank = _be_gfx_bwindow_read_write_bank_asm; -diff -urN allegro-4.4.1.1/src/beos/bwscreen.cpp allegro-4.4.1.1-haiku/src/beos/bwscreen.cpp ---- allegro-4.4.1.1/src/beos/bwscreen.cpp 2008-10-20 08:27:27.061865984 +0000 -+++ allegro-4.4.1.1-haiku/src/beos/bwscreen.cpp 2010-10-30 22:40:51.000000000 +0000 -@@ -363,9 +363,9 @@ - - #ifdef ALLEGRO_NO_ASM - if (gfx_capabilities) { -- bmp->write_bank = be_gfx_bwindowscreen_read_write_bank; -- bmp->read_bank = be_gfx_bwindowscreen_read_write_bank; -- _screen_vtable.unwrite_bank = be_gfx_bwindowscreen_unwrite_bank; -+ bmp->write_bank = (void *)be_gfx_bwindowscreen_read_write_bank; -+ bmp->read_bank = (void *)be_gfx_bwindowscreen_read_write_bank; -+ _screen_vtable.unwrite_bank = (void *)be_gfx_bwindowscreen_unwrite_bank; - } - #else - if (gfx_capabilities) { -diff -urN allegro-4.4.1.1/src/file.c allegro-4.4.1.1-haiku/src/file.c ---- allegro-4.4.1.1/src/file.c 2008-10-23 13:38:21.006815744 +0000 -+++ allegro-4.4.1.1-haiku/src/file.c 2010-10-30 22:46:02.595853312 +0000 -@@ -31,6 +31,10 @@ - #include "allegro.h" - #include "allegro/internal/aintern.h" - -+#ifdef ALLEGRO_HAIKU -+ #define O_BINARY 0 -+#endif -+ - #ifndef ALLEGRO_MPW - #include - #endif diff --git a/media-libs/allegro/patches/allegro-4.4.1.1.patchset b/media-libs/allegro/patches/allegro-4.4.1.1.patchset new file mode 100644 index 000000000..2b2cc81a0 --- /dev/null +++ b/media-libs/allegro/patches/allegro-4.4.1.1.patchset @@ -0,0 +1,180 @@ +From cbe10814911be2ea285d73d455065e430bf6c92a Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Fri, 29 Nov 2013 21:27:01 +0100 +Subject: applying patch allegro-4.4.1.1.patch + + +diff --git a/src/beos/bdwindow.cpp b/src/beos/bdwindow.cpp +index 2ef8460..28c9678 100644 +--- a/src/beos/bdwindow.cpp ++++ b/src/beos/bdwindow.cpp +@@ -413,9 +413,9 @@ static struct BITMAP *_be_gfx_bdirectwindow_init(GFX_DRIVER *drv, int w, int h, + } + + #ifdef ALLEGRO_NO_ASM +- bmp->read_bank = _be_gfx_bwindow_read_write_bank; +- bmp->write_bank = _be_gfx_bwindow_read_write_bank; +- _screen_vtable.unwrite_bank = _be_gfx_bwindow_unwrite_bank; ++ bmp->read_bank = (void *)_be_gfx_bwindow_read_write_bank; ++ bmp->write_bank = (void *)_be_gfx_bwindow_read_write_bank; ++ _screen_vtable.unwrite_bank = (void *)_be_gfx_bwindow_unwrite_bank; + #else + bmp->read_bank = _be_gfx_bwindow_read_write_bank_asm; + bmp->write_bank = _be_gfx_bwindow_read_write_bank_asm; +diff --git a/src/beos/bwindow.cpp b/src/beos/bwindow.cpp +index d89e1d4..61a1885 100644 +--- a/src/beos/bwindow.cpp ++++ b/src/beos/bwindow.cpp +@@ -347,9 +347,9 @@ extern "C" struct BITMAP *be_gfx_bwindow_init(int w, int h, int v_w, int v_h, in + } + + #ifdef ALLEGRO_NO_ASM +- bmp->read_bank = _be_gfx_bwindow_read_write_bank; +- bmp->write_bank = _be_gfx_bwindow_read_write_bank; +- _screen_vtable.unwrite_bank = _be_gfx_bwindow_unwrite_bank; ++ bmp->read_bank = (void *)_be_gfx_bwindow_read_write_bank; ++ bmp->write_bank = (void *)_be_gfx_bwindow_read_write_bank; ++ _screen_vtable.unwrite_bank = (void *)_be_gfx_bwindow_unwrite_bank; + #else + bmp->read_bank = _be_gfx_bwindow_read_write_bank_asm; + bmp->write_bank = _be_gfx_bwindow_read_write_bank_asm; +diff --git a/src/beos/bwscreen.cpp b/src/beos/bwscreen.cpp +index af22981..4aeda05 100644 +--- a/src/beos/bwscreen.cpp ++++ b/src/beos/bwscreen.cpp +@@ -363,9 +363,9 @@ static struct BITMAP *_be_gfx_bwindowscreen_init(GFX_DRIVER *drv, int w, int h, + + #ifdef ALLEGRO_NO_ASM + if (gfx_capabilities) { +- bmp->write_bank = be_gfx_bwindowscreen_read_write_bank; +- bmp->read_bank = be_gfx_bwindowscreen_read_write_bank; +- _screen_vtable.unwrite_bank = be_gfx_bwindowscreen_unwrite_bank; ++ bmp->write_bank = (void *)be_gfx_bwindowscreen_read_write_bank; ++ bmp->read_bank = (void *)be_gfx_bwindowscreen_read_write_bank; ++ _screen_vtable.unwrite_bank = (void *)be_gfx_bwindowscreen_unwrite_bank; + } + #else + if (gfx_capabilities) { +diff --git a/src/file.c b/src/file.c +index 654e632..7d56d8f 100644 +--- a/src/file.c ++++ b/src/file.c +@@ -31,6 +31,10 @@ + #include "allegro.h" + #include "allegro/internal/aintern.h" + ++#ifdef ALLEGRO_HAIKU ++ #define O_BINARY 0 ++#endif ++ + #ifndef ALLEGRO_MPW + #include + #endif +-- +1.8.3.4 + + +From e3cc30c9d162fff9e1b74985da390969eea932e8 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sat, 30 Nov 2013 11:16:32 +0100 +Subject: Allegro: fix recipe following CMake changes + +* Our CMake doesn't define BEOS anymore, so have Allegro build accept +HAIKU as well. +* Fix some hardcoded installation paths. +* Add a missing zlib include, I guess because of a newer libpng. + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 103d012..7e83070 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -280,7 +280,7 @@ if(APPLE) + endif(COMPILER_GCC) + endif(APPLE) + +-if(BEOS) ++if(BEOS OR HAIKU) + if(CMAKE_SYSTEM_NAME STREQUAL Haiku) + set(ALLEGRO_HAIKU 1) + else(CMAKE_SYSTEM_NAME STREQUAL Haiku) +@@ -288,9 +288,9 @@ if(BEOS) + endif(CMAKE_SYSTEM_NAME STREQUAL Haiku) + set(WFLAGS "-W -Wall -Wno-unused -Wno-multichar -Wno-ctor-dtor-privacy") + set(WFLAGS_C_ONLY "") +-endif(BEOS) ++endif() + +-if(UNIX AND NOT APPLE AND NOT BEOS) ++if(UNIX AND NOT APPLE AND NOT BEOS AND NOT HAIKU) + set(ALLEGRO_UNIX 1) + endif() + +@@ -582,10 +582,10 @@ endif(WIN32) + + # -- Haiku/BeOS -- + +-if(BEOS) ++if(BEOS OR HAIKU) + list(APPEND PLATFORM_SOURCES ${ALLEGRO_SRC_BEOS_FILES}) + list(APPEND PLATFORM_LIBS game midi device) +-endif(BEOS) ++endif() + + # -- Mac OS X -- + +diff --git a/addons/loadpng/loadpng.c b/addons/loadpng/loadpng.c +index 33f5527..9253260 100644 +--- a/addons/loadpng/loadpng.c ++++ b/addons/loadpng/loadpng.c +@@ -9,6 +9,7 @@ + #include + #include + #include "loadpng.h" ++#include + + /* We need internals _color_load_depth and _fixup_loaded_bitmap. The + * first can be replaced by the new get_color_depth() function which +diff --git a/cmake/Common.cmake b/cmake/Common.cmake +index 654c01c..2a9b171 100644 +--- a/cmake/Common.cmake ++++ b/cmake/Common.cmake +@@ -43,7 +43,11 @@ endfunction(install_our_library) + function(install_our_headers) + foreach(hdr ${ARGN}) + get_source_file_property(LOC ${hdr} MACOSX_PACKAGE_LOCATION) +- string(REGEX REPLACE "^Headers" "include" LOC ${LOC}) ++ if(HAIKU) ++ string(REGEX REPLACE "^Headers" "develop/headers" LOC ${LOC}) ++ else() ++ string(REGEX REPLACE "^Headers" "include" LOC ${LOC}) ++ endif() + install(FILES ${hdr} DESTINATION ${LOC}) + endforeach() + endfunction(install_our_headers) +-- +1.8.3.4 + + +From 8a85c675661240b48a07625473da010646ea6e17 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sat, 30 Nov 2013 11:36:07 +0100 +Subject: Avoid a crash when not started from terminal. + +BeOS seems to set TERM environment variable to "dumb", but we don't. + +diff --git a/src/beos/bsysapi.cpp b/src/beos/bsysapi.cpp +index c6e4dad..a7c9d46 100644 +--- a/src/beos/bsysapi.cpp ++++ b/src/beos/bsysapi.cpp +@@ -128,7 +128,7 @@ static int32 system_thread(void *data) + using_custom_allegro_app = false; + + term = getenv("TERM"); +- if (!strcmp(term, "dumb")) { ++ if (!term || !strcmp(term, "dumb")) { + /* The TERM environmental variable is set to "dumb" if the app was + * not started from a terminal. + */ +-- +1.8.3.4 + diff --git a/media-libs/allegro/patches/allegro-4.4.2.patchset b/media-libs/allegro/patches/allegro-4.4.2.patchset new file mode 100644 index 000000000..80780b740 --- /dev/null +++ b/media-libs/allegro/patches/allegro-4.4.2.patchset @@ -0,0 +1,77 @@ +From 3f9d50e146abb2e937adf2d6e0fc7dad9634b20e Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sat, 30 Nov 2013 12:14:54 +0100 +Subject: Import Allegro 4.4.1.1 fixes that were not upstreamed. + + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 245be10..08a2a32 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -291,7 +291,7 @@ if(APPLE) + endif(COMPILER_GCC) + endif(APPLE) + +-if(BEOS) ++if(BEOS OR HAIKU) + if(CMAKE_SYSTEM_NAME STREQUAL Haiku) + set(ALLEGRO_HAIKU 1) + else(CMAKE_SYSTEM_NAME STREQUAL Haiku) +@@ -300,9 +300,9 @@ if(BEOS) + set(WFLAGS "-W -Wall -Wno-unused -Wno-multichar") + set(WFLAGS_C_ONLY "") + set(WFLAGS_CXX_ONLY "-Wno-ctor-dtor-privacy") +-endif(BEOS) ++endif() + +-if(UNIX AND NOT APPLE AND NOT BEOS) ++if(UNIX AND NOT APPLE AND NOT BEOS AND NOT HAIKU) + set(ALLEGRO_UNIX 1) + endif() + +@@ -628,10 +628,10 @@ endif(WIN32) + + # -- Haiku/BeOS -- + +-if(BEOS) ++if(BEOS OR HAIKU) + list(APPEND PLATFORM_SOURCES ${ALLEGRO_SRC_BEOS_FILES}) + list(APPEND PLATFORM_LIBS game midi device) +-endif(BEOS) ++endif() + + # -- Mac OS X -- + +diff --git a/cmake/Common.cmake b/cmake/Common.cmake +index 41822dd..1b56e1b 100644 +--- a/cmake/Common.cmake ++++ b/cmake/Common.cmake +@@ -43,7 +43,11 @@ endfunction(install_our_library) + function(install_our_headers) + foreach(hdr ${ARGN}) + get_source_file_property(LOC ${hdr} MACOSX_PACKAGE_LOCATION) +- string(REGEX REPLACE "^Headers" "include" LOC ${LOC}) ++ if(HAIKU) ++ string(REGEX REPLACE "^Headers" "develop/headers" LOC ${LOC}) ++ else() ++ string(REGEX REPLACE "^Headers" "include" LOC ${LOC}) ++ endif() + install(FILES ${hdr} DESTINATION ${LOC}) + endforeach() + endfunction(install_our_headers) +diff --git a/src/beos/bsysapi.cpp b/src/beos/bsysapi.cpp +index c6e4dad..a7c9d46 100644 +--- a/src/beos/bsysapi.cpp ++++ b/src/beos/bsysapi.cpp +@@ -128,7 +128,7 @@ static int32 system_thread(void *data) + using_custom_allegro_app = false; + + term = getenv("TERM"); +- if (!strcmp(term, "dumb")) { ++ if (!term || !strcmp(term, "dumb")) { + /* The TERM environmental variable is set to "dumb" if the app was + * not started from a terminal. + */ +-- +1.8.3.4 + diff --git a/media-libs/allegro/patches/allegro-4.4.x-svn.patch b/media-libs/allegro/patches/allegro-4.4.x-svn.patch deleted file mode 100644 index 2e81e77f1..000000000 --- a/media-libs/allegro/patches/allegro-4.4.x-svn.patch +++ /dev/null @@ -1,51 +0,0 @@ -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/allegro/patches/allegro-4.4.x_svn.patch b/media-libs/allegro/patches/allegro-4.4.x_svn.patch deleted file mode 100644 index 2e81e77f1..000000000 --- a/media-libs/allegro/patches/allegro-4.4.x_svn.patch +++ /dev/null @@ -1,51 +0,0 @@ -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/devil/devil-1.7.8.recipe b/media-libs/devil/devil-1.7.8.recipe index 8734b2381..37c4df4f9 100644 --- a/media-libs/devil/devil-1.7.8.recipe +++ b/media-libs/devil/devil-1.7.8.recipe @@ -1,28 +1,64 @@ -DESCRIPTION="DevIL image library" +SUMMARY="A full-featured cross-platform image library" HOMEPAGE="http://openil.sourceforge.net/" SRC_URI="http://sourceforge.net/projects/openil/files/DevIL/1.7.8/DevIL-1.7.8.tar.gz/download" +CHECKSUM_SHA256="682ffa3fc894686156337b8ce473c954bf3f4fb0f3ecac159c73db632d28a8fd" REVISION="1" -CHECKSUM_MD5="7918f215524589435e5ec2e8736d5e1d" -STATUS_HAIKU="stable" -DEPEND="media-libs/jasper >= 1.900.1 - media-libs/lcms >= 1.18a - media-libs/libmng >= 1.0.10 - openexr >= 1.5.0 - dev-util/pkg-config >= 0.23 - media-libs/tiff >= 3.8.2" +ARCHITECTURES="x86_gcc2 x86" +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + devil$secondaryArchSuffix = $portVersion + lib:libIL$secondaryArchSuffix + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " +#DEPEND="media-libs/jasper >= 1.900.1 +# media-libs/lcms >= 1.18a +# media-libs/libmng >= 1.0.10 +# openexr >= 1.5.0 +# dev-util/pkg-config >= 0.23 +# media-libs/tiff >= 3.8.2" BUILD() { - cd devil-1.7.8 - libtoolize --force --copy --install - autoreconf -i - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make + runConfigure ./configure + make $jobArgs } INSTALL() { - cd devil-1.7.8 make install + + prepareInstalledDevelLib libIL + fixPkgconfig + packageEntries devel $developDir } + +PROVIDES_devel=" + devil${secondaryArchSuffix}_devel = $portVersion + devel:libIL$secondaryArchSuffix + " + +REQUIRES_devel=" + haiku$secondaryArchSuffix >= $haikuVersion + devil$secondaryArchSuffix == $portVersion base + " + LICENSE="GNU LGPL v2.1" COPYRIGHT="2009 Denton Woods" +DESCRIPTION=" +Developer's Image Library (DevIL) is a programmer's library to develop +applications with very powerful image loading capabilities, yet is easy for a +developer to learn and use. Ultimate control of images is left to the +developer, so unnecessary conversions, etc. are not performed. DevIL utilizes a +simple, yet powerful, syntax. DevIL can load, save, convert, manipulate, filter +and display a wide variety of image formats. +" diff --git a/media-libs/djvulibre/djvulibre-3.5.25.recipe b/media-libs/djvulibre/djvulibre-3.5.25.recipe index 7cf3da398..04ad3e511 100644 --- a/media-libs/djvulibre/djvulibre-3.5.25.recipe +++ b/media-libs/djvulibre/djvulibre-3.5.25.recipe @@ -1,28 +1,103 @@ -DESCRIPTION="DjVu is a web-centric format and software platform for distributing documents and images" +SUMMARY="Web-centric format for distributing documents and images" +DESCRIPTION=" +DjVu is a web-centric format and software platform for distributing documents \ +and images. +" HOMEPAGE="http://djvulibre.sourceforge.net/" +LICENSE="GNU GPL v2" +COPYRIGHT="2002 Leon Bottou and Yann Le Cun. + 2001 AT&T + 1999-2001 LizardTech, Inc." SRC_URI="http://downloads.sourceforge.net/project/djvu/DjVuLibre/3.5.25/djvulibre-3.5.25.2.tar.gz" -CHECKSUM_MD5="994e2ff1d4ae6a763764dfe20509826e" +CHECKSUM_SHA256="619becf24cf2b9289d5102a19bb81424f68008f90ded841085f07c32e5d48158" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + djvulibre$secondaryArchSuffix = $portVersion compat >= 3.5 + cmd:any2djvu$secondaryArchSuffix = $portVersion compat >= 3.5 + cmd:bzz$secondaryArchSuffix = $portVersion compat >= 3.5 + cmd:c44$secondaryArchSuffix = $portVersion compat >= 3.5 + cmd:cjb2$secondaryArchSuffix = $portVersion compat >= 3.5 + cmd:cpaldjvu$secondaryArchSuffix = $portVersion compat >= 3.5 + cmd:csepdjvu$secondaryArchSuffix = $portVersion compat >= 3.5 + cmd:ddjvu$secondaryArchSuffix = $portVersion compat >= 3.5 + cmd:djvm$secondaryArchSuffix = $portVersion compat >= 3.5 + cmd:djvmcvt$secondaryArchSuffix = $portVersion compat >= 3.5 + cmd:djvudigital$secondaryArchSuffix = $portVersion compat >= 3.5 + cmd:djvudump$secondaryArchSuffix = $portVersion compat >= 3.5 + cmd:djvuextract$secondaryArchSuffix = $portVersion compat >= 3.5 + cmd:djvumake$secondaryArchSuffix = $portVersion compat >= 3.5 + cmd:djvups$secondaryArchSuffix = $portVersion compat >= 3.5 + cmd:djvused$secondaryArchSuffix = $portVersion compat >= 3.5 + cmd:djvuserve$secondaryArchSuffix = $portVersion compat >= 3.5 + cmd:djvutoxml$secondaryArchSuffix = $portVersion compat >= 3.5 + cmd:djvutxt$secondaryArchSuffix = $portVersion compat >= 3.5 + cmd:djvuxmlparser$secondaryArchSuffix = $portVersion compat >= 3.5 + lib:libdjvulibre$secondaryArchSuffix = $portVersion compat >= 3.5 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libjpeg$secondaryArchSuffix + " +# haiku_x86 doesn't claim to provide lib:libtiff_x86 on gcc2 builds +if [ "$targetArchitecture" != x86_gcc2 ];then + REQUIRES="$REQUIRES lib:libtiff$secondaryArchSuffix" +fi + +BUILD_REQUIRES=" + devel:libjpeg$secondaryArchSuffix + " +#needs devel:libtiff too but that isn't provided by anything + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:aclocal + cmd:autoconf + cmd:libtoolize + cmd:libtool + " + +PROVIDES_devel=" + djvulibre${secondaryArchSuffix}_devel = $portVersion compat >= 3.5 + devel:libdjvulibre$secondaryArchSuffix = $portVersion compat >= 3.5 + " + +REQUIRES_devel=" + djvulibre$secondaryArchSuffix == $portVersion + " + +SOURCE_DIR="djvulibre-3.5.25" + +PATCHES="djvulibre-3.5.25.patch" + 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` + aclocal + libtoolize -fci + autoconf + runConfigure ./configure 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." + prepareInstalledDevelLibs libdjvulibre + + fixPkgconfig + + packageEntries devel $developDir +} diff --git a/media-libs/faac/faac-1.28.recipe b/media-libs/faac/faac-1.28.recipe index 85ace122a..46e973316 100644 --- a/media-libs/faac/faac-1.28.recipe +++ b/media-libs/faac/faac-1.28.recipe @@ -1,30 +1,74 @@ -DESCRIPTION="FAAC is an MPEG-4 and MPEG-2 AAC encoder" +SUMMARY="An MPEG-4 and MPEG-2 AAC encoder" +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" +CHECKSUM_SHA256="aac475e59d38ae9e29bff760e26bf72b507ccec037a6837cc33e3ac1db3ef352" 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." + +LICENSE="GNU GPL v2" +COPYRIGHT="Copyright (C) 2003 Krzysztof Nikiel" + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + faac${secondaryArchSuffix} = $portVersion + lib:libfaac + cmd:faac + " + +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:libtool + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +SOURCE_DIR="faac-${portVersion}" + +PATCHES="faac-${portVersion}.patch" + 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 + + runConfigure ./configure + make $jobArgs } INSTALL() { - cd faac-1.28 make install + + # prepare develop/lib + prepareInstalledDevelLibs libfaac + fixPkgconfig + + packageEntries devel \ + $developDir } -LICENSE="FAAC" -COPYRIGHT="2001 M. Bakker" +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + faac${secondaryArchSuffix}_devel = $portVersion + devel:libfaac$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + faac$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/faac/patches/faac-1.28.patch b/media-libs/faac/patches/faac-1.28.patch new file mode 100644 index 000000000..b616e63b3 --- /dev/null +++ b/media-libs/faac/patches/faac-1.28.patch @@ -0,0 +1,33 @@ +diff -Naur faac-1.28/configure.in faac-1.28-haiku/configure.in +--- faac-1.28/configure.in 2009-02-04 18:55:38.033816576 -0600 ++++ faac-1.28-haiku/configure.in 2013-11-26 17:01:55.148373504 -0600 +@@ -3,7 +3,7 @@ + AC_CONFIG_AUX_DIR(.) + AM_INIT_AUTOMAKE + +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADERS(config.h) + + AC_ARG_WITH( mp4v2, [ --with-mp4v2 compile libmp4v2],WITHMP4V2=$withval, WITHMP4V2=yes) + AC_ARG_ENABLE( drm, [ --enable-drm Digital Radio Mondiale support], enable_drm=$enableval, enable_drm=no) +@@ -31,7 +31,7 @@ + + AC_CHECK_DECLS([MP4Create, MP4MetadataDelete], + AC_CHECK_LIB(mp4v2, MP4MetadataDelete, external_mp4v2=yes, +- external_mp4v2=no, -lstdc++), ++ external_mp4v2=no), + external_mp4v2=no, [#include ]) + + if test x$external_mp4v2 = xyes; then +diff -Naur faac-1.28/frontend/Makefile.am faac-1.28-haiku/frontend/Makefile.am +--- faac-1.28/frontend/Makefile.am 2008-12-15 18:56:00.034603008 -0600 ++++ faac-1.28-haiku/frontend/Makefile.am 2013-11-26 17:06:24.569114624 -0600 +@@ -5,7 +5,7 @@ + + if WITH_MP4V2 + INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir)/common/mp4v2 +-LDADD = $(top_builddir)/libfaac/libfaac.la $(top_srcdir)/common/mp4v2/libmp4v2.a -lm -lstdc++ ++LDADD = $(top_builddir)/libfaac/libfaac.la $(top_srcdir)/common/mp4v2/libmp4v2.a -lm + else + INCLUDES = -I$(top_srcdir)/include + LDADD = $(top_builddir)/libfaac/libfaac.la -lm diff --git a/media-libs/faad2/faad2-2.7.recipe b/media-libs/faad2/faad2-2.7.recipe index 9f84734f3..e121591c5 100644 --- a/media-libs/faad2/faad2-2.7.recipe +++ b/media-libs/faad2/faad2-2.7.recipe @@ -1,30 +1,75 @@ +SUMMARY="FAAD2 is an open source MPEG-4 and MPEG-2 AAC decoder" 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" -DEPEND="" -CHECKSUM_MD5="ee1b4d67ea2d76ee52c5621bc6dbf61e" -MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +LICENSE="GNU GPL v2" +COPYRIGHT="2003-2005 M. Bakker, Nero AG." + +CHECKSUM_SHA256="ee26ed1e177c0cd8fa8458a481b14a0b24ca0b51468c8b4c8b676fd3ceccd330" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86 x86_64" + +PATCHES="faad2-2.7.patch" + +PROVIDES=" + faad2$secondaryArchSuffix = $portVersion compat >= 2.0 + lib:libfaad$secondaryArchSuffix = 2.0.0 compat >= 2 + cmd:faad$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion +" + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:libtool + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + + +PATCH() +{ + sed -i 's/(LTCOMPILE) -c/(LTCOMPILE) -nostart/' libfaad/Makefile.in + sed -i 's/iquote/I/' libfaad/Makefile.am +} + BUILD() { - cd faad2-2.7 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 + + runConfigure ./configure + make $jobArgs } INSTALL() { - cd faad2-2.7 make install + prepareInstalledDevelLibs libfaad libmp4ff + + # devel package + packageEntries devel \ + $developDir + } -LICENSE="GNU GPL v2" -COPYRIGHT="2003-2005 M. Bakker, Nero AG." +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + faad2${secondaryArchSuffix}_devel = $portVersion compat >= 2.0 + devel:libfaad$secondaryArchSuffix = 2.0.0 compat >= 2 + devel:libmp4ff$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + faad2$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/faad2/patches/faad2-2.7.patch b/media-libs/faad2/patches/faad2-2.7.patch index e5f4b63ce..e5a716041 100644 --- a/media-libs/faad2/patches/faad2-2.7.patch +++ b/media-libs/faad2/patches/faad2-2.7.patch @@ -6,8 +6,9 @@ diff -urN faad2-2.7.orig/configure.in faad2-2.7/configure.in AC_PROG_MAKE_SET AC_CHECK_PROGS(RPMBUILD, rpmbuild, rpm) +AC_CHECK_LIBM - - AM_CONFIG_HEADER(config.h) + +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADER(config.h) @@ -91,7 +92,7 @@ ac_cv_c99_lrintf, @@ -18,3 +19,4 @@ diff -urN faad2-2.7.orig/configure.in faad2-2.7/configure.in AC_TRY_LINK([ #define _ISOC9X_SOURCE 1 #define _ISOC99_SOURCE 1 + diff --git a/media-libs/fitz/fitz-1.0.recipe b/media-libs/fitz/fitz-1.0.recipe deleted file mode 100644 index 85c20222f..000000000 --- a/media-libs/fitz/fitz-1.0.recipe +++ /dev/null @@ -1,30 +0,0 @@ -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/fitz-1.1.recipe b/media-libs/fitz/fitz-1.1.recipe new file mode 100644 index 000000000..3f2988792 --- /dev/null +++ b/media-libs/fitz/fitz-1.1.recipe @@ -0,0 +1,75 @@ +SUMMARY="A PDF library that is part of MuPDF" +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/" +LICENSE="GNU GPL v3" +COPYRIGHT="2007 Free Software Foundation, Inc." +SRC_URI="http://mupdf.googlecode.com/files/mupdf-1.1-source.tar.gz" +CHECKSUM_SHA256="e54666bbe1d9f0a5464349bfbeffcf676c4a0fcad3efb89eba1f20d4ac991f34" +REVISION="1" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + + +PROVIDES=" + fitz$secondaryArchSuffix = $portVersion compat >= 1.1 + lib:libfitz = $portVersion compat >= 1.1 + devel:libfitz$secondaryArchSuffix = $portVersion compat >= 1.1 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libjpeg$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libfreetype$secondaryArchSuffix + lib:libopenjpeg$secondaryArchSuffix + lib:libjbig2dec$secondaryArchSuffix + " + +BUILD_REQUIRES=" + devel:libopenjpeg$secondaryArchSuffix + devel:libjbig2dec$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:libfreetype$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:make + cmd:gcc$secondaryArchSuffix + " + +SOURCE_DIR="mupdf-1.1-source" + +PATCHES="fitz-1.1.patchset" + +BUILD() +{ + # work around broken header layout in our freetype_devel package + XCFLAGS="-I/boot/system/develop/headers/freetype2" \ + make $jobArgs libs +} + +INSTALL() +{ + make install-libs \ + prefix=$prefix \ + bindir=$binDir \ + libdir=$libDir \ + incdir=$includeDir \ + mandir=$manDir + + prepareInstalledDevelLibs libfitz +} diff --git a/media-libs/fitz/patches/fitz-1.0.patch b/media-libs/fitz/patches/fitz-1.0.patch deleted file mode 100644 index 6946f4464..000000000 --- a/media-libs/fitz/patches/fitz-1.0.patch +++ /dev/null @@ -1,36 +0,0 @@ -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/fitz/patches/fitz-1.1.patchset b/media-libs/fitz/patches/fitz-1.1.patchset new file mode 100644 index 000000000..f85901a0e --- /dev/null +++ b/media-libs/fitz/patches/fitz-1.1.patchset @@ -0,0 +1,34 @@ +From b98ccb54d6f03bf93aa9bd76ddeaf12a5ad183f0 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Mon, 18 Nov 2013 01:10:58 -0700 +Subject: Remove libm and add install-libs target + + +diff --git a/Makefile b/Makefile +index 05bb4e8..74319f7 100644 +--- a/Makefile ++++ b/Makefile +@@ -13,7 +13,7 @@ default: all + # 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 ++LIBS += $(XLIBS) -lfreetype -ljbig2dec -ljpeg -lopenjpeg -lz + + include Makerules + include Makethird +@@ -171,6 +171,11 @@ install: $(FITZ_LIB) $(MUVIEW) $(MUDRAW) $(MUBUSY) + install $(MUVIEW) $(MUDRAW) $(MUBUSY) $(bindir) + install $(wildcard apps/man/*.1) $(mandir)/man1 + ++install-libs: $(FITZ_LIB) ++ install -d $(libdir) $(incdir) ++ install $(FITZ_LIB) $(libdir) ++ install fitz/memento.h fitz/fitz.h pdf/mupdf.h xps/muxps.h cbz/mucbz.h $(incdir) ++ + # --- Clean and Default --- + + all: all-nojs +-- +1.8.3.4 + diff --git a/media-libs/flac/flac-1.3.0.recipe b/media-libs/flac/flac-1.3.0.recipe index d274dbb07..1fa598f90 100644 --- a/media-libs/flac/flac-1.3.0.recipe +++ b/media-libs/flac/flac-1.3.0.recipe @@ -1,8 +1,15 @@ SUMMARY="flac - Free Lossless Audio Codec" -DESCRIPTION="FLAC stands for Free Lossless Audio Codec, an audio format similar to MP3, but lossless, meaning that audio is compressed in FLAC without any loss in quality. This is similar to how Zip works, except with FLAC you will get much better compression because it is designed specifically for audio, and you can play back compressed FLAC files in your favorite player (or your car or home stereo) just like you would an MP3 file." +DESCRIPTION=" +FLAC stands for Free Lossless Audio Codec, an audio format similar to MP3, but \ +lossless, meaning that audio is compressed in FLAC without any loss in \ +quality. This is similar to how Zip works, except with FLAC you will get much \ +better compression because it is designed specifically for audio, and you can \ +play back compressed FLAC files in your favorite player (or your car or home \ +stereo) just like you would an MP3 file. +" HOMEPAGE="http://flac.sourceforge.net/" SRC_URI="http://downloads.xiph.org/releases/flac/flac-1.3.0.tar.xz" -CHECKSUM_MD5="13b5c214cee8373464d3d65dee362cdd" +CHECKSUM_SHA256="fa2d64aac1f77e31dfbb270aeb08f5b32e27036a52ad15e69a77e309528010dc" REVISION="1" LICENSE="GNU LGPL v2.1 @@ -12,39 +19,42 @@ LICENSE="GNU LGPL v2.1 COPYRIGHT="2000-2007 Josh Coalson" -ARCHITECTURES="x86 x86_gcc2" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" PROVIDES=" - libFLAC = 1.3.0 compat >= 1 - cmd:flac - cmd:metaflac - lib:libFLAC++ - lib:libFLAC + flac$secondaryArchSuffix = $portVersion compat >= 1 + libFLAC$secondaryArchSuffix = 1.3.0 compat >= 1 + cmd:flac$secondaryArchSuffix + cmd:metaflac$secondaryArchSuffix + lib:libFLAC++$secondaryArchSuffix + lib:libFLAC$secondaryArchSuffix " REQUIRES=" - haiku - lib:libiconv - lib:libogg + haiku$secondaryArchSuffix >= $haikuVersion + lib:libiconv$secondaryArchSuffix + lib:libogg$secondaryArchSuffix " BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libiconv$secondaryArchSuffix + devel:libogg$secondaryArchSuffix " - + BUILD_PREREQUIRES=" - haiku_devel cmd:nasm - cmd:gcc + cmd:gcc$secondaryArchSuffix cmd:libtoolize cmd:aclocal cmd:autoconf cmd:automake - cmd:ld + cmd:ld$secondaryArchSuffix cmd:make cmd:gawk cmd:perl - devel:libiconv - devel:libogg + cmd:find " BUILD() @@ -61,12 +71,12 @@ INSTALL() make install prepareInstalledDevelLibs libFLAC + prepareInstalledDevelLibs libFLAC++ fixPkgconfig # devel package packageEntries devel \ $developDir - } TEST() @@ -86,12 +96,13 @@ TEST() # ----- devel package ------------------------------------------------------- PROVIDES_devel=" - libFLAC_devel = $portVersion - devel:flac = 8.3.0 compat >= 8 - devel:libFLAC = 8.3.0 compat >= 8 - devel:libFLAC++ = 8.3.0 compat >= 8 + flac${secondaryArchSuffix}_devel = $portVersion + libFLAC${secondaryArchSuffix}_devel = $portVersion + devel:flac$secondaryArchSuffix = 8.3.0 compat >= 8 + devel:libFLAC$secondaryArchSuffix = 8.3.0 compat >= 8 + devel:libFLAC++$secondaryArchSuffix = 8.3.0 compat >= 8 " REQUIRES_devel=" - libFLAC == $portVersion + libFLAC$secondaryArchSuffix == $portVersion " diff --git a/media-libs/fontconfig/fontconfig-2.11.0.recipe b/media-libs/fontconfig/fontconfig-2.11.0.recipe new file mode 100644 index 000000000..de95c866c --- /dev/null +++ b/media-libs/fontconfig/fontconfig-2.11.0.recipe @@ -0,0 +1,109 @@ +SUMMARY="A library for font customization and configuration" +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.11.0.tar.bz2" +CHECKSUM_SHA256="cb0e0ef6f03bc8568e95653840bb07d5859dc89d7ce2cade9d94fcccf8c1a467" +LICENSE="MIT" +COPYRIGHT="2000-2005, 2006-2007 Keith Packard + 2005 Patrick Lam + 2009 Roozbeh Pournader + 2008-2009 Red Hat, Inc. + 2008 Danilo Segan + 2012 Google, Inc." + +REVISION="1" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86 x86_64" + +PROVIDES=" + fontconfig$secondaryArchSuffix = $portVersion compat >= 2 + cmd:fc_cache$secondaryArchSuffix + cmd:fc_cat$secondaryArchSuffix + cmd:fc_list$secondaryArchSuffix + cmd:fc_match$secondaryArchSuffix + cmd:fc_pattern$secondaryArchSuffix + cmd:fc_query$secondaryArchSuffix + cmd:fc_scan$secondaryArchSuffix + cmd:fc_validate$secondaryArchSuffix + lib:libfontconfig$secondaryArchSuffix = 1.8.0 compat >= 1 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libfreetype$secondaryArchSuffix + lib:libxml2$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + lib:libbz2$secondaryArchSuffix + " + +BUILD_REQUIRES=" + devel:libfreetype$secondaryArchSuffix + devel:libxml2$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libbz2$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:libtool + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:pkg_config + " + +PATCHES="fontconfig-2.11.0.patch" + +GLOBAL_WRITABLE_FILES=" + settings/fonts/conf.d directory keep-old + settings/fonts/fonts.conf auto-merge + " + +BUILD() +{ + export PKG_CONFIG_PATH=`finddir B_SYSTEM_DEVELOP_DIRECTORY`/lib$secondaryArchSubDir/pkgconfig + + 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_BEOS_FONTS_DIRECTORY` + FONTS_DIR3=`finddir B_USER_FONTS_DIRECTORY` + CACHE_DIR=`finddir B_USER_CACHE_DIRECTORY` + runConfigure ./configure \ + --enable-libxml2 \ + --with-default-fonts=${FONTS_DIR} \ + --with-add-fonts=${FONTS_DIR2},${FONTS_DIR3} \ + --with-cache-dir=${CACHE_DIR} + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libfontconfig + + #devel package + packageEntries devel \ + $developDir +} + +PROVIDES_devel=" + fontconfig${secondaryArchSuffix}_devel = $portVersion compat >= 2.1 + devel:libfontconfig$secondaryArchSuffix = 1.8.0 compat >= 1 + " + +REQUIRES_devel=" + fontconfig$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/fontconfig/patches/fontconfig-2.11.0.patch b/media-libs/fontconfig/patches/fontconfig-2.11.0.patch new file mode 100644 index 000000000..1c98bf9f6 --- /dev/null +++ b/media-libs/fontconfig/patches/fontconfig-2.11.0.patch @@ -0,0 +1,22 @@ +diff --git a/test/Makefile.am b/test/Makefile.am +index 52c63dc..f270b50 100644 +--- a/test/Makefile.am ++++ b/test/Makefile.am +@@ -16,7 +16,7 @@ TESTDATA=4x6.pcf 8x16.pcf out.expected fonts.conf.in + + AM_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir) + +-check_PROGRAMS = test-migration ++check_PROGRAMS = + if HAVE_PTHREAD + check_PROGRAMS += test-pthread + test_pthread_LDADD = $(top_builddir)/src/libfontconfig.la +@@ -26,7 +26,8 @@ test_pthread_LDADD = $(top_builddir)/src/libfontconfig.la + endif + noinst_PROGRAMS = $(check_PROGRAMS) + ++check_PROGRAMS += + test_migration_LDADD = $(top_builddir)/src/libfontconfig.la + + EXTRA_DIST=$(check_SCRIPTS) $(TESTDATA) + diff --git a/media-libs/freetype/freetype-2.4.11.recipe b/media-libs/freetype/freetype-2.4.11.recipe deleted file mode 100644 index ff524a88f..000000000 --- a/media-libs/freetype/freetype-2.4.11.recipe +++ /dev/null @@ -1,24 +0,0 @@ -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.9.recipe b/media-libs/freetype/freetype-2.4.9.recipe index 1f3d233d6..83847869c 100644 --- a/media-libs/freetype/freetype-2.4.9.recipe +++ b/media-libs/freetype/freetype-2.4.9.recipe @@ -1,10 +1,14 @@ SUMMARY="A Free, High-Quality, and Portable Font Engine" -DESCRIPTION="FreeType is written in C, designed to be small, efficient, highly customizable, and portable while capable of producing high-quality output (glyph images) of most vector and bitmap font formats." +DESCRIPTION=" +FreeType is written in C, designed to be small, efficient, highly \ +customizable, and portable while capable of producing high-quality output \ +(glyph images) of most vector and bitmap font formats. +" HOMEPAGE="http://www.freetype.org" LICENSE="FreeType" COPYRIGHT="1996-2012 David Turner, Robert Wilhelm, Werner Lemberg, et al." SRC_URI="http://download.savannah.gnu.org/releases/freetype/freetype-2.4.9.tar.bz2" -CHECKSUM_MD5="77a893dae81fd5b896632715ca041179" +CHECKSUM_SHA256="c4204ac1d48e99d4375a2f32bf4f3f92780a9d9f015e64e57e852f6c004859b9" REVISION="3" ARCHITECTURES="x86_gcc2 x86 x86_64" SECONDARY_ARCHITECTURES="x86_gcc2 x86" diff --git a/media-libs/freetype/freetype-2.5.0.1.recipe b/media-libs/freetype/freetype-2.5.2.recipe similarity index 52% rename from media-libs/freetype/freetype-2.5.0.1.recipe rename to media-libs/freetype/freetype-2.5.2.recipe index 4d98521c2..804038989 100644 --- a/media-libs/freetype/freetype-2.5.0.1.recipe +++ b/media-libs/freetype/freetype-2.5.2.recipe @@ -1,56 +1,65 @@ SUMMARY="A Free, High-Quality, and Portable Font Engine" -DESCRIPTION="FreeType is written in C, designed to be small, efficient, highly customizable, and portable while capable of producing high-quality output (glyph images) of most vector and bitmap font formats." +DESCRIPTION=" +FreeType is written in C, designed to be small, efficient, highly \ +customizable, and portable while capable of producing high-quality output \ +(glyph images) of most vector and bitmap font formats. +" HOMEPAGE="http://www.freetype.org" LICENSE="FreeType" -COPYRIGHT="1996-2012 David Turner, Robert Wilhelm, Werner Lemberg, et al." -SRC_URI="http://download.savannah.gnu.org/releases/freetype/freetype-2.5.0.1.tar.bz2" -CHECKSUM_MD5="c72e9010b1d986d556fc0b2b5fcbf31a" -REVISION="1" -ARCHITECTURES="x86_gcc2 x86 x86_64" +COPYRIGHT="1996-2013 David Turner, Robert Wilhelm, Werner Lemberg, et al." +SRC_URI="http://download.savannah.gnu.org/releases/freetype/freetype-2.5.2.tar.bz2" +CHECKSUM_SHA256="4ff4bd393aa01071ec7b849d035508a505a78f88b2bcf25ff11e58e43c0b9def" +REVISION="3" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" SECONDARY_ARCHITECTURES="x86_gcc2 x86" PROVIDES=" freetype$secondaryArchSuffix = $portVersion - lib:libfreetype$secondaryArchSuffix = 6.8.1 compat >= 6 + lib:libfreetype$secondaryArchSuffix = 6.11.1 compat >= 6 " REQUIRES=" haiku$secondaryArchSuffix >= $haikuVersion + lib:libbz2$secondaryArchSuffix lib:libz$secondaryArchSuffix >= 1 lib:libpng$secondaryArchSuffix - devel:libbz2 " BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libbz2$secondaryArchSuffix devel:libz$secondaryArchSuffix + devel:libpng$secondaryArchSuffix " BUILD_PREREQUIRES=" - haiku${secondaryArchSuffix}_devel >= $haikuVersion - haiku_devel >= $haikuVersion cmd:aclocal cmd:autoconf cmd:automake cmd:gcc$secondaryArchSuffix cmd:ld$secondaryArchSuffix - cmd:libtoolize + cmd:libtool >= 2.4.2 cmd:make - devel:libpng + cmd:which " BUILD() { ./autogen.sh - runConfigure ./configure --without-png + runConfigure ./configure make $jobArgs } INSTALL() { - mkdir -p $includeDir/freetype2/freetype/cache - mkdir -p $includeDir/freetype2/freetype/internal make install prepareInstalledDevelLibs libfreetype fixPkgconfig + # Freetype headers are in a freetype2 subdirectory, but fixPkgconfig removes + # that from the pkg-config file, making it difficult for other ports to use + # freetype with pkg-config. + sed -i -e "s,^includedir=.*,includedir=$prefix/$relativeIncludeDir/freetype2," \ + $developLibDir/pkgconfig/freetype2.pc + # devel package packageEntries devel \ $binDir \ @@ -63,7 +72,7 @@ INSTALL() PROVIDES_devel=" freetype${secondaryArchSuffix}_devel = $portVersion cmd:freetype_config${secondaryArchSuffix} = $portVersion - devel:libfreetype${secondaryArchSuffix} = 6.8.1 compat >= 6 + devel:libfreetype${secondaryArchSuffix} = 6.11.1 compat >= 6 " REQUIRES_devel=" freetype${secondaryArchSuffix} == $portVersion base 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 deleted file mode 100644 index 407d769c7..000000000 --- a/media-libs/freetype/patches/freetype-2.4.9-with-subpixel-rendering-enabled.patch +++ /dev/null @@ -1,12 +0,0 @@ -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/gd/gd-2.1.recipe b/media-libs/gd/gd-2.1.recipe new file mode 100644 index 000000000..3094fafc9 --- /dev/null +++ b/media-libs/gd/gd-2.1.recipe @@ -0,0 +1,49 @@ +SUMMARY="GD is an open source library for the dynamic creation of images by programmers." +DESCRIPTION="GD is an open source library for the dynamic creation of images by programmers." +HOMEPAGE="http://www.libgd.org" +SRC_URI="https://bitbucket.org/libgd/gd-libgd/downloads/libgd-2.1.0.tar.xz" +CHECKSUM_SHA256="fa6665dfe3d898019671293c84d77067a3d2ede50884dbcb6df899d508370e5a" +REVISION="1" +COPYRIGHT="1999-2013 " +LICENSE="LIBGD" + +ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + gd = $portVersion + cmd:gd + " + +REQUIRES=" + haiku >= $haikuVersion + lib:libpng + lib:libjpeg + lib:libgif + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:gcc + cmd:cmake + cmd:make + " + +BUILD() +{ + echo libdir=$libDir + libtoolize --force --copy --install + aclocal -I config + autoconf + automake + runConfigure ./configure + make +} + +INSTALL() +{ + make install +} + diff --git a/media-libs/giflib/giflib-5.0.5.recipe b/media-libs/giflib/giflib-5.0.5.recipe new file mode 100644 index 000000000..b4a66d6d0 --- /dev/null +++ b/media-libs/giflib/giflib-5.0.5.recipe @@ -0,0 +1,86 @@ +DESCRIPTION=" +The GIFLIB project maintains the giflib service library, which has been pulling +images out of GIFs since 1989. It is deployed everywhere you can think of and +some places you probably can't - graphics applications and web browsers on +multiple operating systems, game consoles, smartphones, and likely your ATM too. + +This is very mature, stable, small-footprint code with minimal dependencies +(suitable for use in embedded deployments) that needs only occasional very +minor bugfixes. Test reports from odd platforms and better regression tests are +particularly welcome. Don't try to redesign it, applications beyond counting +would break if you did. + +It's \"GIFLIB\" in caps as a nod to the code's origins in the dark and backward +abysm of MS-DOS, but Unix hackers are encouraged to spell it \"giflib\" in +deference to local conventions. :-) +" +SUMMARY="giflib - A library for processing GIFs" +HOMEPAGE="http://sourceforge.net/projects/giflib/" +SRC_URI="http://sourceforge.net/projects/giflib/files/giflib-5.x/giflib-5.0.5.tar.bz2/download" +CHECKSUM_SHA256="606d8a366b1c625ab60d62faeca807a799a2b9e88cbdf2a02bfcdf4429bf8609" +LICENSE="MIT" +COPYRIGHT="1997-2007 Eric S. Raymond and Toshio Kuratomi" +REVISION="2" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + giflib$secondaryArchSuffix = $portVersion + lib:libgif$secondaryArchSuffix = 6.0.1 compat >= 6 + cmd:gif2raw$secondaryArchSuffix + cmd:gif2rgb$secondaryArchSuffix + cmd:gifbuild$secondaryArchSuffix + cmd:gifclrmp$secondaryArchSuffix + cmd:gifecho$secondaryArchSuffix + cmd:giffix$secondaryArchSuffix + cmd:gifinto$secondaryArchSuffix + cmd:giftext$secondaryArchSuffix + cmd:giftool$secondaryArchSuffix + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtool + cmd:aclocal + cmd:autoconf + cmd:make + " + +PATCHES="giflib-5.0.5.patch" + +BUILD() +{ + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libgif + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir +} + +PROVIDES_devel=" + giflib${secondaryArchSuffix}_devel = $portVersion compat >= 5 + devel:libgif$secondaryArchSuffix = 6.0.1 compat >= 6 + " + +REQUIRES_devel=" + giflib$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/giflib/patches/giflib-5.0.5.patch b/media-libs/giflib/patches/giflib-5.0.5.patch new file mode 100644 index 000000000..5e2efd0d7 --- /dev/null +++ b/media-libs/giflib/patches/giflib-5.0.5.patch @@ -0,0 +1,20 @@ +diff --git a/util/gifinto.c b/util/gifinto.c +index 911c793..e89388d 100644 +--- a/util/gifinto.c ++++ b/util/gifinto.c +@@ -49,6 +49,7 @@ static int + int main(int argc, char **argv) + { + int NumFiles; ++ int FD; + bool Error, MinSizeFlag = false, HelpFlag = false; + char **FileName = NULL, FoutTmpName[STRLEN], FullPath[STRLEN], *p; + FILE *Fin, *Fout; +@@ -104,7 +105,6 @@ int main(int argc, char **argv) + /* then add a name for the tempfile */ + if ( (strlen(FoutTmpName) + strlen(DEFAULT_TMP_NAME)) > STRLEN-1 ) GIF_EXIT("Filename too long."); + strcat(FoutTmpName, DEFAULT_TMP_NAME); +- int FD; + FD = mkstemp(FoutTmpName); /* returns filedescriptor */ + if (FD == -1 ) + { diff --git a/media-libs/glew/glew-1.10.0.recipe b/media-libs/glew/glew-1.10.0.recipe new file mode 100644 index 000000000..f50cf6bbf --- /dev/null +++ b/media-libs/glew/glew-1.10.0.recipe @@ -0,0 +1,83 @@ +SUMMARY="The OpenGL Extension Wrangler Library" +DESCRIPTION=" +The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source \ +C/C++ extension loading library. GLEW provides efficient run-time mechanisms \ +for determining which OpenGL extensions are supported on the target platform. +" +LICENSE="BSD (3-clause)" +COPYRIGHT=" + 2007 The Kronos Group Inc. + 2002-2007 Milan Ikits + 2002-2007 Marcelo E. Magallon + 2002 Lev Povalahev + " +HOMEPAGE="http://glew.sourceforge.net" +SRC_URI="http://downloads.sourceforge.net/project/glew/glew/${portVersion}/glew-${portVersion}.tgz" +CHECKSUM_SHA256="99c41320b63f6860869b5fb9af9a1854b15582796c64ee3dfd7096dc0c89f307" +REVISION="4" + +ARCHITECTURES="x86 ?x86_gcc2 ?x86_64" +SECONDARY_ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64" + +PATCHES="glew-1.10.0.patchset" + +PROVIDES=" + glew$secondaryArchSuffix = $portVersion + lib:libGLEW$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libGL$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libGL$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:g++$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +BUILD() +{ + make $jobArgs GLEW_DEST=$prefix BINDIR=$binDir LIBDIR=$libDir INCDIR=$includeDir +} + +INSTALL() +{ + make install GLEW_DEST=$prefix BINDIR=$binDir LIBDIR=$libDir INCDIR=$includeDir + make install.bin GLEW_DEST=$prefix BINDIR=$binDir LIBDIR=$libDir INCDIR=$includeDir + + prepareInstalledDevelLib libGLEW + fixPkgconfig + + packageEntries devel $developDir + packageEntries util $binDir +} + +# ----- devel package ------------------------------------- +PROVIDES_devel=" + glew${secondaryArchSuffix}_devel = $portVersion + devel:libGLEW$secondaryArchSuffix = $portVersion + " + +REQUIRES_devel=" + glew$secondaryArchSuffix == $portVersion base + " + +# ----- util package -------------------------------------- +PROVIDES_util=" + glew${secondaryArchSuffix}_util = $portVersion + cmd:glewinfo$secondaryArchSuffix + cmd:visualinfo$secondaryArchSuffix + " + +REQUIRES_util=" + glew$secondaryArchSuffix == $portVersion base + haiku$secondaryArchSuffix >= $haikuVersion + lib:libGL$secondaryArchSuffix + lib:libGLEW$secondaryArchSuffix + lib:libstdc++$secondaryArchSuffix + " diff --git a/media-libs/glew/glew-1.5.7.recipe b/media-libs/glew/glew-1.5.7.recipe deleted file mode 100644 index d3a352eb2..000000000 --- a/media-libs/glew/glew-1.5.7.recipe +++ /dev/null @@ -1,34 +0,0 @@ -DESCRIPTION="The OpenGL Extension Wrangler Library" -HOMEPAGE="http://glew.sourceforge.net" -SRC_URI="http://downloads.sourceforge.net/project/glew/glew/1.5.7/glew-1.5.7.tgz" -REVISION="1" -STATUS_HAIKU="broken" -DEPEND="" -CHECKSUM_MD5="f913ce9dbde4cd250b932731b3534ded" - -BUILD() -{ - cd glew-1.5.7 - make -} - -INSTALL() -{ - cd glew-1.5.7 - make install -} - -TEST() -{ - cd glew-1.5.7/bin - glewinfo - visualinfo -} - -LICENSE="BSD (3-clause) - MIT" - -COPYRIGHT="2007 The Kronos Group Inc. - 2002-2007 Milan Ikits - 2002-2007 Marcelo E. Magallon - 2002 Lev Povalahev" diff --git a/media-libs/glew/patches/glew-1.10.0.patchset b/media-libs/glew/patches/glew-1.10.0.patchset new file mode 100644 index 000000000..54c2fa3ef --- /dev/null +++ b/media-libs/glew/patches/glew-1.10.0.patchset @@ -0,0 +1,406 @@ +From 9e62b8084f970f94b9df86f0764284b042bf822b Mon Sep 17 00:00:00 2001 +From: Kacper Kasper +Date: Mon, 7 Apr 2014 16:48:59 +0200 +Subject: Haiku support + + +diff --git a/Makefile b/Makefile +index e6f08a7..24b9d22 100644 +--- a/Makefile ++++ b/Makefile +@@ -179,12 +179,15 @@ glewmx.pc: glew.pc.in + + # GLEW utility programs + +-BIN.LIBS = -Llib $(LDFLAGS.DYNAMIC) -l$(NAME) $(LDFLAGS.EXTRA) $(LDFLAGS.GL) ++BIN.LIBS = -Llib $(LDFLAGS.DYNAMIC) -l$(NAME) $(LDFLAGS.EXTRA) $(LDFLAGS.GL) -lbe -lstdc++ + + GLEWINFO.BIN := glewinfo$(BIN.SUFFIX) + GLEWINFO.BIN.SRC := src/glewinfo.c ++GLEWINFO.BIN.HAIKU := src/glewinfo_haiku.cpp + GLEWINFO.BIN.OBJ := $(addprefix tmp/$(SYSTEM)/default/shared/,$(notdir $(GLEWINFO.BIN.SRC))) + GLEWINFO.BIN.OBJ := $(GLEWINFO.BIN.OBJ:.c=.o) ++GLEWINFO.BIN.HAIKU_OBJ := $(addprefix tmp/$(SYSTEM)/default/shared/,$(notdir $(GLEWINFO.BIN.HAIKU))) ++GLEWINFO.BIN.HAIKU_OBJ := $(GLEWINFO.BIN.HAIKU_OBJ:.cpp=.o) + + VISUALINFO.BIN := visualinfo$(BIN.SUFFIX) + VISUALINFO.BIN.SRC := src/visualinfo.c +@@ -202,8 +205,8 @@ endif + bin: + mkdir bin + +-bin/$(GLEWINFO.BIN): $(GLEWINFO.BIN.OBJ) lib/$(LIB.SHARED) +- $(CC) $(CFLAGS) -o $@ $(GLEWINFO.BIN.OBJ) $(BIN.LIBS) ++bin/$(GLEWINFO.BIN): $(GLEWINFO.BIN.OBJ) $(GLEWINFO.BIN.HAIKU_OBJ) lib/$(LIB.SHARED) ++ $(CC) $(CFLAGS) -o $@ $(GLEWINFO.BIN.OBJ) $(GLEWINFO.BIN.HAIKU_OBJ) $(BIN.LIBS) + ifneq ($(STRIP),) + $(STRIP) -x $@ + endif +@@ -218,6 +221,10 @@ $(GLEWINFO.BIN.OBJ): $(GLEWINFO.BIN.SRC) include/GL/glew.h include/GL/wglew.h in + @mkdir -p $(dir $@) + $(CC) -DGLEW_NO_GLU $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< + ++$(GLEWINFO.BIN.HAIKU_OBJ): $(GLEWINFO.BIN.HAIKU) include/GL/glew.h include/GL/wglew.h include/GL/glxew.h ++ @mkdir -p $(dir $@) ++ $(CXX) -DGLEW_NO_GLU $(CXXFLAGS) $(CXXFLAGS.SO) -o $@ -c $< ++ + $(VISUALINFO.BIN.OBJ): $(VISUALINFO.BIN.SRC) include/GL/glew.h include/GL/wglew.h include/GL/glxew.h + @mkdir -p $(dir $@) + $(CC) -DGLEW_NO_GLU $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< +diff --git a/config/Makefile.haiku b/config/Makefile.haiku +new file mode 100644 +index 0000000..57bf3d6 +--- /dev/null ++++ b/config/Makefile.haiku +@@ -0,0 +1,30 @@ ++NAME = $(GLEW_NAME) ++CC = cc ++CXX = g++ ++LD = cc ++ifneq (undefined, $(origin GLEW_MX)) ++ CFLAGS.EXTRA = -DGLEW_MX ++endif ++ ++LDFLAGS.GL = -lGL ++LDFLAGS.STATIC = -Wl,-Bstatic ++LDFLAGS.DYNAMIC = -Wl,-Bdynamic ++ ++NAME = GLEW ++WARN = -Wall -W ++POPT = -O2 ++ ++BIN.SUFFIX = ++ ++LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) ++LIB.DEVLNK = lib$(NAME).so ++LIB.SHARED = lib$(NAME).so.$(SO_VERSION) ++LIB.STATIC = lib$(NAME).a ++LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME) ++ ++LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR) ++LIB.DEVLNK.MX = lib$(NAME)mx.so ++LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION) ++LIB.STATIC.MX = lib$(NAME)mx.a ++LDFLAGS.SO.MX = -shared -Wl,-soname=$(LIB.SONAME.MX) ++ +diff --git a/src/glew.c b/src/glew.c +index d075b52..daff07d 100644 +--- a/src/glew.c ++++ b/src/glew.c +@@ -33,7 +33,7 @@ + + #if defined(_WIN32) + # include +-#elif !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) ++#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) + # include + #endif + +@@ -66,7 +66,7 @@ + # define GLXEW_CONTEXT_ARG_DEF_LIST void + #endif /* GLEW_MX */ + +-#if defined(__sgi) || defined (__sun) || defined(GLEW_APPLE_GLX) ++#if defined(__sgi) || defined (__sun) || defined(GLEW_APPLE_GLX) || defined(__HAIKU__) + #include + #include + #include +@@ -162,7 +162,7 @@ void* NSGLGetProcAddress (const GLubyte *name) + # define glewGetProcAddress(name) wglGetProcAddress((LPCSTR)name) + #elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX) + # define glewGetProcAddress(name) NSGLGetProcAddress(name) +-#elif defined(__sgi) || defined(__sun) ++#elif defined(__sgi) || defined(__sun) || defined(__HAIKU__) + # define glewGetProcAddress(name) dlGetProcAddress(name) + #elif defined(__ANDROID__) + # define glewGetProcAddress(name) NULL /* TODO */ +@@ -12324,7 +12324,7 @@ GLenum GLEWAPIENTRY wglewContextInit (WGLEW_CONTEXT_ARG_DEF_LIST) + return GLEW_OK; + } + +-#elif !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) ++#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) + + PFNGLXGETCURRENTDISPLAYPROC __glewXGetCurrentDisplay = NULL; + +@@ -13432,7 +13432,7 @@ GLenum glxewContextInit (GLXEW_CONTEXT_ARG_DEF_LIST) + return GLEW_OK; + } + +-#endif /* !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) */ ++#endif /* !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) */ + + /* ------------------------------------------------------------------------ */ + +@@ -13472,7 +13472,7 @@ GLboolean glewExperimental = GL_FALSE; + + #if defined(_WIN32) + extern GLenum GLEWAPIENTRY wglewContextInit (void); +-#elif !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) ++#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) + extern GLenum GLEWAPIENTRY glxewContextInit (void); + #endif /* _WIN32 */ + +@@ -13483,7 +13483,7 @@ GLenum GLEWAPIENTRY glewInit (void) + if ( r != 0 ) return r; + #if defined(_WIN32) + return wglewContextInit(); +-#elif !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) /* _UNIX */ ++#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) /* _UNIX */ + return glxewContextInit(); + #else + return r; +@@ -17616,7 +17616,7 @@ GLboolean GLEWAPIENTRY wglewIsSupported (const char* name) + return ret; + } + +-#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX) ++#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX) + + #if defined(GLEW_MX) + GLboolean glxewContextIsSupported (const GLXEWContext* ctx, const char* name) +diff --git a/src/glewinfo.c b/src/glewinfo.c +index ad44f72..d65d702 100644 +--- a/src/glewinfo.c ++++ b/src/glewinfo.c +@@ -35,7 +35,7 @@ + #include + #if defined(_WIN32) + #include +-#elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX) ++#elif !defined(__APPLE__) && !defined(__HAIKU__) || defined(GLEW_APPLE_GLX) + #include + #endif + +@@ -51,7 +51,7 @@ GLEWContext _glewctx; + #ifdef _WIN32 + WGLEWContext _wglewctx; + #define wglewGetContext() (&_wglewctx) +-#elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX) ++#elif !defined(__APPLE__)&& !defined(__HAIKU__) || defined(GLEW_APPLE_GLX) + GLXEWContext _glxewctx; + #define glxewGetContext() (&_glxewctx) + #endif +@@ -59,7 +59,7 @@ GLXEWContext _glxewctx; + + #if defined(_WIN32) + GLboolean glewCreateContext (int* pixelformat); +-#elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX) ++#elif !defined(__APPLE__) && !defined(__HAIKU__) || defined(GLEW_APPLE_GLX) + GLboolean glewCreateContext (const char* display, int* visual); + #else + GLboolean glewCreateContext (); +@@ -10613,6 +10613,13 @@ void glewDestroyContext () + + /* ------------------------------------------------------------------------ */ + ++#elif defined(__HAIKU__) ++ ++extern GLboolean glewCreateContext (); ++extern void glewDestroyContext (); ++ ++/* ------------------------------------------------------------------------ */ ++ + #else /* __UNIX || (__APPLE__ && GLEW_APPLE_GLX) */ + + Display* dpy = NULL; +diff --git a/src/glewinfo_haiku.cpp b/src/glewinfo_haiku.cpp +new file mode 100644 +index 0000000..3d32d00 +--- /dev/null ++++ b/src/glewinfo_haiku.cpp +@@ -0,0 +1,93 @@ ++/* ++ * glewinfo Haiku glue code ++ * Copyright 2013 Kacper Kasper ++ * All rights reserved. Distributed under the terms of the MIT license. ++ */ ++ ++#include ++#include ++#include ++ ++class GLEWInfoView : public BGLView { ++public: ++ GLEWInfoView(BRect frame, uint32 type); ++ virtual void AttachedToWindow(void); ++ ++ void ContextInit() { LockGL(); } ++ void ContextDestroy() { UnlockGL(); } ++}; ++ ++GLEWInfoView::GLEWInfoView(BRect frame, uint32 type) ++ : BGLView(frame, "GLEWInfoView", B_FOLLOW_ALL_SIDES, 0, type) ++{ ++} ++ ++void GLEWInfoView::AttachedToWindow(void) ++{ ++ LockGL(); ++ BGLView::AttachedToWindow(); ++ UnlockGL(); ++} ++ ++class GLEWInfoWindow : public BWindow { ++public: ++ GLEWInfoWindow(BRect frame, uint32 type); ++ virtual bool QuitRequested(); ++ ++private: ++ GLEWInfoView *view; ++}; ++ ++GLEWInfoWindow::GLEWInfoWindow(BRect frame, uint32 type) ++ : BWindow(frame, "GLEWInfoWindow", B_TITLED_WINDOW, B_QUIT_ON_WINDOW_CLOSE) ++{ ++ AddChild(view = new GLEWInfoView(Bounds(), type)); ++ view->ContextInit(); ++} ++ ++bool GLEWInfoWindow::QuitRequested() ++{ ++ view->ContextDestroy(); ++ ++ view->RemoveSelf(); ++ ++ delete view; ++ ++ return true; ++} ++ ++class GLEWInfoApp : public BApplication ++{ ++public: ++ GLEWInfoApp(); ++ ~GLEWInfoApp(); ++ ++private: ++ GLEWInfoWindow *window; ++}; ++ ++GLEWInfoApp::GLEWInfoApp() ++ : BApplication("application/x-vnd.glew-GLEWInfo") ++{ ++ BRect rect = BRect(0, 0, 1, 1); ++ window = new GLEWInfoWindow(rect, BGL_RGB | BGL_DOUBLE); ++} ++ ++GLEWInfoApp::~GLEWInfoApp() ++{ ++ window->Quit(); ++} ++ ++GLEWInfoApp *app; ++ ++extern "C" GLboolean glewCreateContext () ++{ ++ app = new GLEWInfoApp(); ++ ++ return GL_FALSE; ++} ++ ++extern "C" void glewDestroyContext () ++{ ++ delete app; ++} +diff --git a/src/visualinfo.c b/src/visualinfo.c +index b8bb59e..742fdd6 100644 +--- a/src/visualinfo.c ++++ b/src/visualinfo.c +@@ -37,7 +37,7 @@ + #include + #elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX) + #include +-#else ++#elif !defined(__HAIKU__) + #include + #endif + +@@ -47,7 +47,7 @@ GLEWContext _glewctx; + # ifdef _WIN32 + WGLEWContext _wglewctx; + # define wglewGetContext() (&_wglewctx) +-# elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX) ++# elif !defined(__APPLE__) && !defined(__HAIKU__) || defined(GLEW_APPLE_GLX) + GLXEWContext _glxewctx; + # define glxewGetContext() (&_glxewctx) + # endif +@@ -61,7 +61,7 @@ typedef struct GLContextStruct + HGLRC rc; + #elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX) + AGLContext ctx, octx; +-#else ++#elif !defined(__HAIKU__) + Display* dpy; + XVisualInfo* vi; + GLXContext ctx; +@@ -129,7 +129,7 @@ main (int argc, char** argv) + err = glewContextInit(glewGetContext()); + # ifdef _WIN32 + err = err || wglewContextInit(wglewGetContext()); +-# elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX) ++# elif !defined(__APPLE__) && !defined(__HAIKU__) || defined(GLEW_APPLE_GLX) + err = err || glxewContextInit(glxewGetContext()); + # endif + #else +@@ -182,6 +182,8 @@ main (int argc, char** argv) + } + #elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX) + ++#elif defined(__HAIKU__) ++ + #else + /* GLX extensions */ + fprintf(file, "GLX extensions (GLX_): \n"); +@@ -598,6 +600,16 @@ VisualInfo (GLContext* ctx) + */ + } + ++/* ---------------------------------------------------------------------- */ ++ ++#elif defined(__HAIKU__) ++ ++void ++VisualInfo (GLContext* ctx) ++{ ++ // TODO ++} ++ + #else /* GLX */ + + void +@@ -1074,6 +1086,31 @@ void DestroyContext (GLContext* ctx) + + /* ------------------------------------------------------------------------ */ + ++#elif defined(__HAIKU__) ++ ++void ++InitContext (GLContext* ctx) ++{ ++ // TODO ++} ++ ++ ++GLboolean ++CreateContext (GLContext* ctx) ++{ ++ // TODO ++ return GL_FALSE; ++} ++ ++ ++void ++DestroyContext (GLContext* ctx) ++{ ++ // TODO ++} ++ ++/* ------------------------------------------------------------------------ */ ++ + #else /* __UNIX || (__APPLE__ && GLEW_APPLE_GLX) */ + + void InitContext (GLContext* ctx) +-- +1.8.3.4 + diff --git a/media-libs/guilib/guilib-1.2.1.recipe b/media-libs/guilib/guilib-1.2.1.recipe index f95c87490..3533dac45 100644 --- a/media-libs/guilib/guilib-1.2.1.recipe +++ b/media-libs/guilib/guilib-1.2.1.recipe @@ -1,29 +1,78 @@ -DESCRIPTION="GUIlib is a simple GUI framework for SDL" +SUMMARY="A simple GUI framework for SDL" +DESCRIPTION=" +GUIlib is a very simple GUI library for SDL. It provides some general widgets \ +like button, scrollbar, and image. +" HOMEPAGE="http://www.libsdl.org/projects/GUIlib/" SRC_URI="http://www.libsdl.org/projects/GUIlib/src/GUIlib-1.2.1.tar.gz" -CHECKSUM_MD5="a0114b925d79d6c66161e24cbeaa88b1" +CHECKSUM_SHA256="3b383e537238048f4712395a38b9e3c65475d1dc93413e557f1b0a39c88f68df" +LICENSE="Public Domain" +COPYRIGHT="Public Domain" + REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + guilib$secondaryArchSuffix = $portVersion compat >= 1.2 + lib:libGUI$secondaryArchSuffix = 1.2_0.0.1 compat >= 1.2_0 + lib:libGUI_1.2$secondaryArchSuffix = 0.0.1 compat >= 0 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libsdl$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libsdl$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:libtool + cmd:aclocal + cmd:autoconf + cmd:make + " + +SOURCE_DIR="GUIlib-$portVersion" + BUILD() { - cd GUIlib-1.2.1 - rm aclocal.m4 - rm acinclude.m4 + rm -f aclocal.m4 + rm -f acinclude.m4 echo "AC_CONFIG_MACRO_DIR([m4])" >> configure.in libtoolize -fci aclocal --install -I m4 ./autogen.sh - ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --libdir=`finddir B_COMMON_LIB_DIRECTORY` \ - --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man - make + + runConfigure ./configure + make $jobArgs } INSTALL() { - cd GUIlib-1.2.1 make install + + prepareInstalledDevelLibs libGUI \ + libGUI-1.2 + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir } -#LICENSE="Public Domain" +# ----- devel package ----------------------------------------- + +PROVIDES_devel=" + guilib${secondaryArchSuffix}_devel = $portVersion compat >= 1.2 + devel:libGUI$secondaryArchSuffix = 1.2_0.0.1 compat >= 1.2_0 + devel:libGUI_1.2$secondaryArchSuffix = 0.0.1 compat >= 0 + " +REQUIRES_devel=" + guilib$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/ilmbase/ilmbase-2.1.0.recipe b/media-libs/ilmbase/ilmbase-2.1.0.recipe new file mode 100644 index 000000000..0cfc787f9 --- /dev/null +++ b/media-libs/ilmbase/ilmbase-2.1.0.recipe @@ -0,0 +1,93 @@ +DESCRIPTION=" +IlmBase provides base libraries for OpenEXR. It contains five \ +modules. Half encapsulates 16-bit floating-point format. IlmThread \ +is thread abstraction library which currently supports pthreads and \ +Windows threads. Imath implements 2D and 3D vectors, 3x3 and 4x4 \ +matrices, quaternions and other useful math functions. Iex is an \ +exception-handling library. There is also IexMath module. +" +SUMMARY="OpenEXR ILM Base libraries" +HOMEPAGE="http://www.openexr.com" +LICENSE="BSD (3-clause)" +COPYRIGHT="2002-2011 Industrial Light & Magic" +SRC_URI="http://download.savannah.nongnu.org/releases/openexr/ilmbase-2.1.0.tar.gz" +CHECKSUM_SHA256="1e841ad89c5761940b07a125e6909ad22fe9fe0f99eadef45e0cca4efc6819b4" +REVISION="1" + +ARCHITECTURES="x86 ?x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86 ?x86_64" + +PATCHES="ilmbase-2.1.0.patch" + +PROVIDES=" + ilmbase$secondaryArchSuffix = $portVersion + lib:libilmbase$secondaryArchSuffix = $portVersion + lib:libHalf$secondaryArchSuffix = $portVersion + lib:libIex_2_1$secondaryArchSuffix = $portVersion + lib:libIexMath_2_1$secondaryArchSuffix = $portVersion + lib:libIlmThread_2_1$secondaryArchSuffix = $portVersion + lib:libImath_2_1$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:which + cmd:autoconf + cmd:aclocal + cmd:libtoolize + " + +BUILD() +{ + ./bootstrap + runConfigure ./configure + make +} + +INSTALL() +{ + make install + + # prepare development lib links + prepareInstalledDevelLibs libHalf libIex libIexMath libIlmThread \ + libImath libIex-2_1 libIexMath-2_1 libIlmThread-2_1 libImath-2_1 + + fixPkgconfig + + # devel package + packageEntries devel $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + ilmbase${secondaryArchSuffix}_devel = $portVersion + devel:libilmbase$secondaryArchSuffix = $portVersion + devel:libHalf$secondaryArchSuffix = $portVersion + devel:libIex_2_1$secondaryArchSuffix = $portVersion + devel:libIexMath_2_1$secondaryArchSuffix = $portVersion + devel:libIlmThread_2_1$secondaryArchSuffix = $portVersion + devel:libImath_2_1$secondaryArchSuffix = $portVersion + devel:libIex$secondaryArchSuffix = $portVersion + devel:libIexMath$secondaryArchSuffix = $portVersion + devel:libIlmThread$secondaryArchSuffix = $portVersion + devel:libImath$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + ilmbase$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/ilmbase/patches/ilmbase-2.1.0.patch b/media-libs/ilmbase/patches/ilmbase-2.1.0.patch new file mode 100644 index 000000000..83627aede --- /dev/null +++ b/media-libs/ilmbase/patches/ilmbase-2.1.0.patch @@ -0,0 +1,13 @@ +diff --git a/configure.ac b/configure.ac +index 743fc1f..30ca197 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -10,7 +10,7 @@ AC_SUBST(ILMBASE_VERSION_API, ${ILMBASE_VERSION_MAJOR}_${ILMBASE_VERSION_MINOR}) + + AC_CANONICAL_HOST + AC_CONFIG_SRCDIR(ImathTest/main.cpp) +-AM_CONFIG_HEADER(config/IlmBaseConfig.h) ++AC_CONFIG_HEADER(config/IlmBaseConfig.h) + AM_INIT_AUTOMAKE(1.6.3) dnl Require automake 1.6.3 or better + AM_MAINTAINER_MODE + diff --git a/media-libs/im/im-3.8.recipe b/media-libs/im/im-3.8.recipe new file mode 100644 index 000000000..c0de5b612 --- /dev/null +++ b/media-libs/im/im-3.8.recipe @@ -0,0 +1,132 @@ +SUMMARY="IM is a toolkit for Digital Imaging." +HOMEPAGE="http://www.tecgraf.puc-rio.br/im/" +SRC_URI="http://freefr.dl.sourceforge.net/project/imtoolkit/3.8.1/Docs%20and%20Sources/im-3.8.1_Sources.tar.gz" +CHECKSUM_SHA256="bf005ec22d240382dacd047ac4ed82110cfb702f8dc4ce3607059ecec60a78c8" +REVISION="1" +ARCHITECTURES="x86_gcc2" +SECONDARY_ARCHITECTURES="x86" +PROVIDES=" + im$secondaryArchSuffix = $portVersion + lib:libim$secondaryArchSuffix = $portVersion + lib:libim_fftw$secondaryArchSuffix = $portVersion + lib:libim_jp2$secondaryArchSuffix = $portVersion + lib:libim_process$secondaryArchSuffix = $portVersion + lib:libim_process_omp$secondaryArchSuffix = $portVersion + + lib:libimlua51$secondaryArchSuffix = $portVersion + lib:libimlua_fftw51$secondaryArchSuffix = $portVersion + lib:libimlua_jp251$secondaryArchSuffix = $portVersion + lib:libimlua_process51$secondaryArchSuffix = $portVersion + lib:libimlua_process_omp51$secondaryArchSuffix = $portVersion + + lib:libimlua52$secondaryArchSuffix = $portVersion + lib:libimlua_fftw52$secondaryArchSuffix = $portVersion + lib:libimlua_jp252$secondaryArchSuffix = $portVersion + lib:libimlua_process52$secondaryArchSuffix = $portVersion + lib:libimlua_process_omp52$secondaryArchSuffix = $portVersion +" + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libz$secondaryArchSuffix +" + +BUILD_REQUIRES=" + devel:liblua$secondaryArchSuffix + devel:libz$secondaryArchSuffix +" + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:as$secondaryArchSuffix + cmd:make + cmd:which +" + +SOURCE_DIR="im" +PATCHES="im-3.8.patchset" +BUILD() +{ + cd src + make +} + +INSTALL() +{ + mkdir -p $developLibDir + mkdir -p $libDir + mkdir -p $includeDir + + cp lib/Haiku11/* $libDir + cp include/* $includeDir + + prepareInstalledDevelLibs libim libim_fftw libim_jp2 libim_process \ + libim_process_omp libimlua51 libimlua_fftw51 libimlua_jp251 \ + libimlua_process51 libimlua_process_omp51 libimlua52 libimlua_fftw52 \ + libimlua_jp252 libimlua_process52 libimlua_process_omp52 + + packageEntries devel $developDir +} + +TEST() +{ + ln -s ../../lib/Haiku11 bin/Haiku11/lib + cd test + make -f ../tecmake.mak MF=im_info + ! ../bin/Haiku11/im_info `finddir B_SYSTEM_DEVELOP_DIRECTORY`/sample-code/pdflib/data/nesrin.jpg + + make -f ../tecmake.mak MF=im_copy + ! ../bin/Haiku11/im_copy `finddir B_SYSTEM_DEVELOP_DIRECTORY`/sample-code/pdflib/data/nesrin.jpg nesrin.jpg + + # Requires cd and iup. + # make -f ../tecmake.mak MF=im_view + # ../bin/Haiku11/im_view +} + +PROVIDES_devel=" + im${secondaryArchSuffix}_devel = $portVersion + devel:libim$secondaryArchSuffix = $portVersion + devel:libim_fftw$secondaryArchSuffix = $portVersion + devel:libim_jp2$secondaryArchSuffix = $portVersion + devel:libim_process$secondaryArchSuffix = $portVersion + devel:libim_process_omp$secondaryArchSuffix = $portVersion + + devel:libimlua51$secondaryArchSuffix = $portVersion + devel:libimlua_fftw51$secondaryArchSuffix = $portVersion + devel:libimlua_jp251$secondaryArchSuffix = $portVersion + devel:libimlua_process51$secondaryArchSuffix = $portVersion + devel:libimlua_process_omp51$secondaryArchSuffix = $portVersion + + devel:libimlua52$secondaryArchSuffix = $portVersion + devel:libimlua_fftw52$secondaryArchSuffix = $portVersion + devel:libimlua_jp252$secondaryArchSuffix = $portVersion + devel:libimlua_process52$secondaryArchSuffix = $portVersion + devel:libimlua_process_omp52$secondaryArchSuffix = $portVersion +" + +REQUIRES_devel=" + im$secondaryArchSuffix == $portVersion base +" + +LICENSE="MIT" +COPYRIGHT="1994-2012 Tecgraf, PUC-Rio." +DESCRIPTION=" +IM is a toolkit for Digital Imaging. IM is based on 4 concepts: Image \ +Representation, Storage, Processing and Capture. Image Visualization is a task \ +that it is left for a graphics library. +It provides support for image capture, several image file formats and many \ +image processing operations. The most popular file formats are supported: \ +TIFF, BMP, PNG, JPEG, GIF and AVI. +Image representation includes scientific data types (like IEEE floating point \ +data) and attributes (or metadata like GeoTIFF and Exif tags). Animation, \ +video and volumes are supported as image sequences, but there is no digital \ +audio support. +The main goal of the library is to provide a simple API and abstraction of \ +images for scientific applications. +The toolkit API is written in C. The core library source code is implemented \ +in C++ and it is very portable, it can be compiled in Windows and UNIX with no \ +modifications. New image processing operations can be implemented in C or in \ +C++. +IM is free software, can be used for public and commercial applications. +" diff --git a/media-libs/im/patches/im-3.8.patchset b/media-libs/im/patches/im-3.8.patchset new file mode 100644 index 000000000..b350b4e93 --- /dev/null +++ b/media-libs/im/patches/im-3.8.patchset @@ -0,0 +1,149 @@ +From 40fa92950357dfe54b1daf2306dda354110f26ef Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Thu, 14 Nov 2013 21:46:53 +0100 +Subject: Make tecmake aware of Haiku and the lack of libm. + + +diff --git a/tec_uname b/tec_uname +index cc89349..fc982e0 100755 +--- a/tec_uname ++++ b/tec_uname +@@ -148,6 +148,11 @@ ComputeSystemPaths() + + TEC_SYSTEM_INC=/usr/include + ++ if [ $TEC_SYSNAME == Haiku ]; then ++ TEC_SYSTEM_LIB=`finddir B_SYSTEM_LIB_DIRECTORY` ++ TEC_SYSTEM_INC=`finddir B_SYSTEM_HEADERS_DIRECTORY` ++ fi ++ + TEC_LUA_LIB=$TEC_SYSTEM_LIB/lua/$LUA_VER + } + +diff --git a/tecmake.mak b/tecmake.mak +index f799a07..c955869 100755 +--- a/tecmake.mak ++++ b/tecmake.mak +@@ -26,6 +26,9 @@ ifndef TEC_UNAME + TEC_SYSARCH:=$(shell uname -m) + + # Fixes ++ ifeq ($(TEC_SYSNAME), Haiku) ++ TEC_SYSARCH:=$(shell uname -p) ++ endif + ifeq ($(TEC_SYSNAME), SunOS) + TEC_SYSARCH:=$(shell uname -p) + endif +@@ -526,6 +529,11 @@ ifneq ($(findstring Linux, $(TEC_UNAME)), ) + endif + endif + ++ifneq ($(findstring Haiku, $(TEC_UNAME)), ) ++ UNIX_POSIX = Yes ++ STDLDFLAGS := -shared -Wl,-soname=lib$(TARGETNAME).so ++endif ++ + ifneq ($(findstring IRIX, $(TEC_UNAME)), ) + UNIX_POSIX = Yes + ifndef NO_LOCAL_LD +@@ -1177,7 +1185,9 @@ ifdef USE_X11 + STDINCS += $(X11_INC) + endif + +-LIBS += m ++ifneq "$(TEC_SYSNAME)" "Haiku" ++ LIBS += m ++endif + + ifneq ($(findstring cygw, $(TEC_UNAME)), ) + WIN_OTHER := Yes +-- +1.8.3.4 + + +From 42565b425877585c937807201a9a0766f4286977 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 17 Nov 2013 13:11:00 +0100 +Subject: im: do not build zlib and use system one. + +Also adjust the tests to look for the system zlib. + +diff --git a/src/Makefile b/src/Makefile +index 12153b5..11d90ed 100755 +--- a/src/Makefile ++++ b/src/Makefile +@@ -7,7 +7,7 @@ endif + + .PHONY: do_all im_zlib im im_jp2 im_process im_fftw imlua3 imlua5 imlua_jp2 imlua_process5 imlua_fftw5 $(WINLIBS) + #do_all: im im_jp2 im_process im_fftw imlua3 imlua5 imlua_jp2 imlua_process5 imlua_fftw5 +-do_all: im_zlib im im_jp2 im_process im_process_omp im_fftw imlua5 imlua_jp2 imlua_process5 imlua_process_omp5 imlua_fftw5 $(WINLIBS) ++do_all: im im_jp2 im_process im_process_omp im_fftw imlua5 imlua_jp2 imlua_process5 imlua_process_omp5 imlua_fftw5 $(WINLIBS) + + im_zlib: + @$(TECMAKE_CMD) MF=im_zlib +diff --git a/test/im_copy.mak b/test/im_copy.mak +index 15867ee..fe4bbb5 100755 +--- a/test/im_copy.mak ++++ b/test/im_copy.mak +@@ -8,8 +8,6 @@ USE_IM = Yes + + IM = .. + +-USE_STATIC = Yes +- + ifneq ($(findstring Win, $(TEC_SYSNAME)), ) + LIBS = im_wmv im_avi vfw32 wmvcore + endif +diff --git a/test/im_info.mak b/test/im_info.mak +index 211e7af..32aeabb 100755 +--- a/test/im_info.mak ++++ b/test/im_info.mak +@@ -7,5 +7,3 @@ SRC = im_info.cpp + USE_IM = Yes + + IM = .. +- +-USE_STATIC = Yes +diff --git a/test/im_view.mak b/test/im_view.mak +index 45e4363..66699c7 100644 +--- a/test/im_view.mak ++++ b/test/im_view.mak +@@ -10,5 +10,3 @@ USE_IUP3 = Yes + USE_IM = Yes + + IM = .. +- +-USE_STATIC = Yes +-- +1.8.3.4 + + +From 7345811a3dc6a7f47efb0c47df974ca2f8ede0d8 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 17 Nov 2013 14:19:01 +0100 +Subject: Fix off-by-one error in im_copy test. + + +diff --git a/test/im_copy.cpp b/test/im_copy.cpp +old mode 100755 +new mode 100644 +index f664ad2..c6d70d6 +--- a/test/im_copy.cpp ++++ b/test/im_copy.cpp +@@ -74,11 +74,11 @@ int main(int argc, char* argv[]) + int image_count; + imFileGetInfo(ifile, format, compression, &image_count); + +- ofile = imFileNew(argv[2], (argc < 3)? format: argv[3], &error); ++ ofile = imFileNew(argv[2], (argc < 4)? format: argv[3], &error); + if (!ofile) + goto man_error; + +- if (argc < 4) ++ if (argc < 5) + imFileSetInfo(ofile, compression); + else + imFileSetInfo(ofile, argv[4]); +-- +1.8.3.4 + diff --git a/media-libs/jasper/jasper-1.900.1.recipe b/media-libs/jasper/jasper-1.900.1.recipe index dee1e1aec..29ca2f471 100644 --- a/media-libs/jasper/jasper-1.900.1.recipe +++ b/media-libs/jasper/jasper-1.900.1.recipe @@ -1,26 +1,106 @@ -DESCRIPTION="jasper - software-based implementation of the codec specified in the JPEG-2000 Part-1 standard" -HOMEPAGE="http://www.ece.uvic.ca/~mdadams/jasper/" +SUMMARY="Implementation of the codec specified in the JPEG-2000 Part-1 standard." +DESCRIPTION=" +The JasPer Project is an open-source initiative to provide a free \ +software-based reference implementation of the codec specified in the \ +JPEG-2000 Part-1 standard. More details about this software can be found in \ +the JasPer Software Reference Manual. +" +HOMEPAGE="http://www.ece.uvic.ca/~mdadams/jasper/" SRC_URI="http://www.ece.uvic.ca/~mdadams/jasper/software/jasper-1.900.1.zip" +CHECKSUM_SHA256="6b905a9c2aca2e275544212666eefc4eb44d95d0a57e4305457b407fe63f9494" REVISION="1" -STATUS_HAIKU="stable" -CHECKSUM_MD5="a342b2b4495b3e1394e161eb5d85d754" -DEPEND="" + +LICENSE="JasPer v2" +COPYRIGHT="1999-2007 Michael D. Adams" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + jasper$secondaryArchSuffix = $portVersion compat >= 1.0.0 + lib:libjasper$secondaryArchSuffix = $portVersion compat >= 1.0.0 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:mkdepend + cmd:libtoolize + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:chmod + " + + + BUILD() { - cd jasper-1.900.1 libtoolize --force --copy --install aclocal -I acaux autoconf automake chmod 777 configure - ./configure --prefix=`finddir B_COMMON_DIRECTORY` --enable-shared + runConfigure ./configure --enable-shared make } INSTALL() { - cd jasper-1.900.1 make install + + prepareInstalledDevelLibs libjasper + + # devel package + packageEntries devel \ + $developDir + + # tools package + if [ -z "$secondaryArchSuffix" ]; then + packageEntries tools \ + $binDir \ + $documentationDir + fi + + # Remove stuff we don't need in the secondary architecture base package. + if [ -n "$secondaryArchSuffix" ]; then + rm -rf $binDir + rm -rf $documentationDir + fi } -LICENSE="JasPer v2" -COPYRIGHT="1999-2007 Michael D. Adams" + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + jasper${secondaryArchSuffix}_devel = $portVersion + devel:libjasper$secondaryArchSuffix = $portVersion + " + +REQUIRES_devel=" + jasper$secondaryArchSuffix == $portVersion base + " + +# ----- tools package ------------------------------------------------------- + +if [ -z "$secondaryArchSuffix" ]; then + SUMMARY_tools="The jasper tools" + PROVIDES_tools=" + jasper_tools$secondaryArchSuffix = $portVersion + cmd:imgcmp$secondaryArchSuffix = $portVersion + cmd:imginfo$secondaryArchSuffix = $portVersion + cmd:jasper$secondaryArchSuffix = $portVersion + cmd:tmrdemo$secondaryArchSuffix = $portVersion + " + REQUIRES_tools=" + jasper$secondaryArchSuffix == $portVersion base + " +fi diff --git a/media-libs/jbig2dec/jbig2dec-0.11.recipe b/media-libs/jbig2dec/jbig2dec-0.11.recipe index 3103fbe4f..df2951fee 100644 --- a/media-libs/jbig2dec/jbig2dec-0.11.recipe +++ b/media-libs/jbig2dec/jbig2dec-0.11.recipe @@ -1,26 +1,77 @@ -DESCRIPTION="jbig2dec is a decoder implementation of the JBIG2 image compression format" +SUMMARY="A decoder implementation of the JBIG2 image format" +DESCRIPTION=" +jbig2dec is a decoder implementation of the JBIG2 image compression format. \ +JBIG2 is designed for lossy or lossless encoding of 'bilevel' (1-bit \ +monochrome) images at moderately high resolution, and in particular scanned \ +paper documents. In this domain it is very efficient, offering compression \ +ratios on the order of 100:1. +" HOMEPAGE="http://jbig2dec.sourceforge.net/" SRC_URI="http://sourceforge.net/projects/jbig2dec/files/jbig2dec/0.11/jbig2dec-0.11.tar.gz" -CHECKSUM_MD5="1f61e144852c86563fee6e5ddced63f1" +CHECKSUM_SHA256="7e2d8330b36f2765da22043d174827bee0f30db8d78c330904f363275c7dd0b9" +LICENSE="GNU GPL v3" +COPYRIGHT="2001-2009 Artifex Software, Inc." REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + jbig2dec$secondaryArchSuffix = $portVersion compat >= 0 + cmd:jbig2dec$secondaryArchSuffix = $portVersion compat >= 0 + lib:libjbig2dec$secondaryArchSuffix = $portVersion compat >= 0 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:libtoolize + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:m4 + cmd:ar$secondaryArchSuffix + " + +PROVIDES_devel=" + jbig2dec${secondaryArchSuffix}_devel = $portVersion compat >= 0 + devel:libjbig2dec$secondaryArchSuffix = $portVersion compat >= 0 + " + +REQUIRES_devel=" + jbig2dec$secondaryArchSuffix == $portVersion + " + +PATCHES="jbig2dec-0.11.patchset" + +SOURCE_DIR="jbig2dec-0.11" + BUILD() { - cd jbig2dec-0.11 libtoolize --force --copy --install aclocal + automake --add-missing autoconf - ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man - make + runConfigure ./configure + make $jobArgs } INSTALL() { - cd jbig2dec-0.11 make install -} -LICENSE="GNU GPL v3" -COPYRIGHT="2001-2009 Artifex Software, Inc." + prepareInstalledDevelLibs libjbig2dec + + packageEntries devel $developDir +} diff --git a/media-libs/jbig2dec/patches/jbig2dec-0.11.patchset b/media-libs/jbig2dec/patches/jbig2dec-0.11.patchset new file mode 100644 index 000000000..399e97892 --- /dev/null +++ b/media-libs/jbig2dec/patches/jbig2dec-0.11.patchset @@ -0,0 +1,22 @@ +From b90c4388ae17eb7198d0ef73b4772f2b13aa199b Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Sun, 17 Nov 2013 22:50:08 -0700 +Subject: Change macro to AC_CONFIG_HEADERS + + +diff --git a/configure.ac b/configure.ac +index e9dd8ee..6302f69 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5,7 +5,7 @@ AC_PREREQ(2.53) + AC_CONFIG_SRCDIR([jbig2dec.c]) + + AM_INIT_AUTOMAKE([-Wall]) +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADERS([config.h]) + + dnl Library versioning - Adapted from the libtool info page + dnl +-- +1.8.3.4 + diff --git a/media-libs/jgmod/jgmod-0.99.recipe b/media-libs/jgmod/jgmod-0.99.recipe index a5b1bcb32..7907ab95d 100644 --- a/media-libs/jgmod/jgmod-0.99.recipe +++ b/media-libs/jgmod/jgmod-0.99.recipe @@ -1,16 +1,40 @@ -DESCRIPTION="jgmod is a MOD music playing add-on library for Allegro" +SUMMARY="jgmod is a MOD music playing add-on library for Allegro" +DESCRIPTION=" +JGMOD is a mod library for MOD musics. It is built on top of Allegro lower +level digital sound routines. Currently supports MOD, S3M, XM, Unreal +S3M (in UMX extension), and JGM under DJGPP, Mingw32, MSVC, Linux and BEOS. +" + 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" +CHECKSUM_SHA256="5d34c446904ddf2c6e3ee2272e6d4a9e6b1b4e59701237c5f4c961999623c77a" +SRC_FILENAME="jgmod-$portVersion.zip" REVISION="2" -STATUS_HAIKU="stable" -DEPEND="media-libs/allegro >= 4.4" -CHECKSUM_MD5="0e6e540ffadced9283251a7f86c106fe" +ARCHITECTURES="x86_gcc2" +PROVIDES=" + jgmod = $portVersion + lib:libjgmod + " +REQUIRES=" + lib:liballeg >= 4.4 + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:liballeg + " +BUILD_PREREQUIRES=" + cmd:find + cmd:gcc + cmd:make + " + +SOURCE_DIR="jgmod" BUILD() { - cd jgmod chmod 777 ./fixbe.sh ./fixbe.sh cd src @@ -19,16 +43,18 @@ BUILD() INSTALL() { - cd jgmod/src - if [ -n ${DESTDIR} ];then - mkdir -p ${DESTDIR}/boot/common/lib - mkdir -p ${DESTDIR}/boot/common/include - make install \ - CPLIBDEST=${DESTDIR}/boot/common/lib \ - CPINCDEST=${DESTDIR}/boot/common/include - else - make install \ - CPLIBDEST=/boot/common/lib \ - CPINCDEST=/boot/common/include - fi + cd src + mkdir -p $libDir $includeDir + make install CPLIBDEST=$libDir CPINCDEST=$includeDir + + prepareInstalledDevelLib libjgmod + packageEntries devel $developDir } + +PROVIDES_devel=" + devel:libjgmod + " + +REQUIRES_devel=" + jgmod == $portVersion base + " diff --git a/media-libs/jpeg/jpeg-8d.recipe b/media-libs/jpeg/jpeg-8d.recipe index 400231715..d2cbbe6f0 100644 --- a/media-libs/jpeg/jpeg-8d.recipe +++ b/media-libs/jpeg/jpeg-8d.recipe @@ -1,29 +1,107 @@ -DESCRIPTION="jpeg" -HOMEPAGE="http://www.ijg.org" +SUMMARY="JPEG image compression library and tools" +DESCRIPTION=" +This package contains C software to implement JPEG image encoding, decoding, \ +and transcoding. JPEG is a standardized compression method for full-color and \ +gray-scale images. +The distributed programs provide conversion between JPEG "JFIF" format and \ +image files in PBMPLUS PPM/PGM, GIF, BMP, and Targa file formats. The core \ +compression and decompression library can easily be reused in other programs, \ +such as image viewers. The package is highly portable C code; we have tested \ +it on many machines ranging from PCs to Crays. +" +HOMEPAGE="http://www.ijg.org" +LICENSE="JPEG" +COPYRIGHT="1991-2013, Thomas G. Lane, Guido Vollbeding. All Rights Reserved" SRC_URI="http://www.ijg.org/files/jpegsrc.v8d.tar.gz" -CHECKSUM_MD5="52654eb3b2e60c35731ea8fc87f1bd29" +CHECKSUM_SHA256="00029b1473f0f0ea72fbca3230e8cb25797fbb27e58ae2e46bb8bf5a806fe0b3" REVISION="2" -STATUS_HAIKU="stable" -DEPEND="" +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 ?x86" + +PATCHES="jpeg-8d.patch" + +PROVIDES=" + jpeg$secondaryArchSuffix = $portVersion compat >= 8 + lib:libjpeg$secondaryArchSuffix = $portVersion compat >= 8 + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:grep + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:make + " + BUILD() { - cd jpeg-8d - aclocal - libtoolize --force --copy --install - automake --add-missing + #sed -i 's/^AM_C_PROTOTYPES//' configure.ac + #sed -i 's/^AM_INIT_AUTOMAKE//' configure.ac + #aclocal + #libtoolize --force --copy --install + #automake --add-missing autoconf - ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + runConfigure ./configure \ --enable-shared - make + make $jobArgs } INSTALL() { - cd jpeg-8d make install + + prepareInstalledDevelLibs libjpeg + + # devel package + packageEntries devel \ + $developDir + + # tools package + if [ -z "$secondaryArchSuffix" ]; then + packageEntries tools \ + $binDir \ + $documentationDir + fi + + # Remove stuff we don't need in the secondary architecture base package. + if [ -n "$secondaryArchSuffix" ]; then + rm -rf $binDir + rm -rf $documentationDir + fi } -LICENSE="JPEG" -COPYRIGHT="1991-2011, Thomas G. Lane, Guido Vollbeding. All Rights Reserved" +# ----- devel package ------------------------------------------------------- +PROVIDES_devel=" + jpeg${secondaryArchSuffix}_devel = $portVersion compat >= 8 + devel:libjpeg$secondaryArchSuffix = $portVersion compat >= 8 + " +REQUIRES_devel=" + jpeg$secondaryArchSuffix == $portVersion base + " + +# ----- tools package ------------------------------------------------------- + +if [ -z "$secondaryArchSuffix" ]; then + SUMMARY_tools="The JPEG tools" + PROVIDES_tools=" + jpeg_tools = $portVersion compat >= 8 + cmd:cjpeg = $portVersion compat >= 8 + cmd:djpeg = $portVersion compat >= 8 + cmd:jpegtran = $portVersion compat >= 8 + cmd:rdjpgcom = $portVersion compat >= 8 + cmd:wrjpgcom = $portVersion compat >= 8 + " + REQUIRES_tools=" + haiku >= $haikuVersion + jpeg == $portVersion base + " +fi diff --git a/media-libs/jpeg/jpeg-9.recipe b/media-libs/jpeg/jpeg-9.recipe index 7f9645aed..0ee9396a2 100644 --- a/media-libs/jpeg/jpeg-9.recipe +++ b/media-libs/jpeg/jpeg-9.recipe @@ -1,20 +1,21 @@ SUMMARY="JPEG image compression library and tools" -DESCRIPTION="This package contains C software to implement JPEG image encoding, decoding, -and transcoding. JPEG is a standardized compression method for full-color -and gray-scale images. - -The distributed programs provide conversion between JPEG "JFIF" format and -image files in PBMPLUS PPM/PGM, GIF, BMP, and Targa file formats. The -core compression and decompression library can easily be reused in other -programs, such as image viewers. The package is highly portable C code; -we have tested it on many machines ranging from PCs to Crays." +DESCRIPTION=" +This package contains C software to implement JPEG image encoding, decoding, \ +and transcoding. JPEG is a standardized compression method for full-color and \ +gray-scale images. +The distributed programs provide conversion between JPEG "JFIF" format and \ +image files in PBMPLUS PPM/PGM, GIF, BMP, and Targa file formats. The core \ +compression and decompression library can easily be reused in other programs, \ +such as image viewers. The package is highly portable C code; we have tested \ +it on many machines ranging from PCs to Crays. +" HOMEPAGE="http://www.ijg.org" LICENSE="JPEG" COPYRIGHT="1991-2013, Thomas G. Lane, Guido Vollbeding. All Rights Reserved" SRC_URI="http://www.ijg.org/files/jpegsrc.v9.tar.gz" -CHECKSUM_MD5="b397211ddfd506b92cd5e02a22ac924d" +CHECKSUM_SHA256="c4e29e9375aaf60b4b79db87a58b063fb5b84f923bee97a88280b3d159e7e535" REVISION="3" -ARCHITECTURES="x86_gcc2 x86 x86_64" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" SECONDARY_ARCHITECTURES="x86_gcc2 x86" PATCHES="jpeg-9.patchset" diff --git a/media-libs/lcms/lcms-2.5.recipe b/media-libs/lcms/lcms-2.5.recipe index d119d7fd1..8e676e8bb 100644 --- a/media-libs/lcms/lcms-2.5.recipe +++ b/media-libs/lcms/lcms-2.5.recipe @@ -1,34 +1,51 @@ -SUMMARY="lcms - Little cms intends to be a small-footprint, speed optimized color management engine" -DESCRIPTION="Little CMS intends to be an OPEN SOURCE small-footprint color management engine, with special focus on accuracy and performance. It uses the International Color Consortium standard (ICC), which is the modern standard when regarding to color management. The ICC specification is widely used and is referred to in many International and other de-facto standards. It was approved as an International Standard, ISO 15076-1, in 2005." +SUMMARY="A small-footprint, speed optimized color management engine" +DESCRIPTION=" +Little CMS intends to be an open source small-footprint color management \ +engine, with special focus on accuracy and performance. It uses the \ +International Color Consortium standard (ICC), which is the modern standard \ +when regarding to color management. The ICC specification is widely used and \ +is referred to in many International and other de-facto standards. It was \ +approved as an International Standard, ISO 15076-1, in 2005. +" HOMEPAGE="http://littlecms.com/" SRC_URI="http://downloads.sourceforge.net/project/lcms/lcms/2.5/lcms2-2.5.tar.gz" -CHECKSUM_MD5="396d106600251441ff195fcaa277d10b" +CHECKSUM_SHA256="6727772b44470a2111dba53b9ce4c952b87e7d1b72a31c5ebdf44ba6eb0aa72b" REVISION="1" LICENSE="MIT" COPYRIGHT="2007 Marti Maria" ARCHITECTURES="x86_gcc2 x86" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" PROVIDES=" - lcms = 2.5 compat >= 2 - lib:liblcms2 - cmd:jpgicc - cmd:linkicc - cmd:psicc - cmd:tificc - cmd:transicc + lcms$secondaryArchSuffix = 2.5 compat >= 2 + lib:liblcms2$secondaryArchSuffix + cmd:jpgicc$secondaryArchSuffix + cmd:linkicc$secondaryArchSuffix + cmd:psicc$secondaryArchSuffix + cmd:tificc$secondaryArchSuffix + cmd:transicc$secondaryArchSuffix " REQUIRES=" - lib:libroot - lib:libjpeg - lib:libtiff - lib:libz" + haiku >= $haikuVersion + lib:libjpeg$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + lib:libtiff$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " -BUILD_REQUIRES="" +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libjpeg$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libtiff$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " BUILD_PREREQUIRES=" - cmd:gcc + cmd:gcc${secondaryArchSuffix} + cmd:ld${secondaryArchSuffix} cmd:libtoolize cmd:aclocal cmd:autoconf @@ -64,10 +81,10 @@ INSTALL() # ----- devel package --------------------------------------- PROVIDES_devel=" - lcms_devel = $portVersion - devel:lcms = 2.5 compat >= 2 - devel:liblcms2 = 2.0.1 compat >= 2 + lcms${secondaryArchSuffix}_devel = $portVersion + devel:lcms$secondaryArchSuffix = 2.5 compat >= 2 + devel:liblcms2$secondaryArchSuffix = 2.0.1 compat >= 2 " REQUIRES_devel=" - lcms == $portVersion base + lcms$secondaryArchSuffix == $portVersion base " diff --git a/media-libs/leptonica/leptonica-1.68.recipe b/media-libs/leptonica/leptonica-1.68.recipe deleted file mode 100644 index 9006867da..000000000 --- a/media-libs/leptonica/leptonica-1.68.recipe +++ /dev/null @@ -1,34 +0,0 @@ -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/leptonica/leptonica-1.69.recipe b/media-libs/leptonica/leptonica-1.69.recipe new file mode 100644 index 000000000..9e26cdd58 --- /dev/null +++ b/media-libs/leptonica/leptonica-1.69.recipe @@ -0,0 +1,316 @@ +SUMMARY="A C library for image processing and analysis operations" +DESCRIPTION=" +A powerful open source C library for efficient image processing \ +and image analysis operations. It's long list of features includes: +* image transformations (scaling, rotation, etc.) +* change scale and pixel depth +* pixelwise masking, blending, and enhancement +* can open and save standard image formats +" +HOMEPAGE="http://code.google.com/p/leptonica" +SRC_URI="http://www.leptonica.org/source/leptonica-1.69.tar.gz" +CHECKSUM_SHA256="3eb7669dcda7e417f399bb3698414ea523270797dfd36c59b08ef37a3fe0a72d" +LICENSE="BSD (2-clause)" +COPYRIGHT="2001-2012 Dan Bloomberg" +REVISION="1" +ARCHITECTURES="x86 x86_64" +SECONDARY_ARCHITECTURES="x86" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi + +PROVIDES=" + leptonica$secondaryArchSuffix = $portVersion + lib:leptonica$secondaryArchSuffix = 3.0.0 + lib:liblept$secondaryArchSuffix = 3.0.0 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libgif$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + lib:libwebp$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libgif$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libwebp$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:aclocal + cmd:ar$secondaryArchSuffix + cmd:autoconf + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:make + cmd:makeinfo + " + +PATCHES=" + giflib6.patch + leptonica-1.69.patch + " + +BUILD() +{ + libtoolize --force --copy --install + aclocal + autoconf + automake -a + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install + prepareInstalledDevelLibs liblept + + packageEntries devel \ + $developDir + + packageEntries tools \ + $binDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + leptonica${secondaryArchSuffix}_devel = $portVersion + devel:leptonica$secondaryArchSuffix = 3.0.0 + devel:liblept$secondaryArchSuffix = 3.0.0 + " + +REQUIRES_devel=" + haiku$secondaryArchSuffix >= $haikuVersion + leptonica$secondaryArchSuffix == $portVersion base + " + +# ----- tools package ------------------------------------------------------- + +PROVIDES_tools=" + leptonica${secondaryArchSuffix}_tools = $portVersion + cmd:adaptmaptest$secondaryArchSuffix = $portVersion + cmd:adaptnorm_reg$secondaryArchSuffix = $portVersion + cmd:affine_reg$secondaryArchSuffix = $portVersion + cmd:alltests_reg$secondaryArchSuffix = $portVersion + cmd:alphaops_reg$secondaryArchSuffix = $portVersion + cmd:alphaxform_reg$secondaryArchSuffix = $portVersion + cmd:arithtest$secondaryArchSuffix = $portVersion + cmd:barcodetest$secondaryArchSuffix = $portVersion + cmd:baselinetest$secondaryArchSuffix = $portVersion + cmd:bilinear_reg$secondaryArchSuffix = $portVersion + cmd:binarize_reg$secondaryArchSuffix = $portVersion + cmd:bincompare$secondaryArchSuffix = $portVersion + cmd:binmorph1_reg$secondaryArchSuffix = $portVersion + cmd:binmorph2_reg$secondaryArchSuffix = $portVersion + cmd:binmorph3_reg$secondaryArchSuffix = $portVersion + cmd:binmorph4_reg$secondaryArchSuffix = $portVersion + cmd:binmorph5_reg$secondaryArchSuffix = $portVersion + cmd:blend_reg$secondaryArchSuffix = $portVersion + cmd:blend2_reg$secondaryArchSuffix = $portVersion + cmd:blendcmaptest$secondaryArchSuffix = $portVersion + cmd:blendtest1$secondaryArchSuffix = $portVersion + cmd:buffertest$secondaryArchSuffix = $portVersion + cmd:byteatest$secondaryArchSuffix = $portVersion + cmd:ccbordtest$secondaryArchSuffix = $portVersion + cmd:cctest1$secondaryArchSuffix = $portVersion + cmd:ccthin1_reg$secondaryArchSuffix = $portVersion + cmd:ccthin2_reg$secondaryArchSuffix = $portVersion + cmd:cmapquant_reg$secondaryArchSuffix = $portVersion + cmd:coloring_reg$secondaryArchSuffix = $portVersion + cmd:colormask_reg$secondaryArchSuffix = $portVersion + cmd:colormorphtest$secondaryArchSuffix = $portVersion + cmd:colorquant_reg$secondaryArchSuffix = $portVersion + cmd:colorseg_reg$secondaryArchSuffix = $portVersion + cmd:colorsegtest$secondaryArchSuffix = $portVersion + cmd:colorspacetest$secondaryArchSuffix = $portVersion + cmd:compare_reg$secondaryArchSuffix = $portVersion + cmd:comparepages$secondaryArchSuffix = $portVersion + cmd:comparetest$secondaryArchSuffix = $portVersion + cmd:compfilter_reg$secondaryArchSuffix = $portVersion + cmd:conncomp_reg$secondaryArchSuffix = $portVersion + cmd:contrasttest$secondaryArchSuffix = $portVersion + cmd:conversion_reg$secondaryArchSuffix = $portVersion + cmd:convertfilestopdf$secondaryArchSuffix = $portVersion + cmd:convertfilestops$secondaryArchSuffix = $portVersion + cmd:convertformat$secondaryArchSuffix = $portVersion + cmd:convertsegfilestopdf$secondaryArchSuffix = $portVersion + cmd:convertsegfilestops$secondaryArchSuffix = $portVersion + cmd:converttogray$secondaryArchSuffix = $portVersion + cmd:converttops$secondaryArchSuffix = $portVersion + cmd:convolve_reg$secondaryArchSuffix = $portVersion + cmd:convolvetest$secondaryArchSuffix = $portVersion + cmd:cornertest$secondaryArchSuffix = $portVersion + cmd:croptext$secondaryArchSuffix = $portVersion + cmd:dewarp_reg$secondaryArchSuffix = $portVersion + cmd:dewarptest1$secondaryArchSuffix = $portVersion + cmd:dewarptest2$secondaryArchSuffix = $portVersion + cmd:dewarptest3$secondaryArchSuffix = $portVersion + cmd:digitprep1$secondaryArchSuffix = $portVersion + cmd:distance_reg$secondaryArchSuffix = $portVersion + cmd:dithertest$secondaryArchSuffix = $portVersion + cmd:dna_reg$secondaryArchSuffix = $portVersion + cmd:dwalineargen$secondaryArchSuffix = $portVersion + cmd:dwamorph1_reg$secondaryArchSuffix = $portVersion + cmd:dwamorph2_reg$secondaryArchSuffix = $portVersion + cmd:edgetest$secondaryArchSuffix = $portVersion + cmd:enhance_reg$secondaryArchSuffix = $portVersion + cmd:equal_reg$secondaryArchSuffix = $portVersion + cmd:expand_reg$secondaryArchSuffix = $portVersion + cmd:extrema_reg$secondaryArchSuffix = $portVersion + cmd:falsecolortest$secondaryArchSuffix = $portVersion + cmd:fcombautogen$secondaryArchSuffix = $portVersion + cmd:fhmtauto_reg$secondaryArchSuffix = $portVersion + cmd:fhmtautogen$secondaryArchSuffix = $portVersion + cmd:fileinfo$secondaryArchSuffix = $portVersion + cmd:findpattern_reg$secondaryArchSuffix = $portVersion + cmd:findpattern1$secondaryArchSuffix = $portVersion + cmd:findpattern2$secondaryArchSuffix = $portVersion + cmd:findpattern3$secondaryArchSuffix = $portVersion + cmd:flipdetect_reg$secondaryArchSuffix = $portVersion + cmd:flipselgen$secondaryArchSuffix = $portVersion + cmd:fmorphauto_reg$secondaryArchSuffix = $portVersion + cmd:fmorphautogen$secondaryArchSuffix = $portVersion + cmd:fpix_reg$secondaryArchSuffix = $portVersion + cmd:fpixcontours$secondaryArchSuffix = $portVersion + cmd:gammatest$secondaryArchSuffix = $portVersion + cmd:genfonts$secondaryArchSuffix = $portVersion + cmd:gifio_reg$secondaryArchSuffix = $portVersion + cmd:graphicstest$secondaryArchSuffix = $portVersion + cmd:grayfill_reg$secondaryArchSuffix = $portVersion + cmd:graymorph1_reg$secondaryArchSuffix = $portVersion + cmd:graymorph2_reg$secondaryArchSuffix = $portVersion + cmd:graymorphtest$secondaryArchSuffix = $portVersion + cmd:grayquant_reg$secondaryArchSuffix = $portVersion + cmd:hardlight_reg$secondaryArchSuffix = $portVersion + cmd:heap_reg$secondaryArchSuffix = $portVersion + cmd:histotest$secondaryArchSuffix = $portVersion + cmd:inserttest$secondaryArchSuffix = $portVersion + cmd:ioformats_reg$secondaryArchSuffix = $portVersion + cmd:iotest$secondaryArchSuffix = $portVersion + cmd:jbcorrelation$secondaryArchSuffix = $portVersion + cmd:jbrankhaus$secondaryArchSuffix = $portVersion + cmd:jbwords$secondaryArchSuffix = $portVersion + cmd:kernel_reg$secondaryArchSuffix = $portVersion + cmd:lineremoval$secondaryArchSuffix = $portVersion + cmd:listtest$secondaryArchSuffix = $portVersion + cmd:livre_adapt$secondaryArchSuffix = $portVersion + cmd:livre_hmt$secondaryArchSuffix = $portVersion + cmd:livre_makefigs$secondaryArchSuffix = $portVersion + cmd:livre_orient$secondaryArchSuffix = $portVersion + cmd:livre_pageseg$secondaryArchSuffix = $portVersion + cmd:livre_seedgen$secondaryArchSuffix = $portVersion + cmd:livre_tophat$secondaryArchSuffix = $portVersion + cmd:locminmax_reg$secondaryArchSuffix = $portVersion + cmd:logicops_reg$secondaryArchSuffix = $portVersion + cmd:lowaccess_reg$secondaryArchSuffix = $portVersion + cmd:maketile$secondaryArchSuffix = $portVersion + cmd:maze_reg$secondaryArchSuffix = $portVersion + cmd:misctest1$secondaryArchSuffix = $portVersion + cmd:modifyhuesat$secondaryArchSuffix = $portVersion + cmd:morphseq_reg$secondaryArchSuffix = $portVersion + cmd:morphtest1$secondaryArchSuffix = $portVersion + cmd:mtifftest$secondaryArchSuffix = $portVersion + cmd:numa_reg$secondaryArchSuffix = $portVersion + cmd:numaranktest$secondaryArchSuffix = $portVersion + cmd:otsutest1$secondaryArchSuffix = $portVersion + cmd:otsutest2$secondaryArchSuffix = $portVersion + cmd:overlap_reg$secondaryArchSuffix = $portVersion + cmd:pagesegtest1$secondaryArchSuffix = $portVersion + cmd:pagesegtest2$secondaryArchSuffix = $portVersion + cmd:paint_reg$secondaryArchSuffix = $portVersion + cmd:paintmask_reg$secondaryArchSuffix = $portVersion + cmd:partitiontest$secondaryArchSuffix = $portVersion + cmd:pdfiotest$secondaryArchSuffix = $portVersion + cmd:pdfseg_reg$secondaryArchSuffix = $portVersion + cmd:pixa1_reg$secondaryArchSuffix = $portVersion + cmd:pixa2_reg$secondaryArchSuffix = $portVersion + cmd:pixaatest$secondaryArchSuffix = $portVersion + cmd:pixadisp_reg$secondaryArchSuffix = $portVersion + cmd:pixalloc_reg$secondaryArchSuffix = $portVersion + cmd:pixcomp_reg$secondaryArchSuffix = $portVersion + cmd:pixmem_reg$secondaryArchSuffix = $portVersion + cmd:pixserial_reg$secondaryArchSuffix = $portVersion + cmd:pixtile_reg$secondaryArchSuffix = $portVersion + cmd:plottest$secondaryArchSuffix = $portVersion + cmd:pngio_reg$secondaryArchSuffix = $portVersion + cmd:printimage$secondaryArchSuffix = $portVersion + cmd:printsplitimage$secondaryArchSuffix = $portVersion + cmd:printtiff$secondaryArchSuffix = $portVersion + cmd:projection_reg$secondaryArchSuffix = $portVersion + cmd:projective_reg$secondaryArchSuffix = $portVersion + cmd:psio_reg$secondaryArchSuffix = $portVersion + cmd:psioseg_reg$secondaryArchSuffix = $portVersion + cmd:pta_reg$secondaryArchSuffix = $portVersion + cmd:ptra1_reg$secondaryArchSuffix = $portVersion + cmd:ptra2_reg$secondaryArchSuffix = $portVersion + cmd:quadtreetest$secondaryArchSuffix = $portVersion + cmd:rank_reg$secondaryArchSuffix = $portVersion + cmd:rankbin_reg$secondaryArchSuffix = $portVersion + cmd:rankhisto_reg$secondaryArchSuffix = $portVersion + cmd:ranktest$secondaryArchSuffix = $portVersion + cmd:rasterop_reg$secondaryArchSuffix = $portVersion + cmd:rasteropip_reg$secondaryArchSuffix = $portVersion + cmd:reducetest$secondaryArchSuffix = $portVersion + cmd:removecmap$secondaryArchSuffix = $portVersion + cmd:renderfonts$secondaryArchSuffix = $portVersion + cmd:rotate1_reg$secondaryArchSuffix = $portVersion + cmd:rotate2_reg$secondaryArchSuffix = $portVersion + cmd:rotatefastalt$secondaryArchSuffix = $portVersion + cmd:rotateorth_reg$secondaryArchSuffix = $portVersion + cmd:rotateorthtest1$secondaryArchSuffix = $portVersion + cmd:rotatetest1$secondaryArchSuffix = $portVersion + cmd:runlengthtest$secondaryArchSuffix = $portVersion + cmd:scale_reg$secondaryArchSuffix = $portVersion + cmd:scaleandtile$secondaryArchSuffix = $portVersion + cmd:scaletest1$secondaryArchSuffix = $portVersion + cmd:scaletest2$secondaryArchSuffix = $portVersion + cmd:seedfilltest$secondaryArchSuffix = $portVersion + cmd:seedspread_reg$secondaryArchSuffix = $portVersion + cmd:selio_reg$secondaryArchSuffix = $portVersion + cmd:sharptest$secondaryArchSuffix = $portVersion + cmd:shear_reg$secondaryArchSuffix = $portVersion + cmd:shear2_reg$secondaryArchSuffix = $portVersion + cmd:sheartest$secondaryArchSuffix = $portVersion + cmd:showedges$secondaryArchSuffix = $portVersion + cmd:skew_reg$secondaryArchSuffix = $portVersion + cmd:skewtest$secondaryArchSuffix = $portVersion + cmd:smallpix_reg$secondaryArchSuffix = $portVersion + cmd:smoothedge_reg$secondaryArchSuffix = $portVersion + cmd:snapcolortest$secondaryArchSuffix = $portVersion + cmd:sorttest$secondaryArchSuffix = $portVersion + cmd:splitcomp_reg$secondaryArchSuffix = $portVersion + cmd:splitimage2pdf$secondaryArchSuffix = $portVersion + cmd:string_reg$secondaryArchSuffix = $portVersion + cmd:subpixel_reg$secondaryArchSuffix = $portVersion + cmd:sudokutest$secondaryArchSuffix = $portVersion + cmd:textlinemask$secondaryArchSuffix = $portVersion + cmd:threshnorm_reg$secondaryArchSuffix = $portVersion + cmd:translate_reg$secondaryArchSuffix = $portVersion + cmd:trctest$secondaryArchSuffix = $portVersion + cmd:viewertest$secondaryArchSuffix = $portVersion + cmd:warper_reg$secondaryArchSuffix = $portVersion + cmd:warpertest$secondaryArchSuffix = $portVersion + cmd:watershedtest$secondaryArchSuffix = $portVersion + cmd:wordsinorder$secondaryArchSuffix = $portVersion + cmd:writemtiff$secondaryArchSuffix = $portVersion + cmd:writetext_reg$secondaryArchSuffix = $portVersion + cmd:xformbox_reg$secondaryArchSuffix = $portVersion + cmd:xtractprotos$secondaryArchSuffix = $portVersion + cmd:xvdisp$secondaryArchSuffix = $portVersion + cmd:yuvtest$secondaryArchSuffix = $portVersion + " +REQUIRES_tools=" + haiku$secondaryArchSuffix >= $haikuVersion + leptonica$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/leptonica/patches/giflib6.patch b/media-libs/leptonica/patches/giflib6.patch new file mode 100644 index 000000000..a283e931d --- /dev/null +++ b/media-libs/leptonica/patches/giflib6.patch @@ -0,0 +1,56 @@ +diff -wbBur leptonica-1.69/src/gifio.c leptonica-1.69/src/gifio.c +--- leptonica-1.69/src/gifio.c 2012-01-22 22:29:15.000000000 +0400 ++++ leptonica-1.69/src/gifio.c 2013-07-30 18:27:19.269137200 +0400 +@@ -100,7 +100,7 @@ + _lseek(fd, 0, SEEK_SET); + #endif /* _MSC_VER */ + +- if ((gif = DGifOpenFileHandle(fd)) == NULL) ++ if ((gif = DGifOpenFileHandle(fd, NULL)) == NULL) + return (PIX *)ERROR_PTR("invalid file or file not found", + procName, NULL); + +@@ -316,7 +316,7 @@ + } + + /* Save the cmap colors in a gif_cmap */ +- if ((gif_cmap = MakeMapObject(gif_ncolor, NULL)) == NULL) { ++ if ((gif_cmap = GifMakeMapObject(gif_ncolor, NULL)) == NULL) { + pixDestroy(&pixd); + return ERROR_INT("failed to create GIF color map", procName, 1); + } +@@ -325,7 +325,7 @@ + if (ncolor > 0) { + if (pixcmapGetColor(cmap, i, &rval, &gval, &bval) != 0) { + pixDestroy(&pixd); +- FreeMapObject(gif_cmap); ++ GifFreeMapObject(gif_cmap); + return ERROR_INT("failed to get color from color map", + procName, 1); + } +@@ -337,9 +337,9 @@ + } + + /* Get the gif file handle */ +- if ((gif = EGifOpenFileHandle(fd)) == NULL) { ++ if ((gif = EGifOpenFileHandle(fd, NULL)) == NULL) { + pixDestroy(&pixd); +- FreeMapObject(gif_cmap); ++ GifFreeMapObject(gif_cmap); + return ERROR_INT("failed to create GIF image handle", procName, 1); + } + +@@ -347,11 +347,11 @@ + if (EGifPutScreenDesc(gif, w, h, gif_cmap->BitsPerPixel, 0, gif_cmap) + != GIF_OK) { + pixDestroy(&pixd); +- FreeMapObject(gif_cmap); ++ GifFreeMapObject(gif_cmap); + EGifCloseFile(gif); + return ERROR_INT("failed to write screen description", procName, 1); + } +- FreeMapObject(gif_cmap); /* not needed after this point */ ++ GifFreeMapObject(gif_cmap); /* not needed after this point */ + + if (EGifPutImageDesc(gif, 0, 0, w, h, FALSE, NULL) != GIF_OK) { + pixDestroy(&pixd); diff --git a/media-libs/leptonica/patches/leptonica-1.69.patch b/media-libs/leptonica/patches/leptonica-1.69.patch new file mode 100644 index 000000000..40db92b7b --- /dev/null +++ b/media-libs/leptonica/patches/leptonica-1.69.patch @@ -0,0 +1,56 @@ +From 0b6499e1a9868539583d776f2c0c6251b38a02e6 Mon Sep 17 00:00:00 2001 +From: Luke +Date: Thu, 26 Dec 2013 01:39:15 +0000 +Subject: [PATCH] Fix building on Haiku + +--- + configure.ac | 2 +- + src/sarray.c | 5 ++++- + 2 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index fb5ca0c..88b52c9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1,7 +1,7 @@ + AC_PREREQ([2.50]) + AC_INIT([leptonica], [1.69], [dan.bloomberg@gmail.com]) + AC_CONFIG_AUX_DIR([config]) +-AM_CONFIG_HEADER([config_auto.h:config/config.h.in]) ++AC_CONFIG_HEADERS([config_auto.h:config/config.h.in]) + AC_CONFIG_SRCDIR([src/adaptmap.c]) + + AC_CONFIG_MACRO_DIR([m4]) +diff --git a/src/sarray.c b/src/sarray.c +index c21bf3b..b212bf8 100644 +--- a/src/sarray.c ++++ b/src/sarray.c +@@ -131,6 +131,7 @@ + #include + #ifndef _WIN32 + #include /* unix only */ ++#include + #endif /* ! _WIN32 */ + #include "allheaders.h" + +@@ -1831,6 +1832,7 @@ l_int32 len; + SARRAY *safiles; + DIR *pdir; + struct dirent *pdirentry; ++struct stat s; + + PROCNAME("getFilenamesInDirectory"); + +@@ -1847,7 +1849,8 @@ struct dirent *pdirentry; + * define _BSD_SOURCE in the CC command, because the DT_DIR + * flag is non-standard. */ + #if !defined(__SOLARIS__) +- if (pdirentry->d_type == DT_DIR) ++ stat(pdirentry->d_name, &s); ++ if(S_ISDIR(s.st_mode)) + continue; + #endif + +-- +1.8.3.4 + diff --git a/media-libs/libao/libao-1.0.0.recipe b/media-libs/libao/libao-1.0.0.recipe index 2ee94f010..f528e8b2c 100644 --- a/media-libs/libao/libao-1.0.0.recipe +++ b/media-libs/libao/libao-1.0.0.recipe @@ -1,8 +1,14 @@ -SUMMARY="libao is a cross platform audio library" -DESCRIPTION="Libao is a cross-platform audio library that allows programs to output audio using a simple API on a wide variety of platforms. It currently supports Null output, WAV files, AU files, RAW files, OSS, ALSA, aRts, PulseAudio, esd, Mac OS X, Windows, AIX, Sun/NetBSD/OpenBSD, IRIX, NAS, RoarAudio and OpenBSD's sndio" +SUMMARY="A cross platform audio library" +DESCRIPTION=" +Libao is a cross-platform audio library that allows programs to output audio \ +using a simple API on a wide variety of platforms. It currently supports Null \ +output, WAV files, AU files, RAW files, OSS, ALSA, aRts, PulseAudio, esd, Mac \ +OS X, Windows, AIX, Sun/NetBSD/OpenBSD, IRIX, NAS, RoarAudio and OpenBSD's \ +sndio. +" HOMEPAGE="http://xiph.org/ao/" SRC_URI="http://downloads.xiph.org/releases/ao/libao-1.0.0.tar.gz" -CHECKSUM_MD5="08283fbe1f587619053a156254afecec" +CHECKSUM_SHA256="d0fe2c7e4afb8e45e8a3693fe9fde5402dbc2faecfb68a25e9c0cd711817b82a" LICENSE="GNU GPL v2" COPYRIGHT="1999 Aaron Holtzman @@ -29,9 +35,9 @@ REQUIRES=" haiku$secondaryArchSuffix >= $haikuVersion " BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion " BUILD_PREREQUIRES=" - haiku${secondaryArchSuffix}_devel >= $haikuVersion cmd:aclocal cmd:autoconf cmd:automake @@ -39,11 +45,9 @@ BUILD_PREREQUIRES=" cmd:ld$secondaryArchSuffix cmd:libtoolize cmd:make + cmd:pkg_config$secondaryArchSuffix " - - - BUILD() { # sed -i 's/$(datadir)\/aclocal/`finddir B_COMMON_DATA_DIRECTORY`\/aclocal/g' M* @@ -74,11 +78,9 @@ INSTALL() # ----- devel package ------------------------------------------------------- PROVIDES_devel=" - libao_devel = $portVersion - devel:libao = 0.0.0 compat >= 0 + libao${secondaryArchSuffix}_devel = $portVersion + devel:libao$secondaryArchSuffix = 0.0.0 compat >= 0 " REQUIRES_devel=" - libao == $portVersion base + libao$secondaryArchSuffix == $portVersion base " - - diff --git a/media-libs/libao/libao-1.1.0.recipe b/media-libs/libao/libao-1.1.0.recipe new file mode 100644 index 000000000..ff820d0a3 --- /dev/null +++ b/media-libs/libao/libao-1.1.0.recipe @@ -0,0 +1,89 @@ +SUMMARY="A cross platform audio library" +DESCRIPTION=" +Libao is a cross-platform audio library that allows programs to output audio \ +using a simple API on a wide variety of platforms. It currently supports Null \ +output, WAV files, AU files, RAW files, OSS, ALSA, aRts, PulseAudio, esd, Mac \ +OS X, Windows, AIX, Sun/NetBSD/OpenBSD, IRIX, NAS, RoarAudio and OpenBSD's \ +sndio. +" +HOMEPAGE="http://xiph.org/ao/" + +SRC_URI="http://downloads.xiph.org/releases/ao/libao-1.1.0.tar.gz" +CHECKSUM_SHA256="29de5bb9b1726ba890455ef7e562d877df87811febb0d99ee69164b88c171bd4" + +LICENSE="GNU GPL v2" +COPYRIGHT="1999 Aaron Holtzman + 2000 Rik Hemsley + 2000 Timothy J. Wood + 2000-2001 Stan Seibert + 2001 Christian Weisgerber + 2001 Wil Mahan + 2002 Stefan Tibus + 2008 Alexandre Ratchov + 2008-2010 Philipp 'ph3-der-loewe' Schafft + 2010-2011 Monty" + +REVISION="1" + +ARCHITECTURES="x86_gcc2 x86" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + libao$secondaryArchSuffix = $portVersion + lib:libao$secondaryArchSuffix = 1.1.0 compat >= 0 + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:make + cmd:pkg_config + " + +PATCHES="libao-1.1.0.patchset" + +BUILD() +{ +# sed -i 's/$(datadir)\/aclocal/`finddir B_COMMON_DATA_DIRECTORY`\/aclocal/g' M* + libtoolize --force --copy --install + aclocal + autoconf + automake + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install + prepareInstalledDevelLibs libao + fixPkgconfig + + # move include dir to correct location + mkdir -p $(dirname $includeDir) + mv $prefix/include $includeDir + + # devel package + packageEntries devel \ + $dataDir \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + libao${secondaryArchSuffix}_devel = $portVersion + devel:libao$secondaryArchSuffix = 1.1.0 compat >= 0 + " +REQUIRES_devel=" + libao$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/libao/patches/libao-1.1.0.patchset b/media-libs/libao/patches/libao-1.1.0.patchset new file mode 100644 index 000000000..b3aef87c9 --- /dev/null +++ b/media-libs/libao/patches/libao-1.1.0.patchset @@ -0,0 +1,436 @@ +From e8e1c83dd8c8593921201152278fa7d9ab093ba4 Mon Sep 17 00:00:00 2001 +From: Julian Harnath +Date: Mon, 24 Mar 2014 21:30:27 +0100 +Subject: Add Haiku Media Kit audio output driver. + + +diff --git a/configure.ac b/configure.ac +index b5aba33..eb60271 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -30,13 +30,15 @@ dnl Check for programs + dnl ==================================== + + cflags_save="$CFLAGS" ++cppflags_save="$CPPFLAGS" + AC_PROG_CC ++AC_PROG_CXX + AC_LIBTOOL_WIN32_DLL + AC_LIBTOOL_DLOPEN + AM_PROG_LIBTOOL + + dnl ==================================== +-dnl Check dlopen ++dnl Check dlopen + dnl ==================================== + + dnl Currently use this to disable plugin support dlfcn.h +@@ -68,6 +70,7 @@ if test -z "$GCC"; then + PLUGIN_LDFLAGS="-export-dynamic -avoid-version" + DEBUG="-g" + CFLAGS="-O" ++ CPPFLAGS="-O" + PROFILE="-g -p" ;; + esac + else +@@ -92,10 +95,12 @@ else + PLUGIN_LDFLAGS="-export-dynamic -avoid-version" + DEBUG="-g -Wall -D__NO_MATH_INLINES -fsigned-char" + CFLAGS="-O20 -D__NO_MATH_INLINES -fsigned-char" ++ CPPFLAGS="-O20 -D__NO_MATH_INLINES -fsigned-char" + PROFILE="-O20 -g -pg -D__NO_MATH_INLINES -fsigned-char" ;; + esac + fi + CFLAGS="$CFLAGS $cflags_save -DAO_BUILDING_LIBAO" ++CPPFLAGS="$CPPFLAGS $cppflags_save -DAO_BUILDING_LIBAO" + DEBUG="$DEBUG $cflags_save -DAO_BUILDING_LIBAO" + PROFILE="$PROFILE $cflags_save -DAO_BUILDING_LIBAO" + +@@ -111,7 +116,7 @@ case $host in + *-mingw*|*-cygwin*) + LIBAO_LA_LDFLAGS="-no-undefined" + ;; +- *) ++ *) + LIBAO_LA_LDFLAGS="" + ;; + esac +@@ -151,7 +156,7 @@ case $host in + *hpux*) + DLOPEN_FLAG='(RTLD_LAZY)' + SHARED_LIB_EXT='.sl' +- ;; ++ ;; + *openbsd* | *netbsd* | *solaris2.7 | *darwin*) + DLOPEN_FLAG='(RTLD_LAZY)' + SHARED_LIB_EXT='.so' +@@ -194,7 +199,7 @@ AC_SUBST(SIZE16) + AC_SUBST(SIZE32) + + dnl ====================================== +-dnl Disable default use of SLP in roar ++dnl Disable default use of SLP in roar + dnl until such time as SLP doesn't block + dnl indefinitely + dnl ====================================== +@@ -212,7 +217,7 @@ fi + AC_SUBST([SLP_DEF]) + + dnl ====================================== +-dnl Detect possible output devices ++dnl Detect possible output devices + dnl ====================================== + + dnl Check for WMM +@@ -309,7 +314,7 @@ if test "x$enable_broken_oss" = "xyes"; then + AC_DEFINE(BROKEN_OSS) + AC_MSG_WARN(Broken OSS API workaround enabled. See README for details.) + fi +- ++ + dnl Check for Sun audio + + have_sun="no"; +@@ -424,7 +429,7 @@ if test "$BUILD_NAS" = "yes"; then + AC_PATH_XTRA + AC_CHECK_LIB(Xau, XauFileName, have_nas=yes, have_nas=no, $X_LIBS) + AC_CHECK_LIB(audio, AuOpenServer, dummy="no-op", have_nas=no, -lXau $X_LIBS) +- ++ + ac_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + AC_CHECK_HEADER(audio/audiolib.h, dummy="no-op", have_nas=no) +@@ -458,6 +463,12 @@ fi + + AM_CONDITIONAL(HAVE_PULSE,test "x$have_pulse" = xyes) + ++dnl Check for Haiku audio ++ ++have_haiku="no"; ++AC_CHECK_HEADERS(MediaDefs.h, have_haiku=yes) ++AM_CONDITIONAL(HAVE_HAIKU,test "${have_haiku}" = yes) ++ + dnl Orphaned driver. We'll probably dump it soon. + AM_CONDITIONAL(HAVE_SOLARIS,test "x$have_solaris" = xyes) + +@@ -465,7 +476,7 @@ dnl Plugins get special LDFLAGS + AC_SUBST(PLUGIN_LDFLAGS) + + +-AC_OUTPUT([Makefile src/Makefile doc/Makefile include/Makefile include/ao/Makefile include/ao/os_types.h src/plugins/Makefile src/plugins/esd/Makefile src/plugins/oss/Makefile src/plugins/alsa/Makefile src/plugins/sun/Makefile src/plugins/irix/Makefile src/plugins/arts/Makefile src/plugins/macosx/Makefile src/plugins/nas/Makefile src/plugins/pulse/Makefile src/plugins/sndio/Makefile src/plugins/roar/Makefile ao.pc]) ++AC_OUTPUT([Makefile src/Makefile doc/Makefile include/Makefile include/ao/Makefile include/ao/os_types.h src/plugins/Makefile src/plugins/esd/Makefile src/plugins/oss/Makefile src/plugins/alsa/Makefile src/plugins/sun/Makefile src/plugins/irix/Makefile src/plugins/arts/Makefile src/plugins/macosx/Makefile src/plugins/nas/Makefile src/plugins/pulse/Makefile src/plugins/sndio/Makefile src/plugins/roar/Makefile src/plugins/haiku/Makefile ao.pc]) + + AS_AC_EXPAND(LIBDIR, ${libdir}) + AS_AC_EXPAND(INCLUDEDIR, ${includedir}) +@@ -486,6 +497,7 @@ AC_MSG_RESULT([ + ALSA live output: ............ ${have_alsa} + ARTS live output: ............ ${have_arts} + ESD live output: ............. ${have_esd} ++ HAIKU live output: ........... ${have_haiku} + IRIX live output: ............ ${have_irix} + MACOSX live output: .......... ${have_macosx} + NAS live output: ............. ${have_nas} +diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am +index 1af2303..1b417d4 100644 +--- a/src/plugins/Makefile.am ++++ b/src/plugins/Makefile.am +@@ -1,4 +1,4 @@ + ## Process this file with automake to produce Makefile.in + + AUTOMAKE_OPTIONS = foreign +-SUBDIRS = oss esd arts alsa sun irix macosx nas pulse sndio roar ++SUBDIRS = oss esd arts alsa sun irix macosx nas pulse sndio roar haiku +diff --git a/src/plugins/haiku/Makefile.am b/src/plugins/haiku/Makefile.am +new file mode 100644 +index 0000000..596c664 +--- /dev/null ++++ b/src/plugins/haiku/Makefile.am +@@ -0,0 +1,25 @@ ++## Process this file with automake to produce Makefile.in ++ ++AUTOMAKE_OPTIONS = foreign ++ ++if HAVE_HAIKU ++ ++haikultlibs = libhaiku.la ++haikusources = ao_haiku.cpp ++ ++else ++ ++haikultlibs = ++haikusources = ++ ++endif ++ ++INCLUDES = -I$(top_builddir)/include/ao -I$(top_srcdir)/include ++ ++libdir = $(plugindir) ++lib_LTLIBRARIES = $(haikultlibs) ++ ++libhaiku_la_LDFLAGS = @PLUGIN_LDFLAGS@ -lbe -lmedia ++libhaiku_la_SOURCES = $(haikusources) ++ ++EXTRA_DIST = ao_haiku.cpp +diff --git a/src/plugins/haiku/ao_haiku.cpp b/src/plugins/haiku/ao_haiku.cpp +new file mode 100644 +index 0000000..58d9dcb +--- /dev/null ++++ b/src/plugins/haiku/ao_haiku.cpp +@@ -0,0 +1,254 @@ ++/* ++ * ao_haiku.cpp ++ * ++ * Copyright (C) Julian Harnath - March 2014 ++ * ++ * This file is part of libao, a cross-platform audio output library. See ++ * README for a history of this source code. ++ * ++ * libao 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, or (at your option) ++ * any later version. ++ * ++ * libao 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 GNU Make; see the file COPYING. If not, write to ++ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. ++ * ++ ********************************************************************/ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++ ++static char* ao_haiku_options[] = { ++ "matrix" ++}; ++ ++ ++struct ao_info ao_haiku_info = { ++ AO_TYPE_LIVE, ++ "Haiku Media Kit Output", ++ "haiku", ++ "Julian Harnath ", ++ "Outputs to the Haiku Media Kit", ++ AO_FMT_NATIVE, ++ 30, ++ ao_haiku_options, ++ sizeof(ao_haiku_options) / sizeof(*ao_haiku_options) ++}; ++ ++ ++typedef struct ao_haiku_internal { ++ media_raw_audio_format* format; ++ BSoundPlayer* sound_player; ++ ++ sem_id new_buffer; ++ sem_id buffer_done; ++ ++ uint8* buffer; ++ size_t buffer_size; ++ size_t buffer_filled; ++} ao_haiku_internal; ++ ++ ++int ++ao_plugin_test() ++{ ++ BSoundPlayer testPlayer; ++ return testPlayer.InitCheck() == B_OK ? 1 :0; ++} ++ ++ ++ao_info* ++ao_plugin_driver_info() ++{ ++ return &ao_haiku_info; ++} ++ ++ ++int ++ao_plugin_device_init(ao_device* device) ++{ ++ ao_haiku_internal* const internal = (ao_haiku_internal*)calloc(1, ++ sizeof(ao_haiku_internal)); ++ if (internal == NULL) ++ return 0; ++ ++ internal->format = (media_raw_audio_format*)malloc( ++ sizeof(media_raw_audio_format)); ++ if (internal->format == NULL) { ++ free(internal); ++ return 0; ++ } ++ ++ internal->new_buffer = create_sem(0, "New buffer request"); ++ internal->buffer_done = create_sem(1, "Buffer done"); ++ ++ device->output_matrix_order = AO_OUTPUT_MATRIX_FIXED; ++ device->internal = internal; ++ ++ return 1; ++} ++ ++ ++int ++ao_plugin_set_option(ao_device* device, const char* key, const char* value) ++{ ++ return 1; ++} ++ ++ ++static void ++fill_buffer(void* cookie, void* buffer, size_t size, ++ const media_raw_audio_format& format) ++{ ++ ao_haiku_internal* const internal = (ao_haiku_internal*)cookie; ++ ++ internal->buffer = (uint8*)buffer; ++ internal->buffer_size = size; ++ internal->buffer_filled = 0; ++ release_sem(internal->new_buffer); ++ acquire_sem(internal->buffer_done); ++} ++ ++ ++int ++ao_plugin_open(ao_device* device, ao_sample_format* format) ++{ ++ ao_haiku_internal* const internal = (ao_haiku_internal*)device->internal; ++ media_raw_audio_format* const mediaRawFormat = internal->format; ++ ++ mediaRawFormat->frame_rate = format->rate; ++ mediaRawFormat->channel_count = device->output_channels; ++ ++ switch (format->bits) { ++ case 8: ++ mediaRawFormat->format = media_raw_audio_format::B_AUDIO_CHAR; ++ break; ++ case 16: ++ mediaRawFormat->format = media_raw_audio_format::B_AUDIO_SHORT; ++ break; ++ case 32: ++ mediaRawFormat->format = media_raw_audio_format::B_AUDIO_INT; ++ break; ++ default: ++ aerror("Unsupported sample bit depth"); ++ return 0; ++ } ++ ++ device->driver_byte_format = AO_FMT_NATIVE; ++ if (B_HOST_IS_LENDIAN) ++ mediaRawFormat->byte_order = B_MEDIA_LITTLE_ENDIAN; ++ else ++ mediaRawFormat->byte_order = B_MEDIA_BIG_ENDIAN; ++ ++ mediaRawFormat->buffer_size = BMediaRoster::Roster()->AudioBufferSizeFor( ++ mediaRawFormat->channel_count, mediaRawFormat->format, ++ mediaRawFormat->frame_rate, B_UNKNOWN_BUS) * 2; ++ ++ internal->sound_player = new BSoundPlayer(mediaRawFormat, "ao player", ++ fill_buffer, NULL, internal); ++ ++ if (internal->sound_player->InitCheck() != B_OK) { ++ delete internal->sound_player; ++ internal->sound_player = NULL; ++ return 0; ++ } ++ ++ internal->sound_player->SetVolume(1.0); ++ internal->sound_player->Start(); ++ internal->sound_player->SetHasData(false); ++ ++ if (device->inter_matrix == NULL) { ++ if (device->output_channels <= 2) ++ device->inter_matrix = strdup("L,R"); ++ } ++ ++ return 1; ++} ++ ++ ++int ++ao_plugin_play(ao_device* device, const char* output_samples, ++ uint_32 num_bytes) ++{ ++ ao_haiku_internal* const internal = (ao_haiku_internal*)device->internal; ++ BSoundPlayer* const soundPlayer = internal->sound_player; ++ ++ if (num_bytes == 0) { ++ soundPlayer->SetHasData(false); ++ return 1; ++ } ++ ++ soundPlayer->SetHasData(true); ++ acquire_sem(internal->new_buffer); ++ ++ size_t bytesLeft = num_bytes; ++ while (bytesLeft > 0) { ++ if (internal->buffer_filled == internal->buffer_size) { ++ // Request another buffer from BSoundPlayer ++ release_sem(internal->buffer_done); ++ acquire_sem(internal->new_buffer); ++ } ++ ++ const size_t copyBytes = std::min(bytesLeft, internal->buffer_size ++ - internal->buffer_filled); ++ memcpy(internal->buffer + internal->buffer_filled, output_samples, ++ copyBytes); ++ internal->buffer_filled += copyBytes; ++ output_samples += copyBytes; ++ bytesLeft -= copyBytes; ++ } ++ ++ if (internal->buffer_filled < internal->buffer_size) { ++ // Continue filling this buffer the next time this function is called ++ release_sem(internal->new_buffer); ++ } else { ++ // Buffer is full ++ release_sem(internal->buffer_done); ++ soundPlayer->SetHasData(false); ++ } ++ ++ return 1; ++} ++ ++ ++int ++ao_plugin_close(ao_device* device) ++{ ++ ao_haiku_internal* const internal = (ao_haiku_internal*)device->internal; ++ ++ release_sem(internal->buffer_done); ++ internal->sound_player->SetHasData(false); ++ internal->sound_player->Stop(); ++ delete internal->sound_player; ++ ++ return 1; ++} ++ ++ ++void ++ao_plugin_device_clear(ao_device* device) ++{ ++ ao_haiku_internal* const internal = (ao_haiku_internal*)device->internal; ++ ++ free(internal->format); ++ delete_sem(internal->new_buffer); ++ delete_sem(internal->buffer_done); ++ free(internal); ++} +-- +1.8.3.4 + diff --git a/media-libs/libart_lgpl/libart_lgpl-2.3.21.recipe b/media-libs/libart_lgpl/libart_lgpl-2.3.21.recipe index 83ef89b8e..ed5b69483 100644 --- a/media-libs/libart_lgpl/libart_lgpl-2.3.21.recipe +++ b/media-libs/libart_lgpl/libart_lgpl-2.3.21.recipe @@ -1,33 +1,46 @@ SUMMARY="Libart is a library for high-performance 2D graphics" -DESCRIPTION="Libart is free software (all components are either GPL or LGPL). Libart is also available for commercial licensing. Libart supports a very powerful imaging model, basically the same as SVG and the Java 2D API. It includes all PostScript imaging operations, and adds antialiasing and alpha-transparency. Libart is also highly tuned for incremental rendering. It contains data structures and algorithms suited to rapid, precise computation of Region of Interest, as well as a two-phase rendering pipeline optimized for interactive display." +DESCRIPTION=" +Libart is free software (all components are either GPL or LGPL). Libart is \ +also available for commercial licensing. Libart supports a very powerful \ +imaging model, basically the same as SVG and the Java 2D API. It includes all \ +PostScript imaging operations, and adds antialiasing and alpha-transparency. \ +Libart is also highly tuned for incremental rendering. It contains data \ +structures and algorithms suited to rapid, precise computation of Region of \ +Interest, as well as a two-phase rendering pipeline optimized for interactive \ +display. +" HOMEPAGE="http://www.levien.com/libart/" SRC_URI="http://ftp.gnome.org/pub/gnome/sources/libart_lgpl/2.3/libart_lgpl-2.3.21.tar.gz" -CHECKSUM_MD5="722471ec8ae084af4293126d06b60880" +CHECKSUM_SHA256="2a10b1c884bb37c7bd5c5eba59dbd0d28bf68e64a42d7f2083c836f60f8e98fa" REVISION="1" LICENSE="GNU LGPL v2.1" COPYRIGHT="2001-2010 Mathieu Lacage and Raph Levien" -ARCHITECTURES="x86 x86_gcc2" +ARCHITECTURES="x86_gcc2 x86" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" PROVIDES=" - libart_lgpl= $portVersion - cmd:libart2_config = $portVersion compat >= 2 - lib:libart_lgpl_2 = 2.3.21 compat >= 2 - " + libart_lgpl$secondaryArchSuffix = $portVersion + lib:libart_lgpl_2$secondaryArchSuffix = 2.3.21 compat >= 2 + " + REQUIRES=" - haiku >= $haikuVersion + haiku$secondaryArchSuffix >= $haikuVersion " + BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion " + BUILD_PREREQUIRES=" - haiku_devel >= $haikuVersion cmd:aclocal cmd:autoreconf cmd:libtool cmd:make - cmd:ld - cmd:gcc + cmd:ld${secondaryArchSuffix} + cmd:gcc${secondaryArchSuffix} " + BUILD() { libtoolize --force --copy --install @@ -45,15 +58,18 @@ INSTALL() # devel package packageEntries devel \ - $developDir + $developDir \ + $binDir } # ----- devel package PROVIDES_devel=" - libart_lgpl_2 = $portVersion - devel:libart_lgpl_2 = 2.3.21 compat >= 2 + libart_lgpl_2$secondaryArchSuffix = $portVersion + devel:libart_lgpl_2$secondaryArchSuffix = 2.3.21 compat >= 2 + cmd:libart2_config$secondaryArchSuffix = $portVersion compat >= 2 " + REQUIRES_devel=" - libart_lgpl_2 == $portVersion base + libart_lgpl_2$secondaryArchSuffix == $portVersion base " diff --git a/media-libs/libaubio/libaubio-0.4.1.recipe b/media-libs/libaubio/libaubio-0.4.1.recipe new file mode 100644 index 000000000..ad9801676 --- /dev/null +++ b/media-libs/libaubio/libaubio-0.4.1.recipe @@ -0,0 +1,89 @@ +SUMMARY="A library to label music and sounds" +DESCRIPTION=" +aubio is a library to label music and sounds. It listens to audio signals and \ +attempts to detect events. For instance, when a drum is hit, at which frequency \ +is a note, or at what tempo is a rhythmic melody. + +Its features include segmenting a sound file before each of its attacks, \ +performing pitch detection, tapping the beat and producing midi streams from \ +live audio. +" +HOMEPAGE="http://aubio.org" +COPYRIGHT=" + 2003-2013 Paul Brossier + " +LICENSE="GNU GPL v3" +SRC_URI="http://aubio.org/pub/aubio-$portVersion.tar.bz2" +CHECKSUM_SHA256="25d7df0a9cd6366fda764a803424caddf5fb819fc75b42a7a03e1e6f8eb3c695" +REVISION="1" +ARCHITECTURES="?x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="?x86_gcc2 x86" + +SOURCE_DIR="aubio-$portVersion" + +PATCHES="libaubio-$portVersion.patchset" + +PROVIDES=" + libaubio$secondaryArchSuffix = $portVersion compat >= 0 + lib:libaubio$secondaryArchSuffix = 4.1.1 compat >= 4 + " +if [ -z "$secondaryArchSuffix" ]; then +PROVIDES="$PROVIDES + cmd:aubiomfcc = $portVersion compat >= 0 + cmd:aubionotes = $portVersion compat >= 0 + cmd:aubioonset = $portVersion compat >= 0 + cmd:aubiopitch = $portVersion compat >= 0 + cmd:aubioquiet = $portVersion compat >= 0 + cmd:aubiotrack = $portVersion compat >= 0 + " +fi + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion +# lib:libsamplerate$secondaryArchSuffix + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion +# devel:libsamplerate$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:python + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:pkg_config$secondaryArchSuffix + " + +BUILD() +{ + echo $includeDir + runConfigure --omit-buildspec ./waf configure \ + --with-target-platform=$effectiveTargetMachineTriple + ./waf build +} + +INSTALL() +{ + ./waf install + + prepareInstalledDevelLibs libaubio + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir + + #remove bin commands when building for secondary arch + if [ -n "$secondaryArchSuffix" ];then + rm -rf $prefix/bin + fi +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + libaubio${secondaryArchSuffix}_devel = $portVersion compat >= 0 + devel:libaubio$secondaryArchSuffix = 4.1.1 compat >= 4 + " +REQUIRES_devel=" + libaubio$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/libaubio/patches/libaubio-0.4.1.patchset b/media-libs/libaubio/patches/libaubio-0.4.1.patchset new file mode 100644 index 000000000..586bec539 --- /dev/null +++ b/media-libs/libaubio/patches/libaubio-0.4.1.patchset @@ -0,0 +1,79 @@ +From 0dc450424ce8c66628b22790656fc4f3577f80e7 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Mon, 19 May 2014 19:39:09 +0000 +Subject: Haiku has no libm + + +diff --git a/examples/wscript_build b/examples/wscript_build +index db5fed6..3f573cc 100644 +--- a/examples/wscript_build ++++ b/examples/wscript_build +@@ -17,7 +17,7 @@ bld(features = 'c', + for source_file in programs_source: + bld(features = 'c cprogram', + includes = '../src', +- lib = 'm', ++ lib = '', + use = ['aubio', 'utilsio'], + source = source_file, + target = str(source_file).split('.')[0] +diff --git a/src/wscript_build b/src/wscript_build +index 94b2062..2b9b60d 100644 +--- a/src/wscript_build ++++ b/src/wscript_build +@@ -15,7 +15,7 @@ ctx(features = 'c', + source = source, + includes = ['.'], + uselib = uselib, +- lib = 'm', ++ lib = '', + target = 'lib_objects') + + # build libaubio.so (cshlib) and/or libaubio.a (cstlib) +@@ -29,7 +29,7 @@ else: #linux, darwin, android, mingw, ... + for target in build_features: + ctx(features = 'c ' + target, + use = ['lib_objects'], +- lib = 'm', ++ lib = '', + target = 'aubio', + install_path = '${PREFIX}/lib', + vnum = ctx.env['LIB_VERSION']) +diff --git a/tests/wscript_build b/tests/wscript_build +index 04bbf9a..8a8c625 100644 +--- a/tests/wscript_build ++++ b/tests/wscript_build +@@ -6,7 +6,7 @@ for target_name in ctx.path.ant_glob('src/**/*.c'): + extra_source = [] + + bld(features = 'c cprogram test', +- lib = 'm', ++ lib = '', + uselib = uselib, + source = [target_name] + extra_source, + target = str(target_name).split('.')[0], +-- +1.8.3.4 + + +From 3d07ca19c7c3ec7044417c062553d3ea02375d17 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Mon, 19 May 2014 23:15:04 +0000 +Subject: fix headers installation + + +diff --git a/src/wscript_build b/src/wscript_build +index 2b9b60d..194345d 100644 +--- a/src/wscript_build ++++ b/src/wscript_build +@@ -35,6 +35,6 @@ for target in build_features: + vnum = ctx.env['LIB_VERSION']) + + # install headers, except _priv.h ones +-ctx.install_files('${PREFIX}/include/aubio/', ++ctx.install_files('${INCLUDEDIR}/aubio/', + ctx.path.ant_glob('**/*.h', excl = ['**_priv.h', 'config.h']), + relative_trick=True) +-- +1.8.3.4 + diff --git a/media-libs/libcoverart/libcoverart-1.0.0.recipe b/media-libs/libcoverart/libcoverart-1.0.0.recipe index 3cba4dded..a8987319e 100644 --- a/media-libs/libcoverart/libcoverart-1.0.0.recipe +++ b/media-libs/libcoverart/libcoverart-1.0.0.recipe @@ -1,31 +1,72 @@ -DESCRIPTION="Development library geared towards developers who wish to add cover art capabilites to their applications." -HOMEPAGE="http://" +SUMMARY="Library for handling cover art for audio files" +DESCRIPTION=" +Development library geared towards developers who wish to add cover art \ +capabilites to their applications. +" +HOMEPAGE="http://musicbrainz.org/doc/libcoverart" SRC_URI="https://github.com/downloads/metabrainz/libcoverart/libcoverart-1.0.0.tar.gz" +CHECKSUM_SHA256="e4cb78939003a4b5e5c4db68e42e86fbbbea5e69d3166b43ca01a7065916a121" +LICENSE="GNU LGPL v2" +COPYRIGHT="2012 Andrew Hawkins" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="dev-libs/jansson >= 2.4 - net-misc/neon >= 0.29.6" -CHECKSUM_MD5="6380056bb4bc1a69790e706b4d506f50" + +ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="?x86 ?x86_64" + +PROVIDES=" + libcoverart = $portVersion + lib:libcoverart$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libjansson$secondaryArchSuffix + lib:libneon$secondaryArchSuffix + " + +BUILD_REQUIRES=" + devel:libjansson$secondaryArchSuffix + devel:libneon$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:cmake + cmd:gcc$secondaryArchSuffix + cmd:make + cmd:pkg_config$secondaryArchSuffix + " + +SOURCE_DIR="libcoverart-{PROJECT_VERSION}" + BUILD() { - cd libcoverart-{PROJECT_VERSION} - cmake . + cmake . make } INSTALL() { - cd libcoverart-{PROJECT_VERSION} make install + prepareInstalledDevelLibs libcoverart + fixPkgconfig + + packageEntries devel \ + $developDir } TEST() { - cd libcoverart-{PROJECT_VERSION} make test cd tests ./test } -LICENSE="GNU LGPL v2" -COPYRIGHT="2012 Andrew Hawkins" +PROVIDES_devel=" + libcoverart${secondaryArchSuffix}_devel = $portVersion + devel:libcoverart$secondaryArchSuffix = $portVersion + " + +REQUIRES_devel=" + libcoverart$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/libdvdcss/libdvdcss-1.2.10.recipe b/media-libs/libdvdcss/libdvdcss-1.2.10.recipe deleted file mode 100644 index 74e037a57..000000000 --- a/media-libs/libdvdcss/libdvdcss-1.2.10.recipe +++ /dev/null @@ -1,23 +0,0 @@ -DESCRIPTION="libdvdcss" -HOMEPAGE="http://www.videolan.org/developers/libdvdcss.html" -SRC_URI="http://download.videolan.org/pub/libdvdcss/1.2.10/libdvdcss-1.2.10.tar.gz" -CHECKSUM_MD5="7b03a9571c3a85d801330c7772cd69c4" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd libdvdcss-1.2.10 - libtoolize --force --copy --install - aclocal - autoconf - automake - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd libdvdcss-1.2.10 - make install -} diff --git a/media-libs/libdvdcss/libdvdcss-1.2.12.recipe b/media-libs/libdvdcss/libdvdcss-1.2.12.recipe index d2b3df7ec..dfc6bda65 100644 --- a/media-libs/libdvdcss/libdvdcss-1.2.12.recipe +++ b/media-libs/libdvdcss/libdvdcss-1.2.12.recipe @@ -1,23 +1,73 @@ -DESCRIPTION="libdvdcss" +SUMMARY="libdvdcss" +DESCRIPTION=" +libdvdcss is a simple library designed for accessing DVDs like a block device \ +without having to bother about the decryption. +" HOMEPAGE="http://www.videolan.org/developers/libdvdcss.html" +LICENSE="GNU GPL v2" +COPYRIGHT="Copyright (C) 1998-2008 VideoLAN" SRC_URI="http://download.videolan.org/pub/libdvdcss/1.2.12/libdvdcss-1.2.12.tar.bz2" -CHECKSUM_MD5="2218a193900e3203aa10dc24cdf54275" +CHECKSUM_SHA256="72465395d494f609b180cab23f9679acf6083fb821bd84979a8e70f7b795db5d" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 ?x86" + +PATCHES="libdvdcss-${portVersion}.patch" + +PROVIDES=" + libdvdcss${secondaryArchSuffix} = $portVersion + lib:libdvdcss + cmd:dvdcss_config + " + +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc${secondaryArchSuffix} + cmd:ld${secondaryArchSuffix} + cmd:make + cmd:libtoolize + cmd:aclocal + cmd:autoconf + " + +SOURCE_DIR="libdvdcss-${portVersion}" + BUILD() { - cd libdvdcss-1.2.12 libtoolize --force --copy --install aclocal autoconf automake - ./configure --prefix=`finddir B_COMMON_DIRECTORY` + runConfigure ./configure make } INSTALL() { - cd libdvdcss-1.2.12 make install -} + + # prepare develop/lib + prepareInstalledDevelLibs libdvdcss + fixPkgconfig + + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + libdvdcss${secondaryArchSuffix}_devel = $portVersion + devel:libdvdcss${secondaryArchSuffix} = $portVersion + " +REQUIRES_devel=" + libdvdcss${secondaryArchSuffix} == $portVersion base + " + diff --git a/media-libs/libdvdcss/patches/libdvdcss-1.2.10.patch b/media-libs/libdvdcss/patches/libdvdcss-1.2.10.patch deleted file mode 100644 index 9a3235803..000000000 --- a/media-libs/libdvdcss/patches/libdvdcss-1.2.10.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN libdvdcss-1.2.10/configure.ac libdvdcss-1.2.10-haiku/configure.ac ---- libdvdcss-1.2.10/configure.ac 2009-02-28 19:51:59.000000000 +0000 -+++ libdvdcss-1.2.10-haiku/configure.ac 2009-02-28 19:39:44.000000000 +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.) - ;; - x*msvc*) diff --git a/media-libs/libdvdcss/patches/libdvdcss-1.2.12.patch b/media-libs/libdvdcss/patches/libdvdcss-1.2.12.patch index ecfdd28be..33ce56c96 100644 --- a/media-libs/libdvdcss/patches/libdvdcss-1.2.12.patch +++ b/media-libs/libdvdcss/patches/libdvdcss-1.2.12.patch @@ -1,6 +1,15 @@ 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 +--- libdvdcss-1.2.12/configure.ac 2012-03-11 18:07:47.032505856 -0500 ++++ libdvdcss-1.2.12-haiku/configure.ac 2013-11-26 20:16:56.198180864 -0600 +@@ -5,7 +5,7 @@ + AC_CANONICAL_SYSTEM + + AM_INIT_AUTOMAKE(libdvdcss, 1.2.12) +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADERS(config.h) + + AC_PROG_CC + AC_STDC_HEADERS @@ -35,7 +35,7 @@ AC_DEFINE(SYS_CYGWIN, 1, Have a Cygwin system.)) AC_DEFINE(WIN32, 1, Using Win32.) diff --git a/media-libs/libdvdnav/libdvdnav-4.1.3.recipe b/media-libs/libdvdnav/libdvdnav-4.1.3.recipe deleted file mode 100644 index 31ec8bbc1..000000000 --- a/media-libs/libdvdnav/libdvdnav-4.1.3.recipe +++ /dev/null @@ -1,26 +0,0 @@ -DESCRIPTION="libdvdnav" -HOMEPAGE="http://www.mplayerhq.hu/design7/news.html" -SRC_URI="http://www.mplayerhq.hu/MPlayer/releases/dvdnav/libdvdnav-4.1.3.tar.bz2" -CHECKSUM_MD5="d62383c45b28816771e283515f2c27fa" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="media-libs/libdvdcss >= 1.20.10 - media-libs/libdvdread >= 4.1.3" -BUILD() -{ - cd libdvdnav-4.1.3 - ./autogen.sh - CFLAGS="-I/boot/common/include -DHAVE_DVDCSS_DVDCSS_H " \ - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd libdvdnav-4.1.3 - make install -} - -LICENSE="GNU GPL v2" -COPYRIGHT="2000 Rich Wareham - 2001-2004 the dvdnav project" diff --git a/media-libs/libdvdnav/libdvdnav-4.2.0.recipe b/media-libs/libdvdnav/libdvdnav-4.2.0.recipe index acd52cd0d..86105c68c 100644 --- a/media-libs/libdvdnav/libdvdnav-4.2.0.recipe +++ b/media-libs/libdvdnav/libdvdnav-4.2.0.recipe @@ -1,27 +1,81 @@ -DESCRIPTION="libdvdnav" -HOMEPAGE="http://www.mplayerhq.hu/design7/news.html" +SUMMARY="Easy use of sophisticated DVD navigation features" +DESCRIPTION=" +libdvdnav allows easy use of sophisticated DVD navigation features such as \ +DVD menus, multiangle playback and even interactive DVD games. +" +HOMEPAGE="http://dvdnav.mplayerhq.hu/" +LICENSE="GNU GPL v2" +COPYRIGHT="2000 Rich Wareham + 2001-2004 the dvdnav project" SRC_URI="http://dvdnav.mplayerhq.hu/releases/libdvdnav-4.2.0.tar.bz2" -CHECKSUM_MD5="53be8903f9802e101929a3451203bbf6" +CHECKSUM_SHA256="8c971b08276c89ddcecd26fc44204460fd250dc57346f03476d3077188c47550" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="media-libs/libdvdcss >= 1.20.10 - media-libs/libdvdread >= 4.2.0" + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 ?x86" + +PATCHES="libdvdnav-${portVersion}.patch" + +PROVIDES=" + libdvdnav${secondaryArchSuffix} = $portVersion + lib:libdvdnav + cmd:dvdnav_config + " + +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + libdvdread${secondaryArchSuffix} + libdvdcss${secondaryArchSuffix} + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + libdvdread${secondaryArchSuffix}_devel + libdvdcss${secondaryArchSuffix}_devel + cmd:gcc${secondaryArchSuffix} + cmd:ld${secondaryArchSuffix} + cmd:make + cmd:libtoolize + cmd:aclocal + cmd:autoconf + " + +SOURCE_DIR="libdvdnav-${portVersion}" + 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 + runConfigure ./configure --enable-shared --enable-static + make $jobArgs } INSTALL() { - cd libdvdnav-4.2.0 make install + + # move headers to the correct location + mkdir -p $(dirname $includeDir) + mv $prefix/include $includeDir/ + + # prepare develop/lib + prepareInstalledDevelLibs libdvdnav libdvdnavmini + fixPkgconfig + + packageEntries devel \ + $developDir } -LICENSE="GNU GPL v2" -COPYRIGHT="2000 Rich Wareham - 2001-2004 the dvdnav project" +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + libdvdnav${secondaryArchSuffix}_devel = $portVersion + devel:libdvdnav$secondaryArchSuffix = $portVersion + devel:libdvdnavmini$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + libdvdnav$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/libdvdnav/libdvdnav-4.2.1.recipe b/media-libs/libdvdnav/libdvdnav-4.2.1.recipe new file mode 100644 index 000000000..3b139d378 --- /dev/null +++ b/media-libs/libdvdnav/libdvdnav-4.2.1.recipe @@ -0,0 +1,82 @@ +SUMMARY="Easy use of sophisticated DVD navigation features" +DESCRIPTION=" +libdvdnav allows easy use of sophisticated DVD navigation features such as \ +DVD menus, multiangle playback and even interactive DVD games. +" +HOMEPAGE="http://dvdnav.mplayerhq.hu/" +LICENSE="GNU GPL v2" +COPYRIGHT="2000 Rich Wareham + 2001-2004 the dvdnav project" +SRC_URI="http://dvdnav.mplayerhq.hu/releases/libdvdnav-$portVersion.tar.xz" +CHECKSUM_SHA256="7fca272ecc3241b6de41bbbf7ac9a303ba25cb9e0c82aa23901d3104887f2372" +REVISION="1" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 ?x86" + +PATCHES="libdvdnav-4.2.0.patch" + +PROVIDES=" + libdvdnav${secondaryArchSuffix} = $portVersion + lib:libdvdnav + cmd:dvdnav_config + " + +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + libdvdread${secondaryArchSuffix} + libdvdcss${secondaryArchSuffix} + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + libdvdread${secondaryArchSuffix}_devel + libdvdcss${secondaryArchSuffix}_devel + cmd:gcc${secondaryArchSuffix} + cmd:ld${secondaryArchSuffix} + cmd:make + cmd:libtoolize + cmd:aclocal + cmd:autoconf + cmd:pkg_config + " + +SOURCE_DIR="libdvdnav-${portVersion}" + +BUILD() +{ + ./autogen.sh + runConfigure ./configure --enable-shared --enable-static + make $jobArgs +} + +INSTALL() +{ + make install + + # move headers to the correct location + mkdir -p $(dirname $includeDir) + mv $prefix/include $includeDir/ + + # prepare develop/lib + prepareInstalledDevelLibs libdvdnav libdvdnavmini + fixPkgconfig + + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + libdvdnav${secondaryArchSuffix}_devel = $portVersion + devel:libdvdnav$secondaryArchSuffix = $portVersion + devel:libdvdnavmini$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + libdvdnav$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/libdvdnav/patches/libdvdnav-4.1.3.patch b/media-libs/libdvdnav/patches/libdvdnav-4.1.3.patch deleted file mode 100644 index 8850c5401..000000000 --- a/media-libs/libdvdnav/patches/libdvdnav-4.1.3.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff -urN libdvdnav-4.1.3/configure.ac libdvdnav-4.1.3-haiku/configure.ac ---- libdvdnav-4.1.3/configure.ac 2009-02-19 07:41:01.000000000 +0000 -+++ libdvdnav-4.1.3-haiku/configure.ac 2009-02-19 07:33:27.000000000 +0000 -@@ -145,6 +145,8 @@ - ;; - *mingw32* | *cygwin*) - ;; -+ *haiku*) -+ ;; - *) - AC_CHECK_LIB(pthread, pthread_create, - [THREAD_LIBS="-lpthread"], -@@ -165,6 +167,8 @@ - *cygwin*) - LDFLAGS="-no-undefined $LDFLAGS" - ;; -+ *haiku*) -+ ;; - *) - AC_CHECK_LIB(c, dlopen, - DYNAMIC_LD_LIBS="", -diff -urN libdvdnav-4.1.3/src/remap.c libdvdnav-4.1.3-haiku/src/remap.c ---- libdvdnav-4.1.3/src/remap.c 2009-02-19 07:41:01.000000000 +0000 -+++ libdvdnav-4.1.3-haiku/src/remap.c 2009-02-19 08:35:48.000000000 +0000 -@@ -28,7 +28,7 @@ - - #ifndef _MSC_VER - #include --#include -+#include - #else - #ifndef MAXPATHLEN - #define MAXPATHLEN 255 diff --git a/media-libs/libdvdread/libdvdread-4.2.0.recipe b/media-libs/libdvdread/libdvdread-4.2.0.recipe index 0b149a165..131107030 100644 --- a/media-libs/libdvdread/libdvdread-4.2.0.recipe +++ b/media-libs/libdvdread/libdvdread-4.2.0.recipe @@ -1,27 +1,79 @@ -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 -} - +SUMMARY="A simple foundation for reading DVD video disks" +DESCRIPTION=" +libdvdread provides a simple foundation for reading DVD video disks. It \ +provides the functionality that is required to access many DVDs. libdvdread \ +parses IFO files, reads NAV-blocks, and performs CSS authentication and \ +descrambling (if an external libdvdcss library is installed). +" +HOMEPAGE="http://dvdnav.mplayerhq.hu" LICENSE="GNU GPL v2" COPYRIGHT="1998-1999 Eric Smith 2000-2002 Björn Englund 2000-2003 Håkan Hjort, et al." +SRC_URI="http://dvdnav.mplayerhq.hu/releases/libdvdread-4.2.0.tar.bz2" +CHECKSUM_SHA256="0bea15da842a4b04a482b009d72dcc6d9c9524ccc1bf67e5748319ec5ada8097" +REVISION="1" + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 ?x86" + +PATCHES="libdvdread-${portVersion}.patch" + +PROVIDES=" + libdvdread${secondaryArchSuffix} = $portVersion + lib:libdvdread + cmd:dvdread_config + " + +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc${secondaryArchSuffix} + cmd:ld${secondaryArchSuffix} + cmd:make + cmd:libtoolize + cmd:aclocal + cmd:autoconf + " + +SOURCE_DIR="libdvdread-${portVersion}" + +BUILD() +{ + ./autogen.sh + runConfigure ./configure --enable-shared --enable-static + make $jobArgs +} + +INSTALL() +{ + make install + + # move headers to the correct location + mkdir -p $(dirname $includeDir) + mv $prefix/include $includeDir/ + + # prepare develop/lib + prepareInstalledDevelLibs libdvdread + fixPkgconfig + + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + libdvdread${secondaryArchSuffix}_devel = $portVersion + devel:libdvdread$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + libdvdread$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/libdvdread/libdvdread-4.2.1.recipe b/media-libs/libdvdread/libdvdread-4.2.1.recipe new file mode 100644 index 000000000..be2de068d --- /dev/null +++ b/media-libs/libdvdread/libdvdread-4.2.1.recipe @@ -0,0 +1,79 @@ +SUMMARY="A simple foundation for reading DVD video disks" +DESCRIPTION=" +libdvdread provides a simple foundation for reading DVD video disks. It \ +provides the functionality that is required to access many DVDs. libdvdread \ +parses IFO files, reads NAV-blocks, and performs CSS authentication and \ +descrambling (if an external libdvdcss library is installed). +" +HOMEPAGE="http://dvdnav.mplayerhq.hu" +LICENSE="GNU GPL v2" +COPYRIGHT="1998-1999 Eric Smith + 2000-2002 Björn Englund + 2000-2003 Håkan Hjort, et al." +SRC_URI="http://dvdnav.mplayerhq.hu/releases/libdvdread-$portVersion.tar.xz" +CHECKSUM_SHA256="af9b98f049580a6521d56c978b736d3d609562dd12955e11d50e26d97542dcd4" +REVISION="1" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 ?x86" + +PATCHES="libdvdread-4.2.0.patch" + +PROVIDES=" + libdvdread${secondaryArchSuffix} = $portVersion + lib:libdvdread + cmd:dvdread_config + " + +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc${secondaryArchSuffix} + cmd:ld${secondaryArchSuffix} + cmd:make + cmd:libtoolize + cmd:aclocal + cmd:autoconf + " + +SOURCE_DIR="libdvdread-${portVersion}" + +BUILD() +{ + ./autogen.sh + runConfigure ./configure --enable-shared --enable-static + make $jobArgs +} + +INSTALL() +{ + make install + + # move headers to the correct location + mkdir -p $(dirname $includeDir) + mv $prefix/include $includeDir/ + + # prepare develop/lib + prepareInstalledDevelLibs libdvdread + fixPkgconfig + + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + libdvdread${secondaryArchSuffix}_devel = $portVersion + devel:libdvdread$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + libdvdread$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/libebur128/libebur128-1.0.1.recipe b/media-libs/libebur128/libebur128-1.0.1.recipe new file mode 100644 index 000000000..cbf386d89 --- /dev/null +++ b/media-libs/libebur128/libebur128-1.0.1.recipe @@ -0,0 +1,73 @@ +SUMMARY="A library implementing the EBU R128 loudness standard" +DESCRIPTION=" +libebur128 is a library that implements the EBU R 128 standard for loudness \ +normalisation. +" +HOMEPAGE="https://github.com/jiixyj/libebur128" +LICENSE="MIT" +COPYRIGHT="2011 Jan Kokemüller" +SRC_URI="https://github.com/jiixyj/libebur128/archive/v$portVersion.tar.gz" +SRC_FILENAME="$portVersionedName.tar.gz" +CHECKSUM_SHA256="01aa7aed90c593944eeb3087a6f965557dc708de360bf1a589b3babb021e7336" +REVISION="1" +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="?x86_gcc2 x86" + +PROVIDES=" + libebur128$secondaryArchSuffix = $portVersion + lib:libebur128$secondaryArchSuffix = 1.0.1 compat >= 1 + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +# lib:libspeexdsp$secondaryArchSuffix + +BUILD_REQUIRES=" + " +# devel:libspeexdsp$secondaryArchSuffix +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:cmake + cmd:make + cmd:pkg_config + cmd:sed + " + +PATCH() +{ + sed -i 's,include)','"develop/headers")', ebur128/CMakeLists.txt +} + +BUILD() +{ + rm -Rf build + mkdir build + cd build + cmake -DENABLE_INTERNAL_QUEUE_H=1 -DCMAKE_INSTALL_PREFIX:PATH=$prefix .. + make $jobArgs VERBOSE=1 +} + +INSTALL() +{ + cd build + make install + + prepareInstalledDevelLibs libebur128 + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + libebur128${secondaryArchSuffix}_devel = $portVersion + devel:libebur128$secondaryArchSuffix = 1.0.1 compat >= 1 + " +REQUIRES_devel=" + libebur128$secondaryArchSuffix == $portVersion + " diff --git a/media-libs/libharu/libharu-2.1.0.recipe b/media-libs/libharu/libharu-2.1.0.recipe deleted file mode 100644 index 95b94accc..000000000 --- a/media-libs/libharu/libharu-2.1.0.recipe +++ /dev/null @@ -1,26 +0,0 @@ -DESCRIPTION="C/C++ library for PDF generation" -HOMEPAGE="http://www.libharu.org/" -SRC_URI="http://libharu.org/files/libharu-2.1.0.tar.gz" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="app-arch/zlib >= 1.25 - media-libs/libpng >= 1.2.44" -CHECKSUM_MD5="0623b8fb08ae1b28af08b2cdbd66b662" -BUILD() -{ - cd libharu-2.1.0 - libtoolize --force --install --copy - aclocal - autoconf - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd libharu-2.1.0 - make install -} - -#LICENSE="" -#COPYRIGHT="" diff --git a/media-libs/libharu/libharu-2.3.0.recipe b/media-libs/libharu/libharu-2.3.0.recipe new file mode 100644 index 000000000..a52130444 --- /dev/null +++ b/media-libs/libharu/libharu-2.3.0.recipe @@ -0,0 +1,85 @@ +SUMMARY="C/C++ library for PDF generation" +DESCRIPTION=" +Haru is a free, cross platform, open-sourced software library for generating \ +PDF. It supports the following features. + 1. Generating PDF files with lines, text, images. + 2. Outline, text annotation, link annotation. + 3. Compressing document with deflate-decode. + 4. Embedding PNG, Jpeg images. + 5. Embedding Type1 font and TrueType font. + 6. Creating encrypted PDF files. + 7. Using various character set (ISO8859-1~16, MSCP1250~8, KOI8-R). + 8. Supporting CJK fonts and encodings. +" +HOMEPAGE="http://www.libharu.org/" +COPYRIGHT=" + 2000-2006 Takeshi Kanno + 2007-2009 Antony Dovgal et al. + " +LICENSE="Zlib" +SRC_URI="https://github.com/libharu/libharu/archive/RELEASE_2_3_0.tar.gz" +SRC_FILENAME="libharu-2.3.0.tar.gz" +CHECKSUM_SHA256="8f9e68cc5d5f7d53d1bc61a1ed876add1faf4f91070dbc360d8b259f46d9a4d2" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PATCHES="libharu-$portVersion.patchset" + +PROVIDES=" + libharu$secondaryArchSuffix = $portVersion compat >= 2 + lib:libhpdf$secondaryArchSuffix = 2.3.0 compat >= 2 + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libpng$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libpng$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:cmake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +SOURCE_DIR="libharu-RELEASE_2_3_0" + +BUILD() +{ + rm -rf build + mkdir build + cd build + + cmake -DCMAKE_INSTALL_PREFIX=$prefix .. + make $jobArgs +} + +INSTALL() +{ + cd build + make install + + mv $libDir/libhpdfs.a $libDir/libhpdf.a + mv $libDir/libhpdf.so $libDir/libhpdf.so.2.3 + ln -s libhpdf.so.2.3 $libDir/libhpdf.so + prepareInstalledDevelLibs libhpdf + + # devel package + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + libharu${secondaryArchSuffix}_devel = $portVersion compat >= 2 + devel:libhpdf$secondaryArchSuffix = 2.3.0 compat >= 2 + " +REQUIRES_devel=" + libharu$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/libharu/patches/libharu-2.1.0.patch b/media-libs/libharu/patches/libharu-2.1.0.patch deleted file mode 100644 index bd0f628fc..000000000 --- a/media-libs/libharu/patches/libharu-2.1.0.patch +++ /dev/null @@ -1,49 +0,0 @@ -diff -urN libharu-2.1.0/configure.in libharu-2.1.0-haiku/configure.in ---- libharu-2.1.0/configure.in 2008-05-27 18:23:31.013107200 +0000 -+++ libharu-2.1.0-haiku/configure.in 2010-09-25 20:01:55.000000000 +0000 -@@ -21,10 +21,10 @@ - dnl Check for header files - AC_CHECK_HEADERS(string.h strings.h unistd.h stdint.h) - --AC_CHECK_LIB([m], [floor], [LIBS="$LIBS -lm"], [AC_MSG_ERROR([can't continue without libm])]) -+AC_CHECK_LIB([m], [floor], [LIBS="$LIBS -lm"], [LIBS="$LIBS"]) - - DEFAULT_INSTALL_PREFIX="/usr/local" --STANDARD_PREFIXES="/usr /usr/local /opt /local" -+STANDARD_PREFIXES="/usr /usr/local /opt /local /boot/common" - - HPDF_MAJOR_VERSION=2 - HPDF_MINOR_VERSION=1 -diff -urN libharu-2.1.0/src/hpdf_u3d.c libharu-2.1.0-haiku/src/hpdf_u3d.c ---- libharu-2.1.0/src/hpdf_u3d.c 2008-05-27 18:23:31.051904512 +0000 -+++ libharu-2.1.0-haiku/src/hpdf_u3d.c 2010-09-25 20:13:02.000000000 +0000 -@@ -542,18 +542,19 @@ - return ret; - } - --#define normalize(x, y, z) \ --{ \ -- HPDF_REAL modulo; \ -- modulo = sqrtf(x*x + y*y + z*z); \ -- if (modulo != 0.0) \ -- { \ -- x = x/modulo; \ -- y = y/modulo; \ -- z = z/modulo; \ -- } \ -+void normalize(x, y, z) -+{ -+ HPDF_REAL modulo; -+ modulo = sqrtf(x*x + y*y + z*z); -+ if (modulo != 0.0) -+ { -+ x = x/modulo; -+ y = y/modulo; -+ z = z/modulo; -+ } - } - -+ - /* building the transformation matrix*/ - /* #1,#2,#3 centre of orbit coordinates (coo)*/ - /* #4,#5,#6 centre of orbit to camera direction vector (c2c)*/ diff --git a/media-libs/libharu/patches/libharu-2.3.0.patchset b/media-libs/libharu/patches/libharu-2.3.0.patchset new file mode 100644 index 000000000..fededf063 --- /dev/null +++ b/media-libs/libharu/patches/libharu-2.3.0.patchset @@ -0,0 +1,47 @@ +From 3ad4249e4222d11b2a919e8174a3de01c147f97c Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Wed, 4 Jun 2014 17:26:56 +0000 +Subject: haiku patch + + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 354ca75..cc1fef7 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -207,13 +207,9 @@ set( + ) + + # install header files +-install(FILES ${haru_HDRS} DESTINATION include) ++install(FILES ${haru_HDRS} DESTINATION "develop/headers") + + # install various files +-install(FILES README CHANGES INSTALL DESTINATION .) +-if(NOT DEVPAK) +- install(DIRECTORY if DESTINATION .) +-endif(NOT DEVPAK) + if(DEVPAK) + install(FILES ${CMAKE_BINARY_DIR}/libharu.DevPackage DESTINATION .) + endif(DEVPAK) +diff --git a/cmake/modules/haru.cmake b/cmake/modules/haru.cmake +index 95647b9..0495d6c 100644 +--- a/cmake/modules/haru.cmake ++++ b/cmake/modules/haru.cmake +@@ -27,11 +27,11 @@ check_include_files(unistd.h LIBHPDF_HAVE_UNISTD_H) + # ======================================================================= + # On windows systems the math library is not separated so do not specify + # it unless you are on a non-windows system. +-if(NOT WIN32) ++if(NOT WIN32 AND NOT HAIKU) + find_library(MATH_LIB NAMES m PATHS /usr/local/lib /usr/lib) + if(NOT MATH_LIB) + message(FATAL_ERROR "Cannot find required math library") + endif(NOT MATH_LIB) +-else(NOT WIN32) ++else(NOT WIN32 AND NOT HAIKU) + set(MATH_LIB) +-endif(NOT WIN32) ++endif(NOT WIN32 AND NOT HAIKU) +-- +1.8.3.4 + diff --git a/media-libs/libid3tag/libid3tag-0.15.1b.recipe b/media-libs/libid3tag/libid3tag-0.15.1b.recipe index 207c25f23..dba9704d1 100644 --- a/media-libs/libid3tag/libid3tag-0.15.1b.recipe +++ b/media-libs/libid3tag/libid3tag-0.15.1b.recipe @@ -1,32 +1,62 @@ +SUMMARY="The MAD id3tag library" DESCRIPTION="The MAD id3tag library" HOMEPAGE="http://www.underbit.com/products/mad/" -SRC_URI="ftp://ftp.mars.org/pub/mpeg/libid3tag-0.15.1b.tar.gz" +SRC_URI="ftp://ftp.mars.org/pub/mpeg/$portName-$portVersion.tar.gz" +CHECKSUM_SHA256="63da4f6e7997278f8a3fef4c6a372d342f705051d1eeb6a46a86b03610e26151" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -CHECKSUM_MD5="e5808ad997ba32c498803822078748c3" +ARCHITECTURES="x86_gcc2" + +PROVIDES=" + $portName = $portVersion + lib:libid3tag = 0.3.0 compat = 0 +" + +REQUIRES=" + haiku >= $haikuVersion + lib:libz + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:libz + " +BUILD_PREREQUIRES=" + cmd:libtoolize + cmd:autoconf + cmd:make + cmd:gcc + " + +PATCHES="$portName-$portVersion.patchset" BUILD() { - cd libid3tag-0.15.1b libtoolize --force --copy --install aclocal autoconf - ./configure --prefix=`finddir B_COMMON_DIRECTORY` + runConfigure ./configure make } INSTALL() { - cd libid3tag-0.15.1b make install + prepareInstalledDevelLib libid3tag + packageEntries devel $developDir } TEST() { - cd libid3tag-0.15.1b -# make test -# make check + make test + make check } LICENSE="GNU GPL v2" COPYRIGHT="2000-2004 Underbit Technologies, Inc." + +PROVIDES_devel=" + devel:libid3tag +" + +REQUIRES_devel=" + $portName == $portVersion base +" diff --git a/media-libs/libid3tag/patches/libid3tag-0.15.1b.patchset b/media-libs/libid3tag/patches/libid3tag-0.15.1b.patchset new file mode 100644 index 000000000..bc3650265 --- /dev/null +++ b/media-libs/libid3tag/patches/libid3tag-0.15.1b.patchset @@ -0,0 +1,22 @@ +From 2e29df8743bf7230cc122b0a6a255f625e8f46a7 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 30 Mar 2014 13:20:55 +0200 +Subject: AM_CONFIG_HEADER > AC_CONFIG_HEADER + + +diff --git a/configure.ac b/configure.ac +index a0a0237..a754f06 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -28,7 +28,7 @@ AC_CONFIG_SRCDIR([id3tag.h]) + + AM_INIT_AUTOMAKE + +-AM_CONFIG_HEADER([config.h]) ++AC_CONFIG_HEADER([config.h]) + + dnl System type. + +-- +1.8.3.4 + diff --git a/media-libs/libiptcdata/libiptcdata-1.0.4.recipe b/media-libs/libiptcdata/libiptcdata-1.0.4.recipe new file mode 100644 index 000000000..579d1f6a2 --- /dev/null +++ b/media-libs/libiptcdata/libiptcdata-1.0.4.recipe @@ -0,0 +1,74 @@ +SUMMARY="Library for IPTC metadata manipulation" +DESCRIPTION=" +libiptcdata is a library, written in C, for manipulating the International \ +Press Telecommunications Council (IPTC) metadata stored within multimedia \ +files such as images. This metadata can include captions and keywords, often \ +used by popular photo management applications. The library provides routines \ +for parsing, viewing, modifying, and saving this metadata. +" +HOMEPAGE="http://libiptcdata.sourceforge.net/" +COPYRIGHT=" + 2005 David Moore + " +LICENSE="GNU LGPL v2.1" +SRC_URI="http://prdownloads.sourceforge.net/libiptcdata/libiptcdata-1.0.4.tar.gz?download" +CHECKSUM_SHA256="79f63b8ce71ee45cefd34efbb66e39a22101443f4060809b8fc29c5eebdcee0e" +SRC_FILENAME="libiptcdata-1.0.4.tar.gz" +REVISION="1" +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + libiptcdata = $portVersion + cmd:iptc = $portVersion + lib:libiptcdata = 0.3.3 + " +REQUIRES=" + haiku >= $haikuVersion + lib:libiconv + lib:libintl + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:libiconv + " +BUILD_PREREQUIRES=" + cmd:gcc + cmd:ld + cmd:make + cmd:libtool + cmd:autoconf + cmd:automake + " +PATCHES="libiptcdata-1.0.4.patch" + +BUILD() +{ + libtoolize --force --copy --install + aclocal -I m4 + autoconf + automake + runConfigure ./configure --disable-gtk-doc --enable-static --enable-shared + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libiptcdata + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + libiptcdata_devel = $portVersion + devel:libiptcdata = 0.3.3 + " +REQUIRES_devel=" + libiptcdata == $portVersion base + " diff --git a/media-libs/libiptcdata/patches/libiptcdata-1.0.4.patch b/media-libs/libiptcdata/patches/libiptcdata-1.0.4.patch new file mode 100644 index 000000000..d29456cd1 --- /dev/null +++ b/media-libs/libiptcdata/patches/libiptcdata-1.0.4.patch @@ -0,0 +1,45 @@ +diff --git a/configure.in b/configure.in +index a1c58ab..2d8a3b1 100644 +--- a/configure.in ++++ b/configure.in +@@ -1,6 +1,6 @@ + AC_PREREQ(2.50) + AC_INIT(libiptcdata/iptc-data.h) +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADERS(config.h) + AM_INIT_AUTOMAKE(libiptcdata, 1.0.4) + AM_MAINTAINER_MODE + +@@ -75,7 +75,7 @@ dnl Check for headers (Mac OSX often doesn't have them) + AC_CHECK_HEADERS([getopt.h wchar.h iconv.h]) + + +-GTK_DOC_CHECK([1.0]) ++dnl GTK_DOC_CHECK([1.0]) + + + dnl --------------------------------------------------------------------------- +diff --git a/Makefile.am b/Makefile.am +index 192529a..504ed54 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -7,4 +7,4 @@ SUBDIRS = m4 libiptcdata po iptc docs win $(MAYBE_PYTHONLIB) + EXTRA_DIST = @PACKAGE@.spec + + ACLOCAL_AMFLAGS = -I m4 +-DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc ++DISTCHECK_CONFIGURE_FLAGS = +diff --git a/docs/reference/Makefile.am b/docs/reference/Makefile.am +index f91793a..1f52449 100644 +--- a/docs/reference/Makefile.am ++++ b/docs/reference/Makefile.am +@@ -42,7 +42,7 @@ content_files = \ + libjpeg.sgml \ + overview.sgml + +-include $(top_srcdir)/gtk-doc.make ++include + +-EXTRA_DIST += \ ++EXTRA_DIST = \ + version.xml.in diff --git a/media-libs/liblo/liblo-0.28.recipe b/media-libs/liblo/liblo-0.28.recipe new file mode 100644 index 000000000..20c26f40a --- /dev/null +++ b/media-libs/liblo/liblo-0.28.recipe @@ -0,0 +1,74 @@ +SUMMARY="Lightweight OSC (Open Sound Control) Implementation" +DESCRIPTION=" +liblo is a lightweight library that provides an easy to use implementation of \ +the OSC protocol. +" +HOMEPAGE="http://plugin.org.uk/liblo" +COPYRIGHT=" + 2008-2012 Stephen Sinclair + 2008 Kentaro Fukuchi + 2005-2008 Nicholas Humfrey + 2005 Martin Habets + 2005-2006 Steve Harris" +LICENSE="GNU LGPL v2.1" +SRC_URI="http://prdownloads.sourceforge.net/liblo/$portVersionedName.tar.gz" +CHECKSUM_SHA256="da94a9b67b93625354dd89ff7fe31e5297fc9400b6eaf7378c82ee1caf7db909" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PATCHES="$portVersionedName.patchset" + +PROVIDES=" + liblo$secondaryArchSuffix = $portVersion compat >= 0 + cmd:oscdump + cmd:oscsend + lib:liblo$secondaryArchSuffix = 7.2.0 compat >= 7 + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:make + cmd:find + " + +BUILD() +{ + libtoolize --force --copy --install + aclocal + autoconf + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs liblo + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + liblo${secondaryArchSuffix}_devel = $portVersion compat >= 0 + devel:liblo$secondaryArchSuffix = 7.2.0 compat >= 7 + " +REQUIRES_devel=" + liblo$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/liblo/patches/liblo-0.28.patchset b/media-libs/liblo/patches/liblo-0.28.patchset new file mode 100644 index 000000000..d38db784b --- /dev/null +++ b/media-libs/liblo/patches/liblo-0.28.patchset @@ -0,0 +1,209 @@ +From 5e7d6dc8d32f0189a3385cb824030cb6c500e869 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Tue, 20 May 2014 16:30:21 +0000 +Subject: haiku patch + + +diff --git a/configure.ac b/configure.ac +index c487d18..80bf8da 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -139,7 +139,7 @@ else + fi + + # Checks for libraries. +-AC_SEARCH_LIBS([recvfrom], [socket]) ++AC_SEARCH_LIBS([recvfrom], [socket network]) + AC_CHECK_FUNC([log], [], [AC_CHECK_LIB([m],[log])]) + AC_CHECK_FUNCS([getifaddrs]) + +-- +1.8.3.4 + + +From dcc0e8c2cbd9453252c3dbed013683f3573ad384 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Tue, 20 May 2014 16:51:04 +0000 +Subject: check getifaddrs + + +diff --git a/lo/lo_cpp.h b/lo/lo_cpp.h +index 79db0b6..7675380 100644 +--- a/lo/lo_cpp.h ++++ b/lo/lo_cpp.h +@@ -184,12 +184,19 @@ namespace lo { + + std::string url() const + { return std::string(lo_address_get_url(address)?:""); } +- ++#ifdef HAVE_GETIFADDRS + std::string iface() const + { return std::string(lo_address_get_iface(address)?:""); } + + void set_iface(const string_type &iface, const string_type &ip) + { lo_address_set_iface(address, iface._s?:0, ip._s?:0); } ++#else ++ std::string iface() const ++ { return std::string(""); } ++ ++ void set_iface(const string_type &iface, const string_type &ip) ++ { } ++#endif + + int set_tcp_nodelay(int enable) + { return lo_address_set_tcp_nodelay(address, enable); } +-- +1.8.3.4 + + +From 4e66b251cb3f6c37418e413476082efddfd0710b Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Tue, 20 May 2014 22:09:52 +0000 +Subject: gcc2 build fix + + +diff --git a/examples/example_tcp_echo_server.c b/examples/example_tcp_echo_server.c +index 93af99b..b675e92 100644 +--- a/examples/example_tcp_echo_server.c ++++ b/examples/example_tcp_echo_server.c +@@ -46,6 +46,9 @@ void ctrlc(int sig) + + int main(int argc, char *argv[]) + { ++ lo_server_thread st; ++ lo_server s; ++ lo_address a = 0; + const char *port = "7770"; + int do_send = 0; + +@@ -55,13 +58,13 @@ int main(int argc, char *argv[]) + } + + /* start a new server on port 7770 */ +- lo_server_thread st = lo_server_thread_new_with_proto(port, LO_TCP, error); ++ st = lo_server_thread_new_with_proto(port, LO_TCP, error); + if (!st) { + printf("Could not create server thread.\n"); + exit(1); + } + +- lo_server s = lo_server_thread_get_server(st); ++ s = lo_server_thread_get_server(st); + + /* add method that will match the path /quit with no args */ + lo_server_thread_add_method(st, "/quit", "", quit_handler, NULL); +@@ -75,14 +78,14 @@ int main(int argc, char *argv[]) + + printf("Listening on TCP port %s\n", port); + +- lo_address a = 0; + if (do_send) { ++ int r; + a = lo_address_new_with_proto(LO_TCP, "localhost", "7770"); + if (!a) { + printf("Error creating destination address.\n"); + exit(1); + } +- int r = lo_send_from(a, s, LO_TT_IMMEDIATE, "/test", "ifs", ++ r = lo_send_from(a, s, LO_TT_IMMEDIATE, "/test", "ifs", + 1, 2.0f, "3"); + if (r < 0) + printf("Error sending initial message.\n"); +@@ -115,6 +118,7 @@ int echo_handler(const char *path, const char *types, lo_arg ** argv, + int argc, void *data, void *user_data) + { + int i; ++ int r; + lo_message m = (lo_message)data; + lo_address a = lo_message_get_source(m); + lo_server s = (lo_server)user_data; +@@ -142,7 +146,7 @@ int echo_handler(const char *path, const char *types, lo_arg ** argv, + return 0; + } + +- int r = lo_send_message_from(a, s, path, m); ++ r = lo_send_message_from(a, s, path, m); + if (r < 0) + printf("Error sending back message, socket may have closed.\n"); + else +diff --git a/src/message.c b/src/message.c +index 7980ccf..28a2bd5 100644 +--- a/src/message.c ++++ b/src/message.c +@@ -259,6 +259,7 @@ int lo_message_add_varargs_internal(lo_message msg, const char *types, + } + } + #ifndef USE_ANSI_C ++{ + void *i = va_arg(ap, void *); + if (((unsigned long)i & 0xFFFFFFFFUL) + != ((unsigned long)LO_MARKER_A & 0xFFFFFFFFUL)) +@@ -281,6 +282,7 @@ int lo_message_add_varargs_internal(lo_message msg, const char *types, + "mismatching types and data at\n%s:%d, exiting.\n", file, + line); + } ++} + #endif + va_end(ap); + +diff --git a/src/server.c b/src/server.c +index 3d01e88..0521bfc 100644 +--- a/src/server.c ++++ b/src/server.c +@@ -1275,6 +1275,7 @@ int lo_server_wait(lo_server s, int timeout) + { + if (s->protocol == LO_TCP) + { ++ double diff; + int sock = accept(s->sockets[0].fd, + (struct sockaddr *) &addr, &addr_len); + +@@ -1286,7 +1287,7 @@ int lo_server_wait(lo_server s, int timeout) + + lo_timetag_now(&now); + +- double diff = lo_timetag_diff(now, then); ++ diff = lo_timetag_diff(now, then); + + sched_timeout = lo_server_next_event_delay(s) * 1000; + timeout -= (int)(diff*1000); +diff --git a/src/test_bidirectional_tcp.c b/src/test_bidirectional_tcp.c +index 0408df3..226595e 100644 +--- a/src/test_bidirectional_tcp.c ++++ b/src/test_bidirectional_tcp.c +@@ -28,6 +28,7 @@ int generic_handler(const char *path, const char *types, lo_arg ** argv, + + void *sendthread(void *arg) + { ++ lo_address a; + lo_server s = lo_server_new_with_proto("7772", LO_TCP, 0); + if (!s) { printf("no server2\n"); exit(1); } + +@@ -35,7 +36,7 @@ void *sendthread(void *arg) + + lo_server_add_method(s, 0, 0, generic_handler, s); + +- lo_address a = lo_address_new_with_proto(LO_TCP, "localhost", "7771"); ++ a = lo_address_new_with_proto(LO_TCP, "localhost", "7771"); + + lo_send_from(a, s, LO_TT_IMMEDIATE, "/test", 0); + +@@ -55,6 +56,7 @@ void *sendthread(void *arg) + + int main() + { ++ pthread_t thr; + /* start a new server on port 7770 */ + lo_server s = lo_server_new_with_proto("7771", LO_TCP, 0); + if (!s) { printf("no server\n"); exit(1); } +@@ -64,7 +66,6 @@ int main() + + printf("%p.server fd: %d\n", s, lo_server_get_socket_fd(s)); + +- pthread_t thr; + pthread_create(&thr, 0, sendthread, s); + + printf("%p.receiving1..\n", s); +-- +1.8.3.4 + diff --git a/media-libs/libmad/libmad-0.15.1b.recipe b/media-libs/libmad/libmad-0.15.1b.recipe index cae468cd4..5f0a6533c 100644 --- a/media-libs/libmad/libmad-0.15.1b.recipe +++ b/media-libs/libmad/libmad-0.15.1b.recipe @@ -1,13 +1,19 @@ SUMMARY="Mpeg Audio Decoder library" -DESCRIPTION="MAD is a high-quality MPEG audio decoder. It currently supports MPEG-1 and the MPEG-2 extension to lower sampling frequencies, as well as the de facto MPEG 2.5 format. All three audio layers -- Layer I, Layer II, and Layer III (i.e. MP3) -- are fully implemented." +DESCRIPTION=" +MAD is a high-quality MPEG audio decoder. It currently supports MPEG-1 and the \ +MPEG-2 extension to lower sampling frequencies, as well as the de facto MPEG \ +2.5 format. All three audio layers -- Layer I, Layer II, and Layer III (i.e. \ +MP3) -- are fully implemented. +" HOMEPAGE="http://mad.sourceforge.net/" SRC_URI="ftp://ftp.mars.org/pub/mpeg/libmad-0.15.1b.tar.gz" -CHECKSUM_MD5="1be543bc30c56fb6bea1d7bf6a64e66c" +CHECKSUM_SHA256="bbfac3ed6bfbc2823d3775ebb931087371e142bb0e9bb1bee51a76a6e0078690" LICENSE="GNU GPL v2" COPYRIGHT="2000-2004 Underbit Technologies, Inc." REVISION="1" ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" PROVIDES=" libmad$secondaryArchSuffix = $portVersion @@ -15,19 +21,19 @@ PROVIDES=" " REQUIRES=" - haiku + haiku$secondaryArchSuffix " BUILD_REQUIRES=" " BUILD_PREREQUIRES=" - haiku_devel + haiku${secondaryArchSuffix}_devel cmd:aclocal cmd:autoconf cmd:automake - cmd:gcc - cmd:ld + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix cmd:libtoolize cmd:make " diff --git a/media-libs/libmatroska/libmatroska-1.4.1.recipe b/media-libs/libmatroska/libmatroska-1.4.1.recipe new file mode 100644 index 000000000..6a1ea69d7 --- /dev/null +++ b/media-libs/libmatroska/libmatroska-1.4.1.recipe @@ -0,0 +1,68 @@ +SUMMARY="libmatroska is a C++ libary to parse Matroska files." +DESCRIPTION="libmatroska is a C++ libary to parse Matroska files." +HOMEPAGE="http://www.matroska.org/" +SRC_URI="http://dl.matroska.org/downloads/libmatroska/libmatroska-1.4.1.tar.bz2" +CHECKSUM_SHA256="086f21873e925679babdabf793c3bb85c353d0cd79423543a3355e08e8a4efb7" + +REVISION="1" + +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2005-2013 CoreCodec, Inc." + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + libmatroska$secondaryArchSuffix = $portVersion + lib:libmatroska$secondaryArchSuffix = 6 + " +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + lib:libebml$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libebml$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:sed + " + +PATCH() +{ + sed -i 's/^ifeq (BeOS/ifeq (Haiku/g' make/linux/Makefile + sed -i "s,/boot/home/config,$prefix,g" make/linux/Makefile + sed -i "s,^\(libdir\)=\(.*\)$,\1=$libDir,g" make/linux/Makefile + sed -i "s,^\(includedir\)=\(.*\)$,\1=$includeDir/matroska,g" \ + make/linux/Makefile + sed -i 's/-Wextra//g' make/linux/Makefile +} + +BUILD() +{ + cd make/linux + make $jobArgs \ + LIBEBML_INCLUDE_DIR=`finddir B_SYSTEM_DIRECTORY`/$relativeIncludeDir \ + LIBEBML_LIB_DIR=`finddir B_SYSTEM_DIRECTORY`/$relativeDevelopLibDir +} + +INSTALL() +{ + cd make/linux + make install + + prepareInstalledDevelLibs libmatroska + + packageEntries devel $developDir +} + +PROVIDES_devel=" + libmatroska${secondaryArchSuffix}_devel = $portVersion + devel:libmatroska$secondaryArchSuffix = 6 + " +REQUIRES_devel=" + libmatroska$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/libmikmod/libmikmod-3.1.11.recipe b/media-libs/libmikmod/libmikmod-3.1.11.recipe deleted file mode 100644 index 7768c5702..000000000 --- a/media-libs/libmikmod/libmikmod-3.1.11.recipe +++ /dev/null @@ -1,36 +0,0 @@ -DESCRIPTION="libmikmod is a lib for playing mod files" -HOMEPAGE="http://mikmod.raphnet.net" -SRC_URI="http://mikmod.raphnet.net/files/libmikmod-3.1.11.tar.gz" -CHECKSUM_MD5="705106da305e8de191549f1e7393185c" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd libmikmod-3.1.11 - rm aclocal.m4 - echo "AC_CONFIG_MACRO_DIR([m4])" >> configure.in - libtoolize --force --copy --install - 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 -} - -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/libmikmod/libmikmod-3.1.14.recipe b/media-libs/libmikmod/libmikmod-3.1.14.recipe new file mode 100644 index 000000000..c1b0eac5c --- /dev/null +++ b/media-libs/libmikmod/libmikmod-3.1.14.recipe @@ -0,0 +1,70 @@ +SUMMARY="libmikmod is a lib for playing mod files" +DESCRIPTION=" +libmikmod is a library supporting many formats, including mod, s3m, it, and xm. +" +HOMEPAGE="http://mikmod.sourceforge.net" +SRC_URI="http://sourceforge.net/projects/mikmod/files/libmikmod/3.1.14/libmikmod-3.1.14.tar.gz" +CHECKSUM_SHA256="fd78b67a74c802fee9040cd1f53d629beb985933585dd7d2f3bc69b069b321cd" +LICENSE="GNU LGPL v2.1" +COPYRIGHT="1998-2004 Jean-Paul Mikkers, Jake Stine, Frank Loemker, Steve McIntyre, Peter Amstutz, and Miodrag Vallat." +REVISION="1" + +ARCHITECTURES="x86_gcc2 x86 x86_64" + +PROVIDES=" + libmikmod = $portVersion compat >= 3.1 + lib:libmikmod = 2.0.5 compat >= 2 + " + +REQUIRES=" + haiku + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku_devel + cmd:gcc${secondaryArchSuffix} + cmd:ld${secondaryArchSuffix} + cmd:libtool + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:make + " + +BUILD() +{ + libtoolize --force --copy --install + aclocal --install -I m4 + autoconf + automake --add-missing + runConfigure ./configure + make +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libmikmod + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir $binDir/libmikmod-config \ + $dataDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + libmikmod_devel = $portVersion + cmd:libmikmod_config + devel:libmikmod = 2.0.5 compat >= 0 + " + +REQUIRES_devel=" + libmikmod == $portVersion base + " diff --git a/media-libs/libmikmod/libmikmod-3.3.3.recipe b/media-libs/libmikmod/libmikmod-3.3.3.recipe new file mode 100644 index 000000000..b4550673d --- /dev/null +++ b/media-libs/libmikmod/libmikmod-3.3.3.recipe @@ -0,0 +1,76 @@ +SUMMARY="libmikmod is a lib for playing mod files" +DESCRIPTION=" +libmikmod is a library supporting many formats, including mod, s3m, it, and xm. +" +HOMEPAGE="http://mikmod.sourceforge.net" +SRC_URI="http://sourceforge.net/projects/mikmod/files/libmikmod/3.3.3/libmikmod-3.3.3.tar.gz" +CHECKSUM_SHA256="79f02478c5abd8b2af73df4cc5f9d52625aa044327c01563168e270cf79b2437" +LICENSE="GNU LGPL v2.1" +COPYRIGHT="1998-2004 Jean-Paul Mikkers, Jake Stine, Frank Loemker, Steve McIntyre, Peter Amstutz, and Miodrag Vallat." +REVISION="2" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86 x86_64" + +PROVIDES=" + libmikmod$secondaryArchSuffix = $portVersion compat >= 3.3 + lib:libmikmod$secondaryArchSuffix = 3.2.0 compat >= 3 + " + +REQUIRES=" + haiku${secondaryArchSuffix} + lib:libsdl$secondaryArchSuffix + lib:libGL$secondaryArchSuffix + " + +BUILD_REQUIRES=" + devel:libsdl$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel + cmd:gcc$secondaryArchSuffix + cmd:libtool + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:make + " + +PATCHES="libmikmod-3.3.3.patch" + +BUILD() +{ + libtoolize --force --copy --install + aclocal --install -I m4 + autoconf + automake --add-missing + runConfigure ./configure --enable-sdl + make +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libmikmod + fixPkgconfig + fixDevelopLibDirReferences $binDir/libmikmod-config + + # devel package + packageEntries devel \ + $developDir $binDir/libmikmod-config \ + $dataDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + libmikmod${secondaryArchSuffix}_devel = $portVersion + cmd:libmikmod_config$secondaryArchSuffix + devel:libmikmod$secondaryArchSuffix = 3.2.0 compat >= 3 + " + +REQUIRES_devel=" + libmikmod$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/libmikmod/patches/libmikmod-3.3.3.patch b/media-libs/libmikmod/patches/libmikmod-3.3.3.patch new file mode 100644 index 000000000..793f3a8ed --- /dev/null +++ b/media-libs/libmikmod/patches/libmikmod-3.3.3.patch @@ -0,0 +1,30 @@ +--- a/configure.ac 2013-10-15 09:50:02.011796480 +0000 ++++ b/configure.ac 2013-11-08 21:25:01.681574400 +0000 +@@ -43,6 +43,7 @@ + libmikmod_openbsd=no + libmikmod_os2=no + libmikmod_djgpp=no ++libmikmod_haiku=no + + case $host_os in + mingw*) libmikmod_mingw=yes ;; +@@ -53,6 +54,7 @@ + openbsd*) libmikmod_openbsd=yes ;; + emx*) libmikmod_os2=yes;; + *djgpp) libmikmod_djgpp=yes ;; ++ haiku*) libmikmod_haiku=yes ;; + esac + + # ============================================================== +@@ -444,9 +446,9 @@ + ) + if test $libmikmod_cv_gcc_pthread = yes + then +- dnl There is no need for -pthread on darwin, and gcc ++ dnl There is no need for -pthread on darwin or haiku, and gcc + dnl complains about unrecognized option -pthread +- if test $libmikmod_darwin = no ++ if test $libmikmod_darwin = no && test $libmikmod_haiku = no + then + libmikmod_threads="" + CFLAGS="$CFLAGS -pthread" diff --git a/media-libs/libmkv/libmkv-0.6.5.1.recipe b/media-libs/libmkv/libmkv-0.6.5.1.recipe new file mode 100644 index 000000000..4734cdedf --- /dev/null +++ b/media-libs/libmkv/libmkv-0.6.5.1.recipe @@ -0,0 +1,67 @@ +SUMMARY="A lightweight Matroska muxer written for HandBrake" +DESCRIPTION=" +A lightweight Matroska muxer written for HandBrake. +" +HOMEPAGE="https://github.com/saintdev/libmkv" +COPYRIGHT="Copyright (C) 2007 libmkv" +LICENSE="GNU GPL v2" +SRC_URI="https://github.com/saintdev/libmkv/archive/0.6.5.1.tar.gz" +CHECKSUM_SHA256="41f08a08bab354f9834fda1dcdd1dcf4a0c67ad18021eb980f808654464cef00" +SRC_FILENAME="libmkv-0.6.5.1.tar.gz" +REVISION="1" + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 ?x86" + +PROVIDES=" + libmkv${secondaryArchSuffix} = $portVersion + lib:libmkv + " + +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc${secondaryArchSuffix} + cmd:ld${secondaryArchSuffix} + cmd:make + cmd:libtoolize + cmd:aclocal + cmd:autoconf + " + +SOURCE_DIR="libmkv-${portVersion}" + +BUILD() +{ + ./bootstrap.sh + runConfigure ./configure + make +} + +INSTALL() +{ + make install + + # prepare develop/lib + prepareInstalledDevelLibs libmkv + fixPkgconfig + + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + libmkv${secondaryArchSuffix}_devel = $portVersion + devel:libmkv${secondaryArchSuffix} = $portVersion + " +REQUIRES_devel=" + libmkv${secondaryArchSuffix} == $portVersion base + " diff --git a/media-libs/libmng/libmng-1.0.10.recipe b/media-libs/libmng/libmng-1.0.10.recipe index 044b8cf1d..17a189b25 100644 --- a/media-libs/libmng/libmng-1.0.10.recipe +++ b/media-libs/libmng/libmng-1.0.10.recipe @@ -1,10 +1,14 @@ SUMMARY="A PNG-like Image Format Supporting Multiple Image, Animation and Transparent JPEG" -DESCRIPTION="A PNG-like Image Format Supporting Multiple Image, Animation and Transparent JPEG" +DESCRIPTION=" +A PNG-like Image Format Supporting Multiple Image, Animation and Transparent \ +JPEG. +" HOMEPAGE="http://www.libmng.com" COPYRIGHT="2000-2007 Gerard Juyn" LICENSE="LIBMNG" SRC_URI="http://prdownloads.sourceforge.net/libmng/libmng-1.0.10.tar.gz?download" -CHECKSUM_MD5="a464ae7d679781beebdf7440d144b7bd" +CHECKSUM_SHA256="03a79dac9b9316d37227057614a248a946f997c4d1a3437fb569e9a63897f911" +SRC_FILENAME="libmng-1.0.10.tar.gz" REVISION="1" ARCHITECTURES="?x86_gcc2 ?x86" diff --git a/media-libs/libmodplug/libmodplug-0.8.8.4.recipe b/media-libs/libmodplug/libmodplug-0.8.8.4.recipe index 849df8f12..7716782ae 100644 --- a/media-libs/libmodplug/libmodplug-0.8.8.4.recipe +++ b/media-libs/libmodplug/libmodplug-0.8.8.4.recipe @@ -1,30 +1,32 @@ SUMMARY="libmodplug is a lib for playing mod files" -DESCRIPTION="Olivier Lapicque, author of Modplug, which is arguably the best quality -MOD-playing software available, has placed his sound rendering code in the -public domain. This library and plugin is based on that code. -- Plays 22 different mod formats, including: - MOD, S3M, XM, IT, 669, AMF (both of them), AMS, DBM, DMF, DSM, FAR, - MDL, MED, MTM, OKT, PTM, STM, ULT, UMX, MT2, PSM -- Plays zip, rar, gzip, and bzip2 compressed mods. The following - extensions are recognized: - zip: MDZ, S3Z, XMZ, ITZ - rar: MDR, S3R, XMR, ITR - gzip: MDGZ, S3GZ, XMGZ, ITGZ - You can also load plain old ZIP, RAR, and GZ files. If ModPlug finds - a mod in them, it will play it. - Note: To play these formats, you need to have the associated - decompression utilities (unzip, gunzip, unrar) installed. - Note(2): The format of the mod is NOT determined from the extension on - compressed mods. For example, if you zipped a UMX mod and gave it the - extension MDZ, it would work fine. -- plays timidity's GUS patch files (*.pat): - a multi sample pat file with n samples can be played with a Frere Jacques - canon with n voices. -- plays all types of MIDI files (*.mid): - uses the timidity .pat files for samples (when available)" +DESCRIPTION=" +Olivier Lapicque, author of Modplug, which is arguably the best quality \ +MOD-playing software available, has placed his sound rendering code in the \ +public domain. This library and plugin is based on that code. +Plays 22 different mod formats, including: +- MOD, S3M, XM, IT, 669, AMF (both of them), AMS, DBM, DMF, DSM, FAR, MDL, \ +MED, MTM, OKT, PTM, STM, ULT, UMX, MT2, PSM +Plays zip, rar, gzip, and bzip2 compressed mods. The following extensions are \ +recognized: +- zip: MDZ, S3Z, XMZ, ITZ +- rar: MDR, S3R, XMR, ITR +- gzip: MDGZ, S3GZ, XMGZ, ITGZ +- You can also load plain old ZIP, RAR, and GZ files. If ModPlug finds a mod \ +in them, it will play it. +- Note: To play these formats, you need to have the associated decompression \ +utilities (unzip, gunzip, unrar) installed. +- Note(2): The format of the mod is NOT determined from the extension on \ +compressed mods. For example, if you zipped a UMX mod and gave it the \ +extension MDZ, it would work fine. +Plays timidity's GUS patch files (*.pat): +- a multi sample pat file with n samples can be played with a Frere Jacques \ +canon with n voices. +Plays all types of MIDI files (*.mid): +- uses the timidity .pat files for samples (when available) +" 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" +CHECKSUM_SHA256="5c5ee13dddbed144be26276e5f102da17ff5b1c992f3100389983082da2264f7" LICENSE="Public Domain" COPYRIGHT="Public Domain" diff --git a/media-libs/libmp4v2/libmp4v2-2.0.0.recipe b/media-libs/libmp4v2/libmp4v2-2.0.0.recipe new file mode 100644 index 000000000..d74622119 --- /dev/null +++ b/media-libs/libmp4v2/libmp4v2-2.0.0.recipe @@ -0,0 +1,71 @@ +SUMMARY="A library that provides functions to read, create, and modify mp4 files" +DESCRIPTION=" +A library that provides functions to read, create, and modify mp4 files. +" +HOMEPAGE="https://code.google.com/p/mp4v2/" +LICENSE="MPL v1.1" +COPYRIGHT="Kona Blend, Copyright (C) 2008." +SRC_URI="https://mp4v2.googlecode.com/files/mp4v2-2.0.0.tar.bz2" +CHECKSUM_SHA256="0319b9a60b667cf10ee0ec7505eb7bdc0a2e21ca7a93db96ec5bd758e3428338" +REVISION="1" +ARCHITECTURES="!x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="!x86_gcc2 x86" + +PATCHES="libmp4v2-${portVersion}.patch" + +PROVIDES=" + libmp4v2${secondaryArchSuffix} = $portVersion + lib:libmp4v2 + cmd:dvdcss_config + " + +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc${secondaryArchSuffix} + cmd:ld${secondaryArchSuffix} + cmd:make + cmd:libtoolize + cmd:aclocal + cmd:autoconf + " + +SOURCE_DIR="mp4v2-${portVersion}" + +BUILD() +{ + libtoolize --force --copy --install + aclocal + autoconf + automake + runConfigure ./configure + make +} + +INSTALL() +{ + make install + + # prepare develop/lib + prepareInstalledDevelLibs libmp4v2 + fixPkgconfig + + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + libmp4v2${secondaryArchSuffix}_devel = $portVersion + devel:libmp4v2${secondaryArchSuffix} = $portVersion + " +REQUIRES_devel=" + libmp4v2${secondaryArchSuffix} == $portVersion base + " diff --git a/media-libs/libmp4v2/patches/libmp4v2-2.0.0.patch b/media-libs/libmp4v2/patches/libmp4v2-2.0.0.patch new file mode 100644 index 000000000..978944e3e --- /dev/null +++ b/media-libs/libmp4v2/patches/libmp4v2-2.0.0.patch @@ -0,0 +1,80 @@ +diff -Naur mp4v2-2.0.0/configure.ac mp4v2-2.0.0-haiku/configure.ac +--- mp4v2-2.0.0/configure.ac 2012-05-20 17:11:55.039845888 -0500 ++++ mp4v2-2.0.0-haiku/configure.ac 2013-11-26 23:36:14.129761280 -0600 +@@ -4,23 +4,23 @@ + + m4_include([project/project.m4sugar]) + +-m4_define([SVNINFO],m4_esyscmd([LANG=en svn info 2>/dev/null])) +- +-changequote(<<,>>)dnl +- m4_define(<>,m4_bregexp(SVNINFO,<<^URL: *\(.+\)>>,<<\1>>)) +- m4_define(<>,m4_bregexp(PRJ_repo_url,<<\([^/]+\)$>>,<<\1>>)) +- m4_define(<>,m4_bregexp(SVNINFO,<<^Repository Root: *\(.+\)>>,<<\1>>)) +- m4_define(<>,m4_bregexp(SVNINFO,<<^Repository UUID: *\(.+\)>>,<<\1>>)) +- m4_define(<>,m4_bregexp(SVNINFO,<<^Last Changed Rev: *\(.+\)>>,<<\1>>)) +- m4_define(<>,m4_bregexp(SVNINFO,<<^Last Changed Date: *\(.+\)>>,<<\1>>)) +- m4_define(<>,ifelse(m4_bregexp(PRJ_repo_url,<>),<<-1>>,<>,<>)) +-changequote([,])dnl +- +-m4_define([PRJ_version_hex],m4_format([0x%04x%02x%02x],PRJ_version_major,PRJ_version_minor,PRJ_version_point)) +- +-m4_define([PRJ_version],ifelse( +- PRJ_repo_type,[stable],m4_format([%s],PRJ_repo_branch), +- m4_format([%s-r%d],PRJ_repo_branch,PRJ_repo_rev))) ++#m4_define([SVNINFO],m4_esyscmd([LANG=en svn info 2>/dev/null])) ++# ++#changequote(<<,>>)dnl ++# m4_define(<>,m4_bregexp(SVNINFO,<<^URL: *\(.+\)>>,<<\1>>)) ++# m4_define(<>,m4_bregexp(PRJ_repo_url,<<\([^/]+\)$>>,<<\1>>)) ++# m4_define(<>,m4_bregexp(SVNINFO,<<^Repository Root: *\(.+\)>>,<<\1>>)) ++# m4_define(<>,m4_bregexp(SVNINFO,<<^Repository UUID: *\(.+\)>>,<<\1>>)) ++# m4_define(<>,m4_bregexp(SVNINFO,<<^Last Changed Rev: *\(.+\)>>,<<\1>>)) ++# m4_define(<>,m4_bregexp(SVNINFO,<<^Last Changed Date: *\(.+\)>>,<<\1>>)) ++# m4_define(<>,ifelse(m4_bregexp(PRJ_repo_url,<>),<<-1>>,<>,<>)) ++#changequote([,])dnl ++# ++#m4_define([PRJ_version_hex],m4_format([0x%04x%02x%02x],PRJ_version_major,PRJ_version_minor,PRJ_version_point)) ++# ++#m4_define([PRJ_version],ifelse( ++# PRJ_repo_type,[stable],m4_format([%s],PRJ_repo_branch), ++# m4_format([%s-r%d],PRJ_repo_branch,PRJ_repo_rev))) + + ############################################################################### + # initialization +diff -Naur mp4v2-2.0.0/libplatform/platform_base.h mp4v2-2.0.0-haiku/libplatform/platform_base.h +--- mp4v2-2.0.0/libplatform/platform_base.h 2012-05-20 17:11:55.021495808 -0500 ++++ mp4v2-2.0.0-haiku/libplatform/platform_base.h 2013-11-26 23:49:07.969670656 -0600 +@@ -6,9 +6,7 @@ + #include + #include + #include +-#include + #include +-#include + #include + #include + #include +diff -Naur mp4v2-2.0.0/libutil/Utility.cpp mp4v2-2.0.0-haiku/libutil/Utility.cpp +--- mp4v2-2.0.0/libutil/Utility.cpp 2012-05-20 17:11:53.025690112 -0500 ++++ mp4v2-2.0.0-haiku/libutil/Utility.cpp 2013-11-26 23:36:33.651427840 -0600 +@@ -431,7 +431,6 @@ + << '\n' << setw(18) << "repository URL:" << MP4V2_PROJECT_repo_url + << '\n' << setw(18) << "repository root:" << MP4V2_PROJECT_repo_root + << '\n' << setw(18) << "repository UUID:" << MP4V2_PROJECT_repo_uuid +- << '\n' << setw(18) << "repository rev:" << MP4V2_PROJECT_repo_rev + << '\n' << setw(18) << "repository date:" << MP4V2_PROJECT_repo_date + << '\n' << setw(18) << "repository type:" << MP4V2_PROJECT_repo_type; + } +diff -Naur mp4v2-2.0.0/src/itmf/CoverArtBox.h mp4v2-2.0.0-haiku/src/itmf/CoverArtBox.h +--- mp4v2-2.0.0/src/itmf/CoverArtBox.h 2012-05-20 17:11:53.038797312 -0500 ++++ mp4v2-2.0.0-haiku/src/itmf/CoverArtBox.h 2013-11-26 23:49:50.736886784 -0600 +@@ -111,7 +111,7 @@ + /// + /// @return true on failure, false on success. + /// +- static bool remove( MP4FileHandle hFile, uint32_t index = numeric_limits::max() ); ++ static bool remove( MP4FileHandle hFile, uint32_t index = 2147483647); + }; + + /////////////////////////////////////////////////////////////////////////////// diff --git a/media-libs/libmpeg2/libmpeg2-0.5.1.recipe b/media-libs/libmpeg2/libmpeg2-0.5.1.recipe index b23630399..4aec337ff 100644 --- a/media-libs/libmpeg2/libmpeg2-0.5.1.recipe +++ b/media-libs/libmpeg2/libmpeg2-0.5.1.recipe @@ -1,27 +1,77 @@ -DESCRIPTION="library for decoding mpeg-2 and mpeg-1 video" +SUMMARY="A library for decoding mpeg-2 and mpeg-1 video" +DESCRIPTION=" +A library for decoding mpeg-2 and mpeg-1 video. +" HOMEPAGE="http://www.libmpeg2.sourceforge.net" +LICENSE="GNU GPL v2" +COPYRIGHT=" + Copyright (C) 2000-2003 Michel Lespinasse + Copyright (C) 1999-2000 Aaron Holtzman + " SRC_URI="http://libmpeg2.sourceforge.net/files/libmpeg2-0.5.1.tar.gz" +CHECKSUM_SHA256="dee22e893cb5fc2b2b6ebd60b88478ab8556cb3b93f9a0d7ce8f3b61851871d4" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -CHECKSUM_MD5="0f92c7454e58379b4a5a378485bbd8ef" +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 ?x86" + +PROVIDES=" + libmpeg2${secondaryArchSuffix} = $portVersion + lib:libmpeg2 + cmd:mpeg2dec + cmd:corrupt_mpeg2 + cmd:extract_mpeg2 + " + +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc${secondaryArchSuffix} + cmd:ld${secondaryArchSuffix} + cmd:make + cmd:libtoolize + cmd:aclocal + cmd:autoconf + " + +PATCHES="libmpeg2-${portVersion}.patch" + +SOURCE_DIR="libmpeg2-${portVersion}" + BUILD() { - cd libmpeg2-0.5.1 - rm aclocal.m4 - libtoolize --force --copy --install - aclocal -I m4 - autoconf - automake - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make + ./bootstrap + runConfigure ./configure --enable-shared --enable-static + make $jobArgs } INSTALL() { - cd libmpeg2-0.5.1 make install -} -LICENSE="GNU GPL v2" -#COPYRIGHT="" + # prepare develop/lib + prepareInstalledDevelLibs libmpeg2 libmpeg2convert + fixPkgconfig + + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + libmpeg2${secondaryArchSuffix}_devel = $portVersion + devel:libmpeg2${secondaryArchSuffix} = $portVersion + devel:libmpeg2convert${secondaryArchSuffix} = $portVersion + " +REQUIRES_devel=" + libmpeg2${secondaryArchSuffix} == $portVersion base + " + + + diff --git a/media-libs/libmpeg2/patches/libmpeg2-0.5.1.patch b/media-libs/libmpeg2/patches/libmpeg2-0.5.1.patch new file mode 100644 index 000000000..25b641b42 --- /dev/null +++ b/media-libs/libmpeg2/patches/libmpeg2-0.5.1.patch @@ -0,0 +1,22 @@ +diff -Naur libmpeg2-0.5.1/bootstrap libmpeg2-0.5.1-haiku/bootstrap +--- libmpeg2-0.5.1/bootstrap 2008-07-16 18:47:58.024641536 -0500 ++++ libmpeg2-0.5.1-haiku/bootstrap 2013-11-26 21:51:26.839647232 -0600 +@@ -47,17 +47,7 @@ + done + + if test "${amvers}" = "no" && automake --version > /dev/null 2>&1; then +- amvers="`automake --version | sed -e '1s/[^0-9]*//' -e q`" +- if expr "$amvers" "<" "1.5" > /dev/null 2>&1; then +- amvers="no" +- else +- amvers="" +- fi +-fi +- +-if test "$amvers" = "no"; then +- echo "$0: you need automake version 1.5 or later" +- exit 1 ++ amvers="" + fi + + # Check for autoconf diff --git a/media-libs/libmtp/libmtp-1.1.6.recipe b/media-libs/libmtp/libmtp-1.1.6.recipe new file mode 100644 index 000000000..17b0be066 --- /dev/null +++ b/media-libs/libmtp/libmtp-1.1.6.recipe @@ -0,0 +1,82 @@ +SUMMARY="MTP initiator library" +DESCRIPTION=" +libmtp implements an MTP initiator, which means it initiate \ +MTP sessions with devices. The devices responding are known \ +as MTP responders. libmtp runs on something with a USB host \ +controller interface, using libusb to access the host \ +controller. +" +HOMEPAGE="http://libmtp.sourceforge.net" +COPYRIGHT=" + Richard Low + Linus Walleij + Mariusz Woloszyn + Marcus Meissner + " +LICENSE="GNU LGPL v2.1" +SRC_URI="http://prdownloads.sourceforge.net/libmtp/$portVersionedName.tar.gz" +CHECKSUM_SHA256="3a1c1c83af91de4052eb54feb795c141b4c04a252e0031954ebbf6175970cb0a" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PATCHES="$portVersionedName.patchset" + +PROVIDES=" + libmtp$secondaryArchSuffix = $portVersion compat >= 1.0 + lib:libmtp$secondaryArchSuffix = 9.1.0 compat >= 9 + " +# add cmd provides +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libgcrypt$secondaryArchSuffix + lib:libiconv$secondaryArchSuffix + lib:libusb_1.0$secondaryArchSuffix + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libgcrypt$secondaryArchSuffix + devel:libiconv$secondaryArchSuffix + devel:libusb_1.0$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:make + cmd:gettext + cmd:pkg_config + cmd:doxygen + cmd:find + " + +BUILD() +{ + runConfigure ./configure # --enable-doxygen + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libmtp + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir # $docDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + libmtp${secondaryArchSuffix}_devel = $portVersion compat >= 1.0 + devel:libmtp$secondaryArchSuffix = 9.1.0 compat >= 9 + " +REQUIRES_devel=" + libmtp$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/libmtp/patches/libmtp-1.1.6.patchset b/media-libs/libmtp/patches/libmtp-1.1.6.patchset new file mode 100644 index 000000000..e7c611bae --- /dev/null +++ b/media-libs/libmtp/patches/libmtp-1.1.6.patchset @@ -0,0 +1,22 @@ +From 42d85dd2edd255726d4a48226d7dafa2dfe964f8 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Wed, 21 May 2014 21:24:57 +0000 +Subject: fix configure.ac + + +diff --git a/configure.ac b/configure.ac +index 87d7fcc..2063735 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4,7 +4,7 @@ AC_INIT([libmtp], [1.1.6], [libmtp-discuss@lists.sourceforge.net]) + AC_CONFIG_MACRO_DIR([m4]) + AM_INIT_AUTOMAKE([foreign]) + AC_CONFIG_SRCDIR([src/libmtp.c]) +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADERS(config.h) + + # Checks for programs. + AC_PROG_CC +-- +1.8.3.4 + diff --git a/media-libs/libnsbmp/libnsbmp-0.1.0_HEAD.recipe b/media-libs/libnsbmp/libnsbmp-0.1.0_HEAD.recipe index e392561f2..a0bd99208 100644 --- a/media-libs/libnsbmp/libnsbmp-0.1.0_HEAD.recipe +++ b/media-libs/libnsbmp/libnsbmp-0.1.0_HEAD.recipe @@ -5,12 +5,14 @@ REVISION="1" STATUS_HAIKU="stable" DEPEND="dev-util/buildsystem >= 0.0.1" -BUILD { +BUILD() +{ cd libnsbmp-0.1.0-HEAD make PREFIX=/boot/common } -INSTALL { +INSTALL() +{ cd libnsbmp-0.1.0-HEAD make install PREFIX=/boot/common } diff --git a/media-libs/libnsgif/libnsgif-0.1.0_HEAD.recipe b/media-libs/libnsgif/libnsgif-0.1.0_HEAD.recipe index 9075a54e4..391fc33b7 100644 --- a/media-libs/libnsgif/libnsgif-0.1.0_HEAD.recipe +++ b/media-libs/libnsgif/libnsgif-0.1.0_HEAD.recipe @@ -5,12 +5,14 @@ REVISION="1" STATUS_HAIKU="stable" DEPEND="dev-util/buildsystem >= 0.0.1" -BUILD { +BUILD() +{ cd libnsgif-0.1.0-HEAD make PREFIX=/boot/common } -INSTALL { +INSTALL() +{ cd libnsgif-0.1.0-HEAD make install PREFIX=/boot/common } diff --git a/media-libs/libogg/libogg-1.3.0.recipe b/media-libs/libogg/libogg-1.3.0.recipe index 5cc057bbf..e17286a0d 100644 --- a/media-libs/libogg/libogg-1.3.0.recipe +++ b/media-libs/libogg/libogg-1.3.0.recipe @@ -1,16 +1,25 @@ SUMMARY="Ogg multimedia container format library" -DESCRIPTION="Ogg is a multimedia container format, and the native file and stream format for the Xiph.org multimedia codecs. As with all Xiph.org technology is it an open format free for anyone to use. - -As with most container formats it encapsulates raw compressed data and allows the interleaving of audio and video data inside a single convient format. Other examples of container formats are Quicktime .mov, the MPEG program stream, and AVI. - -In addition to encapsulation and interleave of multiple data streams, Ogg provides packet framing, error detection, and periodic timestamps for seeking, and in a small, bounded percentage bitrate overhead. - -Ogg is a stream oriented container, meaning it can be written and read in one pass, making it a natural fit for internet streaming and use in processing pipelines. This stream orientation is the major design difference over other file-based container formats." +DESCRIPTION=" +Ogg is a multimedia container format, and the native file and stream format \ +for the Xiph.org multimedia codecs. As with all Xiph.org technology is it an \ +open format free for anyone to use. +As with most container formats it encapsulates raw compressed data and allows \ +the interleaving of audio and video data inside a single convient format. \ +Other examples of container formats are Quicktime .mov, the MPEG program \ +stream, and AVI. +In addition to encapsulation and interleave of multiple data streams, Ogg \ +provides packet framing, error detection, and periodic timestamps for seeking, \ +and in a small, bounded percentage bitrate overhead. +Ogg is a stream oriented container, meaning it can be written and read in one \ +pass, making it a natural fit for internet streaming and use in processing \ +pipelines. This stream orientation is the major design difference over other \ +file-based container formats. +" HOMEPAGE="http://www.xiph.org" LICENSE="BSD (3-clause)" COPYRIGHT="1994-2011 Xiph.Org Foundation" SRC_URI="http://downloads.xiph.org/releases/ogg/libogg-1.3.0.tar.gz" -CHECKSUM_MD5="0a7eb40b86ac050db3a789ab65fe21c2" +CHECKSUM_SHA256="a8de807631014615549d2356fd36641833b8288221cea214f8a72750efe93780" REVISION="2" ARCHITECTURES="x86_gcc2 x86 x86_64" SECONDARY_ARCHITECTURES="x86_gcc2 x86" diff --git a/media-libs/libopus/libopus-1.1.recipe b/media-libs/libopus/libopus-1.1.recipe new file mode 100644 index 000000000..f1ff978ad --- /dev/null +++ b/media-libs/libopus/libopus-1.1.recipe @@ -0,0 +1,51 @@ +SUMMARY="Opus Interactive Audio Codec" +DESCRIPTION=" +Opus is a totally open, royalty-free, highly versatile audio codec. Opus is \ +unmatched for interactive speech and music transmission over the Internet, but\ +is also intended for storage and streaming applications. It is standardized by\ +the Internet Engineering Task Force (IETF) as RFC 6716 which incorporated\ +technology from Skype's SILK codec and Xiph.Org's CELT codec. +" +HOMEPAGE="http://www.opus-codec.org" +COPYRIGHT="2001-2014 Xiph.org" +LICENSE="BSD (3-clause)" +SRC_URI="http://downloads.xiph.org/releases/opus/opus-1.1.tar.gz" +CHECKSUM_SHA256="b9727015a58affcf3db527322bf8c4d2fcf39f5f6b8f15dbceca20206cbe1d95" +REVISION="1" +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" +PROVIDES=" + libopus$secondaryArchSuffix = $portVersion + lib:libopus$secondaryArchSuffix = $portVersion +" +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion +" +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion +" +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make +" +SOURCE_DIR="opus-1.1" + +BUILD() +{ + runConfigure ./configure + make +} +INSTALL() +{ + make install + prepareInstalledDevelLibs libopus + packageEntries devel $developDir +} +PROVIDES_devel=" + libopus${secondaryArchSuffix}_devel = $portVersion + devel:libopus$secondaryArchSuffix = $portVersion +" +REQUIRES_devel=" + lib:libopus$secondaryArchSuffix == $portVersion base +" diff --git a/media-libs/libpng/libpng-1.5.12.recipe b/media-libs/libpng/libpng-1.5.12.recipe index 15d1b0e83..1ad5e69c5 100644 --- a/media-libs/libpng/libpng-1.5.12.recipe +++ b/media-libs/libpng/libpng-1.5.12.recipe @@ -1,5 +1,8 @@ SUMMARY="Portable Network Graphics library" -DESCRIPTION="libpng is the official PNG reference library. It supports almost all PNG features, is extensible, and has been extensively tested for over 17 years." +DESCRIPTION=" +libpng is the official PNG reference library. It supports almost all PNG \ +features, is extensible, and has been extensively tested for over 17 years +" HOMEPAGE="http://www.libpng.org" COPYRIGHT=" 1998-2011 Glenn Randers-Pehrson @@ -7,8 +10,8 @@ COPYRIGHT=" 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" +SRC_URI="http://prdownloads.sourceforge.net/libpng/libpng-1.5.12.tar.gz" +CHECKSUM_SHA256="aae4c469f5f03e7c180708fc547335ad1e29854bfdda992196e9c39d2447e9f6" REVISION="3" ARCHITECTURES="x86_gcc2 x86 x86_64" SECONDARY_ARCHITECTURES="x86_gcc2 x86" @@ -25,10 +28,10 @@ REQUIRES=" lib:libz$secondaryArchSuffix " BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion devel:libz$secondaryArchSuffix >= 1.0.4 " BUILD_PREREQUIRES=" - haiku${secondaryArchSuffix}_devel >= $haikuVersion cmd:aclocal cmd:autoconf cmd:automake diff --git a/media-libs/libpng/libpng-1.5.13.recipe b/media-libs/libpng/libpng-1.5.13.recipe deleted file mode 100644 index 99bfdb083..000000000 --- a/media-libs/libpng/libpng-1.5.13.recipe +++ /dev/null @@ -1,33 +0,0 @@ -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.6.10.recipe b/media-libs/libpng/libpng-1.6.10.recipe new file mode 100644 index 000000000..5168fa134 --- /dev/null +++ b/media-libs/libpng/libpng-1.6.10.recipe @@ -0,0 +1,81 @@ +SUMMARY="Portable Network Graphics library" +DESCRIPTION=" +libpng is the official PNG reference library. It supports almost all PNG \ +features, is extensible, and has been extensively tested for over 17 years +" +HOMEPAGE="http://www.libpng.org" +COPYRIGHT=" + 1998-2013 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-$portVersion.tar.gz" +CHECKSUM_SHA256="b0206a22b49c91fc5521b2cfb1c251433a37aed0a645bc504ab3d061f27e4d51" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + libpng$secondaryArchSuffix = $portVersion compat >= 1.6 + lib:libpng$secondaryArchSuffix = 16.10.0 compat >= 16 + lib:libpng16$secondaryArchSuffix = 16.10.0 compat >= 16 + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libz$secondaryArchSuffix + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libz$secondaryArchSuffix >= 1.0.4 + " +BUILD_PREREQUIRES=" + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtool >= 2.4.2 + cmd:make + " + +BUILD() +{ + aclocal + libtoolize --force --copy --install + aclocal + autoconf + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libpng libpng16 + fixPkgconfig + + # devel package + packageEntries devel \ + $binDir \ + $developDir \ + $manDir/man3 +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + libpng${secondaryArchSuffix}_devel = $portVersion compat >= 1.6 + cmd:libpng_config$secondaryArchSuffix = $portVersion compat >= 1.6 + cmd:libpng16_config$secondaryArchSuffix = $portVersion compat >= 1.6 + cmd:pngfix$secondaryArchSuffix = $portVersion compat >= 1.6 + cmd:png_fix_itxt$secondaryArchSuffix = $portVersion compat >= 1.6 + devel:libpng$secondaryArchSuffix = 16.10.0 compat >= 16 + devel:libpng16$secondaryArchSuffix = 16.10.0 compat >= 16 + " +REQUIRES_devel=" + libpng$secondaryArchSuffix == $portVersion base + haiku$secondaryArchSuffix >= $haikuVersion + lib:libz$secondaryArchSuffix + " diff --git a/media-libs/libpng/libpng-1.6.8.recipe b/media-libs/libpng/libpng-1.6.8.recipe new file mode 100644 index 000000000..f5a0d382e --- /dev/null +++ b/media-libs/libpng/libpng-1.6.8.recipe @@ -0,0 +1,81 @@ +SUMMARY="Portable Network Graphics library" +DESCRIPTION=" +libpng is the official PNG reference library. It supports almost all PNG \ +features, is extensible, and has been extensively tested for over 17 years +" +HOMEPAGE="http://www.libpng.org" +COPYRIGHT=" + 1998-2013 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.6.8.tar.gz" +CHECKSUM_SHA256="32c7acf1608b9c8b71b743b9780adb7a7b347563dbfb4a5263761056da44cc96" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + libpng$secondaryArchSuffix = $portVersion compat >= 1.6 + lib:libpng$secondaryArchSuffix = 16.8.0 compat >= 16 + lib:libpng16$secondaryArchSuffix = 16.8.0 compat >= 16 + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libz$secondaryArchSuffix + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libz$secondaryArchSuffix >= 1.0.4 + " +BUILD_PREREQUIRES=" + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtool >= 2.4.2 + cmd:make + " + +BUILD() +{ + aclocal + libtoolize --force --copy --install + aclocal + autoconf + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libpng libpng16 + fixPkgconfig + + # devel package + packageEntries devel \ + $binDir \ + $developDir \ + $manDir/man3 +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + libpng${secondaryArchSuffix}_devel = $portVersion compat >= 1.6 + cmd:libpng_config$secondaryArchSuffix = $portVersion compat >= 1.6 + cmd:libpng16_config$secondaryArchSuffix = $portVersion compat >= 1.6 + cmd:pngfix$secondaryArchSuffix = $portVersion compat >= 1.6 + cmd:png_fix_itxt$secondaryArchSuffix = $portVersion compat >= 1.6 + devel:libpng$secondaryArchSuffix = 16.8.0 compat >= 16 + devel:libpng16$secondaryArchSuffix = 16.8.0 compat >= 16 + " +REQUIRES_devel=" + libpng$secondaryArchSuffix == $portVersion base + haiku$secondaryArchSuffix >= $haikuVersion + lib:libz$secondaryArchSuffix + " diff --git a/media-libs/libsdl/libsdl-1.2.12.recipe b/media-libs/libsdl/libsdl-1.2.12.recipe deleted file mode 100644 index 602fc6123..000000000 --- a/media-libs/libsdl/libsdl-1.2.12.recipe +++ /dev/null @@ -1,21 +0,0 @@ -DESCRIPTION="Simple Direct Media Layer" -HOMEPAGE="http://www.libsdl.org/" -SRC_URI="http://www.libsdl.org/release/SDL-1.2.12.tar.gz" -CHECKSUM_MD5="544b4554986e51eed6d34435cf9c5f3f" -REVISION="1" -STATUS_HAIKU="untested" -DEPEND="" -BUILD() -{ - cd SDL-1.2.12 - ./configure --prefix=/boot/home/config - make -} - -INSTALL() -{ - cd SDL-1.2.12 - make install -} -LICENSE="GNU LGPL v2.1" -COPYRIGHT="1997-2009 Sam Lantinga" diff --git a/media-libs/libsdl/libsdl-1.2.13.recipe b/media-libs/libsdl/libsdl-1.2.13.recipe deleted file mode 100644 index e75b3534d..000000000 --- a/media-libs/libsdl/libsdl-1.2.13.recipe +++ /dev/null @@ -1,21 +0,0 @@ -DESCRIPTION="Simple Direct Media Layer" -HOMEPAGE="http://www.libsdl.org/" -SRC_URI="http://www.libsdl.org/release/SDL-1.2.13.tar.gz" -CHECKSUM_MD5="c6660feea2a6834de10bc71b2f8e4d88" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd SDL-1.2.13 - ./configure --prefix=/boot/home/config - make -} - -INSTALL() -{ - cd SDL-1.2.13 - make install -} -LICENSE="GNU LGPL v2.1" -COPYRIGHT="1997-2009 Sam Lantinga" diff --git a/media-libs/libsdl/libsdl-1.2.14.recipe b/media-libs/libsdl/libsdl-1.2.14.recipe deleted file mode 100644 index 30554ec8d..000000000 --- a/media-libs/libsdl/libsdl-1.2.14.recipe +++ /dev/null @@ -1,30 +0,0 @@ -DESCRIPTION="Simple Direct Media Layer" -HOMEPAGE="http://www.libsdl.org/" -SRC_URI="http://www.libsdl.org/release/SDL-1.2.14.tar.gz" -CHECKSUM_MD5="e52086d1b508fa0b76c52ee30b55bec4" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd SDL-1.2.14 - ./autogen.sh - rm aclocal.m4 - echo "AC_CONFIG_MACRO_DIR([acinclude])" >> configure.in - libtoolize -fci - aclocal -I acinclude - ./autogen.sh - ./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.recipe b/media-libs/libsdl/libsdl-1.2.15.recipe index 94990c4f0..34959ed5d 100644 --- a/media-libs/libsdl/libsdl-1.2.15.recipe +++ b/media-libs/libsdl/libsdl-1.2.15.recipe @@ -1,48 +1,51 @@ -SUMMARY="Simple Direct Media Layer" -DESCRIPTION="Simple Direct Media Layer" +SUMMARY="Simple Direct Media Layer is a cross-platform media development library" +DESCRIPTION=" +Simple Direct Media Layer is a cross-platform development library designed to \ +provide low level access to audio, keyboard, mouse, joystick, and graphics via \ +OpenGL. +" HOMEPAGE="http://www.libsdl.org/" SRC_URI="http://www.libsdl.org/release/SDL-1.2.15.tar.gz" -CHECKSUM_MD5="9d96df8417572a2afb781a7c4c811a85" -REVISION="1" +CHECKSUM_SHA256="d6d316a793e5e348155f0dd93b979798933fb98aa1edebcc108829d6474aad00" +REVISION="6" LICENSE="GNU LGPL v2.1" COPYRIGHT="1997-2012 Sam Lantinga" -ARCHITECTURES="x86 x86_gcc2" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" +PATCHES="libsdl-1.2.15.patchset" PROVIDES=" - libsdl = $portVersion compat >= 1.2 - lib:libsdl = $portVersion compat >= 1.2 - lib:libSDL = $portVersion compat >= 1.2 - lib:libSDL_1.2 = 0.11.4 compat >= 0.11 + libsdl$secondaryArchSuffix = $portVersion + lib:libSDL$secondaryArchSuffix = 1.2_0.11.4 compat >= 1.2_0 + lib:libSDL_1.2$secondaryArchSuffix = 0.11.4 compat >= 0 " + REQUIRES=" - haiku - lib:libGLU + haiku$secondaryArchSuffix >= $haikuVersion + lib:libGL$secondaryArchSuffix + lib:libglu$secondaryArchSuffix " + BUILD_REQUIRES=" - lib:libpng - lib:libjpeg - lib:libtiff + devel:libGL$secondaryArchSuffix + devel:libglu$secondaryArchSuffix " + BUILD_PREREQUIRES=" - haiku_devel - cmd:aclocal + haiku${secondaryArchSuffix}_devel >= $haikuVersion cmd:autoconf - cmd:gcc - cmd:ld cmd:libtool + cmd:aclocal cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:nasm " SOURCE_DIR="SDL-$portVersion" -PATCH() -{ - sed -i 's/AM_PATH_ALSA(0.9.0, have_alsa=yes, have_alsa=no)/have_alsa=no/' configure.in - sed -i 's/AM_PATH_ESD(0.2.8, have_esd=yes, have_esd=no)/have_esd=no/' configure.in - echo "AC_CONFIG_MACRO_DIR([acinclude])" >> configure.in -} - +PATCHES="libsdl-1.2.15.patchset" BUILD() { libtoolize --force --copy --install @@ -65,7 +68,9 @@ INSTALL() fixDevelopLibDirReferences $binDir/sdl-config packageEntries devel \ - $developDir $binDir/sdl-config + $developDir $binDir/sdl-config \ + $dataDir \ + $documentationDir } TEST() @@ -142,12 +147,14 @@ TEST() # ----- devel package ------------------------ PROVIDES_devel=" - cmd:sdl_config = $portVersion compat >= 1.2 - devel:libSDL_1.2 = 0.11.4 compat >= 0.11 - devel:libSDL = 0.11.4 compat >= 0.11 - devel:libSDLmain = 0.11.4 compat >= 0.11 + libsdl${secondaryArchSuffix}_devel = 1.2.15 compat >= 1.2 + cmd:sdl_config$secondaryArchSuffix = $portVersion compat >= 1.2 + devel:libSDL$secondaryArchSuffix = 1.2_0.11.4 compat >= 1.2_0 + devel:libSDLmain$secondaryArchSuffix = 1.2_0.11.4 compat >= 1.2_0 + devel:libSDL_1.2$secondaryArchSuffix = 0.11.4 compat >= 0 " REQUIRES_devel=" - libsdl == $portVersion base + libsdl${secondaryArchSuffix} == $portVersion base + devel:libGL$secondaryArchSuffix " diff --git a/media-libs/libsdl/libsdl-1.2_hg.recipe b/media-libs/libsdl/libsdl-1.2_hg.recipe deleted file mode 100644 index 830489f2e..000000000 --- a/media-libs/libsdl/libsdl-1.2_hg.recipe +++ /dev/null @@ -1,102 +0,0 @@ -DESCRIPTION="Simple Direct Media Layer" -HOMEPAGE="http://www.libsdl.org/" -SRC_URI="hg+http://hg.libsdl.org/SDL#SDL-1.2" -#CHECKSUM_MD5="e52086d1b508fa0b76c52ee30b55bec4" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd libsdl-1.2-hg - 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 - ./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-2010 Sam Lantinga" diff --git a/media-libs/libsdl/libsdl-1.3_gsoc.recipe b/media-libs/libsdl/libsdl-1.3_gsoc.recipe deleted file mode 100644 index 1ae926ca8..000000000 --- a/media-libs/libsdl/libsdl-1.3_gsoc.recipe +++ /dev/null @@ -1,36 +0,0 @@ -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/patches/libsdl-1.2.14.patch b/media-libs/libsdl/patches/libsdl-1.2.14.patch deleted file mode 100644 index b9278756d..000000000 --- a/media-libs/libsdl/patches/libsdl-1.2.14.patch +++ /dev/null @@ -1,64 +0,0 @@ -diff -r 5002d6aeb85c libsdl-1.2.14/nclude/begin_code.h ---- SDL-1.2.14/include/begin_code.h Fri Jul 09 17:19:18 2010 +0200 -+++ SDL-1.2.14-haiku/include/begin_code.h Fri Sep 17 14:58:26 2010 +0000 -@@ -43,7 +43,7 @@ - #ifndef DECLSPEC - # if defined(__BEOS__) || defined(__HAIKU__) - # if defined(__GNUC__) --# define DECLSPEC __declspec(dllexport) -+# define DECLSPEC - # else - # define DECLSPEC __declspec(export) - # endif -diff -r 31b0f2e06e3c src/main/beos/SDL_BeApp.cc ---- SDL-1.2.14/src/main/beos/SDL_BeApp.cc Sun Apr 25 20:16:38 2010 -0400 -+++ SDL-1.2.14-haiku/src/main/beos/SDL_BeApp.cc Sun Jun 06 08:55:47 2010 +0000 -@@ -39,13 +39,15 @@ - - static int StartBeApp(void *unused) - { -+ if(!be_app) { - BApplication *App; - - App = new BApplication("application/x-SDL-executable"); - - App->Run(); - delete App; -- return(0); -+ } -+ return(0); - } - - /* Initialize the Be Application, if it's not already started */ -@@ -86,7 +88,7 @@ - ++SDL_BeAppActive; - - /* The app is running, and we're ready to go */ -- return(0); -+ return(0); - } - - /* Quit the Be Application, if there's nothing left to do */ -diff -r 31b0f2e06e3c src/video/bwindow/SDL_sysvideo.cc ---- SDL-1.2.14/src/video/bwindow/SDL_sysvideo.cc Sun Apr 25 20:16:38 2010 -0400 -+++ SDL-1.2.14-haiku/src/video/bwindow/SDL_sysvideo.cc Sun Jun 06 08:55:47 2010 +0000 -@@ -57,7 +57,6 @@ - static void BE_FreeHWSurface(_THIS, SDL_Surface *surface); - - static int BE_ToggleFullScreen(_THIS, int fullscreen); --static SDL_Overlay *BE_CreateYUVOverlay(_THIS, int width, int height, Uint32 format, SDL_Surface *display); - - /* OpenGL functions */ - #if SDL_VIDEO_OPENGL -diff -r 31b0f2e06e3c src/video/bwindow/SDL_sysyuv.h ---- SDL-1.2.14/src/video/bwindow/SDL_sysyuv.h Sun Apr 25 20:16:38 2010 -0400 -+++ SDL-1.2.14-haiku/src/video/bwindow/SDL_sysyuv.h Sun Jun 06 08:55:47 2010 +0000 -@@ -62,7 +62,7 @@ - }; - - extern BBitmap * BE_GetOverlayBitmap(BRect bounds, color_space cs); --SDL_Overlay* BE_CreateYUVOverlay(_THIS, int width, int height, Uint32 format, SDL_Surface* display); -+extern SDL_Overlay* BE_CreateYUVOverlay(_THIS, int width, int height, Uint32 format, SDL_Surface* display); - extern int BE_LockYUVOverlay(_THIS, SDL_Overlay* overlay); - extern void BE_UnlockYUVOverlay(_THIS, SDL_Overlay* overlay); - extern int BE_DisplayYUVOverlay(_THIS, SDL_Overlay* overlay, SDL_Rect* src, SDL_Rect* dst); diff --git a/media-libs/libsdl/patches/libsdl-1.2.15.patchset b/media-libs/libsdl/patches/libsdl-1.2.15.patchset new file mode 100644 index 000000000..8d2190833 --- /dev/null +++ b/media-libs/libsdl/patches/libsdl-1.2.15.patchset @@ -0,0 +1,389 @@ +From ca09de99c346e44cdd1f578848b4958067b5fb06 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Fri, 22 Nov 2013 23:38:56 +0100 +Subject: Remove Alsa and ESD detection + +These will fail on Haiku, and we don't need them anyway. + +diff --git a/configure.in b/configure.in +index 08c8e1e..84d9a55 100644 +--- a/configure.in ++++ b/configure.in +@@ -361,7 +361,7 @@ CheckALSA() + AC_HELP_STRING([--enable-alsa], [support the ALSA audio API [[default=yes]]]), + , enable_alsa=yes) + if test x$enable_audio = xyes -a x$enable_alsa = xyes; then +- AM_PATH_ALSA(0.9.0, have_alsa=yes, have_alsa=no) ++ have_alsa=no + # Restore all flags from before the ALSA detection runs + CFLAGS="$alsa_save_CFLAGS" + LDFLAGS="$alsa_save_LDFLAGS" +@@ -460,7 +460,7 @@ CheckESD() + AC_HELP_STRING([--enable-esd], [support the Enlightened Sound Daemon [[default=yes]]]), + , enable_esd=yes) + if test x$enable_audio = xyes -a x$enable_esd = xyes; then +- AM_PATH_ESD(0.2.8, have_esd=yes, have_esd=no) ++ have_esd=no + if test x$have_esd = xyes; then + AC_ARG_ENABLE(esd-shared, + AC_HELP_STRING([--enable-esd-shared], [dynamically load ESD audio support [[default=yes]]]), +@@ -2963,3 +2963,4 @@ AC_OUTPUT([ + : >build-deps + if test x"$MAKE" = x; then MAKE=make; fi; $MAKE depend + ]) ++AC_CONFIG_MACRO_DIR([acinclude]) +-- +1.8.3.4 + + +From 735586f7d0600476b0b02206daa76926193da957 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Fri, 22 Nov 2013 23:39:26 +0100 +Subject: Fix samples vs bytes issues + +This was particularly noticeable in Milkytracker (SDL version) and +Hivelytracker, where all the audio timing relies on the buffer being +played during the right time. + +diff --git a/src/audio/baudio/SDL_beaudio.cc b/src/audio/baudio/SDL_beaudio.cc +index de635f8..7faf571 100644 +--- a/src/audio/baudio/SDL_beaudio.cc ++++ b/src/audio/baudio/SDL_beaudio.cc +@@ -199,11 +199,11 @@ int BE_OpenAudio(_THIS, SDL_AudioSpec *spec) + return (-1); + } + +- format.buffer_size = spec->samples; +- + /* Calculate the final parameters for this audio specification */ + SDL_CalculateAudioSpec(spec); + ++ format.buffer_size = spec->samples; ++ + /* Subscribe to the audio stream (creates a new thread) */ + { sigset_t omask; + SDL_MaskSignals(&omask); +-- +1.8.3.4 + + +From 164201f49d1310bdd229feaf33c1f0e988a89f49 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Fri, 22 Nov 2013 23:40:12 +0100 +Subject: Various fixes to the video code + +* Do not center the window each time it is resized +* Do not reset video mode if we didn't enter fullscreen +* remove annoying debug print + +diff --git a/src/video/bwindow/SDL_sysvideo.cc b/src/video/bwindow/SDL_sysvideo.cc +index c32b661..a26f18b 100644 +--- a/src/video/bwindow/SDL_sysvideo.cc ++++ b/src/video/bwindow/SDL_sysvideo.cc +@@ -406,6 +406,7 @@ static int BE_SetFullScreen(_THIS, SDL_Surface *screen, int fullscreen) + { + // printf("SetFullScreen(%d)\n", fullscreen); + BScreen bscreen; ++ static bool firstTime = true; + + // SetFullSscreen() does not work as expected if called in a window + // that was never shown. This is probably a bug in the Haiku Game Kit that needs +@@ -425,6 +426,8 @@ static int BE_SetFullScreen(_THIS, SDL_Surface *screen, int fullscreen) + int width = screen->w; + int height = screen->h; + ++ bool wasFullScreen = SDL_Win->IsFullScreen(); ++ + if (fullscreen) { + // Set resolution to the closest available one that matches the + // current SDL resolution. +@@ -444,7 +447,8 @@ static int BE_SetFullScreen(_THIS, SDL_Surface *screen, int fullscreen) + } else { + // Reset to the previous known resolution as we are now in window + // mode. +- bscreen.SetMode(&saved_mode); ++ if(wasFullScreen) ++ bscreen.SetMode(&saved_mode); + } + + // Effectivelly set/reset full screen mode. If we are already in +@@ -456,14 +460,6 @@ static int BE_SetFullScreen(_THIS, SDL_Surface *screen, int fullscreen) + // 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,10 +467,18 @@ static int BE_SetFullScreen(_THIS, SDL_Surface *screen, int fullscreen) + SDL_Win->ResizeTo(width, height); + + // And also center the window and reset the drawing offset. +- SDL_Win->MoveTo(cx, cy); ++ if(firstTime || wasFullScreen) { ++ SDL_Win->CenterOnScreen(); ++ firstTime = false; ++ } + SDL_Win->SetXYOffset(0, 0); + } else { +- // printf("Doing fullscreen stuff."); ++ // Calculate offsets for centering the bitmap. ++ ++ BRect bounds = bscreen.Frame(); ++ int cx = (bounds.Width() - width) / 2; ++ int cy = (bounds.Height() - height) / 2; ++ + // Center the bitmap whenever we are in full screen mode. + SDL_Win->SetXYOffset(cx, cy); + } +-- +1.8.3.4 + + +From ae129e6505148189a3d73fc085f20e214c0d6446 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sat, 23 Nov 2013 11:59:00 +0100 +Subject: Actually fix the sample vs bytes problem in audio driver. + + +diff --git a/src/audio/baudio/SDL_beaudio.cc b/src/audio/baudio/SDL_beaudio.cc +index 7faf571..300bf03 100644 +--- a/src/audio/baudio/SDL_beaudio.cc ++++ b/src/audio/baudio/SDL_beaudio.cc +@@ -161,25 +161,30 @@ int BE_OpenAudio(_THIS, SDL_AudioSpec *spec) + format.byte_order = B_MEDIA_LITTLE_ENDIAN; + format.frame_rate = (float) spec->freq; + format.channel_count = spec->channels; /* !!! FIXME: support > 2? */ ++ int samplesize = 1; + while ((!valid_datatype) && (test_format)) { + valid_datatype = 1; + spec->format = test_format; + switch (test_format) { + case AUDIO_S8: + format.format = media_raw_audio_format::B_AUDIO_CHAR; ++ samplesize = 1; + break; + + case AUDIO_U8: + format.format = media_raw_audio_format::B_AUDIO_UCHAR; ++ samplesize = 1; + break; + + case AUDIO_S16LSB: + format.format = media_raw_audio_format::B_AUDIO_SHORT; ++ samplesize = 2; + break; + + case AUDIO_S16MSB: + format.format = media_raw_audio_format::B_AUDIO_SHORT; + format.byte_order = B_MEDIA_BIG_ENDIAN; ++ samplesize = 2; + break; + + default: +@@ -202,7 +207,7 @@ int BE_OpenAudio(_THIS, SDL_AudioSpec *spec) + /* Calculate the final parameters for this audio specification */ + SDL_CalculateAudioSpec(spec); + +- format.buffer_size = spec->samples; ++ format.buffer_size = spec->samples * spec->channels * samplesize; + + /* Subscribe to the audio stream (creates a new thread) */ + { sigset_t omask; +-- +1.8.3.4 + + +From 9b20d4dc8a3f5d607623b5d8b2c4ce14e830f4c8 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Sun, 22 Dec 2013 18:37:30 -0700 +Subject: Remove Haiku from specialized DECLSPEC definition + + +diff --git a/include/begin_code.h b/include/begin_code.h +index 27e2f7b..d5e2f1f 100644 +--- a/include/begin_code.h ++++ b/include/begin_code.h +@@ -41,7 +41,7 @@ + * Some compilers use a special export keyword + */ + #ifndef DECLSPEC +-# if defined(__BEOS__) || defined(__HAIKU__) ++# if defined(__BEOS__) + # if defined(__GNUC__) + # define DECLSPEC + # else +-- +1.8.3.4 + + +From 09ba1fa7eccef32323c9987bdd4742bca6e9dfbc Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 5 Jan 2014 17:22:10 +0100 +Subject: Change prefix from "be" to "os" for OpenGL includes + +Accomodate the new OpenGL kit that doesn't have the "be" symlink. + +diff --git a/src/video/bwindow/SDL_BWin.h b/src/video/bwindow/SDL_BWin.h +index f2b19a2..2cb94ee 100644 +--- a/src/video/bwindow/SDL_BWin.h ++++ b/src/video/bwindow/SDL_BWin.h +@@ -31,7 +31,7 @@ + #include + #if SDL_VIDEO_OPENGL + #include "SDL_opengl.h" +-#include ++#include + #endif + #include + +-- +1.8.3.4 + +From a1a8ccda9449d9f0dc61708fcc35530fbbaf7644 Mon Sep 17 00:00:00 2001 +From: Jonathan Schleifer +Date: Fri, 28 Mar 2014 18:04:12 +0100 +Subject: [PATCH] Fix compilation on x86_64 + +Also cleans up and fixes warnings. +--- + src/video/SDL_sysvideo.h | 8 ++++++++ + src/video/SDL_video.c | 2 +- + src/video/bwindow/SDL_sysvideo.cc | 22 +++++++++------------- + src/video/bwindow/SDL_sysyuv.cc | 3 ++- + 4 files changed, 20 insertions(+), 15 deletions(-) + +diff --git a/src/video/SDL_sysvideo.h b/src/video/SDL_sysvideo.h +index 436450e..b45a8a9 100644 +--- a/src/video/SDL_sysvideo.h ++++ b/src/video/SDL_sysvideo.h +@@ -24,6 +24,10 @@ + #ifndef _SDL_sysvideo_h + #define _SDL_sysvideo_h + ++#if defined(__BEOS__) || defined(__HAIKU__) ++#include ++#endif ++ + #include "SDL_mouse.h" + #define SDL_PROTOTYPES_ONLY + #include "SDL_syswm.h" +@@ -296,7 +300,11 @@ struct SDL_VideoDevice { + int swap_control; + int driver_loaded; + char driver_path[256]; ++#if defined(__BEOS__) || defined(__HAIKU__) ++ image_id dll_handle; ++#else + void* dll_handle; ++#endif + } gl_config; + + /* * * */ +diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c +index 46285c9..255cafb 100644 +--- a/src/video/SDL_video.c ++++ b/src/video/SDL_video.c +@@ -222,7 +222,7 @@ int SDL_VideoInit (const char *driver_name, Uint32 flags) + + /* Set some very sane GL defaults */ + video->gl_config.driver_loaded = 0; +- video->gl_config.dll_handle = NULL; ++ video->gl_config.dll_handle = 0; + video->gl_config.red_size = 3; + video->gl_config.green_size = 3; + video->gl_config.blue_size = 2; +diff --git a/src/video/bwindow/SDL_sysvideo.cc b/src/video/bwindow/SDL_sysvideo.cc +index a26f18b..5d4077f 100644 +--- a/src/video/bwindow/SDL_sysvideo.cc ++++ b/src/video/bwindow/SDL_sysvideo.cc +@@ -644,17 +644,13 @@ static void BE_NormalUpdate(_THIS, int numrects, SDL_Rect *rects) + int BE_GL_LoadLibrary(_THIS, const char *path) + { + if (path == NULL) { +- if (_this->gl_config.dll_handle == NULL) { ++ if (_this->gl_config.dll_handle == 0) { + image_info info; + int32 cookie = 0; + while (get_next_image_info(0,&cookie,&info) == B_OK) { + void *location = NULL; +-#ifdef __HAIKU__ + if (get_image_symbol(info.id,"glBegin",B_SYMBOL_TYPE_ANY,&location) == B_OK) { // This is how it actually works in Haiku +-#else +- if (get_image_symbol((image_id)cookie,"glBegin",B_SYMBOL_TYPE_ANY,&location) == B_OK) { // I don't know if that *did* work in BeOS +-#endif +- _this->gl_config.dll_handle = (void*)info.id; ++ _this->gl_config.dll_handle = info.id; + _this->gl_config.driver_loaded = 1; + SDL_strlcpy(_this->gl_config.driver_path, "libGL.so", SDL_arraysize(_this->gl_config.driver_path)); + } +@@ -666,7 +662,7 @@ int BE_GL_LoadLibrary(_THIS, const char *path) + to load BGLView, which should be reloaded from new lib. + So for now just "load" linked libGL.so :( + */ +- if (_this->gl_config.dll_handle == NULL) { ++ if (_this->gl_config.dll_handle == 0) { + return BE_GL_LoadLibrary(_this, NULL); + } + +@@ -688,10 +684,10 @@ int BE_GL_LoadLibrary(_THIS, const char *path) + }*/ + } + +- if (_this->gl_config.dll_handle != NULL) { ++ if (_this->gl_config.dll_handle != 0) { + return 0; + } else { +- _this->gl_config.dll_handle = NULL; ++ _this->gl_config.dll_handle = 0; + _this->gl_config.driver_loaded = 0; + *_this->gl_config.driver_path = '\0'; + return -1; +@@ -700,10 +696,10 @@ int BE_GL_LoadLibrary(_THIS, const char *path) + + void* BE_GL_GetProcAddress(_THIS, const char *proc) + { +- if (_this->gl_config.dll_handle != NULL) { ++ if (_this->gl_config.dll_handle != 0) { + void *location = NULL; + status_t err; +- if ((err = get_image_symbol((image_id)_this->gl_config.dll_handle, proc, B_SYMBOL_TYPE_ANY, &location)) == B_OK) { ++ if ((err = get_image_symbol(_this->gl_config.dll_handle, proc, B_SYMBOL_TYPE_ANY, &location)) == B_OK) { + return location; + } else { + SDL_SetError("Couldn't find OpenGL symbol"); +@@ -835,8 +831,8 @@ void BE_VideoQuit(_THIS) + } + + #if SDL_VIDEO_OPENGL +- if (_this->gl_config.dll_handle != NULL) +- unload_add_on((image_id)_this->gl_config.dll_handle); ++ if (_this->gl_config.dll_handle != 0) ++ unload_add_on(_this->gl_config.dll_handle); + #endif + + SDL_QuitBeApp(); +diff --git a/src/video/bwindow/SDL_sysyuv.cc b/src/video/bwindow/SDL_sysyuv.cc +index 7c71b00..f2fef10 100644 +--- a/src/video/bwindow/SDL_sysyuv.cc ++++ b/src/video/bwindow/SDL_sysyuv.cc +@@ -66,7 +66,8 @@ BBitmap * BE_GetOverlayBitmap(BRect bounds, color_space cs) { + uint32 aligned_height = r.source.height_alignment + 1; + if (height % aligned_height > 0) { + fprintf(stderr,"GetOverlayBitmap failed height alignment\n"); +- fprintf(stderr,"- height = %lu, aligned_height = %lu\n",height,aligned_height); ++ fprintf(stderr,"- height = %" B_PRIu32 ", " ++ "aligned_height = %" B_PRIu32 "\n", height, aligned_height); + delete bbitmap; + return 0; + } +-- +Jonathan + diff --git a/media-libs/libsdl/patches/libsdl-1.2_hg.patch b/media-libs/libsdl/patches/libsdl-1.2_hg.patch deleted file mode 100644 index acc475381..000000000 --- a/media-libs/libsdl/patches/libsdl-1.2_hg.patch +++ /dev/null @@ -1,51 +0,0 @@ ---- 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/patches/libsdl-2.0.0.patch b/media-libs/libsdl/patches/libsdl-2.0.0.patch deleted file mode 100644 index dae2a97bf..000000000 --- a/media-libs/libsdl/patches/libsdl-2.0.0.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff -Naur SDL2-2.0.0/include/begin_code.h SDL2-2.0.0-haiku/include/begin_code.h ---- SDL2-2.0.0/include/begin_code.h 2013-08-11 21:57:54.011796480 -0500 -+++ SDL2-2.0.0-haiku/include/begin_code.h 2013-08-19 15:12:06.654049280 -0500 -@@ -35,13 +35,7 @@ - - /* Some compilers use a special export keyword */ - #ifndef DECLSPEC --# if defined(__BEOS__) || defined(__HAIKU__) --# if defined(__GNUC__) --# define DECLSPEC __declspec(dllexport) --# else --# define DECLSPEC __declspec(export) --# endif --# elif defined(__WIN32__) -+# if defined(__WIN32__) - # ifdef __BORLANDC__ - # ifdef BUILD_SDL - # define DECLSPEC -@@ -54,6 +48,8 @@ - # else - # if defined(__GNUC__) && __GNUC__ >= 4 - # define DECLSPEC __attribute__ ((visibility("default"))) -+# elif defined(__GNUC__) && __GNUC__ >= 2 -+# define DECLSPEC __declspec(dllexport) - # else - # define DECLSPEC - # endif -diff -Naur SDL2-2.0.0/src/main/beos/SDL_BApp.h SDL2-2.0.0-haiku/src/main/beos/SDL_BApp.h ---- SDL2-2.0.0/src/main/beos/SDL_BApp.h 2013-08-11 21:57:54.058982400 -0500 -+++ SDL2-2.0.0-haiku/src/main/beos/SDL_BApp.h 2013-08-19 15:10:50.412876800 -0500 -@@ -371,7 +371,7 @@ - - - /* Members */ -- vector _window_map; /* Keeps track of SDL_Windows by index-id*/ -+ std::vector _window_map; /* Keeps track of SDL_Windows by index-id*/ - - display_mode *_saved_mode; - BGLView *_current_context; diff --git a/media-libs/libsdl/sdl-config b/media-libs/libsdl/sdl-config deleted file mode 100644 index 7e19ca3a8..000000000 --- a/media-libs/libsdl/sdl-config +++ /dev/null @@ -1,77 +0,0 @@ -#!/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/libsdl2/libsdl-2.0_hg.recipe b/media-libs/libsdl2/libsdl-2.0_hg.recipe deleted file mode 100644 index b2300d2b4..000000000 --- a/media-libs/libsdl2/libsdl-2.0_hg.recipe +++ /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="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/libsdl2/libsdl-2.0_hg_cmake.recipe b/media-libs/libsdl2/libsdl-2.0_hg_cmake.recipe deleted file mode 100644 index c421c0e28..000000000 --- a/media-libs/libsdl2/libsdl-2.0_hg_cmake.recipe +++ /dev/null @@ -1,30 +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="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/libsdl2/libsdl2-2.0.0.recipe b/media-libs/libsdl2/libsdl2-2.0.0.recipe index f7ef6f199..e7ec94f24 100644 --- a/media-libs/libsdl2/libsdl2-2.0.0.recipe +++ b/media-libs/libsdl2/libsdl2-2.0.0.recipe @@ -1,8 +1,13 @@ SUMMARY="Simple Direct Media Layer 2.0" -DESCRIPTION="Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. It is used by video playback software, emulators, and popular games." +DESCRIPTION=" +Simple DirectMedia Layer is a cross-platform development library designed to \ +provide low level access to audio, keyboard, mouse, joystick, and graphics \ +hardware via OpenGL and Direct3D. It is used by video playback software, \ +emulators, and popular games. +" HOMEPAGE="http://www.libsdl.org/" SRC_URI="http://www.libsdl.org/release/SDL2-2.0.0.tar.gz" -CHECKSUM_MD5="beec89afb6edcc6f0abc4114f2e6bcf7" +CHECKSUM_SHA256="6f6ac8153d90e06a118474d5400624ae82b3d3e080915505db27cebc52b27178" REVISION="1" LICENSE="Zlib" COPYRIGHT="1997-2013 Sam Lantinga" @@ -11,38 +16,35 @@ ARCHITECTURES="x86 x86_gcc2" PROVIDES=" libsdl2 = $portVersion compat >= 2.0 - lib:libsdl2 = $portVersion compat >= 2.0 - lib:libsdl2_2.0 = 0.0.0 compat >= 0.12 + lib:libSDL2 = 0.12.0 compat >= 0.12 + lib:libSDL2_2.0 = 0.12.0 compat >= 0.12 " REQUIRES=" - haiku - lib:libGL - lib:libroot - lib:libbe - lib:libmedia - lib:libgame - lib:libdevice - lib:libtextencoding + haiku$secondaryArchSuffix >= $haikuVersion +# lib:libGL + lib:libglu lib:libpng lib:libjpeg lib:libtiff " BUILD_REQUIRES=" - haiku_devel +# devel:mesa + devel:libglu devel:libpng devel:libjpeg # devel:libtiff " BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion cmd:autoconf cmd:libtool cmd:aclocal cmd:make - cmd:gcc - cmd:ld + cmd:gcc${secondaryArchSuffix} + cmd:ld${secondaryArchSuffix} " SOURCE_DIR="SDL2-$portVersion" @@ -74,14 +76,13 @@ INSTALL() # ----- devel package ------------------------------------- PROVIDES_devel=" - cmd:sdl2_config = $portVersion compat >= 2.0 - devel:libsdl2_2.0 = 0.12.0 compat >= 0 - devel:libsdl2 = 0.12.0 compat >= 0 - devel:libsdl2main = 0.12.0 compat >= 0 - devel:libsdl2_test = 0.12.0 compat >= 0 + cmd:sdl2_config = $portVersion compat >= 2.0 + devel:libSDL2 = 0.12.0 compat >= 2.0 + devel:libSDL2main = 0.12.0 compat >= 0.12 + devel:libSDL2_test = 0.12.0 compat >= 0.12 + devel:libSDL2_2.0 = 0.12.0 compat >= 0.12 " REQUIRES_devel=" libsdl2 == $portVersion base " - diff --git a/media-libs/libsdl2/libsdl2-2.0.1.recipe b/media-libs/libsdl2/libsdl2-2.0.1.recipe new file mode 100644 index 000000000..629ef9b12 --- /dev/null +++ b/media-libs/libsdl2/libsdl2-2.0.1.recipe @@ -0,0 +1,94 @@ +SUMMARY="Simple Direct Media Layer 2.0" +DESCRIPTION=" +Simple DirectMedia Layer is a cross-platform development library designed to \ +provide low level access to audio, keyboard, mouse, joystick, and graphics \ +hardware via OpenGL and Direct3D. It is used by video playback software, \ +emulators, and popular games. +" +HOMEPAGE="http://www.libsdl.org/" +SRC_URI="http://www.libsdl.org/release/SDL2-2.0.1.tar.gz" +CHECKSUM_SHA256="0ae7e902a26777614a011fe7053ca7e8b14843db3c42ca117564d208cf6732f0" +REVISION="3" +LICENSE="Zlib" +COPYRIGHT="1997-2013 Sam Lantinga" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + libsdl2$secondaryArchSuffix = $portVersion compat >= 2.0 + cmd:sdl2_config = $portVersion + lib:libSDL2$secondaryArchSuffix = 2.0_0.1.0 compat >= 2.0_0.0 + lib:libSDL2_2.0$secondaryArchSuffix = 0.1.0 compat >= 0.0 + lib:libSDL2_2.0.1$secondaryArchSuufix = 0.1.0 compat >= 0.0 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libGL$secondaryArchSuffix + lib:libglu$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:libtiff$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libGL$secondaryArchSuffix + devel:libglu$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + " +# devel:libtiff$secondaryArchSuffix # haiku_devel missing devel_libtiff + +BUILD_PREREQUIRES=" + cmd:autoconf + cmd:libtool + cmd:aclocal + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + " + +SOURCE_DIR="SDL2-$portVersion" + +PATCHES="libsdl2-2.0.1.patchset" + +BUILD() +{ + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install + + # devel package + prepareInstalledDevelLibs \ + libSDL2 \ + libSDL2main \ + libSDL2_test \ + libSDL2-2.0 + + fixPkgconfig + fixDevelopLibDirReferences $binDir/sdl2-config + + packageEntries devel \ + $developDir $binDir/sdl2-config $dataDir +} + +# ----- devel package ------------------------------------- +PROVIDES_devel=" + libsdl2${secondaryArchSuffix}_devel = $portVersion compat >= 2.0 + cmd:sdl2_config$secondaryArchSuffix = $portVersion compat >= 2.0 + devel:libSDL2$secondaryArchSuffix = 2.0_0.1.0 compat >= 2.0_0 + devel:libSDL2main$secondaryArchSuffix = 2.0_0.1.0 compat >= 2.0_0 + devel:libSDL2_test$secondaryArchSuffix = 2.0_0.1.0 compat >= 2.0_0 + devel:libSDL2_2.0$secondaryArchSuffix = 0.1.0 compat >= 0.0 + devel:libSDL2_2.0.1$secondaryArchSuffix = 0.1.0 compat >= 0.0 + " + +REQUIRES_devel=" + libsdl2$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/libsdl2/patches/libsdl2-2.0.1.patchset b/media-libs/libsdl2/patches/libsdl2-2.0.1.patchset new file mode 100644 index 000000000..69c04b413 --- /dev/null +++ b/media-libs/libsdl2/patches/libsdl2-2.0.1.patchset @@ -0,0 +1,115 @@ +From 5491ee3ebfd9ddb58dad8e46a0b9afd30e12f000 Mon Sep 17 00:00:00 2001 +From: Alexander von Gluck IV +Date: Wed, 15 Jan 2014 00:55:06 -0600 +Subject: [PATCH] Haiku: Clean up includes + +* Remove random references to be/os/ +--- + src/joystick/beos/SDL_bejoystick.cc | 4 ++-- + src/loadso/beos/SDL_sysloadso.c | 2 +- + src/thread/beos/SDL_syssem.c | 2 +- + src/thread/beos/SDL_systhread.c | 2 +- + src/thread/beos/SDL_systhread_c.h | 2 +- + src/timer/beos/SDL_systimer.c | 2 +- + src/video/bwindow/SDL_BWin.h | 4 ++-- + 7 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/src/joystick/beos/SDL_bejoystick.cc b/src/joystick/beos/SDL_bejoystick.cc +index c324581..2b93d09 100644 +--- a/src/joystick/beos/SDL_bejoystick.cc ++++ b/src/joystick/beos/SDL_bejoystick.cc +@@ -24,8 +24,8 @@ + + /* This is the system specific header for the SDL joystick API */ + +-#include +-#include ++#include ++#include + + extern "C" + { +diff --git a/src/loadso/beos/SDL_sysloadso.c b/src/loadso/beos/SDL_sysloadso.c +index 524cd71..0679bcb 100644 +--- a/src/loadso/beos/SDL_sysloadso.c ++++ b/src/loadso/beos/SDL_sysloadso.c +@@ -26,7 +26,7 @@ + /* System dependent library loading routines */ + + #include +-#include ++#include + + #include "SDL_loadso.h" + +diff --git a/src/thread/beos/SDL_syssem.c b/src/thread/beos/SDL_syssem.c +index 9661f90..269557e 100644 +--- a/src/thread/beos/SDL_syssem.c ++++ b/src/thread/beos/SDL_syssem.c +@@ -24,7 +24,7 @@ + + /* Semaphores in the BeOS environment */ + +-#include ++#include + + #include "SDL_thread.h" + +diff --git a/src/thread/beos/SDL_systhread.c b/src/thread/beos/SDL_systhread.c +index 11646f9..7371f0a 100644 +--- a/src/thread/beos/SDL_systhread.c ++++ b/src/thread/beos/SDL_systhread.c +@@ -26,7 +26,7 @@ + + #include + #include +-#include ++#include + + #include "SDL_mutex.h" + #include "SDL_thread.h" +diff --git a/src/thread/beos/SDL_systhread_c.h b/src/thread/beos/SDL_systhread_c.h +index a350ab5..65ef60d 100644 +--- a/src/thread/beos/SDL_systhread_c.h ++++ b/src/thread/beos/SDL_systhread_c.h +@@ -21,7 +21,7 @@ + #include "SDL_config.h" + + #include +-#include ++#include + + typedef thread_id SYS_ThreadHandle; + +diff --git a/src/timer/beos/SDL_systimer.c b/src/timer/beos/SDL_systimer.c +index fd22e44..370e2d9 100644 +--- a/src/timer/beos/SDL_systimer.c ++++ b/src/timer/beos/SDL_systimer.c +@@ -22,7 +22,7 @@ + + #ifdef SDL_TIMER_BEOS + +-#include ++#include + + #include "SDL_timer.h" + +diff --git a/src/video/bwindow/SDL_BWin.h b/src/video/bwindow/SDL_BWin.h +index 6b6a71e..fc034ed 100644 +--- a/src/video/bwindow/SDL_BWin.h ++++ b/src/video/bwindow/SDL_BWin.h +@@ -38,9 +38,9 @@ extern "C" { + #include + #include + #include +-#include ++#include + #if SDL_VIDEO_OPENGL +-#include ++#include + #endif + #include "SDL_events.h" + #include "../../main/beos/SDL_BApp.h" +-- +1.8.3.4 + diff --git a/media-libs/libsndfile/libsndfile-1.0.25.recipe b/media-libs/libsndfile/libsndfile-1.0.25.recipe new file mode 100644 index 000000000..c361b6648 --- /dev/null +++ b/media-libs/libsndfile/libsndfile-1.0.25.recipe @@ -0,0 +1,87 @@ +SUMMARY="C library for reading and writing files containing sampled sound" +DESCRIPTION=" +libsndfile is a library of C routines for reading and writing \ +files containing sampled audio data. +" +HOMEPAGE="http://www.mega-nerd.com/libsndfile" +COPYRIGHT=" + 1999-2011 Erik de Castro Lopo +" +LICENSE="GNU LGPL v2.1" +SRC_URI="http://www.mega-nerd.com/libsndfile/files/$portVersionedName.tar.gz" +CHECKSUM_SHA256="59016dbd326abe7e2366ded5c344c853829bebfd1702ef26a07ef662d6aa4882" +REVISION="1" +ARCHITECTURES="!x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="!x86_gcc2 x86" + +PATCHES="$portVersionedName.patchset" + +PROVIDES=" + libsndfile$secondaryArchSuffix = $portVersion compat >= 1 + cmd:sndfile_cmp + cmd:sndfile_concat + cmd:sndfile_convert + cmd:sndfile_deinterleave + cmd:sndfile_info + cmd:sndfile_interleave + cmd:sndfile_metadata_get + cmd:sndfile_metadata_set + cmd:sndfile_play + cmd:sndfile_regtest + cmd:sndfile_salvage + lib:libsndfile$secondaryArchSuffix = $portVersion compat >= 1 + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libflac$secondaryArchSuffix + lib:libogg$secondaryArchSuffix + lib:libvorbis$secondaryArchSuffix + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libflac$secondaryArchSuffix + devel:libogg$secondaryArchSuffix + devel:libvorbis$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:make + cmd:pkg_config + " + +BUILD() +{ + libtoolize --force --copy --install + aclocal -I M4 + autoconf + automake + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libsndfile + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + libsndfile${secondaryArchSuffix}_devel = $portVersion compat >= 1 + devel:libsndfile$secondaryArchSuffix = $portVersion compat >= 1 + " +REQUIRES_devel=" + libsndfile$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/libsndfile/patches/libsndfile-1.0.25.patchset b/media-libs/libsndfile/patches/libsndfile-1.0.25.patchset new file mode 100644 index 000000000..d1203e9d4 --- /dev/null +++ b/media-libs/libsndfile/patches/libsndfile-1.0.25.patchset @@ -0,0 +1,21 @@ +From c94a905e75ff6769bd4289d56f687d6c2a8f6ba4 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Tue, 20 May 2014 16:43:24 +0000 +Subject: haiku patch + + +diff --git a/src/sndfile.h.in b/src/sndfile.h.in +index 8926fc6..ef9636b 100644 +--- a/src/sndfile.h.in ++++ b/src/sndfile.h.in +@@ -29,6 +29,7 @@ + /* This is the version 1.0.X header file. */ + #define SNDFILE_1 + ++#include + #include + #include + +-- +1.8.3.4 + diff --git a/media-libs/libsvgtiny/libsvgtiny-0.1.0_HEAD.recipe b/media-libs/libsvgtiny/libsvgtiny-0.1.0_HEAD.recipe index 69d217a5a..b9afbdabe 100644 --- a/media-libs/libsvgtiny/libsvgtiny-0.1.0_HEAD.recipe +++ b/media-libs/libsvgtiny/libsvgtiny-0.1.0_HEAD.recipe @@ -7,12 +7,14 @@ DEPEND="dev-util/gperf >= 3.0.4 dev-libs/libwapcaplet >= 0.1.1-HEAD net-libs/libdom >= 0" #CHECKSUM_MD5="" -BUILD { +BUILD() +{ cd libsvgtiny-0-HEAD make PREFIX=/boot/common } -INSTALL { +INSTALL() +{ cd libsvgtiny-0-HEAD make install PREFIX=/boot/common } diff --git a/media-libs/libtheora/libtheora-1.1.1.recipe b/media-libs/libtheora/libtheora-1.1.1.recipe index 684117a3e..2cb0f3e1a 100644 --- a/media-libs/libtheora/libtheora-1.1.1.recipe +++ b/media-libs/libtheora/libtheora-1.1.1.recipe @@ -1,14 +1,22 @@ SUMMARY="Theora video compression format library" -DESCRIPTION="Theora is a free and open video compression format from the Xiph.org Foundation. Like all our multimedia technology it can be used to distribute film and video online and on disc without the licensing and royalty fees or vendor lock-in associated with other formats. - -Theora scales from postage stamp to HD resolution, and is considered particularly competitive at low bitrates. It is in the same class as MPEG-4/DiVX, and like the Vorbis audio codec it has lots of room for improvement as encoder technology develops. - -Theora is in full public release as of November 3, 2008. The bitstream format for Theora I was frozen Thursday, 2004 July 1. All bitstreams encoded since that date will remain compatible with future releases." +DESCRIPTION=" +Theora is a free and open video compression format from the Xiph.org \ +Foundation. Like all our multimedia technology it can be used to distribute \ +film and video online and on disc without the licensing and royalty fees or \ +vendor lock-in associated with other formats. +Theora scales from postage stamp to HD resolution, and is considered \ +particularly competitive at low bitrates. It is in the same class as \ +MPEG-4/DiVX, and like the Vorbis audio codec it has lots of room for \ +improvement as encoder technology develops. +Theora is in full public release as of November 3, 2008. The bitstream format \ +for Theora I was frozen Thursday, 2004 July 1. All bitstreams encoded since \ +that date will remain compatible with future releases. +" HOMEPAGE="http://www.theora.org/" LICENSE="BSD (3-clause)" COPYRIGHT="2002-2009 Xiph.Org Foundation" SRC_URI="http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.bz2" -CHECKSUM_MD5="292ab65cedd5021d6b7ddd117e07cd8e" +CHECKSUM_SHA256="b6ae1ee2fa3d42ac489287d3ec34c5885730b1296f0801ae577a35193d3affbc" REVISION="2" ARCHITECTURES="x86_gcc2 x86 x86_64" SECONDARY_ARCHITECTURES="x86_gcc2 x86" diff --git a/media-libs/libvisio/libvisio-0.0.31.recipe b/media-libs/libvisio/libvisio-0.0.31.recipe new file mode 100644 index 000000000..cf57ff1e8 --- /dev/null +++ b/media-libs/libvisio/libvisio-0.0.31.recipe @@ -0,0 +1,101 @@ +SUMMARY="A library providing ability to interpret and import visio diagrams" +DESCRIPTION=" + Libvisio is library providing ability to interpret and import visio \ + diagrams into various applications. You can find it being used in \ + libreoffice. + " +HOMEPAGE="http://www.freedesktop.org/wiki/Software/libvisio/" +SRC_URI="http://dev-www.libreoffice.org/src/libvisio-0.0.31.tar.gz" +LICENSE=" + GNU GPL v2 + GNU LGPL v2.1 + MPL v1.1 + " +COPYRIGHT=" + 2011 Fridrich Strba + 2011 Eilidh McAdam + " +REVISION="2" +CHECKSUM_SHA256="4805b530eb79a9817d5daa3f069ef24959f439c0c0c80f12d30f9bc67b00cf90" + +ARCHITECTURES="x86 ?x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + $portName$secondaryArchSuffix = $portVersion + cmd:vsd2raw$secondaryArchSuffix + cmd:vsd2text$secondaryArchSuffix + cmd:vsd2xhtml$secondaryArchSuffix + cmd:vss2raw$secondaryArchSuffix + cmd:vss2text$secondaryArchSuffix + cmd:vss2xhtml$secondaryArchSuffix + lib:libvisio_0.0$secondaryArchSuffix = $portVersion compat >= 0 + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libicui18n$secondaryArchSuffix + lib:libicuuc$secondaryArchSuffix + lib:libicudata$secondaryArchSuffix + lib:libwpd_0.9$secondaryArchSuffix + lib:libwpg_0.2$secondaryArchSuffix + lib:libxml2$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " +BUILD_REQUIRES=" + boost_devel$secondaryArchSuffix >= 1.36 + devel:libicui18n$secondaryArchSuffix + devel:libicuuc$secondaryArchSuffix + devel:libicudata$secondaryArchSuffix + devel:libwpd_0.9$secondaryArchSuffix + devel:libwpg_0.2$secondaryArchSuffix + devel:libxml2$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + pkgconfig$secondaryArchSuffix >= 0.27 + cmd:aclocal + cmd:libtoolize + cmd:autoconf + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:perl + cmd:gperf + cmd:icu_config$secondaryArchSuffix + cmd:sed + " + +BUILD() +{ + libtoolize --force --copy --install + aclocal + autoconf + automake + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libvisio-0.0 + fixPkgconfig + + packageEntries devel $developDir +} + +PROVIDES_devel=" + libvisio${secondaryArchSuffix}_devel = $portVersion + devel:libvisio_0.0$secondaryArchSuffix = $portVersion compat >= 0 + " +REQUIRES_devel=" + $portName$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/libvorbis/libvorbis-1.3.2.recipe b/media-libs/libvorbis/libvorbis-1.3.2.recipe index ab7e7da9f..a06d8beef 100644 --- a/media-libs/libvorbis/libvorbis-1.3.2.recipe +++ b/media-libs/libvorbis/libvorbis-1.3.2.recipe @@ -1,12 +1,20 @@ SUMMARY="Ogg Vorbis audio compression format library" -DESCRIPTION="Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format for mid to high quality (8kHz-48.0kHz, 16+ bit, polyphonic) audio and music at fixed and variable bitrates from 16 to 128 kbps/channel. This places Vorbis in the same competitive class as audio representations such as MPEG-4 (AAC), and similar to, but higher performance than MPEG-1/2 audio layer 3, MPEG-4 audio (TwinVQ), WMA and PAC. - -The bitstream format for Vorbis I was frozen Monday, May 8th 2000. All bitstreams encoded since will remain compatible with all future releases of Vorbis." +DESCRIPTION=" +Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, \ +general-purpose compressed audio format for mid to high quality (8kHz-48.0kHz, \ +16+ bit, polyphonic) audio and music at fixed and variable bitrates from 16 to \ +128 kbps/channel. This places Vorbis in the same competitive class as audio \ +representations such as MPEG-4 (AAC), and similar to, but higher performance \ +than MPEG-1/2 audio layer 3, MPEG-4 audio (TwinVQ), WMA and PAC. +The bitstream format for Vorbis I was frozen Monday, May 8th 2000. All \ +bitstreams encoded since will remain compatible with all future releases of \ +Vorbis. +" HOMEPAGE="http://www.xiph.org/vorbis/" LICENSE="BSD (3-clause)" COPYRIGHT="1994-2010 Xiph.Org Foundation" SRC_URI="http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.2.tar.gz" -CHECKSUM_MD5="c870b9bd5858a0ecb5275c14486d9554" +CHECKSUM_SHA256="eeb4dcada143846dfba760d982954a02f82e08845cbc33871f5dac547b8b6124" REVISION="2" ARCHITECTURES="x86_gcc2 x86 x86_64" SECONDARY_ARCHITECTURES="x86_gcc2 x86" diff --git a/media-libs/libvorbis/libvorbis-1.3.4.recipe b/media-libs/libvorbis/libvorbis-1.3.4.recipe new file mode 100644 index 000000000..6e2f4f144 --- /dev/null +++ b/media-libs/libvorbis/libvorbis-1.3.4.recipe @@ -0,0 +1,84 @@ +SUMMARY="Ogg Vorbis audio compression format library" +DESCRIPTION=" +Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, \ +general-purpose compressed audio format for mid to high quality (8kHz-48.0kHz, \ +16+ bit, polyphonic) audio and music at fixed and variable bitrates from 16 to \ +128 kbps/channel. This places Vorbis in the same competitive class as audio \ +representations such as MPEG-4 (AAC), and similar to, but higher performance \ +than MPEG-1/2 audio layer 3, MPEG-4 audio (TwinVQ), WMA and PAC. +The bitstream format for Vorbis I was frozen Monday, May 8th 2000. All \ +bitstreams encoded since will remain compatible with all future releases of \ +Vorbis. +" +HOMEPAGE="http://www.xiph.org/vorbis/" +LICENSE="BSD (3-clause)" +COPYRIGHT="1994-2010 Xiph.Org Foundation" +SRC_URI="http://downloads.xiph.org/releases/vorbis/libvorbis-$portVersion.tar.gz" +CHECKSUM_SHA256="eee09a0a13ec38662ff949168fe897a25d2526529bc7e805305f381c219a1ecb" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PATCHES="libvorbis-1.3.4.patchset" + +PROVIDES=" + libvorbis$secondaryArchSuffix = $portVersion + lib:libvorbis$secondaryArchSuffix = 0.4.7 compat >= 0 + lib:libvorbisenc$secondaryArchSuffix = 2.0.10 compat >= 2 + lib:libvorbisfile$secondaryArchSuffix = 3.3.6 compat >= 3 + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libogg$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libogg$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:make + cmd:pkg_config + " + +BUILD() +{ + libtoolize -fci + mkdir -p m4 + aclocal --install -I m4 + autoconf + automake + runConfigure ./configure \ + --docdir $developDocDir + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libvorbis libvorbisenc libvorbisfile + fixPkgconfig + + # devel package + packageEntries devel \ + $dataDir \ + $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + libvorbis${secondaryArchSuffix}_devel = $portVersion + devel:libvorbis$secondaryArchSuffix = 0.4.7 compat >= 0 + devel:libvorbisenc$secondaryArchSuffix = 2.0.10 compat >= 2 + devel:libvorbisfile$secondaryArchSuffix = 3.3.6 compat >= 3 + " +REQUIRES_devel=" + libvorbis$secondaryArchSuffix == $portVersion + " diff --git a/media-libs/libvorbis/patches/libvorbis-1.3.4.patchset b/media-libs/libvorbis/patches/libvorbis-1.3.4.patchset new file mode 100644 index 000000000..b3f3167d7 --- /dev/null +++ b/media-libs/libvorbis/patches/libvorbis-1.3.4.patchset @@ -0,0 +1,83 @@ +From 70dcb91819b2acac447344c2ad6b0c5c89dfa630 Mon Sep 17 00:00:00 2001 +From: Ingo Weinhold +Date: Tue, 11 Jun 2013 17:54:49 +0200 +Subject: applying patch libvorbis-1.3.2.patch + + +diff --git a/configure.ac b/configure.ac +index 98b78ac..4b881b6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -206,6 +206,10 @@ else + DEBUG="-g -Wall -W -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char" + CFLAGS="-O20 -Wall -W -ffast-math -D_REENTRANT -fsigned-char" + PROFILE="-pg -g -O20 -ffast-math -D_REENTRANT -fsigned-char";; ++ *-*-haiku*) ++ DEBUG="-g -Wall -D__NO_MATH_INLINES -fsigned-char" ++ CFLAGS="-O20 -Wall -D__NO_MATH_INLINES -fsigned-char" ++ PROFILE="-O20 -g -pg -D__NO_MATH_INLINES -fsigned-char" ;; + *) + DEBUG="-g -Wall -Wextra -D__NO_MATH_INLINES -fsigned-char" + CFLAGS="-O20 -Wall -Wextra -D__NO_MATH_INLINES -fsigned-char" +-- +1.7.5 + + +From ef7dac90d78c39bb3990d66ff932d50bc1ea98d3 Mon Sep 17 00:00:00 2001 +From: Ingo Weinhold +Date: Tue, 11 Jun 2013 18:06:31 +0200 +Subject: doc/*/Makefile.am: remove hard-coded docdir + + +diff --git a/doc/Makefile.am b/doc/Makefile.am +index 2870528..6d7851b 100644 +--- a/doc/Makefile.am ++++ b/doc/Makefile.am +@@ -2,8 +2,6 @@ + + SUBDIRS = libvorbis vorbisfile vorbisenc + +-docdir = $(datadir)/doc/$(PACKAGE)-$(VERSION) +- + ### all of the static docs, commited to SVN and included as is + static_docs = \ + rfc5215.xml \ +diff --git a/doc/libvorbis/Makefile.am b/doc/libvorbis/Makefile.am +index 0bcc135..aea57e9 100644 +--- a/doc/libvorbis/Makefile.am ++++ b/doc/libvorbis/Makefile.am +@@ -1,7 +1,5 @@ + ## Process this file with automake to produce Makefile.in + +-docdir = $(datadir)/doc/$(PACKAGE)-$(VERSION)/libvorbis +- + doc_DATA = index.html reference.html style.css vorbis_comment.html\ + vorbis_info.html vorbis_analysis_blockout.html vorbis_analysis_buffer.html\ + vorbis_analysis_headerout.html vorbis_analysis_init.html \ +diff --git a/doc/vorbisenc/Makefile.am b/doc/vorbisenc/Makefile.am +index bbab3c5..008586e 100644 +--- a/doc/vorbisenc/Makefile.am ++++ b/doc/vorbisenc/Makefile.am +@@ -1,7 +1,5 @@ + ## Process this file with automake to produce Makefile.in + +-docdir = $(datadir)/doc/$(PACKAGE)-$(VERSION)/vorbisenc +- + doc_DATA = changes.html examples.html index.html ovectl_ratemanage2_arg.html \ + ovectl_ratemanage_arg.html overview.html reference.html style.css\ + vorbis_encode_ctl.html vorbis_encode_init.html vorbis_encode_setup_init.html \ +diff --git a/doc/vorbisfile/Makefile.am b/doc/vorbisfile/Makefile.am +index fb27d44..faa6352 100644 +--- a/doc/vorbisfile/Makefile.am ++++ b/doc/vorbisfile/Makefile.am +@@ -1,7 +1,5 @@ + ## Process this file with automake to produce Makefile.in + +-docdir = $(datadir)/doc/$(PACKAGE)-$(VERSION)/vorbisfile +- + doc_DATA = OggVorbis_File.html callbacks.html chaining_example_c.html\ + chainingexample.html crosslap.html datastructures.html decoding.html\ + example.html exampleindex.html fileinfo.html index.html\ +-- +1.7.5 + diff --git a/media-libs/libvpx/libvpx-1.0.0.recipe b/media-libs/libvpx/libvpx-1.0.0.recipe index 796faa0ab..6752a37dc 100644 --- a/media-libs/libvpx/libvpx-1.0.0.recipe +++ b/media-libs/libvpx/libvpx-1.0.0.recipe @@ -1,16 +1,19 @@ SUMMARY="WebM VP8 video codec library" -DESCRIPTION="The WebM VP8 SDK allows you to integrate your applications with the VP8 video codec, a high quality, royalty free, open source codec deployed on millions of computers and devices worldwide. - +DESCRIPTION=" +The WebM VP8 SDK allows you to integrate your applications with the VP8 video \ +codec, a high quality, royalty free, open source codec deployed on millions of \ +computers and devices worldwide. This distribution of the WebM VP8 Codec SDK includes the following support: - * WebM VP8 Encoder - * WebM VP8 Decoder" +* WebM VP8 Encoder +* WebM VP8 Decoder +" HOMEPAGE="http://www.webmproject.org" LICENSE="BSD (3-clause)" COPYRIGHT="2009-2012 Google Inc., The Mozilla Foundation and The Xiph.Org Foundation" SRC_URI="http://webm.googlecode.com/files/libvpx-v1.0.0.tar.bz2" -CHECKSUM_MD5="d987b5140412edd37d2c6b10c29ad484" +CHECKSUM_SHA256="07cedb0a19a44e6d81d75f52eea864f59ef10c6c725cb860431bec6641eafe21" REVISION="2" ARCHITECTURES="x86_gcc2 x86 x86_64" SECONDARY_ARCHITECTURES="x86_gcc2 x86" @@ -40,6 +43,7 @@ BUILD_PREREQUIRES=" haiku${secondaryArchSuffix}_devel >= $haikuVersion cmd:gcc$secondaryArchSuffix cmd:ld$secondaryArchSuffix + cmd:awk cmd:make cmd:perl cmd:yasm diff --git a/media-libs/libvpx/patches/libvpx-1.0.0.patch b/media-libs/libvpx/patches/libvpx-1.0.0.patch deleted file mode 100644 index da04b72ff..000000000 --- a/media-libs/libvpx/patches/libvpx-1.0.0.patch +++ /dev/null @@ -1,66 +0,0 @@ -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/libvpx/patches/libvpx-1.0.0.patchset b/media-libs/libvpx/patches/libvpx-1.0.0.patchset index eba3dc397..24eb0181d 100644 --- a/media-libs/libvpx/patches/libvpx-1.0.0.patchset +++ b/media-libs/libvpx/patches/libvpx-1.0.0.patchset @@ -1,4 +1,4 @@ -From 0c31cfc2c7429f81129c3403d9bc03bd245db71c Mon Sep 17 00:00:00 2001 +From 98f5dcd5f2dba828f545dac2a534c90d0c5e6c53 Mon Sep 17 00:00:00 2001 From: korli Date: Wed, 14 Mar 2012 00:15:38 +0000 Subject: patch for 1.0.0 @@ -74,10 +74,10 @@ index f6c9045..ab9657f 100644 ifeq ($(CONFIG_GCC), yes) CODEC_EXTRA_LIBS-$(CONFIG_VP8) += m -- -1.7.5 +1.8.3.4 -From dd76984687465e457d9e3dcd0b4bdc4bd46225dd Mon Sep 17 00:00:00 2001 +From 9a194ee7b8498467e5700e2c4e39bc6a30c95714 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Tue, 11 Jun 2013 21:09:11 +0200 Subject: configure: enable shared library building for Haiku @@ -97,10 +97,10 @@ index eb8a359..a2ef98d 100755 if [ -z "$CC" ]; then echo "Bypassing toolchain for environment detection." -- -1.7.5 +1.8.3.4 -From 87b2816834bb2bbfc1e13765084a0c21eb46cf13 Mon Sep 17 00:00:00 2001 +From 238a1625cbbb75a1a84c112bacd3e6afee54a919 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Tue, 11 Jun 2013 21:09:28 +0200 Subject: libs.mk: no -lm or -lpthread on Haiku @@ -128,5 +128,41 @@ index 79a1d00..d88cfa7 100644 $(if $(LIPO_LIBS),$(eval $(call lipo_bin_template,$(bin))))\ -- -1.7.5 +1.8.3.4 + + +From 214d6e14250d72980faf3798501efe5808562854 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= +Date: Tue, 3 Dec 2013 22:18:36 +0000 +Subject: x86_64 support + +* configure, amples.mk + +diff --git a/configure b/configure +index a2ef98d..4b671ee 100755 +--- a/configure ++++ b/configure +@@ -118,6 +118,7 @@ all_platforms="${all_platforms} x86-win32-vs9" + all_platforms="${all_platforms} x86_64-darwin9-gcc" + all_platforms="${all_platforms} x86_64-darwin10-gcc" + all_platforms="${all_platforms} x86_64-darwin11-gcc" ++all_platforms="${all_platforms} x86_64-haiku-gcc" + all_platforms="${all_platforms} x86_64-linux-gcc" + all_platforms="${all_platforms} x86_64-linux-icc" + all_platforms="${all_platforms} x86_64-solaris-gcc" +diff --git a/examples.mk b/examples.mk +index ab9657f..947a645 100644 +--- a/examples.mk ++++ b/examples.mk +@@ -113,7 +113,7 @@ vp8_multi_resolution_encoder.DESCRIPTION = VP8 Multiple-resolution Encoding + # We should not link to math library (libm) on RVCT + # when building for bare-metal targets + ifeq ($(CONFIG_OS_SUPPORT), yes) +- ifneq ($(TOOLCHAIN),x86-haiku-gcc) ++ ifeq (,$(findstring haiku,$(TOOLCHAIN))) + CODEC_EXTRA_LIBS-$(CONFIG_VP8) += m + endif + else +-- +1.8.3.4 diff --git a/media-libs/libwebp/libwebp-0.3.1.recipe b/media-libs/libwebp/libwebp-0.3.1.recipe new file mode 100644 index 000000000..3c4af73b3 --- /dev/null +++ b/media-libs/libwebp/libwebp-0.3.1.recipe @@ -0,0 +1,74 @@ +SUMMARY="library for encoding and decoding WebP image files" +DESCRIPTION=" +A library for encoding and decoding WebP image files. +" +HOMEPAGE="http://code.google.com/p/webp" +SRC_URI="http://webp.googlecode.com/files/libwebp-0.3.1.tar.gz" +CHECKSUM_SHA256="b37932c625322a69fe4e9b88884b5c7aed2b3eaf9fd5e5b480aee339a92e6ee7" +LICENSE="BSD (3-clause)" +COPYRIGHT="2011 Google Inc." +REVISION="1" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + libwebp$secondaryArchSuffix = $portVersion + lib:libwebp$secondaryArchSuffix = $portVersion + cmd:cwebp$secondaryArchSuffix + cmd:dwebp$secondaryArchSuffix + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libjpeg$secondaryArchSuffix + lib:libgif$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + devel:libjpeg$secondaryArchSuffix + devel:libgif$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:autoconf + cmd:libtool + cmd:aclocal + cmd:make + cmd:m4 + " + +BUILD() +{ + ./autogen.sh + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libwebp + fixPkgconfig + + #devel package + packageEntries devel \ + $developDir +} + +PROVIDES_devel=" + libwebp${secondaryArchSuffix}_devel = $portVersion compat >= 0.3 + devel:libwebp$secondaryArchSuffix = 4.0.3 compat >= 4 + " + +REQUIRES_devel=" + libwebp$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/loadpng/loadpng-1.5.recipe b/media-libs/loadpng/loadpng-1.5.recipe index 005b91d34..b9d5d2965 100644 --- a/media-libs/loadpng/loadpng-1.5.recipe +++ b/media-libs/loadpng/loadpng-1.5.recipe @@ -1,4 +1,7 @@ -DESCRIPTION="loadpng is some glue that makes it easy to use libpng to load and save bitmaps from Allegro programs." +DESCRIPTION=" +loadpng is some glue that makes it easy to use libpng to load and save bitmaps \ +from Allegro programs. +" HOMEPAGE="http://tjaden.strangesoft.net/loadpng/" SRC_URI="http://tjaden.strangesoft.net/loadpng/loadpng-1.5.tar.gz" REVISION="1" diff --git a/media-libs/mediainfo/mediainfo-0.7.61.recipe b/media-libs/mediainfo/mediainfo-0.7.61.recipe index 5c0ddf1c4..34f9fd6a3 100644 --- a/media-libs/mediainfo/mediainfo-0.7.61.recipe +++ b/media-libs/mediainfo/mediainfo-0.7.61.recipe @@ -1,4 +1,7 @@ -DESCRIPTION="MediaInfo is a convenient unified display of the most relevant technical and tag data for video and audio files." +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" diff --git a/media-libs/openal/openal-1.13.0.recipe b/media-libs/openal/openal-1.13.0.recipe new file mode 100644 index 000000000..e615bc967 --- /dev/null +++ b/media-libs/openal/openal-1.13.0.recipe @@ -0,0 +1,74 @@ +SUMMARY="A software implementation of the OpenAL 3D audio API" +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_SHA256="dc735b8b2ab21f6ec54b4262f150a7e0527ae42aa975a1965b9342df1520443c" +REVISION="2" +LICENSE="GNU LGPL v2.1" +COPYRIGHT="1999-2000 Loki Software + 2005-2011 OpenAL Soft team" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + openal$secondaryArchSuffix = $portVersion compat >= 1 + lib:libopenal$secondaryArchSuffix = 1.13.0 compat >= 1 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:cmake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +SOURCE_DIR="openal-soft-1.13" + +PATCHES="openal-1.13.0.patchset" +BUILD() +{ + cd build + cmake .. -DCMAKE_INSTALL_PREFIX=$prefix -DBIN_DIR="$relativeBinDir" \ + -DLIB_SUFFIX="/${secondaryArchSuffix/_/}" + make $jobArgs +} + +INSTALL() +{ + cd build + make install + + mkdir -p $developDir/headers + mv $prefix/include/* $developDir/headers + rmdir $prefix/include + + prepareInstalledDevelLib libopenal + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir \ + $binDir +} + +PROVIDES_devel=" + openal${secondaryArchSuffix}_devel = $portVersion compat >= 1 + devel:libopenal$secondaryArchSuffix = 1.13.0 compat >= 0 + cmd:openal_info$secondaryArchSuffix + " + +REQUIRES_devel=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libopenal$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/openal/openal-1.13.recipe b/media-libs/openal/openal-1.13.recipe deleted file mode 100644 index b5633603d..000000000 --- a/media-libs/openal/openal-1.13.recipe +++ /dev/null @@ -1,25 +0,0 @@ -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.0.patchset similarity index 78% rename from media-libs/openal/patches/openal-1.13.patch rename to media-libs/openal/patches/openal-1.13.0.patchset index 634d011b9..34727f596 100644 --- a/media-libs/openal/patches/openal-1.13.patch +++ b/media-libs/openal/patches/openal-1.13.0.patchset @@ -1,7 +1,14 @@ -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 @@ +From b755a676e918041fe3320e5e6bfa061b3b892994 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Tue, 28 Jan 2014 09:17:21 +0100 +Subject: applying patch openal-1.13.patch + + +diff --git a/Alc/ALc.c b/Alc/ALc.c +index 6bdcc66..c8b2af4 100644 +--- a/Alc/ALc.c ++++ b/Alc/ALc.c +@@ -60,6 +60,9 @@ static BackendInfo BackendList[] = { #ifdef HAVE_SOLARIS { "solaris", alc_solaris_init, alc_solaris_deinit, alc_solaris_probe, EmptyFuncs }, #endif @@ -11,9 +18,11 @@ diff -Naur openal-soft-1.13/Alc/ALc.c openal-soft-1.13-haiku/Alc/ALc.c #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 +diff --git a/Alc/haiku.cpp b/Alc/haiku.cpp +new file mode 100644 +index 0000000..c66e99d +--- /dev/null ++++ b/Alc/haiku.cpp @@ -0,0 +1,214 @@ +/** + * OpenAL cross platform audio library @@ -229,10 +238,11 @@ diff -Naur openal-soft-1.13/Alc/haiku.cpp openal-soft-1.13-haiku/Alc/haiku.cpp + (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 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 44f9ea8..ffbe13b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -16,10 +16,12 @@ INCLUDE(CheckIncludeFiles) INCLUDE(CheckSymbolExists) INCLUDE(CheckCCompilerFlag) INCLUDE(CheckCSourceCompiles) @@ -246,7 +256,7 @@ diff -Naur openal-soft-1.13/CMakeLists.txt openal-soft-1.13-haiku/CMakeLists.txt SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE) -@@ -28,6 +30,7 @@ +@@ -28,6 +30,7 @@ SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE) OPTION(ALSA "Check for ALSA backend" ON) OPTION(OSS "Check for OSS backend" ON) OPTION(SOLARIS "Check for Solaris backend" ON) @@ -254,7 +264,7 @@ diff -Naur openal-soft-1.13/CMakeLists.txt openal-soft-1.13-haiku/CMakeLists.txt 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 @@ +@@ -334,6 +337,7 @@ SET(BACKENDS "") SET(HAVE_ALSA 0) SET(HAVE_OSS 0) SET(HAVE_SOLARIS 0) @@ -262,7 +272,7 @@ diff -Naur openal-soft-1.13/CMakeLists.txt openal-soft-1.13-haiku/CMakeLists.txt SET(HAVE_DSOUND 0) SET(HAVE_WINMM 0) SET(HAVE_PORTAUDIO 0) -@@ -378,6 +382,24 @@ +@@ -378,6 +382,24 @@ IF(SOLARIS) ENDIF() ENDIF() @@ -287,10 +297,11 @@ diff -Naur openal-soft-1.13/CMakeLists.txt openal-soft-1.13-haiku/CMakeLists.txt # 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 @@ +diff --git a/OpenAL32/Include/alMain.h b/OpenAL32/Include/alMain.h +index 02153a8..e3b357a 100644 +--- a/OpenAL32/Include/alMain.h ++++ b/OpenAL32/Include/alMain.h +@@ -276,6 +276,9 @@ void alc_oss_probe(int type); void alc_solaris_init(BackendFuncs *func_list); void alc_solaris_deinit(void); void alc_solaris_probe(int type); @@ -300,9 +311,10 @@ diff -Naur openal-soft-1.13/OpenAL32/Include/alMain.h openal-soft-1.13-haiku/Ope 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 +diff --git a/config.h.in b/config.h.in +index 3c1e7e6..27a19cf 100644 +--- a/config.h.in ++++ b/config.h.in @@ -13,6 +13,9 @@ /* Define if we have the Solaris backend */ #cmakedefine HAVE_SOLARIS @@ -313,3 +325,46 @@ diff -Naur openal-soft-1.13/config.h.in openal-soft-1.13-haiku/config.h.in /* Define if we have the DSound backend */ #cmakedefine HAVE_DSOUND +-- +1.8.3.4 + + +From af8af1218c33e188372b600c4c0bfefc616b43e6 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Tue, 28 Jan 2014 09:22:49 +0100 +Subject: Make bin directory a variable. + + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ffbe13b..a060122 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -488,6 +488,7 @@ SET(libdir "\${exec_prefix}/lib${LIB_SUFFIX}") + SET(bindir "\${exec_prefix}/bin") + SET(includedir "\${prefix}/include") + SET(PACKAGE_VERSION "${LIB_VERSION}") ++SET(BIN_DIR "bin" CACHE STRING "relative dir where to put executables") + + # End configuration + CONFIGURE_FILE( +@@ -512,7 +513,7 @@ TARGET_LINK_LIBRARIES(${LIBNAME} ${EXTRA_LIBS}) + + # Add an install target here + INSTALL(TARGETS ${LIBNAME} +- RUNTIME DESTINATION bin ++ RUNTIME DESTINATION "${BIN_DIR}" + LIBRARY DESTINATION "lib${LIB_SUFFIX}" + ARCHIVE DESTINATION "lib${LIB_SUFFIX}" + ) +@@ -554,7 +555,7 @@ IF(UTILS) + ADD_EXECUTABLE(openal-info utils/openal-info.c) + TARGET_LINK_LIBRARIES(openal-info ${LIBNAME}) + INSTALL(TARGETS openal-info +- RUNTIME DESTINATION bin ++ RUNTIME DESTINATION "${BIN_DIR}" + LIBRARY DESTINATION "lib${LIB_SUFFIX}" + ARCHIVE DESTINATION "lib${LIB_SUFFIX}" + ) +-- +1.8.3.4 + diff --git a/media-libs/openexr/openexr-2.1.0.recipe b/media-libs/openexr/openexr-2.1.0.recipe new file mode 100644 index 000000000..e410de738 --- /dev/null +++ b/media-libs/openexr/openexr-2.1.0.recipe @@ -0,0 +1,126 @@ +DESCRIPTION=" +OpenEXR is a high dynamic-range (HDR) image file format developed \ +by Industrial Light & Magic for use in computer imaging \ +applications. OpenEXR is used by ILM on all motion pictures \ +currently in production. The first movies to employ OpenEXR were \ +Harry Potter and the Sorcerers Stone, Men in Black II, Gangs of \ +New York, and Signs. Since then, OpenEXR has become ILM's main \ +image file format. +" +SUMMARY="OpenEXR is a high dynamic-range (HDR) image file format" +HOMEPAGE="http://www.openexr.com" +LICENSE="BSD (3-clause)" +COPYRIGHT="2002-2011 Industrial Light & Magic" +SRC_URI="http://download.savannah.nongnu.org/releases/openexr/openexr-2.1.0.tar.gz" +CHECKSUM_SHA256="54486b454073c1dcb5ae9892cf0f730ffefe62f38176325281505093fd218a14" +REVISION="1" + +ARCHITECTURES="x86 ?x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86 ?x86_64" + +PATCHES="openexr-2.1.0.patch" + +PROVIDES=" + openexr$secondaryArchSuffix = $portVersion + lib:libIlmImf$secondaryArchSuffix = $portVersion + lib:libIlmImf_Imf_2_1$secondaryArchSuffix = $portVersion + cmd:exrenvmap$secondaryArchSuffix = $portVersion + cmd:exrheader$secondaryArchSuffix = $portVersion + cmd:exrmakepreview$secondaryArchSuffix = $portVersion + cmd:exrmaketiled$secondaryArchSuffix = $portVersion + cmd:exrmultipart$secondaryArchSuffix = $portVersion + cmd:exrmultiview$secondaryArchSuffix = $portVersion + cmd:exrstdattr$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libilmbase$secondaryArchSuffix == $portVersion + lib:libHalf$secondaryArchSuffix == $portVersion + lib:libIex_2_1$secondaryArchSuffix == $portVersion + lib:libIexMath_2_1$secondaryArchSuffix == $portVersion + lib:libIlmThread_2_1$secondaryArchSuffix == $portVersion + lib:libImath_2_1$secondaryArchSuffix == $portVersion + lib:libz$secondaryArchSuffix + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + ilmbase${secondaryArchSuffix}_devel == $portVersion + devel:libilmbase$secondaryArchSuffix == $portVersion + devel:libHalf$secondaryArchSuffix == $portVersion + devel:libIex_2_1$secondaryArchSuffix == $portVersion + devel:libIexMath_2_1$secondaryArchSuffix == $portVersion + devel:libIlmThread_2_1$secondaryArchSuffix == $portVersion + devel:libImath_2_1$secondaryArchSuffix == $portVersion + devel:libIex$secondaryArchSuffix == $portVersion + devel:libIexMath$secondaryArchSuffix == $portVersion + devel:libIlmThread$secondaryArchSuffix == $portVersion + devel:libImath$secondaryArchSuffix == $portVersion + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + ilmbase$secondaryArchSuffix == $portVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:which + cmd:autoconf + cmd:aclocal + cmd:libtoolize + cmd:pkg_config$secondaryArchSuffix + " + +BUILD() +{ + pathSecondaryArchSuffix=$(echo ${secondaryArchSuffix} | sed s/^_//g) + IlmBasePkgconfig=$(find /packages/ilmbase${secondaryArchSuffix}_devel-\ +${portVersion}-*/ilmbase${secondaryArchSuffix}/develop/lib/\ +${pathSecondaryArchSuffix}/pkgconfig/IlmBase.pc | sed s/IlmBase\.pc//g) + export PKG_CONFIG_PATH+=:$IlmBasePkgconfig + + ./bootstrap + runConfigure ./configure + make +} + +INSTALL() +{ + make install + + # prepare development documentation + mkdir -p $developDocDir + mv $dataDir/doc $developDocDir + + # prepare autom4te script + mkdir -p $developDir + mv $dataDir/aclocal $developDir + + #clear empty directory + rmdir $dataDir + + # prepare development lib links + prepareInstalledDevelLibs libIlmImf-Imf_2_1 libIlmImf + + fixPkgconfig + + # devel package + packageEntries devel $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + openexr${secondaryArchSuffix}_devel = $portVersion + devel:libIlmImf$secondaryArchSuffix = $portVersion + devel:libIlmImf_Imf_2_1$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + openexr$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/openexr/patches/openexr-2.1.0.patch b/media-libs/openexr/patches/openexr-2.1.0.patch new file mode 100644 index 000000000..b192a850e --- /dev/null +++ b/media-libs/openexr/patches/openexr-2.1.0.patch @@ -0,0 +1,13 @@ +diff --git a/configure.ac b/configure.ac +index 23e9e5f..90570d4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -11,7 +11,7 @@ AC_SUBST(OPENEXR_VERSION_API, ${OPENEXR_VERSION_MAJOR}_${OPENEXR_VERSION_MINOR}) + + AC_CANONICAL_HOST + AC_CONFIG_SRCDIR(IlmImfTest/main.cpp) +-AM_CONFIG_HEADER(config/OpenEXRConfig.h) ++AC_CONFIG_HEADER(config/OpenEXRConfig.h) + AM_INIT_AUTOMAKE(1.6.3) dnl Require automake 1.6.3 or better + AM_MAINTAINER_MODE + diff --git a/media-libs/openjpeg/openjpeg-1.5.0.recipe b/media-libs/openjpeg/openjpeg-1.5.0.recipe index 6f6b1f48f..410ecbbc4 100644 --- a/media-libs/openjpeg/openjpeg-1.5.0.recipe +++ b/media-libs/openjpeg/openjpeg-1.5.0.recipe @@ -1,33 +1,13 @@ -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 -} - +SUMMARY="OpenJPEG is an open-source C-Library for JPEG 2000" +DESCRIPTION=" +The OpenJPEG library is an open-source JPEG 2000 codec written in C language. \ +It has been developed in order to promote the use of JPEG 2000, the new \ +still-image compression standard from the Joint Photographic Experts Group \ +(JPEG). In addition to the basic codec, various other features are under \ +development, among them the JP2 and MJ2 (Motion JPEG 2000) file formats, an \ +indexing tool useful for the JPIP protocol, JPWL-tools for error-resilience, \ +a Java-viewer for j2k-images, ... +" LICENSE="BSD (2-clause)" COPYRIGHT="2002-2012, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium 2002-2012 Professor Benoit Macq @@ -36,3 +16,97 @@ COPYRIGHT="2002-2012, Communications and Remote Sensing Laboratory, Universite c 2005 Herve Drolon, FreeImage Team 2002-2003 Yannick Verschueren 2001-2003 David Janssens" +HOMEPAGE="http://www.openjpeg.org/" +SRC_URI="http://openjpeg.googlecode.com/files/openjpeg-1.5.0.tar.gz" +CHECKSUM_SHA256="c9908fab44432a2ed2550c457cb7e736da6d7c326f1203d23d1082d992364ace" +REVISION="1" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + openjpeg$secondaryArchSuffix = $portVersion compat >= 1.5.0 + cmd:JPWL_image_to_j2k$secondaryArchSuffix = $portVersion compat >= 1.5.0 + cmd:JPWL_j2k_to_image$secondaryArchSuffix = $portVersion compat >= 1.5.0 + cmd:extract_j2k_from_mj2$secondaryArchSuffix = $portVersion compat >= 1.5.0 + cmd:frames_to_mj2$secondaryArchSuffix = $portVersion compat >= 1.5.0 + cmd:image_to_j2k$secondaryArchSuffix = $portVersion compat >= 1.5.0 + cmd:j2k_dump$secondaryArchSuffix = $portVersion compat >= 1.5.0 + cmd:j2k_to_image$secondaryArchSuffix = $portVersion compat >= 1.5.0 + cmd:jpip_to_j2k$secondaryArchSuffix = $portVersion compat >= 1.5.0 + cmd:jpip_to_jp2$secondaryArchSuffix = $portVersion compat >= 1.5.0 + cmd:mj2_to_frames$secondaryArchSuffix = $portVersion compat >= 1.5.0 + cmd:opj_dec_server$secondaryArchSuffix = $portVersion compat >= 1.5.0 + cmd:test_index$secondaryArchSuffix = $portVersion compat >= 1.5.0 + cmd:wrap_j2k_in_mj2$secondaryArchSuffix = $portVersion compat >= 1.5.0 + lib:libopenjpeg$secondaryArchSuffix = $portVersion compat >= 1.5.0 + lib:libopenjpeg_JPWL$secondaryArchSuffix = $portVersion compat >= 1.5.0 + lib:libopenjpip_local$secondaryArchSuffix = $portVersion compat >= 1.5.0 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libz$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + " +# haiku_x86 doesn't claim to provide lib:libtiff_x86 on gcc2 builds +if [ "$targetArchitecture" != x86_gcc2 ];then + REQUIRES="$REQUIRES lib:libtiff$secondaryArchSuffix" +fi + +BUILD_REQUIRES=" + devel:libz + devel:libpng + " +#needs devel:libtiff too but that isn't provided by anything + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:autoconf + cmd:aclocal + cmd:autoreconf + cmd:libtoolize + cmd:make + cmd:gcc$secondaryArchSuffix + " + +PROVIDES_devel=" + openjpeg${secondaryArchSuffix}_devel = $portVersion compat >= 1.5.0 + devel:libopenjpeg$secondaryArchSuffix = $portVersion compat >= 1.5.0 + devel:libopenjpeg_JPWL$secondaryArchSuffix = $portVersion compat >= 1.5.0 + devel:libopenjpip_local$secondaryArchSuffix = $portVersion compat >= 1.5.0 + " + +REQUIRES_devel=" + openjpeg$secondaryArchSuffix == $portVersion + " + +SOURCE_DIR="openjpeg-1.5.0" + +BUILD() +{ + ./bootstrap.sh + runConfigure ./configure \ + --enable-mj2 \ + --enable-jpwl \ + --enable-jpip + make +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libopenjpeg libopenjpip_local \ + libopenjpeg_JPWL + + fixPkgconfig + + packageEntries devel $developDir +} diff --git a/media-libs/portaudio/portaudio-19.recipe b/media-libs/portaudio/portaudio-19.recipe index 675e2d86a..29a4c7f80 100644 --- a/media-libs/portaudio/portaudio-19.recipe +++ b/media-libs/portaudio/portaudio-19.recipe @@ -1,8 +1,10 @@ -DESCRIPTION="Port Audio is a free, cross-platform, audio I/O library" -SUMMARY="Port Audio is a free, cross-platform, audio I/O library" +SUMMARY="A free, cross-platform, audio I/O library" +DESCRIPTION=" +Port Audio is a free, cross-platform, audio I/O library. +" HOMEPAGE="http://portaudio.com" SRC_URI="http://portaudio.com/archives/pa_stable_v19_20111121.tgz" -CHECKSUM_MD5="25c85c1cc5e9e657486cbc299c6c035a" +CHECKSUM_SHA256="9c26d1330d506496789edafe55b0386f20d83c4aa2c0e3f81fbeb0f114ab1b99" LICENSE="MIT" COPYRIGHT="1999-2011 Ross Bencina and Phil Burk" @@ -21,15 +23,15 @@ REQUIRES=" " BUILD_PREREQUIRES=" - haiku_devel >= $haikuVersion + haiku${secondaryArchSuffix}_devel >= $haikuVersion cmd:cmake - cmd:gcc - cmd:ld + cmd:gcc${secondaryArchSuffix} + cmd:ld${secondaryArchSuffix} cmd:make " BUILD_REQUIRES=" - cmd:gcc + cmd:gcc${secondaryArchSuffix} cmd:cmake cmd:make " diff --git a/media-libs/sdl2_gfx/sdl2_gfx-2.0.x_svn.recipe b/media-libs/sdl2_gfx/sdl2_gfx-2.0.x_svn.recipe new file mode 100644 index 000000000..3bd50ab37 --- /dev/null +++ b/media-libs/sdl2_gfx/sdl2_gfx-2.0.x_svn.recipe @@ -0,0 +1,92 @@ +SUMMARY="SDL2 graphics drawing primitives and other support functions" +DESCRIPTION=" +The SDL2_gfx library evolved out of the SDL_gfxPrimitives code which provided \ +basic drawing routines such as lines, circles or polygons and SDL_rotozoom \ +which implemented a interpolating rotozoomer for SDL_surfaces. +" +HOMEPAGE="http://www.ferzkopp.net/joomla/content/view/19/14/" +SRC_URI="svn+svn://svn.code.sf.net/p/sdl2gfx/code/trunk" +#CHECKSUM_MD5="abc123" + +LICENSE="Zlib" +COPYRIGHT="1999-2012 A. Schiffler" + +REVISION="1" + +ARCHITECTURES="x86 x86_gcc2" + +PROVIDES=" + sdl2_gfx = $portVersion compat >= 2 + lib:libSDL2_gfx = 14.9.1 compat >= 14 + " + +REQUIRES=" + haiku + libsdl2 + " + +BUILD_REQUIRES=" + devel:libsdl2 + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:gcc${secondaryArchSuffix} + cmd:ld${secondaryArchSuffix} + cmd:libtool + cmd:make + cmd:pkg_config + cmd:sdl2_config + " + +SOURCE_DIR="SDL2_gfx-$portVersion" + +#BUILD_PACKAGE_ACTIVATION_PHASE = "TEST" + +BUILD() +{ + ./autogen.sh + rm aclocal.m4 + libtoolize --force --copy --install + aclocal --force --install -I acinclude + aclocal -I acinclude + automake --foreign --include-deps --add-missing --copy + autoconf + autoreconf + runConfigure ./configure --disable-mmx + make +} + +INSTALL() +{ + make install + + prepareInstalledDevelLib libSDL2_gfx + fixPkgconfig + + packageEntries devel \ + $developDir +} + +PROVIDES_devel=" + devel:SDL2_gfx = 14.9.1 compat >= 0 + devel:libSDL2_gfx = 14.9.1 compat >= 0 + devel:libSDL2_gfx = $portVersion compat >= 2.0 + devel:sdl2_gfx = 14.9.1 compat >= 0 + " + +REQUIRES_devel=" + sdl2_gfx == $portVersion base + " + + +TEST() +{ + cd Test + runConfigure ./configure +# fails to configure due to missing sdl_gfx + make + ls +} diff --git a/media-libs/sdl2_image/sdl2_image-2.0.0.recipe b/media-libs/sdl2_image/sdl2_image-2.0.0.recipe new file mode 100644 index 000000000..6f470243e --- /dev/null +++ b/media-libs/sdl2_image/sdl2_image-2.0.0.recipe @@ -0,0 +1,89 @@ +SUMMARY="Simple Direct Media Layer Image Library" +DESCRIPTION=" +SDL_image is an image file loading library. It loads images as SDL surfaces, \ +and supports the following formats: BMP, GIF, JPEG, LBM, PCX, PNG, PNM, TGA, \ +TIFF, WEBP, XCF, XPM, XV +to include those shared libraries. libpng depends on libz, and libtiff depends \ +on both libz and libjpeg. +" +HOMEPAGE="http://www.libsdl.org/projects/SDL_image" +SRC_URI="https://www.libsdl.org/projects/SDL_image/release/SDL2_image-2.0.0.tar.gz" +CHECKSUM_SHA256="b29815c73b17633baca9f07113e8ac476ae66412dec0d29a5045825c27a47234" +REVISION="2" +LICENSE="Zlib" +COPYRIGHT="1997-2013 Sam Lantinga" + +ARCHITECTURES="x86 ?x86_gcc2" +SECONDARY_ARCHITECTURES="x86 ?x86_gcc2" + +PROVIDES=" + sdl2_image${secondaryArchSuffix} = $portVersion + lib:libSDL2_image${secondaryArchSuffix} + " + +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + lib:libSDL2${secondaryArchSuffix} + lib:libGL$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + lib:libtiff$secondaryArchSuffix + lib:libgif$secondaryArchSuffix + lib:libwebp$secondaryArchSuffix + lib:libGL$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libGL${secondaryArchSuffix} + devel:libSDL2${secondaryArchSuffix} + devel:libjpeg$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libtiff$secondaryArchSuffix + devel:libgif$secondaryArchSuffix + devel:libwebp$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + cmd:libtoolize + cmd:aclocal + cmd:automake + cmd:autoconf + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +SOURCE_DIR="SDL2_image-$portVersion" + +BUILD() +{ + libtoolize --copy --force --install + aclocal --install -I acinclude + autoconf + runConfigure ./configure --with-x=no + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libSDL2_image libSDL2_image-2.0 + fixPkgconfig + + packageEntries devel \ + $developDir +} + +PROVIDES_devel=" + sdl2_image${secondaryArchSuffix}_devel = ${portVersion} compat >= 1.2 + devel:sdl2_image$secondaryArchSuffix = ${portVersion} compat >= 1.2 + devel:libSDL2_image$secondaryArchSuffix = 2.0_0.10.1 compat >= 2.0_0 + " + +REQUIRES_devel=" + sdl2_image$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/sdl2_mixer/patches/sdl2_mixer-2.0.0.patch b/media-libs/sdl2_mixer/patches/sdl2_mixer-2.0.0.patch new file mode 100644 index 000000000..d27437b7a --- /dev/null +++ b/media-libs/sdl2_mixer/patches/sdl2_mixer-2.0.0.patch @@ -0,0 +1,13 @@ +diff --git a/configure.in b/configure.in +index f71c002..cd41fc0 100644 +--- a/configure.in ++++ b/configure.in +@@ -493,7 +493,7 @@ if test x$enable_music_ogg = xyes; then + fi + else + AC_CHECK_HEADER([vorbis/vorbisfile.h], [have_ogg_hdr=yes]) +- AC_CHECK_LIB([vorbisfile -lvorbis -logg -lm], [ov_open_callbacks], [have_ogg_lib=yes]) ++ AC_CHECK_LIB([vorbisfile -lvorbis -logg], [ov_open_callbacks], [have_ogg_lib=yes]) + if test x$have_ogg_hdr = xyes -a x$have_ogg_lib = xyes; then + case "$host" in + *-*-darwin*) diff --git a/media-libs/sdl2_mixer/sdl2_mixer-2.0.0.recipe b/media-libs/sdl2_mixer/sdl2_mixer-2.0.0.recipe new file mode 100644 index 000000000..e00c741e7 --- /dev/null +++ b/media-libs/sdl2_mixer/sdl2_mixer-2.0.0.recipe @@ -0,0 +1,98 @@ +SUMMARY="Simple Direct Layer Mixer Library" +DESCRIPTION=" +sdl2_mixer is a simple multi-channel audio mixer library. It supports any \ +number of simultaneously playing channels of 16 bit stereo audio, plus a \ +single channel of music, mixed by the popular FLAC, MikMoD MOD, Timidity MIDI, \ +Ogg Vorbis, and SMPEG MP3 libraries. +" +HOMEPAGE="http://www.libsdl.org/projects/SDL_mixer/" +SRC_URI="http://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-2.0.0.tar.gz" +CHECKSUM_SHA256="a8ce0e161793791adeff258ca6214267fdd41b3c073d2581cd5265c8646f725b" +LICENSE="Zlib" +COPYRIGHT="1997-2012 Sam Lantinga" +REVISION="1" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="?x86_gcc2 ?x86" + +PATCHES="sdl2_mixer-${portVersion}.patch" + +PROVIDES=" + sdl2_mixer$secondaryArchSuffix = $portVersion compat >= 2.0 + lib:libSDL2_mixer$secondaryArchSuffix = 2.0 + lib:libSDL2_mixer_2.0$secondaryArchSuffix = 0.0 + cmd:playwave$secondaryArchSuffix + cmd:playmus$secondaryArchSuffix + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libGL$secondaryArchSuffix # No clue, it wants it + lib:libSDL2_2.0$secondaryArchSuffix + lib:libogg$secondaryArchSuffix + lib:libflac$secondaryArchSuffix +# lib:libfluidsynth$secondaryArchSuffix + lib:libmad$secondaryArchSuffix + lib:libvorbis$secondaryArchSuffix +# lib:libmikmod$secondaryArchSuffix # requires libSDL +# lib:libsmpeg$secondaryArchSuffix # requires libSDL + " + +BUILD_REQUIRES=" + devel:libGL$secondaryArchSuffix + devel:libSDL2$secondaryArchSuffix + devel:libogg$secondaryArchSuffix + devel:libflac$secondaryArchSuffix +# devel:libfluidsynth$secondaryArchSuffix + devel:libmad$secondaryArchSuffix + devel:libvorbis$secondaryArchSuffix +# devel:libmikmod$secondaryArchSuffix # requires libSDL +# devel:libsmpeg$secondaryArchSuffix # requires libSDL + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtool + cmd:make + cmd:pkg_config$secondaryArchSuffix + " + +SOURCE_DIR="SDL2_mixer-$portVersion" + +BUILD() +{ + libtoolize --force --copy --install + aclocal --force --install -I acinclude + autoconf + runConfigure ./configure \ + SMPEG_CONFIG=smpeg_config$secondaryArchSuffix + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libSDL2_mixer + prepareInstalledDevelLibs libSDL2_mixer-2.0 + fixPkgconfig + + packageEntries devel \ + $developDir +} + +PROVIDES_devel=" + sdl2_mixer${secondaryArchSuffix}_devel = $portVersion compat >= 2.0 + devel:sdl2_mixer$secondaryArchSuffix = $portVersion compat >= 2.0 + devel:libSDL2_mixer$secondaryArchSuffix = $portVersion compat >= 2.0 + devel:libSDL2_mixer_2.0$secondaryArchSuffix = $portVersion compat >= 2.0 + " + +REQUIRES_devel=" + sdl2_mixer$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/sdl2_ttf/sdl2_ttf-2.0.12.recipe b/media-libs/sdl2_ttf/sdl2_ttf-2.0.12.recipe index a8ded08ac..112dd0826 100644 --- a/media-libs/sdl2_ttf/sdl2_ttf-2.0.12.recipe +++ b/media-libs/sdl2_ttf/sdl2_ttf-2.0.12.recipe @@ -1,47 +1,79 @@ -SUMMARY="Simple Direct Media Layer Image Library" -DESCRIPTION="SDL" +SUMMARY="A TrueType font rendering library for SDL2" +DESCRIPTION=" +SDL_ttf is a TrueType font rendering library that is used with the SDL \ +library, and almost as portable. It depends on freetype2 to handle the \ +TrueType font data. It allows a programmer to use multiple TrueType fonts \ +without having to code a font rendering routine themselves. With the power of \ +outline fonts and antialiasing, high quality text output can be obtained \ +without much effort. +" HOMEPAGE="http://www.libsdl.org/projects/SDL_ttf" SRC_URI="http://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-2.0.12.tar.gz" -CHECKSUM_MD5="79787216b56cb4707f39d538f2225e00" -REVISION="1" +CHECKSUM_SHA256="8728605443ea1cca5cad501dc34dc0cb15135d1e575551da6d151d213d356f6e" +REVISION="2" LICENSE="Zlib" COPYRIGHT="1997-2013 Sam Lantinga" ARCHITECTURES="x86 x86_gcc2" +SECONDARY_ARCHITECTURES="?x86 ?x86_gcc2" PROVIDES=" - lib:SDL2_ttf + sdl2_ttf${secondaryArchSuffix} = $portVersion + lib:libSDL2_ttf${secondaryArchSuffix} " REQUIRES=" - lib:libsdl2 + haiku${secondaryArchSuffix} >= $haikuVersion + lib:libfreetype${secondaryArchSuffix} + lib:libSDL2${secondaryArchSuffix} + lib:libz${secondaryArchSuffix} " BUILD_REQUIRES=" - cmd:autoconf - cmd:libtool - cmd:aclocal - cmd:make - cmd:gcc + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libfreetype${secondaryArchSuffix} + devel:libSDL2${secondaryArchSuffix} + devel:libz${secondaryArchSuffix} " BUILD_PREREQUIRES=" + cmd:libtoolize + cmd:aclocal + cmd:automake + cmd:autoconf + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make " SOURCE_DIR="SDL2_ttf-$portVersion" BUILD() { -# rm -f acinclude.m4 -# libtoolize --copy --force --install -# aclocal --install -I acinclude -# echo "AC_CONFIG_MACRO_DIR([acinclude]) > configure.in" -# ./autogen.sh - runConfigure ./configure - make + libtoolize --copy --force --install + aclocal --install -I acinclude + autoconf + runConfigure ./configure --with-x=no + make $jobArgs } INSTALL() { make install + + prepareInstalledDevelLibs libSDL2_ttf + fixPkgconfig + + packageEntries devel \ + $developDir } + +PROVIDES_devel=" + sdl2_ttf${secondaryArchSuffix}_devel = ${portVersion} compat >= 1.2 + devel:sdl2_ttf$secondaryArchSuffix = ${portVersion} compat >= 1.2 + devel:libSDL2_ttf$secondaryArchSuffix = 2.0_0.10.1 compat >= 2.0_0 + " + +REQUIRES_devel=" + sdl2_ttf$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/sdl_gfx/sdl_gfx-2.0.24.recipe b/media-libs/sdl_gfx/sdl_gfx-2.0.24.recipe index a8eefad7c..1d1b4882a 100644 --- a/media-libs/sdl_gfx/sdl_gfx-2.0.24.recipe +++ b/media-libs/sdl_gfx/sdl_gfx-2.0.24.recipe @@ -1,35 +1,40 @@ -SUMMARY="SDL_gfx - SDL graphics drawing primitives and other support functions" -DESCRIPTION="The SDL_gfx library evolved out of the SDL_gfxPrimitives code which provided basic drawing routines such as lines, circles or polygons and SDL_rotozoom which implemented a interpolating rotozoomer for SDL_surfaces." +SUMMARY="SDL graphics drawing primitives and other support functions" +DESCRIPTION=" +The SDL_gfx library evolved out of the SDL_gfxPrimitives code which provided \ +basic drawing routines such as lines, circles or polygons and SDL_rotozoom \ +which implemented a interpolating rotozoomer for SDL_surfaces. +" 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.24.tar.gz" -CHECKSUM_MD5="838514185ff9a3b6377760aaa52fef8a" +CHECKSUM_SHA256="30ad38c3e17586e5212ce4a43955adf26463e69a24bb241f152493da28d59118" LICENSE="Zlib" COPYRIGHT="1999-2012 A. Schiffler" REVISION="1" -ARCHITECTURES="x86 x86_gcc2" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" PROVIDES=" - sdl_gfx = $portVersion compat >= 2 - lib:libSDL_gfx = 14.9.1 compat >= 14 + sdl_gfx$secondaryArchSuffix = $portVersion compat >= 2 + lib:libSDL_gfx$secondaryArchSuffix = 14.9.1 compat >= 14 " REQUIRES=" - haiku - libsdl + haiku$secondaryArchSuffix >= $haikuVersion + libsdl$secondaryArchSuffix " BUILD_REQUIRES=" - devel:libsdl + devel:libsdl$secondaryArchSuffix " BUILD_PREREQUIRES=" - haiku_devel + haiku${secondaryArchSuffix}_devel >= $haikuVersion cmd:aclocal cmd:autoconf - cmd:gcc - cmd:ld + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix cmd:libtool cmd:make cmd:pkg_config @@ -63,22 +68,28 @@ INSTALL() } PROVIDES_devel=" - devel:SDL_gfx = 14.9.1 compat >= 0 - devel:libSDL_gfx = 14.9.1 compat >= 0 - devel:libSDL_gfx = $portVersion compat >= 2.0 - devel:sdl_gfx = 14.9.1 compat >= 0 + sdl_gfx${secondaryArchSuffix}_devel = $portVersion compat >= 2 + devel:sdl_gfx$secondaryArchSuffix = 14.9.1 compat >= 14 + devel:libSDL_gfx$secondaryArchSuffix = 14.9.1 compat >= 14 " REQUIRES_devel=" - sdl_gfx == $portVersion base + sdl_gfx$secondaryArchSuffix == $portVersion base " - TEST() { cd Test + ./autogen.sh runConfigure ./configure -# fails to configure due to missing sdl_gfx make - ls + TestABGR + TestFonts + TestFramerate + TestImageFilter + TestGfxBlit + TestGfxPrimitives + TestGfxTexture + TestRotozoom + TestShrink } diff --git a/media-libs/sdl_image/sdl_image-1.2.10.recipe b/media-libs/sdl_image/sdl_image-1.2.10.recipe deleted file mode 100644 index c298649cc..000000000 --- a/media-libs/sdl_image/sdl_image-1.2.10.recipe +++ /dev/null @@ -1,35 +0,0 @@ -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.10.tar.gz" -CHECKSUM_MD5="6c06584b31559e2b59f2b982d0d1f628" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="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" -BUILD() -{ - cd SDL_image-1.2.10 - 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.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.recipe b/media-libs/sdl_image/sdl_image-1.2.12.recipe index 8ebbdc8a9..84f343fea 100644 --- a/media-libs/sdl_image/sdl_image-1.2.12.recipe +++ b/media-libs/sdl_image/sdl_image-1.2.12.recipe @@ -1,49 +1,62 @@ -SUMMARY="Simple Direct Media Layer Image Library" -DESCRIPTION="Simple Direct Media Layer Image Library" +SUMMARY="Simple Direct Media Layer Image Library" +DESCRIPTION=" +SDL_image is an image file loading library. It loads images as SDL surfaces, \ +and supports the following formats: BMP, GIF, JPEG, LBM, PCX, PNG, PNM, TGA, \ +TIFF, WEBP, XCF, XPM, XV +As of SDL_image 1.2.5, JPEG, PNG, TIFF, and WEBP image loading libraries are \ +dynamically loaded, so if you don't need to load those formats, you don't need \ +to include those shared libraries. libpng depends on libz, and libtiff depends \ +on both libz and libjpeg. +" 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="2" +CHECKSUM_SHA256="0b90722984561004de84847744d566809dbb9daf732a9e503b91a1b5a84e5699" +REVISION="3" LICENSE="Zlib" COPYRIGHT="1997-2012 Sam Lantinga" -ARCHITECTURES="x86 x86_gcc2" +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" PROVIDES=" - sdl_image =$portVersion - lib:libSDL_image_1.2 = $portVersion compat >= 1.2 - devel:libSDL_image = $portVersion compat >= 1.2 + sdl_image$secondaryArchSuffix = $portVersion compat >= 1.2 + lib:libSDL_image$secondaryArchSuffix = 1.2_0.8.4 compat >= 1.2_0 + lib:libSDL_image_1.2$secondaryArchSuffix = $portVersion compat >= 0 " REQUIRES=" - haiku - libsdl - lib:libjpeg + haiku$secondaryArchSuffix + lib:libSDL$secondaryArchSuffix + lib:libSDL_1.2$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + lib:libtiff$secondaryArchSuffix + lib:libgif$secondaryArchSuffix + lib:libwebp$secondaryArchSuffix + lib:libGL$secondaryArchSuffix + lib:libz$secondaryArchSuffix " BUILD_REQUIRES=" - devel:libsdl - lib:libjpeg - lib:libpng - lib:libtiff -# lib:giflib -# lib:libwebp + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libSDL$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libtiff$secondaryArchSuffix + devel:libgif$secondaryArchSuffix + devel:libwebp$secondaryArchSuffix + devel:libz$secondaryArchSuffix " BUILD_PREREQUIRES=" - haiku_devel cmd:aclocal cmd:autoconf - cmd:gcc - cmd:ld - cmd:libtool + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize cmd:make - cmd:pkg_config - cmd:sdl_config - devel:libpng - devel:libjpeg -# devel:libtiff -# devel:libwebp + cmd:pkg_config$secondaryArchSuffix + cmd:sdl_config$secondaryArchSuffix " SOURCE_DIR="SDL_image-1.2.12" @@ -54,9 +67,9 @@ BUILD() aclocal --install -I acinclude ./autogen.sh runConfigure ./configure \ - --enable-bmp --enable-lbm --enable-pcx \ + --enable-bmp --enable-lbm --enable-pcx --enable-png --enable-tif \ --enable-pnm --enable-tga --enable-xcf --enable-xpm --enable-xv \ - --enable-gif --enable-jpg --disable-jpg-shared + --enable-gif --enable-jpg --disable-jpg-shared --enable-webp make } @@ -64,18 +77,21 @@ INSTALL() { make install + prepareInstalledDevelLibs libSDL_image \ + libSDL_image-1.2 fixPkgconfig - prepareInstalledDevelLib libSDL_image packageEntries devel \ $developDir } PROVIDES_devel=" - devel:SDL_image = 0.8.4 compat >= 0 - devel:libSDL_image = 0.8.4 compat >= 0 + sdl_image${secondaryArchSuffix}_devel = $portVersion compat >= 1.2 + devel:sdl_image$secondaryArchSuffix = 0.8.4 compat >= 0 + devel:libSDL_image$secondaryArchSuffix = 1.2_0.8.4 compat >= 0 + devel:libSDL_image_1.2$secondaryArchSuffix = 0.8.4 compat >= 0 " REQUIRES_devel=" - sdl_image == $portVersion base + sdl_image$secondaryArchSuffix == $portVersion base " diff --git a/media-libs/sdl_image/sdl_image-1.2.6.recipe b/media-libs/sdl_image/sdl_image-1.2.6.recipe deleted file mode 100644 index 3e79c65b7..000000000 --- a/media-libs/sdl_image/sdl_image-1.2.6.recipe +++ /dev/null @@ -1,26 +0,0 @@ -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.6.tar.gz" -CHECKSUM_MD5="b866dc4f647517bdaf57f6ffdefd013e" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd sdl-image-1.2.6 - cat acinclude/libtool.m4 >> aclocal.m4 - cat acinclude/sdl.m4 >> aclocal.m4 - aclocal - libtoolize --copy --force - aclocal - autoconf - ./autogen.sh - ./configure --prefix=`finddir B_COMMON_DIRECTORY` LDFLAGS=-L/boot/common/lib CPPFLAGS=-I/boot/common/include - make -} - -INSTALL() -{ - cd sdl-image-1.2.6 - make install -} diff --git a/media-libs/sdl_image/sdl_image-1.2.8.recipe b/media-libs/sdl_image/sdl_image-1.2.8.recipe deleted file mode 100644 index d9f80df59..000000000 --- a/media-libs/sdl_image/sdl_image-1.2.8.recipe +++ /dev/null @@ -1,22 +0,0 @@ -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.8.tar.gz" -CHECKSUM_MD5="2e7c3efa0ec2acc039c46960e27c0792" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd SDL_image-1.2.8 - libtoolize --force --copy --install - aclocal --install -I acinclude - ./autogen.sh - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd SDL_image-1.2.8 - make install -} diff --git a/media-libs/sdl_image/sdl_image-1.2.9.recipe b/media-libs/sdl_image/sdl_image-1.2.9.recipe deleted file mode 100644 index eb781ba26..000000000 --- a/media-libs/sdl_image/sdl_image-1.2.9.recipe +++ /dev/null @@ -1,22 +0,0 @@ -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.9.tar.gz" -CHECKSUM_MD5="793eb3e7bbbf396f83fc6cd031842aa3" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd SDL_image-1.2.9 - libtoolize --force --copy --install - aclocal --install -I acinclude - ./autogen.sh - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd SDL_image-1.2.9 - make install -} diff --git a/media-libs/sdl_image/sdl_image-1.2_hg.recipe b/media-libs/sdl_image/sdl_image-1.2_hg.recipe deleted file mode 100644 index 370b1e1d9..000000000 --- a/media-libs/sdl_image/sdl_image-1.2_hg.recipe +++ /dev/null @@ -1,37 +0,0 @@ -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_libpak/sdl-libpak.OptionalPackageDescription b/media-libs/sdl_libpak/sdl-libpak.OptionalPackageDescription deleted file mode 100644 index 5e74a224d..000000000 --- a/media-libs/sdl_libpak/sdl-libpak.OptionalPackageDescription +++ /dev/null @@ -1,81 +0,0 @@ -Package: GUIlib -Version: 1.2.1 -License: Public Domain -URL: http://www.libsdl.org/projects/GUIlib/ - -Package: libmikmod -Version: 3.1.12 -Copyright: 1998-2004 Jean-Paul Mikkers, Jake Stine, Frank Loemker, Steve McIntyre, Peter Amstutz, and Miodrag Vallat. -License: GNU LGPL v2.1 -URL: http://mikmod.raphnet.net/ - -Package: libmodplug -Version: 0.8.7 -License: Public Domain -URL: http://modplug-xmms.sourceforge.net/ - -Package: libsdl -Version: 1.2.14 -Copyright: 1997-2009 Sam Lantinga -License: GNU LGPL v2.1 -URL: http://www.libsdl.org/ - -Package: sdl-gfx -Version: 2.0.20 -Copyright: 1999-2009 A. Schiffler -License: GNU LGPL v2.1 -URL: http://www.ferzkopp.net/joomla/software-mainmenu-14/4-ferzkopps-linux-software/19-sdlgfx/ - -Package: sdl-image -Version: 1.2.8 -Copyright: 1997-2009 Sam Lantinga and Mattias Engdegård -License: GNU LGPL v2.1 -URL: http://www.libsdl.org/projects/SDL_image/ - -Package: sdl-mixer -Version: 1.2.9 -Copyright: 1997-2009 Sam Lantinga -License: GNU LGPL v2.1 -URL: http://www.libsdl.org/projects/SDL_mixer/ - -Package: sdl-net -Version: 1.2.7-svn4957 -Copyright: 1997-2009 Sam Lantinga -License: GNU LGPL v2.1 -URL: http://www.libsdl.org/projects/SDL_net/ - -Package: sdl-rtf -Version: 0.1-svn4957 -Copyright: 2003-2009 Sam Lantinga -License: GNU LGPL v2 -URL: http://www.libsdl.org/projects/SDL_rtf/ - -Package: sdl-sound -Version: 1.0.3 -Copyright: 2001-2009 Ryan C. Gordon -License: GNU LGPL v2.1 -URL: http://icculus.org/SDL_sound/ - -Package: sdl-ttf -Version: 2.0.9 -Copyright: 1997-2007 Sam Lantinga -License: GNU LGPL v2.1 -URL: http://www.libsdl.org/projects/SDL_ttf/ - -Package: sge -Version: 030809 -Copyright: 1999-2003 Anders Lindstrom -License: GNU LGPL v2.1 -URL: http://www.digitalfanatics.org/cal/sge/index.html - -Package: smjpeg -Version: 0.2.1-svn35 -Copyright: 1999-2004 Sam Lantinga, Joe Tennies. -License: GNU LGPL v2 -URL: http://www.icculus.org/smjpeg/ - -Package: smpeg -Version: 0.2.1 -Copyright: 1999-2004 Sam Lantinga, Joe Tennies. -License: GNU LGPL v2 -URL: http://www.icculus.org/smjpeg diff --git a/media-libs/sdl_mixer/sdl_mixer-1.2.10.recipe b/media-libs/sdl_mixer/sdl_mixer-1.2.10.recipe deleted file mode 100644 index e9d30d1d9..000000000 --- a/media-libs/sdl_mixer/sdl_mixer-1.2.10.recipe +++ /dev/null @@ -1,26 +0,0 @@ -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.10.tar.gz" -CHECKSUM_MD5="a357558552436b0b5ea0333b3e2327df" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd SDL_mixer-1.2.10 - libtoolize --force --copy --install - cp ltmain.sh build-scripts/ltmain.sh - aclocal --install -I acinclude - ./autogen.sh - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -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.recipe b/media-libs/sdl_mixer/sdl_mixer-1.2.11.recipe deleted file mode 100644 index f4a205f2f..000000000 --- a/media-libs/sdl_mixer/sdl_mixer-1.2.11.recipe +++ /dev/null @@ -1,36 +0,0 @@ -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.11.tar.gz" -CHECKSUM_MD5="65ada3d997fe85109191a5fb083f248c" -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.11 - libtoolize --force --copy --install - cp ltmain.sh build-scripts/ltmain.sh - 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.11 - make install -} -LICENSE="GNU LGPL v2.1" -COPYRIGHT="1997-2009 Sam Lantinga" diff --git a/media-libs/sdl_mixer/sdl_mixer-1.2.12.recipe b/media-libs/sdl_mixer/sdl_mixer-1.2.12.recipe index 19e265b7a..427515563 100644 --- a/media-libs/sdl_mixer/sdl_mixer-1.2.12.recipe +++ b/media-libs/sdl_mixer/sdl_mixer-1.2.12.recipe @@ -1,69 +1,87 @@ -SUMMARY="sdl_mixer is a simple multi-channel audio mixer library. It supports any number of simultaneously playing channels of 16 bit stereo audio, plus a single channel of music, mixed by the popular FLAC, MikMoD MOD, Timidity MIDI, Ogg Vorbis, and SMPEG MP3 libraries." -DESCRIPTION="Simple Direct Layer Mixer Library" +SUMMARY="Simple Direct Layer Mixer Library" +DESCRIPTION=" +sdl_mixer is a simple multi-channel audio mixer library. It supports any \ +number of simultaneously playing channels of 16 bit stereo audio, plus a \ +single channel of music, mixed by the popular FLAC, MikMoD MOD, Timidity MIDI, \ +Ogg Vorbis, and SMPEG MP3 libraries. +" 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" +CHECKSUM_SHA256="1644308279a975799049e4826af2cfc787cad2abb11aa14562e402521f86992a" LICENSE="Zlib" COPYRIGHT="1997-2012 Sam Lantinga" -REVISION="1" +REVISION="3" -ARCHITECTURES="x86 x86_gcc2" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" PROVIDES=" - sdl_net =$portVersion - lib:libSDL_mixer_1.2 = $portVersion compat >= 1.2 - devel:libSDL_mixer = $portVersion compat >= 1.2 + sdl_mixer$secondaryArchSuffix = $portVersion compat >= 1.2 + lib:libSDL_mixer$secondaryArchSuffix = 1.2_0.12.0 compat >= 1.2_0 + lib:libSDL_mixer_1.2$secondaryArchSuffix = 0.12.0 compat >= 0 + cmd:playwave$secondaryArchSuffix + cmd:playmus$secondaryArchSuffix " REQUIRES=" - haiku - libsdl - flac - libmad - libvorbis - libogg -# libmikmod -# smpeg + haiku$secondaryArchSuffix >= $haikuVersion + lib:libSDL$secondaryArchSuffix + lib:libSDL_1.2$secondaryArchSuffix + lib:libflac$secondaryArchSuffix +# lib:libfluidsynth$secondaryArchSuffix + lib:libmad$secondaryArchSuffix + lib:libvorbis$secondaryArchSuffix + lib:libogg$secondaryArchSuffix + lib:libmikmod$secondaryArchSuffix + lib:libsmpeg$secondaryArchSuffix + lib:libGL$secondaryArchSuffix " BUILD_REQUIRES=" - devel:libsdl + devel:libSDL$secondaryArchSuffix + devel:libogg$secondaryArchSuffix + devel:libflac$secondaryArchSuffix +# devel:libfluidsynth$secondaryArchSuffix + devel:libmad$secondaryArchSuffix + devel:libvorbis$secondaryArchSuffix + devel:libogg$secondaryArchSuffix + devel:libmikmod$secondaryArchSuffix + devel:libsmpeg$secondaryArchSuffix " BUILD_PREREQUIRES=" - haiku_devel + haiku${secondaryArchSuffix}_devel >= $haikuVersion cmd:aclocal cmd:autoconf - cmd:gcc - cmd:ld + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix cmd:libtool cmd:make - cmd:pkg_config - cmd:sdl_config - devel:libogg - devel:flac - devel:libmad - devel:libvorbis - devel:libogg -# devel:libmikmod -# devel:smpeg + cmd:pkg_config$secondaryArchSuffix + cmd:sdl_config$secondaryArchSuffix + cmd:smpeg_config$secondaryArchSuffix + cmd:libmikmod_config$secondaryArchSuffix " SOURCE_DIR="SDL_mixer-$portVersion" + BUILD() { libtoolize --force --copy --install aclocal --force --install -I acinclude autoconf - runConfigure ./configure - make + runConfigure ./configure \ + SMPEG_CONFIG=smpeg_config$secondaryArchSuffix + make $jobArgs } INSTALL() { make install - prepareInstalledDevelLib libSDL_mixer + prepareInstalledDevelLibs libSDL_mixer \ + libSDL_mixer-1.2 fixPkgconfig packageEntries devel \ @@ -71,10 +89,11 @@ INSTALL() } PROVIDES_devel=" - devel:SDL_mixer = 0.0.0 compat >= 0 - devel:libSDL_mixer = 0.0.0 compat >= 0 + devel:sdl_mixer$secondaryArchSuffix = 1.2.12 compat >= 1.2 + devel:libSDL_mixer$secondaryArchSuffix = 1.2_0.12.0 compat >= 0 + devel:libSDL_mixer_1.2$secondaryArchSuffix = 0.12.0 compat >= 0 " REQUIRES_devel=" - sdl_mixer == $portVersion base + sdl_mixer$secondaryArchSuffix == $portVersion base " diff --git a/media-libs/sdl_mixer/sdl_mixer-1.2.9.recipe b/media-libs/sdl_mixer/sdl_mixer-1.2.9.recipe deleted file mode 100644 index b1e9c4e91..000000000 --- a/media-libs/sdl_mixer/sdl_mixer-1.2.9.recipe +++ /dev/null @@ -1,25 +0,0 @@ -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.9.tar.gz" -CHECKSUM_MD5="09eb4585f46d3527fe7fce8af8f9e591" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd SDL_mixer-1.2.9 - libtoolize --force --copy --install - cp ltmain.sh build-scripts/ltmain.sh - aclocal --install -I acinclude - ./autogen.sh - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd SDL_mixer-1.2.9 - make install -} -LICENSE="GNU LGPL v2.1" -COPYRIGHT="1997-2009 Sam Lantinga" diff --git a/media-libs/sdl_mixer/sdl_mixer-1.2_hg.recipe b/media-libs/sdl_mixer/sdl_mixer-1.2_hg.recipe deleted file mode 100644 index 670953ed7..000000000 --- a/media-libs/sdl_mixer/sdl_mixer-1.2_hg.recipe +++ /dev/null @@ -1,34 +0,0 @@ -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_net/sdl_net-1.2.7.recipe b/media-libs/sdl_net/sdl_net-1.2.7.recipe deleted file mode 100644 index 3ba48eb2b..000000000 --- a/media-libs/sdl_net/sdl_net-1.2.7.recipe +++ /dev/null @@ -1,29 +0,0 @@ -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.7.tar.gz" -CHECKSUM_MD5="6bd4662d1423810f3140d4da21b6d912" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd SDL_net-1.2.7 - 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.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.recipe b/media-libs/sdl_net/sdl_net-1.2.8.recipe index 82459fe0d..509996d36 100644 --- a/media-libs/sdl_net/sdl_net-1.2.8.recipe +++ b/media-libs/sdl_net/sdl_net-1.2.8.recipe @@ -1,41 +1,48 @@ -SUMMARY="Simple Direct Media Layer Net Library" -DESCRIPTION="This is a small simple cross-platform networking library for SDL" +SUMMARY="Simple Direct Media Layer Net Library" +DESCRIPTION=" +This is a small simple cross-platform networking library for SDL. +" 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" +CHECKSUM_SHA256="5f4a7a8bb884f793c278ac3f3713be41980c5eedccecff0260411347714facb4" LICENSE="Zlib" COPYRIGHT="1997-2012 Sam Lantinga" -REVISION="1" -ARCHITECTURES="x86 x86_gcc2" +REVISION="4" +ARCHITECTURES="x86 x86_gcc2 x86_64" +SECONDARY_ARCHITECTURES="x86" PROVIDES=" - sdl_net =$portVersion - lib:libSDL_net_1.2 = $portVersion compat >= 1.2 - devel:libSDL_net = $portVersion compat >= 1.2 + sdl_net$secondaryArchSuffix = $portVersion + lib:libSDL_net$secondaryArchSuffix = 1.2_0.8.0 compat >= 1.2_0 + lib:libSDL_net_1.2$secondaryArchSuffix = 0.8.0 compat >= 1.2 " REQUIRES=" - haiku - libsdl + haiku$secondaryArchSuffix >= $haikuVersion + lib:libsdl$secondaryArchSuffix + lib:libGL$secondaryArchSuffix " BUILD_REQUIRES=" - devel:libsdl + devel:libsdl$secondaryArchSuffix " BUILD_PREREQUIRES=" - haiku_devel + haiku${secondaryArchSuffix}_devel cmd:aclocal cmd:autoconf - cmd:gcc - cmd:ld + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix cmd:libtool cmd:make cmd:pkg_config cmd:sdl_config " + +PATCHES="sdl_net-1.2.8.patch" SOURCE_DIR="SDL_net-$portVersion" + BUILD() { libtoolize --force --copy --install @@ -49,8 +56,8 @@ INSTALL() { make install - prepareInstalledDevelLib libSDL_net + prepareInstalledDevelLib libSDL_net-1.2 fixPkgconfig packageEntries devel \ @@ -58,10 +65,11 @@ INSTALL() } PROVIDES_devel=" - devel:SDL_net = 0.8.0 compat >= 0 - devel:libSDL_net = 0.8.0 compat >= 0 + devel:sdl_net${secondaryArchSuffix} = $portVersion compat >= 1.2 + devel:libSDL_net$secondaryArchSuffix = 1.2_0.8.0 compat >= 0 + devel:libSDL_net_1.2$secondaryArchSuffix = 0.8.0 compat >= 0 " REQUIRES_devel=" - sdl_net == $portVersion base + sdl_net$secondaryArchSuffix == $portVersion base " diff --git a/media-libs/sdl_net/sdl_net-1.2_hg.recipe b/media-libs/sdl_net/sdl_net-1.2_hg.recipe deleted file mode 100644 index bbea0675b..000000000 --- a/media-libs/sdl_net/sdl_net-1.2_hg.recipe +++ /dev/null @@ -1,29 +0,0 @@ -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_sound/sdl_sound-1.0.3.recipe b/media-libs/sdl_sound/sdl_sound-1.0.3.recipe index 76e780272..0b448df44 100644 --- a/media-libs/sdl_sound/sdl_sound-1.0.3.recipe +++ b/media-libs/sdl_sound/sdl_sound-1.0.3.recipe @@ -1,40 +1,64 @@ -SUMMARY="Library that handles decoding of several popular sound file formats." -DESCRIPTION="sdl-sound is a library that handles the decoding of several popular file formats, such as .WAV and .MP3. It is meant to make the programmer's sound playback tasks simpler." +SUMMARY="Library that handles decoding of several popular sound file formats" +DESCRIPTION=" +sdl-sound is a library that handles the decoding of several popular file \ +formats, such as .WAV and .MP3. It is meant to make the programmer's sound \ +playback tasks simpler. +" HOMEPAGE="http://www.icculus.org/SDL_sound" SRC_URI="hg+http://hg.icculus.org/icculus/SDL_sound#release-1.0.3" LICENSE="GNU LGPL v2.1" COPYRIGHT="2001-2009 Ryan C. Gordon" -REVISION="1" +REVISION="3" -ARCHITECTURES="x86 x86_gcc2" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" PROVIDES=" - sdl_sound =$portVersion - cmd:playsound = $portVersion compat >= 2 - cmd:playsound_simple = $portVersion compat >= 2 - lib:libSDL_sound_1.0 = $portVersion compat >= 1.0 + sdl_sound$secondaryArchSuffix = $portVersion + cmd:playsound$secondaryArchSuffix = $portVersion compat >= 2 + cmd:playsound_simple$secondaryArchSuffix = $portVersion compat >= 2 + lib:libSDL_sound$secondaryArchSuffix = 1.0_0.8.0 compat >= 1.0_0 + lib:libSDL_sound_1.0$secondaryArchSuffix = 0.8.0 compat >= 1.0 " REQUIRES=" - haiku - libsdl + haiku$secondaryArchSuffix + lib:libsdl$secondaryArchSuffix + lib:libogg$secondaryArchSuffix + lib:libvorbis$secondaryArchSuffix + lib:libspeex$secondaryArchSuffix + +# lib:libFlac$secondaryArchSuffix +# lib:libmikmod$secondaryArchSuffix + lib:libmodplug$secondaryArchSuffix +# lib:smpeg$secondaryArchSuffix +# lib:physfs$secondaryArchSuffix + + lib:libGL$secondaryArchSuffix " BUILD_REQUIRES=" - devel:libsdl - devel:libogg + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libsdl$secondaryArchSuffix + devel:libogg$secondaryArchSuffix + devel:libvorbis$secondaryArchSuffix + devel:libspeex$secondaryArchSuffix +# devel:libFlac$secondaryArchSuffix +# devel:libmikmod$secondaryArchSuffix + devel:libmodplug$secondaryArchSuffix +# devel:smpeg$secondaryArchSuffix +# devel:physfs$secondaryArchSuffix " BUILD_PREREQUIRES=" - haiku_devel cmd:aclocal cmd:autoconf - cmd:gcc - cmd:ld - cmd:libtool + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize cmd:make - cmd:pkg_config - cmd:sdl_config + cmd:pkg_config$secondaryArchSuffix + cmd:sdl_config$secondaryArchSuffix " SOURCE_DIR="SDL_sound-$portVersion" @@ -54,7 +78,8 @@ INSTALL() { make install - prepareInstalledDevelLib libSDL_sound + prepareInstalledDevelLibs libSDL_sound \ + libSDL_sound-1.0 fixPkgconfig packageEntries devel \ @@ -62,12 +87,12 @@ INSTALL() } PROVIDES_devel=" - devel:SDL_sound = 0.8.0 compat >= 0 - devel:libSDL_sound = 0.8.0 compat >= 0 -# devel:libSDL_sound = $portVersion compat >= 1.0 - devel:sdl_sound = 0.0.0 compat >= 0 + sdl_sound${secondaryArchSuffix}_devel = $portVersion compat >= 1.0 + devel:SDL_sound$secondaryArchSuffix = 0.8.0 compat >= 0 + devel:libSDL_sound$secondaryArchSuffix = 1.0_0.8.0 compat >= 1.0_0 + devel:libSDL_sound_1.0$secondaryArchSuffix = 0.8.0 compat >= 0 " REQUIRES_devel=" - sdl_sound == $portVersion base + sdl_sound$secondaryArchSuffix == $portVersion base " diff --git a/media-libs/sdl_sound/sdl_sound-1.0_hg.recipe b/media-libs/sdl_sound/sdl_sound-1.0_hg.recipe deleted file mode 100644 index 86fe30fca..000000000 --- a/media-libs/sdl_sound/sdl_sound-1.0_hg.recipe +++ /dev/null @@ -1,26 +0,0 @@ -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.10.recipe b/media-libs/sdl_ttf/sdl_ttf-2.0.10.recipe deleted file mode 100644 index 7fd96a9d8..000000000 --- a/media-libs/sdl_ttf/sdl_ttf-2.0.10.recipe +++ /dev/null @@ -1,32 +0,0 @@ -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.10.tar.gz" -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.10 - 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.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.recipe b/media-libs/sdl_ttf/sdl_ttf-2.0.11.recipe index bad25b15d..da25c21da 100644 --- a/media-libs/sdl_ttf/sdl_ttf-2.0.11.recipe +++ b/media-libs/sdl_ttf/sdl_ttf-2.0.11.recipe @@ -1,56 +1,64 @@ -DESCRIPTION=" - SDL_ttf is a TrueType font rendering library that is used with the SDL - library, and almost as portable. It depends on freetype2 to handle the - TrueType font data. It allows a programmer to use multiple TrueType fonts - without having to code a font rendering routine themselves. With the power - of outline fonts and antialiasing, high quality text output can be obtained - without much effort. - " SUMMARY="Simple Direct Media Layer Image Library" +DESCRIPTION=" +SDL_ttf is a TrueType font rendering library that is used with the SDL \ +library, and almost as portable. It depends on freetype2 to handle the \ +TrueType font data. It allows a programmer to use multiple TrueType fonts \ +without having to code a font rendering routine themselves. With the power of \ +outline fonts and antialiasing, high quality text output can be obtained \ +without much effort. +" HOMEPAGE="http://www.libsdl.org/projects/SDL_ttf/release-1.2.html" SRC_URI="http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-2.0.11.tar.gz" -CHECKSUM_MD5="61e29bd9da8d245bc2471d1b2ce591aa" +CHECKSUM_SHA256="724cd895ecf4da319a3ef164892b72078bd92632a5d812111261cde248ebcdb7" LICENSE="Zlib" COPYRIGHT="1997-2012 Sam Lantinga" REVISION="1" ARCHITECTURES="x86 x86_gcc2" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" PROVIDES=" - sdl_ttf = $portVersion - lib:libSDL_ttf = $portVersion - devel:libSDL_ttf - lib:libSDL_ttf_2.0 = $portVersion + sdl_ttf$secondaryArchSuffix = $portVersion compat >= 1.2 + lib:libSDL_ttf$secondaryArchSuffix = 2.0_0.10.1 compat >= 2.0_0 + lib:libSDL_ttf_2.0$secondaryArchSuffix = 0.10.1 compat >= 0 " REQUIRES=" - haiku >= $haikuVersion - libsdl >= 1.2.12 - lib:libfreetype - lib:libz + haiku$secondaryArchSuffix >= $haikuVersion + lib:libsdl$secondaryArchSuffix + lib:libfreetype$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libGL$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libsdl$secondaryArchSuffix + devel:libfreetype$secondaryArchSuffix + devel:libz$secondaryArchSuffix " BUILD_PREREQUIRES=" - haiku_devel cmd:libtoolize cmd:aclocal cmd:automake cmd:autoconf - cmd:gcc - cmd:sdl_config + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:sdl_config$secondaryArchSuffix cmd:make - cmd:freetype_config - devel:libz + cmd:freetype_config$secondaryArchSuffix " SOURCE_DIR="SDL_ttf-$portVersion" + BUILD() { libtoolize --copy --force --install aclocal --install -I acinclude autoconf - runConfigure ./configure + runConfigure ./configure --with-x=no make } @@ -58,7 +66,8 @@ INSTALL() { make install - prepareInstalledDevelLib libSDL_ttf + prepareInstalledDevelLibs libSDL_ttf \ + libSDL_ttf-2.0 fixPkgconfig packageEntries devel \ @@ -66,11 +75,12 @@ INSTALL() } PROVIDES_devel=" - devel:SDL_ttf = 0.10.1 compat >= 0 - devel:libSDL_ttf = 0.10.1 compat >= 0 + sdl_ttf${secondaryArchSuffix}_devel = 2.0.11 compat >= 1.2 + devel:sdl_ttf$secondaryArchSuffix = 2.0.11 compat >= 1.2 + devel:libSDL_ttf$secondaryArchSuffix = 2.0_0.10.1 compat >= 2.0_0 + devel:libSDL_ttf_2.0$secondaryArchSuffix = 0.10.1 compat >= 0 " REQUIRES_devel=" - sdl_ttf == $portVersion base + sdl_ttf$secondaryArchSuffix == $portVersion base " - diff --git a/media-libs/sdl_ttf/sdl_ttf-2.0.9.recipe b/media-libs/sdl_ttf/sdl_ttf-2.0.9.recipe deleted file mode 100644 index b068d6603..000000000 --- a/media-libs/sdl_ttf/sdl_ttf-2.0.9.recipe +++ /dev/null @@ -1,28 +0,0 @@ -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.9.tar.gz" -CHECKSUM_MD5="6dd5a85e4924689a35a5fb1cb3336156" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd SDL_ttf-2.0.9 - rm aclocal.m4 - echo 'AC_CONFIG_MACRO_DIR([m4])' >> configure.in - libtoolize --copy --force --install - aclocal -I m4 - touch NEWS AUTHORS ChangeLog - automake --add-missing --force-missing --warnings=none - autoconf - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd SDL_ttf-2.0.9 - make install -} -LICENSE="GNU LGPL v2.1" -COPYRIGHT="1997-2007 Sam Lantinga" diff --git a/media-libs/sdl_ttf/sdl_ttf-2.0_.recipe b/media-libs/sdl_ttf/sdl_ttf-2.0_.recipe deleted file mode 100644 index b6bec4fe4..000000000 --- a/media-libs/sdl_ttf/sdl_ttf-2.0_.recipe +++ /dev/null @@ -1,32 +0,0 @@ -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/sge/patches/sge-030809.patch b/media-libs/sge/patches/sge-030809.patch index 1f4197f76..8bd9ec3d9 100644 --- a/media-libs/sge/patches/sge-030809.patch +++ b/media-libs/sge/patches/sge-030809.patch @@ -69,3 +69,16 @@ diff -urN sge030809/sge_tt_text.cpp sge030809-haiku/sge_tt_text.cpp stream->read = RWread; stream->descriptor.pointer = src; stream->pos = (unsigned long)position; +--- sge030809/Makefile.conf 2013-10-27 04:16:27.931659776 -0700 ++++ sge030809-haiku/Makefile.conf 2013-10-27 04:45:27.596639744 -0700 +@@ -3,8 +3,8 @@ + # Comment/uncomment the following line to disable/enable build options + # (See README for more info) + C_COMP = y +-#USE_FT = n +-#USE_IMG = n ++USE_FT = y ++USE_IMG = y + #QUIET = y + + diff --git a/media-libs/sge/sge-030809.recipe b/media-libs/sge/sge-030809.recipe index d8b9f38b5..0a830b65c 100644 --- a/media-libs/sge/sge-030809.recipe +++ b/media-libs/sge/sge-030809.recipe @@ -1,20 +1,69 @@ -DESCRIPTION="SDL Graphics Extension" +SUMMARY="SDL Graphics Extension" +DESCRIPTION=" +SDL Graphics Extension +" HOMEPAGE="http://www.etek.chalmers.se/~e8cal1/sge/" -SRC_URI="http://ports.haiku-files.org/export/394/haikuports/trunk/media-libs/sge/sources/sge030809.tar.gz" -CHECKSUM_MD5="a76975665b6a2bf189130fa2c8821caf" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" +SRC_URI="http://ports-space.haiku-files.org/source/sge-030809.tar.gz" +CHECKSUM_SHA256="25cfbe59ab99647254e69d25984707045492c2a5d1b15f27d999d0284a7110fc" +LICENSE="GNU LGPL v2.1" +COPYRIGHT="1999-2003 Anders Lindstrom" + +REVISION="2" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + sge$secondaryArchSuffix = $portVersion compat >= 030809 + lib:libSGE$secondaryArchSuffix = $portVersion compat >= 030809 + " + +REQUIRES=" + haiku$secondaryArchSuffix + lib:libsdl$secondaryArchSuffix + lib:libSDL_image_1.2$secondaryArchSuffix + lib:libfreetype$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libsdl$secondaryArchSuffix + devel:libSDL_image_1.2$secondaryArchSuffix + devel:libfreetype$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:sdl_config$secondaryArchSuffix + " + +SOURCE_DIR="sge030809" + +PATCHES="sge-030809.patch" + BUILD() { - cd sge030809 - make + make $jobArgs } INSTALL() { - cd sge030809 - make install + make install PREFIX_H=$includeDir PREFIX=$prefix LIBDIR=$libDir + prepareInstalledDevelLibs libSGE + #devel package + packageEntries devel \ + $developDir } -LICENSE="GNU LGPL v2.1" -COPYRIGHT="1999-2003 Anders Lindstrom" + +PROVIDES_devel=" + sge${secondaryArchSuffix}_devel = $portVersion compat >= 030809 + devel:libSGE$secondaryArchSuffix = $portVersion compat >= 030809 + " + +REQUIRES_devel=" + sge$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/smjpeg/smjpeg-0.2.1.recipe b/media-libs/smjpeg/smjpeg-0.2.1.recipe index 2e4074a97..9798c4fd7 100644 --- a/media-libs/smjpeg/smjpeg-0.2.1.recipe +++ b/media-libs/smjpeg/smjpeg-0.2.1.recipe @@ -1,5 +1,8 @@ -SUMMARY="smjpeg" -DESCRIPTION="smjpeg" +SUMMARY="An implementation of the smjpeg decoding library" +DESCRIPTION=" +smjpeg is an implementation of the smjpeg decoding library, which runs on just \ +about any platform. It comes with one sample deoder, smjpeg_decode (console, \ +no UI)." HOMEPAGE="http://www.icculus.org/smjpeg" SRC_URI="svn://svn.icculus.org/smjpeg/trunk/" LICENSE="GNU LGPL v2" @@ -7,32 +10,34 @@ COPYRIGHT="1999-2004 Sam Lantinga, Joe Tennies." REVISION="1" -ARCHITECTURES="x86 x86_gcc2" +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" PROVIDES=" - smjpeg = $portVersion compat >= 0 - lib:libsmjpeg_0.2 = 0.0.2 - cmd:smjpeg_encode = $portVersion compat >= 0 - cmd:smjpeg_decode = $portVersion compat >= 0 + smjpeg$secondaryArchSuffix = $portVersion compat >= 0 + lib:libsmjpeg$secondaryArchSuffix = 0.2_0.0.2 compat >= 0.2_0 + lib:libsmjpeg_0.2$secondaryArchSuffix = 0.0.2 compat >= 0 + cmd:smjpeg_encode$secondaryArchSuffix = $portVersion compat >= 0 + cmd:smjpeg_decode$secondaryArchSuffix = $portVersion compat >= 0 " REQUIRES=" - haiku - libsdl + haiku$secondaryArchSuffix + libsdl$secondaryArchSuffix " BUILD_REQUIRES=" - devel:libsdl + haiku${secondaryArchSuffix}_devel + devel:libsdl$secondaryArchSuffix " BUILD_PREREQUIRES=" - haiku_devel - cmd:gcc + cmd:gcc$secondaryArchSuffix cmd:libtoolize cmd:aclocal cmd:autoconf cmd:automake - cmd:ld + cmd:ld$secondaryArchSuffix cmd:make " @@ -63,11 +68,11 @@ INSTALL() # ----- devel package ------------------------------------------------------- PROVIDES_devel=" - smjpeg_devel = $portVersion - devel:libsmjpeg_0.2 = 0.0.2 compat >= 0 - devel:libsmjpeg = $portVersion compat >= 0 + smjpeg${secondaryArchSuffix}_devel = $portVersion + devel:libsmjpeg$secondaryArchSuffix = 0.2_0.0.2 compat >= 0.2_0 + devel:libsmjpeg_0.2$secondaryArchSuffix = 0.0.2 compat >= 0 " REQUIRES_devel=" - smjpeg == $portVersion base + smjpeg$secondaryArchSuffix == $portVersion base " diff --git a/media-libs/smpeg/smpeg-0.4.5.recipe b/media-libs/smpeg/smpeg-0.4.5.recipe index c95a2b7e3..36349d702 100644 --- a/media-libs/smpeg/smpeg-0.4.5.recipe +++ b/media-libs/smpeg/smpeg-0.4.5.recipe @@ -1,38 +1,52 @@ -SUMMARY="smpeg" -DESCRIPTION="smpeg is an mpeg decoding library, which runs on just about any platform. It comes with a sample decoder, plaympeg." +SUMMARY="smpeg is an mpeg decoding library." +DESCRIPTION=" +SMPEG is short for the SDL MPEG library originally developed by Loki Software. \ +SMPEG uses MPEG-1 standard as a video display library, rather than MPEG-2, \ +since only the MPEG-1 standard is unencumbered with software patents in the \ +United States. +" HOMEPAGE="http://www.icculus.org/smpeg" -SRC_URI="svn://svn.icculus.org/smpeg/tags/release_0_4_5" +SRC_URI="http://www.libsdl.org/projects/SDL_mixer/libs/old/smpeg-0.4.5.zip" +CHECKSUM_SHA256="8d4e4a6bc1892279ae7727e192df0ad0cef5927d50090f846e0bf3ba1b8f3d41" LICENSE="GNU LGPL v2" COPYRIGHT="1999-2004 Sam Lantinga, Joe Tennies." -REVISION="1" +REVISION="2" -ARCHITECTURES="?x86 ?x86_gcc2" +ARCHITECTURES="x86 x86_gcc2 x86_64" +SECONDARY_ARCHITECTURES="x86" PROVIDES=" - smpeg = 0.4.5 compat >= 0 - cmd:smpeg - cmd:plaympeg + smpeg$secondaryArchSuffix = 0.4.5 compat >= 0 + cmd:smpeg = 0.4.5 compat >= 0 + cmd:plaympeg$secondaryArchSuffix = 0.4.5 compat >= 0 + cmd:glmovie$secondaryArchSuffix = 0.4.5 compat >= 0 + lib:libsmpeg$secondaryArchSuffix = 0.4_0.1.4 compat >= 0.4_0 + lib:libsmpeg_0.4$secondaryArchSuffix = 0.1.4 compat >= 0 " REQUIRES=" - haiku + haiku$secondaryArchSuffix + lib:libstdc++$secondaryArchSuffix + lib:libglu$secondaryArchSuffix + lib:libSDL_1.2$secondaryArchSuffix + lib:libGL$secondaryArchSuffix " BUILD_REQUIRES=" - haiku_devel - devel:libsdl + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libSDL$secondaryArchSuffix + devel:libglu$secondaryArchSuffix " BUILD_PREREQUIRES=" - haiku - cmd:gcc + cmd:gcc$secondaryArchSuffix cmd:libtoolize cmd:aclocal cmd:autoconf cmd:automake - cmd:ld + cmd:ld$secondaryArchSuffix cmd:make - lib:libsdl + cmd:pkg_config$secondaryArchSuffix " BUILD() @@ -44,31 +58,37 @@ BUILD() aclocal --install -I acinclude automake --foreign --add-missing autoconf + chmod +x configure runConfigure ./configure + make $jobArgs } INSTALL() { make install - - prepareInstalledDevelLibs libFLAC + + prepareInstalledDevelLibs libsmpeg \ + libsmpeg-0.4 + fixDevelopLibDirReferences $binDir/smpeg-config fixPkgconfig - + # devel package packageEntries devel \ - $developDir - + $developDir $binDir/smpeg-config \ + $dataDir } # ----- devel package ------------------------------------------------------- PROVIDES_devel=" - smpeg_devel = $portVersion - devel:smpeg = 0.4.5 compat >= 0 + smpeg${secondaryArchSuffix}_devel = $portVersion + cmd:smpeg_config$secondaryArchSuffix + devel:libsmpeg$secondaryArchSuffix = 0.4_0.1.4 compat >= 0.4_0 + devel:libsmpeg_0.4$secondaryArchSuffix = 0.4.5 compat >= 0 " REQUIRES_devel=" - smpeg == $portVersion base + smpeg$secondaryArchSuffix == $portVersion base " diff --git a/media-libs/speex/speex-1.2~rc1.recipe b/media-libs/speex/speex-1.2~rc1.recipe index c89e4279e..915f0ce63 100644 --- a/media-libs/speex/speex-1.2~rc1.recipe +++ b/media-libs/speex/speex-1.2~rc1.recipe @@ -1,5 +1,12 @@ SUMMARY="A Free Codec For Free Speech" -DESCRIPTION="Speex is an Open Source/Free Software patent-free audio compression format designed for speech. The Speex Project aims to lower the barrier of entry for voice applications by providing a free alternative to expensive proprietary speech codecs. Moreover, Speex is well-adapted to Internet applications and provides useful features that are not present in most other codecs. Finally, Speex is part of the GNU Project and is available under the revised BSD license." +DESCRIPTION="Speex is an Open Source/Free Software patent-free audio \ +compression format designed for speech. The Speex Project aims to lower the \ +barrier of entry for voice applications by providing a free alternative to \ +expensive proprietary speech codecs. Moreover, Speex is well-adapted to \ +Internet applications and provides useful features that are not present in \ +most other codecs. Finally, Speex is part of the GNU Project and is available \ +under the revised BSD license. +" HOMEPAGE="http://www.speex.org" LICENSE="Speex" COPYRIGHT=" @@ -12,7 +19,7 @@ COPYRIGHT=" 1992-1994 Jutta Degener, Carsten Bormann " SRC_URI="http://downloads.xiph.org/releases/speex/speex-1.2rc1.tar.gz" -CHECKSUM_MD5="c4438b22c08e5811ff10e2b06ee9b9ae" +CHECKSUM_SHA256="342f30dc57bd4a6dad41398365baaa690429660b10d866b7d508e8f1179cb7a6" REVISION="2" ARCHITECTURES="x86_gcc2 x86 x86_64" SECONDARY_ARCHITECTURES="x86_gcc2 x86" diff --git a/media-libs/taglib/patches/taglib-1.7.1.patch b/media-libs/taglib/patches/taglib-1.7.1.patch deleted file mode 100644 index ed6c8556e..000000000 --- a/media-libs/taglib/patches/taglib-1.7.1.patch +++ /dev/null @@ -1,96 +0,0 @@ -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 deleted file mode 100644 index 2ce32dfb7..000000000 --- a/media-libs/taglib/patches/taglib-1.7.patch +++ /dev/null @@ -1,96 +0,0 @@ -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.6.1.recipe b/media-libs/taglib/taglib-1.6.1.recipe deleted file mode 100644 index 08a332fbf..000000000 --- a/media-libs/taglib/taglib-1.6.1.recipe +++ /dev/null @@ -1,22 +0,0 @@ -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.6.1.tar.gz" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -CHECKSUM_MD5="db0502b3c3448ff1f1f9b090c1daa5f7" -BUILD() -{ - cd taglib-1.6.1 - cmake . - make -} - -INSTALL() -{ - cd taglib-1.6.1 - make install -} -LICENSE="GNU LGPL v2 - MPL v1.1" -COPYRIGHT="2002-2010 Scott Wheeler" diff --git a/media-libs/taglib/taglib-1.6.2.recipe b/media-libs/taglib/taglib-1.6.2.recipe deleted file mode 100644 index bf9d09163..000000000 --- a/media-libs/taglib/taglib-1.6.2.recipe +++ /dev/null @@ -1,22 +0,0 @@ -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.6.2.tar.gz" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -CHECKSUM_MD5="7c936a07acfc53b2beda4151a0f66336" -BUILD() -{ - cd taglib-1.6.2 - cmake . - make -} - -INSTALL() -{ - cd taglib-1.6.2 - make install -} -LICENSE="GNU LGPL v2 - MPL v1.1" -COPYRIGHT="2002-2010 Scott Wheeler" diff --git a/media-libs/taglib/taglib-1.6.3.recipe b/media-libs/taglib/taglib-1.6.3.recipe deleted file mode 100644 index 3395ffa3d..000000000 --- a/media-libs/taglib/taglib-1.6.3.recipe +++ /dev/null @@ -1,22 +0,0 @@ -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.6.3.tar.gz" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -CHECKSUM_MD5="ddf02f4e1d2dc30f76734df806e613eb" -BUILD() -{ - cd taglib-1.6.3 - cmake . - make -} - -INSTALL() -{ - cd taglib-1.6.3 - make install -} -LICENSE="GNU LGPL v2 - MPL v1.1" -COPYRIGHT="2002-2010 Scott Wheeler" diff --git a/media-libs/taglib/taglib-1.7.1.recipe b/media-libs/taglib/taglib-1.7.1.recipe deleted file mode 100644 index 0eb629e5c..000000000 --- a/media-libs/taglib/taglib-1.7.1.recipe +++ /dev/null @@ -1,23 +0,0 @@ -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.recipe b/media-libs/taglib/taglib-1.7.2.recipe index fe9a3cb83..225255902 100644 --- a/media-libs/taglib/taglib-1.7.2.recipe +++ b/media-libs/taglib/taglib-1.7.2.recipe @@ -1,34 +1,80 @@ -SUMMARY="TabLib Audio Meta-Data Library" -DESCRIPTION="TagLib Audio Meta-Data Library" +SUMMARY="TabLib Audio Meta-Data Library" +DESCRIPTION=" +TagLib is a library for reading and editing the meta-data of several popular \ +audio formats. Currently it supports both ID3v1 and ID3v2 for MP3 files, Ogg \ +Vorbis comments and ID3 tags and Vorbis comments in FLAC, MPC, Speex, WavPack \ +TrueAudio, WAV, AIFF, MP4 and ASF files. +" HOMEPAGE="http://github.com/taglib" SRC_URI="http://taglib.github.io/releases/taglib-1.7.2.tar.gz" -CHECKSUM_MD5="b0a9e797d3833fb933c7c3176de3d720" +CHECKSUM_SHA256="38f7e5283b594021b28426a61339cffbf2d503b450338b02f651fab1b0b42899" COPYRIGHT="2002-2012 Scott Wheeler" LICENSE="GNU LGPL v2 MPL v1.1 " REVISION="1" -ARCHITECTURES="?x86_gcc2 ?x86" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" PROVIDES=" - taglib = $portVersion + taglib$secondaryArchSuffix = $portVersion + lib:libtag$secondaryArchSuffix = 1.7.2 compat >= 1.7 + lib:libtag_c$secondaryArchSuffix = 0.0.0 compat >= 0 " -REQUIRES="" -BUILD_REQUIRES="" + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libz$secondaryArchSuffix + " + BUILD_PREREQUIRES=" - cmd:gcc + cmd:gcc$secondaryArchSuffix cmd:cmake cmd:make " -SOURCE_DIR="$portVersionedName" + BUILD() { - cmake . - make + cmake . -DCMAKE_INSTALL_PREFIX:PATH=$prefix \ + -DBIN_INSTALL_DIR=$binDir \ + -DLIB_INSTALL_DIR=$developLibDir \ + -DLIB_SUFFIX="/${secondaryArchSuffx/_/}" + make $jobArgs } INSTALL() { make install + + mkdir -p $developDir/headers + mv $prefix/include/taglib $developDir/headers + rm -rf $prefix/include + + prepareInstalledDevelLibs \ + libtag \ + libtag_c + + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir \ + $binDir } + +PROVIDES_devel=" + taglib${secondaryArchSuffix}_devel = $portVersion compat >= 1.7 + devel:libtag$secondaryArchSuffix = 1.7.2 compat >= 1.7 + devel:libtag_c$secondaryArchSuffix = 0.0.0 compat >= 0 + cmd:taglib_config$secondaryArchSuffix + " + +REQUIRES_devel=" + taglib$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/taglib/taglib-1.7.recipe b/media-libs/taglib/taglib-1.7.recipe deleted file mode 100644 index 862ebbe76..000000000 --- a/media-libs/taglib/taglib-1.7.recipe +++ /dev/null @@ -1,23 +0,0 @@ -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.recipe b/media-libs/taglib/taglib-1.8.recipe deleted file mode 100644 index 6bec8fd82..000000000 --- a/media-libs/taglib/taglib-1.8.recipe +++ /dev/null @@ -1,34 +0,0 @@ -SUMMARY="TabLib Audio Meta-Data Library" -DESCRIPTION="TagLib Audio Meta-Data Library" -HOMEPAGE="http://github.com/taglib" -SRC_URI="http://taglib.github.io/releases/taglib-1.8.tar.gz" -CHECKSUM_MD5="dcb8bd1b756f2843e18b1fdf3aaeee15" -COPYRIGHT="2002-2012 Scott Wheeler" -LICENSE="GNU LGPL v2 - MPL v1.1 - " -REVISION="1" -ARCHITECTURES="x86" - -PROVIDES=" - taglib = $portVersion - " -REQUIRES="" -BUILD_REQUIRES="" -BUILD_PREREQUIRES=" - cmd:gcc - cmd:cmake - cmd:make - " -SOURCE_DIR="$portVersionedName" - -BUILD() -{ - cmake . - make -} - -INSTALL() -{ - make install -} diff --git a/media-libs/taglib/taglib-1.9.1.recipe b/media-libs/taglib/taglib-1.9.1.recipe index 8e017a001..be5d31fba 100644 --- a/media-libs/taglib/taglib-1.9.1.recipe +++ b/media-libs/taglib/taglib-1.9.1.recipe @@ -1,36 +1,76 @@ -SUMMARY="TabLib Audio Meta-Data Library" -DESCRIPTION="TagLib Audio Meta-Data Library" +SUMMARY="TabLib Audio Meta-Data Library" +DESCRIPTION=" +TagLib Audio Meta-Data Library. +" HOMEPAGE="http://github.com/taglib" SRC_URI="http://taglib.github.io/releases/taglib-1.9.1.tar.gz" -CHECKSUM_MD5="0d35df96822bbd564c5504cb3c2e4d86" +CHECKSUM_SHA256="72d371cd1419a87ae200447a53bff2be219283071e80fd12337928cc967dc71a" COPYRIGHT="2002-2013 Scott Wheeler" LICENSE="GNU LGPL v2 MPL v1.1 - " + " REVISION="1" -ARCHITECTURES="?x86 ?x86_gcc2 ?x86_64" +ARCHITECTURES="!x86 !x86_64" +SECONDARY_ARCHITECTURES="!x86" PROVIDES=" - taglib = $portVersion + taglib$secondaryArchSuffix = $portVersion + cmd:taglib_config + lib:libtag$secondaryArchSuffix = 1.9.1 compat >= 1.9 + lib:libtag_c$secondaryArchSuffix = 0.0.0 compat >= 0 " -REQUIRES="" -BUILD_REQUIRES="" + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libz + " + +BUILD_REQUIRES=" + devel:libz + " + BUILD_PREREQUIRES=" - haiku_devel - cmd:gcc - cmd:cmake + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:cmake$secondaryArchSuffix cmd:make " -SOURCE_DIR="$portVersionedName" -BUILD() +BUILD() { - cmake . + cmake . -DCMAKE_INSTALL_PREFIX:PATH=$prefix \ + -DBIN_INSTALL_DIR=$binDir \ + -DLIB_INSTALL_DIR=$developLibDir make } +#-DINCLUDE_INSTALL_DIR=$developDir/headers \ INSTALL() { make install + + mkdir -p $developDir/headers + mv $prefix/include/taglib $developDir/headers + + prepareInstalledDevelLibs \ + libtag \ + libtag_c + + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir \ + $binDir } + +PROVIDES_devel=" + taglib${secondaryArchSuffix}_devel = $portVersion compat >= 1.9 + devel:libtag$secondaryArchSuffix = 1.9.1 compat >= 1.9 + devel:libtag_c$secondaryArchSuffix = 0.0.0 compat >= 0 + " + +REQUIRES_devel=" + taglib$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/tiff/patches/tiff-3.9.6.patchset b/media-libs/tiff/patches/tiff-3.9.6.patchset new file mode 100644 index 000000000..865ec409c --- /dev/null +++ b/media-libs/tiff/patches/tiff-3.9.6.patchset @@ -0,0 +1,128 @@ +From a82320c3f0bf541c6c400cbaafda7a5f50b6ba12 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Mon, 2 Jun 2014 20:07:15 +0000 +Subject: checks for uint32, uint16, uint8 and uses SupportsDefs.h + + +diff --git a/configure.ac b/configure.ac +index d48a58b..763ed52 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -154,11 +154,14 @@ AC_CHECK_SIZEOF(long) + AC_HEADER_TIME + AC_STRUCT_TM + dnl Some compilers (IBM VisualAge) has these types defined, so check it here: +-AC_CHECK_TYPES([int8, int16, int32],,, ++AC_CHECK_TYPES([int8, int16, int32, uint8, uint16, uint32],,, + [ + #if HAVE_INTTYPES_H + # include + #endif ++#ifdef __HAIKU__ ++# include ++#endif + ]) + + # Obtain size of a 'signed long' and define as SIZEOF_SIGNED_LONG +diff --git a/libtiff/tif_config.h.in b/libtiff/tif_config.h.in +index 01e54de..41a5772 100644 +--- a/libtiff/tif_config.h.in ++++ b/libtiff/tif_config.h.in +@@ -142,6 +142,15 @@ + /* Define to 1 if you have the header file. */ + #undef HAVE_SYS_TYPES_H + ++/* Define to 1 if the system has the type `uint16'. */ ++#undef HAVE_UINT16 ++ ++/* Define to 1 if the system has the type `uint32'. */ ++#undef HAVE_UINT32 ++ ++/* Define to 1 if the system has the type `uint8'. */ ++#undef HAVE_UINT8 ++ + /* Define to 1 if you have the header file. */ + #undef HAVE_UNISTD_H + +diff --git a/libtiff/tiff.h b/libtiff/tiff.h +index 0d4ab9f..c70f214 100644 +--- a/libtiff/tiff.h ++++ b/libtiff/tiff.h +@@ -28,6 +28,10 @@ + #define _TIFF_ + + #include "tiffconf.h" ++#ifdef __HAIKU__ ++ #include ++ // needed for uint* types, avoid massive changes in libtiff ++#endif + + /* + * Tag Image File Format (TIFF) +@@ -64,22 +68,30 @@ + #ifndef HAVE_INT8 + typedef signed char int8; /* NB: non-ANSI compilers may not grok */ + #endif ++#ifndef HAVE_UINT8 + typedef unsigned char uint8; ++#endif + #ifndef HAVE_INT16 + typedef short int16; + #endif ++#ifndef HAVE_UINT16 + typedef unsigned short uint16; /* sizeof (uint16) must == 2 */ ++#endif + #if SIZEOF_INT == 4 + #ifndef HAVE_INT32 + typedef int int32; + #endif ++#ifndef HAVE_UINT32 + typedef unsigned int uint32; /* sizeof (uint32) must == 4 */ ++#endif + #elif SIZEOF_LONG == 4 + #ifndef HAVE_INT32 + typedef long int32; + #endif ++#ifndef HAVE_UINT32 + typedef unsigned long uint32; /* sizeof (uint32) must == 4 */ + #endif ++#endif + + /* For TIFFReassignTagToIgnore */ + enum TIFFIgnoreSense /* IGNORE tag table */ +diff --git a/libtiff/tiffconf.h.in b/libtiff/tiffconf.h.in +index 1a52b37..3cdcc28 100644 +--- a/libtiff/tiffconf.h.in ++++ b/libtiff/tiffconf.h.in +@@ -16,6 +16,15 @@ + /* Define to 1 if the system has the type `int8'. */ + #undef HAVE_INT8 + ++/* Define to 1 if the system has the type `uint16'. */ ++#undef HAVE_UINT16 ++ ++/* Define to 1 if the system has the type `uint32'. */ ++#undef HAVE_UINT32 ++ ++/* Define to 1 if the system has the type `uint8'. */ ++#undef HAVE_UINT8 ++ + /* The size of a `int', as computed by sizeof. */ + #undef SIZEOF_INT + +diff --git a/libtiff/tiffiop.h b/libtiff/tiffiop.h +index f65f855..3f0e9f7 100644 +--- a/libtiff/tiffiop.h ++++ b/libtiff/tiffiop.h +@@ -62,7 +62,7 @@ extern void *lfind(const void *, const void *, size_t *, size_t, + utilities may use it. + */ + +-#if !defined(__xlC__) && !defined(__xlc__) // Already defined there (#2301) ++#if !defined(__xlC__) && !defined(__xlc__) && !defined(__HAIKU__) // Already defined there (#2301) + typedef TIFF_INT64_T int64; + typedef TIFF_UINT64_T uint64; + #endif +-- +1.8.3.4 + diff --git a/media-libs/tiff/tiff-3.9.6.recipe b/media-libs/tiff/tiff-3.9.6.recipe index a26ac9809..e684bb993 100644 --- a/media-libs/tiff/tiff-3.9.6.recipe +++ b/media-libs/tiff/tiff-3.9.6.recipe @@ -1,16 +1,22 @@ SUMMARY="Tiff library" -DESCRIPTION="TIFF the Tag Image File Format, is a widely used format for storing image data. Included in this software is a library, libtiff, for reading and writing TIFF." +DESCRIPTION=" +TIFF the Tag Image File Format, is a widely used format for storing image \ +data. Included in this software is a library, libtiff, for reading and writing \ +TIFF. +" HOMEPAGE="http://www.libtiff.org" SRC_URI="ftp://ftp.remotesensing.org/pub/libtiff/tiff-3.9.6.tar.gz" -CHECKSUM_MD5="6920f3bf628d791d49f268b83612ed23" +CHECKSUM_SHA256="0fba119156236074343a14afbd3a47907e3a5952c9c86102305d4eeb06ad6833" REVISION="1" LICENSE="MIT" COPYRIGHT="1988-1997 Sam Leffler 1991-1997 Silicon Graphics, Inc." -REVISION="1" -ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" -SECONDARY_ARCHITECTURES="?x86_gcc2 ?x86" +REVISION="2" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PATCHES="tiff-${portVersion}.patchset" PROVIDES=" tiff$secondaryArchSuffix = $portVersion compat >= 3 @@ -19,14 +25,12 @@ PROVIDES=" " REQUIRES=" haiku$secondaryArchSuffix >= $haikuVersion - lib:libGL - lib:libjpeg - lib:libz + lib:libjpeg$secondaryArchSuffix + lib:libz$secondaryArchSuffix " BUILD_REQUIRES=" -# devel:libGL - devel:libjpeg - devel:libz + devel:libjpeg$secondaryArchSuffix + devel:libz$secondaryArchSuffix " BUILD_PREREQUIRES=" haiku${secondaryArchSuffix}_devel >= $haikuVersion @@ -117,7 +121,6 @@ if [ -z "$secondaryArchSuffix" ]; then " REQUIRES_tools=" haiku >= $haikuVersion - lib:libGL lib:libjpeg lib:libz tiff == $portVersion base diff --git a/media-libs/tiff/tiff-4.0.2.recipe b/media-libs/tiff/tiff-4.0.2.recipe index 8008c97d6..670531b72 100644 --- a/media-libs/tiff/tiff-4.0.2.recipe +++ b/media-libs/tiff/tiff-4.0.2.recipe @@ -1,28 +1,37 @@ SUMMARY="Tiff library" -DESCRIPTION="TIFF the Tag Image File Format, is a widely used format for storing image data. Included in this software is a library, libtiff, for reading and writing TIFF." -HOMEPAGE="http://www.libtiff.org" +DESCRIPTION=" +TIFF the Tag Image File Format, is a widely used format for storing image \ +data. Included in this software is a library, libtiff, for reading and writing \ +TIFF. +" +HOMEPAGE="http://www.libtiff.org" SRC_URI="ftp://ftp.remotesensing.org/pub/libtiff/tiff-4.0.2.tar.gz" -CHECKSUM_MD5="04a08fa1e07e696e820a0c3f32465a13" +CHECKSUM_SHA256="aa29f1f5bfe3f443c3eb4dac472ebde15adc8ff0464b83376f35e3b2fef935da" REVISION="1" LICENSE="MIT" COPYRIGHT="1988-1997 Sam Leffler 1991-1997 Silicon Graphics, Inc." -REVISION="1" -ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64" -SECONDARY_ARCHITECTURES="?x86_gcc2 ?x86" +REVISION="4" +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" PROVIDES=" tiff$secondaryArchSuffix = $portVersion compat >= 4 - lib:libtiff$secondaryArchSuffix = $portVersion compat >= 4 + lib:libtiff$secondaryArchSuffix = 5.1.0 compat >= 5 + lib:libtiffxx$secondaryArchSuffix = 5.1.0 compat >= 5 " REQUIRES=" haiku$secondaryArchSuffix >= $haikuVersion - lib:libGL - lib:libjpeg - lib:libz + lib:libGL$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libstdc++$secondaryArchSuffix " BUILD_REQUIRES=" + devel:libGL$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:libz$secondaryArchSuffix " BUILD_PREREQUIRES=" haiku${secondaryArchSuffix}_devel >= $haikuVersion @@ -35,6 +44,14 @@ BUILD_PREREQUIRES=" cmd:make " +PATCH() +{ + if [ $effectiveTargetArchitecture == x86_gcc2 ]; then + sed -i 's/ios::pos_type/streampos/g' libtiff/tif_stream.cxx + sed -i 's/ios::off_type/streamoff/g' libtiff/tif_stream.cxx + fi +} + BUILD() { aclocal @@ -42,7 +59,7 @@ BUILD() automake --add-missing autoconf autoheader - runConfigure ./configure + runConfigure ./configure --with-docdir=$documentationDir/$portName # --enable-shared make $jobArgs } @@ -51,7 +68,8 @@ INSTALL() { make install - prepareInstalledDevelLibs libtiff + prepareInstalledDevelLibs libtiff libtiffxx + fixPkgconfig # devel package packageEntries devel \ @@ -75,7 +93,8 @@ INSTALL() PROVIDES_devel=" tiff${secondaryArchSuffix}_devel = $portVersion compat >= 4 - devel:libtiff$secondaryArchSuffix = $portVersion compat >= 4 + devel:libtiff$secondaryArchSuffix = 5.1.0 compat >= 5 + devel:libtiffxx$secondaryArchSuffix = 5.1.0 compat >= 5 " REQUIRES_devel=" tiff$secondaryArchSuffix == $portVersion base @@ -86,33 +105,35 @@ REQUIRES_devel=" if [ -z "$secondaryArchSuffix" ]; then SUMMARY_tools="The TIFF tools" PROVIDES_tools=" - tiff_tools = $portVersion compat >= 4 - cmd:bmp2tiff = $portVersion compat >= 4 - cmd:fax2ps = $portVersion compat >= 4 - cmd:fax2tiff = $portVersion compat >= 4 - cmd:gif2tiff = $portVersion compat >= 4 - cmd:pal2rgb = $portVersion compat >= 4 - cmd:ppm2tiff = $portVersion compat >= 4 - cmd:ras2tiff = $portVersion compat >= 4 - cmd:raw2tiff = $portVersion compat >= 4 - cmd:rgb2ycbcr = $portVersion compat >= 4 - cmd:thumbnail = $portVersion compat >= 4 - cmd:tiff2bw = $portVersion compat >= 4 - cmd:tiff2pdf = $portVersion compat >= 4 - cmd:tiff2ps = $portVersion compat >= 4 - cmd:tiff2rgba = $portVersion compat >= 4 - cmd:tiffcmp = $portVersion compat >= 4 - cmd:tiffcp = $portVersion compat >= 4 - cmd:tiffcrop = $portVersion compat >= 4 - cmd:tiffdither = $portVersion compat >= 4 - cmd:tiffdump = $portVersion compat >= 4 - cmd:tiffinfo = $portVersion compat >= 4 - cmd:tiffmedian = $portVersion compat >= 4 - cmd:tiffset = $portVersion compat >= 4 - cmd:tiffsplit = $portVersion compat >= 4 + tiff_tools = $portVersion + cmd:bmp2tiff + cmd:fax2ps + cmd:fax2tiff + cmd:gif2tiff + cmd:pal2rgb + cmd:ppm2tiff + cmd:ras2tiff + cmd:raw2tiff + cmd:rgb2ycbcr + cmd:thumbnail + cmd:tiff2bw + cmd:tiff2pdf + cmd:tiff2ps + cmd:tiff2rgba + cmd:tiffcmp + cmd:tiffcp + cmd:tiffcrop + cmd:tiffdither + cmd:tiffdump + cmd:tiffinfo + cmd:tiffmedian + cmd:tiffset + cmd:tiffsplit " REQUIRES_tools=" haiku >= $haikuVersion tiff == $portVersion base + lib:libjpeg + lib:libz " fi diff --git a/media-libs/vigra/vigra-1.10.0.recipe b/media-libs/vigra/vigra-1.10.0.recipe new file mode 100644 index 000000000..78ec8b860 --- /dev/null +++ b/media-libs/vigra/vigra-1.10.0.recipe @@ -0,0 +1,104 @@ +SUMMARY="Vision with Generic Algorithms" +DESCRIPTION=" + C++ computer vision library with emphasize on customizable \ + algorithms and data structures. + " +LICENSE="MIT" +COPYRIGHT="1998-2013 by Ullrich Koethe" +HOMEPAGE="http://ukoethe.github.io/vigra/" +SRC_URI="https://github.com/ukoethe/vigra/archive/Version-1-10-0.tar.gz" +SRC_FILENAME="$portVersionedName.tar.gz" +CHECKSUM_SHA256="406f6fcbcea2e92f681a7b844487c29049d338f5b2b25f8145e67bcb518c7ef8" +REVISION="2" + +ARCHITECTURES="x86 ?x86_gcc2 ?x86_64" +SECONDARY_ARCHITECTURES="x86 ?x86_gcc2" + +SOURCE_DIR="vigra-Version-1-10-0" + +PROVIDES=" + vigra$secondaryArchSuffix = $portVersion + lib:libvigraimpex$secondaryArchSuffix = 5.1.10.0 compat >= 5 +" +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libjpeg$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + lib:libtiff$secondaryArchSuffix + lib:libHalf$secondaryArchSuffix + lib:libIex_2_1$secondaryArchSuffix + lib:libImath_2_1$secondaryArchSuffix + lib:libIlmImf_Imf_2_1$secondaryArchSuffix + lib:libIlmThread_2_1$secondaryArchSuffix + lib:libfftw$secondaryArchSuffix + lib:libz$secondaryArchSuffix +" +BUILD_REQUIRES=" + devel:libjpeg$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libtiff$secondaryArchSuffix + devel:libHalf$secondaryArchSuffix + devel:libIex$secondaryArchSuffix + devel:libImath$secondaryArchSuffix + devel:libIlmImf$secondaryArchSuffix + devel:libfftw$secondaryArchSuffix + devel:libz$secondaryArchSuffix +" +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:cmake + cmd:g++$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make +" + +BUILD() +{ + mkdir -p build + cd build + cmake -DCMAKE_INSTALL_PREFIX=$prefix -DWITH_HDF5=0 -DWITH_VIGRANUMPY=0 \ + -DWITH_OPENEXR=1 ../ + make $jobArgs +} + +INSTALL() +{ + cd build + make install + + # we did not generate documentation + rm -rf $prefix/doc + + # move headers + mkdir -p $includeDir + mv $prefix/include/* $includeDir + + rm -rf $prefix/include + + prepareInstalledDevelLib libvigraimpex + + # move CMake scripts... + # FIXME: ...which probably won't work + mv $libDir/$portName $developLibDir + sed -i "s#/include/#/$relativeIncludeDir/#g" \ + $developLibDir/$portName/VigraConfig.cmake + + packageEntries devel $developDir bin/vigra-config +} + +TEST() +{ + # FIXME: these tests fail, probably due to wrong paths + cd build + make test +} + +PROVIDES_devel=" + vigra${secondaryArchSuffix}_devel = $portVersion + cmd:vigra_config$secondaryArchSuffix + cmd:python # vigra-config is python script + devel:libvigraimpex$secondaryArchSuffix = 5.1.10.0 compat >= 5 + " +REQUIRES_devel=" + vigra$secondaryArchSuffix == $portVersion base + " diff --git a/media-libs/vigra/vigra-1.8.0.recipe b/media-libs/vigra/vigra-1.8.0.recipe deleted file mode 100644 index e05e7b3c5..000000000 --- a/media-libs/vigra/vigra-1.8.0.recipe +++ /dev/null @@ -1,23 +0,0 @@ -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-sound/bladeenc/bladeenc-0.94.2.recipe b/media-sound/bladeenc/bladeenc-0.94.2.recipe index 24e084884..026d861a4 100644 --- a/media-sound/bladeenc/bladeenc-0.94.2.recipe +++ b/media-sound/bladeenc/bladeenc-0.94.2.recipe @@ -1,25 +1,55 @@ -DESCRIPTION="BladeEnc is a free cross-platform MP3 encoder released under the LGPL." +SUMMARY="A free cross-platform MP3 encoder" +DESCRIPTION=" +BladeEnc is a free, cross-platform, console-based MP3 encoder, based on the \ +ISO reference code. It is mostly intended for high quality encoding in high \ +bitrates. +" HOMEPAGE="http://bladeenc.mp3.no/" -SRC_URI="ftp://ftp.free.fr/.mirrors1/ftp.gentoo.org/distfiles/bladeenc-0.94.2-src-stable.tar.gz" -CHECKSUM_MD5="9b9f6eafe1637a48a67f0a0f8f6e71ad" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" +SRC_URI="ftp://ftp.netbsd.org/pub/pkgsrc/distfiles/bladeenc-0.94.2-src-stable.tar.gz" +CHECKSUM_SHA256="c5e9dd180f28d1865599d0755e36fa1a4c146bb5e1b7ba9ad099955261fc1164" +REVISION="2" +LICENSE="GNU LGPL v2.1" +COPYRIGHT="1998-2000 Tord Jansson" + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + bladeenc = $portVersion + cmd:bladeenc +" + +REQUIRES=" + haiku >= $haikuVersion +" + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion +" + +BUILD_PREREQUIRES=" + cmd:gcc + cmd:make + cmd:libtoolize + cmd:aclocal + cmd:automake + cmd:autoconf +" + +PATCHES=" + bladeenc-0.94.2.patch +" + BUILD() { - cd bladeenc-0.94.2 libtoolize --force --copy --install aclocal automake --add-missing autoconf - ./configure --prefix=`finddir B_COMMON_DIRECTORY` + runConfigure ./configure make } INSTALL() { - cd bladeenc-0.94.2 make install } -LICENSE="GNU LGPL v2.1" -COPYRIGHT="1998-2000 Tord Jansson" diff --git a/media-sound/bladeenc/patches/bladeenc-0.94.2.patch b/media-sound/bladeenc/patches/bladeenc-0.94.2.patch index 48ed25fb9..db7f02391 100644 --- a/media-sound/bladeenc/patches/bladeenc-0.94.2.patch +++ b/media-sound/bladeenc/patches/bladeenc-0.94.2.patch @@ -19,4 +19,16 @@ diff -urN bladeenc-0.94.2/bladeenc/system.h bladeenc-0.94.2-haiku/bladeenc/syste +# if defined __BEOS__ || defined __HAIKU__ # define SYSTEM BEOS # endif + +diff -aurN bladeenc-0.94.2/configure.in bladeenc-0.94.2-haiku/configure.in +--- bladeenc-0.94.2/configure.in 2001-05-03 10:32:44.040894464 +0000 ++++ bladeenc-0.94.2-haiku/configure.in 2013-11-30 16:49:17.864026624 +0000 +@@ -1,7 +1,7 @@ + dnl Process this file with autoconf to produce a configure script. + AC_INIT(Makefile.am) + +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADERS(config.h) + + AM_INIT_AUTOMAKE(bladeenc,0.94.2) diff --git a/media-sound/fluidsynth/fluidsynth-1.1.6.recipe b/media-sound/fluidsynth/fluidsynth-1.1.6.recipe index d4b900964..0cdc1a3c3 100644 --- a/media-sound/fluidsynth/fluidsynth-1.1.6.recipe +++ b/media-sound/fluidsynth/fluidsynth-1.1.6.recipe @@ -1,25 +1,47 @@ -DESCRIPTION="Fluidsynth is a software real-time synthesizer based on the Soundfont 2 specifications." +SUMMARY="Fluidsynth is a software real-time synthesizer" +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" +CHECKSUM_SHA256="d28b47dfbf7f8e426902ae7fa2981d821fbf84f41da9e1b85be933d2d748f601" +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2007-2012 Josh Green, Pedro Lopez-Cabanillas, David Henningsson" + REVISION="1" -STATUS_HAIKU="stable" -DEPEND="dev-libs/glib >= 2.26.1 - media-libs/libsndfile >= 1.0.21 - sys-libs/readline >= 6.0" +ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="?x86_gcc2 ?x86" + +PROVIDES=" + fluidsynth$secondaryArchSuffix = $portVersion + lib:libfluidsynth$secondaryArchSuffix + " + +REQUIRES=" + haiku$secondayArchSuffix >= $haikuVersion + lib:libsndfile$secondaryArchSuffix + lib:libreadline +# lib:glib + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:cmake + cmd:make + cmd:gcc$secondaryArchSuffix + " BUILD() { - cd fluidsynth-1.1.6 cmake . - make + make $jobArgs } INSTALL() { - cd fluidsynth-1.1.6 - make install prefix=`finddir B_COMMON_DIRECTORY` + make install } - -LICENSE="GNU LGPL v2.1" -COPYRIGHT="2007-2012 Josh Green, Pedro Lopez-Cabanillas, David Henningsson" diff --git a/media-sound/gogo_no_coda/gogo_no_coda-3.13.recipe b/media-sound/gogo_no_coda/gogo_no_coda-3.13.recipe index f1293900c..e5bc65ec6 100644 --- a/media-sound/gogo_no_coda/gogo_no_coda-3.13.recipe +++ b/media-sound/gogo_no_coda/gogo_no_coda-3.13.recipe @@ -1,32 +1,41 @@ SUMMARY="Mp3 encoder based on LAME3.88" -DESCRIPTION="Mp3 encoder based on LAME3.88, which is optimized for Enhanced 3D Now!/SSE/SSE2 and dual-CPUs." +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="7b3008a0aba2578a2b428ba538452e87" +SRC_URI="https://github.com/teragonaudio/gogo-no-coda/archive/82b1c8ccab661df3413c16435a957da393f93fcb.zip" +CHECKSUM_SHA256="b176cd1c9ced968704b238d27ba63746086e614b6ebc7900c77d371f426e0002" +SRC_FILENAME="gogo_no_coda-$portVersion.zip" LICENSE="GNU LGPL v2" COPYRIGHT="2001-2003 Respective gogo-no-coda creators" REVISION="1" -ARCHITECTURES="?x86 x86_gcc2" +ARCHITECTURES="x86_gcc2 x86" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" PATCHES="gogo_no_coda-3.13.patch" PROVIDES=" - gogo_enc = $portVersion compat >= 1 + gogo_enc$secondaryArchSuffix = $portVersion compat >= 1 + cmd:gogo_enc$secondaryArchSuffix " -REQUIRES="haiku >= $haikuVersion" -BUILD_REQUIRES="haiku >= $haikuVersion" +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " BUILD_PREREQUIRES=" - haiku_devel >= $haikuVersion - cmd:gcc - cmd:ld + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix cmd:make cmd:nasm " - -SOURCE_DIR="gogo-no-coda-master" +SOURCE_DIR="gogo-no-coda-82b1c8ccab661df3413c16435a957da393f93fcb" BUILD() { @@ -37,7 +46,6 @@ BUILD() INSTALL() { cd linux - mkdir $prefix/bin + mkdir -p $prefix/bin make install prefix=$prefix } - diff --git a/media-sound/hivelytracker/hivelytracker-1.8.recipe b/media-sound/hivelytracker/hivelytracker-1.8.recipe new file mode 100644 index 000000000..205a0af79 --- /dev/null +++ b/media-sound/hivelytracker/hivelytracker-1.8.recipe @@ -0,0 +1,57 @@ +SUMMARY="A tracker program based upon the AHX format" +DESCRIPTION=" +Hively Tracker is a tracker program based upon the AHX format created in the \ +mid '90s by Dexter and Pink of Abyss. The format was relatively popular, and \ +many songs were created and used in scene productions and games. AHX was \ +designed to create a very SID-like sound on the Amiga. +HivelyTracker can import and export modules and instruments in the AHX format, \ +but it also improves on AHX in several ways and therefore has its own \ +instrument and module formats. +" +HOMEPAGE="http://www.hivelytracker.co.uk/" +SRC_URI="svn+http://hivelytracker.googlecode.com/svn/trunk/#r66" +REVISION="1" +LICENSE="BSD (3-clause)" +COPYRIGHT="2010-2013 IRIS & Up Rough" + +ARCHITECTURES="x86_gcc2" + +PROVIDES=" + hivelytracker = $portVersion + app:HivelyTracker = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + lib:libsdl + lib:libfreetype + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:libfreetype + devel:sdl_image + devel:sdl_ttf + devel:libz + cmd:sdl_config + cmd:make + cmd:gcc + " + +BUILD() +{ + cd sdl + make -f Makefile.haiku $jobArgs + rc hively.rdef + xres -o hivelytracker hively.rsrc +} + +INSTALL() +{ + mkdir -p $appsDir/HivelyTracker + cp sdl/hivelytracker $appsDir/HivelyTracker/HivelyTracker + cp -r Songs Instruments Skins $appsDir/HivelyTracker + cp -r Docs $appsDir/HivelyTracker + + addAppDeskbarSymlink $appsDir/HivelyTracker/HivelyTracker HivelyTracker +} diff --git a/media-sound/jack2/jack2-1.9.8.recipe b/media-sound/jack2/jack2-1.9.8.recipe index a19991b37..d5b8767b1 100644 --- a/media-sound/jack2/jack2-1.9.8.recipe +++ b/media-sound/jack2/jack2-1.9.8.recipe @@ -1,4 +1,7 @@ -DESCRIPTION="jack2 is a C++ version of the JACK low-latency audio server for multi-processor machines." +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" diff --git a/media-sound/lame/lame-3.99.5.recipe b/media-sound/lame/lame-3.99.5.recipe index 9d6217bfc..71bd387db 100644 --- a/media-sound/lame/lame-3.99.5.recipe +++ b/media-sound/lame/lame-3.99.5.recipe @@ -1,9 +1,16 @@ -SUMMARY="LAME is a high quality MPEG Audio Layer III (MP3) encoder" -DESCRIPTION="Following the great history of GNU naming, LAME originally stood for LAME Ain't an Mp3 Encoder. LAME started life as a GPL'd patch against the dist10 ISO demonstration source, and thus was incapable of producing an mp3 stream or even being compiled by itself. But in May 2000, the last remnants of the ISO source code were replaced, and now LAME is the source code for a fully LGPL'd MP3 encoder, with speed and quality to rival and often surpass all commercial competitors." - +SUMMARY="A high quality MPEG Audio Layer III (MP3) encoder" +DESCRIPTION=" +Following the great history of GNU naming, LAME originally stood for LAME \ +Ain't an Mp3 Encoder. LAME started life as a GPL'd patch against the dist10 \ +ISO demonstration source, and thus was incapable of producing an mp3 stream or \ +even being compiled by itself. But in May 2000, the last remnants of the ISO \ +source code were replaced, and now LAME is the source code for a fully LGPL'd \ +MP3 encoder, with speed and quality to rival and often surpass all commercial \ +competitors. +" HOMEPAGE="http://lame.sourceforge.net/" SRC_URI="http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz" -CHECKSUM_MD5="84835b313d4a8b68f5349816d33e07ce" +CHECKSUM_SHA256="24346b4158e4af3bd9f2e194bb23eb473c75fb7377011523353196b19b9a23ff" LICENSE="GNU LGPL v2" COPYRIGHT="1998-2012 Mike Cheng et al." REVISION="2" @@ -15,7 +22,7 @@ PROVIDES=" lib:libmp3lame = $portVersion compat >= 0.0.0 " REQUIRES=" - haiku + haiku >= $haikuVersion lib:libiconv " BUILD_REQUIRES=" @@ -23,8 +30,8 @@ BUILD_REQUIRES=" cmd:aclocal cmd:autoconf cmd:automake - cmd:gcc - cmd:ld + cmd:gcc${secondaryArchSuffix} + cmd:ld${secondaryArchSuffix} cmd:libtoolize cmd:make cmd:m4 @@ -33,7 +40,6 @@ BUILD_REQUIRES=" " PATCHES="lame-3.99.5.patch" -SOURCE_DIR="$portVersionedName" BUILD() { @@ -85,7 +91,5 @@ PROVIDES_devel=" devel:libmp3lame = 0.0.0 compat >= 0 " REQUIRES_devel=" - libmp3lame == $portVersion base - lib:libiconv >= 2 - lib:libroot + lame == $portVersion base " diff --git a/media-sound/milkytracker/licenses/New-BSD b/media-sound/milkytracker/licenses/New-BSD new file mode 100644 index 000000000..a389ea37a --- /dev/null +++ b/media-sound/milkytracker/licenses/New-BSD @@ -0,0 +1,23 @@ +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 the 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 HOLDER 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. diff --git a/media-sound/milkytracker/milkytracker-0.90.85.recipe b/media-sound/milkytracker/milkytracker-0.90.85.recipe deleted file mode 100644 index a5835b041..000000000 --- a/media-sound/milkytracker/milkytracker-0.90.85.recipe +++ /dev/null @@ -1,31 +0,0 @@ -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/milkytracker/milkytracker-0.90.86.recipe b/media-sound/milkytracker/milkytracker-0.90.86.recipe new file mode 100644 index 000000000..e626d920b --- /dev/null +++ b/media-sound/milkytracker/milkytracker-0.90.86.recipe @@ -0,0 +1,68 @@ +SUMMARY="Fasttracker II inspired music tracker" +DESCRIPTION=" +MilkyTracker is an open source, multi-platform music application for creating \ +.MOD and .XM module files. It attempts to recreate the module replay and user \ +experience of the popular DOS program Fasttracker II, with special playback \ +modes available for improved Amiga ProTracker 2/3 compatibility. +" +HOMEPAGE="http://www.milkytracker.org/" +COPYRIGHT="1994-2013 + Peter 'pailes' Barth, + Christopher 'Deltafire' O'Neill, + Antti S. Lankila, + Varthall, + Andrew Simper, + David Ross, + Stuart Caie, + Claudio Matsuoka, + Julian 'jua' Harnath + " +LICENSE="GNU GPL v3 + New-BSD" +SRC_URI="http://www.milkytracker.org/files/milkytracker-0.90.86.tar.bz2" +CHECKSUM_SHA256="eb93000ed4855e198dfb02df54f3e3536dc891084ca47cdd5393121137ba3bed" +REVISION="1" +ARCHITECTURES="x86_gcc2 ?x86" + +PROVIDES=" + milkytracker = $portVersion + app:MilkyTracker = $portVersion + app:MilkySettings = $portVersion + " + +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + zlib >= 1.2.3 + " +BUILD_REQUIRES=" + zlib_devel >= 1.2.3 + " +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:gcc${secondaryArchSuffix} + cmd:ld${secondaryArchSuffix} + cmd:jam + " + +BUILD() +{ + cd $sourceDir/platforms/haiku + bash ./Add_Jamfiles.sh + cd ../.. + jam +} + +INSTALL() +{ + TARGET_DIR=$appsDir/MilkyTracker + mkdir -p $TARGET_DIR + cd $sourceDir + cp -af src/tracker/MilkyTracker $TARGET_DIR/ + cp -af src/tracker/haiku/MilkySettings/MilkySettings $TARGET_DIR/ + cp -af docs/ChangeLog.html $TARGET_DIR/ + cp -af docs/FAQ.html $TARGET_DIR/ + cp -af docs/MilkyTracker.html $TARGET_DIR/ + cp -af docs/TiTAN.nfo $TARGET_DIR/ + cp -af COPYING $TARGET_DIR/ + addAppDeskbarSymlink $TARGET_DIR/MilkyTracker MilkyTracker +} diff --git a/media-sound/mpg123/mpg123-1.12.1.recipe b/media-sound/mpg123/mpg123-1.12.1.recipe index 753a9e082..8049b4f75 100644 --- a/media-sound/mpg123/mpg123-1.12.1.recipe +++ b/media-sound/mpg123/mpg123-1.12.1.recipe @@ -1,25 +1,61 @@ -DESCRIPTION="mpg123 is the fast and Free console based real time MPEG Audio Player for Layer 1, 2 and 3." +SUMMARY="Fast console MPEG Audio Player and decoder library" +DESCRIPTION=" +mpg123 is the fast and Free console based real time MPEG Audio Player for \ +Layer 1, 2 and 3. +" HOMEPAGE="http://www.mpg123.org/" SRC_URI="http://sourceforge.net/projects/mpg123/files/mpg123/1.12.1/mpg123-1.12.1.tar.bz2/download" +CHECKSUM_SHA256="f3cfe305832c4a6a56d105ec1b47e7963d5d809cb17447ee93ae2330f2365a72" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="media-libs/libsdl >= 1.2" -CHECKSUM_MD5="e7d810a75d22954169f1530a436aca4c" +ARCHITECTURES="x86_gcc2 x86" +SECONDARY_ARCHITECTURES="x86" +#DEPEND="media-libs/libsdl >= 1.2" + +PROVIDES=" + mpg123$secondaryArchSuffix = $portVersion + lib:libmpg123$secondaryArchSuffix + cmd:mpg123$secondaryArchSuffix + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:awk + " + +PATCHES="mpg123-1.12.1.patch" BUILD() { - cd mpg123-1.12.1 - libtoolize --force --copy --install - aclocal - autoconf - ./configure --prefix=`finddir B_COMMON_DIRECTORY` --disable-aligncheck - make +#libtoolize --force --copy --install +# aclocal +# autoconf + LDFLAGS="-lnetwork" runConfigure ./configure --disable-aligncheck + make $jobArgs } INSTALL() { - cd mpg123-1.12.1 make install + prepareInstalledDevelLib libmpg123 + packageEntries devel $developDir } +PROVIDES_devel=" + mpg123$secondaryArchSuffix = $portVersion + devel:libmpg123$secondaryArchSuffix + " + +REQUIRES_devel=" + haiku$secondaryArchSuffix >= $haikuVersion + mpg123$secondaryArchSuffix == $portVersion base + " + + LICENSE="GNU LGPL v2.1" COPYRIGHT="1995-2009 Michael Hipp and others" diff --git a/media-sound/ocp/ocp-0.1.21_git.recipe b/media-sound/ocp/ocp-0.1.21_git.recipe index 0abc28e07..2426793d4 100644 --- a/media-sound/ocp/ocp-0.1.21_git.recipe +++ b/media-sound/ocp/ocp-0.1.21_git.recipe @@ -1,28 +1,69 @@ -DESCRIPTION="ocp - Open Cubic Player, a music player ported from DOS" +SUMMARY="ocp - Open Cubic Player" +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" +LICENSE="GNU GPL v2" +COPYRIGHT="1994-2012 Niklas Beisert, Stian Skjelstad and others" +#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 + +ARCHITECTURES="x86 ?x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + ocp$secondaryArchSuffix = $portVersion + cmd:ocp = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix + libsdl$secondaryArchSuffix + lib:libiconv$secondaryArchSuffix + lib:libncurses$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libogg$secondaryArchSuffix >= 0.8.0 + lib:libvorbis$secondaryArchSuffix >= 0.4.5 + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libsdl_1.2$secondaryArchSuffix >= 0.10 + devel:libiconv$secondaryArchSuffix + devel:libncurses$secondaryArchSuffix + devel:libz$secondaryArchSuffix >= 1.2.8 + devel:libogg$secondaryArchSuffix >= 0.8.0 + devel:libvorbis$secondaryArchSuffix >= 0.4.5 + " +BUILD_PREREQUIRES=" + cmd:autoconf + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:pkg_config$secondaryArchSuffix + cmd:sdl_config$secondaryArchSuffix + " + +SOURCE_DIR="code" + BUILD() { - cd code autoconf - CPPFLAGS=-I/boot/common/include LDFLAGS=-L/boot/common/lib ./configure --prefix=`finddir B_COMMON_DIRECTORY` + runConfigure ./configure make } INSTALL() { - cd code make install } - -LICENSE="GNU GPL v2" -COPYRIGHT="1994-2012 Niklas Beisert, Stian Skjelstad and others" diff --git a/media-sound/opensound/opensound-232d0de71550.recipe b/media-sound/opensound/opensound-232d0de71550.recipe deleted file mode 100644 index 21c69c1f3..000000000 --- a/media-sound/opensound/opensound-232d0de71550.recipe +++ /dev/null @@ -1,28 +0,0 @@ -DESCRIPTION="Open Sound System" -HOMEPAGE="http://developer.opensound.com/" -SRC_URI="hg+http://opensound.hg.sourceforge.net:8000/hgroot/opensound/opensound/#232d0de71550" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd opensound-232d0de71550 - mkdir -p build - cd build - ../configure --config-midi=NO --config-vmix=NO - make -} - -INSTALL() -{ - cd opensound-232d0de71550/build - if [ -n "${DESTDIR}" ];then - make package - mkdir -p ${DESTDIR}/boot - cp -R prototype/* ${DESTDIR}/boot - else - make install - fi -} -LICENSE="BSD (2-clause)" -COPYRIGHT="1996-2009" diff --git a/media-sound/opensound/opensound-4.2_git.recipe b/media-sound/opensound/opensound-4.2_git.recipe new file mode 100644 index 000000000..6b89f1540 --- /dev/null +++ b/media-sound/opensound/opensound-4.2_git.recipe @@ -0,0 +1,52 @@ +SUMMARY="Open Sound System" +DESCRIPTION="Open Sound System audio drivers" +HOMEPAGE="http://developer.opensound.com/" +LICENSE="BSD (2-clause)" +COPYRIGHT="1996-2008 Hannu Savolainen and Dev Mazumdar" +SRC_URI="git://opensound.git.sourceforge.net/gitroot/opensound/opensound" +REVISION="1" +#CHECKSUM_MD5="" +ARCHITECTURES="?x86_gcc2 ?x86" + +PROVIDES=" + opensound$secondaryArchSuffix = $portVersion + cmd:ossplay$secondaryArchSuffix + cmd:ossinfo$secondaryArchSuffix + cmd:ossmix$secondaryArchSuffix + cmd:ossphone$secondaryArchSuffix + cmd:ossrecord$secondaryArchSuffix + cmd:osstest$secondaryArchSuffix + cmd:savemixer$secondaryArchSuffix + cmd:vmixctl$secondaryArchSuffix + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:awk + cmd:find + cmd:make + " + +GLOBAL_WRITABLE_FILES="settings/kernel/drivers directory keep-old" + +BUILD() +{ + mkdir -p build + cd build + ../configure --config-midi=NO --config-vmix=NO + make +} + +INSTALL() +{ + cd build + make build SYSTEM_DIR=system + copyattr -d -r prototype/system/* $prefix/ + copyattr -d -r prototype/home/config/settings/* $settingsDir/ +} diff --git a/media-sound/opensound/opensound-cac211efd60d.recipe b/media-sound/opensound/opensound-cac211efd60d.recipe deleted file mode 100644 index 149d67b74..000000000 --- a/media-sound/opensound/opensound-cac211efd60d.recipe +++ /dev/null @@ -1,28 +0,0 @@ -DESCRIPTION="Open Sound System" -HOMEPAGE="http://developer.opensound.com/" -SRC_URI="hg+http://mercurial.opensound.com/#cac211efd60d" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd opensound-cac211efd60d - mkdir -p build - cd build - ../configure - make -} - -INSTALL() -{ - cd opensound-cac211efd60d/build - if [ -n "${DESTDIR}" ];then - make package - mkdir -p ${DESTDIR}/boot - cp -R prototype/* ${DESTDIR}/boot - else - make install - fi -} -LICENSE="BSD (2-clause)" -COPYRIGHT="1996-2009" diff --git a/media-sound/opensound/patches/opensound-232d0de71550.patch b/media-sound/opensound/patches/opensound-232d0de71550.patch deleted file mode 100644 index 6c5b1c1a7..000000000 --- a/media-sound/opensound/patches/opensound-232d0de71550.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -up opensound-232d0de71550/kernel/OS/BeOS/os_beos.c.orig opensound-232d0de71550/kernel/OS/BeOS/os_beos.c ---- opensound-232d0de71550/kernel/OS/BeOS/os_beos.c.orig 2010-05-08 16:22:20.327417856 -0600 -+++ opensound-232d0de71550/kernel/OS/BeOS/os_beos.c 2010-05-08 16:23:05.004194304 -0600 -@@ -1076,6 +1076,8 @@ osdev_create (dev_info_t * dip, int dev_ - osdev->dip->pciinfo.function, - "oss", osdev) != B_OK) { - cmn_err (CE_WARN, "Could not reserve PCI device\n"); -+ /* make sure the card isn't uninitialized on driver unload */ -+ oss_num_cards--; - /* XXX: CLEANUP! */ - return NULL; - } -diff -up opensound-232d0de71550/setup/BeOS/build.sh.orig opensound-232d0de71550/setup/BeOS/build.sh ---- opensound-232d0de71550/setup/BeOS/build.sh.orig 2010-05-08 16:22:21.177471488 -0600 -+++ opensound-232d0de71550/setup/BeOS/build.sh 2010-05-08 16:23:17.108003328 -0600 -@@ -36,12 +36,12 @@ mkdir -p prototype/$BEOS_SYSTEM/add-ons/ - #hack for now - #mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/media/oss - mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/bin --mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/audio/multi -+#mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/audio/multi - mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/audio/oss - #hack for now - mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/oss - ln -s ../../bin/${DRVPREFIX}loader prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/oss/ --ln -s ../bin/${DRVPREFIX}loader prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/ -+#ln -s ../bin/${DRVPREFIX}loader prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/ - #hack: install bins for now - mkdir -p prototype/home/config/bin - mkdir -p prototype/home/config/settings/kernel/drivers diff --git a/media-sound/opensound/patches/opensound-cac211efd60d.patch b/media-sound/opensound/patches/opensound-cac211efd60d.patch deleted file mode 100644 index 9e3887593..000000000 --- a/media-sound/opensound/patches/opensound-cac211efd60d.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -up opensound-cac211efd60d/kernel/OS/BeOS/os_beos.c.orig opensound-cac211efd60d/kernel/OS/BeOS/os_beos.c ---- opensound-cac211efd60d/kernel/OS/BeOS/os_beos.c.orig 2010-05-08 16:22:20.327417856 -0600 -+++ opensound-cac211efd60d/kernel/OS/BeOS/os_beos.c 2010-05-08 16:23:05.004194304 -0600 -@@ -1076,6 +1076,8 @@ osdev_create (dev_info_t * dip, int dev_ - osdev->dip->pciinfo.function, - "oss", osdev) != B_OK) { - cmn_err (CE_WARN, "Could not reserve PCI device\n"); -+ /* make sure the card isn't uninitialized on driver unload */ -+ oss_num_cards--; - /* XXX: CLEANUP! */ - return NULL; - } -diff -up opensound-cac211efd60d/setup/BeOS/build.sh.orig opensound-cac211efd60d/setup/BeOS/build.sh ---- opensound-cac211efd60d/setup/BeOS/build.sh.orig 2010-05-08 16:22:21.177471488 -0600 -+++ opensound-cac211efd60d/setup/BeOS/build.sh 2010-05-08 16:23:17.108003328 -0600 -@@ -36,12 +36,12 @@ mkdir -p prototype/$BEOS_SYSTEM/add-ons/ - #hack for now - #mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/media/oss - mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/bin --mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/audio/multi -+#mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/audio/multi - mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/audio/oss - #hack for now - mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/oss - ln -s ../../bin/${DRVPREFIX}loader prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/oss/ --ln -s ../bin/${DRVPREFIX}loader prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/ -+#ln -s ../bin/${DRVPREFIX}loader prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/ - #hack: install bins for now - mkdir -p prototype/home/config/bin - mkdir -p prototype/home/config/settings/kernel/drivers diff --git a/media-sound/protrekkr/patches/protrekkr-2.5.4.patchset b/media-sound/protrekkr/patches/protrekkr-2.5.4.patchset new file mode 100644 index 000000000..f043f4802 --- /dev/null +++ b/media-sound/protrekkr/patches/protrekkr-2.5.4.patchset @@ -0,0 +1,815 @@ +From 4662e2c5030efdf290f6320eaf077abc820eb51e Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Tue, 4 Mar 2014 21:49:16 +0100 +Subject: Import initial patch. + + +diff --git a/makefile.haiku b/makefile.haiku +new file mode 100644 +index 0000000..efbfd22 +--- /dev/null ++++ b/makefile.haiku +@@ -0,0 +1,199 @@ ++CXX = g++-x86 ++ ++LIBS = src/extralibs/tinyxml/tinyxml.o \ ++ src/extralibs/tinyxml/tinyxmlparser.o \ ++ src/extralibs/tinyxml/tinystr.o \ ++ src/extralibs/tinyxml/tinyxmlerror.o \ ++ -lSDL -lsdldraw -lz -lstdc++ -lsupc++ -lgame ++ ++FLAGS = -O2 -fno-strict-aliasing -ffast-math -fno-rtti -fno-exceptions -I/usr/local/include -L/usr/local/lib -Lsrc/extralibs/sdl_draw -Lsrc/extralibs/zlib-1.2.3 -fpermissive \ ++ -D __GCC__ -D __NO_MIDI__ -D __MOT_SWAP__ ++ ++EXEOBJS = ptk.o \ ++ editor_303.o editor_pattern.o editor_sequencer.o editor_track.o editor_track_fx.o \ ++ patterns_blocks.o editor_synth.o editor_sample.o editor_fx_setup.o editor_setup.o \ ++ editor_diskio.o editor_reverb.o editor_instrument.o editor_midi.o \ ++ samples_pack.o files_list.o files.o mods.o patterns.o reverbs.o midi_cfg.o \ ++ bits.o pack.o tinypack.o words.o wputils.o \ ++ config.o 303s.o synths.o insts.o ptps.o \ ++ midi.o midi_dispatch.o \ ++ timer.o main.o \ ++ misc_draw.o draw_primitives.o requesters.o xml.o gadgets.o \ ++ samples_ops.o aiff.o riff.o \ ++ spline.o tb_303.o wavpack.o samples_unpack.o replay.o synth.o endianness.o \ ++ sounddriver_haiku.o ++ ++all: protrekkr ++ ++clean: RemObj ++ ++RemObj: ++ -rm -f $(EXEOBJS) ++ ++protrekkr: $(EXEOBJS) ++ (cd src/extralibs/sdl_draw; make -f makefile.haiku) ++ (cd src/extralibs/tinyxml; make) ++ (cd src/extralibs/zlib-1.2.3; make) ++ $(CXX) -o ./release/distrib/ptk_haiku -L./ $(FLAGS) $(EXEOBJS) $(LIBS) ++ strip -s -x ./release/distrib/ptk_haiku ++ chmod +x ./release/distrib/ptk_haiku ++# -rm -f $(EXEOBJS) ++ ++ptk.o: src/ptk.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++editor_303.o: src/editors/editor_303.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++editor_pattern.o: src/editors/editor_pattern.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++editor_sequencer.o: src/editors/editor_sequencer.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++editor_track.o: src/editors/editor_track.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++editor_track_fx.o: src/editors/editor_track_fx.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++patterns_blocks.o: src/editors/patterns_blocks.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++editor_synth.o: src/editors/editor_synth.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++editor_sample.o: src/editors/editor_sample.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++editor_fx_setup.o: src/editors/editor_fx_setup.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++editor_setup.o: src/editors/editor_setup.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++editor_diskio.o: src/editors/editor_diskio.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++editor_reverb.o: src/editors/editor_reverb.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++editor_instrument.o: src/editors/editor_instrument.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++editor_midi.o: src/editors/editor_midi.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++samples_pack.o: src/samples/samples_pack.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++files_list.o: src/files/files_list.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++files.o: src/files/files.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++mods.o: src/files/mods.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++patterns.o: src/files/patterns.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++reverbs.o: src/files/reverbs.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++midi_cfg.o: src/files/midi_cfg.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++config.o: src/files/config.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++303s.o: src/files/303s.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++synths.o: src/files/synths.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++insts.o: src/files/insts.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++ptps.o: src/files/ptps.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++midi.o: src/midi/midi.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++RtMidi.o: src/midi/RtMidi.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++midi_dispatch.o: src/midi/midi_dispatch.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++timer.o: src/support/timer.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++main.o: src/support/main.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++misc_draw.o: src/ui/misc_draw.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++draw_primitives.o: src/ui/draw_primitives.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++requesters.o: src/ui/requesters.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++xml.o: src/ui/xml.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++gadgets.o: src/ui/gadgets.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++samples_ops.o: src/samples/samples_ops.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++aiff.o: src/samples/aiff/aiff.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++riff.o: src/samples/wav/riff.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++spline.o: release/distrib/replay/lib/spline.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++tb_303.o: release/distrib/replay/lib/tb_303.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++wavpack.o: release/distrib/replay/lib/wavpack.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++samples_unpack.o: release/distrib/replay/lib/samples_unpack.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++replay.o: release/distrib/replay/lib/replay.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++synth.o: release/distrib/replay/lib/synth.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++endianness.o: release/distrib/replay/lib/endianness.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++sounddriver_haiku.o: release/distrib/replay/lib/sounddriver/sounddriver_haiku.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++bits.o: src/samples/wavpack/bits.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++pack.o: src/samples/wavpack/pack.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++words.o: src/samples/wavpack/words.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++wputils.o: src/samples/wavpack/wputils.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< ++ ++tinypack.o: src/samples/wavpack/tinypack.cpp ++ $(CXX) -c -o $(@) $(FLAGS) $< +diff --git a/release/distrib/replay/lib/include/replay.h b/release/distrib/replay/lib/include/replay.h +index 1945eab..51778e4 100644 +--- a/release/distrib/replay/lib/include/replay.h ++++ b/release/distrib/replay/lib/include/replay.h +@@ -49,6 +49,8 @@ + #include "../sounddriver/include/sounddriver_aos4.h" + #elif defined(__PSP__) + #include "../sounddriver/include/sounddriver_psp.h" ++#elif defined(__HAIKU__) ++#include "../sounddriver/include/sounddriver_haiku.h" + #else + #error "Can't work without any sound driver !" + #endif +diff --git a/release/distrib/replay/lib/replay.cpp b/release/distrib/replay/lib/replay.cpp +index ea2ee35..f720cd1 100644 +--- a/release/distrib/replay/lib/replay.cpp ++++ b/release/distrib/replay/lib/replay.cpp +@@ -43,6 +43,10 @@ + #define int32 int32_t + #endif + ++#if defined(__HAIKU__) ++#include ++#endif ++ + #if !defined(__STAND_ALONE__) + #include "../../../../src/midi/include/midi.h" + #include "../../../../src/include/variables.h" +diff --git a/release/distrib/replay/lib/sounddriver/include/sounddriver_haiku.h b/release/distrib/replay/lib/sounddriver/include/sounddriver_haiku.h +new file mode 100644 +index 0000000..294c6f8 +--- /dev/null ++++ b/release/distrib/replay/lib/sounddriver/include/sounddriver_haiku.h +@@ -0,0 +1,84 @@ ++// ------------------------------------------------------ ++// Protrekkr ++// Based on Juan Antonio Arguelles Rius's NoiseTrekker. ++// ++// Copyright (C) 2008-2010 Franck Charlet. ++// All rights reserved. ++// ++// Redistribution and use in source and binary forms, with or without ++// modification, are permitted provided that the following conditions ++// are met: ++// ++// 1. Redistributions of 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. ++// ++// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 FRANCK CHARLET 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. ++// ------------------------------------------------------ ++ ++#ifndef _SOUNDDRIVER_LINUX_H_ ++#define _SOUNDDRIVER_LINUX_H_ ++ ++// ------------------------------------------------------ ++// Includes ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define STDCALL ++ ++#define TRUE 1 ++#define FALSE 0 ++ ++// ------------------------------------------------------ ++// Constants ++#define AUDIO_PCM_FREQ 44100 ++ ++#define AUDIO_DBUF_CHANNELS 2 ++#define AUDIO_DBUF_RESOLUTION 16 ++ ++// ------------------------------------------------------ ++// Types ++typedef unsigned int Uint32; ++typedef unsigned char Uint8; ++ ++// ------------------------------------------------------ ++// Functions ++extern int AUDIO_Latency; ++extern int AUDIO_Milliseconds; ++ ++#if !defined(__STAND_ALONE__) && !defined(__WINAMP__) ++void Message_Error(char *Message); ++#endif ++ ++int AUDIO_Init_Driver(void (STDCALL *Mixer)(Uint8 *, Uint32)); ++int AUDIO_Create_Sound_Buffer(int milliseconds); ++void AUDIO_Stop_Sound_Buffer(void); ++void AUDIO_Stop_Driver(void); ++void AUDIO_Play(void); ++void AUDIO_Stop(void); ++int AUDIO_IsPlaying(void); ++float AUDIO_GetTime(void); ++int AUDIO_GetSamples(void); ++void AUDIO_ResetTimer(void); ++ ++#endif +diff --git a/release/distrib/replay/lib/sounddriver/sounddriver_haiku.cpp b/release/distrib/replay/lib/sounddriver/sounddriver_haiku.cpp +new file mode 100644 +index 0000000..7791631 +--- /dev/null ++++ b/release/distrib/replay/lib/sounddriver/sounddriver_haiku.cpp +@@ -0,0 +1,213 @@ ++// ------------------------------------------------------ ++// Protrekkr ++// Based on Juan Antonio Arguelles Rius's NoiseTrekker. ++// ++// Copyright (C) 2008-2010 Franck Charlet. ++// All rights reserved. ++// ++// Redistribution and use in source and binary forms, with or without ++// modification, are permitted provided that the following conditions ++// are met: ++// ++// 1. Redistributions of 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. ++// ++// THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 FRANCK CHARLET 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. ++// ------------------------------------------------------ ++ ++// ------------------------------------------------------ ++// Includes ++#include "include/sounddriver_haiku.h" ++#include ++#include ++ ++#include ++ ++// ------------------------------------------------------ ++// Variables ++unsigned int AUDIO_To_Fill; ++int AUDIO_Samples; ++int AUDIO_Play_Flag; ++float AUDIO_Timer; ++ ++int volatile AUDIO_Acknowledge; ++BStreamingGameSound* AUDIO_Device; ++Uint32 Amount; ++ ++int AUDIO_SoundBuffer_Size; ++int AUDIO_Latency; ++int AUDIO_Milliseconds = 20; ++int AUDIO_16Bits; ++ ++// ------------------------------------------------------ ++// Functions ++int AUDIO_Create_Sound_Buffer(int milliseconds); ++void AUDIO_Stop_Sound_Buffer(void); ++void (STDCALL *AUDIO_Mixer)(Uint8 *, Uint32); ++void AUDIO_Mixer_Fill_Buffer(void *, Uint32); ++void AUDIO_Synth_Play(void); ++ ++// ------------------------------------------------------ ++// Name: AUDIO_Thread() ++// Desc: Audio rendering ++static void AUDIO_Callback(void* cookie, void* inBuffer, size_t byteCount, BStreamingGameSound* device) ++{ ++ assert(byteCount != 0); ++ if(AUDIO_Play_Flag) ++ { ++ AUDIO_Mixer((Uint8 *) inBuffer, byteCount); ++ } ++ else ++ { ++ unsigned int i; ++ char *pSamples = (char *) inBuffer; ++ for(i = 0; i < byteCount; i++) ++ { ++ pSamples[i] = 0; ++ } ++ } ++ AUDIO_Samples += byteCount; ++ AUDIO_Timer = ((((float) AUDIO_Samples) * (1.0f / (float) AUDIO_Latency)) * 1000.0f); ++} ++ ++// ------------------------------------------------------ ++// Name: AUDIO_Init_Driver() ++// Desc: Init the audio driver ++int AUDIO_Init_Driver(void (*Mixer)(Uint8 *, Uint32)) ++{ ++ AUDIO_Mixer = Mixer; ++ ++ AUDIO_Device = 0; ++ return(AUDIO_Create_Sound_Buffer(AUDIO_Milliseconds)); ++} ++ ++// ------------------------------------------------------ ++// Name: AUDIO_Create_Sound_Buffer() ++// Desc: Create an audio buffer of given milliseconds ++int AUDIO_Create_Sound_Buffer(int milliseconds) ++{ ++ int num_fragments; ++ int frag_size; ++ int found_pcmformat = TRUE; ++ ++ if(milliseconds < 10) milliseconds = 10; ++ if(milliseconds > 250) milliseconds = 250; ++ ++ num_fragments = 6; ++ frag_size = (int) (AUDIO_PCM_FREQ * (milliseconds / 1000.0f)); ++ ++ AUDIO_16Bits = TRUE; ++ ++ struct gs_audio_format format; ++ format.frame_rate = AUDIO_PCM_FREQ; ++ format.channel_count = AUDIO_DBUF_CHANNELS; ++ format.format = gs_audio_format::B_GS_S16; ++ format.byte_order = B_MEDIA_LITTLE_ENDIAN; ++ format.buffer_size = 4096 * num_fragments; ++ ++ AUDIO_Device = new BStreamingGameSound(4096, &format); ++ assert(AUDIO_Device->InitCheck() == B_OK); ++ ++ AUDIO_SoundBuffer_Size = format.buffer_size; ++ ++ AUDIO_Latency = AUDIO_SoundBuffer_Size; ++ assert(AUDIO_Latency != 0); ++ ++ AUDIO_Device->SetStreamHook(&AUDIO_Callback, NULL); ++ AUDIO_Device->StartPlaying(); ++ return(TRUE); ++} ++ ++// ------------------------------------------------------ ++// Name: AUDIO_Wait_For_Thread() ++// Desc: Wait for a command acknowledgment from the thread ++void AUDIO_Wait_For_Thread(void) ++{ ++ usleep(10); ++} ++ ++// ------------------------------------------------------ ++// Name: AUDIO_Play() ++// Desc: Play the sound buffer endlessly ++void AUDIO_Play(void) ++{ ++ AUDIO_ResetTimer(); ++ AUDIO_Play_Flag = TRUE; ++ AUDIO_Wait_For_Thread(); ++} ++ ++// ------------------------------------------------------ ++// Name: AUDIO_IsPlaying() ++// Desc: Return the playing state of the sound buffer ++int AUDIO_IsPlaying(void) ++{ ++ return(AUDIO_Play_Flag); ++} ++ ++// ------------------------------------------------------ ++// Name: AUDIO_ResetTimer() ++// Desc: Reset the samples counter ++void AUDIO_ResetTimer(void) ++{ ++ AUDIO_Samples = 0; ++ AUDIO_Timer = 0.0f; ++} ++ ++// ------------------------------------------------------ ++// Name: AUDIO_GetTime() ++// Desc: Return the played time in milliseconds ++float AUDIO_GetTime(void) ++{ ++ return(AUDIO_Timer); ++} ++ ++// ------------------------------------------------------ ++// Name: AUDIO_GetSamples() ++// Desc: Return the played time in milliseconds ++int AUDIO_GetSamples(void) ++{ ++ return(AUDIO_Samples); ++} ++ ++// ------------------------------------------------------ ++// Name: AUDIO_Stop() ++// Desc: Stop the sound buffer ++void AUDIO_Stop(void) ++{ ++ AUDIO_Play_Flag = FALSE; ++ AUDIO_Wait_For_Thread(); ++} ++ ++// ------------------------------------------------------ ++// Name: AUDIO_Stop_Sound_Buffer() ++// Desc: Release the audio buffer ++void AUDIO_Stop_Sound_Buffer(void) ++{ ++ AUDIO_Stop(); ++ AUDIO_Device->StopPlaying(); ++} ++ ++// ------------------------------------------------------ ++// Name: AUDIO_Stop_Driver() ++// Desc: Stop everything ++void AUDIO_Stop_Driver(void) ++{ ++ AUDIO_Stop_Sound_Buffer(); ++ delete AUDIO_Device; ++ AUDIO_Device = 0; ++} ++ +diff --git a/release/distrib/replay/lib/wavpack.cpp b/release/distrib/replay/lib/wavpack.cpp +index 4ced7c6..942d30d 100644 +--- a/release/distrib/replay/lib/wavpack.cpp ++++ b/release/distrib/replay/lib/wavpack.cpp +@@ -33,6 +33,8 @@ + // SUCH DAMAGE. + // ------------------------------------------------------ + ++#include ++ + #include "include/samples_unpack.h" + #include "include/wavpack.h" + +diff --git a/src/editors/editor_instrument.cpp b/src/editors/editor_instrument.cpp +index 83312cf..0cb4db7 100644 +--- a/src/editors/editor_instrument.cpp ++++ b/src/editors/editor_instrument.cpp +@@ -44,6 +44,10 @@ + #include "../files/include/files.h" + #include "../ui/include/requesters.h" + ++#if defined(__HAIKU__) ++#include ++#endif ++ + // ------------------------------------------------------ + // Variables + extern REQUESTER Overwrite_Requester; +diff --git a/src/editors/editor_pattern.cpp b/src/editors/editor_pattern.cpp +index e4674ac..29d4dec 100644 +--- a/src/editors/editor_pattern.cpp ++++ b/src/editors/editor_pattern.cpp +@@ -38,6 +38,10 @@ + #include "include/editor_instrument.h" + #include "include/editor_sequencer.h" + ++#if defined(__HAIKU__) ++#include ++#endif ++ + // ------------------------------------------------------ + // Constants + #define POS_HORIZ_SLIDER 716 +diff --git a/src/extralibs/sdl_draw/makefile.haiku b/src/extralibs/sdl_draw/makefile.haiku +new file mode 100644 +index 0000000..e321d5d +--- /dev/null ++++ b/src/extralibs/sdl_draw/makefile.haiku +@@ -0,0 +1,26 @@ ++LIBFLAGS = -c ++FLAGS = -O2 -D G_OS_WIN32 -D __LINUX__ -D __GCC__ ++LIBOBJS = draw_hline.o draw_line.o draw_pixel.o draw_vline.o ++ ++all: sdldraw ++clean: RemLibObj ++ ++RemLibObj: ++ -rm -f $(LIBOBJS) ++ ++sdldraw: $(LIBOBJS) ++ ar -d libsdldraw.a ++ ar -r libsdldraw.a $(LIBOBJS) ++ -rm -f $(LIBOBJS) ++ ++draw_hline.o: src/draw_hline.cpp ++ g++-x86 -o $(@) $(LIBFLAGS) $(FLAGS) src/draw_hline.cpp ++ ++draw_line.o: src/draw_line.cpp ++ g++-x86 -o $(@) $(LIBFLAGS) $(FLAGS) src/draw_line.cpp ++ ++draw_pixel.o: src/draw_pixel.cpp ++ g++-x86 -o $(@) $(LIBFLAGS) $(FLAGS) src/draw_pixel.cpp ++ ++draw_vline.o: src/draw_vline.cpp ++ g++-x86 -o $(@) $(LIBFLAGS) $(FLAGS) src/draw_vline.cpp +diff --git a/src/extralibs/tinyxml/makefile.haiku b/src/extralibs/tinyxml/makefile.haiku +new file mode 100644 +index 0000000..5ffb952 +--- /dev/null ++++ b/src/extralibs/tinyxml/makefile.haiku +@@ -0,0 +1,130 @@ ++#**************************************************************************** ++# ++# Makefile for TinyXml test. ++# Lee Thomason ++# www.grinninglizard.com ++# ++# This is a GNU make (gmake) makefile ++#**************************************************************************** ++ ++# DEBUG can be set to YES to include debugging info, or NO otherwise ++DEBUG := NO ++ ++# PROFILE can be set to YES to include profiling info, or NO otherwise ++PROFILE := NO ++ ++# TINYXML_USE_STL can be used to turn on STL support. NO, then STL ++# will not be used. YES will include the STL files. ++TINYXML_USE_STL := NO ++ ++#**************************************************************************** ++ ++CC := gcc ++CXX := g++ ++LD := g++ ++AR := ar rc ++RANLIB := ranlib ++ ++DEBUG_CFLAGS := -Wall -Wno-format -g -DDEBUG ++RELEASE_CFLAGS := -Wall -Wno-unknown-pragmas -Wno-format -O3 ++ ++LIBS := ++ ++DEBUG_CXXFLAGS := ${DEBUG_CFLAGS} ++RELEASE_CXXFLAGS := ${RELEASE_CFLAGS} ++ ++DEBUG_LDFLAGS := -g ++RELEASE_LDFLAGS := ++ ++ifeq (YES, ${DEBUG}) ++ CFLAGS := ${DEBUG_CFLAGS} ++ CXXFLAGS := ${DEBUG_CXXFLAGS} ++ LDFLAGS := ${DEBUG_LDFLAGS} ++else ++ CFLAGS := ${RELEASE_CFLAGS} ++ CXXFLAGS := ${RELEASE_CXXFLAGS} ++ LDFLAGS := ${RELEASE_LDFLAGS} ++endif ++ ++ifeq (YES, ${PROFILE}) ++ CFLAGS := ${CFLAGS} -pg -O3 ++ CXXFLAGS := ${CXXFLAGS} -pg -O3 ++ LDFLAGS := ${LDFLAGS} -pg ++endif ++ ++#**************************************************************************** ++# Preprocessor directives ++#**************************************************************************** ++ ++ifeq (YES, ${TINYXML_USE_STL}) ++ DEFS := -DTIXML_USE_STL ++else ++ DEFS := ++endif ++ ++#**************************************************************************** ++# Include paths ++#**************************************************************************** ++ ++#INCS := -I/usr/include/g++-2 -I/usr/local/include ++INCS := ++ ++ ++#**************************************************************************** ++# Makefile code common to all platforms ++#**************************************************************************** ++ ++CFLAGS := ${CFLAGS} ${DEFS} ++CXXFLAGS := ${CXXFLAGS} ${DEFS} ++ ++#**************************************************************************** ++# Targets of the build ++#**************************************************************************** ++ ++OUTPUT := xmltest ++ ++all: ${OUTPUT} ++ ++ ++#**************************************************************************** ++# Source files ++#**************************************************************************** ++ ++SRCS := tinyxml.cpp tinyxmlparser.cpp xmltest.cpp tinyxmlerror.cpp tinystr.cpp ++ ++# Add on the sources for libraries ++SRCS := ${SRCS} ++ ++OBJS := $(addsuffix .o,$(basename ${SRCS})) ++ ++#**************************************************************************** ++# Output ++#**************************************************************************** ++ ++${OUTPUT}: ${OBJS} ++ ${LD} -o $@ ${LDFLAGS} ${OBJS} ${LIBS} ${EXTRA_LIBS} ++ ++#**************************************************************************** ++# common rules ++#**************************************************************************** ++ ++# Rules for compiling source files to object files ++%.o : %.cpp ++ ${CXX} -c ${CXXFLAGS} ${INCS} $< -o $@ ++ ++%.o : %.c ++ ${CC} -c ${CFLAGS} ${INCS} $< -o $@ ++ ++dist: ++ bash makedistlinux ++ ++clean: ++ -rm -f core ${OBJS} ${OUTPUT} ++ ++depend: ++ #makedepend ${INCS} ${SRCS} ++ ++tinyxml.o: tinyxml.h tinystr.h ++tinyxmlparser.o: tinyxml.h tinystr.h ++xmltest.o: tinyxml.h tinystr.h ++tinyxmlerror.o: tinyxml.h tinystr.h +diff --git a/src/files/files_list.cpp b/src/files/files_list.cpp +index 6cd2848..fed9828 100644 +--- a/src/files/files_list.cpp ++++ b/src/files/files_list.cpp +@@ -286,7 +286,7 @@ void Set_Current_Dir(void) + } + } + +-#if defined(__LINUX__) || defined(__MACOSX__) ++#if defined(__LINUX__) || defined(__MACOSX__) || defined(__HAIKU__) + int list_file(const char *fpath, const struct stat *sb, int typeflag, struct FTW *ftwbuf) + { + int i; +diff --git a/src/samples/include/samples_ops.h b/src/samples/include/samples_ops.h +index 3b0a640..752427b 100644 +--- a/src/samples/include/samples_ops.h ++++ b/src/samples/include/samples_ops.h +@@ -37,6 +37,10 @@ + #include "../../include/variables.h" + #include "../../ui/include/misc_draw.h" + ++#if defined(__HAIKU__) ++#include ++#endif ++ + // ------------------------------------------------------ + // Variables + extern int cur_sample_buffer; +diff --git a/src/support/main.cpp b/src/support/main.cpp +index c08685a..bd4c97b 100644 +--- a/src/support/main.cpp ++++ b/src/support/main.cpp +@@ -59,6 +59,10 @@ + #include + #endif + ++#if defined(__HAIKU__) ++#include ++#endif ++ + #if defined(__AMIGAOS4__) || defined(__AROS__) + const char *AMIGA_VERSION = "\0$VER: " TITLE " " VER_VER "." VER_REV "." VER_REVSMALL "\0"; + #endif +@@ -444,6 +448,9 @@ extern SDL_NEED int SDL_main(int argc, char *argv[]) + } + CHDIR(ExePath); + ++#elif defined(__HAIKU__) ++ chdir(dirname(argv[0])); ++ GETCWD(ExePath, MAX_PATH); + #elif defined(__AMIGAOS4__) || defined(__AROS__) + CHDIR("/PROGDIR/"); + GETCWD(ExePath, MAX_PATH); +-- +1.8.3.4 + diff --git a/media-sound/protrekkr/protrekkr-2.5.4.recipe b/media-sound/protrekkr/protrekkr-2.5.4.recipe new file mode 100644 index 000000000..134b90153 --- /dev/null +++ b/media-sound/protrekkr/protrekkr-2.5.4.recipe @@ -0,0 +1,56 @@ +SUMMARY="Tracker program to create small sized electronic music" +DESCRIPTION=" +ProTrekkr (formerly known as NoiseTrekker by Juan Antonio Arguelles Rius aka \ +Arguru) is a tracker program combining a software synthesizer together with a \ +traditional samples tracker which can be used to create electronic music (like \ +psytrance, trance goa, hard acid, IDM, chip, techno, etc.) for small sized \ +intros, demos or games. +" +HOMEPAGE="http://code.google.com/p/protrekkr/" +COPYRIGHT="2008-2010 Franck Charlet. +Based on Juan Antonio Arguelles Rius's NoiseTrekker. + " +LICENSE="BSD (3-clause)" +SRC_URI="svn+http://protrekkr.googlecode.com/svn/trunk/#670" +REVISION="2" +ARCHITECTURES="x86" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + protrekkr${secondaryArchSuffix} = $portVersion + app:Protrekkr = $portVersion + " + +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + lib:libSDL$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libSDL$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc${secondaryArchSuffix} + cmd:ld${secondaryArchSuffix} + cmd:make + " + +PATCHES="protrekkr-2.5.4.patchset" +BUILD() +{ + make -f makefile.haiku +} + +INSTALL() +{ + TARGET_DIR=$appsDir/Protrekkr + mkdir -p $TARGET_DIR + cd release/distrib + cp -r history.txt instruments license.txt modules presets ptk_haiku replay reverbs skins $TARGET_DIR + addAppDeskbarSymlink $TARGET_DIR/ptk_haiku Protrekkr +} diff --git a/media-sound/vorbis_tools/vorbis_tools-1.4.0.recipe b/media-sound/vorbis_tools/vorbis_tools-1.4.0.recipe index f3e3e3430..a0e9d737a 100644 --- a/media-sound/vorbis_tools/vorbis_tools-1.4.0.recipe +++ b/media-sound/vorbis_tools/vorbis_tools-1.4.0.recipe @@ -1,64 +1,75 @@ -SUMMARY="vorbis-tools - tools for using the Ogg Vorbis sound file format" -DESCRIPTION="vorbis-tools - tools for using the Ogg Vorbis sound file format" +SUMMARY="Tools for using the Ogg Vorbis sound file format" +DESCRIPTION=" +vorbis-tools - tools for using the Ogg Vorbis sound file format. +" HOMEPAGE="http://www.vorbis.com/" SRC_URI="http://downloads.xiph.org/releases/vorbis/vorbis-tools-1.4.0.tar.gz" -CHECKSUM_MD5="567e0fb8d321b2cd7124f8208b8b90e6" +CHECKSUM_SHA256="a389395baa43f8e5a796c99daf62397e435a7e73531c9f44d9084055a05d22bc" REVISION="1" LICENSE="GNU GPL v2" COPYRIGHT="2000-2005 Michael Smith, Stan Seibert and other contributers" -ARCHITECTURES="x86 x86_gcc2" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" PROVIDES=" - vorbis_tools = 1.4.0 compat >= 1 - cmd:oggenc - cmd:oggdec - cmd:ogginfo - cmd:vcut - cmd:vorbiscomment + vorbis_tools = $portVersion compat >= 1 + cmd:oggenc$secondaryArchSuffix + cmd:oggdec$secondaryArchSuffix + cmd:ogginfo$secondaryArchSuffix + cmd:vcut$secondaryArchSuffix + cmd:vorbiscomment$secondaryArchSuffix + cmd:ogg123$secondaryArchSuffix " REQUIRES=" - haiku - lib:libvorbis - lib:libflac - lib:speex - lib:libao - lib:libogg - lib:libvorbis - lib:libcurl - lib:libvorbisfile - lib:libvorbisenc - lib:libFLAC + haiku$secondaryArchSuffix >= $haikuVersion + lib:libvorbis$secondaryArchSuffix + lib:libflac$secondaryArchSuffix + lib:libspeex$secondaryArchSuffix + lib:libao$secondaryArchSuffix + lib:libogg$secondaryArchSuffix + lib:libvorbis$secondaryArchSuffix + lib:libcurl$secondaryArchSuffix + lib:libvorbisfile$secondaryArchSuffix + lib:libvorbisenc$secondaryArchSuffix + lib:libssl$secondaryArchSuffix + lib:libz$secondaryArchSuffix " BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libvorbis$secondaryArchSuffix + devel:libflac$secondaryArchSuffix + devel:libspeex$secondaryArchSuffix + devel:libao$secondaryArchSuffix + devel:libogg$secondaryArchSuffix + devel:libvorbis$secondaryArchSuffix + devel:libcurl$secondaryArchSuffix + devel:libvorbisfile$secondaryArchSuffix + devel:libvorbisenc$secondaryArchSuffix + devel:libssl$secondaryArchSuffix + devel:libz$secondaryArchSuffix " -SOURCE_DIR="vorbis-tools-$portVersion" - BUILD_PREREQUIRES=" - cmd:gcc + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix cmd:libtoolize cmd:aclocal cmd:autoconf cmd:automake cmd:make - cmd:pkg_config - devel:libogg - devel:libvorbis - devel:libflac + cmd:pkg_config$secondaryArchSuffix " -PATCH="vorbis_tools-1.4.0.patch" +PATCHES="vorbis_tools-1.4.0.patch" -PATCH() -{ - sed -i 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/' configure.ac -} +SOURCE_DIR="vorbis-tools-$portVersion" BUILD() { + sed -i 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/' configure.ac libtoolize --force --copy --install aclocal -I m4 automake diff --git a/media-video/ffmpeg/ffmpeg-0.10.2.recipe b/media-video/ffmpeg/ffmpeg-0.10.2.recipe index f26d636b9..e0e59173a 100644 --- a/media-video/ffmpeg/ffmpeg-0.10.2.recipe +++ b/media-video/ffmpeg/ffmpeg-0.10.2.recipe @@ -1,5 +1,8 @@ SUMMARY="Audio and video recording, conversion, and streaming library" -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." +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" LICENSE=" GNU LGPL v2.1 @@ -10,12 +13,14 @@ COPYRIGHT=" 2003-2012 the FFmpeg developers " SRC_URI="http://www.ffmpeg.org/releases/ffmpeg-0.10.2.tar.bz2" -CHECKSUM_MD5="de1bd5fc4bbf3ef730a5361ee596fedd" -REVISION="4" +CHECKSUM_SHA256="2d990012091c07849843c456eb34ad015a00f45a66cba5be7c81a28e45fb6711" +REVISION="5" ARCHITECTURES="x86_gcc2 x86 x86_64" SECONDARY_ARCHITECTURES="x86_gcc2 x86" -PATCHES="ffmpeg-0.10.2-gcc2.patch" +if [ $effectiveTargetArchitecture == x86_gcc2 ]; then + PATCHES="ffmpeg-0.10.2-gcc2.patch" +fi PROVIDES=" ffmpeg$secondaryArchSuffix = $portVersion compat >= 0.10 @@ -37,6 +42,7 @@ fi REQUIRES=" haiku$secondaryArchSuffix >= $haikuVersion + lib:libbz2$secondaryArchSuffix lib:libogg$secondaryArchSuffix lib:libspeex$secondaryArchSuffix lib:libtheoradec$secondaryArchSuffix @@ -47,6 +53,7 @@ REQUIRES=" lib:libz$secondaryArchSuffix " BUILD_REQUIRES=" + devel:libbz2$secondaryArchSuffix devel:libogg$secondaryArchSuffix devel:libspeex$secondaryArchSuffix devel:libtheora$secondaryArchSuffix @@ -58,6 +65,7 @@ BUILD_PREREQUIRES=" haiku${secondaryArchSuffix}_devel >= $haikuVersion cmd:gcc$secondaryArchSuffix cmd:ld$secondaryArchSuffix + cmd:awk cmd:make cmd:perl cmd:pkg_config diff --git a/media-video/ffmpeg/ffmpeg-0.11.1.recipe b/media-video/ffmpeg/ffmpeg-0.11.1.recipe index 5397f247f..fbf5c1998 100644 --- a/media-video/ffmpeg/ffmpeg-0.11.1.recipe +++ b/media-video/ffmpeg/ffmpeg-0.11.1.recipe @@ -1,30 +1,161 @@ -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." +SUMMARY="Audio and video recording, conversion, and streaming library" +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" +LICENSE=" + GNU LGPL v2.1 + GNU GPL v2 + " +COPYRIGHT=" + 2000-2003 Fabrice Bellard + 2003-2012 the FFmpeg developers + " SRC_URI="http://www.ffmpeg.org/releases/ffmpeg-0.11.1.tar.bz2" -CHECKSUM_MD5="ff8cb914f657e164dd60ea1008b555a8" +CHECKSUM_SHA256="b01ddfb6352c84810879988f43172c5f7be555697edb929625845c7bb953fa96" 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" +ARCHITECTURES="x86" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + ffmpeg$secondaryArchSuffix = $portVersion compat >= 0.11 + lib:libavcodec$secondaryArchSuffix = 53.61.100 compat >= 53 + lib:libavdevice$secondaryArchSuffix = 53.4.100 compat >= 53 + lib:libavfilter$secondaryArchSuffix = 2.61.100 compat >= 2 + lib:libavformat$secondaryArchSuffix = 53.32.100 compat >= 53 + lib:libavutil$secondaryArchSuffix = 51.35.100 compat >= 51 + lib:libswresample$secondaryArchSuffix = 0.6.100 compat >= 0 + lib:libswscale$secondaryArchSuffix = 2.1.100 compat >= 2 + " +if [ -z "$secondaryArchSuffix" ]; then + PROVIDES="$PROVIDES + cmd:ffmpeg = $portVersion compat >= 0.11 + cmd:ffprobe = $portVersion compat >= 0.11 + cmd:ffserver = $portVersion compat >= 0.11 + " +fi + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libbz2$secondaryArchSuffix + lib:libogg$secondaryArchSuffix + lib:libspeex$secondaryArchSuffix + lib:libtheoradec$secondaryArchSuffix + lib:libtheoraenc$secondaryArchSuffix + lib:libvorbis$secondaryArchSuffix + lib:libvorbisenc$secondaryArchSuffix + lib:libvpx$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libbz2$secondaryArchSuffix + devel:libogg$secondaryArchSuffix + devel:libspeex$secondaryArchSuffix + devel:libtheora$secondaryArchSuffix + devel:libvorbis$secondaryArchSuffix + devel:libvpx$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:awk + cmd:make + cmd:perl + cmd:pkg_config + cmd:texi2html + cmd:yasm + " + +GLOBAL_WRITABLE_FILES=" + settings/ffserver.conf + " + +PATCH() +{ + # patch hard-coded config file path + sed -i "s,/etc/ffserver.conf,$sysconfDir/ffserver.conf," \ + ffserver.c \ + doc/ffserver.texi + + # patch hard-coded paths to perl + sed -i "s,/usr/bin/perl,$portPackageLinksDir/cmd~perl/bin/perl," \ + Doxyfile \ + doc/texi2pod.pl +} + 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 + # not an auto tools configure + ./configure \ + --prefix=$prefix \ + --bindir=$binDir \ + --datadir=$dataDir/$portName \ + --incdir=$includeDir \ + --libdir=$libDir \ + --shlibdir=$libDir \ + --mandir=$manDir \ + --disable-debug \ + --enable-shared \ + --enable-libvorbis \ + --enable-libspeex \ + --enable-libtheora \ + --enable-libvpx + make $jobArgs } INSTALL() { - cd ffmpeg-0.11.1 make install + + rm $binDir/ffprobe + # TODO: Determine and fix what is wrong with ffprobe! The executable + # seems to be broken. The NEEDED entries in the dynamic section look + # weird and the runtime loader fails relocating with "Operation not + # allowed". + + prepareInstalledDevelLibs \ + libavcodec \ + libavdevice \ + libavfilter \ + libavformat \ + libavutil \ + libswresample \ + libswscale + fixPkgconfig + + # include the documented ffserver.conf + mkdir -p $docDir + cp doc/ffserver.conf $docDir + + # devel package + packageEntries devel \ + $developDir + + # Remove stuff we don't need in the secondary architecture base package. + if [ -n "$secondaryArchSuffix" ]; then + rm -rf $prefix/bin + rm -rf $documentationDir + fi } -LICENSE="GNU LGPL v2.1 - GNU GPL v2" -COPYRIGHT="2000-2003 Fabrice Bellard - 2003-2012 the FFmpeg developers" +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + ffmpeg${secondaryArchSuffix}_devel = $portVersion compat >= 0.11 + devel:libavcodec$secondaryArchSuffix = 53.61.100 compat >= 53 + devel:libavdevice$secondaryArchSuffix = 53.4.100 compat >= 53 + devel:libavfilter$secondaryArchSuffix = 2.61.100 compat >= 2 + devel:libavformat$secondaryArchSuffix = 53.32.100 compat >= 53 + devel:libavutil$secondaryArchSuffix = 51.35.100 compat >= 51 + devel:libswresample$secondaryArchSuffix = 0.6.100 compat >= 0 + devel:libswscale$secondaryArchSuffix = 2.1.100 compat >= 2 + " +REQUIRES_devel=" + ffmpeg$secondaryArchSuffix == $portVersion + " diff --git a/media-video/gnash/gnash-0.8.10.recipe b/media-video/gnash/gnash-0.8.10.recipe new file mode 100644 index 000000000..3df4afd0a --- /dev/null +++ b/media-video/gnash/gnash-0.8.10.recipe @@ -0,0 +1,121 @@ +SUMMARY="Gnash" +DESCRIPTION=" +Gnash is a player for the Adobe Flash technology. +" +HOMEPAGE="http://www.gnu.org/software/gnash/" +SRC_URI="ftp://ftp.gnu.org/pub/gnu/gnash/0.8.10/gnash-0.8.10.tar.bz2" +CHECKSUM_SHA256="9625072e45df92baa2c28fc9999d4e2deb66bc827530baedfad2e4e2292d1224" +COPYRIGHT="2005-2012 Free Software Foundation" +LICENSE="GNU GPL v3" +REVISION="2" + +ARCHITECTURES="!x86 !x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="!x86" + +PROVIDES=" + gnash$secondaryArchSuffix = $portVersion + app:Gnash = $portVersion +" +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libsdl$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libbz2$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:libgif$secondaryArchSuffix + lib:libavcodec$secondaryArchSuffix + lib:libspeex$secondaryArchSuffix + lib:libexpat$secondaryArchSuffix + lib:libcurl$secondaryArchSuffix + lib:libboost_thread$secondaryArchSuffix + lib:libboost_program_options$secondaryArchSuffix + lib:libboost_iostreams$secondaryArchSuffix + lib:libboost_serialization$secondaryArchSuffix + lib:libboost_date_time$secondaryArchSuffix + lib:libboost_system$secondaryArchSuffix + lib:libssl$secondaryArchSuffix + lib:libcrypto$secondaryArchSuffix + lib:libsdl_sound$secondaryArchSuffix + lib:libagg$secondaryArchSuffix + lib:libfreetype$secondaryArchSuffix + #lib:libfontconfig$secondaryArchSuffix + lib:libiconv$secondaryArchSuffix + lib:libintl$secondaryArchSuffix +" +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libsdl$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:libbz2$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:libgif$secondaryArchSuffix + devel:libavcodec$secondaryArchSuffix + devel:libspeex$secondaryArchSuffix + devel:libexpat$secondaryArchSuffix + devel:libcurl$secondaryArchSuffix + boost_devel$secondaryArchSuffix + devel:libboost_thread$secondaryArchSuffix + devel:libboost_program_options$secondaryArchSuffix + devel:libboost_iostreams$secondaryArchSuffix + devel:libboost_serialization$secondaryArchSuffix + devel:libboost_date_time$secondaryArchSuffix + devel:libboost_system$secondaryArchSuffix + devel:libssl$secondaryArchSuffix + devel:libcrypto$secondaryArchSuffix + devel:libsdl_sound$secondaryArchSuffix + devel:libagg$secondaryArchSuffix + #devel:libfontconfig$secondaryArchSuffix + devel:libfreetype$secondaryArchSuffix + devel:libiconv$secondaryArchSuffix + devel:libintl$secondaryArchSuffix +" +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:awk + cmd:sed + cmd:libtoolize + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:pkg_config$secondaryArchSuffix + cmd:sdl_config$secondaryArchSuffix + cmd:xargs +" + +PATCHES="gnash-0.8.10.patchset" + +BUILD() +{ + INCLUDE_DIR=`finddir B_SYSTEM_DIRECTORY`/$relativeIncludeDir + LIB_DIR=`finddir B_SYSTEM_DIRECTORY`/$relativeDevelopLibDir + + libtoolize --force --copy --install + aclocal + autoconf + automake + runConfigure ./configure --enable-renderer=agg --enable-media=ffmpeg \ + --enable-gui=sdl --enable-sound=sdl --without-gconf \ + --disable-extensions \ + --with-boost-incl=$INCLUDE_DIR/boost \ + --with-boost-lib=$LIB_DIR \ + --includedir=$includeDir \ + --bindir=$appsDir \ + --libdir=$libDir + make $jobArgs +} +INSTALL() +{ + make install + addAppDeskbarSymlink $appsDir/Gnash Gnash +} +TEST() +{ + make check +} diff --git a/media-video/gnash/patches/gnash-0.8.10.patchset b/media-video/gnash/patches/gnash-0.8.10.patchset new file mode 100644 index 000000000..01be8c9cd --- /dev/null +++ b/media-video/gnash/patches/gnash-0.8.10.patchset @@ -0,0 +1,49 @@ +From 27ea051c05dcc53eb9ea2359f7e71eaacc8c2ada Mon Sep 17 00:00:00 2001 +From: Kacper Kasper +Date: Thu, 24 Apr 2014 22:18:34 +0000 +Subject: fix Haiku build + + +diff --git a/libbase/GnashImageGif.cpp b/libbase/GnashImageGif.cpp +index eeba4b7..bddb452 100644 +--- a/libbase/GnashImageGif.cpp ++++ b/libbase/GnashImageGif.cpp +@@ -269,7 +269,8 @@ GifInput::processRecord(GifRecordType record) + void + GifInput::read() + { +- _gif = DGifOpen(_inStream.get(), &readData); ++ int error_code; ++ _gif = DGifOpen(_inStream.get(), &readData, &error_code); + + GifRecordType record; + +diff --git a/libbase/utility.h b/libbase/utility.h +index 8b9f48c..51ea858 100644 +--- a/libbase/utility.h ++++ b/libbase/utility.h +@@ -61,7 +61,7 @@ namespace std + }; + #endif + +-#if defined(__HAIKU__) ++#if defined(__HAIKU_OLD) + namespace std { + class wstring : public std::basic_string + { +diff --git a/macros/boost.m4 b/macros/boost.m4 +index 845aaae..5788f57 100644 +--- a/macros/boost.m4 ++++ b/macros/boost.m4 +@@ -37,7 +37,7 @@ AC_DEFUN([GNASH_PATH_BOOST], + boost_headers="detail/lightweight_mutex.hpp thread/thread.hpp multi_index_container.hpp multi_index/key_extractors.hpp thread/mutex.hpp program_options/options_description.hpp iostreams/stream.hpp" + dnl this is a list of *required* libraries. If any of these are missing, this + dnl test will return a failure, and Gnash won't build. +- boost_libs="thread program_options iostreams" ++ boost_libs="thread program_options iostreams system" + + dnl this is a list of *recommended* libraries. If any of these are missing, this + dnl test will return a warning, and Gnash will build, but testing won't work. +-- +1.8.3.4 + diff --git a/meta-ports/meta_portsfile/meta_portsfile-1.recipe b/meta-ports/meta_portsfile/meta_portsfile-1.recipe index 0a00238bd..315225aff 100644 --- a/meta-ports/meta_portsfile/meta_portsfile-1.recipe +++ b/meta-ports/meta_portsfile/meta_portsfile-1.recipe @@ -1,5 +1,7 @@ SUMMARY="Meta package for building all ports of a given portsfile" -DESCRIPTION="Meta package for building all ports of a given portsfile" +DESCRIPTION=" +Meta package for building all ports of a given portsfile. +" REVISION="1" COPYRIGHT="2013 The HaikuPorts team" LICENSE="MIT" diff --git a/net-analyzer/netcat/netcat-1.10.recipe b/net-analyzer/netcat/netcat-1.10.recipe new file mode 100644 index 000000000..ab08dbdc3 --- /dev/null +++ b/net-analyzer/netcat/netcat-1.10.recipe @@ -0,0 +1,39 @@ +SUMMARY="A utility to read and write to network connections" +DESCRIPTION=" +Netcat is a simple utility which reads and writes data across network connections, \ +using the TCP or UDP protocol. +" +HOMEPAGE="http://nc110.sourceforge.net" +SRC_URI="svn://svn.code.sf.net/p/nc110/code/nc110#22" +LICENSE="Public Domain" +COPYRIGHT="1996 hobbit" +REVISION="1" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +PATCHES="netcat-1.10.patchset" + +PROVIDES=" + netcat = $portVersion + cmd:nc = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:gcc + cmd:make + " + +BUILD() +{ + make haiku +} + +INSTALL() +{ + mkdir -p $binDir + cp nc $binDir +} diff --git a/net-analyzer/netcat/patches/netcat-1.10.patchset b/net-analyzer/netcat/patches/netcat-1.10.patchset new file mode 100644 index 000000000..6169f6d1f --- /dev/null +++ b/net-analyzer/netcat/patches/netcat-1.10.patchset @@ -0,0 +1,175 @@ +From ea019e9659fb07d24ec113afdb264c235f1683be Mon Sep 17 00:00:00 2001 +From: Puck Meerburg +Date: Sat, 11 Jan 2014 10:56:27 +0100 +Subject: Add Haiku fixes + + +diff --git a/Makefile b/Makefile +index 99f2795..ce1ebe5 100644 +--- a/Makefile ++++ b/Makefile +@@ -69,6 +69,9 @@ aix: + linux: + make -e $(ALL) $(MFLAGS) XFLAGS='-DLINUX' STATIC=-static + ++haiku: ++ make -e $(ALL) $(MFLAGS) XFLAGS='-DHAIKU -lnetwork' STATIC=-static ++ + # irix 5.2, dunno 'bout earlier versions. If STATIC='-non_shared' doesn't + # work for you, null it out and yell at SGI for their STUPID default + # of apparently not installing /usr/lib/nonshared/*. Sheesh. +diff --git a/generic.h b/generic.h +index b3dd5f5..568e3b3 100644 +--- a/generic.h ++++ b/generic.h +@@ -42,6 +42,9 @@ + /* random() is generally considered better than rand() */ + #define HAVE_RANDOM + ++/* moved here to be able to turn it off per platform */ ++#define HAVE_BIND ++ + /* the srand48/lrand48/etc family is s'posedly even better */ + #define HAVE_RAND48 + /* bmc@telebase and others have suggested these macros if a box *does* have +@@ -360,6 +363,12 @@ There's a BIG swamp lurking where network code of any sort lives. + #undef HAVE_SELECT_X + #endif /* NeXTSTEP 3.2 motorola */ + ++/* Haiku contains this version of netcat by default, ++ and doesn't like res_init for some reason */ ++#ifdef HAIKU ++#undef HAVE_BIND ++#endif ++ + /* Make some "generic" assumptions if all else fails */ + #ifdef GENERIC + #undef HAVE_FLOCK +diff --git a/netcat.c b/netcat.c +index 3cab37d..37bc104 100644 +--- a/netcat.c ++++ b/netcat.c +@@ -31,7 +31,6 @@ + /* conditional includes -- a very messy section which you may have to dink + for your own architecture [and please send diffs...]: */ + /* #undef _POSIX_SOURCE /* might need this for something? */ +-#define HAVE_BIND /* ASSUMPTION -- seems to work everywhere! */ + #define HAVE_HELP /* undefine if you dont want the help text */ + /* #define ANAL /* if you want case-sensitive DNS matching */ + +@@ -158,6 +157,7 @@ USHORT o_random = 0; + USHORT o_udpmode = 0; + USHORT o_verbose = 0; + unsigned int o_wait = 0; ++unsigned int o_quittimeout = 0; + USHORT o_zero = 0; + /* o_tn in optional section */ + +@@ -170,6 +170,9 @@ USHORT o_zero = 0; + #define Debug(x) /* nil... */ + #endif + ++#ifdef HAVE_HELP ++void helpme(); ++#endif + + /* support routines -- the bulk of this thing. Placed in such an order that + we don't have to forward-declare anything: */ +@@ -224,6 +227,14 @@ void catch () + bail (" punt!"); + } + ++/* quitaftertimeout : ++ signal handler which quits after user given seconds after close of stdin */ ++void quitaftertimeout () ++{ ++ close(netfd); ++ exit(0); ++} ++ + /* timeout and other signal handling cruft */ + void tmtravel () + { +@@ -1171,15 +1182,19 @@ int readwrite (fd) + } /* select fuckup */ + /* if we have a timeout AND stdin is closed AND we haven't heard anything + from the net during that time, assume it's dead and close it too. */ +- if (rr == 0) { +- if (! FD_ISSET (0, ding1)) +- netretry--; /* we actually try a coupla times. */ +- if (! netretry) { +- if (o_verbose > 1) /* normally we don't care */ +- holler ("net timeout"); +- close (fd); +- return (0); /* not an error! */ ++/* we need this section if -q is not given, otherwise we don't quit if we ++ don't receive from net, we quit after timeout given with -q */ ++ if (o_quittimeout == 0) { ++ if (rr == 0) { ++ if (! FD_ISSET (0, ding1)) ++ netretry--; /* we actually try a coupla times. */ ++ if (! netretry) { ++ if (o_verbose > 1) /* normally we don't care */ ++ holler ("net timeout"); ++ close (fd); ++ return (0); /* not an error! */ + } ++ } + } /* select timeout */ + /* xxx: should we check the exception fds too? The read fds seem to give + us the right info, and none of the examples I found bothered. */ +@@ -1214,6 +1229,15 @@ Debug (("got %d from the net, errno %d", rr, errno)) + if (rr <= 0) { /* at end, or fukt, or ... */ + FD_CLR (0, ding1); /* disable and close stdin */ + close (0); ++ if (o_quittimeout > 0) { ++ if (o_verbose > 1) ++ fprintf (stderr, "STDIN closed, quit after %d seconds\n", o_quittimeout); ++ signal (SIGALRM, quitaftertimeout); ++ alarm (o_quittimeout); ++ // if -q argument is < 0 we don't trigger any signal and we also don't ++ // check for rr == 0 above, hence this is an infinite loop, essentially ++ // waiting forever on fd or net. ++ } + } else { + rzleft = rr; + zp = bigbuf_in; +@@ -1387,7 +1411,7 @@ main (argc, argv) + + /* If your shitbox doesn't have getopt, step into the nineties already. */ + /* optarg, optind = next-argv-component [i.e. flag arg]; optopt = last-char */ +- while ((x = getopt (argc, argv, "ae:g:G:hi:lno:p:rs:tuvw:z")) != EOF) { ++ while ((x = getopt (argc, argv, "ae:g:G:hi:lno:p:q:rs:tuvw:z")) != EOF) { + /* Debug (("in go: x now %c, optarg %x optind %d", x, optarg, optind)) */ + switch (x) { + case 'a': +@@ -1439,6 +1463,9 @@ main (argc, argv) + if (o_lport == 0) + bail ("invalid local port %s", optarg); + break; ++ case 'q': /* set the quit timeout */ ++ o_quittimeout = atoi(optarg); ++ break; + case 'r': /* randomize various things */ + o_random++; break; + case 's': /* local source address */ +@@ -1625,7 +1652,7 @@ Debug (("netfd %d from port %d to port %d", netfd, ourport, curport)) + #ifdef HAVE_HELP /* unless we wanna be *really* cryptic */ + /* helpme : + the obvious */ +-helpme() ++void helpme() + { + o_verbose = 1; + holler ("[v1.10]\n\ +@@ -1648,6 +1675,7 @@ options:"); + -n numeric-only IP addresses, no DNS\n\ + -o file hex dump of traffic\n\ + -p port local port number\n\ ++ -q timeout set timeout for connecting\n\ + -r randomize local and remote ports\n\ + -s addr local source address"); + #ifdef TELNET +-- +1.8.3.4 + diff --git a/net-dialup/minicom/minicom-2.6.2.recipe b/net-dialup/minicom/minicom-2.6.2.recipe new file mode 100644 index 000000000..2874f1726 --- /dev/null +++ b/net-dialup/minicom/minicom-2.6.2.recipe @@ -0,0 +1,60 @@ +SUMMARY="Minicom is a menu driven communications program." +DESCRIPTION=" +Minicom is a menu driven communications program. It emulates ANSI and VT102 \ +terminals. It has a dialing directory and auto zmodem download. +" +HOMEPAGE="https://alioth.debian.org/projects/minicom/" +SRC_URI="https://alioth.debian.org/frs/download.php/file/3869/minicom-2.6.2.tar.gz" +CHECKSUM_SHA256="f3cf215f7914ffa5528e398962176102ad74df27ba38958142f56aa6d15c9168" +COPYRIGHT=" + 1991,1992,1993,1994,1995,1996 Miquel van Smoorenburg." +LICENSE="GNU GPL v2" +REVISION="1" +ARCHITECTURES="x86 x86_64" +SECONDARY_ARCHITECTURES="x86" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi + +PROVIDES=" + minicom$secondaryArchSuffix = $portVersion + cmd:minicom$secondaryArchSuffix = $portVersion + cmd:xminicom$secondaryArchSuffix = $portVersion + cmd:ascii_xfr$secondaryArchSuffix = $portVersion + cmd:runscript$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libiconv$secondaryArchSuffix + lib:libncurses$secondaryArchSuffix + " + +BUILD_REQUIRES=" + devel:libiconv$secondaryArchSuffix + devel:libncurses$secondaryArchSuffix +" + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:autoconf + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + " + +BUILD() +{ + LOCKDIR=`finddir B_USER_SETTINGS_DIRECTORY`/serial + mkdir -p $LOCKDIR + CFLAGS="-DTIOCM_CAR=TIOCM_CD -lnetwork" runConfigure ./configure \ + --enable-lock-dir=$LOCKDIR + make $jobArgs +} + +INSTALL() +{ + make install +} diff --git a/net-dns/c_ares/c_ares-1.10.0.recipe b/net-dns/c_ares/c_ares-1.10.0.recipe new file mode 100644 index 000000000..59540d256 --- /dev/null +++ b/net-dns/c_ares/c_ares-1.10.0.recipe @@ -0,0 +1,86 @@ +SUMMARY="c-ares is a C library for asynchronous DNS requests" +DESCRIPTION=" +This is c-ares, an asynchronous resolver library. It is intended for \ +applications which need to perform DNS queries without blocking, or need to \ +perform multiple DNS queries in parallel. The primary examples of such \ +applications are servers which communicate with multiple clients and programs \ +with graphical user interfaces. +" +HOMEPAGE="http://c-ares.haxx.se/" +SRC_URI="http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gz" +CHECKSUM_SHA256="3d701674615d1158e56a59aaede7891f2dde3da0f46a6d3c684e0ae70f52d3db" +COPYRIGHT=" + 2004-2013 by Daniel Stenberg et al + 1998-2013 by the Massachusetts Institute of Technology + 1987-2001 The Regents of the University of California + 1996-2004 by Internet Software Consortium + 2009 by Jakub Hrozek + 2010 Jeremy Lal + 2012 Marko Kreen + 2005 Dominick Meglio" +LICENSE="MIT" +REVISION="2" +ARCHITECTURES="x86 x86_gcc2 x86_64" +SECONDARY_ARCHITECTURES="x86 x86_gcc2" + +SOURCE_DIR="c-ares-1.10.0" + +PROVIDES=" + c_ares$secondaryArchSuffix = $portVersion compat >= 1 + lib:libcares$secondaryArchSuffix = 2.1 compat >= 2 + " +if [ -z "$secondaryArchSuffix" ]; then + PROVIDES="$PROVIDES + cmd:ahost$secondaryArchSuffix = $portVersion compat >= 1 + cmd:adig$secondaryArchSuffix = $portVersion compat >= 1 + cmd:acountry$secondaryArchSuffix = $portVersion compat >= 1 + " +fi + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES="" + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:autoconf + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + " + +PATCHES="c_ares-1.10.0.patchset" + +PROVIDES_devel=" + c_ares${secondaryArchSuffix}_devel = $portVersion compat >= 1 + devel:libcares$secondaryArchSuffix = 2.1 compat >= 2 + " + +REQUIRES_devel=" + c_ares$secondaryArchSuffix == $portVersion + " + +BUILD() +{ + autoconf + runConfigure ./configure + make +} + +INSTALL() +{ + make install + prepareInstalledDevelLibs libcares + fixPkgconfig + packageEntries devel $developDir \ + $manDir/man3 + + if [ -z "$secondaryArchSuffix" ]; then + mkdir -p $binDir + cp -af .libs/ahost .libs/adig .libs/acountry $binDir + mkdir -p $manDir/man1 + cp -af ahost.1 adig.1 acountry.1 $manDir/man1 + fi +} diff --git a/net-dns/c_ares/patches/c_ares-1.10.0.patchset b/net-dns/c_ares/patches/c_ares-1.10.0.patchset new file mode 100644 index 000000000..7b3a159a6 --- /dev/null +++ b/net-dns/c_ares/patches/c_ares-1.10.0.patchset @@ -0,0 +1,68 @@ +From 0c1419ef8f9f44505eb183e8548d90542ddc7de1 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Wed, 30 Oct 2013 15:41:17 -0600 +Subject: applying patch c_ares-1.10.0.patch + + +diff --git a/ares.h b/ares.h +index 9b3f376..b871032 100644 +--- a/ares.h ++++ b/ares.h +@@ -38,7 +38,7 @@ + require it! */ + #if defined(_AIX) || defined(__NOVELL_LIBC__) || defined(__NetBSD__) || \ + defined(__minix) || defined(__SYMBIAN32__) || defined(__INTEGRITY) || \ +- defined(ANDROID) || defined(__ANDROID__) ++ defined(ANDROID) || defined(__ANDROID__) || defined(__HAIKU__) + #include + #endif + #if (defined(NETWARE) && !defined(__NOVELL_LIBC__)) +diff --git a/ares_private.h b/ares_private.h +index ab5be5a..b884fda 100644 +--- a/ares_private.h ++++ b/ares_private.h +@@ -65,6 +65,11 @@ + + #define PATH_HOSTS "InetDBase:Hosts" + ++#elif defined(__HAIKU__) ++ ++#define PATH_RESOLV_CONF "/boot/system/settings/network/resolv.conf" ++#define PATH_HOSTS "/boot/system/settings/network/hosts" ++ + #else + + #define PATH_RESOLV_CONF "/etc/resolv.conf" +-- +1.8.3.4 + + +From 3287466624c281088ae83001e96e9391d0f5b97d Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Wed, 30 Oct 2013 15:52:39 -0600 +Subject: Search for libnetwork + + +diff --git a/configure.ac b/configure.ac +index 5c02450..423ce64 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -222,6 +222,15 @@ then + ]) + fi + ++if test "$HAVE_GETHOSTBYNAME" != "1" ++then ++ dnl gethostbyname in the network lib? ++ AC_CHECK_LIB(network, gethostbyname, ++ [HAVE_GETHOSTBYNAME="1" ++ LIBS="$LIBS -lnetwork" ++ ]) ++fi ++ + dnl At least one system has been identified to require BOTH nsl and socket + dnl libs at the same time to link properly. + if test "$HAVE_GETHOSTBYNAME" != "1" +-- +1.8.3.4 + diff --git a/net-ftp/lftp/lftp-4.4.16.recipe b/net-ftp/lftp/lftp-4.4.16.recipe new file mode 100644 index 000000000..ad2406a01 --- /dev/null +++ b/net-ftp/lftp/lftp-4.4.16.recipe @@ -0,0 +1,114 @@ +SUMMARY="A sophisticated file transfer program with command line interface." +HOMEPAGE="http://lftp.yar.ru" +COPYRIGHT="1996-2012 by Alexander V. Lukyanov" +LICENSE="GNU GPL v3" +SRC_URI="http://lftp.yar.ru/ftp/lftp-$portVersion.tar.gz" +CHECKSUM_SHA256="441f472f9d3f13b0861fbf3e45f5d08d8cf999d2229b4ee446815d52ad673bf2" +REVISION="1" +ARCHITECTURES="!x86_gcc2 x86 x86_64 arm" + +PATCHES="lftp-$portVersion.patchset" + +GLOBAL_WRITABLE_FILES=" + settings/lftp.conf keep-old +" + +PROVIDES=" + lftp = $portVersion + lib:liblftp_jobs$secondaryArchSuffix = 0.0.0 compat >= 0 + lib:liblftp_tasks$secondaryArchSuffix = 0.0.0 compat >= 0 + " + +if [ -z "$secondaryArchSuffix" ]; then + PROVIDES="$PROVIDES + cmd:lftp = $portVersion compat >= 4 + cmd:lftpget = $portVersion compat >= 4 + " +fi + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + ca_root_certificates + lib:libreadline$secondaryArchSuffix + lib:libcrypto$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libreadline$secondaryArchSuffix + devel:libcrypto$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:autoconf + cmd:automake + cmd:aclocal + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:make + cmd:find + cmd:pkg_config + cmd:sed + " + +PATCH() +{ + sed -i configure.ac -e 's|^AM_CONFIG_HEADER|AC_CONFIG_HEADERS|g' +} + +BUILD() +{ + libtoolize --force --copy --install + aclocal -I m4 + autoconf + automake + runConfigure ./configure --with-openssl --enable-static \ + --with-modules + make $jobArgs +} + +INSTALL() +{ + make install + + # prepare develop/lib + prepareInstalledDevelLibs liblftp-jobs liblftp-tasks + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir + + # Remove stuff we don't need in the secondary architecture base package. + if [ -n "$secondaryArchSuffix" ]; then + rm -rf $binDir + rm -rf $documentationDir + fi +} + +TEST() +{ + make check +} + +DESCRIPTION=" +lftp is sophisticated file transfer program with command line interface. It \ +supports FTP, HTTP, FISH, SFTP and FILE (local FS) protocols. GNU Readline \ +library is used for input. BitTorrent protocol is supported as built-in \ +torrent command. +Low level stuff supported: ftp proxy, http proxy, ftp over http, opie/skey, \ +fxp transfers, automatic retrying on non-fatal errors and timeouts, ipv6, \ +socks, http/1.1, sftp v3-v6. +" + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + lftp${secondaryArchSuffix}_devel = $portVersion + devel:liblftp_jobs$secondaryArchSuffix = 0.0.0 compat >= 0 + devel:liblftp_tasks$secondaryArchSuffix = 0.0.0 compat >= 0 + " +REQUIRES_devel=" + lftp$secondaryArchSuffix == $portVersion base + " diff --git a/net-ftp/lftp/patches/lftp-4.4.16.patchset b/net-ftp/lftp/patches/lftp-4.4.16.patchset new file mode 100644 index 000000000..a2c5d76fb --- /dev/null +++ b/net-ftp/lftp/patches/lftp-4.4.16.patchset @@ -0,0 +1,22 @@ +From 5ade774564ec60f247d60adbd39c2f94c6164fff Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Sat, 17 May 2014 13:38:15 +0000 +Subject: gcc2 fix + + +diff --git a/lib/gl_openssl.h b/lib/gl_openssl.h +index 2414421..014769d 100644 +--- a/lib/gl_openssl.h ++++ b/lib/gl_openssl.h +@@ -95,7 +95,7 @@ GL_CRYPTO_FN (_finish_ctx) (struct _gl_ctx *ctx, void *res) + + GL_OPENSSL_INLINE void * + GL_CRYPTO_FN (_buffer) (const char *buf, size_t len, void *res) +-{ return OPENSSL_FN () ((const unsigned char *) buf, len, (unsigned char *) res); } ++{ return OPENSSL_FN ( ) ((const unsigned char *) buf, len, (unsigned char *) res); } + + GL_OPENSSL_INLINE void * + GL_CRYPTO_FN (_read_ctx) (const struct _gl_ctx *ctx, void *res) +-- +1.8.3.4 + diff --git a/net-irc/quassel/quassel-0.10.0.recipe b/net-irc/quassel/quassel-0.10.0.recipe new file mode 100644 index 000000000..7ff786c32 --- /dev/null +++ b/net-irc/quassel/quassel-0.10.0.recipe @@ -0,0 +1,99 @@ +SUMMARY="Quassel IRC." +DESCRIPTION=" +Quassel IRC is a modern, cross-platform, distributed IRC client, +meaning that one (or multiple) client(s) can attach to and detach +from a central core -- much like the popular combination of screen +and a text-based IRC client such as WeeChat, but graphical. In +addition to this unique feature, we aim to bring a pleasurable, +comfortable chatting experience to all major platforms (including +Linux, Windows, and MacOS X as well as Android smartphones), making +communication with your peers not only convenient, but also +ubiquitous available. + " +HOMEPAGE="http://quassel-irc.org" +SRC_URI="http://quassel-irc.org/pub/quassel-0.10.0.tar.bz2" +CHECKSUM_MD5="382466a7790979c172b7d7edf10a2981" +REVISION="1" +LICENSE=" + GNU GPL v2 + GNU GPL v3 + " +COPYRIGHT="2005-2014, the Quassel IRC Team" + +ARCHITECTURES="x86" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi + +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + quassel${secondaryArchSuffix} = $portVersion + cmd:quassel${secondaryArchSuffix} + cmd:quasselcore${secondaryArchSuffix} + cmd:quasselclient${secondaryArchSuffix} + " + +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + qtcore${secondaryArchSuffix} >= 4.8 + " + +PATCHES=" + quassel-0.9.2.patchset + " + +BUILD_PREREQUIRES=" + cmd:cmake + cmd:g++${secondaryArchSuffix} + cmd:make + cmd:pkg_config + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + qtcore${secondaryArchSuffix}_devel >= 4.8 + " + +BUILD() +{ + mkdir -p build + cd build + cmake -DCMAKE_INSTALL_PREFIX=$prefix -DCMAKE_C_COMPILER="gcc" -DCMAKE_CXX_COMPILER="g++" .. + make +} + +INSTALL() +{ + cd build + + # Optional: strip the binaries before installing. + # To be updated/removed whenever resources are added. + echo "Stripping binaries ..." + strip quassel + strip quasselcore + strip quasselclient + + # Add Haiku resources. + xres -o quassel ../Haiku/Quassel.rsrc + xres -o quasselclient ../Haiku/Quassel.rsrc + xres -o quasselcore ../Haiku/Quassel.rsrc + mimeset -f quassel + mimeset -f quasselclient + mimeset -f quasselcore + + echo "Copying binaries to ${appsDir} ..." + mkdir -p ${appsDir}/Quassel + cp quassel ${appsDir}/Quassel + cp quasselcore ${appsDir}/Quassel + cp quasselclient ${appsDir}/Quassel + + DIR_QUASSEL_DESKBAR="${dataDir}/deskbar/menu/Applications/Quassel" + mkdir -p ${DIR_QUASSEL_DESKBAR} + echo "Making links for Deskbar in ${DIR_QUASSEL_DESKBAR} ..." + addAppDeskbarSymlink ${appsDir}/Quassel/quassel "Quassel/Quassel" + addAppDeskbarSymlink ${appsDir}/Quassel/quasselcore "Quassel/Quassel Core" + addAppDeskbarSymlink ${appsDir}/Quassel/quasselclient "Quassel/Quassel Client" +} diff --git a/net-irc/quassel/quassel-0.9.2.recipe b/net-irc/quassel/quassel-0.9.2.recipe new file mode 100644 index 000000000..a3725e308 --- /dev/null +++ b/net-irc/quassel/quassel-0.9.2.recipe @@ -0,0 +1,92 @@ +SUMMARY="Quassel IRC." +DESCRIPTION=" +Quassel IRC is a modern, cross-platform, distributed IRC client, meaning that \ +one (or multiple) client(s) can attach to and detach from a central core -- \ +much like the popular combination of screen and a text-based IRC client such \ +as WeeChat, but graphical. In addition to this unique feature, we aim to bring \ +a pleasurable, comfortable chatting experience to all major platforms \ +(including Linux, Windows, and MacOS X as well as Android smartphones), making \ +communication with your peers not only convenient, but also ubiquitous \ +available. +" +HOMEPAGE="http://quassel-irc.org" +SRC_URI="http://quassel-irc.org/pub/quassel-0.9.2.tar.bz2" +CHECKSUM_SHA256="f04d01602509c1d950602502e5f51aba47d99c73a9c70e77c563bb7749fc53c0" +REVISION="2" +LICENSE=" + GNU GPL v2 + GNU GPL v3 + " +COPYRIGHT="2005-2009, the Quassel IRC Team" + +ARCHITECTURES="x86" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi + +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + quassel${secondaryArchSuffix} = $portVersion + cmd:quassel${secondaryArchSuffix} + cmd:quasselcore${secondaryArchSuffix} + cmd:quasselclient${secondaryArchSuffix} + " + +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + lib:libQtCore$secondaryArchSuffix >= 4.8 + lib:libQtGui$secondaryArchSuffix >= 4.8 + " + +BUILD_PREREQUIRES=" + cmd:cmake + cmd:g++${secondaryArchSuffix} + cmd:make + cmd:qmake$secondaryArchSuffix + cmd:moc$secondaryArchSuffix + cmd:pkg_config + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libQtCore$secondaryArchSuffix >= 4.8 + devel:libQtGui$secondaryArchSuffix >= 4.8 + " + +BUILD() +{ + mkdir -p build + cd build + cmake -DCMAKE_INSTALL_PREFIX=$prefix \ + -DCMAKE_C_COMPILER="gcc" -DCMAKE_CXX_COMPILER="g++" \ + -DCMAKE_BUILD_TYPE=Release .. + make $jobArgs +} + +INSTALL() +{ + cd build + + # Optional: strip the binaries before installing. + # To be updated/removed whenever resources are added. + echo "Stripping binaries ..." + strip quassel + strip quasselcore + strip quasselclient + + echo "Copying binaries to ${appsDir} ..." + mkdir -p ${appsDir}/Quassel + cp quassel ${appsDir}/Quassel + cp quasselcore ${appsDir}/Quassel + cp quasselclient ${appsDir}/Quassel + + DIR_QUASSEL_DESKBAR="${dataDir}/deskbar/menu/Applications/Quassel" + mkdir -p ${DIR_QUASSEL_DESKBAR} + echo "Making links for Deskbar in ${DIR_QUASSEL_DESKBAR} ..." + addAppDeskbarSymlink ${appsDir}/Quassel/quassel "Quassel/Quassel" + addAppDeskbarSymlink ${appsDir}/Quassel/quasselcore "Quassel/Quassel Core" + addAppDeskbarSymlink ${appsDir}/Quassel/quasselclient "Quassel/Quassel Client" +} diff --git a/net-libs/enet/enet-1.3.0.recipe b/net-libs/enet/enet-1.3.0.recipe index 4d50c2c85..f6240277b 100644 --- a/net-libs/enet/enet-1.3.0.recipe +++ b/net-libs/enet/enet-1.3.0.recipe @@ -1,24 +1,76 @@ -DESCRIPTION="enet" +SUMMARY="ENet is simple and robust network communication layer." +DESCRIPTION=" +ENet's purpose is to provide a relatively thin, simple and robust network \ +communication layer on top of UDP (User Datagram Protocol). The primary \ +feature it provides is optional reliable, in-order delivery of packets. +ENet omits certain higher level networking features such as authentication, \ +lobbying, server discovery, encryption, or other similar tasks that are \ +particularly application specific so that the library remains flexible, \ +portable, and easily embeddable. +" HOMEPAGE="http://enet.bespin.org" SRC_URI="http://enet.bespin.org/download/enet-1.3.0.tar.gz" -CHECKSUM_MD5="3ea50cc5f2f4bbea32abae0d50b64e3c" +CHECKSUM_SHA256="200c271b218979db3bce6d9e60659d3f35a52d698c4972f20eb91a52f0d8d62c" +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="?x86_gcc2 ?x86" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" + +LICENSE="MIT" +COPYRIGHT="2002-2010 Lee Salzman" + +PROVIDES=" + enet$secondaryArchSuffix = $portVersion compat >= 1.0.0 + lib:libenet$secondaryArchSuffix = $portVersion compat >= 1.0.0 + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:aclocal + cmd:autoreconf + cmd:libtoolize + cmd:make + cmd:sed + " BUILD() { - cd enet-1.3.0 libtoolize --force --copy --install autoreconf -i - ./configure --prefix=`finddir B_COMMON_DIRECTORY` + runConfigure ./configure } INSTALL() { - cd enet-1.3.0 make install + prepareInstalledDevelLibs libenet + + # devel package + packageEntries devel \ + $developDir + + # Remove stuff we don't need in the secondary architecture base package. + if [ -n "$secondaryArchSuffix" ]; then + rm -rf $binDir + rm -rf $documentationDir + fi } -LICENSE="MIT" -COPYRIGHT="2002-2010 Lee Salzman" + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + enet${secondaryArchSuffix}_devel = $portVersion + devel:libenet$secondaryArchSuffix = $portVersion + " + +REQUIRES_devel=" + enet$secondaryArchSuffix == $portVersion base + " diff --git a/net-libs/gloox/gloox-1.0.9.recipe b/net-libs/gloox/gloox-1.0.9.recipe new file mode 100644 index 000000000..161170ba2 --- /dev/null +++ b/net-libs/gloox/gloox-1.0.9.recipe @@ -0,0 +1,80 @@ +SUMMARY="Full-featured Jabber/XMPP client library" +DESCRIPTION=" +Rock-solid, full-featured Jabber/XMPP client library, written in clean ANSI C++. +" +HOMEPAGE="http://camaya.net/gloox/" +LICENSE="GNU GPL v2" +COPYRIGHT="2002-2012 Jakob Schröter" +SRC_URI="http://camaya.net/download/gloox-1.0.9.tar.bz2" +CHECKSUM_SHA256="143dd50e1edc4eb1d304fa28bdd6ab9e53b60c37c1726dd0e34c06c51f9a453e" +REVISION="1" +ARCHITECTURES="x86 ?x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="!x86_gcc2 x86" +PATCHES="gloox-1.0.9.patch" + +PROVIDES=" + gloox$secondaryArchSuffix = $portVersion + lib:libgloox$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libssl$secondaryArchSuffix + lib:libcrypto$secondaryArchSuffix + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libssl$secondaryArchSuffix + devel:libcrypto$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:make + cmd:libtoolize + cmd:aclocal + cmd:autoconf + cmd:automake + " +BUILD() +{ + libtoolize --force --copy --install + aclocal + autoconf + automake + runConfigure ./configure + make +} + +INSTALL() +{ + make install + + # prepare development lib links + prepareInstalledDevelLib libgloox + + # devel package + packageEntries devel $developDir +} + +TEST() +{ + make check +} + + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + gloox${secondaryArchSuffix}_devel = $portVersion + devel:libgloox$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + gloox$secondaryArchSuffix == $portVersion base + " diff --git a/net-libs/gloox/patches/gloox-1.0.9.patch b/net-libs/gloox/patches/gloox-1.0.9.patch new file mode 100644 index 000000000..efa188d33 --- /dev/null +++ b/net-libs/gloox/patches/gloox-1.0.9.patch @@ -0,0 +1,90 @@ +diff --git a/configure.ac b/configure.ac +index 402c399..20555ba 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -7,7 +7,7 @@ AC_CONFIG_SRCDIR(src/gloox.cpp) + AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) + + dnl create a config.h file (Automake will add -DHAVE_CONFIG_H) +-AM_CONFIG_HEADER(config.h.unix) ++AC_CONFIG_HEADER(config.h.unix) + + AC_SUBST(VERSION) + +@@ -326,8 +326,8 @@ AC_MSG_RESULT($getaddrinfo) + + dnl Checks for header files. + AC_HEADER_STDC +-AC_CHECK_HEADERS(unistd.h strings.h errno.h arpa/nameser.h) +-AC_CHECK_FUNCS(setsockopt,,[AC_CHECK_LIB(socket,setsockopt)]) ++AC_CHECK_HEADERS(unistd.h wchar.h string.h cstring.h strings.h errno.h arpa/nameser.h) ++AC_CHECK_FUNCS(setsockopt,,[AC_CHECK_LIB(network,setsockopt)]) + + dnl Checks for typedefs, structures, and compiler characteristics. + AC_C_CONST +diff --git a/src/connectiontcpbase.cpp b/src/connectiontcpbase.cpp +index 2da70c0..b28f8e8 100644 +--- a/src/connectiontcpbase.cpp ++++ b/src/connectiontcpbase.cpp +@@ -10,7 +10,17 @@ + This software is distributed without any warranty. + */ + ++#if defined HAVE_STRING_H ++#include ++#endif ++ ++#if defined HAVE_WCHAR_H ++#include ++#endif + ++#if __GNUC__ > 3 ++#include ++#endif + + #include "gloox.h" + +diff --git a/src/connectiontcpserver.cpp b/src/connectiontcpserver.cpp +index 68c8f7b..236ce8e 100644 +--- a/src/connectiontcpserver.cpp ++++ b/src/connectiontcpserver.cpp +@@ -10,7 +10,17 @@ + This software is distributed without any warranty. + */ + ++#if defined HAVE_STRING_H ++#include ++#endif ++ ++#if defined HAVE_WCHAR_H ++#include ++#endif + ++#if __GNUC__ > 3 ++#include ++#endif + + #include "gloox.h" + +diff --git a/src/dns.cpp b/src/dns.cpp +index fd72c57..e03d99a 100644 +--- a/src/dns.cpp ++++ b/src/dns.cpp +@@ -10,6 +10,17 @@ + This software is distributed without any warranty. + */ + ++#if defined HAVE_STRING_H ++#include ++#endif ++ ++#if defined HAVE_WCHAR_H ++#include ++#endif ++ ++#if __GNUC__ > 3 ++#include ++#endif + + #include "config.h" + diff --git a/net-libs/hubbub/hubbub-0.2.0_HEAD.recipe b/net-libs/hubbub/hubbub-0.2.0_HEAD.recipe index 949484858..933be4ec9 100644 --- a/net-libs/hubbub/hubbub-0.2.0_HEAD.recipe +++ b/net-libs/hubbub/hubbub-0.2.0_HEAD.recipe @@ -5,12 +5,14 @@ REVISION="1" STATUS_HAIKU="stable" DEPENDS="dev-util/buildsystem >= 0.0.1" -BUILD { +BUILD() +{ cd hubbub-0.2.0-HEAD make PREFIX=/boot/common } -INSTALL { +INSTALL() +{ cd hubbub-0.2.0-HEAD make install PREFIX=/boot/common } diff --git a/net-libs/libdom/libdom-0.0.1_HEAD.recipe b/net-libs/libdom/libdom-0.0.1_HEAD.recipe index f114cd6c2..b67298668 100644 --- a/net-libs/libdom/libdom-0.0.1_HEAD.recipe +++ b/net-libs/libdom/libdom-0.0.1_HEAD.recipe @@ -5,12 +5,14 @@ REVISION="1" STATUS_HAIKU="stable" DEPEND="net-libs/hubbub >= 0.2.0-HEAD" -BUILD { +BUILD() +{ cd libdom-0.0.1-HEAD make PREFIX=/boot/common } -INSTALL { +INSTALL() +{ cd libdom-0.0.1-HEAD make install PREFIX=/boot/common } diff --git a/net-libs/libyahoo2/libyahoo2-1.0.1.recipe b/net-libs/libyahoo2/libyahoo2-1.0.1.recipe index 5ffba2e85..5dc193452 100644 --- a/net-libs/libyahoo2/libyahoo2-1.0.1.recipe +++ b/net-libs/libyahoo2/libyahoo2-1.0.1.recipe @@ -1,4 +1,6 @@ -DESCRIPTION="libyahoo2 - A C library for Yahoo! Messenger" +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" diff --git a/net-misc/axel/axel-2.4.recipe b/net-misc/axel/axel-2.4.recipe index 367d54498..51f909eed 100644 --- a/net-misc/axel/axel-2.4.recipe +++ b/net-misc/axel/axel-2.4.recipe @@ -1,21 +1,48 @@ -DESCRIPTION="axel - Light Unix download accelerator" -HOMEPAGE="http://axel.alioth.debian.org/" -SRC_URI="http://alioth.debian.org/frs/download.php/3015/axel-2.4.tar.gz" -CHECKSUM_MD5="a2a762fce0c96781965c8f9786a3d09d" +SUMMARY="Light Unix download accelerator" +DESCRIPTION=" +Axel tries to accelerate HTTP/FTP downloading process by using multiple \ +connections for one file. It can use multiple mirrors for a download. Axel has \ +no dependencies and is lightweight, so it might be useful as a wget clone on \ +byte-critical systems. +" +HOMEPAGE="http://axel.alioth.debian.org/" +SRC_URI="http://pkgs.fedoraproject.org/repo/pkgs/axel/axel-2.4.tar.gz/a2a762fce0c96781965c8f9786a3d09d/axel-2.4.tar.gz" +CHECKSUM_SHA256="359a57ab4e354bcb6075430d977c59d33eb3e2f1415a811948fa8ae657ca8036" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" +LICENSE="GNU GPL v2" +COPYRIGHT="2001 Wilmer van der Gaast." + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + axel = $portVersion + cmd:axel = $portVersion +" + +REQUIRES=" + haiku >= $haikuVersion +" + +BUILD_REQUIRES=" +" + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:gcc + cmd:make +" + +PATCHES=" + axel-2.4.patch +" + BUILD() { - cd axel-2.4 - ./configure --prefix=`finddir B_COMMON_DIRECTORY` --i18n=0 + ./configure --i18n=0 make } INSTALL() { - cd axel-2.4 make install DESTDIR="${DESTDIR}" } -LICENSE="GNU GPL v2" -COPYRIGHT="2001 Wilmer van der Gaast." diff --git a/net-misc/berdp/berdp-1.recipe b/net-misc/berdp/berdp-1.recipe new file mode 100644 index 000000000..22d6203a1 --- /dev/null +++ b/net-misc/berdp/berdp-1.recipe @@ -0,0 +1,50 @@ +SUMMARY="BeRDP is a project dedicated to bringing the RDP protocol to the BeOS" +DESCRIPTION=" +BeRDP is a project dedicated to bringing the RDP protocol to the BeOS platform \ +utilizing the rdesktop project. RDP is a protocol designed by Microsoft to \ +remotely administer / run a session on Windows 2000/2003 Servers / Windows XP \ +Professional workstations. +" +HOMEPAGE="https://github.com/HaikuArchives/BeRDP/" +SRC_URI="git+https://github.com/HaikuArchives/BeRDP.git#8d73363b567361a5f14bf36173bf68f01260013a" +COPYRIGHT="2003-2004 Sikos" +LICENSE="BSD (4-clause)" +REVISION="1" +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + berdp = $portVersion + app:BeRDP = $portVersion + " + +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc + cmd:make + cmd:mkdepend + " + + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +REQUIRES=" + haiku >= $haikuVersion + cmd:rdesktop + " + + +BUILD() +{ + cd Source + make +} + +INSTALL() +{ + mkdir -p $appsDir/BeRDP + objDir=Source/objects.$(echo $buildArchitecture|sed -r s/_/-/g)-release + cp $objDir/BeRDP $appsDir/BeRDP + addAppDeskbarSymlink $appsDir/BeRDP/BeRDP +} diff --git a/net-misc/curl/curl-7.26.0.recipe b/net-misc/curl/curl-7.26.0.recipe index f7c24844c..118a6c17a 100644 --- a/net-misc/curl/curl-7.26.0.recipe +++ b/net-misc/curl/curl-7.26.0.recipe @@ -3,7 +3,7 @@ HOMEPAGE="http://curl.haxx.se" COPYRIGHT="1996-2012, Daniel Stenberg, . All rights reserved." LICENSE="Curl" SRC_URI="http://curl.haxx.se/download/curl-7.26.0.tar.bz2" -CHECKSUM_MD5="bfa80f01b3d300359cfb4d409b6136a3" +CHECKSUM_SHA256="fced262f16eb6bfcdcea15e04a7905ffcb5ff04b14a19ca35b9df86d6720d26a" REVISION="5" ARCHITECTURES="x86_gcc2 x86 x86_64" SECONDARY_ARCHITECTURES="x86_gcc2 x86" @@ -94,14 +94,14 @@ TEST() } DESCRIPTION=" - Curl is a command line tool for transferring data with URL syntax, - supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, - LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. - curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, - HTTP form based upload, proxies, cookies, user+password authentication - (Basic, Digest, NTLM, Negotiate, kerberos...), file transfer resume, - proxy tunneling and a busload of other useful tricks. - " +Curl is a command line tool for transferring data with URL syntax, supporting \ +DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, \ +POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. curl supports SSL \ +certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, \ +proxies, cookies, user+password authentication (Basic, Digest, NTLM, \ +Negotiate, kerberos...), file transfer resume, proxy tunneling and a busload \ +of other useful tricks. +" # ----- devel package ------------------------------------------------------- diff --git a/net-misc/curl/curl-7.32.0.recipe b/net-misc/curl/curl-7.32.0.recipe index bf40b05b3..d6f22e2d5 100644 --- a/net-misc/curl/curl-7.32.0.recipe +++ b/net-misc/curl/curl-7.32.0.recipe @@ -3,7 +3,7 @@ HOMEPAGE="http://curl.haxx.se" COPYRIGHT="1996-2013, Daniel Stenberg, . All rights reserved." LICENSE="Curl" SRC_URI="http://curl.haxx.se/download/curl-7.32.0.tar.bz2" -CHECKSUM_MD5="30d04b0a8c43c6770039d1bf033dfe79" +CHECKSUM_SHA256="8e3db42548e01407cb2f1407660c0f528b89ec7afda6264442fc2b229b95223b" REVISION="1" ARCHITECTURES="?x86_gcc2 ?x86" SECONDARY_ARCHITECTURES="?x86_gcc2 ?x86" @@ -94,14 +94,14 @@ TEST() } DESCRIPTION=" - Curl is a command line tool for transferring data with URL syntax, - supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, - LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. - curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, - HTTP form based upload, proxies, cookies, user+password authentication - (Basic, Digest, NTLM, Negotiate, kerberos...), file transfer resume, - proxy tunneling and a busload of other useful tricks. - " +Curl is a command line tool for transferring data with URL syntax, supporting \ +DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, \ +POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. curl supports SSL \ +certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, \ +proxies, cookies, user+password authentication (Basic, Digest, NTLM, \ +Negotiate, kerberos...), file transfer resume, proxy tunneling and a busload \ +of other useful tricks. +" # ----- devel package ------------------------------------------------------- diff --git a/net-misc/curl/curl-7.33.0.recipe b/net-misc/curl/curl-7.33.0.recipe index 52c364ca9..9de062176 100644 --- a/net-misc/curl/curl-7.33.0.recipe +++ b/net-misc/curl/curl-7.33.0.recipe @@ -3,7 +3,7 @@ HOMEPAGE="http://curl.haxx.se" COPYRIGHT="1996-2013, Daniel Stenberg, . All rights reserved." LICENSE="Curl" SRC_URI="http://curl.haxx.se/download/curl-7.33.0.tar.bz2" -CHECKSUM_MD5="57409d6bf0bd97053b8378dbe0cadcef" +CHECKSUM_SHA256="0afde4cd949e2658eddc3cda675b19b165eea1af48ac5f3e1ec160792255d1b3" REVISION="1" ARCHITECTURES="?x86_gcc2 ?x86" SECONDARY_ARCHITECTURES="?x86_gcc2 ?x86" @@ -94,14 +94,14 @@ TEST() } DESCRIPTION=" - Curl is a command line tool for transferring data with URL syntax, - supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, - LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. - curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, - HTTP form based upload, proxies, cookies, user+password authentication - (Basic, Digest, NTLM, Negotiate, kerberos...), file transfer resume, - proxy tunneling and a busload of other useful tricks. - " +Curl is a command line tool for transferring data with URL syntax, supporting \ +DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, \ +POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. curl supports SSL \ +certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, \ +proxies, cookies, user+password authentication (Basic, Digest, NTLM, \ +Negotiate, kerberos...), file transfer resume, proxy tunneling and a busload \ +of other useful tricks. +" # ----- devel package ------------------------------------------------------- diff --git a/net-misc/curl/curl-7.35.0.recipe b/net-misc/curl/curl-7.35.0.recipe new file mode 100644 index 000000000..ed0c3cfa5 --- /dev/null +++ b/net-misc/curl/curl-7.35.0.recipe @@ -0,0 +1,115 @@ +SUMMARY="A commandline-tool and library for downloading data from URLs" +HOMEPAGE="http://curl.haxx.se" +COPYRIGHT="1996-2014, Daniel Stenberg, . All rights reserved." +LICENSE="Curl" +SRC_URI="http://curl.haxx.se/download/curl-7.35.0.tar.bz2" +CHECKSUM_SHA256="d774d1701454f1b7d331c2075fc4f6dd972bddc2d171f43645ef3647c7fc0d83" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PATCHES="" + +PROVIDES=" + curl$secondaryArchSuffix = $portVersion + lib:libcurl$secondaryArchSuffix = 4.2.0 compat >= 4 + " +if [ -z "$secondaryArchSuffix" ]; then + PROVIDES="$PROVIDES + cmd:curl = $portVersion compat >= 7.16 + " +fi + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + ca_root_certificates + lib:libssl$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libssl$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:autoconf + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:make + " + +BUILD() +{ + certsInstallDir="$portPackageLinksDir/ca_root_certificates" + certsDir="$certsInstallDir/$relativeDataRootDir/ssl" + + libtoolize --force --copy --install + autoconf + runConfigure ./configure \ + --enable-ipv6 \ + --with-ca-bundle="$certsDir/CARootCertificates.pem" + make $jobArgs +} + +INSTALL() +{ + make install + + # prepare develop/lib + prepareInstalledDevelLibs libcurl + fixPkgconfig + + # fix curl-config + fixDevelopLibDirReferences $binDir/curl-config + sed -i -e "s,--libexecdir=$developLibDir,--libexecdir=$libExecDir,g" \ + -e "s,--libdir=$developLibDir,--libdir=$libDir,g" $binDir/curl-config + + # install html documentation for curl + mkdir -p "$docDir" + install -c -m 644 "docs/curl.html" "$docDir" + + # install html development documentation for libcurl + mkdir -p "$developDocDir" + for h in docs/libcurl/*.html; do + install -c -m 644 "$h" "$developDocDir" + done + + # devel package + packageEntries devel \ + $binDir/curl-config \ + $developDir \ + $manDir/man3 + + # Remove stuff we don't need in the secondary architecture base package. + if [ -n "$secondaryArchSuffix" ]; then + rm -rf $binDir + rm -rf $documentationDir + fi +} + +TEST() +{ + make check +} + +DESCRIPTION=" +Curl is a command line tool for transferring data with URL syntax, supporting \ +DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, \ +POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. curl supports SSL \ +certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, \ +proxies, cookies, user+password authentication (Basic, Digest, NTLM, \ +Negotiate, kerberos...), file transfer resume, proxy tunneling and a busload \ +of other useful tricks. +" + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + curl${secondaryArchSuffix}_devel = $portVersion + cmd:curl_config$secondaryArchSuffix = $portVersion compat >= 7.16 + devel:libcurl$secondaryArchSuffix = 4.2.0 compat >= 4 + " +REQUIRES_devel=" + curl$secondaryArchSuffix == $portVersion base + " diff --git a/net-misc/curl/curl-7.36.0.recipe b/net-misc/curl/curl-7.36.0.recipe new file mode 100644 index 000000000..423d98cab --- /dev/null +++ b/net-misc/curl/curl-7.36.0.recipe @@ -0,0 +1,116 @@ +SUMMARY="A commandline-tool and library for downloading data from URLs" +HOMEPAGE="http://curl.haxx.se" +COPYRIGHT="1996-2014, Daniel Stenberg, . All rights reserved." +LICENSE="Curl" +SRC_URI="http://curl.haxx.se/download/curl-7.36.0.tar.bz2" +CHECKSUM_SHA256="1fbe82b89bcd6b7ccda8cb0ff076edc60e911595030e27689f4abd5ef7f3cfcd" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PATCHES="" + +PROVIDES=" + curl$secondaryArchSuffix = $portVersion + lib:libcurl$secondaryArchSuffix = 4.2.0 compat >= 4 + " +if [ -z "$secondaryArchSuffix" ]; then + PROVIDES="$PROVIDES + cmd:curl = $portVersion compat >= 7.16 + " +fi + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + ca_root_certificates + lib:libssl$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libssl$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:autoconf + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:make + cmd:nroff + " + +BUILD() +{ + certsInstallDir="$portPackageLinksDir/ca_root_certificates" + certsDir="$certsInstallDir/$relativeDataRootDir/ssl" + + libtoolize --force --copy --install + autoconf + runConfigure ./configure \ + --enable-ipv6 --enable-manual \ + --with-ca-bundle="$certsDir/CARootCertificates.pem" + make $jobArgs +} + +INSTALL() +{ + make install + + # prepare develop/lib + prepareInstalledDevelLibs libcurl + fixPkgconfig + + # fix curl-config + fixDevelopLibDirReferences $binDir/curl-config + sed -i -e "s,--libexecdir=$developLibDir,--libexecdir=$libExecDir,g" \ + -e "s,--libdir=$developLibDir,--libdir=$libDir,g" $binDir/curl-config + + # install html documentation for curl + mkdir -p "$docDir" + install -c -m 644 "docs/curl.html" "$docDir" + + # install html development documentation for libcurl + mkdir -p "$developDocDir" + for h in docs/libcurl/*.html; do + install -c -m 644 "$h" "$developDocDir" + done + + # devel package + packageEntries devel \ + $binDir/curl-config \ + $developDir \ + $manDir/man3 + + # Remove stuff we don't need in the secondary architecture base package. + if [ -n "$secondaryArchSuffix" ]; then + rm -rf $binDir + rm -rf $documentationDir + fi +} + +TEST() +{ + make check +} + +DESCRIPTION=" +Curl is a command line tool for transferring data with URL syntax, supporting \ +DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, \ +POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. curl supports SSL \ +certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, \ +proxies, cookies, user+password authentication (Basic, Digest, NTLM, \ +Negotiate, kerberos...), file transfer resume, proxy tunneling and a busload \ +of other useful tricks. +" + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + curl${secondaryArchSuffix}_devel = $portVersion + cmd:curl_config$secondaryArchSuffix = $portVersion compat >= 7.16 + devel:libcurl$secondaryArchSuffix = 4.2.0 compat >= 4 + " +REQUIRES_devel=" + curl$secondaryArchSuffix == $portVersion base + " diff --git a/net-misc/curl/curl-7.37.0.recipe b/net-misc/curl/curl-7.37.0.recipe new file mode 100644 index 000000000..b5aac30f6 --- /dev/null +++ b/net-misc/curl/curl-7.37.0.recipe @@ -0,0 +1,116 @@ +SUMMARY="A commandline-tool and library for downloading data from URLs" +HOMEPAGE="http://curl.haxx.se" +COPYRIGHT="1996-2014, Daniel Stenberg, . All rights reserved." +LICENSE="Curl" +SRC_URI="http://curl.haxx.se/download/$portVersionedName.tar.bz2" +CHECKSUM_SHA256="24502492de3168b0556d8e1a06f14f7589e57b204917d602a572e14239b3e09e" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PATCHES="" + +PROVIDES=" + curl$secondaryArchSuffix = $portVersion + lib:libcurl$secondaryArchSuffix = 4.2.0 compat >= 4 + " +if [ -z "$secondaryArchSuffix" ]; then + PROVIDES="$PROVIDES + cmd:curl = $portVersion compat >= 7.16 + " +fi + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + ca_root_certificates + lib:libssl$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " +BUILD_REQUIRES=" + devel:libssl$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:autoconf + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:make + cmd:nroff + " + +BUILD() +{ + certsInstallDir="$portPackageLinksDir/ca_root_certificates" + certsDir="$certsInstallDir/$relativeDataRootDir/ssl" + + libtoolize --force --copy --install + autoconf + runConfigure ./configure \ + --enable-ipv6 --enable-manual \ + --with-ca-bundle="$certsDir/CARootCertificates.pem" + make $jobArgs +} + +INSTALL() +{ + make install + + # prepare develop/lib + prepareInstalledDevelLibs libcurl + fixPkgconfig + + # fix curl-config + fixDevelopLibDirReferences $binDir/curl-config + sed -i -e "s,--libexecdir=$developLibDir,--libexecdir=$libExecDir,g" \ + -e "s,--libdir=$developLibDir,--libdir=$libDir,g" $binDir/curl-config + + # install html documentation for curl + mkdir -p "$docDir" + install -c -m 644 "docs/curl.html" "$docDir" + + # install html development documentation for libcurl + mkdir -p "$developDocDir" + for h in docs/libcurl/*.html; do + install -c -m 644 "$h" "$developDocDir" + done + + # devel package + packageEntries devel \ + $binDir/curl-config \ + $developDir \ + $manDir/man3 + + # Remove stuff we don't need in the secondary architecture base package. + if [ -n "$secondaryArchSuffix" ]; then + rm -rf $binDir + rm -rf $documentationDir + fi +} + +TEST() +{ + make check +} + +DESCRIPTION=" +Curl is a command line tool for transferring data with URL syntax, supporting \ +DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, \ +POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. curl supports SSL \ +certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, \ +proxies, cookies, user+password authentication (Basic, Digest, NTLM, \ +Negotiate, kerberos...), file transfer resume, proxy tunneling and a busload \ +of other useful tricks. +" + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + curl${secondaryArchSuffix}_devel = $portVersion + cmd:curl_config$secondaryArchSuffix = $portVersion compat >= 7.16 + devel:libcurl$secondaryArchSuffix = 4.2.0 compat >= 4 + " +REQUIRES_devel=" + curl$secondaryArchSuffix == $portVersion base + " diff --git a/net-misc/minidlna/minidlna-1.0.21.recipe b/net-misc/minidlna/minidlna-1.0.21.recipe index 8839d9911..bf9c246f1 100644 --- a/net-misc/minidlna/minidlna-1.0.21.recipe +++ b/net-misc/minidlna/minidlna-1.0.21.recipe @@ -1,4 +1,7 @@ -DESCRIPTION="MiniDLNA MiniDLNA (aka ReadyDLNA) is server software with the aim of being fully compliant with DLNA/UPnP-AV clients." +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" diff --git a/net-misc/muscle/muscle-6.00.recipe b/net-misc/muscle/muscle-6.00.recipe new file mode 100644 index 000000000..4fd593b09 --- /dev/null +++ b/net-misc/muscle/muscle-6.00.recipe @@ -0,0 +1,59 @@ +SUMMARY="Robust, somewhat scalable, cross-platform client-server solution" +DESCRIPTION=" +The MUSCLE system is a robust, somewhat scalable, cross-platform client-server \ +solution for dynamic distributed applications for Haiku and other operating \ +systems. It allows (n) client programs (each of which may be running on a \ +separate computer and/or under a different OS) to communicate with each other \ +in a many-to-many message-passing style. It employs a central server to which \ +client programs may connect or disconnect at any time (this design is similar \ +to other client-server systems such as Quake servers, IRC servers, and Napster \ +servers, but more general in application). In addition to the client-server \ +system, MUSCLE contains classes to support peer-to-peer message streaming \ +connections, as well as some handy miscellaneous utility classes. +" +COPYRIGHT="2000-2009 Meyer Sound Laboratories Inc." +LICENSE="BSD (3-clause)" +HOMEPAGE="https://public.msli.com/lcs/muscle/index.html" +SRC_URI="https://public.msli.com/lcs/muscle/muscle6.00.zip" +CHECKSUM_SHA256="b12abe12b5cc4aa93126f86ae07a4bcd02ee8d89d692789435debd5becc53437" +REVISION="1" + +ARCHITECTURES="!x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="!x86_gcc2 x86" + +PROVIDES=" + muscle = $portVersion + cmd:muscled$secondaryArchSuffix = $portVersion + cmd:admin$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libz$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +SOURCE_DIR="muscle" + +BUILD() +{ + cd server + make $jobArgs BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` +} + +INSTALL() +{ + mkdir -p $binDir + + cd server + cp admin muscled $binDir +} diff --git a/net-misc/neon/neon-0.29.6.recipe b/net-misc/neon/neon-0.29.6.recipe index 9c86751fe..39bd445f8 100644 --- a/net-misc/neon/neon-0.29.6.recipe +++ b/net-misc/neon/neon-0.29.6.recipe @@ -1,62 +1,63 @@ SUMMARY="HTTP and WebDAV client library, with a C interface" DESCRIPTION=" - neon is an HTTP and WebDAV client library, with a C interface. Features: - - - high-level wrappers for common HTTP and WebDAV operations (GET, MOVE, - DELETE, etc) - - low-level interface to the HTTP request/response engine, allowing the - use of arbitrary HTTP methods, headers, etc. - - authentication support including Basic and Digest support, along with - GSSAPI-based Negotiate on Unix, and SSPI-based Negotiate/NTLM on Win32 - - SSL/TLS support using OpenSSL or GnuTLS; exposing an abstraction layer - for verifying server certificates, handling client certificates, and - examining certificate properties. Smartcard-based client certificates - are also supported via a PKCS#11 wrapper interface. - - abstract interface to parsing XML using libxml2 or expat, and wrappers - for simplifying handling XML HTTP response bodies - - WebDAV metadata support; wrappers for PROPFIND and PROPPATCH to simplify - property manipulation. - " +neon is an HTTP and WebDAV client library, with a C interface. Features: +- high-level wrappers for common HTTP and WebDAV operations (GET, MOVE, \ +DELETE, etc) +- low-level interface to the HTTP request/response engine, allowing the use of \ +arbitrary HTTP methods, headers, etc. +- authentication support including Basic and Digest support, along with \ +GSSAPI-based Negotiate on Unix, and SSPI-based Negotiate/NTLM on Win32 +- SSL/TLS support using OpenSSL or GnuTLS; exposing an abstraction layer for \ +verifying server certificates, handling client certificates, and examining \ +certificate properties. Smartcard-based client certificates are also supported \ +via a PKCS#11 wrapper interface. +- abstract interface to parsing XML using libxml2 or expat, and wrappers for \ +simplifying handling XML HTTP response bodies +- WebDAV metadata support; wrappers for PROPFIND and PROPPATCH to simplify \ +property manipulation. +" HOMEPAGE="http://www.webdav.org/neon/" LICENSE="GNU LGPL v2" COPYRIGHT="1999-2011 Joe Orton" SRC_URI="http://www.webdav.org/neon/neon-0.29.6.tar.gz" -CHECKSUM_MD5="591e0c82e6979e7e615211b386b8f6bc" -REVISION="7" +CHECKSUM_SHA256="9c640b728d6dc80ef1e48f83181166ab6bc95309cece5537e01ffdd01b96eb43" +REVISION="9" + ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" PATCHES="neon-0.29.6.patch" PROVIDES=" - neon = $portVersion compat >= 0.29 - lib:libneon = 27.2.6 compat >= 27.2 + neon$secondaryArchSuffix = $portVersion compat >= 0.29 + libneon$secondaryArchSuffix = 27.2.6 compat >= 27.2 + lib:libneon$secondaryArchSuffix = 27.2.6 compat >= 27.2 " REQUIRES=" - haiku >= $haikuVersion - lib:libcrypto - lib:libncurses - lib:libssl - lib:libxml2 - lib:libz + haiku$secondaryArchSuffix >= $haikuVersion + lib:libcrypto$secondaryArchSuffix + lib:libncurses$secondaryArchSuffix + lib:libssl$secondaryArchSuffix + lib:libxml2$secondaryArchSuffix + lib:libz$secondaryArchSuffix " BUILD_REQUIRES=" - devel:libcrypto - devel:libncurses - devel:libssl >= 1.0.0 - devel:libxml2 >= 2.7.8 - devel:libz + devel:libcrypto$secondaryArchSuffix + devel:libncurses$secondaryArchSuffix + devel:libssl$secondaryArchSuffix + devel:libxml2$secondaryArchSuffix >= 2.7.8 + devel:libz$secondaryArchSuffix " BUILD_PREREQUIRES=" - haiku_devel >= $haikuVersion + haiku${secondaryArchSuffix}_devel >= $haikuVersion cmd:aclocal cmd:autoconf cmd:libtoolize - cmd:gcc - cmd:ld + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix cmd:make " -SOURCE_DIR="$portVersionedName" BUILD() { @@ -96,10 +97,12 @@ INSTALL() # ----- devel package ------------------------------------------------------- PROVIDES_devel=" - neon_devel = $portVersion compat >= 0.29 - cmd:neon_config = $portVersion compat >= 0.29 - devel:libneon = 27.2.6 compat >= 27 + neon${secondaryArchSuffix}_devel = $portVersion compat >= 0.29 + libneon${secondaryArchSuffix}_devel = 27.2.6 compat >= 27 + cmd:neon_config$secondaryArchSuffix = $portVersion compat >= 0.29 + devel:libneon$secondaryArchSuffix = 27.2.6 compat >= 27 " REQUIRES_devel=" - neon == $portVersion base + neon$secondaryArchSuffix == $portVersion base + libneon$secondaryArchSuffix == 27.2.6 " diff --git a/net-misc/openssh/additional-files/sshd_keymaker.sh b/net-misc/openssh/additional-files/sshd_keymaker.sh index 0952fa460..d6ef0362e 100755 --- a/net-misc/openssh/additional-files/sshd_keymaker.sh +++ b/net-misc/openssh/additional-files/sshd_keymaker.sh @@ -10,7 +10,7 @@ _progress () { # generate SSH host keys -SETTINGSSSHDIR=`finddir B_COMMON_SETTINGS_DIRECTORY`/ssh +SETTINGSSSHDIR=`finddir B_SYSTEM_SETTINGS_DIRECTORY`/ssh mkdir -p ${SETTINGSSSHDIR} hostKeyDir=${SETTINGSSSHDIR} diff --git a/net-misc/openssh/openssh-5.8p2.recipe b/net-misc/openssh/openssh-5.8p2.recipe index 8b0c28a9f..546a3b3dd 100644 --- a/net-misc/openssh/openssh-5.8p2.recipe +++ b/net-misc/openssh/openssh-5.8p2.recipe @@ -6,7 +6,7 @@ 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 " -CHECKSUM_MD5="0541579adf9d55abb15ef927048d372e" +CHECKSUM_SHA256="5c35ec7c966ce05cc4497ac59c0b54a556e55ae7368165cc8c4129694654f314" REVISION="4" ARCHITECTURES="x86_gcc2 ?x86" @@ -50,7 +50,6 @@ BUILD_PREREQUIRES=" cmd:make " -SOURCE_DIR="$portVersionedName" PATCH() { @@ -90,6 +89,16 @@ TEST() make tests } -DESCRIPTION="OpenSSH is a FREE version of the SSH connectivity tools that technical users of the Internet rely on. Users of telnet, rlogin, and ftp may not realize that their password is transmitted across the Internet unencrypted, but it is. OpenSSH encrypts all traffic (including passwords) to effectively eliminate eavesdropping, connection hijacking, and other attacks. Additionally, OpenSSH provides secure tunneling capabilities and several authentication methods, and supports all SSH protocol versions. - -The OpenSSH suite replaces rlogin and telnet with the ssh program, rcp with scp, and ftp with sftp. Also included is sshd (the server side of the package), and the other utilities like ssh-add, ssh-agent, ssh-keysign, ssh-keyscan, ssh-keygen and sftp-server." +DESCRIPTION=" +OpenSSH is a FREE version of the SSH connectivity tools that technical users \ +of the Internet rely on. Users of telnet, rlogin, and ftp may not realize that \ +their password is transmitted across the Internet unencrypted, but it is. \ +OpenSSH encrypts all traffic (including passwords) to effectively eliminate \ +eavesdropping, connection hijacking, and other attacks. Additionally, OpenSSH \ +provides secure tunneling capabilities and several authentication methods, and \ +supports all SSH protocol versions. +The OpenSSH suite replaces rlogin and telnet with the ssh program, rcp with \ +scp, and ftp with sftp. Also included is sshd (the server side of the \ +package), and the other utilities like ssh-add, ssh-agent, ssh-keysign, \ +ssh-keyscan, ssh-keygen and sftp-server. +" diff --git a/net-misc/openssh/openssh-6.0p1.recipe b/net-misc/openssh/openssh-6.0p1.recipe index 7bb7085e7..01ee39429 100644 --- a/net-misc/openssh/openssh-6.0p1.recipe +++ b/net-misc/openssh/openssh-6.0p1.recipe @@ -3,7 +3,7 @@ HOMEPAGE="http://www.openssh.com/" LICENSE="OpenSSH" COPYRIGHT="2005-2012 Tatu Ylonen et al." SRC_URI="http://openbsd.mirrorcatalogs.com/pub/OpenBSD/OpenSSH/portable/openssh-6.0p1.tar.gz" -CHECKSUM_MD5="3c9347aa67862881c5da3f3b1c08da7b" +CHECKSUM_SHA256="589d48e952d6c017e667873486b5df63222f9133d417d0002bd6429d9bd882de" REVISION="8" ARCHITECTURES="x86_gcc2 x86 x86_64" @@ -70,7 +70,6 @@ PACKAGE_USERS=" " PACKAGE_GROUPS="sshd" -SOURCE_DIR="$portVersionedName" PATCH() { @@ -117,6 +116,16 @@ TEST() make tests } -DESCRIPTION="OpenSSH is a FREE version of the SSH connectivity tools that technical users of the Internet rely on. Users of telnet, rlogin, and ftp may not realize that their password is transmitted across the Internet unencrypted, but it is. OpenSSH encrypts all traffic (including passwords) to effectively eliminate eavesdropping, connection hijacking, and other attacks. Additionally, OpenSSH provides secure tunneling capabilities and several authentication methods, and supports all SSH protocol versions. - -The OpenSSH suite replaces rlogin and telnet with the ssh program, rcp with scp, and ftp with sftp. Also included is sshd (the server side of the package), and the other utilities like ssh-add, ssh-agent, ssh-keysign, ssh-keyscan, ssh-keygen and sftp-server." +DESCRIPTION=" +OpenSSH is a FREE version of the SSH connectivity tools that technical users \ +of the Internet rely on. Users of telnet, rlogin, and ftp may not realize that \ +their password is transmitted across the Internet unencrypted, but it is. \ +OpenSSH encrypts all traffic (including passwords) to effectively eliminate \ +eavesdropping, connection hijacking, and other attacks. Additionally, OpenSSH \ +provides secure tunneling capabilities and several authentication methods, and \ +supports all SSH protocol versions. +The OpenSSH suite replaces rlogin and telnet with the ssh program, rcp with \ +scp, and ftp with sftp. Also included is sshd (the server side of the \ +package), and the other utilities like ssh-add, ssh-agent, ssh-keysign, \ +ssh-keyscan, ssh-keygen and sftp-server. +" diff --git a/net-misc/openssh/openssh-6.5p1.recipe b/net-misc/openssh/openssh-6.5p1.recipe new file mode 100644 index 000000000..dfcdd1f0f --- /dev/null +++ b/net-misc/openssh/openssh-6.5p1.recipe @@ -0,0 +1,136 @@ +SUMMARY="Secure Shell Client and Server (Remote Login Program)" +DESCRIPTION=" +OpenSSH is a FREE version of the SSH connectivity tools that technical users \ +of the Internet rely on. Users of telnet, rlogin, and ftp may not realize that \ +their password is transmitted across the Internet unencrypted, but it is. \ +OpenSSH encrypts all traffic (including passwords) to effectively eliminate \ +eavesdropping, connection hijacking, and other attacks. Additionally, OpenSSH \ +provides secure tunneling capabilities and several authentication methods, and \ +supports all SSH protocol versions. +The OpenSSH suite replaces rlogin and telnet with the ssh program, rcp with \ +scp, and ftp with sftp. Also included is sshd (the server side of the \ +package), and the other utilities like ssh-add, ssh-agent, ssh-keysign, \ +ssh-keyscan, ssh-keygen and sftp-server. +" +HOMEPAGE="http://www.openssh.com/" +LICENSE="OpenSSH" +COPYRIGHT="2005-2014 Tatu Ylonen et al." +SRC_URI="http://openbsd.mirrorcatalogs.com/pub/OpenBSD/OpenSSH/portable/openssh-6.5p1.tar.gz" +CHECKSUM_SHA256="a1195ed55db945252d5a1730d4a2a2a5c1c9a6aa01ef2e5af750a962623d9027" +SRC_URI="http://openbsd.locaweb.com.br/pub/OpenBSD/OpenSSH/portable/openssh-6.5p1.tar.gz" +#SRC_URI="http://mindrot.org/openssh_snap/openssh-SNAP-20140127.tar.gz" +REVISION="1" + +ARCHITECTURES="x86_gcc2 x86 x86_64" + +PATCHES="sshd_config.patch + pathnames.patch" + +ADDITIONAL_FILES="sshd_keymaker.sh" + +PROVIDES=" + openssh = $portVersion compat >= 5 + cmd:scp = $portVersion compat >= 5 + cmd:sftp = $portVersion compat >= 5 + cmd:sftp_server = $portVersion compat >= 5 + cmd:slogin = $portVersion compat >= 5 + cmd:ssh = $portVersion compat >= 5 + cmd:ssh_add = $portVersion compat >= 5 + cmd:ssh_agent = $portVersion compat >= 5 + cmd:ssh_keygen = $portVersion compat >= 5 + cmd:ssh_keyscan = $portVersion compat >= 5 + cmd:ssh_keysign = $portVersion compat >= 5 + cmd:ssh_pkcs11_helper = $portVersion compat >= 5 + cmd:sshd = $portVersion compat >= 5 + " +REQUIRES=" + haiku >= $haikuVersion + cmd:login + cmd:passwd + lib:libcrypto + lib:libedit + lib:libncurses + lib:libssl + lib:libz + " +BUILD_REQUIRES=" + devel:libcrypto + devel:libedit + devel:libncurses + devel:libssl + devel:libz + " +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc + cmd:ld + cmd:libtoolize + cmd:make + cmd:pkg_config + " + +GLOBAL_WRITABLE_FILES=" + settings/ssh directory keep-old + " +USER_SETTINGS_FILES=" + settings/ssh directory + " +POST_INSTALL_SCRIPTS=" + $relativePostInstallDir/sshd_keymaker.sh + " +sshdUserHomeDir="/packages/$portVersionedName-$REVISION/.self/$relativeDataDir/openssh/empty" +PACKAGE_USERS=" + sshd real-name \"sshd user\" home \"$sshdUserHomeDir\" shell \"/bin/true\" + " +PACKAGE_GROUPS="sshd" + + +PATCH() +{ + echo 'AC_CONFIG_MACRO_DIR([m4])' >> configure.ac +} + +SOURCE_DIR="openssh" + +BUILD() +{ + mkdir -p m4 + aclocal --install -I m4 + libtoolize --force --copy + aclocal -I m4 + autoconf + defaultPath=".:/boot/home/config/non-packaged/bin:/boot/home/config/bin" + defaultPath+=":/boot/common/non-packaged/bin:/boot/common/bin:/bin" + defaultPath+=":/boot/common/apps:/boot/common/preferences:/boot/system/apps" + defaultPath+=":/boot/system/preferences" + + # Note: override sysconfdir and libexecdir since ssh doesn't create + # subdirectories as it should. + PATH_PASSWD_PROG=$portPackageLinksDir/cmd~passwd/bin/passwd \ + LOGIN_PROGRAM=$portPackageLinksDir/cmd~login/bin/login \ + runConfigure ./configure \ + --sysconfdir=$sysconfDir/ssh \ + --libexecdir=$libExecDir/openssh \ + --with-privsep-path=$dataDir/openssh/empty \ + --with-pid-dir=$prefix/var/run \ + --with-default-path="$defaultPath" \ + --with-md5-passwords \ + --disable-utmpx \ + --with-libedit + make $jobArgs +} + +INSTALL() +{ + make install-nokeys + mkdir -p $postInstallDir + cp -f $portDir/additional-files/sshd_keymaker.sh $postInstallDir +} + +TEST() +{ + make tests +} diff --git a/net-misc/openssh/openssh-6.6p1.recipe b/net-misc/openssh/openssh-6.6p1.recipe new file mode 100644 index 000000000..d1e94ed76 --- /dev/null +++ b/net-misc/openssh/openssh-6.6p1.recipe @@ -0,0 +1,135 @@ +SUMMARY="Secure Shell Client and Server (Remote Login Program)" +DESCRIPTION=" +OpenSSH is a FREE version of the SSH connectivity tools that technical users \ +of the Internet rely on. Users of telnet, rlogin, and ftp may not realize that \ +their password is transmitted across the Internet unencrypted, but it is. \ +OpenSSH encrypts all traffic (including passwords) to effectively eliminate \ +eavesdropping, connection hijacking, and other attacks. Additionally, OpenSSH \ +provides secure tunneling capabilities and several authentication methods, and \ +supports all SSH protocol versions. +The OpenSSH suite replaces rlogin and telnet with the ssh program, rcp with \ +scp, and ftp with sftp. Also included is sshd (the server side of the \ +package), and the other utilities like ssh-add, ssh-agent, ssh-keysign, \ +ssh-keyscan, ssh-keygen and sftp-server. +" +HOMEPAGE="http://www.openssh.com/" +LICENSE="OpenSSH" +COPYRIGHT="2005-2014 Tatu Ylonen et al." +SRC_URI="http://openbsd.mirrorcatalogs.com/pub/OpenBSD/OpenSSH/portable/openssh-6.6p1.tar.gz" +CHECKSUM_SHA256="48c1f0664b4534875038004cc4f3555b8329c2a81c1df48db5c517800de203bb" +SRC_URI="http://openbsd.locaweb.com.br/pub/OpenBSD/OpenSSH/portable/openssh-6.6p1.tar.gz" +REVISION="1" + +ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64" + +PATCHES="sshd_config.patch + pathnames.patch" + +ADDITIONAL_FILES="sshd_keymaker.sh" + +PROVIDES=" + openssh = $portVersion compat >= 5 + cmd:scp = $portVersion compat >= 5 + cmd:sftp = $portVersion compat >= 5 + cmd:sftp_server = $portVersion compat >= 5 + cmd:slogin = $portVersion compat >= 5 + cmd:ssh = $portVersion compat >= 5 + cmd:ssh_add = $portVersion compat >= 5 + cmd:ssh_agent = $portVersion compat >= 5 + cmd:ssh_keygen = $portVersion compat >= 5 + cmd:ssh_keyscan = $portVersion compat >= 5 + cmd:ssh_keysign = $portVersion compat >= 5 + cmd:ssh_pkcs11_helper = $portVersion compat >= 5 + cmd:sshd = $portVersion compat >= 5 + " +REQUIRES=" + haiku >= $haikuVersion + cmd:login + cmd:passwd + lib:libcrypto + lib:libedit + lib:libncurses + lib:libssl + lib:libz + " +BUILD_REQUIRES=" + devel:libcrypto + devel:libedit + devel:libncurses + devel:libssl + devel:libz + " +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc + cmd:ld + cmd:libtoolize + cmd:make + cmd:pkg_config + " + +GLOBAL_WRITABLE_FILES=" + settings/ssh directory keep-old + " +USER_SETTINGS_FILES=" + settings/ssh directory + " +POST_INSTALL_SCRIPTS=" + $relativePostInstallDir/sshd_keymaker.sh + " +sshdUserHomeDir="/packages/$portVersionedName-$REVISION/.self/$relativeDataDir/openssh/empty" +PACKAGE_USERS=" + sshd real-name \"sshd user\" home \"$sshdUserHomeDir\" shell \"/bin/true\" + " +PACKAGE_GROUPS="sshd" + + +PATCH() +{ + echo 'AC_CONFIG_MACRO_DIR([m4])' >> configure.ac +} + +SOURCE_DIR="openssh" + +BUILD() +{ + mkdir -p m4 + aclocal --install -I m4 + libtoolize --force --copy + aclocal -I m4 + autoconf + defaultPath=".:/boot/home/config/non-packaged/bin:/boot/home/config/bin" + defaultPath+=":/boot/common/non-packaged/bin:/boot/common/bin:/bin" + defaultPath+=":/boot/common/apps:/boot/common/preferences:/boot/system/apps" + defaultPath+=":/boot/system/preferences" + + # Note: override sysconfdir and libexecdir since ssh doesn't create + # subdirectories as it should. + PATH_PASSWD_PROG=$portPackageLinksDir/cmd~passwd/bin/passwd \ + LOGIN_PROGRAM=$portPackageLinksDir/cmd~login/bin/login \ + runConfigure ./configure \ + --sysconfdir=$sysconfDir/ssh \ + --libexecdir=$libExecDir/openssh \ + --with-privsep-path=$dataDir/openssh/empty \ + --with-pid-dir=$prefix/var/run \ + --with-default-path="$defaultPath" \ + --with-md5-passwords \ + --disable-utmpx \ + --with-libedit + make $jobArgs +} + +INSTALL() +{ + make install-nokeys + mkdir -p $postInstallDir + cp -f $portDir/additional-files/sshd_keymaker.sh $postInstallDir +} + +TEST() +{ + make tests +} diff --git a/net-misc/openssh/patches/pathnames.patch b/net-misc/openssh/patches/pathnames.patch new file mode 100644 index 000000000..8c911e943 --- /dev/null +++ b/net-misc/openssh/patches/pathnames.patch @@ -0,0 +1,13 @@ +diff --git a/pathnames.h b/pathnames.h +index ec89fc6..6ad1b64 100644 +--- a/pathnames.h ++++ b/pathnames.h +@@ -59,7 +59,7 @@ + * 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 diff --git a/net-misc/openssh/patches/sshd_config.patch b/net-misc/openssh/patches/sshd_config.patch new file mode 100644 index 000000000..a00bb2e0c --- /dev/null +++ b/net-misc/openssh/patches/sshd_config.patch @@ -0,0 +1,13 @@ +diff --git a/sshd_config b/sshd_config +index e9045bc..0835873 100644 +--- a/sshd_config ++++ b/sshd_config +@@ -51,7 +51,7 @@ + + # The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2 + # but this is overridden so installations will only check .ssh/authorized_keys +-AuthorizedKeysFile .ssh/authorized_keys ++AuthorizedKeysFile config/settings/ssh/authorized_keys + + #AuthorizedPrincipalsFile none + diff --git a/net-misc/rdesktop/rdesktop-1.8.0.recipe b/net-misc/rdesktop/rdesktop-1.8.0.recipe new file mode 100644 index 000000000..cc80affba --- /dev/null +++ b/net-misc/rdesktop/rdesktop-1.8.0.recipe @@ -0,0 +1,53 @@ +SUMMARY="An open source client for Windows Remote Desktop Services." +DESCRIPTION=" +rdesktop is an open source client for Windows Remote Desktop Services, capable \ +of natively speaking Remote Desktop Protocol (RDP) in order to present the \ +user's Windows desktop. rdesktop is known to work with Windows versions such \ +as NT 4 Terminal Server, 2000, XP, 2003, 2003 R2, Vista, 2008, 7, and 2008 R2. +" +HOMEPAGE="http://rdesktop.org/" +SRC_URI="git+https://github.com/threedeyes/rdesktop.git#dc04b43ccb443f8245e5cda69ab063624e0d6f8c" +COPYRIGHT="1999-2013 Matthew Chapman" +LICENSE="GNU GPL v3" +REVISION="1" +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + rdesktop = $portVersion + cmd:rdesktop = $portVersion + " + +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc + cmd:make + cmd:mkdepend + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:libssl + " + +REQUIRES=" + haiku >= $haikuVersion + lib:libcrypto + lib:libssl + " + + +BUILD() +{ + cd haiku + makefile=makefile_gcc4 + if [[ "$buildArchitecture" == *gcc2* ]]; then + makefile=makefile_gcc2 + fi + make -f $makefile +} + +INSTALL() +{ + mkdir -p $binDir + cp haiku/rdesktop $binDir +} diff --git a/net-misc/rsync/patches/rsync-3.1.0.patch b/net-misc/rsync/patches/rsync-3.1.0.patch index 965d77397..684819966 100644 --- a/net-misc/rsync/patches/rsync-3.1.0.patch +++ b/net-misc/rsync/patches/rsync-3.1.0.patch @@ -1,7 +1,7 @@ -diff -Naur rsync-3.1.0/configure.ac rsync-3.1.0-haiku/configure.ac ---- rsync-3.1.0/configure.ac 2013-09-28 14:55:54.057409536 -0600 -+++ rsync-3.1.0-haiku/configure.ac 2013-10-09 19:17:25.484704256 -0600 -@@ -455,6 +455,9 @@ +diff -up rsync-3.1.0/configure.ac.orig rsync-3.1.0/configure.ac +--- rsync-3.1.0/configure.ac.orig 2013-09-28 14:55:54.062914560 -0600 ++++ rsync-3.1.0/configure.ac 2013-10-24 14:27:24.333709312 -0600 +@@ -455,6 +455,9 @@ if test x"$ac_cv_func_connect" = x"no"; fi AC_SEARCH_LIBS(inet_ntop, resolv) @@ -11,7 +11,7 @@ diff -Naur rsync-3.1.0/configure.ac rsync-3.1.0-haiku/configure.ac # For OS X, Solaris, HP-UX, etc.: figure out if -liconv is needed. We'll # accept either iconv_open or libiconv_open, since some include files map -@@ -1079,6 +1082,13 @@ +@@ -1079,6 +1082,12 @@ else AC_DEFINE(SUPPORT_XATTRS, 1) AC_DEFINE(NO_SYMLINK_XATTRS, 1, [True if symlinks do not support xattrs]) ;; @@ -20,15 +20,14 @@ diff -Naur rsync-3.1.0/configure.ac rsync-3.1.0-haiku/configure.ac + AC_DEFINE(HAVE_LINUX_XATTRS, 1, [True if you have Linux xattrs]) + AC_DEFINE(SUPPORT_XATTRS, 1) + AC_DEFINE(NO_DEVICE_XATTRS, 1, [True if device files do not support xattrs]) -+ AC_DEFINE(NO_SYMLINK_XATTRS, 1, [True if symlinks do not support xattrs]) + ;; *) if test x"$enable_xattr_support" = x"yes"; then AC_MSG_ERROR(Failed to find extended attribute support) -diff -Naur rsync-3.1.0/rsync.h rsync-3.1.0-haiku/rsync.h ---- rsync-3.1.0/rsync.h 2013-09-28 14:55:54.063700992 -0600 -+++ rsync-3.1.0-haiku/rsync.h 2013-10-09 18:36:27.000262144 -0600 -@@ -442,7 +442,9 @@ +diff -up rsync-3.1.0/rsync.h.orig rsync-3.1.0/rsync.h +--- rsync-3.1.0/rsync.h.orig 2013-09-28 14:55:54.002359296 -0600 ++++ rsync-3.1.0/rsync.h 2013-10-24 14:27:08.025165824 -0600 +@@ -442,7 +442,9 @@ enum delret { #ifdef MAKEDEV_TAKES_3_ARGS #define MAKEDEV(devmajor,devminor) makedev(0,devmajor,devminor) #else @@ -39,10 +38,10 @@ diff -Naur rsync-3.1.0/rsync.h rsync-3.1.0-haiku/rsync.h #endif #ifdef HAVE_COMPAT_H -diff -Naur rsync-3.1.0/testsuite/hands.test rsync-3.1.0-haiku/testsuite/hands.test ---- rsync-3.1.0/testsuite/hands.test 2008-07-20 23:28:19.061079552 -0600 -+++ rsync-3.1.0-haiku/testsuite/hands.test 2013-10-09 18:36:57.847511552 -0600 -@@ -15,7 +15,7 @@ +diff -up rsync-3.1.0/testsuite/hands.test.orig rsync-3.1.0/testsuite/hands.test +--- rsync-3.1.0/testsuite/hands.test.orig 2008-07-20 23:28:19.066584576 -0600 ++++ rsync-3.1.0/testsuite/hands.test 2013-10-24 14:27:08.049283072 -0600 +@@ -15,7 +15,7 @@ DEBUG_OPTS="--debug=all0,deltasum0" runtest "basic operation" 'checkit "$RSYNC -av \"$fromdir/\" \"$todir\"" "$fromdir/" "$todir"' @@ -51,10 +50,10 @@ diff -Naur rsync-3.1.0/testsuite/hands.test rsync-3.1.0-haiku/testsuite/hands.te runtest "hard links" 'checkit "$RSYNC -avH $DEBUG_OPTS \"$fromdir/\" \"$todir\"" "$fromdir/" "$todir"' rm "$todir/text" -diff -Naur rsync-3.1.0/testsuite/relative.test rsync-3.1.0-haiku/testsuite/relative.test ---- rsync-3.1.0/testsuite/relative.test 2007-09-22 20:18:57.062914560 -0600 -+++ rsync-3.1.0-haiku/testsuite/relative.test 2013-10-09 18:37:31.927727616 -0600 -@@ -31,8 +31,8 @@ +diff -up rsync-3.1.0/testsuite/relative.test.orig rsync-3.1.0/testsuite/relative.test +--- rsync-3.1.0/testsuite/relative.test.orig 2007-09-22 20:18:57.001310720 -0600 ++++ rsync-3.1.0/testsuite/relative.test 2013-10-24 14:27:08.052690944 -0600 +@@ -31,8 +31,8 @@ $RSYNC -ai --include=/down/ --exclude='/ sleep 1 runtest "basic relative" 'checkit "$RSYNC -avR ./$deepstr \"$todir\"" "$chkdir" "$todir"' diff --git a/net-misc/rsync/rsync-3.1.0.recipe b/net-misc/rsync/rsync-3.1.0.recipe index 50a073bd0..f6d4197ac 100644 --- a/net-misc/rsync/rsync-3.1.0.recipe +++ b/net-misc/rsync/rsync-3.1.0.recipe @@ -1,18 +1,18 @@ SUMMARY="rsync is a utility for fast incremental file transfer" DESCRIPTION=" -rsync is a file transfer program for Unix systems. rsync uses the -'rsync algorithm' which provides a very fast method for bringing -remote files into sync. It does this by sending just the differences -in the files across the link, without requiring that both sets of -files are present at one of the ends of the link beforehand." - +rsync is a file transfer program for Unix systems. rsync uses the 'rsync \ +algorithm' which provides a very fast method for bringing remote files into \ +sync. It does this by sending just the differences in the files across the \ +link, without requiring that both sets of files are present at one of the ends \ +of the link beforehand. +" HOMEPAGE="http://rsync.samba.org/" SRC_URI="http://rsync.samba.org/ftp/rsync/src/rsync-3.1.0.tar.gz" -CHECKSUM_MD5="3be148772a33224771a8d4d2a028b132" +CHECKSUM_SHA256="81ca23f77fc9b957eb9845a6024f41af0ff0c619b7f38576887c63fa38e2394e" LICENSE="GNU GPL v3" COPYRIGHT="1996-2013 by Andrew Tridgell, Wayne Davison, and others." -REVISION="1" -ARCHITECTURES="?x86_gcc2 ?x86" +REVISION="2" +ARCHITECTURES="x86_gcc2 x86" PATCHES="rsync-3.1.0.patch" PROVIDES=" @@ -39,7 +39,6 @@ BUILD_PREREQUIRES=" cmd:make " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/net-misc/tor/licenses/Tor b/net-misc/tor/licenses/Tor new file mode 100644 index 000000000..4ed3bd8da --- /dev/null +++ b/net-misc/tor/licenses/Tor @@ -0,0 +1,141 @@ + This file contains the license for Tor, + a free software project to provide anonymity on the Internet. + + It also lists the licenses for other components used by Tor. + + For more information about Tor, see https://www.torproject.org/. + + If you got this file as a part of a larger bundle, + there may be other license terms that you should be aware of. + +=============================================================================== +Tor is distributed under this license: + +Copyright (c) 2001-2004, Roger Dingledine +Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson +Copyright (c) 2007-2013, The Tor Project, Inc. + +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 names of the copyright owners 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. +=============================================================================== +src/ext/strlcat.c and src/ext/strlcpy.c by Todd C. Miller are licensed +under the following license: + + * Copyright (c) 1998 Todd C. Miller + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of 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. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED ``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 AUTHOR 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. +=============================================================================== +src/ext/tor_queue.h is licensed under the following license: + + * Copyright (c) 1991, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of 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. Neither the name of the University 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 REGENTS 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. + +=============================================================================== +src/config/geoip is licensed under the following license: + +OPEN DATA LICENSE (GeoLite Country and GeoLite City databases) + +Copyright (c) 2008 MaxMind, Inc. All Rights Reserved. + +All advertising materials and documentation mentioning features or use of +this database must display the following acknowledgment: +"This product includes GeoLite data created by MaxMind, available from +http://maxmind.com/" + +Redistribution and use with or without modification, are permitted provided +that the following conditions are met: +1. Redistributions must retain the above copyright notice, this list of +conditions and the following disclaimer in the documentation and/or other +materials provided with the distribution. +2. All advertising materials and documentation mentioning features or use of +this database must display the following acknowledgement: +"This product includes GeoLite data created by MaxMind, available from +http://maxmind.com/" +3. "MaxMind" may not be used to endorse or promote products derived from this +database without specific prior written permission. + +THIS DATABASE IS PROVIDED BY MAXMIND, INC ``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 MAXMIND 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 +DATABASE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +=============================================================================== +If you got Tor as a static binary with OpenSSL included, then you should know: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" +=============================================================================== diff --git a/net-misc/tor/tor-0.2.4.20.recipe b/net-misc/tor/tor-0.2.4.20.recipe new file mode 100644 index 000000000..65e3224be --- /dev/null +++ b/net-misc/tor/tor-0.2.4.20.recipe @@ -0,0 +1,97 @@ +SUMMARY="A virtual layer that helps you improve privacy and anonymity" +DESCRIPTION=" +Tor is a network of virtual tunnels that allows people and groups to improve \ +their privacy and security on the Internet. It also enables software \ +developers to create new communication tools with built-in privacy features. \ +Tor provides the foundation for a range of applications that allow \ +organizations and individuals to share information over public networks \ +without compromising their privacy. +Individuals use Tor to keep websites from tracking them and their family \ +members, or to connect to news sites, instant messaging services, or the like \ +when these are blocked by their local Internet providers. Tor's hidden \ +services let users publish web sites and other services without needing to \ +reveal the location of the site. Individuals also use Tor for socially \ +sensitive communication: chat rooms and web forums for rape and abuse \ +survivors, or people with illnesses. +Journalists use Tor to communicate more safely with whistleblowers and \ +dissidents. Non-governmental organizations (NGOs) use Tor to allow their \ +workers to connect to their home website while they're in a foreign country, \ +without notifying everybody nearby that they're working with that organization. +Groups such as Indymedia recommend Tor for safeguarding their members' online \ +privacy and security. Activist groups like the Electronic Frontier Foundation \ +(EFF) recommend Tor as a mechanism for maintaining civil liberties online. \ +Corporations use Tor as a safe way to conduct competitive analysis, and to \ +protect sensitive procurement patterns from eavesdroppers. They also use it to \ +replace traditional VPNs, which reveal the exact amount and timing of \ +communication. Which locations have employees working late? Which locations \ +have employees consulting job-hunting websites? Which research divisions are \ +communicating with the company's patent lawyers? +A branch of the U.S. Navy uses Tor for open source intelligence gathering, and \ +one of its teams used Tor while deployed in the Middle East recently. Law \ +enforcement uses Tor for visiting or surveilling web sites without leaving \ +government IP addresses in their web logs, and for security during sting \ +operations. +The variety of people who use Tor is actually part of what makes it so secure. \ +Tor hides you among the other users on the network, so the more populous and \ +diverse the user base for Tor is, the more your anonymity will be protected. +" +HOMEPAGE="https://www.torproject.org" +SRC_URI="https://archive.torproject.org/tor-package-archive/tor-0.2.4.20.tar.gz" +CHECKSUM_SHA256="ccc51747cbcbf98f658c34d5c693ff8a868698da0349d056e98287ef2e294d9f" + +REVISION="1" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + tor = $portVersion + cmd:tor$secondaryArchSuffix + cmd:tor_gencert$secondaryArchSuffix + cmd:tor_resolve$secondaryArchSuffix + cmd:torify$secondaryArchSuffix + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libevent$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libssl$secondaryArchSuffix + lib:libcrypto$secondaryArchSuffix + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libevent$secondaryArchSuffix + devel:libssl$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +LICENSE="Tor" +COPYRIGHT=" + 2001-2004, Roger Dingledine + 2004-2006, Roger Dingledine, Nick Mathewson + 2007-2013, The Tor Project, Inc. + " + +USER_SETTINGS_FILES=" + settings/tor directory + " + +GLOBAL_WRITABLE_FILES=" + settings/tor/torrc.sample auto-merge + " + +BUILD() +{ + runConfigure ./configure + make +} + +INSTALL() +{ + make install +} diff --git a/net-misc/wget/patches/wget-1.12.patch b/net-misc/wget/patches/wget-1.12.patch deleted file mode 100644 index a97ad38de..000000000 --- a/net-misc/wget/patches/wget-1.12.patch +++ /dev/null @@ -1,105 +0,0 @@ -diff -urN wget-1.12/configure.ac wget-1.12-haiku/configure.ac ---- wget-1.12/configure.ac 2009-09-22 09:39:49.038010880 -0700 -+++ wget-1.12-haiku/configure.ac 2010-10-22 13:23:29.351797248 -0700 -@@ -163,6 +163,7 @@ - AC_CHECK_HEADERS(unistd.h sys/time.h) - AC_CHECK_HEADERS(termios.h sys/ioctl.h sys/select.h utime.h sys/utime.h) - AC_CHECK_HEADERS(stdint.h inttypes.h pwd.h wchar.h) -+AC_CHECK_HEADERS(arpa/inet.h) - - AC_CHECK_DECLS(h_errno,,,[#include ]) - -diff -urN wget-1.12/m4/wget.m4 wget-1.12-haiku/m4/wget.m4 ---- wget-1.12/m4/wget.m4 2009-09-21 20:18:44.034340864 -0700 -+++ wget-1.12-haiku/m4/wget.m4 2010-10-22 13:22:01.071041024 -0700 -@@ -117,6 +117,8 @@ - - dnl Check whether we need to link with -lnsl and -lsocket, as is the - dnl case on e.g. Solaris. -+dnl BeOS (BONE) needs libbind as well -+dnl Haiku needs libnetwork - - AC_DEFUN([WGET_NSL_SOCKET], [ - dnl On Solaris, -lnsl is needed to use gethostbyname. But checking -@@ -136,6 +138,9 @@ - AC_CHECK_LIB(nsl, $wget_check_in_nsl) - fi - AC_CHECK_LIB(socket, socket) -+ AC_CHECK_LIB(bind, gethostbyname) -+ AC_CHECK_LIB(network, gethostbyname) -+ AC_CHECK_LIB(network, socket) - ]) - - -diff -urN wget-1.12/src/config.h.in wget-1.12-haiku/src/config.h.in ---- wget-1.12/src/config.h.in 2009-09-22 09:40:33.008126464 -0700 -+++ wget-1.12-haiku/src/config.h.in 2010-10-22 13:14:25.000000000 -0700 -@@ -66,6 +66,9 @@ - /* Define to 1 if you have the header file. */ - #undef HAVE_BP_SYM_H - -+/* Define to 1 if you have the header file. */ -+#undef HAVE_ARPA_INET_H -+ - /* Define when using built-in MD5. */ - #undef HAVE_BUILTIN_MD5 - -@@ -212,12 +215,18 @@ - /* Define if you have and nl_langinfo(CODESET). */ - #undef HAVE_LANGINFO_CODESET - -+/* Define to 1 if you have the `bind' library (-lbind). */ -+#undef HAVE_LIBBIND -+ - /* Define to 1 if you have the `dl' library (-ldl). */ - #undef HAVE_LIBDL - - /* Define if you have the gnutls library. */ - #undef HAVE_LIBGNUTLS - -+/* Define to 1 if you have the `network' library (-lnetwork). */ -+#undef HAVE_LIBNETWORK -+ - /* Define to 1 if you have the `nsl' library (-lnsl). */ - #undef HAVE_LIBNSL - -diff -urN wget-1.12/src/connect.c wget-1.12-haiku/src/connect.c ---- wget-1.12/src/connect.c 2009-09-21 19:55:56.006815744 -0700 -+++ wget-1.12-haiku/src/connect.c 2010-10-22 13:14:25.000000000 -0700 -@@ -45,7 +45,7 @@ - # include - # endif /* def __VMS [else] */ - # include --# ifndef __BEOS__ -+# ifdef HAVE_ARPA_INET_H - # include - # endif - #endif /* not WINDOWS */ -diff -urN wget-1.12/src/host.c wget-1.12-haiku/src/host.c ---- wget-1.12/src/host.c 2009-09-21 20:00:05.002883584 -0700 -+++ wget-1.12-haiku/src/host.c 2010-10-22 13:14:25.000000000 -0700 -@@ -39,7 +39,7 @@ - # include - # include - # include --# ifndef __BEOS__ -+# ifdef HAVE_ARPA_INET_H - # include - # endif - # ifdef __VMS -diff -urN wget-1.12/src/host.h wget-1.12-haiku/src/host.h ---- wget-1.12/src/host.h 2009-09-04 09:31:54.006553600 -0700 -+++ wget-1.12-haiku/src/host.h 2010-10-22 13:14:25.000000000 -0700 -@@ -41,9 +41,9 @@ - # endif /* def __VMS [else] */ - # include - # include --#ifndef __BEOS__ --# include --#endif -+# ifdef HAVE_ARPA_INET_H -+# include -+# endif - #endif - - struct url; diff --git a/net-misc/wget/patches/wget-1.13.4.patch b/net-misc/wget/patches/wget-1.13.4.patch deleted file mode 100644 index 3145d84af..000000000 --- a/net-misc/wget/patches/wget-1.13.4.patch +++ /dev/null @@ -1,71 +0,0 @@ -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/patches/wget-1.14-build-fixes.patch b/net-misc/wget/patches/wget-1.14-build-fixes.patch new file mode 100644 index 000000000..4737e4a37 --- /dev/null +++ b/net-misc/wget/patches/wget-1.14-build-fixes.patch @@ -0,0 +1,521 @@ +From 106dffb05519f44684f5f9dc09b0970b8c68a2d9 Mon Sep 17 00:00:00 2001 +From: Luke +Date: Wed, 11 Dec 2013 03:03:50 +0000 +Subject: [PATCH] Fix build errors + +--- + lib/regcomp.c | 2 +- + src/http.c | 9 ++++-- + src/main.c | 25 ++++++++------ + src/retr.c | 3 +- + src/utils.c | 2 ++ + src/warc.c | 102 ++++++++++++++++++++++++++++++++++++---------------------- + 6 files changed, 91 insertions(+), 52 deletions(-) + +diff --git a/lib/regcomp.c b/lib/regcomp.c +index 1d7a522..76ed566 100644 +--- a/lib/regcomp.c ++++ b/lib/regcomp.c +@@ -952,10 +952,10 @@ static void + 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 --git a/src/http.c b/src/http.c +index fa2d5ed..8500a93 100644 +--- a/src/http.c ++++ b/src/http.c +@@ -1076,6 +1076,7 @@ extract_param (const char **source, param_token *name, param_token *value, + char separator) + { + const char *p = *source; ++ int param_type; + + while (c_isspace (*p)) ++p; + if (!*p) +@@ -1131,7 +1132,7 @@ extract_param (const char **source, param_token *name, param_token *value, + } + *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); +@@ -1521,6 +1522,7 @@ read_response_body (struct http_stat *hs, int sock, FILE *fp, wgint contlen, + int warc_payload_offset = 0; + FILE *warc_tmp = NULL; + int warcerr = 0; ++ int flags; + + if (opt.warc_filename != NULL) + { +@@ -1557,7 +1559,7 @@ read_response_body (struct http_stat *hs, int sock, FILE *fp, wgint contlen, + } + + /* Read the response body. */ +- int flags = 0; ++ flags = 0; + if (contlen != -1) + /* If content-length is present, read that much; otherwise, read + until EOF. The HTTP spec doesn't require the server to +@@ -1668,6 +1670,7 @@ static uerr_t + gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy, + struct iri *iri, int count) + { ++ int warc_tmp_written; + struct request *req; + + char *type; +@@ -2136,7 +2139,7 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy, + warc_payload_offset = ftello (warc_tmp); + + /* Write a copy of the data to the WARC record. */ +- int warc_tmp_written = fwrite (opt.post_data, 1, post_data_size, warc_tmp); ++ warc_tmp_written = fwrite (opt.post_data, 1, post_data_size, warc_tmp); + if (warc_tmp_written != post_data_size) + write_error = -2; + } +diff --git a/src/main.c b/src/main.c +index b8b2869..cff4fa3 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -971,13 +971,20 @@ main (int argc, char **argv) + int i, ret, longindex; + int nurl; + bool append_to_log = false; ++ struct ptimer *timer; ++ double start_time; ++ int arglen; ++ int argstring_length; ++ int retconf; ++ bool use_userconfig = false; ++ char *p; + + total_downloaded_bytes = 0; + + program_name = argv[0]; + +- struct ptimer *timer = ptimer_new (); +- double start_time = ptimer_measure (timer); ++ timer = ptimer_new (); ++ start_time = ptimer_measure (timer); + + i18n_initialize (); + +@@ -999,10 +1006,10 @@ main (int argc, char **argv) + #endif + + /* Construct the arguments string. */ +- int argstring_length = 1; ++ argstring_length = 1; + for (i = 1; i < argc; i++) + argstring_length += strlen (argv[i]) + 2 + 1; +- char *p = program_argstring = malloc (argstring_length * sizeof (char)); ++ p = program_argstring = malloc (argstring_length * sizeof (char)); + if (p == NULL) + { + fprintf (stderr, _("Memory allocation problem\n")); +@@ -1011,7 +1018,7 @@ main (int argc, char **argv) + for (i = 1; i < argc; i++) + { + *p++ = '"'; +- int arglen = strlen (argv[i]); ++ arglen = strlen (argv[i]); + memcpy (p, argv[i], arglen); + p += arglen; + *p++ = '"'; +@@ -1027,8 +1034,6 @@ main (int argc, char **argv) + /* This separate getopt_long is needed to find the user config file + option ("--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) +@@ -1597,10 +1602,12 @@ outputting to a regular file.\n")); + total_downloaded_bytes != 0) + { + double end_time = ptimer_measure (timer); ++ char *wall_time; ++ char *download_time; + 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/src/retr.c b/src/retr.c +index 6204839..7947a73 100644 +--- a/src/retr.c ++++ b/src/retr.c +@@ -374,8 +374,9 @@ fd_read_body (int fd, FILE *out, wgint toread, wgint startpos, + + if (ret > 0) + { ++ int write_res; + sum_read += ret; +- int write_res = write_data (out, out2, dlbuf, ret, &skip, &sum_written); ++ write_res = write_data (out, out2, dlbuf, ret, &skip, &sum_written); + if (write_res != 0) + { + ret = (write_res == -3) ? -3 : -2; +diff --git a/src/utils.c b/src/utils.c +index 567dc35..736f6e2 100644 +--- a/src/utils.c ++++ b/src/utils.c +@@ -64,7 +64,9 @@ as that of the covered work. */ + #include + + /* For TIOCGWINSZ and friends: */ ++#ifndef __HAIKU__ + #include ++#endif + #ifdef HAVE_TERMIOS_H + # include + #endif +diff --git a/src/warc.c b/src/warc.c +index 69f80be..17a48aa 100644 +--- a/src/warc.c ++++ b/src/warc.c +@@ -154,10 +154,11 @@ warc_write_buffer (const char *buffer, size_t size) + static bool + warc_write_string (const char *str) + { ++ size_t n; + if (!warc_write_ok) + return false; + +- size_t n = strlen (str); ++ n = strlen (str); + if (n != warc_write_buffer (str, n)) + warc_write_ok = false; + +@@ -246,8 +247,11 @@ warc_write_block_from_file (FILE *data_in) + { + /* Add the Content-Length header. */ + char *content_length; ++ char buffer[BUFSIZ]; ++ size_t s; ++ + fseeko (data_in, 0L, SEEK_END); +- if (! asprintf (&content_length, "%ld", ftello (data_in))) ++ if (! asprintf (&content_length, "%ld", (long int)ftello (data_in))) + { + warc_write_ok = false; + return false; +@@ -262,8 +266,6 @@ warc_write_block_from_file (FILE *data_in) + warc_write_ok = false; + + /* Copy the data in the file to the WARC record. */ +- char buffer[BUFSIZ]; +- size_t s; + while (warc_write_ok && (s = fread (buffer, 1, BUFSIZ, data_in)) > 0) + { + if (warc_write_buffer (buffer, s) < s) +@@ -288,6 +290,12 @@ warc_write_end_record (void) + /* We start a new gzip stream for each record. */ + if (warc_write_ok && warc_current_gzfile) + { ++ size_t result; ++ char static_header[GZIP_STATIC_HEADER_SIZE]; ++ off_t current_offset; ++ off_t uncompressed_size; ++ off_t compressed_size; ++ char extra_header[EXTRA_GZIP_HEADER_SIZE]; + if (gzclose (warc_current_gzfile) != Z_OK) + { + warc_write_ok = false; +@@ -313,17 +321,16 @@ warc_write_end_record (void) + */ + + /* Calculate the uncompressed and compressed sizes. */ +- off_t current_offset = ftello (warc_current_file); +- off_t uncompressed_size = current_offset - warc_current_gzfile_offset; +- off_t compressed_size = warc_current_gzfile_uncompressed_size; ++ current_offset = ftello (warc_current_file); ++ uncompressed_size = current_offset - warc_current_gzfile_offset; ++ compressed_size = warc_current_gzfile_uncompressed_size; + + /* Go back to the static GZIP header. */ + fseeko (warc_current_file, warc_current_gzfile_offset + + EXTRA_GZIP_HEADER_SIZE, SEEK_SET); + + /* Read the header. */ +- char static_header[GZIP_STATIC_HEADER_SIZE]; +- size_t result = fread (static_header, 1, GZIP_STATIC_HEADER_SIZE, ++ result = fread (static_header, 1, GZIP_STATIC_HEADER_SIZE, + warc_current_file); + if (result != GZIP_STATIC_HEADER_SIZE) + { +@@ -340,7 +347,6 @@ warc_write_end_record (void) + fwrite (static_header, 1, GZIP_STATIC_HEADER_SIZE, warc_current_file); + + /* Prepare the extra GZIP header. */ +- char extra_header[EXTRA_GZIP_HEADER_SIZE]; + /* XLEN, the length of the extra header fields. */ + extra_header[0] = ((EXTRA_GZIP_HEADER_SIZE - 2) & 255); + extra_header[1] = ((EXTRA_GZIP_HEADER_SIZE - 2) >> 8) & 255; +@@ -649,13 +655,15 @@ warc_write_warcinfo_record (char *filename) + /* Write warc-info record as the first record of the file. */ + /* We add the record id of this info record to the other records in the + file. */ ++ char timestamp[22]; ++ char *filename_copy, *filename_basename; ++ FILE *warc_tmp; ++ + warc_current_warcinfo_uuid_str = (char *) malloc (48); + warc_uuid_str (warc_current_warcinfo_uuid_str); + +- char timestamp[22]; + warc_timestamp (timestamp); + +- char *filename_copy, *filename_basename; + filename_copy = strdup (filename); + filename_basename = strdup (basename (filename_copy)); + +@@ -667,7 +675,7 @@ warc_write_warcinfo_record (char *filename) + warc_write_header ("WARC-Filename", filename_basename); + + /* Create content. */ +- FILE *warc_tmp = warc_tempfile (); ++ warc_tmp = warc_tempfile (); + if (warc_tmp == NULL) + { + free (filename_copy); +@@ -717,6 +725,10 @@ warc_write_warcinfo_record (char *filename) + static bool + warc_start_new_file (bool meta) + { ++ int base_filename_length; ++ char *new_filename; ++ const char *extension; ++ + if (opt.warc_filename == NULL) + return false; + +@@ -729,15 +741,15 @@ warc_start_new_file (bool meta) + + warc_current_file_number++; + +- int base_filename_length = strlen (opt.warc_filename); ++ base_filename_length = strlen (opt.warc_filename); + /* filename format: base + "-" + 5 digit serial number + ".warc.gz" */ +- char *new_filename = malloc (base_filename_length + 1 + 5 + 8 + 1); ++ new_filename = malloc (base_filename_length + 1 + 5 + 8 + 1); + warc_current_filename = new_filename; + + #ifdef HAVE_LIBZ +- const char *extension = (opt.warc_compression_enabled ? "warc.gz" : "warc"); ++ extension = (opt.warc_compression_enabled ? "warc.gz" : "warc"); + #else +- const char *extension = "warc"; ++ extension = "warc"; + #endif + + /* If max size is enabled, we add a serial number to the file names. */ +@@ -811,12 +823,13 @@ static bool + warc_parse_cdx_header (char *lineptr, int *field_num_original_url, + int *field_num_checksum, int *field_num_record_id) + { ++ char *token; ++ char *save_ptr; ++ + *field_num_original_url = -1; + *field_num_checksum = -1; + *field_num_record_id = -1; + +- char *token; +- char *save_ptr; + token = strtok_r (lineptr, CDX_FIELDSEP, &save_ptr); + + if (token != NULL && strcmp (token, "CDX") == 0) +@@ -860,10 +873,12 @@ warc_process_cdx_line (char *lineptr, int field_num_original_url, + + char *token; + char *save_ptr; ++ int field_num; ++ + token = strtok_r (lineptr, CDX_FIELDSEP, &save_ptr); + + /* Read this line to get the fields we need. */ +- int field_num = 0; ++ field_num = 0; + while (token != NULL) + { + char **val; +@@ -926,10 +941,7 @@ warc_process_cdx_line (char *lineptr, int field_num_original_url, + static bool + warc_load_cdx_dedup_file (void) + { +- FILE *f = fopen (opt.warc_cdx_dedup_filename, "r"); +- if (f == NULL) +- return false; +- ++ FILE *f; + int field_num_original_url = -1; + int field_num_checksum = -1; + int field_num_record_id = -1; +@@ -938,6 +950,10 @@ warc_load_cdx_dedup_file (void) + size_t n = 0; + ssize_t line_length; + ++ f = fopen (opt.warc_cdx_dedup_filename, "r"); ++ if (f == NULL) ++ return false; ++ + /* The first line should contain the CDX header. + Format: " CDX x x x x x" + where x are field type indicators. For our purposes, we only +@@ -965,6 +981,7 @@ _("CDX file does not list record ids. (Missing column 'u'.)\n")); + } + else + { ++ int nrecords; + /* Initialize the table. */ + warc_cdx_dedup_table = hash_table_new (1000, warc_hash_sha1_digest, + warc_cmp_sha1_digest); +@@ -982,7 +999,7 @@ _("CDX file does not list record ids. (Missing column 'u'.)\n")); + while (line_length != -1); + + /* Print results. */ +- int nrecords = hash_table_count (warc_cdx_dedup_table); ++ nrecords = hash_table_count (warc_cdx_dedup_table); + logprintf (LOG_VERBOSE, ngettext ("Loaded %d record from CDX.\n\n", + "Loaded %d records from CDX.\n\n", + nrecords), +@@ -1002,12 +1019,14 @@ _("CDX file does not list record ids. (Missing column 'u'.)\n")); + static struct warc_cdx_record * + warc_find_duplicate_cdx_record (char *url, char *sha1_digest_payload) + { ++ char *key; ++ struct warc_cdx_record *rec_existing; ++ int found; ++ + if (warc_cdx_dedup_table == NULL) + return NULL; + +- char *key; +- struct warc_cdx_record *rec_existing; +- int found = hash_table_get_pair (warc_cdx_dedup_table, sha1_digest_payload, ++ found = hash_table_get_pair (warc_cdx_dedup_table, sha1_digest_payload, + &key, &rec_existing); + + if (found && strcmp (rec_existing->url, url) == 0) +@@ -1079,11 +1098,13 @@ warc_init (void) + static void + warc_write_metadata (void) + { ++ char manifest_uuid [48]; ++ FILE * warc_tmp_fp; ++ + /* If there are multiple WARC files, the metadata should be written to a separate file. */ + if (opt.warc_maxsize > 0) + warc_start_new_file (true); + +- char manifest_uuid [48]; + warc_uuid_str (manifest_uuid); + + fflush (warc_manifest_fp); +@@ -1093,7 +1114,7 @@ warc_write_metadata (void) + warc_manifest_fp, -1); + /* warc_write_resource_record has closed warc_manifest_fp. */ + +- FILE * warc_tmp_fp = warc_tempfile (); ++ warc_tmp_fp = warc_tempfile (); + if (warc_tmp_fp == NULL) + { + logprintf (LOG_NOTQUIET, _("Could not open temporary WARC file.\n")); +@@ -1148,10 +1169,11 @@ FILE * + warc_tempfile (void) + { + char filename[100]; ++ int fd; + if (path_search (filename, 100, opt.warc_tempdir, "wget", true) == -1) + return NULL; + +- int fd = mkstemp (filename); ++ fd = mkstemp (filename); + if (fd < 0) + return NULL; + +@@ -1210,8 +1232,10 @@ warc_write_cdx_record (const char *url, const char *timestamp_str, + off_t offset, const char *warc_filename, + const char *response_uuid) + { +- /* Transform the timestamp. */ + char timestamp_str_cdx [15]; ++ const char *checksum; ++ ++ /* Transform the timestamp. */ + memcpy (timestamp_str_cdx , timestamp_str , 4); /* "YYYY" "-" */ + memcpy (timestamp_str_cdx + 4, timestamp_str + 5, 2); /* "mm" "-" */ + memcpy (timestamp_str_cdx + 6, timestamp_str + 8, 2); /* "dd" "T" */ +@@ -1221,7 +1245,6 @@ warc_write_cdx_record (const char *url, const char *timestamp_str, + timestamp_str_cdx[14] = '\0'; + + /* Rewrite the checksum. */ +- const char *checksum; + if (payload_digest != NULL) + checksum = payload_digest + 5; /* Skip the "sha1:" */ + else +@@ -1235,7 +1258,7 @@ warc_write_cdx_record (const char *url, const char *timestamp_str, + /* Print the CDX line. */ + fprintf (warc_current_cdx_file, "%s %s %s %s %d %s %s - %ld %s %s\n", url, + timestamp_str_cdx, url, mime_type, response_code, checksum, +- redirect_location, offset, warc_current_filename, response_uuid); ++ redirect_location, (long int)offset, warc_current_filename, response_uuid); + fflush (warc_current_cdx_file); + + return true; +@@ -1260,10 +1283,11 @@ warc_write_revisit_record (char *url, char *timestamp_str, + char *refers_to, ip_address *ip, FILE *body) + { + char revisit_uuid [48]; +- warc_uuid_str (revisit_uuid); +- + char *block_digest = NULL; + char sha1_res_block[SHA1_DIGEST_SIZE]; ++ ++ warc_uuid_str (revisit_uuid); ++ + sha1_stream (body, sha1_res_block); + block_digest = warc_base32_sha1_digest (sha1_res_block); + +@@ -1314,6 +1338,9 @@ warc_write_response_record (char *url, char *timestamp_str, + char sha1_res_block[SHA1_DIGEST_SIZE]; + char sha1_res_payload[SHA1_DIGEST_SIZE]; + ++ char response_uuid [48]; ++ off_t offset; ++ + if (opt.warc_digests_enabled) + { + /* Calculate the block and payload digests. */ +@@ -1357,11 +1384,10 @@ warc_write_response_record (char *url, char *timestamp_str, + + /* Not a revisit, just store the record. */ + +- char response_uuid [48]; + warc_uuid_str (response_uuid); + + fseeko (warc_current_file, 0L, SEEK_END); +- off_t offset = ftello (warc_current_file); ++ offset = ftello (warc_current_file); + + warc_write_start_record (); + warc_write_header ("WARC-Type", "response"); +-- +1.8.3.4 + diff --git a/net-misc/wget/patches/wget-1.14-pod-fixes.patch b/net-misc/wget/patches/wget-1.14-pod-fixes.patch new file mode 100644 index 000000000..54e985624 --- /dev/null +++ b/net-misc/wget/patches/wget-1.14-pod-fixes.patch @@ -0,0 +1,81 @@ +diff -Naur wget-1.14.orig/doc/wget.texi wget-1.14.new/doc/wget.texi +--- wget-1.14.orig/doc/wget.texi 2012-08-04 02:41:52.000000000 -0600 ++++ wget-1.14.new/doc/wget.texi 2013-05-26 11:18:52.986107183 -0600 +@@ -876,7 +876,7 @@ + actions of one. + + @cindex proxy +-@itemx --no-proxy ++@item --no-proxy + Don't use proxies, even if the appropriate @code{*_proxy} environment + variable is defined. + +@@ -977,7 +977,7 @@ + whose encoding does not match the one used locally. + + @cindex IPv6 +-@itemx -4 ++@item -4 + @itemx --inet4-only + @itemx -6 + @itemx --inet6-only +@@ -2106,32 +2106,32 @@ + + + @table @asis +-@item 0 ++@item C<0> + No problems occurred. + +-@item 1 ++@item C<1> + Generic error code. + +-@item 2 ++@item C<2> + Parse error---for instance, when parsing command-line options, the + @samp{.wgetrc} or @samp{.netrc}... + +-@item 3 ++@item C<3> + File I/O error. + +-@item 4 ++@item C<4> + Network failure. + +-@item 5 ++@item C<5> + SSL verification failure. + +-@item 6 ++@item C<6> + Username/password authentication failure. + +-@item 7 ++@item C<7> + Protocol errors. + +-@item 8 ++@item C<8> + Server issued an error response. + @end table + +@@ -3094,7 +3094,7 @@ + Change setting of passive @sc{ftp}, equivalent to the + @samp{--passive-ftp} option. + +-@itemx password = @var{string} ++@item password = @var{string} + Specify password @var{string} for both @sc{ftp} and @sc{http} file retrieval. + This command can be overridden using the @samp{ftp_password} and + @samp{http_password} command for @sc{ftp} and @sc{http} respectively. +@@ -3605,7 +3605,7 @@ + may be specified from within Wget itself. + + @table @samp +-@itemx --no-proxy ++@item --no-proxy + @itemx proxy = on/off + This option and the corresponding command may be used to suppress the + use of proxy, even if the appropriate environment variables are set. diff --git a/net-misc/wget/patches/wget-1.14.patch b/net-misc/wget/patches/wget-1.14.patch new file mode 100644 index 000000000..2ec0a3aef --- /dev/null +++ b/net-misc/wget/patches/wget-1.14.patch @@ -0,0 +1,90 @@ +diff --git a/configure.ac b/configure.ac +index 873c3c9..45d6602 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -161,6 +161,7 @@ AC_HEADER_STDBOOL + AC_CHECK_HEADERS(unistd.h sys/time.h) + AC_CHECK_HEADERS(termios.h sys/ioctl.h sys/select.h utime.h sys/utime.h) + AC_CHECK_HEADERS(stdint.h inttypes.h pwd.h wchar.h) ++AC_CHECK_HEADERS(arpa/inet.h) + + AC_CHECK_DECLS(h_errno,,,[#include ]) + +diff --git a/m4/wget.m4 b/m4/wget.m4 +index 02d0cf9..33825e2 100644 +--- a/m4/wget.m4 ++++ b/m4/wget.m4 +@@ -88,6 +88,7 @@ AC_DEFUN([WGET_POSIX_CLOCK], [ + + dnl Check whether we need to link with -lnsl and -lsocket, as is the + dnl case on e.g. Solaris. ++dnl Haiku needs libnetwork + + AC_DEFUN([WGET_NSL_SOCKET], [ + dnl On Solaris, -lnsl is needed to use gethostbyname. But checking +@@ -107,6 +108,8 @@ AC_DEFUN([WGET_NSL_SOCKET], [ + AC_CHECK_LIB(nsl, $wget_check_in_nsl) + fi + AC_CHECK_LIB(socket, socket) ++ AC_CHECK_LIB(network, gethostbyname) ++ AC_CHECK_LIB(network, socket) + ]) + + +diff --git a/src/config.h.in b/src/config.h.in +index 123560b..30a98f9 100644 +--- a/src/config.h.in ++++ b/src/config.h.in +@@ -656,6 +656,9 @@ + /* Define to 1 if you have the header file. */ + #undef HAVE_LANGINFO_H + ++/* Define to 1 if you have the `bind' library (-lbind). */ ++#undef HAVE_LIBBIND ++ + /* Define to 1 if you have the `dl' library (-ldl). */ + #undef HAVE_LIBDL + +@@ -668,6 +671,9 @@ + /* Define if you have the libgnutls library. */ + #undef HAVE_LIBGNUTLS + ++/* Define to 1 if you have the `network' library (-lnetwork). */ ++#undef HAVE_LIBNETWORK ++ + /* Define to 1 if you have the `gpg-error' library (-lgpg-error). */ + #undef HAVE_LIBGPG_ERROR + +diff --git a/src/connect.c b/src/connect.c +index 119ccb7..7237484 100644 +--- a/src/connect.c ++++ b/src/connect.c +@@ -46,7 +46,7 @@ as that of the covered work. */ + # include + # endif /* def __VMS [else] */ + # include +-# ifndef __BEOS__ ++# ifdef HAVE_ARPA_INET_H + # include + # endif + #endif /* not WINDOWS */ +diff --git a/src/host.h b/src/host.h +index 3f27ea0..3cd3ed9 100644 +--- a/src/host.h ++++ b/src/host.h +@@ -42,9 +42,9 @@ as that of the covered work. */ + # endif /* def __VMS [else] */ + # include + # include +-#ifndef __BEOS__ +-# include +-#endif ++# ifdef HAVE_ARPA_INET_H ++# include ++# endif + #endif + + struct url; +-- +1.8.3.4 + diff --git a/net-misc/wget/patches/wget-1.15.patchset b/net-misc/wget/patches/wget-1.15.patchset new file mode 100644 index 000000000..7df49d780 --- /dev/null +++ b/net-misc/wget/patches/wget-1.15.patchset @@ -0,0 +1,678 @@ +From d44e24178a9dd9864e7ac068249444a1d95b9af1 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Mon, 19 May 2014 15:38:37 +0000 +Subject: apply wget-1.14.patch + + +diff --git a/configure.ac b/configure.ac +index b24588f..b396ec2 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -161,6 +161,7 @@ AC_HEADER_STDBOOL + AC_CHECK_HEADERS(unistd.h sys/time.h) + AC_CHECK_HEADERS(termios.h sys/ioctl.h sys/select.h utime.h sys/utime.h) + AC_CHECK_HEADERS(stdint.h inttypes.h pwd.h wchar.h) ++AC_CHECK_HEADERS(arpa/inet.h) + + AC_CHECK_DECLS(h_errno,,,[#include ]) + +diff --git a/m4/wget.m4 b/m4/wget.m4 +index 777e973..5a8b75d 100644 +--- a/m4/wget.m4 ++++ b/m4/wget.m4 +@@ -88,6 +88,7 @@ AC_DEFUN([WGET_POSIX_CLOCK], [ + + dnl Check whether we need to link with -lnsl and -lsocket, as is the + dnl case on e.g. Solaris. ++dnl Haiku needs libnetwork + + AC_DEFUN([WGET_NSL_SOCKET], [ + dnl On Solaris, -lnsl is needed to use gethostbyname. But checking +@@ -107,6 +108,8 @@ AC_DEFUN([WGET_NSL_SOCKET], [ + AC_CHECK_LIB(nsl, $wget_check_in_nsl) + fi + AC_CHECK_LIB(socket, socket) ++ AC_CHECK_LIB(network, gethostbyname) ++ AC_CHECK_LIB(network, socket) + ]) + + +diff --git a/src/config.h.in b/src/config.h.in +index 4b03033..a4543c4 100644 +--- a/src/config.h.in ++++ b/src/config.h.in +@@ -672,6 +672,9 @@ + /* Define to 1 if you have the header file. */ + #undef HAVE_LANGINFO_H + ++/* Define to 1 if you have the `bind' library (-lbind). */ ++#undef HAVE_LIBBIND ++ + /* Define to 1 if you have the `dl' library (-ldl). */ + #undef HAVE_LIBDL + +@@ -684,6 +687,9 @@ + /* Define to 1 if you have the header file. */ + #undef HAVE_LIBINTL_H + ++/* Define to 1 if you have the `network' library (-lnetwork). */ ++#undef HAVE_LIBNETWORK ++ + /* Define to 1 if you have the `nsl' library (-lnsl). */ + #undef HAVE_LIBNSL + +diff --git a/src/connect.c b/src/connect.c +index bfb079b..916a90e 100644 +--- a/src/connect.c ++++ b/src/connect.c +@@ -46,7 +46,7 @@ as that of the covered work. */ + # include + # endif /* def __VMS [else] */ + # include +-# ifndef __BEOS__ ++# ifdef HAVE_ARPA_INET_H + # include + # endif + #endif /* not WINDOWS */ +diff --git a/src/host.h b/src/host.h +index 3f27ea0..3cd3ed9 100644 +--- a/src/host.h ++++ b/src/host.h +@@ -42,9 +42,9 @@ as that of the covered work. */ + # endif /* def __VMS [else] */ + # include + # include +-#ifndef __BEOS__ +-# include +-#endif ++# ifdef HAVE_ARPA_INET_H ++# include ++# endif + #endif + + struct url; +-- +1.8.3.4 + + +From d91114a406b6b16542a77b55ebe140314ce803c1 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Mon, 19 May 2014 15:47:24 +0000 +Subject: apply and augment wget-1.14-build-fixes.patch + + +diff --git a/src/ftp-basic.c b/src/ftp-basic.c +index 7a512c6..7237cd1 100644 +--- a/src/ftp-basic.c ++++ b/src/ftp-basic.c +@@ -969,8 +969,6 @@ ftp_list (int csock, const char *file, bool avoid_list_a, bool avoid_list, + bool ok = false; + size_t i = 0; + +- *list_a_used = false; +- + /* 2013-10-12 Andrea Urbani (matfanjol) + For more information about LIST and "LIST -a" please look at ftp.c, + function getftp, text "__LIST_A_EXPLANATION__". +@@ -979,7 +977,9 @@ ftp_list (int csock, const char *file, bool avoid_list_a, bool avoid_list, + later "i" variable. */ + const char *list_commands[] = { "LIST -a", + "LIST" }; ++ *list_a_used = false; + ++ + if (avoid_list_a) + { + i = countof (list_commands)- 1; +diff --git a/src/html-url.c b/src/html-url.c +index 1bb44b4..5285983 100644 +--- a/src/html-url.c ++++ b/src/html-url.c +@@ -789,6 +789,7 @@ get_urls_file (const char *file) + char *url_text; + struct urlpos *entry; + struct url *url; ++ char *new_url; + + const char *line_beg = text; + const char *line_end = memchr (text, '\n', text_end - text); +@@ -821,7 +822,7 @@ get_urls_file (const char *file) + url_text = merged; + } + +- char *new_url = rewrite_shorthand_url (url_text); ++ new_url = rewrite_shorthand_url (url_text); + if (new_url) + { + xfree (url_text); +diff --git a/src/http.c b/src/http.c +index 5715df6..38ee4b1 100644 +--- a/src/http.c ++++ b/src/http.c +@@ -29,6 +29,7 @@ Corresponding Source for a non-source form of such a combination + shall include the source code for the parts of OpenSSL used as well + as that of the covered work. */ + ++#define __USE_GNU + #include "wget.h" + + #include +@@ -1067,6 +1068,7 @@ extract_param (const char **source, param_token *name, param_token *value, + char separator) + { + const char *p = *source; ++ int param_type; + + while (c_isspace (*p)) ++p; + if (!*p) +@@ -1122,7 +1124,7 @@ extract_param (const char **source, param_token *name, param_token *value, + } + *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); +@@ -1512,6 +1514,7 @@ read_response_body (struct http_stat *hs, int sock, FILE *fp, wgint contlen, + int warc_payload_offset = 0; + FILE *warc_tmp = NULL; + int warcerr = 0; ++ int flags; + + if (opt.warc_filename != NULL) + { +@@ -1548,7 +1551,7 @@ read_response_body (struct http_stat *hs, int sock, FILE *fp, wgint contlen, + } + + /* Read the response body. */ +- int flags = 0; ++ flags = 0; + if (contlen != -1) + /* If content-length is present, read that much; otherwise, read + until EOF. The HTTP spec doesn't require the server to +@@ -1653,6 +1656,7 @@ static uerr_t + gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy, + struct iri *iri, int count) + { ++ int warc_tmp_written; + struct request *req; + + char *type; +@@ -2125,10 +2129,11 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy, + if (write_error >= 0 && warc_tmp != NULL) + { + /* Remember end of headers / start of payload. */ ++ int warc_tmp_written; + warc_payload_offset = ftello (warc_tmp); + + /* Write a copy of the data to the WARC record. */ +- int warc_tmp_written = fwrite (opt.body_data, 1, body_data_size, warc_tmp); ++ warc_tmp_written = fwrite (opt.body_data, 1, body_data_size, warc_tmp); + if (warc_tmp_written != body_data_size) + write_error = -2; + } +@@ -2309,6 +2314,7 @@ read_header: + + if (statcode == HTTP_STATUS_UNAUTHORIZED) + { ++ uerr_t auth_err; + /* Authorization is required. */ + + /* Normally we are not interested in the response body. +@@ -2347,7 +2353,7 @@ read_header: + } + + pconn.authorized = false; +- uerr_t auth_err = RETROK; ++ auth_err = RETROK; + if (!auth_finished && (user && passwd)) + { + /* IIS sends multiple copies of WWW-Authenticate, one with +diff --git a/src/main.c b/src/main.c +index 19d7253..ea6986e 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -987,13 +987,20 @@ main (int argc, char **argv) + int i, ret, longindex; + int nurl; + bool append_to_log = false; ++ struct ptimer *timer; ++ double start_time; ++ int arglen; ++ int argstring_length; ++ int retconf; ++ bool use_userconfig = false; ++ char *p; + + total_downloaded_bytes = 0; + + program_name = argv[0]; + +- struct ptimer *timer = ptimer_new (); +- double start_time = ptimer_measure (timer); ++ timer = ptimer_new (); ++ start_time = ptimer_measure (timer); + + i18n_initialize (); + +@@ -1015,10 +1022,10 @@ main (int argc, char **argv) + #endif + + /* Construct the arguments string. */ +- int argstring_length = 1; ++ argstring_length = 1; + for (i = 1; i < argc; i++) + argstring_length += strlen (argv[i]) + 2 + 1; +- char *p = program_argstring = malloc (argstring_length * sizeof (char)); ++ p = program_argstring = malloc (argstring_length * sizeof (char)); + if (p == NULL) + { + fprintf (stderr, _("Memory allocation problem\n")); +@@ -1027,7 +1034,7 @@ main (int argc, char **argv) + for (i = 1; i < argc; i++) + { + *p++ = '"'; +- int arglen = strlen (argv[i]); ++ arglen = strlen (argv[i]); + memcpy (p, argv[i], arglen); + p += arglen; + *p++ = '"'; +@@ -1043,8 +1050,6 @@ main (int argc, char **argv) + /* This separate getopt_long is needed to find the user config file + option ("--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) +@@ -1672,10 +1677,12 @@ outputting to a regular file.\n")); + total_downloaded_bytes != 0) + { + double end_time = ptimer_measure (timer); ++ char *wall_time; ++ char *download_time; + 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/src/retr.c b/src/retr.c +index 683c811..c0a815e 100644 +--- a/src/retr.c ++++ b/src/retr.c +@@ -377,8 +377,9 @@ fd_read_body (int fd, FILE *out, wgint toread, wgint startpos, + + if (ret > 0) + { ++ int write_res; + sum_read += ret; +- int write_res = write_data (out, out2, dlbuf, ret, &skip, &sum_written); ++ write_res = write_data (out, out2, dlbuf, ret, &skip, &sum_written); + if (write_res < 0) + { + ret = (write_res == -3) ? -3 : -2; +diff --git a/src/utils.c b/src/utils.c +index 4354668..d5fecc1 100644 +--- a/src/utils.c ++++ b/src/utils.c +@@ -64,7 +64,9 @@ as that of the covered work. */ + #include + + /* For TIOCGWINSZ and friends: */ ++#ifndef __HAIKU__ + #include ++#endif + #ifdef HAVE_TERMIOS_H + # include + #endif +diff --git a/src/version.c b/src/version.c +new file mode 100644 +index 0000000..5ee99d1 +--- /dev/null ++++ b/src/version.c +@@ -0,0 +1,6 @@ ++/* version.c */ ++/* Autogenerated by Makefile - DO NOT EDIT */ ++ ++const char *version_string = "1.15"; ++const char *compilation_string = "gcc -DHAVE_CONFIG_H -DSYSTEM_WGETRC=\"/packages/wget-1.15-1/.settings/wgetrc\" -DLOCALEDIR=\"/packages/wget-1.15-1/.self/data/locale\" -I. -I../lib -I../lib -O2 -Wall"; ++const char *link_string = "gcc -O2 -Wall -lssl -lcrypto -lz -lnetwork -lnetwork -lsocket ftp-opie.o openssl.o http-ntlm.o ../lib/libgnu.a"; +diff --git a/src/warc.c b/src/warc.c +index c3a5857..8dcc055 100644 +--- a/src/warc.c ++++ b/src/warc.c +@@ -160,10 +160,11 @@ warc_write_buffer (const char *buffer, size_t size) + static bool + warc_write_string (const char *str) + { ++ size_t n; + if (!warc_write_ok) + return false; + +- size_t n = strlen (str); ++ n = strlen (str); + if (n != warc_write_buffer (str, n)) + warc_write_ok = false; + +@@ -251,6 +252,8 @@ static bool + warc_write_block_from_file (FILE *data_in) + { + /* Add the Content-Length header. */ ++ char buffer[BUFSIZ]; ++ size_t s; + char content_length[MAX_INT_TO_STRING_LEN(off_t)]; + fseeko (data_in, 0L, SEEK_END); + number_to_string (content_length, ftello (data_in)); +@@ -263,8 +266,6 @@ warc_write_block_from_file (FILE *data_in) + warc_write_ok = false; + + /* Copy the data in the file to the WARC record. */ +- char buffer[BUFSIZ]; +- size_t s; + while (warc_write_ok && (s = fread (buffer, 1, BUFSIZ, data_in)) > 0) + { + if (warc_write_buffer (buffer, s) < s) +@@ -289,6 +290,12 @@ warc_write_end_record (void) + /* We start a new gzip stream for each record. */ + if (warc_write_ok && warc_current_gzfile) + { ++ size_t result; ++ char static_header[GZIP_STATIC_HEADER_SIZE]; ++ off_t current_offset; ++ off_t uncompressed_size; ++ off_t compressed_size; ++ char extra_header[EXTRA_GZIP_HEADER_SIZE]; + if (gzclose (warc_current_gzfile) != Z_OK) + { + warc_write_ok = false; +@@ -314,17 +321,16 @@ warc_write_end_record (void) + */ + + /* Calculate the uncompressed and compressed sizes. */ +- off_t current_offset = ftello (warc_current_file); +- off_t uncompressed_size = current_offset - warc_current_gzfile_offset; +- off_t compressed_size = warc_current_gzfile_uncompressed_size; ++ current_offset = ftello (warc_current_file); ++ uncompressed_size = current_offset - warc_current_gzfile_offset; ++ compressed_size = warc_current_gzfile_uncompressed_size; + + /* Go back to the static GZIP header. */ + fseeko (warc_current_file, warc_current_gzfile_offset + + EXTRA_GZIP_HEADER_SIZE, SEEK_SET); + + /* Read the header. */ +- char static_header[GZIP_STATIC_HEADER_SIZE]; +- size_t result = fread (static_header, 1, GZIP_STATIC_HEADER_SIZE, ++ result = fread (static_header, 1, GZIP_STATIC_HEADER_SIZE, + warc_current_file); + if (result != GZIP_STATIC_HEADER_SIZE) + { +@@ -341,7 +347,6 @@ warc_write_end_record (void) + fwrite (static_header, 1, GZIP_STATIC_HEADER_SIZE, warc_current_file); + + /* Prepare the extra GZIP header. */ +- char extra_header[EXTRA_GZIP_HEADER_SIZE]; + /* XLEN, the length of the extra header fields. */ + extra_header[0] = ((EXTRA_GZIP_HEADER_SIZE - 2) & 255); + extra_header[1] = ((EXTRA_GZIP_HEADER_SIZE - 2) >> 8) & 255; +@@ -653,13 +658,15 @@ warc_write_warcinfo_record (char *filename) + /* Write warc-info record as the first record of the file. */ + /* We add the record id of this info record to the other records in the + file. */ ++ char timestamp[22]; ++ char *filename_copy, *filename_basename; ++ FILE *warc_tmp; ++ + warc_current_warcinfo_uuid_str = (char *) malloc (48); + warc_uuid_str (warc_current_warcinfo_uuid_str); + +- char timestamp[22]; + warc_timestamp (timestamp); + +- char *filename_copy, *filename_basename; + filename_copy = strdup (filename); + filename_basename = strdup (basename (filename_copy)); + +@@ -671,7 +678,7 @@ warc_write_warcinfo_record (char *filename) + warc_write_header ("WARC-Filename", filename_basename); + + /* Create content. */ +- FILE *warc_tmp = warc_tempfile (); ++ warc_tmp = warc_tempfile (); + if (warc_tmp == NULL) + { + free (filename_copy); +@@ -721,6 +728,10 @@ warc_write_warcinfo_record (char *filename) + static bool + warc_start_new_file (bool meta) + { ++ int base_filename_length; ++ char *new_filename; ++ const char *extension; ++ + if (opt.warc_filename == NULL) + return false; + +@@ -732,9 +743,9 @@ warc_start_new_file (bool meta) + + warc_current_file_number++; + +- int base_filename_length = strlen (opt.warc_filename); ++ base_filename_length = strlen (opt.warc_filename); + /* filename format: base + "-" + 5 digit serial number + ".warc.gz" */ +- char *new_filename = malloc (base_filename_length + 1 + 5 + 8 + 1); ++ new_filename = malloc (base_filename_length + 1 + 5 + 8 + 1); + warc_current_filename = new_filename; + + #ifdef __VMS +@@ -744,9 +755,9 @@ warc_start_new_file (bool meta) + #endif /* def __VMS [else] */ + + #ifdef HAVE_LIBZ +- const char *extension = (opt.warc_compression_enabled ? WARC_GZ : "warc"); ++ extension = (opt.warc_compression_enabled ? WARC_GZ : "warc"); + #else +- const char *extension = "warc"; ++ extension = "warc"; + #endif + + /* If max size is enabled, we add a serial number to the file names. */ +@@ -820,12 +831,13 @@ static bool + warc_parse_cdx_header (char *lineptr, int *field_num_original_url, + int *field_num_checksum, int *field_num_record_id) + { ++ char *token; ++ char *save_ptr; ++ + *field_num_original_url = -1; + *field_num_checksum = -1; + *field_num_record_id = -1; + +- char *token; +- char *save_ptr; + token = strtok_r (lineptr, CDX_FIELDSEP, &save_ptr); + + if (token != NULL && strcmp (token, "CDX") == 0) +@@ -869,10 +881,12 @@ warc_process_cdx_line (char *lineptr, int field_num_original_url, + + char *token; + char *save_ptr; ++ int field_num; ++ + token = strtok_r (lineptr, CDX_FIELDSEP, &save_ptr); + + /* Read this line to get the fields we need. */ +- int field_num = 0; ++ field_num = 0; + while (token != NULL) + { + char **val; +@@ -934,10 +948,7 @@ warc_process_cdx_line (char *lineptr, int field_num_original_url, + static bool + warc_load_cdx_dedup_file (void) + { +- FILE *f = fopen (opt.warc_cdx_dedup_filename, "r"); +- if (f == NULL) +- return false; +- ++ FILE *f; + int field_num_original_url = -1; + int field_num_checksum = -1; + int field_num_record_id = -1; +@@ -946,6 +957,10 @@ warc_load_cdx_dedup_file (void) + size_t n = 0; + ssize_t line_length; + ++ f = fopen (opt.warc_cdx_dedup_filename, "r"); ++ if (f == NULL) ++ return false; ++ + /* The first line should contain the CDX header. + Format: " CDX x x x x x" + where x are field type indicators. For our purposes, we only +@@ -973,6 +988,7 @@ _("CDX file does not list record ids. (Missing column 'u'.)\n")); + } + else + { ++ int nrecords; + /* Initialize the table. */ + warc_cdx_dedup_table = hash_table_new (1000, warc_hash_sha1_digest, + warc_cmp_sha1_digest); +@@ -990,7 +1006,7 @@ _("CDX file does not list record ids. (Missing column 'u'.)\n")); + while (line_length != -1); + + /* Print results. */ +- int nrecords = hash_table_count (warc_cdx_dedup_table); ++ nrecords = hash_table_count (warc_cdx_dedup_table); + logprintf (LOG_VERBOSE, ngettext ("Loaded %d record from CDX.\n\n", + "Loaded %d records from CDX.\n\n", + nrecords), +@@ -1010,10 +1026,11 @@ _("CDX file does not list record ids. (Missing column 'u'.)\n")); + static struct warc_cdx_record * + warc_find_duplicate_cdx_record (char *url, char *sha1_digest_payload) + { ++ struct warc_cdx_record *rec_existing; + if (warc_cdx_dedup_table == NULL) + return NULL; + +- struct warc_cdx_record *rec_existing ++ rec_existing + = hash_table_get (warc_cdx_dedup_table, sha1_digest_payload); + + if (rec_existing && strcmp (rec_existing->url, url) == 0) +@@ -1085,11 +1102,13 @@ warc_init (void) + static void + warc_write_metadata (void) + { ++ char manifest_uuid [48]; ++ FILE * warc_tmp_fp; ++ + /* If there are multiple WARC files, the metadata should be written to a separate file. */ + if (opt.warc_maxsize > 0) + warc_start_new_file (true); + +- char manifest_uuid [48]; + warc_uuid_str (manifest_uuid); + + fflush (warc_manifest_fp); +@@ -1099,7 +1118,7 @@ warc_write_metadata (void) + warc_manifest_fp, -1); + /* warc_write_resource_record has closed warc_manifest_fp. */ + +- FILE * warc_tmp_fp = warc_tempfile (); ++ warc_tmp_fp = warc_tempfile (); + if (warc_tmp_fp == NULL) + { + logprintf (LOG_NOTQUIET, _("Could not open temporary WARC file.\n")); +@@ -1153,6 +1172,7 @@ warc_close (void) + FILE * + warc_tempfile (void) + { ++ int fd; + char filename[100]; + if (path_search (filename, 100, opt.warc_tempdir, "wget", true) == -1) + return NULL; +@@ -1172,7 +1192,7 @@ warc_tempfile (void) + return fopen (tfn, "w+", "fop=tmd"); /* Create auto-delete temp file. */ + } + #else /* def __VMS */ +- int fd = mkostemp (filename, O_TEMPORARY); ++ fd = mkostemp (filename, O_TEMPORARY); + if (fd < 0) + return NULL; + +@@ -1234,8 +1254,11 @@ warc_write_cdx_record (const char *url, const char *timestamp_str, + off_t offset, const char *warc_filename, + const char *response_uuid) + { +- /* Transform the timestamp. */ ++ char offset_string[MAX_INT_TO_STRING_LEN(off_t)]; + char timestamp_str_cdx [15]; ++ const char *checksum; ++ ++ /* Transform the timestamp. */ + memcpy (timestamp_str_cdx , timestamp_str , 4); /* "YYYY" "-" */ + memcpy (timestamp_str_cdx + 4, timestamp_str + 5, 2); /* "mm" "-" */ + memcpy (timestamp_str_cdx + 6, timestamp_str + 8, 2); /* "dd" "T" */ +@@ -1245,7 +1268,6 @@ warc_write_cdx_record (const char *url, const char *timestamp_str, + timestamp_str_cdx[14] = '\0'; + + /* Rewrite the checksum. */ +- const char *checksum; + if (payload_digest != NULL) + checksum = payload_digest + 5; /* Skip the "sha1:" */ + else +@@ -1256,7 +1278,6 @@ warc_write_cdx_record (const char *url, const char *timestamp_str, + if (redirect_location == NULL || strlen(redirect_location) == 0) + redirect_location = "-"; + +- char offset_string[MAX_INT_TO_STRING_LEN(off_t)]; + number_to_string (offset_string, offset); + + /* Print the CDX line. */ +@@ -1288,10 +1309,11 @@ warc_write_revisit_record (char *url, char *timestamp_str, + char *refers_to, ip_address *ip, FILE *body) + { + char revisit_uuid [48]; +- warc_uuid_str (revisit_uuid); +- + char *block_digest = NULL; + char sha1_res_block[SHA1_DIGEST_SIZE]; ++ ++ warc_uuid_str (revisit_uuid); ++ + sha1_stream (body, sha1_res_block); + block_digest = warc_base32_sha1_digest (sha1_res_block); + +@@ -1342,6 +1364,9 @@ warc_write_response_record (char *url, char *timestamp_str, + char sha1_res_block[SHA1_DIGEST_SIZE]; + char sha1_res_payload[SHA1_DIGEST_SIZE]; + ++ char response_uuid [48]; ++ off_t offset; ++ + if (opt.warc_digests_enabled) + { + /* Calculate the block and payload digests. */ +@@ -1385,11 +1410,10 @@ warc_write_response_record (char *url, char *timestamp_str, + + /* Not a revisit, just store the record. */ + +- char response_uuid [48]; + warc_uuid_str (response_uuid); + + fseeko (warc_current_file, 0L, SEEK_END); +- off_t offset = ftello (warc_current_file); ++ offset = ftello (warc_current_file); + + warc_write_start_record (); + warc_write_header ("WARC-Type", "response"); +-- +1.8.3.4 + diff --git a/net-misc/wget/wget-1.12.recipe b/net-misc/wget/wget-1.12.recipe deleted file mode 100644 index 88030be1d..000000000 --- a/net-misc/wget/wget-1.12.recipe +++ /dev/null @@ -1,26 +0,0 @@ -DESCRIPTION="wget" -HOMEPAGE="http://www.gnu.org/software/wget" -SRC_URI="http://ftp.gnu.org/gnu/wget/wget-1.12.tar.gz" -CHECKSUM_MD5="141461b9c04e454dc8933c9d1f2abf83" -REVISION="1" -STATUS_HAIKU="broken" -DEPEND="" -BUILD() -{ - cd wget-1.12 - libtoolize --force --copy --install - aclocal -I m4 - autoconf - ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --disable-nls --disable-ipv6 - make -} - -INSTALL() -{ - cd wget-1.12 - make install -} - -LICENSE="GNU GPL v3" -COPYRIGHT="2009 Free Software Foundation" diff --git a/net-misc/wget/wget-1.13.4.recipe b/net-misc/wget/wget-1.13.4.recipe deleted file mode 100644 index 8b3a0e2f3..000000000 --- a/net-misc/wget/wget-1.13.4.recipe +++ /dev/null @@ -1,22 +0,0 @@ -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/wget/wget-1.14.recipe b/net-misc/wget/wget-1.14.recipe new file mode 100644 index 000000000..808e63fda --- /dev/null +++ b/net-misc/wget/wget-1.14.recipe @@ -0,0 +1,79 @@ +SUMMARY="A tool for downloading files from the internet" +DESCRIPTION=" +wget is a tool that can download files from the internet through protocols \ +such as HTTP, HTTPS and FTP. wget is non-interactive, so it can be called from \ +scripts. +" +HOMEPAGE="http://www.gnu.org/software/wget" +SRC_URI="http://ftp.gnu.org/gnu/wget/wget-1.14.tar.gz" +CHECKSUM_SHA256="f3a6898e3a765bb94435b04a6668db9e5d19b3e90e0c69a503a2773ae936c269" +LICENSE="GNU GPL v3" +COPYRIGHT="1996-2012 Free Software Foundation" +REVISION="2" +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + wget$secondaryArchSuffix = $portVersion + cmd:wget$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libcrypto$secondaryArchSuffix + lib:libssl$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libcrypto$secondaryArchSuffix + devel:libssl$secondaryArchSuffix + devel:libz$secondaryArchSuffix >= 1.2.3 + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:aclocal + cmd:autoconf + cmd:libtoolize + cmd:make + cmd:makeinfo + cmd:pod2man + " + +USER_SETTINGS_FILES=" + settings/wgetrc + " + +GLOBAL_WRITABLE_FILES=" + settings/wgetrc keep-old +" + +PATCHES=" + wget-1.14.patch + wget-1.14-build-fixes.patch + wget-1.14-pod-fixes.patch + " + +BUILD() +{ + libtoolize --force --copy --install + aclocal -I m4 + autoconf + runConfigure ./configure --with-ssl=openssl + make +} + +INSTALL() +{ + make install + # Tells wget where to find certificates + echo "ca_certificate=/boot/system/data/ssl/CARootCertificates.pem" > $settingsDir/wgetrc +} + +TEST() +{ + [ -d .git ] && mv .git .git-temp + make check || true + [ -d .git-temp ] && mv .git-temp .git +} diff --git a/net-misc/wget/wget-1.15.recipe b/net-misc/wget/wget-1.15.recipe new file mode 100644 index 000000000..9aa469763 --- /dev/null +++ b/net-misc/wget/wget-1.15.recipe @@ -0,0 +1,75 @@ +SUMMARY="A tool for downloading files from the internet" +DESCRIPTION=" +wget is a tool that can download files from the internet through protocols \ +such as HTTP, HTTPS and FTP. wget is non-interactive, so it can be called from \ +scripts. +" +HOMEPAGE="http://www.gnu.org/software/wget" +SRC_URI="http://ftp.gnu.org/gnu/wget/wget-1.15.tar.gz" +CHECKSUM_SHA256="52126be8cf1bddd7536886e74c053ad7d0ed2aa89b4b630f76785bac21695fcd" +LICENSE="GNU GPL v3" +COPYRIGHT="1996-2013 Free Software Foundation" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86 x86_gcc2" + +PROVIDES=" + wget$secondaryArchSuffix = $portVersion + cmd:wget$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libcrypto$secondaryArchSuffix + lib:libssl$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libcrypto$secondaryArchSuffix + devel:libssl$secondaryArchSuffix + devel:libz$secondaryArchSuffix >= 1.2.3 + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:aclocal + cmd:autoconf + cmd:libtoolize + cmd:make + cmd:makeinfo + cmd:pod2man + " + +USER_SETTINGS_FILES=" + settings/wgetrc + " + +GLOBAL_WRITABLE_FILES=" + settings/wgetrc keep-old +" + +PATCHES="wget-1.15.patchset" + +BUILD() +{ + libtoolize --force --copy --install + aclocal -I m4 + autoconf + runConfigure ./configure --with-ssl=openssl + make +} + +INSTALL() +{ + make install + # Tells wget where to find certificates + echo "ca_certificate=/boot/system/data/ssl/CARootCertificates.pem" > $settingsDir/wgetrc +} + +TEST() +{ + [ -d .git ] && mv .git .git-temp + make check || true + [ -d .git-temp ] && mv .git-temp .git +} diff --git a/net-misc/youtube_dl/youtube_dl-2013.12.20.recipe b/net-misc/youtube_dl/youtube_dl-2013.12.20.recipe new file mode 100644 index 000000000..0ae2bd54d --- /dev/null +++ b/net-misc/youtube_dl/youtube_dl-2013.12.20.recipe @@ -0,0 +1,53 @@ +SUMMARY="A command-line program to download videos from various sites" +DESCRIPTION=" +The program is usually invoked as youtube-dl followed by options and the video \ +URL. Run 'youtube-dl --help' and get a summary of all options. +Some YouTube videos are served using Adobe's proprietary RTMP protocol, which \ +imposes DRM restrictions and encrypts the connection. youtube-dl is not able \ +to download these videos by itself. +" +HOMEPAGE="http://rg3.github.io/youtube-dl/index.html" +SRC_URI="https://yt-dl.org/downloads/2013.12.20/youtube-dl-2013.12.20.tar.gz" +CHECKSUM_SHA256="eb83b2112c7098c32ab66f9051900e2a35d24992ba98e7ca74ef10a16e061933" +REVISION="1" +LICENSE="Public Domain" +COPYRIGHT="2006-2013 Ricardo Garcia Gonzalez" + +ARCHITECTURES="any" + +PROVIDES=" + youtube_dl = $portVersion + cmd:youtube_dl = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + cmd:python + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:make + cmd:zip + " + +SOURCE_DIR="youtube-dl" + +BUILD() +{ + true +} + +INSTALL() +{ + zip -q youtube-dl youtube_dl/*.py youtube_dl/*/*.py + zip -q -j youtube-dl youtube_dl/__main__.py + echo '#!/bin/python' > youtube-dl + cat youtube-dl.zip >> youtube-dl + rm youtube-dl.zip + chmod a+x youtube-dl + + mkdir -p $binDir $manDir/man1 + cp -a youtube-dl $binDir + cp -a youtube-dl.1 $manDir/man1 +} diff --git a/net-misc/youtube_dl/youtube_dl-2014.01.08.recipe b/net-misc/youtube_dl/youtube_dl-2014.01.08.recipe new file mode 100644 index 000000000..ab2f3a393 --- /dev/null +++ b/net-misc/youtube_dl/youtube_dl-2014.01.08.recipe @@ -0,0 +1,50 @@ +SUMMARY="A command-line program to download videos from various sites" +DESCRIPTION=" +The program is usually invoked as youtube-dl followed by options and the video \ +URL. Run 'youtube-dl --help' and get a summary of all options. +Some YouTube videos are served using Adobe's proprietary RTMP protocol, which \ +imposes DRM restrictions and encrypts the connection. youtube-dl is not able \ +to download these videos by itself. +" +HOMEPAGE="http://rg3.github.io/youtube-dl/index.html" +SRC_URI="https://yt-dl.org/downloads/2014.01.08/youtube-dl-2014.01.08.tar.gz" +CHECKSUM_SHA256="9b33c9d034d1fb50234719e5ffff948707944dfe406f376e6fae4cc185910329" +REVISION="1" +LICENSE="Public Domain" +COPYRIGHT="2006-2014 Ricardo Garcia Gonzalez" + +ARCHITECTURES="any" + +PROVIDES=" + youtube_dl = $portVersion + cmd:youtube_dl = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + cmd:python + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:zip + " + +SOURCE_DIR="youtube-dl" + +BUILD() +{ + zip -q youtube-dl youtube_dl/*.py youtube_dl/*/*.py + zip -q -j youtube-dl youtube_dl/__main__.py + echo '#!/bin/python' > youtube-dl + cat youtube-dl.zip >> youtube-dl + rm youtube-dl.zip + chmod a+x youtube-dl +} + +INSTALL() +{ + mkdir -p $binDir $manDir/man1 + cp -a youtube-dl $binDir + cp -a youtube-dl.1 $manDir/man1 +} diff --git a/net-misc/youtube_dl/youtube_dl-2014.01.23.recipe b/net-misc/youtube_dl/youtube_dl-2014.01.23.recipe new file mode 100644 index 000000000..f53022f16 --- /dev/null +++ b/net-misc/youtube_dl/youtube_dl-2014.01.23.recipe @@ -0,0 +1,50 @@ +SUMMARY="A command-line program to download videos from various sites" +DESCRIPTION=" +The program is usually invoked as youtube-dl followed by options and the video \ +URL. Run 'youtube-dl --help' and get a summary of all options. +Some YouTube videos are served using Adobe's proprietary RTMP protocol, which \ +imposes DRM restrictions and encrypts the connection. youtube-dl is not able \ +to download these videos by itself. +" +HOMEPAGE="http://rg3.github.io/youtube-dl/index.html" +SRC_URI="https://yt-dl.org/downloads/2014.01.23.4/youtube-dl-2014.01.23.4.tar.gz" +CHECKSUM_SHA256="a96d562be51aeb817b9952bff8c65ecab737575b7104381ce62185397408dc72" +REVISION="1" +LICENSE="Public Domain" +COPYRIGHT="2006-2014 Ricardo Garcia Gonzalez" + +ARCHITECTURES="any" + +PROVIDES=" + youtube_dl = $portVersion + cmd:youtube_dl = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + cmd:python + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:zip + " + +SOURCE_DIR="youtube-dl" + +BUILD() +{ + zip -q youtube-dl youtube_dl/*.py youtube_dl/*/*.py + zip -q -j youtube-dl youtube_dl/__main__.py + echo '#!/bin/python' > youtube-dl + cat youtube-dl.zip >> youtube-dl + rm youtube-dl.zip + chmod a+x youtube-dl +} + +INSTALL() +{ + mkdir -p $binDir $manDir/man1 + cp -a youtube-dl $binDir + cp -a youtube-dl.1 $manDir/man1 +} diff --git a/net-misc/youtube_dl/youtube_dl-2014.02.08.recipe b/net-misc/youtube_dl/youtube_dl-2014.02.08.recipe new file mode 100644 index 000000000..be59ab6bf --- /dev/null +++ b/net-misc/youtube_dl/youtube_dl-2014.02.08.recipe @@ -0,0 +1,50 @@ +SUMMARY="A command-line program to download videos from various sites" +DESCRIPTION=" +The program is usually invoked as youtube-dl followed by options and the video \ +URL. Run 'youtube-dl --help' and get a summary of all options. +Some YouTube videos are served using Adobe's proprietary RTMP protocol, which \ +imposes DRM restrictions and encrypts the connection. youtube-dl is not able \ +to download these videos by itself. +" +HOMEPAGE="http://rg3.github.io/youtube-dl/index.html" +SRC_URI="https://yt-dl.org/downloads/2014.02.08.2/youtube-dl-2014.02.08.2.tar.gz" +CHECKSUM_SHA256="068e598f32b817d9218bc6998a13112eb9d068942b82f8cda442458e398f4780" +REVISION="1" +LICENSE="Public Domain" +COPYRIGHT="2006-2014 Ricardo Garcia Gonzalez" + +ARCHITECTURES="any" + +PROVIDES=" + youtube_dl = $portVersion + cmd:youtube_dl = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + cmd:python + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:zip + " + +SOURCE_DIR="youtube-dl" + +BUILD() +{ + zip -q youtube-dl youtube_dl/*.py youtube_dl/*/*.py + zip -q -j youtube-dl youtube_dl/__main__.py + echo '#!/bin/python' > youtube-dl + cat youtube-dl.zip >> youtube-dl + rm youtube-dl.zip + chmod a+x youtube-dl +} + +INSTALL() +{ + mkdir -p $binDir $manDir/man1 + cp -a youtube-dl $binDir + cp -a youtube-dl.1 $manDir/man1 +} diff --git a/net-p2p/seeks/seeks-0.x_git.recipe b/net-p2p/seeks/seeks-0.x_git.recipe index 71ce8179b..2e1db4762 100644 --- a/net-p2p/seeks/seeks-0.x_git.recipe +++ b/net-p2p/seeks/seeks-0.x_git.recipe @@ -1,4 +1,7 @@ -DESCRIPTION="An Open Decentralized Platform for Collaborative Search, Filtering and content Curation" +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" diff --git a/net-p2p/transmission/patches/transmission-2.75.patch b/net-p2p/transmission/patches/transmission-2.75.patch index 91a47f0a3..4aa1b4cbe 100644 --- a/net-p2p/transmission/patches/transmission-2.75.patch +++ b/net-p2p/transmission/patches/transmission-2.75.patch @@ -1,6 +1,6 @@ -diff -Naur transmission-2.75/third-party/miniupnp/connecthostport.c transmission-2.75-haiku/transmission-2.75/third-party/miniupnp/connecthostport.c +diff -Naur transmission-2.75/third-party/miniupnp/connecthostport.c transmission-2.75-haiku/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 ++++ transmission-2.75-haiku/third-party/miniupnp/connecthostport.c 2012-12-08 17:06:33.040632320 +0000 @@ -24,6 +24,7 @@ #else /* #ifdef _WIN32 */ #include @@ -9,9 +9,9 @@ diff -Naur transmission-2.75/third-party/miniupnp/connecthostport.c transmission #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 +diff -Naur transmission-2.75/third-party/miniupnp/miniupnpc.c transmission-2.75-haiku/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 ++++ transmission-2.75-haiku/third-party/miniupnp/miniupnpc.c 2012-12-08 17:09:12.018087936 +0000 @@ -17,7 +17,7 @@ #endif #endif @@ -21,9 +21,9 @@ diff -Naur transmission-2.75/third-party/miniupnp/miniupnpc.c transmission-2.75- #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 +diff -Naur transmission-2.75/third-party/miniupnp/portlistingparse.c transmission-2.75-haiku/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 ++++ transmission-2.75-haiku/third-party/miniupnp/portlistingparse.c 2012-12-08 17:09:49.941359104 +0000 @@ -28,7 +28,7 @@ /* Helper function */ diff --git a/net-p2p/transmission/patches/transmission-2.82.patch b/net-p2p/transmission/patches/transmission-2.82.patch new file mode 100644 index 000000000..d874f536a --- /dev/null +++ b/net-p2p/transmission/patches/transmission-2.82.patch @@ -0,0 +1,108 @@ +diff -ur transmission-2.82/libtransmission/platform-quota.c transmission-2.82-haiku/libtransmission/platform-quota.c +--- transmission-2.82/libtransmission/platform-quota.c 2013-08-09 02:45:44.822345728 +0000 ++++ transmission-2.82-haiku/libtransmission/platform-quota.c 2013-12-27 10:29:53.872415232 +0000 +@@ -16,7 +16,7 @@ + #include /* getuid() */ + #include /* evutil_ascii_strcasecmp () */ + +-#ifndef WIN32 ++#if !defined(WIN32) && !defined(__HAIKU__) + #include /* types needed by quota.h */ + #if defined(__FreeBSD__) || defined(__OpenBSD__) + #include /* quotactl() */ +@@ -67,7 +67,7 @@ + **** + ***/ + +-#ifndef WIN32 ++#if !defined(WIN32) && !defined(__HAIKU__) + static const char * + getdev (const char * path) + { +@@ -300,7 +300,7 @@ + { + int64_t ret = -1; + +-#ifndef WIN32 ++#if !defined(WIN32) && !defined(__HAIKU__) + + if (info->fstype && !evutil_ascii_strcasecmp(info->fstype, "xfs")) + { +@@ -347,7 +347,7 @@ + + info = tr_new0 (struct tr_device_info, 1); + info->path = tr_strdup (path); +-#ifndef WIN32 ++#if !defined(WIN32) && !defined(__HAIKU__) + info->device = tr_strdup (getblkdev (path)); + info->fstype = tr_strdup (getfstype (path)); + #endif +diff -ur transmission-2.82/third-party/miniupnp/connecthostport.c transmission-2.82-haiku/third-party/miniupnp/connecthostport.c +--- transmission-2.82/third-party/miniupnp/connecthostport.c 2013-08-09 02:47:50.398196736 +0000 ++++ transmission-2.82-haiku/third-party/miniupnp/connecthostport.c 2013-12-27 10:30:00.589037568 +0000 +@@ -24,6 +24,7 @@ + #else /* #ifdef _WIN32 */ + #include + #include ++#include + #include + #define closesocket close + #include +diff -ur transmission-2.82/third-party/miniupnp/miniupnpc.c transmission-2.82-haiku/third-party/miniupnp/miniupnpc.c +--- transmission-2.82/third-party/miniupnp/miniupnpc.c 2013-08-09 02:47:50.894435328 +0000 ++++ transmission-2.82-haiku/third-party/miniupnp/miniupnpc.c 2013-12-27 10:30:00.625737728 +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 -ur transmission-2.82/third-party/miniupnp/portlistingparse.c transmission-2.82-haiku/third-party/miniupnp/portlistingparse.c +--- transmission-2.82/third-party/miniupnp/portlistingparse.c 2013-08-09 02:47:50.074186752 +0000 ++++ transmission-2.82-haiku/third-party/miniupnp/portlistingparse.c 2013-12-27 10:30:00.638582784 +0000 +@@ -28,7 +28,7 @@ + + /* Helper function */ + static UNSIGNED_INTEGER +-atoui(const char * p, int l) ++my_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)my_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)my_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)my_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 = my_atoui(data, l); + break; + default: + break; diff --git a/net-p2p/transmission/transmission-2.82.recipe b/net-p2p/transmission/transmission-2.82.recipe new file mode 100644 index 000000000..b6e83958e --- /dev/null +++ b/net-p2p/transmission/transmission-2.82.recipe @@ -0,0 +1,103 @@ +SUMMARY="Transmission is a cross-platform open source BitTorrent client" +DESCRIPTION=" +Transmission is an open source, volunteer-based project. Unlike some \ +BitTorrent clients, Transmission doesn't play games with its users to make \ +money: +- Transmission doesn't bundle toolbars, pop-up ads, flash ads, twitter tools, \ +or anything else. +- It doesn't hold some feaures back for a payware version. +- Its source code is available for anyone to review. +- They don't track our users, and their website and forums have no third-party \ +ads or analytics. +Transmission is designed for easy, powerful use. They've set the defaults to \ +Just Work and it only takes a few clicks to configure advanced features like \ +watch directories, bad peer blocklists, and the web interface. +In separate benchmarks, Linux Format and Lacrocivious both found Transmission \ +to use less CPU than any other GUI client. It even used less CPU than some \ +non-GUI clients. +Transmission also has the lowest memory footprint of any major BitTorrent \ +client. +Imageshack chose Transmission for its BitTorrent farms because the competition \ +requires amounts of memory several times greater than Transmission. +Transmission's small footprint is one reason why many home device \ +manufacturers, such as FON, Belkin, and Networked Media Tank ship with \ +Transmission. When Belkin and Vuze Inc. partnered to write a Torrent Genie to \ +let people who ran Vuze and owned a Belkin router keep sharing files even when \ +Vuze wasn't running, they decided to use Transmission -- not Vuze's own BitTorrent client -- on the router. +Unlike many cross-platform applications, Transmission integrates seamlessly \ +with your operating system. +Transmission has the features you want from a BitTorrent client: encryption, a \ +web interface, peer exchange, magnet links, DHT, µTP, UPnP and NAT-PMP port \ +forwarding, webseed support, watch directories, tracker editing, global and \ +per-torrent speed limits, and more. +" +HOMEPAGE="http://www.transmissionbt.com/" +SRC_URI="https://transmission.cachefly.net/transmission-2.82.tar.xz" +CHECKSUM_SHA256="3996651087df67a85f1e1b4a92b1b518ddefdd84c654b8df6fbccb0b91f03522" + +REVISION="1" + +ARCHITECTURES="x86 ?x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="!x86_gcc2 x86" + +PROVIDES=" + transmission = $portVersion + cmd:transmission_cli$secondaryArchSuffix + cmd:transmission_create$secondaryArchSuffix + cmd:transmission_daemon$secondaryArchSuffix + cmd:transmission_edit$secondaryArchSuffix + cmd:transmission_remote$secondaryArchSuffix + cmd:transmission_show$secondaryArchSuffix + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libssl$secondaryArchSuffix + lib:libcrypto$secondaryArchSuffix + lib:libcurl$secondaryArchSuffix + lib:libevent$secondaryArchSuffix + lib:libiconv$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libssl$secondaryArchSuffix + devel:libcurl$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:libevent$secondaryArchSuffix + devel:libiconv$secondaryArchSuffix + devel:libgettextlib$secondaryArchSuffix >= 0.14.1 + intltool >= 0.40 + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:pkg_config$secondaryArchSuffix + cmd:make + " + +LICENSE="Transmission + MIT + GNU GPL v2 + " +COPYRIGHT="2005-2013. All code is copyrighted by the respective authors." + +PATCHES="transmission-2.82.patch" + +BUILD() +{ + runConfigure ./configure --without-gtk --datadir=$dataDir + make +} + +INSTALL() +{ + make install +} diff --git a/net-print/gutenprint/gutenprint-5.2.9.recipe b/net-print/gutenprint/gutenprint-5.2.9.recipe new file mode 100644 index 000000000..05359c2ff --- /dev/null +++ b/net-print/gutenprint/gutenprint-5.2.9.recipe @@ -0,0 +1,85 @@ +SUMMARY="Suite of printer drivers" +DESCRIPTION=" +Gutenprint, formerly named Gimp-Print, is a suite of printer \ +drivers that may be used with most common UNIX print spooling \ +systems, including CUPS, lpr, LPRng, or others. These drivers \ +provide high quality printing for UNIX (including Macintosh OS X \ +10.3 and newer) and Linux systems in many cases equal to or better \ +than proprietary vendor-supplied drivers. Gutenprint also \ +includes an enhanced print plug-in for the GIMP image editor, \ +replacing the Gimp-Print 4.2-based plugin supplied with GIMP 1.2, \ +2.0, and 2.2, and offering an alternative with additional \ +capabilities to the GtkPrint-based plugin supplied with GIMP 2.4 \ +and beyond." +HOMEPAGE="http://gimp-print.sourceforge.net" +COPYRIGHT=" + 1999-2010 by the authors of Gutenprint + " +LICENSE="GNU GPL v2" +SRC_URI="http://prdownloads.sourceforge.net/gimp-print/gutenprint-5.2.9.tar.bz2" +CHECKSUM_SHA256="4b27e4f06f32d30271df89ecb6089bb11bcf2caec5f60b0909e083095354bca0" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PATCHES="gutenprint-$portVersion.patchset" + +PROVIDES=" + gutenprint$secondaryArchSuffix = $portVersion compat >= 5 + cmd:escputil$secondaryArchSuffix = $portVersion compat >= 5 + cmd:testpattern$secondaryArchSuffix = $portVersion compat >= 5 + lib:libgutenprint$secondaryArchSuffix = 2.1.0 compat >= 2 + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:make + cmd:sed + " +PATCH() +{ + # git doesn't handle correctly multilines with straybackspaces. + sed -i '/#define DECLARE_MODEUSES.*/ {N;N;N;N;N; s/#define DECLARE_MODEUSES.*\}/#define DECLARE_MODEUSES(name) static const canon_modeuselist_t name##_modeuselist = \{ #name, sizeof(name##_modeuses) \/ sizeof(canon_modeuse_t), name##_modeuses \}/g}' src/main/canon-media-mode.h +} + + +BUILD() +{ + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install + + rmdir $prefix/sbin + + prepareInstalledDevelLibs libgutenprint + fixPkgconfig + + # devel package + packageEntries devel \ + $developDir \ + $manDir/man1 +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + gutenprint${secondaryArchSuffix}_devel = $portVersion compat >= 5 + devel:libgutenprint$secondaryArchSuffix = 2.1.0 compat >= 2 + " +REQUIRES_devel=" + gutenprint$secondaryArchSuffix == $portVersion base + " diff --git a/net-print/gutenprint/patches/gutenprint-5.2.9.patchset b/net-print/gutenprint/patches/gutenprint-5.2.9.patchset new file mode 100644 index 000000000..2a1b8ae4a --- /dev/null +++ b/net-print/gutenprint/patches/gutenprint-5.2.9.patchset @@ -0,0 +1,94 @@ +From 0c0e500f1ef9a22ed62ed28cd74905b1704722c7 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Thu, 8 May 2014 16:34:31 +0000 +Subject: undef PAGESIZE on HAIKU + +* gcc2 build fix on pixma_parse.c + +diff --git a/src/testpattern/testpattern.c b/src/testpattern/testpattern.c +index 624d7d6..6ac0fe9 100644 +--- a/src/testpattern/testpattern.c ++++ b/src/testpattern/testpattern.c +@@ -38,6 +38,9 @@ + #include + #include + #include ++#ifdef __HAIKU__ ++#undef PAGESIZE ++#endif + #include "testpattern.h" + #include + #include +diff --git a/src/testpattern/testpatternl.c b/src/testpattern/testpatternl.c +index e8ec86b..9953d25 100644 +--- a/src/testpattern/testpatternl.c ++++ b/src/testpattern/testpatternl.c +@@ -20,6 +20,9 @@ + #include + #include + #include ++#ifdef __HAIKU__ ++#undef PAGESIZE ++#endif + + /* end standard C headers. */ + +diff --git a/src/testpattern/testpatternl.l b/src/testpattern/testpatternl.l +index 16cb38c..bf164e4 100644 +--- a/src/testpattern/testpatternl.l ++++ b/src/testpattern/testpatternl.l +@@ -29,6 +29,9 @@ + #include + #include + #include ++#ifdef __HAIKU__ ++#undef PAGESIZE ++#endif + #include "testpattern.h" + + #define YY_NO_UNPUT +diff --git a/src/testpattern/testpatterny.c b/src/testpattern/testpatterny.c +index 818087e..ea0e141 100644 +--- a/src/testpattern/testpatterny.c ++++ b/src/testpattern/testpatterny.c +@@ -78,6 +78,9 @@ + #include + #include + #include ++#ifdef __HAIKU__ ++#undef PAGESIZE ++#endif + #include "testpattern.h" + + extern int mylineno; +diff --git a/src/testpattern/testpatterny.y b/src/testpattern/testpatterny.y +index 229109a..6c6e8f8 100644 +--- a/src/testpattern/testpatterny.y ++++ b/src/testpattern/testpatterny.y +@@ -29,6 +29,9 @@ + #include + #include + #include ++#ifdef __HAIKU__ ++#undef PAGESIZE ++#endif + #include "testpattern.h" + + extern int mylineno; +diff --git a/test/pixma_parse.c b/test/pixma_parse.c +index 0fc368b..d5f23f8 100644 +--- a/test/pixma_parse.c ++++ b/test/pixma_parse.c +@@ -638,8 +638,8 @@ static int process(FILE* in, FILE* out,int verbose,unsigned int maxw,unsigned in + + + }else if(buf[0]==0x1 && buf[1]==0x0 && buf[2]==0x1){ +- fprintf(stderr," 1bit-per pixel\n"); + int num_colors = cnt*3; /*no idea yet! 3 for iP4000 */ ++ fprintf(stderr," 1bit-per pixel\n"); + /*num_colors=9;*/ + /*for(i=0;i +Date: Sat, 10 May 2014 12:15:25 +0000 +Subject: we only use release versions, no point in checking .git + + +diff --git a/config/version b/config/version +index 6583ea3..4ec323e 100644 +--- a/config/version ++++ b/config/version +@@ -19,14 +19,6 @@ patchlevel_verbose= + + case "$stat" in # $stat rewritten by config/settar ? + *git-*) patchlevel_verbose="[ $stat ]";; +- *) if test -d "$TOP/.git"; then +- t=`git rev-list HEAD 2>/dev/null | wc -l` # ~ svn revision number +- T=`git log -1 --pretty=format:%h` # commit hash +- if test -z "$t"; then t=0; fi +- vcsversion=$t-$T +- status="$stat $vcsversion" +- patchlevel_verbose="[ $status ]" +- fi + esac + version=$VersionMajor.$VersionMinor + pari_release="$version.$patch" +-- +1.8.3.4 + + +From 1ef615f242aa68b60b9ce3c4f23c0e628688c266 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Sat, 10 May 2014 12:44:58 +0000 +Subject: Haiku support. + + +diff --git a/config/arch-osname b/config/arch-osname +index 5da1bc8..515bcfd 100755 +--- a/config/arch-osname ++++ b/config/arch-osname +@@ -74,6 +74,8 @@ if test -n "$myuname"; then + case $arch in i386-*) arch=i386;;esac;; + aix) arch=`uname -p`; + case $arch in powerpc) arch=ppc;;esac;; ++ haiku) arch=`uname -p` ++ ;; + esac + fi + echo $arch-$osname +diff --git a/config/get_dlld b/config/get_dlld +index 2272aac..10632d5 100644 +--- a/config/get_dlld ++++ b/config/get_dlld +@@ -9,7 +9,7 @@ DLSUFFIX=so + soname=.$soname_num + do_dll=yes + case "$osname" in +- gnu*|aix|osf1|solaris|linux|freebsd|netbsd) ++ gnu*|aix|osf1|solaris|linux|freebsd|netbsd|haiku) + case $pari_release_verbose in + *STABLE*) sodest=.$version.$patch;; # released version + *DEVELOPMENT*) sodest=.$patch.0.0;; # unstable version +diff --git a/config/get_ld b/config/get_ld +index 9a8482d..ec7b9da 100644 +--- a/config/get_ld ++++ b/config/get_ld +@@ -3,6 +3,7 @@ + _ld_list='LD LDFLAGS LIBS runpathprexix LDneedsWl LDused GNULDused' + case "$osname" in + darwin) LIBS= ;; ++ haiku) LIBS= ;; + osf1) LIBS='-lm -lots';; + *) LIBS=-lm;; + esac +diff --git a/config/get_libc b/config/get_libc +index 513a983..1e42fdd 100644 +--- a/config/get_libc ++++ b/config/get_libc +@@ -2,7 +2,7 @@ + exe=$osname-$arch-tmp$$ + _has_list= + echo Looking in C lib for some symbols... +-extra_flags=-lm ++#extra_flags=-lm + list=exp2; . ./look + list=log2; . ./look + extra_flags= +-- +1.8.3.4 + diff --git a/sys-apps/coreutils/coreutils-8.22.recipe b/sys-apps/coreutils/coreutils-8.22.recipe new file mode 100644 index 000000000..6f4baadff --- /dev/null +++ b/sys-apps/coreutils/coreutils-8.22.recipe @@ -0,0 +1,265 @@ +SUMMARY="Standard GNU core utilities" +DESCRIPTION=" +Most of these programs have significant advantages over their Unix \ +counterparts, such as greater speed, additional options, and fewer \ +arbitrary limits. + +The programs that can be built with this package are: + + [ arch base64 basename cat chcon chgrp chmod chown chroot cksum comm cp \ +csplit cut date dd df dir dircolors dirname du echo env expand expr \ +factor false fmt fold groups head hostid hostname id install join kill \ +link ln logname ls md5sum mkdir mkfifo mknod mktemp mv nice nl nohup \ +nproc numfmt od paste pathchk pinky pr printenv printf ptx pwd readlink \ +realpath rm rmdir runcon seq sha1sum sha224sum sha256sum sha384sum sha512sum \ +shred shuf sleep sort split stat stdbuf stty sum sync tac tail tee test \ +timeout touch tr true truncate tsort tty uname unexpand uniq unlink \ +uptime users vdir wc who whoami yes +" +HOMEPAGE="http://www.gnu.org/software/coreutils" +COPYRIGHT="1994-2013 Free Software Foundation, Inc." +LICENSE="GNU GPL v3" +SRC_URI="http://ftp.gnu.org/gnu/coreutils/coreutils-$portVersion.tar.xz" +CHECKSUM_SHA256="5b3e94998152c017e6c75d56b9b994188eb71bf46d4038a642cb9141f6ff1212" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" + +PATCHES=" + coreutils-$portVersion.patchset + coreutils-$portVersion.gcc2.patchset + " + +PROVIDES=" + coreutils = $portVersion compat >= 8 + cmd:[ = $portVersion compat >= 8 + cmd:base64 = $portVersion compat >= 8 + cmd:basename = $portVersion compat >= 8 + cmd:cat = $portVersion compat >= 8 + cmd:chcon = $portVersion compat >= 8 + cmd:chgrp = $portVersion compat >= 8 + cmd:chmod = $portVersion compat >= 8 + cmd:chown = $portVersion compat >= 8 + cmd:chroot = $portVersion compat >= 8 + cmd:cksum = $portVersion compat >= 8 + cmd:comm = $portVersion compat >= 8 + cmd:cp = $portVersion compat >= 8 + cmd:csplit = $portVersion compat >= 8 + cmd:cut = $portVersion compat >= 8 + cmd:date = $portVersion compat >= 8 + cmd:dd = $portVersion compat >= 8 + cmd:df = $portVersion compat >= 8 + cmd:dir = $portVersion compat >= 8 + cmd:dircolors = $portVersion compat >= 8 + cmd:dirname = $portVersion compat >= 8 + cmd:du = $portVersion compat >= 8 + cmd:echo = $portVersion compat >= 8 + cmd:env = $portVersion compat >= 8 + cmd:expand = $portVersion compat >= 8 + cmd:expr = $portVersion compat >= 8 + cmd:factor = $portVersion compat >= 8 + cmd:false = $portVersion compat >= 8 + cmd:fmt = $portVersion compat >= 8 + cmd:fold = $portVersion compat >= 8 + cmd:groups = $portVersion compat >= 8 + cmd:head = $portVersion compat >= 8 + cmd:hostname = $portVersion compat >= 8 + cmd:id = $portVersion compat >= 8 + cmd:install = $portVersion compat >= 8 + cmd:join = $portVersion compat >= 8 + cmd:kill = $portVersion compat >= 8 + cmd:link = $portVersion compat >= 8 + cmd:ln = $portVersion compat >= 8 + cmd:logname = $portVersion compat >= 8 + cmd:ls = $portVersion compat >= 8 + cmd:md5sum = $portVersion compat >= 8 + cmd:mkdir = $portVersion compat >= 8 + cmd:mkfifo = $portVersion compat >= 8 + cmd:mknod = $portVersion compat >= 8 + cmd:mktemp = $portVersion compat >= 8 + cmd:mv = $portVersion compat >= 8 + cmd:nl = $portVersion compat >= 8 + cmd:nohup = $portVersion compat >= 8 + cmd:nproc = $portVersion compat >= 8 + cmd:numfmt = $portVersion compat >= 8 + cmd:od = $portVersion compat >= 8 + cmd:paste = $portVersion compat >= 8 + cmd:pathchk = $portVersion compat >= 8 + cmd:pr = $portVersion compat >= 8 + cmd:printenv = $portVersion compat >= 8 + cmd:printf = $portVersion compat >= 8 + cmd:ptx = $portVersion compat >= 8 + cmd:pwd = $portVersion compat >= 8 + cmd:readlink = $portVersion compat >= 8 + cmd:realpath = $portVersion compat >= 8 + cmd:rm = $portVersion compat >= 8 + cmd:rmdir = $portVersion compat >= 8 + cmd:runcon = $portVersion compat >= 8 + cmd:seq = $portVersion compat >= 8 + cmd:sha1sum = $portVersion compat >= 8 + cmd:sha224sum = $portVersion compat >= 8 + cmd:sha256sum = $portVersion compat >= 8 + cmd:sha384sum = $portVersion compat >= 8 + cmd:sha512sum = $portVersion compat >= 8 + cmd:shred = $portVersion compat >= 8 + cmd:shuf = $portVersion compat >= 8 + cmd:sleep = $portVersion compat >= 8 + cmd:sort = $portVersion compat >= 8 + cmd:split = $portVersion compat >= 8 + cmd:stat = $portVersion compat >= 8 + cmd:stdbuf = $portVersion compat >= 8 + cmd:stty = $portVersion compat >= 8 + cmd:sum = $portVersion compat >= 8 + cmd:sync = $portVersion compat >= 8 + cmd:tac = $portVersion compat >= 8 + cmd:tail = $portVersion compat >= 8 + cmd:tee = $portVersion compat >= 8 + cmd:test = $portVersion compat >= 8 + cmd:timeout = $portVersion compat >= 8 + cmd:touch = $portVersion compat >= 8 + cmd:tr = $portVersion compat >= 8 + cmd:true = $portVersion compat >= 8 + cmd:truncate = $portVersion compat >= 8 + cmd:tsort = $portVersion compat >= 8 + cmd:tty = $portVersion compat >= 8 + cmd:uname = $portVersion compat >= 8 + cmd:unexpand = $portVersion compat >= 8 + cmd:uniq = $portVersion compat >= 8 + cmd:unlink = $portVersion compat >= 8 + cmd:vdir = $portVersion compat >= 8 + cmd:wc = $portVersion compat >= 8 + cmd:whoami = $portVersion compat >= 8 + cmd:yes = $portVersion compat >= 8 + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:gcc + cmd:ld + cmd:make + cmd:awk + cmd:sed + cmd:help2man + " + +defineDebugInfoPackage coreutils \ + $binDir/[ \ + $binDir/base64 \ + $binDir/basename \ + $binDir/cat \ + $binDir/chcon \ + $binDir/chgrp \ + $binDir/chmod \ + $binDir/chown \ + $binDir/chroot \ + $binDir/cksum \ + $binDir/comm \ + $binDir/cp \ + $binDir/csplit \ + $binDir/cut \ + $binDir/date \ + $binDir/dd \ + $binDir/df \ + $binDir/dir \ + $binDir/dircolors \ + $binDir/dirname \ + $binDir/du \ + $binDir/echo \ + $binDir/env \ + $binDir/expand \ + $binDir/expr \ + $binDir/factor \ + $binDir/false \ + $binDir/fmt \ + $binDir/fold \ + $binDir/groups \ + $binDir/head \ + $binDir/hostname \ + $binDir/id \ + $binDir/install \ + $binDir/join \ + $binDir/kill \ + $binDir/link \ + $binDir/ln \ + $binDir/logname \ + $binDir/ls \ + $binDir/md5sum \ + $binDir/mkdir \ + $binDir/mkfifo \ + $binDir/mknod \ + $binDir/mktemp \ + $binDir/mv \ + $binDir/nl \ + $binDir/nohup \ + $binDir/nproc \ + $binDir/numfmt \ + $binDir/od \ + $binDir/paste \ + $binDir/pathchk \ + $binDir/pr \ + $binDir/printenv \ + $binDir/printf \ + $binDir/ptx \ + $binDir/pwd \ + $binDir/readlink \ + $binDir/realpath \ + $binDir/rm \ + $binDir/rmdir \ + $binDir/runcon \ + $binDir/seq \ + $binDir/sha1sum \ + $binDir/sha224sum \ + $binDir/sha256sum \ + $binDir/sha384sum \ + $binDir/sha512sum \ + $binDir/shred \ + $binDir/shuf \ + $binDir/sleep \ + $binDir/sort \ + $binDir/split \ + $binDir/stat \ + $binDir/stdbuf \ + $binDir/stty \ + $binDir/sum \ + $binDir/sync \ + $binDir/tac \ + $binDir/tail \ + $binDir/tee \ + $binDir/test \ + $binDir/timeout \ + $binDir/touch \ + $binDir/tr \ + $binDir/true \ + $binDir/truncate \ + $binDir/tsort \ + $binDir/tty \ + $binDir/uname \ + $binDir/unexpand \ + $binDir/uniq \ + $binDir/unlink \ + $binDir/vdir \ + $binDir/wc \ + $binDir/whoami \ + $binDir/yes \ + +PATCH() +{ + sed -i -e 's|O_NOCACHE|DD_NOCACHE|g' src/dd.c +} + +BUILD() +{ + FORCE_UNSAFE_CONFIGURE=1 runConfigure ./configure \ + --without-included-regex \ + --disable-rpath --with-gnu-ld \ + --enable-no-install-program=uptime \ + --enable-install-program=hostname + touch doc/*.info + make $jobArgs +} + +INSTALL() +{ + make install +} diff --git a/sys-apps/coreutils/patches/coreutils-8.22.gcc2.patchset b/sys-apps/coreutils/patches/coreutils-8.22.gcc2.patchset new file mode 100644 index 000000000..37e407701 --- /dev/null +++ b/sys-apps/coreutils/patches/coreutils-8.22.gcc2.patchset @@ -0,0 +1,3032 @@ +From ed40f7e0aa7652d5bf77c52047739a84b7acad8b Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Sun, 18 May 2014 21:41:14 +0000 +Subject: gcc2 patch c89 + + +diff --git a/lib/fts.c b/lib/fts.c +index 74968b3..6134365 100644 +--- a/lib/fts.c ++++ b/lib/fts.c +@@ -1293,6 +1293,7 @@ fts_build (register FTS *sp, int type) + int dir_fd; + FTSENT *cur = sp->fts_cur; + bool continue_readdir = !!cur->fts_dirp; ++ size_t max_entries; + + /* When cur->fts_dirp is non-NULL, that means we should + continue calling readdir on that existing DIR* pointer +@@ -1354,7 +1355,7 @@ fts_build (register FTS *sp, int type) + 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 ++ max_entries = (sp->fts_compar == NULL + ? FTS_MAX_READDIR_ENTRIES : SIZE_MAX); + + /* +diff --git a/lib/randperm.c b/lib/randperm.c +index ffa8faa..31c8c06 100644 +--- a/lib/randperm.c ++++ b/lib/randperm.c +@@ -114,8 +114,11 @@ sparse_new (size_t size_hint) + static void + sparse_swap (sparse_map *sv, size_t* v, size_t i, size_t j) + { +- struct sparse_ent_ *v1 = hash_delete (sv, &(struct sparse_ent_) {i,0}); +- struct sparse_ent_ *v2 = hash_delete (sv, &(struct sparse_ent_) {j,0}); ++ struct sparse_ent_ ent1 = {i,0}; ++ struct sparse_ent_ ent2 = {j,0}; ++ size_t t; ++ struct sparse_ent_ *v1 = hash_delete (sv, &ent1); ++ struct sparse_ent_ *v2 = hash_delete (sv, &ent2); + + /* FIXME: reduce the frequency of these mallocs. */ + if (!v1) +@@ -129,7 +132,7 @@ sparse_swap (sparse_map *sv, size_t* v, size_t i, size_t j) + v2->index = v2->val = j; + } + +- size_t t = v1->val; ++ t = v1->val; + v1->val = v2->val; + v2->val = t; + if (!hash_insert (sv, v1)) +diff --git a/lib/utimecmp.c b/lib/utimecmp.c +index dc622ad..895e500 100644 +--- a/lib/utimecmp.c ++++ b/lib/utimecmp.c +@@ -131,14 +131,13 @@ utimecmp (char const *dst_name, + + time_t might be unsigned. */ + +- verify (TYPE_IS_INTEGER (time_t)); +- verify (TYPE_TWOS_COMPLEMENT (int)); +- + /* Destination and source time stamps. */ + time_t dst_s = dst_stat->st_mtime; + time_t src_s = src_stat->st_mtime; + int dst_ns = get_stat_mtime_ns (dst_stat); + int src_ns = get_stat_mtime_ns (src_stat); ++ verify (TYPE_IS_INTEGER (time_t)); ++ verify (TYPE_TWOS_COMPLEMENT (int)); + + if (options & UTIMECMP_TRUNCATE_SOURCE) + { +diff --git a/lib/verify.h b/lib/verify.h +index bf40b02..4b34514 100644 +--- a/lib/verify.h ++++ b/lib/verify.h +@@ -248,7 +248,8 @@ template + /* Verify requirement R at compile-time, as a declaration without a + trailing ';'. */ + +-#define verify(R) _GL_VERIFY (R, "verify (" #R ")") ++//#define verify(R) _GL_VERIFY (R, "verify (" #R ")") ++#define verify(R) + + #ifndef __has_builtin + # define __has_builtin(x) 0 +diff --git a/src/chown-core.c b/src/chown-core.c +index a5a2b47..a8c4b07 100644 +--- a/src/chown-core.c ++++ b/src/chown-core.c +@@ -219,6 +219,7 @@ restricted_chown (int cwd_fd, char const *file, + struct stat st; + int open_flags = O_NONBLOCK | O_NOCTTY; + int fd; ++ int saved_errno; + + if (required_uid == (uid_t) -1 && required_gid == (gid_t) -1) + return RC_do_ordinary_chown; +@@ -256,7 +257,7 @@ restricted_chown (int cwd_fd, char const *file, + } + } + +- int saved_errno = errno; ++ saved_errno = errno; + close (fd); + errno = saved_errno; + return status; +diff --git a/src/chroot.c b/src/chroot.c +index 89fd392..ca4aeff 100644 +--- a/src/chroot.c ++++ b/src/chroot.c +@@ -161,6 +161,7 @@ main (int argc, char **argv) + int c; + char const *userspec = NULL; + char const *groups = NULL; ++ bool fail; + + initialize_main (&argc, &argv); + set_program_name (argv[0]); +@@ -221,7 +222,7 @@ main (int argc, char **argv) + argv += optind + 1; + } + +- bool fail = false; ++ fail = false; + + /* Attempt to set all three: supplementary groups, group ID, user ID. + Diagnose any failures. If any have failed, exit before execvp. */ +diff --git a/src/copy.c b/src/copy.c +index 0f044d0..d1cc7a0 100644 +--- a/src/copy.c ++++ b/src/copy.c +@@ -293,13 +293,15 @@ extent_copy (int src_fd, int dest_fd, char *buf, size_t buf_size, + /* Keep track of the output position. + We may need this at the end, for a final ftruncate. */ + off_t dest_pos = 0; +- ++ bool wrote_hole_at_eof = true; ++ + extent_scan_init (src_fd, &scan); + + *require_normal_copy = false; +- bool wrote_hole_at_eof = true; + do + { ++ unsigned int i; ++ bool empty_extent = false; + bool ok = extent_scan_read (&scan); + if (! ok) + { +@@ -317,8 +319,6 @@ extent_copy (int src_fd, int dest_fd, char *buf, size_t buf_size, + return false; + } + +- unsigned int i; +- bool empty_extent = false; + for (i = 0; i < scan.ei_count || empty_extent; i++) + { + off_t ext_start; +@@ -589,6 +589,7 @@ copy_dir (char const *src_name_in, char const *dst_name_in, bool new_dst, + char *namep; + struct cp_options non_command_line_options = *x; + bool ok = true; ++ bool new_first_dir_created = false; + + name_space = savedir (src_name_in); + if (name_space == NULL) +@@ -604,7 +605,6 @@ copy_dir (char const *src_name_in, char const *dst_name_in, bool new_dst, + if (x->dereference == DEREF_COMMAND_LINE_ARGUMENTS) + non_command_line_options.dereference = DEREF_NEVER; + +- bool new_first_dir_created = false; + namep = name_space; + while (*namep != '\0') + { +@@ -991,7 +991,7 @@ copy_reg (char const *src_name, char const *dst_name, + if (*new_dst) + { + open_with_O_CREAT:; +- ++{ + int open_flags = O_WRONLY | O_CREAT | O_BINARY; + dest_desc = open (dst_name, open_flags | O_EXCL, + dst_mode & ~omitted_permissions); +@@ -1035,6 +1035,7 @@ copy_reg (char const *src_name, char const *dst_name, + && *dst_name && dst_name[strlen (dst_name) - 1] == '/') + dest_errno = ENOTDIR; + } ++ } + else + { + omitted_permissions = 0; +@@ -1097,12 +1098,14 @@ copy_reg (char const *src_name, char const *dst_name, + size_t buf_alignment = lcm (getpagesize (), sizeof (word)); + size_t buf_alignment_slop = sizeof (word) + buf_alignment - 1; + size_t buf_size = io_blksize (sb); ++ bool make_holes = false; ++ bool sparse_src = false; ++ off_t n_read; ++ bool wrote_hole_at_eof; + + fdadvise (source_desc, 0, 0, FADVISE_SEQUENTIAL); + + /* Deal with sparse files. */ +- bool make_holes = false; +- bool sparse_src = false; + + if (S_ISREG (sb.st_mode)) + { +@@ -1169,8 +1172,6 @@ copy_reg (char const *src_name, char const *dst_name, + } + } + +- off_t n_read; +- bool wrote_hole_at_eof; + if ( ! sparse_copy (source_desc, dest_desc, buf, buf_size, + make_holes, src_name, dst_name, + UINTMAX_MAX, &n_read, +@@ -1667,10 +1668,11 @@ create_hard_link (char const *src_name, char const *dst_name, + { + /* We want to guarantee that symlinks are not followed, unless requested. */ + int flags = 0; ++ bool link_failed; + if (dereference) + flags = AT_SYMLINK_FOLLOW; + +- bool link_failed = (linkat (AT_FDCWD, src_name, AT_FDCWD, dst_name, flags) ++ link_failed = (linkat (AT_FDCWD, src_name, AT_FDCWD, dst_name, flags) + != 0); + + /* If the link failed because of an existing destination, +@@ -1746,6 +1748,7 @@ copy_internal (char const *src_name, char const *dst_name, + bool copied_as_regular = false; + bool dest_is_symlink = false; + bool have_dst_lstat = false; ++ bool dereference; + + if (x->move_mode && rename_succeeded) + *rename_succeeded = false; +@@ -1784,7 +1787,7 @@ copy_internal (char const *src_name, char const *dst_name, + record_file (x->src_info, src_name, &src_sb); + } + +- bool dereference = should_dereference (x, command_line_arg); ++ dereference = should_dereference (x, command_line_arg); + + if (!new_dst) + { +@@ -2793,6 +2796,7 @@ copy (char const *src_name, char const *dst_name, + bool nonexistent_dst, const struct cp_options *options, + bool *copy_into_self, bool *rename_succeeded) + { ++ bool first_dir_created_per_command_line_arg = false; + assert (valid_options (options)); + + /* Record the file names: they're used in case of error, when copying +@@ -2805,7 +2809,6 @@ copy (char const *src_name, char const *dst_name, + top_level_src_name = src_name; + top_level_dst_name = dst_name; + +- bool first_dir_created_per_command_line_arg = false; + return copy_internal (src_name, dst_name, nonexistent_dst, 0, NULL, + options, true, + &first_dir_created_per_command_line_arg, +diff --git a/src/cp.c b/src/cp.c +index 9038d4e..f76a22b 100644 +--- a/src/cp.c ++++ b/src/cp.c +@@ -823,6 +823,7 @@ cp_option_init (struct cp_options *x) + static void + decode_preserve_arg (char const *arg, struct cp_options *x, bool on_off) + { ++ char *arg_writable, *s; + enum File_attribute + { + PRESERVE_MODE, +@@ -847,8 +848,8 @@ decode_preserve_arg (char const *arg, struct cp_options *x, bool on_off) + }; + ARGMATCH_VERIFY (preserve_args, preserve_vals); + +- char *arg_writable = xstrdup (arg); +- char *s = arg_writable; ++ arg_writable = xstrdup (arg); ++ s = arg_writable; + do + { + /* find next comma */ +diff --git a/src/csplit.c b/src/csplit.c +index 5bfca09..581c790 100644 +--- a/src/csplit.c ++++ b/src/csplit.c +@@ -1225,8 +1225,9 @@ static size_t + get_format_flags (char const *format, int *flags_ptr) + { + int flags = 0; ++ size_t count; + +- for (size_t count = 0; ; count++) ++ for (count = 0; ; count++) + { + switch (format[count]) + { +@@ -1300,15 +1301,17 @@ static size_t + max_out (char *format) + { + bool percent = false; ++ char *f; ++ int maxlen; + +- for (char *f = format; *f; f++) ++ for (f = format; *f; f++) + if (*f == '%' && *++f != '%') + { ++ int flags; + if (percent) + error (EXIT_FAILURE, 0, + _("too many %% conversion specifications in suffix")); + percent = true; +- int flags; + f += get_format_flags (f, &flags); + while (ISDIGIT (*f)) + f++; +@@ -1322,7 +1325,7 @@ max_out (char *format) + error (EXIT_FAILURE, 0, + _("missing %% conversion specification in suffix")); + +- int maxlen = snprintf (NULL, 0, format, UINT_MAX); ++ maxlen = snprintf (NULL, 0, format, UINT_MAX); + if (! (0 <= maxlen && maxlen <= SIZE_MAX)) + xalloc_die (); + return maxlen; +@@ -1333,6 +1336,8 @@ main (int argc, char **argv) + { + int optc; + unsigned long int val; ++ size_t prefix_len; ++ size_t max_digit_string_len; + + initialize_main (&argc, &argv); + set_program_name (argv[0]); +@@ -1402,8 +1407,8 @@ main (int argc, char **argv) + usage (EXIT_FAILURE); + } + +- size_t prefix_len = strlen (prefix); +- size_t max_digit_string_len ++ prefix_len = strlen (prefix); ++ max_digit_string_len + = (suffix + ? max_out (suffix) + : MAX (INT_STRLEN_BOUND (unsigned int), digits)); +diff --git a/src/cut.c b/src/cut.c +index 19ef1d9..00d4b51 100644 +--- a/src/cut.c ++++ b/src/cut.c +@@ -399,7 +399,8 @@ set_fields (const char *fieldstr) + /* Merge range pairs (e.g. `2-5,3-4' becomes `2-5'). */ + for (i = 0; i < n_rp; ++i) + { +- for (size_t j = i + 1; j < n_rp; ++j) ++ size_t j; ++ for (j = i + 1; j < n_rp; ++j) + { + if (rp[j].lo <= rp[i].hi) + { +@@ -534,6 +535,7 @@ cut_fields (FILE *stream) + + while (1) + { ++ int prev_c; + if (field_idx == 1 && buffer_first_field) + { + ssize_t len; +@@ -585,7 +587,7 @@ cut_fields (FILE *stream) + next_item (&field_idx); + } + +- int prev_c = c; ++ prev_c = c; + + if (print_kth (field_idx)) + { +diff --git a/src/dd.c b/src/dd.c +index 59d6cd1..db91ab4 100644 +--- a/src/dd.c ++++ b/src/dd.c +@@ -662,10 +662,11 @@ human_size (size_t n) + static void + alloc_ibuf (void) + { ++ char *real_buf; + if (ibuf) + return; + +- char *real_buf = malloc (input_blocksize + INPUT_BLOCK_SLOP); ++ real_buf = malloc (input_blocksize + INPUT_BLOCK_SLOP); + if (!real_buf) + error (EXIT_FAILURE, 0, + _("memory exhausted by input buffer of size %zu bytes (%s)"), +@@ -735,6 +736,7 @@ print_stats (void) + | human_space_before_unit | human_SI | human_B); + double delta_s; + char const *bytes_per_second; ++ xtime_t now; + + if (status_flags & STATUS_NONE) + return; +@@ -764,7 +766,7 @@ print_stats (void) + w_bytes, + human_readable (w_bytes, hbuf, human_opts, 1, 1)); + +- xtime_t now = gethrxtime (); ++ now = gethrxtime (); + if (start_time < now) + { + double XTIME_PRECISIONe0 = XTIME_PRECISION; +@@ -954,6 +956,7 @@ static bool + invalidate_cache (int fd, off_t len) + { + int adv_ret = -1; ++ off_t pending; + + /* Minimize syscalls. */ + off_t clen = cache_round (fd, len); +@@ -961,7 +964,7 @@ invalidate_cache (int fd, off_t len) + return true; /* Don't advise this time. */ + if (!len && !clen && max_records) + return true; /* Nothing pending. */ +- off_t pending = len ? cache_round (fd, 0) : 0; ++ pending = len ? cache_round (fd, 0) : 0; + + if (fd == STDIN_FILENO) + { +@@ -1637,6 +1640,7 @@ skip (int fdesc, char const *file, uintmax_t records, size_t blocksize, + } + else + { ++ char *buf; + int lseek_errno = errno; + + /* The seek request may have failed above if it was too big +@@ -1671,7 +1675,6 @@ skip (int fdesc, char const *file, uintmax_t records, size_t blocksize, + } + /* else file_size && offset > OFF_T_MAX or file ! seekable */ + +- char *buf; + if (fdesc == STDIN_FILENO) + { + alloc_ibuf (); +@@ -2018,8 +2021,9 @@ dd_copy (void) + + if (conversions_mask & C_NOERROR) + { ++ size_t bad_portion; + print_stats (); +- size_t bad_portion = input_blocksize - partread; ++ bad_portion = input_blocksize - partread; + + /* We already know this data is not cached, + but call this so that correct offsets are maintained. */ +diff --git a/src/df.c b/src/df.c +index 969670e..2417782 100644 +--- a/src/df.c ++++ b/src/df.c +@@ -308,6 +308,8 @@ print_table (void) + for (col = 0; col < ncolumns; col++) + { + char *cell = table[row][col]; ++ int flags; ++ size_t width; + + /* Note the SOURCE_FIELD used to be displayed on it's own line + if (!posix_format && mbswidth (cell) > 20), but that +@@ -316,11 +318,11 @@ print_table (void) + if (col != 0) + putchar (' '); + +- int flags = 0; ++ flags = 0; + if (col == ncolumns - 1) /* The last one. */ + flags = MBA_NO_RIGHT_PAD; + +- size_t width = columns[col]->width; ++ width = columns[col]->width; + cell = ambsalign (cell, &width, columns[col]->align, flags); + /* When ambsalign fails, output unaligned data. */ + fputs (cell ? cell : table[row][col], stdout); +@@ -365,6 +367,8 @@ decode_output_arg (char const *arg) + do + { + /* find next comma */ ++ display_field_t field; ++ unsigned int i; + char *comma = strchr (s, ','); + + /* If we found a comma, put a NUL in its place and advance. */ +@@ -372,8 +376,8 @@ decode_output_arg (char const *arg) + *comma++ = 0; + + /* process S. */ +- display_field_t field = -1; +- for (unsigned int i = 0; i < ARRAY_CARDINALITY (field_data); i++) ++ field = -1; ++ for (i = 0; i < ARRAY_CARDINALITY (field_data); i++) + { + if (STREQ (field_data[i].arg, s)) + { +@@ -525,6 +529,7 @@ get_header (void) + uintmax_t q1024 = output_block_size; + bool divisible_by_1000; + bool divisible_by_1024; ++ char *num; + + do + { +@@ -540,7 +545,7 @@ get_header (void) + if (! (opts & human_base_1024)) + opts |= human_B; + +- char *num = human_readable (output_block_size, buf, opts, 1, 1); ++ num = human_readable (output_block_size, buf, opts, 1, 1); + + /* Reset the header back to the default in OUTPUT_MODE. */ + header = _("blocks"); +@@ -676,12 +681,13 @@ filter_mount_list (void) + mount_list = NULL; + while (devlist_head) + { ++ struct devlist *devlist; + /* Add the mount entry. */ + me = devlist_head->me; + me->me_next = mount_list; + mount_list = me; + /* Free devlist entry and advance. */ +- struct devlist *devlist = devlist_head->next; ++ devlist = devlist_head->next; + free (devlist_head); + devlist_head = devlist; + } +@@ -847,6 +853,12 @@ get_dev (char const *disk, char const *mount_point, char const* file, + const struct fs_usage *force_fsu, + bool process_all) + { ++ struct fs_usage fsu; ++ char *dev_name; ++ char *resolved_dev; ++ struct field_values_t block_values; ++ struct field_values_t inode_values; ++ size_t col; + if (me_remote && show_local_fs) + return; + +@@ -863,7 +875,6 @@ get_dev (char const *disk, char const *mount_point, char const* file, + if (!stat_file) + stat_file = mount_point ? mount_point : disk; + +- struct fs_usage fsu; + if (force_fsu) + fsu = *force_fsu; + else if (get_fs_usage (stat_file, disk, &fsu)) +@@ -887,9 +898,8 @@ get_dev (char const *disk, char const *mount_point, char const* file, + if (! file) + file = "-"; /* unspecified */ + +- char *dev_name = xstrdup (disk); +- char *resolved_dev; +- ++ dev_name = xstrdup (disk); ++ + /* On some systems, dev_name is a long-named symlink like + /dev/disk/by-uuid/828fc648-9f30-43d8-a0b1-f7196a2edb66 pointing to a + much shorter and more useful name like /dev/sda1. It may also look +@@ -907,15 +917,12 @@ get_dev (char const *disk, char const *mount_point, char const* file, + if (! fstype) + fstype = "-"; /* unknown */ + +- struct field_values_t block_values; +- struct field_values_t inode_values; + get_field_values (&block_values, &inode_values, &fsu); + + /* Add to grand total unless processing grand total line. */ + if (print_grand_total && ! force_fsu) + add_to_grand_total (&block_values, &inode_values); + +- size_t col; + for (col = 0; col < ncolumns; col++) + { + char buf[LONGEST_HUMAN_READABLE + 2]; +@@ -1057,12 +1064,13 @@ get_disk (char const *disk) + struct mount_entry const *me; + struct mount_entry const *best_match = NULL; + char const *file = disk; ++ size_t best_match_len; + + char *resolved = canonicalize_file_name (disk); + if (resolved && resolved[0] == '/') + disk = resolved; + +- size_t best_match_len = SIZE_MAX; ++ best_match_len = SIZE_MAX; + for (me = mount_list; me; me = me->me_next) + { + if (STREQ (disk, me->me_devname)) +@@ -1305,6 +1313,8 @@ int + main (int argc, char **argv) + { + struct stat *stats IF_LINT ( = 0); ++ bool posix_format; ++ const char *msg_mut_excl; + + initialize_main (&argc, &argv); + set_program_name (argv[0]); +@@ -1326,9 +1336,9 @@ main (int argc, char **argv) + grand_fsu.fsu_blocksize = 1; + + /* If true, use the POSIX output format. */ +- bool posix_format = false; ++ posix_format = false; + +- const char *msg_mut_excl = _("options %s and %s are mutually exclusive"); ++ msg_mut_excl = _("options %s and %s are mutually exclusive"); + + while (true) + { +@@ -1528,6 +1538,7 @@ main (int argc, char **argv) + or when either of -a, -l, -t or -x is used with file name + arguments. Otherwise, merely give a warning and proceed. */ + int status = 0; ++ const char *warning; + if ( ! (optind < argc) + || (show_all_fs + || show_local_fs +@@ -1536,7 +1547,7 @@ main (int argc, char **argv) + { + status = EXIT_FAILURE; + } +- const char *warning = (status == 0 ? _("Warning: ") : ""); ++ warning = (status == 0 ? _("Warning: ") : ""); + error (status, errno, "%s%s", warning, + _("cannot read table of mounted file systems")); + } +diff --git a/src/du.c b/src/du.c +index a265b10..9a44966 100644 +--- a/src/du.c ++++ b/src/du.c +@@ -461,8 +461,9 @@ process_file (FTS *fts, FTSENT *ent) + + if (info == FTS_NSOK) + { ++ FTSENT const *e; + fts_set (fts, ent, FTS_AGAIN); +- FTSENT const *e = fts_read (fts); ++ e = fts_read (fts); + assert (e == ent); + info = ent->fts_info; + } +@@ -494,8 +495,9 @@ process_file (FTS *fts, FTSENT *ent) + visit to the same directory. */ + if (info == FTS_D) + { ++ FTSENT const *e; + fts_set (fts, ent, FTS_SKIP); +- FTSENT const *e = fts_read (fts); ++ e = fts_read (fts); + assert (e == ent); + } + +@@ -707,6 +709,8 @@ main (int argc, char **argv) + + /* If true, display only a total for each argument. */ + bool opt_summarize_only = false; ++ struct argv_iterator *ai; ++ static char *temp_argv[] = { NULL, NULL }; + + cwd_only[0] = bad_cast ("."); + cwd_only[1] = NULL; +@@ -979,7 +983,6 @@ main (int argc, char **argv) + } + } + +- struct argv_iterator *ai; + if (files_from) + { + /* When using --files0-from=F, you may not specify any files +@@ -1034,8 +1037,7 @@ main (int argc, char **argv) + bit_flags |= FTS_TIGHT_CYCLE_CHECK; + + bit_flags |= symlink_deref_bits; +- static char *temp_argv[] = { NULL, NULL }; +- ++ + while (true) + { + bool skip_file = false; +diff --git a/src/env.c b/src/env.c +index c31d165..ca9f4be 100644 +--- a/src/env.c ++++ b/src/env.c +@@ -80,6 +80,7 @@ main (int argc, char **argv) + int optc; + bool ignore_environment = false; + bool opt_nul_terminate_output = false; ++ char *eq; + + initialize_main (&argc, &argv); + set_program_name (argv[0]); +@@ -126,7 +127,6 @@ main (int argc, char **argv) + if (optind < argc && STREQ (argv[optind], "-")) + ++optind; + +- char *eq; + while (optind < argc && (eq = strchr (argv[optind], '='))) + { + if (putenv (argv[optind])) +diff --git a/src/expr.c b/src/expr.c +index 9d21ca8..bb1d58c 100644 +--- a/src/expr.c ++++ b/src/expr.c +@@ -115,8 +115,8 @@ mpz_tdiv_r (mpz_t r, mpz_t a0, mpz_t b0) + static char * + mpz_get_str (char const *str, int base, mpz_t z) + { +- (void) str; (void) base; + char buf[INT_BUFSIZE_BOUND (intmax_t)]; ++ (void) str; (void) base; + return xstrdup (imaxtostr (z[0], buf)); + } + static int +@@ -137,8 +137,8 @@ mpz_get_ui (mpz_t z) + static int + mpz_out_str (FILE *stream, int base, mpz_t z) + { +- (void) base; + char buf[INT_BUFSIZE_BOUND (intmax_t)]; ++ (void) base; + return fputs (imaxtostr (z[0], buf), stream) != EOF; + } + #endif +@@ -291,6 +291,7 @@ int + main (int argc, char **argv) + { + VALUE *v; ++ unsigned int u_argc; + + initialize_main (&argc, &argv); + set_program_name (argv[0]); +@@ -306,7 +307,7 @@ main (int argc, char **argv) + + /* The above handles --help and --version. + Since there is no other invocation of getopt, handle '--' here. */ +- unsigned int u_argc = argc; ++ u_argc = argc; + if (1 < u_argc && STREQ (argv[1], "--")) + { + --u_argc; +diff --git a/src/factor.c b/src/factor.c +index 257a7ed..bd07cf6 100644 +--- a/src/factor.c ++++ b/src/factor.c +@@ -281,12 +281,13 @@ static void factor (uintmax_t, uintmax_t, struct factors *); + # define udiv_qrnnd(q, r, n1, n0, d) \ + do { \ + uintmax_t __d1, __d0, __q, __r1, __r0; \ ++ unsigned int __i; \ + \ + assert ((n1) < (d)); \ + __d1 = (d); __d0 = 0; \ + __r1 = (n1); __r0 = (n0); \ + __q = 0; \ +- for (unsigned int __i = W_TYPE_SIZE; __i > 0; __i--) \ ++ for (__i = W_TYPE_SIZE; __i > 0; __i--) \ + { \ + rsh2 (__d1, __d0, __d1, __d0, 1); \ + __q <<= 1; \ +@@ -404,6 +405,7 @@ static uintmax_t + mod2 (uintmax_t *r1, uintmax_t a1, uintmax_t a0, uintmax_t d1, uintmax_t d0) + { + int cntd, cnta; ++ int cnt, i; + + assert (d1 != 0); + +@@ -415,9 +417,9 @@ mod2 (uintmax_t *r1, uintmax_t a1, uintmax_t a0, uintmax_t d1, uintmax_t d0) + + count_leading_zeros (cntd, d1); + count_leading_zeros (cnta, a1); +- int cnt = cntd - cnta; ++ cnt = cntd - cnta; + lsh2 (d1, d0, d1, d0, cnt); +- for (int i = 0; i < cnt; i++) ++ for (i = 0; i < cnt; i++) + { + if (ge2 (a1, a0, d1, d0)) + sub_ddmmss (a1, a0, a1, a0, d1, d0); +@@ -522,7 +524,8 @@ factor_insert_multiplicity (struct factors *factors, + + if (i < 0 || p[i] != prime) + { +- for (int j = nfactors - 1; j > i; j--) ++ int j; ++ for (j = nfactors - 1; j > i; j--) + { + p[j + 1] = p[j]; + e[j + 1] = e[j]; +@@ -711,19 +714,20 @@ static bool flag_prove_primality = true; + /* Number of Miller-Rabin tests to run when not proving primality. */ + #define MR_REPS 25 + +-#ifdef __GNUC__ +-# define LIKELY(cond) __builtin_expect ((cond), 1) +-# define UNLIKELY(cond) __builtin_expect ((cond), 0) +-#else ++//#ifdef __GNUC__ ++//# define LIKELY(cond) __builtin_expect ((cond), 1) ++//# define UNLIKELY(cond) __builtin_expect ((cond), 0) ++//#else + # define LIKELY(cond) (cond) + # define UNLIKELY(cond) (cond) +-#endif ++//#endif + + static void + factor_insert_refind (struct factors *factors, uintmax_t p, unsigned int i, + unsigned int off) + { +- for (unsigned int j = 0; j < off; j++) ++ unsigned int j; ++ for (j = 0; j < off; j++) + p += primes_diff[i + j]; + factor_insert (factors, p); + } +@@ -765,6 +769,8 @@ static uintmax_t + factor_using_division (uintmax_t *t1p, uintmax_t t1, uintmax_t t0, + struct factors *factors) + { ++ uintmax_t p = 3; ++ unsigned int i; + if (t0 % 2 == 0) + { + unsigned int cnt; +@@ -785,8 +791,6 @@ factor_using_division (uintmax_t *t1p, uintmax_t t1, uintmax_t t0, + factor_insert_multiplicity (factors, 2, cnt); + } + +- uintmax_t p = 3; +- unsigned int i; + for (i = 0; t1 > 0 && i < PRIMES_PTAB_ENTRIES; i++) + { + for (;;) +@@ -848,6 +852,7 @@ mp_factor_using_division (mpz_t t, struct mp_factors *factors) + { + mpz_t q; + unsigned long int p; ++ unsigned int i; + + devmsg ("[trial division] "); + +@@ -862,7 +867,7 @@ mp_factor_using_division (mpz_t t, struct mp_factors *factors) + } + + p = 3; +- for (unsigned int i = 1; i <= PRIMES_PTAB_ENTRIES;) ++ for (i = 1; i <= PRIMES_PTAB_ENTRIES;) + { + if (! mpz_divisible_ui_p (t, p)) + { +@@ -1132,11 +1137,12 @@ millerrabin (uintmax_t n, uintmax_t ni, uintmax_t b, uintmax_t q, + uintmax_t y = powm (b, q, n, ni, one); + + uintmax_t nm1 = n - one; /* -1, but in redc representation. */ ++ unsigned int i; + + if (y == one || y == nm1) + return true; + +- for (unsigned int i = 1; i < k; i++) ++ for (i = 1; i < k; i++) + { + y = mulredc (y, y, n, ni); + +@@ -1153,6 +1159,7 @@ millerrabin2 (const uintmax_t *np, uintmax_t ni, const uintmax_t *bp, + const uintmax_t *qp, unsigned int k, const uintmax_t *one) + { + uintmax_t y1, y0, nm1_1, nm1_0, r1m; ++ unsigned int i; + + y0 = powm2 (&r1m, bp, qp, np, ni, one); + y1 = r1m; +@@ -1165,7 +1172,7 @@ millerrabin2 (const uintmax_t *np, uintmax_t ni, const uintmax_t *bp, + if (y0 == nm1_0 && y1 == nm1_1) + return true; + +- for (unsigned int i = 1; i < k; i++) ++ for (i = 1; i < k; i++) + { + y0 = mulredc2 (&r1m, y1, y0, y1, y0, np[1], np[0], ni); + y1 = r1m; +@@ -1183,12 +1190,13 @@ static bool + mp_millerrabin (mpz_srcptr n, mpz_srcptr nm1, mpz_ptr x, mpz_ptr y, + mpz_srcptr q, unsigned long int k) + { ++ unsigned long int i; + mpz_powm (y, x, q, n); + + if (mpz_cmp_ui (y, 1) == 0 || mpz_cmp (y, nm1) == 0) + return true; + +- for (unsigned long int i = 1; i < k; i++) ++ for (i = 1; i < k; i++) + { + mpz_powm_ui (y, y, 2, n); + if (mpz_cmp (y, nm1) == 0) +@@ -1209,6 +1217,8 @@ prime_p (uintmax_t n) + bool is_prime; + uintmax_t a_prim, one, ni; + struct factors factors; ++ uintmax_t q, a; ++ unsigned int r; + + if (n <= 1) + return false; +@@ -1218,11 +1228,11 @@ prime_p (uintmax_t n) + return true; + + /* Precomputation for Miller-Rabin. */ +- uintmax_t q = n - 1; ++ q = n - 1; + for (k = 0; (q & 1) == 0; k++) + q >>= 1; + +- uintmax_t a = 2; ++ a = 2; + binv (ni, n); /* ni <- 1/n mod B */ + redcify (one, 1, n); + addmod (a_prim, one, one, n); /* i.e., redcify a = 2 */ +@@ -1239,12 +1249,13 @@ prime_p (uintmax_t n) + + /* Loop until Lucas proves our number prime, or Miller-Rabin proves our + number composite. */ +- for (unsigned int r = 0; r < PRIMES_PTAB_ENTRIES; r++) ++ for (r = 0; r < PRIMES_PTAB_ENTRIES; r++) + { + if (flag_prove_primality) + { ++ unsigned int i; + is_prime = true; +- for (unsigned int i = 0; i < factors.nfactors && is_prime; i++) ++ for (i = 0; i < factors.nfactors && is_prime; i++) + { + is_prime + = powm (a_prim, (n - 1) / factors.p[i], n, ni, one) != one; +@@ -1294,6 +1305,8 @@ prime2_p (uintmax_t n1, uintmax_t n0) + uintmax_t ni; + unsigned int k; + struct factors factors; ++ unsigned int r; ++ uintmax_t a; + + if (n1 == 0) + return prime_p (n0); +@@ -1314,7 +1327,7 @@ prime2_p (uintmax_t n1, uintmax_t n0) + rsh2 (q[1], q[0], nm1[1], nm1[0], k); + } + +- uintmax_t a = 2; ++ a = 2; + binv (ni, n0); + redcify2 (one[1], one[0], 1, n1, n0); + addmod2 (a_prim[1], a_prim[0], one[1], one[0], one[1], one[0], n1, n0); +@@ -1334,13 +1347,14 @@ prime2_p (uintmax_t n1, uintmax_t n0) + + /* Loop until Lucas proves our number prime, or Miller-Rabin proves our + number composite. */ +- for (unsigned int r = 0; r < PRIMES_PTAB_ENTRIES; r++) ++ for (r = 0; r < PRIMES_PTAB_ENTRIES; r++) + { + bool is_prime; + uintmax_t e[2], y[2]; + + if (flag_prove_primality) + { ++ unsigned int i; + is_prime = true; + if (factors.plarge[1]) + { +@@ -1351,7 +1365,7 @@ prime2_p (uintmax_t n1, uintmax_t n0) + y[0] = powm2 (&y[1], a_prim, e, na, ni, one); + is_prime = (y[0] != one[0] || y[1] != one[1]); + } +- for (unsigned int i = 0; i < factors.nfactors && is_prime; i++) ++ for (i = 0; i < factors.nfactors && is_prime; i++) + { + /* FIXME: We always have the factor 2. Do we really need to + handle it here? We have done the same powering as part +@@ -1391,6 +1405,8 @@ mp_prime_p (mpz_t n) + bool is_prime; + mpz_t q, a, nm1, tmp; + struct mp_factors factors; ++ unsigned long int k; ++ unsigned int r; + + if (mpz_cmp_ui (n, 1) <= 0) + return false; +@@ -1405,7 +1421,7 @@ mp_prime_p (mpz_t n) + mpz_sub_ui (nm1, n, 1); + + /* Find q and k, where q is odd and n = 1 + 2**k * q. */ +- unsigned long int k = mpz_scan1 (nm1, 0); ++ k = mpz_scan1 (nm1, 0); + mpz_tdiv_q_2exp (q, nm1, k); + + mpz_set_ui (a, 2); +@@ -1426,12 +1442,13 @@ mp_prime_p (mpz_t n) + + /* Loop until Lucas proves our number prime, or Miller-Rabin proves our + number composite. */ +- for (unsigned int r = 0; r < PRIMES_PTAB_ENTRIES; r++) ++ for (r = 0; r < PRIMES_PTAB_ENTRIES; r++) + { + if (flag_prove_primality) + { ++ unsigned long int i; + is_prime = true; +- for (unsigned long int i = 0; i < factors.nfactors && is_prime; i++) ++ for (i = 0; i < factors.nfactors && is_prime; i++) + { + mpz_divexact (tmp, nm1, factors.p[i]); + mpz_powm (tmp, a, tmp, n); +@@ -1490,6 +1507,7 @@ factor_using_pollard_rho (uintmax_t n, unsigned long int a, + + for (;;) + { ++ unsigned long int i; + do + { + x = mulredc (x, x, n, ni); +@@ -1510,7 +1528,7 @@ factor_using_pollard_rho (uintmax_t n, unsigned long int a, + z = x; + k = l; + l = 2 * l; +- for (unsigned long int i = 0; i < k; i++) ++ for (i = 0; i < k; i++) + { + x = mulredc (x, x, n, ni); + addmod (x, x, a, n); +@@ -1568,6 +1586,7 @@ factor_using_pollard_rho2 (uintmax_t n1, uintmax_t n0, unsigned long int a, + + for (;;) + { ++ unsigned long int i; + do + { + x0 = mulredc2 (&r1m, x1, x0, x1, x0, n1, n0, ni); +@@ -1591,7 +1610,7 @@ factor_using_pollard_rho2 (uintmax_t n1, uintmax_t n0, unsigned long int a, + z1 = x1; z0 = x0; + k = l; + l = 2 * l; +- for (unsigned long int i = 0; i < k; i++) ++ for (i = 0; i < k; i++) + { + x0 = mulredc2 (&r1m, x1, x0, x1, x0, n1, n0, ni); + x1 = r1m; +@@ -1669,6 +1688,8 @@ mp_factor_using_pollard_rho (mpz_t n, unsigned long int a, + { + mpz_t x, z, y, P; + mpz_t t, t2; ++ unsigned long long int k = 1; ++ unsigned long long int l = 1; + + devmsg ("[pollard-rho (%lu)] ", a); + +@@ -1678,13 +1699,11 @@ mp_factor_using_pollard_rho (mpz_t n, unsigned long int a, + mpz_init_set_si (z, 2); + mpz_init_set_ui (P, 1); + +- unsigned long long int k = 1; +- unsigned long long int l = 1; +- + while (mpz_cmp_ui (n, 1) != 0) + { + for (;;) + { ++ unsigned long long int i; + do + { + mpz_mul (t, x, x); +@@ -1708,7 +1727,7 @@ mp_factor_using_pollard_rho (mpz_t n, unsigned long int a, + mpz_set (z, x); + k = l; + l = 2 * l; +- for (unsigned long long int i = 0; i < k; i++) ++ for (i = 0; i < k; i++) + { + mpz_mul (t, x, x); + mpz_mod (x, t, n); +@@ -1975,13 +1994,14 @@ factor_using_squfof (uintmax_t n1, uintmax_t n0, struct factors *factors) + }; + + const unsigned int *m; ++ uintmax_t sqrt_n; + + struct { uintmax_t Q; uintmax_t P; } queue[QUEUE_SIZE]; + + if (n1 >= ((uintmax_t) 1 << (W_TYPE_SIZE - 2))) + return false; + +- uintmax_t sqrt_n = isqrt2 (n1, n0); ++ sqrt_n = isqrt2 (n1, n0); + + if (n0 == sqrt_n * sqrt_n) + { +@@ -1997,6 +2017,7 @@ factor_using_squfof (uintmax_t n1, uintmax_t n0, struct factors *factors) + else + { + struct factors f; ++ unsigned int i; + + f.nfactors = 0; + if (!factor_using_squfof (0, sqrt_n, &f)) +@@ -2005,7 +2026,7 @@ factor_using_squfof (uintmax_t n1, uintmax_t n0, struct factors *factors) + factor_using_pollard_rho (sqrt_n, 1, &f); + } + /* Duplicate the new factors */ +- for (unsigned int i = 0; i < f.nfactors; i++) ++ for (i = 0; i < f.nfactors; i++) + factor_insert_multiplicity (factors, f.p[i], 2*f.e[i]); + } + return true; +@@ -2108,7 +2129,9 @@ factor_using_squfof (uintmax_t n1, uintmax_t n0, struct factors *factors) + uintmax_t r = is_square (Q); + if (r) + { +- for (unsigned int j = 0; j < qpos; j++) ++ unsigned int j; ++ uintmax_t hi, lo; ++ for (j = 0; j < qpos; j++) + { + if (queue[j].Q == r) + { +@@ -2143,7 +2166,6 @@ factor_using_squfof (uintmax_t n1, uintmax_t n0, struct factors *factors) + for the case D = 2N. */ + /* Compute Q = (D - P*P) / Q1, but we need double + precision. */ +- uintmax_t hi, lo; + umul_ppmm (hi, lo, P, P); + sub_ddmmss (hi, lo, Dh, Dl, hi, lo); + udiv_qrnnd (Q, rem, hi, lo, Q1); +@@ -2269,6 +2291,7 @@ strto2uintmax (uintmax_t *hip, uintmax_t *lop, const char *s) + uintmax_t hi = 0, lo = 0; + + strtol_error err = LONGINT_INVALID; ++ const char *p; + + /* Skip initial spaces and '+'. */ + for (;;) +@@ -2286,7 +2309,7 @@ strto2uintmax (uintmax_t *hip, uintmax_t *lop, const char *s) + } + + /* Initial scan for invalid digits. */ +- const char *p = s; ++ p = s; + for (;;) + { + unsigned int c = *p++; +@@ -2362,14 +2385,15 @@ static void + print_factors_single (uintmax_t t1, uintmax_t t0) + { + struct factors factors; ++ unsigned int j, k; + + print_uintmaxes (t1, t0); + putchar (':'); + + factor (t1, t0, &factors); + +- for (unsigned int j = 0; j < factors.nfactors; j++) +- for (unsigned int k = 0; k < factors.e[j]; k++) ++ for (j = 0; j < factors.nfactors; j++) ++ for (k = 0; k < factors.e[j]; k++) + { + char buf[INT_BUFSIZE_BOUND (uintmax_t)]; + putchar (' '); +@@ -2393,6 +2417,7 @@ static bool + print_factors (const char *input) + { + uintmax_t t1, t0; ++ unsigned int j, k; + + /* Try converting the number to one or two words. If it fails, use GMP or + print an error message. The 2nd condition checks that the most +@@ -2430,8 +2455,8 @@ print_factors (const char *input) + gmp_printf ("%Zd:", t); + mp_factor (t, &factors); + +- for (unsigned int j = 0; j < factors.nfactors; j++) +- for (unsigned int k = 0; k < factors.e[j]; k++) ++ for (j = 0; j < factors.nfactors; j++) ++ for (k = 0; k < factors.e[j]; k++) + gmp_printf (" %Zd", factors.p[j]); + + mp_factor_clear (&factors); +@@ -2492,6 +2517,8 @@ do_stdin (void) + int + main (int argc, char **argv) + { ++ int c; ++ bool ok; + initialize_main (&argc, &argv); + set_program_name (argv[0]); + setlocale (LC_ALL, ""); +@@ -2502,7 +2529,6 @@ main (int argc, char **argv) + + alg = ALG_POLLARD_RHO; /* Default to Pollard rho */ + +- int c; + while ((c = getopt_long (argc, argv, "", long_options, NULL)) != -1) + { + switch (c) +@@ -2533,13 +2559,13 @@ main (int argc, char **argv) + memset (q_freq, 0, sizeof (q_freq)); + #endif + +- bool ok; + if (argc <= optind) + ok = do_stdin (); + else + { ++ int i; + ok = true; +- for (int i = optind; i < argc; i++) ++ for (i = optind; i < argc; i++) + if (! print_factors (argv[i])) + ok = false; + } +@@ -2548,8 +2574,9 @@ main (int argc, char **argv) + if (alg == ALG_SQUFOF && q_freq[0] > 0) + { + double acc_f; ++ unsigned int i; + printf ("q freq. cum. freq.(total: %d)\n", q_freq[0]); +- for (unsigned int i = 1, acc_f = 0.0; i <= Q_FREQ_SIZE; i++) ++ for (i = 1, acc_f = 0.0; i <= Q_FREQ_SIZE; i++) + { + double f = (double) q_freq[i] / q_freq[0]; + acc_f += f; +diff --git a/src/getlimits.c b/src/getlimits.c +index 9914025..870889c 100644 +--- a/src/getlimits.c ++++ b/src/getlimits.c +@@ -88,11 +88,12 @@ decimal_absval_add_one (char *buf) + bool negative = (buf[1] == '-'); + char *absnum = buf + 1 + negative; + char *p = absnum + strlen (absnum); ++ char *result; + absnum[-1] = '0'; + while (*--p == '9') + *p = '0'; + ++*p; +- char *result = MIN (absnum, p); ++ result = MIN (absnum, p); + if (negative) + *--result = '-'; + return result; +diff --git a/src/group-list.c b/src/group-list.c +index d54b057..33097d3 100644 +--- a/src/group-list.c ++++ b/src/group-list.c +@@ -105,6 +105,7 @@ print_group (gid_t gid, bool use_name) + { + struct group *grp = NULL; + bool ok = true; ++ char *s; + + if (use_name) + { +@@ -117,7 +118,7 @@ print_group (gid_t gid, bool use_name) + } + } + +- char *s = grp ? grp->gr_name : gidtostr (gid); ++ s = grp ? grp->gr_name : gidtostr (gid); + fputs (s, stdout); + return ok; + } +diff --git a/src/id.c b/src/id.c +index 884fd16..59e8242 100644 +--- a/src/id.c ++++ b/src/id.c +@@ -117,6 +117,7 @@ main (int argc, char **argv) + bool smack_enabled = is_smack_enabled (); + bool opt_zero = false; + char *pw_name = NULL; ++ size_t n_ids; + + /* If true, output the list of all group IDs. -G */ + bool just_group_list = false; +@@ -126,6 +127,7 @@ main (int argc, char **argv) + bool use_real = false; + /* If true, output only the user ID(s). -u */ + bool just_user = false; ++ bool default_format; + + initialize_main (&argc, &argv); + set_program_name (argv[0]); +@@ -183,7 +185,7 @@ main (int argc, char **argv) + } + } + +- size_t n_ids = argc - optind; ++ n_ids = argc - optind; + if (1 < n_ids) + { + error (0, 0, _("extra operand %s"), quote (argv[optind + 1])); +@@ -197,7 +199,7 @@ main (int argc, char **argv) + if (just_user + just_group + just_group_list + just_context > 1) + error (EXIT_FAILURE, 0, _("cannot print \"only\" of more than one choice")); + +- bool default_format = (just_user + just_group + just_group_list ++ default_format = (just_user + just_group + just_group_list + + just_context == 0); + + if (default_format && (use_real || use_name)) +@@ -345,6 +347,7 @@ static void + print_user (uid_t uid) + { + struct passwd *pwd = NULL; ++ char *s; + + if (use_name) + { +@@ -357,7 +360,7 @@ print_user (uid_t uid) + } + } + +- char *s = pwd ? pwd->pw_name : uidtostr (uid); ++ s = pwd ? pwd->pw_name : uidtostr (uid); + fputs (s, stdout); + } + +diff --git a/src/install.c b/src/install.c +index 7076655..f1a2edd 100644 +--- a/src/install.c ++++ b/src/install.c +@@ -197,8 +197,9 @@ need_copy (const char *src_name, const char *dest_name, + + if (owner_id == (uid_t) -1) + { ++ uid_t ruid; + errno = 0; +- uid_t ruid = getuid (); ++ ruid = getuid (); + if ((ruid == (uid_t) -1 && errno) || dest_sb.st_uid != ruid) + return true; + } +@@ -207,8 +208,9 @@ need_copy (const char *src_name, const char *dest_name, + + if (group_id == (uid_t) -1) + { ++ gid_t rgid; + errno = 0; +- gid_t rgid = getgid (); ++ rgid = getgid (); + if ((rgid == (uid_t) -1 && errno) || dest_sb.st_gid != rgid) + return true; + } +diff --git a/src/join.c b/src/join.c +index 1da618d..cb370ca 100644 +--- a/src/join.c ++++ b/src/join.c +@@ -655,6 +655,8 @@ join (FILE *fp1, FILE *fp2) + struct seq seq1, seq2; + int diff; + bool eof1, eof2; ++ struct line *line = NULL; ++ bool checktail = false; + + fadvise (fp1, FADVISE_SEQUENTIAL); + fadvise (fp2, FADVISE_SEQUENTIAL); +@@ -763,9 +765,7 @@ join (FILE *fp1, FILE *fp2) + tail ends of both inputs to verify that they are in order. We + skip the rest of the tail once we have issued a warning for that + file, unless we actually need to print the unpairable lines. */ +- struct line *line = NULL; +- bool checktail = false; +- ++ + if (check_input_order != CHECK_ORDER_DISABLED + && !(issued_disorder_warning[0] && issued_disorder_warning[1])) + checktail = true; +@@ -838,9 +838,10 @@ string_to_join_field (char const *str) + { + size_t result; + unsigned long int val; ++ strtol_error s_err; + verify (SIZE_MAX <= ULONG_MAX); + +- strtol_error s_err = xstrtoul (str, NULL, 10, &val, ""); ++ s_err = xstrtoul (str, NULL, 10, &val, ""); + if (s_err == LONGINT_OVERFLOW || (s_err == LONGINT_OK && SIZE_MAX < val)) + val = SIZE_MAX; + else if (s_err != LONGINT_OK || val == 0) +diff --git a/src/ls.c b/src/ls.c +index e7d1d93..6d60b4b 100644 +--- a/src/ls.c ++++ b/src/ls.c +@@ -1048,13 +1048,14 @@ static size_t + abmon_init (void) + { + #ifdef HAVE_NL_LANGINFO +- required_mon_width = MAX_MON_WIDTH; + size_t curr_max_width; ++ required_mon_width = MAX_MON_WIDTH; + do + { ++ int i; + curr_max_width = required_mon_width; + required_mon_width = 0; +- for (int i = 0; i < 12; i++) ++ for (i = 0; i < 12; i++) + { + size_t width = curr_max_width; + +@@ -2053,6 +2054,7 @@ decode_switches (int argc, char **argv) + sizeof (*time_style_types)); + if (res < 0) + { ++ char const *const *p; + /* This whole block used to be a simple use of XARGMATCH. + but that didn't print the "posix-"-prefixed variants or + the "+"-prefixed format string option upon failure. */ +@@ -2064,7 +2066,7 @@ decode_switches (int argc, char **argv) + only because all four existing time_style_types values + are distinct. */ + fputs (_("Valid arguments are:\n"), stderr); +- char const *const *p = time_style_args; ++ p = time_style_args; + while (*p) + fprintf (stderr, " - [posix-]%s\n", *p++); + fputs (_(" - +FORMAT (e.g., +%H:%M) for a 'date'-style" +@@ -2334,6 +2336,7 @@ parse_ls_color (void) + int ind_no; /* Indicator number */ + char label[3]; /* Indicator label */ + struct color_ext_type *ext; /* Extension we are working on */ ++ enum parse_state state; + + if ((p = getenv ("LS_COLORS")) == NULL || *p == '\0') + return; +@@ -2347,7 +2350,7 @@ parse_ls_color (void) + advance. */ + buf = color_buf = xstrdup (p); + +- enum parse_state state = PS_START; ++ state = PS_START; + while (true) + { + switch (state) +@@ -2812,13 +2815,14 @@ getfilecon_cache (char const *file, struct fileinfo *f, bool deref) + /* st_dev of the most recently processed device for which we've + found that [l]getfilecon fails indicating lack of support. */ + static dev_t unsupported_device; ++ int r; + + if (f->stat.st_dev == unsupported_device) + { + errno = ENOTSUP; + return -1; + } +- int r = 0; ++ r = 0; + #ifdef HAVE_SMACK + if (is_smack_enabled ()) + r = smack_new_label_from_path (file, "security.SMACK64", deref, +@@ -2842,6 +2846,7 @@ file_has_acl_cache (char const *file, struct fileinfo *f) + /* st_dev of the most recently processed device for which we've + found that file_has_acl fails indicating lack of support. */ + static dev_t unsupported_device; ++ int n; + + if (f->stat.st_dev == unsupported_device) + { +@@ -2852,7 +2857,7 @@ file_has_acl_cache (char const *file, struct fileinfo *f) + /* Zero errno so that we can distinguish between two 0-returning cases: + "has-ACL-support, but only a default ACL" and "no ACL support". */ + errno = 0; +- int n = file_has_acl (file, &f->stat); ++ n = file_has_acl (file, &f->stat); + if (n <= 0 && errno_unsupported (errno)) + unsupported_device = f->stat.st_dev; + return n; +@@ -2867,6 +2872,7 @@ has_capability_cache (char const *file, struct fileinfo *f) + /* st_dev of the most recently processed device for which we've + found that has_capability fails indicating lack of support. */ + static dev_t unsupported_device; ++ bool b; + + if (f->stat.st_dev == unsupported_device) + { +@@ -2874,7 +2880,7 @@ has_capability_cache (char const *file, struct fileinfo *f) + return 0; + } + +- bool b = has_capability (file); ++ b = has_capability (file); + if ( !b && errno_unsupported (errno)) + unsupported_device = f->stat.st_dev; + return b; +@@ -3064,9 +3070,10 @@ gobble_file (char const *name, enum filetype type, ino_t inode, + && (format == long_format || check_symlink_color)) + { + struct stat linkstats; ++ char *linkname; + + get_link_name (absolute_name, f, command_line_arg); +- char *linkname = make_link_name (absolute_name, f->linkname); ++ linkname = make_link_name (absolute_name, f->linkname); + + /* Avoid following symbolic links when possible, ie, when + they won't be traced and when no indicator is needed. */ +@@ -3220,6 +3227,8 @@ get_link_name (char const *filename, struct fileinfo *f, bool command_line_arg) + static char * + make_link_name (char const *name, char const *linkname) + { ++ char *p; ++ size_t prefix_len; + if (!linkname) + return NULL; + +@@ -3228,11 +3237,11 @@ make_link_name (char const *name, char const *linkname) + + /* The link is to a relative name. Prepend any leading directory + in 'name' to the link name. */ +- size_t prefix_len = dir_len (name); ++ prefix_len = dir_len (name); + if (prefix_len == 0) + return xstrdup (linkname); + +- char *p = xmalloc (prefix_len + 1 + strlen (linkname) + 1); ++ p = xmalloc (prefix_len + 1 + strlen (linkname) + 1); + + /* PREFIX_LEN usually specifies a string not ending in slash. + In that case, extend it by one, since the next byte *is* a slash. +@@ -3634,6 +3643,7 @@ align_nstrftime (char *buf, size_t size, char const *fmt, struct tm const *tm, + the replacement is not done. A malloc here slows ls down by 2% */ + char rpl_fmt[sizeof (abmon[0]) + 100]; + const char *pb; ++ size_t ret; + if (required_mon_width && (pb = strstr (fmt, "%b"))) + { + if (strlen (fmt) < (sizeof (rpl_fmt) - sizeof (abmon[0]) + 2)) +@@ -3646,7 +3656,7 @@ align_nstrftime (char *buf, size_t size, char const *fmt, struct tm const *tm, + strcpy (pfmt, pb + 2); + } + } +- size_t ret = nstrftime (buf, size, nfmt, tm, __utc, __ns); ++ ret = nstrftime (buf, size, nfmt, tm, __utc, __ns); + return ret; + } + +@@ -3797,6 +3807,7 @@ print_long_format (const struct fileinfo *f) + char *p; + struct timespec when_timespec; + struct tm *when_local; ++ size_t w; + + /* Compute the mode string, except remove the trailing space if no + file in this directory has an ACL or SELinux security context. */ +@@ -3984,7 +3995,7 @@ print_long_format (const struct fileinfo *f) + } + + DIRED_FPUTS (buf, stdout, p - buf); +- size_t w = print_name_with_quoting (f, false, &dired_obstack, p - buf); ++ w = print_name_with_quoting (f, false, &dired_obstack, p - buf); + + if (f->filetype == symbolic_link) + { +@@ -4172,6 +4183,7 @@ print_name_with_quoting (const struct fileinfo *f, + struct obstack *stack, + size_t start_col) + { ++ size_t width; + const char* name = symlink_target ? f->linkname : f->name; + + bool used_color_this_time +@@ -4182,7 +4194,7 @@ print_name_with_quoting (const struct fileinfo *f, + if (stack) + PUSH_CURRENT_DIRED_POS (stack); + +- size_t width = quote_name (stdout, name, filename_quoting_options, NULL); ++ width = quote_name (stdout, name, filename_quoting_options, NULL); + dired_pos += width; + + if (stack) +@@ -4219,6 +4231,7 @@ prep_non_filename_text (void) + static size_t + print_file_name_and_frills (const struct fileinfo *f, size_t start_col) + { ++ size_t width; + char buf[MAX (LONGEST_HUMAN_READABLE + 1, INT_BUFSIZE_BOUND (uintmax_t))]; + + set_normal_color (); +@@ -4236,7 +4249,7 @@ print_file_name_and_frills (const struct fileinfo *f, size_t start_col) + if (print_scontext) + printf ("%*s ", format == with_commas ? 0 : scontext_width, f->scontext); + +- size_t width = print_name_with_quoting (f, false, NULL, start_col); ++ width = print_name_with_quoting (f, false, NULL, start_col); + + if (indicator_style != none) + width += print_type_indicator (f->stat_ok, f->stat.st_mode, f->filetype); +diff --git a/src/md5sum.c b/src/md5sum.c +index ee2bbb7..b4ad49f 100644 +--- a/src/md5sum.c ++++ b/src/md5sum.c +@@ -230,8 +230,9 @@ static char * + filename_unescape (char *s, size_t s_len) + { + char *dst = s; ++ size_t i; + +- for (size_t i = 0; i < s_len; i++) ++ for (i = 0; i < s_len; i++) + { + switch (s[i]) + { +@@ -835,6 +836,7 @@ main (int argc, char **argv) + containing '\\' characters, we decided to not simplify the + output in this case. */ + bool needs_escape = strchr (file, '\\') || strchr (file, '\n'); ++ size_t i; + + if (prefix_tag) + { +@@ -847,7 +849,6 @@ main (int argc, char **argv) + fputs (") = ", stdout); + } + +- size_t i; + + /* Output a leading backslash if the file name contains + a newline or backslash. */ +diff --git a/src/mkdir.c b/src/mkdir.c +index adc2930..79e4602 100644 +--- a/src/mkdir.c ++++ b/src/mkdir.c +@@ -117,17 +117,19 @@ static int + make_ancestor (char const *dir, char const *component, void *options) + { + struct mkdir_options const *o = options; +- ++ mode_t user_wx = S_IWUSR | S_IXUSR; ++ bool self_denying_umask; ++ int r; ++ + if (o->set_security_context && defaultcon (dir, S_IFDIR) < 0 + && ! ignorable_ctx_err (errno)) + error (0, errno, _("failed to set default creation context for %s"), + quote (dir)); + +- mode_t user_wx = S_IWUSR | S_IXUSR; +- bool self_denying_umask = (o->umask_value & user_wx) != 0; ++ self_denying_umask = (o->umask_value & user_wx) != 0; + if (self_denying_umask) + umask (o->umask_value & ~user_wx); +- int r = mkdir (component, S_IRWXUGO); ++ r = mkdir (component, S_IRWXUGO); + if (self_denying_umask) + { + int mkdir_errno = errno; +@@ -148,6 +150,7 @@ process_dir (char *dir, struct savewd *wd, void *options) + { + struct mkdir_options const *o = options; + bool set_defaultcon = false; ++ int ret; + + /* If possible set context before DIR created. */ + if (o->set_security_context) +@@ -169,7 +172,7 @@ process_dir (char *dir, struct savewd *wd, void *options) + quote (dir)); + } + +- int ret = (make_dir_parents (dir, wd, o->make_ancestor_function, options, ++ ret = (make_dir_parents (dir, wd, o->make_ancestor_function, options, + o->mode, announce_mkdir, + o->mode_bits, (uid_t) -1, (gid_t) -1, true) + ? EXIT_SUCCESS +diff --git a/src/nproc.c b/src/nproc.c +index 5bd6610..cc980e2 100644 +--- a/src/nproc.c ++++ b/src/nproc.c +@@ -76,6 +76,7 @@ int + main (int argc, char **argv) + { + unsigned long nproc, ignore = 0; ++ enum nproc_query mode = NPROC_CURRENT_OVERRIDABLE; + initialize_main (&argc, &argv); + set_program_name (argv[0]); + setlocale (LC_ALL, ""); +@@ -84,8 +85,7 @@ main (int argc, char **argv) + + atexit (close_stdout); + +- enum nproc_query mode = NPROC_CURRENT_OVERRIDABLE; +- ++ + while (1) + { + int c = getopt_long (argc, argv, "", longopts, NULL); +diff --git a/src/numfmt.c b/src/numfmt.c +index 339c79f..fc67ade 100644 +--- a/src/numfmt.c ++++ b/src/numfmt.c +@@ -538,9 +538,11 @@ simple_strtod_float (const char *input_str, + char *ptr2; + long double val_frac = 0; + bool neg_frac; ++ size_t exponent; ++ enum simple_strtod_error e2; + + (*endptr) += decimal_point_length; +- enum simple_strtod_error e2 = ++ e2 = + simple_strtod_int (*endptr, &ptr2, &val_frac, &neg_frac); + if (e2 != SSE_OK && e2 != SSE_OK_PRECISION_LOSS) + return e2; +@@ -550,7 +552,7 @@ simple_strtod_float (const char *input_str, + return SSE_INVALID_NUMBER; + + /* number of digits in the fractions. */ +- size_t exponent = ptr2 - *endptr; ++ exponent = ptr2 - *endptr; + + val_frac = ((long double) val_frac) / powerld (10, exponent); + +@@ -597,12 +599,14 @@ simple_strtod_human (const char *input_str, + int power = 0; + /* 'scale_auto' is checked below. */ + int scale_base = default_scale_base (allowed_scaling); ++ enum simple_strtod_error e; ++ long double multiplier; + + devmsg ("simple_strtod_human:\n input string: %s\n " + "locale decimal-point: %s\n", + quote_n (0, input_str), quote_n (1, decimal_point)); + +- enum simple_strtod_error e = ++ e = + simple_strtod_float (input_str, endptr, value, precision); + if (e != SSE_OK && e != SSE_OK_PRECISION_LOSS) + return e; +@@ -648,7 +652,7 @@ simple_strtod_human (const char *input_str, + return SSE_MISSING_I_SUFFIX; + } + +- long double multiplier = powerld (scale_base, power); ++ multiplier = powerld (scale_base, power); + + devmsg (" suffix power=%d^%d = %Lf\n", scale_base, power, multiplier); + +@@ -705,10 +709,15 @@ double_to_human (long double val, int precision, + char *buf, size_t buf_size, + enum scale_type scale, int group, enum round_type round) + { ++ double scale_base; ++ unsigned int power; ++ int ten_or_less = 0; ++ int show_decimal_point; + devmsg ("double_to_human:\n"); + + if (scale == scale_none) + { ++ int i; + val *= powerld (10, precision); + val = simple_round (val, round); + val /= powerld (10, precision); +@@ -717,7 +726,7 @@ double_to_human (long double val, int precision, + " no scaling, returning (grouped) value: %'.*Lf\n" : + " no scaling, returning value: %.*Lf\n", precision, val); + +- int i = snprintf (buf, buf_size, (group) ? "%'.*Lf" : "%.*Lf", ++ i = snprintf (buf, buf_size, (group) ? "%'.*Lf" : "%.*Lf", + precision, val); + if (i < 0 || i >= (int) buf_size) + error (EXIT_FAILURE, 0, +@@ -726,15 +735,14 @@ double_to_human (long double val, int precision, + } + + /* Scaling requested by user. */ +- double scale_base = default_scale_base (scale); ++ scale_base = default_scale_base (scale); + + /* Normalize val to scale. */ +- unsigned int power = 0; ++ power = 0; + val = expld (val, scale_base, &power); + devmsg (" scaled value to %Lf * %0.f ^ %d\n", val, scale_base, power); + + /* Perform rounding. */ +- int ten_or_less = 0; + if (absld (val) < 10) + { + /* for values less than 10, we allow one decimal-point digit, +@@ -756,7 +764,7 @@ double_to_human (long double val, int precision, + + /* should "7.0" be printed as "7" ? + if removing the ".0" is preferred, enable the fourth condition. */ +- int show_decimal_point = (val != 0) && (absld (val) < 10) && (power > 0); ++ show_decimal_point = (val != 0) && (absld (val) < 10) && (power > 0); + /* && (absld (val) > simple_round_floor (val))) */ + + devmsg (" after rounding, value=%Lf * %0.f ^ %d\n", val, scale_base, power); +@@ -1146,6 +1154,10 @@ print_padded_number (void) + static int + process_suffixed_number (char *text, long double *result, size_t *precision) + { ++ char *p; ++ long double val = 0; ++ enum simple_strtod_error e; ++ const unsigned int skip_count; + if (suffix && strlen (text) > strlen (suffix)) + { + char *possible_suffix = text + strlen (text) - strlen (suffix); +@@ -1161,10 +1173,10 @@ process_suffixed_number (char *text, long double *result, size_t *precision) + } + + /* Skip white space - always. */ +- char *p = text; ++ p = text; + while (*p && isblank (*p)) + ++p; +- const unsigned int skip_count = text - p; ++ skip_count = text - p; + + /* setup auto-padding. */ + if (auto_padding) +@@ -1181,8 +1193,7 @@ process_suffixed_number (char *text, long double *result, size_t *precision) + devmsg ("setting Auto-Padding to %ld characters\n", padding_width); + } + +- long double val = 0; +- enum simple_strtod_error e = parse_human_number (p, &val, precision); ++ e = parse_human_number (p, &val, precision); + if (e == SSE_OK_PRECISION_LOSS && debug) + error (0, 0, _("large input value %s: possible precision loss"), + quote (p)); +@@ -1339,6 +1350,7 @@ int + main (int argc, char **argv) + { + int valid_numbers = 1; ++ int exit_status; + + initialize_main (&argc, &argv); + set_program_name (argv[0]); +@@ -1527,7 +1539,7 @@ main (int argc, char **argv) + if (debug && !valid_numbers) + error (0, 0, _("failed to convert some of the input numbers")); + +- int exit_status = EXIT_SUCCESS; ++ exit_status = EXIT_SUCCESS; + if (!valid_numbers && _invalid != inval_warn && _invalid != inval_ignore) + exit_status = EXIT_CONVERSION_WARNINGS; + +diff --git a/src/realpath.c b/src/realpath.c +index 233b98f..d76ef52 100644 +--- a/src/realpath.c ++++ b/src/realpath.c +@@ -101,8 +101,9 @@ realpath_canon (const char *fname, int can_mode) + char *can_fname = canonicalize_filename_mode (fname, can_mode); + if (logical && can_fname) /* canonicalize again to resolve symlinks. */ + { ++ char *can_fname2; + can_mode &= ~CAN_NOLINKS; +- char *can_fname2 = canonicalize_filename_mode (can_fname, can_mode); ++ can_fname2 = canonicalize_filename_mode (can_fname, can_mode); + free (can_fname); + return can_fname2; + } +@@ -176,6 +177,7 @@ main (int argc, char **argv) + int can_mode = CAN_ALL_BUT_LAST; + const char *relative_to = NULL; + const char *relative_base = NULL; ++ bool need_dir; + + initialize_main (&argc, &argv); + set_program_name (argv[0]); +@@ -240,7 +242,7 @@ main (int argc, char **argv) + if (relative_base && !relative_to) + relative_to = relative_base; + +- bool need_dir = (can_mode & CAN_MODE_MASK) == CAN_EXISTING; ++ need_dir = (can_mode & CAN_MODE_MASK) == CAN_EXISTING; + if (relative_to) + { + can_relative_to = realpath_canon (relative_to, can_mode); +diff --git a/src/relpath.c b/src/relpath.c +index 5a93afe..1042b90 100644 +--- a/src/relpath.c ++++ b/src/relpath.c +@@ -88,14 +88,16 @@ bool + relpath (const char *can_fname, const char *can_reldir, char *buf, size_t len) + { + bool buf_err = false; ++ const char *relto_suffix; ++ const char *fname_suffix; + + /* Skip the prefix common to --relative-to and path. */ + int common_index = path_common_prefix (can_reldir, can_fname); + if (!common_index) + return false; + +- const char *relto_suffix = can_reldir + common_index; +- const char *fname_suffix = can_fname + common_index; ++ relto_suffix = can_reldir + common_index; ++ fname_suffix = can_fname + common_index; + + /* Skip over extraneous '/'. */ + if (*relto_suffix == '/') +diff --git a/src/remove.c b/src/remove.c +index 3d386cf..eefbcbb 100644 +--- a/src/remove.c ++++ b/src/remove.c +@@ -180,17 +180,20 @@ prompt (FTS const *fts, FTSENT const *ent, bool is_dir, + int fd_cwd = fts->fts_cwd_fd; + char const *full_name = ent->fts_path; + char const *filename = ent->fts_accpath; ++ struct stat st; ++ struct stat *sbuf; ++ int dirent_type; ++ int write_protected = 0; ++ bool is_empty = false; ++ int wp_errno = 0; + if (is_empty_p) + *is_empty_p = T_UNKNOWN; + +- struct stat st; +- struct stat *sbuf = &st; ++ sbuf = &st; + cache_stat_init (sbuf); + +- int dirent_type = is_dir ? DT_DIR : DT_UNKNOWN; +- int write_protected = 0; +- +- bool is_empty = false; ++ dirent_type = is_dir ? DT_DIR : DT_UNKNOWN; ++ + if (is_empty_p) + { + is_empty = is_empty_dir (fd_cwd, filename); +@@ -206,7 +209,6 @@ prompt (FTS const *fts, FTSENT const *ent, bool is_dir, + if (x->interactive == RMI_NEVER) + return RM_OK; + +- int wp_errno = 0; + if (!x->ignore_missing_files + && ((x->interactive == RMI_ALWAYS) || x->stdin_tty) + && dirent_type != DT_LNK) +@@ -217,6 +219,7 @@ prompt (FTS const *fts, FTSENT const *ent, bool is_dir, + + if (write_protected || x->interactive == RMI_ALWAYS) + { ++ char const *quoted_name; + if (0 <= write_protected && dirent_type == DT_UNKNOWN) + { + if (cache_fstatat (fd_cwd, filename, sbuf, AT_SYMLINK_NOFOLLOW) == 0) +@@ -256,7 +259,7 @@ prompt (FTS const *fts, FTSENT const *ent, bool is_dir, + break; + } + +- char const *quoted_name = quote (full_name); ++ quoted_name = quote (full_name); + + if (write_protected < 0) + { +@@ -492,6 +495,8 @@ rm_fts (FTS *fts, FTSENT *ent, struct rm_options const *x) + case FTS_NSOK: /* e.g., dangling symlink */ + case FTS_DEFAULT: /* none of the above */ + { ++ bool is_dir; ++ enum RM_status s; + /* With --one-file-system, do not attempt to remove a mount point. + fts' FTS_XDEV ensures that we don't process any entries under + the mount point. */ +@@ -506,8 +511,8 @@ rm_fts (FTS *fts, FTSENT *ent, struct rm_options const *x) + return RM_ERROR; + } + +- bool is_dir = ent->fts_info == FTS_DP || ent->fts_info == FTS_DNR; +- enum RM_status s = prompt (fts, ent, is_dir, x, PA_REMOVE_DIR, NULL); ++ is_dir = ent->fts_info == FTS_DP || ent->fts_info == FTS_DNR; ++ s = prompt (fts, ent, is_dir, x, PA_REMOVE_DIR, NULL); + if (s != RM_OK) + return s; + return excise (fts, ent, x, is_dir); +@@ -548,15 +553,17 @@ rm (char *const *file, struct rm_options const *x) + int bit_flags = (FTS_CWDFD + | FTS_NOSTAT + | FTS_PHYSICAL); ++ FTS *fts; + + if (x->one_file_system) + bit_flags |= FTS_XDEV; + +- FTS *fts = xfts_open (file, bit_flags, NULL); ++ fts = xfts_open (file, bit_flags, NULL); + + while (1) + { + FTSENT *ent; ++ enum RM_status s; + + ent = fts_read (fts); + if (ent == NULL) +@@ -569,7 +576,7 @@ rm (char *const *file, struct rm_options const *x) + break; + } + +- enum RM_status s = rm_fts (fts, ent, x); ++ s = rm_fts (fts, ent, x); + + assert (VALID_STATUS (s)); + UPDATE_STATUS (rm_status, s); +diff --git a/src/rm.c b/src/rm.c +index 7a51eef..27cef70 100644 +--- a/src/rm.c ++++ b/src/rm.c +@@ -209,6 +209,9 @@ main (int argc, char **argv) + struct rm_options x; + bool prompt_once = false; + int c; ++ size_t n_files; ++ char **file; ++ enum RM_status status; + + initialize_main (&argc, &argv); + set_program_name (argv[0]); +@@ -332,8 +335,8 @@ main (int argc, char **argv) + quote ("/")); + } + +- size_t n_files = argc - optind; +- char **file = argv + optind; ++ n_files = argc - optind; ++ file = argv + optind; + + if (prompt_once && (x.recursive || 3 < n_files)) + { +@@ -350,7 +353,7 @@ main (int argc, char **argv) + exit (EXIT_SUCCESS); + } + +- enum RM_status status = rm (file, &x); ++ status = rm (file, &x); + assert (VALID_STATUS (status)); + exit (status == RM_ERROR ? EXIT_FAILURE : EXIT_SUCCESS); + } +diff --git a/src/seq.c b/src/seq.c +index 35dfc8b..0cf99bb 100644 +--- a/src/seq.c ++++ b/src/seq.c +@@ -153,6 +153,7 @@ scan_arg (const char *arg) + if (! arg[strcspn (arg, "xX")] && isfinite (ret.value)) + { + char const *decimal_point = strchr (arg, '.'); ++ char const *e; + if (! decimal_point) + ret.precision = 0; + else +@@ -165,7 +166,7 @@ scan_arg (const char *arg) + : (decimal_point == arg /* .# -> 0.# */ + || ! ISDIGIT (decimal_point[-1]))); /* -.# -> 0.# */ + } +- char const *e = strchr (arg, 'e'); ++ e = strchr (arg, 'e'); + if (! e) + e = strchr (arg, 'E'); + if (e) +@@ -330,6 +331,7 @@ get_default_format (operand first, operand step, operand last) + { + if (equal_width) + { ++ size_t width; + /* increase first_width by any increased precision in step */ + size_t first_width = first.width + (prec - first.precision); + /* adjust last_width to use precision from first/step */ +@@ -340,7 +342,7 @@ get_default_format (operand first, operand step, operand last) + last_width++; /* include space for '.' */ + if (first.precision == 0 && prec) + first_width++; /* include space for '.' */ +- size_t width = MAX (first_width, last_width); ++ width = MAX (first_width, last_width); + if (width <= INT_MAX) + { + int w = width; +@@ -411,20 +413,23 @@ trim_leading_zeros (char const *s) + static bool + seq_fast (char const *a, char const *b) + { ++ size_t p_len, q_len, n; ++ char *p0, *p, *q0, *q; ++ bool ok; + /* Skip past any leading 0's. Without this, our naive cmp + function would declare 000 to be larger than 99. */ + a = trim_leading_zeros (a); + b = trim_leading_zeros (b); + +- size_t p_len = strlen (a); +- size_t q_len = strlen (b); +- size_t n = MAX (p_len, q_len); +- char *p0 = xmalloc (n + 1); +- char *p = memcpy (p0 + n - p_len, a, p_len + 1); +- char *q0 = xmalloc (n + 1); +- char *q = memcpy (q0 + n - q_len, b, q_len + 1); ++ p_len = strlen (a); ++ q_len = strlen (b); ++ n = MAX (p_len, q_len); ++ p0 = xmalloc (n + 1); ++ p = memcpy (p0 + n - p_len, a, p_len + 1); ++ q0 = xmalloc (n + 1); ++ q = memcpy (q0 + n - q_len, b, q_len + 1); + +- bool ok = cmp (p, p_len, q, q_len) <= 0; ++ ok = cmp (p, p_len, q, q_len) <= 0; + if (ok) + { + /* Buffer at least this many numbers per fwrite call. +@@ -485,6 +490,7 @@ main (int argc, char **argv) + + /* The printf(3) format used for output. */ + char const *format_str = NULL; ++ unsigned int n_args; + + initialize_main (&argc, &argv); + set_program_name (argv[0]); +@@ -536,7 +542,7 @@ main (int argc, char **argv) + } + } + +- unsigned int n_args = argc - optind; ++ n_args = argc - optind; + if (n_args < 1) + { + error (0, 0, _("missing operand")); +diff --git a/src/shred.c b/src/shred.c +index 6f5b4da..701de0e 100644 +--- a/src/shred.c ++++ b/src/shred.c +@@ -251,11 +251,12 @@ to be recovered later.\n\ + static bool + periodic_pattern (int type) + { ++ unsigned char r[3]; ++ unsigned int bits; + if (type <= 0) + return false; + +- unsigned char r[3]; +- unsigned int bits = type & 0xfff; ++ bits = type & 0xfff; + + bits |= bits << 12; + r[0] = (bits >> 4) & 255; +@@ -400,33 +401,38 @@ dopass (int fd, char const *qname, off_t *sizep, int type, + size_t lim; /* Amount of data to try writing */ + size_t soff; /* Offset into buffer for next write */ + ssize_t ssize; /* Return value from write */ ++ size_t page_size; ++ size_t output_size; ++ void *fill_pattern_mem; ++ unsigned char *pbuf; ++ ++ char pass_string[PASS_NAME_SIZE]; /* Name of current pass */ ++ bool write_error = false; ++ bool other_error = false; ++ bool tried_without_directio = false; ++ ++ /* Printable previous offset into the file */ ++ char previous_offset_buf[LONGEST_HUMAN_READABLE + 1]; ++ char const *previous_human_offset IF_LINT ( = 0); + + /* Do nothing for --size=0 or regular empty files with --exact. */ + if (size == 0) + return 0; + + /* Fill pattern buffer. Aligning it to a page so we can do direct I/O. */ +- size_t page_size = getpagesize (); ++ page_size = getpagesize (); + #define PERIODIC_OUTPUT_SIZE (60 * 1024) + #define NONPERIODIC_OUTPUT_SIZE (64 * 1024) + verify (PERIODIC_OUTPUT_SIZE % 3 == 0); +- size_t output_size = periodic_pattern (type) ++ output_size = periodic_pattern (type) + ? PERIODIC_OUTPUT_SIZE : NONPERIODIC_OUTPUT_SIZE; + #define PAGE_ALIGN_SLOP (page_size - 1) /* So directio works */ + #define FILLPATTERN_SIZE (((output_size + 2) / 3) * 3) /* Multiple of 3 */ + #define PATTERNBUF_SIZE (PAGE_ALIGN_SLOP + FILLPATTERN_SIZE) +- void *fill_pattern_mem = xmalloc (PATTERNBUF_SIZE); +- unsigned char *pbuf = ptr_align (fill_pattern_mem, page_size); +- +- char pass_string[PASS_NAME_SIZE]; /* Name of current pass */ +- bool write_error = false; +- bool other_error = false; +- bool tried_without_directio = false; +- +- /* Printable previous offset into the file */ +- char previous_offset_buf[LONGEST_HUMAN_READABLE + 1]; +- char const *previous_human_offset IF_LINT ( = 0); ++ fill_pattern_mem = xmalloc (PATTERNBUF_SIZE); ++ pbuf = ptr_align (fill_pattern_mem, page_size); + ++ + if (lseek (fd, 0, SEEK_SET) == -1) + { + error (0, errno, _("%s: cannot rewind"), qname); +@@ -457,6 +463,7 @@ dopass (int fd, char const *qname, off_t *sizep, int type, + offset = 0; + while (true) + { ++ bool done; + /* How much to write this time? */ + lim = output_size; + if (0 <= size && size - offset < output_size) +@@ -536,7 +543,7 @@ dopass (int fd, char const *qname, off_t *sizep, int type, + + offset += soff; + +- bool done = offset == size; ++ done = offset == size; + + /* Time to print progress? */ + if (n && ((done && *previous_human_offset) +diff --git a/src/shuf.c b/src/shuf.c +index 456140f..e1bbe5d 100644 +--- a/src/shuf.c ++++ b/src/shuf.c +@@ -150,6 +150,7 @@ static off_t + input_size (void) + { + off_t file_size; ++ off_t input_offset; + + struct stat stat_buf; + if (fstat (STDIN_FILENO, &stat_buf) != 0) +@@ -159,7 +160,7 @@ input_size (void) + else + return OFF_T_MAX; + +- off_t input_offset = lseek (STDIN_FILENO, 0, SEEK_CUR); ++ input_offset = lseek (STDIN_FILENO, 0, SEEK_CUR); + if (input_offset < 0) + return OFF_T_MAX; + +diff --git a/src/sort.c b/src/sort.c +index 573d6cb..392da25 100644 +--- a/src/sort.c ++++ b/src/sort.c +@@ -764,9 +764,10 @@ static bool + delete_proc (pid_t pid) + { + struct tempnode test; ++ struct tempnode *node; + + test.pid = pid; +- struct tempnode *node = hash_delete (proctab, &test); ++ node = hash_delete (proctab, &test); + if (! node) + return false; + node->state = REAPED; +@@ -1162,6 +1163,7 @@ open_temp (struct tempnode *temp) + { + int tempfd, pipefds[2]; + FILE *fp = NULL; ++ pid_t child; + + if (temp->state == UNREAPED) + wait_proc (temp->pid); +@@ -1170,7 +1172,7 @@ open_temp (struct tempnode *temp) + if (tempfd < 0) + return NULL; + +- pid_t child = pipe_fork (pipefds, MAX_FORK_TRIES_DECOMPRESS); ++ child = pipe_fork (pipefds, MAX_FORK_TRIES_DECOMPRESS); + + switch (child) + { +@@ -1446,6 +1448,7 @@ specify_nthreads (int oi, char c, char const *s) + static size_t + default_sort_size (void) + { ++ double avail, total, mem; + /* Let SIZE be MEM, but no more than the maximum object size, + total memory, or system resource limits. Don't bother to check + for values like RLIM_INFINITY since in practice they are not much +@@ -1472,9 +1475,9 @@ default_sort_size (void) + + /* Let MEM be available memory or 1/8 of total memory, whichever + is greater. */ +- double avail = physmem_available (); +- double total = physmem_total (); +- double mem = MAX (avail, total / 8); ++ avail = physmem_available (); ++ total = physmem_total (); ++ mem = MAX (avail, total / 8); + + /* Leave a 1/4 margin for physical memory. */ + if (total * 0.75 < size) +@@ -1931,12 +1934,13 @@ find_unit_order (char const *number) + static int + human_numcompare (char const *a, char const *b) + { ++ int diff; + while (blanks[to_uchar (*a)]) + a++; + while (blanks[to_uchar (*b)]) + b++; + +- int diff = find_unit_order (a) - find_unit_order (b); ++ diff = find_unit_order (a) - find_unit_order (b); + return (diff ? diff : strnumcmp (a, b, decimal_point, thousands_sep)); + } + +@@ -1963,10 +1967,10 @@ static int + nan_compare (char const *sa, char const *sb) + { + long_double a; ++ long_double b; + memset (&a, 0, sizeof a); + a = strtold (sa, NULL); + +- long_double b; + memset (&b, 0, sizeof b); + b = strtold (sb, NULL); + +@@ -2068,9 +2072,9 @@ random_md5_state_init (char const *random_source) + static size_t + xstrxfrm (char *restrict dest, char const *restrict src, size_t destsize) + { +- errno = 0; + size_t translated_size = strxfrm (dest, src, destsize); +- ++ errno = 0; ++ + if (errno) + { + error (0, errno, _("string transformation failed")); +@@ -2103,6 +2107,7 @@ compare_random (char *restrict texta, size_t lena, + void *allocated = NULL; + uint32_t dig[2][MD5_DIGEST_SIZE / sizeof (uint32_t)]; + struct md5_ctx s[2]; ++ int diff; + s[0] = s[1] = random_md5_state; + + if (hard_LC_COLLATE) +@@ -2128,6 +2133,8 @@ compare_random (char *restrict texta, size_t lena, + twice on typical implementations. Don't worry about + size_t overflow, as the guess need not be correct. */ + size_t guess_bufsize = 3 * (lena + lenb) + 2; ++ size_t sizea, sizeb; ++ bool a_fits; + if (bufsize < guess_bufsize) + { + bufsize = MAX (guess_bufsize, bufsize * 3 / 2); +@@ -2140,10 +2147,10 @@ compare_random (char *restrict texta, size_t lena, + } + } + +- size_t sizea = ++ sizea = + (texta < lima ? xstrxfrm (buf, texta, bufsize) + 1 : 0); +- bool a_fits = sizea <= bufsize; +- size_t sizeb = ++ a_fits = sizea <= bufsize; ++ sizeb = + (textb < limb + ? (xstrxfrm ((a_fits ? buf + sizea : NULL), textb, + (a_fits ? bufsize - sizea : 0)) +@@ -2196,7 +2203,7 @@ compare_random (char *restrict texta, size_t lena, + /* Compute and compare the checksums. */ + md5_process_bytes (texta, lena, &s[0]); md5_finish_ctx (&s[0], dig[0]); + md5_process_bytes (textb, lenb, &s[1]); md5_finish_ctx (&s[1], dig[1]); +- int diff = memcmp (dig[0], dig[1], sizeof dig[0]); ++ diff = memcmp (dig[0], dig[1], sizeof dig[0]); + + /* Fall back on the tiebreaker if the checksums collide. */ + if (! diff) +@@ -2267,6 +2274,7 @@ debug_key (struct line const *line, struct keyfield const *key) + char *text = line->text; + char *beg = text; + char *lim = text + line->length - 1; ++ size_t offset, width; + + if (key) + { +@@ -2278,12 +2286,13 @@ debug_key (struct line const *line, struct keyfield const *key) + if (key->skipsblanks || key->month || key_numeric (key)) + { + char saved = *lim; ++ char *tighter_lim; + *lim = '\0'; + + while (blanks[to_uchar (*beg)]) + beg++; + +- char *tighter_lim = beg; ++ tighter_lim = beg; + + if (lim < beg) + tighter_lim = lim; +@@ -2319,8 +2328,8 @@ debug_key (struct line const *line, struct keyfield const *key) + } + } + +- size_t offset = debug_width (text, beg); +- size_t width = debug_width (beg, lim); ++ offset = debug_width (text, beg); ++ width = debug_width (beg, lim); + mark_key (offset, width); + } + +@@ -2394,6 +2403,7 @@ key_warnings (struct keyfield const *gkey, bool gkey_only) + + for (key = keylist; key; key = key->next, keynum++) + { ++ bool implicit_skip, maybe_space_aligned, line_offset; + if (key->obsolete_used) + { + size_t sword = key->sword; +@@ -2428,10 +2438,10 @@ key_warnings (struct keyfield const *gkey, bool gkey_only) + error (0, 0, _("key %lu has zero width and will be ignored"), keynum); + + /* Warn about significant leading blanks. */ +- bool implicit_skip = key_numeric (key) || key->month; +- bool maybe_space_aligned = !hard_LC_COLLATE && default_key_compare (key) ++ implicit_skip = key_numeric (key) || key->month; ++ maybe_space_aligned = !hard_LC_COLLATE && default_key_compare (key) + && !(key->schar || key->echar); +- bool line_offset = key->eword == 0 && key->echar != 0; /* -k1.x,1.y */ ++ line_offset = key->eword == 0 && key->echar != 0; /* -k1.x,1.y */ + if (!gkey_only && tab == TAB_DEFAULT && !line_offset + && ((!key->skipsblanks && !(implicit_skip || maybe_space_aligned)) + || (!key->skipsblanks && key->schar) +@@ -2475,10 +2485,10 @@ key_warnings (struct keyfield const *gkey, bool gkey_only) + || (ugkey.reverse && (stable || unique) && keylist)) + { + bool ugkey_reverse = ugkey.reverse; ++ char opts[sizeof short_options]; + if (!(stable || unique)) + ugkey.reverse = false; + /* The following is too big, but guaranteed to be "big enough". */ +- char opts[sizeof short_options]; + key_to_opts (&ugkey, opts); + error (0, 0, + ngettext ("option '-%s' is ignored", +@@ -2509,6 +2519,7 @@ keycompare (struct line const *a, struct line const *b) + + while (true) + { ++ size_t lena, lenb; + char const *translate = key->translate; + bool const *ignore = key->ignore; + +@@ -2517,8 +2528,8 @@ keycompare (struct line const *a, struct line const *b) + limb = MAX (textb, limb); + + /* Find the lengths. */ +- size_t lena = lima - texta; +- size_t lenb = limb - textb; ++ lena = lima - texta; ++ lenb = limb - textb; + + if (hard_LC_COLLATE || key_numeric (key) + || key->month || key->random || key->version) +@@ -3187,6 +3198,8 @@ sequential_sort (struct line *restrict lines, size_t nlines, + size_t nhi = nlines - nlo; + struct line *lo = lines; + struct line *hi = lines - nlo; ++ struct line *dest; ++ struct line const *sorted_lo; + + sequential_sort (hi, nhi, temp - (to_temp ? nlo : 0), to_temp); + if (1 < nlo) +@@ -3194,8 +3207,6 @@ sequential_sort (struct line *restrict lines, size_t nlines, + else if (!to_temp) + temp[-1] = lo[-1]; + +- struct line *dest; +- struct line const *sorted_lo; + if (to_temp) + { + dest = temp; +@@ -3822,6 +3833,8 @@ merge (struct sortfile *files, size_t ntemps, size_t nfiles, + while (true) + { + /* Merge directly into the output file if possible. */ ++ FILE *tfp; ++ struct tempnode *temp; + FILE **fps; + size_t nopened = open_input_files (files, nfiles, &fps); + +@@ -3844,8 +3857,6 @@ merge (struct sortfile *files, size_t ntemps, size_t nfiles, + file with our spare file descriptor. Retry if that failed + (e.g., some other process could open a file between the time + we closed and tried to create). */ +- FILE *tfp; +- struct tempnode *temp; + do + { + nopened--; +@@ -3874,10 +3885,10 @@ sort (char *const *files, size_t nfiles, char const *output_file, + size_t nthreads) + { + struct buffer buf; +- IF_LINT (buf.buf = NULL); + size_t ntemps = 0; + bool output_file_created = false; +- ++ IF_LINT (buf.buf = NULL); ++ + buf.alloc = 0; + + while (nfiles) +@@ -3942,10 +3953,12 @@ sort (char *const *files, size_t nfiles, char const *output_file, + if (1 < buf.nlines) + { + struct merge_node_queue queue; ++ struct merge_node *merge_tree; ++ struct merge_node *root; + queue_init (&queue, nthreads); +- struct merge_node *merge_tree = ++ merge_tree = + merge_tree_init (nthreads, buf.nlines, line); +- struct merge_node *root = merge_tree + 1; ++ root = merge_tree + 1; + + sortlines (line, nthreads, buf.nlines, root, + &queue, tfp, temp_output); +@@ -4722,6 +4735,7 @@ main (int argc, char **argv) + } + else + { ++ size_t nthreads_max; + if (!nthreads) + { + unsigned long int np = num_processors (NPROC_CURRENT_OVERRIDABLE); +@@ -4729,7 +4743,7 @@ main (int argc, char **argv) + } + + /* Avoid integer overflow later. */ +- size_t nthreads_max = SIZE_MAX / (2 * sizeof (struct merge_node)); ++ nthreads_max = SIZE_MAX / (2 * sizeof (struct merge_node)); + nthreads = MIN (nthreads, nthreads_max); + + sort (files, nfiles, outfile, nthreads); +diff --git a/src/split.c b/src/split.c +index f740652..e86668f 100644 +--- a/src/split.c ++++ b/src/split.c +@@ -309,14 +309,15 @@ new_name: + + if (numeric_suffix_start) + { +- assert (! widen); +- ++ size_t *sufindex_end; ++ + /* Update the output file name. */ + size_t i = strlen (numeric_suffix_start); ++ assert (! widen); + memcpy (outfile_mid + suffix_length - i, numeric_suffix_start, i); + + /* Update the suffix index. */ +- size_t *sufindex_end = sufindex + suffix_length; ++ sufindex_end = sufindex + suffix_length; + while (i-- != 0) + *--sufindex_end = numeric_suffix_start[i] - '0'; + } +@@ -362,13 +363,14 @@ create (const char *name) + { + if (!filter_command) + { ++ int fd; ++ struct stat out_stat_buf; + if (verbose) + fprintf (stdout, _("creating file %s\n"), quote (name)); + +- int fd = open (name, O_WRONLY | O_CREAT | O_BINARY, MODE_RW_UGO); ++ fd = open (name, O_WRONLY | O_CREAT | O_BINARY, MODE_RW_UGO); + if (fd < 0) + return fd; +- struct stat out_stat_buf; + if (fstat (fd, &out_stat_buf) != 0) + error (EXIT_FAILURE, errno, _("failed to stat %s"), quote (name)); + if (SAME_INODE (in_stat_buf, out_stat_buf)) +@@ -445,9 +447,9 @@ closeout (FILE *fp, int fd, pid_t pid, char const *name) + error (EXIT_FAILURE, errno, "%s", name); + if (fd >= 0) + { ++ int j; + if (fp == NULL && close (fd) < 0) + error (EXIT_FAILURE, errno, "%s", name); +- int j; + for (j = 0; j < n_open_pipes; ++j) + { + if (open_pipes[j] == fd) +@@ -633,11 +635,13 @@ line_bytes_split (uintmax_t n_bytes, char *buf, size_t bufsize) + + do + { ++ size_t n_left; ++ char *sob; + n_read = full_read (STDIN_FILENO, buf, bufsize); + if (n_read < bufsize && errno) + error (EXIT_FAILURE, errno, "%s", infile); +- size_t n_left = n_read; +- char *sob = buf; ++ n_left = n_read; ++ sob = buf; + while (n_left) + { + size_t split_rest = 0; +@@ -670,8 +674,8 @@ line_bytes_split (uintmax_t n_bytes, char *buf, size_t bufsize) + /* Output to eol if present. */ + if (eol) + { +- split_line = true; + size_t n_write = eol - sob + 1; ++ split_line = true; + cwrite (n_out == 0, sob, n_write); + n_out += n_write; + n_left -= n_write; +@@ -739,8 +743,6 @@ static void + lines_chunk_split (uintmax_t k, uintmax_t n, char *buf, size_t bufsize, + off_t file_size) + { +- assert (n && k <= n && n <= file_size); +- + const off_t chunk_size = file_size / n; + uintmax_t chunk_no = 1; + off_t chunk_end = chunk_size - 1; +@@ -748,6 +750,8 @@ lines_chunk_split (uintmax_t k, uintmax_t n, char *buf, size_t bufsize, + bool new_file_flag = true; + bool chunk_truncated = false; + ++ assert (n && k <= n && n <= file_size); ++ + if (k > 1) + { + /* Start reading 1 byte before kth chunk of file. */ +@@ -1136,6 +1140,8 @@ main (int argc, char **argv) + int c; + int digits_optind = 0; + off_t file_size IF_LINT (= 0); ++ void *b; ++ char *buf; + + initialize_main (&argc, &argv); + set_program_name (argv[0]); +@@ -1434,8 +1440,8 @@ main (int argc, char **argv) + file_size = MAX (file_size, n_units); + } + +- void *b = xmalloc (in_blk_size + 1 + page_size - 1); +- char *buf = ptr_align (b, page_size); ++ b = xmalloc (in_blk_size + 1 + page_size - 1); ++ buf = ptr_align (b, page_size); + + /* When filtering, closure of one pipe must not terminate the process, + as there may still be other streams expecting input from us. */ +diff --git a/src/stat.c b/src/stat.c +index ba491f4..c3e66f8 100644 +--- a/src/stat.c ++++ b/src/stat.c +@@ -604,6 +604,10 @@ out_epoch_sec (char *pformat, size_t prefix_len, + int width = 0; + int precision = 0; + bool frac_left_adjust = false; ++ int divisor = 1; ++ int frac_sec; ++ int int_len; ++ int i; + + if (dot) + { +@@ -625,6 +629,7 @@ out_epoch_sec (char *pformat, size_t prefix_len, + /* If a nontrivial width is given, subtract the width of the + decimal point and PRECISION digits that will be output + later. */ ++ long int lwidth; + char *p = dot; + *dot = '\0'; + +@@ -632,13 +637,14 @@ out_epoch_sec (char *pformat, size_t prefix_len, + --p; + while (ISDIGIT (p[-1])); + +- long int lwidth = strtol (p, NULL, 10); ++ lwidth = strtol (p, NULL, 10); + width = (lwidth <= INT_MAX ? lwidth : INT_MAX); + if (1 < width) + { ++ int w_d; + p += (*p == '0'); + sec_prefix_len = p - pformat; +- int w_d = (decimal_point_len < width ++ w_d = (decimal_point_len < width + ? width - decimal_point_len + : 0); + if (1 < w_d) +@@ -647,7 +653,8 @@ out_epoch_sec (char *pformat, size_t prefix_len, + if (1 < w) + { + char *dst = pformat; +- for (char const *src = dst; src < p; src++) ++ char const *src; ++ for (src = dst; src < p; src++) + { + if (*src == '-') + frac_left_adjust = true; +@@ -663,11 +670,9 @@ out_epoch_sec (char *pformat, size_t prefix_len, + } + } + +- int divisor = 1; +- for (int i = precision; i < 9; i++) ++ for (i = precision; i < 9; i++) + divisor *= 10; +- int frac_sec = arg.tv_nsec / divisor; +- int int_len; ++ frac_sec = arg.tv_nsec / divisor; + + if (TYPE_SIGNED (time_t)) + { +@@ -819,6 +824,7 @@ find_bind_mount (char const * name) + { + char const * bind_mount = NULL; + ++ struct mount_entry *me; + static struct mount_entry *mount_list; + static bool tried_mount_list = false; + if (!tried_mount_list) /* attempt/warn once per process. */ +@@ -828,7 +834,6 @@ find_bind_mount (char const * name) + tried_mount_list = true; + } + +- struct mount_entry *me; + for (me = mount_list; me; me = me->me_next) + { + if (me->me_dummy && me->me_devname[0] == '/' +@@ -903,9 +908,9 @@ print_mount_point: + static inline struct timespec + neg_to_zero (struct timespec ts) + { ++ struct timespec z = {0, 0}; + if (0 <= ts.tv_nsec) + return ts; +- struct timespec z = {0, 0}; + return z; + } + +@@ -1114,11 +1119,12 @@ print_it (char const *format, char const *filename, + { + size_t len = strspn (b + 1, printf_flags); + char const *fmt_char = b + len + 1; ++ unsigned int fmt_code; + fmt_char += strspn (fmt_char, digits); + if (*fmt_char == '.') + fmt_char += 1 + strspn (fmt_char + 1, digits); + len = fmt_char - (b + 1); +- unsigned int fmt_code = *fmt_char; ++ fmt_code = *fmt_char; + memcpy (dest, b, len + 1); + + b = fmt_char; +@@ -1206,6 +1212,7 @@ static bool ATTRIBUTE_WARN_UNUSED_RESULT + do_statfs (char const *filename, char const *format) + { + STRUCT_STATVFS statfsbuf; ++ bool fail; + + if (STREQ (filename, "-")) + { +@@ -1221,7 +1228,7 @@ do_statfs (char const *filename, char const *format) + return false; + } + +- bool fail = print_it (format, filename, print_statfs, &statfsbuf); ++ fail = print_it (format, filename, print_statfs, &statfsbuf); + return ! fail; + } + +@@ -1231,6 +1238,7 @@ do_stat (char const *filename, char const *format, + char const *format2) + { + struct stat statbuf; ++ bool fail; + + if (STREQ (filename, "-")) + { +@@ -1254,7 +1262,7 @@ do_stat (char const *filename, char const *format, + if (S_ISBLK (statbuf.st_mode) || S_ISCHR (statbuf.st_mode)) + format = format2; + +- bool fail = print_it (format, filename, print_stat, &statbuf); ++ fail = print_it (format, filename, print_stat, &statbuf); + return ! fail; + } + +@@ -1455,14 +1463,14 @@ main (int argc, char *argv[]) + char *format = NULL; + char *format2; + bool ok = true; +- ++ struct lconv const *locale = localeconv (); ++ + initialize_main (&argc, &argv); + set_program_name (argv[0]); + setlocale (LC_ALL, ""); + bindtextdomain (PACKAGE, LOCALEDIR); + textdomain (PACKAGE); + +- struct lconv const *locale = localeconv (); + decimal_point = (locale->decimal_point[0] ? locale->decimal_point : "."); + decimal_point_len = strlen (decimal_point); + +diff --git a/src/system.h b/src/system.h +index 6b242a8..0715a96 100644 +--- a/src/system.h ++++ b/src/system.h +@@ -502,6 +502,7 @@ is_nul (void const *buf, size_t bufsize) + void const *vp; + char const *cbuf = buf; + word const *wp = buf; ++ char const *cp; + + /* Find first nonzero *word*, or the word with the sentinel. */ + while (*wp++ == 0) +@@ -509,7 +510,7 @@ is_nul (void const *buf, size_t bufsize) + + /* Find the first nonzero *byte*, or the sentinel. */ + vp = wp - 1; +- char const *cp = vp; ++ cp = vp; + while (*cp++ == 0) + continue; + +@@ -567,10 +568,11 @@ Otherwise, units default to 1024 bytes (or 512 if POSIXLY_CORRECT is set).\n\ + static inline void + emit_ancillary_info (void) + { ++ const char *lc_messages; + printf (_("\n%s online help: <%s>\n"), PACKAGE_NAME, PACKAGE_URL); + /* Don't output this redundant message for English locales. + Note we still output for 'C' so that it gets included in the man page. */ +- const char *lc_messages = setlocale (LC_MESSAGES, NULL); ++ lc_messages = setlocale (LC_MESSAGES, NULL); + if (lc_messages && STRNCMP_LIT (lc_messages, "en_")) + { + /* TRANSLATORS: Replace LANG_CODE in this URL with your language code +diff --git a/src/tac.c b/src/tac.c +index 5bf40a7..7e9cbef 100644 +--- a/src/tac.c ++++ b/src/tac.c +@@ -426,6 +426,7 @@ temp_stream (FILE **fp, char **file_name) + static FILE *tmp_fp; + if (tempfile == NULL) + { ++ int fd; + char const *t = getenv ("TMPDIR"); + char const *tempdir = t ? t : DEFAULT_TMPDIR; + tempfile = mfile_name_concat (tempdir, "tacXXXXXX", NULL); +@@ -444,7 +445,7 @@ temp_stream (FILE **fp, char **file_name) + FIXME: clean up upon fatal signal. Don't block them, in case + $TMPFILE is a remote file system. */ + +- int fd = mkstemp (tempfile); ++ fd = mkstemp (tempfile); + if (fd < 0) + { + error (0, errno, _("failed to create temporary file in %s"), +@@ -536,10 +537,11 @@ tac_nonseekable (int input_fd, const char *file) + { + FILE *tmp_stream; + char *tmp_file; ++ bool ok; + if (!copy_to_temp (&tmp_stream, &tmp_file, input_fd, file)) + return false; + +- bool ok = tac_seekable (fileno (tmp_stream), tmp_file); ++ ok = tac_seekable (fileno (tmp_stream), tmp_file); + return ok; + } + +diff --git a/src/tail.c b/src/tail.c +index dc4e10d..87b2d66 100644 +--- a/src/tail.c ++++ b/src/tail.c +@@ -844,6 +844,8 @@ start_lines (const char *pretty_filename, int fd, uintmax_t n_lines, + { + char buffer[BUFSIZ]; + size_t bytes_read = safe_read (fd, buffer, BUFSIZ); ++ char *buffer_end; ++ char *p; + if (bytes_read == 0) /* EOF */ + return -1; + if (bytes_read == SAFE_READ_ERROR) /* error */ +@@ -852,11 +854,11 @@ start_lines (const char *pretty_filename, int fd, uintmax_t n_lines, + return 1; + } + +- char *buffer_end = buffer + bytes_read; ++ buffer_end = buffer + bytes_read; + + *read_pos += bytes_read; + +- char *p = buffer; ++ p = buffer; + while ((p = memchr (p, '\n', buffer_end - p))) + { + ++p; +diff --git a/src/test.c b/src/test.c +index 2038209..45a1842 100644 +--- a/src/test.c ++++ b/src/test.c +@@ -420,23 +420,27 @@ unary_operator (void) + + case 'O': /* File is owned by you? */ + { ++ uid_t euid; ++ uid_t NO_UID; + unary_advance (); + if (stat (argv[pos - 1], &stat_buf) != 0) + return false; + errno = 0; +- uid_t euid = geteuid (); +- uid_t NO_UID = -1; ++ euid = geteuid (); ++ NO_UID = -1; + return ! (euid == NO_UID && errno) && euid == stat_buf.st_uid; + } + + case 'G': /* File is owned by your group? */ + { ++ gid_t egid; ++ gid_t NO_GID; + unary_advance (); + if (stat (argv[pos - 1], &stat_buf) != 0) + return false; + errno = 0; +- gid_t egid = getegid (); +- gid_t NO_GID = -1; ++ egid = getegid (); ++ NO_GID = -1; + return ! (egid == NO_GID && errno) && egid == stat_buf.st_gid; + } + +diff --git a/src/timeout.c b/src/timeout.c +index c8749d0..95f6e46 100644 +--- a/src/timeout.c ++++ b/src/timeout.c +@@ -133,6 +133,7 @@ settimeout (double duration, bool warn) + resolution provided by alarm(). */ + + #if HAVE_TIMER_SETTIME ++{ + struct timespec ts = dtotimespec (duration); + struct itimerspec its = { {0, 0}, ts }; + timer_t timerid; +@@ -149,8 +150,10 @@ settimeout (double duration, bool warn) + } + else if (warn && errno != ENOSYS) + error (0, errno, _("warning: timer_create")); ++} + #endif + ++{ + unsigned int timeint; + if (UINT_MAX <= duration) + timeint = UINT_MAX; +@@ -161,6 +164,7 @@ settimeout (double duration, bool warn) + } + alarm (timeint); + } ++} + + /* send SIG avoiding the current process. */ + +diff --git a/src/wc.c b/src/wc.c +index 93decd7..619f44c 100644 +--- a/src/wc.c ++++ b/src/wc.c +@@ -597,6 +597,9 @@ main (int argc, char **argv) + char *files_from = NULL; + struct fstatus *fstatus; + struct Tokens tok; ++ bool read_tokens = false; ++ struct argv_iterator *ai; ++ int i; + + initialize_main (&argc, &argv); + set_program_name (argv[0]); +@@ -653,10 +656,9 @@ main (int argc, char **argv) + || print_linelength)) + print_lines = print_words = print_bytes = true; + +- bool read_tokens = false; +- struct argv_iterator *ai; + if (files_from) + { ++ struct stat st; + FILE *stream; + + /* When using --files0-from=F, you may not specify any files +@@ -681,7 +683,6 @@ main (int argc, char **argv) + + /* Read the file list into RAM if we can detect its size and that + size is reasonable. Otherwise, we'll read a name at a time. */ +- struct stat st; + if (fstat (fileno (stream), &st) == 0 + && S_ISREG (st.st_mode) + && st.st_size <= MIN (10 * 1024 * 1024, physmem_available () / 2)) +@@ -716,7 +717,6 @@ main (int argc, char **argv) + fstatus = get_input_fstatus (nfiles, files); + number_width = compute_number_width (nfiles, fstatus); + +- int i; + ok = true; + for (i = 0; /* */; i++) + { +-- +1.8.3.4 + diff --git a/sys-apps/coreutils/patches/coreutils-8.22.patchset b/sys-apps/coreutils/patches/coreutils-8.22.patchset new file mode 100644 index 000000000..49268ba54 --- /dev/null +++ b/sys-apps/coreutils/patches/coreutils-8.22.patchset @@ -0,0 +1,256 @@ +From b5e90c4656599710617ca6a24c750ef9f1c93b5f Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Tue, 13 May 2014 16:20:12 +0000 +Subject: avoid warning on gcc 4.6+ + + +diff --git a/lib/fadvise.c b/lib/fadvise.c +index 8d3af99..f9e0f27 100644 +--- a/lib/fadvise.c ++++ b/lib/fadvise.c +@@ -14,6 +14,10 @@ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + ++#if (__GNUC__ == 4 && 6 <= __GNUC_MINOR__) || 4 < __GNU_C__ ++# pragma GCC diagnostic ignored "-Wsuggest-attribute=const" ++#endif ++ + #include + #include "fadvise.h" + +-- +1.8.3.4 + + +From 23a01facb7fd62c93e3df82a4302dca3aaee4944 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Tue, 13 May 2014 17:18:52 +0000 +Subject: define __USE_GNU for wempcpy + + +diff --git a/lib/fnmatch.c b/lib/fnmatch.c +index 6a09e1a..a26b0ca 100644 +--- a/lib/fnmatch.c ++++ b/lib/fnmatch.c +@@ -21,6 +21,9 @@ + #ifndef _GNU_SOURCE + # define _GNU_SOURCE 1 + #endif ++#ifndef __USE_GNU ++# define __USE_GNU 1 ++#endif + + #if ! defined __builtin_expect && __GNUC__ < 3 + # define __builtin_expect(expr, expected) (expr) +-- +1.8.3.4 + + +From a277df80f2d5dba4b4519a97ea9042fb56c9feb5 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Tue, 13 May 2014 17:22:10 +0000 +Subject: force declaration of rpl_inet_ntop + + +diff --git a/lib/arpa_inet.in.h b/lib/arpa_inet.in.h +index ba89e97..3be3941 100644 +--- a/lib/arpa_inet.in.h ++++ b/lib/arpa_inet.in.h +@@ -72,7 +72,7 @@ + + For more details, see the POSIX:2001 specification + . */ +-# if @REPLACE_INET_NTOP@ ++# if 1 + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + # undef inet_ntop + # define inet_ntop rpl_inet_ntop +-- +1.8.3.4 + + +From e0b54fa2760209c59364a131cd7aced2f9958790 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Tue, 13 May 2014 17:32:36 +0000 +Subject: Haiku defines mknod in unistd.h + + +diff --git a/lib/mknod.c b/lib/mknod.c +index 71e9d34..1dc218c 100644 +--- a/lib/mknod.c ++++ b/lib/mknod.c +@@ -18,6 +18,7 @@ + + #include + ++#include + #include + + #include +-- +1.8.3.4 + + +From 45cd156446cd8ac305462f48b2e871fdddc39b93 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Tue, 13 May 2014 17:35:25 +0000 +Subject: protect the label, not used on Haiku + + +diff --git a/lib/mountlist.c b/lib/mountlist.c +index b839cd1..c095a25 100644 +--- a/lib/mountlist.c ++++ b/lib/mountlist.c +@@ -953,7 +953,7 @@ read_file_system_list (bool need_fs_type) + *mtail = NULL; + return mount_list; + +- ++#ifndef __HAIKU__ + free_then_fail: + { + int saved_errno = errno; +@@ -969,6 +969,7 @@ read_file_system_list (bool need_fs_type) + errno = saved_errno; + return NULL; + } ++#endif + } + + /* Free a mount entry as returned from read_file_system_list (). */ +-- +1.8.3.4 + + +From 0dcf7067f72fdb61b8ce4705dae4a6e82ac7542f Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Tue, 13 May 2014 17:38:39 +0000 +Subject: protect a bool not used on Haiku + + +diff --git a/lib/rename.c b/lib/rename.c +index 3e463ea..8dff5d5 100644 +--- a/lib/rename.c ++++ b/lib/rename.c +@@ -285,7 +285,9 @@ rpl_rename (char const *src, char const *dst) + char *dst_temp = (char *) dst; + bool src_slash; + bool dst_slash; ++#if RENAME_DEST_EXISTS_BUG + bool dst_exists; ++#endif + int ret_val = -1; + int rename_errno = ENOTDIR; + struct stat src_st; +@@ -340,7 +342,9 @@ rpl_rename (char const *src, char const *dst) + { + if (errno != ENOENT || (!S_ISDIR (src_st.st_mode) && dst_slash)) + return -1; ++#if RENAME_DEST_EXISTS_BUG + dst_exists = false; ++#endif + } + else + { +@@ -353,7 +357,9 @@ rpl_rename (char const *src, char const *dst) + if (SAME_INODE (src_st, dst_st)) + return 0; + # endif /* RENAME_HARD_LINK_BUG */ ++#if RENAME_DEST_EXISTS_BUG + dst_exists = true; ++#endif + } + + # if (RENAME_TRAILING_SLASH_SOURCE_BUG || RENAME_DEST_EXISTS_BUG \ +-- +1.8.3.4 + + +From c75141b2cf4726e9f83a2d415c3b1585360552cc Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Thu, 15 May 2014 15:40:32 +0000 +Subject: strchrnul needs __USE_GNU on Haiku + + +diff --git a/lib/regex.h b/lib/regex.h +index 854c6ed..86f16b8 100644 +--- a/lib/regex.h ++++ b/lib/regex.h +@@ -31,8 +31,10 @@ extern "C" { + /* Define __USE_GNU to declare GNU extensions that violate the + POSIX name space rules. */ + #ifdef _GNU_SOURCE ++#ifndef __USE_GNU + # define __USE_GNU 1 + #endif ++#endif + + #ifdef _REGEX_LARGE_OFFSETS + +diff --git a/lib/string.in.h b/lib/string.in.h +index d7a6c9c..729338d 100644 +--- a/lib/string.in.h ++++ b/lib/string.in.h +@@ -23,6 +23,9 @@ + @PRAGMA_COLUMNS@ + + /* The include_next requires a split double-inclusion guard. */ ++#ifndef __USE_GNU ++#define __USE_GNU ++#endif + #@INCLUDE_NEXT@ @NEXT_STRING_H@ + + #ifndef _@GUARD_PREFIX@_STRING_H +-- +1.8.3.4 + + +From ab49c9e1edac815682126be26afd0b70d1e30f87 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Thu, 15 May 2014 20:13:58 +0000 +Subject: don't build hostid, uptime, nice, users, who, dd + + +diff --git a/Makefile.in b/Makefile.in +index dab25d0..3be1664 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -611,16 +611,15 @@ src_libver_a_LIBADD = + nodist_src_libver_a_OBJECTS = src/version.$(OBJEXT) + src_libver_a_OBJECTS = $(nodist_src_libver_a_OBJECTS) + am__EXEEXT_1 = src/arch$(EXEEXT) src/hostname$(EXEEXT) +-am__EXEEXT_2 = src/chroot$(EXEEXT) src/df$(EXEEXT) src/hostid$(EXEEXT) \ +- src/libstdbuf.so$(EXEEXT) src/nice$(EXEEXT) src/pinky$(EXEEXT) \ +- src/stdbuf$(EXEEXT) src/stty$(EXEEXT) src/uptime$(EXEEXT) \ +- src/users$(EXEEXT) src/who$(EXEEXT) ++am__EXEEXT_2 = src/chroot$(EXEEXT) src/df$(EXEEXT) \ ++ src/libstdbuf.so$(EXEEXT) \ ++ src/stdbuf$(EXEEXT) src/stty$(EXEEXT) + am__EXEEXT_3 = src/[$(EXEEXT) src/base64$(EXEEXT) \ + src/basename$(EXEEXT) src/cat$(EXEEXT) src/chcon$(EXEEXT) \ + src/chgrp$(EXEEXT) src/chmod$(EXEEXT) src/chown$(EXEEXT) \ + src/cksum$(EXEEXT) src/comm$(EXEEXT) src/cp$(EXEEXT) \ + src/csplit$(EXEEXT) src/cut$(EXEEXT) src/date$(EXEEXT) \ +- src/dd$(EXEEXT) src/dir$(EXEEXT) src/dircolors$(EXEEXT) \ ++ src/dir$(EXEEXT) src/dircolors$(EXEEXT) \ + src/dirname$(EXEEXT) src/du$(EXEEXT) src/echo$(EXEEXT) \ + src/env$(EXEEXT) src/expand$(EXEEXT) src/expr$(EXEEXT) \ + src/factor$(EXEEXT) src/false$(EXEEXT) src/fmt$(EXEEXT) \ +@@ -3247,12 +3246,12 @@ WARN_ON_USE_H = lib/warn-on-use.h + # FIXME: once lib/ and gnulib-tests/ are also converted, hoist to Makefile.am + AM_CFLAGS = $(WERROR_CFLAGS) + no_install__progs = src/arch src/hostname +-build_if_possible__progs = src/chroot src/df src/hostid \ ++build_if_possible__progs = src/chroot src/df \ + src/libstdbuf.so src/nice src/pinky src/stdbuf src/stty \ + src/uptime src/users src/who + default__progs = src/[ src/base64 src/basename src/cat src/chcon \ + src/chgrp src/chmod src/chown src/cksum src/comm src/cp \ +- src/csplit src/cut src/date src/dd src/dir src/dircolors \ ++ src/csplit src/cut src/date src/dir src/dircolors \ + src/dirname src/du src/echo src/env src/expand src/expr \ + src/factor src/false src/fmt src/fold src/ginstall src/groups \ + src/head src/id src/join src/kill src/link src/ln src/logname \ +-- +1.8.3.4 diff --git a/sys-apps/dialog/dialog-1.2.recipe b/sys-apps/dialog/dialog-1.2.recipe new file mode 100644 index 000000000..2ba53b43e --- /dev/null +++ b/sys-apps/dialog/dialog-1.2.recipe @@ -0,0 +1,43 @@ +SUMMARY="Display TUI widgets for shell scripts" +DESCRIPTION=" +Dialog is an application used in shell scripts which displays text user\ +interface widgets. It uses the curses or ncurses library. +" +HOMEPAGE="http://invisible-island.net/dialog/" +COPYRIGHT="1999-2014 Thomas E. Dickey" +LICENSE="GNU LGPL v2" +SRC_URI="ftp://invisible-island.net/dialog/dialog.tar.gz" +CHECKSUM_SHA256="ccf07eedf147ac901aff1d984ab63ddd6986b615ddf67435f270d5462ea4ca81" +SRC_FILENAME="dialog-$portVersion.tar.gz" +REVISION="1" + +ARCHITECTURES="x86_gcc2 x86 x86_64" + +PROVIDES=" + dialog = $portVersion + cmd:dialog = $portVersion +" +REQUIRES=" + haiku >= $haikuVersion + lib:libncurses +" +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:libncurses +" +BUILD_PREREQUIRES=" + cmd:gcc + cmd:ld + cmd:make +" +SOURCE_DIR="dialog-1.2-20140219" + +BUILD() +{ + ./configure --bindir=$binDir + make +} +INSTALL() +{ + make install +} diff --git a/sys-apps/diffutils/diffutils-2.9.recipe b/sys-apps/diffutils/diffutils-2.9.recipe deleted file mode 100644 index 0f2e94ede..000000000 --- a/sys-apps/diffutils/diffutils-2.9.recipe +++ /dev/null @@ -1,21 +0,0 @@ -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-2.9.tar.gz" -CHECKSUM_MD5="d6bc1bdc874ddb14cfed4d1655a0dbbe" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd diffutils-2.9 - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd diffutils-2.9 - make install -} -LICENSE="GNU GPL v3" -COPYRIGHT="1992-2010 Free Software Foundation, Inc." diff --git a/sys-apps/diffutils/diffutils-3.0.recipe b/sys-apps/diffutils/diffutils-3.0.recipe deleted file mode 100644 index 9f729b672..000000000 --- a/sys-apps/diffutils/diffutils-3.0.recipe +++ /dev/null @@ -1,30 +0,0 @@ -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.0.tar.gz" -CHECKSUM_MD5="684aaba1baab743a2a90e52162ff07da" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd diffutils-3.0 - MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man - ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --mandir=${MANDIR} - make -} - -INSTALL() -{ - cd diffutils-3.0 - make install -} - -TEST() -{ - cd diffutils-3.0 - make check -} - -LICENSE="GNU GPL v3" -COPYRIGHT="1992-2010 Free Software Foundation, Inc." diff --git a/sys-apps/diffutils/diffutils-3.2.recipe b/sys-apps/diffutils/diffutils-3.2.recipe deleted file mode 100644 index 1c047549b..000000000 --- a/sys-apps/diffutils/diffutils-3.2.recipe +++ /dev/null @@ -1,31 +0,0 @@ -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/diffutils-3.3.recipe b/sys-apps/diffutils/diffutils-3.3.recipe new file mode 100644 index 000000000..241b5b983 --- /dev/null +++ b/sys-apps/diffutils/diffutils-3.3.recipe @@ -0,0 +1,64 @@ +SUMMARY="Several programs for finding differences between files." +DESCRIPTION=" +You can use the diff command to show differences between two files, or each \ +corresponding file in two directories. diff outputs differences between files \ +line by line in any of several formats, selectable by command line options. \ +This set of differences is often called a ‘diff’ or ‘patch’. +You can use the cmp command to show the offsets and line numbers where two \ +files differ. cmp can also show all the characters that differ between the two \ +files, side by side. +You can use the diff3 command to show differences among three files. When two \ +people have made independent changes to a common original, diff3 can report \ +the differences between the original and the two changed versions, and can \ +produce a merged file that contains both persons' changes together with \ +warnings about conflicts. +You can use the sdiff command to merge two files interactively. +" +LICENSE="GNU GPL v3" +COPYRIGHT="1992-2013 Free Software Foundation, Inc." +HOMEPAGE="http://www.gnu.org/software/diffutils/" +SRC_URI="http://ftp.gnu.org/pub/gnu/diffutils/diffutils-3.3.tar.xz" +CHECKSUM_SHA256="a25e89a8ab65fded1731e4186be1bb25cda967834b6df973599cdcd5abdfc19c" +REVISION="2" +ARCHITECTURES="x86 x86_gcc2 x86_64" + +PROVIDES=" + diffutils = $portVersion + cmd:diff = $portVersion + cmd:cmp = $portVersion + cmd:diff3 = $portVersion + cmd:sdiff = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:make + cmd:gcc + cmd:awk + cmd:sed + " + +PATCHES="diffutils-3.3.patchset" + + +BUILD() +{ + runConfigure ./configure \ + --disable-gcc-warnings + make +} + +INSTALL() +{ + make install + rm $libDir/charset.alias +} + +TEST() +{ + make check +} diff --git a/sys-apps/diffutils/patches/diffutils-2.9.patch b/sys-apps/diffutils/patches/diffutils-2.9.patch deleted file mode 100644 index 9b2d130fd..000000000 --- a/sys-apps/diffutils/patches/diffutils-2.9.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -up diffutils-2.9/lib/verify.h.orig diffutils-2.9/lib/verify.h ---- diffutils-2.9/lib/verify.h.orig 2010-04-18 13:06:04.590872576 -0600 -+++ diffutils-2.9/lib/verify.h 2010-04-18 13:08:52.910163968 -0600 -@@ -135,6 +135,10 @@ template - /* Verify requirement R at compile-time, as a declaration without a - trailing ';'. */ - -+# if __GNUC__ == 2 -+# define verify(R) -+# else - # define verify(R) extern int (* verify_function__ (void)) [verify_true (R)] -+# endif - - #endif diff --git a/sys-apps/diffutils/patches/diffutils-3.0.patch b/sys-apps/diffutils/patches/diffutils-3.0.patch deleted file mode 100644 index edb62edf7..000000000 --- a/sys-apps/diffutils/patches/diffutils-3.0.patch +++ /dev/null @@ -1,51 +0,0 @@ -diff -urN diffutils-3.0/gnulib-tests/test-dup2.c diffutils-3.0-haiku/gnulib-tests/test-dup2.c ---- diffutils-3.0/gnulib-tests/test-dup2.c 2010-04-15 13:42:07.036700160 +0000 -+++ diffutils-3.0-haiku/gnulib-tests/test-dup2.c 2010-10-06 11:17:38.000000000 +0000 -@@ -176,6 +176,7 @@ - - /* On systems that distinguish between text and binary mode, dup2 - reuses the mode of the source. */ -+#if O_BINARY - setmode (fd, O_BINARY); - ASSERT (is_mode (fd, O_BINARY)); - ASSERT (dup2 (fd, fd + 1) == fd + 1); -@@ -190,6 +191,6 @@ - ASSERT (close (fd + 1) == 0); - ASSERT (close (fd) == 0); - ASSERT (unlink (file) == 0); -- -+#endif - return 0; - } -diff -urN diffutils-3.0/gnulib-tests/test-fcntl.c diffutils-3.0-haiku/gnulib-tests/test-fcntl.c ---- diffutils-3.0/gnulib-tests/test-fcntl.c 2010-04-15 13:42:08.027787264 +0000 -+++ diffutils-3.0-haiku/gnulib-tests/test-fcntl.c 2010-10-06 11:21:54.000000000 +0000 -@@ -298,6 +298,7 @@ - ASSERT (is_mode (fd + 2, O_BINARY)); - ASSERT (close (fd) == 0); - -+#if O_TEXT - setmode (fd + 2, O_TEXT); - ASSERT (fcntl (fd + 2, F_DUPFD, fd + 1) == fd + 1); - ASSERT (!is_open (fd)); -@@ -318,7 +319,7 @@ - ASSERT (is_mode (fd, O_TEXT)); - ASSERT (is_mode (fd + 2, O_TEXT)); - ASSERT (close (fd + 2) == 0); -- -+#endif - /* Test F_GETFD. */ - errno = 0; - ASSERT (fcntl (-1, F_GETFD) == -1); -diff -urN diffutils-3.0/gnulib-tests/test-signal.c diffutils-3.0-haiku/gnulib-tests/test-signal.c ---- diffutils-3.0/gnulib-tests/test-signal.c 2010-04-15 13:42:09.030932992 +0000 -+++ diffutils-3.0-haiku/gnulib-tests/test-signal.c 2010-10-06 11:28:31.000000000 +0000 -@@ -58,7 +58,7 @@ - #ifdef SIGALRM - case SIGALRM: - #endif --#ifdef SIGBUS -+#if defined SIGBUS && !defined(__HAIKU__) - case SIGBUS: - #endif - #ifdef SIGCHLD diff --git a/sys-apps/diffutils/patches/diffutils-3.2.patch b/sys-apps/diffutils/patches/diffutils-3.2.patch deleted file mode 100644 index e56750b82..000000000 --- a/sys-apps/diffutils/patches/diffutils-3.2.patch +++ /dev/null @@ -1,58 +0,0 @@ -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/diffutils/patches/diffutils-3.3.patchset b/sys-apps/diffutils/patches/diffutils-3.3.patchset new file mode 100644 index 000000000..6580d79ec --- /dev/null +++ b/sys-apps/diffutils/patches/diffutils-3.3.patchset @@ -0,0 +1,62 @@ +From c648aa48039deac1e3e1e031eaedd74c3428493f Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Sat, 19 Oct 2013 23:34:25 -0600 +Subject: gcc2 fixes + + +diff --git a/src/dir.c b/src/dir.c +index 7f647b0..e9526ac 100644 +--- a/src/dir.c ++++ b/src/dir.c +@@ -249,6 +249,7 @@ diff_dirs (struct comparison const *cmp, + /* Loop while files remain in one or both dirs. */ + while (*names[0] || *names[1]) + { ++ int v1; + /* Compare next name in dir 0 with next name in dir 1. + At the end of a dir, + pretend the "next name" in that dir is very large. */ +@@ -289,7 +290,7 @@ diff_dirs (struct comparison const *cmp, + } + } + +- int v1 = (*handle_file) (cmp, ++ v1 = (*handle_file) (cmp, + 0 < nameorder ? 0 : *names[0]++, + nameorder < 0 ? 0 : *names[1]++); + if (val < v1) +@@ -347,7 +348,8 @@ find_dir_file_pathname (char const *dir, char const *file) + 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 --git a/src/io.c b/src/io.c +index 463ee35..965cd3b 100644 +--- a/src/io.c ++++ b/src/io.c +@@ -274,6 +274,8 @@ find_and_hash_each_line (struct file_data *current) + size_t column = 0; + while ((c = *p++) != '\n') + { ++ size_t repetitions = 1; ++ + if (ig_white_space & IGNORE_TRAILING_SPACE + && isspace (c)) + { +@@ -288,8 +290,6 @@ find_and_hash_each_line (struct file_data *current) + while (isspace (c1)); + } + +- size_t repetitions = 1; +- + if (ig_white_space & IGNORE_TAB_EXPANSION) + switch (c) + { +-- +1.8.3.4 + diff --git a/sys-apps/dmidecode/dmidecode-2.12.recipe b/sys-apps/dmidecode/dmidecode-2.12.recipe new file mode 100644 index 000000000..e9de9980f --- /dev/null +++ b/sys-apps/dmidecode/dmidecode-2.12.recipe @@ -0,0 +1,42 @@ +SUMMARY="Decodes BIOS SMBIOS/DMI tables" +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.12.tar.gz" +CHECKSUM_SHA256="5a8214b99c1762f4510bd92baa279336e5fed6e5cd2e418d46d95a4ecc783922" +REVISION="2" +LICENSE="GNU GPL v2" +COPYRIGHT="2000-2002 Alan Cox, 2002-2010 Jean Delvare" + +ARCHITECTURES="x86_gcc2 ?x86" + +PROVIDES=" + dmidecode = $portVersion + cmd:dmidecode = $portVersion + " +REQUIRES=" + haiku + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:make + cmd:gcc + " + +BUILD() +{ + make +} + +INSTALL() +{ + make install prefix=$prefix \ + sbindir=$prefix/bin \ + mandir=$prefix/documentation/man \ + docdir=$prefix/documentation/dmidecode +} + diff --git a/sys-apps/dtc/dtc-1.3.0_git.recipe b/sys-apps/dtc/dtc-1.3.0_git.recipe deleted file mode 100644 index d29ddcb4f..000000000 --- a/sys-apps/dtc/dtc-1.3.0_git.recipe +++ /dev/null @@ -1,30 +0,0 @@ -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/dtc-1.4.0.recipe b/sys-apps/dtc/dtc-1.4.0.recipe new file mode 100644 index 000000000..5ce728515 --- /dev/null +++ b/sys-apps/dtc/dtc-1.4.0.recipe @@ -0,0 +1,61 @@ +SUMMARY="The Device Tree Compiler" +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#v1.4.0" +LICENSE="GNU GPL v2" +COPYRIGHT="2005 David Gibson, IBM Corporation" +REVISION="1" + +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + dtc$secondaryArchSuffix = $portVersion + cmd:convert_dtsv0 = $portVersion + cmd:dtc = $portVersion + cmd:dtdiff = $portVersion + cmd:fdtdump = $portVersion + cmd:fdtget = $portVersion + cmd:fdtput = $portVersion + lib:libfdt$secondaryArchSuffix = $portVersion + lib:libfdt_1.4.0$secondaryArchSuffix = $portVersion + devel:libfdt$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:bison$secondaryArchSuffix >= 2.5 + cmd:flex + cmd:gcc$secondaryArchSuffix + cmd:make + " + +PATCHES="dtc-${portVersion}.patch" + +BUILD() +{ + make PREFIX=$prefix $jobArgs +} + +INSTALL() +{ + make install PREFIX=$prefix INCLUDEDIR=$includeDir LIBDIR=$libDir + + prepareInstalledDevelLibs libfdt +} + +TEST() +{ + make tests +} diff --git a/sys-apps/dtc/patches/dtc-1.3.0_git.patch b/sys-apps/dtc/patches/dtc-1.3.0_git.patch deleted file mode 100644 index 64b4229f5..000000000 --- a/sys-apps/dtc/patches/dtc-1.3.0_git.patch +++ /dev/null @@ -1,66 +0,0 @@ -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/dtc/patches/dtc-1.3.0-git.patch b/sys-apps/dtc/patches/dtc-1.4.0.patch similarity index 100% rename from sys-apps/dtc/patches/dtc-1.3.0-git.patch rename to sys-apps/dtc/patches/dtc-1.4.0.patch diff --git a/sys-apps/ed/ed-1.7.recipe b/sys-apps/ed/ed-1.7.recipe index 1ce1ffa25..9facb3434 100644 --- a/sys-apps/ed/ed-1.7.recipe +++ b/sys-apps/ed/ed-1.7.recipe @@ -1,10 +1,12 @@ SUMMARY="Your basic line editor" -DESCRIPTION="Your basic line editor" +DESCRIPTION=" +Your basic line editor +" HOMEPAGE="http://www.gnu.org/software/ed/" COPYRIGHT="1992-2010 Free Software Foundation, Inc." LICENSE="GNU GPL v3" SRC_URI="http://www.mirrorservice.org/sites/ftp.gnu.org/gnu/ed/ed-1.7.tar.gz" -CHECKSUM_MD5="0aa4e2428e325203d0d7c3e86c961b1c" +CHECKSUM_SHA256="894241019a5ff2b7816d20c5bd5a7048fb8f336ca52e97b3cc88d45b16472031" REVISION="1" ARCHITECTURES="x86_gcc2 x86" @@ -25,7 +27,6 @@ BUILD_REQUIRES=" cmd:sed " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/sys-apps/file/file-5.04.recipe b/sys-apps/file/file-5.04.recipe deleted file mode 100644 index f209cef63..000000000 --- a/sys-apps/file/file-5.04.recipe +++ /dev/null @@ -1,22 +0,0 @@ -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.04.tar.gz" -CHECKSUM_MD5="accade81ff1cc774904b47c72c8aeea0" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd file-5.04 - autoreconf -fvi - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd file-5.04 - make install -} -LICENSE="BSD (2-clause)" -COPYRIGHT="1986-1999 Ian F. Darwin" diff --git a/sys-apps/file/file-5.11.recipe b/sys-apps/file/file-5.11.recipe deleted file mode 100644 index a4c0c9db7..000000000 --- a/sys-apps/file/file-5.11.recipe +++ /dev/null @@ -1,24 +0,0 @@ -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/file-5.15.recipe b/sys-apps/file/file-5.15.recipe new file mode 100644 index 000000000..81e6bb741 --- /dev/null +++ b/sys-apps/file/file-5.15.recipe @@ -0,0 +1,68 @@ +SUMMARY="Identify a file's format by scanning binary data for patterns" +DESCRIPTION=" +This is Release 5.x of Ian Darwin's (copyright but distributable) file(1) \ +command, an implementation of the Unix File(1) command. It knows the 'magic \ +number' of several thousands of file types. This version is the standard \ +'file' command for Linux, *BSD, and other systems. (See 'patchlevel.h' for the \ +exact release number). +" +HOMEPAGE="ftp://ftp.astron.com/pub/file/" +SRC_URI="ftp://ftp.astron.com/pub/file/file-5.15.tar.gz" +CHECKSUM_SHA256="4bd52cc614d6488127c0bddc208a2855481744d76ff0878d9c173d2a6ed564e4" +REVISION="1" +LICENSE="BSD (2-clause)" +COPYRIGHT=" +1986-1999 Ian F. Darwin +1994-2013 Christos Zoulas +" +ARCHITECTURES="x86 x86_gcc2" + +PROVIDES=" + file = $portVersion compat >= 5 + cmd:file = $portVersion compat >= 5 + lib:libmagic = 1.0.0 compat >= 0 + " + +REQUIRES=" + haiku >= $haikuVersion + lib:libz + " + +BUILD_REQUIRES=" + devel:libz + " + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:autoreconf + cmd:aclocal + cmd:libtoolize + cmd:make + cmd:gcc + " + +PROVIDES_devel=" + file_devel = $portVersion compat >= 0 + devel:libmagic = $portVersion compat >= 0 + " + +REQUIRES_devel=" + file == $portVersion + " + +PATCHES="file-5.15.patch" + + +BUILD() +{ + autoreconf -fvi + runConfigure ./configure + make +} + +INSTALL() +{ + make install + prepareInstalledDevelLibs libmagic + packageEntries devel $developDir +} diff --git a/sys-apps/file/patches/file-5.04.patch b/sys-apps/file/patches/file-5.04.patch deleted file mode 100644 index 5e1cc93ec..000000000 --- a/sys-apps/file/patches/file-5.04.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -up file-5.04/configure.ac.orig file-5.04/configure.ac ---- file-5.04/configure.ac.orig 2010-02-24 23:25:36.805044224 -0700 -+++ file-5.04/configure.ac 2010-02-24 23:25:01.144441344 -0700 -@@ -128,14 +128,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" -+ -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" -+ -Wcast-qual -Wwrite-strings" - else - WARNINGS= - AC_MSG_RESULT(no) diff --git a/sys-apps/file/patches/file-5.11.patch b/sys-apps/file/patches/file-5.15.patch similarity index 80% rename from sys-apps/file/patches/file-5.11.patch rename to sys-apps/file/patches/file-5.15.patch index 99a60b72f..924895740 100644 --- a/sys-apps/file/patches/file-5.11.patch +++ b/sys-apps/file/patches/file-5.15.patch @@ -1,6 +1,6 @@ -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 +diff -up file-5.15/configure.ac.orig file-5.15/configure.ac +--- file-5.15/configure.ac.orig 2012-02-21 12:16:29.015728640 -0700 ++++ file-5.15/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 \ diff --git a/sys-apps/findutils/findutils-4.4.2.recipe b/sys-apps/findutils/findutils-4.4.2.recipe index cb8b14ff4..0cc92166a 100644 --- a/sys-apps/findutils/findutils-4.4.2.recipe +++ b/sys-apps/findutils/findutils-4.4.2.recipe @@ -1,32 +1,54 @@ -DESCRIPTION="GNU utilities for finding files" -HOMEPAGE="http://www.gnu.org/software/findutils/" -SRC_URI="http://mirrors.usc.edu/pub/gnu/findutils/findutils-4.4.2.tar.gz" +SUMMARY="Basic directory searching utilities" +DESCRIPTION=" +GNU Findutils are typically used in conjunction with other programs to \ +provide modular and powerful directory search and file locating \ +capabilities to other commands. +The tools supplied with this package are: +find - search for files in a directory hierarchy +locate - list files in databases that match a pattern +updatedb - update a file name database +xargs - build and execute command lines from a standard input. +" +HOMEPAGE="http://www.gnu.org/software/findutils" +COPYRIGHT="1994-2011 Free Software Foundation, Inc." +LICENSE="GNU GPL v3" +SRC_URI="http://ftp.gnu.org/gnu/findutils/findutils-4.4.2.tar.gz" +CHECKSUM_SHA256="434f32d171cbc0a5e72cfc5372c6fc4cb0e681f8dce566a0de5b6fccd702b62a" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -CHECKSUM_MD5="351cc4adb07d54877fa15f75fb77d39f" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" + +PROVIDES=" + findutils = $portVersion compat >= 4 + cmd:find = $portVersion compat >= 4 + cmd:locate = $portVersion compat >= 4 + cmd:updatedb = $portVersion compat >= 4 + cmd:xargs = $portVersion compat >= 4 + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:gcc + cmd:ld + cmd:make + " + +defineDebugInfoPackage findutils \ + $binDir/find \ + $binDir/locate \ + $binDir/xargs + BUILD() { - cd findutils-4.4.2 - ./import-gnulib.sh - libtoolize --force --copy --install - MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man - ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --mandir=${MANDIR} - make + runConfigure ./configure \ + --without-included-regex \ + --disable-rpath --with-gnu-ld + make $jobArgs } INSTALL() { - cd findutils-4.4.2 make install + rm $libDir/charset.alias } - -TEST() -{ - cd findutils-4.4.2 - make install -} - -LICENSE="GNU GPL v3" -COPYRIGHT="1990-2010 Free Software Foundation, Inc." diff --git a/sys-apps/fxload/fxload-20120810.recipe b/sys-apps/fxload/fxload-20120810.recipe new file mode 100644 index 000000000..c448bc656 --- /dev/null +++ b/sys-apps/fxload/fxload-20120810.recipe @@ -0,0 +1,61 @@ +SUMMARY="fxload - utility for EZ-USB firmware installation" +DESCRIPTION=" +This program is conveniently able to download firmware into FX, FX2, and FX2LP \ +EZ-USB devices, as well as the original AnchorChips EZ-USB. +Primarily as an aid for developers, this can also be used to update firmware on \ +devices which boot from I2C serial EEPROMs. For that use, as well as \ +downloading firmware to all other off-chip memory, a second stage loader must \ +first be downloaded. +The distribution includes a3load.hex, which is a simple second stage loader \ +that works with all the EZ-USB products listed above. If you want to write to \ +an EEPROM, you can use the appropriate version of the Vend_Ax code provided \ +with the Cypress developer kit. +This program was modified from the original version available from \ +http://linux-hotplug.sourceforge.net to use libusbx [http://libusbx.org]. The \ +aim is to integrate this program into the libusbx samples directory. +Besides Linux, use of libusbx as the USB backend allows fxload to be used on \ +Windows, OS-X as well as any other platform supported by libusbx. +You are invited to post any bug reports or patches to the libusbx-devel mailing \ +list. +" +LICENSE="GNU GPL v2" +COPYRIGHT=" + 2001 Stephen Williams + 2001-2002 David Brownell + 2008 Roger Williams + 2012 Pete Batard + " +HOMEPAGE="https://github.com/pbatard/fxload" +SRC_URI="git+git://github.com/pbatard/fxload#cd1c1a062579b921d7694a3244cdefc60fd3325f" +REVISION="1" +ARCHITECTURES="x86_gcc2" +SECONDARY_ARCHITECTURES="x86" +PROVIDES=" + cmd:fxload$secondaryArchSuffix + " +REQUIRES=" + lib:libusb_1.0$secondaryArchSuffix + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + devel:libusb_1.0${secondaryArchSuffix} + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:pkg_config + cmd:install + " + +BUILD() +{ + export PKG_CONFIG_LIBDIR=/system/develop/lib/x86/pkgconfig/ + make +} + +INSTALL() +{ + make install sbindir=$binDir mandir=$manDir INSTALL_PROGRAM="install -cD" +} diff --git a/sys-apps/gawk/gawk-3.1.8.recipe b/sys-apps/gawk/gawk-3.1.8.recipe index 0b1fe50e5..1e2211fd4 100644 --- a/sys-apps/gawk/gawk-3.1.8.recipe +++ b/sys-apps/gawk/gawk-3.1.8.recipe @@ -11,11 +11,11 @@ DESCRIPTION=" makes it possible to handle simple data-reformatting jobs with just a few lines of code. " -HOMEPAGE="http://www.gnu.org/software/coreutils" +HOMEPAGE="http://www.gnu.org/s/gawk" SRC_URI="http://ftp.gnu.org/gnu/gawk/gawk-3.1.8.tar.bz2" -CHECKSUM_MD5="52b41c6c4418b3226dfb8f82076193bb" +CHECKSUM_SHA256="5dbc7b2c4c328711337c2aacd09a122c7313122262e3ff034590f014067412b4" REVISION="2" -ARCHITECTURES="x86_gcc2 x86" +ARCHITECTURES="x86_gcc2 x86 x86_64" PROVIDES=" gawk = $portVersion compat >= 3 @@ -31,18 +31,19 @@ BUILD_PREREQUIRES=" haiku_devel >= $haikuVersion cmd:gcc cmd:ld - cmd:libtoolize + cmd:libtoolize cmd:make - cmd:sed + cmd:sed " -SOURCE_DIR="$portVersionedName" +defineDebugInfoPackage gawk \ + $binDir/gawk BUILD() { libtoolize --force --copy --install - ./configure $configureDirArgs - make + runConfigure ./configure + make $jobArgs } INSTALL() diff --git a/sys-apps/gawk/gawk-4.0.1.recipe b/sys-apps/gawk/gawk-4.0.1.recipe deleted file mode 100644 index 2ae99b32d..000000000 --- a/sys-apps/gawk/gawk-4.0.1.recipe +++ /dev/null @@ -1,25 +0,0 @@ -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/gawk/gawk-4.1.0.recipe b/sys-apps/gawk/gawk-4.1.0.recipe new file mode 100644 index 000000000..5fe68e1fb --- /dev/null +++ b/sys-apps/gawk/gawk-4.1.0.recipe @@ -0,0 +1,68 @@ +SUMMARY="A pattern scanning and processing language" +DESCRIPTION=" + If you are like many computer users, you would frequently like to make + changes in various text files wherever certain patterns appear, or + extract data from parts of certain lines while discarding the rest. To + write a program to do this in a language such as C or Pascal is a + time-consuming inconvenience that may take many lines of code. The job + is easy with awk, especially the GNU implementation: gawk. + + The awk utility interprets a special-purpose programming language that + makes it possible to handle simple data-reformatting jobs with just a + few lines of code. + " +HOMEPAGE="http://www.gnu.org/s/gawk" +SRC_URI="http://ftp.gnu.org/gnu/gawk/gawk-4.1.0.tar.gz" +CHECKSUM_SHA256="79f81b09bc3cce50e083f78acc0f91783821ad30866615d30dd1731f17ec440b" +REVISION="2" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" +PATCHES="gawk-4.1.0.patchset" + +PROVIDES=" + gawk = $portVersion compat >= 4 + cmd:awk = $portVersion compat >= 4 + cmd:gawk = $portVersion compat >= 4 + cmd:igawk = $portVersion compat >= 4 + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc + cmd:ld + cmd:libtoolize + cmd:make + cmd:makeinfo + cmd:sed + " + +defineDebugInfoPackage gawk \ + $binDir/gawk + +BUILD() +{ + libtoolize --force --copy --install + runConfigure ./configure \ + --disable-rpath --with-gnu-ld + sed -i '/.*HAVE_WCTYPE_H.*/c\#undef HAVE_WCTYPE_H' config.h + make $jobArgs +} + +INSTALL() +{ + make install +} + +TEST() +{ + make check +} + +LICENSE="GNU GPL v3" +COPYRIGHT="1983-2013 Free Software Foundation, Inc." diff --git a/sys-apps/gawk/patches/gawk-4.1.0.patchset b/sys-apps/gawk/patches/gawk-4.1.0.patchset new file mode 100644 index 000000000..992aa9cdb --- /dev/null +++ b/sys-apps/gawk/patches/gawk-4.1.0.patchset @@ -0,0 +1,28 @@ +From e5661558712bbd6f1e688fb564732bd3ca80ac63 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Tue, 25 Feb 2014 19:38:04 +0000 +Subject: avoids unsupported CFLAGS + + +diff --git a/extension/configure.ac b/extension/configure.ac +index 53ed588..d9b41f5 100644 +--- a/extension/configure.ac ++++ b/extension/configure.ac +@@ -47,10 +47,10 @@ dnl AC_PROG_INSTALL + + AC_SUBST([pkgextensiondir], ['${libdir}/gawk']) + +-if test "$GCC" = yes +-then +- CFLAGS="$CFLAGS -Wall -Wextra" +-fi ++#if test "$GCC" = yes ++#then ++# CFLAGS="$CFLAGS -Wall -Wextra" ++#fi + + AC_MSG_CHECKING([for special development options]) + if test -f $srcdir/../.developing +-- +1.8.3.4 + diff --git a/sys-apps/getconf/getconf-r260000.recipe b/sys-apps/getconf/getconf-r260000.recipe new file mode 100644 index 000000000..b7b61810b --- /dev/null +++ b/sys-apps/getconf/getconf-r260000.recipe @@ -0,0 +1,48 @@ +SUMMARY="Prints out values of POSIX configuration variables" +DESCRIPTION=" +FreeBSD getconf +The getconf command prints values of system configuration variables. It is a \ +command interface to the values returned by sysconf(3), confstr(3), and \ +pathconf(3). +" +HOMEPAGE="http://www.freebsd.org/" +COPYRIGHT="2000 Massachusetts Institute of Technology" +LICENSE="MIT" +SRC_URI="svn+http://svn.freebsd.org/base/head/usr.bin/getconf#260000" +#CHECKSUM_MD5="" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64" + +PATCHES="getconf-makefile.patch" + +PROVIDES=" + getconf = $portVersion + cmd:getconf = $portVersion +" +REQUIRES=" + haiku >= $haikuVersion +" +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion +" +BUILD_PREREQUIRES=" + makefile_engine + cmd:mkdepend + cmd:gcc + cmd:make +" + +BUILD() +{ + export COPYRIGHT + export LICENSE + export PORT_VERSION=$portVersion + make -f makefile.haiku $jobArgs +} + +INSTALL() +{ + make -f makefile.haiku install INSTALL_DIR=$binDir + mkdir -p $manDir/man1 + install -m 644 getconf.1 $manDir/man1/ +} diff --git a/sys-apps/getconf/patches/getconf-makefile.patch b/sys-apps/getconf/patches/getconf-makefile.patch new file mode 100644 index 000000000..62d05bc28 --- /dev/null +++ b/sys-apps/getconf/patches/getconf-makefile.patch @@ -0,0 +1,177 @@ +From 0ad9f5b07a4d3734402efb6519a5778f9fc18b20 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= +Date: Sat, 28 Dec 2013 09:49:05 +0100 +Subject: [PATCH] Add Haiku makefile +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: François Revol +--- + makefile.haiku | 154 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 154 insertions(+) + create mode 100644 makefile.haiku + +diff --git a/makefile.haiku b/makefile.haiku +new file mode 100644 +index 0000000..ed83568 +--- /dev/null ++++ b/makefile.haiku +@@ -0,0 +1,154 @@ ++%.c: %.gperf ++ LC_ALL=C awk -f ${CURDIR}/fake-gperf.awk $< >$@ ++ ++GENSRC=confstr.c limits.c pathconf.c progenv.c sysconf.c ++ ++## BeOS Generic Makefile v2.5 ## ++ ++## Fill in this file to specify the project being created, and the referenced ++## makefile-engine will do all of the hard work for you. This handles both ++## Intel and PowerPC builds of the BeOS and Haiku. ++ ++## Application Specific Settings --------------------------------------------- ++ ++# specify the name of the binary ++NAME= getconf ++ ++# specify the type of binary ++# APP: Application ++# SHARED: Shared library or add-on ++# STATIC: Static library archive ++# DRIVER: Kernel Driver ++TYPE= APP ++ ++# if you plan to use localization features ++# specify the application MIME siganture ++APP_MIME_SIG= ++ ++# add support for new Pe and Eddie features ++# to fill in generic makefile ++ ++#%{ ++# @src->@ ++ ++# specify the source files to use ++# full paths or paths relative to the makefile can be included ++# all files, regardless of directory, will have their object ++# files created in the common object directory. ++# Note that this means this makefile will not work correctly ++# if two source files with the same name (source.c or source.cpp) ++# are included from different directories. Also note that spaces ++# in folder names do not work well with this makefile. ++SRCS= getconf.c $(GENSRC) ++ ++# specify the resource definition files to use ++# full path or a relative path to the resource file can be used. ++RDEFS= ++ ++# specify the resource files to use. ++# full path or a relative path to the resource file can be used. ++# both RDEFS and RSRCS can be defined in the same makefile. ++RSRCS= ++ ++# @<-src@ ++#%} ++ ++# end support for Pe and Eddie ++ ++# specify additional libraries to link against ++# there are two acceptable forms of library specifications ++# - if your library follows the naming pattern of: ++# libXXX.so or libXXX.a you can simply specify XXX ++# library: libbe.so entry: be ++# ++# - for version-independent linking of standard C++ libraries please add ++# $(STDCPPLIBS) instead of raw "stdc++[.r4] [supc++]" library names ++# ++# - for localization support add following libs: ++# locale localestub ++# ++# - if your library does not follow the standard library ++# naming scheme you need to specify the path to the library ++# and it's name ++# library: my_lib.a entry: my_lib.a or path/my_lib.a ++LIBS= bsd ++ ++# specify additional paths to directories following the standard ++# libXXX.so or libXXX.a naming scheme. You can specify full paths ++# or paths relative to the makefile. The paths included may not ++# be recursive, so include all of the paths where libraries can ++# be found. Directories where source files are found are ++# automatically included. ++LIBPATHS= ++ ++# additional paths to look for system headers ++# thes use the form: #include
++# source file directories are NOT auto-included here ++SYSTEM_INCLUDE_PATHS = ++ ++# additional paths to look for local headers ++# thes use the form: #include "header" ++# source file directories are automatically included ++LOCAL_INCLUDE_PATHS = ++ ++# specify the level of optimization that you desire ++# NONE, SOME, FULL ++OPTIMIZE= ++ ++# specify here the codes for languages you are going ++# to support in this application. The default "en" ++# one must be provided too. "make catkeys" will recreate only ++# locales/en.catkeys file. Use it as template for creating other ++# languages catkeys. All localization files must be placed ++# in "locales" sub-directory. ++LOCALES= ++ ++# 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 = ++ ++# specify whether image symbols will be created ++# so that stack crawls in the debugger are meaningful ++# if TRUE symbols will be created ++SYMBOLS = ++ ++# specify debug settings ++# if TRUE will allow application to be run from a source-level ++# debugger. Note that this will disable all optimzation. ++DEBUGGER = ++ ++# specify additional compiler flags for all files ++COMPILER_FLAGS = ++ ++# specify additional linker flags ++LINKER_FLAGS = ++ ++# specify the version of this particular item ++# (for example, -app 3 4 0 d 0 -short 340 -long "340 "`echo -n -e '\302\251'`"1999 GNU GPL") ++# This may also be specified in a resource. ++APP_VERSION = -long "$PORT_VERSION "`echo -n -e '\302\251'`"$COPYRIGHT ($LICENSE license)" ++ ++# (for TYPE == DRIVER only) Specify desired location of driver in the /dev ++# hierarchy. Used by the driverinstall rule. E.g., DRIVER_PATH = video/usb will ++# instruct the driverinstall rule to place a symlink to your driver's binary in ++# ~/add-ons/kernel/drivers/dev/video/usb, so that your driver will appear at ++# /dev/video/usb when loaded. Default is "misc". ++DRIVER_PATH = ++ ++## include the makefile-engine ++DEVEL_DIRECTORY := \ ++ $(shell findpaths -r "makefile_engine" B_FIND_PATH_DEVELOP_DIRECTORY) ++include $(DEVEL_DIRECTORY)/etc/makefile-engine ++ ++clean :: FORCE ++ rm -r $(GENSRC) ++ +-- +1.8.3.4 + diff --git a/sys-apps/grep/grep-2.14.recipe b/sys-apps/grep/grep-2.14.recipe index 07bed6a21..d6dc8d915 100644 --- a/sys-apps/grep/grep-2.14.recipe +++ b/sys-apps/grep/grep-2.14.recipe @@ -1,15 +1,18 @@ SUMMARY="GNU regular expression matcher" -DESCRIPTION="The grep command searches one or more input files for lines containing a match to a specified pattern. By default, grep prints the matching lines." +DESCRIPTION=" +The grep command searches one or more input files for lines containing a match \ +to a specified pattern. By default, grep prints the matching lines. +" HOMEPAGE="http://www.gnu.org/software/grep/" LICENSE="GNU GPL v3" COPYRIGHT="1992-2012 Free Software Foundation, Inc." SRC_URI="http://ports-space.haiku-files.org/source/grep-2.14.tar.bz2" -CHECKSUM_MD5="db55b9fc67d8c0895f3c73e94e2aebe3" +CHECKSUM_SHA256="0aa728dbb92eeec776f9551fcee1931717984a91cfd8c3df3dfb40709243ae6f" # XZ file format: #SRC_URI="http://ftp.gnu.org/pub/gnu/grep/grep-2.14.tar.xz" #CHECKSUM_MD5="d4a3f03849d1e17ce56ab76aa5a24cab" REVISION="5" -ARCHITECTURES="x86_gcc2 x86 x86_64" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" PATCHES="grep-2.14-gcc2.patch" @@ -45,7 +48,6 @@ defineDebugInfoPackage grep \ $binDir/fgrep \ $binDir/grep -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/sys-apps/grep/grep-2.20.recipe b/sys-apps/grep/grep-2.20.recipe new file mode 100644 index 000000000..e87c73bab --- /dev/null +++ b/sys-apps/grep/grep-2.20.recipe @@ -0,0 +1,68 @@ +SUMMARY="GNU regular expression matcher" +DESCRIPTION=" +The grep command searches one or more input files for lines containing a match \ +to a specified pattern. By default, grep prints the matching lines. +" +HOMEPAGE="http://www.gnu.org/software/grep/" +LICENSE="GNU GPL v3" +COPYRIGHT="1992-2014 Free Software Foundation, Inc." +SRC_URI="http://ftp.gnu.org/gnu/grep/grep-2.20.tar.xz" +CHECKSUM_SHA256="f0af452bc0d09464b6d089b6d56a0a3c16672e9ed9118fbe37b0b6aeaf069a65" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" + +PATCHES="grep-2.20.patchset" + +PROVIDES=" + grep = $portVersion compat >= 2 + cmd:egrep = $portVersion compat >= 2 + cmd:fgrep = $portVersion compat >= 2 + cmd:grep = $portVersion compat >= 2 + " +REQUIRES=" + haiku >= $haikuVersion + lib:libiconv + lib:libintl + " +BUILD_REQUIRES=" + devel:libiconv + devel:libintl + " +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc + cmd:gettext + cmd:ld + cmd:libtoolize + cmd:make + " + +defineDebugInfoPackage grep \ + $binDir/grep + + +BUILD() +{ + libtoolize --force --copy --install + aclocal -I m4 + autoconf + runConfigure ./configure \ + --disable-perl-regexp --disable-gcc-warnings + make $jobArgs +} + +INSTALL() +{ + make install + + rm $libDir/charset.alias + rmdir $libDir +} + +TEST() +{ + make check +} diff --git a/sys-apps/grep/patches/grep-2.20.patchset b/sys-apps/grep/patches/grep-2.20.patchset new file mode 100644 index 000000000..9fe1e2c7d --- /dev/null +++ b/sys-apps/grep/patches/grep-2.20.patchset @@ -0,0 +1,420 @@ +From 38dd3e2a6c52f5b15da9502d582f290b036f0e85 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Wed, 4 Jun 2014 19:20:57 +0000 +Subject: gcc2 patch + + +diff --git a/lib/fts.c b/lib/fts.c +index 500e92c..e2180c7 100644 +--- a/lib/fts.c ++++ b/lib/fts.c +@@ -1293,6 +1293,7 @@ fts_build (register FTS *sp, int type) + int dir_fd; + FTSENT *cur = sp->fts_cur; + bool continue_readdir = !!cur->fts_dirp; ++ size_t max_entries; + + /* When cur->fts_dirp is non-NULL, that means we should + continue calling readdir on that existing DIR* pointer +@@ -1354,7 +1355,7 @@ fts_build (register FTS *sp, int type) + 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 ++ max_entries = (sp->fts_compar == NULL + ? FTS_MAX_READDIR_ENTRIES : SIZE_MAX); + + /* +diff --git a/src/dfasearch.c b/src/dfasearch.c +index 77b4e3e..076f49c 100644 +--- a/src/dfasearch.c ++++ b/src/dfasearch.c +@@ -95,13 +95,17 @@ kwsmusts (void) + of the matching string that it chooses. */ + for (; dm; dm = dm->next) + { ++ char *must; ++ char *mp; ++ size_t old_len; ++ size_t new_len; + if (!dm->exact) + continue; + ++kwset_exact_matches; +- size_t old_len = strlen (dm->must); +- size_t new_len = old_len + dm->begline + dm->endline; +- char *must = xmalloc (new_len); +- char *mp = must; ++ old_len = strlen (dm->must); ++ new_len = old_len + dm->begline + dm->endline; ++ must = xmalloc (new_len); ++ mp = must; + *mp = eolbyte; + mp += dm->begline; + begline |= dm->begline; +@@ -126,6 +130,7 @@ kwsmusts (void) + void + GEAcompile (char const *pattern, size_t size, reg_syntax_t syntax_bits) + { ++ char const *p; + size_t total = size; + char *motif; + +@@ -138,9 +143,10 @@ GEAcompile (char const *pattern, size_t size, reg_syntax_t syntax_bits) + "[\nallo\n]\n", where the patterns are "[", "allo" and "]", and + this should be a syntax error. The same for backref, where the + backref should be local to each pattern. */ +- char const *p = pattern; ++ p = pattern; + do + { ++ char const *err; + size_t len; + char const *sep = memchr (p, '\n', total); + if (sep) +@@ -158,7 +164,7 @@ GEAcompile (char const *pattern, size_t size, reg_syntax_t syntax_bits) + patterns = xnrealloc (patterns, pcount + 1, sizeof *patterns); + patterns[pcount] = patterns0; + +- char const *err = re_compile_pattern (p, len, ++ err = re_compile_pattern (p, len, + &(patterns[pcount].regexbuf)); + if (err) + error (EXIT_TROUBLE, 0, "%s", err); +@@ -218,6 +224,7 @@ EGexecute (char const *buf, size_t size, size_t *match_size, + size_t i; + struct dfa *superset = dfasuperset (dfa); + bool dfafast = dfaisfast (dfa); ++ size_t off; + + mb_start = buf; + buflim = buf + size; +@@ -448,7 +455,7 @@ EGexecute (char const *buf, size_t size, size_t *match_size, + success: + len = end - beg; + success_in_len:; +- size_t off = beg - buf; ++ off = beg - buf; + *match_size = len; + return off; + } +diff --git a/src/dosbuf.c b/src/dosbuf.c +index 9ac2d13..92383d2 100644 +--- a/src/dosbuf.c ++++ b/src/dosbuf.c +@@ -95,11 +95,11 @@ guess_type (char *buf, size_t buflen) + static int + undossify_input (char *buf, size_t buflen) + { ++ int chars_left = 0; ++ + if (! O_BINARY) + return buflen; + +- int chars_left = 0; +- + if (totalcc == 0) + { + /* New file: forget everything we knew about character +@@ -186,12 +186,12 @@ undossify_input (char *buf, size_t buflen) + static off_t + dossified_pos (off_t byteno) + { +- if (! O_BINARY) +- return byteno; +- + off_t pos_lo; + off_t pos_hi; + ++ if (! O_BINARY) ++ return byteno; ++ + if (dos_file_type != DOS_TEXT || dos_report_unix_offset) + return byteno; + +diff --git a/src/grep.c b/src/grep.c +index 7c0f8a8..7e3f8dd 100644 +--- a/src/grep.c ++++ b/src/grep.c +@@ -460,6 +460,7 @@ file_is_binary (char const *buf, size_t bufsize, int fd, struct stat const *st) + /* If the file has holes, it must contain a null byte somewhere. */ + if (SEEK_HOLE != SEEK_END && usable_st_size (st)) + { ++ off_t hole_start; + off_t cur = bufsize; + if (O_BINARY || fd == STDIN_FILENO) + { +@@ -469,7 +470,7 @@ file_is_binary (char const *buf, size_t bufsize, int fd, struct stat const *st) + } + + /* 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) +@@ -983,11 +984,13 @@ prtext (char const *beg, char const *lim) + { + static bool used; /* Avoid printing SEP_STR_GROUP before any output. */ + char eol = eolbyte; ++ char const *p; ++ intmax_t n; + + if (!out_quiet && pending > 0) + prpending (beg); + +- char const *p = beg; ++ p = beg; + + if (!out_quiet) + { +@@ -1020,7 +1023,6 @@ prtext (char const *beg, char const *lim) + } + } + +- intmax_t n; + if (out_invert) + { + /* One or more lines are output. */ +@@ -1103,6 +1105,7 @@ grepbuf (char const *beg, char const *lim) + + for (p = beg; p < lim; p = endp) + { ++ char const *b; + size_t match_size; + size_t match_offset = do_execute (p, lim - p, &match_size); + if (match_offset == (size_t) -1) +@@ -1112,7 +1115,7 @@ grepbuf (char const *beg, char const *lim) + match_offset = lim - p; + match_size = 0; + } +- char const *b = p + match_offset; ++ b = p + match_offset; + endp = b + match_size; + /* Avoid matching the empty line at the end of the buffer. */ + if (!out_invert && b == lim) +@@ -1942,6 +1945,7 @@ main (int argc, char **argv) + int fread_errno; + intmax_t default_context; + FILE *fp; ++ struct stat tmp_stat; + exit_failure = EXIT_TROUBLE; + initialize_main (&argc, &argv); + set_program_name (argv[0]); +@@ -2297,7 +2301,6 @@ main (int argc, char **argv) + 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 --git a/src/kwsearch.c b/src/kwsearch.c +index 6bd516a..c5e7e55 100644 +--- a/src/kwsearch.c ++++ b/src/kwsearch.c +@@ -38,16 +38,18 @@ Fcompile (char const *pattern, size_t size) + { + size_t total = size; + mb_len_map_t *map = NULL; ++ char const *p; + char const *pat = (match_icase && MB_CUR_MAX > 1 + ? mbtoupper (pattern, &total, &map) + : pattern); + + kwsinit (&kwset); + +- char const *p = pat; ++ p = pat; + do + { + size_t len; ++ char *buf = NULL; + char const *sep = memchr (p, '\n', total); + if (sep) + { +@@ -61,7 +63,6 @@ Fcompile (char const *pattern, size_t size) + total = 0; + } + +- char *buf = NULL; + if (match_lines) + { + buf = xmalloc (len + 2); +@@ -110,6 +111,7 @@ Fexecute (char const *buf, size_t size, size_t *match_size, + char eol = eolbyte; + struct kwsmatch kwsmatch; + size_t ret_val; ++ size_t off; + mb_len_map_t *map = NULL; + + if (MB_CUR_MAX > 1) +@@ -179,7 +181,7 @@ Fexecute (char const *buf, size_t size, size_t *match_size, + --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 --git a/src/kwset.c b/src/kwset.c +index 6d21893..8df7cd4 100644 +--- a/src/kwset.c ++++ b/src/kwset.c +@@ -162,6 +162,7 @@ kwsincr (kwset_t kwset, char const *text, size_t len) + installing new nodes when necessary. */ + while (len--) + { ++ int depth = 1; + unsigned char uc = *--text; + unsigned char label = trans ? trans[uc] : uc; + +@@ -173,8 +174,7 @@ kwsincr (kwset_t kwset, char const *text, size_t len) + enum { L, R } dirs[DEPTH_SIZE]; + links[0] = (struct tree *) &trie->links; + dirs[0] = L; +- int depth = 1; +- ++ + while (link && label != link->label) + { + links[depth] = link; +@@ -392,10 +392,13 @@ treenext (struct tree const *tree, struct trie *next[]) + void + kwsprep (kwset_t kwset) + { ++ struct trie *curr, *last; + char const *trans = kwset->trans; + int i; + unsigned char deltabuf[NCHAR]; + unsigned char *delta = trans ? deltabuf : kwset->delta; ++ struct trie *nextbuf[NCHAR]; ++ struct trie **next; + + /* Initial values for the delta table; will be changed later. The + delta entry for a given character is the smallest depth of any +@@ -404,9 +407,10 @@ kwsprep (kwset_t kwset) + + /* Traverse the nodes of the trie in level order, simultaneously + computing the delta table, failure function, and shift function. */ +- struct trie *curr, *last; + for (curr = last = kwset->trie; curr; curr = curr->next) + { ++ struct trie *fail; ++ + /* Enqueue the immediate descendants in the level order queue. */ + enqueue (curr->links, &last); + +@@ -421,7 +425,6 @@ kwsprep (kwset_t kwset) + + /* Update the shifts at each node in the current node's chain + of fails back to the root. */ +- struct trie *fail; + for (fail = curr->fail; fail; fail = fail->fail) + { + /* If the current node has some outgoing edge that the fail +@@ -451,8 +454,7 @@ kwsprep (kwset_t kwset) + + /* Create a vector, indexed by character code, of the outgoing links + from the root node. */ +- struct trie *nextbuf[NCHAR]; +- struct trie **next = trans ? nextbuf : kwset->next; ++ next = trans ? nextbuf : kwset->next; + memset (next, 0, sizeof nextbuf); + treenext (kwset->trie->links, next); + if (trans) +@@ -463,6 +465,8 @@ kwsprep (kwset_t kwset) + of the hairy commentz-walter algorithm. */ + if (kwset->words == 1) + { ++ char gc1; ++ int gc1help = -1; + /* Looking for just one string. Extract it from the trie. */ + kwset->target = obstack_alloc (&kwset->obstack, kwset->mind); + for (i = kwset->mind - 1, curr = kwset->trie; i >= 0; --i) +@@ -484,11 +488,10 @@ kwsprep (kwset_t kwset) + } + } + +- char gc1 = tr (trans, kwset->target[kwset->mind - 1]); ++ gc1 = tr (trans, kwset->target[kwset->mind - 1]); + + /* Set GC1HELP according to whether exactly one, exactly two, or + three-or-more characters match GC1. */ +- int gc1help = -1; + if (trans) + { + char const *equiv1 = memchr (trans, gc1, NCHAR); +@@ -570,13 +573,16 @@ bm_delta2_search (char const **tpp, char const *ep, char const *sp, int len, + static char const * + memchr_kwset (char const *s, size_t n, kwset_t kwset) + { ++ int small_heuristic = 2; ++ int small; ++ size_t ntrans; ++ char const *slim; + if (kwset->gc1help < 0) + return memchr (s, kwset->gc1, n); +- int small_heuristic = 2; +- int small = (- (uintptr_t) s % sizeof (long) ++ small = (- (uintptr_t) s % sizeof (long) + + small_heuristic * sizeof (long)); +- size_t ntrans = kwset->gc1help < NCHAR && small < n ? small : n; +- char const *slim = s + ntrans; ++ ntrans = kwset->gc1help < NCHAR && small < n ? small : n; ++ slim = s + ntrans; + for (; s < slim; s++) + if (kwset->trans[U(*s)] == kwset->gc1) + return s; +@@ -593,6 +599,7 @@ bmexec_trans (kwset_t kwset, char const *text, size_t size) + int d; + int len = kwset->mind; + char const *trans = kwset->trans; ++ char gc1, gc2; + + if (len == 0) + return 0; +@@ -607,8 +614,8 @@ bmexec_trans (kwset_t kwset, char const *text, size_t size) + d1 = kwset->delta; + sp = kwset->target + len; + tp = text + len; +- char gc1 = kwset->gc1; +- char gc2 = kwset->gc2; ++ gc1 = kwset->gc1; ++ gc2 = kwset->gc2; + + /* Significance of 12: 1 (initial offset) + 10 (skip loop) + 1 (md2). */ + if (size > 12 * len) +@@ -630,12 +637,12 @@ bmexec_trans (kwset_t kwset, char const *text, size_t size) + d = d1[U(tp[-1])], tp += d; + if (d != 0) + { ++ int advance_heuristic = 16 * sizeof (long); + d = d1[U(tp[-1])], tp += d; + d = d1[U(tp[-1])], tp += d; + + /* As a heuristic, prefer memchr to seeking by + delta1 when the latter doesn't advance much. */ +- int advance_heuristic = 16 * sizeof (long); + if (advance_heuristic <= tp - tp0) + goto big_advance; + tp--; +diff --git a/src/searchutils.c b/src/searchutils.c +index 5eb9a12..2572c3f 100644 +--- a/src/searchutils.c ++++ b/src/searchutils.c +@@ -270,9 +270,10 @@ mb_goback (char const **mb_start, char const *cur, char const *end) + wint_t + mb_prev_wc (char const *buf, char const *cur, char const *end) + { ++ char const *p; + if (cur == buf) + return WEOF; +- char const *p = buf; ++ p = buf; + cur--; + cur -= mb_goback (&p, cur, end); + return mb_next_wc (cur, end); +-- +1.8.3.4 + diff --git a/sys-apps/groff/groff-1.20.1.recipe b/sys-apps/groff/groff-1.20.1.recipe index 66cbd7eb0..e56eace55 100644 --- a/sys-apps/groff/groff-1.20.1.recipe +++ b/sys-apps/groff/groff-1.20.1.recipe @@ -1,12 +1,15 @@ SUMMARY="GNU troff typesetting package" -DESCRIPTION="The groff (GNU troff) software is a typesetting package which reads plain text mixed with formatting commands and produces formatted output." +DESCRIPTION=" +The groff (GNU troff) software is a typesetting package which reads plain text \ +mixed with formatting commands and produces formatted output. +" HOMEPAGE="http://www.gnu.org/software/groff/" SRC_URI="http://ftp.gnu.org/gnu/groff/groff-1.20.1.tar.gz" -CHECKSUM_MD5="48fa768dd6fdeb7968041dd5ae8e2b02" +CHECKSUM_SHA256="b645878135cb620c6c417c5601bfe96172245af12045540d7344938b4c2cd805" LICENSE="GNU GPL v3" COPYRIGHT="2003-2009 Free Software Foundation, Inc." REVISION="3" -ARCHITECTURES="x86_gcc2 x86 x86_64" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" PROVIDES=" groff = $portVersion compat >= 1.20 @@ -68,7 +71,6 @@ BUILD_PREREQUIRES=" cmd:sed " -SOURCE_DIR="$portVersionedName" DEPEND="" BUILD() diff --git a/sys-apps/less/additional-files/sysless.in b/sys-apps/less/additional-files/sysless.in new file mode 100644 index 000000000..5a252a059 --- /dev/null +++ b/sys-apps/less/additional-files/sysless.in @@ -0,0 +1,8 @@ +#command +\177 back-screen +^H back-screen +#line-edit +\177 backspace +^H backspace +#env +LESS=-R -M diff --git a/sys-apps/less/less-451.recipe b/sys-apps/less/less-451.recipe index 030b4844f..ca0233aa8 100644 --- a/sys-apps/less/less-451.recipe +++ b/sys-apps/less/less-451.recipe @@ -1,23 +1,67 @@ -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="" +SUMMARY="Less is a free, open-source file pager." +DESCRIPTION="GNU less is a program similar to more, but which allows \ +backward movement in the file as well as forward movement. Also, less \ +does not have to read the entire input file before starting, so with \ +large input files it starts up faster than text editors like vi. Less uses \ +termcap (or terminfo on some systems), so it can run on a variety of \ +terminals. There is even limited support for hardcopy terminals. +" +HOMEPAGE="http://www.gnu.org/software/less/" +SRC_URI="http://ftp.gnu.org/gnu/less/less-$portVersion.tar.gz" +CHECKSUM_SHA256="9fe8287c647afeafb4149c5dedaeacfd20971ed7c26c7553794bb750536b5f57" +LICENSE="GNU GPL v3" +COPYRIGHT="1984-2012 Mark Nudelman" +REVISION="4" +ARCHITECTURES="x86_gcc2 x86 x86_64" + +PROVIDES=" + less = $portVersion + cmd:less + cmd:lessecho + cmd:lesskey + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libncurses$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libncurses$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:make + cmd:ld$secondaryArchSuffix + cmd:autoconf + cmd:aclocal + " + +PATCHES="less-451.patch" + +GLOBAL_WRITABLE_FILES=" + settings/etc/sysless.src keep-old + settings/etc/sysless keep-old +" + BUILD() { - cd less-451 - autoreconf -fvi - ./configure --prefix=`finddir B_COMMON_DIRECTORY` --with-editor=nano \ - --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + autoconf + runConfigure ./configure --with-editor=nano \ + --sysconfdir=$settingsDir/etc make } INSTALL() { - cd less-451 - make install DESTDIR="${DESTDIR}" + make install + + syslessDir=$settingsDir/etc + mkdir $syslessDir + cp "$portDir/additional-files/sysless.in" \ + "$syslessDir/sysless.src" + $binDir/lesskey -o "$syslessDir/sysless" \ + "$syslessDir/sysless.src" } -LICENSE="GNU GPL v3" -COPYRIGHT="1984-2012 Mark Nudelman" diff --git a/sys-apps/man/man-1.6g.recipe b/sys-apps/man/man-1.6g.recipe index 2a0a618aa..a1da4b5ef 100644 --- a/sys-apps/man/man-1.6g.recipe +++ b/sys-apps/man/man-1.6g.recipe @@ -1,11 +1,13 @@ SUMMARY="Standard commands to read man pages" -DESCRIPTION="Standard commands to read man pages." +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" +CHECKSUM_SHA256="ccdcb8c3f4e0080923d7e818f0e4a202db26c46415eaef361387c20995b8959f" LICENSE="GNU GPL v2" COPYRIGHT="1989-2012 Free Software Foundation, Inc." -REVISION="3" +REVISION="4" ARCHITECTURES="x86_gcc2 x86 x86_64" PATCHES="man-1.6g.patchset" @@ -62,7 +64,6 @@ GLOBAL_WRITABLE_FILES=" settings/man.conf keep-old " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/sys-apps/man/patches/man-1.6g.patchset b/sys-apps/man/patches/man-1.6g.patchset index 6fefdfc58..f2d53565b 100644 --- a/sys-apps/man/patches/man-1.6g.patchset +++ b/sys-apps/man/patches/man-1.6g.patchset @@ -182,3 +182,28 @@ index 72f37a5..c838d25 100755 -- 1.8.3.4 +From ccf2eb07650cdeb9dbcc91d5bb271ee95a8da4ac Mon Sep 17 00:00:00 2001 +From: Jonathan Schleifer +Date: Thu, 27 Mar 2014 21:56:39 +0100 +Subject: [PATCH] Add -R to less options to fix formattings + +--- + configure | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure b/configure +index c838d25..2bf534e 100755 +--- a/configure ++++ b/configure +@@ -26,7 +26,7 @@ LANGOPT="+lang {$LANGUAGES|all|none}" + # (Indeed, -r may cause the terminal to get into funny states. + # Very inconvenient. For viewing pages in strange locales, set LC_*.) + # +-DEFAULTLESSOPT="-is" ++DEFAULTLESSOPT="-isR" + # + # Note that not creating any cat directories (/var/cache/man or so) + # and not making man suid or sgid is recommended. +-- +Jonathan + diff --git a/sys-apps/most/most-pre5.1_15.recipe b/sys-apps/most/most-pre5.1_15.recipe index e65925bfb..29375790b 100644 --- a/sys-apps/most/most-pre5.1_15.recipe +++ b/sys-apps/most/most-pre5.1_15.recipe @@ -1,8 +1,12 @@ SUMMARY="MOST is a paging program similar to more and less" -DESCRIPTION="MOST is a powerful paging program for Unix, VMS, MSDOS, and win32 systems. Unlike other well-known paging programs most supports multiple windows and can scroll left and right. Why settle for less?" +DESCRIPTION=" +MOST is a powerful paging program for Unix, VMS, MSDOS, and win32 systems. \ +Unlike other well-known paging programs most supports multiple windows and can \ +scroll left and right. Why settle for less? +" HOMEPAGE="http://www.jedsoft.org/most/" SRC_URI="http://www.jedsoft.org/snapshots/most-pre5.1-15.tar.gz" -CHECKSUM_MD5="5894e7acde3ff14e16595b147ca4d2fb" +CHECKSUM_SHA256="b1b3078d855c810e8b697e4c35054e84d9c738ee960c1cc33429b246c28e1024" LICENSE="GNU GPL v2" COPYRIGHT="2004-2013 John E. Davis" REVISION="1" diff --git a/sys-apps/pciutils/patches/pciutils-3.2.1_git-0001-C89.patch b/sys-apps/pciutils/patches/pciutils-3.2.1_git-0001-C89.patch new file mode 100644 index 000000000..0861c4c79 --- /dev/null +++ b/sys-apps/pciutils/patches/pciutils-3.2.1_git-0001-C89.patch @@ -0,0 +1,30 @@ +From 5791b4969c8acb81a6879035269319d3140d2bfa Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= +Date: Wed, 18 Dec 2013 14:10:05 +0100 +Subject: [PATCH] C89 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: François Revol +--- + ls-caps.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ls-caps.c b/ls-caps.c +index f192510..865a999 100644 +--- a/ls-caps.c ++++ b/ls-caps.c +@@ -1260,8 +1260,8 @@ show_caps(struct device *d, int where) + + if (get_conf_word(d, PCI_STATUS) & PCI_STATUS_CAP_LIST) + { +- where = get_conf_byte(d, where) & ~3; + byte been_there[256]; ++ where = get_conf_byte(d, where) & ~3; + memset(been_there, 0, 256); + while (where) + { +-- +1.8.3.4 + diff --git a/sys-apps/pciutils/pciutils-3.2.1.recipe b/sys-apps/pciutils/pciutils-3.2.1.recipe new file mode 100644 index 000000000..596d423ce --- /dev/null +++ b/sys-apps/pciutils/pciutils-3.2.1.recipe @@ -0,0 +1,77 @@ +SUMMARY="Various utilities dealing with the PCI bus" +DESCRIPTION="Various utilities dealing with the PCI bus" +HOMEPAGE="http://mj.ucw.cz/sw/pciutils/" +SRC_URI="ftp://atrey.karlin.mff.cuni.cz/pub/linux/pci/pciutils-3.2.1.tar.gz" +CHECKSUM_SHA256="b31131b721fa26378b4af61b1c49986ff40fe590bc210545b210b6b774337858" +REVISION="1" +LICENSE="GNU GPL v2" +COPYRIGHT="1997-2012 Martin Mares" + +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + pciutils${secondaryArchSuffix} = $portVersion + cmd:lspci${secondaryArchSuffix} = $portVersion + cmd:setpci${secondaryArchSuffix} = $portVersion + " +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + lib:libz${secondaryArchSuffix} + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libz${secondaryArchSuffix} + " +BUILD_PREREQUIRES=" + cmd:make + cmd:gcc${secondaryArchSuffix} + " + +PATCHES="pciutils-3.2.1_git-0001-C89.patch" + +BUILD() +{ + make \ + ZLIB=yes \ + PREFIX=$prefix \ + SHAREDIR=$dataDir \ + SBINDIR=$binDir \ + MANDIR=$manDir \ + INCDIR=$headersDir \ + LIBDIR=$developLibDir +} + +#TODO: SHARED=yes? +# XXX: remove update-pciids (packages are read-only anyway) +INSTALL() +{ + make \ + ZLIB=yes \ + PREFIX=$prefix \ + SHAREDIR=$dataDir \ + SBINDIR=$binDir \ + MANDIR=$manDir \ + INCDIR=$includeDir \ + LIBDIR=$developLibDir \ + install install-lib + rm -f $binDir/update-pciids + rm -f $manDir/man*/update-pciids.* + + # devel package + packageEntries devel \ + $developDir \ + $manDir/man*/pcilib.* +} + +PROVIDES_devel=" + pciutils${secondaryArchSuffix}_devel = $portVersion + devel:pciutils$secondaryArchSuffix = $portVersion + devel:libpci$secondaryArchSuffix + " + +REQUIRES_devel=" + pciutils$secondaryArchSuffix == $portVersion base + " + + diff --git a/sys-apps/pciutils/pciutils-3.2.1_git.recipe b/sys-apps/pciutils/pciutils-3.2.1_git.recipe new file mode 100644 index 000000000..d0161f4b6 --- /dev/null +++ b/sys-apps/pciutils/pciutils-3.2.1_git.recipe @@ -0,0 +1,80 @@ +SUMMARY="Various utilities dealing with the PCI bus" +DESCRIPTION="Various utilities dealing with the PCI bus" +HOMEPAGE="http://mj.ucw.cz/sw/pciutils/" +SRC_URI="git://git.kernel.org/pub/scm/utils/pciutils/pciutils.git" +#CHECKSUM_MD5="" +REVISION="1" +LICENSE="GNU GPL v2" +COPYRIGHT="1997-2012 Martin Mares" + +ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="?x86_gcc2 ?x86" + +PROVIDES=" + pciutils${secondaryArchSuffix} = $portVersion + cmd:lspci${secondaryArchSuffix} = $portVersion + cmd:setpci${secondaryArchSuffix} = $portVersion +# cmd:update-pciids${secondaryArchSuffix} = $portVersion +# lib:libpci${secondaryArchSuffix} +# devel:pciutils${secondaryArchSuffix} + " +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + lib:libz${secondaryArchSuffix} + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libz${secondaryArchSuffix} + " +BUILD_PREREQUIRES=" + cmd:make + cmd:gcc${secondaryArchSuffix} + " + +PATCHES="pciutils-3.2.1_git-0001-C89.patch" + +BUILD() +{ + make \ + ZLIB=yes \ + PREFIX=$prefix \ + SHAREDIR=$dataDir \ + SBINDIR=$binDir \ + MANDIR=$manDir \ + INCDIR=$headersDir \ + LIBDIR=$developLibDir +} + +#TODO: SHARED=yes? +# XXX: remove update-pciids (packages are read-only anyway) +INSTALL() +{ + make \ + ZLIB=yes \ + PREFIX=$prefix \ + SHAREDIR=$dataDir \ + SBINDIR=$binDir \ + MANDIR=$manDir \ + INCDIR=$includeDir \ + LIBDIR=$developLibDir \ + install install-lib + rm -f $binDir/update-pciids + rm -f $manDir/man*/update-pciids.* + + # devel package + packageEntries devel \ + $developDir \ + $manDir/man*/pcilib.* +} + +PROVIDES_devel=" + pciutils${secondaryArchSuffix}_devel = $portVersion + devel:pciutils$secondaryArchSuffix = $portVersion + devel:libpci$secondaryArchSuffix + " + +REQUIRES_devel=" + pciutils$secondaryArchSuffix == $portVersion base + " + + diff --git a/sys-apps/sed/sed-4.2.1.recipe b/sys-apps/sed/sed-4.2.1.recipe index 7038c8e07..69ce16c5b 100644 --- a/sys-apps/sed/sed-4.2.1.recipe +++ b/sys-apps/sed/sed-4.2.1.recipe @@ -1,21 +1,19 @@ SUMMARY="A stream editor" DESCRIPTION=" - Sed is a stream editor, i.e. it can be used to perform basic text - transformations on an input stream (a file or input from a pipeline). - - While in some ways similar to an editor which permits scripted edits - (such as ed), sed works by making only one pass over the input(s), and - is consequently more efficient. But it is sed's ability to filter text - in a pipeline which particularly distinguishes it from other types of - editors. - " +Sed is a stream editor, i.e. it can be used to perform basic text \ +transformations on an input stream (a file or input from a pipeline). +While in some ways similar to an editor which permits scripted edits (such as \ +ed), sed works by making only one pass over the input(s), and is consequently \ +more efficient. But it is sed's ability to filter text in a pipeline which \ +particularly distinguishes it from other types of editors. +" HOMEPAGE="http://www.gnu.org/software/sed" COPYRIGHT="1989-2009 Free Software Foundation, Inc." LICENSE="GNU GPL v3" SRC_URI="http://ftp.gnu.org/gnu/sed/sed-4.2.1.tar.gz" -CHECKSUM_MD5="f0fd4d7da574d4707e442285fd2d3b86" +CHECKSUM_SHA256="8773541ce097fdc4c5b9e7da12a82dffbb30cd91f7bc169f52f05f93b7fc3060" REVISION="6" -ARCHITECTURES="x86_gcc2 x86 x86_64" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" PATCHES="sed-4.2.1.patchset" @@ -38,7 +36,6 @@ BUILD_PREREQUIRES=" defineDebugInfoPackage sed \ $binDir/sed -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/sys-apps/spiff/licenses/SPIFF b/sys-apps/spiff/licenses/SPIFF new file mode 100644 index 000000000..7f939573b --- /dev/null +++ b/sys-apps/spiff/licenses/SPIFF @@ -0,0 +1,13 @@ +COPYRIGHT + +Our lawyers advise the following: + + Copyright (c) 1988 Bellcore + All Rights Reserved + Permission is granted to copy or use this program, EXCEPT that it + may not be sold for profit, the copyright notice must be reproduced + on copies, and credit should be given to Bellcore where it is due. + BELLCORE MAKES NO WARRANTY AND ACCEPTS NO LIABILITY FOR THIS PROGRAM. + +Given that all of the above seems to be very reasonable, there should be no +reason for anyone to not play by the rules. diff --git a/sys-apps/spiff/patches/Makefile.patch b/sys-apps/spiff/patches/Makefile.patch new file mode 100644 index 000000000..48126a650 --- /dev/null +++ b/sys-apps/spiff/patches/Makefile.patch @@ -0,0 +1,43 @@ +diff --git a/SRC/Makefile b/SRC/Makefile +index 12029bd..cce9963 100644 +--- a/SRC/Makefile ++++ b/SRC/Makefile +@@ -32,8 +32,8 @@ OSFLAG= + # choose either of a) b) or c) + # + # a) if you use termcap, enable the following lines +-TFLAG=-DM_TERMCAP +-TLIB=termcap ++#TFLAG=-DM_TERMCAP ++#TLIB=termcap + + # b) if you are using terminfo on a XENIX machine, enable the following lines + #TFLAG=-DM_TERMINFO +@@ -41,8 +41,8 @@ TLIB=termcap + + # c) if you use terminfo on any other type of machine, + # enable the following lines +-#TFLAG=-DM_TERMINFO +-#TLIB=curses ++TFLAG=-DM_TERMINFO ++TLIB=ncurses + + # + # 3) SELECTION OF WINDOW MANAGER AVAILABILITY +@@ -73,6 +73,7 @@ CFILES= spiff.c output.c compare.c float.c strings.c exact.c miller.c parse.c co + HFILES=misc.h strings.h line.h float.h floatrep.h tol.h command.h comment.h token.h edit.h parse.h compare.h flagdefs.h exact.h miller.h visual.h output.h + OTHER=README Makefile Sample.1 Sample.2 Sample.3 Sample.4 paper.ms paper.out + MANPAGE=spiff.1 ++INSDIR=insDir + + CFLAGS=-O $(OSFLAG) $(TFLAG) $(VISFLAG) + +@@ -138,6 +139,7 @@ cpio: + cmd: + -$(CMD) $(CFILES) $(HFILES) $(OTHER) $(MANPAGE) + install: +- mv spiff $(INSDIR)/bin ++ mkdir -p $(INSDIR)/man/man1 ++ mv spiff $(INSDIR) + cp $(MANPAGE) $(INSDIR)/man/man1 + diff --git a/sys-apps/spiff/spiff-1.recipe b/sys-apps/spiff/spiff-1.recipe new file mode 100644 index 000000000..b4f5cc78c --- /dev/null +++ b/sys-apps/spiff/spiff-1.recipe @@ -0,0 +1,55 @@ +DESCRIPTION=" +'spiff' is a command line program that compares the contents of two files and \ +prints a description of the important differences between them in a form \ +rather like the standard 'diff' utility. However, unlike diff, it is not line \ +oriented -- it compares word sequences with all white space and newlines \ +disregarded, so even if formatting is different you only see the significant \ +differences. It also compares floating-point values with a tolerance, so you \ +can look in data files for discrepancies. +" +SUMMARY="Advanced command line tool like standard 'diff'" +HOMEPAGE="https://github.com/HaikuArchives/Spiff" +SRC_URI="git+https://github.com/HaikuArchives/Spiff#50fa5e3cfe1431071b1de57828508f6903b052c2" +REVISION="1" +#STATUS_HAIKU="stable" +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + spiff = $portVersion + bin:spiff = $portVersion" + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + makefile_engine + ncurses + cmd:gcc + cmd:make + cmd:mkdepend" + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:libncurses + " + +COPYRIGHT="1988 Bellcore" +LICENSE="SPIFF" + +PATCHES="Makefile.patch" + +BUILD() +{ + cd SRC + make + cd .. +} + +INSTALL() +{ + cd SRC + make install + mkdir -p $binDir + mkdir -p $documentationDir + cp insDir/spiff $binDir + cp -R insDir/man $documentationDir + cd .. +} diff --git a/sys-apps/texinfo/texinfo-4.13a.recipe b/sys-apps/texinfo/texinfo-4.13a.recipe index 4601c846e..eabd45d6b 100644 --- a/sys-apps/texinfo/texinfo-4.13a.recipe +++ b/sys-apps/texinfo/texinfo-4.13a.recipe @@ -1,12 +1,14 @@ SUMMARY="Standard GNU documentation format tool" -DESCRIPTION="Texinfo is the official documentation format of the GNU project." +DESCRIPTION=" +Texinfo is the official documentation format of the GNU project. +" HOMEPAGE="http://www.gnu.org/software/texinfo/" COPYRIGHT="1992-2008 Free Software Foundation, Inc." LICENSE="GNU GPL v3" SRC_URI="http://ftp.gnu.org/gnu/texinfo/texinfo-4.13a.tar.gz" -CHECKSUM_MD5="71ba711519209b5fb583fed2b3d86fcb" +CHECKSUM_SHA256="1303e91a1c752b69a32666a407e9fbdd6e936def4b09bc7de30f416301530d68" REVISION="7" -ARCHITECTURES="x86_gcc2 x86 x86_64" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" PATCHES="texinfo-4.13a.patch" diff --git a/sys-apps/the_silver_searcher/the_silver_searcher-0.18.1.recipe b/sys-apps/the_silver_searcher/the_silver_searcher-0.18.1.recipe new file mode 100644 index 000000000..903826fdc --- /dev/null +++ b/sys-apps/the_silver_searcher/the_silver_searcher-0.18.1.recipe @@ -0,0 +1,88 @@ +SUMMARY="A code-searching tool similar to ack, but faster." +DESCRIPTION=" +A code-searching tool similar to ack, but faster. +* It searches code about 3–5× faster than ack. +* It ignores file patterns from your .gitignore and .hgignore. +* If there are files in your source repo you don't want to search, just add \ +their patterns to a .agignore file. +* Ag uses Pthreads to take advantage of multiple CPU cores and search files in \ +parallel. +" +HOMEPAGE="https://github.com/ggreer/the_silver_searcher/" +SRC_URI="git+https://github.com/ggreer/the_silver_searcher.git#ae5f4417d1" +CHECKSUM_MD5="" +COPYRIGHT="2013 Geoff Greer" +LICENSE="Apache v2" +REVISION="1" +ARCHITECTURES="x86" +if [ $effectiveTargetArchitecture != x86_gcc2 ];then + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" +SOURCE_DIR="" + +# On x86_gcc2 we don't want to install the commands in bin//, but in bin/. +commandSuffix=$secondaryArchSuffix +commandBinDir=$binDir +if [ "$targetArchitecture" = x86_gcc2 ]; then + commandSuffix= + commandBinDir=$prefix/bin +fi + +PROVIDES=" + the_silver_searcher$secondaryArchSuffix = $portVersion + cmd:ag$commandSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:liblzma${secondaryArchSuffix} + lib:libpcre${secondaryArchSuffix} + lib:libz${secondaryArchSuffix} + " + +BUILD_REQUIRES=" + devel:liblzma${secondaryArchSuffix} + devel:libpcre${secondaryArchSuffix} + devel:libz${secondaryArchSuffix} + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:autoheader + cmd:automake + cmd:make + cmd:gcc${secondaryArchSuffix} + cmd:pkg_config + " + +PATCH() +{ + sed -i 's,-lpthread,,' Makefile.am +} + +BUILD() +{ + aclocal + autoconf + autoheader + automake --add-missing + + #Need to override the pkgconfig variables + LZMA_CFLAGS="-I$includeDir" \ + LZMA_LIBS="-L$libDir -llzma" \ + PCRE_CFLAGS="-I$includeDir" \ + PCRE_LIBS="-L$libDir -lpcre" \ + runConfigure --omit-dirs binDir ./configure \ + --bindir=$commandBinDir + make +} + +INSTALL() +{ + make install +} diff --git a/sys-apps/which/patches/which-2.20.patch b/sys-apps/which/patches/which-2.20.patch new file mode 100644 index 000000000..422a6739b --- /dev/null +++ b/sys-apps/which/patches/which-2.20.patch @@ -0,0 +1,19 @@ +diff -up which-2.20/which.c.orig which-2.20/which.c +--- which-2.20/which.c.orig 2013-10-20 12:30:35.994574336 -0600 ++++ which-2.20/which.c 2013-10-20 12:30:21.694681600 -0600 +@@ -428,6 +428,7 @@ static uid_t const superuser = 0; + + int main(int argc, char *argv[]) + { ++ int function_start_type = 0; + const char *path_list = getenv("PATH"); + int short_option, fail_count = 0; + static int long_option; +@@ -537,7 +538,6 @@ int main(int argc, char *argv[]) + return -1; + } + +- int function_start_type = 0; + if (read_alias || read_functions) + { + char buf[1024]; diff --git a/sys-apps/which/which-2.20.recipe b/sys-apps/which/which-2.20.recipe index dff494944..3eb419671 100644 --- a/sys-apps/which/which-2.20.recipe +++ b/sys-apps/which/which-2.20.recipe @@ -3,9 +3,11 @@ HOMEPAGE="http://carlo17.home.xs4all.nl/which/" COPYRIGHT="Free Software Foundation" LICENSE="GNU GPL v2" SRC_URI="http://ftp.gnu.org/gnu/which/which-2.20.tar.gz" -CHECKSUM_MD5="95be0501a466e515422cde4af46b2744" -REVISION="1" -ARCHITECTURES="x86_gcc2 x86" +CHECKSUM_SHA256="d417b65c650d88ad26a208293c1c6e3eb60d4b6d847f01ff8f66aca63e2857f8" +REVISION="2" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" + +PATCHES="which-2.20.patch" PROVIDES=" which = $portVersion @@ -33,6 +35,7 @@ INSTALL() make install } -DESCRIPTION="GNU which is an utility that is used to find which executable - (or alias or shell function) is executed when entered on the shell prompt. +DESCRIPTION=" +GNU which is an utility that is used to find which executable (or alias or \ +shell function) is executed when entered on the shell prompt. " diff --git a/sys-block/parted/parted-3.1.53_git.recipe b/sys-block/parted/parted-3.1.53_git.recipe new file mode 100644 index 000000000..6e06f6227 --- /dev/null +++ b/sys-block/parted/parted-3.1.53_git.recipe @@ -0,0 +1,52 @@ +SUMMARY="parted" +DESCRIPTION=" +parted partition editor. +" +HOMEPAGE="http://www.gnu.org/software/parted" +SRC_URI="git://git.debian.org/git/parted/parted.git" +#CHECKSUM_MD5="" +REVISION="1" +LICENSE="GNU GPL v3" +COPYRIGHT="" + +ARCHITECTURES="!x86_gcc2 !x86 !x86_64" +SECONDARY_ARCHITECTURES="!x86_gcc2 !x86" + +PROVIDES=" + parted$secondaryArchSuffix = $portVersion + cmd:parted$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:git + cmd:autoconf + cmd:libtool + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:gperf + cmd:rsync + cmd:gettext + " + +#PATCHES="parted.patch" + +# TODO: Fix libdl test in configure.ac +BUILD() +{ + ./bootstrap + runConfigure ./configure --disable-dynamic-loading + make +} + +INSTALL() +{ + make install +} diff --git a/sys-devel/autoconf/autoconf-2.67xz.recipe b/sys-devel/autoconf/autoconf-2.67xz.recipe deleted file mode 100644 index f83fde14b..000000000 --- a/sys-devel/autoconf/autoconf-2.67xz.recipe +++ /dev/null @@ -1,22 +0,0 @@ -DESCRIPTION="autoconf - Used to create autoconfiguration files" -HOMEPAGE="http://www.gnu.org/software/autoconf/" -SRC_URI="http://ftpmirror.gnu.org/autoconf/autoconf-2.67.tar.xz" -CHECKSUM_MD5="1da24eebe4e6a774e4039242a4f06aad" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd autoconf-2.67 - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd autoconf-2.67 - make install -} -LICENSE="GNU GPL v2 - GNU GPL v3" -COPYRIGHT="1992-2010 Free Software Foundation, Inc." diff --git a/sys-devel/autoconf/autoconf-2.68.recipe b/sys-devel/autoconf/autoconf-2.68.recipe index 9065d079d..218fbb37e 100644 --- a/sys-devel/autoconf/autoconf-2.68.recipe +++ b/sys-devel/autoconf/autoconf-2.68.recipe @@ -1,13 +1,13 @@ SUMMARY="A tool for automatically configuring source code" DESCRIPTION=" - GNU Autoconf is a tool for configuring source code and makefiles. Using - autoconf, programmers can create portable and configurable packages, - because the person building the package is allowed to specify various - configuration options. - " +GNU Autoconf is a tool for configuring source code and makefiles. Using \ +autoconf, programmers can create portable and configurable packages, because \ +the person building the package is allowed to specify various configuration \ +options. +" HOMEPAGE="http://www.gnu.org/software/autoconf/" SRC_URI="http://ftp.gnu.org/gnu/autoconf/autoconf-2.68.tar.bz2" -CHECKSUM_MD5="864d785215aa60d627c91fcb21b05b07" +CHECKSUM_SHA256="c491fb273fd6d4ca925e26ceed3d177920233c76d542b150ff35e571454332c8" REVISION="5" ARCHITECTURES="x86_gcc2 ?x86" LICENSE=" @@ -45,7 +45,6 @@ BUILD_PREREQUIRES=" " BUILD_PACKAGE_ACTIVATION_PHASE=INSTALL -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/sys-devel/autoconf/autoconf-2.69.recipe b/sys-devel/autoconf/autoconf-2.69.recipe index d754e0e88..3dc015cb1 100644 --- a/sys-devel/autoconf/autoconf-2.69.recipe +++ b/sys-devel/autoconf/autoconf-2.69.recipe @@ -1,10 +1,10 @@ SUMMARY="A tool for automatically configuring source code" DESCRIPTION=" - GNU Autoconf is a tool for configuring source code and makefiles. Using - autoconf, programmers can create portable and configurable packages, - because the person building the package is allowed to specify various - configuration options. - " +GNU Autoconf is a tool for configuring source code and makefiles. Using \ +autoconf, programmers can create portable and configurable packages, because \ +the person building the package is allowed to specify various configuration \ +options. +" HOMEPAGE="http://www.gnu.org/software/autoconf/" COPYRIGHT="1992-2012 Free Software Foundation, Inc." LICENSE=" @@ -12,9 +12,9 @@ LICENSE=" GNU GPL v3 " SRC_URI="http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz" -CHECKSUM_MD5="82d05e03b93e45f5a39b828dc9c6c29b" -REVISION="5" -ARCHITECTURES="x86_gcc2 x86 x86_64" +CHECKSUM_SHA256="954bd69b391edc12d6a4a51a2dd1476543da5c6bbf05a95b59dc0dd6fd4c2969" +REVISION="6" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" PATCHES='autoconf-2.69.patchset' @@ -41,20 +41,18 @@ BUILD_REQUIRES=" " BUILD_PREREQUIRES=" haiku_devel >= $haikuVersion - cmd:automake >= 1.13.1 - cmd:autoreconf >= 2.60 + cmd:awk + cmd:m4 cmd:make cmd:makeinfo + cmd:perl >= 5 cmd:sed " BUILD_PACKAGE_ACTIVATION_PHASE=INSTALL -SOURCE_DIR="$portVersionedName" BUILD() { - autoreconf - # make sure that the build system doesn't try to update the manpages, # as that requires help2man, which isn't available touch man/*.1 diff --git a/sys-devel/automake/automake-1.11.1.recipe b/sys-devel/automake/automake-1.11.1.recipe index 41723ca7c..e45e5928f 100644 --- a/sys-devel/automake/automake-1.11.1.recipe +++ b/sys-devel/automake/automake-1.11.1.recipe @@ -1,15 +1,15 @@ SUMMARY="A tool for generating 'Makefile.in' from 'Makefile.am'" DESCRIPTION=" - Automake is a tool for automatically generating 'Makefile.in' files - from 'Makefile.am' files. 'Makefile.am' is a series of 'make' macro - definitions (with rules occasionally thrown in). The generated - 'Makefile.in' files are compatible with the GNU Makefile standards. - " +Automake is a tool for automatically generating 'Makefile.in' files from \ +'Makefile.am' files. 'Makefile.am' is a series of 'make' macro definitions \ +(with rules occasionally thrown in). The generated 'Makefile.in' files are \ +compatible with the GNU Makefile standards. +" HOMEPAGE="http://www.gnu.org/software/automake/" COPYRIGHT="2009 Free Software Foundation, Inc." LICENSE="GNU GPL v2" SRC_URI="http://ftp.gnu.org/gnu/automake/automake-1.11.1.tar.gz" -CHECKSUM_MD5="4ee7f0ff5f0e467d58b6bd5da96b1c74" +CHECKSUM_SHA256="b7b37c0c0f09a286cf55cad408d74aef97774d73d744c88c396ff7957045d4cb" REVISION="5" ARCHITECTURES="x86_gcc2 ?x86" @@ -39,7 +39,6 @@ BUILD_PREREQUIRES=" cmd:sed " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/sys-devel/automake/automake-1.12.2.recipe b/sys-devel/automake/automake-1.12.2.recipe index c91eb34bc..862b64139 100644 --- a/sys-devel/automake/automake-1.12.2.recipe +++ b/sys-devel/automake/automake-1.12.2.recipe @@ -1,15 +1,15 @@ SUMMARY="A tool for generating 'Makefile.in' from 'Makefile.am'" DESCRIPTION=" - Automake is a tool for automatically generating 'Makefile.in' files - from 'Makefile.am' files. 'Makefile.am' is a series of 'make' macro - definitions (with rules occasionally thrown in). The generated - 'Makefile.in' files are compatible with the GNU Makefile standards. - " +Automake is a tool for automatically generating 'Makefile.in' files from \ +'Makefile.am' files. 'Makefile.am' is a series of 'make' macro definitions \ +(with rules occasionally thrown in). The generated 'Makefile.in' files are \ +compatible with the GNU Makefile standards. +" HOMEPAGE="http://www.gnu.org/software/automake/" COPYRIGHT="2012 Free Software Foundation, Inc." LICENSE="GNU GPL v2" SRC_URI="http://ftp.gnu.org/gnu/automake/automake-1.12.2.tar.gz" -CHECKSUM_MD5="e620cb9e0259159341c0e0d6b712b67a" +CHECKSUM_SHA256="b2eef742f42730831d1af2fe0e5b954e2b60773e2e9922ba6280cdd0ab4a5d00" REVISION="4" ARCHITECTURES="x86_gcc2 x86" @@ -42,7 +42,6 @@ BUILD_PREREQUIRES=" cmd:sed " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/sys-devel/automake/automake-1.13.1.recipe b/sys-devel/automake/automake-1.13.1.recipe index 2b271b2b6..9ee7a526d 100644 --- a/sys-devel/automake/automake-1.13.1.recipe +++ b/sys-devel/automake/automake-1.13.1.recipe @@ -1,17 +1,17 @@ SUMMARY="A tool for generating 'Makefile.in' from 'Makefile.am'" DESCRIPTION=" - Automake is a tool for automatically generating 'Makefile.in' files - from 'Makefile.am' files. 'Makefile.am' is a series of 'make' macro - definitions (with rules occasionally thrown in). The generated - 'Makefile.in' files are compatible with the GNU Makefile standards. - " +Automake is a tool for automatically generating 'Makefile.in' files from \ +'Makefile.am' files. 'Makefile.am' is a series of 'make' macro definitions \ +(with rules occasionally thrown in). The generated 'Makefile.in' files are \ +compatible with the GNU Makefile standards. +" HOMEPAGE="http://www.gnu.org/software/automake/" COPYRIGHT="2013 Free Software Foundation, Inc." LICENSE="GNU GPL v2" SRC_URI="http://ftp.gnu.org/gnu/automake/automake-1.13.1.tar.gz" -CHECKSUM_MD5="78a0ef8216b0556b44508e7b5b0c0847" +CHECKSUM_SHA256="51bc10031847e9965c4f2c16a0a66552309ce28ea82b1afa8cef736643ebaa27" REVISION="4" -ARCHITECTURES="x86_gcc2 x86 x86_64" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" PROVIDES=" automake = $portVersion compat >= 1.13 @@ -34,6 +34,7 @@ BUILD_REQUIRES=" BUILD_PREREQUIRES=" haiku_devel >= $haikuVersion cmd:autoconf >= 2.60 + cmd:find cmd:gcc cmd:ld cmd:make @@ -42,7 +43,6 @@ BUILD_PREREQUIRES=" cmd:sed " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/sys-devel/avr_binutils/avr_binutils-2.24_2014_03_19.recipe b/sys-devel/avr_binutils/avr_binutils-2.24_2014_03_19.recipe new file mode 100644 index 000000000..d0c11395c --- /dev/null +++ b/sys-devel/avr_binutils/avr_binutils-2.24_2014_03_19.recipe @@ -0,0 +1,149 @@ +SUMMARY="Assembler, linker and binary tools for Atmel AVR" +HOMEPAGE="http://www.gnu.org/software/binutils" + +srcGitRev="c20a732df8f8b6d0f32c872817f3a0498a5c4761" +SRC_URI="https://github.com/haiku/buildtools/archive/$srcGitRev.tar.gz" +CHECKSUM_SHA256="6d3b677cd8ef777bf6fb3186a15b5122e46345595a996370325c758b3d8a4ab6" +SRC_FILENAME="binutils-$portVersion.tar.gz" +REVISION="5" +LICENSE=" + GNU GPL v2 + GNU LGPL v2 + " +COPYRIGHT="1988-2013 Free Software Foundation, Inc." + + +ARCHITECTURES="x86 x86_64 arm" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + avr_binutils$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:avr_addr2line$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:avr_ar$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:avr_as$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:avr_c++filt$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:avr_elfedit$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:avr_gprof$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:avr_ld$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:avr_ld.bfd$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:avr_nm$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:avr_objcopy$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:avr_objdump$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:avr_ranlib$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:avr_readelf$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:avr_size$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:avr_strings$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:avr_strip$secondaryArchSuffix = $portVersion compat >= 2.23 + lib:avr_libbfd_2.24$secondaryArchSuffix = $portVersion compat >= 2.23 + lib:avr_libopcodes_2.24$secondaryArchSuffix = $portVersion compat >= 2.23 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + cmd:find + cmd:xargs + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:autoconf + cmd:awk + cmd:find + cmd:flex + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:makeinfo + cmd:sed + cmd:strip + cmd:tar + cmd:xargs + " + +SOURCE_DIR="buildtools-$srcGitRev/binutils" +BUILD_PACKAGE_ACTIVATION_PHASE=INSTALL + +sourceDir=$(pwd) +relativeInstallDir="develop/tools/avr" +installDir="$prefix/$relativeInstallDir" +objectsDir=$(pwd)/../${portVersionedName}-obj + +BUILD() +{ + rm -rf $objectsDir + + # Touch all *.info files, as newer texinfos don't like their format + (cd $sourceDir; find . -name \*.info | xargs touch) + + mkdir -p $objectsDir + cd $objectsDir + + CFLAGS=-O2 CXXFLAGS=-O2 runConfigure "$sourceDir/configure" \ + --exec-prefix=$installDir \ + --includedir=$includeDir/binutils \ + --docdir=$docDir \ + --disable-nls --target=avr + + make $jobArgs +} + +INSTALL() +{ + cd $objectsDir + + make install + + # no info documentation + rm -r $infoDir + + ### Strip ################################################# + + echo "Strip debug info" + + strip --strip-debug $binDir/* + + ### Symlinks ############################################## + + echo "Creating required symlinks" + + # There are copies of a subset of the commands below installDir. We + # overwrite those with symlinks to the ones in binDir. + for file in $installDir/avr/bin/*; do + symlinkRelative -sfn $binDir/avr-$(basename $file) $file + done + + ### Cleanup ################################################# + + echo "Cleanup" + + # delete man pages for commands that we aren't including + cd $manDir + for cmd in dlltool nlmconv windmc windres; do + rm -f man1/$cmd.1 + done +} + +DESCRIPTION=" +The GNU Binutils are a collection of binary tools. The main ones are: +- ld - the GNU linker. +- as - the GNU assembler. +But they also include: +- addr2line - Converts addresses into filenames and line numbers. +- ar - A utility for creating, modifying and extracting from archives. +- c++filt - Filter to demangle encoded C++ symbols. +- nm - Lists symbols from object files. +- objcopy - Copys and translates object files. +- objdump - Displays information from object files. +- ranlib - Generates an index to the contents of an archive. +- readelf - Displays information from any ELF format object file. +- size - Lists the section sizes of an object or archive file. +- strings - Lists printable strings from files. +- strip - Discards symbols. +The tools of this package can be used for cross-builds to Atmel AVR. +" diff --git a/sys-devel/avr_gcc/avr_gcc-4.8.2_2014_03_20.recipe b/sys-devel/avr_gcc/avr_gcc-4.8.2_2014_03_20.recipe new file mode 100644 index 000000000..351b97fdd --- /dev/null +++ b/sys-devel/avr_gcc/avr_gcc-4.8.2_2014_03_20.recipe @@ -0,0 +1,119 @@ +SUMMARY="C/C++ cross-compiler for Atmel AVR" +DESCRIPTION=" +Compiler for Atmel AVR platform. +" +HOMEPAGE="http://gcc.gnu.org" + +srcGitRev="c20a732df8f8b6d0f32c872817f3a0498a5c4761" +SRC_URI="https://github.com/haiku/buildtools/archive/$srcGitRev.tar.gz" +CHECKSUM_SHA256="6d3b677cd8ef777bf6fb3186a15b5122e46345595a996370325c758b3d8a4ab6" +SRC_FILENAME="$portVersionedName.tar.gz" +REVISION="1" +LICENSE=" + GNU GPL v2 + GNU LGPL v2 + " +COPYRIGHT="1988-2013 Free Software Foundation, Inc." + + +ARCHITECTURES="x86 x86_64 arm" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + avr_gcc$secondaryArchSuffix = $portVersion compat >= 4 + cmd:avr_c++$secondaryArchSuffix = $portVersion compat >= 4 + cmd:avr_cc$secondaryArchSuffix = $portVersion compat >= 4 + cmd:avr_cpp$secondaryArchSuffix = $portVersion compat >= 4 + cmd:avr_g++$secondaryArchSuffix = $portVersion compat >= 4 + cmd:avr_gcc$secondaryArchSuffix = $portVersion compat >= 4 + cmd:avr_gcc_4.8.2$secondaryArchSuffix = $portVersion compat >= 4 + cmd:avr_gcov$secondaryArchSuffix = $portVersion compat >= 4 + lib:avr_libstdc++$secondaryArchSuffix = $portVersion compat >= 4 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + cmd:avr_as$secondaryArchSuffix + lib:libstdc++$secondaryArchSuffix + " +BUILD_REQUIRES=" + cmd:avr_as$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:autoconf + cmd:awk + cmd:bison + cmd:find + cmd:flex + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:makeinfo + cmd:sed + cmd:strip + cmd:tar + cmd:xargs + " + +SOURCE_DIR="buildtools-$srcGitRev/gcc" + +sourceDir=$(pwd) +relativeInstallDir="develop/tools/avr" +installDir="$prefix/$relativeInstallDir" +objectsDir=$(pwd)/../${portVersionedName}-obj + +BUILD() +{ + rm -rf $objectsDir + + # Touch some files generated by bison, so that bison won't run to update + # them. Fixes issues with newer bison versions. + # And while at it, touch gperf target, too (as gperf may not be installed). + (cd $sourceDir/gcc; touch c-parse.c c-parse.h cexp.c cp/parse.c \ + cp/parse.h c-gperf.h) + + mkdir -p $objectsDir + cd $objectsDir + + # Setting a quoted string in an environment variable is ugly. + echo '#define LIBRARY_PATH_ENV "AVR_LIBRARY_PATH"' > haiku_host.h + + CXXFLAGS="-O2 -include $objectsDir/haiku_host.h" \ + CFLAGS="-O2 -U_FORTIFY_SOURCE" "$sourceDir/configure" \ + --build=$effectiveTargetMachineTriple \ + --prefix=$installDir --libexecdir=$installDir/lib --mandir=$manDir \ + --docdir=$docDir --disable-nls --disable-libssp --with-gnu-ld \ + --enable-languages=c,c++ --enable-lto --enable-frame-pointer \ + --with-pkgversion=$(echo $portVersion | cut -c 7-) --target=avr + + make $jobArgs +} + +INSTALL() +{ + cd $objectsDir + + make install-strip + + ### Symlinks ############################################## + + echo "Creating required symlinks" + + # make all tools available via default paths + mkdir -p $binDir + for f in c++ cc cpp g++ gcc gcov; do + symlinkRelative -sfn $installDir/bin/avr-$f $binDir + done + + ### Cleanup ############################################### + + echo "Cleanup" + rm -rf $installDir/info + rm -rf $installDir/share +} diff --git a/sys-devel/bc/bc-1.06.recipe b/sys-devel/bc/bc-1.06.recipe index cf88b843d..b6dfbdef9 100644 --- a/sys-devel/bc/bc-1.06.recipe +++ b/sys-devel/bc/bc-1.06.recipe @@ -1,31 +1,56 @@ -DESCRIPTION="Handy console-based calculator utility" +SUMMARY="Handy console-based calculator utility" +DESCRIPTION=" +bc is an arbitrary precision numeric processing language. Syntax is similar to \ +C, but differs in many substantial areas. It supports interactive execution of \ +statements. bc is a utility included in the POSIX P1003.2/D11 draft standard. +" HOMEPAGE="http://www.gnu.org/software/bc/bc.html" SRC_URI="http://ftp.gnu.org/gnu/bc/bc-1.06.tar.gz" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -CHECKSUM_MD5="d44b5dddebd8a7a7309aea6c36fda117" +CHECKSUM_SHA256="4ef6d9f17c3c0d92d8798e35666175ecd3d8efac4009d6457b5c99cea72c0e33" +REVISION="2" +LICENSE="GNU GPL v2 + GNU LGPL v2.1" +COPYRIGHT="1991-2000 Free Software Foundation, Inc." + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + bc = $portVersion + cmd:bc + cmd:dc +" + +REQUIRES=" + haiku >= $haikuVersion +" + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion +" + +BUILD_PREREQUIRES=" + cmd:gcc + cmd:make + cmd:flex + cmd:bison +" + +PATCHES=" + bc-1.06.patch +" + BUILD() { - cd bc-1.06 - ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --infodir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info \ - --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man - make + runConfigure --omit-dirs "docDir dataRootDir" ./configure + make $jobArgs } INSTALL() { - cd bc-1.06 - make install DESTDIR=${DESTDIR} + make install } TEST() { - cd bc-1.06/Test timetest } - -LICENSE="GNU GPL v2 - GNU LGPL v2.1" -COPYRIGHT="1991-2000 Free Software Foundation, Inc." diff --git a/sys-devel/bin86/bin86-0.16.21.recipe b/sys-devel/bin86/bin86-0.16.21.recipe new file mode 100644 index 000000000..a3b60ec9f --- /dev/null +++ b/sys-devel/bin86/bin86-0.16.21.recipe @@ -0,0 +1,56 @@ +SUMMARY="A simple assember and linker for 8086 - 80386 machine code." +DESCRIPTION=" +as86 is an assembler for the 8086..80386 processors, it's syntax is closer \ +to the intel/microsoft form rather than the more normal generic form of \ +the unix system assembler. +The linker understands only the object files produced by the as86 assembler, \ +it can link them into either an impure or a separate I&D executable. +" +HOMEPAGE="http://v3.sk/~lkundrak/dev86/" +COPYRIGHT=" + 1994 Bruce Evans + 1999 Robert de Bath +" +LICENSE="GNU GPL v2" +SRC_URI="http://v3.sk/~lkundrak/dev86/$portVersionedName.tar.gz" +CHECKSUM_SHA256="021e37cde3a20632c4c9000993cb4aa9f58cb82b1d3c26b9aeb62d6566925738" +REVISION="1" + +ARCHITECTURES="x86 x86_64 x86_gcc2" +SECONDARY_ARCHITECTURES="x86" + +PATCHES="${portVersionedName}.patchset" + +PROVIDES=" + bin86$secondaryArchSuffix = $portVersion compat >= 0 + cmd:as86 + cmd:ld86 + cmd:nm86 + cmd:objdump86 + cmd:size86 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +BUILD() +{ + make $jobArgs +} + +INSTALL() +{ + mkdir -p $binDir $manDir + make BINDIR=$binDir MANDIR=$manDir install +} diff --git a/sys-devel/bin86/patches/bin86-0.16.21.patchset b/sys-devel/bin86/patches/bin86-0.16.21.patchset new file mode 100644 index 000000000..e8f34eab7 --- /dev/null +++ b/sys-devel/bin86/patches/bin86-0.16.21.patchset @@ -0,0 +1,24 @@ +From 5dba21d7b8b1850e0a590d2a4f58b56ee983deb1 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Wed, 21 May 2014 18:01:48 +0000 +Subject: apply amd64 patch from Gentoo. + + +diff --git a/ld/x86_aout.h b/ld/x86_aout.h +index 542a70d..a38488d 100644 +--- a/ld/x86_aout.h ++++ b/ld/x86_aout.h +@@ -19,7 +19,9 @@ typedef long Long; + typedef int32_t Long; + #define __OUT_OK 1 + #else +-typedef char Long[4]; ++#define __OUT_OK 1 ++#include ++typedef int32_t Long; + #endif + #endif + +-- +1.8.3.4 + diff --git a/sys-devel/binutils/binutils-2.17_2013_04_21.recipe b/sys-devel/binutils/binutils-2.17_2013_04_21.recipe index b2db590e1..9869f3fd2 100644 --- a/sys-devel/binutils/binutils-2.17_2013_04_21.recipe +++ b/sys-devel/binutils/binutils-2.17_2013_04_21.recipe @@ -1,6 +1,6 @@ SUMMARY="The GNU assembler, linker and binary utilities" HOMEPAGE="http://www.gnu.org/software/binutils" -SRC_URI="git+git://github.com/haiku/BuildtoolsPM.git#ab0f66e" +SRC_URI="git+git://github.com/haiku/buildtools.git#ab0f66e" REVISION="2" LICENSE=" GNU GPL v2 @@ -50,7 +50,7 @@ BUILD_PREREQUIRES=" cmd:tar " -SOURCE_DIR="$portVersionedName/legacy/binutils" +SOURCE_DIR="binutils-$portVersion/legacy/binutils" BUILD_PACKAGE_ACTIVATION_PHASE=INSTALL binutilsDir=$(pwd) @@ -140,36 +140,31 @@ INSTALL() } DESCRIPTION=" - The GNU Binutils are a collection of binary tools. The main ones are: - - ld - the GNU linker. - as - the GNU assembler. - - But they also include: - - addr2line - Converts addresses into filenames and line numbers. - ar - A utility for creating, modifying and extracting from archives. - c++filt - Filter to demangle encoded C++ symbols. - dlltool - Creates files for building and using DLLs. - gold - A new, faster, ELF only linker, still in beta test. - gprof - Displays profiling information. - nlmconv - Converts object code into an NLM. - nm - Lists symbols from object files. - objcopy - Copys and translates object files. - objdump - Displays information from object files. - ranlib - Generates an index to the contents of an archive. - readelf - Displays information from any ELF format object file. - size - Lists the section sizes of an object or archive file. - strings - Lists printable strings from files. - strip - Discards symbols. - windmc - A Windows compatible message compiler. - windres - A compiler for Windows resource files. - - Most of these programs use BFD, the Binary File Descriptor library, to do low-level - manipulation. Many of them also use the opcodes library to assemble and disassemble machine - instructions. - - The binutils have been ported to most major Unix variants as well as Wintel systems, and their - main reason for existence is to give the GNU system (and GNU/Linux) the facility to compile - and link programs. - " +The GNU Binutils are a collection of binary tools. The main ones are: +- ld - the GNU linker. +- as - the GNU assembler. +But they also include: +- addr2line - Converts addresses into filenames and line numbers. +- ar - A utility for creating, modifying and extracting from archives. +- c++filt - Filter to demangle encoded C++ symbols. +- dlltool - Creates files for building and using DLLs. +- gold - A new, faster, ELF only linker, still in beta test. +- gprof - Displays profiling information. +- nlmconv - Converts object code into an NLM. +- nm - Lists symbols from object files. +- objcopy - Copys and translates object files. +- objdump - Displays information from object files. +- ranlib - Generates an index to the contents of an archive. +- readelf - Displays information from any ELF format object file. +- size - Lists the section sizes of an object or archive file. +- strings - Lists printable strings from files. +- strip - Discards symbols. +- windmc - A Windows compatible message compiler. +- windres - A compiler for Windows resource files. +Most of these programs use BFD, the Binary File Descriptor library, to do \ +low-level manipulation. Many of them also use the opcodes library to assemble \ +and disassemble machine instructions. +The binutils have been ported to most major Unix variants as well as Wintel \ +systems, and their main reason for existence is to give the GNU system (and \ +GNU/Linux) the facility to compile and link programs. +" diff --git a/sys-devel/binutils/binutils-2.23.2_2013_04_09.recipe b/sys-devel/binutils/binutils-2.23.2_2013_04_09.recipe index 3db357b10..4ff223f07 100644 --- a/sys-devel/binutils/binutils-2.23.2_2013_04_09.recipe +++ b/sys-devel/binutils/binutils-2.23.2_2013_04_09.recipe @@ -2,7 +2,7 @@ SUMMARY="Assembler, linker and binary tools for target ${targetMachineTriple}" HOMEPAGE="http://www.gnu.org/software/binutils" SRC_URI=" - git+git://github.com/haiku/BuildtoolsPM.git#db2a6d28f6c6a92cfb1c619b0828dfbf6b87ca30" + git+git://github.com/haiku/buildtools.git#db2a6d28f6c6a92cfb1c619b0828dfbf6b87ca30" REVISION="2" LICENSE=" GNU GPL v2 @@ -48,6 +48,8 @@ BUILD_REQUIRES=" BUILD_PREREQUIRES=" haiku${secondaryArchSuffix}_devel >= $haikuVersion cmd:autoconf + cmd:awk + cmd:find cmd:flex cmd:gcc$secondaryArchSuffix cmd:ld$secondaryArchSuffix @@ -56,6 +58,7 @@ BUILD_PREREQUIRES=" cmd:sed cmd:strip cmd:tar + cmd:xargs " SOURCE_DIR="binutils-$portVersion/binutils" @@ -149,24 +152,21 @@ INSTALL() } DESCRIPTION=" - The GNU Binutils are a collection of binary tools. The main ones are: - - ld - the GNU linker. - as - the GNU assembler. - - But they also include: - - addr2line - Converts addresses into filenames and line numbers. - ar - A utility for creating, modifying and extracting from archives. - c++filt - Filter to demangle encoded C++ symbols. - nm - Lists symbols from object files. - objcopy - Copys and translates object files. - objdump - Displays information from object files. - ranlib - Generates an index to the contents of an archive. - readelf - Displays information from any ELF format object file. - size - Lists the section sizes of an object or archive file. - strings - Lists printable strings from files. - strip - Discards symbols. - - The tools of this package can be used for cross-builds to $effectiveTargetMachineTriple. - " +The GNU Binutils are a collection of binary tools. The main ones are: +- ld - the GNU linker. +- as - the GNU assembler. +But they also include: +- addr2line - Converts addresses into filenames and line numbers. +- ar - A utility for creating, modifying and extracting from archives. +- c++filt - Filter to demangle encoded C++ symbols. +- nm - Lists symbols from object files. +- objcopy - Copys and translates object files. +- objdump - Displays information from object files. +- ranlib - Generates an index to the contents of an archive. +- readelf - Displays information from any ELF format object file. +- size - Lists the section sizes of an object or archive file. +- strings - Lists printable strings from files. +- strip - Discards symbols. +The tools of this package can be used for cross-builds to \ +$effectiveTargetMachineTriple. +" diff --git a/sys-devel/binutils/binutils-2.24_2014_03_19.recipe b/sys-devel/binutils/binutils-2.24_2014_03_19.recipe new file mode 100644 index 000000000..f891e921f --- /dev/null +++ b/sys-devel/binutils/binutils-2.24_2014_03_19.recipe @@ -0,0 +1,178 @@ +SUMMARY="Assembler, linker and binary tools for target ${targetMachineTriple}" +HOMEPAGE="http://www.gnu.org/software/binutils" + +srcGitRev="c20a732df8f8b6d0f32c872817f3a0498a5c4761" +SRC_URI="https://github.com/haiku/buildtools/archive/$srcGitRev.tar.gz" +CHECKSUM_SHA256="6d3b677cd8ef777bf6fb3186a15b5122e46345595a996370325c758b3d8a4ab6" +SRC_FILENAME="binutils-$portVersion.tar.gz" +REVISION="6" +LICENSE=" + GNU GPL v2 + GNU LGPL v2 + " +COPYRIGHT="1988-2013 Free Software Foundation, Inc." + + +ARCHITECTURES="x86 x86_64 arm" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + binutils$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:addr2line$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:ar$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:as$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:c++filt$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:elfedit$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:gprof$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:ld$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:ld.bfd$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:nm$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:objcopy$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:objdump$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:ranlib$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:readelf$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:size$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:strings$secondaryArchSuffix = $portVersion compat >= 2.23 + cmd:strip$secondaryArchSuffix = $portVersion compat >= 2.23 + lib:libbfd_2.24$secondaryArchSuffix = $portVersion compat >= 2.23 + lib:libopcodes_2.24$secondaryArchSuffix = $portVersion compat >= 2.23 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libfl$secondaryArchSuffix + " +BUILD_REQUIRES=" + cmd:find + cmd:xargs + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:autoconf + cmd:awk + cmd:find + cmd:flex + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:makeinfo + cmd:sed + cmd:strip + cmd:tar + cmd:xargs + " + +SOURCE_DIR="buildtools-$srcGitRev/binutils" +BUILD_PACKAGE_ACTIVATION_PHASE=INSTALL + +sourceDir=$(pwd) +relativeInstallDir="develop/tools$secondaryArchSubDir" +installDir="$prefix/$relativeInstallDir" +objectsDir=$(pwd)/../${portVersionedName}-obj + +BUILD() +{ + rm -rf $objectsDir + + # Touch all *.info files, as newer texinfos don't like their format + (cd $sourceDir; find . -name \*.info | xargs touch) + + mkdir -p $objectsDir + cd $objectsDir + + CFLAGS=-O2 CXXFLAGS=-O2 runConfigure "$sourceDir/configure" \ + --exec-prefix=$installDir \ + --includedir=$includeDir/binutils \ + --docdir=$docDir \ + --disable-nls --enable-shared=yes \ + --with-sysroot=/ + # Note: The sysroot option is normally superfluous. We have to specify + # it, however, since these binutils may be used by the bootstrap-gcc, + # which passes --sysroot= to ld. + + make $jobArgs LEXLIB= +} + +INSTALL() +{ + cd $objectsDir + + make install + make install-html + + # Remove the development libraries and headers. Nobody uses those anyway. + rm $libDir/*.a $libDir/*.la $libDir/libbfd.so $libDir/libopcodes.so + rm -r $developDir/headers + + ### HTML documentation #################################### + + echo "Organizing HTML documentation..." + cd $docDir + + # beautify HTML docs and remove stuff we don't need + mv as.html as + ln -sf as/index.html as.html + mv bfd.html bfd + ln -sf bfd/index.html bfd.html + mv binutils.html binutils + ln -sf binutils/index.html binutils.html + mv gprof.html gprof + ln -sf gprof/index.html gprof.html + mv ld.html ld + ln -sf ld/index.html ld.html + rm libiberty.html standards.html + + # no info documentation + rm -r $infoDir + + ### Strip ################################################# + + echo "Strip debug info" + + strip --strip-debug $binDir/* + + ### Symlinks ############################################## + + echo "Creating required symlinks" + + # There are copies of a subset of the commands below installDir. We + # overwrite those with symlinks to the ones in binDir. + for file in $installDir/$effectiveTargetMachineTriple/bin/*; do + symlinkRelative -sfn $binDir/$(basename $file) $file + done + + ### Cleanup ################################################# + + echo "Cleanup" + + # delete man pages for commands that we aren't including + cd $manDir + for cmd in dlltool nlmconv windmc windres; do + rm -f man1/$cmd.1 + done +} + +DESCRIPTION=" +The GNU Binutils are a collection of binary tools. The main ones are: +- ld - the GNU linker. +- as - the GNU assembler. +But they also include: +- addr2line - Converts addresses into filenames and line numbers. +- ar - A utility for creating, modifying and extracting from archives. +- c++filt - Filter to demangle encoded C++ symbols. +- nm - Lists symbols from object files. +- objcopy - Copys and translates object files. +- objdump - Displays information from object files. +- ranlib - Generates an index to the contents of an archive. +- readelf - Displays information from any ELF format object file. +- size - Lists the section sizes of an object or archive file. +- strings - Lists printable strings from files. +- strip - Discards symbols. +The tools of this package can be used for cross-builds to \ +$effectiveTargetMachineTriple. +" diff --git a/sys-devel/bison/bison-2.4.3.recipe b/sys-devel/bison/bison-2.4.3.recipe index 1263bfbda..cade05d19 100644 --- a/sys-devel/bison/bison-2.4.3.recipe +++ b/sys-devel/bison/bison-2.4.3.recipe @@ -1,21 +1,20 @@ SUMMARY="A yacc-compatible parser generator" DESCRIPTION=" - Bison is a general-purpose parser generator that converts an annotated - context-free grammar into an LALR(1) or GLR parser for that grammar. Once - you are proficient with Bison, you can use it to develop a wide range of - language parsers, from those used in simple desk calculators to complex - programming languages. - - Bison is upward compatible with Yacc: all properly-written Yacc grammars - ought to work with Bison with no change. Anyone familiar with Yacc should - be able to use Bison with little trouble. You need to be fluent in C or - C++ programming in order to use Bison. - " +Bison is a general-purpose parser generator that converts an annotated \ +context-free grammar into an LALR(1) or GLR parser for that grammar. Once you \ +are proficient with Bison, you can use it to develop a wide range of language \ +parsers, from those used in simple desk calculators to complex programming \ +languages. +Bison is upward compatible with Yacc: all properly-written Yacc grammars ought \ +to work with Bison with no change. Anyone familiar with Yacc should be able to \ +use Bison with little trouble. You need to be fluent in C or C++ programming \ +in order to use Bison. +" HOMEPAGE="http://www.gnu.org/software/bison/bison.html" COPYRIGHT="1992-2010 Free Software Foundation, Inc." LICENSE="GNU GPL v3" SRC_URI="http://ftp.gnu.org/gnu/bison/bison-2.4.3.tar.gz" -CHECKSUM_MD5="ea45c778b36bdc7a720096819e292a73" +CHECKSUM_SHA256="6b17be5e63ff6667c83f6ef0423befe0ba23d4bc554c4c33b02ce5bb65179b16" REVISION="6" ARCHITECTURES="x86_gcc2 x86 x86_64" @@ -42,7 +41,6 @@ BUILD_PREREQUIRES=" cmd:sed " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/sys-devel/bison/bison-2.5.recipe b/sys-devel/bison/bison-2.5.recipe index fd0151916..34edb12d4 100644 --- a/sys-devel/bison/bison-2.5.recipe +++ b/sys-devel/bison/bison-2.5.recipe @@ -1,33 +1,74 @@ -DESCRIPTION="bison - A yacc-compatible parser generator" +SUMMARY="A yacc-compatible parser generator" +DESCRIPTION=" +Bison is a general-purpose parser generator that converts an annotated \ +context-free grammar into an LALR(1) or GLR parser for that grammar. Once you \ +are proficient with Bison, you can use it to develop a wide range of language \ +parsers, from those used in simple desk calculators to complex programming \ +languages. +Bison is upward compatible with Yacc: all properly-written Yacc grammars ought \ +to work with Bison with no change. Anyone familiar with Yacc should be able to \ +use Bison with little trouble. You need to be fluent in C or C++ programming \ +in order to use Bison. +" HOMEPAGE="http://www.gnu.org/software/bison/bison.html" +COPYRIGHT="1992-2011 Free Software Foundation, Inc." +LICENSE="GNU GPL v3" SRC_URI="http://ftp.gnu.org/gnu/bison/bison-2.5.tar.gz" -CHECKSUM_MD5="687e1dcd29452789d34eaeea4c25abe4" +CHECKSUM_SHA256="722def46e4a19a5b7a579ef30db1965f86c37c1a20a5f0113743a2e4399f7c99" REVISION="1" -STATUS_HAIKU="stable" -MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." -DEPEND="" + +ARCHITECTURES="?x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PATCHES="bison-${portVersion}.patch" + +PROVIDES=" + bison$secondaryArchSuffix = $portVersion compat >= 2.5 + cmd:bison$secondaryArchSuffix = $portVersion compat >= 2.5 + cmd:yacc$secondaryArchSuffix + devel:liby$secondaryArchSuffix = $portVersion compat >= 2.5 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + cmd:m4 + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:awk + cmd:m4 + cmd:make + cmd:sed + " + 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 + runConfigure ./configure + make $jobArgs } INSTALL() { - cd bison-2.5 make install + + prepareInstalledDevelLibs liby + + rm $libDir/charset.alias + rmdir $libDir } TEST() { - cd bison-2.5 make check } - -LICENSE="GNU GPL v3" -COPYRIGHT="1992-2011 Free Software Foundation, Inc." diff --git a/sys-devel/clang/clang-3.2.recipe b/sys-devel/clang/clang-3.2.recipe index 9ed169501..0bd0233b5 100644 --- a/sys-devel/clang/clang-3.2.recipe +++ b/sys-devel/clang/clang-3.2.recipe @@ -1,39 +1,100 @@ -DESCRIPTION="clang: an llvm front end compiler for C and C++" +SUMMARY="A llvm front end compiler for C and C++" +DESCRIPTION=" +Clang is an 'LLVM native' C/C++/Objective-C compiler, which aims to deliver \ +amazingly fast compiles (e.g. about 3x faster than GCC when compiling \ +Objective-C code in a debug configuration), extremely useful error and warning \ +messages and to provide a platform for building great source level tools. +" + HOMEPAGE="http://www.llvm.org/" -SRC_URI="http://llvm.org/releases/3.2/llvm-3.2.src.tar.gz" +LICENSE="UIUC" +COPYRIGHT="2003-2012 University of Illinois at Urbana-Champaign" + +SRC_URI="http://llvm.org/releases/${portVersion}/llvm-${portVersion}.src.tar.gz" +CHECKSUM_SHA256="125090c4d26740f1d5e9838477c931ed7d9ad70d599ba265f46f3a42cb066343" +SRC_URI_2="http://llvm.org/releases/${portVersion}/clang-${portVersion}.src.tar.gz" +CHECKSUM_SHA256_2="2aaaf03f7c0f6b16fe97ecc81247dc2bf2d4bec7620a77cc74670b7e07ff5658" REVISION="1" -STATUS_HAIKU="untested" -DEPEND="groff" -CHECKSUM_MD5="71610289bbc819e3e15fdd562809a2d7" -MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." + +ARCHITECTURES="?x86 ?x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + clang$secondaryArchSuffix = $portVersion + cmd:clang = $portVersion + cmd:clang++ = $portVersion + cmd:c_index_test = $portVersion + lib:libLTO = $portVersion + lib:libclang = $portVersion + lib:libprofile_rt = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:groff + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:make + cmd:python + cmd:sed + " + +SOURCE_DIR="llvm-${portVersion}.src" + 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 + mkdir -p tools/clang + cp -rd $sourceDir2/clang-${portVersion}.src/* tools/clang/ + #cp -r /boot/system/data/libtool/config/. autoconf/ + #cp -r /boot/system/data/libtool/config/. projects/sample/autoconf/ + + # Haiku C++ requires rtti in a lot of central system components + # such as Mesa + export REQUIRES_RTTI=1 + + # TODO: clang's build system seems to ignore doc / man / shared dirs? + runConfigure ./configure --enable-optimized + make $jobArgs } INSTALL() { - cd llvm-3.2.src - make install + mkdir -p $developDir + mkdir -p $docDir + + make install-clang + + # devel package + packageEntries devel \ + $developDir } TEST() { - cd llvm-3.2.src make check } -LICENSE="UIUC" -COPYRIGHT="2003-2012 University of Illinois at Urbana-Champaign" + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + clang${secondaryArchSuffix}_devel = $portVersion + " + +REQUIRES_devel=" + clang$secondaryArchSuffix == $portVersion base + " diff --git a/sys-devel/clang/clang-3.4.recipe b/sys-devel/clang/clang-3.4.recipe new file mode 100644 index 000000000..ddeac702e --- /dev/null +++ b/sys-devel/clang/clang-3.4.recipe @@ -0,0 +1,129 @@ +SUMMARY="A llvm front end compiler for C and C++" +DESCRIPTION=" +Clang is an 'LLVM native' C/C++/Objective-C compiler, which aims to deliver \ +amazingly fast compiles (e.g. about 3x faster than GCC when compiling \ +Objective-C code in a debug configuration), extremely useful error and warning \ +messages and to provide a platform for building great source level tools. +" + +HOMEPAGE="http://www.llvm.org/" +LICENSE="UIUC" +COPYRIGHT="2003-2012 University of Illinois at Urbana-Champaign" + +SRC_URI="http://llvm.org/releases/${portVersion}/llvm-${portVersion}.src.tar.gz" +CHECKSUM_SHA256="25a5612d692c48481b9b397e2b55f4870e447966d66c96d655241702d44a2628" + +SRC_URI_2="http://llvm.org/releases/${portVersion}/clang-${portVersion}.src.tar.gz" +CHECKSUM_SHA256_2="22a9780db3b85a7f2eb9ea1f7f6e00da0249e3d12851e8dea0f62f1783242b1b" + +REVISION="2" + +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + clang$secondaryArchSuffix = $portVersion + cmd:clang = $portVersion + cmd:clang++ = $portVersion + cmd:c_index_test = $portVersion + lib:libLTO$secondaryArchSuffix = $portVersion + lib:libclang$secondaryArchSuffix = $portVersion + devel:libLTO$secondaryArchSuffix = $portVersion + devel:libclang$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libstdc++$secondaryArchSuffix + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:groff + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:make + cmd:python + cmd:sed + " + +SOURCE_DIR="llvm-${portVersion}" + +PATCHES="llvm-${portVersion}.patchset" +PATCHES_2="clang-${portVersion}.patchset" + +BUILD() +{ + mkdir -p tools/clang + cp -rd $sourceDir2/clang-${portVersion}/* tools/clang/ + #cp -r /boot/system/data/libtool/config/. autoconf/ + #cp -r /boot/system/data/libtool/config/. projects/sample/autoconf/ + + # Haiku C++ requires rtti in a lot of central system components + # such as Mesa + export REQUIRES_RTTI=1 + + # TODO: clang's build system seems to ignore doc / man / shared dirs? + runConfigure ./configure --enable-optimized + make $jobArgs PROJ_datadir=$dataDir PROJ_docsdir=$docDir \ + PROJ_mandir=$manDir PROJ_includedir=$includeDir PROJ_libdir=$libDir +} + +INSTALL() +{ + mkdir -p $developDir + mkdir -p $docDir + mkdir -p $binDir + + make install-clang PROJ_datadir=$dataDir PROJ_docsdir=$docDir \ + PROJ_mandir=$manDir PROJ_includedir=$includeDir PROJ_libdir=$libDir + + # Remove empty dir that shouldn't be created + rmdir $prefix/include + + # Install static analysis tools + mkdir -p $developDir/tools/clang$secondaryArchSuffix + cp -Ra tools/clang/tools/scan-build $developDir/tools/clang$secondaryArchSuffix/ + cp -Ra tools/clang/tools/scan-view $developDir/tools/clang$secondaryArchSuffix/ + + ln -s $developDir/tools/clang$secondaryArchSuffix/scan-build/scan-build $binDir/scan-build + ln -s $developDir/tools/clang$secondaryArchSuffix/scan-view/scan-view $binDir/scan-view + ln -s $binDir/clang $developDir/tools/clang$secondaryArchSuffix/scan-build/clang + + prepareInstalledDevelLibs libclang libLTO + + # analysis package + packageEntries analysis \ + $binDir/scan-build \ + $binDir/scan-view \ + $developDir/tools/clang$secondaryArchSuffix +} + +TEST() +{ + make check +} + + +# ----- analysis package ------------------------------------------------------- + +SUMMARY_analysis="Static analysis tools using the clang compiler" +PROVIDES_analysis=" + clang${secondaryArchSuffix}_analysis = $portVersion + cmd:scan_build$secondaryArchSuffix = $portVersion + cmd:scan_view$secondaryArchSuffix = $portVersion + " + +REQUIRES_analysis=" + clang$secondaryArchSuffix == $portVersion base + " diff --git a/sys-devel/clang/patches/clang-3.4.patchset b/sys-devel/clang/patches/clang-3.4.patchset new file mode 100644 index 000000000..fe49b7052 --- /dev/null +++ b/sys-devel/clang/patches/clang-3.4.patchset @@ -0,0 +1,117 @@ +From dbc97e44eaeb44908e8e71edd0f6f64f79cfef3e Mon Sep 17 00:00:00 2001 +From: Alexander von Gluck IV +Date: Fri, 24 Jan 2014 02:22:17 +0000 +Subject: haiku: Fix header search paths + +* /boot/develop no longer exists +* /boot/common no longer exists +* We still need to figure something out + for secondary architecture builds. + +diff --git a/clang-3.4/lib/Frontend/InitHeaderSearch.cpp b/clang-3.4/lib/Frontend/InitHeaderSearch.cpp +index d144cbb..e96e329 100644 +--- a/clang-3.4/lib/Frontend/InitHeaderSearch.cpp ++++ b/clang-3.4/lib/Frontend/InitHeaderSearch.cpp +@@ -272,38 +272,44 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, + llvm_unreachable("Include management is handled in the driver."); + + case llvm::Triple::Haiku: +- AddPath("/boot/common/include", System, false); +- AddPath("/boot/develop/headers/os", System, false); +- AddPath("/boot/develop/headers/os/app", System, false); +- AddPath("/boot/develop/headers/os/arch", System, false); +- AddPath("/boot/develop/headers/os/device", System, false); +- AddPath("/boot/develop/headers/os/drivers", System, false); +- AddPath("/boot/develop/headers/os/game", System, false); +- AddPath("/boot/develop/headers/os/interface", System, false); +- AddPath("/boot/develop/headers/os/kernel", System, false); +- AddPath("/boot/develop/headers/os/locale", System, false); +- AddPath("/boot/develop/headers/os/mail", System, false); +- AddPath("/boot/develop/headers/os/media", System, false); +- AddPath("/boot/develop/headers/os/midi", System, false); +- AddPath("/boot/develop/headers/os/midi2", System, false); +- AddPath("/boot/develop/headers/os/net", System, false); +- AddPath("/boot/develop/headers/os/storage", System, false); +- AddPath("/boot/develop/headers/os/support", System, false); +- AddPath("/boot/develop/headers/os/translation", System, false); +- AddPath("/boot/develop/headers/os/add-ons/graphics", System, false); +- AddPath("/boot/develop/headers/os/add-ons/input_server", System, false); +- AddPath("/boot/develop/headers/os/add-ons/screen_saver", System, false); +- AddPath("/boot/develop/headers/os/add-ons/tracker", System, false); +- AddPath("/boot/develop/headers/os/be_apps/Deskbar", System, false); +- AddPath("/boot/develop/headers/os/be_apps/NetPositive", System, false); +- AddPath("/boot/develop/headers/os/be_apps/Tracker", System, false); +- AddPath("/boot/develop/headers/cpp", System, false); +- AddPath("/boot/develop/headers/cpp/i586-pc-haiku", System, false); +- AddPath("/boot/develop/headers/3rdparty", System, false); +- AddPath("/boot/develop/headers/bsd", System, false); +- AddPath("/boot/develop/headers/glibc", System, false); +- AddPath("/boot/develop/headers/posix", System, false); +- AddPath("/boot/develop/headers", System, false); ++ // TODO: We need to handle hybrid secondary architecture paths ++ // (see buildtools/tree/gcc/gcc/config/haiku.h) ++ AddPath("/boot/system/non-packaged/develop/headers", System, false); ++ AddPath("/boot/system/develop/headers/os", System, false); ++ AddPath("/boot/system/develop/headers/os/app", System, false); ++ AddPath("/boot/system/develop/headers/os/arch", System, false); ++ AddPath("/boot/system/develop/headers/os/device", System, false); ++ AddPath("/boot/system/develop/headers/os/drivers", System, false); ++ AddPath("/boot/system/develop/headers/os/game", System, false); ++ AddPath("/boot/system/develop/headers/os/interface", System, false); ++ AddPath("/boot/system/develop/headers/os/kernel", System, false); ++ AddPath("/boot/system/develop/headers/os/locale", System, false); ++ AddPath("/boot/system/develop/headers/os/mail", System, false); ++ AddPath("/boot/system/develop/headers/os/media", System, false); ++ AddPath("/boot/system/develop/headers/os/midi", System, false); ++ AddPath("/boot/system/develop/headers/os/midi2", System, false); ++ AddPath("/boot/system/develop/headers/os/net", System, false); ++ AddPath("/boot/system/develop/headers/os/opengl", System, false); ++ AddPath("/boot/system/develop/headers/os/storage", System, false); ++ AddPath("/boot/system/develop/headers/os/support", System, false); ++ AddPath("/boot/system/develop/headers/os/translation", System, false); ++ AddPath("/boot/system/develop/headers/os/add-ons/graphics", System, false); ++ AddPath("/boot/system/develop/headers/os/add-ons/input_server", System, false); ++ AddPath("/boot/system/develop/headers/os/add-ons/mail_daemon", System, false); ++ AddPath("/boot/system/develop/headers/os/add-ons/registrar", System, false); ++ AddPath("/boot/system/develop/headers/os/add-ons/screen_saver", System, false); ++ AddPath("/boot/system/develop/headers/os/add-ons/tracker", System, false); ++ AddPath("/boot/system/develop/headers/os/be_apps/Deskbar", System, false); ++ AddPath("/boot/system/develop/headers/os/be_apps/NetPositive", System, false); ++ AddPath("/boot/system/develop/headers/os/be_apps/Tracker", System, false); ++ AddPath("/boot/system/develop/headers/cpp", System, false); ++ AddPath("/boot/system/develop/headers/cpp/i586-pc-haiku", System, false); ++ AddPath("/boot/system/develop/headers/3rdparty", System, false); ++ AddPath("/boot/system/develop/headers/bsd", System, false); ++ AddPath("/boot/system/develop/headers/glibc", System, false); ++ AddPath("/boot/system/develop/headers/gnu", System, false); ++ AddPath("/boot/system/develop/headers/posix", System, false); ++ AddPath("/boot/system/develop/headers", System, false); + break; + case llvm::Triple::RTEMS: + break; +-- +1.8.3.4 + + +From 67f6c48d61c2350ec3063c373f5c8ad196c456df Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 18 May 2014 12:41:50 +0200 +Subject: libclang: add soname when building on Haiku. + + +diff --git a/clang-3.4/tools/libclang/Makefile b/clang-3.4/tools/libclang/Makefile +index 43ecbd1..837276d 100644 +--- a/clang-3.4/tools/libclang/Makefile ++++ b/clang-3.4/tools/libclang/Makefile +@@ -29,7 +29,7 @@ USEDLIBS = clangIndex.a clangFrontend.a clangDriver.a \ + include $(CLANG_LEVEL)/Makefile + + # Add soname to the library. +-ifeq ($(HOST_OS), $(filter $(HOST_OS), Linux FreeBSD GNU GNU/kFreeBSD)) ++ifeq ($(HOST_OS), $(filter $(HOST_OS), Linux FreeBSD GNU GNU/kFreeBSD Haiku)) + LLVMLibsOptions += -Wl,-soname,lib$(LIBRARYNAME)$(SHLIBEXT) + endif + +-- +1.8.3.4 + diff --git a/sys-devel/clang/patches/llvm-3.4.patchset b/sys-devel/clang/patches/llvm-3.4.patchset new file mode 100644 index 000000000..0f9980987 --- /dev/null +++ b/sys-devel/clang/patches/llvm-3.4.patchset @@ -0,0 +1,47 @@ +From 9cc674f2aa0f54b900d1e773a6ffd201c23e4c05 Mon Sep 17 00:00:00 2001 +From: Alexander von Gluck IV +Date: Wed, 22 Jan 2014 05:04:31 +0000 +Subject: haiku: fix Host.h for endian.h + + +diff --git a/include/llvm/Support/Host.h b/include/llvm/Support/Host.h +index 28c4cc7..ab985a4 100644 +--- a/include/llvm/Support/Host.h ++++ b/include/llvm/Support/Host.h +@@ -16,7 +16,7 @@ + + #include "llvm/ADT/StringMap.h" + +-#if defined(__linux__) || defined(__GNU__) ++#if defined(__linux__) || defined(__GNU__) || defined(__HAIKU__) + #include + #else + #if !defined(BYTE_ORDER) && !defined(LLVM_ON_WIN32) +-- +1.8.3.4 + + +From 577d261e8e74bc442fe75515e043f268db923ed3 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 18 May 2014 12:41:16 +0200 +Subject: libLTO: add soname when building on Haiku. + + +diff --git a/tools/lto/Makefile b/tools/lto/Makefile +index cedbee1..5ce530d 100644 +--- a/tools/lto/Makefile ++++ b/tools/lto/Makefile +@@ -22,6 +22,10 @@ ifdef LLVM_VERSION_INFO + CXX.Flags += -DLLVM_VERSION_INFO='"$(LLVM_VERSION_INFO)"' + endif + ++ifeq ($(HOST_OS),Haiku) ++ LLVMLibsOptions := $(LLVMLibsOptions) -Wl,-soname=$(SharedPrefix)LTO$(SHLIBEXT) ++endif ++ + ifeq ($(HOST_OS),Darwin) + # Special hack to allow libLTO to have an offset version number. + ifdef LLVM_LTO_VERSION_OFFSET +-- +1.8.3.4 + diff --git a/sys-devel/distcc/distcc-3.1.recipe b/sys-devel/distcc/distcc-3.1.recipe index 259270d4f..a03bdce31 100644 --- a/sys-devel/distcc/distcc-3.1.recipe +++ b/sys-devel/distcc/distcc-3.1.recipe @@ -4,7 +4,7 @@ COPYRIGHT="Copyright (C) 2002, 2003, 2004 by Martin Pool Portions Copyright 2005 Google Inc." LICENSE="GNU GPL v2" SRC_URI="http://distcc.googlecode.com/files/distcc-3.1.tar.bz2" -CHECKSUM_MD5="a1a9d3853df7133669fffec2a9aab9f3" +CHECKSUM_SHA256="f55dbafd76bed3ce57e1bbcdab1329227808890d90f4c724fcd2d53f934ddd89" REVISION="2" ARCHITECTURES="?x86_gcc2 ?x86" @@ -65,11 +65,13 @@ TEST() } DESCRIPTION=" - distcc is a program to distribute builds of C, C++, Objective C or Objective C++ code - across several machines on a network. distcc should always generate the same results - as a local build, is simple to install and use, and is usually much faster than a local compile. +distcc is a program to distribute builds of C, C++, Objective C or Objective \ +C++ code across several machines on a network. distcc should always generate \ +the same results as a local build, is simple to install and use, and is \ +usually much faster than a local compile. - distcc does not require all machines to share a filesystem, have synchronized clocks, - or to have the same libraries or header files installed. They can even have different - processors or operating systems, if cross-compilers are installed. - " +distcc does not require all machines to share a filesystem, have synchronized \ +clocks, or to have the same libraries or header files installed. They can even \ +have different processors or operating systems, if cross-compilers are \ +installed. +" diff --git a/sys-devel/flex/flex-2.5.35.recipe b/sys-devel/flex/flex-2.5.35.recipe index 3a5ac50a0..87048cbc6 100644 --- a/sys-devel/flex/flex-2.5.35.recipe +++ b/sys-devel/flex/flex-2.5.35.recipe @@ -1,13 +1,13 @@ SUMMARY="A tool for generating scanners." DESCRIPTION=" - Flex is a fast lexical analyser generator. It is a tool for generating - programs that perform pattern-matching on text. - " +Flex is a fast lexical analyser generator. It is a tool for generating \ +programs that perform pattern-matching on text. +" HOMEPAGE="http://flex.sourceforge.net/" COPYRIGHT="2001-2007 The Flex Project; 1990, 1997 The Regents of the University of California" LICENSE="Flex" SRC_URI="http://sourceforge.net/projects/flex/files/flex/flex-2.5.35/flex-2.5.35.tar.bz2/download" -CHECKSUM_MD5="10714e50cea54dc7a227e3eddcd44d57" +CHECKSUM_SHA256="0becbd4b2b36b99c67f8c22ab98f7f80c9860aec70f0350a0018f29a88704e7b" REVISION="6" ARCHITECTURES="x86_gcc2 x86 x86_64" @@ -37,7 +37,6 @@ BUILD_PREREQUIRES=" cmd:makeinfo " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/sys-devel/flex/flex-2.5.39.recipe b/sys-devel/flex/flex-2.5.39.recipe new file mode 100644 index 000000000..8c9734004 --- /dev/null +++ b/sys-devel/flex/flex-2.5.39.recipe @@ -0,0 +1,62 @@ +SUMMARY="A tool for generating scanners." +DESCRIPTION=" +Flex is a fast lexical analyser generator. It is a tool for generating \ +programs that perform pattern-matching on text. +" +HOMEPAGE="http://flex.sourceforge.net/" +COPYRIGHT="2001-2007 The Flex Project; 1990, 1997 The Regents of the University of California" +LICENSE="Flex" +SRC_URI="http://sourceforge.net/projects/flex/files/flex-$portVersion.tar.bz2" +CHECKSUM_SHA256="add2b55f3bc38cb512b48fad7d72f43b11ef244487ff25fc00aabec1e32b617f" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" + +PATCHES="flex-2.5.39.patchset" + +PROVIDES=" + flex = $portVersion compat >= 2.5 + cmd:flex = $portVersion compat >= 2.5 + cmd:flex++ = $portVersion compat >= 2.5 + lib:libfl = 2.0.0 compat >= 2 + lib:libfl_pic = 2.0.0 compat >= 2 + devel:libfl = 2.0.0 compat >= 2 + devel:libfl_pic = 2.0.0 compat >= 2 + " +REQUIRES=" + haiku >= $haikuVersion + cmd:m4 + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc + cmd:ld + cmd:libtoolize + cmd:make + cmd:makeinfo + " + + +BUILD() +{ + rm aclocal.m4 + libtoolize --force --copy --install + aclocal -I m4 + autoconf + automake --add-missing --force-missing + runConfigure ./configure \ + --disable-rpath --with-gnu-ld + make $jobArgs +} + +INSTALL() +{ + make install + + # prepare develop/lib + prepareInstalledDevelLibs libfl libfl_pic +} diff --git a/sys-devel/flex/patches/flex-2.5.39.patchset b/sys-devel/flex/patches/flex-2.5.39.patchset new file mode 100644 index 000000000..12a54933e --- /dev/null +++ b/sys-devel/flex/patches/flex-2.5.39.patchset @@ -0,0 +1,35 @@ +From 40175da3a270397dcf9f684c360f9161c637039f Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Mon, 14 Apr 2014 17:00:54 +0000 +Subject: initial haiku patch + + +diff --git a/configure.ac b/configure.ac +index 871082f..a3913b7 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -48,7 +48,7 @@ LT_INIT + AC_PROG_AWK + AC_PROG_INSTALL + +-AC_PATH_PROG(BISON, bison,bison) ++AC_CHECK_PROG(BISON, bison,bison) + AC_PATH_PROG(HELP2MAN, help2man, help2man) + + # Check for a m4 that supports -P +diff --git a/tests/test-pthread/Makefile.am b/tests/test-pthread/Makefile.am +index fe5d545..e8023e8 100644 +--- a/tests/test-pthread/Makefile.am ++++ b/tests/test-pthread/Makefile.am +@@ -27,7 +27,7 @@ CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) OUTPUT $ + OBJS = scanner.o # parser.o + + AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir) +-LIBS = -lpthread ++#LIBS = -lpthread + #LFLAGS = --header="scanner.h" + #YFLAGS = --defines --output=parser.c + +-- +1.8.3.4 + diff --git a/sys-devel/gcc/gcc-2.95.3_2013_08_12.recipe b/sys-devel/gcc/gcc-2.95.3_2013_08_12.recipe index 79349b7c1..ddb717d77 100644 --- a/sys-devel/gcc/gcc-2.95.3_2013_08_12.recipe +++ b/sys-devel/gcc/gcc-2.95.3_2013_08_12.recipe @@ -7,8 +7,8 @@ LICENSE=" " COPYRIGHT="1988-2000 Free Software Foundation, Inc." SRC_URI=" - git+file://$portBaseDir/../binutils/download/BuildtoolsPM.git#2d0a2c6404ffae1a46eb7e74daab08099b45af2c - git+git://github.com/haiku/BuildtoolsPM.git#2d0a2c6404ffae1a46eb7e74daab08099b45af2c + git+file://$portBaseDir/../binutils/download/buildtools.git#2d0a2c6404ffae1a46eb7e74daab08099b45af2c + git+git://github.com/haiku/buildtools.git#2d0a2c6404ffae1a46eb7e74daab08099b45af2c " REVISION="1" ARCHITECTURES="x86_gcc2" diff --git a/sys-devel/gcc/gcc-2.95.3_2013_08_15.recipe b/sys-devel/gcc/gcc-2.95.3_2013_08_15.recipe index 2e0d0f70b..da2417640 100644 --- a/sys-devel/gcc/gcc-2.95.3_2013_08_15.recipe +++ b/sys-devel/gcc/gcc-2.95.3_2013_08_15.recipe @@ -1,5 +1,7 @@ SUMMARY="C/C++ compiler" -DESCRIPTION="Standard compiler for x86_gcc2 platform, ABI-compatible with BeOS R5." +DESCRIPTION=" +Standard compiler for x86_gcc2 platform, ABI-compatible with BeOS R5. +" HOMEPAGE="http://gcc.gnu.org" LICENSE=" GNU GPL v2 @@ -7,10 +9,10 @@ LICENSE=" " COPYRIGHT="1988-2000 Free Software Foundation, Inc." SRC_URI=" - git+file://$portBaseDir/../binutils/download/BuildtoolsPM.git#6ff546f23b0259bcd27550aa6ad8aaef89fd1bf6 - git+git://github.com/haiku/BuildtoolsPM.git#6ff546f23b0259bcd27550aa6ad8aaef89fd1bf6 + git+file://$portBaseDir/../binutils/download/buildtools.git#9bfca2f40f0857932e8bc66b6d1fdae94acf8d9c + git+git://github.com/haiku/buildtools.git#9bfca2f40f0857932e8bc66b6d1fdae94acf8d9c " -REVISION="2" +REVISION="4" ARCHITECTURES="x86_gcc2" if [ $effectiveTargetArchitecture = x86_gcc2 -a $targetArchitecture = x86 ] then diff --git a/sys-devel/gcc/gcc-4.7.3_2013_08_12.recipe b/sys-devel/gcc/gcc-4.7.3_2013_08_12.recipe index 32ce0a89b..a143a821c 100644 --- a/sys-devel/gcc/gcc-4.7.3_2013_08_12.recipe +++ b/sys-devel/gcc/gcc-4.7.3_2013_08_12.recipe @@ -1,5 +1,7 @@ SUMMARY="C/C++ cross-compiler for target ${effectiveTargetMachineTriple}" -DESCRIPTION="Standard compiler for x86 platform." +DESCRIPTION=" +Standard compiler for x86 platform. +" HOMEPAGE="http://gcc.gnu.org" LICENSE=" GNU GPL v2 @@ -7,10 +9,10 @@ LICENSE=" " COPYRIGHT="1988-2013 Free Software Foundation, Inc." SRC_URI=" - git+file://$portBaseDir/../binutils/download/BuildtoolsPM.git#2d0a2c6404ffae1a46eb7e74daab08099b45af2c - git+git://github.com/haiku/BuildtoolsPM.git#2d0a2c6404ffae1a46eb7e74daab08099b45af2c + git+file://$portBaseDir/../binutils/download/buildtools.git#fd576c8d8a83e3fe9a6443f9c0431bd11125314e + git+git://github.com/haiku/buildtools.git#fd576c8d8a83e3fe9a6443f9c0431bd11125314e " -REVISION="2" +REVISION="5" ARCHITECTURES="x86 x86_64" if [ $effectiveTargetArchitecture != x86_gcc2 ]; then # x86_gcc2 is fine as primary target architecture as long as we're building @@ -32,6 +34,7 @@ PROVIDES=" REQUIRES=" haiku$secondaryArchSuffix >= $haikuVersion + cmd:as$secondaryArchSuffix " BUILD_REQUIRES=" " @@ -83,7 +86,7 @@ BUILD() --build=$effectiveTargetMachineTriple \ --prefix=$installDir --libexecdir=$installDir/lib --mandir=$manDir \ --docdir=$docDir \ - --disable-nls --enable-shared \ + --disable-nls --enable-shared --with-gnu-ld \ --enable-languages=c,c++ --enable-lto --enable-frame-pointer \ --with-pkgversion=$(echo $portVersion | cut -c 7-) \ $additionalConfigureFlags @@ -118,6 +121,21 @@ INSTALL() done strip --strip-debug lib/*.a + ### Disable ASLR ########################################## + + echo "Add SYS:ENV attribute to disable ASLR" + + cd $installDir + for f in bin/*; do + if [ -r "$f" ]; then + addattr SYS:ENV DISABLE_ASLR=1 $f + fi + done + for f in cc1 cc1plus collect2 lto1; do + addattr SYS:ENV DISABLE_ASLR=1 \ + lib/gcc/$effectiveTargetMachineTriple/*/$f + done + ### Symlinks ############################################## echo "Creating required symlinks" diff --git a/sys-devel/gcc/gcc-4.8.2_2014_03_20.recipe b/sys-devel/gcc/gcc-4.8.2_2014_03_20.recipe new file mode 100644 index 000000000..4b598dc46 --- /dev/null +++ b/sys-devel/gcc/gcc-4.8.2_2014_03_20.recipe @@ -0,0 +1,164 @@ +SUMMARY="C/C++ cross-compiler for target ${effectiveTargetMachineTriple}" +DESCRIPTION=" +Standard compiler for x86 platform. +" +HOMEPAGE="http://gcc.gnu.org" + +srcGitRev="c20a732df8f8b6d0f32c872817f3a0498a5c4761" +SRC_URI="https://github.com/haiku/buildtools/archive/$srcGitRev.tar.gz" +CHECKSUM_SHA256="6d3b677cd8ef777bf6fb3186a15b5122e46345595a996370325c758b3d8a4ab6" +SRC_FILENAME="$portVersionedName.tar.gz" +REVISION="1" +LICENSE=" + GNU GPL v2 + GNU LGPL v2 + " +COPYRIGHT="1988-2013 Free Software Foundation, Inc." + + +ARCHITECTURES="x86 x86_64 arm" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + gcc$secondaryArchSuffix = $portVersion compat >= 4 + cmd:c++$secondaryArchSuffix = $portVersion compat >= 4 + cmd:cc$secondaryArchSuffix = $portVersion compat >= 4 + cmd:cpp$secondaryArchSuffix = $portVersion compat >= 4 + cmd:g++$secondaryArchSuffix = $portVersion compat >= 4 + cmd:gcc$secondaryArchSuffix = $portVersion compat >= 4 + cmd:gcc_4.8.2$secondaryArchSuffix = $portVersion compat >= 4 + cmd:gcov$secondaryArchSuffix = $portVersion compat >= 4 + lib:libstdc++$secondaryArchSuffix = $portVersion compat >= 4 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + cmd:as$secondaryArchSuffix + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:autoconf + cmd:awk + cmd:find + cmd:flex + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:makeinfo + cmd:sed + cmd:strip + cmd:tar + cmd:xargs + " + +SOURCE_DIR="buildtools-$srcGitRev/gcc" + +sourceDir=$(pwd) +relativeInstallDir="develop/tools$secondaryArchSubDir" +installDir="$prefix/$relativeInstallDir" +objectsDir=$(pwd)/../${portVersionedName}-obj + +BUILD() +{ + rm -rf $objectsDir + + # Touch some files generated by bison, so that bison won't run to update + # them. Fixes issues with newer bison versions. + # And while at it, touch gperf target, too (as gperf may not be installed). + (cd $sourceDir/gcc; touch c-parse.c c-parse.h cexp.c cp/parse.c \ + cp/parse.h c-gperf.h) + + mkdir -p $objectsDir + cd $objectsDir + + local additionalConfigureFlags + if [ -n "$secondaryArchSuffix" ]; then + additionalConfigureFlags="\ + --with-hybrid-secondary=${effectiveTargetArchitecture}" + fi + if [ $effectiveTargetArchitecture == x86_64 ]; then + # disable multilib support, as x86_64 by default tries to build the + # 32-bit libraries, too, which fails as no 32-bit libroot is available + additionalConfigureFlags+=" --disable-multilib" + fi + + CFLAGS="-O2 -U_FORTIFY_SOURCE" CXXFLAGS="-O2" "$sourceDir/configure" \ + --build=$effectiveTargetMachineTriple \ + --prefix=$installDir --libexecdir=$installDir/lib --mandir=$manDir \ + --docdir=$docDir --enable-threads=posix \ + --disable-nls --enable-shared --with-gnu-ld \ + --enable-languages=c,c++ --enable-lto --enable-frame-pointer \ + --with-pkgversion=$(echo $portVersion | cut -c 7-) \ + $additionalConfigureFlags + + make $jobArgs +} + +INSTALL() +{ + cd $objectsDir + + make install-strip + make install-html + + ### HTML documentation #################################### + + echo "Organizing HTML documentation..." + cd $docDir + for dir in gmp libquadmath mpc mpfr; do + mv ${dir}.html $dir + ln -s $dir/index.html ${dir}.html + done + + ### Strip ################################################# + + echo "Strip debug info" + + cd $installDir + strip --strip-debug bin/* + for f in cc1 cc1plus collect2 lto1; do + strip --strip-debug lib/gcc/$effectiveTargetMachineTriple/*/$f + done + strip --strip-debug lib/*.a + + ### Disable ASLR ########################################## + + echo "Add SYS:ENV attribute to disable ASLR" + + cd $installDir + for f in bin/*; do + if [ -r "$f" ]; then + addattr SYS:ENV DISABLE_ASLR=1 $f + fi + done + for f in cc1 cc1plus collect2 lto1; do + addattr SYS:ENV DISABLE_ASLR=1 \ + lib/gcc/$effectiveTargetMachineTriple/*/$f + done + + ### Symlinks ############################################## + + echo "Creating required symlinks" + + # create missing cc symlink + ln -sf gcc $installDir/bin/cc + + # make all tools available via default paths + mkdir -p $binDir + for f in c++ cc cpp g++ gcc gcov; do + symlinkRelative -sfn $installDir/bin/$f $binDir + done + + ### Cleanup ############################################### + + echo "Cleanup" + rm -rf $installDir/info + rm -rf $installDir/share +} diff --git a/sys-devel/gcc/gcc-4.8.3_2014_05_28.recipe b/sys-devel/gcc/gcc-4.8.3_2014_05_28.recipe new file mode 100644 index 000000000..988a28ed2 --- /dev/null +++ b/sys-devel/gcc/gcc-4.8.3_2014_05_28.recipe @@ -0,0 +1,164 @@ +SUMMARY="C/C++ cross-compiler for target ${effectiveTargetMachineTriple}" +DESCRIPTION=" +Standard compiler for x86 platform. +" +HOMEPAGE="http://gcc.gnu.org" + +srcGitRev="3ad9ac2317f63b65937473c4fbe37c9e93e3a116" +SRC_URI="https://github.com/haiku/buildtools/archive/$srcGitRev.tar.gz" +CHECKSUM_SHA256="85499c650421b68f9830d3fb2ddfafb8789a3e1ffce75e8dd27aaed678135df0" +SRC_FILENAME="$portVersionedName.tar.gz" +REVISION="1" +LICENSE=" + GNU GPL v2 + GNU LGPL v2 + " +COPYRIGHT="1988-2013 Free Software Foundation, Inc." + + +ARCHITECTURES="x86 x86_64 arm" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + gcc$secondaryArchSuffix = $portVersion compat >= 4 + cmd:c++$secondaryArchSuffix = $portVersion compat >= 4 + cmd:cc$secondaryArchSuffix = $portVersion compat >= 4 + cmd:cpp$secondaryArchSuffix = $portVersion compat >= 4 + cmd:g++$secondaryArchSuffix = $portVersion compat >= 4 + cmd:gcc$secondaryArchSuffix = $portVersion compat >= 4 + cmd:gcc_4.8.3$secondaryArchSuffix = $portVersion compat >= 4 + cmd:gcov$secondaryArchSuffix = $portVersion compat >= 4 + lib:libstdc++$secondaryArchSuffix = $portVersion compat >= 4 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + cmd:as$secondaryArchSuffix + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:autoconf + cmd:awk + cmd:find + cmd:flex + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:makeinfo + cmd:sed + cmd:strip + cmd:tar + cmd:xargs + " + +SOURCE_DIR="buildtools-$srcGitRev/gcc" + +sourceDir=$(pwd) +relativeInstallDir="develop/tools$secondaryArchSubDir" +installDir="$prefix/$relativeInstallDir" +objectsDir=$(pwd)/../${portVersionedName}-obj + +BUILD() +{ + rm -rf $objectsDir + + # Touch some files generated by bison, so that bison won't run to update + # them. Fixes issues with newer bison versions. + # And while at it, touch gperf target, too (as gperf may not be installed). + (cd $sourceDir/gcc; touch c-parse.c c-parse.h cexp.c cp/parse.c \ + cp/parse.h c-gperf.h) + + mkdir -p $objectsDir + cd $objectsDir + + local additionalConfigureFlags + if [ -n "$secondaryArchSuffix" ]; then + additionalConfigureFlags="\ + --with-hybrid-secondary=${effectiveTargetArchitecture}" + fi + if [ $effectiveTargetArchitecture == x86_64 ]; then + # disable multilib support, as x86_64 by default tries to build the + # 32-bit libraries, too, which fails as no 32-bit libroot is available + additionalConfigureFlags+=" --disable-multilib" + fi + + CFLAGS="-O2 -U_FORTIFY_SOURCE" CXXFLAGS="-O2" "$sourceDir/configure" \ + --build=$effectiveTargetMachineTriple \ + --prefix=$installDir --libexecdir=$installDir/lib --mandir=$manDir \ + --docdir=$docDir --enable-threads=posix \ + --disable-nls --enable-shared --with-gnu-ld \ + --enable-languages=c,c++ --enable-lto --enable-frame-pointer \ + --with-pkgversion=$(echo $portVersion | cut -c 7-) \ + $additionalConfigureFlags + + make $jobArgs +} + +INSTALL() +{ + cd $objectsDir + + make install-strip + make install-html + + ### HTML documentation #################################### + + echo "Organizing HTML documentation..." + cd $docDir + for dir in gmp libquadmath mpc mpfr; do + mv ${dir}.html $dir + ln -s $dir/index.html ${dir}.html + done + + ### Strip ################################################# + + echo "Strip debug info" + + cd $installDir + strip --strip-debug bin/* + for f in cc1 cc1plus collect2 lto1; do + strip --strip-debug lib/gcc/$effectiveTargetMachineTriple/*/$f + done + strip --strip-debug lib/*.a + + ### Disable ASLR ########################################## + + echo "Add SYS:ENV attribute to disable ASLR" + + cd $installDir + for f in bin/*; do + if [ -r "$f" ]; then + addattr SYS:ENV DISABLE_ASLR=1 $f + fi + done + for f in cc1 cc1plus collect2 lto1; do + addattr SYS:ENV DISABLE_ASLR=1 \ + lib/gcc/$effectiveTargetMachineTriple/*/$f + done + + ### Symlinks ############################################## + + echo "Creating required symlinks" + + # create missing cc symlink + ln -sf gcc $installDir/bin/cc + + # make all tools available via default paths + mkdir -p $binDir + for f in c++ cc cpp g++ gcc gcov; do + symlinkRelative -sfn $installDir/bin/$f $binDir + done + + ### Cleanup ############################################### + + echo "Cleanup" + rm -rf $installDir/info + rm -rf $installDir/share +} diff --git a/sys-devel/gettext/gettext-0.18.1.1.recipe b/sys-devel/gettext/gettext-0.18.1.1.recipe index 5b1090fe9..f1cddcf98 100644 --- a/sys-devel/gettext/gettext-0.18.1.1.recipe +++ b/sys-devel/gettext/gettext-0.18.1.1.recipe @@ -1,12 +1,25 @@ SUMMARY="GNU tools for native language support" -DESCRIPTION="GNU 'gettext' is an important step for the GNU Translation Project, as it is an asset on which we may build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools and documentation. Specifically, the GNU 'gettext' utilities are a set of tools that provides a framework to help other GNU packages produce multi-lingual messages. These tools include a set of conventions about how programs should be written to support message catalogs, a directory and file naming organization for the message catalogs themselves, a runtime library supporting the retrieval of translated messages, and a few stand-alone programs to massage in various ways the sets of translatable strings, or already translated strings. A special GNU Emacs mode also helps interested parties in preparing these sets, or bringing them up to date." +DESCRIPTION=" +GNU 'gettext' is an important step for the GNU Translation Project, as it is \ +an asset on which we may build many other steps. This package offers to \ +programmers, translators, and even users, a well integrated set of tools and \ +documentation. Specifically, the GNU 'gettext' utilities are a set of tools \ +that provides a framework to help other GNU packages produce multi-lingual \ +messages. These tools include a set of conventions about how programs should \ +be written to support message catalogs, a directory and file naming \ +organization for the message catalogs themselves, a runtime library supporting \ +the retrieval of translated messages, and a few stand-alone programs to \ +massage in various ways the sets of translatable strings, or already \ +translated strings. A special GNU Emacs mode also helps interested parties in \ +preparing these sets, or bringing them up to date. +" HOMEPAGE="http://www.gnu.org/software/gettext/" LICENSE="GNU GPL v3" COPYRIGHT="1998, 2010 Free Software Foundation, Inc." SRC_URI="http://ftp.gnu.org/pub/gnu/gettext/gettext-0.18.1.1.tar.gz" -CHECKSUM_MD5="3dd55b952826d2b32f51308f2f91aa89" +CHECKSUM_SHA256="93ac71a7afa5b70c1b1032516663658c51e653087f42a3fc8044752c026443e9" REVISION="5" -ARCHITECTURES="x86_gcc2 x86 x86_64" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" SECONDARY_ARCHITECTURES="x86_gcc2 x86" PATCHES="gettext-0.18.1.1.patch" @@ -22,8 +35,31 @@ PROVIDES=" devel:libintl$secondaryArchSuffix = 8.1.1 compat >= 8 lib:libasprintf$secondaryArchSuffix = 0.0.0 compat >= 0 lib:libgettextlib_0.18.1$secondaryArchSuffix = $portVersion - lib:libgettextpo = 0.5.1$secondaryArchSuffix compat >= 0 + lib:libgettextpo$secondaryArchSuffix = 0.5.1 compat >= 0 lib:libgettextsrc_0.18.1$secondaryArchSuffix = $portVersion + cmd:autopoint$secondaryArchSuffix + cmd:envsubst$secondaryArchSuffix + cmd:gettext$secondaryArchSuffix + cmd:gettext.sh$secondaryArchSuffix + cmd:gettextize$secondaryArchSuffix + cmd:msgattrib$secondaryArchSuffix + cmd:msgcat$secondaryArchSuffix + cmd:msgcmp$secondaryArchSuffix + cmd:msgcomm$secondaryArchSuffix + cmd:msgconv$secondaryArchSuffix + cmd:msgen$secondaryArchSuffix + cmd:msgexec$secondaryArchSuffix + cmd:msgfilter$secondaryArchSuffix + cmd:msgfmt$secondaryArchSuffix + cmd:msggrep$secondaryArchSuffix + cmd:msginit$secondaryArchSuffix + cmd:msgmerge$secondaryArchSuffix + cmd:msgunfmt$secondaryArchSuffix + cmd:msguniq$secondaryArchSuffix + cmd:ngettext$secondaryArchSuffix + cmd:recode_sr_latin$secondaryArchSuffix + cmd:xgettext$secondaryArchSuffix + " if [ -z "$secondaryArchSuffix" ]; then PROVIDES="$PROVIDES 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 0250765dc..6752ab563 100644 --- a/sys-devel/gettext/patches/gettext-0.18.1.1.patch +++ b/sys-devel/gettext/patches/gettext-0.18.1.1.patch @@ -5,7 +5,7 @@ # define O_TEXT _O_TEXT #endif -#if defined __BEOS__ || defined __HAIKU__ -+#if defined __BEOS__ ++#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/jam/jam-2.5_2012_10_12.recipe b/sys-devel/jam/jam-2.5_2012_10_12.recipe index 7479d30b2..0370db9fa 100644 --- a/sys-devel/jam/jam-2.5_2012_10_12.recipe +++ b/sys-devel/jam/jam-2.5_2012_10_12.recipe @@ -1,26 +1,22 @@ SUMMARY="Build tool, replacement for make" DESCRIPTION=" - Jam is a small open-source build tool that can be used as a replacement - for Make. Even though Jam is a lot simpler to use than Make, it is far - more powerful and easy to master. Its design is sufficiently clear to - allow any average programmer to extend it with advanced features at will. - - The main differences between Jam and Make are as follows: - - - Jam uses ‘Jamfiles’ instead of ‘Makefiles’. - - - Jamfiles do not normally contain toolset-specific rules or actions. - They are thus portable among distinct compilers. - - - Jamfiles are a lot simpler than Makefiles to write and understand, - while providing the same functionality, and much, much more. - " +Jam is a small open-source build tool that can be used as a replacement for \ +Make. Even though Jam is a lot simpler to use than Make, it is far more \ +powerful and easy to master. Its design is sufficiently clear to allow any \ +average programmer to extend it with advanced features at will. +The main differences between Jam and Make are as follows: +- Jam uses ‘Jamfiles’ instead of ‘Makefiles’. +- Jamfiles do not normally contain toolset-specific rules or actions. They are \ +thus portable among distinct compilers. +- Jamfiles are a lot simpler than Makefiles to write and understand, while \ +providing the same functionality, and much, much more. +" HOMEPAGE="http://www.perforce.com/jam/jam.html" LICENSE="Jam" COPYRIGHT="1993-2003 Christopher Seiwald" SRC_URI=" - git+file://$portBaseDir/../binutils/download/BuildtoolsPM.git#278de7bc9243876c2e08f8d6a243d510c5000462 - git+git://github.com/haiku/BuildtoolsPM.git#278de7bc9243876c2e08f8d6a243d510c5000462 + git+file://$portBaseDir/../binutils/download/buildtools.git#278de7bc9243876c2e08f8d6a243d510c5000462 + git+git://github.com/haiku/buildtools.git#278de7bc9243876c2e08f8d6a243d510c5000462 " REVISION="1" ARCHITECTURES="x86_gcc2 x86 x86_64" @@ -42,7 +38,7 @@ BUILD_PREREQUIRES=" cmd:ld " -SOURCE_DIR="$portVersionedName/jam" +SOURCE_DIR="jam-${portVersion}/jam" BUILD() { diff --git a/sys-devel/libtool/libtool-2.4.2.recipe b/sys-devel/libtool/libtool-2.4.2.recipe index a81f7819f..bf9d7ecc3 100644 --- a/sys-devel/libtool/libtool-2.4.2.recipe +++ b/sys-devel/libtool/libtool-2.4.2.recipe @@ -1,32 +1,100 @@ -DESCRIPTION="libtool - a generic library support script" -HOMEPAGE="http://www.gnu.org/software/libtool" +SUMMARY="A generic library support script" +DESCRIPTION=" + GNU libtool is a set of shell scripts to automatically configure UNIX + architectures to build shared libraries in a generic fashion. + " +HOMEPAGE="http://www.gnu.org/software/libtool" +COPYRIGHT="2004-2010 Free Software Foundation, Inc." +LICENSE="GNU GPL v2" SRC_URI="ftp://ftp.gnu.org/gnu/libtool/libtool-2.4.2.tar.gz" -CHECKSUM_MD5="d2f3b7d4627e69e13514a40e72a24d50" +CHECKSUM_SHA256="b38de44862a987293cd3d8dfae1c409d514b6c4e794ebc93648febf9afc38918" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" + +PATCHES=" + 2.4.2/adjust_config_for_packaging.patch + 2.4.2/remove_help2man_dependency.patch + " + +PROVIDES=" + libtool = $portVersion compat >= 2.4 + cmd:libtool = $portVersion compat >= 2.4 + cmd:libtoolize = $portVersion compat >= 2.4 + devel:libltdl = 7.3.0 compat >= 7 + " +REQUIRES=" + haiku >= $haikuVersion + libtool_libltdl == $portVersion base + cmd:aclocal + cmd:automake + cmd:sed + cmd:tar + cmd:find + cmd:xargs + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf >= 2.62 + cmd:autoheader >= 2.62 + cmd:find + cmd:gcc + cmd:ld + cmd:make + cmd:nm + cmd:ranlib + cmd:sed + cmd:xargs + " + + 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 + SED='sed' NM='nm' LD=ld runConfigure ./configure \ + --with-gnu-ld + make $jobArgs + # Desperate move to remove the absolute paths from libtool. For some reason + # only for the C++ compiler those are set (not for the C compiler). In + # openSuse libtool doesn't have those variables set either, but building + # according to their libroot.spec produces a libtool that has them set as + # well. My guess is that one has to build libtool without a C++ compiler + # installed to get that result. + sed -i -e 's@^predep_objects=".*"$@predep_objects=""'@ \ + -e 's@^postdep_objects=".*"$@postdep_objects=""'@ \ + -e 's@^postdeps=".*"$@postdeps=""'@ \ + -e 's@^compiler_lib_search_path=".*"$@compiler_lib_search_path=""'@ \ + -e 's@^compiler_lib_search_dirs=".*"$@compiler_lib_search_dirs=""'@ \ + libtool } INSTALL() { - cd libtool-2.4.2 make install + prepareInstalledDevelLibs libltdl + + # libltdl package + packageEntries libltdl \ + $libDir/libltdl* + + # main package + rmdir $libDir } TEST() { - cd libtool-2.4.2 make check } -LICENSE="GNU GPL v2" -COPYRIGHT="2004-2011 Free Software Foundation, Inc." +# ----- libltdl package ------------------------------------------------------- + +SUMMARY_libltdl="The libtool libltdl library" +PROVIDES_libltdl=" + libtool_libltdl = $portVersion compat >= 2.4 + lib:libltdl = 7.3.0 compat >= 7 + " +REQUIRES_libltdl=" + haiku >= $haikuVersion + " diff --git a/sys-devel/libtool/libtool-2.4.recipe b/sys-devel/libtool/libtool-2.4.recipe index cec49589f..4d809f5c4 100644 --- a/sys-devel/libtool/libtool-2.4.recipe +++ b/sys-devel/libtool/libtool-2.4.recipe @@ -7,7 +7,7 @@ HOMEPAGE="http://www.gnu.org/software/libtool" COPYRIGHT="2004-2010 Free Software Foundation, Inc." LICENSE="GNU GPL v2" SRC_URI="ftp://ftp.gnu.org/gnu/libtool/libtool-2.4.tar.gz" -CHECKSUM_MD5="b32b04148ecdd7344abc6fe8bd1bb021" +CHECKSUM_SHA256="13df57ab63a94e196c5d6e95d64e53262834fe780d5e82c28f177f9f71ddf62e" REVISION="8" ARCHITECTURES="x86_gcc2 x86 x86_64" @@ -45,7 +45,6 @@ BUILD_PREREQUIRES=" cmd:sed " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/sys-devel/libtool/patches/2.4.2/adjust_config_for_packaging.patch b/sys-devel/libtool/patches/2.4.2/adjust_config_for_packaging.patch new file mode 100644 index 000000000..c0c492015 --- /dev/null +++ b/sys-devel/libtool/patches/2.4.2/adjust_config_for_packaging.patch @@ -0,0 +1,17 @@ +Adjust haiku configuration of upstream libtool for packaging. + +diff -ruwN 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 10:41:19.021233664 +0200 ++++ libtool-2.4.2_haiku/libltdl/m4/libtool.m4 2013-04-27 21:00:11.784859136 +0200 +@@ -2473,8 +2473,9 @@ + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes +- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' +- hardcode_into_libs=yes ++ sys_lib_search_path_spec='/boot/common/non-packaged/lib /boot/common/develop/lib /boot/common/lib /boot/system/develop/lib' ++ sys_lib_dlsearch_path_spec='/boot/home/config/non-packaged/lib /boot/home/config/lib /boot/common/non-packaged/lib /boot/common/lib /boot/system/lib' ++ hardcode_into_libs=no + ;; + + hpux9* | hpux10* | hpux11*) diff --git a/sys-devel/libtool/patches/2.4.2/remove_help2man_dependency.patch b/sys-devel/libtool/patches/2.4.2/remove_help2man_dependency.patch new file mode 100644 index 000000000..4b3a62fce --- /dev/null +++ b/sys-devel/libtool/patches/2.4.2/remove_help2man_dependency.patch @@ -0,0 +1,21 @@ +diff --git a/Makefile.am b/Makefile.am +index 268b399..a8236c1 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -328,16 +328,6 @@ $(srcdir)/doc/notes.txt: $(srcdir)/doc/notes.texi + $(MAKEINFO) --no-headers $(MAKEINFOFLAGS) -o notes.txt notes.texi + + dist_man1_MANS = $(srcdir)/doc/libtool.1 $(srcdir)/doc/libtoolize.1 +-MAINTAINERCLEANFILES += $(dist_man1_MANS) +-update_mans = \ +- PATH=".$(PATH_SEPARATOR)$$PATH"; export PATH; \ +- $(HELP2MAN) --output=$@ +-$(srcdir)/doc/libtool.1: $(srcdir)/$(auxdir)/ltmain.sh +- $(update_mans) --help-option=--help-all libtool +-$(srcdir)/doc/libtoolize.1: $(srcdir)/libtoolize.in +- $(update_mans) libtoolize +- +- + ## ------------- ## + ## Installation. ## + ## ------------- ## diff --git a/sys-devel/llvm/llvm-3.0.recipe b/sys-devel/llvm/llvm-3.0.recipe index 82bd1fc02..e4c113ae4 100644 --- a/sys-devel/llvm/llvm-3.0.recipe +++ b/sys-devel/llvm/llvm-3.0.recipe @@ -3,7 +3,7 @@ HOMEPAGE="http://www.llvm.org/" COPYRIGHT="2003-2011 University of Illinois at Urbana-Champaign" LICENSE="UIUC" SRC_URI="http://llvm.org/releases/3.0/llvm-3.0.tar.gz" -CHECKSUM_MD5="a8e5f5f1c1adebae7b4a654c376a6005" +CHECKSUM_SHA256="519eb11d3499ce99c6ffdb8718651fc91425ed7690eac91c8d6853474f7c0477" REVISION="1" #ARCHITECTURES="x86" #if [ $effectiveTargetArchitecture != x86_gcc2 ]; then diff --git a/sys-devel/llvm/llvm-3.2.recipe b/sys-devel/llvm/llvm-3.2.recipe index c88cb43ce..7e2004dad 100644 --- a/sys-devel/llvm/llvm-3.2.recipe +++ b/sys-devel/llvm/llvm-3.2.recipe @@ -4,8 +4,8 @@ HOMEPAGE="http://www.llvm.org/" LICENSE="UIUC" COPYRIGHT="2003-2012 University of Illinois at Urbana-Champaign" SRC_URI="http://llvm.org/releases/${portVersion}/llvm-${portVersion}.src.tar.gz" -REVISION="1" -CHECKSUM_MD5="71610289bbc819e3e15fdd562809a2d7" +CHECKSUM_SHA256="125090c4d26740f1d5e9838477c931ed7d9ad70d599ba265f46f3a42cb066343" +REVISION="2" ARCHITECTURES="x86 x86_64" if [ $effectiveTargetArchitecture != x86_gcc2 ]; then ARCHITECTURES="$ARCHITECTURES x86_gcc2" @@ -14,6 +14,36 @@ SECONDARY_ARCHITECTURES="x86" PROVIDES=" llvm$secondaryArchSuffix = $portVersion + cmd:bugpoint + cmd:llc + cmd:lli + cmd:llvm_ar + cmd:llvm_as + cmd:llvm_bcanalyzer + cmd:llvm_config + cmd:llvm_cov + cmd:llvm_diff + cmd:llvm_dis + cmd:llvm_dwarfdump + cmd:llvm_extract + cmd:llvm_link + cmd:llvm_mc + cmd:llvm_mcmarkup + cmd:llvm_nm + cmd:llvm_objdump + cmd:llvm_prof + cmd:llvm_ranlib + cmd:llvm_readobj + cmd:llvm_rtdyld + cmd:llvm_size + cmd:llvm_stress + cmd:llvm_tblgen + cmd:macho_dump + cmd:opt + lib:BugpointPasses + lib:LLVMHello + lib:libLTO + lib:libprofile_rt " REQUIRES=" @@ -28,6 +58,7 @@ BUILD_PREREQUIRES=" cmd:aclocal cmd:autoconf cmd:automake + cmd:find cmd:gcc$secondaryArchSuffix cmd:ld$secondaryArchSuffix cmd:libtoolize @@ -55,4 +86,10 @@ BUILD() INSTALL() { make install + + # TODO: $developLibDir doesn't get included in the base package + # llvm is for -devel only, so having a -devel is odd and would break + # how llvm works + #mv $libDir/*.a $developLibdir/ + fixPkgconfig } diff --git a/sys-devel/llvm/llvm-3.3.recipe b/sys-devel/llvm/llvm-3.3.recipe new file mode 100644 index 000000000..3c3146f10 --- /dev/null +++ b/sys-devel/llvm/llvm-3.3.recipe @@ -0,0 +1,62 @@ +SUMMARY="Modular and reuseable compiler and toolchain technologies." +DESCRIPTION=" +LLVM is a collection of modular and reuseable compiler and and toolchain \ +technologies. +" +HOMEPAGE="http://www.llvm.org/" +LICENSE="UIUC" +COPYRIGHT="2003-2012 University of Illinois at Urbana-Champaign" +SRC_URI="http://llvm.org/releases/${portVersion}/llvm-${portVersion}.src.tar.gz" +CHECKSUM_SHA256="68766b1e70d05a25e2f502e997a3cb3937187a3296595cf6e0977d5cd6727578" +REVISION="1" +ARCHITECTURES="!x86 !x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="!x86" + +PROVIDES=" + llvm$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:find + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:make + cmd:python + cmd:sed + " + +SOURCE_DIR="llvm-${portVersion}.src" + +PATCH() +{ + find . -type f -exec sed -i 's/\/usr\/bin\/env/\/bin\/env/g' "{}" \; +} + +BUILD() +{ + # Haiku C++ requires rtti in a lot of central system components + # such as Mesa + export REQUIRES_RTTI=1 + runConfigure ./configure --enable-optimized + make $jobArgs +} + +INSTALL() +{ + make install +} diff --git a/sys-devel/llvm/llvm-3.4.1.recipe b/sys-devel/llvm/llvm-3.4.1.recipe new file mode 100644 index 000000000..fedd4c33b --- /dev/null +++ b/sys-devel/llvm/llvm-3.4.1.recipe @@ -0,0 +1,94 @@ +SUMMARY="Modular and reuseable compiler and toolchain technologies." +DESCRIPTION=" +LLVM is a collection of modular and reuseable compiler and and toolchain \ +technologies. +" +HOMEPAGE="http://www.llvm.org/" +LICENSE="UIUC" +COPYRIGHT="2003-2013 University of Illinois at Urbana-Champaign" +SRC_URI="http://llvm.org/releases/${portVersion}/llvm-${portVersion}.src.tar.gz" +CHECKSUM_SHA256="7d28bb6eca243a2bb6d65a05743ab915b57958a7770277364e93534b63eef93a" +REVISION="1" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + llvm$secondaryArchSuffix = $portVersion + cmd:bugpoint + cmd:llc + cmd:lli + cmd:lli_child_target + cmd:llvm_ar + cmd:llvm_as + cmd:llvm_bcanalyzer + cmd:llvm_config + cmd:llvm_cov + cmd:llvm_diff + cmd:llvm_dis + cmd:llvm_dwarfdump + cmd:llvm_extract + cmd:llvm_link + cmd:llvm_mc + cmd:llvm_mcmarkup + cmd:llvm_nm + cmd:llvm_objdump + cmd:llvm_ranlib + cmd:llvm_readobj + cmd:llvm_rtdyld + cmd:llvm_size + cmd:llvm_stress + cmd:llvm_symbolizer + cmd:llvm_tblgen + cmd:macho_dump + cmd:opt + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libstdc++$secondaryArchSuffix + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:find + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:make + cmd:python + cmd:sed + cmd:find + cmd:grep + " + +PATCHES="llvm-3.4.patchset" + +SOURCE_DIR="$portVersionedName.src" + +BUILD() +{ + # Haiku C++ requires rtti in a lot of central system components + # such as Mesa + export REQUIRES_RTTI=1 + runConfigure ./configure --enable-optimized + make $jobArgs +} + +INSTALL() +{ + make install +} + +TEST() +{ + make check +} diff --git a/sys-devel/llvm/llvm-3.4.recipe b/sys-devel/llvm/llvm-3.4.recipe new file mode 100644 index 000000000..e2eb42455 --- /dev/null +++ b/sys-devel/llvm/llvm-3.4.recipe @@ -0,0 +1,95 @@ +SUMMARY="Modular and reuseable compiler and toolchain technologies." +DESCRIPTION=" +LLVM is a collection of modular and reuseable compiler and and toolchain \ +technologies. +" +HOMEPAGE="http://www.llvm.org/" +LICENSE="UIUC" +COPYRIGHT="2003-2012 University of Illinois at Urbana-Champaign" +SRC_URI="http://llvm.org/releases/${portVersion}/llvm-${portVersion}.src.tar.gz" +CHECKSUM_SHA256="25a5612d692c48481b9b397e2b55f4870e447966d66c96d655241702d44a2628" +REVISION="1" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + llvm$secondaryArchSuffix = $portVersion + cmd:bugpoint + cmd:llc + cmd:lli + cmd:lli_child_target + cmd:llvm_ar + cmd:llvm_as + cmd:llvm_bcanalyzer + cmd:llvm_config + cmd:llvm_cov + cmd:llvm_diff + cmd:llvm_dis + cmd:llvm_dwarfdump + cmd:llvm_extract + cmd:llvm_link + cmd:llvm_mc + cmd:llvm_mcmarkup + cmd:llvm_nm + cmd:llvm_objdump + cmd:llvm_ranlib + cmd:llvm_readobj + cmd:llvm_rtdyld + cmd:llvm_size + cmd:llvm_stress + cmd:llvm_symbolizer + cmd:llvm_tblgen + cmd:macho_dump + cmd:opt + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libstdc++$secondaryArchSuffix + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:find + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:make + cmd:python + cmd:sed + " + +PATCHES="llvm-${portVersion}.patchset" + +PATCH() +{ + find . -type f -exec sed -i 's/\/usr\/bin\/env/\/bin\/env/g' "{}" \; +} + +BUILD() +{ + # Haiku C++ requires rtti in a lot of central system components + # such as Mesa + export REQUIRES_RTTI=1 + runConfigure ./configure --enable-optimized + make $jobArgs +} + +INSTALL() +{ + make install +} + +TEST() +{ + make check +} diff --git a/sys-devel/llvm/patches/llvm-3.4.patchset b/sys-devel/llvm/patches/llvm-3.4.patchset new file mode 100644 index 000000000..9f14d94d8 --- /dev/null +++ b/sys-devel/llvm/patches/llvm-3.4.patchset @@ -0,0 +1,25 @@ +From 744634aa845c403f5a39b8257bbacd36dc1dd351 Mon Sep 17 00:00:00 2001 +From: Alexander von Gluck IV +Date: Wed, 22 Jan 2014 05:04:31 +0000 +Subject: [PATCH] haiku: fix Host.h for endian.h + +--- + include/llvm/Support/Host.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/llvm/Support/Host.h b/include/llvm/Support/Host.h +index 28c4cc7..ab985a4 100644 +--- a/include/llvm/Support/Host.h ++++ b/include/llvm/Support/Host.h +@@ -16,7 +16,7 @@ + + #include "llvm/ADT/StringMap.h" + +-#if defined(__linux__) || defined(__GNU__) ++#if defined(__linux__) || defined(__GNU__) || defined(__HAIKU__) + #include + #else + #if !defined(BYTE_ORDER) && !defined(LLVM_ON_WIN32) +-- +1.8.3.4 + diff --git a/sys-devel/m4/m4-1.4.14.recipe b/sys-devel/m4/m4-1.4.14.recipe deleted file mode 100644 index 8d4435360..000000000 --- a/sys-devel/m4/m4-1.4.14.recipe +++ /dev/null @@ -1,39 +0,0 @@ -DESCRIPTION="m4 - GNU macro processor" -HOMEPAGE="http://www.gnu.org/software/m4/" -SRC_URI="http://ftp.gnu.org/gnu/m4/m4-1.4.14.tar.gz" -CHECKSUM_MD5="f0542d58f94c7d0ce0d01224e447be66" -REVISION="1" -STATUS_HAIKU="unstable" -DEPEND="" - -BUILD() -{ - cd m4-1.4.14 - prefix=$(finddir B_PACKAGE_LINKS_DIRECTORY)/m4-1.4.14 - ./configure --prefix=$prefix \ - --datarootdir=$prefix/data \ - --sbindir=$prefix/bin \ - --includedir=$prefix/develop/headers \ - --sysconfdir=$prefix/settings \ - --docdir=$prefix/documentation/packages/m4 \ - --infodir=$prefix/documentation/info \ - --mandir=$prefix/documentation/man \ - --disable-rpath --with-gnu-ld \ - --enable-changeword - make -} - -INSTALL() -{ - cd m4-1.4.14 - make install -} - -TEST() -{ - cd m4-1.4.14 - makecheck -} - -LICENSE="GNU GPL v3" -COPYRIGHT="2000, 2005-2010 Free Software Foundation, Inc." diff --git a/sys-devel/m4/m4-1.4.15.recipe b/sys-devel/m4/m4-1.4.15.recipe deleted file mode 100644 index 8e141440e..000000000 --- a/sys-devel/m4/m4-1.4.15.recipe +++ /dev/null @@ -1,46 +0,0 @@ -DESCRIPTION="m4 - GNU macro processor" -HOMEPAGE="http://www.gnu.org/software/m4/" -SRC_URI="http://ftp.gnu.org/gnu/m4/m4-1.4.15.tar.gz" -CHECKSUM_MD5="5649a2e593b6c639deae9e72ede777dd" -REVISION="1" -STATUS_HAIKU="broken" -DEPEND="" - -BUILD() -{ - cd m4-1.4.15 - echo "AC_CONFIG_MACRO_DIR([m4])" >> configure.ac - echo >> configure.ac - echo "LT_INIT" >> configure.ac - rm aclocal.m4 - libtoolize --force --copy --install - aclocal -I m4 - autoreconf - prefix=$(finddir B_PACKAGE_LINKS_DIRECTORY)/m4-1.4.15 - ./configure --prefix=$prefix \ - --datarootdir=$prefix/data \ - --sbindir=$prefix/bin \ - --includedir=$prefix/develop/headers \ - --sysconfdir=$prefix/settings \ - --docdir=$prefix/documentation/packages/m4 \ - --infodir=$prefix/documentation/info \ - --mandir=$prefix/documentation/man \ - --disable-rpath --with-gnu-ld \ - --enable-changeword - make -} - -INSTALL() -{ - cd m4-1.4.15 - make install -} - -TEST() -{ - cd m4-1.4.15 - make check -} - -LICENSE="GNU GPL v3" -COPYRIGHT="2000, 2005-2010 Free Software Foundation, Inc." diff --git a/sys-devel/m4/m4-1.4.16.recipe b/sys-devel/m4/m4-1.4.16.recipe index 31d1cf934..d30f48c86 100644 --- a/sys-devel/m4/m4-1.4.16.recipe +++ b/sys-devel/m4/m4-1.4.16.recipe @@ -1,28 +1,25 @@ SUMMARY="A macro processor" DESCRIPTION=" - GNU M4 is an implementation of the traditional Unix macro processor. - It is mostly SVR4 compatible although it has some extensions (for - example, handling more than 9 positional parameters to macros). - GNU M4 also has built-in functions for including files, running shell - commands, doing arithmetic, etc. - - M4 is a macro processor in the sense that it copies its input to the - output expanding macros as it goes. Macros are either builtin or - user-defined and can take any number of arguments. Besides just doing - macro expansion, m4 has builtin functions for including named files, - running UNIX commands, doing integer arithmetic, manipulating text in - various ways, recursion etc... M4 can be used either as a front-end to - a compiler or as a macro processor in its own right. - - One of the biggest users of M4 is the GNU Autoconf project. - " +GNU M4 is an implementation of the traditional Unix macro processor. It is \ +mostly SVR4 compatible although it has some extensions (for example, handling \ +more than 9 positional parameters to macros). GNU M4 also has built-in \ +functions for including files, running shell commands, doing arithmetic, etc. +M4 is a macro processor in the sense that it copies its input to the output \ +expanding macros as it goes. Macros are either builtin or user-defined and can \ +take any number of arguments. Besides just doing macro expansion, m4 has \ +builtin functions for including named files, running UNIX commands, doing \ +integer arithmetic, manipulating text in various ways, recursion etc... M4 can \ +be used either as a front-end to a compiler or as a macro processor in its own \ +right. +One of the biggest users of M4 is the GNU Autoconf project. +" HOMEPAGE="http://www.gnu.org/software/m4/" COPYRIGHT="2000, 2005-2011 Free Software Foundation, Inc." LICENSE="GNU GPL v3" SRC_URI="http://ftp.gnu.org/gnu/m4/m4-1.4.16.tar.gz" -CHECKSUM_MD5="a5dfb4f2b7370e9d34293d23fd09b280" +CHECKSUM_SHA256="e9176a35bb13a1b08482359aa554ee8072794f58f00e4827bf0e06b570c827da" REVISION="5" -ARCHITECTURES="x86_gcc2 x86 x86_64" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" PROVIDES=" m4 = $portVersion compat >= 1.4 @@ -41,7 +38,6 @@ BUILD_PREREQUIRES=" cmd:sed " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/sys-devel/m4/patches/m4-1.4.12.diff b/sys-devel/m4/patches/m4-1.4.12.diff deleted file mode 100644 index 256a980df..000000000 --- a/sys-devel/m4/patches/m4-1.4.12.diff +++ /dev/null @@ -1,109 +0,0 @@ -diff -ur m4-1.4.12.orig/lib/binary-io.h m4-1.4.12/lib/binary-io.h ---- m4-1.4.12.orig/lib/binary-io.h 2008-10-30 22:05:21.000000000 +0000 -+++ m4-1.4.12/lib/binary-io.h 2008-11-03 15:17:10.000000000 +0000 -@@ -30,8 +30,9 @@ - # define O_BINARY _O_BINARY - # define O_TEXT _O_TEXT - #endif --#ifdef __BEOS__ -- /* BeOS 5 has O_BINARY and O_TEXT, but they have no effect. */ -+#if defined __BEOS__ || defined __HAIKU__ -+ /* BeOS 5 has O_BINARY and O_TEXT, but they have no effect. -+ Same for Haiku R1. */ - # undef O_BINARY - # undef O_TEXT - #endif -diff -ur m4-1.4.12.orig/lib/c-stack.c m4-1.4.12/lib/c-stack.c ---- m4-1.4.12.orig/lib/c-stack.c 2008-10-30 22:05:21.000000000 +0000 -+++ m4-1.4.12/lib/c-stack.c 2008-11-03 15:17:10.000000000 +0000 -@@ -317,7 +317,11 @@ - act.sa_flags = SA_NODEFER | SA_ONSTACK | SA_RESETHAND | SA_SIGINFO; - act.sa_sigaction = segv_handler; - # else -- act.sa_flags = SA_NODEFER | SA_RESETHAND; -+# ifdef SA_ONSTACK -+ act.sa_flags = SA_NODEFER | SA_RESETHAND | SA_ONSTACK; -+# else -+ act.sa_flags = SA_NODEFER | SA_RESETHAND; -+# endif - act.sa_handler = die; - # endif - -diff -ur m4-1.4.12.orig/lib/config.charset m4-1.4.12/lib/config.charset ---- m4-1.4.12.orig/lib/config.charset 2008-10-30 22:05:21.000000000 +0000 -+++ m4-1.4.12/lib/config.charset 2008-11-03 15:17:10.000000000 +0000 -@@ -478,8 +478,8 @@ - # space nevertheless. - echo "* UTF-8" - ;; -- beos*) -- # BeOS has a single locale, and it has UTF-8 encoding. -+ beos*|haiku*) -+ # BeOS has a single locale, and it has UTF-8 encoding. Same for Haiku. - echo "* UTF-8" - ;; - msdosdjgpp*) -diff -ur m4-1.4.12.orig/lib/fcntl.in.h m4-1.4.12/lib/fcntl.in.h ---- m4-1.4.12.orig/lib/fcntl.in.h 2008-10-30 22:05:21.000000000 +0000 -+++ m4-1.4.12/lib/fcntl.in.h 2008-11-03 15:17:10.000000000 +0000 -@@ -125,8 +125,8 @@ - # define O_TEXT _O_TEXT - #endif - --#ifdef __BEOS__ -- /* BeOS 5 has O_BINARY and O_TEXT, but they have no effect. */ -+#if defined __BEOS__ || defined __HAIKU__ -+ /* BeOS 5 has O_BINARY and O_TEXT, but they have no effect. Same for Haiku. */ - # undef O_BINARY - # undef O_TEXT - #endif -diff -ur m4-1.4.12.orig/lib/freadahead.c m4-1.4.12/lib/freadahead.c ---- m4-1.4.12.orig/lib/freadahead.c 2008-10-30 22:05:22.000000000 +0000 -+++ m4-1.4.12/lib/freadahead.c 2008-11-03 15:17:10.000000000 +0000 -@@ -25,7 +25,8 @@ - size_t - freadahead (FILE *fp) - { --#if defined _IO_ferror_unlocked || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Linux libc5 */ -+#if defined _IO_ferror_unlocked || __GNU_LIBRARY__ == 1 || defined __HAIKU__ -+ /* GNU libc, BeOS, Linux libc5, Haiku */ - if (fp->_IO_write_ptr > fp->_IO_write_base) - return 0; - return (fp->_IO_read_end - fp->_IO_read_ptr) -diff -ur m4-1.4.12.orig/lib/regex_internal.h m4-1.4.12/lib/regex_internal.h ---- m4-1.4.12.orig/lib/regex_internal.h 2008-10-30 22:05:23.000000000 +0000 -+++ m4-1.4.12/lib/regex_internal.h 2008-11-03 15:17:58.000000000 +0000 -@@ -84,9 +84,11 @@ - # define SIZE_MAX ((size_t) -1) - #endif - -+#ifndef __HAIKU__ - #if (defined MB_CUR_MAX && HAVE_LOCALE_H && HAVE_WCTYPE_H && HAVE_ISWCTYPE && HAVE_WCRTOMB && HAVE_MBRTOWC && HAVE_WCSCOLL) || _LIBC - # define RE_ENABLE_I18N - #endif -+#endif - - #if __GNUC__ >= 3 - # define BE(expr, val) __builtin_expect (expr, val) -diff -ur m4-1.4.12.orig/src/m4.c m4-1.4.12/src/m4.c ---- m4-1.4.12.orig/src/m4.c 2008-10-30 22:05:27.000000000 +0000 -+++ m4-1.4.12/src/m4.c 2008-11-03 15:17:10.000000000 +0000 -@@ -391,7 +391,7 @@ - signal_message[SIGABRT] = xstrdup (strsignal (SIGABRT)); - signal_message[SIGILL] = xstrdup (strsignal (SIGILL)); - signal_message[SIGFPE] = xstrdup (strsignal (SIGFPE)); -- if (SIGBUS != SIGILL) -+ if (SIGBUS != SIGILL && SIGBUS != SIGSEGV) - signal_message[SIGBUS] = xstrdup (strsignal (SIGBUS)); - sigemptyset (&act.sa_mask); - /* One-shot - if we fault while handling a fault, we want to revert -@@ -401,7 +401,8 @@ - sigaction (SIGABRT, &act, NULL); - sigaction (SIGILL, &act, NULL); - sigaction (SIGFPE, &act, NULL); -- sigaction (SIGBUS, &act, NULL); -+ if (SIGBUS != SIGSEGV) -+ sigaction (SIGBUS, &act, NULL); - - #ifdef DEBUG_STKOVF - /* Make it easier to test our fault handlers. Exporting M4_CRASH=0 diff --git a/sys-devel/m4/patches/m4-1.4.14.patch b/sys-devel/m4/patches/m4-1.4.14.patch deleted file mode 100644 index e62824caf..000000000 --- a/sys-devel/m4/patches/m4-1.4.14.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -urN m4-1.4.14/lib/pipe2.c m4-1.4.14-haiku/lib/pipe2.c ---- m4-1.4.14/lib/pipe2.c 2010-01-28 13:04:07.051118080 +0000 -+++ m4-1.4.14-haiku/lib/pipe2.c 2010-02-27 20:00:33.547094528 +0000 -@@ -78,7 +78,11 @@ - /* Unix API. */ - - /* Check the supported flags. */ -+#if (defined __BEOS__ || defined __HAIKU__) -+ if ((flags & ~(O_CLOEXEC | O_NONBLOCK)) != 0) -+#else - if ((flags & ~(O_CLOEXEC | O_NONBLOCK | O_TEXT | O_BINARY)) != 0) -+#endif - { - errno = EINVAL; - return -1; diff --git a/sys-devel/m4/patches/m4-1.4.15.patch b/sys-devel/m4/patches/m4-1.4.15.patch deleted file mode 100644 index 4e51ae7f2..000000000 --- a/sys-devel/m4/patches/m4-1.4.15.patch +++ /dev/null @@ -1,68 +0,0 @@ -diff -urN m4-1.4.15/lib/binary-io.h m4-1.4.15-haiku/lib/binary-io.h ---- m4-1.4.15/lib/binary-io.h 2010-02-06 21:15:26.051118080 +0000 -+++ m4-1.4.15-haiku/lib/binary-io.h 2011-01-26 11:15:38.000000000 +0000 -@@ -19,24 +19,13 @@ - #define _BINARY_H - - /* For systems that distinguish between text and binary I/O. -- O_BINARY is usually declared in . */ -+ O_BINARY is guaranteed by the gnulib . */ - #include - - /* The MSVC7 doesn't like to be included after '#define fileno ...', - so we include it here first. */ - #include - --#if !defined O_BINARY && defined _O_BINARY -- /* For MSC-compatible compilers. */ --# 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. */ - #if O_BINARY -@@ -58,8 +47,6 @@ - # endif - #else - /* On reasonable systems, binary I/O is the default. */ --# undef O_BINARY --# define O_BINARY 0 - # define SET_BINARY(fd) /* do nothing */ ((void) 0) - #endif - -diff -urN m4-1.4.15/lib/pipe2.c m4-1.4.15-haiku/lib/pipe2.c ---- m4-1.4.15/lib/pipe2.c 2010-03-08 21:47:53.064225280 +0000 -+++ m4-1.4.15-haiku/lib/pipe2.c 2010-09-24 04:13:33.514064384 +0000 -@@ -78,8 +78,11 @@ - /* Unix API. */ - - /* Check the supported flags. */ -- if ((flags & ~(O_CLOEXEC | O_NONBLOCK | O_TEXT | O_BINARY)) != 0) -- { -+#if (defined __BEOS__ || defined __HAIKU__) -+ if ((flags & ~(O_CLOEXEC | O_NONBLOCK)) != 0) -+#else -+ if ((flags & ~(O_CLOEXEC | O_NONBLOCK | O_TEXT | O_BINARY)) != 0) -+#endif { - errno = EINVAL; - return -1; - } -diff -urN m4-1.4.15/src/m4.c m4-1.4.15-haiku/src/m4.c ---- m4-1.4.15/src/m4.c 2010-06-04 17:33:48.024379392 +0000 -+++ m4-1.4.15-haiku/src/m4.c 2010-09-24 04:18:51.275513344 +0000 -@@ -408,7 +408,8 @@ - sigaction (SIGABRT, &act, NULL); - sigaction (SIGILL, &act, NULL); - sigaction (SIGFPE, &act, NULL); -- sigaction (SIGBUS, &act, NULL); -+ if (SIGBUS != SIGSEGV) -+ sigaction (SIGBUS, &act, NULL); - if (c_stack_action (fault_handler) == 0) - nesting_limit = 0; - diff --git a/sys-devel/make/make-3.82.recipe b/sys-devel/make/make-3.82.recipe index 67c416f55..0d0cd17d2 100644 --- a/sys-devel/make/make-3.82.recipe +++ b/sys-devel/make/make-3.82.recipe @@ -1,21 +1,19 @@ SUMMARY="Standard tool to compile source trees" DESCRIPTION=" - Make is a tool which controls the generation of executables and other - non-source files of a program from the program's source files. - - Make gets its knowledge of how to build your program from a file called - the makefile, which lists each of the non-source files and how to compute - it from other files. When you write a program, you should write a makefile - for it, so that it is possible to use Make to build and install the - program. - " +Make is a tool which controls the generation of executables and other \ +non-source files of a program from the program's source files. +Make gets its knowledge of how to build your program from a file called the \ +makefile, which lists each of the non-source files and how to compute it from \ +other files. When you write a program, you should write a makefile for it, so \ +that it is possible to use Make to build and install the program. +" HOMEPAGE="http://www.gnu.org/software/make/" LICENSE="GNU GPL v3" COPYRIGHT="1988-2010 Free Software Foundation, Inc." SRC_URI="http://ftp.gnu.org/pub/gnu/make/make-3.82.tar.bz2" -CHECKSUM_MD5="1a11100f3c63fcf5753818e59d63088f" +CHECKSUM_SHA256="e2c1a73f179c40c71e2fe8abf8a8a0688b8499538512984da4a76958d0402966" REVISION="5" -ARCHITECTURES="x86_gcc2 x86 x86_64" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" PATCHES="make-3.82.patch" @@ -36,7 +34,6 @@ BUILD_PREREQUIRES=" cmd:sed " -SOURCE_DIR="$portVersionedName" BUILD() { diff --git a/sys-devel/patch/patch-2.6.1.recipe b/sys-devel/patch/patch-2.6.1.recipe deleted file mode 100644 index 869ed1002..000000000 --- a/sys-devel/patch/patch-2.6.1.recipe +++ /dev/null @@ -1,29 +0,0 @@ -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.6.1.tar.bz2" -CHECKSUM_MD5="0818d1763ae0c4281bcdc63cdac0b2c0" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd patch-2.6.1 - prefix=$(finddir B_PACKAGE_LINKS_DIRECTORY)/patch-2.6.1 - ./configure --prefix=$prefix \ - --datarootdir=$prefix/data \ - --sbindir=$prefix/bin \ - --includedir=$prefix/develop/headers \ - --sysconfdir=$prefix/settings \ - --docdir=$prefix/documentation/packages/patch \ - --infodir=$prefix/documentation/info \ - --mandir=$prefix/documentation/man - make -} - -INSTALL() -{ - cd patch-2.6.1 - make install -} -LICENSE="GNU GPL v3" -COPYRIGHT="1989-2009 Free Software Foundation, Inc." diff --git a/sys-devel/patch/patch-2.7.1.recipe b/sys-devel/patch/patch-2.7.1.recipe index 5be2da908..fc806e52f 100644 --- a/sys-devel/patch/patch-2.7.1.recipe +++ b/sys-devel/patch/patch-2.7.1.recipe @@ -1,22 +1,41 @@ -DESCRIPTION="Utility to apply diffs to files" +SUMMARY="Utility to apply diffs to files" +DESCRIPTION=" +Patch takes a patch file containing a difference listing produced by the diff \ +program and applies those differences to one or more original files, producing \ +patched versions. +" +LICENSE="GNU GPL v3" +COPYRIGHT="2012 Free Software Foundation, Inc." 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" +CHECKSUM_SHA256="aae676de9e95051f425af4507fcc9a019941a2a1f78405e7dbd40bccf786aa11" +ARCHITECTURES="x86 x86_gcc2" +REVISION="2" + +PROVIDES=" + patch = $portVersion + cmd:patch = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:make + cmd:gcc + " + + BUILD() { - cd patch-2.7.1 - ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + runConfigure ./configure make } INSTALL() { - cd patch-2.7.1 make install + rm $libDir/charset.alias } - -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.recipe b/sys-fs/e2fsprogs/e2fsprogs-1.43.recipe index 9531f3103..5bd17f91c 100644 --- a/sys-fs/e2fsprogs/e2fsprogs-1.43.recipe +++ b/sys-fs/e2fsprogs/e2fsprogs-1.43.recipe @@ -1,4 +1,6 @@ -DESCRIPTION="Standard EXT2/EXT3/EXT4 filesystem utilities" +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" diff --git a/sys-fs/e2fsprogs/e2fsprogs-1.43_git.recipe b/sys-fs/e2fsprogs/e2fsprogs-1.43_git.recipe index 5adffe854..76d477afe 100644 --- a/sys-fs/e2fsprogs/e2fsprogs-1.43_git.recipe +++ b/sys-fs/e2fsprogs/e2fsprogs-1.43_git.recipe @@ -1,4 +1,6 @@ -DESCRIPTION="Standard EXT2/EXT3/EXT4 filesystem utilities" +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="" diff --git a/sys-fs/fatsort/fatsort-0.9.17.269.recipe b/sys-fs/fatsort/fatsort-0.9.17.269.recipe index 699daffaa..f4b3b9c1e 100644 --- a/sys-fs/fatsort/fatsort-0.9.17.269.recipe +++ b/sys-fs/fatsort/fatsort-0.9.17.269.recipe @@ -1,4 +1,6 @@ -DESCRIPTION="Sorts files on FAT16/32 partitions, ideal for basic audio players." +DESCRIPTION=" +Sorts files on FAT16/32 partitions, ideal for basic audio players. +" HOMEPAGE="http://fatsort.sourceforge.net/" SRC_URI="http://downloads.sourceforge.net/project/fatsort/fatsort-0.9.17.269.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Ffatsort%2Ffiles%2F&ts=1364726083&use_mirror=freefr" CHECKSUM_MD5="3d04984b08afe8119475d0f1343120db" @@ -6,12 +8,14 @@ REVISION="1" STATUS_HAIKU="stable" DEPEND="" -BUILD { +BUILD() +{ cd fatsort-0.9.17.269 make CFLAGS="-include /boot/develop/headers/posix/stdint.h" LDFLAGS=-ltextencoding } -INSTALL { +INSTALL() +{ cd fatsort-0.9.17.269 make install MANDIR=/boot/common/documentation/man/man1 SBINDIR=/boot/common/bin } diff --git a/sys-libs/glu/glu-9.0.0.recipe b/sys-libs/glu/glu-9.0.0.recipe index 85569360c..6465ef5cb 100644 --- a/sys-libs/glu/glu-9.0.0.recipe +++ b/sys-libs/glu/glu-9.0.0.recipe @@ -1,11 +1,13 @@ SUMMARY="OpenGL Utility Library" -DESCRIPTION="OpenGL Utility Library" +DESCRIPTION=" +OpenGL Utility Library. +" HOMEPAGE="http://freedesktop.org" COPYRIGHT="Copyright (C) 1999-2012 Brian Paul and others. All Rights Reserved." LICENSE="MIT" SRC_URI="ftp://freedesktop.org/pub/mesa/glu/glu-9.0.0.tar.gz" -CHECKSUM_MD5="bbc57d4fe3bd3fb095bdbef6fcb977c4" -REVISION="2" +CHECKSUM_SHA256="4387476a1933f36fec1531178ea204057bbeb04cc2d8396c9ea32720a1f7e264" +REVISION="3" ARCHITECTURES="x86_gcc2 x86 x86_64" SECONDARY_ARCHITECTURES="x86_gcc2 x86" @@ -15,27 +17,22 @@ PROVIDES=" " REQUIRES=" haiku$secondaryArchSuffix >= $haikuVersion + lib:libGL${secondaryArchSuffix} " BUILD_REQUIRES=" - devel:libglapi$secondaryArchSuffix + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libGL$secondaryArchSuffix " BUILD_PREREQUIRES=" - haiku${secondaryArchSuffix}_devel >= $haikuVersion cmd:gcc$secondaryArchSuffix cmd:ld$secondaryArchSuffix + cmd:awk cmd:make cmd:sed " BUILD() { - # The Haiku build system builds libGL.so from libglapi and libglu. Since the - # glu build system requires libGL.so (since the shared libglu.so is linked - # against it), we build a dummy libGL.so from libglapi.a. - gcc -o libGL.so -shared -Xlinker --whole-archive -lglapi - libglLinkFlags="-L$(pwd)" - - LDFLAGS="$libglLinkFlags" \ runConfigure ./configure make $jobArgs } diff --git a/sys-libs/libexecinfo/libexecinfo-1.1.recipe b/sys-libs/libexecinfo/libexecinfo-1.1.recipe new file mode 100644 index 000000000..fbb1239d3 --- /dev/null +++ b/sys-libs/libexecinfo/libexecinfo-1.1.recipe @@ -0,0 +1,74 @@ +SUMMARY="Library for inspecting program's backtrace" +DESCRIPTION=" +This is a quick-n-dirty BSD licensed clone of backtrace facility found +in the GNU libc, mainly intended for porting linuxish code to BSD +platforms, however it can be used at any platform which has a gcc +compiler. +" +HOMEPAGE="http://www.freshports.org/devel/libexecinfo" +COPYRIGHT="2003-2014 Maxim Sobolev" +LICENSE="BSD (2-clause)" +SRC_URI="http://ftp.freebsd.org/pub/FreeBSD/ports/local-distfiles/itetcu/libexecinfo-1.1.tar.bz2" +CHECKSUM_SHA256="c9a21913e7fdac8ef6b33250b167aa1fc0a7b8a175145e26913a4c19d8a59b1f" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86 ?x86_64" +SECONDARY_ARCHITECTURES="x86 x86_gcc2" + +PROVIDES=" + libexecinfo$secondaryArchSuffix = $portVersion compat >= 1 + lib:libexecinfo$secondaryArchSuffix = $portVersion compat >= 1 + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +PATCHES="libexecinfo-$portVersion.patchset" + +BUILD() +{ + gcc -c -o execinfo.o execinfo.c + gcc -c -o stacktraverse.o stacktraverse.c + ar rcs libexecinfo.a execinfo.o stacktraverse.o + gcc -shared -Wl,-soname,libexecinfo.so.1.1 -o libexecinfo.so execinfo.o stacktraverse.o +} + +INSTALL() +{ + mkdir -p $libDir + mkdir -p $includeDir + + cp libexecinfo.a $libDir + cp libexecinfo.so $libDir/libexecinfo.so.1.1 + ln -s $libDir/libexecinfo.so-1.1 $libDir/libexecinfo.so + cp execinfo.h $includeDir + + prepareInstalledDevelLibs libexecinfo + + # devel package + packageEntries devel \ + $developDir +} + +TEST() +{ + gcc test.c -o test libexecinfo.a + ./test +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + libexecinfo${secondaryArchSuffix}_devel = $portVersion compat >= 1 + devel:libexecinfo${secondaryArchSuffix} = $portVersion compat >= 1 + " +REQUIRES_devel=" + libexecinfo${secondaryArchSuffix} == $portVersion base + " diff --git a/sys-libs/libexecinfo/patches/libexecinfo-1.1.patchset b/sys-libs/libexecinfo/patches/libexecinfo-1.1.patchset new file mode 100644 index 000000000..1cc8f4076 --- /dev/null +++ b/sys-libs/libexecinfo/patches/libexecinfo-1.1.patchset @@ -0,0 +1,75 @@ +From 9618f81449961ea9f5c6d85e45aab86a6b4a16c7 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Thu, 17 Apr 2014 11:06:49 +0200 +Subject: Import FreeBSD patches. + + +diff --git a/execinfo.c b/execinfo.c +index 906fb14..9448b60 100644 +--- a/execinfo.c ++++ b/execinfo.c +@@ -69,7 +69,8 @@ backtrace(void **buffer, int size) + char ** + backtrace_symbols(void *const *buffer, int size) + { +- int i, clen, alen, offset; ++ size_t clen, alen; ++ int i, offset; + char **rval; + char *cp; + Dl_info info; +@@ -78,7 +79,6 @@ backtrace_symbols(void *const *buffer, int size) + rval = malloc(clen); + if (rval == NULL) + return NULL; +- (char **)cp = &(rval[size]); + for (i = 0; i < size; i++) { + if (dladdr(buffer[i], &info) != 0) { + if (info.dli_sname == NULL) +@@ -92,14 +92,14 @@ backtrace_symbols(void *const *buffer, int size) + 2 + /* " <" */ + strlen(info.dli_sname) + /* "function" */ + 1 + /* "+" */ +- D10(offset) + /* "offset */ ++ 10 + /* "offset */ + 5 + /* "> at " */ + strlen(info.dli_fname) + /* "filename" */ + 1; /* "\0" */ + rval = realloc_safe(rval, clen + alen); + if (rval == NULL) + return NULL; +- snprintf(cp, alen, "%p <%s+%d> at %s", ++ snprintf((char *) rval + clen, alen, "%p <%s+%d> at %s", + buffer[i], info.dli_sname, offset, info.dli_fname); + } else { + alen = 2 + /* "0x" */ +@@ -108,12 +108,15 @@ backtrace_symbols(void *const *buffer, int size) + rval = realloc_safe(rval, clen + alen); + if (rval == NULL) + return NULL; +- snprintf(cp, alen, "%p", buffer[i]); ++ snprintf((char *) rval + clen, alen, "%p", buffer[i]); + } +- rval[i] = cp; +- cp += alen; ++ rval[i] = (char *) clen; ++ clen += alen; + } + ++ for (i = 0; i < size; i++) ++ rval[i] += (long) rval; ++ + return rval; + } + +@@ -155,6 +158,6 @@ backtrace_symbols_fd(void *const *buffer, int size, int fd) + return; + snprintf(buf, len, "%p\n", buffer[i]); + } +- write(fd, buf, len - 1); ++ write(fd, buf, strlen(buf)); + } + } +-- +1.8.3.4 + diff --git a/sys-libs/mesa/mesa-10.0.1.recipe b/sys-libs/mesa/mesa-10.0.1.recipe new file mode 100644 index 000000000..fccdf54e8 --- /dev/null +++ b/sys-libs/mesa/mesa-10.0.1.recipe @@ -0,0 +1,160 @@ +SUMMARY="Multi-platform GL implementation" +DESCRIPTION=" +Mesa is an open-source implementation of the OpenGL specification. The OpenGL \ +specification documents a system for rendering interactive 3D graphics. +Mesa fills the role of the Haiku OpenGL kit providing 3D rendering to Haiku \ +applications. +" +HOMEPAGE="http://www.mesa3d.org/" +COPYRIGHT="1999-2013 Brian Paul All Rights Reserved." +LICENSE="MIT" +SRC_URI="ftp://ftp.freedesktop.org/pub/mesa/10.0.1/MesaLib-10.0.1.tar.bz2" +CHECKSUM_SHA256="3cdf868f9599ca310c17fcf5b4ce9aec9903d8bf8561fde2577f3d422f823270" +REVISION="5" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + mesa$secondaryArchSuffix = $portVersion compat >= 10.0 + lib:libGL$secondaryArchSuffix + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " + +PATCHES="mesa-10.0.1.patchset" + +# We're locked to LLVM 3.2 as 3.3 is broken at the moment on Haiku. +# Mesa should build with any newer LLVM version however. +# As LLVM is only linked into the swpipe renderer (and not libGL) +# changing LLVM versions shouldn't introduce any abi issues. +BUILD_PREREQUIRES=" + libxml2_python + llvm${secondaryArchSuffix} == 3.2 + cmd:bison + cmd:find + cmd:flex + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:scons + cmd:sed + " + +SOURCE_DIR="Mesa-$portVersion" + +BUILD() +{ + if [ -n "$secondaryArchSuffix" ]; then + export HAIKU_SECONDARY_ARCH="$effectiveTargetArchitecture" + fi + scons $jobArgs build=release + #scons $jobArgs build=debug +} + +INSTALL() +{ + mesaBuildDir=build/haiku-$effectiveTargetArchitecture + + # libGL.so makes up the core of our OpenGL kit + mkdir -p $libDir + cp $(find $mesaBuildDir -name 'libGL.so') $libDir + mkdir -p $developLibDir + symlinkRelative -s $libDir/libGL.so $developLibDir + + # Our rendering add-ons + mkdir -p $addOnsDir/opengl + cp $(find $mesaBuildDir -name 'libswrast.so') \ + "$addOnsDir/opengl/Software Rasterizer" + cp $(find $mesaBuildDir -name 'libswpipe.so') \ + "$addOnsDir/opengl/Software Pipe" + + # Set some nice version info + setversion "$libDir/libGL.so" -app 10 0 1 -long "Haiku OpenGL kit" + setversion "$addOnsDir/opengl/Software Rasterizer" -app 10 0 1 -long "Mesa software rasterization renderer" + setversion "$addOnsDir/opengl/Software Pipe" -app 10 0 1 -long "Gallium LLVM software pipe renderer" + + # OpenGL Kit + mkdir -p $includeDir/os/opengl + cp ./include/HaikuGL/OpenGLKit.h $includeDir/os/ + cp ./include/HaikuGL/GLView.h $includeDir/os/opengl/ + cp ./include/HaikuGL/GLRenderer.h $includeDir/os/opengl/ + + # Standard GL headers + mkdir -p $includeDir/GL + cp ./include/GL/gl.h $includeDir/GL/ + cp ./include/GL/gl_mangle.h $includeDir/GL/ + cp ./include/GL/glext.h $includeDir/GL/ + + # Create GL symlink in opengl kit + symlinkRelative -s $includeDir/GL $includeDir/os/opengl/GL + + # devel package + packageEntries devel \ + $developDir + + # swpipe renderer package + packageEntries swpipe \ + "$addOnsDir/opengl/Software Pipe" + + # swrast renderer package + packageEntries swrast \ + "$addOnsDir/opengl/Software Rasterizer" +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + mesa${secondaryArchSuffix}_devel = $portVersion + devel:libGL$secondaryArchSuffix = $portVersion + " + +REQUIRES_devel=" + mesa$secondaryArchSuffix == $portVersion base + " + +# ===== Mesa OpenGL Add-ons ================================================== +# ----- swrast package ------------------------------------------------------- + +SUMMARY_swrast="Mesa software rasterization renderer" +DESCRIPTION_swrast="This 3D BGLRenderer add-on provides Mesa software + rasterization on Haiku systems. Software rasterization performs all + 3D rendering on the systems CPU and doesn't require any specialized + hardware. Software rasterization is generally considered a fallback + 3D rendering method as performance is limited. + " +PROVIDES_swrast=" + mesa${secondaryArchSuffix}_swrast = $portVersion + " +REQUIRED_swrast=" + mesa$secondaryArchSuffix == $portVersion base + " + +# ===== Gallium OpenGL Add-ons =============================================== +# ----- swpipe package ------------------------------------------------------- + +SUMMARY_swpipe="Mesa LLVM enhanced Gallium software pipe renderer" +DESCRIPTION_swpipe="This 3D BGLRenderer add-on provides Gallium LLVM + enhanced software rendering. Software pipe rendering performs all + 3D rendering on the systems CPU and doesn't require any specialized + hardware. The usage of LLVM over traditional rasterization gives this + renderer a boost in performance. + + Gallium software pipe rendering is in an extremely early state as of + this version of Mesa, and may not function as expected. + " +PROVIDES_swpipe=" + mesa${secondaryArchSuffix}_swpipe = $portVersion + " + +REQUIRED_swpipe=" + mesa$secondaryArchSuffix == $portVersion base + " + diff --git a/sys-libs/mesa/mesa-10.0.2.recipe b/sys-libs/mesa/mesa-10.0.2.recipe new file mode 100644 index 000000000..8ab5a0d06 --- /dev/null +++ b/sys-libs/mesa/mesa-10.0.2.recipe @@ -0,0 +1,156 @@ +SUMMARY="Multi-platform GL implementation" +DESCRIPTION=" +Mesa is an open-source implementation of the OpenGL specification. The OpenGL \ +specification documents a system for rendering interactive 3D graphics. +Mesa fills the role of the Haiku OpenGL kit providing 3D rendering to Haiku \ +applications. +" +HOMEPAGE="http://www.mesa3d.org/" +COPYRIGHT="1999-2013 Brian Paul All Rights Reserved." +LICENSE="MIT" +SRC_URI="ftp://ftp.freedesktop.org/pub/mesa/10.0.2/MesaLib-10.0.2.tar.bz2" +CHECKSUM_SHA256="4502a8e2dfa53e15d8fff89c153e6b14824fe82e49bd101e7edc02fa8cf76a7e" +REVISION="3" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + mesa$secondaryArchSuffix = $portVersion compat >= 10.0 + lib:libGL$secondaryArchSuffix + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " + +PATCHES="mesa-10.0.2.patchset" + +BUILD_PREREQUIRES=" + libxml2_python + llvm${secondaryArchSuffix} + cmd:bison + cmd:find + cmd:flex + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:scons + cmd:sed + " + +SOURCE_DIR="Mesa-$portVersion" + +BUILD() +{ + if [ -n "$secondaryArchSuffix" ]; then + export HAIKU_SECONDARY_ARCH="$effectiveTargetArchitecture" + fi + scons $jobArgs build=release + #scons $jobArgs build=debug +} + +INSTALL() +{ + mesaBuildDir=build/haiku-$effectiveTargetArchitecture + + # libGL.so makes up the core of our OpenGL kit + mkdir -p $libDir + cp $(find $mesaBuildDir -name 'libGL.so') $libDir + mkdir -p $developLibDir + symlinkRelative -s $libDir/libGL.so $developLibDir + + # Our rendering add-ons + mkdir -p $addOnsDir/opengl + cp $(find $mesaBuildDir -name 'libswrast.so') \ + "$addOnsDir/opengl/Software Rasterizer" + cp $(find $mesaBuildDir -name 'libswpipe.so') \ + "$addOnsDir/opengl/Software Pipe" + + # Set some nice version info + setversion "$libDir/libGL.so" -app 10 0 2 -long "Haiku OpenGL kit" + setversion "$addOnsDir/opengl/Software Rasterizer" -app 10 0 2 -long "Mesa software rasterization renderer" + setversion "$addOnsDir/opengl/Software Pipe" -app 10 0 2 -long "Gallium LLVM software pipe renderer" + + # OpenGL Kit + mkdir -p $includeDir/os/opengl + cp ./include/HaikuGL/OpenGLKit.h $includeDir/os/ + cp ./include/HaikuGL/GLView.h $includeDir/os/opengl/ + cp ./include/HaikuGL/GLRenderer.h $includeDir/os/opengl/ + + # Standard GL headers + mkdir -p $includeDir/GL + cp ./include/GL/gl.h $includeDir/GL/ + cp ./include/GL/gl_mangle.h $includeDir/GL/ + cp ./include/GL/glext.h $includeDir/GL/ + + # Create GL symlink in opengl kit + symlinkRelative -s $includeDir/GL $includeDir/os/opengl/GL + + # devel package + packageEntries devel \ + $developDir + + # swpipe renderer package + packageEntries swpipe \ + "$addOnsDir/opengl/Software Pipe" + + # swrast renderer package + packageEntries swrast \ + "$addOnsDir/opengl/Software Rasterizer" +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + mesa${secondaryArchSuffix}_devel = $portVersion + devel:libGL$secondaryArchSuffix = $portVersion + " + +REQUIRES_devel=" + mesa$secondaryArchSuffix == $portVersion base + " + +# ===== Mesa OpenGL Add-ons ================================================== +# ----- swrast package ------------------------------------------------------- + +SUMMARY_swrast="Mesa software rasterization renderer" +DESCRIPTION_swrast="This 3D BGLRenderer add-on provides Mesa software + rasterization on Haiku systems. Software rasterization performs all + 3D rendering on the systems CPU and doesn't require any specialized + hardware. Software rasterization is generally considered a fallback + 3D rendering method as performance is limited. + " +PROVIDES_swrast=" + mesa${secondaryArchSuffix}_swrast = $portVersion + " +REQUIRED_swrast=" + mesa$secondaryArchSuffix == $portVersion base + " + +# ===== Gallium OpenGL Add-ons =============================================== +# ----- swpipe package ------------------------------------------------------- + +SUMMARY_swpipe="Mesa LLVM enhanced Gallium software pipe renderer" +DESCRIPTION_swpipe="This 3D BGLRenderer add-on provides Gallium LLVM + enhanced software rendering. Software pipe rendering performs all + 3D rendering on the systems CPU and doesn't require any specialized + hardware. The usage of LLVM over traditional rasterization gives this + renderer a boost in performance. + + Gallium software pipe rendering is in an extremely early state as of + this version of Mesa, and may not function as expected. + " +PROVIDES_swpipe=" + mesa${secondaryArchSuffix}_swpipe = $portVersion + " + +REQUIRED_swpipe=" + mesa$secondaryArchSuffix == $portVersion base + " + diff --git a/sys-libs/mesa/mesa-10.1.0.recipe b/sys-libs/mesa/mesa-10.1.0.recipe new file mode 100644 index 000000000..18327f821 --- /dev/null +++ b/sys-libs/mesa/mesa-10.1.0.recipe @@ -0,0 +1,155 @@ +SUMMARY="Multi-platform GL implementation" +DESCRIPTION=" +Mesa is an open-source implementation of the OpenGL specification. The OpenGL \ +specification documents a system for rendering interactive 3D graphics. +Mesa fills the role of the Haiku OpenGL kit providing 3D rendering to Haiku \ +applications. +" +HOMEPAGE="http://www.mesa3d.org/" +COPYRIGHT="1999-2013 Brian Paul All Rights Reserved." +LICENSE="MIT" +SRC_URI="ftp://ftp.freedesktop.org/pub/mesa/10.1/MesaLib-10.1.0.tar.bz2" +CHECKSUM_SHA256="5941c3d4772a9f447f51569dfca48e01af98080bc996991d00a13f900dab2230" +REVISION="1" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + mesa$secondaryArchSuffix = $portVersion compat >= 10.0 + lib:libGL$secondaryArchSuffix + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + libxml2_python + llvm${secondaryArchSuffix} + cmd:bison + cmd:find + cmd:flex + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:scons + cmd:sed + " + +SOURCE_DIR="Mesa-$portVersion" + +PATCHES="mesa-10.1.0.patchset" + +BUILD() +{ + if [ -n "$secondaryArchSuffix" ]; then + export HAIKU_SECONDARY_ARCH="$effectiveTargetArchitecture" + fi + scons $jobArgs build=release + #scons $jobArgs build=debug +} + +INSTALL() +{ + mesaBuildDir=build/haiku-$effectiveTargetArchitecture + + # libGL.so makes up the core of our OpenGL kit + mkdir -p $libDir + cp $(find $mesaBuildDir -name 'libGL.so') $libDir + mkdir -p $developLibDir + symlinkRelative -s $libDir/libGL.so $developLibDir + + # Our rendering add-ons + mkdir -p $addOnsDir/opengl + cp $(find $mesaBuildDir -name 'libswrast.so') \ + "$addOnsDir/opengl/Software Rasterizer" + cp $(find $mesaBuildDir -name 'libswpipe.so') \ + "$addOnsDir/opengl/Software Pipe" + + # Set some nice version info + setversion "$libDir/libGL.so" -app 10 1 0 -long "Haiku OpenGL kit" + setversion "$addOnsDir/opengl/Software Rasterizer" -app 10 1 0 -long "Mesa software rasterization renderer" + setversion "$addOnsDir/opengl/Software Pipe" -app 10 1 0 -long "Gallium LLVM software pipe renderer" + + # OpenGL Kit + mkdir -p $includeDir/os/opengl + cp ./include/HaikuGL/OpenGLKit.h $includeDir/os/ + cp ./include/HaikuGL/GLView.h $includeDir/os/opengl/ + cp ./include/HaikuGL/GLRenderer.h $includeDir/os/opengl/ + + # Standard GL headers + mkdir -p $includeDir/GL + cp ./include/GL/gl.h $includeDir/GL/ + cp ./include/GL/gl_mangle.h $includeDir/GL/ + cp ./include/GL/glext.h $includeDir/GL/ + + # Create GL symlink in opengl kit + symlinkRelative -s $includeDir/GL $includeDir/os/opengl/GL + + # devel package + packageEntries devel \ + $developDir + + # swpipe renderer package + packageEntries swpipe \ + "$addOnsDir/opengl/Software Pipe" + + # swrast renderer package + packageEntries swrast \ + "$addOnsDir/opengl/Software Rasterizer" +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + mesa${secondaryArchSuffix}_devel = $portVersion + devel:libGL$secondaryArchSuffix = $portVersion + " + +REQUIRES_devel=" + mesa$secondaryArchSuffix == $portVersion base + " + +# ===== Mesa OpenGL Add-ons ================================================== +# ----- swrast package ------------------------------------------------------- + +SUMMARY_swrast="Mesa software rasterization renderer" +DESCRIPTION_swrast="This 3D BGLRenderer add-on provides Mesa software + rasterization on Haiku systems. Software rasterization performs all + 3D rendering on the systems CPU and doesn't require any specialized + hardware. Software rasterization is generally considered a fallback + 3D rendering method as performance is limited. + " +PROVIDES_swrast=" + mesa${secondaryArchSuffix}_swrast = $portVersion + " +REQUIRED_swrast=" + mesa$secondaryArchSuffix == $portVersion base + " + +# ===== Gallium OpenGL Add-ons =============================================== +# ----- swpipe package ------------------------------------------------------- + +SUMMARY_swpipe="Mesa LLVM enhanced Gallium software pipe renderer" +DESCRIPTION_swpipe="This 3D BGLRenderer add-on provides Gallium LLVM + enhanced software rendering. Software pipe rendering performs all + 3D rendering on the systems CPU and doesn't require any specialized + hardware. The usage of LLVM over traditional rasterization gives this + renderer a boost in performance. + + Gallium software pipe rendering is in an extremely early state as of + this version of Mesa, and may not function as expected. + " +PROVIDES_swpipe=" + mesa${secondaryArchSuffix}_swpipe = $portVersion + " + +REQUIRED_swpipe=" + mesa$secondaryArchSuffix == $portVersion base + " + diff --git a/sys-libs/mesa/mesa-10.1.1.recipe b/sys-libs/mesa/mesa-10.1.1.recipe new file mode 100644 index 000000000..1fa9b6732 --- /dev/null +++ b/sys-libs/mesa/mesa-10.1.1.recipe @@ -0,0 +1,153 @@ +SUMMARY="Multi-platform GL implementation" +DESCRIPTION=" +Mesa is an open-source implementation of the OpenGL specification. The OpenGL \ +specification documents a system for rendering interactive 3D graphics. +Mesa fills the role of the Haiku OpenGL kit providing 3D rendering to Haiku \ +applications. +" +HOMEPAGE="http://www.mesa3d.org/" +COPYRIGHT="1999-2013 Brian Paul All Rights Reserved." +LICENSE="MIT" +SRC_URI="ftp://ftp.freedesktop.org/pub/mesa/10.1.1/MesaLib-10.1.1.tar.bz2" +CHECKSUM_SHA256="f3ae730ed81fffcb1ec59076813f9955157da7a1dd9ba23a6b1b8ff8cf6798b0" +REVISION="1" +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + mesa$secondaryArchSuffix = $portVersion compat >= 10.0 + lib:libGL$secondaryArchSuffix + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " +BUILD_PREREQUIRES=" + libxml2_python + llvm${secondaryArchSuffix} + cmd:bison + cmd:find + cmd:flex + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:scons + cmd:sed + " + +SOURCE_DIR="Mesa-$portVersion" + +BUILD() +{ + if [ -n "$secondaryArchSuffix" ]; then + export HAIKU_SECONDARY_ARCH="$effectiveTargetArchitecture" + fi + scons $jobArgs build=release + #scons $jobArgs build=debug +} + +INSTALL() +{ + mesaBuildDir=build/haiku-$effectiveTargetArchitecture + + # libGL.so makes up the core of our OpenGL kit + mkdir -p $libDir + cp $(find $mesaBuildDir -name 'libGL.so') $libDir + mkdir -p $developLibDir + symlinkRelative -s $libDir/libGL.so $developLibDir + + # Our rendering add-ons + mkdir -p $addOnsDir/opengl + cp $(find $mesaBuildDir -name 'libswrast.so') \ + "$addOnsDir/opengl/Software Rasterizer" + cp $(find $mesaBuildDir -name 'libswpipe.so') \ + "$addOnsDir/opengl/Software Pipe" + + # Set some nice version info + setversion "$libDir/libGL.so" -app 10 1 1 -long "Haiku OpenGL kit" + setversion "$addOnsDir/opengl/Software Rasterizer" -app 10 1 1 -long "Mesa software rasterization renderer" + setversion "$addOnsDir/opengl/Software Pipe" -app 10 1 1 -long "Gallium LLVM software pipe renderer" + + # OpenGL Kit + mkdir -p $includeDir/os/opengl + cp ./include/HaikuGL/OpenGLKit.h $includeDir/os/ + cp ./include/HaikuGL/GLView.h $includeDir/os/opengl/ + cp ./include/HaikuGL/GLRenderer.h $includeDir/os/opengl/ + + # Standard GL headers + mkdir -p $includeDir/GL + cp ./include/GL/gl.h $includeDir/GL/ + cp ./include/GL/gl_mangle.h $includeDir/GL/ + cp ./include/GL/glext.h $includeDir/GL/ + + # Create GL symlink in opengl kit + symlinkRelative -s $includeDir/GL $includeDir/os/opengl/GL + + # devel package + packageEntries devel \ + $developDir + + # swpipe renderer package + packageEntries swpipe \ + "$addOnsDir/opengl/Software Pipe" + + # swrast renderer package + packageEntries swrast \ + "$addOnsDir/opengl/Software Rasterizer" +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + mesa${secondaryArchSuffix}_devel = $portVersion + devel:libGL$secondaryArchSuffix = $portVersion + " + +REQUIRES_devel=" + mesa$secondaryArchSuffix == $portVersion base + " + +# ===== Mesa OpenGL Add-ons ================================================== +# ----- swrast package ------------------------------------------------------- + +SUMMARY_swrast="Mesa software rasterization renderer" +DESCRIPTION_swrast="This 3D BGLRenderer add-on provides Mesa software + rasterization on Haiku systems. Software rasterization performs all + 3D rendering on the systems CPU and doesn't require any specialized + hardware. Software rasterization is generally considered a fallback + 3D rendering method as performance is limited. + " +PROVIDES_swrast=" + mesa${secondaryArchSuffix}_swrast = $portVersion + " +REQUIRED_swrast=" + mesa$secondaryArchSuffix == $portVersion base + " + +# ===== Gallium OpenGL Add-ons =============================================== +# ----- swpipe package ------------------------------------------------------- + +SUMMARY_swpipe="Mesa LLVM enhanced Gallium software pipe renderer" +DESCRIPTION_swpipe="This 3D BGLRenderer add-on provides Gallium LLVM + enhanced software rendering. Software pipe rendering performs all + 3D rendering on the systems CPU and doesn't require any specialized + hardware. The usage of LLVM over traditional rasterization gives this + renderer a boost in performance. + + Gallium software pipe rendering is in an extremely early state as of + this version of Mesa, and may not function as expected. + " +PROVIDES_swpipe=" + mesa${secondaryArchSuffix}_swpipe = $portVersion + " + +REQUIRED_swpipe=" + mesa$secondaryArchSuffix == $portVersion base + " + diff --git a/sys-libs/mesa/mesa-7.8.2.recipe b/sys-libs/mesa/mesa-7.8.2.recipe index 121b45e59..ee08a76b3 100644 --- a/sys-libs/mesa/mesa-7.8.2.recipe +++ b/sys-libs/mesa/mesa-7.8.2.recipe @@ -5,16 +5,21 @@ # package, mainly to keep the copyright info. SUMMARY="Multi-platform GL implementation" -DESCRIPTION="Mesa is an open-source implementation of the OpenGL specification - a system for rendering interactive 3D graphics. - -A variety of device drivers allows Mesa to be used in many different environments ranging from software emulation to complete hardware acceleration for modern GPUs. - -Mesa ties into several other open-source projects: the Direct Rendering Infrastructure and X.org to provide OpenGL support to users of X on Linux, FreeBSD and other operating systems." +DESCRIPTION=" +Mesa is an open-source implementation of the OpenGL specification - a system \ +for rendering interactive 3D graphics. +A variety of device drivers allows Mesa to be used in many different \ +environments ranging from software emulation to complete hardware acceleration \ +for modern GPUs. +Mesa ties into several other open-source projects: the Direct Rendering \ +Infrastructure and X.org to provide OpenGL support to users of X on Linux, \ +FreeBSD and other operating systems. +" HOMEPAGE="http://www.mesa3d.org/" COPYRIGHT="1999-2012 Brian Paul All Rights Reserved." LICENSE="MIT" SRC_URI="ftp://freedesktop.org/pub/mesa/older-versions/7.x/7.8.2/MesaLib-7.8.2.tar.bz2" -CHECKSUM_MD5="6be2d343a0089bfd395ce02aaf8adb57" +CHECKSUM_SHA256="505bf418dceba05837f4ea1b1972b9620c35f8cb94bc4d1e6d573c15f562576d" REVISION="3" ARCHITECTURES="x86_gcc2" if [ $effectiveTargetArchitecture = x86_gcc2 -a $targetArchitecture = x86 ] diff --git a/sys-libs/mesa/mesa-7.9.2.recipe b/sys-libs/mesa/mesa-7.9.2.recipe new file mode 100644 index 000000000..e627564c7 --- /dev/null +++ b/sys-libs/mesa/mesa-7.9.2.recipe @@ -0,0 +1,124 @@ +SUMMARY="Multi-platform GL implementation" +DESCRIPTION=" +Mesa is an open-source implementation of the OpenGL specification. The OpenGL \ +specification documents a system for rendering interactive 3D graphics. +Mesa fills the role of the Haiku OpenGL kit providing 3D rendering to Haiku \ +applications. +" +HOMEPAGE="http://www.mesa3d.org/" +COPYRIGHT="1999-2013 Brian Paul All Rights Reserved." +LICENSE="MIT" +# remember to update SOURCE_DIR as well for the -X revision +SRC_URI="https://github.com/kallisti5/mesa/archive/7.9.2-5.tar.gz" +SRC_FILENAME="mesa-7.9.2-5.tar.gz" +CHECKSUM_MD5="7e9aafbfffa04e14a57d450836d86bf1" +REVISION="6" +ARCHITECTURES="x86_gcc2" +if [ $effectiveTargetArchitecture != x86 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86" +fi +SECONDARY_ARCHITECTURES="x86_gcc2" + +PROVIDES=" + mesa$secondaryArchSuffix = $portVersion compat >= 7.9 + lib:libGL$secondaryArchSuffix + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + libxml2_python + cmd:bison + cmd:find + cmd:flex + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:python + cmd:make + cmd:sed + " + +PATCHES="mesa-7.9.2.patchset" + +SOURCE_DIR="mesa-7.9.2-5" + +BUILD() +{ + if [ -n "$secondaryArchSuffix" ]; then + export HAIKU_SECONDARY_ARCH="$effectiveTargetArchitecture" + fi + #make DEBUG=1 haiku $jobArgs + make haiku $jobArgs +} + +INSTALL() +{ + # libGL.so makes up the core of our OpenGL kit + mkdir -p $libDir + cp $(find ./lib/ -name 'libGL.so') $libDir + mkdir -p $developLibDir + symlinkRelative -s $libDir/libGL.so $developLibDir + + # Our rendering add-on + mkdir -p $addOnsDir/opengl + cp $(find ./lib/ -name 'libswrast.so') \ + "$addOnsDir/opengl/Legacy Software Rasterizer" + + # OpenGL Kit + mkdir -p $includeDir/os/opengl + cp ./include/HaikuGL/OpenGLKit.h $includeDir/os/ + cp ./include/HaikuGL/GLView.h $includeDir/os/opengl/ + cp ./include/HaikuGL/GLRenderer.h $includeDir/os/opengl/ + + # Standard GL headers + mkdir -p $includeDir/GL + cp ./include/GL/gl.h $includeDir/GL/ + cp ./include/GL/gl_mangle.h $includeDir/GL/ + cp ./include/GL/glext.h $includeDir/GL/ + + # Create GL symlink in opengl kit + symlinkRelative -s $includeDir/GL $includeDir/os/opengl/GL + + # devel package + packageEntries devel \ + $developDir + + # swrast renderer package + packageEntries swrast \ + "$addOnsDir/opengl/Legacy Software Rasterizer" +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + mesa${secondaryArchSuffix}_devel = $portVersion + devel:libGL${secondaryArchSuffix} = $portVersion + " + +REQUIRES_devel=" + mesa${secondaryArchSuffix} == $portVersion base + " + +# ===== Mesa OpenGL Add-ons ================================================== +# ----- swrast package ------------------------------------------------------- + +SUMMARY_swrast="Mesa legacy software rasterization renderer" +DESCRIPTION_swrast="This 3D BGLRenderer add-on provides Mesa software + rasterization on Haiku systems. Software rasterization performs all + 3D rendering on the systems CPU and doesn't require any specialized + hardware. Software rasterization is generally considered a fallback + 3D rendering method as performance is limited. + " +PROVIDES_swrast=" + mesa${secondaryArchSuffix}_swrast = $portVersion + " +REQUIRED_swrast=" + mesa$secondaryArchSuffix == $portVersion base + " diff --git a/sys-libs/mesa/mesa-9.1.1.recipe b/sys-libs/mesa/mesa-9.1.1.recipe index aea69935d..0b1cf8d1e 100644 --- a/sys-libs/mesa/mesa-9.1.1.recipe +++ b/sys-libs/mesa/mesa-9.1.1.recipe @@ -5,16 +5,21 @@ # package, mainly to keep the copyright info. SUMMARY="Multi-platform GL implementation" -DESCRIPTION="Mesa is an open-source implementation of the OpenGL specification - a system for rendering interactive 3D graphics. - -A variety of device drivers allows Mesa to be used in many different environments ranging from software emulation to complete hardware acceleration for modern GPUs. - -Mesa ties into several other open-source projects: the Direct Rendering Infrastructure and X.org to provide OpenGL support to users of X on Linux, FreeBSD and other operating systems." +DESCRIPTION=" +Mesa is an open-source implementation of the OpenGL specification - a system \ +for rendering interactive 3D graphics. +A variety of device drivers allows Mesa to be used in many different \ +environments ranging from software emulation to complete hardware acceleration \ +for modern GPUs. +Mesa ties into several other open-source projects: the Direct Rendering \ +Infrastructure and X.org to provide OpenGL support to users of X on Linux, \ +FreeBSD and other operating systems. +" HOMEPAGE="http://www.mesa3d.org/" COPYRIGHT="1999-2012 Brian Paul All Rights Reserved." LICENSE="MIT" SRC_URI="ftp://freedesktop.org/pub/mesa/9.1.1/MesaLib-9.1.1.tar.bz2" -CHECKSUM_MD5="6ea2bdc3b7ecfb4257b39814b4182580" +CHECKSUM_SHA256="3ae5741918a26ce6457b4427663b9e0ed31a3cae1b10b9009e55769a52e9adeb" REVISION="1" ARCHITECTURES="x86 x86_64" if [ $effectiveTargetArchitecture != x86_gcc2 ]; then diff --git a/sys-libs/mesa/mesa-9.3.recipe b/sys-libs/mesa/mesa-9.3.recipe deleted file mode 100644 index 480e35fa3..000000000 --- a/sys-libs/mesa/mesa-9.3.recipe +++ /dev/null @@ -1,96 +0,0 @@ -SUMMARY="Multi-platform GL implementation" -DESCRIPTION="Mesa is an open-source implementation of the OpenGL specification - a system for rendering interactive 3D graphics. - -Mesa fills the role of the Haiku OpenGL kit. -" - -HOMEPAGE="http://www.mesa3d.org/" -COPYRIGHT="1999-2013 Brian Paul All Rights Reserved." -LICENSE="MIT" -SRC_URI="git://anongit.freedesktop.org/mesa/mesa" -REVISION="1" -ARCHITECTURES="x86 x86_64" -if [ $effectiveTargetArchitecture != x86_gcc2 ]; then - # x86_gcc2 is fine as primary target architecture as long as we're building - # for a different secondary architecture. - ARCHITECTURES="$ARCHITECTURES x86_gcc2" -fi -SECONDARY_ARCHITECTURES="x86" - -PROVIDES=" - mesa$secondaryArchSuffix = $portVersion compat >= 9.3 - lib:libGL$secondaryArchSuffix = $portVersion compat >= 9.3 - " -REQUIRES=" - haiku$secondaryArchSuffix >= $haikuVersion - " -BUILD_REQUIRES=" - " -BUILD_PREREQUIRES=" - haiku${secondaryArchSuffix}_devel >= $haikuVersion - libxml2_python - llvm >= 3.2 - cmd:bison - cmd:find - cmd:flex - cmd:gcc$secondaryArchSuffix - cmd:ld$secondaryArchSuffix - cmd:scons - cmd:sed - " - -SOURCE_DIR="Mesa-$portVersion" - -BUILD() -{ - if [ -n "$secondaryArchSuffix" ]; then - export HAIKU_SECONDARY_ARCH="$effectiveTargetArchitecture" - fi - scons $jobArgs build=release - #scons $jobArgs build=debug -} - -INSTALL() -{ - mesaBuildDir=build/haiku-$effectiveTargetArchitecture - - mkdir -p $includeDir/GL - cp include/GL/gl.h $includeDir/GL/ - cp include/GL/gl_mangle.h $includeDir/GL/ - cp include/GL/glext.h $includeDir/GL/ - - # libGL.so makes up the core of our OpenGL kit - mkdir -p $libDir - cp $(find $mesaBuildDir -name 'libGL.so') $libDir - - # Our rendering add-ons - mkdir -p $addOnsDir/opengl - cp $(find $mesaBuildDir -name 'libswpipe.so') $addOnsDir/opengl/Softpipe - - # devel package - packageEntries devel \ - $developDir - # swpipe renderer package - packageEntries swpipe \ - $addOnsDir -} - -# ----- devel package ------------------------------------------------------- - -PROVIDES_devel=" - mesa${secondaryArchSuffix}_devel = $portVersion - " - -REQUIRES_devel=" - mesa$secondaryArchSuffix == $portVersion base - " - -# ----- swpipe package ------------------------------------------------------- - -PROVIDES_swpipe=" - mesa${secondaryArchSuffix}_swpipe = $portVersion - " - -REQUIRED_swpipe=" - mesa$secondaryArchSuffix == $portVersion base - " diff --git a/sys-libs/mesa/patches/mesa-10.0.1.patchset b/sys-libs/mesa/patches/mesa-10.0.1.patchset new file mode 100644 index 000000000..8dbbc212a --- /dev/null +++ b/sys-libs/mesa/patches/mesa-10.0.1.patchset @@ -0,0 +1,3073 @@ +From dfe5d4f383c16208d32c498e2c3e92095422d532 Mon Sep 17 00:00:00 2001 +From: Alexander von Gluck IV +Date: Sat, 14 Dec 2013 11:46:05 -0600 +Subject: [PATCH] Haiku: Add in public GL kit headers + +* These make up the base of what C++ GL Haiku + applications use for 3D rendering. +* Not placed in includes/GL to prevent Haiku headers + from getting installed on non-Haiku systems +--- + include/HaikuGL/GLRenderer.h | 76 +++++++++++++++++ + include/HaikuGL/GLView.h | 193 +++++++++++++++++++++++++++++++++++++++++++ + include/HaikuGL/OpenGLKit.h | 10 +++ + include/HaikuGL/README | 28 +++++++ + 4 files changed, 307 insertions(+) + create mode 100644 include/HaikuGL/GLRenderer.h + create mode 100644 include/HaikuGL/GLView.h + create mode 100644 include/HaikuGL/OpenGLKit.h + create mode 100644 include/HaikuGL/README + +diff --git a/include/HaikuGL/GLRenderer.h b/include/HaikuGL/GLRenderer.h +new file mode 100644 +index 0000000..7ffcc34 +--- /dev/null ++++ b/include/HaikuGL/GLRenderer.h +@@ -0,0 +1,76 @@ ++/* ++ * Copyright 2006, Philippe Houdoin. All rights reserved. ++ * Distributed under the terms of the MIT License. ++ ++ * This header defines BGLRenderer, the base class making up ++ * the Haiku GL renderer add-ons (essentially selfcontained C++ ++ * shared libraries that do the actual rendering such as ++ * libswpipe.so and libswrast.so) ++ */ ++#ifndef GLRENDERER_H ++#define GLRENDERER_H ++ ++ ++#include ++#include ++ ++ ++class BGLDispatcher; ++class GLRendererRoster; ++ ++typedef unsigned long renderer_id; ++ ++class BGLRenderer ++{ ++ // Private unimplemented copy constructors ++ BGLRenderer(const BGLRenderer &); ++ BGLRenderer & operator=(const BGLRenderer &); ++ ++public: ++ BGLRenderer(BGLView *view, ulong bgl_options, ++ BGLDispatcher *dispatcher); ++ virtual ~BGLRenderer(); ++ ++ void Acquire(); ++ void Release(); ++ ++ virtual void LockGL(); ++ virtual void UnlockGL(); ++ ++ virtual void SwapBuffers(bool VSync = false); ++ virtual void Draw(BRect updateRect); ++ virtual status_t CopyPixelsOut(BPoint source, BBitmap *dest); ++ virtual status_t CopyPixelsIn(BBitmap *source, BPoint dest); ++ ++ virtual void FrameResized(float width, float height); ++ ++ virtual void DirectConnected(direct_buffer_info *info); ++ virtual void EnableDirectMode(bool enabled); ++ ++ inline int32 ReferenceCount() const { return fRefCount; }; ++ inline ulong Options() const { return fOptions; }; ++ inline BGLView* GLView() { return fView; }; ++ inline BGLDispatcher* GLDispatcher() { return fDispatcher; }; ++ ++private: ++ friend class GLRendererRoster; ++ ++ virtual status_t _Reserved_Renderer_0(int32, void *); ++ virtual status_t _Reserved_Renderer_1(int32, void *); ++ virtual status_t _Reserved_Renderer_2(int32, void *); ++ virtual status_t _Reserved_Renderer_3(int32, void *); ++ virtual status_t _Reserved_Renderer_4(int32, void *); ++ ++ volatile int32 fRefCount; // How much we're still usefull? ++ BGLView* fView; // Never forget who is the boss! ++ ulong fOptions; // Keep that tune in memory ++ BGLDispatcher* fDispatcher;// Our personal GL API call dispatcher ++ ++ GLRendererRoster* fOwningRoster; ++ renderer_id fID; ++}; ++ ++extern "C" _EXPORT BGLRenderer* instantiate_gl_renderer(BGLView *view, ulong options, BGLDispatcher *dispatcher); ++ ++ ++#endif // GLRENDERER_H +diff --git a/include/HaikuGL/GLView.h b/include/HaikuGL/GLView.h +new file mode 100644 +index 0000000..b848578 +--- /dev/null ++++ b/include/HaikuGL/GLView.h +@@ -0,0 +1,193 @@ ++/* ++ * Copyright 2008-2013, Haiku, Inc. All Rights Reserved. ++ * Distributed under the terms of the MIT License. ++ * ++ * This header defines BGLView, the base class making up ++ * the Haiku GL Kit. ++ * ++ */ ++#ifndef BGLVIEW_H ++#define BGLVIEW_H ++ ++ ++#include ++ ++#define BGL_RGB 0 ++#define BGL_INDEX 1 ++#define BGL_SINGLE 0 ++#define BGL_DOUBLE 2 ++#define BGL_DIRECT 0 ++#define BGL_INDIRECT 4 ++#define BGL_ACCUM 8 ++#define BGL_ALPHA 16 ++#define BGL_DEPTH 32 ++#define BGL_OVERLAY 64 ++#define BGL_UNDERLAY 128 ++#define BGL_STENCIL 512 ++ ++#ifdef __cplusplus ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++ ++struct glview_direct_info; ++class BGLRenderer; ++class GLRendererRoster; ++ ++class BGLView : public BView { ++public: ++ BGLView(BRect rect, const char* name, ++ ulong resizingMode, ulong mode, ++ ulong options); ++ virtual ~BGLView(); ++ ++ void LockGL(); ++ void UnlockGL(); ++ void SwapBuffers(); ++ void SwapBuffers(bool vSync); ++ ++ BView* EmbeddedView(); // deprecated, returns NULL ++ void* GetGLProcAddress(const char* procName); ++ ++ status_t CopyPixelsOut(BPoint source, BBitmap *dest); ++ status_t CopyPixelsIn(BBitmap *source, BPoint dest); ++ ++ // Mesa's GLenum is uint where Be's ones was ulong! ++ virtual void ErrorCallback(unsigned long errorCode); ++ ++ virtual void Draw(BRect updateRect); ++ virtual void AttachedToWindow(); ++ virtual void AllAttached(); ++ virtual void DetachedFromWindow(); ++ virtual void AllDetached(); ++ ++ virtual void FrameResized(float newWidth, float newHeight); ++ virtual status_t Perform(perform_code d, void *arg); ++ ++ virtual status_t Archive(BMessage *data, bool deep = true) const; ++ ++ virtual void MessageReceived(BMessage *message); ++ virtual void SetResizingMode(uint32 mode); ++ ++ virtual void Show(); ++ virtual void Hide(); ++ ++ virtual BHandler* ResolveSpecifier(BMessage *msg, int32 index, ++ BMessage *specifier, int32 form, ++ const char *property); ++ virtual status_t GetSupportedSuites(BMessage *data); ++ ++ void DirectConnected(direct_buffer_info *info); ++ void EnableDirectMode(bool enabled); ++ ++ void* getGC() { return fGc; } // ??? ++ ++ virtual void GetPreferredSize(float* width, float* height); ++ ++private: ++ ++ virtual void _ReservedGLView1(); ++ virtual void _ReservedGLView2(); ++ virtual void _ReservedGLView3(); ++ virtual void _ReservedGLView4(); ++ virtual void _ReservedGLView5(); ++ virtual void _ReservedGLView6(); ++ virtual void _ReservedGLView7(); ++ virtual void _ReservedGLView8(); ++ ++ BGLView(const BGLView &); ++ BGLView &operator=(const BGLView &); ++ ++ void _DitherFront(); ++ bool _ConfirmDither(); ++ void _Draw(BRect rect); ++ void _CallDirectConnected(); ++ ++ void* fGc; ++ uint32 fOptions; ++ uint32 fDitherCount; ++ BLocker fDrawLock; ++ BLocker fDisplayLock; ++ glview_direct_info* fClipInfo; ++ ++ BGLRenderer* fRenderer; ++ GLRendererRoster* fRoster; ++ ++ BBitmap* fDitherMap; ++ BRect fBounds; ++ int16* fErrorBuffer[2]; ++ uint64 _reserved[8]; ++ ++ void _LockDraw(); ++ void _UnlockDraw(); ++ ++// BeOS compatibility ++private: ++ BGLView(BRect rect, char* name, ++ ulong resizingMode, ulong mode, ++ ulong options); ++}; ++ ++ ++class BGLScreen : public BWindowScreen { ++public: ++ BGLScreen(char* name, ++ ulong screenMode, ulong options, ++ status_t *error, bool debug=false); ++ ~BGLScreen(); ++ ++ void LockGL(); ++ void UnlockGL(); ++ void SwapBuffers(); ++ // Mesa's GLenum is uint where Be's ones was ulong! ++ virtual void ErrorCallback(unsigned long errorCode); ++ ++ virtual void ScreenConnected(bool connected); ++ virtual void FrameResized(float width, float height); ++ virtual status_t Perform(perform_code code, void *arg); ++ ++ virtual status_t Archive(BMessage *data, bool deep = true) const; ++ virtual void MessageReceived(BMessage *message); ++ ++ virtual void Show(); ++ virtual void Hide(); ++ ++ virtual BHandler* ResolveSpecifier(BMessage *message, ++ int32 index, ++ BMessage *specifier, ++ int32 form, ++ const char *property); ++ virtual status_t GetSupportedSuites(BMessage *data); ++ ++private: ++ ++ virtual void _ReservedGLScreen1(); ++ virtual void _ReservedGLScreen2(); ++ virtual void _ReservedGLScreen3(); ++ virtual void _ReservedGLScreen4(); ++ virtual void _ReservedGLScreen5(); ++ virtual void _ReservedGLScreen6(); ++ virtual void _ReservedGLScreen7(); ++ virtual void _ReservedGLScreen8(); ++ ++ BGLScreen(const BGLScreen &); ++ BGLScreen &operator=(const BGLScreen &); ++ ++ void* fGc; ++ long fOptions; ++ BLocker fDrawLock; ++ ++ int32 fColorSpace; ++ uint32 fScreenMode; ++ ++ uint64 _reserved[7]; ++}; ++ ++#endif // __cplusplus ++ ++#endif // BGLVIEW_H +diff --git a/include/HaikuGL/OpenGLKit.h b/include/HaikuGL/OpenGLKit.h +new file mode 100644 +index 0000000..f482871 +--- /dev/null ++++ b/include/HaikuGL/OpenGLKit.h +@@ -0,0 +1,10 @@ ++/* ++ * Master include file for the Haiku OpenGL Kit. ++ */ ++ ++#include ++#include ++ ++// Projects needing GL/glu.h and GL/glut.h should now ++// include these headers independently as glu and glut ++// are no longe core parts of mesa +diff --git a/include/HaikuGL/README b/include/HaikuGL/README +new file mode 100644 +index 0000000..0f8503f +--- /dev/null ++++ b/include/HaikuGL/README +@@ -0,0 +1,28 @@ ++These headers make up the Haiku Op*nGL kit. ++ ++Headers in this directory preserve some BeOSâ„¢ compatibility ++compatibility, so changes should be mentioned to the Haiku ++project mailing list. ++ ++http://haiku-os.org ++ ++Normal Haiku Op*enGL layout: ++ ++ * headers/os/OpenGLKit.h ++ * headers/os/opengl/GLView.h ++ * headers/os/opengl/GLRenderer.h ++ * headers/os/opengl/GL/gl.h ++ * headers/os/opengl/GL/gl_mangle.h ++ * headers/os/opengl/GL/glext.h ++ * headers/os/opengl/GL/osmesa.h (needed?) ++ ++Extras: ++ ++ * headers/os/opengl/GL/glu.h ++ * headers/os/opengl/GL/glut.h ++ ++OpenGLâ„¢ is a trademark of SGI. The usage of this trademark ++in the Haiku GL Kit is not a sign of any certification or ++endorsement by SGI or its affiliates. Usage is purely to ++allow legacy compatibility with the BeOSâ„¢ and its 3D GL ++rendering subsystem. +-- +1.8.3.4 + +From cc285772ce222f3672aa725dea18b52d9f94d2c2 Mon Sep 17 00:00:00 2001 +From: Alexander von Gluck IV +Date: Mon, 30 Dec 2013 23:49:06 -0600 +Subject: [PATCH] haiku: Fix missing HaikuGL header paths + +--- + src/gallium/targets/haiku-softpipe/SConscript | 1 + + src/gallium/targets/libgl-haiku/SConscript | 1 + + src/mesa/drivers/haiku/swrast/SConscript | 1 + + 3 files changed, 3 insertions(+) + +diff --git a/src/gallium/targets/haiku-softpipe/SConscript b/src/gallium/targets/haiku-softpipe/SConscript +index 40bf03c..16ce7cd 100644 +--- a/src/gallium/targets/haiku-softpipe/SConscript ++++ b/src/gallium/targets/haiku-softpipe/SConscript +@@ -21,6 +21,7 @@ env.Append(CPPPATH = [ + '#/src/mapi', + '#/src/mesa', + '#/src/mesa/main', ++ '#/include/HaikuGL', + '#/src/gallium/winsys/sw/hgl', + '/boot/system/develop/headers/private', + ]) +diff --git a/src/gallium/targets/libgl-haiku/SConscript b/src/gallium/targets/libgl-haiku/SConscript +index 2e6b628..43d15c5 100644 +--- a/src/gallium/targets/libgl-haiku/SConscript ++++ b/src/gallium/targets/libgl-haiku/SConscript +@@ -9,6 +9,7 @@ env.Append(CPPPATH = [ + '#/src/mapi', + '#/src/mesa', + '#/src/mesa/main', ++ '#/include/HaikuGL', + '/boot/system/develop/headers/private', + Dir('../../../mapi'), # src/mapi build path for python-generated GL API files/headers + ]) +diff --git a/src/mesa/drivers/haiku/swrast/SConscript b/src/mesa/drivers/haiku/swrast/SConscript +index 71ce88e..ca0423e 100644 +--- a/src/mesa/drivers/haiku/swrast/SConscript ++++ b/src/mesa/drivers/haiku/swrast/SConscript +@@ -6,6 +6,7 @@ env.Append(CPPPATH = [ + '#/src/mapi', + '#/src/mesa', + '#/src/mesa/main', ++ '#/include/HaikuGL', + '/boot/system/develop/headers/private', + Dir('../../../mapi'), # src/mapi build path for python-generated GL API files/headers + ]) +-- +1.8.3.4 + +From 72e0f3de1f2df3407dbf257183c78bd3f81c1a12 Mon Sep 17 00:00:00 2001 +From: Alexander von Gluck IV +Date: Tue, 31 Dec 2013 15:39:49 -0600 +Subject: [PATCH] haiku libGL: Move from gallium target to src/hgl + +* The Haiku renderers need to link to libGL to function properly + in all usage contexts. As mesa drivers build before gallium + targets, we couldn't properly link the mesa swrast driver to + the gallium libGL target for Haiku. +* This is likely better as it mimics how glx is laid out ensuring + the Haiku libGL is better understood. +* All renderers properly link in libGL now. +--- + src/SConscript | 5 + + src/gallium/SConscript | 1 - + src/gallium/targets/haiku-softpipe/SConscript | 2 + + src/gallium/targets/libgl-haiku/GLDispatcher.cpp | 72 --- + src/gallium/targets/libgl-haiku/GLDispatcher.h | 109 ---- + src/gallium/targets/libgl-haiku/GLRenderer.cpp | 106 ---- + .../targets/libgl-haiku/GLRendererRoster.cpp | 224 ------- + src/gallium/targets/libgl-haiku/GLRendererRoster.h | 51 -- + src/gallium/targets/libgl-haiku/GLView.cpp | 643 --------------------- + src/gallium/targets/libgl-haiku/SConscript | 35 -- + src/hgl/GLDispatcher.cpp | 72 +++ + src/hgl/GLDispatcher.h | 109 ++++ + src/hgl/GLRenderer.cpp | 106 ++++ + src/hgl/GLRendererRoster.cpp | 224 +++++++ + src/hgl/GLRendererRoster.h | 51 ++ + src/hgl/GLView.cpp | 643 +++++++++++++++++++++ + src/hgl/SConscript | 36 ++ + src/mesa/drivers/haiku/swrast/SConscript | 2 + + 18 files changed, 1250 insertions(+), 1241 deletions(-) + delete mode 100644 src/gallium/targets/libgl-haiku/GLDispatcher.cpp + delete mode 100644 src/gallium/targets/libgl-haiku/GLDispatcher.h + delete mode 100644 src/gallium/targets/libgl-haiku/GLRenderer.cpp + delete mode 100644 src/gallium/targets/libgl-haiku/GLRendererRoster.cpp + delete mode 100644 src/gallium/targets/libgl-haiku/GLRendererRoster.h + delete mode 100644 src/gallium/targets/libgl-haiku/GLView.cpp + delete mode 100644 src/gallium/targets/libgl-haiku/SConscript + create mode 100644 src/hgl/GLDispatcher.cpp + create mode 100644 src/hgl/GLDispatcher.h + create mode 100644 src/hgl/GLRenderer.cpp + create mode 100644 src/hgl/GLRendererRoster.cpp + create mode 100644 src/hgl/GLRendererRoster.h + create mode 100644 src/hgl/GLView.cpp + create mode 100644 src/hgl/SConscript + +diff --git a/src/SConscript b/src/SConscript +index 1465918..a24acea 100644 +--- a/src/SConscript ++++ b/src/SConscript +@@ -18,6 +18,11 @@ if env['hostonly']: + # enable OpenGL ES support. + SConscript('mapi/glapi/gen/SConscript') + SConscript('mapi/glapi/SConscript') ++ ++# Haiku C++ libGL dispatch (renderers depend on libgl) ++if env['platform'] in ['haiku']: ++ SConscript('hgl/SConscript') ++ + SConscript('mesa/SConscript') + + SConscript('mapi/vgapi/SConscript') +diff --git a/src/gallium/SConscript b/src/gallium/SConscript +index 6e27be2..32bbdbe 100644 +--- a/src/gallium/SConscript ++++ b/src/gallium/SConscript +@@ -119,7 +119,6 @@ if not env['embedded']: + if env['platform'] == 'haiku': + SConscript([ + 'targets/haiku-softpipe/SConscript', +- 'targets/libgl-haiku/SConscript', + ]) + + if env['dri']: +diff --git a/src/gallium/targets/haiku-softpipe/SConscript b/src/gallium/targets/haiku-softpipe/SConscript +index 16ce7cd..0381d05 100644 +--- a/src/gallium/targets/haiku-softpipe/SConscript ++++ b/src/gallium/targets/haiku-softpipe/SConscript +@@ -17,6 +17,8 @@ if True: + ]) + env.Prepend(LIBS = [softpipe]) + ++env.Prepend(LIBS = [libgl]) ++ + env.Append(CPPPATH = [ + '#/src/mapi', + '#/src/mesa', +diff --git a/src/gallium/targets/libgl-haiku/GLDispatcher.cpp b/src/gallium/targets/libgl-haiku/GLDispatcher.cpp +deleted file mode 100644 +index 46b91d5..0000000 +--- a/src/gallium/targets/libgl-haiku/GLDispatcher.cpp ++++ /dev/null +@@ -1,72 +0,0 @@ +-/* +- * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. +- * Copyright 2000-2012 Haiku, Inc. All Rights Reserved. +- * Distributed under the terms of the MIT License. +- * +- * Authors: +- * Brian Paul +- * Philippe Houdoin +- * Alexander von Gluck IV +- */ +- +- +-extern "C" { +-#include "glapi/glapi.h" +-#include "glapi/glapi_priv.h" +- +-/* +- * NOTE: this file portion implements C-based dispatch of the OpenGL entrypoints +- * (glAccum, glBegin, etc). +- * This code IS NOT USED if we're compiling on an x86 system and using +- * the glapi_x86.S assembly code. +- */ +-#if !(defined(USE_X86_ASM) || defined(USE_SPARC_ASM)) +- +-#define KEYWORD1 PUBLIC +-#define KEYWORD2 +-#define NAME(func) gl##func +- +-#define DISPATCH(func, args, msg) \ +- const struct _glapi_table* dispatch; \ +- dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\ +- (dispatch->func) args +- +-#define RETURN_DISPATCH(func, args, msg) \ +- const struct _glapi_table* dispatch; \ +- dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\ +- return (dispatch->func) args +- +-#endif +-} +- +- +-/* NOTE: this file portion implement a thin OpenGL entrypoints dispatching +- C++ wrapper class +- */ +- +-#include "GLDispatcher.h" +- +-BGLDispatcher::BGLDispatcher() +-{ +-} +- +- +-BGLDispatcher::~BGLDispatcher() +-{ +-} +- +- +-status_t +-BGLDispatcher::CheckTable(const struct _glapi_table* table) +-{ +- _glapi_check_table(table ? table : _glapi_get_dispatch()); +- return B_OK; +-} +- +- +-status_t +-BGLDispatcher::SetTable(struct _glapi_table* table) +-{ +- _glapi_set_dispatch(table); +- return B_OK; +-} +diff --git a/src/gallium/targets/libgl-haiku/GLDispatcher.h b/src/gallium/targets/libgl-haiku/GLDispatcher.h +deleted file mode 100644 +index 44bca8c..0000000 +--- a/src/gallium/targets/libgl-haiku/GLDispatcher.h ++++ /dev/null +@@ -1,109 +0,0 @@ +-/* +- * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. +- * Copyright 2000-2012 Haiku, Inc. All Rights Reserved. +- * Distributed under the terms of the MIT License. +- * +- * Authors: +- * Brian Paul +- * Philippe Houdoin +- */ +-#ifndef GLDISPATCHER_H +-#define GLDISPATCHER_H +- +- +-#include +-#include +-#include +- +-#include "glheader.h" +- +-extern "C" { +-#include "glapi/glapi.h" +-} +- +- +-class BGLDispatcher +-{ +- // Private unimplemented copy constructors +- BGLDispatcher(const BGLDispatcher &); +- BGLDispatcher & operator=(const BGLDispatcher &); +- +- public: +- BGLDispatcher(); +- ~BGLDispatcher(); +- +- void SetCurrentContext(void* context); +- void* CurrentContext(); +- +- struct _glapi_table* Table(); +- status_t CheckTable( +- const struct _glapi_table* dispatch = NULL); +- status_t SetTable(struct _glapi_table* dispatch); +- uint32 TableSize(); +- +- const _glapi_proc operator[](const char* functionName); +- const char* operator[](uint32 offset); +- +- const _glapi_proc AddressOf(const char* functionName); +- uint32 OffsetOf(const char* functionName); +-}; +- +- +-// Inlines methods +-inline void +-BGLDispatcher::SetCurrentContext(void* context) +-{ +- _glapi_set_context(context); +-} +- +- +-inline void* +-BGLDispatcher::CurrentContext() +-{ +- return _glapi_get_context(); +-} +- +- +-inline struct _glapi_table* +-BGLDispatcher::Table() +-{ +- return _glapi_get_dispatch(); +-} +- +- +-inline uint32 +-BGLDispatcher::TableSize() +-{ +- return _glapi_get_dispatch_table_size(); +-} +- +- +-inline const _glapi_proc +-BGLDispatcher::operator[](const char* functionName) +-{ +- return _glapi_get_proc_address(functionName); +-} +- +- +-inline const char* +-BGLDispatcher::operator[](uint32 offset) +-{ +- return _glapi_get_proc_name((GLuint) offset); +-} +- +- +-inline const _glapi_proc +-BGLDispatcher::AddressOf(const char* functionName) +-{ +- return _glapi_get_proc_address(functionName); +-} +- +- +-inline uint32 +-BGLDispatcher::OffsetOf(const char* functionName) +-{ +- return (uint32) _glapi_get_proc_offset(functionName); +-} +- +- +-#endif // GLDISPATCHER_H +diff --git a/src/gallium/targets/libgl-haiku/GLRenderer.cpp b/src/gallium/targets/libgl-haiku/GLRenderer.cpp +deleted file mode 100644 +index 4573a64..0000000 +--- a/src/gallium/targets/libgl-haiku/GLRenderer.cpp ++++ /dev/null +@@ -1,106 +0,0 @@ +-/* +- * Copyright 2006-2008, Philippe Houdoin. All rights reserved. +- * Distributed under the terms of the MIT License. +- */ +- +- +-#include +- +-#include "GLRenderer.h" +- +-#include "GLDispatcher.h" +- +- +-BGLRenderer::BGLRenderer(BGLView* view, ulong glOptions, +- BGLDispatcher* dispatcher) +- : +- fRefCount(1), +- fView(view), +- fOptions(glOptions), +- fDispatcher(dispatcher) +-{ +-} +- +- +-BGLRenderer::~BGLRenderer() +-{ +- delete fDispatcher; +-} +- +- +-void +-BGLRenderer::Acquire() +-{ +- atomic_add(&fRefCount, 1); +-} +- +- +-void +-BGLRenderer::Release() +-{ +- if (atomic_add(&fRefCount, -1) < 1) +- delete this; +-} +- +- +-void +-BGLRenderer::LockGL() +-{ +-} +- +- +-void +-BGLRenderer::UnlockGL() +-{ +-} +- +- +-void +-BGLRenderer::SwapBuffers(bool VSync) +-{ +-} +- +- +-void +-BGLRenderer::Draw(BRect updateRect) +-{ +-} +- +- +-status_t +-BGLRenderer::CopyPixelsOut(BPoint source, BBitmap* dest) +-{ +- return B_ERROR; +-} +- +- +-status_t +-BGLRenderer::CopyPixelsIn(BBitmap* source, BPoint dest) +-{ +- return B_ERROR; +-} +- +- +-void +-BGLRenderer::FrameResized(float width, float height) +-{ +-} +- +- +-void +-BGLRenderer::DirectConnected(direct_buffer_info* info) +-{ +-} +- +- +-void +-BGLRenderer::EnableDirectMode(bool enabled) +-{ +-} +- +- +-status_t BGLRenderer::_Reserved_Renderer_0(int32 n, void* p) { return B_ERROR; } +-status_t BGLRenderer::_Reserved_Renderer_1(int32 n, void* p) { return B_ERROR; } +-status_t BGLRenderer::_Reserved_Renderer_2(int32 n, void* p) { return B_ERROR; } +-status_t BGLRenderer::_Reserved_Renderer_3(int32 n, void* p) { return B_ERROR; } +-status_t BGLRenderer::_Reserved_Renderer_4(int32 n, void* p) { return B_ERROR; } +diff --git a/src/gallium/targets/libgl-haiku/GLRendererRoster.cpp b/src/gallium/targets/libgl-haiku/GLRendererRoster.cpp +deleted file mode 100644 +index 1712a87..0000000 +--- a/src/gallium/targets/libgl-haiku/GLRendererRoster.cpp ++++ /dev/null +@@ -1,224 +0,0 @@ +-/* +- * Copyright 2006-2012 Haiku, Inc. All Rights Reserved. +- * Distributed under the terms of the MIT License. +- * +- * Authors: +- * Philippe Houdoin +- * Alexander von Gluck IV +- */ +- +- +-#include +-#include +- +-#include +-#include +- +-#include +-#include +-#include +-#include +-#include "GLDispatcher.h" +-#include "GLRendererRoster.h" +- +-#include +-#include +- +- +-extern "C" status_t _kern_get_safemode_option(const char* parameter, +- char* buffer, size_t* _bufferSize); +- +- +-GLRendererRoster::GLRendererRoster(BGLView* view, ulong options) +- : +- fNextID(0), +- fView(view), +- fOptions(options), +- fSafeMode(false), +- fABISubDirectory(NULL) +-{ +- char parameter[32]; +- size_t parameterLength = sizeof(parameter); +- +- if (_kern_get_safemode_option(B_SAFEMODE_SAFE_MODE, +- parameter, ¶meterLength) == B_OK) { +- if (!strcasecmp(parameter, "enabled") || !strcasecmp(parameter, "on") +- || !strcasecmp(parameter, "true") || !strcasecmp(parameter, "yes") +- || !strcasecmp(parameter, "enable") || !strcmp(parameter, "1")) +- fSafeMode = true; +- } +- +- if (_kern_get_safemode_option(B_SAFEMODE_DISABLE_USER_ADD_ONS, +- parameter, ¶meterLength) == B_OK) { +- if (!strcasecmp(parameter, "enabled") || !strcasecmp(parameter, "on") +- || !strcasecmp(parameter, "true") || !strcasecmp(parameter, "yes") +- || !strcasecmp(parameter, "enable") || !strcmp(parameter, "1")) +- fSafeMode = true; +- } +- +- // We might run in compatibility mode on a system with a different ABI. The +- // renderers matching our ABI can usually be found in respective +- // subdirectories of the opengl add-ons directories. +- system_info info; +- if (get_system_info(&info) == B_OK +- && (info.abi & B_HAIKU_ABI_MAJOR) +- != (B_HAIKU_ABI & B_HAIKU_ABI_MAJOR)) { +- switch (B_HAIKU_ABI & B_HAIKU_ABI_MAJOR) { +- case B_HAIKU_ABI_GCC_2: +- fABISubDirectory = "gcc2"; +- break; +- case B_HAIKU_ABI_GCC_4: +- fABISubDirectory = "gcc4"; +- break; +- } +- } +- +- AddDefaultPaths(); +-} +- +- +-GLRendererRoster::~GLRendererRoster() +-{ +- +-} +- +- +-BGLRenderer* +-GLRendererRoster::GetRenderer(int32 id) +-{ +- RendererMap::const_iterator iterator = fRenderers.find(id); +- if (iterator == fRenderers.end()) +- return NULL; +- +- struct renderer_item item = iterator->second; +- return item.renderer; +-} +- +- +-void +-GLRendererRoster::AddDefaultPaths() +-{ +- // add user directories first, so that they can override system renderers +- const directory_which paths[] = { +- B_USER_NONPACKAGED_ADDONS_DIRECTORY, +- B_USER_ADDONS_DIRECTORY, +- B_SYSTEM_ADDONS_DIRECTORY, +- }; +- +- for (uint32 i = fSafeMode ? 4 : 0; +- i < sizeof(paths) / sizeof(paths[0]); i++) { +- BPath path; +- status_t status = find_directory(paths[i], &path, true); +- if (status == B_OK && path.Append("opengl") == B_OK) +- AddPath(path.Path()); +- } +-} +- +- +-status_t +-GLRendererRoster::AddPath(const char* path) +-{ +- BDirectory directory(path); +- status_t status = directory.InitCheck(); +- if (status < B_OK) +- return status; +- +- // if a subdirectory for our ABI exists, use that instead +- if (fABISubDirectory != NULL) { +- BEntry entry(&directory, fABISubDirectory); +- if (entry.IsDirectory()) { +- status = directory.SetTo(&entry); +- if (status != B_OK) +- return status; +- } +- } +- +- node_ref nodeRef; +- status = directory.GetNodeRef(&nodeRef); +- if (status < B_OK) +- return status; +- +- int32 count = 0; +- int32 files = 0; +- +- entry_ref ref; +- BEntry entry; +- while (directory.GetNextRef(&ref) == B_OK) { +- entry.SetTo(&ref); +- if (entry.InitCheck() == B_OK && !entry.IsFile()) +- continue; +- +- if (CreateRenderer(ref) == B_OK) +- count++; +- +- files++; +- } +- +- if (files != 0 && count == 0) +- return B_BAD_VALUE; +- +- return B_OK; +-} +- +- +-status_t +-GLRendererRoster::AddRenderer(BGLRenderer* renderer, +- image_id image, const entry_ref* ref, ino_t node) +-{ +- renderer_item item; +- item.renderer = renderer; +- item.image = image; +- item.node = node; +- if (ref != NULL) +- item.ref = *ref; +- +- try { +- fRenderers[fNextID] = item; +- } catch (...) { +- return B_NO_MEMORY; +- } +- +- renderer->fOwningRoster = this; +- renderer->fID = fNextID++; +- return B_OK; +-} +- +- +-status_t +-GLRendererRoster::CreateRenderer(const entry_ref& ref) +-{ +- BEntry entry(&ref); +- node_ref nodeRef; +- status_t status = entry.GetNodeRef(&nodeRef); +- if (status < B_OK) +- return status; +- +- BPath path(&ref); +- image_id image = load_add_on(path.Path()); +- if (image < B_OK) +- return image; +- +- BGLRenderer* (*instantiate_renderer) +- (BGLView* view, ulong options, BGLDispatcher* dispatcher); +- +- status = get_image_symbol(image, "instantiate_gl_renderer", +- B_SYMBOL_TYPE_TEXT, (void**)&instantiate_renderer); +- if (status == B_OK) { +- BGLRenderer* renderer +- = instantiate_renderer(fView, fOptions, new BGLDispatcher()); +- if (!renderer) { +- unload_add_on(image); +- return B_UNSUPPORTED; +- } +- +- if (AddRenderer(renderer, image, &ref, nodeRef.node) != B_OK) { +- renderer->Release(); +- // this will delete the renderer +- unload_add_on(image); +- } +- return B_OK; +- } +- unload_add_on(image); +- +- return status; +-} +diff --git a/src/gallium/targets/libgl-haiku/GLRendererRoster.h b/src/gallium/targets/libgl-haiku/GLRendererRoster.h +deleted file mode 100644 +index 5c8da27..0000000 +--- a/src/gallium/targets/libgl-haiku/GLRendererRoster.h ++++ /dev/null +@@ -1,51 +0,0 @@ +-/* +- * Copyright 2006-2012, Haiku, Inc. All Rights Reserved. +- * Distributed under the terms of the MIT License. +- * +- * Authors: +- * Philippe Houdoin +- */ +-#ifndef _GLRENDERER_ROSTER_H +-#define _GLRENDERER_ROSTER_H +- +- +-#include +- +-#include +- +- +-struct renderer_item { +- BGLRenderer* renderer; +- entry_ref ref; +- ino_t node; +- image_id image; +-}; +- +-typedef std::map RendererMap; +- +- +-class GLRendererRoster { +- public: +- GLRendererRoster(BGLView* view, ulong options); +- virtual ~GLRendererRoster(); +- +- BGLRenderer* GetRenderer(int32 id = 0); +- +- private: +- void AddDefaultPaths(); +- status_t AddPath(const char* path); +- status_t AddRenderer(BGLRenderer* renderer, +- image_id image, const entry_ref* ref, ino_t node); +- status_t CreateRenderer(const entry_ref& ref); +- +- RendererMap fRenderers; +- int32 fNextID; +- BGLView* fView; +- ulong fOptions; +- bool fSafeMode; +- const char* fABISubDirectory; +- +-}; +- +- +-#endif /* _GLRENDERER_ROSTER_H */ +diff --git a/src/gallium/targets/libgl-haiku/GLView.cpp b/src/gallium/targets/libgl-haiku/GLView.cpp +deleted file mode 100644 +index 9ae5b5c..0000000 +--- a/src/gallium/targets/libgl-haiku/GLView.cpp ++++ /dev/null +@@ -1,643 +0,0 @@ +-/* +- * Copyright 2006-2012, Haiku. All rights reserved. +- * Distributed under the terms of the MIT License. +- * +- * Authors: +- * Jérôme Duval, korli@users.berlios.de +- * Philippe Houdoin, philippe.houdoin@free.fr +- * Stefano Ceccherini, burton666@libero.it +- */ +- +-#include +- +-#include +- +-#include +-#include +-#include +-#include +- +-#include +-#include +- +-#include "interface/DirectWindowPrivate.h" +-#include "GLDispatcher.h" +-#include "GLRendererRoster.h" +- +- +-struct glview_direct_info { +- direct_buffer_info* direct_info; +- bool direct_connected; +- bool enable_direct_mode; +- +- glview_direct_info(); +- ~glview_direct_info(); +-}; +- +- +-BGLView::BGLView(BRect rect, const char* name, ulong resizingMode, ulong mode, +- ulong options) +- : +- BView(rect, name, B_FOLLOW_ALL_SIDES, mode | B_WILL_DRAW | B_FRAME_EVENTS), +- // | B_FULL_UPDATE_ON_RESIZE) +- fGc(NULL), +- fOptions(options), +- fDitherCount(0), +- fDrawLock("BGLView draw lock"), +- fDisplayLock("BGLView display lock"), +- fClipInfo(NULL), +- fRenderer(NULL), +- fRoster(NULL), +- fDitherMap(NULL) +-{ +- fRoster = new GLRendererRoster(this, options); +-} +- +- +-BGLView::~BGLView() +-{ +- delete fClipInfo; +- if (fRenderer) +- fRenderer->Release(); +-} +- +- +-void +-BGLView::LockGL() +-{ +- // TODO: acquire the OpenGL API lock it on this glview +- +- fDisplayLock.Lock(); +- if (fRenderer) +- fRenderer->LockGL(); +-} +- +- +-void +-BGLView::UnlockGL() +-{ +- if (fRenderer) +- fRenderer->UnlockGL(); +- fDisplayLock.Unlock(); +- +- // TODO: release the GL API lock to others glviews +-} +- +- +-void +-BGLView::SwapBuffers() +-{ +- SwapBuffers(false); +-} +- +- +-void +-BGLView::SwapBuffers(bool vSync) +-{ +- if (fRenderer) { +- _LockDraw(); +- fRenderer->SwapBuffers(vSync); +- _UnlockDraw(); +- } +-} +- +- +-BView* +-BGLView::EmbeddedView() +-{ +- return NULL; +-} +- +- +-void* +-BGLView::GetGLProcAddress(const char* procName) +-{ +- BGLDispatcher* glDispatcher = NULL; +- +- if (fRenderer) +- glDispatcher = fRenderer->GLDispatcher(); +- +- if (glDispatcher) +- return (void*)glDispatcher->AddressOf(procName); +- +- return NULL; +-} +- +- +-status_t +-BGLView::CopyPixelsOut(BPoint source, BBitmap* dest) +-{ +- if (!fRenderer) +- return B_ERROR; +- +- if (!dest || !dest->Bounds().IsValid()) +- return B_BAD_VALUE; +- +- return fRenderer->CopyPixelsOut(source, dest); +-} +- +- +-status_t +-BGLView::CopyPixelsIn(BBitmap* source, BPoint dest) +-{ +- if (!fRenderer) +- return B_ERROR; +- +- if (!source || !source->Bounds().IsValid()) +- return B_BAD_VALUE; +- +- return fRenderer->CopyPixelsIn(source, dest); +-} +- +- +-/*! Mesa's GLenum is not ulong but uint, so we can't use GLenum +- without breaking this method signature. +- Instead, we have to use the effective BeOS's SGI OpenGL GLenum type: +- unsigned long. +- */ +-void +-BGLView::ErrorCallback(unsigned long errorCode) +-{ +- char msg[32]; +- sprintf(msg, "GL: Error code $%04lx.", errorCode); +- // TODO: under BeOS R5, it call debugger(msg); +- fprintf(stderr, "%s\n", msg); +-} +- +- +-void +-BGLView::Draw(BRect updateRect) +-{ +- if (fRenderer) { +- _LockDraw(); +- fRenderer->Draw(updateRect); +- _UnlockDraw(); +- return; +- } +- // TODO: auto-size and center the string +- MovePenTo(8, 32); +- DrawString("No OpenGL renderer available!"); +-} +- +- +-void +-BGLView::AttachedToWindow() +-{ +- BView::AttachedToWindow(); +- +- fBounds = Bounds(); +- for (BView* view = this; view != NULL; view = view->Parent()) +- view->ConvertToParent(&fBounds); +- +- fRenderer = fRoster->GetRenderer(); +- if (fRenderer != NULL) { +- // Jackburton: The following code was commented because it doesn't look +- // good in "direct" mode: +- // when the window is moved, the app_server doesn't paint the view's +- // background, and the stuff behind the window itself shows up. +- // Setting the view color to black, instead, looks a bit more elegant. +-#if 0 +- // Don't paint white window background when resized +- SetViewColor(B_TRANSPARENT_32_BIT); +-#else +- SetViewColor(0, 0, 0); +-#endif +- +- // Set default OpenGL viewport: +- LockGL(); +- glViewport(0, 0, Bounds().IntegerWidth(), Bounds().IntegerHeight()); +- UnlockGL(); +- fRenderer->FrameResized(Bounds().IntegerWidth(), +- Bounds().IntegerHeight()); +- +- if (fClipInfo) { +- fRenderer->DirectConnected(fClipInfo->direct_info); +- fRenderer->EnableDirectMode(fClipInfo->enable_direct_mode); +- } +- +- return; +- } +- +- fprintf(stderr, "no renderer found! \n"); +- +- // No Renderer, no rendering. Setup a minimal "No Renderer" string drawing +- // context +- SetFont(be_bold_font); +- // SetFontSize(16); +-} +- +- +-void +-BGLView::AllAttached() +-{ +- BView::AllAttached(); +-} +- +- +-void +-BGLView::DetachedFromWindow() +-{ +- if (fRenderer) +- fRenderer->Release(); +- fRenderer = NULL; +- +- BView::DetachedFromWindow(); +-} +- +- +-void +-BGLView::AllDetached() +-{ +- BView::AllDetached(); +-} +- +- +-void +-BGLView::FrameResized(float width, float height) +-{ +- fBounds = Bounds(); +- for (BView* v = this; v; v = v->Parent()) +- v->ConvertToParent(&fBounds); +- +- if (fRenderer) { +- LockGL(); +- _LockDraw(); +- _CallDirectConnected(); +- fRenderer->FrameResized(width, height); +- _UnlockDraw(); +- UnlockGL(); +- } +- +- BView::FrameResized(width, height); +-} +- +- +-status_t +-BGLView::Perform(perform_code d, void* arg) +-{ +- return BView::Perform(d, arg); +-} +- +- +-status_t +-BGLView::Archive(BMessage* data, bool deep) const +-{ +- return BView::Archive(data, deep); +-} +- +- +-void +-BGLView::MessageReceived(BMessage* msg) +-{ +- BView::MessageReceived(msg); +-} +- +- +-void +-BGLView::SetResizingMode(uint32 mode) +-{ +- BView::SetResizingMode(mode); +-} +- +- +-void +-BGLView::GetPreferredSize(float* _width, float* _height) +-{ +- if (_width) +- *_width = 0; +- if (_height) +- *_height = 0; +-} +- +- +-void +-BGLView::Show() +-{ +- BView::Show(); +-} +- +- +-void +-BGLView::Hide() +-{ +- BView::Hide(); +-} +- +- +-BHandler* +-BGLView::ResolveSpecifier(BMessage* msg, int32 index, BMessage* specifier, +- int32 form, const char* property) +-{ +- return BView::ResolveSpecifier(msg, index, specifier, form, property); +-} +- +- +-status_t +-BGLView::GetSupportedSuites(BMessage* data) +-{ +- return BView::GetSupportedSuites(data); +-} +- +- +-void +-BGLView::DirectConnected(direct_buffer_info* info) +-{ +- if (fClipInfo == NULL) { +- fClipInfo = new (std::nothrow) glview_direct_info(); +- if (fClipInfo == NULL) +- return; +- } +- +- direct_buffer_info* localInfo = fClipInfo->direct_info; +- +- switch (info->buffer_state & B_DIRECT_MODE_MASK) { +- case B_DIRECT_START: +- fClipInfo->direct_connected = true; +- memcpy(localInfo, info, DIRECT_BUFFER_INFO_AREA_SIZE); +- _UnlockDraw(); +- break; +- +- case B_DIRECT_MODIFY: +- _LockDraw(); +- memcpy(localInfo, info, DIRECT_BUFFER_INFO_AREA_SIZE); +- _UnlockDraw(); +- break; +- +- case B_DIRECT_STOP: +- fClipInfo->direct_connected = false; +- _LockDraw(); +- break; +- } +- +- if (fRenderer) +- _CallDirectConnected(); +-} +- +- +-void +-BGLView::EnableDirectMode(bool enabled) +-{ +- if (fRenderer) +- fRenderer->EnableDirectMode(enabled); +- if (fClipInfo == NULL) { +- fClipInfo = new (std::nothrow) glview_direct_info(); +- if (fClipInfo == NULL) +- return; +- } +- +- fClipInfo->enable_direct_mode = enabled; +-} +- +- +-void +-BGLView::_LockDraw() +-{ +- if (!fClipInfo || !fClipInfo->enable_direct_mode) +- return; +- +- fDrawLock.Lock(); +-} +- +- +-void +-BGLView::_UnlockDraw() +-{ +- if (!fClipInfo || !fClipInfo->enable_direct_mode) +- return; +- +- fDrawLock.Unlock(); +-} +- +- +-void +-BGLView::_CallDirectConnected() +-{ +- if (!fClipInfo) +- return; +- +- direct_buffer_info* localInfo = fClipInfo->direct_info; +- direct_buffer_info* info = (direct_buffer_info*)malloc( +- DIRECT_BUFFER_INFO_AREA_SIZE); +- if (info == NULL) +- return; +- +- memcpy(info, localInfo, DIRECT_BUFFER_INFO_AREA_SIZE); +- +- // Collect the rects into a BRegion, then clip to the view's bounds +- BRegion region; +- for (uint32 c = 0; c < localInfo->clip_list_count; c++) +- region.Include(localInfo->clip_list[c]); +- BRegion boundsRegion = fBounds.OffsetByCopy(localInfo->window_bounds.left, +- localInfo->window_bounds.top); +- info->window_bounds = boundsRegion.RectAtInt(0); +- // window_bounds are now view bounds +- region.IntersectWith(&boundsRegion); +- +- info->clip_list_count = region.CountRects(); +- info->clip_bounds = region.FrameInt(); +- +- for (uint32 c = 0; c < info->clip_list_count; c++) +- info->clip_list[c] = region.RectAtInt(c); +- fRenderer->DirectConnected(info); +- free(info); +-} +- +- +-//---- virtual reserved methods ---------- +- +- +-void BGLView::_ReservedGLView1() {} +-void BGLView::_ReservedGLView2() {} +-void BGLView::_ReservedGLView3() {} +-void BGLView::_ReservedGLView4() {} +-void BGLView::_ReservedGLView5() {} +-void BGLView::_ReservedGLView6() {} +-void BGLView::_ReservedGLView7() {} +-void BGLView::_ReservedGLView8() {} +- +- +-// #pragma mark - +- +- +-// BeOS compatibility: contrary to others BView's contructors, +-// BGLView one wants a non-const name argument. +-BGLView::BGLView(BRect rect, char* name, ulong resizingMode, ulong mode, +- ulong options) +- : +- BView(rect, name, B_FOLLOW_ALL_SIDES, mode | B_WILL_DRAW | B_FRAME_EVENTS), +- fGc(NULL), +- fOptions(options), +- fDitherCount(0), +- fDrawLock("BGLView draw lock"), +- fDisplayLock("BGLView display lock"), +- fClipInfo(NULL), +- fRenderer(NULL), +- fRoster(NULL), +- fDitherMap(NULL) +-{ +- fRoster = new GLRendererRoster(this, options); +-} +- +- +-#if 0 +-// TODO: implement BGLScreen class... +- +- +-BGLScreen::BGLScreen(char* name, ulong screenMode, ulong options, +- status_t* error, bool debug) +- : +- BWindowScreen(name, screenMode, error, debug) +-{ +-} +- +- +-BGLScreen::~BGLScreen() +-{ +-} +- +- +-void +-BGLScreen::LockGL() +-{ +-} +- +- +-void +-BGLScreen::UnlockGL() +-{ +-} +- +- +-void +-BGLScreen::SwapBuffers() +-{ +-} +- +- +-void +-BGLScreen::ErrorCallback(unsigned long errorCode) +-{ +- // Mesa's GLenum is not ulong but uint! +- char msg[32]; +- sprintf(msg, "GL: Error code $%04lx.", errorCode); +- // debugger(msg); +- fprintf(stderr, "%s\n", msg); +- return; +-} +- +- +-void +-BGLScreen::ScreenConnected(bool enabled) +-{ +-} +- +- +-void +-BGLScreen::FrameResized(float width, float height) +-{ +- return BWindowScreen::FrameResized(width, height); +-} +- +- +-status_t +-BGLScreen::Perform(perform_code d, void* arg) +-{ +- return BWindowScreen::Perform(d, arg); +-} +- +- +-status_t +-BGLScreen::Archive(BMessage* data, bool deep) const +-{ +- return BWindowScreen::Archive(data, deep); +-} +- +- +-void +-BGLScreen::MessageReceived(BMessage* msg) +-{ +- BWindowScreen::MessageReceived(msg); +-} +- +- +-void +-BGLScreen::Show() +-{ +- BWindowScreen::Show(); +-} +- +- +-void +-BGLScreen::Hide() +-{ +- BWindowScreen::Hide(); +-} +- +- +-BHandler* +-BGLScreen::ResolveSpecifier(BMessage* msg, int32 index, BMessage* specifier, +- int32 form, const char* property) +-{ +- return BWindowScreen::ResolveSpecifier(msg, index, specifier, +- form, property); +-} +- +- +-status_t +-BGLScreen::GetSupportedSuites(BMessage* data) +-{ +- return BWindowScreen::GetSupportedSuites(data); +-} +- +- +-//---- virtual reserved methods ---------- +- +-void BGLScreen::_ReservedGLScreen1() {} +-void BGLScreen::_ReservedGLScreen2() {} +-void BGLScreen::_ReservedGLScreen3() {} +-void BGLScreen::_ReservedGLScreen4() {} +-void BGLScreen::_ReservedGLScreen5() {} +-void BGLScreen::_ReservedGLScreen6() {} +-void BGLScreen::_ReservedGLScreen7() {} +-void BGLScreen::_ReservedGLScreen8() {} +-#endif +- +- +-const char* color_space_name(color_space space) +-{ +-#define C2N(a) case a: return #a +- +- switch (space) { +- C2N(B_RGB24); +- C2N(B_RGB32); +- C2N(B_RGBA32); +- C2N(B_RGB32_BIG); +- C2N(B_RGBA32_BIG); +- C2N(B_GRAY8); +- C2N(B_GRAY1); +- C2N(B_RGB16); +- C2N(B_RGB15); +- C2N(B_RGBA15); +- C2N(B_CMAP8); +- default: +- return "Unknown!"; +- }; +- +-#undef C2N +-}; +- +- +-glview_direct_info::glview_direct_info() +-{ +- // TODO: See direct_window_data() in app_server's ServerWindow.cpp +- direct_info = (direct_buffer_info*)calloc(1, DIRECT_BUFFER_INFO_AREA_SIZE); +- direct_connected = false; +- enable_direct_mode = false; +-} +- +- +-glview_direct_info::~glview_direct_info() +-{ +- free(direct_info); +-} +- +diff --git a/src/gallium/targets/libgl-haiku/SConscript b/src/gallium/targets/libgl-haiku/SConscript +deleted file mode 100644 +index 43d15c5..0000000 +--- a/src/gallium/targets/libgl-haiku/SConscript ++++ /dev/null +@@ -1,35 +0,0 @@ +-####################################################################### +-# SConscript for Haiku OpenGL kit +- +-Import('*') +- +-env = env.Clone() +- +-env.Append(CPPPATH = [ +- '#/src/mapi', +- '#/src/mesa', +- '#/src/mesa/main', +- '#/include/HaikuGL', +- '/boot/system/develop/headers/private', +- Dir('../../../mapi'), # src/mapi build path for python-generated GL API files/headers +-]) +- +-env.Prepend(LIBS = [ +- glapi +-]) +- +-sources = [ +- 'GLView.cpp', +- 'GLRenderer.cpp', +- 'GLRendererRoster.cpp', +- 'GLDispatcher.cpp', +-] +- +-# libGL.so +-libgl = env.SharedLibrary( +- target ='GL', +- source = sources, +- SHLIBSUFFIX = env['SHLIBSUFFIX'], +-) +- +-env.Alias('libgl-haiku', libgl) +diff --git a/src/hgl/GLDispatcher.cpp b/src/hgl/GLDispatcher.cpp +new file mode 100644 +index 0000000..46b91d5 +--- /dev/null ++++ b/src/hgl/GLDispatcher.cpp +@@ -0,0 +1,72 @@ ++/* ++ * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. ++ * Copyright 2000-2012 Haiku, Inc. All Rights Reserved. ++ * Distributed under the terms of the MIT License. ++ * ++ * Authors: ++ * Brian Paul ++ * Philippe Houdoin ++ * Alexander von Gluck IV ++ */ ++ ++ ++extern "C" { ++#include "glapi/glapi.h" ++#include "glapi/glapi_priv.h" ++ ++/* ++ * NOTE: this file portion implements C-based dispatch of the OpenGL entrypoints ++ * (glAccum, glBegin, etc). ++ * This code IS NOT USED if we're compiling on an x86 system and using ++ * the glapi_x86.S assembly code. ++ */ ++#if !(defined(USE_X86_ASM) || defined(USE_SPARC_ASM)) ++ ++#define KEYWORD1 PUBLIC ++#define KEYWORD2 ++#define NAME(func) gl##func ++ ++#define DISPATCH(func, args, msg) \ ++ const struct _glapi_table* dispatch; \ ++ dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\ ++ (dispatch->func) args ++ ++#define RETURN_DISPATCH(func, args, msg) \ ++ const struct _glapi_table* dispatch; \ ++ dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\ ++ return (dispatch->func) args ++ ++#endif ++} ++ ++ ++/* NOTE: this file portion implement a thin OpenGL entrypoints dispatching ++ C++ wrapper class ++ */ ++ ++#include "GLDispatcher.h" ++ ++BGLDispatcher::BGLDispatcher() ++{ ++} ++ ++ ++BGLDispatcher::~BGLDispatcher() ++{ ++} ++ ++ ++status_t ++BGLDispatcher::CheckTable(const struct _glapi_table* table) ++{ ++ _glapi_check_table(table ? table : _glapi_get_dispatch()); ++ return B_OK; ++} ++ ++ ++status_t ++BGLDispatcher::SetTable(struct _glapi_table* table) ++{ ++ _glapi_set_dispatch(table); ++ return B_OK; ++} +diff --git a/src/hgl/GLDispatcher.h b/src/hgl/GLDispatcher.h +new file mode 100644 +index 0000000..44bca8c +--- /dev/null ++++ b/src/hgl/GLDispatcher.h +@@ -0,0 +1,109 @@ ++/* ++ * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. ++ * Copyright 2000-2012 Haiku, Inc. All Rights Reserved. ++ * Distributed under the terms of the MIT License. ++ * ++ * Authors: ++ * Brian Paul ++ * Philippe Houdoin ++ */ ++#ifndef GLDISPATCHER_H ++#define GLDISPATCHER_H ++ ++ ++#include ++#include ++#include ++ ++#include "glheader.h" ++ ++extern "C" { ++#include "glapi/glapi.h" ++} ++ ++ ++class BGLDispatcher ++{ ++ // Private unimplemented copy constructors ++ BGLDispatcher(const BGLDispatcher &); ++ BGLDispatcher & operator=(const BGLDispatcher &); ++ ++ public: ++ BGLDispatcher(); ++ ~BGLDispatcher(); ++ ++ void SetCurrentContext(void* context); ++ void* CurrentContext(); ++ ++ struct _glapi_table* Table(); ++ status_t CheckTable( ++ const struct _glapi_table* dispatch = NULL); ++ status_t SetTable(struct _glapi_table* dispatch); ++ uint32 TableSize(); ++ ++ const _glapi_proc operator[](const char* functionName); ++ const char* operator[](uint32 offset); ++ ++ const _glapi_proc AddressOf(const char* functionName); ++ uint32 OffsetOf(const char* functionName); ++}; ++ ++ ++// Inlines methods ++inline void ++BGLDispatcher::SetCurrentContext(void* context) ++{ ++ _glapi_set_context(context); ++} ++ ++ ++inline void* ++BGLDispatcher::CurrentContext() ++{ ++ return _glapi_get_context(); ++} ++ ++ ++inline struct _glapi_table* ++BGLDispatcher::Table() ++{ ++ return _glapi_get_dispatch(); ++} ++ ++ ++inline uint32 ++BGLDispatcher::TableSize() ++{ ++ return _glapi_get_dispatch_table_size(); ++} ++ ++ ++inline const _glapi_proc ++BGLDispatcher::operator[](const char* functionName) ++{ ++ return _glapi_get_proc_address(functionName); ++} ++ ++ ++inline const char* ++BGLDispatcher::operator[](uint32 offset) ++{ ++ return _glapi_get_proc_name((GLuint) offset); ++} ++ ++ ++inline const _glapi_proc ++BGLDispatcher::AddressOf(const char* functionName) ++{ ++ return _glapi_get_proc_address(functionName); ++} ++ ++ ++inline uint32 ++BGLDispatcher::OffsetOf(const char* functionName) ++{ ++ return (uint32) _glapi_get_proc_offset(functionName); ++} ++ ++ ++#endif // GLDISPATCHER_H +diff --git a/src/hgl/GLRenderer.cpp b/src/hgl/GLRenderer.cpp +new file mode 100644 +index 0000000..4573a64 +--- /dev/null ++++ b/src/hgl/GLRenderer.cpp +@@ -0,0 +1,106 @@ ++/* ++ * Copyright 2006-2008, Philippe Houdoin. All rights reserved. ++ * Distributed under the terms of the MIT License. ++ */ ++ ++ ++#include ++ ++#include "GLRenderer.h" ++ ++#include "GLDispatcher.h" ++ ++ ++BGLRenderer::BGLRenderer(BGLView* view, ulong glOptions, ++ BGLDispatcher* dispatcher) ++ : ++ fRefCount(1), ++ fView(view), ++ fOptions(glOptions), ++ fDispatcher(dispatcher) ++{ ++} ++ ++ ++BGLRenderer::~BGLRenderer() ++{ ++ delete fDispatcher; ++} ++ ++ ++void ++BGLRenderer::Acquire() ++{ ++ atomic_add(&fRefCount, 1); ++} ++ ++ ++void ++BGLRenderer::Release() ++{ ++ if (atomic_add(&fRefCount, -1) < 1) ++ delete this; ++} ++ ++ ++void ++BGLRenderer::LockGL() ++{ ++} ++ ++ ++void ++BGLRenderer::UnlockGL() ++{ ++} ++ ++ ++void ++BGLRenderer::SwapBuffers(bool VSync) ++{ ++} ++ ++ ++void ++BGLRenderer::Draw(BRect updateRect) ++{ ++} ++ ++ ++status_t ++BGLRenderer::CopyPixelsOut(BPoint source, BBitmap* dest) ++{ ++ return B_ERROR; ++} ++ ++ ++status_t ++BGLRenderer::CopyPixelsIn(BBitmap* source, BPoint dest) ++{ ++ return B_ERROR; ++} ++ ++ ++void ++BGLRenderer::FrameResized(float width, float height) ++{ ++} ++ ++ ++void ++BGLRenderer::DirectConnected(direct_buffer_info* info) ++{ ++} ++ ++ ++void ++BGLRenderer::EnableDirectMode(bool enabled) ++{ ++} ++ ++ ++status_t BGLRenderer::_Reserved_Renderer_0(int32 n, void* p) { return B_ERROR; } ++status_t BGLRenderer::_Reserved_Renderer_1(int32 n, void* p) { return B_ERROR; } ++status_t BGLRenderer::_Reserved_Renderer_2(int32 n, void* p) { return B_ERROR; } ++status_t BGLRenderer::_Reserved_Renderer_3(int32 n, void* p) { return B_ERROR; } ++status_t BGLRenderer::_Reserved_Renderer_4(int32 n, void* p) { return B_ERROR; } +diff --git a/src/hgl/GLRendererRoster.cpp b/src/hgl/GLRendererRoster.cpp +new file mode 100644 +index 0000000..1712a87 +--- /dev/null ++++ b/src/hgl/GLRendererRoster.cpp +@@ -0,0 +1,224 @@ ++/* ++ * Copyright 2006-2012 Haiku, Inc. All Rights Reserved. ++ * Distributed under the terms of the MIT License. ++ * ++ * Authors: ++ * Philippe Houdoin ++ * Alexander von Gluck IV ++ */ ++ ++ ++#include ++#include ++ ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include "GLDispatcher.h" ++#include "GLRendererRoster.h" ++ ++#include ++#include ++ ++ ++extern "C" status_t _kern_get_safemode_option(const char* parameter, ++ char* buffer, size_t* _bufferSize); ++ ++ ++GLRendererRoster::GLRendererRoster(BGLView* view, ulong options) ++ : ++ fNextID(0), ++ fView(view), ++ fOptions(options), ++ fSafeMode(false), ++ fABISubDirectory(NULL) ++{ ++ char parameter[32]; ++ size_t parameterLength = sizeof(parameter); ++ ++ if (_kern_get_safemode_option(B_SAFEMODE_SAFE_MODE, ++ parameter, ¶meterLength) == B_OK) { ++ if (!strcasecmp(parameter, "enabled") || !strcasecmp(parameter, "on") ++ || !strcasecmp(parameter, "true") || !strcasecmp(parameter, "yes") ++ || !strcasecmp(parameter, "enable") || !strcmp(parameter, "1")) ++ fSafeMode = true; ++ } ++ ++ if (_kern_get_safemode_option(B_SAFEMODE_DISABLE_USER_ADD_ONS, ++ parameter, ¶meterLength) == B_OK) { ++ if (!strcasecmp(parameter, "enabled") || !strcasecmp(parameter, "on") ++ || !strcasecmp(parameter, "true") || !strcasecmp(parameter, "yes") ++ || !strcasecmp(parameter, "enable") || !strcmp(parameter, "1")) ++ fSafeMode = true; ++ } ++ ++ // We might run in compatibility mode on a system with a different ABI. The ++ // renderers matching our ABI can usually be found in respective ++ // subdirectories of the opengl add-ons directories. ++ system_info info; ++ if (get_system_info(&info) == B_OK ++ && (info.abi & B_HAIKU_ABI_MAJOR) ++ != (B_HAIKU_ABI & B_HAIKU_ABI_MAJOR)) { ++ switch (B_HAIKU_ABI & B_HAIKU_ABI_MAJOR) { ++ case B_HAIKU_ABI_GCC_2: ++ fABISubDirectory = "gcc2"; ++ break; ++ case B_HAIKU_ABI_GCC_4: ++ fABISubDirectory = "gcc4"; ++ break; ++ } ++ } ++ ++ AddDefaultPaths(); ++} ++ ++ ++GLRendererRoster::~GLRendererRoster() ++{ ++ ++} ++ ++ ++BGLRenderer* ++GLRendererRoster::GetRenderer(int32 id) ++{ ++ RendererMap::const_iterator iterator = fRenderers.find(id); ++ if (iterator == fRenderers.end()) ++ return NULL; ++ ++ struct renderer_item item = iterator->second; ++ return item.renderer; ++} ++ ++ ++void ++GLRendererRoster::AddDefaultPaths() ++{ ++ // add user directories first, so that they can override system renderers ++ const directory_which paths[] = { ++ B_USER_NONPACKAGED_ADDONS_DIRECTORY, ++ B_USER_ADDONS_DIRECTORY, ++ B_SYSTEM_ADDONS_DIRECTORY, ++ }; ++ ++ for (uint32 i = fSafeMode ? 4 : 0; ++ i < sizeof(paths) / sizeof(paths[0]); i++) { ++ BPath path; ++ status_t status = find_directory(paths[i], &path, true); ++ if (status == B_OK && path.Append("opengl") == B_OK) ++ AddPath(path.Path()); ++ } ++} ++ ++ ++status_t ++GLRendererRoster::AddPath(const char* path) ++{ ++ BDirectory directory(path); ++ status_t status = directory.InitCheck(); ++ if (status < B_OK) ++ return status; ++ ++ // if a subdirectory for our ABI exists, use that instead ++ if (fABISubDirectory != NULL) { ++ BEntry entry(&directory, fABISubDirectory); ++ if (entry.IsDirectory()) { ++ status = directory.SetTo(&entry); ++ if (status != B_OK) ++ return status; ++ } ++ } ++ ++ node_ref nodeRef; ++ status = directory.GetNodeRef(&nodeRef); ++ if (status < B_OK) ++ return status; ++ ++ int32 count = 0; ++ int32 files = 0; ++ ++ entry_ref ref; ++ BEntry entry; ++ while (directory.GetNextRef(&ref) == B_OK) { ++ entry.SetTo(&ref); ++ if (entry.InitCheck() == B_OK && !entry.IsFile()) ++ continue; ++ ++ if (CreateRenderer(ref) == B_OK) ++ count++; ++ ++ files++; ++ } ++ ++ if (files != 0 && count == 0) ++ return B_BAD_VALUE; ++ ++ return B_OK; ++} ++ ++ ++status_t ++GLRendererRoster::AddRenderer(BGLRenderer* renderer, ++ image_id image, const entry_ref* ref, ino_t node) ++{ ++ renderer_item item; ++ item.renderer = renderer; ++ item.image = image; ++ item.node = node; ++ if (ref != NULL) ++ item.ref = *ref; ++ ++ try { ++ fRenderers[fNextID] = item; ++ } catch (...) { ++ return B_NO_MEMORY; ++ } ++ ++ renderer->fOwningRoster = this; ++ renderer->fID = fNextID++; ++ return B_OK; ++} ++ ++ ++status_t ++GLRendererRoster::CreateRenderer(const entry_ref& ref) ++{ ++ BEntry entry(&ref); ++ node_ref nodeRef; ++ status_t status = entry.GetNodeRef(&nodeRef); ++ if (status < B_OK) ++ return status; ++ ++ BPath path(&ref); ++ image_id image = load_add_on(path.Path()); ++ if (image < B_OK) ++ return image; ++ ++ BGLRenderer* (*instantiate_renderer) ++ (BGLView* view, ulong options, BGLDispatcher* dispatcher); ++ ++ status = get_image_symbol(image, "instantiate_gl_renderer", ++ B_SYMBOL_TYPE_TEXT, (void**)&instantiate_renderer); ++ if (status == B_OK) { ++ BGLRenderer* renderer ++ = instantiate_renderer(fView, fOptions, new BGLDispatcher()); ++ if (!renderer) { ++ unload_add_on(image); ++ return B_UNSUPPORTED; ++ } ++ ++ if (AddRenderer(renderer, image, &ref, nodeRef.node) != B_OK) { ++ renderer->Release(); ++ // this will delete the renderer ++ unload_add_on(image); ++ } ++ return B_OK; ++ } ++ unload_add_on(image); ++ ++ return status; ++} +diff --git a/src/hgl/GLRendererRoster.h b/src/hgl/GLRendererRoster.h +new file mode 100644 +index 0000000..5c8da27 +--- /dev/null ++++ b/src/hgl/GLRendererRoster.h +@@ -0,0 +1,51 @@ ++/* ++ * Copyright 2006-2012, Haiku, Inc. All Rights Reserved. ++ * Distributed under the terms of the MIT License. ++ * ++ * Authors: ++ * Philippe Houdoin ++ */ ++#ifndef _GLRENDERER_ROSTER_H ++#define _GLRENDERER_ROSTER_H ++ ++ ++#include ++ ++#include ++ ++ ++struct renderer_item { ++ BGLRenderer* renderer; ++ entry_ref ref; ++ ino_t node; ++ image_id image; ++}; ++ ++typedef std::map RendererMap; ++ ++ ++class GLRendererRoster { ++ public: ++ GLRendererRoster(BGLView* view, ulong options); ++ virtual ~GLRendererRoster(); ++ ++ BGLRenderer* GetRenderer(int32 id = 0); ++ ++ private: ++ void AddDefaultPaths(); ++ status_t AddPath(const char* path); ++ status_t AddRenderer(BGLRenderer* renderer, ++ image_id image, const entry_ref* ref, ino_t node); ++ status_t CreateRenderer(const entry_ref& ref); ++ ++ RendererMap fRenderers; ++ int32 fNextID; ++ BGLView* fView; ++ ulong fOptions; ++ bool fSafeMode; ++ const char* fABISubDirectory; ++ ++}; ++ ++ ++#endif /* _GLRENDERER_ROSTER_H */ +diff --git a/src/hgl/GLView.cpp b/src/hgl/GLView.cpp +new file mode 100644 +index 0000000..9ae5b5c +--- /dev/null ++++ b/src/hgl/GLView.cpp +@@ -0,0 +1,643 @@ ++/* ++ * Copyright 2006-2012, Haiku. All rights reserved. ++ * Distributed under the terms of the MIT License. ++ * ++ * Authors: ++ * Jérôme Duval, korli@users.berlios.de ++ * Philippe Houdoin, philippe.houdoin@free.fr ++ * Stefano Ceccherini, burton666@libero.it ++ */ ++ ++#include ++ ++#include ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++#include "interface/DirectWindowPrivate.h" ++#include "GLDispatcher.h" ++#include "GLRendererRoster.h" ++ ++ ++struct glview_direct_info { ++ direct_buffer_info* direct_info; ++ bool direct_connected; ++ bool enable_direct_mode; ++ ++ glview_direct_info(); ++ ~glview_direct_info(); ++}; ++ ++ ++BGLView::BGLView(BRect rect, const char* name, ulong resizingMode, ulong mode, ++ ulong options) ++ : ++ BView(rect, name, B_FOLLOW_ALL_SIDES, mode | B_WILL_DRAW | B_FRAME_EVENTS), ++ // | B_FULL_UPDATE_ON_RESIZE) ++ fGc(NULL), ++ fOptions(options), ++ fDitherCount(0), ++ fDrawLock("BGLView draw lock"), ++ fDisplayLock("BGLView display lock"), ++ fClipInfo(NULL), ++ fRenderer(NULL), ++ fRoster(NULL), ++ fDitherMap(NULL) ++{ ++ fRoster = new GLRendererRoster(this, options); ++} ++ ++ ++BGLView::~BGLView() ++{ ++ delete fClipInfo; ++ if (fRenderer) ++ fRenderer->Release(); ++} ++ ++ ++void ++BGLView::LockGL() ++{ ++ // TODO: acquire the OpenGL API lock it on this glview ++ ++ fDisplayLock.Lock(); ++ if (fRenderer) ++ fRenderer->LockGL(); ++} ++ ++ ++void ++BGLView::UnlockGL() ++{ ++ if (fRenderer) ++ fRenderer->UnlockGL(); ++ fDisplayLock.Unlock(); ++ ++ // TODO: release the GL API lock to others glviews ++} ++ ++ ++void ++BGLView::SwapBuffers() ++{ ++ SwapBuffers(false); ++} ++ ++ ++void ++BGLView::SwapBuffers(bool vSync) ++{ ++ if (fRenderer) { ++ _LockDraw(); ++ fRenderer->SwapBuffers(vSync); ++ _UnlockDraw(); ++ } ++} ++ ++ ++BView* ++BGLView::EmbeddedView() ++{ ++ return NULL; ++} ++ ++ ++void* ++BGLView::GetGLProcAddress(const char* procName) ++{ ++ BGLDispatcher* glDispatcher = NULL; ++ ++ if (fRenderer) ++ glDispatcher = fRenderer->GLDispatcher(); ++ ++ if (glDispatcher) ++ return (void*)glDispatcher->AddressOf(procName); ++ ++ return NULL; ++} ++ ++ ++status_t ++BGLView::CopyPixelsOut(BPoint source, BBitmap* dest) ++{ ++ if (!fRenderer) ++ return B_ERROR; ++ ++ if (!dest || !dest->Bounds().IsValid()) ++ return B_BAD_VALUE; ++ ++ return fRenderer->CopyPixelsOut(source, dest); ++} ++ ++ ++status_t ++BGLView::CopyPixelsIn(BBitmap* source, BPoint dest) ++{ ++ if (!fRenderer) ++ return B_ERROR; ++ ++ if (!source || !source->Bounds().IsValid()) ++ return B_BAD_VALUE; ++ ++ return fRenderer->CopyPixelsIn(source, dest); ++} ++ ++ ++/*! Mesa's GLenum is not ulong but uint, so we can't use GLenum ++ without breaking this method signature. ++ Instead, we have to use the effective BeOS's SGI OpenGL GLenum type: ++ unsigned long. ++ */ ++void ++BGLView::ErrorCallback(unsigned long errorCode) ++{ ++ char msg[32]; ++ sprintf(msg, "GL: Error code $%04lx.", errorCode); ++ // TODO: under BeOS R5, it call debugger(msg); ++ fprintf(stderr, "%s\n", msg); ++} ++ ++ ++void ++BGLView::Draw(BRect updateRect) ++{ ++ if (fRenderer) { ++ _LockDraw(); ++ fRenderer->Draw(updateRect); ++ _UnlockDraw(); ++ return; ++ } ++ // TODO: auto-size and center the string ++ MovePenTo(8, 32); ++ DrawString("No OpenGL renderer available!"); ++} ++ ++ ++void ++BGLView::AttachedToWindow() ++{ ++ BView::AttachedToWindow(); ++ ++ fBounds = Bounds(); ++ for (BView* view = this; view != NULL; view = view->Parent()) ++ view->ConvertToParent(&fBounds); ++ ++ fRenderer = fRoster->GetRenderer(); ++ if (fRenderer != NULL) { ++ // Jackburton: The following code was commented because it doesn't look ++ // good in "direct" mode: ++ // when the window is moved, the app_server doesn't paint the view's ++ // background, and the stuff behind the window itself shows up. ++ // Setting the view color to black, instead, looks a bit more elegant. ++#if 0 ++ // Don't paint white window background when resized ++ SetViewColor(B_TRANSPARENT_32_BIT); ++#else ++ SetViewColor(0, 0, 0); ++#endif ++ ++ // Set default OpenGL viewport: ++ LockGL(); ++ glViewport(0, 0, Bounds().IntegerWidth(), Bounds().IntegerHeight()); ++ UnlockGL(); ++ fRenderer->FrameResized(Bounds().IntegerWidth(), ++ Bounds().IntegerHeight()); ++ ++ if (fClipInfo) { ++ fRenderer->DirectConnected(fClipInfo->direct_info); ++ fRenderer->EnableDirectMode(fClipInfo->enable_direct_mode); ++ } ++ ++ return; ++ } ++ ++ fprintf(stderr, "no renderer found! \n"); ++ ++ // No Renderer, no rendering. Setup a minimal "No Renderer" string drawing ++ // context ++ SetFont(be_bold_font); ++ // SetFontSize(16); ++} ++ ++ ++void ++BGLView::AllAttached() ++{ ++ BView::AllAttached(); ++} ++ ++ ++void ++BGLView::DetachedFromWindow() ++{ ++ if (fRenderer) ++ fRenderer->Release(); ++ fRenderer = NULL; ++ ++ BView::DetachedFromWindow(); ++} ++ ++ ++void ++BGLView::AllDetached() ++{ ++ BView::AllDetached(); ++} ++ ++ ++void ++BGLView::FrameResized(float width, float height) ++{ ++ fBounds = Bounds(); ++ for (BView* v = this; v; v = v->Parent()) ++ v->ConvertToParent(&fBounds); ++ ++ if (fRenderer) { ++ LockGL(); ++ _LockDraw(); ++ _CallDirectConnected(); ++ fRenderer->FrameResized(width, height); ++ _UnlockDraw(); ++ UnlockGL(); ++ } ++ ++ BView::FrameResized(width, height); ++} ++ ++ ++status_t ++BGLView::Perform(perform_code d, void* arg) ++{ ++ return BView::Perform(d, arg); ++} ++ ++ ++status_t ++BGLView::Archive(BMessage* data, bool deep) const ++{ ++ return BView::Archive(data, deep); ++} ++ ++ ++void ++BGLView::MessageReceived(BMessage* msg) ++{ ++ BView::MessageReceived(msg); ++} ++ ++ ++void ++BGLView::SetResizingMode(uint32 mode) ++{ ++ BView::SetResizingMode(mode); ++} ++ ++ ++void ++BGLView::GetPreferredSize(float* _width, float* _height) ++{ ++ if (_width) ++ *_width = 0; ++ if (_height) ++ *_height = 0; ++} ++ ++ ++void ++BGLView::Show() ++{ ++ BView::Show(); ++} ++ ++ ++void ++BGLView::Hide() ++{ ++ BView::Hide(); ++} ++ ++ ++BHandler* ++BGLView::ResolveSpecifier(BMessage* msg, int32 index, BMessage* specifier, ++ int32 form, const char* property) ++{ ++ return BView::ResolveSpecifier(msg, index, specifier, form, property); ++} ++ ++ ++status_t ++BGLView::GetSupportedSuites(BMessage* data) ++{ ++ return BView::GetSupportedSuites(data); ++} ++ ++ ++void ++BGLView::DirectConnected(direct_buffer_info* info) ++{ ++ if (fClipInfo == NULL) { ++ fClipInfo = new (std::nothrow) glview_direct_info(); ++ if (fClipInfo == NULL) ++ return; ++ } ++ ++ direct_buffer_info* localInfo = fClipInfo->direct_info; ++ ++ switch (info->buffer_state & B_DIRECT_MODE_MASK) { ++ case B_DIRECT_START: ++ fClipInfo->direct_connected = true; ++ memcpy(localInfo, info, DIRECT_BUFFER_INFO_AREA_SIZE); ++ _UnlockDraw(); ++ break; ++ ++ case B_DIRECT_MODIFY: ++ _LockDraw(); ++ memcpy(localInfo, info, DIRECT_BUFFER_INFO_AREA_SIZE); ++ _UnlockDraw(); ++ break; ++ ++ case B_DIRECT_STOP: ++ fClipInfo->direct_connected = false; ++ _LockDraw(); ++ break; ++ } ++ ++ if (fRenderer) ++ _CallDirectConnected(); ++} ++ ++ ++void ++BGLView::EnableDirectMode(bool enabled) ++{ ++ if (fRenderer) ++ fRenderer->EnableDirectMode(enabled); ++ if (fClipInfo == NULL) { ++ fClipInfo = new (std::nothrow) glview_direct_info(); ++ if (fClipInfo == NULL) ++ return; ++ } ++ ++ fClipInfo->enable_direct_mode = enabled; ++} ++ ++ ++void ++BGLView::_LockDraw() ++{ ++ if (!fClipInfo || !fClipInfo->enable_direct_mode) ++ return; ++ ++ fDrawLock.Lock(); ++} ++ ++ ++void ++BGLView::_UnlockDraw() ++{ ++ if (!fClipInfo || !fClipInfo->enable_direct_mode) ++ return; ++ ++ fDrawLock.Unlock(); ++} ++ ++ ++void ++BGLView::_CallDirectConnected() ++{ ++ if (!fClipInfo) ++ return; ++ ++ direct_buffer_info* localInfo = fClipInfo->direct_info; ++ direct_buffer_info* info = (direct_buffer_info*)malloc( ++ DIRECT_BUFFER_INFO_AREA_SIZE); ++ if (info == NULL) ++ return; ++ ++ memcpy(info, localInfo, DIRECT_BUFFER_INFO_AREA_SIZE); ++ ++ // Collect the rects into a BRegion, then clip to the view's bounds ++ BRegion region; ++ for (uint32 c = 0; c < localInfo->clip_list_count; c++) ++ region.Include(localInfo->clip_list[c]); ++ BRegion boundsRegion = fBounds.OffsetByCopy(localInfo->window_bounds.left, ++ localInfo->window_bounds.top); ++ info->window_bounds = boundsRegion.RectAtInt(0); ++ // window_bounds are now view bounds ++ region.IntersectWith(&boundsRegion); ++ ++ info->clip_list_count = region.CountRects(); ++ info->clip_bounds = region.FrameInt(); ++ ++ for (uint32 c = 0; c < info->clip_list_count; c++) ++ info->clip_list[c] = region.RectAtInt(c); ++ fRenderer->DirectConnected(info); ++ free(info); ++} ++ ++ ++//---- virtual reserved methods ---------- ++ ++ ++void BGLView::_ReservedGLView1() {} ++void BGLView::_ReservedGLView2() {} ++void BGLView::_ReservedGLView3() {} ++void BGLView::_ReservedGLView4() {} ++void BGLView::_ReservedGLView5() {} ++void BGLView::_ReservedGLView6() {} ++void BGLView::_ReservedGLView7() {} ++void BGLView::_ReservedGLView8() {} ++ ++ ++// #pragma mark - ++ ++ ++// BeOS compatibility: contrary to others BView's contructors, ++// BGLView one wants a non-const name argument. ++BGLView::BGLView(BRect rect, char* name, ulong resizingMode, ulong mode, ++ ulong options) ++ : ++ BView(rect, name, B_FOLLOW_ALL_SIDES, mode | B_WILL_DRAW | B_FRAME_EVENTS), ++ fGc(NULL), ++ fOptions(options), ++ fDitherCount(0), ++ fDrawLock("BGLView draw lock"), ++ fDisplayLock("BGLView display lock"), ++ fClipInfo(NULL), ++ fRenderer(NULL), ++ fRoster(NULL), ++ fDitherMap(NULL) ++{ ++ fRoster = new GLRendererRoster(this, options); ++} ++ ++ ++#if 0 ++// TODO: implement BGLScreen class... ++ ++ ++BGLScreen::BGLScreen(char* name, ulong screenMode, ulong options, ++ status_t* error, bool debug) ++ : ++ BWindowScreen(name, screenMode, error, debug) ++{ ++} ++ ++ ++BGLScreen::~BGLScreen() ++{ ++} ++ ++ ++void ++BGLScreen::LockGL() ++{ ++} ++ ++ ++void ++BGLScreen::UnlockGL() ++{ ++} ++ ++ ++void ++BGLScreen::SwapBuffers() ++{ ++} ++ ++ ++void ++BGLScreen::ErrorCallback(unsigned long errorCode) ++{ ++ // Mesa's GLenum is not ulong but uint! ++ char msg[32]; ++ sprintf(msg, "GL: Error code $%04lx.", errorCode); ++ // debugger(msg); ++ fprintf(stderr, "%s\n", msg); ++ return; ++} ++ ++ ++void ++BGLScreen::ScreenConnected(bool enabled) ++{ ++} ++ ++ ++void ++BGLScreen::FrameResized(float width, float height) ++{ ++ return BWindowScreen::FrameResized(width, height); ++} ++ ++ ++status_t ++BGLScreen::Perform(perform_code d, void* arg) ++{ ++ return BWindowScreen::Perform(d, arg); ++} ++ ++ ++status_t ++BGLScreen::Archive(BMessage* data, bool deep) const ++{ ++ return BWindowScreen::Archive(data, deep); ++} ++ ++ ++void ++BGLScreen::MessageReceived(BMessage* msg) ++{ ++ BWindowScreen::MessageReceived(msg); ++} ++ ++ ++void ++BGLScreen::Show() ++{ ++ BWindowScreen::Show(); ++} ++ ++ ++void ++BGLScreen::Hide() ++{ ++ BWindowScreen::Hide(); ++} ++ ++ ++BHandler* ++BGLScreen::ResolveSpecifier(BMessage* msg, int32 index, BMessage* specifier, ++ int32 form, const char* property) ++{ ++ return BWindowScreen::ResolveSpecifier(msg, index, specifier, ++ form, property); ++} ++ ++ ++status_t ++BGLScreen::GetSupportedSuites(BMessage* data) ++{ ++ return BWindowScreen::GetSupportedSuites(data); ++} ++ ++ ++//---- virtual reserved methods ---------- ++ ++void BGLScreen::_ReservedGLScreen1() {} ++void BGLScreen::_ReservedGLScreen2() {} ++void BGLScreen::_ReservedGLScreen3() {} ++void BGLScreen::_ReservedGLScreen4() {} ++void BGLScreen::_ReservedGLScreen5() {} ++void BGLScreen::_ReservedGLScreen6() {} ++void BGLScreen::_ReservedGLScreen7() {} ++void BGLScreen::_ReservedGLScreen8() {} ++#endif ++ ++ ++const char* color_space_name(color_space space) ++{ ++#define C2N(a) case a: return #a ++ ++ switch (space) { ++ C2N(B_RGB24); ++ C2N(B_RGB32); ++ C2N(B_RGBA32); ++ C2N(B_RGB32_BIG); ++ C2N(B_RGBA32_BIG); ++ C2N(B_GRAY8); ++ C2N(B_GRAY1); ++ C2N(B_RGB16); ++ C2N(B_RGB15); ++ C2N(B_RGBA15); ++ C2N(B_CMAP8); ++ default: ++ return "Unknown!"; ++ }; ++ ++#undef C2N ++}; ++ ++ ++glview_direct_info::glview_direct_info() ++{ ++ // TODO: See direct_window_data() in app_server's ServerWindow.cpp ++ direct_info = (direct_buffer_info*)calloc(1, DIRECT_BUFFER_INFO_AREA_SIZE); ++ direct_connected = false; ++ enable_direct_mode = false; ++} ++ ++ ++glview_direct_info::~glview_direct_info() ++{ ++ free(direct_info); ++} ++ +diff --git a/src/hgl/SConscript b/src/hgl/SConscript +new file mode 100644 +index 0000000..70db149 +--- /dev/null ++++ b/src/hgl/SConscript +@@ -0,0 +1,36 @@ ++####################################################################### ++# SConscript for Haiku OpenGL kit ++ ++Import('*') ++ ++env = env.Clone() ++ ++env.Append(CPPPATH = [ ++ '#/src/mapi', ++ '#/src/mesa', ++ '#/src/mesa/main', ++ '#/include/HaikuGL', ++ '/boot/system/develop/headers/private', ++ Dir('../../../mapi'), # src/mapi build path for python-generated GL API files/headers ++]) ++ ++env.Prepend(LIBS = [ ++ glapi ++]) ++ ++sources = [ ++ 'GLView.cpp', ++ 'GLRenderer.cpp', ++ 'GLRendererRoster.cpp', ++ 'GLDispatcher.cpp', ++] ++ ++# libGL.so ++libgl = env.SharedLibrary( ++ target ='GL', ++ source = sources, ++ SHLIBSUFFIX = env['SHLIBSUFFIX'], ++) ++ ++env.Alias('libgl-haiku', libgl) ++Export('libgl') +diff --git a/src/mesa/drivers/haiku/swrast/SConscript b/src/mesa/drivers/haiku/swrast/SConscript +index ca0423e..aef7300 100644 +--- a/src/mesa/drivers/haiku/swrast/SConscript ++++ b/src/mesa/drivers/haiku/swrast/SConscript +@@ -16,6 +16,8 @@ env.Prepend(LIBS = [ + mesa, + ]) + ++env.Prepend(LIBS = [libgl]) ++ + sources = [ + 'SoftwareRast.cpp' + ] +-- +1.8.3.4 + diff --git a/sys-libs/mesa/patches/mesa-10.0.2.patchset b/sys-libs/mesa/patches/mesa-10.0.2.patchset new file mode 100644 index 000000000..5439c7159 --- /dev/null +++ b/sys-libs/mesa/patches/mesa-10.0.2.patchset @@ -0,0 +1,2770 @@ +From 880e1a26af698949add259ef80bc3e0e4aa55188 Mon Sep 17 00:00:00 2001 +From: Alexander von Gluck IV +Date: Mon, 30 Dec 2013 23:49:06 -0600 +Subject: haiku: Fix missing HaikuGL header paths + + +diff --git a/src/gallium/targets/haiku-softpipe/SConscript b/src/gallium/targets/haiku-softpipe/SConscript +index 40bf03c..16ce7cd 100644 +--- a/src/gallium/targets/haiku-softpipe/SConscript ++++ b/src/gallium/targets/haiku-softpipe/SConscript +@@ -21,6 +21,7 @@ env.Append(CPPPATH = [ + '#/src/mapi', + '#/src/mesa', + '#/src/mesa/main', ++ '#/include/HaikuGL', + '#/src/gallium/winsys/sw/hgl', + '/boot/system/develop/headers/private', + ]) +diff --git a/src/gallium/targets/libgl-haiku/SConscript b/src/gallium/targets/libgl-haiku/SConscript +index 2e6b628..43d15c5 100644 +--- a/src/gallium/targets/libgl-haiku/SConscript ++++ b/src/gallium/targets/libgl-haiku/SConscript +@@ -9,6 +9,7 @@ env.Append(CPPPATH = [ + '#/src/mapi', + '#/src/mesa', + '#/src/mesa/main', ++ '#/include/HaikuGL', + '/boot/system/develop/headers/private', + Dir('../../../mapi'), # src/mapi build path for python-generated GL API files/headers + ]) +diff --git a/src/mesa/drivers/haiku/swrast/SConscript b/src/mesa/drivers/haiku/swrast/SConscript +index 71ce88e..ca0423e 100644 +--- a/src/mesa/drivers/haiku/swrast/SConscript ++++ b/src/mesa/drivers/haiku/swrast/SConscript +@@ -6,6 +6,7 @@ env.Append(CPPPATH = [ + '#/src/mapi', + '#/src/mesa', + '#/src/mesa/main', ++ '#/include/HaikuGL', + '/boot/system/develop/headers/private', + Dir('../../../mapi'), # src/mapi build path for python-generated GL API files/headers + ]) +-- +1.8.3.4 + + +From add021d06196b1250454496cb3fb5b39746e2739 Mon Sep 17 00:00:00 2001 +From: Alexander von Gluck IV +Date: Tue, 31 Dec 2013 15:39:49 -0600 +Subject: haiku libGL: Move from gallium target to src/hgl + +* The Haiku renderers need to link to libGL to function properly + in all usage contexts. As mesa drivers build before gallium + targets, we couldn't properly link the mesa swrast driver to + the gallium libGL target for Haiku. +* This is likely better as it mimics how glx is laid out ensuring + the Haiku libGL is better understood. +* All renderers properly link in libGL now. + +diff --git a/src/SConscript b/src/SConscript +index 1465918..a24acea 100644 +--- a/src/SConscript ++++ b/src/SConscript +@@ -18,6 +18,11 @@ if env['hostonly']: + # enable OpenGL ES support. + SConscript('mapi/glapi/gen/SConscript') + SConscript('mapi/glapi/SConscript') ++ ++# Haiku C++ libGL dispatch (renderers depend on libgl) ++if env['platform'] in ['haiku']: ++ SConscript('hgl/SConscript') ++ + SConscript('mesa/SConscript') + + SConscript('mapi/vgapi/SConscript') +diff --git a/src/gallium/SConscript b/src/gallium/SConscript +index c68519d..7ba8070 100644 +--- a/src/gallium/SConscript ++++ b/src/gallium/SConscript +@@ -119,7 +119,6 @@ if not env['embedded']: + if env['platform'] == 'haiku': + SConscript([ + 'targets/haiku-softpipe/SConscript', +- 'targets/libgl-haiku/SConscript', + ]) + + if env['dri']: +diff --git a/src/gallium/targets/haiku-softpipe/SConscript b/src/gallium/targets/haiku-softpipe/SConscript +index 16ce7cd..0381d05 100644 +--- a/src/gallium/targets/haiku-softpipe/SConscript ++++ b/src/gallium/targets/haiku-softpipe/SConscript +@@ -17,6 +17,8 @@ if True: + ]) + env.Prepend(LIBS = [softpipe]) + ++env.Prepend(LIBS = [libgl]) ++ + env.Append(CPPPATH = [ + '#/src/mapi', + '#/src/mesa', +diff --git a/src/gallium/targets/libgl-haiku/GLDispatcher.cpp b/src/gallium/targets/libgl-haiku/GLDispatcher.cpp +deleted file mode 100644 +index 46b91d5..0000000 +--- a/src/gallium/targets/libgl-haiku/GLDispatcher.cpp ++++ /dev/null +@@ -1,72 +0,0 @@ +-/* +- * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. +- * Copyright 2000-2012 Haiku, Inc. All Rights Reserved. +- * Distributed under the terms of the MIT License. +- * +- * Authors: +- * Brian Paul +- * Philippe Houdoin +- * Alexander von Gluck IV +- */ +- +- +-extern "C" { +-#include "glapi/glapi.h" +-#include "glapi/glapi_priv.h" +- +-/* +- * NOTE: this file portion implements C-based dispatch of the OpenGL entrypoints +- * (glAccum, glBegin, etc). +- * This code IS NOT USED if we're compiling on an x86 system and using +- * the glapi_x86.S assembly code. +- */ +-#if !(defined(USE_X86_ASM) || defined(USE_SPARC_ASM)) +- +-#define KEYWORD1 PUBLIC +-#define KEYWORD2 +-#define NAME(func) gl##func +- +-#define DISPATCH(func, args, msg) \ +- const struct _glapi_table* dispatch; \ +- dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\ +- (dispatch->func) args +- +-#define RETURN_DISPATCH(func, args, msg) \ +- const struct _glapi_table* dispatch; \ +- dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\ +- return (dispatch->func) args +- +-#endif +-} +- +- +-/* NOTE: this file portion implement a thin OpenGL entrypoints dispatching +- C++ wrapper class +- */ +- +-#include "GLDispatcher.h" +- +-BGLDispatcher::BGLDispatcher() +-{ +-} +- +- +-BGLDispatcher::~BGLDispatcher() +-{ +-} +- +- +-status_t +-BGLDispatcher::CheckTable(const struct _glapi_table* table) +-{ +- _glapi_check_table(table ? table : _glapi_get_dispatch()); +- return B_OK; +-} +- +- +-status_t +-BGLDispatcher::SetTable(struct _glapi_table* table) +-{ +- _glapi_set_dispatch(table); +- return B_OK; +-} +diff --git a/src/gallium/targets/libgl-haiku/GLDispatcher.h b/src/gallium/targets/libgl-haiku/GLDispatcher.h +deleted file mode 100644 +index 44bca8c..0000000 +--- a/src/gallium/targets/libgl-haiku/GLDispatcher.h ++++ /dev/null +@@ -1,109 +0,0 @@ +-/* +- * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. +- * Copyright 2000-2012 Haiku, Inc. All Rights Reserved. +- * Distributed under the terms of the MIT License. +- * +- * Authors: +- * Brian Paul +- * Philippe Houdoin +- */ +-#ifndef GLDISPATCHER_H +-#define GLDISPATCHER_H +- +- +-#include +-#include +-#include +- +-#include "glheader.h" +- +-extern "C" { +-#include "glapi/glapi.h" +-} +- +- +-class BGLDispatcher +-{ +- // Private unimplemented copy constructors +- BGLDispatcher(const BGLDispatcher &); +- BGLDispatcher & operator=(const BGLDispatcher &); +- +- public: +- BGLDispatcher(); +- ~BGLDispatcher(); +- +- void SetCurrentContext(void* context); +- void* CurrentContext(); +- +- struct _glapi_table* Table(); +- status_t CheckTable( +- const struct _glapi_table* dispatch = NULL); +- status_t SetTable(struct _glapi_table* dispatch); +- uint32 TableSize(); +- +- const _glapi_proc operator[](const char* functionName); +- const char* operator[](uint32 offset); +- +- const _glapi_proc AddressOf(const char* functionName); +- uint32 OffsetOf(const char* functionName); +-}; +- +- +-// Inlines methods +-inline void +-BGLDispatcher::SetCurrentContext(void* context) +-{ +- _glapi_set_context(context); +-} +- +- +-inline void* +-BGLDispatcher::CurrentContext() +-{ +- return _glapi_get_context(); +-} +- +- +-inline struct _glapi_table* +-BGLDispatcher::Table() +-{ +- return _glapi_get_dispatch(); +-} +- +- +-inline uint32 +-BGLDispatcher::TableSize() +-{ +- return _glapi_get_dispatch_table_size(); +-} +- +- +-inline const _glapi_proc +-BGLDispatcher::operator[](const char* functionName) +-{ +- return _glapi_get_proc_address(functionName); +-} +- +- +-inline const char* +-BGLDispatcher::operator[](uint32 offset) +-{ +- return _glapi_get_proc_name((GLuint) offset); +-} +- +- +-inline const _glapi_proc +-BGLDispatcher::AddressOf(const char* functionName) +-{ +- return _glapi_get_proc_address(functionName); +-} +- +- +-inline uint32 +-BGLDispatcher::OffsetOf(const char* functionName) +-{ +- return (uint32) _glapi_get_proc_offset(functionName); +-} +- +- +-#endif // GLDISPATCHER_H +diff --git a/src/gallium/targets/libgl-haiku/GLRenderer.cpp b/src/gallium/targets/libgl-haiku/GLRenderer.cpp +deleted file mode 100644 +index 4573a64..0000000 +--- a/src/gallium/targets/libgl-haiku/GLRenderer.cpp ++++ /dev/null +@@ -1,106 +0,0 @@ +-/* +- * Copyright 2006-2008, Philippe Houdoin. All rights reserved. +- * Distributed under the terms of the MIT License. +- */ +- +- +-#include +- +-#include "GLRenderer.h" +- +-#include "GLDispatcher.h" +- +- +-BGLRenderer::BGLRenderer(BGLView* view, ulong glOptions, +- BGLDispatcher* dispatcher) +- : +- fRefCount(1), +- fView(view), +- fOptions(glOptions), +- fDispatcher(dispatcher) +-{ +-} +- +- +-BGLRenderer::~BGLRenderer() +-{ +- delete fDispatcher; +-} +- +- +-void +-BGLRenderer::Acquire() +-{ +- atomic_add(&fRefCount, 1); +-} +- +- +-void +-BGLRenderer::Release() +-{ +- if (atomic_add(&fRefCount, -1) < 1) +- delete this; +-} +- +- +-void +-BGLRenderer::LockGL() +-{ +-} +- +- +-void +-BGLRenderer::UnlockGL() +-{ +-} +- +- +-void +-BGLRenderer::SwapBuffers(bool VSync) +-{ +-} +- +- +-void +-BGLRenderer::Draw(BRect updateRect) +-{ +-} +- +- +-status_t +-BGLRenderer::CopyPixelsOut(BPoint source, BBitmap* dest) +-{ +- return B_ERROR; +-} +- +- +-status_t +-BGLRenderer::CopyPixelsIn(BBitmap* source, BPoint dest) +-{ +- return B_ERROR; +-} +- +- +-void +-BGLRenderer::FrameResized(float width, float height) +-{ +-} +- +- +-void +-BGLRenderer::DirectConnected(direct_buffer_info* info) +-{ +-} +- +- +-void +-BGLRenderer::EnableDirectMode(bool enabled) +-{ +-} +- +- +-status_t BGLRenderer::_Reserved_Renderer_0(int32 n, void* p) { return B_ERROR; } +-status_t BGLRenderer::_Reserved_Renderer_1(int32 n, void* p) { return B_ERROR; } +-status_t BGLRenderer::_Reserved_Renderer_2(int32 n, void* p) { return B_ERROR; } +-status_t BGLRenderer::_Reserved_Renderer_3(int32 n, void* p) { return B_ERROR; } +-status_t BGLRenderer::_Reserved_Renderer_4(int32 n, void* p) { return B_ERROR; } +diff --git a/src/gallium/targets/libgl-haiku/GLRendererRoster.cpp b/src/gallium/targets/libgl-haiku/GLRendererRoster.cpp +deleted file mode 100644 +index 1712a87..0000000 +--- a/src/gallium/targets/libgl-haiku/GLRendererRoster.cpp ++++ /dev/null +@@ -1,224 +0,0 @@ +-/* +- * Copyright 2006-2012 Haiku, Inc. All Rights Reserved. +- * Distributed under the terms of the MIT License. +- * +- * Authors: +- * Philippe Houdoin +- * Alexander von Gluck IV +- */ +- +- +-#include +-#include +- +-#include +-#include +- +-#include +-#include +-#include +-#include +-#include "GLDispatcher.h" +-#include "GLRendererRoster.h" +- +-#include +-#include +- +- +-extern "C" status_t _kern_get_safemode_option(const char* parameter, +- char* buffer, size_t* _bufferSize); +- +- +-GLRendererRoster::GLRendererRoster(BGLView* view, ulong options) +- : +- fNextID(0), +- fView(view), +- fOptions(options), +- fSafeMode(false), +- fABISubDirectory(NULL) +-{ +- char parameter[32]; +- size_t parameterLength = sizeof(parameter); +- +- if (_kern_get_safemode_option(B_SAFEMODE_SAFE_MODE, +- parameter, ¶meterLength) == B_OK) { +- if (!strcasecmp(parameter, "enabled") || !strcasecmp(parameter, "on") +- || !strcasecmp(parameter, "true") || !strcasecmp(parameter, "yes") +- || !strcasecmp(parameter, "enable") || !strcmp(parameter, "1")) +- fSafeMode = true; +- } +- +- if (_kern_get_safemode_option(B_SAFEMODE_DISABLE_USER_ADD_ONS, +- parameter, ¶meterLength) == B_OK) { +- if (!strcasecmp(parameter, "enabled") || !strcasecmp(parameter, "on") +- || !strcasecmp(parameter, "true") || !strcasecmp(parameter, "yes") +- || !strcasecmp(parameter, "enable") || !strcmp(parameter, "1")) +- fSafeMode = true; +- } +- +- // We might run in compatibility mode on a system with a different ABI. The +- // renderers matching our ABI can usually be found in respective +- // subdirectories of the opengl add-ons directories. +- system_info info; +- if (get_system_info(&info) == B_OK +- && (info.abi & B_HAIKU_ABI_MAJOR) +- != (B_HAIKU_ABI & B_HAIKU_ABI_MAJOR)) { +- switch (B_HAIKU_ABI & B_HAIKU_ABI_MAJOR) { +- case B_HAIKU_ABI_GCC_2: +- fABISubDirectory = "gcc2"; +- break; +- case B_HAIKU_ABI_GCC_4: +- fABISubDirectory = "gcc4"; +- break; +- } +- } +- +- AddDefaultPaths(); +-} +- +- +-GLRendererRoster::~GLRendererRoster() +-{ +- +-} +- +- +-BGLRenderer* +-GLRendererRoster::GetRenderer(int32 id) +-{ +- RendererMap::const_iterator iterator = fRenderers.find(id); +- if (iterator == fRenderers.end()) +- return NULL; +- +- struct renderer_item item = iterator->second; +- return item.renderer; +-} +- +- +-void +-GLRendererRoster::AddDefaultPaths() +-{ +- // add user directories first, so that they can override system renderers +- const directory_which paths[] = { +- B_USER_NONPACKAGED_ADDONS_DIRECTORY, +- B_USER_ADDONS_DIRECTORY, +- B_SYSTEM_ADDONS_DIRECTORY, +- }; +- +- for (uint32 i = fSafeMode ? 4 : 0; +- i < sizeof(paths) / sizeof(paths[0]); i++) { +- BPath path; +- status_t status = find_directory(paths[i], &path, true); +- if (status == B_OK && path.Append("opengl") == B_OK) +- AddPath(path.Path()); +- } +-} +- +- +-status_t +-GLRendererRoster::AddPath(const char* path) +-{ +- BDirectory directory(path); +- status_t status = directory.InitCheck(); +- if (status < B_OK) +- return status; +- +- // if a subdirectory for our ABI exists, use that instead +- if (fABISubDirectory != NULL) { +- BEntry entry(&directory, fABISubDirectory); +- if (entry.IsDirectory()) { +- status = directory.SetTo(&entry); +- if (status != B_OK) +- return status; +- } +- } +- +- node_ref nodeRef; +- status = directory.GetNodeRef(&nodeRef); +- if (status < B_OK) +- return status; +- +- int32 count = 0; +- int32 files = 0; +- +- entry_ref ref; +- BEntry entry; +- while (directory.GetNextRef(&ref) == B_OK) { +- entry.SetTo(&ref); +- if (entry.InitCheck() == B_OK && !entry.IsFile()) +- continue; +- +- if (CreateRenderer(ref) == B_OK) +- count++; +- +- files++; +- } +- +- if (files != 0 && count == 0) +- return B_BAD_VALUE; +- +- return B_OK; +-} +- +- +-status_t +-GLRendererRoster::AddRenderer(BGLRenderer* renderer, +- image_id image, const entry_ref* ref, ino_t node) +-{ +- renderer_item item; +- item.renderer = renderer; +- item.image = image; +- item.node = node; +- if (ref != NULL) +- item.ref = *ref; +- +- try { +- fRenderers[fNextID] = item; +- } catch (...) { +- return B_NO_MEMORY; +- } +- +- renderer->fOwningRoster = this; +- renderer->fID = fNextID++; +- return B_OK; +-} +- +- +-status_t +-GLRendererRoster::CreateRenderer(const entry_ref& ref) +-{ +- BEntry entry(&ref); +- node_ref nodeRef; +- status_t status = entry.GetNodeRef(&nodeRef); +- if (status < B_OK) +- return status; +- +- BPath path(&ref); +- image_id image = load_add_on(path.Path()); +- if (image < B_OK) +- return image; +- +- BGLRenderer* (*instantiate_renderer) +- (BGLView* view, ulong options, BGLDispatcher* dispatcher); +- +- status = get_image_symbol(image, "instantiate_gl_renderer", +- B_SYMBOL_TYPE_TEXT, (void**)&instantiate_renderer); +- if (status == B_OK) { +- BGLRenderer* renderer +- = instantiate_renderer(fView, fOptions, new BGLDispatcher()); +- if (!renderer) { +- unload_add_on(image); +- return B_UNSUPPORTED; +- } +- +- if (AddRenderer(renderer, image, &ref, nodeRef.node) != B_OK) { +- renderer->Release(); +- // this will delete the renderer +- unload_add_on(image); +- } +- return B_OK; +- } +- unload_add_on(image); +- +- return status; +-} +diff --git a/src/gallium/targets/libgl-haiku/GLRendererRoster.h b/src/gallium/targets/libgl-haiku/GLRendererRoster.h +deleted file mode 100644 +index 5c8da27..0000000 +--- a/src/gallium/targets/libgl-haiku/GLRendererRoster.h ++++ /dev/null +@@ -1,51 +0,0 @@ +-/* +- * Copyright 2006-2012, Haiku, Inc. All Rights Reserved. +- * Distributed under the terms of the MIT License. +- * +- * Authors: +- * Philippe Houdoin +- */ +-#ifndef _GLRENDERER_ROSTER_H +-#define _GLRENDERER_ROSTER_H +- +- +-#include +- +-#include +- +- +-struct renderer_item { +- BGLRenderer* renderer; +- entry_ref ref; +- ino_t node; +- image_id image; +-}; +- +-typedef std::map RendererMap; +- +- +-class GLRendererRoster { +- public: +- GLRendererRoster(BGLView* view, ulong options); +- virtual ~GLRendererRoster(); +- +- BGLRenderer* GetRenderer(int32 id = 0); +- +- private: +- void AddDefaultPaths(); +- status_t AddPath(const char* path); +- status_t AddRenderer(BGLRenderer* renderer, +- image_id image, const entry_ref* ref, ino_t node); +- status_t CreateRenderer(const entry_ref& ref); +- +- RendererMap fRenderers; +- int32 fNextID; +- BGLView* fView; +- ulong fOptions; +- bool fSafeMode; +- const char* fABISubDirectory; +- +-}; +- +- +-#endif /* _GLRENDERER_ROSTER_H */ +diff --git a/src/gallium/targets/libgl-haiku/GLView.cpp b/src/gallium/targets/libgl-haiku/GLView.cpp +deleted file mode 100644 +index 9ae5b5c..0000000 +--- a/src/gallium/targets/libgl-haiku/GLView.cpp ++++ /dev/null +@@ -1,643 +0,0 @@ +-/* +- * Copyright 2006-2012, Haiku. All rights reserved. +- * Distributed under the terms of the MIT License. +- * +- * Authors: +- * Jérôme Duval, korli@users.berlios.de +- * Philippe Houdoin, philippe.houdoin@free.fr +- * Stefano Ceccherini, burton666@libero.it +- */ +- +-#include +- +-#include +- +-#include +-#include +-#include +-#include +- +-#include +-#include +- +-#include "interface/DirectWindowPrivate.h" +-#include "GLDispatcher.h" +-#include "GLRendererRoster.h" +- +- +-struct glview_direct_info { +- direct_buffer_info* direct_info; +- bool direct_connected; +- bool enable_direct_mode; +- +- glview_direct_info(); +- ~glview_direct_info(); +-}; +- +- +-BGLView::BGLView(BRect rect, const char* name, ulong resizingMode, ulong mode, +- ulong options) +- : +- BView(rect, name, B_FOLLOW_ALL_SIDES, mode | B_WILL_DRAW | B_FRAME_EVENTS), +- // | B_FULL_UPDATE_ON_RESIZE) +- fGc(NULL), +- fOptions(options), +- fDitherCount(0), +- fDrawLock("BGLView draw lock"), +- fDisplayLock("BGLView display lock"), +- fClipInfo(NULL), +- fRenderer(NULL), +- fRoster(NULL), +- fDitherMap(NULL) +-{ +- fRoster = new GLRendererRoster(this, options); +-} +- +- +-BGLView::~BGLView() +-{ +- delete fClipInfo; +- if (fRenderer) +- fRenderer->Release(); +-} +- +- +-void +-BGLView::LockGL() +-{ +- // TODO: acquire the OpenGL API lock it on this glview +- +- fDisplayLock.Lock(); +- if (fRenderer) +- fRenderer->LockGL(); +-} +- +- +-void +-BGLView::UnlockGL() +-{ +- if (fRenderer) +- fRenderer->UnlockGL(); +- fDisplayLock.Unlock(); +- +- // TODO: release the GL API lock to others glviews +-} +- +- +-void +-BGLView::SwapBuffers() +-{ +- SwapBuffers(false); +-} +- +- +-void +-BGLView::SwapBuffers(bool vSync) +-{ +- if (fRenderer) { +- _LockDraw(); +- fRenderer->SwapBuffers(vSync); +- _UnlockDraw(); +- } +-} +- +- +-BView* +-BGLView::EmbeddedView() +-{ +- return NULL; +-} +- +- +-void* +-BGLView::GetGLProcAddress(const char* procName) +-{ +- BGLDispatcher* glDispatcher = NULL; +- +- if (fRenderer) +- glDispatcher = fRenderer->GLDispatcher(); +- +- if (glDispatcher) +- return (void*)glDispatcher->AddressOf(procName); +- +- return NULL; +-} +- +- +-status_t +-BGLView::CopyPixelsOut(BPoint source, BBitmap* dest) +-{ +- if (!fRenderer) +- return B_ERROR; +- +- if (!dest || !dest->Bounds().IsValid()) +- return B_BAD_VALUE; +- +- return fRenderer->CopyPixelsOut(source, dest); +-} +- +- +-status_t +-BGLView::CopyPixelsIn(BBitmap* source, BPoint dest) +-{ +- if (!fRenderer) +- return B_ERROR; +- +- if (!source || !source->Bounds().IsValid()) +- return B_BAD_VALUE; +- +- return fRenderer->CopyPixelsIn(source, dest); +-} +- +- +-/*! Mesa's GLenum is not ulong but uint, so we can't use GLenum +- without breaking this method signature. +- Instead, we have to use the effective BeOS's SGI OpenGL GLenum type: +- unsigned long. +- */ +-void +-BGLView::ErrorCallback(unsigned long errorCode) +-{ +- char msg[32]; +- sprintf(msg, "GL: Error code $%04lx.", errorCode); +- // TODO: under BeOS R5, it call debugger(msg); +- fprintf(stderr, "%s\n", msg); +-} +- +- +-void +-BGLView::Draw(BRect updateRect) +-{ +- if (fRenderer) { +- _LockDraw(); +- fRenderer->Draw(updateRect); +- _UnlockDraw(); +- return; +- } +- // TODO: auto-size and center the string +- MovePenTo(8, 32); +- DrawString("No OpenGL renderer available!"); +-} +- +- +-void +-BGLView::AttachedToWindow() +-{ +- BView::AttachedToWindow(); +- +- fBounds = Bounds(); +- for (BView* view = this; view != NULL; view = view->Parent()) +- view->ConvertToParent(&fBounds); +- +- fRenderer = fRoster->GetRenderer(); +- if (fRenderer != NULL) { +- // Jackburton: The following code was commented because it doesn't look +- // good in "direct" mode: +- // when the window is moved, the app_server doesn't paint the view's +- // background, and the stuff behind the window itself shows up. +- // Setting the view color to black, instead, looks a bit more elegant. +-#if 0 +- // Don't paint white window background when resized +- SetViewColor(B_TRANSPARENT_32_BIT); +-#else +- SetViewColor(0, 0, 0); +-#endif +- +- // Set default OpenGL viewport: +- LockGL(); +- glViewport(0, 0, Bounds().IntegerWidth(), Bounds().IntegerHeight()); +- UnlockGL(); +- fRenderer->FrameResized(Bounds().IntegerWidth(), +- Bounds().IntegerHeight()); +- +- if (fClipInfo) { +- fRenderer->DirectConnected(fClipInfo->direct_info); +- fRenderer->EnableDirectMode(fClipInfo->enable_direct_mode); +- } +- +- return; +- } +- +- fprintf(stderr, "no renderer found! \n"); +- +- // No Renderer, no rendering. Setup a minimal "No Renderer" string drawing +- // context +- SetFont(be_bold_font); +- // SetFontSize(16); +-} +- +- +-void +-BGLView::AllAttached() +-{ +- BView::AllAttached(); +-} +- +- +-void +-BGLView::DetachedFromWindow() +-{ +- if (fRenderer) +- fRenderer->Release(); +- fRenderer = NULL; +- +- BView::DetachedFromWindow(); +-} +- +- +-void +-BGLView::AllDetached() +-{ +- BView::AllDetached(); +-} +- +- +-void +-BGLView::FrameResized(float width, float height) +-{ +- fBounds = Bounds(); +- for (BView* v = this; v; v = v->Parent()) +- v->ConvertToParent(&fBounds); +- +- if (fRenderer) { +- LockGL(); +- _LockDraw(); +- _CallDirectConnected(); +- fRenderer->FrameResized(width, height); +- _UnlockDraw(); +- UnlockGL(); +- } +- +- BView::FrameResized(width, height); +-} +- +- +-status_t +-BGLView::Perform(perform_code d, void* arg) +-{ +- return BView::Perform(d, arg); +-} +- +- +-status_t +-BGLView::Archive(BMessage* data, bool deep) const +-{ +- return BView::Archive(data, deep); +-} +- +- +-void +-BGLView::MessageReceived(BMessage* msg) +-{ +- BView::MessageReceived(msg); +-} +- +- +-void +-BGLView::SetResizingMode(uint32 mode) +-{ +- BView::SetResizingMode(mode); +-} +- +- +-void +-BGLView::GetPreferredSize(float* _width, float* _height) +-{ +- if (_width) +- *_width = 0; +- if (_height) +- *_height = 0; +-} +- +- +-void +-BGLView::Show() +-{ +- BView::Show(); +-} +- +- +-void +-BGLView::Hide() +-{ +- BView::Hide(); +-} +- +- +-BHandler* +-BGLView::ResolveSpecifier(BMessage* msg, int32 index, BMessage* specifier, +- int32 form, const char* property) +-{ +- return BView::ResolveSpecifier(msg, index, specifier, form, property); +-} +- +- +-status_t +-BGLView::GetSupportedSuites(BMessage* data) +-{ +- return BView::GetSupportedSuites(data); +-} +- +- +-void +-BGLView::DirectConnected(direct_buffer_info* info) +-{ +- if (fClipInfo == NULL) { +- fClipInfo = new (std::nothrow) glview_direct_info(); +- if (fClipInfo == NULL) +- return; +- } +- +- direct_buffer_info* localInfo = fClipInfo->direct_info; +- +- switch (info->buffer_state & B_DIRECT_MODE_MASK) { +- case B_DIRECT_START: +- fClipInfo->direct_connected = true; +- memcpy(localInfo, info, DIRECT_BUFFER_INFO_AREA_SIZE); +- _UnlockDraw(); +- break; +- +- case B_DIRECT_MODIFY: +- _LockDraw(); +- memcpy(localInfo, info, DIRECT_BUFFER_INFO_AREA_SIZE); +- _UnlockDraw(); +- break; +- +- case B_DIRECT_STOP: +- fClipInfo->direct_connected = false; +- _LockDraw(); +- break; +- } +- +- if (fRenderer) +- _CallDirectConnected(); +-} +- +- +-void +-BGLView::EnableDirectMode(bool enabled) +-{ +- if (fRenderer) +- fRenderer->EnableDirectMode(enabled); +- if (fClipInfo == NULL) { +- fClipInfo = new (std::nothrow) glview_direct_info(); +- if (fClipInfo == NULL) +- return; +- } +- +- fClipInfo->enable_direct_mode = enabled; +-} +- +- +-void +-BGLView::_LockDraw() +-{ +- if (!fClipInfo || !fClipInfo->enable_direct_mode) +- return; +- +- fDrawLock.Lock(); +-} +- +- +-void +-BGLView::_UnlockDraw() +-{ +- if (!fClipInfo || !fClipInfo->enable_direct_mode) +- return; +- +- fDrawLock.Unlock(); +-} +- +- +-void +-BGLView::_CallDirectConnected() +-{ +- if (!fClipInfo) +- return; +- +- direct_buffer_info* localInfo = fClipInfo->direct_info; +- direct_buffer_info* info = (direct_buffer_info*)malloc( +- DIRECT_BUFFER_INFO_AREA_SIZE); +- if (info == NULL) +- return; +- +- memcpy(info, localInfo, DIRECT_BUFFER_INFO_AREA_SIZE); +- +- // Collect the rects into a BRegion, then clip to the view's bounds +- BRegion region; +- for (uint32 c = 0; c < localInfo->clip_list_count; c++) +- region.Include(localInfo->clip_list[c]); +- BRegion boundsRegion = fBounds.OffsetByCopy(localInfo->window_bounds.left, +- localInfo->window_bounds.top); +- info->window_bounds = boundsRegion.RectAtInt(0); +- // window_bounds are now view bounds +- region.IntersectWith(&boundsRegion); +- +- info->clip_list_count = region.CountRects(); +- info->clip_bounds = region.FrameInt(); +- +- for (uint32 c = 0; c < info->clip_list_count; c++) +- info->clip_list[c] = region.RectAtInt(c); +- fRenderer->DirectConnected(info); +- free(info); +-} +- +- +-//---- virtual reserved methods ---------- +- +- +-void BGLView::_ReservedGLView1() {} +-void BGLView::_ReservedGLView2() {} +-void BGLView::_ReservedGLView3() {} +-void BGLView::_ReservedGLView4() {} +-void BGLView::_ReservedGLView5() {} +-void BGLView::_ReservedGLView6() {} +-void BGLView::_ReservedGLView7() {} +-void BGLView::_ReservedGLView8() {} +- +- +-// #pragma mark - +- +- +-// BeOS compatibility: contrary to others BView's contructors, +-// BGLView one wants a non-const name argument. +-BGLView::BGLView(BRect rect, char* name, ulong resizingMode, ulong mode, +- ulong options) +- : +- BView(rect, name, B_FOLLOW_ALL_SIDES, mode | B_WILL_DRAW | B_FRAME_EVENTS), +- fGc(NULL), +- fOptions(options), +- fDitherCount(0), +- fDrawLock("BGLView draw lock"), +- fDisplayLock("BGLView display lock"), +- fClipInfo(NULL), +- fRenderer(NULL), +- fRoster(NULL), +- fDitherMap(NULL) +-{ +- fRoster = new GLRendererRoster(this, options); +-} +- +- +-#if 0 +-// TODO: implement BGLScreen class... +- +- +-BGLScreen::BGLScreen(char* name, ulong screenMode, ulong options, +- status_t* error, bool debug) +- : +- BWindowScreen(name, screenMode, error, debug) +-{ +-} +- +- +-BGLScreen::~BGLScreen() +-{ +-} +- +- +-void +-BGLScreen::LockGL() +-{ +-} +- +- +-void +-BGLScreen::UnlockGL() +-{ +-} +- +- +-void +-BGLScreen::SwapBuffers() +-{ +-} +- +- +-void +-BGLScreen::ErrorCallback(unsigned long errorCode) +-{ +- // Mesa's GLenum is not ulong but uint! +- char msg[32]; +- sprintf(msg, "GL: Error code $%04lx.", errorCode); +- // debugger(msg); +- fprintf(stderr, "%s\n", msg); +- return; +-} +- +- +-void +-BGLScreen::ScreenConnected(bool enabled) +-{ +-} +- +- +-void +-BGLScreen::FrameResized(float width, float height) +-{ +- return BWindowScreen::FrameResized(width, height); +-} +- +- +-status_t +-BGLScreen::Perform(perform_code d, void* arg) +-{ +- return BWindowScreen::Perform(d, arg); +-} +- +- +-status_t +-BGLScreen::Archive(BMessage* data, bool deep) const +-{ +- return BWindowScreen::Archive(data, deep); +-} +- +- +-void +-BGLScreen::MessageReceived(BMessage* msg) +-{ +- BWindowScreen::MessageReceived(msg); +-} +- +- +-void +-BGLScreen::Show() +-{ +- BWindowScreen::Show(); +-} +- +- +-void +-BGLScreen::Hide() +-{ +- BWindowScreen::Hide(); +-} +- +- +-BHandler* +-BGLScreen::ResolveSpecifier(BMessage* msg, int32 index, BMessage* specifier, +- int32 form, const char* property) +-{ +- return BWindowScreen::ResolveSpecifier(msg, index, specifier, +- form, property); +-} +- +- +-status_t +-BGLScreen::GetSupportedSuites(BMessage* data) +-{ +- return BWindowScreen::GetSupportedSuites(data); +-} +- +- +-//---- virtual reserved methods ---------- +- +-void BGLScreen::_ReservedGLScreen1() {} +-void BGLScreen::_ReservedGLScreen2() {} +-void BGLScreen::_ReservedGLScreen3() {} +-void BGLScreen::_ReservedGLScreen4() {} +-void BGLScreen::_ReservedGLScreen5() {} +-void BGLScreen::_ReservedGLScreen6() {} +-void BGLScreen::_ReservedGLScreen7() {} +-void BGLScreen::_ReservedGLScreen8() {} +-#endif +- +- +-const char* color_space_name(color_space space) +-{ +-#define C2N(a) case a: return #a +- +- switch (space) { +- C2N(B_RGB24); +- C2N(B_RGB32); +- C2N(B_RGBA32); +- C2N(B_RGB32_BIG); +- C2N(B_RGBA32_BIG); +- C2N(B_GRAY8); +- C2N(B_GRAY1); +- C2N(B_RGB16); +- C2N(B_RGB15); +- C2N(B_RGBA15); +- C2N(B_CMAP8); +- default: +- return "Unknown!"; +- }; +- +-#undef C2N +-}; +- +- +-glview_direct_info::glview_direct_info() +-{ +- // TODO: See direct_window_data() in app_server's ServerWindow.cpp +- direct_info = (direct_buffer_info*)calloc(1, DIRECT_BUFFER_INFO_AREA_SIZE); +- direct_connected = false; +- enable_direct_mode = false; +-} +- +- +-glview_direct_info::~glview_direct_info() +-{ +- free(direct_info); +-} +- +diff --git a/src/gallium/targets/libgl-haiku/SConscript b/src/gallium/targets/libgl-haiku/SConscript +deleted file mode 100644 +index 43d15c5..0000000 +--- a/src/gallium/targets/libgl-haiku/SConscript ++++ /dev/null +@@ -1,35 +0,0 @@ +-####################################################################### +-# SConscript for Haiku OpenGL kit +- +-Import('*') +- +-env = env.Clone() +- +-env.Append(CPPPATH = [ +- '#/src/mapi', +- '#/src/mesa', +- '#/src/mesa/main', +- '#/include/HaikuGL', +- '/boot/system/develop/headers/private', +- Dir('../../../mapi'), # src/mapi build path for python-generated GL API files/headers +-]) +- +-env.Prepend(LIBS = [ +- glapi +-]) +- +-sources = [ +- 'GLView.cpp', +- 'GLRenderer.cpp', +- 'GLRendererRoster.cpp', +- 'GLDispatcher.cpp', +-] +- +-# libGL.so +-libgl = env.SharedLibrary( +- target ='GL', +- source = sources, +- SHLIBSUFFIX = env['SHLIBSUFFIX'], +-) +- +-env.Alias('libgl-haiku', libgl) +diff --git a/src/hgl/GLDispatcher.cpp b/src/hgl/GLDispatcher.cpp +new file mode 100644 +index 0000000..46b91d5 +--- /dev/null ++++ b/src/hgl/GLDispatcher.cpp +@@ -0,0 +1,72 @@ ++/* ++ * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. ++ * Copyright 2000-2012 Haiku, Inc. All Rights Reserved. ++ * Distributed under the terms of the MIT License. ++ * ++ * Authors: ++ * Brian Paul ++ * Philippe Houdoin ++ * Alexander von Gluck IV ++ */ ++ ++ ++extern "C" { ++#include "glapi/glapi.h" ++#include "glapi/glapi_priv.h" ++ ++/* ++ * NOTE: this file portion implements C-based dispatch of the OpenGL entrypoints ++ * (glAccum, glBegin, etc). ++ * This code IS NOT USED if we're compiling on an x86 system and using ++ * the glapi_x86.S assembly code. ++ */ ++#if !(defined(USE_X86_ASM) || defined(USE_SPARC_ASM)) ++ ++#define KEYWORD1 PUBLIC ++#define KEYWORD2 ++#define NAME(func) gl##func ++ ++#define DISPATCH(func, args, msg) \ ++ const struct _glapi_table* dispatch; \ ++ dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\ ++ (dispatch->func) args ++ ++#define RETURN_DISPATCH(func, args, msg) \ ++ const struct _glapi_table* dispatch; \ ++ dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\ ++ return (dispatch->func) args ++ ++#endif ++} ++ ++ ++/* NOTE: this file portion implement a thin OpenGL entrypoints dispatching ++ C++ wrapper class ++ */ ++ ++#include "GLDispatcher.h" ++ ++BGLDispatcher::BGLDispatcher() ++{ ++} ++ ++ ++BGLDispatcher::~BGLDispatcher() ++{ ++} ++ ++ ++status_t ++BGLDispatcher::CheckTable(const struct _glapi_table* table) ++{ ++ _glapi_check_table(table ? table : _glapi_get_dispatch()); ++ return B_OK; ++} ++ ++ ++status_t ++BGLDispatcher::SetTable(struct _glapi_table* table) ++{ ++ _glapi_set_dispatch(table); ++ return B_OK; ++} +diff --git a/src/hgl/GLDispatcher.h b/src/hgl/GLDispatcher.h +new file mode 100644 +index 0000000..44bca8c +--- /dev/null ++++ b/src/hgl/GLDispatcher.h +@@ -0,0 +1,109 @@ ++/* ++ * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. ++ * Copyright 2000-2012 Haiku, Inc. All Rights Reserved. ++ * Distributed under the terms of the MIT License. ++ * ++ * Authors: ++ * Brian Paul ++ * Philippe Houdoin ++ */ ++#ifndef GLDISPATCHER_H ++#define GLDISPATCHER_H ++ ++ ++#include ++#include ++#include ++ ++#include "glheader.h" ++ ++extern "C" { ++#include "glapi/glapi.h" ++} ++ ++ ++class BGLDispatcher ++{ ++ // Private unimplemented copy constructors ++ BGLDispatcher(const BGLDispatcher &); ++ BGLDispatcher & operator=(const BGLDispatcher &); ++ ++ public: ++ BGLDispatcher(); ++ ~BGLDispatcher(); ++ ++ void SetCurrentContext(void* context); ++ void* CurrentContext(); ++ ++ struct _glapi_table* Table(); ++ status_t CheckTable( ++ const struct _glapi_table* dispatch = NULL); ++ status_t SetTable(struct _glapi_table* dispatch); ++ uint32 TableSize(); ++ ++ const _glapi_proc operator[](const char* functionName); ++ const char* operator[](uint32 offset); ++ ++ const _glapi_proc AddressOf(const char* functionName); ++ uint32 OffsetOf(const char* functionName); ++}; ++ ++ ++// Inlines methods ++inline void ++BGLDispatcher::SetCurrentContext(void* context) ++{ ++ _glapi_set_context(context); ++} ++ ++ ++inline void* ++BGLDispatcher::CurrentContext() ++{ ++ return _glapi_get_context(); ++} ++ ++ ++inline struct _glapi_table* ++BGLDispatcher::Table() ++{ ++ return _glapi_get_dispatch(); ++} ++ ++ ++inline uint32 ++BGLDispatcher::TableSize() ++{ ++ return _glapi_get_dispatch_table_size(); ++} ++ ++ ++inline const _glapi_proc ++BGLDispatcher::operator[](const char* functionName) ++{ ++ return _glapi_get_proc_address(functionName); ++} ++ ++ ++inline const char* ++BGLDispatcher::operator[](uint32 offset) ++{ ++ return _glapi_get_proc_name((GLuint) offset); ++} ++ ++ ++inline const _glapi_proc ++BGLDispatcher::AddressOf(const char* functionName) ++{ ++ return _glapi_get_proc_address(functionName); ++} ++ ++ ++inline uint32 ++BGLDispatcher::OffsetOf(const char* functionName) ++{ ++ return (uint32) _glapi_get_proc_offset(functionName); ++} ++ ++ ++#endif // GLDISPATCHER_H +diff --git a/src/hgl/GLRenderer.cpp b/src/hgl/GLRenderer.cpp +new file mode 100644 +index 0000000..4573a64 +--- /dev/null ++++ b/src/hgl/GLRenderer.cpp +@@ -0,0 +1,106 @@ ++/* ++ * Copyright 2006-2008, Philippe Houdoin. All rights reserved. ++ * Distributed under the terms of the MIT License. ++ */ ++ ++ ++#include ++ ++#include "GLRenderer.h" ++ ++#include "GLDispatcher.h" ++ ++ ++BGLRenderer::BGLRenderer(BGLView* view, ulong glOptions, ++ BGLDispatcher* dispatcher) ++ : ++ fRefCount(1), ++ fView(view), ++ fOptions(glOptions), ++ fDispatcher(dispatcher) ++{ ++} ++ ++ ++BGLRenderer::~BGLRenderer() ++{ ++ delete fDispatcher; ++} ++ ++ ++void ++BGLRenderer::Acquire() ++{ ++ atomic_add(&fRefCount, 1); ++} ++ ++ ++void ++BGLRenderer::Release() ++{ ++ if (atomic_add(&fRefCount, -1) < 1) ++ delete this; ++} ++ ++ ++void ++BGLRenderer::LockGL() ++{ ++} ++ ++ ++void ++BGLRenderer::UnlockGL() ++{ ++} ++ ++ ++void ++BGLRenderer::SwapBuffers(bool VSync) ++{ ++} ++ ++ ++void ++BGLRenderer::Draw(BRect updateRect) ++{ ++} ++ ++ ++status_t ++BGLRenderer::CopyPixelsOut(BPoint source, BBitmap* dest) ++{ ++ return B_ERROR; ++} ++ ++ ++status_t ++BGLRenderer::CopyPixelsIn(BBitmap* source, BPoint dest) ++{ ++ return B_ERROR; ++} ++ ++ ++void ++BGLRenderer::FrameResized(float width, float height) ++{ ++} ++ ++ ++void ++BGLRenderer::DirectConnected(direct_buffer_info* info) ++{ ++} ++ ++ ++void ++BGLRenderer::EnableDirectMode(bool enabled) ++{ ++} ++ ++ ++status_t BGLRenderer::_Reserved_Renderer_0(int32 n, void* p) { return B_ERROR; } ++status_t BGLRenderer::_Reserved_Renderer_1(int32 n, void* p) { return B_ERROR; } ++status_t BGLRenderer::_Reserved_Renderer_2(int32 n, void* p) { return B_ERROR; } ++status_t BGLRenderer::_Reserved_Renderer_3(int32 n, void* p) { return B_ERROR; } ++status_t BGLRenderer::_Reserved_Renderer_4(int32 n, void* p) { return B_ERROR; } +diff --git a/src/hgl/GLRendererRoster.cpp b/src/hgl/GLRendererRoster.cpp +new file mode 100644 +index 0000000..1712a87 +--- /dev/null ++++ b/src/hgl/GLRendererRoster.cpp +@@ -0,0 +1,224 @@ ++/* ++ * Copyright 2006-2012 Haiku, Inc. All Rights Reserved. ++ * Distributed under the terms of the MIT License. ++ * ++ * Authors: ++ * Philippe Houdoin ++ * Alexander von Gluck IV ++ */ ++ ++ ++#include ++#include ++ ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include "GLDispatcher.h" ++#include "GLRendererRoster.h" ++ ++#include ++#include ++ ++ ++extern "C" status_t _kern_get_safemode_option(const char* parameter, ++ char* buffer, size_t* _bufferSize); ++ ++ ++GLRendererRoster::GLRendererRoster(BGLView* view, ulong options) ++ : ++ fNextID(0), ++ fView(view), ++ fOptions(options), ++ fSafeMode(false), ++ fABISubDirectory(NULL) ++{ ++ char parameter[32]; ++ size_t parameterLength = sizeof(parameter); ++ ++ if (_kern_get_safemode_option(B_SAFEMODE_SAFE_MODE, ++ parameter, ¶meterLength) == B_OK) { ++ if (!strcasecmp(parameter, "enabled") || !strcasecmp(parameter, "on") ++ || !strcasecmp(parameter, "true") || !strcasecmp(parameter, "yes") ++ || !strcasecmp(parameter, "enable") || !strcmp(parameter, "1")) ++ fSafeMode = true; ++ } ++ ++ if (_kern_get_safemode_option(B_SAFEMODE_DISABLE_USER_ADD_ONS, ++ parameter, ¶meterLength) == B_OK) { ++ if (!strcasecmp(parameter, "enabled") || !strcasecmp(parameter, "on") ++ || !strcasecmp(parameter, "true") || !strcasecmp(parameter, "yes") ++ || !strcasecmp(parameter, "enable") || !strcmp(parameter, "1")) ++ fSafeMode = true; ++ } ++ ++ // We might run in compatibility mode on a system with a different ABI. The ++ // renderers matching our ABI can usually be found in respective ++ // subdirectories of the opengl add-ons directories. ++ system_info info; ++ if (get_system_info(&info) == B_OK ++ && (info.abi & B_HAIKU_ABI_MAJOR) ++ != (B_HAIKU_ABI & B_HAIKU_ABI_MAJOR)) { ++ switch (B_HAIKU_ABI & B_HAIKU_ABI_MAJOR) { ++ case B_HAIKU_ABI_GCC_2: ++ fABISubDirectory = "gcc2"; ++ break; ++ case B_HAIKU_ABI_GCC_4: ++ fABISubDirectory = "gcc4"; ++ break; ++ } ++ } ++ ++ AddDefaultPaths(); ++} ++ ++ ++GLRendererRoster::~GLRendererRoster() ++{ ++ ++} ++ ++ ++BGLRenderer* ++GLRendererRoster::GetRenderer(int32 id) ++{ ++ RendererMap::const_iterator iterator = fRenderers.find(id); ++ if (iterator == fRenderers.end()) ++ return NULL; ++ ++ struct renderer_item item = iterator->second; ++ return item.renderer; ++} ++ ++ ++void ++GLRendererRoster::AddDefaultPaths() ++{ ++ // add user directories first, so that they can override system renderers ++ const directory_which paths[] = { ++ B_USER_NONPACKAGED_ADDONS_DIRECTORY, ++ B_USER_ADDONS_DIRECTORY, ++ B_SYSTEM_ADDONS_DIRECTORY, ++ }; ++ ++ for (uint32 i = fSafeMode ? 4 : 0; ++ i < sizeof(paths) / sizeof(paths[0]); i++) { ++ BPath path; ++ status_t status = find_directory(paths[i], &path, true); ++ if (status == B_OK && path.Append("opengl") == B_OK) ++ AddPath(path.Path()); ++ } ++} ++ ++ ++status_t ++GLRendererRoster::AddPath(const char* path) ++{ ++ BDirectory directory(path); ++ status_t status = directory.InitCheck(); ++ if (status < B_OK) ++ return status; ++ ++ // if a subdirectory for our ABI exists, use that instead ++ if (fABISubDirectory != NULL) { ++ BEntry entry(&directory, fABISubDirectory); ++ if (entry.IsDirectory()) { ++ status = directory.SetTo(&entry); ++ if (status != B_OK) ++ return status; ++ } ++ } ++ ++ node_ref nodeRef; ++ status = directory.GetNodeRef(&nodeRef); ++ if (status < B_OK) ++ return status; ++ ++ int32 count = 0; ++ int32 files = 0; ++ ++ entry_ref ref; ++ BEntry entry; ++ while (directory.GetNextRef(&ref) == B_OK) { ++ entry.SetTo(&ref); ++ if (entry.InitCheck() == B_OK && !entry.IsFile()) ++ continue; ++ ++ if (CreateRenderer(ref) == B_OK) ++ count++; ++ ++ files++; ++ } ++ ++ if (files != 0 && count == 0) ++ return B_BAD_VALUE; ++ ++ return B_OK; ++} ++ ++ ++status_t ++GLRendererRoster::AddRenderer(BGLRenderer* renderer, ++ image_id image, const entry_ref* ref, ino_t node) ++{ ++ renderer_item item; ++ item.renderer = renderer; ++ item.image = image; ++ item.node = node; ++ if (ref != NULL) ++ item.ref = *ref; ++ ++ try { ++ fRenderers[fNextID] = item; ++ } catch (...) { ++ return B_NO_MEMORY; ++ } ++ ++ renderer->fOwningRoster = this; ++ renderer->fID = fNextID++; ++ return B_OK; ++} ++ ++ ++status_t ++GLRendererRoster::CreateRenderer(const entry_ref& ref) ++{ ++ BEntry entry(&ref); ++ node_ref nodeRef; ++ status_t status = entry.GetNodeRef(&nodeRef); ++ if (status < B_OK) ++ return status; ++ ++ BPath path(&ref); ++ image_id image = load_add_on(path.Path()); ++ if (image < B_OK) ++ return image; ++ ++ BGLRenderer* (*instantiate_renderer) ++ (BGLView* view, ulong options, BGLDispatcher* dispatcher); ++ ++ status = get_image_symbol(image, "instantiate_gl_renderer", ++ B_SYMBOL_TYPE_TEXT, (void**)&instantiate_renderer); ++ if (status == B_OK) { ++ BGLRenderer* renderer ++ = instantiate_renderer(fView, fOptions, new BGLDispatcher()); ++ if (!renderer) { ++ unload_add_on(image); ++ return B_UNSUPPORTED; ++ } ++ ++ if (AddRenderer(renderer, image, &ref, nodeRef.node) != B_OK) { ++ renderer->Release(); ++ // this will delete the renderer ++ unload_add_on(image); ++ } ++ return B_OK; ++ } ++ unload_add_on(image); ++ ++ return status; ++} +diff --git a/src/hgl/GLRendererRoster.h b/src/hgl/GLRendererRoster.h +new file mode 100644 +index 0000000..5c8da27 +--- /dev/null ++++ b/src/hgl/GLRendererRoster.h +@@ -0,0 +1,51 @@ ++/* ++ * Copyright 2006-2012, Haiku, Inc. All Rights Reserved. ++ * Distributed under the terms of the MIT License. ++ * ++ * Authors: ++ * Philippe Houdoin ++ */ ++#ifndef _GLRENDERER_ROSTER_H ++#define _GLRENDERER_ROSTER_H ++ ++ ++#include ++ ++#include ++ ++ ++struct renderer_item { ++ BGLRenderer* renderer; ++ entry_ref ref; ++ ino_t node; ++ image_id image; ++}; ++ ++typedef std::map RendererMap; ++ ++ ++class GLRendererRoster { ++ public: ++ GLRendererRoster(BGLView* view, ulong options); ++ virtual ~GLRendererRoster(); ++ ++ BGLRenderer* GetRenderer(int32 id = 0); ++ ++ private: ++ void AddDefaultPaths(); ++ status_t AddPath(const char* path); ++ status_t AddRenderer(BGLRenderer* renderer, ++ image_id image, const entry_ref* ref, ino_t node); ++ status_t CreateRenderer(const entry_ref& ref); ++ ++ RendererMap fRenderers; ++ int32 fNextID; ++ BGLView* fView; ++ ulong fOptions; ++ bool fSafeMode; ++ const char* fABISubDirectory; ++ ++}; ++ ++ ++#endif /* _GLRENDERER_ROSTER_H */ +diff --git a/src/hgl/GLView.cpp b/src/hgl/GLView.cpp +new file mode 100644 +index 0000000..9ae5b5c +--- /dev/null ++++ b/src/hgl/GLView.cpp +@@ -0,0 +1,643 @@ ++/* ++ * Copyright 2006-2012, Haiku. All rights reserved. ++ * Distributed under the terms of the MIT License. ++ * ++ * Authors: ++ * Jérôme Duval, korli@users.berlios.de ++ * Philippe Houdoin, philippe.houdoin@free.fr ++ * Stefano Ceccherini, burton666@libero.it ++ */ ++ ++#include ++ ++#include ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++#include "interface/DirectWindowPrivate.h" ++#include "GLDispatcher.h" ++#include "GLRendererRoster.h" ++ ++ ++struct glview_direct_info { ++ direct_buffer_info* direct_info; ++ bool direct_connected; ++ bool enable_direct_mode; ++ ++ glview_direct_info(); ++ ~glview_direct_info(); ++}; ++ ++ ++BGLView::BGLView(BRect rect, const char* name, ulong resizingMode, ulong mode, ++ ulong options) ++ : ++ BView(rect, name, B_FOLLOW_ALL_SIDES, mode | B_WILL_DRAW | B_FRAME_EVENTS), ++ // | B_FULL_UPDATE_ON_RESIZE) ++ fGc(NULL), ++ fOptions(options), ++ fDitherCount(0), ++ fDrawLock("BGLView draw lock"), ++ fDisplayLock("BGLView display lock"), ++ fClipInfo(NULL), ++ fRenderer(NULL), ++ fRoster(NULL), ++ fDitherMap(NULL) ++{ ++ fRoster = new GLRendererRoster(this, options); ++} ++ ++ ++BGLView::~BGLView() ++{ ++ delete fClipInfo; ++ if (fRenderer) ++ fRenderer->Release(); ++} ++ ++ ++void ++BGLView::LockGL() ++{ ++ // TODO: acquire the OpenGL API lock it on this glview ++ ++ fDisplayLock.Lock(); ++ if (fRenderer) ++ fRenderer->LockGL(); ++} ++ ++ ++void ++BGLView::UnlockGL() ++{ ++ if (fRenderer) ++ fRenderer->UnlockGL(); ++ fDisplayLock.Unlock(); ++ ++ // TODO: release the GL API lock to others glviews ++} ++ ++ ++void ++BGLView::SwapBuffers() ++{ ++ SwapBuffers(false); ++} ++ ++ ++void ++BGLView::SwapBuffers(bool vSync) ++{ ++ if (fRenderer) { ++ _LockDraw(); ++ fRenderer->SwapBuffers(vSync); ++ _UnlockDraw(); ++ } ++} ++ ++ ++BView* ++BGLView::EmbeddedView() ++{ ++ return NULL; ++} ++ ++ ++void* ++BGLView::GetGLProcAddress(const char* procName) ++{ ++ BGLDispatcher* glDispatcher = NULL; ++ ++ if (fRenderer) ++ glDispatcher = fRenderer->GLDispatcher(); ++ ++ if (glDispatcher) ++ return (void*)glDispatcher->AddressOf(procName); ++ ++ return NULL; ++} ++ ++ ++status_t ++BGLView::CopyPixelsOut(BPoint source, BBitmap* dest) ++{ ++ if (!fRenderer) ++ return B_ERROR; ++ ++ if (!dest || !dest->Bounds().IsValid()) ++ return B_BAD_VALUE; ++ ++ return fRenderer->CopyPixelsOut(source, dest); ++} ++ ++ ++status_t ++BGLView::CopyPixelsIn(BBitmap* source, BPoint dest) ++{ ++ if (!fRenderer) ++ return B_ERROR; ++ ++ if (!source || !source->Bounds().IsValid()) ++ return B_BAD_VALUE; ++ ++ return fRenderer->CopyPixelsIn(source, dest); ++} ++ ++ ++/*! Mesa's GLenum is not ulong but uint, so we can't use GLenum ++ without breaking this method signature. ++ Instead, we have to use the effective BeOS's SGI OpenGL GLenum type: ++ unsigned long. ++ */ ++void ++BGLView::ErrorCallback(unsigned long errorCode) ++{ ++ char msg[32]; ++ sprintf(msg, "GL: Error code $%04lx.", errorCode); ++ // TODO: under BeOS R5, it call debugger(msg); ++ fprintf(stderr, "%s\n", msg); ++} ++ ++ ++void ++BGLView::Draw(BRect updateRect) ++{ ++ if (fRenderer) { ++ _LockDraw(); ++ fRenderer->Draw(updateRect); ++ _UnlockDraw(); ++ return; ++ } ++ // TODO: auto-size and center the string ++ MovePenTo(8, 32); ++ DrawString("No OpenGL renderer available!"); ++} ++ ++ ++void ++BGLView::AttachedToWindow() ++{ ++ BView::AttachedToWindow(); ++ ++ fBounds = Bounds(); ++ for (BView* view = this; view != NULL; view = view->Parent()) ++ view->ConvertToParent(&fBounds); ++ ++ fRenderer = fRoster->GetRenderer(); ++ if (fRenderer != NULL) { ++ // Jackburton: The following code was commented because it doesn't look ++ // good in "direct" mode: ++ // when the window is moved, the app_server doesn't paint the view's ++ // background, and the stuff behind the window itself shows up. ++ // Setting the view color to black, instead, looks a bit more elegant. ++#if 0 ++ // Don't paint white window background when resized ++ SetViewColor(B_TRANSPARENT_32_BIT); ++#else ++ SetViewColor(0, 0, 0); ++#endif ++ ++ // Set default OpenGL viewport: ++ LockGL(); ++ glViewport(0, 0, Bounds().IntegerWidth(), Bounds().IntegerHeight()); ++ UnlockGL(); ++ fRenderer->FrameResized(Bounds().IntegerWidth(), ++ Bounds().IntegerHeight()); ++ ++ if (fClipInfo) { ++ fRenderer->DirectConnected(fClipInfo->direct_info); ++ fRenderer->EnableDirectMode(fClipInfo->enable_direct_mode); ++ } ++ ++ return; ++ } ++ ++ fprintf(stderr, "no renderer found! \n"); ++ ++ // No Renderer, no rendering. Setup a minimal "No Renderer" string drawing ++ // context ++ SetFont(be_bold_font); ++ // SetFontSize(16); ++} ++ ++ ++void ++BGLView::AllAttached() ++{ ++ BView::AllAttached(); ++} ++ ++ ++void ++BGLView::DetachedFromWindow() ++{ ++ if (fRenderer) ++ fRenderer->Release(); ++ fRenderer = NULL; ++ ++ BView::DetachedFromWindow(); ++} ++ ++ ++void ++BGLView::AllDetached() ++{ ++ BView::AllDetached(); ++} ++ ++ ++void ++BGLView::FrameResized(float width, float height) ++{ ++ fBounds = Bounds(); ++ for (BView* v = this; v; v = v->Parent()) ++ v->ConvertToParent(&fBounds); ++ ++ if (fRenderer) { ++ LockGL(); ++ _LockDraw(); ++ _CallDirectConnected(); ++ fRenderer->FrameResized(width, height); ++ _UnlockDraw(); ++ UnlockGL(); ++ } ++ ++ BView::FrameResized(width, height); ++} ++ ++ ++status_t ++BGLView::Perform(perform_code d, void* arg) ++{ ++ return BView::Perform(d, arg); ++} ++ ++ ++status_t ++BGLView::Archive(BMessage* data, bool deep) const ++{ ++ return BView::Archive(data, deep); ++} ++ ++ ++void ++BGLView::MessageReceived(BMessage* msg) ++{ ++ BView::MessageReceived(msg); ++} ++ ++ ++void ++BGLView::SetResizingMode(uint32 mode) ++{ ++ BView::SetResizingMode(mode); ++} ++ ++ ++void ++BGLView::GetPreferredSize(float* _width, float* _height) ++{ ++ if (_width) ++ *_width = 0; ++ if (_height) ++ *_height = 0; ++} ++ ++ ++void ++BGLView::Show() ++{ ++ BView::Show(); ++} ++ ++ ++void ++BGLView::Hide() ++{ ++ BView::Hide(); ++} ++ ++ ++BHandler* ++BGLView::ResolveSpecifier(BMessage* msg, int32 index, BMessage* specifier, ++ int32 form, const char* property) ++{ ++ return BView::ResolveSpecifier(msg, index, specifier, form, property); ++} ++ ++ ++status_t ++BGLView::GetSupportedSuites(BMessage* data) ++{ ++ return BView::GetSupportedSuites(data); ++} ++ ++ ++void ++BGLView::DirectConnected(direct_buffer_info* info) ++{ ++ if (fClipInfo == NULL) { ++ fClipInfo = new (std::nothrow) glview_direct_info(); ++ if (fClipInfo == NULL) ++ return; ++ } ++ ++ direct_buffer_info* localInfo = fClipInfo->direct_info; ++ ++ switch (info->buffer_state & B_DIRECT_MODE_MASK) { ++ case B_DIRECT_START: ++ fClipInfo->direct_connected = true; ++ memcpy(localInfo, info, DIRECT_BUFFER_INFO_AREA_SIZE); ++ _UnlockDraw(); ++ break; ++ ++ case B_DIRECT_MODIFY: ++ _LockDraw(); ++ memcpy(localInfo, info, DIRECT_BUFFER_INFO_AREA_SIZE); ++ _UnlockDraw(); ++ break; ++ ++ case B_DIRECT_STOP: ++ fClipInfo->direct_connected = false; ++ _LockDraw(); ++ break; ++ } ++ ++ if (fRenderer) ++ _CallDirectConnected(); ++} ++ ++ ++void ++BGLView::EnableDirectMode(bool enabled) ++{ ++ if (fRenderer) ++ fRenderer->EnableDirectMode(enabled); ++ if (fClipInfo == NULL) { ++ fClipInfo = new (std::nothrow) glview_direct_info(); ++ if (fClipInfo == NULL) ++ return; ++ } ++ ++ fClipInfo->enable_direct_mode = enabled; ++} ++ ++ ++void ++BGLView::_LockDraw() ++{ ++ if (!fClipInfo || !fClipInfo->enable_direct_mode) ++ return; ++ ++ fDrawLock.Lock(); ++} ++ ++ ++void ++BGLView::_UnlockDraw() ++{ ++ if (!fClipInfo || !fClipInfo->enable_direct_mode) ++ return; ++ ++ fDrawLock.Unlock(); ++} ++ ++ ++void ++BGLView::_CallDirectConnected() ++{ ++ if (!fClipInfo) ++ return; ++ ++ direct_buffer_info* localInfo = fClipInfo->direct_info; ++ direct_buffer_info* info = (direct_buffer_info*)malloc( ++ DIRECT_BUFFER_INFO_AREA_SIZE); ++ if (info == NULL) ++ return; ++ ++ memcpy(info, localInfo, DIRECT_BUFFER_INFO_AREA_SIZE); ++ ++ // Collect the rects into a BRegion, then clip to the view's bounds ++ BRegion region; ++ for (uint32 c = 0; c < localInfo->clip_list_count; c++) ++ region.Include(localInfo->clip_list[c]); ++ BRegion boundsRegion = fBounds.OffsetByCopy(localInfo->window_bounds.left, ++ localInfo->window_bounds.top); ++ info->window_bounds = boundsRegion.RectAtInt(0); ++ // window_bounds are now view bounds ++ region.IntersectWith(&boundsRegion); ++ ++ info->clip_list_count = region.CountRects(); ++ info->clip_bounds = region.FrameInt(); ++ ++ for (uint32 c = 0; c < info->clip_list_count; c++) ++ info->clip_list[c] = region.RectAtInt(c); ++ fRenderer->DirectConnected(info); ++ free(info); ++} ++ ++ ++//---- virtual reserved methods ---------- ++ ++ ++void BGLView::_ReservedGLView1() {} ++void BGLView::_ReservedGLView2() {} ++void BGLView::_ReservedGLView3() {} ++void BGLView::_ReservedGLView4() {} ++void BGLView::_ReservedGLView5() {} ++void BGLView::_ReservedGLView6() {} ++void BGLView::_ReservedGLView7() {} ++void BGLView::_ReservedGLView8() {} ++ ++ ++// #pragma mark - ++ ++ ++// BeOS compatibility: contrary to others BView's contructors, ++// BGLView one wants a non-const name argument. ++BGLView::BGLView(BRect rect, char* name, ulong resizingMode, ulong mode, ++ ulong options) ++ : ++ BView(rect, name, B_FOLLOW_ALL_SIDES, mode | B_WILL_DRAW | B_FRAME_EVENTS), ++ fGc(NULL), ++ fOptions(options), ++ fDitherCount(0), ++ fDrawLock("BGLView draw lock"), ++ fDisplayLock("BGLView display lock"), ++ fClipInfo(NULL), ++ fRenderer(NULL), ++ fRoster(NULL), ++ fDitherMap(NULL) ++{ ++ fRoster = new GLRendererRoster(this, options); ++} ++ ++ ++#if 0 ++// TODO: implement BGLScreen class... ++ ++ ++BGLScreen::BGLScreen(char* name, ulong screenMode, ulong options, ++ status_t* error, bool debug) ++ : ++ BWindowScreen(name, screenMode, error, debug) ++{ ++} ++ ++ ++BGLScreen::~BGLScreen() ++{ ++} ++ ++ ++void ++BGLScreen::LockGL() ++{ ++} ++ ++ ++void ++BGLScreen::UnlockGL() ++{ ++} ++ ++ ++void ++BGLScreen::SwapBuffers() ++{ ++} ++ ++ ++void ++BGLScreen::ErrorCallback(unsigned long errorCode) ++{ ++ // Mesa's GLenum is not ulong but uint! ++ char msg[32]; ++ sprintf(msg, "GL: Error code $%04lx.", errorCode); ++ // debugger(msg); ++ fprintf(stderr, "%s\n", msg); ++ return; ++} ++ ++ ++void ++BGLScreen::ScreenConnected(bool enabled) ++{ ++} ++ ++ ++void ++BGLScreen::FrameResized(float width, float height) ++{ ++ return BWindowScreen::FrameResized(width, height); ++} ++ ++ ++status_t ++BGLScreen::Perform(perform_code d, void* arg) ++{ ++ return BWindowScreen::Perform(d, arg); ++} ++ ++ ++status_t ++BGLScreen::Archive(BMessage* data, bool deep) const ++{ ++ return BWindowScreen::Archive(data, deep); ++} ++ ++ ++void ++BGLScreen::MessageReceived(BMessage* msg) ++{ ++ BWindowScreen::MessageReceived(msg); ++} ++ ++ ++void ++BGLScreen::Show() ++{ ++ BWindowScreen::Show(); ++} ++ ++ ++void ++BGLScreen::Hide() ++{ ++ BWindowScreen::Hide(); ++} ++ ++ ++BHandler* ++BGLScreen::ResolveSpecifier(BMessage* msg, int32 index, BMessage* specifier, ++ int32 form, const char* property) ++{ ++ return BWindowScreen::ResolveSpecifier(msg, index, specifier, ++ form, property); ++} ++ ++ ++status_t ++BGLScreen::GetSupportedSuites(BMessage* data) ++{ ++ return BWindowScreen::GetSupportedSuites(data); ++} ++ ++ ++//---- virtual reserved methods ---------- ++ ++void BGLScreen::_ReservedGLScreen1() {} ++void BGLScreen::_ReservedGLScreen2() {} ++void BGLScreen::_ReservedGLScreen3() {} ++void BGLScreen::_ReservedGLScreen4() {} ++void BGLScreen::_ReservedGLScreen5() {} ++void BGLScreen::_ReservedGLScreen6() {} ++void BGLScreen::_ReservedGLScreen7() {} ++void BGLScreen::_ReservedGLScreen8() {} ++#endif ++ ++ ++const char* color_space_name(color_space space) ++{ ++#define C2N(a) case a: return #a ++ ++ switch (space) { ++ C2N(B_RGB24); ++ C2N(B_RGB32); ++ C2N(B_RGBA32); ++ C2N(B_RGB32_BIG); ++ C2N(B_RGBA32_BIG); ++ C2N(B_GRAY8); ++ C2N(B_GRAY1); ++ C2N(B_RGB16); ++ C2N(B_RGB15); ++ C2N(B_RGBA15); ++ C2N(B_CMAP8); ++ default: ++ return "Unknown!"; ++ }; ++ ++#undef C2N ++}; ++ ++ ++glview_direct_info::glview_direct_info() ++{ ++ // TODO: See direct_window_data() in app_server's ServerWindow.cpp ++ direct_info = (direct_buffer_info*)calloc(1, DIRECT_BUFFER_INFO_AREA_SIZE); ++ direct_connected = false; ++ enable_direct_mode = false; ++} ++ ++ ++glview_direct_info::~glview_direct_info() ++{ ++ free(direct_info); ++} ++ +diff --git a/src/hgl/SConscript b/src/hgl/SConscript +new file mode 100644 +index 0000000..70db149 +--- /dev/null ++++ b/src/hgl/SConscript +@@ -0,0 +1,36 @@ ++####################################################################### ++# SConscript for Haiku OpenGL kit ++ ++Import('*') ++ ++env = env.Clone() ++ ++env.Append(CPPPATH = [ ++ '#/src/mapi', ++ '#/src/mesa', ++ '#/src/mesa/main', ++ '#/include/HaikuGL', ++ '/boot/system/develop/headers/private', ++ Dir('../../../mapi'), # src/mapi build path for python-generated GL API files/headers ++]) ++ ++env.Prepend(LIBS = [ ++ glapi ++]) ++ ++sources = [ ++ 'GLView.cpp', ++ 'GLRenderer.cpp', ++ 'GLRendererRoster.cpp', ++ 'GLDispatcher.cpp', ++] ++ ++# libGL.so ++libgl = env.SharedLibrary( ++ target ='GL', ++ source = sources, ++ SHLIBSUFFIX = env['SHLIBSUFFIX'], ++) ++ ++env.Alias('libgl-haiku', libgl) ++Export('libgl') +diff --git a/src/mesa/drivers/haiku/swrast/SConscript b/src/mesa/drivers/haiku/swrast/SConscript +index ca0423e..aef7300 100644 +--- a/src/mesa/drivers/haiku/swrast/SConscript ++++ b/src/mesa/drivers/haiku/swrast/SConscript +@@ -16,6 +16,8 @@ env.Prepend(LIBS = [ + mesa, + ]) + ++env.Prepend(LIBS = [libgl]) ++ + sources = [ + 'SoftwareRast.cpp' + ] +-- +1.8.3.4 + + +From 23cc377e1ac5046aae825580033c8ec23e80d670 Mon Sep 17 00:00:00 2001 +From: Alexander von Gluck IV +Date: Tue, 21 Jan 2014 18:40:22 +0000 +Subject: hgl: atomic stores no longer need to be volatile + +* Our atomics were revamped to no longer require + volatile int pointers + +diff --git a/include/HaikuGL/GLRenderer.h b/include/HaikuGL/GLRenderer.h +index 7ffcc34..02a438d 100644 +--- a/include/HaikuGL/GLRenderer.h ++++ b/include/HaikuGL/GLRenderer.h +@@ -61,7 +61,7 @@ private: + virtual status_t _Reserved_Renderer_3(int32, void *); + virtual status_t _Reserved_Renderer_4(int32, void *); + +- volatile int32 fRefCount; // How much we're still usefull? ++ int32 fRefCount; // How much we're still usefull? + BGLView* fView; // Never forget who is the boss! + ulong fOptions; // Keep that tune in memory + BGLDispatcher* fDispatcher;// Our personal GL API call dispatcher +-- +1.8.3.4 + + +From bcf7efda26051f122039df4c33e301fc6de59974 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Wed, 12 Feb 2014 20:11:25 +0000 +Subject: hgl: release add-ons on GLView destruction. + + +diff --git a/src/hgl/GLRendererRoster.cpp b/src/hgl/GLRendererRoster.cpp +index 1712a87..3833b2c 100644 +--- a/src/hgl/GLRendererRoster.cpp ++++ b/src/hgl/GLRendererRoster.cpp +@@ -79,7 +79,14 @@ GLRendererRoster::GLRendererRoster(BGLView* view, ulong options) + + GLRendererRoster::~GLRendererRoster() + { +- ++ RendererMap::iterator iterator = fRenderers.begin(); ++ for (; iterator != fRenderers.end(); iterator++) { ++ struct renderer_item item = iterator->second; ++ image_id image = item.image; ++ item.renderer->Release(); ++ // this will delete the renderer ++ unload_add_on(image); ++ } + } + + +@@ -91,6 +98,7 @@ GLRendererRoster::GetRenderer(int32 id) + return NULL; + + struct renderer_item item = iterator->second; ++ item.renderer->Acquire(); + return item.renderer; + } + +@@ -105,7 +113,7 @@ GLRendererRoster::AddDefaultPaths() + B_SYSTEM_ADDONS_DIRECTORY, + }; + +- for (uint32 i = fSafeMode ? 4 : 0; ++ for (uint32 i = fSafeMode ? 3 : 0; + i < sizeof(paths) / sizeof(paths[0]); i++) { + BPath path; + status_t status = find_directory(paths[i], &path, true); +diff --git a/src/hgl/GLView.cpp b/src/hgl/GLView.cpp +index 9ae5b5c..477b430 100644 +--- a/src/hgl/GLView.cpp ++++ b/src/hgl/GLView.cpp +@@ -57,8 +57,11 @@ BGLView::BGLView(BRect rect, const char* name, ulong resizingMode, ulong mode, + BGLView::~BGLView() + { + delete fClipInfo; +- if (fRenderer) ++ if (fRenderer) { + fRenderer->Release(); ++ fRenderer = NULL; ++ } ++ delete fRoster; + } + + +-- +1.8.3.4 + diff --git a/sys-libs/mesa/patches/mesa-10.1.0.patchset b/sys-libs/mesa/patches/mesa-10.1.0.patchset new file mode 100644 index 000000000..1e55016a4 --- /dev/null +++ b/sys-libs/mesa/patches/mesa-10.1.0.patchset @@ -0,0 +1,65 @@ +From 14ba24e39946117b05fd97a077bad7eeda8790f5 Mon Sep 17 00:00:00 2001 +From: Alexander von Gluck IV +Date: Wed, 19 Mar 2014 00:58:01 +0000 +Subject: [PATCH] haiku: Fix build through scons corrections and viewport fixes + +* Add HAVE_PTHREAD, we do have pthread support wrappers now + for non-native Haiku APIs. +* Viewport changed behavior recently breaking the build. + We fix this by looking at the gl_context ViewportArray + (Thanks Brian for the idea) +--- + scons/gallium.py | 5 +++++ + src/gallium/targets/haiku-softpipe/GalliumContext.cpp | 12 +++++++++--- + 2 files changed, 14 insertions(+), 3 deletions(-) + +diff --git a/scons/gallium.py b/scons/gallium.py +index 70ee89b..9796c78 100755 +--- a/scons/gallium.py ++++ b/scons/gallium.py +@@ -269,6 +269,11 @@ def generate(env): + cppdefines += ['HAVE_ALIAS'] + else: + cppdefines += ['GLX_ALIAS_UNSUPPORTED'] ++ if env['platform'] == 'haiku': ++ cppdefines += [ ++ 'HAVE_PTHREAD', ++ 'HAVE_POSIX_MEMALIGN' ++ ] + if platform == 'windows': + cppdefines += [ + 'WIN32', +diff --git a/src/gallium/targets/haiku-softpipe/GalliumContext.cpp b/src/gallium/targets/haiku-softpipe/GalliumContext.cpp +index 1078cb7..52cd764 100644 +--- a/src/gallium/targets/haiku-softpipe/GalliumContext.cpp ++++ b/src/gallium/targets/haiku-softpipe/GalliumContext.cpp +@@ -44,9 +44,15 @@ extern "C" { + + + static void +-hgl_viewport(struct gl_context* glContext, GLint x, GLint y, +- GLsizei width, GLsizei height) ++hgl_viewport(struct gl_context* glContext) + { ++ // TODO: We should try to eliminate this function ++ ++ GLint x = glContext->ViewportArray[0].X; ++ GLint y = glContext->ViewportArray[0].Y; ++ GLint width = glContext->ViewportArray[0].Width; ++ GLint height = glContext->ViewportArray[0].Height; ++ + TRACE("%s(glContext: %p, x: %d, y: %d, w: %d, h: %d\n", __func__, + glContext, x, y, width, height); + +@@ -525,7 +531,7 @@ GalliumContext::ResizeViewport(int32 width, int32 height) + for (context_id i = 0; i < CONTEXT_MAX; i++) { + if (fContext[i] && fContext[i]->st) { + struct st_context *stContext = (struct st_context*)fContext[i]->st; +- _mesa_set_viewport(stContext->ctx, 0, 0, width, height); ++ _mesa_set_viewport(stContext->ctx, 0, 0, 0, width, height); + st_manager_validate_framebuffers(stContext); + } + } +-- +1.8.3.4 + diff --git a/sys-libs/mesa/patches/mesa-7.9.2.patchset b/sys-libs/mesa/patches/mesa-7.9.2.patchset new file mode 100644 index 000000000..4d0f38c54 --- /dev/null +++ b/sys-libs/mesa/patches/mesa-7.9.2.patchset @@ -0,0 +1,88 @@ +From 1c3d699120d0acdda3ad0d8a91d113c5d051b56d Mon Sep 17 00:00:00 2001 +From: Alexander von Gluck IV +Date: Tue, 21 Jan 2014 18:40:22 +0000 +Subject: hgl: atomic stores no longer need to be volatile + +* Our atomics were revamped to no longer require + volatile int pointers + +diff --git a/include/HaikuGL/GLRenderer.h b/include/HaikuGL/GLRenderer.h +index 7ffcc34..02a438d 100644 +--- a/include/HaikuGL/GLRenderer.h ++++ b/include/HaikuGL/GLRenderer.h +@@ -61,7 +61,7 @@ private: + virtual status_t _Reserved_Renderer_3(int32, void *); + virtual status_t _Reserved_Renderer_4(int32, void *); + +- volatile int32 fRefCount; // How much we're still usefull? ++ int32 fRefCount; // How much we're still usefull? + BGLView* fView; // Never forget who is the boss! + ulong fOptions; // Keep that tune in memory + BGLDispatcher* fDispatcher;// Our personal GL API call dispatcher +-- +1.8.3.4 + + +From fc10a0e496d3c8ea8a027b1807ad9cd7d1c4591d Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Wed, 12 Feb 2014 20:11:25 +0000 +Subject: hgl: release add-ons on GLView destruction. + + +diff --git a/src/hgl/libgl-haiku/GLRendererRoster.cpp b/src/hgl/libgl-haiku/GLRendererRoster.cpp +index 1712a87..3833b2c 100644 +--- a/src/hgl/libgl-haiku/GLRendererRoster.cpp ++++ b/src/hgl/libgl-haiku/GLRendererRoster.cpp +@@ -79,7 +79,14 @@ GLRendererRoster::GLRendererRoster(BGLView* view, ulong options) + + GLRendererRoster::~GLRendererRoster() + { +- ++ RendererMap::iterator iterator = fRenderers.begin(); ++ for (; iterator != fRenderers.end(); iterator++) { ++ struct renderer_item item = iterator->second; ++ image_id image = item.image; ++ item.renderer->Release(); ++ // this will delete the renderer ++ unload_add_on(image); ++ } + } + + +@@ -91,6 +98,7 @@ GLRendererRoster::GetRenderer(int32 id) + return NULL; + + struct renderer_item item = iterator->second; ++ item.renderer->Acquire(); + return item.renderer; + } + +@@ -105,7 +113,7 @@ GLRendererRoster::AddDefaultPaths() + B_SYSTEM_ADDONS_DIRECTORY, + }; + +- for (uint32 i = fSafeMode ? 4 : 0; ++ for (uint32 i = fSafeMode ? 3 : 0; + i < sizeof(paths) / sizeof(paths[0]); i++) { + BPath path; + status_t status = find_directory(paths[i], &path, true); +diff --git a/src/hgl/libgl-haiku/GLView.cpp b/src/hgl/libgl-haiku/GLView.cpp +index 9ae5b5c..477b430 100644 +--- a/src/hgl/libgl-haiku/GLView.cpp ++++ b/src/hgl/libgl-haiku/GLView.cpp +@@ -57,8 +57,11 @@ BGLView::BGLView(BRect rect, const char* name, ulong resizingMode, ulong mode, + BGLView::~BGLView() + { + delete fClipInfo; +- if (fRenderer) ++ if (fRenderer) { + fRenderer->Release(); ++ fRenderer = NULL; ++ } ++ delete fRoster; + } + + +-- +1.8.3.4 + diff --git a/sys-libs/ncurses/ncurses-5.9.recipe b/sys-libs/ncurses/ncurses-5.9.recipe index 677256cdf..faaeb02e4 100644 --- a/sys-libs/ncurses/ncurses-5.9.recipe +++ b/sys-libs/ncurses/ncurses-5.9.recipe @@ -1,11 +1,11 @@ SUMMARY="New curses library" 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" +CHECKSUM_SHA256="9046298fb440324c9d4135ecea7879ffed8546dd1b58e59430ea07a4633f563b" LICENSE="MIT" COPYRIGHT="1998-2011 Free Software Foundation, Inc." REVISION="10" -ARCHITECTURES="x86_gcc2 x86 x86_64" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" SECONDARY_ARCHITECTURES="x86_gcc2 x86" PATCHES="ncurses-5.9.patchset" @@ -166,11 +166,20 @@ INSTALL() fi } -DESCRIPTION="The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses. - -The ncurses code was developed under GNU/Linux. It has been in use for some time with OpenBSD as the system curses library, and on FreeBSD and NetBSD as an external package. It should port easily to any ANSI/POSIX-conforming UNIX. It has even been ported to OS/2 Warp! - -The distribution includes the library and support utilities, including a terminfo compiler tic, a decompiler infocmp, clear, tput, tset, and a termcap conversion tool captoinfo. Full manual pages are provided for the library and tools." +DESCRIPTION=" +The Ncurses (new curses) library is a free software emulation of curses in \ +System V Release 4.0, and more. It uses Terminfo format, supports pads and \ +color and multiple highlights and forms characters and function-key mapping, \ +and has all the other SYSV-curses enhancements over BSD Curses. +The ncurses code was developed under GNU/Linux. It has been in use for some \ +time with OpenBSD as the system curses library, and on FreeBSD and NetBSD as \ +an external package. It should port easily to any ANSI/POSIX-conforming UNIX. \ +It has even been ported to OS/2 Warp! +The distribution includes the library and support utilities, including a \ +terminfo compiler tic, a decompiler infocmp, clear, tput, tset, and a termcap \ +conversion tool captoinfo. Full manual pages are provided for the library and \ +tools. +" # ----- devel package ------------------------------------------------------- diff --git a/sys-libs/readline/patches/readline-6.3.patch b/sys-libs/readline/patches/readline-6.3.patch new file mode 100644 index 000000000..b384cd956 --- /dev/null +++ b/sys-libs/readline/patches/readline-6.3.patch @@ -0,0 +1,24 @@ +diff -ur orig/readline-6.3/support/shlib-install readline-6.3/support/shlib-install +--- orig/readline-6.3/support/shlib-install 2009-10-28 14:30:18.057409536 +0100 ++++ readline-6.3/support/shlib-install 2013-05-03 01:12:28.695468032 +0200 +@@ -117,7 +117,7 @@ + # Create symlinks to the installed library. This section is incomplete. + # + case "$host_os-$host_vendor" in +-*linux*|freebsd*-gentoo) ++*linux*|freebsd*-gentoo|haiku*) + # libname.so.M -> libname.so.M.N + ${echo} ${RM} ${INSTALLDIR}/$LINK2 + if [ -z "$uninstall" ]; then +diff -ur orig/readline-6.3/support/shobj-conf readline-6.3/support/shobj-conf +--- orig/readline-6.3/support/shobj-conf 2009-10-28 14:20:21.057147392 +0100 ++++ readline-6.3/support/shobj-conf 2013-05-03 01:12:38.631242752 +0200 +@@ -109,7 +109,7 @@ + ;; + + # All versions of Linux (including Gentoo/FreeBSD) or the semi-mythical GNU Hurd. +-linux*-*|gnu*-*|k*bsd*-gnu-*|freebsd*-gentoo) ++linux*-*|gnu*-*|k*bsd*-gnu-*|freebsd*-gentoo|haiku*) + SHOBJ_CFLAGS=-fPIC + SHOBJ_LD='${CC}' + SHOBJ_LDFLAGS='-shared -Wl,-soname,$@' diff --git a/sys-libs/readline/readline-6.2.recipe b/sys-libs/readline/readline-6.2.recipe index a261402a2..5201d1697 100644 --- a/sys-libs/readline/readline-6.2.recipe +++ b/sys-libs/readline/readline-6.2.recipe @@ -1,40 +1,48 @@ SUMMARY="The GNU Readline library" -DESCRIPTION="The GNU Readline library provides a set of functions for use by applications that allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. The Readline library includes additional functions to maintain a list of previously-entered command lines, to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands. - -The history facilites are also placed into a separate library, the History library, as part of the build process. The History library may be used without Readline in applications which desire its capabilities." +DESCRIPTION=" +The GNU Readline library provides a set of functions for use by applications \ +that allow users to edit command lines as they are typed in. Both Emacs and vi \ +editing modes are available. The Readline library includes additional \ +functions to maintain a list of previously-entered command lines, to recall \ +and perhaps reedit those lines, and perform csh-like history expansion on \ +previous commands. +The history facilites are also placed into a separate library, the History \ +library, as part of the build process. The History library may be used without \ +Readline in applications which desire its capabilities. +" HOMEPAGE="http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html" COPYRIGHT="1989-2011 Free Software Foundation, Inc." LICENSE="GNU GPL v3" SRC_URI="ftp://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz" -CHECKSUM_MD5="67948acb2ca081f23359d0256e9a271c" -REVISION="3" +CHECKSUM_SHA256="79a696070a058c233c72dd6ac697021cc64abd5ed51e59db867d66d196a89381" +REVISION="5" ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" PATCHES="readline-6.2.patch" PROVIDES=" - readline = $portVersion compat >= 6 - lib:libhistory = $portVersion compat >= 6 - lib:libreadline = $portVersion compat >= 6 + readline$secondaryArchSuffix = $portVersion compat >= 6 + lib:libhistory$secondaryArchSuffix = $portVersion compat >= 6 + lib:libreadline$secondaryArchSuffix = $portVersion compat >= 6 " REQUIRES=" - haiku >= $haikuVersion - lib:libncurses + haiku$secondaryArchSuffix >= $haikuVersion + lib:libncurses$secondaryArchSuffix " BUILD_REQUIRES=" - devel:libncurses + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libncurses$secondaryArchSuffix " BUILD_PREREQUIRES=" - haiku_devel >= $haikuVersion cmd:aclocal cmd:autoconf - cmd:gcc - cmd:ld + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix cmd:libtoolize cmd:make " -SOURCE_DIR="$portVersionedName" BUILD() { @@ -43,7 +51,7 @@ BUILD() autoconf runConfigure ./configure \ --with-curses - make $jobArgs + make $jobArgs SHLIB_LIBS=-lncurses } INSTALL() @@ -63,10 +71,10 @@ INSTALL() # ----- devel package ------------------------------------------------------- PROVIDES_devel=" - readline_devel = $portVersion - devel:libhistory = $portVersion compat >= 6 - devel:libreadline = $portVersion compat >= 6 + readline${secondaryArchSuffix}_devel = $portVersion + devel:libhistory$secondaryArchSuffix = $portVersion compat >= 6 + devel:libreadline$secondaryArchSuffix = $portVersion compat >= 6 " REQUIRES_devel=" - readline == $portVersion base + readline$secondaryArchSuffix == $portVersion base " diff --git a/sys-libs/readline/readline-6.3.recipe b/sys-libs/readline/readline-6.3.recipe new file mode 100644 index 000000000..876829e16 --- /dev/null +++ b/sys-libs/readline/readline-6.3.recipe @@ -0,0 +1,80 @@ +SUMMARY="The GNU Readline library" +DESCRIPTION=" +The GNU Readline library provides a set of functions for use by applications \ +that allow users to edit command lines as they are typed in. Both Emacs and vi \ +editing modes are available. The Readline library includes additional \ +functions to maintain a list of previously-entered command lines, to recall \ +and perhaps reedit those lines, and perform csh-like history expansion on \ +previous commands. +The history facilites are also placed into a separate library, the History \ +library, as part of the build process. The History library may be used without \ +Readline in applications which desire its capabilities. +" +HOMEPAGE="http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html" +COPYRIGHT="1989-2011 Free Software Foundation, Inc." +LICENSE="GNU GPL v3" +SRC_URI="ftp://ftp.gnu.org/gnu/readline/readline-6.3.tar.gz" +CHECKSUM_SHA256="56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" +REVISION="2" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PATCHES="readline-6.3.patch" + +PROVIDES=" + readline$secondaryArchSuffix = $portVersion compat >= 6 + lib:libhistory$secondaryArchSuffix = $portVersion compat >= 6 + lib:libreadline$secondaryArchSuffix = $portVersion compat >= 6 + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libncurses$secondaryArchSuffix + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libncurses$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:aclocal + cmd:autoconf + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:make + " + + +BUILD() +{ + libtoolize --force --copy --install + aclocal + autoconf + runConfigure ./configure \ + --with-curses + make $jobArgs SHLIB_LIBS=-lncurses +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libhistory libreadline + rmdir $binDir + + # devel package + packageEntries devel \ + $dataDir \ + $developDir \ + $documentationDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + readline${secondaryArchSuffix}_devel = $portVersion + devel:libhistory$secondaryArchSuffix = $portVersion compat >= 6 + devel:libreadline$secondaryArchSuffix = $portVersion compat >= 6 + " +REQUIRES_devel=" + readline$secondaryArchSuffix == $portVersion base + " diff --git a/sys-libs/slang/slang-2.2.4.recipe b/sys-libs/slang/slang-2.2.4.recipe index 5fd2852d7..c6bbe27c2 100644 --- a/sys-libs/slang/slang-2.2.4.recipe +++ b/sys-libs/slang/slang-2.2.4.recipe @@ -1,18 +1,17 @@ -SUMMARY="S-Lang is a multi-platform programmer's library designed to allow a developer to create robust multi-platform software." +SUMMARY="S-Lang is a library to help create robust multi-platform software" DESCRIPTION=" -S-Lang is a multi-platform programmer's library designed to allow a -developer to create robust multi-platform software. It provides -facilities required by interactive applications such as display/screen -management, keyboard input, keymaps, and so on. The most exciting -feature of the library is the slang interpreter that may be easily -embedded into a program to make it extensible. While the emphasis has -always been on the embedded nature of the interpreter, it may also be -used in a stand-alone fashion through the use of slsh, which is part -of the S-Lang distribution." - +S-Lang is a multi-platform programmer's library designed to allow a developer \ +to create robust multi-platform software. It provides facilities required by \ +interactive applications such as display/screen management, keyboard input, \ +keymaps, and so on. The most exciting feature of the library is the slang \ +interpreter that may be easily embedded into a program to make it extensible. \ +While the emphasis has always been on the embedded nature of the interpreter, \ +it may also be used in a stand-alone fashion through the use of slsh, which is \ +part of the S-Lang distribution. +" HOMEPAGE="http://www.jedsoft.org/slang/" SRC_URI="ftp://space.mit.edu/pub/davis/slang/v2.2/slang-2.2.4.tar.bz2" -CHECKSUM_MD5="7fcfd447e378f07dd0c0bae671fe6487" +CHECKSUM_SHA256="9a8257a9a2a55099af858b13338dc8f3a06dd2069f46f0df2c9c3bb84a01d5db" LICENSE="GNU GPL v2" COPYRIGHT="2004-2013 John E. Davis" REVISION="1" @@ -51,7 +50,6 @@ BUILD_PREREQUIRES=" cmd:ncurses5_config " -SOURCE_DIR="$portVersionedName" GLOBAL_WRITABLE_FILES=" settings/slsh.rc keep-old diff --git a/sys-libs/zlib/zlib-1.2.8.recipe b/sys-libs/zlib/zlib-1.2.8.recipe index 140c26b76..ce893c72e 100644 --- a/sys-libs/zlib/zlib-1.2.8.recipe +++ b/sys-libs/zlib/zlib-1.2.8.recipe @@ -1,12 +1,21 @@ SUMMARY="A Massively Spiffy Yet Delicately Unobtrusive Compression Library" -DESCRIPTION="zlib is designed to be a free, general-purpose, legally unencumbered -- that is, not covered by any patents -- lossless data-compression library for use on virtually any computer hardware and operating system. The zlib data format is itself portable across platforms. Unlike the LZW compression method used in Unix compress(1) and in the GIF image format, the compression method currently used in zlib essentially never expands the data. (LZW can double or triple the file size in extreme cases.) zlib's memory footprint is also independent of the input data and can be reduced, if necessary, at some cost in compression." +DESCRIPTION=" +zlib is designed to be a free, general-purpose, legally unencumbered -- that \ +is, not covered by any patents -- lossless data-compression library for use on \ +virtually any computer hardware and operating system. The zlib data format is \ +itself portable across platforms. Unlike the LZW compression method used in \ +Unix compress(1) and in the GIF image format, the compression method currently \ +used in zlib essentially never expands the data. (LZW can double or triple the \ +file size in extreme cases.) zlib's memory footprint is also independent of \ +the input data and can be reduced, if necessary, at some cost in compression. +" HOMEPAGE="http://www.zlib.net/" COPYRIGHT="1995-2005 Jean-loup Gailly and Mark Adler" LICENSE="Zlib" SRC_URI="http://zlib.net/zlib-1.2.8.tar.gz" -CHECKSUM_MD5="44d667c142d7cda120332623eab69f40" +CHECKSUM_SHA256="36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d" REVISION="4" -ARCHITECTURES="x86_gcc2 x86 x86_64" +ARCHITECTURES="x86_gcc2 x86 x86_64 arm" SECONDARY_ARCHITECTURES="x86_gcc2 x86" PROVIDES=" diff --git a/sys-process/dcron/dcron-4.5.recipe b/sys-process/dcron/dcron-4.5.recipe new file mode 100644 index 000000000..ddb83a586 --- /dev/null +++ b/sys-process/dcron/dcron-4.5.recipe @@ -0,0 +1,63 @@ +SUMMARY="dillon's lightweight cron daemon" +DESCRIPTION=" +This is a continuation of Matt Dillon's beautifully minimalist dcron. At first +I had written a fork (yacron), but Matt has handed over maintainership of the +main dcron branch, so all of yacron was merged into dcron 4.0. + +The biggest changes in v4.0 are syslogging and a variety of anacron-like +features. If you use this version of dcron, you shouldn't have any further need +for anacron. + +More specifically, dcron can now: +* log to syslog or a file +* email job output to a remote addresses, instead of the local user who owns \ + the job (so it works with lightweight mail handlers like msmtp, which \ + don't route mail to local users). +* replace sendmail with any other script to which all job output should be piped +* various crontab syntax extensions, including @daily and @reboot and more \ + finer-grained frequency specifiers. See manpages for details. +" +HOMEPAGE="http://www.jimpryor.net/linux/dcron.html" +SRC_URI="http://www.jimpryor.net/linux/releases/dcron-$portVersion.tar.gz" +CHECKSUM_SHA256="9e50edb6f5bd8153b16bad05087d985e5153ce45cc01ae77e7f842213fb4a824" +REVISION="1" +ARCHITECTURES="x86_gcc2" + +PROVIDES=" + dcron = $portVersion + cmd:crond + cmd:crontab + " + +REQUIRES=" + haiku >= $haikuVersion +" + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:gcc + cmd:as + cmd:make +" + +PATCHES="dcron-$portVersion.patchset" + +BUILD() +{ + make PREFIX=$prefix SBINDIR=$binDir BINDIR=$binDir MANDIR=$manDir \ + CRONTAB_GROUP=root CRONTABS=$prefix/var/spool/cron/crontabs \ + CRONSTAMPS=$prefix/var/spool/cron/cronstamps +} + +INSTALL() +{ + make install +} +LICENSE="GNU GPL v2" +COPYRIGHT=" + 1994 Matthew Dillon + 2009-2011 James Pryor +" diff --git a/sys-process/dcron/patches/dcron-4.5.patchset b/sys-process/dcron/patches/dcron-4.5.patchset new file mode 100644 index 000000000..8c8643429 --- /dev/null +++ b/sys-process/dcron/patches/dcron-4.5.patchset @@ -0,0 +1,53 @@ +From 1b37f8b350c0ab8c7da9be5663da2bb68fc687cb Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Wed, 5 Mar 2014 10:59:27 +0100 +Subject: Haiku compatibility hacks. + + +diff --git a/Makefile b/Makefile +index c7cc359..ff0313e 100644 +--- a/Makefile ++++ b/Makefile +@@ -20,19 +20,19 @@ MANDIR = $(PREFIX)/share/man + + + SHELL = /bin/sh +-INSTALL = install -o root ++INSTALL = install + INSTALL_PROGRAM = $(INSTALL) -D + INSTALL_DATA = $(INSTALL) -D -m0644 -g root + INSTALL_DIR = $(INSTALL) -d -m0755 -g root + CFLAGS ?= -O2 +-CFLAGS += -Wall -Wstrict-prototypes -Wno-missing-field-initializers ++CFLAGS += -Wall -Wstrict-prototypes + SRCS = main.c subs.c database.c job.c concat.c chuser.c + OBJS = main.o subs.o database.o job.o concat.o chuser.o + TABSRCS = crontab.c chuser.c + TABOBJS = crontab.o chuser.o + PROTOS = protos.h + LIBS = +-LDFLAGS = ++LDFLAGS = -lbsd + DEFS = -DVERSION='"$(VERSION)"' \ + -DSCRONTABS='"$(SCRONTABS)"' -DCRONTABS='"$(CRONTABS)"' \ + -DCRONSTAMPS='"$(CRONSTAMPS)"' -DLOG_IDENT='"$(LOG_IDENT)"' \ +diff --git a/main.c b/main.c +index 595f07a..cde23c8 100644 +--- a/main.c ++++ b/main.c +@@ -234,10 +234,12 @@ main(int ac, char **av) + + if (setsid() < 0) + perror("setsid"); ++#ifndef __HAIKU__ + if ((fd = open("/dev/tty", O_RDWR)) >= 0) { + ioctl(fd, TIOCNOTTY, 0); + close(fd); + } ++#endif + + /* setup logging for backgrounded daemons */ + +-- +1.8.3.4 + diff --git a/www-client/links/links-2.3pre2.recipe b/www-client/links/links-2.3pre2.recipe index c2882b221..d73d9ff21 100644 --- a/www-client/links/links-2.3pre2.recipe +++ b/www-client/links/links-2.3pre2.recipe @@ -1,16 +1,58 @@ -DESCRIPTION="links web browser" -HOMEPAGE="http://links.twibright.com" +SUMMARY="links web browser" +DESCRIPTION=" +links web browser. +" +HOMEPAGE="http://links.twibright.com/" SRC_URI="http://links.twibright.com/download/links-2.3pre2.tar.gz" +CHECKSUM_SHA256="a9c6b8d9e783dc0caaa32f5acf1e3163a5d41b2ba395c93af8587b325b51bac0" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -CHECKSUM_MD5="bb2a4e058c88b8ec0c9f6c0e1640555c" +LICENSE="GNU GPL v2" +COPYRIGHT="1999 - 2011 Mikulas Patocka + 2000 - 2011 Petr Kulhavy, Karel Kulhavy, Martin Pergel" + +ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="?x86_gcc2 ?x86" + +PROVIDES=" + links$secondaryArchSuffix = $portVersion + cmd:links$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libpng$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix +# lib:libtiff$secondaryArchSuffix + lib:libz$secondaryArchSuffix + openssl >= 1.0.0 + " + +BUILD_REQUIRES=" +# devel:libGL$secondaryArchSuffix + devel:libglu$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix +# devel:libtiff$secondaryArchSuffix + devel:libz$secondaryArchSuffix >= 1.2.8 + openssl_devel >= 1.0.0 + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:autoconf + cmd:libtool + cmd:aclocal + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:pkg_config$secondaryArchSuffix + " + +PATCHES="links-2.3pre2.patch" + BUILD() { - cd links-2.3pre2 autoconf - ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + runConfigure ./configure \ --without-x \ --enable-utf-8 \ --enable-graphics @@ -22,10 +64,6 @@ BUILD() INSTALL() { - cd links-2.3pre2 - make install DESTDIR=${DESTDIR} + make install } -LICENSE="GNU GPL v2" -COPYRIGHT="1999 - 2011 Mikulas Patocka - 2000 - 2011 Petr Kulhavy, Karel Kulhavy, Martin Pergel" diff --git a/www-client/links/links-2.8.recipe b/www-client/links/links-2.8.recipe new file mode 100644 index 000000000..cce2a6aae --- /dev/null +++ b/www-client/links/links-2.8.recipe @@ -0,0 +1,71 @@ +SUMMARY="links web browser" +DESCRIPTION=" +links web browser. +" +HOMEPAGE="http://links.twibright.com/" +SRC_URI="http://links.twibright.com/download/links-2.8.tar.gz" +CHECKSUM_SHA256="5070a759af7f107ca4f9572833b8f086cd9f7c21ef5e1fce8482a2883a743c7a" +REVISION="1" +LICENSE="GNU GPL v2" +COPYRIGHT="1999 - 2011 Mikulas Patocka + 2000 - 2011 Petr Kulhavy, Karel Kulhavy, Martin Pergel" + + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + links$secondaryArchSuffix = $portVersion + cmd:links$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libpng$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix +# lib:libtiff$secondaryArchSuffix + lib:libz$secondaryArchSuffix + openssl$secondaryArchSuffix >= 1.0.0 + " + +BUILD_REQUIRES=" +# devel:libGL$secondaryArchSuffix + devel:libglu$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix +# devel:libtiff$secondaryArchSuffix + devel:libz$secondaryArchSuffix >= 1.2.8 + openssl${secondaryArchSuffix}_devel >= 1.0.0 + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:autoconf + cmd:libtool + cmd:aclocal + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:pkg_config$secondaryArchSuffix + " + +PATCHES="links-2.8.patch" + +BUILD() +{ + aclocal + automake --add-missing + autoheader + automake + autoconf + runConfigure ./configure \ + --without-x \ + --enable-graphics + make +} + +INSTALL() +{ + make install + addAppDeskbarSymlink $binDir/links Links +} + diff --git a/www-client/links/patches/links-2.8.patch b/www-client/links/patches/links-2.8.patch new file mode 100644 index 000000000..c548ab300 --- /dev/null +++ b/www-client/links/patches/links-2.8.patch @@ -0,0 +1,1386 @@ +diff -urN links-2.8.org/acconfig.h links-2.8/acconfig.h +--- links-2.8.org/acconfig.h 2013-08-03 18:22:59.028311552 +0200 ++++ links-2.8/acconfig.h 2013-12-12 20:39:35.528744448 +0100 +@@ -179,6 +179,9 @@ + #undef GRDRV_ATHEOS + + /* */ ++#undef GRDRV_HAIKU ++ ++/* */ + #undef GRDRV_GRX + + /* */ +diff -urN links-2.8.org/beos.c links-2.8/beos.c +--- links-2.8.org/beos.c 2013-01-23 05:52:02.030670848 +0100 ++++ links-2.8/beos.c 2013-12-12 19:10:01.005242880 +0100 +@@ -3,7 +3,7 @@ + * This file is a part of the Links program, released under GPL + */ + +-#if defined(__BEOS__) || defined(__HAIKU__) ++#if defined(__BEOS__) + + #include "com-defs.h" + +diff -urN links-2.8.org/configure.in links-2.8/configure.in +--- links-2.8.org/configure.in 2013-09-17 02:11:46.046137344 +0200 ++++ links-2.8/configure.in 2013-12-13 00:05:02.135004160 +0100 +@@ -13,7 +13,7 @@ + AUTOHEADER="./missing autoheader" + image_formats="GIF PNG XBM" + +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADER(config.h) + + dnl Checks for programs. + AC_PROG_CC +@@ -577,10 +577,10 @@ + + AC_CHECK_FUNC(socket, cf_result=yes, cf_result=no) + if test "$cf_result" = no; then +- AC_CHECK_LIB(socket, socket) +- if test "$ac_cv_lib_socket_socket" = no; then +- AC_CHECK_LIB(network, socket) +- if test "$ac_cv_lib_network_socket" = no; then ++ AC_CHECK_LIB(network, socket) ++ if test "$ac_cv_lib_network_socket" = no; then ++ AC_CHECK_LIB(socket, socket) ++ if test "$ac_cv_lib_socket_socket" = no; then + AC_CHECK_LIB(watt, socket) + if test "$ac_cv_lib_watt_socket" = no; then + AC_ERROR([socket function not present]) +@@ -722,6 +722,7 @@ + AC_DEFINE(HAVE_BEGINTHREAD) + fi + AC_CHECK_HEADERS(atheos/threads.h) ++AC_CHECK_HEADERS(kernel/OS.h) + AC_HAVE_FUNCS(spawn_thread) + AC_HAVE_FUNCS(resume_thread) + +@@ -876,6 +877,7 @@ + + + cf_have_atheos=no ++cf_have_haiku=no + + if test "$cf_use_graphics" != no; then + AC_DEFINE(G) +@@ -888,6 +890,7 @@ + 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(windows, [ --without-windows compile without Windows graphics driver],[if test "$withval" = no; then disable_windows=yes; else disable_windows=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(haiku, [ --without-haiku compile without Haiku/BeOS graphics driver],[if test "$withval" = no; then disable_haiku=yes; else disable_haiku=no; fi]) + AC_ARG_WITH(grx, [ --without-grx compile without DOS GRX graphics driver],[if test "$withval" = no; then disable_grx=yes; else disable_grx; fi]) + + drivers="" +@@ -1124,6 +1127,31 @@ + fi + fi + ++if test "$disable_haiku" != 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_HAIKU) ++ drivers="$drivers HAIKU" ++ cf_have_haiku=yes ++ fi ++fi ++ + if test "$disable_grx" != yes -a "$ac_cv_have_djgpp" = yes; then + LIBS_X="$LIBS" + AC_CHECK_HEADERS(grx20.h) +@@ -1230,6 +1258,7 @@ + + + AM_CONDITIONAL(ATHEOS_GR, test "$cf_have_atheos" = yes) ++AM_CONDITIONAL(HAIKU_GR, test "$cf_have_haiku" = yes) + + test "$ac_cv_have_emx" = yes && LDFLAGS="$LDFLAGS -Zexe" + +diff -urN links-2.8.org/drivers.c links-2.8/drivers.c +--- links-2.8.org/drivers.c 2013-08-12 23:15:36.026214400 +0200 ++++ links-2.8/drivers.c 2013-12-12 20:42:12.595329024 +0100 +@@ -31,6 +31,9 @@ + #ifdef GRDRV_ATHEOS + extern struct graphics_driver atheos_driver; + #endif ++#ifdef GRDRV_HAIKU ++extern struct graphics_driver haiku_driver; ++#endif + #ifdef GRDRV_GRX + extern struct graphics_driver grx_driver; + #endif +@@ -51,6 +54,9 @@ + #ifdef GRDRV_ATHEOS + &atheos_driver, + #endif ++#ifdef GRDRV_HAIKU ++ &haiku_driver, ++#endif + #ifndef SPAD + #ifdef GRDRV_X + &x_driver, +diff -urN links-2.8.org/haiku.cpp links-2.8/haiku.cpp +--- links-2.8.org/haiku.cpp 1970-01-01 01:00:00.000000000 +0100 ++++ links-2.8/haiku.cpp 2013-12-13 00:23:09.939786240 +0100 +@@ -0,0 +1,890 @@ ++/* haiku.cpp ++ * (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 ++ */ ++ ++extern "C" { ++#include "cfg.h" ++} ++ ++#ifdef GRDRV_HAIKU ++ ++extern "C" { ++#include "links.h" ++} ++#undef B_ENTER ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++//#define DBG(l...) fprintf(stderr, l); ++#define DBG(l...) {} ++ ++/* ++#ifdef debug ++#undef debug ++#endif ++#define debug(x) ++#define fprintf(x, y) ++*/ ++ ++extern "C" struct graphics_driver haiku_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 = B_LEFT; ++ if (msg->FindInt32("buttons", &buttons) != B_OK) ++ return; ++ if (msg->FindPoint("where", &where) != B_OK) ++ return; ++ if (buttons & B_PRIMARY_MOUSE_BUTTON) ++ btn = B_LEFT; ++ else if (buttons & B_SECONDARY_MOUSE_BUTTON) ++ btn = B_RIGHT; ++ else if (buttons & B_TERTIARY_MOUSE_BUTTON) ++ btn = B_MIDDLE; ++ else if (buttons & (B_TERTIARY_MOUSE_BUTTON << 1)) ++ btn = B_FOURTH; ++ else if (buttons & (B_TERTIARY_MOUSE_BUTTON << 2)) ++ btn = B_FIFTH; ++ else if (buttons & (B_TERTIARY_MOUSE_BUTTON << 3)) ++ btn = B_SIXTH; ++ if (dev) dev->mouse_handler(dev, view->last_x = (int)where.x, view->last_y = (int)where.y, B_DOWN | btn); ++ } ++ break; ++ case B_MOUSE_UP: ++ { ++ BPoint where; ++ int32 buttons; ++ int btn = B_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 = B_LEFT; ++ else if (buttons & ~B_SECONDARY_MOUSE_BUTTON == 0) ++ btn = B_RIGHT; ++ else if (buttons & ~B_TERTIARY_MOUSE_BUTTON == 0) ++ btn = B_MIDDLE; ++ else if (buttons & ~(B_TERTIARY_MOUSE_BUTTON << 1) == 0) ++ btn = B_FOURTH; ++ else if (buttons & ~(B_TERTIARY_MOUSE_BUTTON << 2) == 0) ++ btn = B_FIFTH; ++ else if (buttons & ~(B_TERTIARY_MOUSE_BUTTON << 3) == 0) ++ btn = B_SIXTH; ++ if (dev) dev->mouse_handler(dev, view->last_x = (int)where.x, view->last_y = (int)where.y, B_UP | btn); ++ } ++ break; ++ case B_MOUSE_MOVED: ++ { ++ BPoint where; ++ int32 buttons; ++ int btn = B_LEFT; ++ if (msg->FindInt32("buttons", &buttons) != B_OK) ++ return; ++ if (msg->FindPoint("where", &where) != B_OK) ++ return; ++ if (buttons & B_PRIMARY_MOUSE_BUTTON) ++ btn = B_LEFT; ++ else if (buttons & B_SECONDARY_MOUSE_BUTTON) ++ btn = B_RIGHT; ++ else if (buttons & B_TERTIARY_MOUSE_BUTTON) ++ btn = B_MIDDLE; ++ else if (buttons & (B_TERTIARY_MOUSE_BUTTON << 1)) ++ btn = B_FOURTH; ++ else if (buttons & (B_TERTIARY_MOUSE_BUTTON << 2)) ++ btn = B_FIFTH; ++ else if (buttons & (B_TERTIARY_MOUSE_BUTTON << 3)) ++ btn = B_SIXTH; ++ if (dev) dev->mouse_handler(dev, view->last_x = (int)where.x, view->last_y = (int)where.y, !buttons ? B_MOVE : B_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, B_MOVE | (delta_y > 0 ? B_WHEELDOWN : B_WHEELUP)); ++ if (delta_x) if (dev) dev->mouse_handler(dev, view->last_x, view->last_y, B_MOVE | (delta_x < 0 ? B_WHEELLEFT : B_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: ++ haiku_driver.depth = 0xc3; ++ break; ++ case B_RGB16: ++ haiku_driver.depth = 0x82; ++ break; ++ case B_RGB15: ++ haiku_driver.depth = 0x7a; ++ break; ++ default: ++ internal("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 = &haiku_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 haiku_driver = { ++ (unsigned char *)"haiku", ++ be_init_driver, ++ be_init_device, ++ be_shutdown_device, ++ be_shutdown_driver, ++ dummy_emergency_shutdown, ++ be_get_driver_param, ++ be_get_empty_bitmap, ++ be_register_bitmap, ++ be_prepare_strip, ++ be_commit_strip, ++ be_unregister_bitmap, ++ be_draw_bitmap, ++ 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 */ ++ NULL, /* set_clipboard_text */ ++ NULL, /* get_clipboard_text */ ++ 0, /* depth */ ++ 0, 0, /* size */ ++ 0, /* flags */ ++ 0, /* codepage */ ++ NULL, /* shell */ ++}; ++ ++#endif /* GRDRV_HAIKU */ ++ ++#endif +diff -urN links-2.8.org/links-haiku.rdef links-2.8/links-haiku.rdef +--- links-2.8.org/links-haiku.rdef 1970-01-01 01:00:00.000000000 +0100 ++++ links-2.8/links-haiku.rdef 2013-12-13 00:23:34.395313152 +0100 +@@ -0,0 +1,125 @@ ++/* ++** links-haiku.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(101, "BEOS:ICON") #'VICN' array { ++ $"6E6369661305000200060237E670B8880E39469D39AE144A52234B0D2500C6D7" ++ $"F5FF6B94DD03EC6666020006023B2B47BB18653D0FA53D225148297046CA1900" ++ $"00FF00FFA9FF00020016023B2B47BB18653D0FA53D225148297046CA1900FFFF" ++ $"8A020006023B3049396B0ABA90833C646E4A101543299500FFFFFFFF52FF5202" ++ $"0016023B3049396B0ABA90833C646E4A101543299500FFFFC9020006023C71E3" ++ $"3A0C78BA15E43C7D2149055549455700E3EDFFFF9EC2FF020006023CD8653068" ++ $"26B065D13CD5A34A6E4A46E21900FFDCDCFFDA5858020006023A1DA6393F04BB" ++ $"B5BC3C6B074AEA364809110087CA05FF026802020016023C00913B1266BB9E06" ++ $"3C5B934A01F04914EC00FFFF4E03003CB00200060230B31E3A09B9BB024238A1" ++ $"2F4BAB534AFF0B00A3043CFFFFDCE603CD4D4D030D296402000602BD498B3E11" ++ $"59BF219BBE7D2F4BE71F4AB31300C13E3EFFE27A7A040174020016023F2938BB" ++ $"F60A3BA9823EEC25C40E6348C15D0099FF00020016023E8FA33A7B71BA9D783E" ++ $"B2C049F7BAC28CE500C8FF00130A06322E323E42464C3C4C2C3D260A04322E32" ++ $"3E424642350A04322E42354C2C3D260A04423542464C3C4C2C0A0338423C4D3C" ++ $"440A08335C395C41544F5C555C6051594D3E510A0422422252325A32490A0422" ++ $"4232493C402D3A0A043249325A3C503C400A043E424E495840493A0A043E524E" ++ $"5A4E493E420A1243C97243C375BF66C2A93F503C5133C4F03330342F3830382D" ++ $"2927292A2C2C2D2E2DC2F2B7B1C3BEB5E1C358B5E1C4AA0A042C252927382D3B" ++ $"2B0A04364B334D3E5241500A0442463F48434A46480A042A4727492B4B2E490A" ++ $"04382D38303B2E3B2B0A04434A4358465646480A04332F334D364B362D160A10" ++ $"01052020230A1001052022120A00010030103701178400040A0101012010370A" ++ $"0B01032010370A0E0104201D250A0101072020230A00010030101C0117840004" ++ $"0A02010A2004080A0C010320101C0A0801092004080A00010030283901178400" ++ $"040A0401012028390A0601022028390A0A01032028390A000100302A20011784" ++ $"00040A030101202A200A050102202A200A090103202A200A12040C0D0E0F000A" ++ $"0003101211000A11010B00" ++}; ++ ++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.8.org/Makefile.am links-2.8/Makefile.am +--- links-2.8.org/Makefile.am 2013-09-20 22:37:39.031457280 +0200 ++++ links-2.8/Makefile.am 2013-12-12 23:23:13.554172416 +0100 +@@ -4,7 +4,7 @@ + + man_MANS=links.1 + +-EXTRA_DIST=$(man_MANS) atheos.cpp BRAILLE_HOWTO KEYS SITES descrip.mms *.opt 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_extensions-medium-roman-serif-vari/*.png graphics/font/century_school-bold-roman-serif-vari/*.png graphics/font/century_school-medium-roman-serif-vari/*.png graphics/font/courier-medium-roman-serif-mono/*.png graphics/font/japanese-medium-roman-sans-mono/*.png graphics/font/symbol-medium-roman-sans-vari/*.png graphics/font/century_school-bold-roman-serif-vari/aliases graphics/font/century_school-medium-roman-serif-vari/aliases graphics/font/japanese-medium-roman-sans-mono/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 pkg-config.m4 *.xpm *.ico *.rc mk-release-os2 mk-release-win mk-dos links.wis *.nsi ++EXTRA_DIST=$(man_MANS) atheos.cpp haiku.cpp BRAILLE_HOWTO KEYS SITES descrip.mms *.opt 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_extensions-medium-roman-serif-vari/*.png graphics/font/century_school-bold-roman-serif-vari/*.png graphics/font/century_school-medium-roman-serif-vari/*.png graphics/font/courier-medium-roman-serif-mono/*.png graphics/font/japanese-medium-roman-sans-mono/*.png graphics/font/symbol-medium-roman-sans-vari/*.png graphics/font/century_school-bold-roman-serif-vari/aliases graphics/font/century_school-medium-roman-serif-vari/aliases graphics/font/japanese-medium-roman-sans-mono/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 pkg-config.m4 *.xpm *.ico *.rc mk-release-os2 mk-release-win mk-dos links.wis *.nsi links-haiku.rdef + + bin_PROGRAMS=links + +@@ -13,6 +13,17 @@ + else + endif + ++if HAIKU_GR ++links_LDADD=haiku.o -lbe ++EXTRA_links_DEPENDENCIES=links-haiku.rsrc ++# automake will not let us touch the binary after link ++# and install will not copy the attributes anyway... so do it after install ++install-exec-hook: ++ xres -o $(DESTDIR)$(bindir)/links$(EXEEXT) links-haiku.rsrc ++ mimeset $(DESTDIR)$(bindir)/links$(EXEEXT) ++else ++endif ++ + links_SOURCES=af_unix.c auth.c beos.c bfu.c block.c bookmark.c cache.c charsets.c compress.c connect.c cookies.c data.c default.c dip.c directfb.c dither.c dns.c dos.c drivers.c error.c file.c finger.c fn_impl.c font_inc.c framebuf.c ftp.c gif.c grx.c hpux.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_ic.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 string.c svgalib.c terminal.c tiff.c types.c url.c view.c view_gr.c vms.c x.c xbm.c beos.h bits.h cfg.h codepage.h com-defs.h config-vms.h dfb_cur.h hpux.h language.h links.h os_dep.h os_depx.h setup.h arrow.inc codepage.inc entity.inc fbcommon.inc language.inc uni_7b.inc upcase.inc vpipe.inc + + dist-hook: +@@ -33,6 +44,12 @@ + atheos.o: atheos.cpp + $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c atheos.cpp + ++haiku.o: haiku.cpp ++ $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -o $@ -c $< ++ ++links-haiku.rsrc: links-haiku.rdef ++ rc -o $@ $< ++ + datadir = $(prefix)/@DATADIRNAME@ + LIBS = @LIBS@ + +diff -urN links-2.8.org/os_dep.c links-2.8/os_dep.c +--- links-2.8.org/os_dep.c 2013-09-20 23:16:38.037748736 +0200 ++++ links-2.8/os_dep.c 2013-12-12 21:48:36.256638976 +0100 +@@ -307,7 +307,7 @@ + + #endif + +-#if defined(UNIX) || defined(WIN32) || defined(INTERIX) || defined(BEOS) || defined(RISCOS) || defined(ATHEOS) || defined(SPAD) || defined(OPENVMS) ++#if defined(UNIX) || defined(WIN32) || defined(INTERIX) || defined(BEOS) || defined(RISCOS) || defined(ATHEOS) || defined(SPAD) || defined(OPENVMS) || defined(HAIKU) + + #ifdef SIGWINCH + static void sigwinch(void *s) +@@ -573,7 +573,7 @@ + return xt; + } + +-#elif defined(BEOS) || defined(ATHEOS) || defined(DOS) ++#elif defined(BEOS) || defined(ATHEOS) || defined(DOS) || defined(HAIKU) + + int is_xterm(void) + { +@@ -656,6 +656,12 @@ + if (!GetConsoleCP()) + force_g = 1; + #endif ++#ifdef HAIKU ++ if (getenv("TERM") == NULL) { ++ /* probably launched from Tracker or Deskbar, force graphics mode */ ++ force_g = 1; ++ } ++#endif + } + #endif + +@@ -958,7 +964,7 @@ + #endif + + +-#if defined(UNIX) || defined(INTERIX) || defined(BEOS) || defined(RISCOS) || defined(ATHEOS) || defined(SPAD) || defined(OPENVMS) || defined(DOS) ++#if defined(UNIX) || defined(INTERIX) || defined(BEOS) || defined(RISCOS) || defined(ATHEOS) || defined(SPAD) || defined(OPENVMS) || defined(DOS) || defined(HAIKU) + + #if defined(BEOS) && defined(HAVE_SETPGID) + +@@ -1710,7 +1716,7 @@ + + #endif + +-#if defined(UNIX) || defined(OS2) || defined(WIN32) || defined(INTERIX) || defined(RISCOS) || defined(ATHEOS) || defined(SPAD) ++#if defined(UNIX) || defined(OS2) || defined(WIN32) || defined(INTERIX) || defined(RISCOS) || defined(ATHEOS) || defined(SPAD) || defined(HAIKU) + + void terminate_osdep(void) + { +@@ -1727,7 +1733,7 @@ + + #if defined(BEOS) + +-#include ++#include + + static int thr_sem_init = 0; + static sem_id thr_sem; +@@ -2466,6 +2472,13 @@ + return 0; + } + ++#elif defined(HAIKU) ++ ++int get_system_env(void) ++{ ++ return ENV_BE; ++} ++ + #elif defined(WIN32) + + int get_system_env(void) +@@ -2588,6 +2601,14 @@ + } + #endif + ++#ifdef HAIKU ++static int open_in_new_haiku(struct terminal *term, unsigned char *exe, unsigned char *param) ++{ ++ exec_new_links(term, cast_uchar "Terminal", exe, param); ++ return 0; ++} ++#endif ++ + #ifdef G + static int open_in_new_g(struct terminal *term, unsigned char *exe, unsigned char *param) + { +@@ -2637,6 +2658,9 @@ + #ifdef BEOS + {ENV_BE, open_in_new_be, TEXT_(T_BEOS_TERMINAL), TEXT_(T_HK_BEOS_TERMINAL)}, + #endif ++#ifdef HAIKU ++ {ENV_BE, open_in_new_haiku, TEXT_(T_BEOS_TERMINAL), TEXT_(T_HK_BEOS_TERMINAL)}, ++#endif + #ifdef G + {ENV_G, open_in_new_g, TEXT_(T_WINDOW), TEXT_(T_HK_WINDOW)}, + #endif +@@ -2685,6 +2709,9 @@ + #ifdef BEOS + if (!(environment & ENV_BE)) return 0; + #endif ++#ifdef HAIKU ++ if (!(environment & ENV_BE)) return 0; ++#endif + #ifdef G + if (F && drv->flags & GD_NO_OS_SHELL) return 0; + #endif +diff -urN links-2.8.org/os_dep.h links-2.8/os_dep.h +--- links-2.8.org/os_dep.h 2013-09-17 02:11:47.030932992 +0200 ++++ links-2.8/os_dep.h 2013-12-12 21:29:28.176685056 +0100 +@@ -29,7 +29,7 @@ + #define WIN32 + #elif defined(__INTERIX) + #define INTERIX +-#elif defined(__BEOS__) || defined(__HAIKU__) ++#elif defined(__BEOS__) + #define BEOS + #elif defined(__riscos__) + #define RISCOS +@@ -41,6 +41,8 @@ + #define OPENVMS + #elif defined(__DJGPP) + #define DOS ++#elif defined(__HAIKU__) ++#define HAIKU + #else + #define UNIX + #endif +@@ -158,6 +160,25 @@ + + #include "beos.h" + ++#elif defined(HAIKU) ++ ++static inline int dir_sep(unsigned char x) { return x == '/'; } ++#define NEWLINE "\n" ++#define NO_ASYNC_LOOKUP /* async lookup works on BeOS but crashes the Haiku kernel */ ++#define FS_UNIX_RIGHTS ++#define FS_UNIX_SOFTLINKS ++#define FS_UNIX_USERS ++/* TODO: allocate new SYS_* or replace SYS_BEOS */ ++#define SYSTEM_ID SYS_BEOS ++#define SYSTEM_NAME "Haiku" ++#define DEFAULT_SHELL "/bin/sh" ++#define GETSHELL getenv("SHELL") ++#define NO_CTRL_Z ++#define SET_WINDOW_TITLE_UTF_8 ++#define SHARED_CONFIG_DIR "/etc/" ++#define NO_FORK_ON_EXIT ++#define ASSOC_BLOCK ++ + #elif defined(RISCOS) + + static inline int dir_sep(unsigned char x) { return x == '/' || x == '\\'; } +diff -urN links-2.8.org/os_depx.h links-2.8/os_depx.h +--- links-2.8.org/os_depx.h 2013-08-25 13:07:50.033030144 +0200 ++++ links-2.8/os_depx.h 2013-12-12 21:35:09.725614592 +0100 +@@ -184,6 +184,10 @@ + #endif + #endif + ++#ifdef HAIKU ++/* nothing so far */ ++#endif ++ + #ifdef OPENVMS + #if defined(__INITIAL_POINTER_SIZE) + #if __INITIAL_POINTER_SIZE == 64 +@@ -340,6 +344,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_HAIKU) ++#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 --git a/www-client/mozilla_firefox/TinnyTim.sh b/www-client/mozilla_firefox/TinnyTim.sh deleted file mode 100755 index 744afa0d3..000000000 --- a/www-client/mozilla_firefox/TinnyTim.sh +++ /dev/null @@ -1,199 +0,0 @@ -#!/bin/sh -# -# -CWD=`pwd` -DOWNLOADS="$CWD/downloads" -DEPS="$CWD/dependencies" -DIRECTORIES=( "$DOWNLOADS" "$DEPS") -WGET_CMD='wget --quiet' -DEP_URLS=( \ -'http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob_plain;f=build-aux/config.guess' \ -'http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob_plain;f=build-aux/config.sub' \ -'http://ports.haiku-files.org/svn/haikuports/trunk/dev-libs/glib/pkgconfig_glib-1.2.10-installable.diff' \ -'http://ftp.gnu.org/gnu/autoconf/autoconf-2.13.tar.gz' \ -'http://pkgconfig.freedesktop.org/releases/pkg-config-0.23.tar.gz' \ -'http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/source/libIDL-0.6.8.tar.gz' ) -# #### -# NOTE: currently andrewtv.org is down -#'http://andrewtv.org/static/libIDL/libIDL-0.6.8.tar.gz' \ - -AUTOCONF_CMD="/boot/common/bin/autoconf-2.13" -# --macro-dir=/boot/apps/autoconf-2.13/share/autoconf" - -PREFIX=--prefix=/boot/common - -# ################################# -# create_dirs () -# -function create_dirs () -{ -echo "Creating directory structure ... " -for dir in ${DIRECTORIES[@]} -do - if ! [ -d "$dir" ] ; then - mkdir -p "$dir" - fi -done -} # function create_dirs () - - -# ################################# -# download_deps () -# -function download_deps () -{ -echo "Downloading necessary dependency source archives ... " - -for url in ${DEP_URLS[@]} -do - filename=${url##*/} - if ! [ -e "$DOWNLOADS/$filename" ]; then - echo " $filename ..." - $WGET_CMD --output-document="$DOWNLOADS/$filename" "$url" - fi -done -} # function download_deps () - - -# ################################# -# unpack_deps () -# -function unpack_deps () -{ - -echo "Expanding dependency source archives ... " - -for archive in "$DOWNLOADS"/* -do -ext=${archive##*.} -file=${archive##*/} - -if [ "$ext" = "gz" ]; then - cd "$DEPS" - if ! [ -f "$file"-expanded ]; then - tar xvf "$archive" - touch "$file"-expanded - fi - cd "$CWD" - -fi -done -} # function unpack_deps () - - -# ################################# -# copy_config_sub () -# -function copy_config_guess () -{ -cd "$DEPS" -echo "Updating dependencies' config.guess ..." -for result in `find -name config.guess` -do - echo "$result" - cp -f "$DOWNLOADS/config.guess" "$result" -done -cd "$CWD" -} # function copy_config_guess () - - -# ################################# -# copy_config_sub () -# -function copy_config_sub () -{ - -cd "$DEPS" -echo "Updating dependencies' config.sub ..." -for result in `find -name config.sub` -do - echo "$result" - cp -f "$DOWNLOADS/config.sub" "$result" -done -cd "$CWD" -} # function copy_config_sub () - - -# ################################# -# build_autoconf213 () -# -function build_autoconf213 () -{ -cd "$CWD"'/dependencies/autoconf-2.13' -echo "`pwd`" -./configure --prefix=/boot/common/autoconf-2.13 --program-suffix=-2.13 --bindir=/boot/common/bin/ -make -make install -cd "$CWD" -} # function build_autoconf213 () - - - -# ################################# -# build_glib () -# -# NOTE : TODO : re-do patch, as it does not include configure.in changes -function build_glib () -{ -cd "$CWD"/dependencies/pkg-config-0.23/ -echo "`pwd`" -patch -p0 -N -i "$DOWNLOADS"/pkgconfig_glib-1.2.10-installable.diff -cd glib-1.2.10 -libtoolize --force --copy -aclocal -automake -autoconf -./configure "$PREFIX" -make -make check -make install -cd "$CWD" -} # function build_glib () - - -# ################################# -# build_libidl () -# -function build_libidl () -{ -cd "$CWD"/dependencies -cd libIDL-0.6.8 -$AUTOCONF_CMD -./configure "$PREFIX" -make -make install -cd "$CWD" -} # function build_libidl () - - -# ################################# -# print_mozconfig_message () -# -function print_mozconfig_message () -{ -cat <>$(EXE_DEF_FILE) - @echo WinRemoveProperty = PMMERGE.5451 >>$(EXE_DEF_FILE) - @echo WinSetProperty = PMMERGE.5452 >>$(EXE_DEF_FILE) - - LDFLAGS += -Zlinker /NOE - endif - endif - --ifneq (,$(filter-out OS2 WINNT,$(OS_ARCH))) -+ifneq (,$(filter-out OS2 WINNT BeOS Haiku,$(OS_ARCH))) - - firefox:: mozilla.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk - cat $< | sed -e "s|%MOZAPPDIR%|$(mozappdir)|" \ - -e "s|%MOZ_USER_DIR%|.mozilla/firefox|" \ - -e "s|%MREDIR%|$(mredir)|" > $@ - chmod +x $@ - - libs:: firefox -Index: mozilla/browser/app/firefox-branding.js -=================================================================== -RCS file: /cvsroot/mozilla/browser/app/firefox-branding.js,v -retrieving revision 1.1.2.2 -diff -u -8 -p -w -r1.1.2.2 firefox-branding.js ---- mozilla/browser/app/firefox-branding.js 12 Sep 2006 15:50:19 -0000 1.1.2.2 -+++ mozilla/browser/app/firefox-branding.js 8 Jul 2009 21:49:35 -0000 -@@ -1,16 +1,15 @@ - pref("startup.homepage_override_url","http://www.mozilla.org/projects/%APP%/%VERSION%/whatsnew/"); --pref("startup.homepage_welcome_url","http://www.mozilla.org/projects/%APP%/%VERSION%/firstrun/"); - // URL user can browse to manually if for some reason all update installation - // attempts fail. - pref("app.update.url.manual", "http://www.mozilla.org/products/%APP%/"); - // A default value for the "More information about this update" link - // supplied in the "An update is available" page of the update wizard. - pref("app.update.url.details", "http://www.mozilla.org/projects/%APP%/"); - - // Release notes URL --pref("app.releaseNotesURL", "http://www.mozilla.org/projects/%APP%/%VERSION%/releasenotes/"); -+pref("app.releaseNotesURL", "about:buildconfig"); - - // Search codes belong only in builds with official branding - pref("browser.search.param.yahoo-fr", ""); - pref("browser.search.param.yahoo-fr-cjkt", ""); - pref("browser.search.param.yahoo-f-CN", ""); -Index: mozilla/browser/base/jar.mn -=================================================================== -RCS file: /cvsroot/mozilla/browser/base/jar.mn,v -retrieving revision 1.95.2.13 -diff -u -8 -p -w -r1.95.2.13 jar.mn ---- mozilla/browser/base/jar.mn 13 Sep 2006 23:10:10 -0000 1.95.2.13 -+++ mozilla/browser/base/jar.mn 8 Jul 2009 21:49:35 -0000 -@@ -11,16 +11,22 @@ browser.jar: - % overlay chrome://global/content/viewPartialSource.xul chrome://browser/content/viewSourceOverlay.xul - * content/browser/aboutDialog.xul (content/aboutDialog.xul) - * content/browser/aboutDialog.js (content/aboutDialog.js) - content/browser/aboutDialog.css (content/aboutDialog.css) - * content/browser/browser.css (content/browser.css) - * content/browser/browser.js (content/browser.js) - * content/browser/browser.xul (content/browser.xul) - * content/browser/credits.xhtml (content/credits.xhtml) -+* content/browser/dynamic-welcome-v1.html (content/dynamic-welcome-v1.html) -+* content/browser/dynamic-welcome-v2.html (content/dynamic-welcome-v2.html) -+* content/browser/dynamic-bebook-v1.html (content/dynamic-bebook-v1.html) -+* content/browser/dynamic-bebook-v2.html (content/dynamic-bebook-v2.html) -+* content/browser/dynamic-userguide-v1.html (content/dynamic-userguide-v1.html) -+* content/browser/dynamic-userguide-v2.html (content/dynamic-userguide-v2.html) - * content/browser/EULA.js (content/EULA.js) - * content/browser/EULA.xhtml (content/EULA.xhtml) - * content/browser/EULA.xul (content/EULA.xul) - * content/browser/metaData.js (content/metaData.js) - * content/browser/metaData.xul (content/metaData.xul) - content/browser/monitor.png (content/monitor.png) - * content/browser/openLocation.js (content/openLocation.js) - * content/browser/openLocation.xul (content/openLocation.xul) -Index: mozilla/browser/base/content/browserconfig.properties -=================================================================== -RCS file: /cvsroot/mozilla/browser/base/content/browserconfig.properties,v -retrieving revision 1.4.4.1 -diff -u -8 -p -w -r1.4.4.1 browserconfig.properties ---- mozilla/browser/base/content/browserconfig.properties 17 Mar 2006 04:17:56 -0000 1.4.4.1 -+++ mozilla/browser/base/content/browserconfig.properties 8 Jul 2009 21:49:35 -0000 -@@ -1,2 +1,2 @@ - # Do NOT localize or otherwise change these values --browser.startup.homepage=http://www.mozilla.org/projects/bonecho/ -+browser.startup.homepage=chrome://browser/content/dynamic-welcome-v1.html -Index: mozilla/browser/components/migration/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/browser/components/migration/src/Makefile.in,v -retrieving revision 1.20.2.2 -diff -u -8 -p -w -r1.20.2.2 Makefile.in ---- mozilla/browser/components/migration/src/Makefile.in 27 Jan 2006 02:19:00 -0000 1.20.2.2 -+++ mozilla/browser/components/migration/src/Makefile.in 8 Jul 2009 21:49:37 -0000 -@@ -73,20 +73,23 @@ endif - - CPPSRCS = nsProfileMigrator.cpp \ - nsBrowserProfileMigratorUtils.cpp \ - nsNetscapeProfileMigratorBase.cpp \ - nsSeamonkeyProfileMigrator.cpp \ - nsPhoenixProfileMigrator.cpp \ - $(NULL) - --ifneq ($(OS_ARCH),BeOS) -+ifneq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += nsDogbertProfileMigrator.cpp - endif - -+ -+ -+ - ifneq ($(OS_ARCH),OS2) - CPPSRCS += nsOperaProfileMigrator.cpp - endif - - ifeq ($(OS_ARCH)_$(GNU_CXX),WINNT_) - DEFINES += -DPSTOREC_DLL=\"$(subst \,\\,$(WINDIR))\\system32\\pstorec.dll\" - - CPPSRCS += nsIEProfileMigrator.cpp \ -Index: mozilla/browser/installer/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/browser/installer/Makefile.in,v -retrieving revision 1.19.4.4 -diff -u -8 -p -w -r1.19.4.4 Makefile.in ---- mozilla/browser/installer/Makefile.in 6 Jun 2006 15:35:00 -0000 1.19.4.4 -+++ mozilla/browser/installer/Makefile.in 8 Jul 2009 21:49:39 -0000 -@@ -57,19 +57,23 @@ include $(topsrcdir)/config/rules.mk - - MOZ_PKG_REMOVALS = $(srcdir)/removed-files.in - - ifdef BUILD_STATIC_LIBS - ifeq (WINNT,$(OS_ARCH)) - MOZ_PKG_MANIFEST_P = $(srcdir)/windows/packages-static - else - ifneq (,$(filter-out OS2 Darwin,$(OS_ARCH))) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+MOZ_PKG_MANIFEST_P = $(srcdir)/beos/packages-static -+else - MOZ_PKG_MANIFEST_P = $(srcdir)/unix/packages-static - endif - endif -+endif - else - $(error you need a "--enable-static --disable-shared" build to create an installer) - endif - - MOZ_NONLOCALIZED_PKG_LIST = \ - xpcom \ - browser \ - $(NULL) -Index: mozilla/browser/locales/en-US/profile/bookmarks.html -=================================================================== -RCS file: /cvsroot/mozilla/browser/locales/en-US/profile/bookmarks.html,v -retrieving revision 1.4.8.13 -diff -u -8 -p -w -r1.4.8.13 bookmarks.html ---- mozilla/browser/locales/en-US/profile/bookmarks.html 19 Aug 2006 06:04:11 -0000 1.4.8.13 -+++ mozilla/browser/locales/en-US/profile/bookmarks.html 8 Jul 2009 21:49:40 -0000 -@@ -7,20 +7,37 @@ -

Bookmarks

- -

-

Get Bookmark Add-ons -
-

Bookmarks Toolbar Folder

-
Add bookmarks to this folder to see them displayed on the Bookmarks Toolbar -

--

Getting Started --
Latest Headlines -+
Haiku WebSite -+
Nightly Builds -

-


--

Mozilla Firefox

-+

BeZilla Browser

-

--

Help and Tutorials --
Customize Firefox --
Get Involved --
About Us -+
BeZilla Blog -+
Report an Issue -+
View Known Issues -

-+

Haiku Bookmarks

-+

-+

Nightly Builds -+
Optional Packages -+
Bug Tracker -+
Haiku User Guide -+
BeBook -+
Welcome -+

-+

Software for Haiku

-+

-+

OSDrawer.net -+
HaikuWare -+
Zeta-Games -+
BeBits -+

-+

Haiku WebSite -+ -

-Index: mozilla/build/autoconf/config.guess -=================================================================== -RCS file: /cvsroot/mozilla/build/autoconf/config.guess,v -retrieving revision 1.19 -diff -u -8 -p -w -r1.19 config.guess ---- mozilla/build/autoconf/config.guess 18 Apr 2003 10:20:15 -0000 1.19 -+++ mozilla/build/autoconf/config.guess 8 Jul 2009 21:49:46 -0000 -@@ -1,34 +1,37 @@ - #! /bin/sh - # Attempt to guess a canonical system name. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2008-01-08' - - # This file 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Originally written by Per Bothner . - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # - # This script attempts to guess a canonical system name similar to - # config.sub. If it succeeds, it prints the system name on stdout, and - # exits with 0. Otherwise, it exits with 1. - # -@@ -48,34 +51,34 @@ Operation modes: - -v, --version print version number, then exit - - Report bugs and patches to ." - - version="\ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) -@@ -99,35 +102,36 @@ trap 'exit 1' 1 2 15 - # use `HOST_CC' if defined, but it is deprecated. - - # Portable tmp directory creation inspired by the Autoconf team. - - set_cc_for_build=' - trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; - trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; - : ${TMPDIR=/tmp} ; -- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || -+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || -+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; - dummy=$tmp/dummy ; - tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; - case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; --esac ;' -+esac ; set_cc_for_build= ;' - - # This is needed to find uname on a Pyramid OSx when run in the BSD universe. - # (ghazi@noc.rutgers.edu 1994-08-24) - if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH - fi - - UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -@@ -152,16 +156,17 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; -+ sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ -@@ -190,60 +195,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" -- exit 0 ;; -- amiga:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- arc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- hp300:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mac68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- macppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme88k:OpenBSD:*:*) -- echo m88k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvmeppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- pmax:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sgi:OpenBSD:*:*) -- echo mipseb-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sun3:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- wgrisc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:OpenBSD:*:*) -- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` -+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} -+ exit ;; -+ *:ekkoBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} -+ exit ;; -+ *:SolidBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} -+ exit ;; -+ macppc:MirBSD:*:*) -+ echo powerpc-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; -+ *:MirBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; - alpha:OSF1:*:*) -- if test $UNAME_RELEASE = "V4.0"; then -+ case $UNAME_RELEASE in -+ *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` -- fi -+ ;; -+ *5.*) -+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -+ ;; -+ esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; -@@ -271,147 +258,163 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac -+ # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. -- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -- exit 0 ;; -+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -+ exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix -- exit 0 ;; -+ exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 -- exit 0 ;; -+ exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 -- exit 0;; -+ exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos -- exit 0 ;; -+ exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos -- exit 0 ;; -+ exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition -- exit 0 ;; -+ exit ;; -+ *:z/VM:*:*) -+ echo s390-ibm-zvmoe -+ exit ;; -+ *:OS400:*:*) -+ echo powerpc-ibm-os400 -+ exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} -- exit 0;; -+ exit ;; -+ arm:riscos:*:*|arm:RISCOS:*:*) -+ echo arm-unknown-riscos -+ exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp -- exit 0;; -+ exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi -- exit 0 ;; -+ exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 -- exit 0 ;; -- DRS?6000:UNIX_SV:4.2*:7*) -+ exit ;; -+ DRS?6000:unix:4.0:6*) -+ echo sparc-icl-nx6 -+ exit ;; -+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in -- sparc) echo sparc-icl-nx7 && exit 0 ;; -+ sparc) echo sparc-icl-nx7; exit ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -- i86pc:SunOS:5.*:*) -+ exit ;; -+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` -- exit 0 ;; -+ exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac -- exit 0 ;; -+ exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ m68k:machten:*:*) -+ echo m68k-apple-machten${UNAME_RELEASE} -+ exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 -- exit 0 ;; -+ exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #ifdef __cplusplus - #include /* for printf() prototype */ - int main (int argc, char *argv[]) { - #else - int main (argc, argv) int argc; char *argv[]; { -@@ -425,145 +428,150 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c \ -- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ -- && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && -+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && -+ SYSTEM_NAME=`$dummy $dummyarg` && -+ { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax -- exit 0 ;; -+ exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix -- exit 0 ;; -+ exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 -- exit 0 ;; -+ exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 -- exit 0 ;; -+ exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 -- exit 0 ;; -+ exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 -- exit 0 ;; -+ exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd -- exit 0 ;; -+ exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` -- exit 0 ;; -+ exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' -+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix -- exit 0 ;; -+ exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` -+ then -+ echo "$SYSTEM_NAME" -+ else - echo rs6000-ibm-aix3.2.5 -+ fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi -- exit 0 ;; -- *:AIX:*:[45]) -+ exit ;; -+ *:AIX:*:[456]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix -- exit 0 ;; -+ exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 -- exit 0 ;; -+ exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to -- exit 0 ;; # report: romp-ibm BSD 4.3 -+ exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx -- exit 0 ;; -+ exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 -- exit 0 ;; -+ exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd -- exit 0 ;; -+ exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 -- exit 0 ;; -+ exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` -@@ -615,31 +623,41 @@ EOF - } - EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then -- # avoid double evaluation of $set_cc_for_build -- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build -- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null -+ eval $set_cc_for_build -+ -+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating -+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler -+ # generating 64-bit code. GNU and HP use different nomenclature: -+ # -+ # $ CC_FOR_BUILD=cc ./config.guess -+ # => hppa2.0w-hp-hpux11.23 -+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess -+ # => hppa64-hp-hpux11.23 -+ -+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | -+ grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); -@@ -657,181 +675,224 @@ EOF - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 -- exit 0 ;; -+ exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd -- exit 0 ;; -+ exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd -- exit 0 ;; -+ exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix -- exit 0 ;; -+ exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf -- exit 0 ;; -+ exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf -- exit 0 ;; -+ exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi -- exit 0 ;; -+ exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites -- exit 0 ;; -+ exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - *:UNICOS/mp:*:*) -- echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -+ exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -- exit 0 ;; -+ exit ;; -+ 5000:UNIX_System_V:4.*:*) -+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -+ exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:FreeBSD:*:*) -- # Determine whether the default compiler uses glibc. -- eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -- #include -- #if __GLIBC__ >= 2 -- LIBC=gnu -- #else -- LIBC= -- #endif --EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} -- exit 0 ;; -+ case ${UNAME_MACHINE} in -+ pc98) -+ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ amd64) -+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ *) -+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ esac -+ exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin -- exit 0 ;; -- i*:MINGW*:*) -+ exit ;; -+ *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 -- exit 0 ;; --#### MozillaHack --# Netscape's hacked uname -- xx:WINNT:* | xx:WIN95:*) -- echo i586-pc-msvc -- exit 0 ;; --### End MozillaHack -+ exit ;; -+ i*:windows32*:*) -+ # uname -m includes "-pc" on this system. -+ echo ${UNAME_MACHINE}-mingw32 -+ exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 -- exit 0 ;; -- x86:Interix*:3*) -- echo i586-pc-interix3 -- exit 0 ;; -+ exit ;; -+ *:Interix*:[3456]*) -+ case ${UNAME_MACHINE} in -+ x86) -+ echo i586-pc-interix${UNAME_RELEASE} -+ exit ;; -+ EM64T | authenticamd) -+ echo x86_64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ IA64) -+ echo ia64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks -- exit 0 ;; -+ exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix -- exit 0 ;; -+ exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin -- exit 0 ;; -+ exit ;; -+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) -+ echo x86_64-unknown-cygwin -+ exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin -- exit 0 ;; -+ exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - *:GNU:*:*) -+ # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` -- exit 0 ;; -+ exit ;; -+ *:GNU/*:*:*) -+ # other systems with GNU libc and userland -+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu -+ exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix -- exit 0 ;; -+ exit ;; - arm*:Linux:*:*) -+ eval $set_cc_for_build -+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ -+ | grep -q __ARM_EABI__ -+ then - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ else -+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ fi -+ exit ;; -+ avr32*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; -+ cris:Linux:*:*) -+ echo cris-axis-linux-gnu -+ exit ;; -+ crisv32:Linux:*:*) -+ echo crisv32-axis-linux-gnu -+ exit ;; -+ frv:Linux:*:*) -+ echo frv-unknown-linux-gnu -+ exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ m32r*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) -@@ -839,62 +900,78 @@ EOF - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; -+ or32:Linux:*:*) -+ echo or32-unknown-linux-gnu -+ exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -- exit 0 ;; -+ exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac -- exit 0 ;; -+ exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux -- exit 0 ;; -+ exit ;; -+ sh64*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ vax:Linux:*:*) -+ echo ${UNAME_MACHINE}-dec-linux-gnu -+ exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ xtensa*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g -@@ -902,99 +979,113 @@ EOF - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" -- exit 0 ;; -+ exit ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" -- exit 0 ;; -+ exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" -- exit 0 ;; -+ exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else -- #ifdef __INTEL_COMPILER -+ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif -+ #ifdef __dietlibc__ -+ LIBC=dietlibc -+ #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 -- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^LIBC/{ -+ s: ::g -+ p -+ }'`" -+ test x"${LIBC}" != x && { -+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" -+ exit -+ } -+ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 -- exit 0 ;; -+ exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx -- exit 0 ;; -+ exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop -- exit 0 ;; -+ exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos -- exit 0 ;; -+ exit ;; -+ i*86:syllable:*:*) -+ echo ${UNAME_MACHINE}-pc-syllable -+ exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi -- exit 0 ;; -- i*86:*:5:[78]*) -+ exit ;; -+ i*86:*:5:[678]*) -+ # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ -@@ -1002,214 +1093,248 @@ EOF - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi -- exit 0 ;; -+ exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 -- exit 0 ;; -+ exit ;; - paragon:*:*:*) - echo i860-intel-osf1 -- exit 0 ;; -+ exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi -- exit 0 ;; -+ exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv -- exit 0 ;; -+ exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv -- exit 0 ;; -+ exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix -- exit 0 ;; -- M68*:*:R3V[567]*:*) -- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; -- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0) -+ exit ;; -+ M68*:*:R3V[5678]*:*) -+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; -+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4.3${OS_REL} && exit 0 -+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4 && exit 0 ;; -+ && { echo i486-ncr-sysv4; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 -- exit 0 ;; -+ exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi -- exit 0 ;; -+ exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 -- exit 0 ;; --#### MozillaHack -- *:*OpenVMS*:*:*) -- case "${UNAME_SYSTEM}" in -- POSIX_for_OpenVMS_AXP) echo alpha-dec-openvmsposix ;; -- POSIX_for_OpenVMS_VAX) echo vax-dec-openvmsposix ;; -- OpenVMS) echo alpha-dec-openvms ;; -- *) echo unknown-dec-openvms ;; -- esac -- exit 0 ;; --#### End MozillaHack -+ exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 -- exit 0 ;; -+ exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 -- exit 0 ;; -+ exit ;; -+ i*86:VOS:*:*) -+ # From Paul.Green@stratus.com. -+ echo ${UNAME_MACHINE}-stratus-vos -+ exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos -- exit 0 ;; -+ exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 -- exit 0 ;; -+ exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos -- exit 0 ;; -+ exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos -- exit 0 ;; -+ exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos -- exit 0 ;; -+ 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 0 ;; -+ exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ SX-7:SUPER-UX:*:*) -+ echo sx7-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8:SUPER-UX:*:*) -+ echo sx8-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8R:SUPER-UX:*:*) -+ echo sx8r-nec-superux${UNAME_RELEASE} -+ exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Darwin:*:*) -- case `uname -p` in -- *86) UNAME_PROCESSOR=i686 ;; -- powerpc) UNAME_PROCESSOR=powerpc ;; -+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown -+ case $UNAME_PROCESSOR in -+ unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:QNX:*:4*) - echo i386-pc-qnx -- exit 0 ;; -- NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) -+ exit ;; -+ NSE-?:NONSTOP_KERNEL:*:*) -+ echo nse-tandem-nsk${UNAME_RELEASE} -+ exit ;; -+ NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux -- exit 0 ;; -+ exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv -- exit 0 ;; -+ exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 -- exit 0 ;; -+ exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 -- exit 0 ;; -+ exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex -- exit 0 ;; -+ exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 -- exit 0 ;; -+ exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 -- exit 0 ;; -+ exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 -- exit 0 ;; -+ exit ;; - *:ITS:*:*) - echo pdp10-unknown-its -- exit 0 ;; -+ exit ;; -+ SEI:*:*:SEIUX) -+ echo mips-sei-seiux${UNAME_RELEASE} -+ exit ;; -+ *:DragonFly:*:*) -+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` -+ exit ;; -+ *:*VMS:*:*) -+ UNAME_MACHINE=`(uname -p) 2>/dev/null` -+ case "${UNAME_MACHINE}" in -+ A*) echo alpha-dec-vms ; exit ;; -+ I*) echo ia64-dec-vms ; exit ;; -+ V*) echo vax-dec-vms ; exit ;; -+ esac ;; -+ *:XENIX:*:SysV) -+ echo i386-pc-xenix -+ exit ;; -+ i*86:skyos:*:*) -+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' -+ exit ;; -+ i*86:rdos:*:*) -+ echo ${UNAME_MACHINE}-pc-rdos -+ exit ;; - esac - - #echo '(No uname command or uname output not recognized.)' 1>&2 - #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - - eval $set_cc_for_build - cat >$dummy.c </dev/null && $dummy && exit 0 -+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - - # Apollos put the system type in the environment. - --test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } -+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - - # Convex versions that predate uname can use getsysinfo(1) - - if [ -x /usr/convex/getsysinfo ] - then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - c34*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - c38*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - c4*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - esac - fi - - cat >&2 < in order to provide the needed - information to handle your system. - - config.guess timestamp = $timestamp - -Index: mozilla/build/autoconf/config.sub -=================================================================== -RCS file: /cvsroot/mozilla/build/autoconf/config.sub,v -retrieving revision 1.20 -diff -u -8 -p -w -r1.20 config.sub ---- mozilla/build/autoconf/config.sub 18 Apr 2003 10:20:15 -0000 1.20 -+++ mozilla/build/autoconf/config.sub 8 Jul 2009 21:49:49 -0000 -@@ -1,14 +1,15 @@ - #! /bin/sh - # Configuration validation subroutine script. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2008-01-16' - - # This file is (in principle) common to ALL GNU software. - # The presence of a machine in this file suggests that SOME GNU software - # can handle that machine. It does not imply ALL GNU software can. - # - # This file 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 -@@ -16,24 +17,25 @@ timestamp='2003-02-22' - # - # 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., 59 Temple Place - Suite 330, --# Boston, MA 02111-1307, USA. -- -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. -+# - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # - # Configuration subroutine to validate and canonicalize a configuration type. - # Supply the specified configuration type as an argument. - # If it is invalid, we print an error message on stderr and exit with code 1. - # Otherwise, we print the canonical config type on stdout and succeed. - -@@ -65,46 +67,46 @@ Operation modes: - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - - Report bugs and patches to ." - - version="\ - GNU config.sub ($timestamp) - --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 -- exit 0;; -+ exit ;; - - * ) - break ;; - esac - done - - case $# in - 0) echo "$me: missing argument$help" >&2 -@@ -113,17 +115,19 @@ case $# in - *) echo "$me: too many arguments$help" >&2 - exit 1;; - esac - - # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). - # Here we must recognize all the valid KERNEL-OS combinations. - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` - case $maybe_os in -- nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) -+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ -+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ -+ storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi -@@ -139,17 +143,17 @@ case $os in - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -- -apple | -axis) -+ -apple | -axis | -knuth | -cray) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) -@@ -164,32 +168,40 @@ case $os in - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; -+ -sco6) -+ os=-sco5v6 -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; -+ -sco5v6*) -+ # Don't forget version if it is 3.2v4 or newer. -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) -@@ -219,171 +231,196 @@ case $os in - os=-mint - ;; - esac - - # Decode aliases for certain CPU-COMPANY combinations. - case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. --#### MozillaHack --# mips*el --#### End MozillaHack - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ -- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ -- | clipper \ -+ | am33_2.0 \ -+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ -+ | bfin \ -+ | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ -- | fr30 | frv \ -+ | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ -- | ip2k \ -- | m32r | m68000 | m68k | m88k | mcore \ -- | mips | mipsbe | mipseb | mips*el | mipsle \ -+ | ip2k | iq2000 \ -+ | m32c | m32r | m32rle | m68000 | m68k | m88k \ -+ | maxq | mb | microblaze | mcore | mep \ -+ | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64vr | mips64vrel \ - | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ -+ | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ -+ | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ -+ | mt \ - | msp430 \ -+ | nios | nios2 \ - | ns16k | ns32k \ -- | openrisc | or32 \ -+ | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ -- | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ -+ | score \ -+ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ -- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ -- | strongarm \ -- | tahoe | thumb | tic80 | tron \ -+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ -+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ -+ | spu | strongarm \ -+ | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ -- | x86 | xscale | xstormy16 | xtensa \ -+ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; -+ ms1) -+ basic_machine=mt-unknown -+ ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. --#### MozillaHack --# mips*el --#### End MozillaHack - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ -- | avr-* \ -- | bs2000-* \ -+ | avr-* | avr32-* \ -+ | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ -- | clipper-* | cydra-* \ -+ | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ -- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ -+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ -- | ip2k-* \ -- | m32r-* \ -+ | ip2k-* | iq2000-* \ -+ | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -- | m88110-* | m88k-* | mcore-* \ -- | mips-* | mipsbe-* | mipseb-* | mips*el-* | mipsle-* \ -+ | m88110-* | m88k-* | maxq-* | mcore-* \ -+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ -+ | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ -+ | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ -+ | mmix-* \ -+ | mt-* \ - | msp430-* \ -- | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ -+ | nios-* | nios2-* \ -+ | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ -- | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ -+ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ -- | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ -- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ -+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ -+ | sparclite-* \ -+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ -- | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ -- | xtensa-* \ -+ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ -+ | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-*) - ;; -+ # Recognize the basic CPU types without company name, with glob match. -+ xtensa*) -+ basic_machine=$basic_machine-unknown -+ ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; -+ abacus) -+ basic_machine=abacus-unknown -+ ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; -+ amd64) -+ basic_machine=x86_64-pc -+ ;; -+ amd64-*) -+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) -@@ -405,16 +442,24 @@ case $basic_machine in - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; -+ blackfin) -+ basic_machine=bfin-unknown -+ os=-linux -+ ;; -+ blackfin-*) -+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; -@@ -433,22 +478,37 @@ case $basic_machine in - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; -+ craynv) -+ basic_machine=craynv-cray -+ os=-unicosmp -+ ;; -+ cr16) -+ basic_machine=cr16-unknown -+ os=-elf -+ ;; - crds | unos) - basic_machine=m68k-crds - ;; -+ crisv32 | crisv32-* | etraxfs*) -+ basic_machine=crisv32-axis -+ ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; -+ crx) -+ basic_machine=crx-unknown -+ os=-elf -+ ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec -@@ -461,16 +521,20 @@ case $basic_machine in - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; -+ djgpp) -+ basic_machine=i586-pc -+ os=-msdosdjgpp -+ ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; -@@ -611,66 +675,71 @@ case $basic_machine in - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; -+ m68knommu) -+ basic_machine=m68k-unknown -+ os=-linux -+ ;; -+ m68knommu-*) -+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; --#### MozillaHack -- i386-msvc | msvc) -- basic_machine=i386-pc -- os=-msvc -+ mingw32ce) -+ basic_machine=arm-unknown -+ os=-mingw32ce - ;; --#### End MozillaHack - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; -- mmix*) -- basic_machine=mmix-knuth -- os=-mmixware -- ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; -+ ms1-*) -+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` -+ ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; -@@ -729,30 +798,29 @@ case $basic_machine in - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; -- nv1) -- basic_machine=nv1-cray -- os=-unicosmp -- ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; -- or32 | or32-*) -+ openrisc | openrisc-*) - basic_machine=or32-unknown -- os=-coff -+ ;; -+ os400) -+ basic_machine=powerpc-ibm -+ os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k -@@ -760,43 +828,63 @@ case $basic_machine in - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; -+ parisc) -+ basic_machine=hppa-unknown -+ os=-linux -+ ;; -+ parisc-*) -+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; -+ pc98) -+ basic_machine=i386-pc -+ ;; -+ pc98-*) -+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; -- pentiumii | pentium2) -+ pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; -+ pentium4) -+ basic_machine=i786-pc -+ ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -- pentiumii-* | pentium2-*) -+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -+ pentium4-*) -+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` -@@ -819,16 +907,20 @@ case $basic_machine in - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; -+ rdos) -+ basic_machine=i386-pc -+ os=-rdos -+ ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) -@@ -845,23 +937,37 @@ case $basic_machine in - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; -+ sde) -+ basic_machine=mipsisa32-sde -+ os=-elf -+ ;; -+ sei) -+ basic_machine=mips-sei -+ os=-seiux -+ ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; -+ sh5el) -+ basic_machine=sh5le-unknown -+ ;; -+ sh64) -+ basic_machine=sh64-unknown -+ ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; -@@ -926,45 +1032,49 @@ case $basic_machine in - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; -- tic4x | c4x*) -- basic_machine=tic4x-unknown -- os=-coff -- ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; -+ tile*) -+ basic_machine=tile-unknown -+ os=-linux-gnu -+ ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; -+ tpf) -+ basic_machine=s390x-ibm -+ os=-tpf -+ ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; -@@ -998,16 +1108,20 @@ case $basic_machine in - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; -+ xbox) -+ basic_machine=i686-pc -+ os=-mingw32 -+ ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) -@@ -1028,39 +1142,39 @@ case $basic_machine in - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; -+ mmix) -+ basic_machine=mmix-knuth -+ ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; -- sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) -+ sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; -- sh64) -- basic_machine=sh64-unknown -- ;; -- sparc | sparcv9 | sparcv9b) -+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; -@@ -1116,40 +1230,40 @@ case $os in - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. --#### MozillaHack --# msvc --#### End MozillaHack - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ -- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ -- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ -+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ -+ | -openbsd* | -solidbsd* \ -+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ -+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ -+ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ -+ | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ -- | -msvc* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ -- | -powermax* | -dnix*) -+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ -+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os -@@ -1157,34 +1271,40 @@ case $os in - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ -- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ -+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; -+ -linux-dietlibc) -+ os=-linux-dietlibc -+ ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; -+ -os400*) -+ os=-os400 -+ ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf -@@ -1196,16 +1316,19 @@ case $os in - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; -+ -syllable*) -+ os=-syllable -+ ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova -@@ -1218,16 +1341,19 @@ case $os in - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; -+ -tpf*) -+ os=-tpf -+ ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 -@@ -1254,16 +1380,19 @@ case $os in - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; -+ -zvmoe) -+ os=-zvmoe -+ ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -@@ -1276,25 +1405,34 @@ else - - # Note that if you're going to try to match "-MANUFACTURER" here (say, - # "-sun"), then you have to tell the case statement up towards the top - # that MANUFACTURER isn't an operating system. Otherwise, code above - # will signal an error saying that MANUFACTURER isn't an operating - # system, and we'll never get to this point. - - case $basic_machine in -+ score-*) -+ os=-elf -+ ;; -+ spu-*) -+ os=-elf -+ ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; -+ c4x-* | tic4x-*) -+ os=-coff -+ ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) -@@ -1310,16 +1448,19 @@ case $basic_machine in - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; -+ mep-*) -+ os=-elf -+ ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff -@@ -1328,19 +1469,25 @@ case $basic_machine in - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; -+ *-haiku) -+ os=-haiku -+ ;; - *-ibm) - os=-aix - ;; -+ *-knuth) -+ os=-mmixware -+ ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf -@@ -1463,19 +1610,25 @@ case $basic_machine in - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; -+ -os400*) -+ vendor=ibm -+ ;; - -ptx*) - vendor=sequent - ;; -+ -tpf*) -+ vendor=ibm -+ ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi -@@ -1490,16 +1643,16 @@ case $basic_machine in - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; - esac - - echo $basic_machine$os --exit 0 -+exit - - # Local variables: - # eval: (add-hook 'write-file-hooks 'time-stamp) - # time-stamp-start: "timestamp='" - # time-stamp-format: "%:y-%02m-%02d" - # time-stamp-end: "'" - # End: -Index: mozilla/calendar/base/content/preferences/preferences.xul -=================================================================== -RCS file: /cvsroot/mozilla/calendar/base/content/preferences/preferences.xul,v -retrieving revision 1.1.2.6 -diff -u -8 -p -w -r1.1.2.6 preferences.xul ---- mozilla/calendar/base/content/preferences/preferences.xul 14 Mar 2007 09:08:19 -0000 1.1.2.6 -+++ mozilla/calendar/base/content/preferences/preferences.xul 8 Jul 2009 21:49:51 -0000 -@@ -66,17 +66,22 @@ - #ifdef XP_UNIX - #ifdef XP_MACOSX - style="&prefWindow.styleMac;"> - #else - title="&prefWindow.titleGNOME;" - style="&prefWindow.styleGNOME;"> - #endif - #endif -+#ifdef XP_BEOS -+ title="&prefWindow.titleGNOME;" -+ style="&prefWindow.styleGNOME;"> - #endif -+#endif -+ - - - - - -Index: mozilla/calendar/libical/src/libical/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/calendar/libical/src/libical/Makefile.in,v -retrieving revision 1.3.6.1 -diff -u -8 -p -w -r1.3.6.1 Makefile.in ---- mozilla/calendar/libical/src/libical/Makefile.in 27 Dec 2007 10:03:57 -0000 1.3.6.1 -+++ mozilla/calendar/libical/src/libical/Makefile.in 8 Jul 2009 21:49:54 -0000 -@@ -84,17 +84,17 @@ CSRCS = \ - $(NULL) - - ifeq (,$(filter -DHAVE_SNPRINTF=1,$(ACDEFINES))) - CSRCS += vsnprintf.c - endif - - DEFINES += -DHAVE_CONFIG_H - --ifneq (,$(filter BeOS Darwin OpenVMS NetBSD FreeBSD,$(OS_ARCH))) -+ifneq (,$(filter BeOS Haiku Darwin OpenVMS NetBSD FreeBSD,$(OS_ARCH))) - DEFINES += -D__USE_BSD=1 - endif - - LOCAL_INCLUDES = -I$(srcdir)/../.. -I$(srcdir) -I. - - SRCS_IN_OBJDIR = 1 - - include $(topsrcdir)/config/rules.mk -Index: mozilla/calendar/sunbird/app/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/calendar/sunbird/app/Makefile.in,v -retrieving revision 1.21.2.23 -diff -u -8 -p -w -r1.21.2.23 Makefile.in ---- mozilla/calendar/sunbird/app/Makefile.in 4 May 2008 01:32:07 -0000 1.21.2.23 -+++ mozilla/calendar/sunbird/app/Makefile.in 8 Jul 2009 21:50:01 -0000 -@@ -79,18 +79,22 @@ include $(topsrcdir)/config/rules.mk - else - # Build a binary bootstrapping with XRE_main - - MOZILLA_INTERNAL_API = 1 - - ifeq ($(USE_SHORT_LIBNAME), 1) - PROGRAM = sunbird$(BIN_SUFFIX) - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+PROGRAM = BeZillaCalendar$(BIN_SUFFIX) -+else - PROGRAM = sunbird-bin$(BIN_SUFFIX) - endif -+endif - - REQUIRES = \ - appshell \ - string \ - xpcom \ - xulapp \ - $(NULL) - -@@ -189,17 +193,21 @@ endif - ifdef BUILD_STATIC_LIBS - RCFLAGS += -DMOZ_STATIC_BUILD - endif - ifdef DEBUG - RCFLAGS += -DDEBUG - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ifeq ($(OS_ARCH),Haiku) -+BEOS_PROGRAM_RDEF = $(srcdir)/apprunner-beos.rdef -+endif -+BEOS_PROGRAM_RESOURCE = $(srcdir)/apprunner-beos.rsrc - ifdef BUILD_STATIC_LIBS - OS_LIBS += -ltracker -lgame - endif - endif - - ifeq ($(OS_ARCH),OS2) - RESFILE=splashos2.res - RCFLAGS += -DMOZ_SUNBIRD -@@ -261,17 +269,17 @@ $(EXE_DEF_FILE): - @echo WinQueryProperty = PMMERGE.5450 >>$(EXE_DEF_FILE) - @echo WinRemoveProperty = PMMERGE.5451 >>$(EXE_DEF_FILE) - @echo WinSetProperty = PMMERGE.5452 >>$(EXE_DEF_FILE) - - LDFLAGS += -Zlinker /NOE - endif - endif - --ifneq (,$(filter-out OS2 WINNT,$(OS_ARCH))) -+ifneq (,$(filter-out OS2 WINNT BeOS Haiku,$(OS_ARCH))) - - sunbird:: mozilla.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk - cat $< | sed -e "s|%MOZAPPDIR%|$(mozappdir)|" \ - -e "s|%MOZ_USER_DIR%|.mozilla/sunbird|" \ - -e "s|%MREDIR%|$(mredir)|" > $@ - chmod +x $@ - - libs:: sunbird -Index: mozilla/config/config.mk -=================================================================== -RCS file: /cvsroot/mozilla/config/config.mk,v -retrieving revision 3.337.2.12 -diff -u -8 -p -w -r3.337.2.12 config.mk ---- mozilla/config/config.mk 23 Nov 2007 21:12:26 -0000 3.337.2.12 -+++ mozilla/config/config.mk 8 Jul 2009 21:50:14 -0000 -@@ -105,19 +105,16 @@ AUTOCONF_TOOLS = $(topsrcdir)/build/auto - - ifeq ($(OS_ARCH),QNX) - ifeq ($(OS_TARGET),NTO) - LD := qcc -Vgcc_ntox86 -nostdlib - else - LD := $(CC) - endif - endif --ifeq ($(OS_ARCH),BeOS) --BEOS_ADDON_WORKAROUND = 1 --endif - - # - # Strip off the excessively long version numbers on these platforms, - # but save the version to allow multiple versions of the same base - # platform to be built in the same tree. - # - ifneq (,$(filter FreeBSD HP-UX IRIX Linux NetBSD OpenBSD OSF1 SunOS,$(OS_ARCH))) - OS_RELEASE := $(basename $(OS_RELEASE)) -Index: mozilla/config/rules.mk -=================================================================== -RCS file: /cvsroot/mozilla/config/rules.mk,v -retrieving revision 3.487.2.9 -diff -u -8 -p -w -r3.487.2.9 rules.mk ---- mozilla/config/rules.mk 18 Dec 2007 21:33:08 -0000 3.487.2.9 -+++ mozilla/config/rules.mk 8 Jul 2009 21:50:19 -0000 -@@ -512,17 +512,17 @@ ifeq ($(OS_ARCH),Linux) - ifdef IS_COMPONENT - EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic - endif - endif - - # - # BeOS: add -Bsymbolic flag for components - # --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter BeOS Haiku,$(OS_ARCH))) - ifdef IS_COMPONENT - EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic - endif - endif - - # - # MINGW32 - # -@@ -672,19 +672,23 @@ ifdef BEOS_ADDON_WORKAROUND - ( cd $(FINAL_TARGET)/components && $(CC) -nostart -o $(SHARED_LIBRARY).stub $(SHARED_LIBRARY) ) - endif - else # ! IS_COMPONENT - ifneq (,$(filter OS2 WINNT WINCE,$(OS_ARCH))) - $(INSTALL) $(IFLAGS2) $(IMPORT_LIBRARY) $(DIST)/lib - else - $(INSTALL) $(IFLAGS2) $(SHARED_LIBRARY) $(DIST)/lib - endif -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) $(IFLAGS2) $(SHARED_LIBRARY) $(FINAL_TARGET)/lib -+else - $(INSTALL) $(IFLAGS2) $(SHARED_LIBRARY) $(FINAL_TARGET) -+endif - ifdef BEOS_ADDON_WORKAROUND -- ( cd $(FINAL_TARGET) && $(CC) -nostart -o $(SHARED_LIBRARY).stub $(SHARED_LIBRARY) ) -+ ( cd $(FINAL_TARGET)/lib && $(CC) -nostart -o $(SHARED_LIBRARY).stub $(SHARED_LIBRARY) ) - endif - endif # IS_COMPONENT - endif # SHARED_LIBRARY - ifdef PROGRAM - $(INSTALL) $(IFLAGS2) $(PROGRAM) $(FINAL_TARGET) - endif - ifdef SIMPLE_PROGRAMS - $(INSTALL) $(IFLAGS2) $(SIMPLE_PROGRAMS) $(FINAL_TARGET) -@@ -822,17 +826,20 @@ endif # OS2 - endif # WINCE - - ifdef ENABLE_STRIP - $(STRIP) $@ - endif - ifdef MOZ_POST_PROGRAM_COMMAND - $(MOZ_POST_PROGRAM_COMMAND) $@ - endif --ifeq ($(OS_ARCH),BeOS) -+ifneq (,$(filter BeOS Haiku,$(OS_ARCH))) -+ifdef BEOS_PROGRAM_RDEF -+ rc -o $(BEOS_PROGRAM_RESOURCE) $(BEOS_PROGRAM_RDEF) -+endif - ifdef BEOS_PROGRAM_RESOURCE - xres -o $@ $(BEOS_PROGRAM_RESOURCE) - mimeset $@ - endif - endif # BeOS - - $(HOST_PROGRAM): $(HOST_PROGOBJS) $(HOST_LIBS_DEPS) $(HOST_EXTRA_DEPS) Makefile Makefile.in - ifeq ($(MOZ_OS2_TOOLS),VACPP) -Index: mozilla/directory/c-sdk/build.mk -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/build.mk,v -retrieving revision 5.0.2.15.4.1 -diff -u -8 -p -w -r5.0.2.15.4.1 build.mk ---- mozilla/directory/c-sdk/build.mk 3 Feb 2006 14:44:29 -0000 5.0.2.15.4.1 -+++ mozilla/directory/c-sdk/build.mk 8 Jul 2009 21:50:28 -0000 -@@ -437,17 +437,17 @@ endif #!os2 - - ifeq ($(OS_ARCH), OSF1) - # The linker on OSF/1 gets confused if it finds an so_locations file - # that doesn't meet its expectations, so we arrange to remove it before - # linking. - SO_FILES_TO_REMOVE=so_locations - endif - --ifneq (,$(filter BeOS Darwin NetBSD,$(OS_ARCH))) -+ifneq (,$(filter BeOS Haiku Darwin NetBSD,$(OS_ARCH))) - LINK_DLL = $(MKSHLIB) $(OBJS) - endif - - ifeq ($(OS_ARCH), HP-UX) - # On HPUX, we need a couple of changes: - # 1) Use the C++ compiler for linking, which will pass the +eh flag on down to the - # linker so the correct exception-handling-aware libC gets used (libnshttpd.sl - # needs this). -Index: mozilla/directory/c-sdk/configure.in -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/configure.in,v -retrieving revision 5.0.2.34.4.3 -diff -u -8 -p -w -r5.0.2.34.4.3 configure.in ---- mozilla/directory/c-sdk/configure.in 11 Jul 2007 20:43:19 -0000 5.0.2.34.4.3 -+++ mozilla/directory/c-sdk/configure.in 8 Jul 2009 21:50:33 -0000 -@@ -355,17 +355,17 @@ fi - if test -z "$SKIP_PATH_CHECKS"; then - AC_PATH_PROG(WHOAMI, $WHOAMI whoami, echo not_whoami) - fi - - if test -n "$MOZ_DEBUG"; then - AC_DEFINE(DEBUG) - DEFINES="$DEFINES -UNDEBUG" - case "${target_os}" in -- beos*) -+ beos*|haiku*) - DEFINES="$DEFINES -DDEBUG_${USER}" - ;; - msvc*|mks*|cygwin*|mingw*|os2*) - DEFINES="$DEFINES -DDEBUG_`echo ${USERNAME} | sed -e 's| |_|g'`" - ;; - *) - DEFINES="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_`$WHOAMI`" - ;; -@@ -728,17 +728,17 @@ case "$host" in - *-cygwin*|*-msvc*|*-mks*) - CYGWIN_WRAPPER='sh $(topsrcdir)/config/cygwin-wrapper' - NSINSTALL='$(CYGWIN_WRAPPER) nsinstall' - if test "`${PERL} -v | grep -c cygwin 2>/dev/null`" = 0; then - PERL='$(CYGWIN_WRAPPER) perl' - fi - WIN_TOP_SRC=`cygpath -a -w $srcdir | sed -e 's|\\\\|/|g'` - ;; --*-beos*) -+*-beos*|*-haiku*) - HOST_CFLAGS="$HOST_CFLAGS -DXP_BEOS -DBeOS -DBEOS -D_POSIX_SOURCE" - ;; - *os2*) - ;; - *) - HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX" - ;; - esac -@@ -807,34 +807,52 @@ case "$target" in - else - MDCPUCFG_H=_aix32.cfg - fi - fi - PR_MD_CSRCS=aix.c - RESOLVE_LINK_SYMBOLS=1 - ;; - --*-beos*) -+*-beos*|*-haiku*) - AC_DEFINE(XP_BEOS) - AC_DEFINE(BeOS) - AC_DEFINE(BEOS) - AC_DEFINE(_POSIX_SOURCE) -+ DSO_CFLAGS=-fPIC - DSO_LDOPTS=-nostart -+ - MDCPUCFG_H=_beos.cfg - USE_BTHREADS=1 - PR_MD_ARCH_DIR=beos - RESOLVE_LINK_SYMBOLS=1 -+ -+ _HAIKU_BUILD=0 -+ AC_CHECK_LIB(network,main,_HAIKU_BUILD=1) -+ if test "$_HAIKU_BUILD" = 1; then -+ OS_LIBS="$OS_LIBS -lnetwork" -+ AC_DEFINE(XP_HAIKU) -+ AC_DEFINE(BONE_VERSION) -+ else -+ AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) -+ fi -+ -+ -+ - case "${target_cpu}" in - i*86) -- _OPTIMIZE_FLAGS=-O2 -- _DEBUG_FLAGS='-gdwarf-2 -O0' -+ AC_DEFINE(i586) -+ CPU_ARCH=i586 -+ _OPTIMIZE_FLAGS=-O3 -+ _DEBUG_FLAGS='-gdwarf-2 -O0 -fno-inline' - MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@' -- AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) - ;; - powerpc) -+ AC_DEFINE(ppc) -+ CPU_ARCH=ppc - CC=mwcc - CCC=mwcc - LD=mwld - DSO_LDOPTS='-xms -export pragma -init _init_routine_ -term _term_routine_ -lroot -lnet /boot/develop/lib/ppc/glue-noinit.a /boot/develop/lib/ppc/init_term_dyn.o /boot/develop/lib/ppc/start_dyn.o' - _OPTIMIZE_FLAGS=-O2 - _DEBUG_FLAGS='-g -O0' - ;; - esac -@@ -2090,17 +2108,17 @@ AC_ARG_ENABLE(nspr-threads, - [ --enable-nspr-threads Build using classic nspr threads], - [ if test "$enableval" = "yes"; then - USE_PTHREADS= - USE_USER_PTHREADS= - USE_NSPR_THREADS=1 - fi]) - - case "$target" in --*-beos*) -+*-beos*|*-haiku*) - AC_ARG_WITH(bthreads, - [ --with-bthreads Use system bthreads library as thread subsystem (BeOS only)], - [ if test "$withval" = "yes"; then - USE_BTHREADS=1 - USE_USER_PTHREADS= - USE_PTHREADS= - fi]) - ;; -Index: mozilla/directory/c-sdk/config/autoconf/config.guess -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/config/autoconf/config.guess,v -retrieving revision 5.0.2.2 -diff -u -8 -p -w -r5.0.2.2 config.guess ---- mozilla/directory/c-sdk/config/autoconf/config.guess 18 Apr 2003 10:20:22 -0000 5.0.2.2 -+++ mozilla/directory/c-sdk/config/autoconf/config.guess 8 Jul 2009 21:50:37 -0000 -@@ -1,34 +1,37 @@ - #! /bin/sh - # Attempt to guess a canonical system name. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2008-01-08' - - # This file 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Originally written by Per Bothner . - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # - # This script attempts to guess a canonical system name similar to - # config.sub. If it succeeds, it prints the system name on stdout, and - # exits with 0. Otherwise, it exits with 1. - # -@@ -48,34 +51,34 @@ Operation modes: - -v, --version print version number, then exit - - Report bugs and patches to ." - - version="\ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) -@@ -99,35 +102,36 @@ trap 'exit 1' 1 2 15 - # use `HOST_CC' if defined, but it is deprecated. - - # Portable tmp directory creation inspired by the Autoconf team. - - set_cc_for_build=' - trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; - trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; - : ${TMPDIR=/tmp} ; -- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || -+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || -+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; - dummy=$tmp/dummy ; - tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; - case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; --esac ;' -+esac ; set_cc_for_build= ;' - - # This is needed to find uname on a Pyramid OSx when run in the BSD universe. - # (ghazi@noc.rutgers.edu 1994-08-24) - if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH - fi - - UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -@@ -152,16 +156,17 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; -+ sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ -@@ -190,60 +195,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" -- exit 0 ;; -- amiga:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- arc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- hp300:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mac68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- macppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme88k:OpenBSD:*:*) -- echo m88k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvmeppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- pmax:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sgi:OpenBSD:*:*) -- echo mipseb-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sun3:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- wgrisc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:OpenBSD:*:*) -- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` -+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} -+ exit ;; -+ *:ekkoBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} -+ exit ;; -+ *:SolidBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} -+ exit ;; -+ macppc:MirBSD:*:*) -+ echo powerpc-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; -+ *:MirBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; - alpha:OSF1:*:*) -- if test $UNAME_RELEASE = "V4.0"; then -+ case $UNAME_RELEASE in -+ *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` -- fi -+ ;; -+ *5.*) -+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -+ ;; -+ esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; -@@ -271,147 +258,163 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac -+ # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. -- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -- exit 0 ;; -+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -+ exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix -- exit 0 ;; -+ exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 -- exit 0 ;; -+ exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 -- exit 0;; -+ exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos -- exit 0 ;; -+ exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos -- exit 0 ;; -+ exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition -- exit 0 ;; -+ exit ;; -+ *:z/VM:*:*) -+ echo s390-ibm-zvmoe -+ exit ;; -+ *:OS400:*:*) -+ echo powerpc-ibm-os400 -+ exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} -- exit 0;; -+ exit ;; -+ arm:riscos:*:*|arm:RISCOS:*:*) -+ echo arm-unknown-riscos -+ exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp -- exit 0;; -+ exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi -- exit 0 ;; -+ exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 -- exit 0 ;; -- DRS?6000:UNIX_SV:4.2*:7*) -+ exit ;; -+ DRS?6000:unix:4.0:6*) -+ echo sparc-icl-nx6 -+ exit ;; -+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in -- sparc) echo sparc-icl-nx7 && exit 0 ;; -+ sparc) echo sparc-icl-nx7; exit ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -- i86pc:SunOS:5.*:*) -+ exit ;; -+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` -- exit 0 ;; -+ exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac -- exit 0 ;; -+ exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ m68k:machten:*:*) -+ echo m68k-apple-machten${UNAME_RELEASE} -+ exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 -- exit 0 ;; -+ exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #ifdef __cplusplus - #include /* for printf() prototype */ - int main (int argc, char *argv[]) { - #else - int main (argc, argv) int argc; char *argv[]; { -@@ -425,145 +428,150 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c \ -- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ -- && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && -+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && -+ SYSTEM_NAME=`$dummy $dummyarg` && -+ { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax -- exit 0 ;; -+ exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix -- exit 0 ;; -+ exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 -- exit 0 ;; -+ exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 -- exit 0 ;; -+ exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 -- exit 0 ;; -+ exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 -- exit 0 ;; -+ exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd -- exit 0 ;; -+ exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` -- exit 0 ;; -+ exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' -+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix -- exit 0 ;; -+ exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` -+ then -+ echo "$SYSTEM_NAME" -+ else - echo rs6000-ibm-aix3.2.5 -+ fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi -- exit 0 ;; -- *:AIX:*:[45]) -+ exit ;; -+ *:AIX:*:[456]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix -- exit 0 ;; -+ exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 -- exit 0 ;; -+ exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to -- exit 0 ;; # report: romp-ibm BSD 4.3 -+ exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx -- exit 0 ;; -+ exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 -- exit 0 ;; -+ exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd -- exit 0 ;; -+ exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 -- exit 0 ;; -+ exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` -@@ -615,31 +623,41 @@ EOF - } - EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then -- # avoid double evaluation of $set_cc_for_build -- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build -- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null -+ eval $set_cc_for_build -+ -+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating -+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler -+ # generating 64-bit code. GNU and HP use different nomenclature: -+ # -+ # $ CC_FOR_BUILD=cc ./config.guess -+ # => hppa2.0w-hp-hpux11.23 -+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess -+ # => hppa64-hp-hpux11.23 -+ -+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | -+ grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); -@@ -657,181 +675,224 @@ EOF - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 -- exit 0 ;; -+ exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd -- exit 0 ;; -+ exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd -- exit 0 ;; -+ exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix -- exit 0 ;; -+ exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf -- exit 0 ;; -+ exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf -- exit 0 ;; -+ exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi -- exit 0 ;; -+ exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites -- exit 0 ;; -+ exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - *:UNICOS/mp:*:*) -- echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -+ exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -- exit 0 ;; -+ exit ;; -+ 5000:UNIX_System_V:4.*:*) -+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -+ exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:FreeBSD:*:*) -- # Determine whether the default compiler uses glibc. -- eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -- #include -- #if __GLIBC__ >= 2 -- LIBC=gnu -- #else -- LIBC= -- #endif --EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} -- exit 0 ;; -+ case ${UNAME_MACHINE} in -+ pc98) -+ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ amd64) -+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ *) -+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ esac -+ exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin -- exit 0 ;; -- i*:MINGW*:*) -+ exit ;; -+ *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 -- exit 0 ;; --#### MozillaHack --# Netscape's hacked uname -- xx:WINNT:* | xx:WIN95:*) -- echo i586-pc-msvc -- exit 0 ;; --### End MozillaHack -+ exit ;; -+ i*:windows32*:*) -+ # uname -m includes "-pc" on this system. -+ echo ${UNAME_MACHINE}-mingw32 -+ exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 -- exit 0 ;; -- x86:Interix*:3*) -- echo i586-pc-interix3 -- exit 0 ;; -+ exit ;; -+ *:Interix*:[3456]*) -+ case ${UNAME_MACHINE} in -+ x86) -+ echo i586-pc-interix${UNAME_RELEASE} -+ exit ;; -+ EM64T | authenticamd) -+ echo x86_64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ IA64) -+ echo ia64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks -- exit 0 ;; -+ exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix -- exit 0 ;; -+ exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin -- exit 0 ;; -+ exit ;; -+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) -+ echo x86_64-unknown-cygwin -+ exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin -- exit 0 ;; -+ exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - *:GNU:*:*) -+ # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` -- exit 0 ;; -+ exit ;; -+ *:GNU/*:*:*) -+ # other systems with GNU libc and userland -+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu -+ exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix -- exit 0 ;; -+ exit ;; - arm*:Linux:*:*) -+ eval $set_cc_for_build -+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ -+ | grep -q __ARM_EABI__ -+ then - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ else -+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ fi -+ exit ;; -+ avr32*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; -+ cris:Linux:*:*) -+ echo cris-axis-linux-gnu -+ exit ;; -+ crisv32:Linux:*:*) -+ echo crisv32-axis-linux-gnu -+ exit ;; -+ frv:Linux:*:*) -+ echo frv-unknown-linux-gnu -+ exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ m32r*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) -@@ -839,62 +900,78 @@ EOF - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; -+ or32:Linux:*:*) -+ echo or32-unknown-linux-gnu -+ exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -- exit 0 ;; -+ exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac -- exit 0 ;; -+ exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux -- exit 0 ;; -+ exit ;; -+ sh64*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ vax:Linux:*:*) -+ echo ${UNAME_MACHINE}-dec-linux-gnu -+ exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ xtensa*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g -@@ -902,99 +979,113 @@ EOF - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" -- exit 0 ;; -+ exit ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" -- exit 0 ;; -+ exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" -- exit 0 ;; -+ exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else -- #ifdef __INTEL_COMPILER -+ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif -+ #ifdef __dietlibc__ -+ LIBC=dietlibc -+ #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 -- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^LIBC/{ -+ s: ::g -+ p -+ }'`" -+ test x"${LIBC}" != x && { -+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" -+ exit -+ } -+ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 -- exit 0 ;; -+ exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx -- exit 0 ;; -+ exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop -- exit 0 ;; -+ exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos -- exit 0 ;; -+ exit ;; -+ i*86:syllable:*:*) -+ echo ${UNAME_MACHINE}-pc-syllable -+ exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi -- exit 0 ;; -- i*86:*:5:[78]*) -+ exit ;; -+ i*86:*:5:[678]*) -+ # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ -@@ -1002,214 +1093,248 @@ EOF - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi -- exit 0 ;; -+ exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 -- exit 0 ;; -+ exit ;; - paragon:*:*:*) - echo i860-intel-osf1 -- exit 0 ;; -+ exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi -- exit 0 ;; -+ exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv -- exit 0 ;; -+ exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv -- exit 0 ;; -+ exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix -- exit 0 ;; -- M68*:*:R3V[567]*:*) -- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; -- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0) -+ exit ;; -+ M68*:*:R3V[5678]*:*) -+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; -+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4.3${OS_REL} && exit 0 -+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4 && exit 0 ;; -+ && { echo i486-ncr-sysv4; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 -- exit 0 ;; -+ exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi -- exit 0 ;; -+ exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 -- exit 0 ;; --#### MozillaHack -- *:*OpenVMS*:*:*) -- case "${UNAME_SYSTEM}" in -- POSIX_for_OpenVMS_AXP) echo alpha-dec-openvmsposix ;; -- POSIX_for_OpenVMS_VAX) echo vax-dec-openvmsposix ;; -- OpenVMS) echo alpha-dec-openvms ;; -- *) echo unknown-dec-openvms ;; -- esac -- exit 0 ;; --#### End MozillaHack -+ exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 -- exit 0 ;; -+ exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 -- exit 0 ;; -+ exit ;; -+ i*86:VOS:*:*) -+ # From Paul.Green@stratus.com. -+ echo ${UNAME_MACHINE}-stratus-vos -+ exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos -- exit 0 ;; -+ exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 -- exit 0 ;; -+ exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos -- exit 0 ;; -+ exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos -- exit 0 ;; -+ exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos -- exit 0 ;; -+ 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 0 ;; -+ exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ SX-7:SUPER-UX:*:*) -+ echo sx7-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8:SUPER-UX:*:*) -+ echo sx8-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8R:SUPER-UX:*:*) -+ echo sx8r-nec-superux${UNAME_RELEASE} -+ exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Darwin:*:*) -- case `uname -p` in -- *86) UNAME_PROCESSOR=i686 ;; -- powerpc) UNAME_PROCESSOR=powerpc ;; -+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown -+ case $UNAME_PROCESSOR in -+ unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:QNX:*:4*) - echo i386-pc-qnx -- exit 0 ;; -- NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) -+ exit ;; -+ NSE-?:NONSTOP_KERNEL:*:*) -+ echo nse-tandem-nsk${UNAME_RELEASE} -+ exit ;; -+ NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux -- exit 0 ;; -+ exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv -- exit 0 ;; -+ exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 -- exit 0 ;; -+ exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 -- exit 0 ;; -+ exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex -- exit 0 ;; -+ exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 -- exit 0 ;; -+ exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 -- exit 0 ;; -+ exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 -- exit 0 ;; -+ exit ;; - *:ITS:*:*) - echo pdp10-unknown-its -- exit 0 ;; -+ exit ;; -+ SEI:*:*:SEIUX) -+ echo mips-sei-seiux${UNAME_RELEASE} -+ exit ;; -+ *:DragonFly:*:*) -+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` -+ exit ;; -+ *:*VMS:*:*) -+ UNAME_MACHINE=`(uname -p) 2>/dev/null` -+ case "${UNAME_MACHINE}" in -+ A*) echo alpha-dec-vms ; exit ;; -+ I*) echo ia64-dec-vms ; exit ;; -+ V*) echo vax-dec-vms ; exit ;; -+ esac ;; -+ *:XENIX:*:SysV) -+ echo i386-pc-xenix -+ exit ;; -+ i*86:skyos:*:*) -+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' -+ exit ;; -+ i*86:rdos:*:*) -+ echo ${UNAME_MACHINE}-pc-rdos -+ exit ;; - esac - - #echo '(No uname command or uname output not recognized.)' 1>&2 - #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - - eval $set_cc_for_build - cat >$dummy.c </dev/null && $dummy && exit 0 -+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - - # Apollos put the system type in the environment. - --test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } -+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - - # Convex versions that predate uname can use getsysinfo(1) - - if [ -x /usr/convex/getsysinfo ] - then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - c34*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - c38*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - c4*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - esac - fi - - cat >&2 < in order to provide the needed - information to handle your system. - - config.guess timestamp = $timestamp - -Index: mozilla/directory/c-sdk/config/autoconf/config.sub -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/config/autoconf/config.sub,v -retrieving revision 5.0.2.3 -diff -u -8 -p -w -r5.0.2.3 config.sub ---- mozilla/directory/c-sdk/config/autoconf/config.sub 18 Apr 2003 10:20:22 -0000 5.0.2.3 -+++ mozilla/directory/c-sdk/config/autoconf/config.sub 8 Jul 2009 21:50:40 -0000 -@@ -1,14 +1,15 @@ - #! /bin/sh - # Configuration validation subroutine script. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2008-01-16' - - # This file is (in principle) common to ALL GNU software. - # The presence of a machine in this file suggests that SOME GNU software - # can handle that machine. It does not imply ALL GNU software can. - # - # This file 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 -@@ -16,24 +17,25 @@ timestamp='2003-02-22' - # - # 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., 59 Temple Place - Suite 330, --# Boston, MA 02111-1307, USA. -- -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. -+# - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # - # Configuration subroutine to validate and canonicalize a configuration type. - # Supply the specified configuration type as an argument. - # If it is invalid, we print an error message on stderr and exit with code 1. - # Otherwise, we print the canonical config type on stdout and succeed. - -@@ -65,46 +67,46 @@ Operation modes: - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - - Report bugs and patches to ." - - version="\ - GNU config.sub ($timestamp) - --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 -- exit 0;; -+ exit ;; - - * ) - break ;; - esac - done - - case $# in - 0) echo "$me: missing argument$help" >&2 -@@ -113,17 +115,19 @@ case $# in - *) echo "$me: too many arguments$help" >&2 - exit 1;; - esac - - # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). - # Here we must recognize all the valid KERNEL-OS combinations. - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` - case $maybe_os in -- nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) -+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ -+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ -+ storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi -@@ -139,17 +143,17 @@ case $os in - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -- -apple | -axis) -+ -apple | -axis | -knuth | -cray) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) -@@ -164,32 +168,40 @@ case $os in - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; -+ -sco6) -+ os=-sco5v6 -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; -+ -sco5v6*) -+ # Don't forget version if it is 3.2v4 or newer. -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) -@@ -219,171 +231,196 @@ case $os in - os=-mint - ;; - esac - - # Decode aliases for certain CPU-COMPANY combinations. - case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. --#### MozillaHack --# mips*el --#### End MozillaHack - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ -- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ -- | clipper \ -+ | am33_2.0 \ -+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ -+ | bfin \ -+ | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ -- | fr30 | frv \ -+ | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ -- | ip2k \ -- | m32r | m68000 | m68k | m88k | mcore \ -- | mips | mipsbe | mipseb | mips*el | mipsle \ -+ | ip2k | iq2000 \ -+ | m32c | m32r | m32rle | m68000 | m68k | m88k \ -+ | maxq | mb | microblaze | mcore | mep \ -+ | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64vr | mips64vrel \ - | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ -+ | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ -+ | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ -+ | mt \ - | msp430 \ -+ | nios | nios2 \ - | ns16k | ns32k \ -- | openrisc | or32 \ -+ | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ -- | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ -+ | score \ -+ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ -- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ -- | strongarm \ -- | tahoe | thumb | tic80 | tron \ -+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ -+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ -+ | spu | strongarm \ -+ | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ -- | x86 | xscale | xstormy16 | xtensa \ -+ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; -+ ms1) -+ basic_machine=mt-unknown -+ ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. --#### MozillaHack --# mips*el --#### End MozillaHack - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ -- | avr-* \ -- | bs2000-* \ -+ | avr-* | avr32-* \ -+ | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ -- | clipper-* | cydra-* \ -+ | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ -- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ -+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ -- | ip2k-* \ -- | m32r-* \ -+ | ip2k-* | iq2000-* \ -+ | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -- | m88110-* | m88k-* | mcore-* \ -- | mips-* | mipsbe-* | mipseb-* | mips*el-* | mipsle-* \ -+ | m88110-* | m88k-* | maxq-* | mcore-* \ -+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ -+ | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ -+ | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ -+ | mmix-* \ -+ | mt-* \ - | msp430-* \ -- | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ -+ | nios-* | nios2-* \ -+ | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ -- | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ -+ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ -- | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ -- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ -+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ -+ | sparclite-* \ -+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ -- | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ -- | xtensa-* \ -+ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ -+ | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-*) - ;; -+ # Recognize the basic CPU types without company name, with glob match. -+ xtensa*) -+ basic_machine=$basic_machine-unknown -+ ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; -+ abacus) -+ basic_machine=abacus-unknown -+ ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; -+ amd64) -+ basic_machine=x86_64-pc -+ ;; -+ amd64-*) -+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) -@@ -405,16 +442,24 @@ case $basic_machine in - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; -+ blackfin) -+ basic_machine=bfin-unknown -+ os=-linux -+ ;; -+ blackfin-*) -+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; -@@ -433,22 +478,37 @@ case $basic_machine in - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; -+ craynv) -+ basic_machine=craynv-cray -+ os=-unicosmp -+ ;; -+ cr16) -+ basic_machine=cr16-unknown -+ os=-elf -+ ;; - crds | unos) - basic_machine=m68k-crds - ;; -+ crisv32 | crisv32-* | etraxfs*) -+ basic_machine=crisv32-axis -+ ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; -+ crx) -+ basic_machine=crx-unknown -+ os=-elf -+ ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec -@@ -461,16 +521,20 @@ case $basic_machine in - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; -+ djgpp) -+ basic_machine=i586-pc -+ os=-msdosdjgpp -+ ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; -@@ -611,66 +675,71 @@ case $basic_machine in - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; -+ m68knommu) -+ basic_machine=m68k-unknown -+ os=-linux -+ ;; -+ m68knommu-*) -+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; --#### MozillaHack -- i386-msvc | msvc) -- basic_machine=i386-pc -- os=-msvc -+ mingw32ce) -+ basic_machine=arm-unknown -+ os=-mingw32ce - ;; --#### End MozillaHack - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; -- mmix*) -- basic_machine=mmix-knuth -- os=-mmixware -- ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; -+ ms1-*) -+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` -+ ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; -@@ -729,30 +798,29 @@ case $basic_machine in - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; -- nv1) -- basic_machine=nv1-cray -- os=-unicosmp -- ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; -- or32 | or32-*) -+ openrisc | openrisc-*) - basic_machine=or32-unknown -- os=-coff -+ ;; -+ os400) -+ basic_machine=powerpc-ibm -+ os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k -@@ -760,43 +828,63 @@ case $basic_machine in - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; -+ parisc) -+ basic_machine=hppa-unknown -+ os=-linux -+ ;; -+ parisc-*) -+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; -+ pc98) -+ basic_machine=i386-pc -+ ;; -+ pc98-*) -+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; -- pentiumii | pentium2) -+ pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; -+ pentium4) -+ basic_machine=i786-pc -+ ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -- pentiumii-* | pentium2-*) -+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -+ pentium4-*) -+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` -@@ -819,16 +907,20 @@ case $basic_machine in - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; -+ rdos) -+ basic_machine=i386-pc -+ os=-rdos -+ ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) -@@ -845,23 +937,37 @@ case $basic_machine in - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; -+ sde) -+ basic_machine=mipsisa32-sde -+ os=-elf -+ ;; -+ sei) -+ basic_machine=mips-sei -+ os=-seiux -+ ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; -+ sh5el) -+ basic_machine=sh5le-unknown -+ ;; -+ sh64) -+ basic_machine=sh64-unknown -+ ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; -@@ -926,45 +1032,49 @@ case $basic_machine in - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; -- tic4x | c4x*) -- basic_machine=tic4x-unknown -- os=-coff -- ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; -+ tile*) -+ basic_machine=tile-unknown -+ os=-linux-gnu -+ ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; -+ tpf) -+ basic_machine=s390x-ibm -+ os=-tpf -+ ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; -@@ -998,16 +1108,20 @@ case $basic_machine in - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; -+ xbox) -+ basic_machine=i686-pc -+ os=-mingw32 -+ ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) -@@ -1028,39 +1142,39 @@ case $basic_machine in - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; -+ mmix) -+ basic_machine=mmix-knuth -+ ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; -- sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) -+ sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; -- sh64) -- basic_machine=sh64-unknown -- ;; -- sparc | sparcv9 | sparcv9b) -+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; -@@ -1116,40 +1230,40 @@ case $os in - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. --#### MozillaHack --# msvc --#### End MozillaHack - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ -- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ -- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ -+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ -+ | -openbsd* | -solidbsd* \ -+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ -+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ -+ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ -+ | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ -- | -msvc* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ -- | -powermax* | -dnix*) -+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ -+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os -@@ -1157,34 +1271,40 @@ case $os in - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ -- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ -+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; -+ -linux-dietlibc) -+ os=-linux-dietlibc -+ ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; -+ -os400*) -+ os=-os400 -+ ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf -@@ -1196,16 +1316,19 @@ case $os in - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; -+ -syllable*) -+ os=-syllable -+ ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova -@@ -1218,16 +1341,19 @@ case $os in - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; -+ -tpf*) -+ os=-tpf -+ ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 -@@ -1254,16 +1380,19 @@ case $os in - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; -+ -zvmoe) -+ os=-zvmoe -+ ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -@@ -1276,25 +1405,34 @@ else - - # Note that if you're going to try to match "-MANUFACTURER" here (say, - # "-sun"), then you have to tell the case statement up towards the top - # that MANUFACTURER isn't an operating system. Otherwise, code above - # will signal an error saying that MANUFACTURER isn't an operating - # system, and we'll never get to this point. - - case $basic_machine in -+ score-*) -+ os=-elf -+ ;; -+ spu-*) -+ os=-elf -+ ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; -+ c4x-* | tic4x-*) -+ os=-coff -+ ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) -@@ -1310,16 +1448,19 @@ case $basic_machine in - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; -+ mep-*) -+ os=-elf -+ ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff -@@ -1328,19 +1469,25 @@ case $basic_machine in - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; -+ *-haiku) -+ os=-haiku -+ ;; - *-ibm) - os=-aix - ;; -+ *-knuth) -+ os=-mmixware -+ ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf -@@ -1463,19 +1610,25 @@ case $basic_machine in - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; -+ -os400*) -+ vendor=ibm -+ ;; - -ptx*) - vendor=sequent - ;; -+ -tpf*) -+ vendor=ibm -+ ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi -@@ -1490,16 +1643,16 @@ case $basic_machine in - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; - esac - - echo $basic_machine$os --exit 0 -+exit - - # Local variables: - # eval: (add-hook 'write-file-hooks 'time-stamp) - # time-stamp-start: "timestamp='" - # time-stamp-format: "%:y-%02m-%02d" - # time-stamp-end: "'" - # End: -Index: mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.in,v -retrieving revision 5.0.2.21.4.1 -diff -u -8 -p -w -r5.0.2.21.4.1 Makefile.in ---- mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.in 3 Feb 2006 14:44:42 -0000 5.0.2.21.4.1 -+++ mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.in 8 Jul 2009 21:50:42 -0000 -@@ -232,17 +232,17 @@ ifeq ($(OS_ARCH), Darwin) - EXTRA_LIBS = -L$(dist_libdir) -l$(LBER_LIBNAME) - endif - - ifeq ($(OS_ARCH), OpenVMS) - EXTRA_LIBS = -L$(dist_libdir) -l$(LBER_LIBNAME) $(OS_LIBS) - SHARED_LIBRARY_LIBS = $(dist_libdir)/lib$(LBER_LIBNAME).a - endif - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_LIBS = -L$(dist_libdir) -l$(LBER_LIBNAME) -lbe - endif - - ifeq ($(OS_ARCH), NetBSD) - EXTRA_LIBS = -L$(dist_libdir) -l$(LBER_LIBNAME) - endif - - ifeq ($(OS_ARCH), OpenBSD) -@@ -297,17 +297,17 @@ ltest:: $(LIBLDAP) test.o - $(LIBDIR): - $(MKDIR) $(LIBDIR) - - $(LIBLDAP): $(OBJS) $(LIBDIR) $(LDAP_EXPORT_DEFS) - @echo ======= making $(LIBLDAP) - ifdef SO_FILES_TO_REMOVE - -$(RM) $(SO_FILES_TO_REMOVE) - endif --ifneq (,$(filter AIX Linux HP-UX Darwin BeOS QNX NetBSD OSF1 OpenBSD, $(OS_ARCH))) -+ifneq (,$(filter AIX Linux HP-UX Darwin BeOS Haiku QNX NetBSD OSF1 OpenBSD, $(OS_ARCH))) - $(LINK_LIB) ../liblber/$(OBJDIR_NAME)/*.a - else - ifeq ($(OS_ARCH),OS2) - # create import library for OS/2 - rm -f $@ - $(IMPLIB) $@ $(LDAP_EXPORT_DEFS) - else - $(LINK_LIB) $(EXTRA_LIBS) -@@ -336,15 +336,19 @@ ifeq ($(LD),link) - EXPDEPS2 = $(DLLLDAP) - endif - endif - - export:: $(EXPDEPS2) - ifdef MKSHLIB - $(INSTALL) -m 444 $(LIBLDAP) $(dist_libdir) - $(INSTALL) -m 444 $(DLLLDAP) $(dist_libdir) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 444 $(DLLLDAP) $(dist_bindir)/lib -+else - $(INSTALL) -m 444 $(DLLLDAP) $(dist_bindir) - endif -+endif - ifeq ($(OS_ARCH), WINNT) - $(INSTALL) -m 444 $(LIBLDAP) $(dist_libdir) - $(INSTALL) -m 444 $(DLLLDAP) $(dist_libdir) - endif - $(INSTALL) -m 444 $(ETCFILES) $(ETCDIR) -Index: mozilla/directory/c-sdk/ldap/libraries/libprldap/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/ldap/libraries/libprldap/Makefile.in,v -retrieving revision 5.0.2.18.4.1 -diff -u -8 -p -w -r5.0.2.18.4.1 Makefile.in ---- mozilla/directory/c-sdk/ldap/libraries/libprldap/Makefile.in 3 Feb 2006 14:44:49 -0000 5.0.2.18.4.1 -+++ mozilla/directory/c-sdk/ldap/libraries/libprldap/Makefile.in 8 Jul 2009 21:50:43 -0000 -@@ -160,17 +160,18 @@ EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_L - EXTRA_LIBS += -L$(dist_libdir) $(DYNAMICNSPR) - endif - - ifeq ($(OS_ARCH), OpenVMS) - EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) - EXTRA_LIBS += -L$(dist_libdir) $(DYNAMICNSPR) - endif - --ifeq ($(OS_ARCH), BeOS) -+ -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) - EXTRA_LIBS += -L$(dist_libdir) $(DYNAMICNSPR) - endif - - OBJDEST = $(OBJDIR_NAME) - - ########################################################################### - -@@ -250,10 +251,14 @@ ifeq ($(OS_ARCH), WINNT) - $(INSTALL) -m 555 $(LIBPRLDAP) $(dist_libdir) - $(INSTALL) -m 555 $(DLLPRLDAP) $(dist_libdir) - endif - ifeq ($(OS_ARCH),OS2) - $(INSTALL) -m 444 $(LIBPRLDAP) $(dist_libdir) - endif - ifdef MKSHLIB - $(INSTALL) -m 555 $(DLLPRLDAP) $(dist_libdir) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 444 $(DLLPRLDAP) $(dist_bindir)/lib -+else - $(INSTALL) -m 444 $(DLLPRLDAP) $(dist_bindir) - endif -+endif -Index: mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/ldap/libraries/libssldap/Attic/Makefile,v -retrieving revision 5.0.2.8 -diff -u -8 -p -w -r5.0.2.8 Makefile ---- mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile 25 Aug 2004 23:02:30 -0000 5.0.2.8 -+++ mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile 8 Jul 2009 21:50:43 -0000 -@@ -162,17 +162,17 @@ EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_L - ifeq ($(NSS_DYNAMIC_SOFTOKN),1) - EXTRA_LIBS += -l$(SOFTOKN_LIBNAME) - endif - EXTRA_LIBS += -l$(SSL_LIBNAME) -l$(NSS_LIBNAME) - EXTRA_LIBS += $(DYNAMICNSPR) - EXTRA_LIBS += $(OS_LIBS) - endif - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) -l$(PRLDAP_LIBNAME) - ifeq ($(NSS_DYNAMIC_SOFTOKN),1) - EXTRA_LIBS += -l$(SOFTOKN_LIBNAME) - endif - EXTRA_LIBS += -l$(SSL_LIBNAME) -l$(NSS_LIBNAME) - EXTRA_LIBS += $(DYNAMICNSPR) - EXTRA_LIBS += $(OS_LIBS) - endif -Index: mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile.in,v -retrieving revision 5.0.2.9.4.1 -diff -u -8 -p -w -r5.0.2.9.4.1 Makefile.in ---- mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile.in 3 Feb 2006 14:44:49 -0000 5.0.2.9.4.1 -+++ mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile.in 8 Jul 2009 21:50:44 -0000 -@@ -177,17 +177,17 @@ EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_L - ifeq ($(NSS_DYNAMIC_SOFTOKN),1) - EXTRA_LIBS += -l$(SOFTOKN_LIBNAME) - endif - EXTRA_LIBS += -l$(SSL_LIBNAME) -l$(NSS_LIBNAME) - EXTRA_LIBS += $(DYNAMICNSPR) - EXTRA_LIBS += $(OS_LIBS) - endif - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) -l$(PRLDAP_LIBNAME) - ifeq ($(NSS_DYNAMIC_SOFTOKN),1) - EXTRA_LIBS += -l$(SOFTOKN_LIBNAME) - endif - EXTRA_LIBS += -l$(SSL_LIBNAME) -l$(NSS_LIBNAME) - EXTRA_LIBS += $(DYNAMICNSPR) - EXTRA_LIBS += $(OS_LIBS) - endif -Index: mozilla/embedding/componentlib/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/embedding/componentlib/Makefile.in,v -retrieving revision 1.3 -diff -u -8 -p -w -r1.3 Makefile.in ---- mozilla/embedding/componentlib/Makefile.in 18 Apr 2004 22:00:41 -0000 1.3 -+++ mozilla/embedding/componentlib/Makefile.in 8 Jul 2009 21:50:58 -0000 -@@ -147,17 +147,17 @@ OS_LIBS := -lstdc++ $(OS_LIBS) - SHLIB_LDENDFILE = -lgcc - - endif # darwin - - ifeq ($(OS_ARCH),WINNT) - OS_LIBS += ole32.lib shell32.lib - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - OS_LIBS += -ltracker - endif - - GARBAGE += $(CPPSRCS) - - ifdef _NO_AUTO_VARS - _TARGET = $(srcdir)/$(@F) - GARBAGE += $(addprefix $(srcdir)/,$(CPPSRCS)) -Index: mozilla/gfx/src/beos/nsFontMetricsBeOS.cpp -=================================================================== -RCS file: /cvsroot/mozilla/gfx/src/beos/nsFontMetricsBeOS.cpp,v -retrieving revision 1.40.12.5 -diff -u -8 -p -w -r1.40.12.5 nsFontMetricsBeOS.cpp ---- mozilla/gfx/src/beos/nsFontMetricsBeOS.cpp 27 Sep 2007 21:36:00 -0000 1.40.12.5 -+++ mozilla/gfx/src/beos/nsFontMetricsBeOS.cpp 8 Jul 2009 21:51:31 -0000 -@@ -123,22 +123,22 @@ NS_IMETHODIMP nsFontMetricsBeOS::Init(co - nsString *fam = param.family.StringAt(i); - PRBool isgeneric = ( param.isgeneric[i] ) ? PR_TRUE: PR_FALSE; - NS_ConvertUTF16toUTF8 family(*fam); - // Fallback - isfixed = family.Equals("monospace") || family.Equals("fixed"); - if (!isgeneric) - { - // non-generic font -- if (count_font_styles((font_family)family.get()) <= 0) -+ if (count_font_styles((char *) family.get()) <= 0) - { - // the specified font does not exist on this computer. - continue; - } -- mFontHandle.SetFamilyAndStyle( (font_family)family.get(), NULL ); -+ mFontHandle.SetFamilyAndStyle( (char *)family.get(), NULL ); - fontfound = PR_TRUE; - break; - } - else - { - // family is generic string like - // "serif" "sans-serif" "cursive" "fantasy" "monospace" "-moz-fixed" - // so look up preferences and get real family name -@@ -153,19 +153,19 @@ NS_IMETHODIMP nsFontMetricsBeOS::Init(co - //NS_WITH_SERVICE( nsIPref, prefs, kPrefCID, &res ); - nsCOMPtr prefs = do_GetService( NS_PREFSERVICE_CONTRACTID, &res ); - if (NS_SUCCEEDED(res)) - { - nsCOMPtr branch; - prefs->GetBranch("font.name.", getter_AddRefs(branch)); - branch->GetCharPref(prop, getter_Copies(real_family)); - -- if (!real_family.IsEmpty() && real_family.Length() <= B_FONT_FAMILY_LENGTH && count_font_styles((font_family)real_family.get()) > 0) -+ if (!real_family.IsEmpty() && real_family.Length() <= B_FONT_FAMILY_LENGTH && count_font_styles((char *)real_family.get()) > 0) - { -- mFontHandle.SetFamilyAndStyle( (font_family)real_family.get(), NULL ); -+ mFontHandle.SetFamilyAndStyle( (char *)real_family.get(), NULL ); - fontfound = PR_TRUE; - break; - } - } - // not successful. use system font. - if (isfixed) - mFontHandle = BFont(be_fixed_font); - else -@@ -409,18 +409,18 @@ NS_IMETHODIMP nsFontMetricsBeOS::GetFon - aHandle = (nsFontHandle)&mFontHandle; - return NS_OK; - } - - nsresult - nsFontMetricsBeOS::FamilyExists(const nsString& aName) - { - NS_ConvertUTF16toUTF8 family(aName); -- printf("exists? %s", (font_family)family.get()); -- return (count_font_styles((font_family)family.get()) > 0) ? NS_OK : NS_ERROR_FAILURE; -+ printf("exists? %s", (char *)family.get()); -+ return (count_font_styles((char *)family.get()) > 0) ? NS_OK : NS_ERROR_FAILURE; - } - - // useful UTF-8 utility - inline uint32 utf8_char_len(uchar byte) - { - return (((0xE5000000 >> ((byte >> 3) & 0x1E)) & 3) + 1); - } - -Index: mozilla/gfx/src/beos/nsRenderingContextBeOS.cpp -=================================================================== -RCS file: /cvsroot/mozilla/gfx/src/beos/nsRenderingContextBeOS.cpp,v -retrieving revision 1.51.12.8 -diff -u -8 -p -w -r1.51.12.8 nsRenderingContextBeOS.cpp ---- mozilla/gfx/src/beos/nsRenderingContextBeOS.cpp 18 Dec 2007 07:17:21 -0000 1.51.12.8 -+++ mozilla/gfx/src/beos/nsRenderingContextBeOS.cpp 8 Jul 2009 21:51:35 -0000 -@@ -346,18 +346,21 @@ bool nsRenderingContextBeOS::LockAndUpda - - // Intelligent lock - if (mSurface->LockDrawable()) - { - // if BFont wasn't set already - if (mCurrentBFont == nsnull) - { - if (mFontMetrics) -- mFontMetrics->GetFontHandle((nsFontHandle)mCurrentBFont); -- -+ { -+ nsFontHandle fontHandle; -+ mFontMetrics->GetFontHandle(fontHandle); -+ mCurrentBFont = (BFont *) fontHandle; -+ } - if (mCurrentBFont) - mView->SetFont(mCurrentBFont); - else - mView->SetFont(be_plain_font); // fallback - only for single call - } - - if (mClipRegion) - { -@@ -1122,17 +1125,17 @@ NS_IMETHODIMP nsRenderingContextBeOS::Ge - // and call (UTF-8) char* version of the method. - // It works well with current nsFontMetricsBeOS which is, again, simpler in comparison with - // other platforms, partly due to UTF-8 nature of BeOS, partly due unimplemented font fallbacks - // and other tricks. - - NS_IMETHODIMP nsRenderingContextBeOS::GetTextDimensions(const PRUnichar* aString, - PRInt32 aLength, PRInt32 aAvailWidth, PRInt32* aBreaks, PRInt32 aNumBreaks, - nsTextDimensions& aDimensions, PRInt32& aNumCharsFit, nsTextDimensions& aLastWordDimensions, -- PRInt32* aFontID = nsnull) -+ PRInt32* aFontID) - { - nsresult ret_code = NS_ERROR_FAILURE; - uint8 utf8buf[1024]; - uint8* utf8str = nsnull; - // max UTF-8 string length - PRUint32 slength = aLength * 4 + 1; - // Allocating char* array rather from stack than from heap for speed. - // 1024 char array forms e.g. 256 == 32*8 frame for CJK glyphs, which may be -@@ -1155,17 +1158,17 @@ NS_IMETHODIMP nsRenderingContextBeOS::Ge - // deallocating if got from heap - if (utf8str != utf8buf) - delete [] utf8str; - return ret_code; - } - - NS_IMETHODIMP nsRenderingContextBeOS::GetTextDimensions(const char* aString, PRInt32 aLength, - PRInt32 aAvailWidth,PRInt32* aBreaks, PRInt32 aNumBreaks, nsTextDimensions& aDimensions, -- PRInt32& aNumCharsFit, nsTextDimensions& aLastWordDimensions, PRInt32* aFontID = nsnull) -+ PRInt32& aNumCharsFit, nsTextDimensions& aLastWordDimensions, PRInt32* aFontID) - { - // Code is borrowed from win32 implementation including comments. - // Minor changes are introduced due multibyte/utf-8 nature of char* strings handling in BeOS. - char * utf8ptr = (char *)aString; - PRInt32 *utf8pos =0; - PRInt32 num_of_glyphs = 0; // Number of glyphs isn't equal to number of bytes in case of UTF-8 - PRInt32 utf8posbuf[1025]; - if (aLength < 1025) -Index: mozilla/intl/uconv/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/intl/uconv/src/Makefile.in,v -retrieving revision 1.82.4.2 -diff -u -8 -p -w -r1.82.4.2 Makefile.in ---- mozilla/intl/uconv/src/Makefile.in 29 Jan 2006 16:51:01 -0000 1.82.4.2 -+++ mozilla/intl/uconv/src/Makefile.in 8 Jul 2009 21:51:42 -0000 -@@ -114,17 +114,17 @@ else - ifeq ($(MOZ_WIDGET_TOOLKIT),windows) - CPPSRCS += nsWinCharset.cpp - EXPORT_RESOURCE += wincharset.properties - else - ifneq (,$(filter cocoa mac, $(MOZ_WIDGET_TOOLKIT))) - CPPSRCS += nsMacCharset.cpp - EXPORT_RESOURCE += maccharset.properties - else --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += nsBeOSCharset.cpp - else - CPPSRCS += nsUNIXCharset.cpp - EXPORT_RESOURCE += unixcharset.properties - # add platform charset remapping properties files here if necessary - # (see unixcharset.sample.properties for an example file) - # eg: if we needed a charset remap for OSARCH=Linux then add the following line: - #EXPORT_RESOURCE += unixcharset.Linux.properties -Index: mozilla/ipc/ipcd/client/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/ipc/ipcd/client/src/Makefile.in,v -retrieving revision 1.7 -diff -u -8 -p -w -r1.7 Makefile.in ---- mozilla/ipc/ipcd/client/src/Makefile.in 9 Dec 2004 19:28:19 -0000 1.7 -+++ mozilla/ipc/ipcd/client/src/Makefile.in 8 Jul 2009 21:51:48 -0000 -@@ -59,17 +59,18 @@ CPPSRCS = \ - ipcdclient.cpp \ - ipcService.cpp \ - ipcModuleFactory.cpp \ - $(NULL) - - ifeq ($(OS_ARCH),WINNT) - CPPSRCS += ipcConnectionWin.cpp - else --ifeq ($(OS_ARCH),BeOS) -+ -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += ipcConnectionStub.cpp - else - CPPSRCS += ipcConnectionUnix.cpp - endif - endif - - LOCAL_INCLUDES = \ - -I$(srcdir)/../../shared/src \ -Index: mozilla/ipc/ipcd/daemon/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/ipc/ipcd/daemon/src/Makefile.in,v -retrieving revision 1.3 -diff -u -8 -p -w -r1.3 Makefile.in ---- mozilla/ipc/ipcd/daemon/src/Makefile.in 28 Jan 2004 21:31:46 -0000 1.3 -+++ mozilla/ipc/ipcd/daemon/src/Makefile.in 8 Jul 2009 21:51:49 -0000 -@@ -54,17 +54,18 @@ CPPSRCS = \ - ipcd.cpp \ - ipcClient.cpp \ - ipcModuleReg.cpp \ - ipcCommandModule.cpp - - ifeq ($(OS_ARCH),WINNT) - CPPSRCS += ipcdWin.cpp - else --ifeq ($(OS_ARCH),BeOS) -+ -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += ipcdStub.cpp - else - CPPSRCS += ipcdUnix.cpp - endif - endif - - PROGRAM = mozilla-ipcd$(BIN_SUFFIX) - -Index: mozilla/js/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/js/src/Makefile.in,v -retrieving revision 3.95.4.5 -diff -u -8 -p -w -r3.95.4.5 Makefile.in ---- mozilla/js/src/Makefile.in 27 Jul 2006 22:56:20 -0000 3.95.4.5 -+++ mozilla/js/src/Makefile.in 8 Jul 2009 21:51:51 -0000 -@@ -241,17 +241,17 @@ ifneq ($(findstring -L,$(NSPR_LIBS)),) - NSPR_STATIC_PATH = $(subst -L,,$(findstring -L,$(NSPR_LIBS))) - else - NSPR_STATIC_PATH = $(DIST)/lib - endif - - LDFLAGS += $(pathsubst -l%,$(NSPR_STATIC_PATH)/%.a,$(NSPR_LIBS)) - - # BeOS and HP-UX do not require the extra linking of "-lm" --ifeq (,$(filter BeOS HP-UX WINNT WINCE OpenVMS,$(OS_ARCH))) -+ifeq (,$(filter BeOS Haiku HP-UX WINNT WINCE OpenVMS,$(OS_ARCH))) - LDFLAGS += -lm - endif - - # Prevent floating point errors caused by VC++ optimizations - ifeq ($(OS_ARCH)_$(GNU_CC),WINNT_) - ifeq (,$(filter-out 1200 1300 1310,$(_MSC_VER))) - CFLAGS += -Op - else -Index: mozilla/mail/app/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/mail/app/Makefile.in,v -retrieving revision 1.46.2.10 -diff -u -8 -p -w -r1.46.2.10 Makefile.in ---- mozilla/mail/app/Makefile.in 22 Oct 2008 21:04:53 -0000 1.46.2.10 -+++ mozilla/mail/app/Makefile.in 8 Jul 2009 21:52:18 -0000 -@@ -57,18 +57,22 @@ PREF_JS_EXPORTS = \ - - ifndef MOZ_BRANDING_DIRECTORY - PREF_JS_EXPORTS += $(srcdir)/thunderbird-branding.js - endif - - ifeq ($(USE_SHORT_LIBNAME), 1) - PROGRAM = thunderbird$(BIN_SUFFIX) - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+PROGRAM = BeZillaMailNews$(BIN_SUFFIX) -+else - PROGRAM = thunderbird-bin$(BIN_SUFFIX) - endif -+endif - - REQUIRES = \ - xpcom \ - $(NULL) - - LOCAL_INCLUDES = -I$(topsrcdir)/toolkit/xre - - CPPSRCS = nsMailApp.cpp -@@ -142,17 +146,20 @@ RCFLAGS += -DMOZ_THUNDERBIRD -I$(srcdir) - else - RCFLAGS += -DMOZ_THUNDERBIRD --include-dir $(srcdir) - endif - ifdef BUILD_STATIC_LIBS - RCFLAGS += -DMOZ_STATIC_BUILD - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ifeq ($(OS_ARCH),Haiku) -+BEOS_PROGRAM_RDEF = $(srcdir)/apprunner-beos.rdef -+endif - BEOS_PROGRAM_RESOURCE = $(srcdir)/apprunner-beos.rsrc - ifdef BUILD_STATIC_LIBS - OS_LIBS += -ltracker -lgame - endif - endif - - ifeq ($(OS_ARCH),OS2) - RESFILE=splashos2.res -@@ -257,17 +264,17 @@ ifneq (,$(filter gtk gtk2,$(MOZ_WIDGET_T - cp $(srcdir)/mozicon16.xpm $(DIST)/branding/mozicon16.xpm - cp $(srcdir)/mozicon50.xpm $(DIST)/branding/mozicon50.xpm - endif - ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2) - cp $(srcdir)/default.xpm $(DIST)/branding/default.xpm - endif - endif - --ifneq (,$(filter-out OS2 WINNT Darwin,$(OS_ARCH))) -+ifneq (,$(filter-out OS2 WINNT Darwin BeOS Haiku,$(OS_ARCH))) - thunderbird:: mozilla.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk - cat $< | sed -e "s|%MOZAPPDIR%|$(mozappdir)|" \ - -e "s|%MOZ_USER_DIR%|.thunderbird|" \ - -e "s|%MREDIR%|$(mredir)|" \ - -e "s|%MOZ_APP_DISPLAYNAME%|$(MOZ_APP_DISPLAYNAME)|" > $@ - chmod +x $@ - - libs:: thunderbird -Index: mozilla/modules/libpr0n/decoders/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/modules/libpr0n/decoders/Makefile.in,v -retrieving revision 1.13.18.2 -diff -u -8 -p -w -r1.13.18.2 Makefile.in ---- mozilla/modules/libpr0n/decoders/Makefile.in 17 Feb 2006 19:03:47 -0000 1.13.18.2 -+++ mozilla/modules/libpr0n/decoders/Makefile.in 8 Jul 2009 21:52:37 -0000 -@@ -47,17 +47,17 @@ ifdef MOZ_ENABLE_GNOMEUI - TOOL_DIRS = icon/gtk icon - endif - ifneq (,$(filter WINCE WINNT,$(OS_ARCH))) - DIRS = icon/win icon - endif - ifeq ($(OS_ARCH),OS2) - DIRS = icon/os2 icon - endif --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - DIRS = icon/beos icon - endif - ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) - DIRS = icon/mac icon - endif - endif # icon - - DIRS += $(filter-out icon,$(MOZ_IMG_DECODERS)) -Index: mozilla/modules/libpr0n/decoders/icon/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/modules/libpr0n/decoders/icon/Makefile.in,v -retrieving revision 1.17.8.6 -diff -u -8 -p -w -r1.17.8.6 Makefile.in ---- mozilla/modules/libpr0n/decoders/icon/Makefile.in 30 May 2006 15:46:21 -0000 1.17.8.6 -+++ mozilla/modules/libpr0n/decoders/icon/Makefile.in 8 Jul 2009 21:52:37 -0000 -@@ -77,17 +77,17 @@ endif - ifeq ($(OS_ARCH),OS2) - PLATFORM = os2 - endif - - ifeq ($(OS_ARCH),Darwin) - PLATFORM = mac - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - PLATFORM = beos - endif - - REQUIRES = xpcom \ - string \ - gfx \ - imglib2 \ - necko \ -@@ -97,17 +97,17 @@ CPPSRCS = \ - nsIconURI.cpp \ - nsIconModule.cpp \ - nsIconProtocolHandler.cpp \ - $(NULL) - - ifdef MOZ_ENABLE_GNOMEUI - USE_ICON_DECODER = 1 - endif --ifeq (,$(filter-out Darwin OS2 BeOS,$(OS_ARCH))) -+ifeq (,$(filter-out Darwin OS2 BeOS Haiku,$(OS_ARCH))) - USE_ICON_DECODER = 1 - endif - - ifdef USE_ICON_DECODER - CPPSRCS += nsIconDecoder.cpp - DEFINES += -DUSE_ICON_DECODER - endif - -Index: mozilla/modules/libreg/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/modules/libreg/src/Makefile.in,v -retrieving revision 1.39 -diff -u -8 -p -w -r1.39 Makefile.in ---- mozilla/modules/libreg/src/Makefile.in 18 Apr 2004 22:00:45 -0000 1.39 -+++ mozilla/modules/libreg/src/Makefile.in 8 Jul 2009 21:52:38 -0000 -@@ -61,17 +61,17 @@ FORCE_STATIC_LIB = 1 - - # Force use of PIC - FORCE_USE_PIC = 1 - - include $(topsrcdir)/config/config.mk - - DEFINES += -DUSE_BUFFERED_REGISTRY_IO - # Memory mapped files are not supported under QNX, Neutrino, HP-UX and BeOS --#ifeq (,$(filter BeOS HP-UX QNX,$(OS_ARCH))) -+#ifeq (,$(filter BeOS Haiku HP-UX QNX,$(OS_ARCH))) - #CSRCS += mmapio.c - #DEFINES += -DUSE_MMAP_REGISTRY_IO - #endif - - include $(topsrcdir)/config/rules.mk - - R_%.o: %.c - $(CC) $(OUTOPTION)$@ -c $(COMPILE_CFLAGS) -DSTANDALONE_REGISTRY $< -Index: mozilla/modules/plugin/base/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/modules/plugin/base/src/Makefile.in,v -retrieving revision 1.104 -diff -u -8 -p -w -r1.104 Makefile.in ---- mozilla/modules/plugin/base/src/Makefile.in 8 Jun 2005 16:48:43 -0000 1.104 -+++ mozilla/modules/plugin/base/src/Makefile.in 8 Jul 2009 21:52:43 -0000 -@@ -91,17 +91,17 @@ CPPSRCS = \ - ns4xPluginInstance.cpp \ - nsPluginHostImpl.cpp \ - nsPluginModule.cpp \ - nsPluginInstancePeer.cpp \ - nsPluginDirServiceProvider.cpp \ - nsJSNPRuntime.cpp \ - $(NULL) - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += nsPluginsDirBeOS.cpp - CPPSRCS += nsPluginNativeWindow.cpp - else - ifneq (,$(filter WINNT WINCE,$(OS_ARCH))) - CPPSRCS += nsPluginsDirWin.cpp - CPPSRCS += nsPluginNativeWindowWin.cpp - else - ifeq ($(MOZ_WIDGET_TOOLKIT),os2) -Index: mozilla/nsprpub/configure.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/configure.in,v -retrieving revision 1.199.2.17 -diff -u -8 -p -w -r1.199.2.17 configure.in ---- mozilla/nsprpub/configure.in 31 Oct 2007 18:07:38 -0000 1.199.2.17 -+++ mozilla/nsprpub/configure.in 8 Jul 2009 21:52:54 -0000 -@@ -358,17 +358,17 @@ if test -z "$SKIP_PATH_CHECKS"; then - AC_PATH_PROG(WHOAMI, $WHOAMI whoami, echo not_whoami) - fi - - if test -n "$MOZ_DEBUG"; then - AC_DEFINE(DEBUG) - DEFINES="$DEFINES -UNDEBUG" - - case "${target_os}" in -- beos*) -+ beos*|haiku*) - DEFINES="$DEFINES -DDEBUG_${USER}" - ;; - msvc*|mks*|cygwin*|mingw*|os2*) - DEFINES="$DEFINES -DDEBUG_`echo ${USERNAME} | sed -e 's| |_|g'`" - ;; - *) - DEFINES="$DEFINES -DDEBUG_`$WHOAMI`" - ;; -@@ -787,17 +787,17 @@ case "$host" in - NSINSTALL=nsinstall - ;; - *-cygwin*|*-msvc*|*-mks*) - NSINSTALL='$(CYGWIN_WRAPPER) nsinstall' - if test `echo "${PATH}" | grep -c \;` = 0; then - CYGWIN_WRAPPER='sh $(topsrcdir)/build/cygwin-wrapper' - fi - ;; --*-beos*) -+*-beos*|*-haiku*) - HOST_CFLAGS="$HOST_CFLAGS -DXP_BEOS -DBeOS -DBEOS -D_POSIX_SOURCE" - ;; - *os2*) - ;; - *) - HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX" - ;; - esac -@@ -862,34 +862,50 @@ case "$target" in - OBJECT_MODE=64 - else - MDCPUCFG_H=_aix32.cfg - fi - PR_MD_CSRCS=aix.c - RESOLVE_LINK_SYMBOLS=1 - ;; - --*-beos*) -+*-beos*|*-haiku*) - AC_DEFINE(XP_BEOS) - AC_DEFINE(BeOS) - AC_DEFINE(BEOS) - AC_DEFINE(_POSIX_SOURCE) -- DSO_LDOPTS=-nostart -+ DSO_CFLAGS=-fPIC -+ DSO_LDOPTS='-nostart' -+ - MDCPUCFG_H=_beos.cfg - USE_BTHREADS=1 - PR_MD_ARCH_DIR=beos - RESOLVE_LINK_SYMBOLS=1 -+ -+ _HAIKU_BUILD=0 -+ AC_CHECK_LIB(network,main,_HAIKU_BUILD=1) -+ if test "$_HAIKU_BUILD" = 1; then -+ OS_LIBS="$OS_LIBS -lnetwork" -+ AC_DEFINE(XP_HAIKU) -+ AC_DEFINE(BONE_VERSION) -+ else -+ AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) -+ fi -+ - case "${target_cpu}" in - i*86) -- _OPTIMIZE_FLAGS=-O2 -- _DEBUG_FLAGS='-gdwarf-2 -O0' -+ AC_DEFINE(i586) -+ CPU_ARCH=i586 -+ _OPTIMIZE_FLAGS=-O3 -+ _DEBUG_FLAGS='-gdwarf-2 -O0 -fno-inline' - MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@' -- AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) - ;; - powerpc) -+ AC_DEFINE(ppc) -+ CPU_ARCH=ppc - CC=mwcc - CCC=mwcc - LD=mwld - DSO_LDOPTS='-xms -export pragma -init _init_routine_ -term _term_routine_ -lroot -lnet /boot/develop/lib/ppc/glue-noinit.a /boot/develop/lib/ppc/init_term_dyn.o /boot/develop/lib/ppc/start_dyn.o' - _OPTIMIZE_FLAGS=-O2 - _DEBUG_FLAGS='-g -O0' - ;; - esac -@@ -2164,16 +2180,18 @@ dnl AC_CHECK_LIB(vms_jackets, main) - - - dnl We don't want anything to link with libdl even if it's present on OS X, - dnl since it's not used and not part of the default installation. - - case $target in - *-darwin*) - ;; -+*-beos*|*-haiku*) -+ ;; - *) - AC_CHECK_LIB(dl, dlopen, - AC_CHECK_HEADER(dlfcn.h, - OS_LIBS="-ldl $OS_LIBS")) - ;; - esac - - -@@ -2352,17 +2370,17 @@ AC_ARG_ENABLE(nspr-threads, - [ --enable-nspr-threads Build using classic nspr threads], - [ if test "$enableval" = "yes"; then - USE_PTHREADS= - USE_USER_PTHREADS= - USE_NSPR_THREADS=1 - fi]) - - case "$target" in --*-beos*) -+*-beos*|*-haiku*) - AC_ARG_WITH(bthreads, - [ --with-bthreads Use system bthreads library as thread subsystem - (BeOS only)], - [ if test "$withval" = "yes"; then - USE_BTHREADS=1 - USE_USER_PTHREADS= - USE_PTHREADS= - fi]) -Index: mozilla/nsprpub/build/autoconf/config.guess -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/build/autoconf/config.guess,v -retrieving revision 1.15 -diff -u -8 -p -w -r1.15 config.guess ---- mozilla/nsprpub/build/autoconf/config.guess 18 Apr 2003 19:20:18 -0000 1.15 -+++ mozilla/nsprpub/build/autoconf/config.guess 8 Jul 2009 21:52:57 -0000 -@@ -1,34 +1,37 @@ - #! /bin/sh - # Attempt to guess a canonical system name. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2008-01-08' - - # This file 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Originally written by Per Bothner . - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # - # This script attempts to guess a canonical system name similar to - # config.sub. If it succeeds, it prints the system name on stdout, and - # exits with 0. Otherwise, it exits with 1. - # -@@ -48,34 +51,34 @@ Operation modes: - -v, --version print version number, then exit - - Report bugs and patches to ." - - version="\ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) -@@ -99,35 +102,36 @@ trap 'exit 1' 1 2 15 - # use `HOST_CC' if defined, but it is deprecated. - - # Portable tmp directory creation inspired by the Autoconf team. - - set_cc_for_build=' - trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; - trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; - : ${TMPDIR=/tmp} ; -- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || -+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || -+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; - dummy=$tmp/dummy ; - tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; - case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; --esac ;' -+esac ; set_cc_for_build= ;' - - # This is needed to find uname on a Pyramid OSx when run in the BSD universe. - # (ghazi@noc.rutgers.edu 1994-08-24) - if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH - fi - - UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -@@ -152,16 +156,17 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; -+ sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ -@@ -190,60 +195,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" -- exit 0 ;; -- amiga:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- arc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- hp300:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mac68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- macppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme88k:OpenBSD:*:*) -- echo m88k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvmeppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- pmax:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sgi:OpenBSD:*:*) -- echo mipseb-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sun3:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- wgrisc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:OpenBSD:*:*) -- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` -+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} -+ exit ;; -+ *:ekkoBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} -+ exit ;; -+ *:SolidBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} -+ exit ;; -+ macppc:MirBSD:*:*) -+ echo powerpc-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; -+ *:MirBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; - alpha:OSF1:*:*) -- if test $UNAME_RELEASE = "V4.0"; then -+ case $UNAME_RELEASE in -+ *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` -- fi -+ ;; -+ *5.*) -+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -+ ;; -+ esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; -@@ -271,147 +258,163 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac -+ # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. -- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -- exit 0 ;; -+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -+ exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix -- exit 0 ;; -+ exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 -- exit 0 ;; -+ exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 -- exit 0;; -+ exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos -- exit 0 ;; -+ exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos -- exit 0 ;; -+ exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition -- exit 0 ;; -+ exit ;; -+ *:z/VM:*:*) -+ echo s390-ibm-zvmoe -+ exit ;; -+ *:OS400:*:*) -+ echo powerpc-ibm-os400 -+ exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} -- exit 0;; -+ exit ;; -+ arm:riscos:*:*|arm:RISCOS:*:*) -+ echo arm-unknown-riscos -+ exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp -- exit 0;; -+ exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi -- exit 0 ;; -+ exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 -- exit 0 ;; -- DRS?6000:UNIX_SV:4.2*:7*) -+ exit ;; -+ DRS?6000:unix:4.0:6*) -+ echo sparc-icl-nx6 -+ exit ;; -+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in -- sparc) echo sparc-icl-nx7 && exit 0 ;; -+ sparc) echo sparc-icl-nx7; exit ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -- i86pc:SunOS:5.*:*) -+ exit ;; -+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` -- exit 0 ;; -+ exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac -- exit 0 ;; -+ exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ m68k:machten:*:*) -+ echo m68k-apple-machten${UNAME_RELEASE} -+ exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 -- exit 0 ;; -+ exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #ifdef __cplusplus - #include /* for printf() prototype */ - int main (int argc, char *argv[]) { - #else - int main (argc, argv) int argc; char *argv[]; { -@@ -425,145 +428,150 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c \ -- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ -- && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && -+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && -+ SYSTEM_NAME=`$dummy $dummyarg` && -+ { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax -- exit 0 ;; -+ exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix -- exit 0 ;; -+ exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 -- exit 0 ;; -+ exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 -- exit 0 ;; -+ exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 -- exit 0 ;; -+ exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 -- exit 0 ;; -+ exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd -- exit 0 ;; -+ exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` -- exit 0 ;; -+ exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' -+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix -- exit 0 ;; -+ exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` -+ then -+ echo "$SYSTEM_NAME" -+ else - echo rs6000-ibm-aix3.2.5 -+ fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi -- exit 0 ;; -- *:AIX:*:[45]) -+ exit ;; -+ *:AIX:*:[456]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix -- exit 0 ;; -+ exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 -- exit 0 ;; -+ exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to -- exit 0 ;; # report: romp-ibm BSD 4.3 -+ exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx -- exit 0 ;; -+ exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 -- exit 0 ;; -+ exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd -- exit 0 ;; -+ exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 -- exit 0 ;; -+ exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` -@@ -615,31 +623,41 @@ EOF - } - EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then -- # avoid double evaluation of $set_cc_for_build -- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build -- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null -+ eval $set_cc_for_build -+ -+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating -+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler -+ # generating 64-bit code. GNU and HP use different nomenclature: -+ # -+ # $ CC_FOR_BUILD=cc ./config.guess -+ # => hppa2.0w-hp-hpux11.23 -+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess -+ # => hppa64-hp-hpux11.23 -+ -+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | -+ grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); -@@ -657,181 +675,224 @@ EOF - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 -- exit 0 ;; -+ exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd -- exit 0 ;; -+ exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd -- exit 0 ;; -+ exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix -- exit 0 ;; -+ exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf -- exit 0 ;; -+ exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf -- exit 0 ;; -+ exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi -- exit 0 ;; -+ exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites -- exit 0 ;; -+ exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - *:UNICOS/mp:*:*) -- echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -+ exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -- exit 0 ;; -+ exit ;; -+ 5000:UNIX_System_V:4.*:*) -+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -+ exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:FreeBSD:*:*) -- # Determine whether the default compiler uses glibc. -- eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -- #include -- #if __GLIBC__ >= 2 -- LIBC=gnu -- #else -- LIBC= -- #endif --EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} -- exit 0 ;; -+ case ${UNAME_MACHINE} in -+ pc98) -+ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ amd64) -+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ *) -+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ esac -+ exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin -- exit 0 ;; -- i*:MINGW*:*) -+ exit ;; -+ *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 -- exit 0 ;; --#### MozillaHack --# Netscape's hacked uname -- xx:WINNT:* | xx:WIN95:*) -- echo i586-pc-msvc -- exit 0 ;; --### End MozillaHack -+ exit ;; -+ i*:windows32*:*) -+ # uname -m includes "-pc" on this system. -+ echo ${UNAME_MACHINE}-mingw32 -+ exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 -- exit 0 ;; -- x86:Interix*:3*) -- echo i586-pc-interix3 -- exit 0 ;; -+ exit ;; -+ *:Interix*:[3456]*) -+ case ${UNAME_MACHINE} in -+ x86) -+ echo i586-pc-interix${UNAME_RELEASE} -+ exit ;; -+ EM64T | authenticamd) -+ echo x86_64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ IA64) -+ echo ia64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks -- exit 0 ;; -+ exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix -- exit 0 ;; -+ exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin -- exit 0 ;; -+ exit ;; -+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) -+ echo x86_64-unknown-cygwin -+ exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin -- exit 0 ;; -+ exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - *:GNU:*:*) -+ # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` -- exit 0 ;; -+ exit ;; -+ *:GNU/*:*:*) -+ # other systems with GNU libc and userland -+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu -+ exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix -- exit 0 ;; -+ exit ;; - arm*:Linux:*:*) -+ eval $set_cc_for_build -+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ -+ | grep -q __ARM_EABI__ -+ then - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ else -+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ fi -+ exit ;; -+ avr32*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; -+ cris:Linux:*:*) -+ echo cris-axis-linux-gnu -+ exit ;; -+ crisv32:Linux:*:*) -+ echo crisv32-axis-linux-gnu -+ exit ;; -+ frv:Linux:*:*) -+ echo frv-unknown-linux-gnu -+ exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ m32r*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) -@@ -839,62 +900,78 @@ EOF - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; -+ or32:Linux:*:*) -+ echo or32-unknown-linux-gnu -+ exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -- exit 0 ;; -+ exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac -- exit 0 ;; -+ exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux -- exit 0 ;; -+ exit ;; -+ sh64*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ vax:Linux:*:*) -+ echo ${UNAME_MACHINE}-dec-linux-gnu -+ exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ xtensa*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g -@@ -902,99 +979,113 @@ EOF - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" -- exit 0 ;; -+ exit ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" -- exit 0 ;; -+ exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" -- exit 0 ;; -+ exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else -- #ifdef __INTEL_COMPILER -+ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif -+ #ifdef __dietlibc__ -+ LIBC=dietlibc -+ #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 -- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^LIBC/{ -+ s: ::g -+ p -+ }'`" -+ test x"${LIBC}" != x && { -+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" -+ exit -+ } -+ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 -- exit 0 ;; -+ exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx -- exit 0 ;; -+ exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop -- exit 0 ;; -+ exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos -- exit 0 ;; -+ exit ;; -+ i*86:syllable:*:*) -+ echo ${UNAME_MACHINE}-pc-syllable -+ exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi -- exit 0 ;; -- i*86:*:5:[78]*) -+ exit ;; -+ i*86:*:5:[678]*) -+ # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ -@@ -1002,214 +1093,248 @@ EOF - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi -- exit 0 ;; -+ exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 -- exit 0 ;; -+ exit ;; - paragon:*:*:*) - echo i860-intel-osf1 -- exit 0 ;; -+ exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi -- exit 0 ;; -+ exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv -- exit 0 ;; -+ exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv -- exit 0 ;; -+ exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix -- exit 0 ;; -- M68*:*:R3V[567]*:*) -- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; -- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0) -+ exit ;; -+ M68*:*:R3V[5678]*:*) -+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; -+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4.3${OS_REL} && exit 0 -+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4 && exit 0 ;; -+ && { echo i486-ncr-sysv4; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 -- exit 0 ;; -+ exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi -- exit 0 ;; -+ exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 -- exit 0 ;; --#### MozillaHack -- *:*OpenVMS*:*:*) -- case "${UNAME_SYSTEM}" in -- POSIX_for_OpenVMS_AXP) echo alpha-dec-openvmsposix ;; -- POSIX_for_OpenVMS_VAX) echo vax-dec-openvmsposix ;; -- OpenVMS) echo alpha-dec-openvms ;; -- *) echo unknown-dec-openvms ;; -- esac -- exit 0 ;; --#### End MozillaHack -+ exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 -- exit 0 ;; -+ exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 -- exit 0 ;; -+ exit ;; -+ i*86:VOS:*:*) -+ # From Paul.Green@stratus.com. -+ echo ${UNAME_MACHINE}-stratus-vos -+ exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos -- exit 0 ;; -+ exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 -- exit 0 ;; -+ exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos -- exit 0 ;; -+ exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos -- exit 0 ;; -+ exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos -- exit 0 ;; -+ 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 0 ;; -+ exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ SX-7:SUPER-UX:*:*) -+ echo sx7-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8:SUPER-UX:*:*) -+ echo sx8-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8R:SUPER-UX:*:*) -+ echo sx8r-nec-superux${UNAME_RELEASE} -+ exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Darwin:*:*) -- case `uname -p` in -- *86) UNAME_PROCESSOR=i686 ;; -- powerpc) UNAME_PROCESSOR=powerpc ;; -+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown -+ case $UNAME_PROCESSOR in -+ unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:QNX:*:4*) - echo i386-pc-qnx -- exit 0 ;; -- NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) -+ exit ;; -+ NSE-?:NONSTOP_KERNEL:*:*) -+ echo nse-tandem-nsk${UNAME_RELEASE} -+ exit ;; -+ NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux -- exit 0 ;; -+ exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv -- exit 0 ;; -+ exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 -- exit 0 ;; -+ exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 -- exit 0 ;; -+ exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex -- exit 0 ;; -+ exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 -- exit 0 ;; -+ exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 -- exit 0 ;; -+ exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 -- exit 0 ;; -+ exit ;; - *:ITS:*:*) - echo pdp10-unknown-its -- exit 0 ;; -+ exit ;; -+ SEI:*:*:SEIUX) -+ echo mips-sei-seiux${UNAME_RELEASE} -+ exit ;; -+ *:DragonFly:*:*) -+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` -+ exit ;; -+ *:*VMS:*:*) -+ UNAME_MACHINE=`(uname -p) 2>/dev/null` -+ case "${UNAME_MACHINE}" in -+ A*) echo alpha-dec-vms ; exit ;; -+ I*) echo ia64-dec-vms ; exit ;; -+ V*) echo vax-dec-vms ; exit ;; -+ esac ;; -+ *:XENIX:*:SysV) -+ echo i386-pc-xenix -+ exit ;; -+ i*86:skyos:*:*) -+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' -+ exit ;; -+ i*86:rdos:*:*) -+ echo ${UNAME_MACHINE}-pc-rdos -+ exit ;; - esac - - #echo '(No uname command or uname output not recognized.)' 1>&2 - #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - - eval $set_cc_for_build - cat >$dummy.c </dev/null && $dummy && exit 0 -+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - - # Apollos put the system type in the environment. - --test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } -+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - - # Convex versions that predate uname can use getsysinfo(1) - - if [ -x /usr/convex/getsysinfo ] - then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - c34*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - c38*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - c4*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - esac - fi - - cat >&2 < in order to provide the needed - information to handle your system. - - config.guess timestamp = $timestamp - -Index: mozilla/nsprpub/build/autoconf/config.sub -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/build/autoconf/config.sub,v -retrieving revision 1.16 -diff -u -8 -p -w -r1.16 config.sub ---- mozilla/nsprpub/build/autoconf/config.sub 18 Apr 2003 19:20:18 -0000 1.16 -+++ mozilla/nsprpub/build/autoconf/config.sub 8 Jul 2009 21:52:59 -0000 -@@ -1,14 +1,15 @@ - #! /bin/sh - # Configuration validation subroutine script. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2008-01-16' - - # This file is (in principle) common to ALL GNU software. - # The presence of a machine in this file suggests that SOME GNU software - # can handle that machine. It does not imply ALL GNU software can. - # - # This file 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 -@@ -16,24 +17,25 @@ timestamp='2003-02-22' - # - # 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., 59 Temple Place - Suite 330, --# Boston, MA 02111-1307, USA. -- -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. -+# - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # - # Configuration subroutine to validate and canonicalize a configuration type. - # Supply the specified configuration type as an argument. - # If it is invalid, we print an error message on stderr and exit with code 1. - # Otherwise, we print the canonical config type on stdout and succeed. - -@@ -65,46 +67,46 @@ Operation modes: - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - - Report bugs and patches to ." - - version="\ - GNU config.sub ($timestamp) - --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 -- exit 0;; -+ exit ;; - - * ) - break ;; - esac - done - - case $# in - 0) echo "$me: missing argument$help" >&2 -@@ -113,17 +115,19 @@ case $# in - *) echo "$me: too many arguments$help" >&2 - exit 1;; - esac - - # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). - # Here we must recognize all the valid KERNEL-OS combinations. - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` - case $maybe_os in -- nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) -+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ -+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ -+ storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi -@@ -139,17 +143,17 @@ case $os in - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -- -apple | -axis) -+ -apple | -axis | -knuth | -cray) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) -@@ -164,32 +168,40 @@ case $os in - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; -+ -sco6) -+ os=-sco5v6 -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; -+ -sco5v6*) -+ # Don't forget version if it is 3.2v4 or newer. -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) -@@ -219,171 +231,196 @@ case $os in - os=-mint - ;; - esac - - # Decode aliases for certain CPU-COMPANY combinations. - case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. --#### MozillaHack --# mips*el --#### End MozillaHack - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ -- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ -- | clipper \ -+ | am33_2.0 \ -+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ -+ | bfin \ -+ | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ -- | fr30 | frv \ -+ | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ -- | ip2k \ -- | m32r | m68000 | m68k | m88k | mcore \ -- | mips | mipsbe | mipseb | mips*el | mipsle \ -+ | ip2k | iq2000 \ -+ | m32c | m32r | m32rle | m68000 | m68k | m88k \ -+ | maxq | mb | microblaze | mcore | mep \ -+ | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64vr | mips64vrel \ - | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ -+ | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ -+ | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ -+ | mt \ - | msp430 \ -+ | nios | nios2 \ - | ns16k | ns32k \ -- | openrisc | or32 \ -+ | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ -- | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ -+ | score \ -+ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ -- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ -- | strongarm \ -- | tahoe | thumb | tic80 | tron \ -+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ -+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ -+ | spu | strongarm \ -+ | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ -- | x86 | xscale | xstormy16 | xtensa \ -+ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; -+ ms1) -+ basic_machine=mt-unknown -+ ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. --#### MozillaHack --# mips*el --#### End MozillaHack - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ -- | avr-* \ -- | bs2000-* \ -+ | avr-* | avr32-* \ -+ | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ -- | clipper-* | cydra-* \ -+ | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ -- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ -+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ -- | ip2k-* \ -- | m32r-* \ -+ | ip2k-* | iq2000-* \ -+ | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -- | m88110-* | m88k-* | mcore-* \ -- | mips-* | mipsbe-* | mipseb-* | mips*el-* | mipsle-* \ -+ | m88110-* | m88k-* | maxq-* | mcore-* \ -+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ -+ | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ -+ | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ -+ | mmix-* \ -+ | mt-* \ - | msp430-* \ -- | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ -+ | nios-* | nios2-* \ -+ | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ -- | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ -+ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ -- | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ -- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ -+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ -+ | sparclite-* \ -+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ -- | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ -- | xtensa-* \ -+ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ -+ | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-*) - ;; -+ # Recognize the basic CPU types without company name, with glob match. -+ xtensa*) -+ basic_machine=$basic_machine-unknown -+ ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; -+ abacus) -+ basic_machine=abacus-unknown -+ ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; -+ amd64) -+ basic_machine=x86_64-pc -+ ;; -+ amd64-*) -+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) -@@ -405,16 +442,24 @@ case $basic_machine in - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; -+ blackfin) -+ basic_machine=bfin-unknown -+ os=-linux -+ ;; -+ blackfin-*) -+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; -@@ -433,22 +478,37 @@ case $basic_machine in - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; -+ craynv) -+ basic_machine=craynv-cray -+ os=-unicosmp -+ ;; -+ cr16) -+ basic_machine=cr16-unknown -+ os=-elf -+ ;; - crds | unos) - basic_machine=m68k-crds - ;; -+ crisv32 | crisv32-* | etraxfs*) -+ basic_machine=crisv32-axis -+ ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; -+ crx) -+ basic_machine=crx-unknown -+ os=-elf -+ ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec -@@ -461,16 +521,20 @@ case $basic_machine in - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; -+ djgpp) -+ basic_machine=i586-pc -+ os=-msdosdjgpp -+ ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; -@@ -611,66 +675,71 @@ case $basic_machine in - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; -+ m68knommu) -+ basic_machine=m68k-unknown -+ os=-linux -+ ;; -+ m68knommu-*) -+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; --#### MozillaHack -- i386-msvc | msvc) -- basic_machine=i386-pc -- os=-msvc -+ mingw32ce) -+ basic_machine=arm-unknown -+ os=-mingw32ce - ;; --#### End MozillaHack - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; -- mmix*) -- basic_machine=mmix-knuth -- os=-mmixware -- ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; -+ ms1-*) -+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` -+ ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; -@@ -729,30 +798,29 @@ case $basic_machine in - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; -- nv1) -- basic_machine=nv1-cray -- os=-unicosmp -- ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; -- or32 | or32-*) -+ openrisc | openrisc-*) - basic_machine=or32-unknown -- os=-coff -+ ;; -+ os400) -+ basic_machine=powerpc-ibm -+ os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k -@@ -760,43 +828,63 @@ case $basic_machine in - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; -+ parisc) -+ basic_machine=hppa-unknown -+ os=-linux -+ ;; -+ parisc-*) -+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; -+ pc98) -+ basic_machine=i386-pc -+ ;; -+ pc98-*) -+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; -- pentiumii | pentium2) -+ pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; -+ pentium4) -+ basic_machine=i786-pc -+ ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -- pentiumii-* | pentium2-*) -+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -+ pentium4-*) -+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` -@@ -819,16 +907,20 @@ case $basic_machine in - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; -+ rdos) -+ basic_machine=i386-pc -+ os=-rdos -+ ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) -@@ -845,23 +937,37 @@ case $basic_machine in - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; -+ sde) -+ basic_machine=mipsisa32-sde -+ os=-elf -+ ;; -+ sei) -+ basic_machine=mips-sei -+ os=-seiux -+ ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; -+ sh5el) -+ basic_machine=sh5le-unknown -+ ;; -+ sh64) -+ basic_machine=sh64-unknown -+ ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; -@@ -926,45 +1032,49 @@ case $basic_machine in - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; -- tic4x | c4x*) -- basic_machine=tic4x-unknown -- os=-coff -- ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; -+ tile*) -+ basic_machine=tile-unknown -+ os=-linux-gnu -+ ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; -+ tpf) -+ basic_machine=s390x-ibm -+ os=-tpf -+ ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; -@@ -998,16 +1108,20 @@ case $basic_machine in - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; -+ xbox) -+ basic_machine=i686-pc -+ os=-mingw32 -+ ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) -@@ -1028,39 +1142,39 @@ case $basic_machine in - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; -+ mmix) -+ basic_machine=mmix-knuth -+ ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; -- sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) -+ sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; -- sh64) -- basic_machine=sh64-unknown -- ;; -- sparc | sparcv9 | sparcv9b) -+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; -@@ -1116,40 +1230,40 @@ case $os in - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. --#### MozillaHack --# msvc --#### End MozillaHack - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ -- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ -- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ -+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ -+ | -openbsd* | -solidbsd* \ -+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ -+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ -+ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ -+ | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ -- | -msvc* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ -- | -powermax* | -dnix*) -+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ -+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os -@@ -1157,34 +1271,40 @@ case $os in - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ -- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ -+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; -+ -linux-dietlibc) -+ os=-linux-dietlibc -+ ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; -+ -os400*) -+ os=-os400 -+ ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf -@@ -1196,16 +1316,19 @@ case $os in - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; -+ -syllable*) -+ os=-syllable -+ ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova -@@ -1218,16 +1341,19 @@ case $os in - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; -+ -tpf*) -+ os=-tpf -+ ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 -@@ -1254,16 +1380,19 @@ case $os in - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; -+ -zvmoe) -+ os=-zvmoe -+ ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -@@ -1276,25 +1405,34 @@ else - - # Note that if you're going to try to match "-MANUFACTURER" here (say, - # "-sun"), then you have to tell the case statement up towards the top - # that MANUFACTURER isn't an operating system. Otherwise, code above - # will signal an error saying that MANUFACTURER isn't an operating - # system, and we'll never get to this point. - - case $basic_machine in -+ score-*) -+ os=-elf -+ ;; -+ spu-*) -+ os=-elf -+ ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; -+ c4x-* | tic4x-*) -+ os=-coff -+ ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) -@@ -1310,16 +1448,19 @@ case $basic_machine in - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; -+ mep-*) -+ os=-elf -+ ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff -@@ -1328,19 +1469,25 @@ case $basic_machine in - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; -+ *-haiku) -+ os=-haiku -+ ;; - *-ibm) - os=-aix - ;; -+ *-knuth) -+ os=-mmixware -+ ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf -@@ -1463,19 +1610,25 @@ case $basic_machine in - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; -+ -os400*) -+ vendor=ibm -+ ;; - -ptx*) - vendor=sequent - ;; -+ -tpf*) -+ vendor=ibm -+ ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi -@@ -1490,16 +1643,16 @@ case $basic_machine in - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; - esac - - echo $basic_machine$os --exit 0 -+exit - - # Local variables: - # eval: (add-hook 'write-file-hooks 'time-stamp) - # time-stamp-start: "timestamp='" - # time-stamp-format: "%:y-%02m-%02d" - # time-stamp-end: "'" - # End: -Index: mozilla/nsprpub/lib/ds/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/lib/ds/Makefile.in,v -retrieving revision 1.35.2.1 -diff -u -8 -p -w -r1.35.2.1 Makefile.in ---- mozilla/nsprpub/lib/ds/Makefile.in 19 Oct 2006 00:39:28 -0000 1.35.2.1 -+++ mozilla/nsprpub/lib/ds/Makefile.in 8 Jul 2009 21:52:59 -0000 -@@ -180,18 +180,22 @@ endif - export:: $(TARGETS) - $(INSTALL) -m 444 $(HEADERS) $(dist_includedir) - $(INSTALL) -m 444 $(TARGETS) $(dist_libdir) - ifdef SHARED_LIBRARY - ifeq ($(OS_ARCH),HP-UX) - $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir) - $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir) - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir)/lib -+else - $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir) - endif - endif -+endif - ifeq ($(MOZ_BITS),16) - $(INSTALL) -m 444 $(HEADERS) $(MOZ_INCL) - $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/lib - $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/bin - endif - - -Index: mozilla/nsprpub/lib/libc/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/lib/libc/src/Makefile.in,v -retrieving revision 1.31.2.1 -diff -u -8 -p -w -r1.31.2.1 Makefile.in ---- mozilla/nsprpub/lib/libc/src/Makefile.in 19 Oct 2006 00:39:28 -0000 1.31.2.1 -+++ mozilla/nsprpub/lib/libc/src/Makefile.in 8 Jul 2009 21:52:59 -0000 -@@ -182,16 +182,20 @@ endif - - export:: $(TARGETS) - $(INSTALL) -m 444 $(TARGETS) $(dist_libdir) - ifdef SHARED_LIBRARY - ifeq ($(OS_ARCH),HP-UX) - $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir) - $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir) - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir)/lib -+else - $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir) - endif - endif -+endif - ifeq ($(MOZ_BITS),16) - $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/lib - $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/bin - endif - -Index: mozilla/nsprpub/lib/prstreams/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/lib/prstreams/Makefile.in,v -retrieving revision 1.21.2.1 -diff -u -8 -p -w -r1.21.2.1 Makefile.in ---- mozilla/nsprpub/lib/prstreams/Makefile.in 19 Oct 2006 00:39:28 -0000 1.21.2.1 -+++ mozilla/nsprpub/lib/prstreams/Makefile.in 8 Jul 2009 21:53:00 -0000 -@@ -64,17 +64,17 @@ ifeq ($(OS_ARCH),SunOS) - endif - - ifeq ($(OS_ARCH), IRIX) - ifneq ($(OS_RELEASE),5.3) - CCC_ONLY_FLAGS += -exceptions - endif - endif - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CFLAGS += -frtti -fexceptions - endif - - INCLUDES = -I$(dist_includedir) - - HEADERS = $(wildcard $(srcdir)/*.h) - - CSRCS = \ -@@ -113,17 +113,17 @@ else - MKSHLIB = makeC++SharedLib_r -p 0 - endif - OS_LIBS += -ldl - endif - endif - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - OS_LIBS = -lstdc++.r4 - endif - - ifeq ($(OS_ARCH), UNIXWARE) - OS_LIBS += -lC - endif - - EXTRA_LIBS = $(LIBNSPR) -Index: mozilla/nsprpub/pr/include/prio.h -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/include/prio.h,v -retrieving revision 3.40 -diff -u -8 -p -w -r3.40 prio.h ---- mozilla/nsprpub/pr/include/prio.h 25 Apr 2004 15:00:47 -0000 3.40 -+++ mozilla/nsprpub/pr/include/prio.h 8 Jul 2009 21:53:05 -0000 -@@ -169,38 +169,41 @@ struct PRIPv6Addr { - #define pr_s6_addr32 _S6_un._S6_u32 - #define pr_s6_addr64 _S6_un._S6_u64 - - typedef struct PRIPv6Addr PRIPv6Addr; - - union PRNetAddr { - struct { - PRUint16 family; /* address family (0x00ff maskable) */ --#ifdef XP_BEOS -- char data[10]; /* Be has a smaller structure */ --#else -+#ifndef XP_BEOS - char data[14]; /* raw address data */ -+#else -+ char data[30]; - #endif - } raw; - struct { - PRUint16 family; /* address family (AF_INET) */ - PRUint16 port; /* port number */ - PRUint32 ip; /* The actual 32 bits of address */ --#ifdef XP_BEOS -- char pad[4]; /* Be has a smaller structure */ --#else -+#ifndef XP_BEOS - char pad[8]; -+#else -+ char pad[24]; - #endif - } inet; - struct { - PRUint16 family; /* address family (AF_INET6) */ - PRUint16 port; /* port number */ - PRUint32 flowinfo; /* routing information */ - PRIPv6Addr ip; /* the actual 128 bits of address */ - PRUint32 scope_id; /* set of interfaces for a scope */ -+#ifdef XP_BEOS -+ char pad[4]; -+#endif - } ipv6; - #if defined(XP_UNIX) || defined(XP_OS2_EMX) - struct { /* Unix domain socket address */ - PRUint16 family; /* address family (AF_UNIX) */ - #ifdef XP_OS2 - char path[108]; /* null-terminated pathname */ - /* bind fails if size is not 108. */ - #else -Index: mozilla/nsprpub/pr/include/prtypes.h -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/include/prtypes.h,v -retrieving revision 3.30.2.2 -diff -u -8 -p -w -r3.30.2.2 prtypes.h ---- mozilla/nsprpub/pr/include/prtypes.h 5 Apr 2006 21:51:21 -0000 3.30.2.2 -+++ mozilla/nsprpub/pr/include/prtypes.h 8 Jul 2009 21:53:07 -0000 -@@ -93,29 +93,48 @@ - #define PR_IMPLEMENT_DATA(__type) __declspec(dllexport) __type - - #define PR_CALLBACK - #define PR_CALLBACK_DECL - #define PR_STATIC_CALLBACK(__x) static __x - - #elif defined(XP_BEOS) - -+/* GCC 3.3 and later support the visibility attribute. */ -+#if (__GNUC__ >= 4) || \ -+ (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) -+#define PR_VISIBILITY_DEFAULT __attribute__((visibility("default"))) -+#define PR_EXPORT(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_EXPORT_DATA(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_IMPORT(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_IMPORT_DATA(__type) extern PR_VISIBILITY_DEFAULT __type -+ -+#define PR_EXTERN(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_IMPLEMENT(__type) PR_VISIBILITY_DEFAULT __type -+#define PR_EXTERN_DATA(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_IMPLEMENT_DATA(__type) PR_VISIBILITY_DEFAULT __type -+#define PR_CALLBACK -+#define PR_CALLBACK_DECL -+#define PR_STATIC_CALLBACK(__x) static __x -+ -+#else - #define PR_EXPORT(__type) extern __declspec(dllexport) __type - #define PR_EXPORT_DATA(__type) extern __declspec(dllexport) __type - #define PR_IMPORT(__type) extern __declspec(dllexport) __type - #define PR_IMPORT_DATA(__type) extern __declspec(dllexport) __type - - #define PR_EXTERN(__type) extern __declspec(dllexport) __type - #define PR_IMPLEMENT(__type) __declspec(dllexport) __type - #define PR_EXTERN_DATA(__type) extern __declspec(dllexport) __type - #define PR_IMPLEMENT_DATA(__type) __declspec(dllexport) __type - - #define PR_CALLBACK - #define PR_CALLBACK_DECL - #define PR_STATIC_CALLBACK(__x) static __x -+#endif - - #elif defined(WIN16) - - #define PR_CALLBACK_DECL __cdecl - - #if defined(_WINDLL) - #define PR_EXPORT(__type) extern __type _cdecl _export _loadds - #define PR_IMPORT(__type) extern __type _cdecl _export _loadds -Index: mozilla/nsprpub/pr/include/md/_beos.cfg -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/include/md/_beos.cfg,v -retrieving revision 3.5.214.1 -diff -u -8 -p -w -r3.5.214.1 _beos.cfg ---- mozilla/nsprpub/pr/include/md/_beos.cfg 5 Apr 2006 22:00:45 -0000 3.5.214.1 -+++ mozilla/nsprpub/pr/include/md/_beos.cfg 8 Jul 2009 21:53:07 -0000 -@@ -15,16 +15,17 @@ - * The Original Code is the Netscape Portable Runtime (NSPR). - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998-2000 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): -+ * Fredrik Holmqvist - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your -@@ -35,33 +36,38 @@ - * - * ***** END LICENSE BLOCK ***** */ - - #ifndef nspr_cpucfg___ - #define nspr_cpucfg___ - - #ifndef XP_BEOS - #define XP_BEOS --#undef XP_UNIX - #endif - - #ifndef BEOS - #define BEOS - #endif - - #define PR_AF_INET6 5 /* same as AF_INET6 */ - - #ifdef __powerpc__ - #undef IS_LITTLE_ENDIAN - #define IS_BIG_ENDIAN 1 - #else - #define IS_LITTLE_ENDIAN 1 - #undef IS_BIG_ENDIAN - #endif - -+/* -+ * Fixme: Should be done according to arch -+ * Currently only x86/ia64. -+ */ -+#define PR_ALIGN_OF_WORD 4 -+ - #define PR_BYTES_PER_BYTE 1 - #define PR_BYTES_PER_SHORT 2 - #define PR_BYTES_PER_INT 4 - #define PR_BYTES_PER_INT64 8 - #define PR_BYTES_PER_LONG 4 - #define PR_BYTES_PER_FLOAT 4 - #define PR_BYTES_PER_DOUBLE 8 - #define PR_BYTES_PER_WORD 4 -Index: mozilla/nsprpub/pr/include/md/_beos.h -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/include/md/_beos.h,v -retrieving revision 3.23 -diff -u -8 -p -w -r3.23 _beos.h ---- mozilla/nsprpub/pr/include/md/_beos.h 17 Jan 2005 22:00:53 -0000 3.23 -+++ mozilla/nsprpub/pr/include/md/_beos.h 8 Jul 2009 21:53:08 -0000 -@@ -15,16 +15,17 @@ - * The Original Code is the Netscape Portable Runtime (NSPR). - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998-2000 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): -+ * Fredrik Holmqvist - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your -@@ -33,27 +34,26 @@ - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - - #ifndef nspr_beos_defs_h___ - #define nspr_beos_defs_h___ - --#include "prtypes.h" --#include "prio.h" --#include "prthread.h" --#include "prproces.h" --#include "prmem.h" --#include "obsolete/prsem.h" - #include -- --#include --#include - #include -+#include -+ -+/* -+ * Hack for Cross compile -+ */ -+#define FD_SETSIZE 1024 -+ -+#undef bool - - /* - * Internal configuration macros - */ - - #ifdef BONE_VERSION - #define _PR_HAVE_SOCKADDR_LEN - #endif -@@ -62,104 +62,66 @@ - #define _PR_SI_SYSNAME "BEOS" - #ifdef __powerpc__ - #define _PR_SI_ARCHITECTURE "ppc" - #else - #define _PR_SI_ARCHITECTURE "x86" - #endif - #define PR_DLL_SUFFIX ".so" - --#define _PR_VMBASE 0x30000000 --#define _PR_STACK_VMBASE 0x50000000 - #define _MD_DEFAULT_STACK_SIZE 65536L --#define _MD_MMAP_FLAGS MAP_PRIVATE - - #undef HAVE_STACK_GROWING_UP - #define HAVE_DLL --#define _PR_NO_CLOCK_TIMER - - /* - * The Atomic operations - */ - - #define _PR_HAVE_ATOMIC_OPS -+#ifdef __powerpc__ - #define _MD_INIT_ATOMIC _MD_AtomicInit -+#else -+#define _MD_INIT_ATOMIC() -+#endif - #define _MD_ATOMIC_INCREMENT _MD_AtomicIncrement - #define _MD_ATOMIC_ADD _MD_AtomicAdd - #define _MD_ATOMIC_DECREMENT _MD_AtomicDecrement - #define _MD_ATOMIC_SET _MD_AtomicSet - -+/* Makes sure to don't create cvar when creating sem */ - #define HAVE_CVAR_BUILT_ON_SEM -+ -+/* Not sure this is needed, but no harm. */ - #define _PR_GLOBAL_THREADS_ONLY -+ - #define _PR_BTHREADS --#define _PR_NEED_FAKE_POLL --#define _PR_HAVE_PEEK_BUFFER --#define _PR_PEEK_BUFFER_MAX (16 * 1024) --#define _PR_FD_NEED_EMULATE_MSG_PEEK(fd) 1 --#define _PR_CONNECT_DOES_NOT_BIND -+ - #define _PR_HAVE_O_APPEND - --/* Define threading functions and objects as native BeOS */ -+/* Define threading functions and objects as native BeOS -+ Used by bthreads. */ -+ - struct _MDThread { - thread_id tid; /* BeOS thread handle */ - sem_id joinSem; /* sems used to synchronzie joining */ - PRBool is_joining; /* TRUE if someone is currently waiting to - join this thread */ - }; - --struct _MDThreadStack { -- PRInt8 notused; --}; -- --/* -- * Lock and Semaphore related definitions -- */ -- --struct _MDLock { -- sem_id semaphoreID; -- int32 benaphoreCount; --}; -- --struct _MDCVar { -- sem_id sem1; -- sem_id sem2; -- int16 count; --}; -- --struct _MDSemaphore { -- sem_id sid; --}; -- --/* --** CPU-related definitions --*/ --struct _MDCPU { -- int8 unused; --}; -- - /* - ** Process-related definitions - */ - struct _MDProcess { - pid_t pid; - }; - --struct _MDSegment { -- PRInt8 notused; --}; -- - /* - ** File- and directory-related definitions - */ -- --#ifndef BONE_VERSION --#define BE_SOCK_SHUTDOWN_READ 0x01 --#define BE_SOCK_SHUTDOWN_WRITE 0x02 --#endif -- - struct _MDFileDesc { - PRInt32 osfd; - PRInt32 sock_state; - PRBool accepted_socket; - PRNetAddr peer_addr; - #ifndef BONE_VERSION - PRBool connectValueValid; - int connectReturnValue; -@@ -173,441 +135,114 @@ struct _MDDir { - - #define PR_DIRECTORY_SEPARATOR '/' - #define PR_DIRECTORY_SEPARATOR_STR "/" - #define PR_PATH_SEPARATOR ':' - #define PR_PATH_SEPARATOR_STR ":" - - #define GETTIMEOFDAY(tp) gettimeofday((tp), NULL) - --/* --- Memory-mapped files stuff --- not implemented on BeOS */ -- --struct _MDFileMap { -- PRInt8 unused; --}; - - /* - * Network related definitions. - */ - - #ifndef BONE_VERSION -+#define BE_SOCK_SHUTDOWN_READ 0x01 -+#define BE_SOCK_SHUTDOWN_WRITE 0x02 -+ - #define IPPROTO_IP 0 - #define AF_UNIX 2 - #define TCP_NODELAY SO_NONBLOCK - #define SO_LINGER -1 - #define SO_ERROR 4 --#endif -- --#define _PR_INTERRUPT_CHECK_INTERVAL_SECS 5 - --#ifndef BONE_VERSION - /* these aren't actually used. if they are, we're screwed */ - struct protoent { - char *p_name; /* official protocol name */ - char **p_aliases; /* alias list */ - int p_proto; /* protocol # */ - }; - - struct protoent* getprotobyname(const char* name); - struct protoent* getprotobynumber(int number); - #endif - -+/* Used by bnet.c */ -+#define _PR_INTERRUPT_CHECK_INTERVAL_SECS 5 -+ - /* - * malloc() related definitions. -+ * Avoids prmalloc.c's and prmem's code - */ -- - #undef _PR_OVERRIDE_MALLOC - - /* Miscellaneous */ - - #define _MD_ERRNO() (errno) - --#define _MD_CLEANUP_BEFORE_EXIT _MD_cleanup_before_exit --#define _MD_EXIT _MD_exit -+#define _MD_CLEANUP_BEFORE_EXIT() -+#define _MD_EXIT exit - - #define _MD_GET_ENV getenv - #define _MD_PUT_ENV putenv - --#define _MD_EARLY_INIT _MD_early_init --#define _MD_FINAL_INIT _MD_final_init -- --/* CPU Stuff */ -- --#define _MD_INIT_CPUS _MD_init_cpus --#define _MD_WAKEUP_CPUS _MD_wakeup_cpus --#define _MD_START_INTERRUPTS _MD_start_interrupts --#define _MD_STOP_INTERRUPTS _MD_stop_interrupts --#define _MD_DISABLE_CLOCK_INTERRUPTS _MD_disable_clock_interrupts --#define _MD_BLOCK_CLOCK_INTERRUPTS _MD_block_clock_interrupts --#define _MD_UNBLOCK_CLOCK_INTERRUPTS _MD_unblock_clock_interrupts --#define _MD_CLOCK_INTERRUPT _MD_clock_interrupt --#define _MD_INIT_STACK _MD_init_stack --#define _MD_CLEAR_STACK _MD_clear_stack --// #define _MD_GET_INTSOFF _MD_get_intsoff --// #define _MD_SET_INTSOFF _MD_set_intsoff --#define _MD_CURRENT_CPU _MD_current_cpu --#define _MD_SET_CURRENT_CPU _MD_set_current_cpu --#define _MD_INIT_RUNNING_CPU _MD_init_running_cpu --#define _MD_PAUSE_CPU _MD_pause_cpu -+#define _MD_EARLY_INIT() -+#ifdef BONE_VERSION -+#define _MD_FINAL_INIT() -+#else -+#define _MD_FINAL_INIT _MD_final_init_netserver -+#endif - - /* Thread stuff */ - - #define _MD_CURRENT_THREAD() PR_GetCurrentThread() --// #define _MD_GET_ATTACHED_THREAD _MD_get_attached_thread --#define _MD_LAST_THREAD _MD_last_thread --#define _MD_SET_CURRENT_THREAD _MD_set_current_THREAD --#define _MD_SET_LAST_THREAD _MD_set_last_thread --#define _MD_INIT_THREAD _MD_init_thread --#define _MD_EXIT_THREAD _MD_exit_thread --#define _MD_INIT_ATTACHED_THREAD _MD_init_attached_thread -- --#define _MD_SUSPEND_THREAD _MD_suspend_thread --#define _MD_RESUME_THREAD _MD_resume_thread --#define _MD_SUSPEND_CPU _MD_suspend_cpu --#define _MD_RESUME_CPU _MD_resume_cpu --#define _MD_BEGIN_SUSPEND_ALL _MD_begin_suspend_all --#define _MD_END_SUSPEND_ALL _MD_end_suspend_all --#define _MD_BEGIN_RESUME_ALL _MD_begin_resume_all --#define _MD_END_RESUME_ALL _MD_end_resume_all -- --#define _MD_GET_SP _MD_get_sp -- --#define _MD_CLEAN_THREAD _MD_clean_thread --#define _MD_CREATE_PRIMORDIAL_USER_THREAD _MD_create_primordial_user_thread --#define _MD_CREATE_USER_THREAD _MD_create_user_thread --#define _MD_INIT_PRIMORDIAL_THREAD _MD_init_primordial_thread --#define _MD_CREATE_THREAD _MD_create_thread --#define _MD_YIELD _MD_yield --#define _MD_SET_PRIORITY _MD_set_priority -- --#define _MD_SUSPENDALL _MD_suspendall --#define _MD_RESUMEALL _MD_resumeall -- --#define _MD_SWITCH_CONTEXT _MD_switch_context --#define _MD_RESTORE_CONTEXT _MD_restore_context -- --#define _MD_WAIT _MD_wait --#define _MD_WAKEUP_WAITER _MD_wakeup_waiter -- --#define _MD_SETTHREADAFFINITYMASK _MD_setthreadaffinitymask --#define _MD_GETTHREADAFFINITYMASK _MD_getthreadaffinitymask -- --/* Thread Synchronization */ -- --#define _MD_INIT_LOCKS _MD_init_locks --#define _MD_NEW_LOCK _MD_new_lock --#define _MD_FREE_LOCK _MD_free_lock --#define _MD_LOCK _MD_lock --#define _MD_TEST_AND_LOCK _MD_test_and_lock --#define _MD_UNLOCK _MD_unlock --#define _MD_IOQ_LOCK _MD_ioq_lock --#define _MD_IOQ_UNLOCK _MD_ioq_unlock --#define _MD_NEW_SEM _MD_new_sem --#define _MD_DESTROY_SEM _MD_destroy_sem --#define _MD_TIMED_WAIT_SEM _MD_timed_wait_sem --#define _MD_WAIT_SEM _MD_wait_sem --#define _MD_POST_SEM _MD_post_sem --// #define _MD_NEW_CV _MD_new_cv --// #define _MD_FREE_CV _MD_free_cv --// #define _MD_WAIT_CV _MD_wait_cv --// #define _MD_NOTIFY_CV _MD_notify_cv --// #define _MD_NOTIFYALL_CV _MD_notifyall_cv -+ - - /* File I/O */ - --/* don't need any I/O initializations */ --#define _MD_INIT_IO() --#define _MD_INIT_FILEDESC(fd) -- --#define _MD_OPEN_DIR _MD_open_dir --#define _MD_READ_DIR _MD_read_dir --#define _MD_CLOSE_DIR _MD_close_dir --#define _MD_MAKE_NONBLOCK _MD_make_nonblock --#define _MD_SET_FD_INHERITABLE _MD_set_fd_inheritable --#define _MD_INIT_FD_INHERITABLE _MD_init_fd_inheritable --#define _MD_QUERY_FD_INHERITABLE _MD_query_fd_inheritable --#define _MD_OPEN _MD_open --#define _MD_OPEN_FILE _MD_open --#define _MD_CLOSE_FILE _MD_close_file --#define _MD_READ _MD_read --#define _MD_WRITE _MD_write --#define _MD_WRITEV _MD_writev -+#define _PR_MD_WRITE -+ -+/* -+These are defined in primpl.h so that they are avail for all, but we -+have no calls, and pthreads doesn't either. - #define _MD_LSEEK _MD_lseek - #define _MD_LSEEK64 _MD_lseek64 --#define _MD_FSYNC _MD_fsync --#define _MD_DELETE _MD_delete -+ - #define _MD_GETFILEINFO _MD_getfileinfo - #define _MD_GETFILEINFO64 _MD_getfileinfo64 - #define _MD_GETOPENFILEINFO _MD_getopenfileinfo - #define _MD_GETOPENFILEINFO64 _MD_getopenfileinfo64 --#define _MD_RENAME _MD_rename --#define _MD_ACCESS _MD_access --#define _MD_STAT stat --#define _MD_MKDIR _MD_mkdir --#define _MD_MAKE_DIR _MD_mkdir --#define _MD_RMDIR _MD_rmdir --#define _MD_PR_POLL _MD_pr_poll -+*/ - - /* Network I/O */ - --#define _MD_CLOSE_SOCKET _MD_close_socket --#define _MD_CONNECT _MD_connect --#define _MD_ACCEPT _MD_accept --#define _MD_BIND _MD_bind --#define _MD_LISTEN _MD_listen --#define _MD_SHUTDOWN _MD_shutdown --#define _MD_RECV _MD_recv --#define _MD_SEND _MD_send --#define _MD_ACCEPT_READ _MD_accept_read --#define _MD_GETSOCKNAME _MD_getsockname --#define _MD_GETPEERNAME _MD_getpeername --#define _MD_GETSOCKOPT _MD_getsockopt --#define _MD_SETSOCKOPT _MD_setsockopt --#define _MD_RECVFROM _MD_recvfrom --#define _MD_SENDTO _MD_sendto --#define _MD_SOCKETPAIR _MD_socketpair --#define _MD_SOCKET _MD_socket --#define _MD_SOCKETAVAILABLE _MD_socketavailable --#define _MD_PIPEAVAILABLE _MD_socketavailable -- - #define _MD_GET_SOCKET_ERROR() (errno) - #define _MD_GETHOSTNAME _MD_gethostname - --#define _MD_SELECT select -- - /* Process management */ - - #define _MD_CREATE_PROCESS _MD_create_process - #define _MD_DETACH_PROCESS _MD_detach_process - #define _MD_WAIT_PROCESS _MD_wait_process - #define _MD_KILL_PROCESS _MD_kill_process - --/* Atomic data operations */ -- --// #define _MD_INIT_ATOMIC _MD_init_atomic --// #define _MD_ATOMIC_INCREMENT _MD_atomic_increment --// #define _MD_ATOMIC_DECREMENT _MD_atomic_decrement --// #define _MD_ATOMIC_SET _MD_atomic_set -- --/* memory management */ -- --#define _MD_INIT_SEGS _MD_init_segs --#define _MD_ALLOC_SEGMENT _MD_alloc_segment --#define _MD_FREE_SEGMENT _MD_free_segment -- - /* Memory mapped file I/O */ - - #define _MD_CREATE_FILE_MAP _MD_create_file_map - #define _MD_GET_MEM_MAP_ALIGNMENT _MD_get_mem_map_alignment - #define _MD_MEM_MAP _MD_mem_map - #define _MD_MEM_UNMAP _MD_mem_unmap - #define _MD_CLOSE_FILE_MAP _MD_close_file_map - - /* Time related */ - --#define _MD_NOW _MD_now --#define _MD_INTERVAL_INIT _MD_interval_init -+#define _MD_INTERVAL_INIT() - #define _MD_GET_INTERVAL _MD_get_interval - #define _MD_INTERVAL_PER_SEC _MD_interval_per_sec - - /* File locking */ - - #define _MD_LOCKFILE _MD_lockfile - #define _MD_TLOCKFILE _MD_tlockfile - #define _MD_UNLOCKFILE _MD_unlockfile - --/** -- * Prototypes for machine dependent function implementations. (Too bad -- * NSPR's MD system blows so much that we have to reiterate every stinking -- * thing we implement here in our MD header file.) -- */ -- --/* Miscellaneous */ -- --NSPR_API(void) _MD_cleanup_before_exit(void); --NSPR_API(void) _MD_exit(PRIntn status); -- --NSPR_API(char*) _MD_get_env(const char *name); --NSPR_API(PRIntn) _MD_put_env(const char *name); -- --NSPR_API(void) _MD_early_init(void); --NSPR_API(void) _MD_final_init(void); -- --/* CPU Stuff */ -- --NSPR_API(void) _MD_init_cpus(); --NSPR_API(void) _MD_wakeup_cpus(); --NSPR_API(void) _MD_start_interrupts(void); --NSPR_API(void) _MD_stop_interrupts(void); --NSPR_API(void) _MD_disable_clock_interrupts(void); --NSPR_API(void) _MD_block_clock_interrupts(void); --NSPR_API(void) _MD_unblock_clock_interrupts(void); --NSPR_API(void) _MD_clock_interrupt(void); --// NSPR_API(void) _MD_init_stack(PRThreadStack *ts, PRIntn redzone); --// NSPR_API(void) _MD_clear_stack(PRThreadStack* ts); --// NSPR_API(PRInt32) _MD_get_intsoff(void); --// NSPR_API(void) _MD_set_intsoff(PRInt32 _val); --// NSPR_API(_PRCPU*) _MD_current_cpu(void); --// NSPR_API(void) _MD_set_current_cpu(_PRCPU *cpu); --// NSPR_API(void) _MD_init_running_cpu(_PRCPU *cpu); --NSPR_API(PRInt32) _MD_pause_cpu(PRIntervalTime timeout); -- --/* Thread stuff */ -- --// NSPR_API(PRThread*) _MD_current_thread(void); --NSPR_API(PRThread*) _MD_get_attached_thread(void); --NSPR_API(PRThread*) _MD_last_thread(void); --NSPR_API(void) _MD_set_current_thread(PRThread *thread); --NSPR_API(void) _MD_set_last_thread(PRThread *thread); --NSPR_API(PRStatus) _MD_init_thread(PRThread *thread); --NSPR_API(void) _MD_exit_thread(PRThread *thread); --NSPR_API(PRStatus) _MD_init_attached_thread(PRThread *thread); -- --NSPR_API(void) _MD_suspend_thread(PRThread *thread); --NSPR_API(void) _MD_resume_thread(PRThread *thread); --// NSPR_API(void) _MD_suspend_cpu(_PRCPU *cpu); --// NSPR_API(void) _MD_resume_cpu(_PRCPU *cpu); --NSPR_API(void) _MD_begin_suspend_all(void); --NSPR_API(void) _MD_end_suspend_all(void); --NSPR_API(void) _MD_begin_resume_all(void); --NSPR_API(void) _MD_end_resume_all(void); -- --NSPR_API(void *) _MD_get_sp(PRThread *thread); -- --NSPR_API(void) _MD_clean_thread(PRThread *thread); --NSPR_API(void) _MD_create_primordial_user_thread(PRThread *); --NSPR_API(PRThread*) _MD_create_user_thread(PRUint32 stacksize, void (*start)(void *), void *arg); --NSPR_API(void) _MD_init_primordial_thread(PRThread *thread); --NSPR_API(PRStatus) _MD_create_thread(PRThread *thread, void (*start)(void *), PRThreadPriority priority, PRThreadScope scope, PRThreadState state, PRUint32 stackSize); --NSPR_API(void) _MD_yield(void); --NSPR_API(void) _MD_set_priority(struct _MDThread *md, PRThreadPriority newPri); -- --NSPR_API(void) _MD_suspendall(void); --NSPR_API(void) _MD_resumeall(void); -- --NSPR_API(void) _MD_init_context(PRThread *thread, char *top, void (*start) (void), PRBool *status); --NSPR_API(void) _MD_switch_context(PRThread *thread); --NSPR_API(void) _MD_restore_context(PRThread *thread); -- --NSPR_API(PRStatus) _MD_wait(PRThread *, PRIntervalTime timeout); --NSPR_API(PRStatus) _MD_wakeup_waiter(PRThread *); -- --NSPR_API(PRInt32) _MD_setthreadaffinitymask(PRThread *thread, PRUint32 mask ); --NSPR_API(PRInt32) _MD_getthreadaffinitymask(PRThread *thread, PRUint32 *mask); -- --/* Thread Synchronization */ -- --NSPR_API(void) _MD_init_locks(void); --NSPR_API(PRStatus) _MD_new_lock(struct _MDLock *md); --NSPR_API(void) _MD_free_lock(struct _MDLock *md); --NSPR_API(void) _MD_lock(struct _MDLock *md); --NSPR_API(PRIntn) _MD_test_and_lock(struct _MDLock *md); --NSPR_API(void) _MD_unlock(struct _MDLock *md); --NSPR_API(void) _MD_ioq_lock(void); --NSPR_API(void) _MD_ioq_unlock(void); --NSPR_API(void) _MD_new_sem(struct _MDSemaphore *md, PRUintn value); --NSPR_API(void) _MD_destroy_sem(struct _MDSemaphore *md); --NSPR_API(PRStatus) _MD_timed_wait_sem(struct _MDSemaphore *md, PRIntervalTime timeout); --NSPR_API(PRStatus) _MD_wait_sem(struct _MDSemaphore *md); --NSPR_API(void) _MD_post_sem(struct _MDSemaphore *md); --// NSPR_API(PRInt32) _MD_new_cv(struct _MDCVar *md); --// NSPR_API(void) _MD_free_cv(struct _MDCVar *md); --// NSPR_API(void) _MD_wait_cv(struct _MDCVar *mdCVar, struct _MDLock *mdLock, PRIntervalTime timeout); --// NSPR_API(void) _MD_notify_cv(struct _MDCVar *md, struct _MDLock *lock); --// NSPR_API(void) _MD_notifyall_cv(struct _MDCVar *md, struct _MDLock *lock); -- --/* File I/O */ -- --// NSPR_API(void) _MD_init_io(void); --NSPR_API(PRStatus) _MD_open_dir(struct _MDDir *md,const char *name); --NSPR_API(char *) _MD_read_dir(struct _MDDir *md, PRIntn flags); --NSPR_API(PRInt32) _MD_close_dir(struct _MDDir *md); --NSPR_API(void) _MD_make_nonblock(PRFileDesc *fd); --NSPR_API(void) _MD_init_fd_inheritable(PRFileDesc *fd, PRBool imported); --NSPR_API(void) _MD_query_fd_inheritable(PRFileDesc *fd); --NSPR_API(PRInt32) _MD_open(const char *name, PRIntn osflags, PRIntn mode); --NSPR_API(PRInt32) _MD_close_file(PRInt32 osfd); --NSPR_API(PRInt32) _MD_read(PRFileDesc *fd, void *buf, PRInt32 amount); --NSPR_API(PRInt32) _MD_write(PRFileDesc *fd, const void *buf, PRInt32 amount); --NSPR_API(PRInt32) _MD_writev(PRFileDesc *fd, const PRIOVec *iov, PRInt32 iov_size, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_lseek(PRFileDesc *fd, PRInt32 offset, int whence); --NSPR_API(PRInt64) _MD_lseek64(PRFileDesc *fd, PRInt64 offset, int whence); --NSPR_API(PRInt32) _MD_fsync(PRFileDesc *fd); --NSPR_API(PRInt32) _MD_delete(const char *name); --NSPR_API(PRInt32) _MD_getfileinfo(const char *fn, PRFileInfo *info); --NSPR_API(PRInt32) _MD_getfileinfo64(const char *fn, PRFileInfo64 *info); --NSPR_API(PRInt32) _MD_getopenfileinfo(const PRFileDesc *fd, PRFileInfo *info); --NSPR_API(PRInt32) _MD_getopenfileinfo64(const PRFileDesc *fd, PRFileInfo64 *info); --NSPR_API(PRInt32) _MD_rename(const char *from, const char *to); --NSPR_API(PRInt32) _MD_access(const char *name, PRIntn how); --NSPR_API(PRInt32) _MD_stat(const char *name, struct stat *buf); --NSPR_API(PRInt32) _MD_mkdir(const char *name, PRIntn mode); --NSPR_API(PRInt32) _MD_rmdir(const char *name); --NSPR_API(PRInt32) _MD_pr_poll(PRPollDesc *pds, PRIntn npds, PRIntervalTime timeout); -- --/* Network I/O */ --NSPR_API(PRInt32) _MD_close_socket(PRInt32 osfd); --NSPR_API(PRInt32) _MD_connect(PRFileDesc *fd, const PRNetAddr *addr, PRUint32 addrlen, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_accept(PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_bind(PRFileDesc *fd, const PRNetAddr *addr, PRUint32 addrlen); --NSPR_API(PRInt32) _MD_listen(PRFileDesc *fd, PRIntn backlog); --NSPR_API(PRInt32) _MD_shutdown(PRFileDesc *fd, PRIntn how); --NSPR_API(PRInt32) _MD_recv(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_send(PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_accept_read(PRFileDesc *sd, PRInt32 *newSock, PRNetAddr **raddr, void *buf, PRInt32 amount, PRIntervalTime timeout); --// NSPR_API(PRInt32) _MD_fast_accept(PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen, PRIntervalTime timeout, PRBool fast, _PR_AcceptTimeoutCallback callback, void *callbackArg); --// NSPR_API(PRInt32) _MD_fast_accept_read(PRFileDesc *sd, PRInt32 *newSock, PRNetAddr **raddr, void *buf, PRInt32 amount, PRIntervalTime timeout, PRBool fast, _PR_AcceptTimeoutCallback callback, void *callbackArg); --// NSPR_API(void) _MD_update_accept_context(PRInt32 s, PRInt32 ls); --NSPR_API(PRStatus) _MD_getsockname(PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen); --NSPR_API(PRStatus) _MD_getpeername(PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen); --NSPR_API(PRStatus) _MD_getsockopt(PRFileDesc *fd, PRInt32 level, PRInt32 optname, char* optval, PRInt32* optlen); --NSPR_API(PRStatus) _MD_setsockopt(PRFileDesc *fd, PRInt32 level, PRInt32 optname, const char* optval, PRInt32 optlen); --NSPR_API(PRInt32) _MD_recvfrom(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, PRNetAddr *addr, PRUint32 *addrlen, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_sendto(PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags, const PRNetAddr *addr, PRUint32 addrlen, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_socketpair(int af, int type, int flags, PRInt32 *osfd); --NSPR_API(PRInt32) _MD_socket(int af, int type, int flags); --NSPR_API(PRInt32) _MD_socketavailable(PRFileDesc *fd); -- --// NSPR_API(PRInt32) _MD_get_socket_error(void); --NSPR_API(PRStatus) _MD_gethostname(char *name, PRUint32 namelen); -- --/* Process management */ -- --NSPR_API(PRProcess *) _MD_create_process(const char *path, char *const *argv, char *const *envp, const PRProcessAttr *attr); --NSPR_API(PRStatus) _MD_detach_process(PRProcess *process); --NSPR_API(PRStatus) _MD_wait_process(PRProcess *process, PRInt32 *exitCode); --NSPR_API(PRStatus) _MD_kill_process(PRProcess *process); -- --/* Atomic data operations */ -- --// NSPR_API(void) _MD_init_atomic(void); --// NSPR_API(PRInt32) _MD_atomic_increment(PRInt32 *); --// NSPR_API(PRInt32) _MD_atomic_decrement(PRInt32 *); --// NSPR_API(PRInt32) _MD_atomic_set(PRInt32 *, PRInt32); -- --/* Memory management */ -- --NSPR_API(void) _MD_init_segs(void); --NSPR_API(PRStatus) _MD_alloc_segment(PRSegment *seg, PRUint32 size, void *vaddr); --NSPR_API(void) _MD_free_segment(PRSegment *seg); -- --/* Memory mapped file I/O */ -- --NSPR_API(PRStatus) _MD_create_file_map(PRFileMap *fmap, PRInt64 size); --NSPR_API(PRInt32) _MD_get_mem_map_alignment(void); --NSPR_API(void *) _MD_mem_map(PRFileMap *fmap, PRInt64 offset, PRUint32 len); --NSPR_API(PRStatus) _MD_mem_unmap(void *addr, PRUint32 size); --NSPR_API(PRStatus) _MD_close_file_map(PRFileMap *fmap); -- --/* Time related */ -- --NSPR_API(PRTime) _MD_now(void); --NSPR_API(void) _MD_interval_init(void); --NSPR_API(PRIntervalTime) _MD_get_interval(void); --NSPR_API(PRIntervalTime) _MD_interval_per_sec(void); -- --/* File locking */ -- --NSPR_API(PRStatus) _MD_lockfile(PRInt32 osfd); --NSPR_API(PRStatus) _MD_tlockfile(PRInt32 osfd); --NSPR_API(PRStatus) _MD_unlockfile(PRInt32 osfd); -- - #endif /* _nspr_beos_defs_h___*/ -Index: mozilla/nsprpub/pr/include/private/primpl.h -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/include/private/primpl.h,v -retrieving revision 3.84.2.2 -diff -u -8 -p -w -r3.84.2.2 primpl.h ---- mozilla/nsprpub/pr/include/private/primpl.h 25 Jul 2007 07:08:28 -0000 3.84.2.2 -+++ mozilla/nsprpub/pr/include/private/primpl.h 8 Jul 2009 21:53:12 -0000 -@@ -45,20 +45,16 @@ - * This macro causes chaos if signal.h gets included before pthread.h. - * To be safe, we include pthread.h first. - */ - - #if defined(_PR_PTHREADS) - #include - #endif - --#if defined(_PR_BTHREADS) --#include --#endif -- - #ifdef WINNT - /* Need to force service-pack 3 extensions to be defined by - ** setting _WIN32_WINNT to NT 4.0 for winsock.h, winbase.h, winnt.h. - */ - #ifndef _WIN32_WINNT - #define _WIN32_WINNT 0x0400 - #elif (_WIN32_WINNT < 0x0400) - #undef _WIN32_WINNT -@@ -223,16 +219,30 @@ typedef struct PTDebug - } PTDebug; - - #endif /* defined(DEBUG) */ - - NSPR_API(void) PT_FPrintStats(PRFileDesc *fd, const char *msg); - - #else /* defined(_PR_PTHREADS) */ - -+#ifdef _PR_BTHREADS -+#define _MD_GET_ATTACHED_THREAD() (_PR_MD_CURRENT_THREAD()) -+ -+#define _PR_IS_NATIVE_THREAD(thread) 1 -+#define _PR_IS_NATIVE_THREAD_SUPPORTED() 1 -+/* -+extern PRInt32 _PR_MD_WRITE(PRFileDesc *fd, const void *buf, PRInt32 amount); -+#define _PR_MD_WRITE _MD_WRITE -+*/ -+NSPR_API(PRThread*) _PR_MD_CURRENT_THREAD(void); -+#define _PR_MD_CURRENT_THREAD _MD_CURRENT_THREAD -+ -+#else /* defined(_PR_BTHREADS) */ -+ - NSPR_API(void) PT_FPrintStats(PRFileDesc *fd, const char *msg); - - /* - ** This section is contains those parts needed to implement NSPR on - ** platforms in general. One would assume that the pthreads implementation - ** included lots of the same types, at least conceptually. - */ - -@@ -1296,16 +1306,17 @@ extern PRStatus _PR_MD_SET_FD_INHERITABL - PR_SetError( PR_PENDING_INTERRUPT_ERROR, 0); \ - } else { \ - PR_SetError(PR_IO_TIMEOUT_ERROR, 0); \ - } - - extern void *_PR_MD_GET_SP(PRThread *thread); - #define _PR_MD_GET_SP _MD_GET_SP - -+#endif /* defined(_PR_BTHREADS) */ - #endif /* defined(_PR_PTHREADS) */ - - /************************************************************************/ - /************************************************************************* - ** The remainder of the definitions are shared by pthreads and the classic - ** NSPR code. These too may be conditionalized. - *************************************************************************/ - /************************************************************************/ -@@ -1550,17 +1561,20 @@ struct PRThreadStack { - char *stackTop; /* top of stack from C's point of view */ - PRUint32 stackSize; /* size of usable portion of the stack */ - - PRSegment *seg; - PRThread* thr; /* back pointer to thread owning this stack */ - - #if defined(_PR_PTHREADS) - #else /* defined(_PR_PTHREADS) */ -+#if defined(_PR_BTHREADS) -+#else /* defined(_PR_BTHREADS) */ - _MDThreadStack md; -+#endif /* defined(_PR_BTHREADS) */ - #endif /* defined(_PR_PTHREADS) */ - }; - - extern void _PR_DestroyThreadPrivate(PRThread*); - - typedef void (PR_CALLBACK *_PRStartFn)(void *); - - struct PRThread { -@@ -1603,19 +1617,16 @@ struct PRThread { - PRUint32 syspoll_count; /* number of elements in syspoll_list */ - #if defined(_PR_POLL_WITH_SELECT) - int *selectfd_list; /* Unix fd's that PR_Poll selects on */ - PRUint32 selectfd_count; /* number of elements in selectfd_list */ - #endif - #elif defined(_PR_BTHREADS) - PRUint32 flags; - _MDThread md; -- PRBool io_pending; -- PRInt32 io_fd; -- PRBool io_suspended; - #else /* not pthreads or Be threads */ - _MDLock threadLock; /* Lock to protect thread state variables. - * Protects the following fields: - * state - * priority - * links - * wait - * cpu -@@ -1689,17 +1700,19 @@ struct PRProcessAttr { - - struct PRProcess { - _MDProcess md; - }; - - struct PRFileMap { - PRFileDesc *fd; - PRFileMapProtect prot; -+#if !defined(XP_BEOS) - _MDFileMap md; -+#endif /* !defined(XP_BEOS) */ - }; - - /************************************************************************/ - - /* - ** File descriptors of the NSPR layer can be in one of the - ** following states (stored in the 'state' field of struct - ** PRFilePrivate): -@@ -1760,18 +1773,20 @@ struct PRDir { - #ifdef MOZ_UNICODE - struct PRDirUTF16 { - PRDirEntry d; - _MDDirUTF16 md; - }; - #endif /* MOZ_UNICODE */ - - extern void _PR_InitSegs(void); -+#if !defined(_PR_BTHREADS) - extern void _PR_InitStacks(void); - extern void _PR_InitTPD(void); -+#endif /* !defined(_PR_BTHREADS) */ - extern void _PR_InitMem(void); - extern void _PR_InitEnv(void); - extern void _PR_InitCMon(void); - extern void _PR_InitIO(void); - extern void _PR_InitLog(void); - extern void _PR_InitNet(void); - extern void _PR_InitClock(void); - extern void _PR_InitLinker(void); -@@ -1812,17 +1827,20 @@ extern PRBool _PR_Obsolete(const char *o - /************************************************************************/ - - struct PRSegment { - void *vaddr; - PRUint32 size; - PRUintn flags; - #if defined(_PR_PTHREADS) - #else /* defined(_PR_PTHREADS) */ -+#if defined(_PR_BTHREADS) -+#else /* defined(_PR_BTHREADS) */ - _MDSegment md; -+#endif /* defined(_PR_BTHREADS) */ - #endif /* defined(_PR_PTHREADS) */ - }; - - /* PRSegment.flags */ - #define _PR_SEG_VM 0x1 - - /************************************************************************/ - -@@ -2109,28 +2127,28 @@ extern void _PR_MD_QUERY_FD_INHERITABLE( - /* --- PR_GetRandomNoise() related things --- */ - - extern PRSize _PR_MD_GetRandomNoise( void *buf, PRSize size ); - #define _PR_MD_GET_RANDOM_NOISE(buf,size) _PR_MD_GetRandomNoise((buf),(size)) - extern PRSize _pr_CopyLowBits( void *dest, PRSize dstlen, void *src, PRSize srclen ); - - /* end PR_GetRandomNoise() related */ - --#ifdef XP_BEOS -+#if defined(XP_BEOS) && !defined(BONE_VERSION) - - extern PRLock *_connectLock; - - typedef struct _ConnectListNode { - PRInt32 osfd; - PRNetAddr addr; - PRUint32 addrlen; - PRIntervalTime timeout; - } ConnectListNode; - - extern ConnectListNode connectList[64]; - - extern PRUint32 connectCount; - --#endif /* XP_BEOS */ -+#endif /* XP_BEOS && !BONE_VERSION */ - - PR_END_EXTERN_C - - #endif /* primpl_h___ */ -Index: mozilla/nsprpub/pr/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/Makefile.in,v -retrieving revision 1.40.2.2 -diff -u -8 -p -w -r1.40.2.2 Makefile.in ---- mozilla/nsprpub/pr/src/Makefile.in 19 Oct 2006 00:39:28 -0000 1.40.2.2 -+++ mozilla/nsprpub/pr/src/Makefile.in 8 Jul 2009 21:53:13 -0000 -@@ -270,36 +270,33 @@ endif - - ifdef USE_PTHREADS - OBJS += \ - pthreads/$(OBJDIR)/ptsynch.$(OBJ_SUFFIX) \ - pthreads/$(OBJDIR)/ptio.$(OBJ_SUFFIX) \ - pthreads/$(OBJDIR)/ptthread.$(OBJ_SUFFIX) \ - pthreads/$(OBJDIR)/ptmisc.$(OBJ_SUFFIX) - else -+ifndef USE_BTHREADS - OBJS += \ - io/$(OBJDIR)/prdir.$(OBJ_SUFFIX) \ - io/$(OBJDIR)/prfile.$(OBJ_SUFFIX) \ - io/$(OBJDIR)/prio.$(OBJ_SUFFIX) \ - io/$(OBJDIR)/prsocket.$(OBJ_SUFFIX) \ -- misc/$(OBJDIR)/pripcsem.$(OBJ_SUFFIX) -- --ifndef USE_BTHREADS --OBJS += \ -+ misc/$(OBJDIR)/pripcsem.$(OBJ_SUFFIX) \ - threads/$(OBJDIR)/prcthr.$(OBJ_SUFFIX) \ - threads/$(OBJDIR)/prdump.$(OBJ_SUFFIX) \ - threads/$(OBJDIR)/prmon.$(OBJ_SUFFIX) \ - threads/$(OBJDIR)/prsem.$(OBJ_SUFFIX) \ - threads/combined/$(OBJDIR)/prucpu.$(OBJ_SUFFIX) \ - threads/combined/$(OBJDIR)/prucv.$(OBJ_SUFFIX) \ - threads/combined/$(OBJDIR)/prulock.$(OBJ_SUFFIX) \ - threads/combined/$(OBJDIR)/prustack.$(OBJ_SUFFIX) \ - threads/combined/$(OBJDIR)/pruthr.$(OBJ_SUFFIX) - endif -- - endif - - ifeq ($(USE_CPLUS), 1) - OBJS += \ - cplus/$(OBJDIR)/rcbase.$(OBJ_SUFFIX) \ - cplus/$(OBJDIR)/rccv.$(OBJ_SUFFIX) \ - cplus/$(OBJDIR)/rcfileio.$(OBJ_SUFFIX) \ - cplus/$(OBJDIR)/rcinrval.$(OBJ_SUFFIX) \ -@@ -397,19 +394,23 @@ endif - - export:: $(TARGETS) - $(INSTALL) -m 444 $(TARGETS) $(dist_libdir) - ifdef SHARED_LIBRARY - ifeq ($(OS_ARCH),HP-UX) - $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir) - $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir) - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir)/lib -+else - $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir) - endif - endif -+endif - ifeq ($(MOZ_BITS),16) - $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/lib - $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/bin - endif - - ifeq ($(BUILD_AIX_RTL_LIBC),1) - $(AIX_RTL_LIBC): /usr/ccs/lib/libc.a - rtl_enable -o $@ $< -Index: mozilla/nsprpub/pr/src/bthreads/bsrcs.mk -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/bthreads/bsrcs.mk,v -retrieving revision 3.6 -diff -u -8 -p -w -r3.6 bsrcs.mk ---- mozilla/nsprpub/pr/src/bthreads/bsrcs.mk 25 Apr 2004 15:00:57 -0000 3.6 -+++ mozilla/nsprpub/pr/src/bthreads/bsrcs.mk 8 Jul 2009 21:53:13 -0000 -@@ -15,16 +15,17 @@ - # The Original Code is the Netscape Portable Runtime (NSPR). - # - # The Initial Developer of the Original Code is - # Netscape Communications Corporation. - # Portions created by the Initial Developer are Copyright (C) 1998-2000 - # the Initial Developer. All Rights Reserved. - # - # Contributor(s): -+# Fredrik Holmqvist - # - # Alternatively, the contents of this file may be used under the terms of - # either the GNU General Public License Version 2 or later (the "GPL"), or - # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - # in which case the provisions of the GPL or the LGPL are applicable instead - # of those above. If you wish to allow use of your version of this file only - # under the terms of either the GPL or the LGPL, and not to allow others to - # use your version of this file under the terms of the MPL, indicate your -@@ -41,9 +42,11 @@ - - BTCSRCS = \ - btthread.c \ - btlocks.c \ - btcvar.c \ - btmon.c \ - btsem.c \ - btmisc.c \ -+ btfile.c \ -+ btio.c \ - $(NULL) -Index: mozilla/nsprpub/pr/src/bthreads/btcvar.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/bthreads/btcvar.c,v -retrieving revision 3.9 -diff -u -8 -p -w -r3.9 btcvar.c ---- mozilla/nsprpub/pr/src/bthreads/btcvar.c 23 Feb 2005 17:43:13 -0000 3.9 -+++ mozilla/nsprpub/pr/src/bthreads/btcvar.c 8 Jul 2009 21:53:14 -0000 -@@ -15,33 +15,32 @@ - * The Original Code is the Netscape Portable Runtime (NSPR). - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998-2000 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): -+ * Fredrik Holmqvist - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - --#include -- - #include "primpl.h" - - /* - ** Create a new condition variable. - ** - ** "lock" is the lock used to protect the condition variable. - ** - ** Condition variables are synchronization objects that threads can use -@@ -125,63 +124,63 @@ PR_IMPLEMENT(PRStatus) - status_t err; - if( timeout == PR_INTERVAL_NO_WAIT ) - { - PR_Unlock( cvar->lock ); - PR_Lock( cvar->lock ); - return PR_SUCCESS; - } - -- if( atomic_add( &cvar->signalBenCount, 1 ) > 0 ) -+ if( _MD_ATOMIC_INCREMENT( &cvar->signalBenCount ) > 1 ) - { - if (acquire_sem(cvar->signalSem) == B_INTERRUPTED) - { -- atomic_add( &cvar->signalBenCount, -1 ); -+ _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ); - return PR_FAILURE; - } - } - cvar->nw += 1; -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } - - PR_Unlock( cvar->lock ); - if( timeout==PR_INTERVAL_NO_TIMEOUT ) - { - err = acquire_sem(cvar->sem); - } - else - { - err = acquire_sem_etc(cvar->sem, 1, B_RELATIVE_TIMEOUT, PR_IntervalToMicroseconds(timeout) ); - } - -- if( atomic_add( &cvar->signalBenCount, 1 ) > 0 ) -+ if( _MD_ATOMIC_INCREMENT( &cvar->signalBenCount ) > 1 ) - { - while (acquire_sem(cvar->signalSem) == B_INTERRUPTED); - } - - if (cvar->ns > 0) - { - release_sem_etc(cvar->handshakeSem, 1, B_DO_NOT_RESCHEDULE); - cvar->ns -= 1; - } - cvar->nw -= 1; -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } - - PR_Lock( cvar->lock ); -- if(err!=B_NO_ERROR) -+ if(err==B_NO_ERROR || (err == B_TIMED_OUT && timeout!=PR_INTERVAL_NO_TIMEOUT)) - { -- return PR_FAILURE; -- } - return PR_SUCCESS; - } -+ return PR_FAILURE; -+} - - /* - ** Notify ONE thread that is currently waiting on 'cvar'. Which thread is - ** dependent on the implementation of the runtime. Common sense would dictate - ** that all threads waiting on a single condition have identical semantics, - ** therefore which one gets notified is not significant. - ** - ** The calling thead must hold the lock that protects the condition, as -@@ -190,41 +189,41 @@ PR_IMPLEMENT(PRStatus) - ** - ** Returns PR_FAILURE if the caller has not locked the lock associated - ** with the condition variable. - */ - PR_IMPLEMENT(PRStatus) - PR_NotifyCondVar (PRCondVar *cvar) - { - status_t err ; -- if( atomic_add( &cvar->signalBenCount, 1 ) > 0 ) -+ if( _MD_ATOMIC_INCREMENT( &cvar->signalBenCount) > 1 ) - { - if (acquire_sem(cvar->signalSem) == B_INTERRUPTED) - { -- atomic_add( &cvar->signalBenCount, -1 ); -+ _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ); - return PR_FAILURE; - } - } - if (cvar->nw > cvar->ns) - { - cvar->ns += 1; - release_sem_etc(cvar->sem, 1, B_DO_NOT_RESCHEDULE); -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } - - while (acquire_sem(cvar->handshakeSem) == B_INTERRUPTED) - { - err = B_INTERRUPTED; - } - } - else - { -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } - } - return PR_SUCCESS; - } - - /* -@@ -236,41 +235,41 @@ PR_IMPLEMENT(PRStatus) - ** with the condition variable. - */ - PR_IMPLEMENT(PRStatus) - PR_NotifyAllCondVar (PRCondVar *cvar) - { - int32 handshakes; - status_t err = B_OK; - -- if( atomic_add( &cvar->signalBenCount, 1 ) > 0 ) -+ if( _MD_ATOMIC_INCREMENT( &cvar->signalBenCount) > 1 ) - { - if (acquire_sem(cvar->signalSem) == B_INTERRUPTED) - { -- atomic_add( &cvar->signalBenCount, -1 ); -+ _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ); - return PR_FAILURE; - } - } - - if (cvar->nw > cvar->ns) - { - handshakes = cvar->nw - cvar->ns; - cvar->ns = cvar->nw; - release_sem_etc(cvar->sem, handshakes, B_DO_NOT_RESCHEDULE); -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } - - while (acquire_sem_etc(cvar->handshakeSem, handshakes, 0, 0) == B_INTERRUPTED) - { - err = B_INTERRUPTED; - } - } - else - { -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } - } - return PR_SUCCESS; - } -Index: mozilla/nsprpub/pr/src/bthreads/btfile.c -=================================================================== -RCS file: mozilla/nsprpub/pr/src/bthreads/btfile.c -diff -N mozilla/nsprpub/pr/src/bthreads/btfile.c ---- /dev/null 1 Jan 1970 00:00:00 -0000 -+++ mozilla/nsprpub/pr/src/bthreads/btfile.c 5 Nov 2008 20:51:44 -0000 -@@ -0,0 +1,994 @@ -+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -+/* ***** BEGIN LICENSE BLOCK ***** -+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 -+ * -+ * The contents of this file are subject to the Mozilla Public License Version -+ * 1.1 (the "License"); you may not use this file except in compliance with -+ * the License. You may obtain a copy of the License at -+ * http://www.mozilla.org/MPL/ -+ * -+ * Software distributed under the License is distributed on an "AS IS" basis, -+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -+ * for the specific language governing rights and limitations under the -+ * License. -+ * -+ * The Original Code is the Netscape Portable Runtime (NSPR). -+ * -+ * The Initial Developer of the Original Code is -+ * Netscape Communications Corporation. -+ * Portions created by the Initial Developer are Copyright (C) 1998-2000 -+ * the Initial Developer. All Rights Reserved. -+ * -+ * Contributor(s): -+ * Roy Yokoyama -+ * -+ * Alternatively, the contents of this file may be used under the terms of -+ * either the GNU General Public License Version 2 or later (the "GPL"), or -+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -+ * in which case the provisions of the GPL or the LGPL are applicable instead -+ * of those above. If you wish to allow use of your version of this file only -+ * under the terms of either the GPL or the LGPL, and not to allow others to -+ * use your version of this file under the terms of the MPL, indicate your -+ * decision by deleting the provisions above and replace them with the notice -+ * and other provisions required by the GPL or the LGPL. If you do not delete -+ * the provisions above, a recipient may use your version of this file under -+ * the terms of any one of the MPL, the GPL or the LGPL. -+ * -+ * ***** END LICENSE BLOCK ***** */ -+ -+#include "primpl.h" -+ -+static PRLock *_pr_flock_lock; /* For PR_LockFile() etc. */ -+static PRCondVar *_pr_flock_cv; /* For PR_LockFile() etc. */ -+ -+PRErrorCode -+map_default_error(int err) -+{ -+ switch (err) { -+ case EACCES: -+ return PR_NO_ACCESS_RIGHTS_ERROR; -+ case EADDRINUSE: -+ return PR_ADDRESS_IN_USE_ERROR; -+ case EADDRNOTAVAIL: -+ return PR_ADDRESS_NOT_AVAILABLE_ERROR; -+ case EAFNOSUPPORT: -+ return PR_ADDRESS_NOT_SUPPORTED_ERROR; -+ /*Same as EWOULDBLOCK*/ -+ case EAGAIN: -+ return PR_WOULD_BLOCK_ERROR; -+#if EALREADY != EBUSY -+ case EALREADY: -+ return PR_ALREADY_INITIATED_ERROR; -+#endif -+ case EBADF: -+ return PR_BAD_DESCRIPTOR_ERROR; -+ case EBUSY: -+ return PR_FILESYSTEM_MOUNTED_ERROR; -+ case ECONNABORTED: -+ return PR_CONNECT_ABORTED_ERROR; -+ case ECONNREFUSED: -+ return PR_CONNECT_REFUSED_ERROR; -+ case EDEADLK: -+ return PR_DEADLOCK_ERROR; -+ case EEXIST: -+ return PR_FILE_EXISTS_ERROR; -+ case EFAULT: -+ return PR_ACCESS_FAULT_ERROR; -+ case EFBIG: -+ return PR_FILE_TOO_BIG_ERROR; -+ case EHOSTUNREACH: -+ return PR_HOST_UNREACHABLE_ERROR; -+ case EINPROGRESS: -+ return PR_IN_PROGRESS_ERROR; -+ case EINTR: -+ return PR_PENDING_INTERRUPT_ERROR; -+ case EINVAL: -+ return PR_INVALID_ARGUMENT_ERROR; -+ case EIO: -+ return PR_IO_ERROR; -+ case EISCONN: -+ return PR_IS_CONNECTED_ERROR; -+ case EISDIR: -+ return PR_IS_DIRECTORY_ERROR; -+ case ELOOP: -+ return PR_LOOP_ERROR; -+ case EMFILE: -+ return PR_PROC_DESC_TABLE_FULL_ERROR; -+ case EMLINK: -+ return PR_MAX_DIRECTORY_ENTRIES_ERROR; -+ case EMSGSIZE: -+ return PR_INVALID_ARGUMENT_ERROR; -+ case ENAMETOOLONG: -+ return PR_NAME_TOO_LONG_ERROR; -+ case ENETUNREACH: -+ return PR_NETWORK_UNREACHABLE_ERROR; -+ case ENFILE: -+ return PR_SYS_DESC_TABLE_FULL_ERROR; -+ case ENOBUFS: -+ return PR_INSUFFICIENT_RESOURCES_ERROR; -+ case ENODEV: -+ case ENOENT: -+ return PR_FILE_NOT_FOUND_ERROR; -+ case ENOLCK: -+ return PR_FILE_IS_LOCKED_ERROR; -+#if 0 -+ case ENOLINK: -+ return PR_REMOTE_FILE_ERROR; -+#endif -+ case ENOMEM: -+ return PR_OUT_OF_MEMORY_ERROR; -+ case ENOPROTOOPT: -+ return PR_INVALID_ARGUMENT_ERROR; -+ case ENOSPC: -+ return PR_NO_DEVICE_SPACE_ERROR; -+ case ENOTCONN: -+ return PR_NOT_CONNECTED_ERROR; -+ case ENOTDIR: -+ return PR_NOT_DIRECTORY_ERROR; -+ case ENOTSOCK: -+ return PR_NOT_SOCKET_ERROR; -+ case ENXIO: -+ return PR_FILE_NOT_FOUND_ERROR; -+ case EOPNOTSUPP: -+ return PR_NOT_TCP_SOCKET_ERROR; -+ case EOVERFLOW: -+ return PR_BUFFER_OVERFLOW_ERROR; -+ case EPERM: -+ return PR_NO_ACCESS_RIGHTS_ERROR; -+ case EPIPE: -+ return PR_CONNECT_RESET_ERROR; -+ case EPROTONOSUPPORT: -+ return PR_PROTOCOL_NOT_SUPPORTED_ERROR; -+ case EPROTOTYPE: -+ return PR_ADDRESS_NOT_SUPPORTED_ERROR; -+ case ERANGE: -+ return PR_INVALID_METHOD_ERROR; -+ case EROFS: -+ return PR_READ_ONLY_FILESYSTEM_ERROR; -+ case ESPIPE: -+ return PR_INVALID_METHOD_ERROR; -+ case ETIMEDOUT: -+ return PR_IO_TIMEOUT_ERROR; -+ case EXDEV: -+ return PR_NOT_SAME_DEVICE_ERROR; -+ default: -+ return PR_UNKNOWN_ERROR; -+ } -+} -+ -+ -+inline void -+set_open_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EAGAIN: -+ case ENOMEM: -+ prError = PR_INSUFFICIENT_RESOURCES_ERROR; -+ break; -+ case EBUSY: -+ prError = PR_IO_ERROR; -+ break; -+ case ENODEV: -+ prError = PR_FILE_NOT_FOUND_ERROR; -+ break; -+ case EOVERFLOW: -+ prError = PR_FILE_TOO_BIG_ERROR; -+ break; -+ case ETIMEDOUT: -+ prError = PR_REMOTE_FILE_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_rename_error(int err) -+{ -+ PR_SetError(err == EEXIST ? PR_DIRECTORY_NOT_EMPTY_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_unlink_error(int err) -+{ -+ PR_SetError(err == EPERM ? PR_IS_DIRECTORY_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_opendir_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_closedir_error(int err) -+{ -+ PR_SetError( err == EINVAL ? PR_BAD_DESCRIPTOR_ERROR : map_default_error(err), err); -+} -+ -+inline void -+set_readdir_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case 0: -+ case ENOENT: -+ prError = PR_NO_MORE_FILES_ERROR; -+ break; -+ case EOVERFLOW: -+ case EINVAL: -+ case ENXIO: -+ prError = PR_IO_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_mkdir_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+ -+inline void -+set_rmdir_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case ENOTEMPTY: -+ case EEXIST: -+ case EINVAL: -+ prError = PR_DIRECTORY_NOT_EMPTY_ERROR; -+ break; -+ case ETIMEDOUT: -+ prError = PR_REMOTE_FILE_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_close_error(int err) -+{ -+ PR_SetError( err == ETIMEDOUT ? PR_REMOTE_FILE_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_read_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_INVALID_METHOD_ERROR; -+ break; -+ case ENXIO: -+ prError = PR_INVALID_ARGUMENT_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_write_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_INVALID_METHOD_ERROR; -+ break; -+ case ENXIO: -+ prError = PR_INVALID_ARGUMENT_ERROR; -+ break; -+ case ETIMEDOUT: -+ prError = PR_REMOTE_FILE_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_lseek_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+ -+inline void -+set_fsync_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_INVALID_METHOD_ERROR; -+ break; -+ case ETIMEDOUT: -+ prError = PR_REMOTE_FILE_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_fstat_error(int err) -+{ -+ PR_SetError(err == ETIMEDOUT ? PR_REMOTE_FILE_ERROR : map_default_error(err), err); -+} -+ -+/* TODO: using uint8 instead of bool due to code that uses bool as var name in hard to change places -+ therefore we had to undef it. Or we need to change Haiku's headers around so we can include -+ everything we need except the bool decl. */ -+PRFileDesc * bt_CreateFileDesc(PRIntn osfd, const PRIOMethods * methods, _PRTriStateBool inheritable, uint8 nonblocking) { -+ const int blocking = 1; -+ PRFileDesc *fd = _PR_Getfd(); -+ if (fd == NULL) -+ { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ return NULL; -+ } -+ fd->secret->md.osfd = osfd; -+ fd->secret->state = _PR_FILEDESC_OPEN; -+ fd->secret->inheritable = inheritable; -+ fd->methods = methods; -+ if (nonblocking) -+ setsockopt(osfd, SOL_SOCKET, SO_NONBLOCK, &blocking, sizeof(blocking)); -+ return fd; -+} -+ -+ -+PR_IMPLEMENT(PRFileDesc*) PR_GetSpecialFD(PRSpecialFD osfd) -+{ -+ PR_ASSERT(osfd >= PR_StandardInput && osfd <= PR_StandardError); -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ -+ switch (osfd) -+ { -+ case PR_StandardInput: return _pr_stdin; -+ case PR_StandardOutput: return _pr_stdout; -+ case PR_StandardError: return _pr_stderr; -+ default: -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ } -+ return NULL; -+} /* PR_GetSpecialFD */ -+ -+ -+PR_IMPLEMENT(PRFileDesc*) PR_Open(const char *name, PRIntn flags, PRIntn mode) -+{ -+ return PR_OpenFile(name, flags, mode); -+} /* PR_Open */ -+ -+PR_IMPLEMENT(PRFileDesc*) PR_OpenFile(const char *name, PRIntn flags, PRIntn mode) -+{ -+ PRFileDesc *fd = NULL; -+ PRInt32 osflags; -+ PRInt32 osfd, err; -+ -+ if (flags & PR_RDWR) { -+ osflags = O_RDWR; -+ } else if (flags & PR_WRONLY) { -+ osflags = O_WRONLY; -+ } else { -+ osflags = O_RDONLY; -+ } -+ -+ if (flags & PR_EXCL) -+ osflags |= O_EXCL; -+ if (flags & PR_APPEND) -+ osflags |= O_APPEND; -+ if (flags & PR_TRUNCATE) -+ osflags |= O_TRUNC; -+ if (flags & PR_SYNC) { -+/* Ummmm. BeOS doesn't appear to -+ support sync in any way shape or -+ form. */ -+ return PR_NOT_IMPLEMENTED_ERROR; -+ } -+ -+ if (flags & PR_CREATE_FILE) -+ { -+ osflags |= O_CREAT; -+ } -+ -+ osfd = open(name, osflags, mode); -+ if (osfd < 0) { -+ err = _MD_ERRNO(); -+ set_open_error(err); -+ } -+ -+ if(osfd>=0) { -+ fd = bt_CreateFileDesc(osfd, PR_GetFileMethods(), _PR_TRI_TRUE, false); -+ if (fd == NULL) close(osfd); /* $$$ whoops! this is bad $$$ */ -+ } -+ return fd; -+} /* PR_OpenFile */ -+ -+/* -+** Import an existing OS file to NSPR -+*/ -+PR_IMPLEMENT(PRFileDesc*) PR_ImportFile(PRInt32 osfd) -+{ -+ PRFileDesc *fd = NULL; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ -+ fd = bt_CreateFileDesc(osfd, PR_GetFileMethods(), _PR_TRI_UNKNOWN, false); -+ if (NULL == fd) close(osfd); -+ return fd; -+} -+ -+/* -+** Import an existing OS pipe to NSPR -+*/ -+PR_IMPLEMENT(PRFileDesc*) PR_ImportPipe(PRInt32 osfd) -+{ -+ PRFileDesc *fd = NULL; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ fd = bt_CreateFileDesc(osfd, PR_GetPipeMethods(), _PR_TRI_UNKNOWN, true); -+ -+ if (NULL == fd) close(osfd); -+ return fd; -+} -+ -+ -+PR_IMPLEMENT(PRStatus) PR_Rename(const char *from, const char *to) -+{ -+ PRInt32 rv = -1, err; -+ -+ if (0 == access(to, F_OK)) -+ PR_SetError(PR_FILE_EXISTS_ERROR, 0); -+ else -+ { -+ rv = rename(from, to); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_rename_error(err); -+ } -+ } -+ if (rv < 0) { -+ return PR_FAILURE; -+ } else { -+ return PR_SUCCESS; -+ } -+} -+ -+PR_IMPLEMENT(PRStatus) PR_Delete(const char *name) -+{ -+ PRInt32 rv, err; -+ -+ rv = unlink(name); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_unlink_error(err); -+ return PR_FAILURE; -+ } else -+ return PR_SUCCESS; -+} -+ -+ -+PR_IMPLEMENT(PRDir*) PR_OpenDir(const char *name) -+{ -+ PRDir *dir; -+ PRInt32 err; -+ -+ dir = PR_NEW(PRDir); -+ if (dir) { -+ dir->md.d = opendir(name); -+ if (NULL == dir->md.d) { -+ err = _MD_ERRNO(); -+ set_opendir_error(err); -+ PR_DELETE(dir); -+ return NULL; -+ } -+ } else { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ } -+ return dir; -+} -+ -+PR_IMPLEMENT(PRDirEntry*) PR_ReadDir(PRDir *dir, PRDirFlags flags) -+{ -+ PRInt32 err; -+ struct dirent *de; -+ for (;;) { -+ /* -+ * XXX: readdir() is not MT-safe -+ */ -+ _MD_ERRNO() = 0; -+ de = readdir(dir->md.d); -+ -+ if (!de) { -+ err = _MD_ERRNO(); -+ set_readdir_error(err); -+ return 0; -+ } -+ -+ if ((flags & PR_SKIP_DOT) && -+ (de->d_name[0] == '.') && (de->d_name[1] == 0)) -+ continue; -+ -+ if ((flags & PR_SKIP_DOT_DOT) && -+ (de->d_name[0] == '.') && (de->d_name[1] == '.') && -+ (de->d_name[2] == 0)) -+ continue; -+ -+ if ((flags & PR_SKIP_HIDDEN) && (de->d_name[1] == '.')) -+ continue; -+ -+ break; -+ } -+ -+ dir->d.name = de->d_name; -+ return de->d_name ? &dir->d : NULL; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_CloseDir(PRDir *dir) -+{ -+ PRInt32 rv, err; -+ -+ if (dir && dir->md.d) { -+ rv = closedir(dir->md.d); -+ PR_DELETE(dir); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_closedir_error(err); -+ return PR_FAILURE; -+ } -+ } -+ return PR_SUCCESS; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_MkDir(const char *name, PRIntn mode) -+{ -+ status_t rv; -+ int err; -+ -+ rv = mkdir(name, mode); -+ -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_mkdir_error(err); -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_MakeDir(const char *name, PRIntn mode) -+{ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ return PR_MkDir(name, mode); -+} -+ -+PR_IMPLEMENT(PRStatus) PR_RmDir(const char *name) -+{ -+ PRInt32 rv, err; -+ -+ rv = rmdir(name); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_rmdir_error(err); -+ return PR_FAILURE; -+ } else -+ return PR_SUCCESS; -+} -+ -+PR_IMPLEMENT(PRInt32) -+PR_FileDesc2NativeHandle(PRFileDesc *fd) -+{ -+ if (fd) { -+ fd = PR_GetIdentitiesLayer(fd, PR_NSPR_IO_LAYER); -+ } -+ if (!fd) { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return -1; -+ } -+ -+ return fd->secret->md.osfd; -+} -+ -+#ifdef MOZ_UNICODE -+/* -+ * UTF16 Interface -+ */ -+PR_IMPLEMENT(PRDirUTF16*) PR_OpenDirUTF16(const PRUnichar *name) -+{ -+ PRDirUTF16 *dir; -+ PRStatus sts; -+ -+ dir = PR_NEW(PRDirUTF16); -+ if (dir) { -+ sts = _PR_MD_OPEN_DIR_UTF16(&dir->md,name); -+ if (sts != PR_SUCCESS) { -+ PR_DELETE(dir); -+ return NULL; -+ } -+ } else { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ } -+ return dir; -+} -+ -+PR_IMPLEMENT(PRDirEntryUTF16*) PR_ReadDirUTF16(PRDirUTF16 *dir, PRDirFlags flags) -+{ -+ /* -+ * _MD_READ_DIR_UTF16 return a PRUnichar* to the name; allocation in -+ * machine-dependent code -+ */ -+ PRUnichar* name = _PR_MD_READ_DIR_UTF16(&dir->md, flags); -+ dir->d.name = name; -+ return name ? &dir->d : NULL; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_CloseDirUTF16(PRDirUTF16 *dir) -+{ -+ PRInt32 rv; -+ -+ if (dir) { -+ rv = _PR_MD_CLOSE_DIR_UTF16(&dir->md); -+ PR_DELETE(dir); -+ if (rv < 0) -+ return PR_FAILURE; -+ else -+ return PR_SUCCESS; -+ } -+ return PR_SUCCESS; -+} -+ -+#endif /* MOZ_UNICODE */ -+ -+ -+static PRStatus PR_CALLBACK FileClose(PRFileDesc *fd) -+{ -+ PRInt32 err; -+ if (!fd || !fd->secret -+ || (fd->secret->state != _PR_FILEDESC_OPEN -+ && fd->secret->state != _PR_FILEDESC_CLOSED)) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ if (fd->secret->state == _PR_FILEDESC_OPEN) { -+ if (close(fd->secret->md.osfd) < 0) { -+ err = _MD_ERRNO(); -+ set_close_error(err); -+ return PR_FAILURE; -+ } -+ fd->secret->state = _PR_FILEDESC_CLOSED; -+ } -+ PR_ASSERT(fd); -+ _PR_Putfd(fd); -+ return PR_SUCCESS; -+} -+ -+static PRInt32 PR_CALLBACK FileRead(PRFileDesc *fd, void *buf, PRInt32 amount) -+{ -+ PRInt32 rv,err = 0; -+ -+ rv = read(fd->secret->md.osfd, buf, amount); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_read_error(err); -+ PR_ASSERT(rv == -1); -+ } -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("read -> %d", rv)); -+ return rv; -+} -+ -+static PRInt32 PR_CALLBACK FileWrite(PRFileDesc *fd, const void *buf, PRInt32 amount) -+{ -+ PRInt32 rv,err = 0; -+ PRInt32 temp, count; -+ -+ count = 0; -+ while (amount > 0) { -+ temp = write(fd->secret->md.osfd, buf, amount); -+ if (temp < 0) { -+ err = _MD_ERRNO(); -+ set_write_error(err); -+ count = -1; -+ break; -+ } -+ count += temp; -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ buf = (const void*) ((const char*)buf + temp); -+ amount -= temp; -+ } -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("write -> %d", count)); -+ return count; -+} -+ -+static PRInt32 PR_CALLBACK FileAvailable(PRFileDesc *fd) -+{ -+ PRInt32 result, cur, end, err; -+ -+ cur = lseek(fd->secret->md.osfd, 0, PR_SEEK_CUR); -+ -+ if (cur >= 0) -+ end = lseek(fd->secret->md.osfd, 0, PR_SEEK_END); -+ -+ if ((cur < 0) || (end < 0)) { -+ err = _MD_ERRNO(); -+ set_lseek_error(err); -+ return -1; -+ } -+ -+ result = end - cur; -+ lseek(fd->secret->md.osfd, cur, PR_SEEK_SET); -+ -+ return result; -+} -+ -+static PRInt64 PR_CALLBACK FileAvailable64(PRFileDesc *fd) -+{ -+ PRInt64 result, cur, end; -+ PRInt64 minus_one; -+ PRInt32 err; -+ -+ cur = lseek(fd->secret->md.osfd, LL_ZERO, PR_SEEK_CUR); -+ -+ if (LL_GE_ZERO(cur)) -+ end = lseek(fd->secret->md.osfd, LL_ZERO, PR_SEEK_END); -+ -+ if (!LL_GE_ZERO(cur) || !LL_GE_ZERO(end)) { -+ LL_I2L(minus_one, -1); -+ err = _MD_ERRNO(); -+ set_lseek_error(err); -+ return minus_one; -+ } -+ LL_SUB(result, end, cur); -+ lseek(fd->secret->md.osfd, cur, PR_SEEK_SET); -+ return result; -+} -+ -+static PRStatus PR_CALLBACK FileSync(PRFileDesc *fd) -+{ -+ PRInt32 result, err; -+ result = fsync(fd->secret->md.osfd); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_fsync_error(err); -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+static PROffset32 PR_CALLBACK FileSeek(PRFileDesc *fd, PROffset32 offset, PRSeekWhence whence) -+{ -+ PROffset32 result; -+ PRInt32 err; -+ result = lseek(fd->secret->md.osfd, offset, whence); -+ if(result<0) { -+ err = _MD_ERRNO(); -+ set_lseek_error(err); -+ } -+ return result; -+} -+ -+static PROffset64 PR_CALLBACK FileSeek64(PRFileDesc *fd, PROffset64 offset, PRSeekWhence whence) -+{ -+ PROffset64 result; -+ PRInt32 err; -+ -+ result = lseek(fd->secret->md.osfd, offset, whence); -+ if(!LL_GE_ZERO(result)) { -+ err = _MD_ERRNO(); -+ set_lseek_error(err); -+ } -+ return result; -+} -+ -+static PRStatus PR_CALLBACK FileGetInfo(PRFileDesc *fd, PRFileInfo *info) -+{ -+ struct stat sb; -+ PRInt64 s, s2us; -+ PRInt32 rv, err; -+ -+ rv = fstat(fd->secret->md.osfd, &sb); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_fstat_error(err); -+ return PR_FAILURE; -+ } -+ if(info) { -+ if (S_IFREG & sb.st_mode) -+ info->type = PR_FILE_FILE ; -+ else if (S_IFDIR & sb.st_mode) -+ info->type = PR_FILE_DIRECTORY; -+ else -+ info->type = PR_FILE_OTHER; -+ /* Use lower 32 bits of file size */ -+ info->size = ( sb.st_size & 0xffffffff); -+ LL_I2L(s, sb.st_mtime); -+ LL_I2L(s2us, PR_USEC_PER_SEC); -+ LL_MUL(s, s, s2us); -+ info->modifyTime = s; -+ LL_I2L(s, sb.st_ctime); -+ LL_MUL(s, s, s2us); -+ info->creationTime = s; -+ } -+ return PR_SUCCESS; -+} -+ -+static PRStatus PR_CALLBACK FileGetInfo64(PRFileDesc *fd, PRFileInfo64 *info) -+{ -+ struct stat sb; -+ PRInt64 s, s2us; -+ PRInt32 rv, err; -+ -+ rv = fstat(fd->secret->md.osfd, &sb); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_fstat_error(err); -+ return PR_FAILURE; -+ } -+ if(info) { -+ if (S_IFREG & sb.st_mode) -+ info->type = PR_FILE_FILE ; -+ else if (S_IFDIR & sb.st_mode) -+ info->type = PR_FILE_DIRECTORY; -+ else -+ info->type = PR_FILE_OTHER; -+ info->size = sb.st_size; -+ LL_I2L(s, sb.st_mtime); -+ LL_I2L(s2us, PR_USEC_PER_SEC); -+ LL_MUL(s, s, s2us); -+ info->modifyTime = s; -+ LL_I2L(s, sb.st_ctime); -+ LL_MUL(s, s, s2us); -+ info->creationTime = s; -+ } -+ return PR_SUCCESS; -+} -+ -+static PRInt16 PR_CALLBACK FilePoll( -+ PRFileDesc *fd, PRInt16 in_flags, PRInt16 *out_flags) -+{ -+ *out_flags = 0; -+ return in_flags; -+} /* FilePoll */ -+ -+ -+static PRIOMethods _pr_fileMethods = { -+ PR_DESC_FILE, -+ FileClose, -+ FileRead, -+ FileWrite, -+ FileAvailable, -+ FileAvailable64, -+ FileSync, -+ FileSeek, -+ FileSeek64, -+ FileGetInfo, -+ FileGetInfo64, -+ (PRWritevFN)_PR_InvalidInt, -+ (PRConnectFN)_PR_InvalidStatus, -+ (PRAcceptFN)_PR_InvalidDesc, -+ (PRBindFN)_PR_InvalidStatus, -+ (PRListenFN)_PR_InvalidStatus, -+ (PRShutdownFN)_PR_InvalidStatus, -+ (PRRecvFN)_PR_InvalidInt, -+ (PRSendFN)_PR_InvalidInt, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ FilePoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ (PRGetsocknameFN)_PR_InvalidStatus, -+ (PRGetpeernameFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRGetsocketoptionFN)_PR_InvalidStatus, -+ (PRSetsocketoptionFN)_PR_InvalidStatus, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+PR_IMPLEMENT(const PRIOMethods*) PR_GetFileMethods(void) -+{ -+ return &_pr_fileMethods; -+} -+ -+ -+static PRInt32 PR_CALLBACK PipeAvailable(PRFileDesc *fd) -+{ -+ PRInt32 rv; -+ rv = _bt_socketavailable(fd); -+ return rv; -+} -+ -+static PRInt64 PR_CALLBACK PipeAvailable64(PRFileDesc *fd) -+{ -+ PRInt64 rv; -+ LL_I2L(rv, _bt_socketavailable(fd)); -+ return rv; -+} -+ -+static PRStatus PR_CALLBACK PipeSync(PRFileDesc *fd) -+{ -+ return PR_SUCCESS; -+} -+ -+ -+static PRIOMethods _pr_pipeMethods = { -+ PR_DESC_PIPE, -+ FileClose, -+ FileRead, -+ FileWrite, -+ PipeAvailable, -+ PipeAvailable64, -+ PipeSync, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ (PRWritevFN)_PR_InvalidInt, -+ (PRConnectFN)_PR_InvalidStatus, -+ (PRAcceptFN)_PR_InvalidDesc, -+ (PRBindFN)_PR_InvalidStatus, -+ (PRListenFN)_PR_InvalidStatus, -+ (PRShutdownFN)_PR_InvalidStatus, -+ (PRRecvFN)_PR_InvalidInt, -+ (PRSendFN)_PR_InvalidInt, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ FilePoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ (PRGetsocknameFN)_PR_InvalidStatus, -+ (PRGetpeernameFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRGetsocketoptionFN)_PR_InvalidStatus, -+ (PRSetsocketoptionFN)_PR_InvalidStatus, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+PR_IMPLEMENT(const PRIOMethods*) PR_GetPipeMethods(void) -+{ -+ return &_pr_pipeMethods; -+} -+ -+void _PR_InitIO(void) { -+ const PRIOMethods *methods = PR_GetFileMethods(); -+ _PR_InitFdCache(); -+ _pr_flock_lock = PR_NewLock(); -+ _pr_flock_cv = PR_NewCondVar(_pr_flock_lock); -+ _pr_stdin = bt_CreateFileDesc(0, PR_GetFileMethods(), _PR_TRI_UNKNOWN, false); -+ _pr_stdout = bt_CreateFileDesc(1, PR_GetFileMethods(), _PR_TRI_UNKNOWN, false); -+ _pr_stderr = bt_CreateFileDesc(2, PR_GetFileMethods(), _PR_TRI_UNKNOWN, false); -+} -+ -Index: mozilla/nsprpub/pr/src/bthreads/btio.c -=================================================================== -RCS file: mozilla/nsprpub/pr/src/bthreads/btio.c -diff -N mozilla/nsprpub/pr/src/bthreads/btio.c ---- /dev/null 1 Jan 1970 00:00:00 -0000 -+++ mozilla/nsprpub/pr/src/bthreads/btio.c 5 Nov 2008 20:51:44 -0000 -@@ -0,0 +1,2424 @@ -+/* -*- Mode: C++; c-basic-offset: 4 -*- */ -+/* ***** BEGIN LICENSE BLOCK ***** -+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 -+ * -+ * The contents of this file are subject to the Mozilla Public License Version -+ * 1.1 (the "License"); you may not use this file except in compliance with -+ * the License. You may obtain a copy of the License at -+ * http://www.mozilla.org/MPL/ -+ * -+ * Software distributed under the License is distributed on an "AS IS" basis, -+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -+ * for the specific language governing rights and limitations under the -+ * License. -+ * -+ * The Original Code is the Netscape Portable Runtime (NSPR). -+ * -+ * The Initial Developer of the Original Code is -+ * Netscape Communications Corporation. -+ * Portions created by the Initial Developer are Copyright (C) 1998-2000 -+ * the Initial Developer. All Rights Reserved. -+ * -+ * Contributor(s): -+ * -+ * Alternatively, the contents of this file may be used under the terms of -+ * either the GNU General Public License Version 2 or later (the "GPL"), or -+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -+ * in which case the provisions of the GPL or the LGPL are applicable instead -+ * of those above. If you wish to allow use of your version of this file only -+ * under the terms of either the GPL or the LGPL, and not to allow others to -+ * use your version of this file under the terms of the MPL, indicate your -+ * decision by deleting the provisions above and replace them with the notice -+ * and other provisions required by the GPL or the LGPL. If you do not delete -+ * the provisions above, a recipient may use your version of this file under -+ * the terms of any one of the MPL, the GPL or the LGPL. -+ * -+ * ***** END LICENSE BLOCK ***** */ -+ -+#include "primpl.h" -+#include -+#include -+#include -+ -+#define READ_FD 1 -+#define WRITE_FD 2 -+ -+#ifdef BONE_VERSION -+inline int closesocket(int socket) { -+ return close(socket); -+} -+#endif -+ -+ -+inline void -+set_stat_error(int err) -+{ -+ PR_SetError(err == ETIMEDOUT ? PR_REMOTE_FILE_ERROR : map_default_error(err), err); -+} -+ -+inline void -+set_access_error(int err) -+{ -+ PR_SetError(err == ETIMEDOUT ? PR_REMOTE_FILE_ERROR : map_default_error(err), err); -+} -+ -+inline void -+set_select_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_writev_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_connect_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EACCES: -+ case ELOOP: -+ case ENOENT: -+ prError = PR_ADDRESS_NOT_SUPPORTED_ERROR; -+ break; -+ case ENXIO: -+ prError = PR_IO_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+ -+} -+ -+inline void -+set_accept_error(int err) -+{ -+ PR_SetError(err == ENODEV ? PR_NOT_TCP_SOCKET_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_bind_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_SOCKET_ADDRESS_IS_BOUND_ERROR; -+ break; -+ case EIO: -+ case EISDIR: -+ case ELOOP: -+ case ENOENT: -+ case ENOTDIR: -+ case EROFS: -+ prError = PR_ADDRESS_NOT_SUPPORTED_ERROR; -+ break; -+ case ENXIO: -+ prError = PR_IO_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+inline void -+set_listen_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_shutdown_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_socketpair_error(int err) -+{ -+ PR_SetError(err == ENOMEM ? PR_INSUFFICIENT_RESOURCES_ERROR : map_default_error(err), err); -+} -+ -+inline void -+set_recv_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_recvfrom_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+ -+inline void -+set_send_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_sendto_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_getsockname_error(int err) -+{ -+ PR_SetError(err == ENOMEM ? PR_INSUFFICIENT_RESOURCES_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_getpeername_error(int err) -+{ -+ PR_SetError(err == ENOMEM ? PR_INSUFFICIENT_RESOURCES_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_getsockopt_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_BUFFER_OVERFLOW_ERROR; -+ break; -+ case ENOMEM: -+ prError = PR_INSUFFICIENT_RESOURCES_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+inline void -+set_setsockopt_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_BUFFER_OVERFLOW_ERROR; -+ break; -+ case ENOMEM: -+ prError = PR_INSUFFICIENT_RESOURCES_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_socket_error(int err) -+{ -+ PR_SetError( err == ENOMEM ? PR_INSUFFICIENT_RESOURCES_ERROR : map_default_error(err), err); -+} -+ -+ -+PR_IMPLEMENT(PRStatus) PR_GetFileInfo(const char *fn, PRFileInfo *info) -+{ -+ struct stat sb; -+ PRInt32 rv, err; -+ PRInt64 s, s2us; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ rv = stat(fn, &sb); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_stat_error(err); -+ return PR_FAILURE; -+ } -+ if (info) { -+ if (S_IFREG & sb.st_mode) -+ info->type = PR_FILE_FILE; -+ else if (S_IFDIR & sb.st_mode) -+ info->type = PR_FILE_DIRECTORY; -+ else -+ info->type = PR_FILE_OTHER; -+ -+ /* Use lower 32 bits of file size */ -+ info->size = sb.st_size & 0xffffffff; -+ LL_I2L(s, sb.st_mtime); -+ LL_I2L(s2us, PR_USEC_PER_SEC); -+ LL_MUL(s, s, s2us); -+ info->modifyTime = s; -+ LL_I2L(s, sb.st_ctime); -+ LL_MUL(s, s, s2us); -+ info->creationTime = s; -+ } -+ -+ return PR_SUCCESS; -+} -+ -+ -+PR_IMPLEMENT(PRStatus) PR_GetFileInfo64(const char *fn, PRFileInfo64 *info) -+{ -+ struct stat sb; -+ PRInt32 rv, err; -+ PRInt64 s, s2us; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ rv = stat(fn, &sb); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_stat_error(err); -+ return PR_FAILURE; -+ } -+ if (info) { -+ if (S_IFREG & sb.st_mode) -+ info->type = PR_FILE_FILE; -+ else if (S_IFDIR & sb.st_mode) -+ info->type = PR_FILE_DIRECTORY; -+ else -+ info->type = PR_FILE_OTHER; -+ -+ /* For the 64 bit version we can use -+ * the native st_size without modification -+ */ -+ info->size = sb.st_size; -+ LL_I2L(s, sb.st_mtime); -+ LL_I2L(s2us, PR_USEC_PER_SEC); -+ LL_MUL(s, s, s2us); -+ info->modifyTime = s; -+ LL_I2L(s, sb.st_ctime); -+ LL_MUL(s, s, s2us); -+ info->creationTime = s; -+ } -+ -+ return PR_SUCCESS; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_Access(const char *name, PRAccessHow how) -+{ -+ PRInt32 rv, err; -+ int checkFlags; -+ struct stat buf; -+ -+ switch (how) { -+ case PR_ACCESS_WRITE_OK: -+ checkFlags = S_IWUSR | S_IWGRP | S_IWOTH; -+ break; -+ -+ case PR_ACCESS_READ_OK: -+ checkFlags = S_IRUSR | S_IRGRP | S_IROTH; -+ break; -+ -+ case PR_ACCESS_EXISTS: -+ /* we don't need to examine st_mode. */ -+ break; -+ -+ default: { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return PR_FAILURE; -+ } -+ } -+ -+ rv = stat(name, &buf); -+ if (rv == 0 && how != PR_ACCESS_EXISTS && (!(buf.st_mode & checkFlags))) { -+ PR_SetError(PR_NO_ACCESS_RIGHTS_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_access_error(err); -+ return PR_FAILURE; -+ } else -+ return PR_SUCCESS; -+} -+ -+ -+PRInt32 -+_bt_socketavailable (PRFileDesc *fd) -+{ -+#ifdef BONE_VERSION -+ PRInt32 result; -+ -+ if (ioctl(fd->secret->md.osfd, FIONREAD, &result) < 0) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, _MD_ERRNO()); -+ return -1; -+ } -+ return result; -+#else -+ return PR_NOT_IMPLEMENTED_ERROR; -+#endif -+} -+ -+ -+#if defined(DEBUG) -+ -+PRBool IsValidNetAddr(const PRNetAddr *addr) -+{ -+ if ((addr != NULL) -+ && (addr->raw.family != PR_AF_INET6) -+ && (addr->raw.family != PR_AF_INET)) { -+ return PR_FALSE; -+ } -+ return PR_TRUE; -+} -+ -+static PRBool IsValidNetAddrLen(const PRNetAddr *addr, PRInt32 addr_len) -+{ -+ /* -+ * The definition of the length of a Unix domain socket address -+ * is not uniform, so we don't check it. -+ */ -+ if ((addr != NULL) -+ && (PR_NETADDR_SIZE(addr) != addr_len)) { -+ return PR_FALSE; -+ } -+ return PR_TRUE; -+} -+ -+#endif /* DEBUG */ -+ -+static PRInt32 socket_io_wait(PRInt32 osfd, PRInt32 fd_type, -+ PRIntervalTime timeout) -+{ -+ PRInt32 rv = -1; -+ struct timeval tv; -+ PRIntervalTime epoch, now, elapsed, remaining; -+ PRBool wait_for_remaining; -+ PRInt32 syserror; -+ fd_set rd_wr; -+ -+ switch (timeout) { -+ case PR_INTERVAL_NO_WAIT: -+ PR_SetError(PR_IO_TIMEOUT_ERROR, 0); -+ break; -+ case PR_INTERVAL_NO_TIMEOUT: -+ /* -+ * This is a special case of the 'default' case below. -+ * Please see the comments there. -+ */ -+ tv.tv_sec = _PR_INTERRUPT_CHECK_INTERVAL_SECS; -+ tv.tv_usec = 0; -+ FD_ZERO(&rd_wr); -+ do { -+ FD_SET(osfd, &rd_wr); -+ if (fd_type == READ_FD) -+ rv = select(osfd + 1, &rd_wr, NULL, NULL, &tv); -+ else -+ rv = select(osfd + 1, NULL, &rd_wr, NULL, &tv); -+ if (rv == -1 && (syserror = _MD_ERRNO()) != EINTR) { -+#ifdef BONE_VERSION -+ set_select_error(syserror); -+#else -+ if (syserror == EBADF) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, EBADF); -+ } else { -+ PR_SetError(PR_UNKNOWN_ERROR, syserror); -+ } -+#endif -+ break; -+ } -+ } while (rv == 0 || (rv == -1 && syserror == EINTR)); -+ break; -+ default: -+ now = epoch = PR_IntervalNow(); -+ remaining = timeout; -+ FD_ZERO(&rd_wr); -+ do { -+ /* -+ * We block in select for at most -+ * _PR_INTERRUPT_CHECK_INTERVAL_SECS seconds, -+ * so that there is an upper limit on the delay -+ * before the interrupt bit is checked. -+ */ -+ wait_for_remaining = PR_TRUE; -+ tv.tv_sec = PR_IntervalToSeconds(remaining); -+ if (tv.tv_sec > _PR_INTERRUPT_CHECK_INTERVAL_SECS) { -+ wait_for_remaining = PR_FALSE; -+ tv.tv_sec = _PR_INTERRUPT_CHECK_INTERVAL_SECS; -+ tv.tv_usec = 0; -+ } else { -+ tv.tv_usec = PR_IntervalToMicroseconds( -+ remaining - -+ PR_SecondsToInterval(tv.tv_sec)); -+ } -+ FD_SET(osfd, &rd_wr); -+ if (fd_type == READ_FD) -+ rv = select(osfd + 1, &rd_wr, NULL, NULL, &tv); -+ else -+ rv = select(osfd + 1, NULL, &rd_wr, NULL, &tv); -+ /* -+ * we don't consider EINTR a real error -+ */ -+ if (rv == -1 && (syserror = _MD_ERRNO()) != EINTR) { -+#ifdef BONE_VERSION -+ set_select_error(syserror); -+#else -+ if (syserror == EBADF) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, EBADF); -+ } else { -+ PR_SetError(PR_UNKNOWN_ERROR, syserror); -+ } -+#endif -+ break; -+ } -+ /* -+ * We loop again if select timed out or got interrupted -+ * by a signal, and the timeout deadline has not passed yet. -+ */ -+ if (rv == 0 || (rv == -1 && syserror == EINTR)) { -+ /* -+ * If select timed out, we know how much time -+ * we spent in blocking, so we can avoid a -+ * PR_IntervalNow() call. -+ */ -+ if (rv == 0) { -+ if (wait_for_remaining) { -+ now += remaining; -+ } else { -+ now += PR_SecondsToInterval(tv.tv_sec) -+ + PR_MicrosecondsToInterval(tv.tv_usec); -+ } -+ } else { -+ now = PR_IntervalNow(); -+ } -+ elapsed = (PRIntervalTime) (now - epoch); -+ if (elapsed >= timeout) { -+ PR_SetError(PR_IO_TIMEOUT_ERROR, 0); -+ rv = -1; -+ break; -+ } else { -+ remaining = timeout - elapsed; -+ } -+ } -+ } while (rv == 0 || (rv == -1 && syserror == EINTR)); -+ break; -+ } -+ return(rv); -+} -+ -+ -+static PRInt32 PR_CALLBACK SocketWritev(PRFileDesc *fd, const PRIOVec *iov, -+PRInt32 iov_size, PRIntervalTime timeout) -+{ -+#ifdef BONE_VERSION -+ int w, err = 0; -+ const PRIOVec *tmp_iov; -+#define LOCAL_MAXIOV 8 -+ PRIOVec local_iov[LOCAL_MAXIOV]; -+ PRIOVec *iov_copy = NULL; -+ int tmp_out; -+ int index, iov_cnt; -+ int count=0, sz = 0; /* 'count' is the return value. */ -+ int i, amount = 0; -+ -+ /* -+ * Assume the first writev will succeed. Copy iov's only on -+ * failure. -+ */ -+ tmp_iov = iov; -+ for (index = 0; index < iov_size; index++) -+ sz += iov[index].iov_len; -+ -+ iov_cnt = iov_size; -+ -+ while (sz > 0) { -+/* -+ /* -+ * Calculate the total number of bytes to be sent; needed for -+ * optimization later. -+ * We could avoid this if this number was passed in; but it is -+ * probably not a big deal because iov_size is usually small (less than -+ * 3) -+ */ -+ if (!fd->secret->nonblocking) { -+ for (i=0; isecret->md.osfd, (const struct iovec*)tmp_iov, iov_size)) == -1) { -+ err = _MD_ERRNO(); -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ if ((w = socket_io_wait(fd->secret->md.osfd, WRITE_FD, timeout))<0) -+ goto done; -+ -+ } else if (err == EINTR) { -+ continue; -+ } else { -+ break; -+ } -+ } -+ /* -+ * optimization; if bytes sent is less than "amount" call -+ * select before returning. This is because it is likely that -+ * the next writev() call will return EWOULDBLOCK. -+ */ -+ if ((!fd->secret->nonblocking) && (w > 0) && (w < amount) -+ && (timeout != PR_INTERVAL_NO_WAIT)) { -+ if (socket_io_wait(fd->secret->md.osfd, WRITE_FD, timeout) < 0) { -+ w = -1; -+ goto done; -+ } -+ } -+ -+ if (w < 0) { -+ set_writev_error(err); -+ } -+done: -+ -+ -+ if (w < 0) { -+ count = -1; -+ break; -+ } -+ count += w; -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ sz -= w; -+ -+ if (sz > 0) { -+ /* find the next unwritten vector */ -+ for ( index = 0, tmp_out = count; -+ tmp_out >= iov[index].iov_len; -+ tmp_out -= iov[index].iov_len, index++){;} /* nothing to execute */ -+ -+ if (tmp_iov == iov) { -+ /* -+ * The first writev failed so we -+ * must copy iov's around. -+ * Avoid calloc/free if there -+ * are few enough iov's. -+ */ -+ if (iov_size - index <= LOCAL_MAXIOV) -+ iov_copy = local_iov; -+ else if ((iov_copy = (PRIOVec *) PR_CALLOC((iov_size - index) * -+ sizeof *iov_copy)) == NULL) { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ return -1; -+ } -+ tmp_iov = iov_copy; -+ } -+ -+ PR_ASSERT(tmp_iov == iov_copy); -+ -+ /* fill in the first partial read */ -+ iov_copy[0].iov_base = &(((char *)iov[index].iov_base)[tmp_out]); -+ iov_copy[0].iov_len = iov[index].iov_len - tmp_out; -+ index++; -+ -+ /* copy the remaining vectors */ -+ for (iov_cnt=1; indexsecret->md.osfd; -+ -+#ifndef BONE_VERSION -+ fd->secret->md.connectValueValid = PR_FALSE; -+#endif -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ PRNetAddr addrCopy; -+ -+ addrCopy = *addr; -+ ((struct sockaddr *) &addrCopy)->sa_len = addrlen; -+ ((struct sockaddr *) &addrCopy)->sa_family = addr->raw.family; -+#endif -+ -+ /* (Copied from unix.c) -+ * We initiate the connection setup by making a nonblocking connect() -+ * call. If the connect() call fails, there are two cases we handle -+ * specially: -+ * 1. The connect() call was interrupted by a signal. In this case -+ * we simply retry connect(). -+ * 2. The NSPR socket is nonblocking and connect() fails with -+ * EINPROGRESS. We first wait until the socket becomes writable. -+ * Then we try to find out whether the connection setup succeeded -+ * or failed. -+ */ -+ -+retry: -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if ((rv = connect(osfd, (struct sockaddr *)&addrCopy, addrlen)) == -1) { -+#else -+ if ((rv = connect(osfd, (struct sockaddr *)addr, addrlen)) == -1) { -+#endif -+ err = _MD_ERRNO(); -+#ifndef BONE_VERSION -+ fd->secret->md.connectReturnValue = rv; -+ fd->secret->md.connectReturnError = err; -+ fd->secret->md.connectValueValid = PR_TRUE; -+#endif -+ if( err == EINTR ) { -+#ifndef BONE_VERSION -+ snooze( 100000L ); -+#endif -+ goto retry; -+ } -+ -+#ifndef BONE_VERSION -+ if(!fd->secret->nonblocking && ((err == EINPROGRESS) || (err==EAGAIN) || (err==EALREADY))) { -+ -+ /* -+ ** There's no timeout on this connect, but that's not -+ ** a big deal, since the connect times out anyways -+ ** after 30 seconds. Just sleep for 1/10th of a second -+ ** and retry until we go through or die. -+ */ -+ goto retry; -+ } -+ -+ if( fd->secret->nonblocking && ((err == EAGAIN) || (err == EINPROGRESS))) { -+ PR_Lock(_connectLock); -+ if (connectCount < sizeof(connectList)/sizeof(connectList[0])) { -+ connectList[connectCount].osfd = osfd; -+ memcpy(&connectList[connectCount].addr, addr, addrlen); -+ connectList[connectCount].addrlen = addrlen; -+ connectList[connectCount].timeout = timeout; -+ connectCount++; -+ PR_Unlock(_connectLock); -+ set_connect_error(err); -+ } else { -+ PR_Unlock(_connectLock); -+ PR_SetError(PR_INSUFFICIENT_RESOURCES_ERROR, 0); -+ } -+ return rv; -+ } -+#else /* BONE_VERSION */ -+ if(!fd->secret->nonblocking && (err == EINTR)) { -+ -+ rv = socket_io_wait(osfd, WRITE_FD, timeout); -+ if (rv == -1) { -+ return -1; -+ } -+ -+ PR_ASSERT(rv == 1); -+/* _MD_beos_get_nonblocking_connect_error always return PR_NOT_IMPLEMENTED.. -+ err = _MD_beos_get_nonblocking_connect_error(osfd); -+ if (err != 0) { -+ set_connect_error(err); -+ return -1; -+ } -+*/ -+ return 0; -+ } -+#endif -+ -+ set_connect_error(err); -+ } -+ -+ return rv; -+} -+ -+ -+static PRStatus PR_CALLBACK SocketConnect( -+ PRFileDesc *fd, const PRNetAddr *addr, PRIntervalTime timeout) -+{ -+ PRInt32 rv; /* Return value of _PR_MD_CONNECT */ -+ const PRNetAddr *addrp = addr; -+#if defined(_PR_INET6) -+ PRNetAddr addrCopy; -+ if (addr->raw.family == PR_AF_INET6) { -+ addrCopy = *addr; -+ addrCopy.raw.family = AF_INET6; -+ addrp = &addrCopy; -+ } -+#endif -+ -+ rv = _bt_CONNECT(fd, addrp, PR_NETADDR_SIZE(addr), timeout); -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("connect -> %d", rv)); -+ if (rv == 0) -+ return PR_SUCCESS; -+ else -+ return PR_FAILURE; -+} -+ -+static PRStatus PR_CALLBACK SocketConnectContinue( -+ PRFileDesc *fd, PRInt16 out_flags) -+{ -+ PRInt32 osfd; -+ int err; -+ int rv; -+ -+ if (out_flags & PR_POLL_NVAL) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ if ((out_flags & (PR_POLL_WRITE | PR_POLL_EXCEPT | PR_POLL_ERR)) == 0) { -+ PR_ASSERT(out_flags == 0); -+ PR_SetError(PR_IN_PROGRESS_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ osfd = fd->secret->md.osfd; -+ -+ -+#ifdef BONE_VERSION /* bug 122364 */ -+ /* temporary workaround until getsockopt(SO_ERROR) works in BONE */ -+ if (out_flags & PR_POLL_EXCEPT) { -+ PR_SetError(PR_CONNECT_REFUSED_ERROR, 0); -+ return PR_FAILURE; -+ } -+ PR_ASSERT(out_flags & PR_POLL_WRITE); -+ return PR_SUCCESS; -+#else -+ rv = recv(fd->secret->md.osfd, NULL, 0, 0); -+ PR_ASSERT(-1 == rv || 0 == rv); -+ -+ if (-1 == rv && 0 != errno && errno != EAGAIN && errno != EWOULDBLOCK ) { -+ set_connect_error(errno); -+ return PR_FAILURE; -+ } -+ else -+ return PR_SUCCESS; -+#endif -+} -+ -+PRInt32 -+_bt_accept (PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen, -+ PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+ while ((rv = accept(osfd, (struct sockaddr *) addr, -+ (int *)addrlen)) == -1) { -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ /* If it's SUPPOSED to be a blocking thread, wait -+ * a while to see if the triggering condition gets -+ * satisfied. -+ */ -+ /* Assume that we're always using a native thread */ -+ if ((rv = socket_io_wait(osfd, READ_FD, timeout)) < 0) -+ goto done; -+ } else if (err == EINTR) { -+ continue; -+ } else { -+ break; -+ } -+ } -+ if (rv < 0) { -+ set_accept_error(err); -+ } else if (addr != NULL) { -+ /* bug 134099 */ -+ err = getpeername(rv, (struct sockaddr *) addr, (int *)addrlen); -+ } -+done: -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if (rv != -1) { -+ /* Mask off the first byte of struct sockaddr (the length field) */ -+ if (addr) { -+ addr->raw.family = ((struct sockaddr *) addr)->sa_family; -+ } -+ } -+#endif /* _PR_HAVE_SOCKADDR_LEN */ -+ return(rv); -+} -+ -+ -+ -+static PRFileDesc* PR_CALLBACK SocketAccept(PRFileDesc *fd, PRNetAddr *addr, -+PRIntervalTime timeout) -+{ -+ PRInt32 osfd; -+ PRFileDesc *fd2; -+ PRUint32 al; -+ -+ al = sizeof(PRNetAddr); -+ osfd = _bt_accept(fd, addr, &al, timeout); -+ if (osfd == -1) -+ return 0; -+ fd2 = bt_CreateFileDesc(osfd, PR_GetTCPMethods(), _PR_TRI_TRUE, true); -+ if (!fd2) { -+ closesocket(osfd); -+ -+ return NULL; -+ } -+ -+ fd2->secret->nonblocking = fd->secret->nonblocking; -+ fd2->secret->inheritable = fd->secret->inheritable; -+ -+#ifdef _PR_INET6 -+ if (addr && (AF_INET6 == addr->raw.family)) -+ addr->raw.family = PR_AF_INET6; -+#endif -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+ PR_ASSERT(IsValidNetAddrLen(addr, al) == PR_TRUE); -+ -+ return fd2; -+} -+ -+ -+static PRStatus PR_CALLBACK SocketBind(PRFileDesc *fd, const PRNetAddr *addr) -+{ -+ PRInt32 result, err; -+ const PRNetAddr *addrp = addr; -+#if defined(_PR_INET6) || defined(_PR_HAVE_SOCKADDR_LEN) -+ PRNetAddr addrCopy; -+#endif -+ -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+#if defined(_PR_INET6) -+ if (addr->raw.family == PR_AF_INET6) { -+ addrCopy = *addr; -+ addrCopy.raw.family = AF_INET6; -+ addrp = &addrCopy; -+ } -+#endif -+ -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ addrCopy = *addrp; -+ ((struct sockaddr *) &addrCopy)->sa_len = PR_NETADDR_SIZE(addrp); -+ ((struct sockaddr *) &addrCopy)->sa_family = addr->raw.family; -+ result = bind(fd->secret->md.osfd, (struct sockaddr *) &addrCopy, PR_NETADDR_SIZE(addrp)); -+#else -+ result = bind(fd->secret->md.osfd, (struct sockaddr *) addrp, PR_NETADDR_SIZE(addrp)); -+#endif -+ -+ -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_bind_error(err); -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+static PRStatus PR_CALLBACK SocketListen(PRFileDesc *fd, PRIntn backlog) -+{ -+ PRInt32 result,err; -+#ifndef BONE_VERSION -+ /* Bug workaround! Setting listen to 0 on Be accepts no connections. -+ ** On most UN*Xes this sets the default. -+ */ -+ -+ if( backlog == 0 ) backlog = 5; -+#endif -+ result = listen(fd->secret->md.osfd, backlog); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_listen_error(err); -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+static PRStatus PR_CALLBACK SocketShutdown(PRFileDesc *fd, PRIntn how) -+{ -+ PRInt32 result,err; -+#ifndef BONE_VERSION -+ if (how == PR_SHUTDOWN_SEND) -+ fd->secret->md.sock_state = BE_SOCK_SHUTDOWN_WRITE; -+ else if (how == PR_SHUTDOWN_RCV) -+ fd->secret->md.sock_state = BE_SOCK_SHUTDOWN_READ; -+ else if (how == PR_SHUTDOWN_BOTH) { -+ fd->secret->md.sock_state = (BE_SOCK_SHUTDOWN_WRITE | BE_SOCK_SHUTDOWN_READ); -+ } -+#else /* BONE_VERSION */ -+ result = shutdown(fd->secret->md.osfd, how); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_shutdown_error(err); -+ return PR_FAILURE; -+ } -+#endif -+ return PR_SUCCESS; -+} -+ -+PRInt32 -+_bt_recv (PRFileDesc *fd, void *buf, PRInt32 amount, PRInt32 flags, -+ PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+#ifndef BONE_VERSION -+ if (fd->secret->md.sock_state & BE_SOCK_SHUTDOWN_READ) { -+ set_recv_error(EPIPE); -+ return -1; -+ } -+#endif -+ -+#ifdef BONE_VERSION -+ /* -+ ** Gah, stupid hack. If reading a zero amount, instantly return success. -+ ** BONE beta 6 returns EINVAL for reads of zero bytes, which parts of -+ ** mozilla use to check for socket availability. -+ */ -+ -+ if( 0 == amount ) return(0); -+#endif -+ -+ while ((rv = recv(osfd, buf, amount, flags)) == -1) { -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ /* If socket was supposed to be blocking, -+ wait a while for the condition to be -+ satisfied. */ -+ if ((rv = socket_io_wait(osfd, READ_FD, timeout)) < 0) -+ goto done; -+ } else if (err == EINTR) { -+ continue; -+ } else -+ break; -+ } -+ -+ if (rv < 0) { -+ set_recv_error(err); -+ } -+ -+done: -+ return(rv); -+} -+ -+static PRInt32 PR_CALLBACK SocketRecv(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, -+PRIntervalTime timeout) -+{ -+ PRInt32 rv; -+ -+ if ((flags != 0) && (flags != PR_MSG_PEEK)) { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return -1; -+ } -+ -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("recv: fd=%p osfd=%d buf=%p amount=%d flags=%d", -+ fd, fd->secret->md.osfd, buf, amount, flags)); -+ -+ -+ rv = _bt_recv(fd, buf, amount, flags, timeout); -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("recv -> %d, error = %d, os error = %d", -+ rv, PR_GetError(), PR_GetOSError())); -+ -+ return rv; -+} -+ -+static PRInt32 PR_CALLBACK SocketRead(PRFileDesc *fd, void *buf, PRInt32 amount) -+{ -+ return SocketRecv(fd, buf, amount, 0, PR_INTERVAL_NO_TIMEOUT); -+} -+ -+PRInt32 -+_bt_send (PRFileDesc *fd, const void *buf, PRInt32 amount, PRInt32 flags, -+ PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+#ifndef BONE_VERSION -+ if (fd->secret->md.sock_state & BE_SOCK_SHUTDOWN_WRITE) -+ { -+ set_send_error(EPIPE); -+ return -1; -+ } -+#endif -+ -+ while ((rv = send(osfd, buf, amount, flags)) == -1) { -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ -+#ifndef BONE_VERSION -+ -+ /* in UNIX implementations, you could do a socket_io_wait here. -+ * but since BeOS doesn't yet support WRITE notification in select, -+ * you're spanked. -+ */ -+ snooze( 10000L ); -+ continue; -+#else /* BONE_VERSION */ -+ if ((rv = socket_io_wait(osfd, WRITE_FD, timeout))< 0) -+ goto done; -+#endif -+ -+ } else if (err == EINTR) { -+ continue; -+ } else { -+ break; -+ } -+ } -+ -+#ifdef BONE_VERSION -+ /* -+ * optimization; if bytes sent is less than "amount" call -+ * select before returning. This is because it is likely that -+ * the next writev() call will return EWOULDBLOCK. -+ */ -+ if ((!fd->secret->nonblocking) && (rv > 0) && (rv < amount) -+ && (timeout != PR_INTERVAL_NO_WAIT)) { -+ if (socket_io_wait(osfd, WRITE_FD, timeout) < 0) { -+ rv = -1; -+ goto done; -+ } -+ } -+#endif /* BONE_VERSION */ -+ -+ if (rv < 0) { -+ set_send_error(err); -+ } -+ -+#ifdef BONE_VERSION -+done: -+#endif -+ return(rv); -+} -+ -+ -+static PRInt32 PR_CALLBACK SocketSend(PRFileDesc *fd, const void *buf, PRInt32 amount, -+PRIntn flags, PRIntervalTime timeout) -+{ -+ PRInt32 temp, count; -+ -+ count = 0; -+ while (amount > 0) { -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, -+ ("send: fd=%p osfd=%d buf=%p amount=%d", -+ fd, fd->secret->md.osfd, buf, amount)); -+ temp = _bt_send(fd, buf, amount, flags, timeout); -+ if (temp < 0) { -+ count = -1; -+ break; -+ } -+ -+ count += temp; -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ buf = (const void*) ((const char*)buf + temp); -+ -+ amount -= temp; -+ } -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("send -> %d", count)); -+ return count; -+} -+ -+static PRInt32 PR_CALLBACK SocketWrite(PRFileDesc *fd, const void *buf, PRInt32 amount) -+{ -+ return SocketSend(fd, buf, amount, 0, PR_INTERVAL_NO_TIMEOUT); -+} -+ -+static PRStatus PR_CALLBACK SocketClose(PRFileDesc *fd) -+{ -+ if (!fd || !fd->secret -+ || (fd->secret->state != _PR_FILEDESC_OPEN -+ && fd->secret->state != _PR_FILEDESC_CLOSED)) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ if (fd->secret->state == _PR_FILEDESC_OPEN) { -+ if (closesocket(fd->secret->md.osfd) < 0) { -+ return PR_FAILURE; -+ } -+ -+ fd->secret->state = _PR_FILEDESC_CLOSED; -+ } -+ -+ PR_ASSERT(fd); -+ _PR_Putfd(fd); -+ return PR_SUCCESS; -+} -+ -+static PRInt32 PR_CALLBACK SocketAvailable(PRFileDesc *fd) -+{ -+ PRInt32 rv; -+ rv = _bt_socketavailable(fd); -+ return rv; -+} -+ -+static PRInt64 PR_CALLBACK SocketAvailable64(PRFileDesc *fd) -+{ -+ PRInt64 rv; -+ LL_I2L(rv, _bt_socketavailable(fd)); -+ return rv; -+} -+ -+static PRStatus PR_CALLBACK SocketSync(PRFileDesc *fd) -+{ -+ return PR_SUCCESS; -+} -+ -+PRInt32 -+_bt_sendto (PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags, -+ const PRNetAddr *addr, PRUint32 addrlen, PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ PRNetAddr addrCopy; -+ -+ addrCopy = *addr; -+ ((struct sockaddr *) &addrCopy)->sa_len = addrlen; -+ ((struct sockaddr *) &addrCopy)->sa_family = addr->raw.family; -+ -+ while ((rv = sendto(osfd, buf, amount, flags, -+ (struct sockaddr *) &addrCopy, addrlen)) == -1) { -+#else -+ while ((rv = sendto(osfd, buf, amount, flags, -+ (struct sockaddr *) addr, addrlen)) == -1) { -+#endif -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ -+#ifdef BONE_VERSION -+ if ((rv = socket_io_wait(osfd, WRITE_FD, timeout))< 0) -+ goto done; -+#endif -+ } else if (err == EINTR) { -+ continue; -+ -+ } else { -+ break; -+ } -+ } -+ -+ if (rv < 0) { -+ set_sendto_error(err); -+ } -+ -+#ifdef BONE_VERSION -+done: -+#endif -+ return(rv); -+} -+ -+ -+static PRInt32 PR_CALLBACK SocketSendTo( -+ PRFileDesc *fd, const void *buf, PRInt32 amount, -+ PRIntn flags, const PRNetAddr *addr, PRIntervalTime timeout) -+{ -+ PRInt32 temp, count; -+ const PRNetAddr *addrp = addr; -+#if defined(_PR_INET6) -+ PRNetAddr addrCopy; -+#endif -+ -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+#if defined(_PR_INET6) -+ if (addr->raw.family == PR_AF_INET6) { -+ addrCopy = *addr; -+ addrCopy.raw.family = AF_INET6; -+ addrp = &addrCopy; -+ } -+#endif -+ -+ count = 0; -+ while (amount > 0) { -+ temp = _bt_sendto(fd, buf, amount, flags, -+ addrp, PR_NETADDR_SIZE(addr), timeout); -+ if (temp < 0) { -+ count = -1; -+ break; -+ } -+ count += temp; -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ buf = (const void*) ((const char*)buf + temp); -+ amount -= temp; -+ } -+ return count; -+} -+ -+PRInt32 -+_bt_recvfrom (PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, -+ PRNetAddr *addr, PRUint32 *addrlen, PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+ while ((*addrlen = PR_NETADDR_SIZE(addr)), -+ ((rv = recvfrom(osfd, buf, amount, flags, -+ (struct sockaddr *) addr, -+ (int *)addrlen)) == -1)) { -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ if ((rv = socket_io_wait(osfd, READ_FD, timeout)) < 0) -+ goto done; -+ -+ } else if (err == EINTR) { -+ continue; -+ } else { -+ break; -+ } -+ } -+ -+ if (rv < 0) { -+ set_recvfrom_error(err); -+ } -+ -+done: -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if (rv != -1) { -+ /* ignore the sa_len field of struct sockaddr */ -+ if (addr) { -+ addr->raw.family = ((struct sockaddr *) addr)->sa_family; -+ } -+ } -+#endif /* _PR_HAVE_SOCKADDR_LEN */ -+ return(rv); -+} -+ -+ -+ -+static PRInt32 PR_CALLBACK SocketRecvFrom(PRFileDesc *fd, void *buf, PRInt32 amount, -+PRIntn flags, PRNetAddr *addr, PRIntervalTime timeout) -+{ -+ PRInt32 rv; -+ PRUint32 al; -+ -+ al = sizeof(PRNetAddr); -+ rv = _bt_recvfrom(fd, buf, amount, flags, addr, &al, timeout); -+#ifdef _PR_INET6 -+ if (addr && (AF_INET6 == addr->raw.family)) -+ addr->raw.family = PR_AF_INET6; -+#endif -+ return rv; -+} -+ -+static PRInt32 PR_CALLBACK SocketAcceptRead(PRFileDesc *sd, PRFileDesc **nd, -+PRNetAddr **raddr, void *buf, PRInt32 amount, -+PRIntervalTime timeout) -+{ -+ /* The socket must be in blocking mode. */ -+ if (sd->secret->nonblocking) { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return -1; -+ } -+ *nd = NULL; -+ -+ return PR_EmulateAcceptRead(sd, nd, raddr, buf, amount, timeout); -+} -+ -+ -+static PRInt32 PR_CALLBACK SocketSendFile( -+ PRFileDesc *sd, PRSendFileData *sfd, -+ PRTransmitFileFlags flags, PRIntervalTime timeout) -+{ -+ /* The socket must be in blocking mode. */ -+ if (sd->secret->nonblocking) { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return -1; -+ } -+ return PR_EmulateSendFile(sd, sfd, flags, timeout); -+} -+ -+static PRInt32 PR_CALLBACK SocketTransmitFile(PRFileDesc *sd, PRFileDesc *fd, -+const void *headers, PRInt32 hlen, PRTransmitFileFlags flags, -+PRIntervalTime timeout) -+{ -+ PRSendFileData sfd; -+ -+ sfd.fd = fd; -+ sfd.file_offset = 0; -+ sfd.file_nbytes = 0; -+ sfd.header = headers; -+ sfd.hlen = hlen; -+ sfd.trailer = NULL; -+ sfd.tlen = 0; -+ -+ return(SocketSendFile(sd, &sfd, flags, timeout)); -+} -+ -+static PRStatus PR_CALLBACK SocketGetName(PRFileDesc *fd, PRNetAddr *addr) -+{ -+ PRInt32 result, err; -+ PRUint32 addrlen; -+ -+ addrlen = sizeof(PRNetAddr); -+ result = getsockname(fd->secret->md.osfd, (struct sockaddr *) addr, &addrlen); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_getsockname_error(err); -+ return PR_FAILURE; -+ } -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if (result == 0) { -+ /* ignore the sa_len field of struct sockaddr */ -+ if (addr) { -+ addr->raw.family = ((struct sockaddr *) addr)->sa_family; -+ } -+ } -+#endif /* _PR_HAVE_SOCKADDR_LEN */ -+ -+#ifdef _PR_INET6 -+ if (AF_INET6 == addr->raw.family) -+ addr->raw.family = PR_AF_INET6; -+#endif -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+ PR_ASSERT(IsValidNetAddrLen(addr, addrlen) == PR_TRUE); -+ return PR_SUCCESS; -+} -+ -+static PRStatus PR_CALLBACK SocketGetPeerName(PRFileDesc *fd, PRNetAddr *addr) -+{ -+ PRInt32 result, err; -+ PRUint32 addrlen; -+ -+ addrlen = sizeof(PRNetAddr); -+ result = getpeername(fd->secret->md.osfd, (struct sockaddr *) addr, &addrlen); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_getpeername_error(err); -+ return PR_FAILURE; -+ } -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if (result == 0) { -+ /* ignore the sa_len field of struct sockaddr */ -+ if (addr) { -+ addr->raw.family = ((struct sockaddr *) addr)->sa_family; -+ } -+ } -+#endif /* _PR_HAVE_SOCKADDR_LEN */ -+ -+#ifdef _PR_INET6 -+ if (AF_INET6 == addr->raw.family) -+ addr->raw.family = PR_AF_INET6; -+#endif -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+ PR_ASSERT(IsValidNetAddrLen(addr, addrlen) == PR_TRUE); -+ return PR_SUCCESS; -+} -+ -+static PRInt16 PR_CALLBACK SocketPoll( -+ PRFileDesc *fd, PRInt16 in_flags, PRInt16 *out_flags) -+{ -+ *out_flags = 0; -+ return in_flags; -+} /* SocketPoll */ -+ -+ -+PRStatus PR_CALLBACK SocketGetOption(PRFileDesc *fd, PRSocketOptionData *data) -+{ -+ PRStatus rv; -+ PRInt32 level, name, length, err; -+ -+ /* -+ * PR_SockOpt_Nonblocking is a special case that does not -+ * translate to a getsockopt() call -+ */ -+ if (PR_SockOpt_Nonblocking == data->option) -+ { -+ data->value.non_blocking = fd->secret->nonblocking; -+ return PR_SUCCESS; -+ } -+ -+ rv = _PR_MapOptionName(data->option, &level, &name); -+ if (PR_SUCCESS != rv) return rv; -+ -+ switch (data->option) -+ { -+ case PR_SockOpt_Linger: -+ { -+#ifdef BONE_VERSION -+ struct linger linger; -+ length = sizeof(linger); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char *) &linger, &length)) -+ { -+ PR_ASSERT(sizeof(linger) == length); -+ data->value.linger.polarity = -+ (linger.l_onoff) ? PR_TRUE : PR_FALSE; -+ data->value.linger.linger = -+ PR_SecondsToInterval(linger.l_linger); -+ return PR_SUCCESS; -+ } -+ break; -+#else -+ PR_SetError( PR_NOT_IMPLEMENTED_ERROR, 0 ); -+ return PR_FAILURE; -+#endif -+ } -+ case PR_SockOpt_Reuseaddr: -+ case PR_SockOpt_Keepalive: -+ case PR_SockOpt_NoDelay: -+ case PR_SockOpt_Broadcast: -+ { -+ PRIntn value; -+ length = sizeof(value); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char *) &value, &length)) -+ { -+ data->value.reuse_addr = (0 == value) ? PR_FALSE : PR_TRUE; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+ case PR_SockOpt_McastLoopback: -+ { -+ PRUint8 bool; -+ length = sizeof(bool); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&bool, &length)) -+ { -+ data->value.mcast_loopback = (0 == bool) ? PR_FALSE : PR_TRUE; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+ case PR_SockOpt_RecvBufferSize: -+ case PR_SockOpt_SendBufferSize: -+ case PR_SockOpt_MaxSegment: -+ { -+ PRIntn value; -+ length = sizeof(value); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&value, &length)) -+ { -+ data->value.recv_buffer_size = value; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+ case PR_SockOpt_IpTimeToLive: -+ case PR_SockOpt_IpTypeOfService: -+ { -+ /* These options should really be an int (or PRIntn). */ -+ length = sizeof(PRUintn); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&data->value.ip_ttl, &length)) -+ return PR_SUCCESS; -+ break; -+ } -+ case PR_SockOpt_McastTimeToLive: -+ { -+ PRUint8 ttl; -+ length = sizeof(ttl); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&ttl, &length)) -+ { -+ data->value.mcast_ttl = ttl; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+#ifdef IP_ADD_MEMBERSHIP -+ case PR_SockOpt_AddMember: -+ case PR_SockOpt_DropMember: -+ { -+ struct ip_mreq mreq; -+ length = sizeof(mreq); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&mreq, &length)) -+ { -+ data->value.add_member.mcaddr.inet.ip = -+ mreq.imr_multiaddr.s_addr; -+ data->value.add_member.ifaddr.inet.ip = -+ mreq.imr_interface.s_addr; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+#endif /* IP_ADD_MEMBERSHIP */ -+ case PR_SockOpt_McastInterface: -+ { -+ /* This option is a struct in_addr. */ -+ length = sizeof(data->value.mcast_if.inet.ip); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, -+ (char*)&data->value.mcast_if.inet.ip, &length)) -+ return PR_SUCCESS; -+ break; -+ } -+ default: -+ PR_NOT_REACHED("Unknown socket option"); -+ break; -+ } -+ err = _MD_ERRNO(); -+ set_getsockopt_error(err); -+ return PR_FAILURE; -+} /* SocketGetOption */ -+ -+PRStatus PR_CALLBACK SocketSetOption(PRFileDesc *fd, const PRSocketOptionData *data) -+{ -+ PRStatus rv; -+ PRInt32 level, name, result, err; -+ -+ /* -+ * PR_SockOpt_Nonblocking is a special case that does not -+ * translate to a setsockopt call. -+ */ -+ if (PR_SockOpt_Nonblocking == data->option) -+ { -+ fd->secret->nonblocking = data->value.non_blocking; -+ return PR_SUCCESS; -+ } -+ -+ rv = _PR_MapOptionName(data->option, &level, &name); -+ if (PR_SUCCESS != rv) return rv; -+ -+ switch (data->option) -+ { -+ case PR_SockOpt_Linger: -+ { -+#ifdef BONE_VERSION -+ struct linger linger; -+ linger.l_onoff = data->value.linger.polarity; -+ linger.l_linger = PR_IntervalToSeconds(data->value.linger.linger); -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&linger, sizeof(linger)); -+ break; -+#else -+ PR_SetError( PR_NOT_IMPLEMENTED_ERROR, 0 ); -+ return PR_FAILURE; -+#endif -+ } -+ case PR_SockOpt_Reuseaddr: -+ case PR_SockOpt_Keepalive: -+ case PR_SockOpt_NoDelay: -+ case PR_SockOpt_Broadcast: -+ { -+ PRIntn value; -+ value = (data->value.reuse_addr) ? 1 : 0; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&value, sizeof(value)); -+ break; -+ } -+ case PR_SockOpt_McastLoopback: -+ { -+ PRUint8 bool; -+ bool = data->value.mcast_loopback ? 1 : 0; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&bool, sizeof(bool)); -+ break; -+ } -+ case PR_SockOpt_RecvBufferSize: -+ case PR_SockOpt_SendBufferSize: -+ case PR_SockOpt_MaxSegment: -+ { -+ PRIntn value = data->value.recv_buffer_size; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&value, sizeof(value)); -+ break; -+ } -+ case PR_SockOpt_IpTimeToLive: -+ case PR_SockOpt_IpTypeOfService: -+ { -+ /* These options should really be an int (or PRIntn). */ -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&data->value.ip_ttl, sizeof(PRUintn)); -+ break; -+ } -+ case PR_SockOpt_McastTimeToLive: -+ { -+ PRUint8 ttl; -+ ttl = data->value.mcast_ttl; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&ttl, sizeof(ttl)); -+ break; -+ } -+#ifdef IP_ADD_MEMBERSHIP -+ case PR_SockOpt_AddMember: -+ case PR_SockOpt_DropMember: -+ { -+ struct ip_mreq mreq; -+ mreq.imr_multiaddr.s_addr = -+ data->value.add_member.mcaddr.inet.ip; -+ mreq.imr_interface.s_addr = -+ data->value.add_member.ifaddr.inet.ip; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&mreq, sizeof(mreq)); -+ break; -+ } -+#endif /* IP_ADD_MEMBERSHIP */ -+ case PR_SockOpt_McastInterface: -+ { -+ /* This option is a struct in_addr. */ -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&data->value.mcast_if.inet.ip, -+ sizeof(data->value.mcast_if.inet.ip)); -+ break; -+ } -+ default: -+ PR_NOT_REACHED("Unknown socket option"); -+ break; -+ } -+ if (0 == result) -+ return PR_SUCCESS; -+ err = _MD_ERRNO(); -+ set_setsockopt_error(err); -+ return PR_FAILURE; -+} /* SocketSetOption */ -+ -+ -+ -+static PRIOMethods tcpMethods = { -+ PR_DESC_SOCKET_TCP, -+ SocketClose, -+ SocketRead, -+ SocketWrite, -+ SocketAvailable, -+ SocketAvailable64, -+ SocketSync, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ SocketWritev, -+ SocketConnect, -+ SocketAccept, -+ SocketBind, -+ SocketListen, -+ SocketShutdown, -+ SocketRecv, -+ SocketSend, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ SocketPoll, -+ SocketAcceptRead, -+ SocketTransmitFile, -+ SocketGetName, -+ SocketGetPeerName, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ SocketGetOption, -+ SocketSetOption, -+ SocketSendFile, -+ SocketConnectContinue, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+static PRIOMethods udpMethods = { -+ PR_DESC_SOCKET_UDP, -+ SocketClose, -+ SocketRead, -+ SocketWrite, -+ SocketAvailable, -+ SocketAvailable64, -+ SocketSync, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ SocketWritev, -+ SocketConnect, -+ (PRAcceptFN)_PR_InvalidDesc, -+ SocketBind, -+ SocketListen, -+ SocketShutdown, -+ SocketRecv, -+ SocketSend, -+ SocketRecvFrom, -+ SocketSendTo, -+ SocketPoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ SocketGetName, -+ SocketGetPeerName, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ SocketGetOption, -+ SocketSetOption, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+ -+static PRIOMethods socketpollfdMethods = { -+ (PRDescType) 0, -+ (PRCloseFN)_PR_InvalidStatus, -+ (PRReadFN)_PR_InvalidInt, -+ (PRWriteFN)_PR_InvalidInt, -+ (PRAvailableFN)_PR_InvalidInt, -+ (PRAvailable64FN)_PR_InvalidInt64, -+ (PRFsyncFN)_PR_InvalidStatus, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ (PRWritevFN)_PR_InvalidInt, -+ (PRConnectFN)_PR_InvalidStatus, -+ (PRAcceptFN)_PR_InvalidDesc, -+ (PRBindFN)_PR_InvalidStatus, -+ (PRListenFN)_PR_InvalidStatus, -+ (PRShutdownFN)_PR_InvalidStatus, -+ (PRRecvFN)_PR_InvalidInt, -+ (PRSendFN)_PR_InvalidInt, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ SocketPoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ (PRGetsocknameFN)_PR_InvalidStatus, -+ (PRGetpeernameFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRGetsocketoptionFN)_PR_InvalidStatus, -+ (PRSetsocketoptionFN)_PR_InvalidStatus, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+static PRIOMethods _pr_socketpollfd_methods = { -+ (PRDescType) 0, -+ (PRCloseFN)_PR_InvalidStatus, -+ (PRReadFN)_PR_InvalidInt, -+ (PRWriteFN)_PR_InvalidInt, -+ (PRAvailableFN)_PR_InvalidInt, -+ (PRAvailable64FN)_PR_InvalidInt64, -+ (PRFsyncFN)_PR_InvalidStatus, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ (PRWritevFN)_PR_InvalidInt, -+ (PRConnectFN)_PR_InvalidStatus, -+ (PRAcceptFN)_PR_InvalidDesc, -+ (PRBindFN)_PR_InvalidStatus, -+ (PRListenFN)_PR_InvalidStatus, -+ (PRShutdownFN)_PR_InvalidStatus, -+ (PRRecvFN)_PR_InvalidInt, -+ (PRSendFN)_PR_InvalidInt, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ SocketPoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ (PRGetsocknameFN)_PR_InvalidStatus, -+ (PRGetpeernameFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRGetsocketoptionFN)_PR_InvalidStatus, -+ (PRSetsocketoptionFN)_PR_InvalidStatus, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+PR_IMPLEMENT(const PRIOMethods*) PR_GetTCPMethods() -+{ -+ return &tcpMethods; -+} -+ -+PR_IMPLEMENT(const PRIOMethods*) PR_GetUDPMethods() -+{ -+ return &udpMethods; -+} -+ -+static const PRIOMethods* PR_GetSocketPollFdMethods(void) -+{ -+ return &_pr_socketpollfd_methods; -+} /* PR_GetSocketPollFdMethods */ -+ -+PR_IMPLEMENT(PRInt32) PR_Poll(PRPollDesc *pds, PRIntn npds, PRIntervalTime timeout) -+{ -+ PRInt32 rv = 0; -+ /* -+ * This code is almost a duplicate of w32poll.c's _PR_MD_PR_POLL(). -+ */ -+ fd_set rd, wt, ex; -+ PRFileDesc *bottom; -+ PRPollDesc *pd, *epd; -+ PRInt32 maxfd = -1, ready, err; -+ PRIntervalTime remaining, elapsed, start; -+ -+ struct timeval tv, *tvp = NULL; -+ -+ if (0 == npds) { -+ PR_Sleep(timeout); -+ return rv; -+ } -+ -+ FD_ZERO(&rd); -+ FD_ZERO(&wt); -+ FD_ZERO(&ex); -+ -+ ready = 0; -+ for (pd = pds, epd = pd + npds; pd < epd; pd++) -+ { -+ PRInt16 in_flags_read = 0, in_flags_write = 0; -+ PRInt16 out_flags_read = 0, out_flags_write = 0; -+ -+ if ((NULL != pd->fd) && (0 != pd->in_flags)) -+ { -+ if (pd->in_flags & PR_POLL_READ) -+ { -+ in_flags_read = (pd->fd->methods->poll)(pd->fd, pd->in_flags & ~PR_POLL_WRITE, &out_flags_read); -+ } -+ if (pd->in_flags & PR_POLL_WRITE) -+ { -+ in_flags_write = (pd->fd->methods->poll)(pd->fd, pd->in_flags & ~PR_POLL_READ, &out_flags_write); -+ } -+ if ((0 != (in_flags_read & out_flags_read)) -+ || (0 != (in_flags_write & out_flags_write))) -+ { -+ /* this one's ready right now */ -+ if (0 == ready) -+ { -+ /* -+ * We will have to return without calling the -+ * system poll/select function. So zero the -+ * out_flags fields of all the poll descriptors -+ * before this one. -+ */ -+ PRPollDesc *prev; -+ for (prev = pds; prev < pd; prev++) -+ { -+ prev->out_flags = 0; -+ } -+ } -+ ready += 1; -+ pd->out_flags = out_flags_read | out_flags_write; -+ } -+ else -+ { -+ pd->out_flags = 0; /* pre-condition */ -+ -+ /* make sure this is an NSPR supported stack */ -+ bottom = PR_GetIdentitiesLayer(pd->fd, PR_NSPR_IO_LAYER); -+ PR_ASSERT(NULL != bottom); /* what to do about that? */ -+ if ((NULL != bottom) -+ && (_PR_FILEDESC_OPEN == bottom->secret->state)) -+ { -+ if (0 == ready) -+ { -+ PRInt32 osfd = bottom->secret->md.osfd; -+ if (osfd > maxfd) maxfd = osfd; -+ if (in_flags_read & PR_POLL_READ) -+ { -+ pd->out_flags |= _PR_POLL_READ_SYS_READ; -+ FD_SET(osfd, &rd); -+ } -+ if (in_flags_read & PR_POLL_WRITE) -+ { -+ pd->out_flags |= _PR_POLL_READ_SYS_WRITE; -+ FD_SET(osfd, &wt); -+ } -+ if (in_flags_write & PR_POLL_READ) -+ { -+ pd->out_flags |= _PR_POLL_WRITE_SYS_READ; -+ FD_SET(osfd, &rd); -+ } -+ if (in_flags_write & PR_POLL_WRITE) -+ { -+ pd->out_flags |= _PR_POLL_WRITE_SYS_WRITE; -+ FD_SET(osfd, &wt); -+ } -+ if (pd->in_flags & PR_POLL_EXCEPT) FD_SET(osfd, &ex); -+ } -+ } -+ else -+ { -+ if (0 == ready) -+ { -+ PRPollDesc *prev; -+ for (prev = pds; prev < pd; prev++) -+ { -+ prev->out_flags = 0; -+ } -+ } -+ ready += 1; /* this will cause an abrupt return */ -+ pd->out_flags = PR_POLL_NVAL; /* bogii */ -+ } -+ } -+ } -+ else -+ { -+ pd->out_flags = 0; -+ } -+ } -+ -+ if (0 != ready) return ready; /* no need to block */ -+ -+ remaining = timeout; -+ start = PR_IntervalNow(); -+ -+ retry: -+ if (timeout != PR_INTERVAL_NO_TIMEOUT) -+ { -+ PRInt32 ticksPerSecond = PR_TicksPerSecond(); -+ tv.tv_sec = remaining / ticksPerSecond; -+ tv.tv_usec = PR_IntervalToMicroseconds( remaining % ticksPerSecond ); -+ tvp = &tv; -+ } -+ -+ ready = select(maxfd + 1, &rd, &wt, &ex, tvp); -+ -+ if (ready == -1 && errno == EINTR) -+ { -+ if (timeout == PR_INTERVAL_NO_TIMEOUT) goto retry; -+ else -+ { -+ elapsed = (PRIntervalTime) (PR_IntervalNow() - start); -+ if (elapsed > timeout) ready = 0; /* timed out */ -+ else -+ { -+ remaining = timeout - elapsed; -+ goto retry; -+ } -+ } -+ } -+ -+ /* -+ ** Now to unravel the select sets back into the client's poll -+ ** descriptor list. Is this possibly an area for pissing away -+ ** a few cycles or what? -+ */ -+ if (ready > 0) -+ { -+ ready = 0; -+ for (pd = pds, epd = pd + npds; pd < epd; pd++) -+ { -+ PRInt16 out_flags = 0; -+ if ((NULL != pd->fd) && (0 != pd->in_flags)) -+ { -+ PRInt32 osfd; -+ bottom = PR_GetIdentitiesLayer(pd->fd, PR_NSPR_IO_LAYER); -+ PR_ASSERT(NULL != bottom); -+ -+ osfd = bottom->secret->md.osfd; -+ -+ if (FD_ISSET(osfd, &rd)) -+ { -+ if (pd->out_flags & _PR_POLL_READ_SYS_READ) -+ out_flags |= PR_POLL_READ; -+ if (pd->out_flags & _PR_POLL_WRITE_SYS_READ) -+ out_flags |= PR_POLL_WRITE; -+ } -+ if (FD_ISSET(osfd, &wt)) -+ { -+ if (pd->out_flags & _PR_POLL_READ_SYS_WRITE) -+ out_flags |= PR_POLL_READ; -+ if (pd->out_flags & _PR_POLL_WRITE_SYS_WRITE) -+ out_flags |= PR_POLL_WRITE; -+ } -+ if (FD_ISSET(osfd, &ex)) out_flags |= PR_POLL_EXCEPT; -+ -+/* Workaround for nonblocking connects under net_server */ -+#ifndef BONE_VERSION -+ if (out_flags) -+ { -+ /* check if it is a pending connect */ -+ int i = 0, j = 0; -+ PR_Lock( _connectLock ); -+ for( i = 0; i < connectCount; i++ ) -+ { -+ if(connectList[i].osfd == osfd) -+ { -+ int connectError; -+ int connectResult; -+ -+ connectResult = connect(connectList[i].osfd, -+ &connectList[i].addr, -+ connectList[i].addrlen); -+ connectError = errno; -+ -+ if(connectResult < 0 ) -+ { -+ if(connectError == EINTR || connectError == EWOULDBLOCK || -+ connectError == EINPROGRESS || connectError == EALREADY) -+ { -+ break; -+ } -+ } -+ -+ if(i == (connectCount - 1)) -+ { -+ connectList[i].osfd = -1; -+ } else { -+ for(j = i; j < connectCount; j++ ) -+ { -+ memcpy( &connectList[j], &connectList[j+1], -+ sizeof(connectList[j])); -+ } -+ } -+ connectCount--; -+ -+ bottom->secret->md.connectReturnValue = connectResult; -+ bottom->secret->md.connectReturnError = connectError; -+ bottom->secret->md.connectValueValid = PR_TRUE; -+ break; -+ } -+ } -+ PR_Unlock( _connectLock ); -+ } -+#endif -+ } -+ pd->out_flags = out_flags; -+ if (out_flags) ready++; -+ } -+ PR_ASSERT(ready > 0); -+ } -+ else if (ready < 0) -+ { -+ err = _MD_ERRNO(); -+ if (err == EBADF) -+ { -+ /* Find the bad fds */ -+ ready = 0; -+ for (pd = pds, epd = pd + npds; pd < epd; pd++) -+ { -+ pd->out_flags = 0; -+ if ((NULL != pd->fd) && (0 != pd->in_flags)) -+ { -+ bottom = PR_GetIdentitiesLayer(pd->fd, PR_NSPR_IO_LAYER); -+ if (fcntl(bottom->secret->md.osfd, F_GETFL, 0) == -1) -+ { -+ pd->out_flags = PR_POLL_NVAL; -+ ready++; -+ } -+ } -+ } -+ PR_ASSERT(ready > 0); -+ } -+ else set_select_error(err); -+ } -+ -+ return ready; -+} /* PR_POLL */ -+ -+PR_IMPLEMENT(PRFileDesc*) PR_CreateSocketPollFd(PRInt32 osfd) -+{ -+ PRFileDesc *fd; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ -+ fd = _PR_Getfd(); -+ -+ if (fd == NULL) PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ else -+ { -+ fd->secret->md.osfd = osfd; -+ fd->secret->inheritable = _PR_TRI_FALSE; -+ fd->secret->state = _PR_FILEDESC_OPEN; -+ fd->methods = PR_GetSocketPollFdMethods(); -+ } -+ -+ return fd; -+} /* PR_CreateSocketPollFD */ -+ -+PR_IMPLEMENT(PRStatus) PR_DestroySocketPollFd(PRFileDesc *fd) -+{ -+ if (NULL == fd) -+ { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ fd->secret->state = _PR_FILEDESC_CLOSED; -+ _PR_Putfd(fd); -+ return PR_SUCCESS; -+} /* PR_DestroySocketPollFd */ -+ -+ -+PR_IMPLEMENT(PRFileDesc *) PR_ImportTCPSocket(PRInt32 osfd) -+{ -+ PRFileDesc *fd; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ fd = bt_CreateFileDesc(osfd, PR_GetTCPMethods(), _PR_TRI_UNKNOWN, true); -+ if (fd == NULL) -+ closesocket(osfd); -+ return(fd); -+} -+ -+PR_IMPLEMENT(PRFileDesc *) PR_ImportUDPSocket(PRInt32 osfd) -+{ -+ PRFileDesc *fd; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ fd = bt_CreateFileDesc(osfd, PR_GetUDPMethods(), _PR_TRI_UNKNOWN, true); -+ if (fd == NULL) -+ closesocket(osfd); -+ return(fd); -+} -+ -+ -+#ifndef XP_HAIKU -+int socketpair (int family, int type, int protocol, int sv[2]) -+{ -+ int insock, outsock, acceptedsock; -+ struct sockaddr_in addrs[2]; -+ int alen; -+ /* that's really only so we can build... */ -+ /*fprintf(stderr, "socketpair(%d, %d, %d)\n", family, type, protocol);*/ -+ if (family != AF_INET) { -+ /*fatal*/fprintf(stderr, "socketpair(%d, %d, %d): family not supported\n", family, type, protocol); -+ errno = EPFNOSUPPORT; -+ return -1; -+ } -+ if (type != SOCK_DGRAM && type != SOCK_STREAM) { -+ errno = EPROTONOSUPPORT; -+ return -1; -+ } -+ addrs[0].sin_family = AF_INET; -+ addrs[0].sin_port = 0; -+ addrs[0].sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ addrs[1].sin_family = AF_INET; -+ addrs[1].sin_port = 0; -+ addrs[1].sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ alen = sizeof(struct sockaddr_in); -+ -+ insock = socket(family, type, protocol); -+ if (insock < 0) -+ goto err1; -+ if (bind(insock, (struct sockaddr *)&addrs[0], alen) < 0) -+ goto err2; -+ if (getsockname(insock, (struct sockaddr *)&addrs[0], &alen) < 0) -+ goto err2; -+ if (type == SOCK_STREAM) -+ listen(insock, 2); -+ -+ outsock = socket(family, type, protocol); -+ if (outsock < 0) -+ goto err2; -+ alen = sizeof(struct sockaddr_in); -+ if (bind(outsock, (struct sockaddr *)&addrs[1], alen) < 0) -+ goto err2; -+ if (getsockname(outsock, (struct sockaddr *)&addrs[1], &alen) < 0) -+ goto err3; -+ addrs[0].sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ addrs[1].sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ /*fprintf(stderr, "socketpair: %08lx:%d <-> %08lx:%d\n", -+ ((struct sockaddr_in *)&addrs[0])->sin_addr.s_addr, -+ ((struct sockaddr_in *)&addrs[0])->sin_port, -+ ((struct sockaddr_in *)&addrs[1])->sin_addr.s_addr, -+ ((struct sockaddr_in *)&addrs[1])->sin_port);*/ -+ -+ if (connect(outsock, (struct sockaddr *)&addrs[0], alen) < 0) -+ goto err3; -+ if (type == SOCK_DGRAM) { -+ if (connect(insock, (struct sockaddr *)&addrs[1], alen) < 0) -+ goto err3; -+ sv[0] = insock; -+ } else { -+ acceptedsock = accept(insock, (struct sockaddr *)&addrs[1], &alen); -+ if (acceptedsock < 0) -+ goto err3; -+ closesocket(insock); -+ sv[0] = acceptedsock; -+ } -+ sv[1] = outsock; -+ return 0; -+err3: -+ closesocket(outsock); -+err2: -+ closesocket(insock); -+err1: -+ fprintf(stderr,"socketpair: error 0x%08x\n", errno); -+ return -1; -+} -+#endif -+ -+PR_IMPLEMENT(PRStatus) PR_NewTCPSocketPair(PRFileDesc *f[]) -+{ -+ PRInt32 rv, osfd[2]; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+#ifdef XP_HAIKU -+ rv = socketpair(AF_UNIX, SOCK_STREAM, 0, osfd); -+#else -+ rv = socketpair(AF_INET, SOCK_STREAM, 0, osfd); -+#endif -+ if (rv == -1) { -+ return PR_FAILURE; -+ } -+ f[0] = bt_CreateFileDesc(osfd[0], PR_GetTCPMethods(), _PR_TRI_TRUE, true); -+ if (NULL == f[0]) { -+ closesocket(osfd[0]); -+ closesocket(osfd[1]); -+ /* PR_AllocFileDesc() has invoked PR_SetError(). */ -+ return PR_FAILURE; -+ } -+ f[1] = bt_CreateFileDesc(osfd[1], PR_GetTCPMethods(), _PR_TRI_TRUE, true); -+ if (NULL == f[1]) { -+ PR_Close(f[0]); -+ closesocket(osfd[1]); -+ /* PR_AllocFileDesc() has invoked PR_SetError(). */ -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+ -+PR_IMPLEMENT(PRStatus) PR_GetConnectStatus(const PRPollDesc *pd) { -+ PRInt32 osfd; -+#ifndef BONE_VERSION -+ int rv; -+#endif -+ PRFileDesc *bottom; -+ -+ if (pd->out_flags & PR_POLL_NVAL) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ if ((pd->out_flags & (PR_POLL_WRITE | PR_POLL_EXCEPT | PR_POLL_ERR)) == 0) { -+ PR_ASSERT(pd->out_flags == 0); -+ PR_SetError(PR_IN_PROGRESS_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ -+ /* Find the NSPR layer and invoke its connectcontinue method */ -+ bottom = PR_GetIdentitiesLayer(pd->fd, PR_NSPR_IO_LAYER); -+ if (NULL == bottom) -+ { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ osfd = bottom->secret->md.osfd; -+#ifdef BONE_VERSION /* bug 122364 */ -+ /* temporary workaround until getsockopt(SO_ERROR) works in BONE */ -+ if (pd->out_flags & PR_POLL_EXCEPT) { -+ PR_SetError(PR_CONNECT_REFUSED_ERROR, 0); -+ return PR_FAILURE; -+ } -+ PR_ASSERT(pd->out_flags & PR_POLL_WRITE); -+ return PR_SUCCESS; -+#else -+ rv = recv(bottom->secret->md.osfd, NULL, 0, 0); -+ PR_ASSERT(-1 == rv || 0 == rv); -+ -+ if (-1 == rv && 0 != errno && errno != EAGAIN && errno != EWOULDBLOCK ) { -+ set_connect_error(errno); -+ return PR_FAILURE; -+ } -+ else -+ return PR_SUCCESS; -+#endif /* BONE_VERSION */ -+} -+ -+PR_IMPLEMENT(PRFileDesc*) PR_Socket(PRInt32 domain, PRInt32 type, PRInt32 proto) -+{ -+ PRInt32 osfd, err; -+ PRFileDesc *fd; -+ PRInt32 tmp_domain = domain; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ if (PR_AF_INET != domain -+ && PR_AF_INET6 != domain -+ ) { -+ PR_SetError(PR_ADDRESS_NOT_SUPPORTED_ERROR, 0); -+ return NULL; -+ } -+ if( type != SOCK_STREAM && type != SOCK_DGRAM ) -+ { -+ PR_SetError(PR_ADDRESS_NOT_SUPPORTED_ERROR, 0); -+ return NULL; -+ } -+ -+#if defined(_PR_INET6_PROBE) -+ if (PR_AF_INET6 == domain) { -+ if (_pr_ipv6_is_present == PR_FALSE) -+ domain = AF_INET; -+ else -+ domain = AF_INET6; -+ } -+#elif defined(_PR_INET6) -+ if (PR_AF_INET6 == domain) -+ domain = AF_INET6; -+#else -+ if (PR_AF_INET6 == domain) -+ domain = AF_INET; -+#endif /* _PR_INET6 */ -+#ifndef BONE_VERSION -+ osfd = socket(domain, type, 0); -+#else -+ osfd = socket(domain, type, proto); -+#endif -+ if (osfd == -1) { -+ err = _MD_ERRNO(); -+ set_socket_error(err); -+ return 0; -+ } -+ fd = bt_CreateFileDesc(osfd, SOCK_STREAM == type?PR_GetTCPMethods() : PR_GetUDPMethods(), _PR_TRI_TRUE, true); -+ -+ if (fd != NULL) { -+#if defined(_PR_INET6_PROBE) || !defined(_PR_INET6) -+ /* -+ * For platforms with no support for IPv6 -+ * create layered socket for IPv4-mapped IPv6 addresses -+ */ -+ if (PR_AF_INET6 == tmp_domain && PR_AF_INET == domain) { -+ if (PR_FAILURE == _pr_push_ipv6toipv4_layer(fd)) { -+ PR_Close(fd); -+ fd = NULL; -+ } -+ } -+#endif -+ } else -+ closesocket(osfd); -+ -+ return fd; -+} -+ -+ -+PR_IMPLEMENT(PRFileDesc *) PR_NewTCPSocket(void) -+{ -+ return PR_Socket(AF_INET, SOCK_STREAM, 0); -+} -+ -+PR_IMPLEMENT(PRFileDesc*) PR_NewUDPSocket(void) -+{ -+ return PR_Socket(AF_INET, SOCK_DGRAM, 0); -+} -+ -+PR_IMPLEMENT(PRFileDesc *) PR_OpenTCPSocket(PRIntn af) -+{ -+ return PR_Socket(af, SOCK_STREAM, 0); -+} -+ -+PR_IMPLEMENT(PRFileDesc*) PR_OpenUDPSocket(PRIntn af) -+{ -+ return PR_Socket(af, SOCK_DGRAM, 0); -+} -+ -Index: mozilla/nsprpub/pr/src/bthreads/btlocks.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/bthreads/btlocks.c,v -retrieving revision 3.7 -diff -u -8 -p -w -r3.7 btlocks.c ---- mozilla/nsprpub/pr/src/bthreads/btlocks.c 23 Feb 2005 17:43:13 -0000 3.7 -+++ mozilla/nsprpub/pr/src/bthreads/btlocks.c 8 Jul 2009 21:53:14 -0000 -@@ -38,44 +38,38 @@ - /* - ** File: btlocks.c - ** Description: Implemenation for thread locks using bthreads - ** Exports: prlock.h - */ - - #include "primpl.h" - --#include --#include -- - void - _PR_InitLocks (void) - { - } - - PR_IMPLEMENT(PRLock*) - PR_NewLock (void) - { - PRLock *lock; - status_t semresult; - - if (!_pr_initialized) _PR_ImplicitInitialization(); - - lock = PR_NEWZAP(PRLock); - if (lock != NULL) { -- - lock->benaphoreCount = 0; - lock->semaphoreID = create_sem( 0, "nsprLockSem" ); - if( lock->semaphoreID < B_NO_ERROR ) { -- - PR_DELETE( lock ); - lock = NULL; - } - } -- - return lock; - } - - PR_IMPLEMENT(void) - PR_DestroyLock (PRLock* lock) - { - status_t result; - -@@ -83,34 +77,34 @@ PR_IMPLEMENT(void) - result = delete_sem(lock->semaphoreID); - PR_ASSERT(result == B_NO_ERROR); - PR_DELETE(lock); - } - - PR_IMPLEMENT(void) - PR_Lock (PRLock* lock) - { -- PR_ASSERT(lock != NULL); -- -- if( atomic_add( &lock->benaphoreCount, 1 ) > 0 ) { -+ status_t result; - -- if( acquire_sem(lock->semaphoreID ) != B_NO_ERROR ) { -+ PR_ASSERT(lock != NULL); - -- atomic_add( &lock->benaphoreCount, -1 ); -+ if( _MD_ATOMIC_INCREMENT( &lock->benaphoreCount) > 1 ) { -+ result = acquire_sem(lock->semaphoreID ); -+ PR_ASSERT(result == B_NO_ERROR); -+ if( result != B_NO_ERROR ) { -+ _MD_ATOMIC_DECREMENT( &lock->benaphoreCount); - return; - } - } -- - lock->owner = find_thread( NULL ); - } - - PR_IMPLEMENT(PRStatus) - PR_Unlock (PRLock* lock) - { - PR_ASSERT(lock != NULL); - lock->owner = NULL; -- if( atomic_add( &lock->benaphoreCount, -1 ) > 1 ) { -- -+ if( _MD_ATOMIC_DECREMENT( &lock->benaphoreCount ) > 0 ) { - release_sem_etc( lock->semaphoreID, 1, B_DO_NOT_RESCHEDULE ); - } - - return PR_SUCCESS; - } -Index: mozilla/nsprpub/pr/src/bthreads/btmisc.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/bthreads/btmisc.c,v -retrieving revision 3.5 -diff -u -8 -p -w -r3.5 btmisc.c ---- mozilla/nsprpub/pr/src/bthreads/btmisc.c 25 Apr 2004 15:00:57 -0000 3.5 -+++ mozilla/nsprpub/pr/src/bthreads/btmisc.c 8 Jul 2009 21:53:14 -0000 -@@ -15,16 +15,17 @@ - * The Original Code is the Netscape Portable Runtime (NSPR). - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998-2000 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): -+ * Fredrik Holmqvist - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your -@@ -33,72 +34,38 @@ - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - - #include "primpl.h" - #include - --// void _PR_InitCPUs(void) {PT_LOG("_PR_InitCPUs")} --// void _MD_StartInterrupts(void) {PT_LOG("_MD_StartInterrupts")} -- --/* this is a total hack.. */ -- -+/* this is a total hack.. -+ * It's needed for netserver to compile. -+ * See nsprpub/pr/include/prnetdb.h -+ */ -+#ifndef BONE_VERSION - struct protoent* getprotobyname(const char* name) - { - return 0; - } - - struct protoent* getprotobynumber(int number) - { - return 0; - } -- --/* this is needed by prinit for some reason */ --void --_PR_InitStacks (void) --{ --} -- --/* this is needed by prinit for some reason */ --void --_PR_InitTPD (void) --{ --} -- --/* --** Create extra virtual processor threads. Generally used with MP systems. --*/ --PR_IMPLEMENT(void) -- PR_SetConcurrency (PRUintn numCPUs) --{ --} -- --/* --** Set thread recycle mode to on (1) or off (0) --*/ --PR_IMPLEMENT(void) -- PR_SetThreadRecycleMode (PRUint32 flag) --{ --} -+#endif - - /* - ** Get context registers, return with error for now. - */ -- - PR_IMPLEMENT(PRWord *) - _MD_HomeGCRegisters( PRThread *t, int isCurrent, int *np ) - { - return 0; - } - --PR_IMPLEMENT(void *) --PR_GetSP( PRThread *t ) --{ -- return 0; --} -- - PR_IMPLEMENT(PRStatus) - PR_EnumerateThreads( PREnumerator func, void *arg ) - { - return PR_FAILURE; - } -Index: mozilla/nsprpub/pr/src/bthreads/btsem.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/bthreads/btsem.c,v -retrieving revision 3.7 -diff -u -8 -p -w -r3.7 btsem.c ---- mozilla/nsprpub/pr/src/bthreads/btsem.c 23 Feb 2005 17:43:13 -0000 3.7 -+++ mozilla/nsprpub/pr/src/bthreads/btsem.c 8 Jul 2009 21:53:14 -0000 -@@ -33,16 +33,17 @@ - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - - #include - - #include "primpl.h" -+#include "obsolete/prsem.h" - - /* - ** Create a new semaphore object. - */ - PR_IMPLEMENT(PRSemaphore*) - PR_NewSem (PRUintn value) - { - PRSemaphore *semaphore; -Index: mozilla/nsprpub/pr/src/bthreads/btthread.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/bthreads/btthread.c,v -retrieving revision 3.8 -diff -u -8 -p -w -r3.8 btthread.c ---- mozilla/nsprpub/pr/src/bthreads/btthread.c 25 Apr 2004 15:00:57 -0000 3.8 -+++ mozilla/nsprpub/pr/src/bthreads/btthread.c 8 Jul 2009 21:53:16 -0000 -@@ -115,22 +115,19 @@ _PR_InitThreads (PRThreadType type, PRTh - - primordialThread->md.joinSem = B_ERROR; - - /* - ** Set the priority to the desired level. - */ - - beThreadPriority = _bt_MapNSPRToNativePriority( priority ); -- - set_thread_priority( find_thread( NULL ), beThreadPriority ); -- - primordialThread->priority = priority; - -- - /* set the thread's state - note that the thread is not joinable */ - primordialThread->state |= BT_THREAD_PRIMORD; - if (type == PR_SYSTEM_THREAD) - primordialThread->state |= BT_THREAD_SYSTEM; - - /* - ** Allocate a TLS slot for the PRThread structure (just using - ** native TLS, as opposed to NSPR TPD, will make PR_GetCurrentThread() -@@ -214,44 +211,38 @@ void _bt_CleanupThread(void *arg) - PR_Lock(joinSemLock); - - if (me->md.is_joining) - { - /* someone is already waiting to join us (they've - allocated a joinSem for us) - let them know we're - ready */ - delete_sem(me->md.joinSem); -- - PR_Unlock(joinSemLock); -- - } - else - { - /* noone is currently waiting for our demise - it - is our responsibility to allocate the joinSem - and block on it */ - me->md.joinSem = create_sem(0, "join sem"); -- - /* we're done accessing our joinSem */ - PR_Unlock(joinSemLock); -- - /* wait for someone to join us */ - while (acquire_sem(me->md.joinSem) == B_INTERRUPTED); - } - } - - /* if this is a user thread, we must update our books */ - if ((me->state & BT_THREAD_SYSTEM) == 0) - { - /* synchronize access to bt_book */ - PR_Lock( bt_book.ml ); -- - /* decrement the number of currently-alive user threads */ - bt_book.threadCount--; -- - if (bt_book.threadCount == 0 && bt_book.cleanUpSem != B_ERROR) { - /* we are the last user thread, and the primordial thread is - blocked in PR_Cleanup() waiting for us to finish - notify - it */ - delete_sem(bt_book.cleanUpSem); - } - - PR_Unlock( bt_book.ml ); -@@ -272,67 +263,60 @@ _bt_root (void* arg) - PRThread *thred = (PRThread*)arg; - PRIntn rv; - void *privData; - status_t result; - int i; - - /* save our PRThread object into our TLS */ - tls_set(tls_prThreadSlot, thred); -- - thred->startFunc(thred->arg); /* run the dang thing */ -- - /* clean up */ - _bt_CleanupThread(NULL); - - return 0; - } - - PR_IMPLEMENT(PRThread*) - PR_CreateThread (PRThreadType type, void (*start)(void* arg), void* arg, - PRThreadPriority priority, PRThreadScope scope, - PRThreadState state, PRUint32 stackSize) - { - PRUint32 bePriority; -- - PRThread* thred; - - if (!_pr_initialized) _PR_ImplicitInitialization(); - - thred = PR_NEWZAP(PRThread); - if (thred == NULL) - { - PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); - return NULL; - } - - thred->md.joinSem = B_ERROR; -- - thred->arg = arg; - thred->startFunc = start; - thred->priority = priority; - - if( state == PR_JOINABLE_THREAD ) - { - thred->state |= BT_THREAD_JOINABLE; - } - - /* keep some books */ -- - PR_Lock( bt_book.ml ); - - if (type == PR_USER_THREAD) - { - bt_book.threadCount++; - } - - PR_Unlock( bt_book.ml ); -- - bePriority = _bt_MapNSPRToNativePriority( priority ); -- - thred->md.tid = spawn_thread((thread_func)_bt_root, "moz-thread", - bePriority, thred); - if (thred->md.tid < B_OK) { - PR_SetError(PR_UNKNOWN_ERROR, thred->md.tid); - PR_DELETE(thred); - return NULL; - } - -@@ -428,16 +412,23 @@ PR_IMPLEMENT(PRThread*) - a native thread not created by the NSPR) - assimilate it */ - thred = _bt_AttachThread(); - } - PR_ASSERT(NULL != thred); - - return thred; - } - -+PR_IMPLEMENT(void*)PR_GetSP(PRThread *thred) -+{ -+ thread_info tInfo; -+ get_thread_info(thred->md.tid, &tInfo); -+ return tInfo.stack_base; /* or should it be _end? */ -+} -+ - PR_IMPLEMENT(PRThreadScope) - PR_GetThreadScope (const PRThread* thred) - { - PR_ASSERT(thred != NULL); - return PR_GLOBAL_THREAD; - } - - PR_IMPLEMENT(PRThreadType) -Index: mozilla/nsprpub/pr/src/io/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/io/Makefile.in,v -retrieving revision 1.13 -diff -u -8 -p -w -r1.13 Makefile.in ---- mozilla/nsprpub/pr/src/io/Makefile.in 25 Apr 2004 15:00:58 -0000 1.13 -+++ mozilla/nsprpub/pr/src/io/Makefile.in 8 Jul 2009 21:53:16 -0000 -@@ -64,23 +64,25 @@ CSRCS = \ - prmmap.c \ - prpolevt.c \ - prprf.c \ - prscanf.c \ - prstdio.c \ - $(NULL) - - ifndef USE_PTHREADS -+ifndef USE_BTHREADS - CSRCS += \ - prdir.c \ - prfile.c \ - prio.c \ - prsocket.c \ - $(NULL) - endif -+endif - - TARGETS = $(OBJS) - - INCLUDES = -I$(dist_includedir) -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/private - - DEFINES += -D_NSPR_BUILD_ - - include $(topsrcdir)/config/rules.mk -Index: mozilla/nsprpub/pr/src/io/prmapopt.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/io/prmapopt.c,v -retrieving revision 3.18 -diff -u -8 -p -w -r3.18 prmapopt.c ---- mozilla/nsprpub/pr/src/io/prmapopt.c 25 Apr 2004 15:00:58 -0000 3.18 -+++ mozilla/nsprpub/pr/src/io/prmapopt.c 8 Jul 2009 21:53:17 -0000 -@@ -69,17 +69,17 @@ - /* NEXTSTEP is special: this must come before netinet/tcp.h. */ - #include /* n_short, n_long, n_time */ - #endif - - #if defined(XP_UNIX) || defined(OS2) || (defined(XP_BEOS) && defined(BONE_VERSION)) - #include /* TCP_NODELAY, TCP_MAXSEG */ - #endif - --#ifndef _PR_PTHREADS -+#if !defined(_PR_PTHREADS) && !defined(_PR_BTHREADS) - - PRStatus PR_CALLBACK _PR_SocketGetSocketOption(PRFileDesc *fd, PRSocketOptionData *data) - { - PRStatus rv; - PRInt32 length; - PRInt32 level, name; - - /* -@@ -94,34 +94,29 @@ PRStatus PR_CALLBACK _PR_SocketGetSocket - - rv = _PR_MapOptionName(data->option, &level, &name); - if (PR_SUCCESS == rv) - { - switch (data->option) - { - case PR_SockOpt_Linger: - { --#if !defined(XP_BEOS) || defined(BONE_VERSION) - struct linger linger; - length = sizeof(linger); - rv = _PR_MD_GETSOCKOPT( - fd, level, name, (char *) &linger, &length); - if (PR_SUCCESS == rv) - { - PR_ASSERT(sizeof(linger) == length); - data->value.linger.polarity = - (linger.l_onoff) ? PR_TRUE : PR_FALSE; - data->value.linger.linger = - PR_SecondsToInterval(linger.l_linger); - } - break; --#else -- PR_SetError( PR_NOT_IMPLEMENTED_ERROR, 0 ); -- return PR_FAILURE; --#endif - } - case PR_SockOpt_Reuseaddr: - case PR_SockOpt_Keepalive: - case PR_SockOpt_NoDelay: - case PR_SockOpt_Broadcast: - { - #ifdef WIN32 /* Winsock */ - BOOL value; -@@ -252,27 +247,22 @@ PRStatus PR_CALLBACK _PR_SocketSetSocket - - rv = _PR_MapOptionName(data->option, &level, &name); - if (PR_SUCCESS == rv) - { - switch (data->option) - { - case PR_SockOpt_Linger: - { --#if !defined(XP_BEOS) || defined(BONE_VERSION) - struct linger linger; - linger.l_onoff = data->value.linger.polarity; - linger.l_linger = PR_IntervalToSeconds(data->value.linger.linger); - rv = _PR_MD_SETSOCKOPT( - fd, level, name, (char*)&linger, sizeof(linger)); - break; --#else -- PR_SetError( PR_NOT_IMPLEMENTED_ERROR, 0 ); -- return PR_FAILURE; --#endif - } - case PR_SockOpt_Reuseaddr: - case PR_SockOpt_Keepalive: - case PR_SockOpt_NoDelay: - case PR_SockOpt_Broadcast: - { - #ifdef WIN32 /* Winsock */ - BOOL value; -@@ -350,17 +340,17 @@ PRStatus PR_CALLBACK _PR_SocketSetSocket - default: - PR_NOT_REACHED("Unknown socket option"); - break; - } - } - return rv; - } /* _PR_SocketSetSocketOption */ - --#endif /* ! _PR_PTHREADS */ -+#endif /* ! _PR_PTHREADS && ! _PR_BTHREADS */ - - /* - ********************************************************************* - ********************************************************************* - ** - ** Make sure that the following is at the end of this file, - ** because we will be playing with macro redefines. - ** -Index: mozilla/nsprpub/pr/src/io/prpolevt.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/io/prpolevt.c,v -retrieving revision 3.15 -diff -u -8 -p -w -r3.15 prpolevt.c ---- mozilla/nsprpub/pr/src/io/prpolevt.c 25 Apr 2004 15:00:58 -0000 3.15 -+++ mozilla/nsprpub/pr/src/io/prpolevt.c 8 Jul 2009 21:53:18 -0000 -@@ -443,20 +443,20 @@ PR_IMPLEMENT(PRFileDesc *) PR_NewPollabl - #else - if (PR_NewTCPSocketPair(fd) == PR_FAILURE) { - fd[0] = fd[1] = NULL; - goto errorExit; - } - /* - * set the TCP_NODELAY option to reduce notification latency - */ -- socket_opt.option = PR_SockOpt_NoDelay; -- socket_opt.value.no_delay = PR_TRUE; -- rv = PR_SetSocketOption(fd[1], &socket_opt); -- PR_ASSERT(PR_SUCCESS == rv); -+// socket_opt.option = PR_SockOpt_NoDelay; -+// socket_opt.value.no_delay = PR_TRUE; -+// rv = PR_SetSocketOption(fd[1], &socket_opt); -+// PR_ASSERT(PR_SUCCESS == rv); - #endif - - event->secret->writeEnd = fd[1]; - if (PR_PushIOLayer(fd[0], PR_TOP_IO_LAYER, event) == PR_FAILURE) { - goto errorExit; - } - - return fd[0]; -Index: mozilla/nsprpub/pr/src/io/prsocket.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/io/prsocket.c,v -retrieving revision 3.57.2.2 -diff -u -8 -p -w -r3.57.2.2 prsocket.c ---- mozilla/nsprpub/pr/src/io/prsocket.c 7 Nov 2007 22:24:04 -0000 3.57.2.2 -+++ mozilla/nsprpub/pr/src/io/prsocket.c 8 Jul 2009 21:53:23 -0000 -@@ -59,17 +59,17 @@ PRBool IsValidNetAddr(const PRNetAddr *a - - static PRBool IsValidNetAddrLen(const PRNetAddr *addr, PRInt32 addr_len) - { - /* - * The definition of the length of a Unix domain socket address - * is not uniform, so we don't check it. - */ - if ((addr != NULL) --#if defined(XP_UNIX) || defined(XP_OS2_EMX) -+#if defined(XP_UNIX) || defined(XP_OS2_EMX) || defined(XP_BEOS) - && (addr->raw.family != AF_UNIX) - #endif - && (PR_NETADDR_SIZE(addr) != addr_len)) { - #if defined(LINUX) && __GLIBC__ == 2 && __GLIBC_MINOR__ == 1 - /* - * In glibc 2.1, struct sockaddr_in6 is 24 bytes. In glibc 2.2 - * and in the 2.4 kernel, struct sockaddr_in6 has the scope_id - * field and is 28 bytes. It is possible for socket functions -Index: mozilla/nsprpub/pr/src/linking/prlink.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/linking/prlink.c,v -retrieving revision 3.81.2.5 -diff -u -8 -p -w -r3.81.2.5 prlink.c ---- mozilla/nsprpub/pr/src/linking/prlink.c 6 Oct 2006 23:36:22 -0000 3.81.2.5 -+++ mozilla/nsprpub/pr/src/linking/prlink.c 8 Jul 2009 21:53:27 -0000 -@@ -194,18 +194,20 @@ struct PRLibrary { - NSModule dlh; - #else - void* dlh; - #endif - #endif - - #ifdef XP_BEOS - void* dlh; -+#ifndef XP_HAIKU - void* stub_dlh; - #endif -+#endif - }; - - static PRLibrary *pr_loadmap; - static PRLibrary *pr_exe_loadmap; - static PRMonitor *pr_linker_lock; - static char* _pr_currentLibPath = NULL; - - static PRLibrary *pr_LoadLibraryByPathname(const char *name, PRIntn flags); -@@ -844,16 +846,29 @@ pr_LoadLibraryByPathname(const char *nam - } - /* the list of loaded library names are always kept in UTF-8 - * on Win32 platforms */ - result = pr_UnlockedFindLibrary(utf8name); - #else - result = pr_UnlockedFindLibrary(name); - #endif - -+#ifdef XP_BEOS -+ /* Havn't seen this happen so far, but it doesn't slow anything -+ down so let's keep it */ -+ for (result = pr_loadmap; result != NULL; result = result->next) { -+ /* hopefully, our caller will always use the same string -+ to refer to the same library */ -+ if (strcmp(name, result->name) == 0) { -+ result->refCount++; -+ break; -+ } -+ } -+#endif -+ - if (result != NULL) goto unlock; - - lm = PR_NEWZAP(PRLibrary); - if (lm == NULL) { - oserr = _MD_ERRNO(); - goto unlock; - } - lm->staticTable = NULL; -@@ -997,39 +1012,24 @@ pr_LoadLibraryByPathname(const char *nam - lm->name = strdup(name); - lm->dlh = h; - lm->next = pr_loadmap; - pr_loadmap = lm; - } - #endif /* HAVE_DLL */ - #endif /* XP_UNIX */ - -- lm->refCount = 1; -- - #ifdef XP_BEOS -- { -- image_info info; -- int32 cookie = 0; -+ { /* Code block to allow variable inits. :/ */ -+ /* it appears the library isn't yet loaded - load it now */ -+#ifdef XP_HAIKU -+ image_id imageid = load_add_on(name); -+#else - image_id imageid = B_ERROR; - image_id stubid = B_ERROR; -- PRLibrary *p; -- -- for (p = pr_loadmap; p != NULL; p = p->next) { -- /* hopefully, our caller will always use the same string -- to refer to the same library */ -- if (strcmp(name, p->name) == 0) { -- /* we've already loaded this library */ -- imageid = info.id; -- lm->refCount++; -- break; -- } -- } -- -- if(imageid == B_ERROR) { -- /* it appears the library isn't yet loaded - load it now */ - char stubName [B_PATH_NAME_LENGTH + 1]; - - /* the following is a work-around to a "bug" in the beos - - the beos system loader allows only 32M (system-wide) - to be used by code loaded as "add-ons" (code loaded - through the 'load_add_on()' system call, which includes - mozilla components), but allows 256M to be used by - shared libraries. -@@ -1046,59 +1046,63 @@ pr_LoadLibraryByPathname(const char *nam - */ - - strcpy(stubName, name); - strcat(stubName, ".stub"); - - /* first, attempt to load the stub (thereby loading the - component as a shared library */ - if ((stubid = load_add_on(stubName)) > B_ERROR) { -+ -+ const char *endOfPassedName = strrchr(name, '/'); -+ image_info info; -+ int32 cookie = 0; -+ - /* the stub was loaded successfully. */ - imageid = B_FILE_NOT_FOUND; -+ if( 0 == endOfPassedName ) -+ endOfPassedName = name; -+ else -+ endOfPassedName++; - -- cookie = 0; - while (get_next_image_info(0, &cookie, &info) == B_OK) { - const char *endOfSystemName = strrchr(info.name, '/'); -- const char *endOfPassedName = strrchr(name, '/'); - if( 0 == endOfSystemName ) - endOfSystemName = info.name; - else - endOfSystemName++; -- if( 0 == endOfPassedName ) -- endOfPassedName = name; -- else -- endOfPassedName++; - if (strcmp(endOfSystemName, endOfPassedName) == 0) { - /* this is the actual component - remember it */ - imageid = info.id; - break; - } - } -- - } else { - /* we failed to load the "stub" - try to load the - component directly as an add-on */ - stubid = B_ERROR; - imageid = load_add_on(name); - } -- } -- -+#endif /* XP_HAIKU */ - if (imageid <= B_ERROR) { - oserr = imageid; - PR_DELETE( lm ); - goto unlock; - } - lm->name = strdup(name); - lm->dlh = (void*)imageid; -+#ifndef XP_HAIKU - lm->stub_dlh = (void*)stubid; -+#endif - lm->next = pr_loadmap; - pr_loadmap = lm; - } --#endif -+#endif /* XP_BEOS */ - -+ lm->refCount = 1; - result = lm; /* success */ - PR_LOG(_pr_linker_lm, PR_LOG_MIN, ("Loaded library %s (load lib)", lm->name)); - - unlock: - if (result == NULL) { - PR_SetError(PR_LOAD_LIBRARY_ERROR, oserr); - DLLErrorInternal(oserr); /* sets error text */ - } -@@ -1249,21 +1253,25 @@ PR_UnloadLibrary(PRLibrary *lib) - if (--lib->refCount > 0) { - PR_LOG(_pr_linker_lm, PR_LOG_MIN, - ("%s decr => %d", - lib->name, lib->refCount)); - goto done; - } - - #ifdef XP_BEOS -+#ifdef XP_HAIKU -+ unload_add_on( (image_id) lib->dlh ); -+#else - if(((image_id)lib->stub_dlh) == B_ERROR) - unload_add_on( (image_id) lib->dlh ); - else - unload_add_on( (image_id) lib->stub_dlh); --#endif -+#endif /* XP_HAIKU */ -+#endif /* XP_BEOS */ - - #ifdef XP_UNIX - #ifdef HAVE_DLL - #ifdef USE_DLFCN - result = dlclose(lib->dlh); - #elif defined(USE_HPSHL) - result = shl_unload(lib->dlh); - #elif defined(USE_MACH_DYLD) -Index: mozilla/nsprpub/pr/src/md/beos/beos.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/md/beos/beos.c,v -retrieving revision 3.5 -diff -u -8 -p -w -r3.5 beos.c ---- mozilla/nsprpub/pr/src/md/beos/beos.c 25 Apr 2004 15:00:59 -0000 3.5 -+++ mozilla/nsprpub/pr/src/md/beos/beos.c 8 Jul 2009 21:53:28 -0000 -@@ -32,233 +32,178 @@ - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - - #include "primpl.h" - --#include --#include --#include --#include --#include --#include - #include --#include --#include -- - /* - * Make sure _PRSockLen_t is 32-bit, because we will cast a PRUint32* or - * PRInt32* pointer to a _PRSockLen_t* pointer. - */ - #define _PRSockLen_t int - --/* --** Global lock variable used to bracket calls into rusty libraries that --** aren't thread safe (like libc, libX, etc). --*/ --static PRLock *_pr_rename_lock = NULL; --static PRMonitor *_pr_Xfe_mon = NULL; -+ -+#ifndef BONE_VERSION -+PRLock *_connectLock = NULL; -+ -+/* Workaround for nonblocking connects under net_server */ -+PRUint32 connectCount = 0; -+ConnectListNode connectList[64]; -+ -+void -+_MD_final_init_netserver(void) -+{ -+ _connectLock = PR_NewLock(); -+ PR_ASSERT(NULL != _connectLock); -+ /* Workaround for nonblocking connects under net_server */ -+ connectCount = 0; -+} -+#endif /* !BONE_VERSION */ -+ -+ -+#ifdef __powerpc__ -+static PRLock *monitor = NULL; -+ -+void -+_MD_AtomicInit(void) -+{ -+ if (monitor == NULL) { -+ monitor = PR_NewLock(); -+ } -+} -+#endif /* __powerpc__ */ - - /* -- * Variables used by the GC code, initialized in _MD_InitSegs(). -- * _pr_zero_fd should be a static variable. Unfortunately, there is -- * still some Unix-specific code left in function PR_GrowSegment() -- * in file memory/prseg.c that references it, so it needs -- * to be a global variable for now. -+** This is exceedingly messy. atomic_add returns the last value, NSPR -+** expects the new value. We just add or subtract 1 from the result. -+** The actual memory update is atomic. - */ --PRInt32 _pr_zero_fd = -1; --static PRLock *_pr_md_lock = NULL; - --sigset_t timer_set; -+PRInt32 -+_MD_AtomicAdd( PRInt32 *ptr, PRInt32 val ) -+{ -+ return atomic_add( (long *)ptr, val ) + val; -+} - --void _PR_UnixInit() -+PRInt32 -+_MD_AtomicIncrement( PRInt32 *val ) - { -- struct sigaction sigact; -- int rv; -+ return atomic_add( (long *)val, 1 ) + 1; -+} - -- sigemptyset(&timer_set); -+PRInt32 -+_MD_AtomicDecrement( PRInt32 *val ) -+{ -+ return atomic_add( (long *)val, -1 ) - 1; -+} - -- sigact.sa_handler = SIG_IGN; -- sigemptyset(&sigact.sa_mask); -- sigact.sa_flags = 0; -- rv = sigaction(SIGPIPE, &sigact, 0); -- PR_ASSERT(0 == rv); -+PRInt32 -+_MD_AtomicSet( PRInt32 *val, PRInt32 newval ) -+{ -+ PRInt32 result; -+#ifdef __powerpc__ -+ if (!_pr_initialized) { -+ _PR_ImplicitInitialization(); -+ } -+ PR_Lock(monitor); -+ result = *val; -+ *val = newval; -+ PR_Unlock(monitor); -+#else -+ asm volatile ("xchgl %0, %1" -+ : "=r"(result), "=m"(*val) -+ : "0"(newval), "m"(*val)); - -- _pr_rename_lock = PR_NewLock(); -- PR_ASSERT(NULL != _pr_rename_lock); -- _pr_Xfe_mon = PR_NewMonitor(); -- PR_ASSERT(NULL != _pr_Xfe_mon); -+#endif /* __powerpc__ */ -+ return result; - } - - /* - *----------------------------------------------------------------------- - * - * PR_Now -- - * - * Returns the current time in microseconds since the epoch. - * The epoch is midnight January 1, 1970 GMT. -- * The implementation is machine dependent. This is the Unix -- * implementation. -- * Cf. time_t time(time_t *tp) -+ * The implementation is machine dependent. - * - *----------------------------------------------------------------------- - */ - - PR_IMPLEMENT(PRTime) - PR_Now(void) - { -- struct timeval tv; -- PRInt64 s, us, s2us; -- -- GETTIMEOFDAY(&tv); -- LL_I2L(s2us, PR_USEC_PER_SEC); -- LL_I2L(s, tv.tv_sec); -- LL_I2L(us, tv.tv_usec); -- LL_MUL(s, s, s2us); -- LL_ADD(s, s, us); -- return s; -+ return (PRTime) real_time_clock_usecs(); - } - - PRIntervalTime --_PR_UNIX_GetInterval() -+_MD_get_interval(void) - { -- struct timeval time; -- PRIntervalTime ticks; -- -- (void)GETTIMEOFDAY(&time); /* fallicy of course */ -- ticks = (PRUint32)time.tv_sec * PR_MSEC_PER_SEC; /* that's in milliseconds */ -- ticks += (PRUint32)time.tv_usec / PR_USEC_PER_MSEC; /* so's that */ -- return ticks; --} /* _PR_SUNOS_GetInterval */ -- --PRIntervalTime _PR_UNIX_TicksPerSecond() --{ -- return 1000; /* this needs some work :) */ -+ return (PRIntervalTime) real_time_clock_usecs() / 10; - } - --/************************************************************************/ -- --/* --** Special hacks for xlib. Xlib/Xt/Xm is not re-entrant nor is it thread --** safe. Unfortunately, neither is mozilla. To make these programs work --** in a pre-emptive threaded environment, we need to use a lock. --*/ -- --void PR_XLock() --{ -- PR_EnterMonitor(_pr_Xfe_mon); --} -- --void PR_XUnlock() -+PRIntervalTime -+_MD_interval_per_sec(void) - { -- PR_ExitMonitor(_pr_Xfe_mon); -+ return 100000L; - } - --PRBool PR_XIsLocked() -+PRSize -+_PR_MD_GetRandomNoise( void *buf, PRSize size ) - { -- return (PR_InMonitor(_pr_Xfe_mon)) ? PR_TRUE : PR_FALSE; --} -+ struct timeval tv; -+ int n = 0; -+ int s; - --void PR_XWait(int ms) --{ -- PR_Wait(_pr_Xfe_mon, PR_MillisecondsToInterval(ms)); --} -+ GETTIMEOFDAY(&tv); - --void PR_XNotify(void) --{ -- PR_Notify(_pr_Xfe_mon); -+ if ( size >= 0 ) { -+ s = _pr_CopyLowBits((char*)buf+n, size, &tv.tv_usec, sizeof(tv.tv_usec)); -+ size -= s; -+ n += s; - } -- --void PR_XNotifyAll(void) --{ -- PR_NotifyAll(_pr_Xfe_mon); -+ if ( size >= 0 ) { -+ s = _pr_CopyLowBits((char*)buf+n, size, &tv.tv_sec, sizeof(tv.tv_sec)); -+ size -= s; -+ n += s; - } -+ return n; -+} /* end _PR_MD_GetRandomNoise() */ - --#if !defined(BEOS) --#ifdef HAVE_BSD_FLOCK - --#include -- --PR_IMPLEMENT(PRStatus) --_MD_LOCKFILE (PRInt32 f) -+/* Needed by prinit.c:612 */ -+void -+_PR_MD_QUERY_FD_INHERITABLE(PRFileDesc *fd) - { -- PRInt32 rv; -- rv = flock(f, LOCK_EX); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_FLOCK_ERROR(_MD_ERRNO()); -- return PR_FAILURE; --} -+ int flags; - --PR_IMPLEMENT(PRStatus) --_MD_TLOCKFILE (PRInt32 f) --{ -- PRInt32 rv; -- rv = flock(f, LOCK_EX|LOCK_NB); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_FLOCK_ERROR(_MD_ERRNO()); -- return PR_FAILURE; -+ PR_ASSERT(_PR_TRI_UNKNOWN == fd->secret->inheritable); -+ flags = fcntl(fd->secret->md.osfd, F_GETFD, 0); -+ PR_ASSERT(-1 != flags); -+ fd->secret->inheritable = (flags & FD_CLOEXEC) ? -+ _PR_TRI_FALSE : _PR_TRI_TRUE; - } - --PR_IMPLEMENT(PRStatus) --_MD_UNLOCKFILE (PRInt32 f) -+PRStatus -+_MD_gethostname(char *name, PRUint32 namelen) - { -- PRInt32 rv; -- rv = flock(f, LOCK_UN); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_FLOCK_ERROR(_MD_ERRNO()); -- return PR_FAILURE; --} --#else -+ PRInt32 rv, err; - --PR_IMPLEMENT(PRStatus) --_MD_LOCKFILE (PRInt32 f) --{ -- PRInt32 rv; -- rv = lockf(f, F_LOCK, 0); -+ rv = gethostname(name, namelen); - if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_LOCKF_ERROR(_MD_ERRNO()); -- return PR_FAILURE; --} -- --PR_IMPLEMENT(PRStatus) --_MD_TLOCKFILE (PRInt32 f) - { -- PRInt32 rv; -- rv = lockf(f, F_TLOCK, 0); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_LOCKF_ERROR(_MD_ERRNO()); -- return PR_FAILURE; -+ err = _MD_ERRNO(); -+ switch (err) { -+ case EFAULT: -+ PR_SetError(PR_ACCESS_FAULT_ERROR, err); -+ break; -+ default: -+ PR_SetError(PR_UNKNOWN_ERROR, err); -+ break; - } -- --PR_IMPLEMENT(PRStatus) --_MD_UNLOCKFILE (PRInt32 f) --{ -- PRInt32 rv; -- rv = lockf(f, F_ULOCK, 0); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_LOCKF_ERROR(_MD_ERRNO()); - return PR_FAILURE; - } --#endif -- --PR_IMPLEMENT(PRStatus) -- _MD_GETHOSTNAME (char *name, PRUint32 namelen) --{ -- PRIntn rv; -- -- rv = gethostname(name, namelen); -- if (0 == rv) { - return PR_SUCCESS; - } -- _PR_MD_MAP_GETHOSTNAME_ERROR(_MD_ERRNO()); -- return PR_FAILURE; --} -- --#endif -Index: mozilla/nsprpub/pr/src/md/beos/bproc.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/md/beos/bproc.c,v -retrieving revision 3.6 -diff -u -8 -p -w -r3.6 bproc.c ---- mozilla/nsprpub/pr/src/md/beos/bproc.c 25 Apr 2004 15:00:59 -0000 3.6 -+++ mozilla/nsprpub/pr/src/md/beos/bproc.c 8 Jul 2009 21:53:29 -0000 -@@ -31,18 +31,20 @@ - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - - #include "primpl.h" --#include -+#include - #include -+#include -+#include - - #define _PR_SIGNALED_EXITSTATUS 256 - - PRProcess* - _MD_create_process (const char *path, char *const *argv, - char *const *envp, const PRProcessAttr *attr) - { - PRProcess *process; -Index: mozilla/nsprpub/pr/src/md/beos/bsrcs.mk -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/md/beos/bsrcs.mk,v -retrieving revision 3.6 -diff -u -8 -p -w -r3.6 bsrcs.mk ---- mozilla/nsprpub/pr/src/md/beos/bsrcs.mk 25 Apr 2004 15:00:59 -0000 3.6 -+++ mozilla/nsprpub/pr/src/md/beos/bsrcs.mk 8 Jul 2009 21:53:29 -0000 -@@ -15,16 +15,17 @@ - # The Original Code is the Netscape Portable Runtime (NSPR). - # - # The Initial Developer of the Original Code is - # Netscape Communications Corporation. - # Portions created by the Initial Developer are Copyright (C) 1998-2000 - # the Initial Developer. All Rights Reserved. - # - # Contributor(s): -+# Fredrik Holmqvist - # - # Alternatively, the contents of this file may be used under the terms of - # either the GNU General Public License Version 2 or later (the "GPL"), or - # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - # in which case the provisions of the GPL or the LGPL are applicable instead - # of those above. If you wish to allow use of your version of this file only - # under the terms of either the GPL or the LGPL, and not to allow others to - # use your version of this file under the terms of the MPL, indicate your -@@ -37,18 +38,11 @@ - - - # this file lists the source files to be compiled (used in Makefile) and - # then enumerated as object files (in objs.mk) for inclusion in the NSPR - # shared library - - MDCSRCS = \ - beos.c \ -- beos_errors.c \ -- bfile.c \ -- bmisc.c \ -- bnet.c \ - bproc.c \ -- brng.c \ -- bseg.c \ -- btime.c \ - bmmap.c \ - $(NULL) -Index: mozilla/nsprpub/pr/src/memory/prseg.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/memory/prseg.c,v -retrieving revision 3.8 -diff -u -8 -p -w -r3.8 prseg.c ---- mozilla/nsprpub/pr/src/memory/prseg.c 25 Apr 2004 15:01:01 -0000 3.8 -+++ mozilla/nsprpub/pr/src/memory/prseg.c 8 Jul 2009 21:53:30 -0000 -@@ -32,26 +32,26 @@ - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - - #include "primpl.h" - --#if defined(_PR_PTHREADS) -+#if defined(_PR_PTHREADS) || defined(_PR_BTHREADS) - - /* - ** The pthreads version doesn't use these functions. - */ - void _PR_InitSegs(void) - { - } - --#else /* _PR_PTHREADS */ -+#else /* _PR_PTHREADS || defined(_PR_BTHREADS) */ - - void _PR_InitSegs(void) - { - _PR_MD_INIT_SEGS(); - } - - /* - ** Allocate a memory segment. The size value is rounded up to the native -@@ -85,9 +85,9 @@ PRSegment* _PR_NewSegment(PRUint32 size, - ** Free a memory segment. - */ - void _PR_DestroySegment(PRSegment *seg) - { - _PR_MD_FREE_SEGMENT(seg); - PR_DELETE(seg); - } - --#endif /* _PR_PTHREADS */ -+#endif /* _PR_PTHREADS || defined(_PR_BTHREADS) */ -Index: mozilla/nsprpub/pr/src/misc/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/misc/Makefile.in,v -retrieving revision 1.19 -diff -u -8 -p -w -r1.19 Makefile.in ---- mozilla/nsprpub/pr/src/misc/Makefile.in 8 Nov 2004 02:52:56 -0000 1.19 -+++ mozilla/nsprpub/pr/src/misc/Makefile.in 8 Jul 2009 21:53:30 -0000 -@@ -66,20 +66,22 @@ CSRCS = \ - prsystem.c \ - prtime.c \ - prthinfo.c \ - prtpool.c \ - prtrace.c \ - $(NULL) - - ifndef USE_PTHREADS -+ifndef USE_BTHREADS - CSRCS += \ - pripcsem.c \ - $(NULL) - endif -+endif - - TARGETS = $(OBJS) - - INCLUDES = -I$(dist_includedir) -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/private - - DEFINES += -D_NSPR_BUILD_ - - RELEASE_BINS = $(srcdir)/compile-et.pl $(srcdir)/prerr.properties -Index: mozilla/nsprpub/pr/src/misc/prinit.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/misc/prinit.c,v -retrieving revision 3.43.2.1 -diff -u -8 -p -w -r3.43.2.1 prinit.c ---- mozilla/nsprpub/pr/src/misc/prinit.c 1 Dec 2006 00:34:11 -0000 3.43.2.1 -+++ mozilla/nsprpub/pr/src/misc/prinit.c 8 Jul 2009 21:53:33 -0000 -@@ -195,18 +195,20 @@ static void _PR_InitStuff(void) - _pr_shma_lm = PR_NewLogModule("shma"); - - /* NOTE: These init's cannot depend on _PR_MD_CURRENT_THREAD() */ - _PR_MD_EARLY_INIT(); - - _PR_InitLocks(); - _PR_InitAtomic(); - _PR_InitSegs(); -+#if !defined(_PR_BTHREADS) - _PR_InitStacks(); - _PR_InitTPD(); -+#endif /*!defined(_PR_BTHREADS) */ - _PR_InitEnv(); - _PR_InitLayerCache(); - _PR_InitClock(); - - _pr_sleeplock = PR_NewLock(); - PR_ASSERT(NULL != _pr_sleeplock); - - #ifdef GC_LEAK_DETECTOR -Index: mozilla/nsprpub/pr/src/misc/pripcsem.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/misc/pripcsem.c,v -retrieving revision 3.5 -diff -u -8 -p -w -r3.5 pripcsem.c ---- mozilla/nsprpub/pr/src/misc/pripcsem.c 25 Apr 2004 15:01:01 -0000 3.5 -+++ mozilla/nsprpub/pr/src/misc/pripcsem.c 8 Jul 2009 21:53:33 -0000 -@@ -41,19 +41,19 @@ - * Description: implements the named semaphores API in prsemipc.h - * for classic NSPR. If _PR_HAVE_NAMED_SEMAPHORES is not defined, - * the named semaphore functions all fail with the error code - * PR_NOT_IMPLEMENTED_ERROR. - */ - - #include "primpl.h" - --#ifdef _PR_PTHREADS -+#if defined(_PR_PTHREADS) || defined(_PR_BTHREADS) - --#error "This file should not be compiled for the pthreads version" -+#error "This file should not be compiled for the pthreads or bthreads version" - - #else - - #ifndef _PR_HAVE_NAMED_SEMAPHORES - - PRSem * _PR_MD_OPEN_SEMAPHORE( - const char *osname, PRIntn flags, PRIntn mode, PRUintn value) - { -@@ -122,9 +122,9 @@ PR_IMPLEMENT(PRStatus) PR_DeleteSemaphor - if (!_pr_initialized) _PR_ImplicitInitialization(); - if (_PR_MakeNativeIPCName(name, osname, sizeof(osname), _PRIPCSem) - == PR_FAILURE) { - return PR_FAILURE; - } - return _PR_MD_DELETE_SEMAPHORE(osname); - } - --#endif /* _PR_PTHREADS */ -+#endif /* _PR_PTHREADS || _PR_BTHREADS */ -Index: mozilla/profile/defaults/bookmarks.html -=================================================================== -RCS file: /cvsroot/mozilla/profile/defaults/Attic/bookmarks.html,v -retrieving revision 1.18.4.1 -diff -u -8 -p -w -r1.18.4.1 bookmarks.html ---- mozilla/profile/defaults/bookmarks.html 28 Nov 2007 16:42:30 -0000 1.18.4.1 -+++ mozilla/profile/defaults/bookmarks.html 8 Jul 2009 21:53:43 -0000 -@@ -1,41 +1,40 @@ - - -+ DO NOT EDIT! --> - - Bookmarks -

Bookmarks

- -

--

Personal Toolbar Folder

--

--

mozilla.org --
mozillaZine --
mozdev.org --

--

Mozilla Project

--

--

mozilla.org

--

--

The Mozilla Organization --
SeaMonkey Project --
Mozilla Products --
Feedback --

--

Community & Support

-+
Get Bookmark Add-ons -+
-+

Bookmarks Toolbar Folder

-+
Add bookmarks to this folder to see them displayed on the Bookmarks Toolbar -

--

mozillaZine --
SeaMonkey Support (mozillaZine) --
mozdev.org --
Mozilla Plug-in Information (mozdev) --
Mozilla Extensions (mozdev) --

-+

Haiku WebSite -+
Nightly Builds -

--

Search the Web

-+
-+

BeZilla Browser

-

--

Google --
Google Groups --
Google News -+
BeZilla Blog -+
Report an Issue -+
View Known Issues -+

-+

Haiku Bookmarks

-+

-+

Nightly Builds -+
Optional Packages -+
Bug Tracker -+

-+

Software for Haiku

-+

-+

OSDrawer.net -+
HaikuWare -+
Zeta-Games -+
BeBits -

--


-+
Haiku WebSite -+ -

-Index: mozilla/security/coreconf/BeOS.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/coreconf/BeOS.mk,v -retrieving revision 1.2 -diff -u -8 -p -w -r1.2 BeOS.mk ---- mozilla/security/coreconf/BeOS.mk 25 Apr 2004 15:02:17 -0000 1.2 -+++ mozilla/security/coreconf/BeOS.mk 8 Jul 2009 21:53:45 -0000 -@@ -56,17 +56,17 @@ ifeq ($(OS_TEST),ppc) - CPU_ARCH = ppc - else - OS_REL_CFLAGS = -Di386 - CPU_ARCH = x86 - endif - - MKSHLIB = $(CC) -nostart -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so) - ifdef BUILD_OPT -- OPTIMIZER = -O2 -+ OPTIMIZER = -O3 - endif - - OS_CFLAGS = $(DSO_CFLAGS) $(OS_REL_CFLAGS) -Wall -pipe - OS_LIBS = -lbe - - DEFINES += -DBEOS - - ifdef USE_PTHREADS -Index: mozilla/security/coreconf/arch.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/coreconf/arch.mk,v -retrieving revision 1.19.2.1 -diff -u -8 -p -w -r1.19.2.1 arch.mk ---- mozilla/security/coreconf/arch.mk 14 Nov 2007 22:47:33 -0000 1.19.2.1 -+++ mozilla/security/coreconf/arch.mk 8 Jul 2009 21:53:46 -0000 -@@ -57,16 +57,17 @@ - ifeq ($(USE_64), 1) - 64BIT_TAG=_64 - else - 64BIT_TAG= - endif - - OS_ARCH := $(subst /,_,$(shell uname -s)) - -+ - # - # Attempt to differentiate between sparc and x86 Solaris - # - - OS_TEST := $(shell uname -m) - ifeq ($(OS_TEST),i86pc) - OS_RELEASE := $(shell uname -r)_$(OS_TEST) - else -Index: mozilla/security/coreconf/config.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/coreconf/config.mk,v -retrieving revision 1.17.28.3 -diff -u -8 -p -w -r1.17.28.3 config.mk ---- mozilla/security/coreconf/config.mk 4 May 2007 06:54:05 -0000 1.17.28.3 -+++ mozilla/security/coreconf/config.mk 8 Jul 2009 21:53:47 -0000 -@@ -32,16 +32,17 @@ - # and other provisions required by the GPL or the LGPL. If you do not delete - # the provisions above, a recipient may use your version of this file under - # the terms of any one of the MPL, the GPL or the LGPL. - # - # ***** END LICENSE BLOCK ***** - - # Configuration information for building in the "Core Components" source module - -+ - ####################################################################### - # [1.0] Master "Core Components" source and release # - # tags # - ####################################################################### - ifndef MK_ARCH - include $(CORE_DEPTH)/coreconf/arch.mk - endif - -@@ -57,24 +58,30 @@ endif - # [3.0] Master "Core Components" -specific macros # - # (dependent upon tags) # - # # - # We are moving towards just having a $(OS_TARGET).mk file # - # as opposed to multiple $(OS_TARGET)$(OS_RELEASE).mk files, # - # one for each OS release. # - ####################################################################### - -+ -+ - TARGET_OSES = FreeBSD BSD_OS NetBSD OpenUNIX OS2 QNX Darwin BeOS OpenBSD \ - OpenVMS AIX - - ifeq (,$(filter-out $(TARGET_OSES),$(OS_TARGET))) - include $(CORE_DEPTH)/coreconf/$(OS_TARGET).mk - else -+ifeq ($(OS_ARCH), Haiku) -+include $(CORE_DEPTH)/coreconf/BeOS.mk -+else - include $(CORE_DEPTH)/coreconf/$(OS_TARGET)$(OS_RELEASE).mk - endif -+endif - - ####################################################################### - # [4.0] Master "Core Components" source and release tags # - # (dependent upon tags) # - ####################################################################### - PLATFORM = $(OBJDIR_NAME) - - ####################################################################### -Index: mozilla/security/manager/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/security/manager/Makefile.in,v -retrieving revision 1.57.4.6 -diff -u -8 -p -w -r1.57.4.6 Makefile.in ---- mozilla/security/manager/Makefile.in 23 May 2008 23:45:26 -0000 1.57.4.6 -+++ mozilla/security/manager/Makefile.in 8 Jul 2009 21:53:48 -0000 -@@ -257,30 +257,45 @@ ifndef MOZ_NATIVE_NSS - $(MAKE) -C $(topsrcdir)/security/nss-fips/lib/util $(DEFAULT_GMAKE_FLAGS) clean - # In NSS 3.11.8-3.11.9, lib/ssl/derive.c includes cmd/lib/secutil.h. - $(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS) export - $(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS) DIRS="util base dev pki pki1 certdb certhigh pk11wrap cryptohi nss ssl pkcs12 pkcs7 smime crmf jar ckfw ckfw/builtins" - ifndef SKIP_CHK - $(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS) - $(MAKE) -C $(topsrcdir)/security/nss/cmd/shlibsign $(DEFAULT_GMAKE_FLAGS) - endif -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 755 $(DIST)/lib/$(LOADABLE_ROOT_MODULE) $(DIST)/bin/add-ons -+else - $(INSTALL) -m 755 $(DIST)/lib/$(LOADABLE_ROOT_MODULE) $(DIST)/bin -+endif - ifndef SKIP_CHK - $(INSTALL) -m 644 $(DIST)/lib/$(SOFTOKEN3_CHK) $(DIST)/bin - endif -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 755 $(DIST)/lib/$(SOFTOKEN3_LIB) $(DIST)/bin/lib -+ $(INSTALL) -m 755 $(DIST)/lib/$(NSS3_LIB) $(DIST)/bin/lib -+ $(INSTALL) -m 755 $(DIST)/lib/$(SSL3_LIB) $(DIST)/bin/lib -+ $(INSTALL) -m 755 $(DIST)/lib/$(SMIME3_LIB) $(DIST)/bin/lib -+else - $(INSTALL) -m 755 $(DIST)/lib/$(SOFTOKEN3_LIB) $(DIST)/bin - $(INSTALL) -m 755 $(DIST)/lib/$(NSS3_LIB) $(DIST)/bin - $(INSTALL) -m 755 $(DIST)/lib/$(SSL3_LIB) $(DIST)/bin - $(INSTALL) -m 755 $(DIST)/lib/$(SMIME3_LIB) $(DIST)/bin -+endif - ifdef HAVE_FREEBL_LIBS - ifndef SKIP_CHK - $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_CHK) $(DIST)/bin - endif -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_LIB) $(DIST)/bin/add-ons -+else - $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_LIB) $(DIST)/bin - endif -+endif - ifdef HAVE_FREEBL_LIBS_32 - ifndef SKIP_CHK - $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_32INT_CHK) $(DIST)/bin - $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_32FPU_CHK) $(DIST)/bin - endif - $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_32INT_LIB) $(DIST)/bin - $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_32FPU_LIB) $(DIST)/bin - endif -Index: mozilla/security/nss/cmd/lib/secutil.h -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/cmd/lib/secutil.h,v -retrieving revision 1.18.24.1 -diff -u -8 -p -w -r1.18.24.1 secutil.h ---- mozilla/security/nss/cmd/lib/secutil.h 19 Jul 2006 00:25:03 -0000 1.18.24.1 -+++ mozilla/security/nss/cmd/lib/secutil.h 8 Jul 2009 21:53:54 -0000 -@@ -407,16 +407,16 @@ SECU_GetOptionArg(secuCommand *cmd, int - /* Return informative error string */ - char *SECU_ErrorString(int16 err); - - /* Return informative error string. Does not call XP_GetString */ - char *SECU_ErrorStringRaw(int16 err); - - void printflags(char *trusts, unsigned int flags); - --#ifndef XP_UNIX -+#if !defined(XP_UNIX) && !defined(XP_BEOS) - extern int ffs(unsigned int i); - #endif - - #include "secerr.h" - #include "sslerr.h" - - #endif /* _SEC_UTIL_H_ */ -Index: mozilla/security/nss/lib/dev/ckhelper.c -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/dev/ckhelper.c,v -retrieving revision 1.34.28.2 -diff -u -8 -p -w -r1.34.28.2 ckhelper.c ---- mozilla/security/nss/lib/dev/ckhelper.c 3 Dec 2008 04:52:53 -0000 1.34.28.2 -+++ mozilla/security/nss/lib/dev/ckhelper.c 8 Jul 2009 21:53:59 -0000 -@@ -225,33 +225,33 @@ NSS_IMPLEMENT PRBool - nssCKObject_IsAttributeTrue ( - CK_OBJECT_HANDLE object, - CK_ATTRIBUTE_TYPE attribute, - nssSession *session, - NSSSlot *slot, - PRStatus *rvStatus - ) - { -- CK_BBOOL bool; -+ CK_BBOOL boolval; - CK_ATTRIBUTE_PTR attr; - CK_ATTRIBUTE atemplate = { 0, NULL, 0 }; - CK_RV ckrv; - void *epv = nssSlot_GetCryptokiEPV(slot); - attr = &atemplate; -- NSS_CK_SET_ATTRIBUTE_VAR(attr, attribute, bool); -+ NSS_CK_SET_ATTRIBUTE_VAR(attr, attribute, boolval); - nssSession_EnterMonitor(session); - ckrv = CKAPI(epv)->C_GetAttributeValue(session->handle, object, - &atemplate, 1); - nssSession_ExitMonitor(session); - if (ckrv != CKR_OK) { - *rvStatus = PR_FAILURE; - return PR_FALSE; - } - *rvStatus = PR_SUCCESS; -- return (PRBool)(bool == CK_TRUE); -+ return (PRBool)(boolval == CK_TRUE); - } - - NSS_IMPLEMENT PRStatus - nssCKObject_SetAttributes ( - CK_OBJECT_HANDLE object, - CK_ATTRIBUTE_PTR obj_template, - CK_ULONG count, - nssSession *session, -Index: mozilla/security/nss/lib/freebl/unix_rand.c -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/freebl/unix_rand.c,v -retrieving revision 1.17.10.7 -diff -u -8 -p -w -r1.17.10.7 unix_rand.c ---- mozilla/security/nss/lib/freebl/unix_rand.c 25 Jul 2007 23:18:55 -0000 1.17.10.7 -+++ mozilla/security/nss/lib/freebl/unix_rand.c 8 Jul 2009 21:54:01 -0000 -@@ -662,17 +662,17 @@ GetHighResClock(void *buf, size_t maxbyt - - t = asm("rpcc %v0"); - return CopyLowBits(buf, maxbytes, &t, sizeof(t)); - } - - #endif /* VMS */ - - #ifdef BEOS --#include -+#include - - static size_t - GetHighResClock(void *buf, size_t maxbytes) - { - bigtime_t bigtime; /* Actually an int64 */ - - bigtime = real_time_clock_usecs(); - return CopyLowBits(buf, maxbytes, &bigtime, sizeof(bigtime)); -Index: mozilla/security/nss/lib/ssl/config.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/ssl/config.mk,v -retrieving revision 1.21.2.1 -diff -u -8 -p -w -r1.21.2.1 config.mk ---- mozilla/security/nss/lib/ssl/config.mk 1 May 2007 06:09:31 -0000 1.21.2.1 -+++ mozilla/security/nss/lib/ssl/config.mk 8 Jul 2009 21:54:03 -0000 -@@ -103,17 +103,17 @@ EXTRA_SHARED_LIBS += \ - -L$(DIST)/lib \ - -lnss3 \ - -L$(NSPR_LIB_DIR) \ - -lplc4 \ - -lplds4 \ - -lnspr4 \ - $(NULL) - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_SHARED_LIBS += -lbe - endif - - ifeq ($(OS_ARCH), Darwin) - EXTRA_SHARED_LIBS += -dylib_file @executable_path/libsoftokn3.dylib:$(DIST)/lib/libsoftokn3.dylib - endif - - ifeq ($(OS_TARGET),SunOS) -Index: mozilla/security/nss-fips/lib/freebl/unix_rand.c -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/freebl/unix_rand.c,v -retrieving revision 1.17.10.5 -diff -u -8 -p -w -r1.17.10.5 unix_rand.c ---- mozilla/security/nss-fips/lib/freebl/unix_rand.c 12 Oct 2006 22:50:48 -0000 1.17.10.5 -+++ mozilla/security/nss-fips/lib/freebl/unix_rand.c 8 Jul 2009 21:54:10 -0000 -@@ -661,17 +661,17 @@ GetHighResClock(void *buf, size_t maxbyt - - t = asm("rpcc %v0"); - return CopyLowBits(buf, maxbytes, &t, sizeof(t)); - } - - #endif /* VMS */ - - #ifdef BEOS --#include -+#include - - static size_t - GetHighResClock(void *buf, size_t maxbytes) - { - bigtime_t bigtime; /* Actually an int64 */ - - bigtime = real_time_clock_usecs(); - return CopyLowBits(buf, maxbytes, &bigtime, sizeof(bigtime)); -Index: mozilla/security/nss-fips/lib/ssl/config.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/ssl/config.mk,v -retrieving revision 1.21 -diff -u -8 -p -w -r1.21 config.mk ---- mozilla/security/nss-fips/lib/ssl/config.mk 19 Oct 2005 01:04:16 -0000 1.21 -+++ mozilla/security/nss-fips/lib/ssl/config.mk 8 Jul 2009 21:54:11 -0000 -@@ -99,17 +99,17 @@ EXTRA_SHARED_LIBS += \ - -L$(DIST)/lib \ - -lnss3 \ - -L$(NSPR_LIB_DIR) \ - -lplc4 \ - -lplds4 \ - -lnspr4 \ - $(NULL) - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_SHARED_LIBS += -lbe - endif - - ifeq ($(OS_ARCH), Darwin) - EXTRA_SHARED_LIBS += -dylib_file @executable_path/libsoftokn3.dylib:$(DIST)/lib/libsoftokn3.dylib - endif - - ifeq ($(OS_TARGET),SunOS) -Index: mozilla/toolkit/library/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/toolkit/library/Makefile.in,v -retrieving revision 1.16.2.10 -diff -u -8 -p -w -r1.16.2.10 Makefile.in ---- mozilla/toolkit/library/Makefile.in 31 Aug 2007 02:40:21 -0000 1.16.2.10 -+++ mozilla/toolkit/library/Makefile.in 8 Jul 2009 21:54:23 -0000 -@@ -359,17 +359,17 @@ endif - ifdef MOZ_ENABLE_XPRINT - EXTRA_DSO_LDOPTS += $(MOZ_XPRINT_LDFLAGS) - endif - - ifdef MOZ_ENABLE_PANGO - EXTRA_DSO_LDOPTS += $(MOZ_PANGO_LIBS) - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_DSO_LDOPTS += -lbe - endif - - ifeq ($(OS_ARCH),WINNT) - EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME,shell32 ole32 uuid version winspool comdlg32) - ifneq (,$(MOZ_DEBUG)$(NS_TRACE_MALLOC)) - EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME,imagehlp) - endif -Index: mozilla/toolkit/mozapps/installer/package-name.mk -=================================================================== -RCS file: /cvsroot/mozilla/toolkit/mozapps/installer/package-name.mk,v -retrieving revision 1.4.8.3 -diff -u -8 -p -w -r1.4.8.3 package-name.mk ---- mozilla/toolkit/mozapps/installer/package-name.mk 4 Apr 2008 09:21:26 -0000 1.4.8.3 -+++ mozilla/toolkit/mozapps/installer/package-name.mk 8 Jul 2009 21:54:24 -0000 -@@ -54,16 +54,19 @@ ifeq ($(OS_ARCH),Darwin) - MOZ_PKG_PLATFORM := mac - endif - ifeq ($(TARGET_OS),linux-gnu) - MOZ_PKG_PLATFORM := linux-$(TARGET_CPU) - endif - ifeq ($(OS_ARCH),OS2) - MOZ_PKG_PLATFORM := os2 - endif -+ifeq ($(OS_ARCH), Haiku) -+MOZ_PKG_PLATFORM := Haiku -+endif - ifeq ($(OS_ARCH), BeOS) - ifeq (,$(filter-out 6.%, $(OS_RELEASE))) - MOZ_PKG_PLATFORM := Zeta - else - ifeq (,$(filter-out 5.1, $(OS_RELEASE))) - MOZ_PKG_PLATFORM := BeOS-bone - else - ifeq (,$(filter-out 5.0.4, $(OS_RELEASE))) -Index: mozilla/toolkit/mozapps/installer/packager.mk -=================================================================== -RCS file: /cvsroot/mozilla/toolkit/mozapps/installer/packager.mk,v -retrieving revision 1.16.2.18 -diff -u -8 -p -w -r1.16.2.18 packager.mk ---- mozilla/toolkit/mozapps/installer/packager.mk 4 Apr 2008 20:31:10 -0000 1.16.2.18 -+++ mozilla/toolkit/mozapps/installer/packager.mk 8 Jul 2009 21:54:25 -0000 -@@ -43,21 +43,24 @@ include $(topsrcdir)/toolkit/mozapps/ins - # This is how we create the Unix binary packages we release to the public. - # Currently the only format is tar.gz (TGZ), but it should be fairly easy - # to add .rpm (RPM) and .deb (DEB) later. - - ifndef MOZ_PKG_FORMAT - ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) - MOZ_PKG_FORMAT = DMG - else --ifeq (,$(filter-out OS2 WINNT BeOS, $(OS_ARCH))) -+ifeq (,$(filter-out OS2 WINNT BeOS Haiku, $(OS_ARCH))) - MOZ_PKG_FORMAT = ZIP - ifeq ($(OS_ARCH),OS2) - INSTALLER_DIR = os2 - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+INSTALLER_DIR = beos -+endif - ifeq ($(OS_ARCH), WINNT) - INSTALLER_DIR = windows - endif - endif - else - ifeq (,$(filter-out SunOS, $(OS_ARCH))) - MOZ_PKG_FORMAT = BZ2 - else -@@ -246,19 +249,19 @@ $(MOZ_PKG_REMOVALS_GEN): $(MOZ_PKG_REMOV - $(PERL) $(topsrcdir)/config/preprocessor.pl -Fsubstitution $(DEFINES) $(ACDEFINES) $(MOZ_PKG_REMOVALS) > $(MOZ_PKG_REMOVALS_GEN) - endif - - GARBAGE += $(DIST)/$(PACKAGE) $(PACKAGE) - - ifeq ($(OS_ARCH),IRIX) - STRIP_FLAGS = -f - endif --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - STRIP_FLAGS = -g --PLATFORM_EXCLUDE_LIST = ! -name "*.stub" ! -name "$(MOZ_PKG_APPNAME)-bin" -+PLATFORM_EXCLUDE_LIST = ! -name "*.stub" ! -name "$(MOZ_PKG_APPNAME)" - endif - ifeq ($(OS_ARCH),OS2) - STRIP = $(srcdir)/os2/strip.cmd - STRIP_FLAGS = - PLATFORM_EXCLUDE_LIST = ! -name "*.ico" - endif - - ifneq (,$(filter WINNT OS2,$(OS_ARCH))) -Index: mozilla/toolkit/xre/nsAppRunner.cpp -=================================================================== -RCS file: /cvsroot/mozilla/toolkit/xre/nsAppRunner.cpp,v -retrieving revision 1.113.2.24 -diff -u -8 -p -w -r1.113.2.24 nsAppRunner.cpp ---- mozilla/toolkit/xre/nsAppRunner.cpp 8 Nov 2007 11:56:25 -0000 1.113.2.24 -+++ mozilla/toolkit/xre/nsAppRunner.cpp 8 Jul 2009 21:54:34 -0000 -@@ -1356,19 +1356,20 @@ XRE_GetBinaryPath(const char* argv0, nsI - rv = NS_NewNativeLocalFile(nsDependentCString(exePath), PR_TRUE, - getter_AddRefs(lf)); - if (NS_FAILED(rv)) - return rv; - - #elif defined(XP_BEOS) - int32 cookie = 0; - image_info info; -- -+ do { - if(get_next_image_info(0, &cookie, &info) != B_OK) - return NS_ERROR_FAILURE; -+ } while(info.type != B_APP_IMAGE); - - rv = NS_NewNativeLocalFile(nsDependentCString(info.name), PR_TRUE, - getter_AddRefs(lf)); - if (NS_FAILED(rv)) - return rv; - - #elif - #error Oops, you need platform-specific code here -Index: mozilla/toolkit/xre/nsXREDirProvider.cpp -=================================================================== -RCS file: /cvsroot/mozilla/toolkit/xre/nsXREDirProvider.cpp,v -retrieving revision 1.37.2.11 -diff -u -8 -p -w -r1.37.2.11 nsXREDirProvider.cpp ---- mozilla/toolkit/xre/nsXREDirProvider.cpp 8 May 2007 19:25:29 -0000 1.37.2.11 -+++ mozilla/toolkit/xre/nsXREDirProvider.cpp 8 Jul 2009 21:54:36 -0000 -@@ -71,17 +71,17 @@ - #ifndef CSIDL_PROGRAM_FILES - #define CSIDL_PROGRAM_FILES 0x0026 - #endif - #endif - #ifdef XP_MACOSX - #include "nsILocalFileMac.h" - #endif - #ifdef XP_BEOS --#include -+#include - #include - #endif - #ifdef XP_UNIX - #include - #endif - #ifdef XP_OS2 - #define INCL_DOS - #include -Index: mozilla/widget/src/beos/nsAppShell.cpp -=================================================================== -RCS file: /cvsroot/mozilla/widget/src/beos/nsAppShell.cpp,v -retrieving revision 1.29.8.2 -diff -u -8 -p -w -r1.29.8.2 nsAppShell.cpp ---- mozilla/widget/src/beos/nsAppShell.cpp 3 Jul 2007 09:33:54 -0000 1.29.8.2 -+++ mozilla/widget/src/beos/nsAppShell.cpp 8 Jul 2009 21:54:39 -0000 -@@ -113,20 +113,38 @@ nsAppShell::nsAppShell() - //------------------------------------------------------------------------- - - NS_IMETHODIMP nsAppShell::Create(int* argc, char ** argv) - { - // system wide unique names - // NOTE: this needs to be run from within the main application thread - char portname[64]; - char semname[64]; -+ int32 cookie = 0; -+ image_info iinfo; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(leaf)); -+ PR_snprintf(semname, sizeof(semname), "sync%lx", -+ (long unsigned) find_thread(leaf)); -+ } -+ else -+ { - PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) PR_GetCurrentThread()); -+ (long unsigned) find_thread(0)); - PR_snprintf(semname, sizeof(semname), "sync%lx", -- (long unsigned) PR_GetCurrentThread()); -+ (long unsigned) find_thread(0)); -+ } -+ } while(iinfo.type != B_APP_IMAGE); - - #ifdef DEBUG - printf("nsAppShell::Create portname: %s, semname: %s\n", portname, semname); - #endif - /* - * Set up the port for communicating. As restarts thru execv may occur - * and ports survive those (with faulty events as result). Combined with the fact - * that plevent.c can setup the port ahead of us we need to take extra -@@ -337,18 +355,32 @@ NS_IMETHODIMP nsAppShell::GetNativeEvent - - return NS_OK; - } - - NS_IMETHODIMP nsAppShell::DispatchNativeEvent(PRBool aRealEvent, void *aEvent) - { - // should we check for eventport initialization ? - char portname[64]; -+ int32 cookie = 0; -+ image_info iinfo; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(leaf)); -+ } -+ else - PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) PR_GetCurrentThread()); -+ (long unsigned) find_thread(0)/*PR_GetCurrentThread()*/); -+ } while(iinfo.type != B_APP_IMAGE); - - if((eventport = find_port(portname)) < 0) - { - // not initialized - #ifdef DEBUG - printf("nsAppShell::DispatchNativeEvent() was called before init\n"); - #endif - fflush(stdout); -Index: mozilla/widget/src/beos/nsDragService.cpp -=================================================================== -RCS file: /cvsroot/mozilla/widget/src/beos/nsDragService.cpp,v -retrieving revision 1.13.28.5 -diff -u -8 -p -w -r1.13.28.5 nsDragService.cpp ---- mozilla/widget/src/beos/nsDragService.cpp 13 Aug 2008 12:41:28 -0000 1.13.28.5 -+++ mozilla/widget/src/beos/nsDragService.cpp 8 Jul 2009 21:54:41 -0000 -@@ -250,17 +250,17 @@ nsDragService::InvokeDragSession (nsIDOM - dragRect = view->Frame(); - // do we need to offset? - } - - PR_LOG(sDragLm, PR_LOG_DEBUG, ("invoking mDragView->DragMessage")); - bool noBitmap = true; - - //This is the code for image-dragging, currently disabled. See comments in beginning of file. --# ifdef 0 -+#if 0 - do - { - PRUint32 dataSize; - PRUint32 noItems; - mSourceDataItems->Count(&noItems); - if (noItems!=1) - { - PR_LOG(sDragLm, PR_LOG_DEBUG, ("Transferables are not ==1, no drag bitmap!")); -Index: mozilla/widget/src/beos/nsLookAndFeel.cpp -=================================================================== -RCS file: /cvsroot/mozilla/widget/src/beos/nsLookAndFeel.cpp,v -retrieving revision 1.27 -diff -u -8 -p -w -r1.27 nsLookAndFeel.cpp ---- mozilla/widget/src/beos/nsLookAndFeel.cpp 26 Oct 2004 01:45:26 -0000 1.27 -+++ mozilla/widget/src/beos/nsLookAndFeel.cpp 8 Jul 2009 21:54:42 -0000 -@@ -157,19 +157,17 @@ nsresult nsLookAndFeel::NativeGetColor(c - aColor = NS_RGB(0x00, 0x00, 0x00); - break; - case eColor_graytext: - aColor = NS_RGB(0x77, 0x77, 0x77); - break; - case eColor_highlight: - case eColor__moz_menuhover: - { -- // B_MENU_SELECTION_BACKGROUND_COLOR is used for text selection -- // this blue colors seems more suitable -- color = ui_color(B_KEYBOARD_NAVIGATION_COLOR); -+ color = ui_color(B_MENU_SELECTION_BACKGROUND_COLOR ); - aColor = NS_RGB(color.red, color.green, color.blue); - } - break; - case eColor_highlighttext: - case eColor__moz_menuhovertext: - { - color = ui_color(B_MENU_SELECTED_ITEM_TEXT_COLOR); - aColor = NS_RGB(color.red, color.green, color.blue); -Index: mozilla/widget/src/beos/nsToolkit.cpp -=================================================================== -RCS file: /cvsroot/mozilla/widget/src/beos/nsToolkit.cpp,v -retrieving revision 1.23.8.1 -diff -u -8 -p -w -r1.23.8.1 nsToolkit.cpp ---- mozilla/widget/src/beos/nsToolkit.cpp 3 Jul 2007 09:33:54 -0000 1.23.8.1 -+++ mozilla/widget/src/beos/nsToolkit.cpp 8 Jul 2009 21:54:42 -0000 -@@ -37,16 +37,17 @@ - - #include "nsToolkit.h" - #include "prmon.h" - #include "prtime.h" - #include "nsGUIEvent.h" - #include "nsSwitchToUIThread.h" - #include "plevent.h" - #include "prprf.h" -+#include - - // - // Static thread local storage index of the Toolkit - // object associated with a given thread... - // - static PRUintn gToolkitTLSIndex = 0; - - //------------------------------------------------------------------------- -@@ -84,20 +85,36 @@ void nsToolkit::RunPump(void* arg) - gThreadState = PR_TRUE; - - PR_Notify(info->monitor); - PR_ExitMonitor(info->monitor); - - delete info; - - // system wide unique names -+ int32 cookie = 0; -+ image_info iinfo; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(leaf)); -+ } -+ else -+ { - PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) PR_GetCurrentThread()); -+ (long unsigned) find_thread(0)); -+ } -+ } while(iinfo.type != B_APP_IMAGE); - -- port_id event = create_port(100, portname); -+ port_id event = create_port(200, portname); - - while(read_port(event, &code, &id, sizeof(id)) >= 0) - { - switch(code) - { - case WM_CALLMETHOD : - { - MethodInfo *mInfo = (MethodInfo *)id.data; -@@ -125,16 +142,17 @@ void nsToolkit::RunPump(void* arg) - // - // constructor - // - //------------------------------------------------------------------------- - nsToolkit::nsToolkit() - { - localthread = false; - mGuiThread = NULL; -+ mGUIThreadID = 0; - } - - - //------------------------------------------------------------------------- - // - // destructor - // - //------------------------------------------------------------------------- -@@ -183,16 +201,32 @@ void nsToolkit::CreateUIThread() - - // wait for the gui thread to start - while(gThreadState == PR_FALSE) - { - PR_Wait(monitor, PR_INTERVAL_NO_TIMEOUT); - } - } - -+ image_info iinfo; -+ int32 cookie = 0; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ mGUIThreadID = find_thread(leaf); -+ } -+ else -+ { -+ mGUIThreadID = find_thread(0); -+ } -+ } while(iinfo.type != B_APP_IMAGE); - // at this point the thread is running - PR_ExitMonitor(monitor); - PR_DestroyMonitor(monitor); - } - - - //------------------------------------------------------------------------- - // -@@ -213,28 +247,42 @@ NS_METHOD nsToolkit::Init(PRThread *aThr - { - localthread = true; - - // create a thread where the message pump will run - CreateUIThread(); - } - - cached = false; -- -+ image_info iinfo; -+ int32 cookie = 0; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ mGUIThreadID = find_thread(leaf); -+ } -+ else -+ { -+ mGUIThreadID = find_thread(0); -+ } -+ } while(iinfo.type != B_APP_IMAGE); - return NS_OK; - } - - void nsToolkit::GetInterface() - { - if(! cached) - { - char portname[64]; -- - PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) mGuiThread); -+ (long unsigned) mGUIThreadID); - - eventport = find_port(portname); - - cached = true; - } - } - - void nsToolkit::CallMethod(MethodInfo *info) -Index: mozilla/widget/src/beos/nsToolkit.h -=================================================================== -RCS file: /cvsroot/mozilla/widget/src/beos/nsToolkit.h,v -retrieving revision 1.5.8.1 -diff -u -8 -p -w -r1.5.8.1 nsToolkit.h ---- mozilla/widget/src/beos/nsToolkit.h 3 Jul 2007 09:33:54 -0000 1.5.8.1 -+++ mozilla/widget/src/beos/nsToolkit.h 8 Jul 2009 21:54:42 -0000 -@@ -66,16 +66,17 @@ public: - void Kill(); - private: - virtual ~nsToolkit(); - void CreateUIThread(void); - - protected: - // Thread Id of the "main" Gui thread. - PRThread *mGuiThread; -+ thread_id mGUIThreadID; - static void RunPump(void* arg); - void GetInterface(); - bool cached; - bool localthread; - port_id eventport; - }; - - #endif // TOOLKIT_H -Index: mozilla/xpcom/build/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xpcom/build/Makefile.in,v -retrieving revision 1.90.2.3 -diff -u -8 -p -w -r1.90.2.3 Makefile.in ---- mozilla/xpcom/build/Makefile.in 29 Mar 2008 06:56:29 -0000 1.90.2.3 -+++ mozilla/xpcom/build/Makefile.in 8 Jul 2009 21:54:45 -0000 -@@ -168,17 +168,17 @@ ifdef GC_LEAK_DETECTOR - DEFINES += -DGC_LEAK_DETECTOR - endif - - ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) - CXXFLAGS += $(TK_CFLAGS) - EXTRA_DSO_LDOPTS += $(TK_LIBS) - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_DSO_LDOPTS += -lbe - endif - - ifneq (,$(filter gtk2,$(MOZ_WIDGET_TOOLKIT))) - EXTRA_DSO_LDOPTS += $(MOZ_GTK2_LIBS) - endif - - ifeq ($(OS_ARCH),WINNT) -Index: mozilla/xpcom/obsolete/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xpcom/obsolete/Makefile.in,v -retrieving revision 1.17 -diff -u -8 -p -w -r1.17 Makefile.in ---- mozilla/xpcom/obsolete/Makefile.in 30 Jan 2005 21:33:45 -0000 1.17 -+++ mozilla/xpcom/obsolete/Makefile.in 8 Jul 2009 21:54:47 -0000 -@@ -115,17 +115,17 @@ DEFINES += -D_IMPL_NS_COM_OBSOLETE - - EXTRA_DSO_LDOPTS += $(MOZ_COMPONENT_LIBS) - - ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) - CXXFLAGS += $(TK_CFLAGS) - EXTRA_DSO_LDOPTS += $(TK_LIBS) - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_DSO_LDOPTS += -lbe - endif - - ifeq ($(OS_ARCH),WINNT) - EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME, shell32 ole32) - ifneq (,$(MOZ_DEBUG)$(NS_TRACE_MALLOC)) - EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME, imagehlp) - endif -Index: mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in,v -retrieving revision 1.80.4.6 -diff -u -8 -p -w -r1.80.4.6 Makefile.in ---- mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 19 Feb 2008 21:11:34 -0000 1.80.4.6 -+++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 8 Jul 2009 21:54:49 -0000 -@@ -90,21 +90,23 @@ endif - # IA64 Linux - ifneq (,$(filter Linux,$(OS_ARCH))) - ifneq (,$(findstring ia64,$(OS_TEST))) - CPPSRCS := xptcinvoke_ipf64.cpp xptcstubs_ipf64.cpp - ASFILES := xptcstubs_asm_ipf64.s xptcinvoke_asm_ipf64.s - endif - endif - # --# BeOS/Intel (uses the same unixish_x86 code) -+# BeOS/Intel (uses the same as Linux, works well. Migrate others!) - # --ifeq ($(OS_ARCH)$(OS_TEST),BeOSBePC) -+#ifeq ($(OS_ARCH)$(OS_TEST),BeOSBePC) -+ifeq (,$(filter-out BeOSBePC HaikuBePC, $(OS_ARCH)$(OS_TEST))) - CPPSRCS := xptcinvoke_gcc_x86_unix.cpp xptcstubs_gcc_x86_unix.cpp - endif -+ - # - # Neutrino/Intel (uses the same unixish_x86 code) - # - ifeq ($(OS_TARGET),NTO) - ifeq ($(OS_TEST),x86) - CPPSRCS := xptcinvoke_unixish_x86.cpp xptcstubs_unixish_x86.cpp - endif - ifeq ($(OS_TEST),arm) -Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h -=================================================================== -RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h,v -retrieving revision 1.18.28.3 -diff -u -8 -p -w -r1.18.28.3 xptc_platforms_unixish_x86.h ---- mozilla/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h 9 Apr 2007 20:01:13 -0000 1.18.28.3 -+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h 8 Jul 2009 21:54:49 -0000 -@@ -133,17 +133,22 @@ - /* Old gcc 2.7.x.x. What does gcc 2.8.x do?? */ - #define CFRONT_STYLE_THIS_ADJUST - #else - /* egcs and later */ - #define THUNK_BASED_THIS_ADJUST - #endif - - #elif defined(__BEOS__) -+#if (__GNUC__ == 2) - #define CFRONT_STYLE_THIS_ADJUST -+#else -+#define THUNK_BASED_THIS_ADJUST -+#endif -+ - - #elif defined(__sun__) || defined(__sun) - #if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */ - #define THUNK_BASED_THIS_ADJUST - #else - #define CFRONT_STYLE_THIS_ADJUST - #endif - -Index: mozilla/xpcom/threads/plevent.c -=================================================================== -RCS file: /cvsroot/mozilla/xpcom/threads/Attic/plevent.c,v -retrieving revision 1.54.2.1 -diff -u -8 -p -w -r1.54.2.1 plevent.c ---- mozilla/xpcom/threads/plevent.c 26 Sep 2005 19:43:34 -0000 1.54.2.1 -+++ mozilla/xpcom/threads/plevent.c 8 Jul 2009 21:54:54 -0000 -@@ -61,16 +61,18 @@ - #if defined(XP_UNIX) - /* for fcntl */ - #include - #include - #endif - - #if defined(XP_BEOS) - #include -+#include -+#include - #endif - - #if defined(XP_MACOSX) - #if defined(MOZ_WIDGET_COCOA) - #include - #define MAC_USE_CFRUNLOOPSOURCE - #elif defined(TARGET_CARBON) - /* #include */ -@@ -903,20 +905,49 @@ failed: - * Otherwise we need to create the sem and the port, deleting any open ports before. - */ - - sem_info info; - int32 cookie = 0; - - char portname[64]; - char semname[64]; -+ -+struct _MDThread -+{ -+ thread_id tid; -+ sem_id joinSem; -+ PRBool is_joining; -+}; -+ struct _MDThread md; -+ -+ -+//#include "private/primpl.h" -+ image_info iinfo; -+ int32 icookie = 0; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &icookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(leaf)); -+ PR_snprintf(semname, sizeof(semname), "sync%lx", -+ (long unsigned) find_thread(leaf)); -+ } -+ else -+ { - PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) self->handlerThread); -+ (long unsigned) find_thread(0)); - PR_snprintf(semname, sizeof(semname), "sync%lx", -- (long unsigned) self->handlerThread); -+ (long unsigned) find_thread(0)); -+ } -+ } while(iinfo.type != B_APP_IMAGE); - - self->eventport = find_port(portname); - while(get_next_sem_info(0, &cookie, &info) == B_OK) - { - if(strcmp(semname, info.name) != 0) { - continue; - } - -@@ -926,17 +957,17 @@ failed: - } - return PR_SUCCESS; - } - /* setup the port and semaphore */ - if(self->eventport >= 0) - { - delete_port( self->eventport ); - } -- self->eventport = create_port(200, portname); -+ self->eventport = create_port(512, portname); - /* We don't use the sem, but it has to be there - */ - create_sem(0, semname); - return PR_SUCCESS; - #else - return PR_SUCCESS; - #endif - } -@@ -1259,26 +1290,28 @@ _pl_NativeNotify(PLEventQueue* self) - - #if defined(XP_BEOS) - struct ThreadInterfaceData - { - void *data; - thread_id waitingThread; - }; - -+ - static PRStatus - _pl_NativeNotify(PLEventQueue* self) - { - struct ThreadInterfaceData id; - id.data = self; - id.waitingThread = 0; - write_port(self->eventport, 'natv', &id, sizeof(id)); - - return PR_SUCCESS; /* Is this correct? */ - } -+ - #endif /* XP_BEOS */ - - #if defined(XP_MACOSX) - static PRStatus - _pl_NativeNotify(PLEventQueue* self) - { - #if defined(MAC_USE_CFRUNLOOPSOURCE) - CFRunLoopSourceSignal(self->mRunLoopSource); -Index: mozilla/xpfe/bootstrap/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xpfe/bootstrap/Attic/Makefile.in,v -retrieving revision 1.283.2.6 -diff -u -8 -p -w -r1.283.2.6 Makefile.in ---- mozilla/xpfe/bootstrap/Makefile.in 29 Sep 2007 20:15:11 -0000 1.283.2.6 -+++ mozilla/xpfe/bootstrap/Makefile.in 8 Jul 2009 21:54:55 -0000 -@@ -113,18 +113,22 @@ ifdef MOZ_ENABLE_XREMOTE - REQUIRES += xremoteservice - endif - - include $(topsrcdir)/config/config.mk - - ifeq ($(USE_SHORT_LIBNAME),1) - PROGRAM = $(MOZ_APP_NAME)$(BIN_SUFFIX) - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+PROGRAM = $(MOZ_APP_NAME)$(BIN_SUFFIX) -+else - PROGRAM = $(MOZ_APP_NAME)-bin$(BIN_SUFFIX) - endif -+endif - - # Force applications to be built non-statically - # when building the mozcomps meta component - ifneq (,$(filter mozcomps,$(MOZ_META_COMPONENTS))) - BUILD_STATIC_LIBS= - BUILD_SHARED_LIBS=1 - ifdef MOZ_COMPONENTLIB - DEFINES += -D_MOZCOMPS_SHARED_LIBRARY -D_BUILD_STATIC_BIN -@@ -215,16 +219,19 @@ ifdef GC_LEAK_DETECTOR - LIBS += -lboehm - endif - - ifdef WRAP_SYSTEM_INCLUDES - DEFINES += -DWRAP_SYSTEM_INCLUDES - endif - - ifeq ($(MOZ_WIDGET_TOOLKIT),beos) -+ifeq ($(OS_ARCH),Haiku) -+BEOS_PROGRAM_RDEF = $(srcdir)/apprunner-beos.rdef -+endif - BEOS_PROGRAM_RESOURCE = $(srcdir)/apprunner-beos.rsrc - CPPSRCS += nsNativeAppSupportBeOS.cpp - CPPSRCS += nsNativeAppSupportBase.cpp - ifdef BUILD_STATIC_LIBS - OS_LIBS += -ltracker -lgame - endif - endif - -@@ -406,17 +413,17 @@ ifndef GNU_CC - LDFLAGS += /HEAP:0x40000 - endif - endif - - CXXFLAGS += $(MOZ_TOOLKIT_REGISTRY_CFLAGS) - - LOCAL_INCLUDES += -I$(srcdir) -I. - --ifneq (,$(filter-out OS2 WINNT,$(OS_ARCH))) -+ifneq (,$(filter-out OS2 WINNT BeOS Haiku,$(OS_ARCH))) - $(MOZ_APP_NAME).1: mozilla.man.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk - @sed -e "s|\@bindir\@|$(bindir)|g" -e "s|\@mozappdir\@|$(mozappdir)|g" \ - -e "s|\@MOZ_APP_DISPLAYNAME\@|$(MOZ_APP_DISPLAYNAME)|g" \ - -e "s|\@MOZ_APP_NAME\@|$(MOZ_APP_NAME)|g" \ - -e "s|\@MOZ_APP_VERSION\@|${MOZ_APP_VERSION}|g" < $< > $@ - - libs:: $(MOZ_APP_NAME).1 - $(INSTALL) $< $(DIST)/man/man1 -Index: mozilla/xpfe/bootstrap/nsSigHandlers.cpp -=================================================================== -RCS file: /cvsroot/mozilla/xpfe/bootstrap/nsSigHandlers.cpp,v -retrieving revision 1.41.18.1 -diff -u -8 -p -w -r1.41.18.1 nsSigHandlers.cpp ---- mozilla/xpfe/bootstrap/nsSigHandlers.cpp 22 Jun 2006 22:31:13 -0000 1.41.18.1 -+++ mozilla/xpfe/bootstrap/nsSigHandlers.cpp 8 Jul 2009 21:54:56 -0000 -@@ -55,17 +55,18 @@ - #include // atoi - #endif - - #if defined(SOLARIS) - #include - #endif - - #ifdef XP_BEOS --#include -+#include -+#include - #include - #include "nsCOMPtr.h" - #include "nsIServiceManager.h" - #include "nsIAppStartup.h" - #include "nsXPFEComponentsCID.h" - #endif - - #ifdef MOZ_WIDGET_PHOTON -Index: mozilla/xpinstall/packager/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xpinstall/packager/Attic/Makefile.in,v -retrieving revision 1.68.4.1 -diff -u -8 -p -w -r1.68.4.1 Makefile.in ---- mozilla/xpinstall/packager/Makefile.in 20 Feb 2006 17:42:11 -0000 1.68.4.1 -+++ mozilla/xpinstall/packager/Makefile.in 8 Jul 2009 21:55:03 -0000 -@@ -43,17 +43,17 @@ srcdir = @srcdir@ - VPATH = @srcdir@ - - include $(DEPTH)/config/autoconf.mk - - OSPACKAGE = unix - ifeq ($(OS_ARCH),IRIX) - STRIP_FLAGS = -f - endif --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - STRIP_FLAGS = -g - PLATFORM_EXCLUDE_LIST = ! -name "*.stub" ! -name "$(MOZ_PKG_APPNAME)-bin" - endif - ifeq ($(OS_ARCH),OS2) - STRIP = $(srcdir)/os2/strip.cmd - STRIP_FLAGS = - OSPACKAGE = os2 - PLATFORM_EXCLUDE_LIST = ! -name "*.ico" -Index: mozilla/xulrunner/app/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xulrunner/app/Makefile.in,v -retrieving revision 1.23.2.4 -diff -u -8 -p -w -r1.23.2.4 Makefile.in ---- mozilla/xulrunner/app/Makefile.in 9 Apr 2008 06:50:54 -0000 1.23.2.4 -+++ mozilla/xulrunner/app/Makefile.in 8 Jul 2009 21:55:07 -0000 -@@ -54,17 +54,17 @@ DIRS = profile - PREF_JS_EXPORTS = $(srcdir)/xulrunner.js - GARBAGE += $(addprefix $(DIST)/bin/defaults/pref/,xulrunner.js) - - DEFINES += -DAB_CD=$(AB_CD) - - ifeq ($(USE_SHORT_LIBNAME), 1) - PROGRAM = xulrunner$(BIN_SUFFIX) - else --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - PROGRAM = xulrunner$(BIN_SUFFIX) - else - PROGRAM = xulrunner-bin$(BIN_SUFFIX) - endif - endif - - DEFINES += -DXULRUNNER_PROGNAME=\"xulrunner\" - -@@ -80,17 +80,17 @@ REQUIRES = \ - xulrunner \ - $(NULL) - - CPPSRCS = nsXULRunnerApp.cpp - - ifeq ($(OS_ARCH),WINNT) - CPPSRCS += nsRegisterGREWin.cpp - else --ifneq (,$(filter OS2 Darwin,$(OS_ARCH))) -+ifneq (,$(filter OS2 Darwin BeOS Haiku,$(OS_ARCH))) - CPPSRCS += nsRegisterGREVoid.cpp - else - CPPSRCS += nsRegisterGREUnix.cpp - endif - endif - - LOCAL_INCLUDES += \ - -I$(topsrcdir)/toolkit/xre \ -@@ -169,17 +169,17 @@ endif - ifdef BUILD_STATIC_LIBS - RCFLAGS += -DMOZ_STATIC_BUILD - endif - ifdef DEBUG - RCFLAGS += -DDEBUG - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - OS_LIBS += -ltracker - endif - - ifeq ($(OS_ARCH),OS2) - RESFILE=splashos2.res - RCFLAGS += -DMOZ_XULRUNNER - ifdef BUILD_STATIC_LIBS - EXE_DEF_FILE = xulrunner.def -@@ -237,17 +237,17 @@ $(EXE_DEF_FILE): - @echo WinQueryProperty = PMMERGE.5450 >>$(EXE_DEF_FILE) - @echo WinRemoveProperty = PMMERGE.5451 >>$(EXE_DEF_FILE) - @echo WinSetProperty = PMMERGE.5452 >>$(EXE_DEF_FILE) - - LDFLAGS += -Zlinker /NOE - endif - endif - --ifneq (,$(filter-out OS2 WINNT Darwin BeOS,$(OS_ARCH))) -+ifneq (,$(filter-out OS2 WINNT Darwin BeOS Haiku,$(OS_ARCH))) - - xulrunner:: mozilla.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk - cat $< | sed -e "s|%MOZAPPDIR%|$(mozappdir)|" \ - -e "s|%MOZ_USER_DIR%|.mozilla/xulrunner|" \ - -e "s|%MREDIR%|$(mredir)|" > $@ - chmod +x $@ - - libs:: xulrunner diff --git a/www-client/mozilla_firefox/bookmarks.html b/www-client/mozilla_firefox/bookmarks.html deleted file mode 100644 index ffe3c7264..000000000 --- a/www-client/mozilla_firefox/bookmarks.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -Bookmarks -

Bookmarks

- -

-

Get Bookmark Add-ons -
-

Bookmarks Toolbar Folder

-
Add bookmarks to this folder to see them displayed on the Bookmarks Toolbar -

-

Haiku WebSite -
Nightly Builds -

-


-

BeZilla Browser

-

-

BeZilla Blog -
Report an Issue -
View Known Issues -

-

Haiku Bookmarks

-

-

Nightly Builds -
Optional Packages -
Bug Tracker -
Haiku User Guide -
BeBook -
Welcome -

-

Software for Haiku

-

-

OSDrawer.net -
HaikuWare -
Zeta-Games -
BeBits -

-

Haiku WebSite - -

diff --git a/www-client/mozilla_firefox/classic.jar b/www-client/mozilla_firefox/classic.jar deleted file mode 100644 index ee1180460..000000000 Binary files a/www-client/mozilla_firefox/classic.jar and /dev/null differ diff --git a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/app/apprunner-beos.rdef b/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/app/apprunner-beos.rdef deleted file mode 100644 index e69b16d2c..000000000 --- a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/app/apprunner-beos.rdef +++ /dev/null @@ -1,125 +0,0 @@ -/* - * BeZillaBrowser.rdef - */ - -resource app_signature "application/x-vnd.Mozilla-Firefox"; - -resource app_flags B_SINGLE_LAUNCH; - -resource app_version { - /* - * We are using the source code version number - * for our program version. - * TODO : implement something better. - */ - major = 1, - middle = 8, - minor = 1, - - /* 0 = development 1 = alpha 2 = beta - 3 = gamma 4 = golden master 5 = final */ - variety = 0, - - internal = 21, - - short_info = "BeZillaBrowser", - long_info = "BeZillaBrowser is based on Mozilla's source code" -}; - -resource file_types message { - "types" = "application/x-vnd.Be.URL.file", - "types" = "application/x-vnd.Be.URL.ftp", - "types" = "application/x-vnd.Be.URL.http", - "types" = "application/x-vnd.Be.URL.https", - "types" = "text/html", - "types" = "image/gif", - "types" = "image/png" -}; - -resource vector_icon { - $"6E6369661F0500020016029E8638A20EBA220EBA9E86384880254A18EA00FFFF" - $"8002001602BC9D88BB1F643B1F64BC9D884B716D48772700FFFF80020016023B" - $"F73A0000000000003BF73A49B5114976B000FFFF800200160237A0DDB61AF236" - $"1AF237A0DD497CAA48588100FFFF800200160238D81CB8152D38152D38D81C48" - $"420A499FB600FFFF8002001602397095000000000000397095486EDA49100600" - $"FFFF800200160231E5B2BA0EAF3A0EAF31E5B247DA3349779B00FFFF80020016" - $"0236BBEFB4543A34543A36BBEF495BDE469BC700FFFF6B0200160236E2E70000" - $"0000000036E2E74A2CD64670CD00FFFF800200160237AB1000000000000037AB" - $"104AE1D848449500FFFF5702001602375C10B74516374516375C1048B2B04AE9" - $"7200FFFF8002001602B07700B74912374912B077004898AD4AD99500FFFF8002" - $"00160232CFA5BA0B483A0B4832CFA54A3C584BA00E00FFFF8002001602368CB7" - $"000000000000368CB74B3D5E49752800FFFF4F0200160236A81C000000000000" - $"36A81C4B94C84A808500FFFF4002000602B738F7362603B62603B738F748BB3F" - $"4A241700A91212FFD7121202001602B04887376143B76143B0488748D36C44FB" - $"3100FFFF6B02001602B47620362BAAB62BAAB476204A0C144406C600FFFF8002" - $"001602B4CAE23409B3B409B3B4CAE24AD8D54611F100FFFF8002001602B328E4" - $"324E4AB24E4AB328E44B36A648859C00FFFF8002001602B22376311F03B11F03" - $"B223764B891349FFBC00FFFF80010079009803FF000004006002001602B4E6F3" - $"319259B19259B4E6F34B2F5D4AA2CA00FFFF0003FFFF0004FFD801FFFF669805" - $"000201060238CC87BD083D3DCC623981954609924A996B00FFB11BFFFFF9C727" - $"0633EEEBFFFFAAEAABDBAEBBBEAE2BC0CEB389C02424C074B415BFF0B478BFB4" - $"B450BFB7B455BFB6B455BF8CB436BF14B430BF55B42DBEF5B3FFBE82B33EBBDB" - $"B3F2BBCEB4D7BBD0B4BABBCBB4DABBC7B4DABBC7B4DABBC8B4DABB45B50ABB45" - $"B50ABB44B50ABB37B50DBB37B50DBAD6B534BA1EB58DBA78B560BA1EB58DBA12" - $"B593BA12B593BA0FB596B99BB5D6B99BB5D6B99AB5D6B975B5ECB975B5ECB974" - $"B5EDB918B626B918B626B917B626B8EDB642B893B681B887B689B86CB69CB7F2" - $"2AB7B5B72DB7A9B76EB73CB920B755B8C5B6B5B9A4B380BC3AB4F7BB4BB380BC" - $"3AB317BC7FB33E42B755C332B80EC320B7E7C323B7FBC3522CC3C54FBB03C7E8" - $"BAF4C7DBBAD1C898BA59CA44BC40CC83BAD4CBC3BDF3CD6FC0A0CDA4C760C888" - $"CA38C797C90DC879CB7BC6A2CC38C4DCCB9AC3A6CBB6C3DDCBA2C34CCBC2C1EB" - $"CA78BF62C954BF30C9ADBF3FC934BEE9C900BE83C91DBEC2C927BE17C999BCEA" - $"C857BA6BC720BABCC767BAABC73FBA2EC7C0B7EEC5B1B563C3F4B6DBC472B66F" - $"C405B613C427B41BC12CB2F006032FBAF5C05EBAF5C05EBAF7C05C34C05A34C0" - $"5B34C05A34C05B0610EE7AAAAAC693C7B5C9E8C667C896C755CAB5C5D3CB14C4" - $"7FC521B8CDC521B8CDC0B9B834BD7FBA63BC9BBC64B789BF00B92ABE82B789BF" - $"00C251BCE5C1CCBED1C0BCBE70C324BB51C5B0BB5AC71ABFC8C4E2C044C512C0" - $"5CCC1E0604EEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50AB87FB7A5BC0C" - $"B4F7B87FB7A50604FEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50ABF40B5" - $"0ABD2DB521B87FB7A5BA8CB5E9B87FB7A50605BB02B3F7BCF4B5CD36B3F7BCF4" - $"B789BF00BA19BDD6B8DABE8835BD1EBC9BBC64B801B9930A04B87FB7A5BD7FBA" - $"63BC9BBC64B801B9930A04B3F7BCF4B413C012B789C251B789BF000A04BC7AB8" - $"01BF99B6C0BE1BB43BBCAAB49E0A05BFE1B69AC187B3FFC341B4ABC30EB77BC2" - $"04B6CF0A05C3E9B805C594B69AC6D3B825C637BAECC521B8CD0A06B967C223B8" - $"A5C3F1BB51C5B0BE70C323BED1C0BCBCE5C1CC0A04B8A5C548B8A5C3F1BB51C5" - $"B0BB5AC71A0606BA0ABC41C6A5BB73C983BCF9CB79BBC8CAD5BE40CC23C05CCC" - $"1EC044C512BFC8C4E20A04C6A1BBC1C7E5BB6BC8ABBCF7C80EBE920A04C9EA41" - $"C8C5BFF3CABBC3D4CAE3C2140A06BA90C206BA19C33CBADEC3EBBEA7C1C4BED1" - $"C0BCBCE5C1CC0A06BC7AB801BCAAB49EBE1BB43BBE33B460BCDAB4C7BCB1B7EC" - $"0A04BFE1B69AC021B6A1C1ADB40DC187B3FF0A04C3E9B805C594B69AC5B7B6C3" - $"C41AB8250A04C6A1BBC1C7E5BB6BC7F4BB8EC6B9BBEC0A04C8C5BFF3C9EA41CA" - $"07C060C8E5C02B0628AAAAAAAAAAAEEFAAA9BACAB4C3BFCAE3C214C9EA41C8C5" - $"BFF3C80FBE90C8ABBCF7C7F4BB8EC7E5BB6BC6A1BBC1C637BAECC6D3B826C5B7" - $"B6C3C594B69AC3E9B805C3F9B80FC30EB77BC341B4ABC1ADB40DC187B3FFC068" - $"B5C6BF40B50ABE9BB514BF03B507BE9BB514BE1BB43BBCAAB49EBC9EB57CBC9E" - $"B57CBB34B5E3B87FB7A5B9BC29B87FB7A5B801B993B3F7BCF4B5CD36B3F7BCF4" - $"B413C012B789C251B964C223B8A5C3F1C548BB5AC71ABFC8C4E2C044C512C05C" - $"CC1EC693C7B5C9B7C688C894C759CAD2C5BECB14C47F0A06BE4DC302BB334EB8" - $"F2C3E4B99FC21DBCE5C1CCBEAEC0D1020ABFDBBBF7BFE1BBDFBFC9BC38BF63BC" - $"91BF9DBC71BEE7BCD8BE03BC31BE4BBCABBE03BC31BE00BC24BE0137BE10BC1A" - $"BE4BBC03BE30BC0EBE4BBC03BEE9BBBABEE9BBBABEE9BBBABF7BBB58BF7BBB58" - $"BF8FBB45BFBDBB29BFA9BB3440BB2DBFC3BB34BFC3BB34BFD9BB5BBFE7BBB2BF" - $"E7BB85BFE7BBC8020ABFD5BC12BFD9BC00BFC3BC4FBF67BC9CBF9CBC80BEFCBC" - $"DBBE32BC45BE70BCB4BE32BC45BE2BBC39BE30BC41BE3EBC32BE70BC1DBE58BC" - $"27BE70BC1DBEFEBBDDBEFEBBDDBEFEBBDDBF7EBB84BF7EBB84BF90BB77BFB7BB" - $"5CBFA7BB66BFBDBB5F40BB6640BB66BFD4BB87BFDCBBD4BFDCBBADBFDCBBEA06" - $"05BA02BC2BC6AFC155C3BAC269C139C245C1A9C25CC1A9C1A5C3EFBBF5C7310A" - $"04BC7AB801BF99B6C0C125B79BBFB3B7FF0A03BFE1B69AC3A0B7D5C204B6CF0A" - $"05BCAAC670BCB9C66BBE0FC73AC05BC70BBDF4C7890A04BC34C73FBDE5C88AC0" - $"4EC88BBDC9C8D80A04BB81C817BD6CC9CFC072C973BD505A0A04BB60C971BD4F" - $"CB2BC054CACFBD33CB790A03C6D944C9E8C6DAC695540A03BD9FBC21BEE9BBBA" - $"C059BA770204BF4DBBE8BF4DBC1ABF4DBBB7BF95BB8FBF6FBB8FBFBCBB8FBFD9" - $"BBE8BFD9BBB7BFD9BC1ABF95BC42BFBCBC42BF6FBC420A04BAD6C37ABBFAC2FD" - $"BAD1C336BA8CC2FD0606BA0ABC2BC6AF35C98ABCC1CB6BBB88CAC8BE00CC16C0" - $"49CC29C033C51CBFB5C4EA060DEE1FBF032F442B4F2B48294B244A2953235029" - $"532354295423542E58265A2E585C3030583058385A3B543B543554355335533B" - $"503A4A334F354B3348270A000100000A010101000A020102000A030103000A04" - $"0104000A050105000A060106000A070107000A080108000A090109000A0A010A" - $"000A0B010B000A0C010C000A0D010D000A0E010E000A0F010F000A100110000A" - $"110111000A120112000A130113000A140114000A150115000A1603161718000A" - $"170119000A18011A000A18011B000A18011C000A18011D000A18011E000A1801" - $"1F000A180120000A190121000A180122000A1A0123000A1B0124000A1C012500" - $"0A1D012638BFB3B32615FF01178400040A1D012638BFB3B32600150117860004" - $"0A1E012620BFB3B326" -}; - - diff --git a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-bebook-v1.html b/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-bebook-v1.html deleted file mode 100644 index 615899ccd..000000000 --- a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-bebook-v1.html +++ /dev/null @@ -1,32 +0,0 @@ - - - Opening the welcome page... - - - - Opening the welcome page... - - diff --git a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-bebook-v2.html b/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-bebook-v2.html deleted file mode 100644 index 40f023420..000000000 --- a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-bebook-v2.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - -Welcome to Haiku! - - - - - - - diff --git a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-userguide-v1.html b/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-userguide-v1.html deleted file mode 100644 index ac3001be7..000000000 --- a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-userguide-v1.html +++ /dev/null @@ -1,32 +0,0 @@ - - - Opening the welcome page... - - - - Opening the welcome page... - - diff --git a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-userguide-v2.html b/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-userguide-v2.html deleted file mode 100644 index dd5770732..000000000 --- a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-userguide-v2.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - -Welcome to Haiku! - - - - - - - diff --git a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-welcome-v1.html b/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-welcome-v1.html deleted file mode 100644 index d2b44db9c..000000000 --- a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-welcome-v1.html +++ /dev/null @@ -1,32 +0,0 @@ - - - Opening the welcome page... - - - - Opening the welcome page... - - diff --git a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-welcome-v2.html b/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-welcome-v2.html deleted file mode 100644 index 2a6ee035d..000000000 --- a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-welcome-v2.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - -Welcome to Haiku! - - - - - - - diff --git a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/installer/beos/packages-static b/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/installer/beos/packages-static deleted file mode 100644 index 63ab36105..000000000 --- a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/installer/beos/packages-static +++ /dev/null @@ -1,369 +0,0 @@ -; Package file for Linux static Firefox build. -; -; File format: -; -; [] designates a toplevel component. Example: [xpcom] -; - in front of a file specifies it to be removed from the destination -; * wildcard support to recursively copy the entire directory -; ; file comment -; - -#filter substitution - -bin/.autoreg - -[@AB_CD@] -bin/chrome/@AB_CD@.jar -bin/chrome/@AB_CD@.manifest -bin/defaults/pref/firefox-l10n.js -bin/defaults/existing-profile-defaults.js -; If you add a new directory you must explicitly call addDirectory in ab-CD.jst -bin/browserconfig.properties -bin/old-homepage-default.properties -bin/searchplugins/* -bin/defaults/profile/bookmarks.html -bin/defaults/profile/localstore.rdf -bin/defaults/profile/prefs.js -bin/defaults/profile/search.rdf -bin/defaults/profile/mimeTypes.rdf -bin/defaults/profile/chrome/* -bin/updater.ini -bin/dictionaries/* - -[xpcom] -; mmadia --testing adding *.so.stubs to packager -; how the heck were they originally being added to the archive? -bin/add-ons/*.so.stub -bin/lib/*.so.stub -bin/lib/libmozjs.so -bin/lib/libplc4.so -bin/lib/libplds4.so -bin/lib/libxpcom.so -bin/lib/libxpcom_core.so -bin/lib/libxpistub.so -bin/lib/libnspr4.so -bin/components/libxpinstall.so -bin/components/libjar50.so -bin/lib/libxpcom_compat.so - -[browser] -; [Base Browser Files] -; mmadia -bin/BeZillaBrowser -bin/firefox -bin/mozilla-xremote-client -; mmadia removed run-mozilla.sh --bin/run-mozilla.sh -bin/plugins/libnullplugin.so -bin/res/cmessage.txt -bin/xpicleanup - -; [Components] -bin/components/accessibility.xpt -bin/components/accessibility-atk.xpt -bin/components/appshell.xpt -bin/components/appstartup.xpt -bin/components/autocomplete.xpt -bin/components/autoconfig.xpt -bin/components/bookmarks.xpt -bin/components/browsercompsbase.xpt -bin/components/browsersearch.xpt -bin/components/browser-feeds.xpt -bin/components/caps.xpt -bin/components/chardet.xpt -bin/components/chrome.xpt -bin/components/commandhandler.xpt -bin/components/commandlines.xpt -bin/components/composer.xpt -bin/components/content_base.xpt -bin/components/content_htmldoc.xpt -bin/components/content_html.xpt -bin/components/content_xmldoc.xpt -bin/components/content_xslt.xpt -bin/components/content_xtf.xpt -bin/components/cookie.xpt -bin/components/directory.xpt -bin/components/docshell.xpt -bin/components/dom.xpt -bin/components/dom_base.xpt -bin/components/dom_canvas.xpt -bin/components/dom_core.xpt -bin/components/dom_css.xpt -bin/components/dom_events.xpt -bin/components/dom_html.xpt -bin/components/dom_range.xpt -bin/components/dom_sidebar.xpt -bin/components/dom_storage.xpt -bin/components/dom_stylesheets.xpt -bin/components/dom_traversal.xpt -bin/components/dom_views.xpt -bin/components/dom_xbl.xpt -bin/components/dom_xpath.xpt -bin/components/dom_xul.xpt -bin/components/dom_loadsave.xpt -bin/components/downloads.xpt -bin/components/editor.xpt -bin/components/embed_base.xpt -bin/components/exthandler.xpt -bin/components/fastfind.xpt -bin/components/feeds.xpt -bin/components/filepicker.xpt -bin/components/find.xpt -bin/components/gfx.xpt -bin/components/helperAppDlg.xpt -bin/components/history.xpt -bin/components/htmlparser.xpt -bin/components/imglib2.xpt -; bin/components/imgicon.xpt -bin/components/intl.xpt -bin/components/jar.xpt -bin/components/jsconsole.xpt -bin/components/libjsd.so -bin/components/jsdservice.xpt -bin/components/layout_base.xpt -bin/components/layout_printing.xpt -bin/components/layout_xul_tree.xpt -bin/components/layout_xul.xpt -bin/components/inspector.xpt -bin/components/locale.xpt -bin/components/lwbrk.xpt -bin/components/microsummaries.xpt -bin/components/migration.xpt -bin/components/mimetype.xpt -bin/components/mozbrwsr.xpt -bin/components/mozfind.xpt -bin/components/necko_about.xpt -bin/components/necko_cache.xpt -bin/components/necko_cookie.xpt -bin/components/necko_data.xpt -bin/components/necko_dns.xpt -bin/components/necko_file.xpt -bin/components/necko_ftp.xpt -bin/components/necko_http.xpt -bin/components/necko_jar.xpt -bin/components/necko_res.xpt -bin/components/necko_socket.xpt -bin/components/necko_strconv.xpt -bin/components/necko_viewsource.xpt -bin/components/necko.xpt -bin/components/oji.xpt -bin/components/passwordmgr.xpt -bin/components/places.xpt -bin/components/plugin.xpt -bin/components/prefetch.xpt -bin/components/pref.xpt -bin/components/progressDlg.xpt -bin/components/proxyObjInst.xpt -bin/components/toolkitremote.xpt -bin/components/rdf.xpt -bin/components/satchel.xpt -bin/components/saxparser.xpt -bin/components/search.xpt -bin/components/shistory.xpt -bin/components/storage.xpt -bin/components/profile.xpt -bin/components/toolkitprofile.xpt -bin/components/txtsvc.xpt -bin/components/txmgr.xpt -bin/components/uconv.xpt -bin/components/unicharutil.xpt -bin/components/uriloader.xpt -bin/components/webBrowser_core.xpt -bin/components/webbrowserpersist.xpt -bin/components/webshell_idls.xpt -bin/components/websrvcs.xpt -bin/components/widget.xpt -bin/components/windowds.xpt -bin/components/windowwatcher.xpt -bin/components/xml-rpc.xpt -bin/components/xpcom_base.xpt -bin/components/xpcom_components.xpt -bin/components/xpcom_ds.xpt -bin/components/xpcom_io.xpt -bin/components/xpcom_obsolete.xpt -bin/components/xpcom_threads.xpt -bin/components/xpcom_xpti.xpt -bin/components/xpconnect.xpt -bin/components/xpinstall.xpt -bin/components/xremoteservice.xpt -bin/components/xulapp.xpt -bin/components/xuldoc.xpt -bin/components/xultmpl.xpt -bin/components/shellservice.xpt -; JavaScript components -bin/components/FeedProcessor.js -bin/components/FeedConverter.js -bin/components/FeedWriter.js -bin/components/WebContentConverter.js -bin/components/nsBrowserContentHandler.js -bin/components/nsBrowserGlue.js -bin/components/nsSetDefaultBrowser.js -bin/components/nsMicrosummaryService.js -bin/components/nsSearchService.js -bin/components/nsSearchSuggestions.js -bin/components/jsconsole-clhandler.js -bin/components/nsCloseAllWindows.js -bin/components/nsDictionary.js -bin/components/nsFilePicker.js -bin/components/nsHelperAppDlg.js -bin/components/nsInterfaceInfoToIDL.js -; bin/components/nsProgressDialog.js not needed for firefox -bin/components/nsProxyAutoConfig.js -; bin/components/nsResetPref.js not needed for firefox -bin/components/nsSidebar.js -; bin/components/nsUpdateNotifier.js not needed for firefox -bin/components/nsXmlRpcClient.js -bin/components/nsExtensionManager.js -bin/components/nsUpdateService.js -bin/components/extensions.xpt -bin/components/update.xpt -bin/components/nsBookmarkTransactionManager.js -bin/components/nsSessionStartup.js -bin/components/nsSessionStore.js -bin/components/sessionstore.xpt -bin/components/nsURLFormatter.js -bin/components/urlformatter.xpt -bin/components/nsDefaultCLH.js - -; Safe Browsing -bin/components/nsSafebrowsingApplication.js -bin/components/safebrowsing.xpt -bin/components/nsUrlClassifierListManager.js -bin/components/nsUrlClassifierLib.js -bin/components/nsUrlClassifierTable.js -bin/components/url-classifier.xpt - -; Kerberos NegotiateAuth -bin/components/libauth.so - -; GNOME hooks -bin/components/libmozgnome.so -bin/components/mozgnome.xpt - -; [Browser Chrome Files] -bin/chrome/browser.jar -bin/chrome/browser.manifest -bin/chrome/classic.jar -bin/chrome/classic.manifest -bin/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf -bin/chrome/comm.jar -bin/chrome/comm.manifest -bin/chrome/toolkit.jar -bin/chrome/toolkit.manifest -bin/chrome/icons/default/default.xpm -bin/chrome/reporter.manifest -bin/chrome/reporter.jar -bin/defaults/pref/reporter.js - -; shell icons -bin/icons/*.xpm -bin/icons/*.png - -; [Default Preferences] -; All the pref files must be part of base to prevent migration bugs -bin/defaults/pref/firefox.js -bin/defaults/pref/firefox-branding.js -bin/defaults/pref/channel-prefs.js -bin/greprefs/all.js -bin/greprefs/security-prefs.js -bin/greprefs/xpinstall.js -bin/defaults/autoconfig/platform.js -bin/defaults/autoconfig/prefcalls.js - -; [Layout Engine Resources] -; Style Sheets, Graphics and other Resources used by the layout engine. -bin/res/hiddenWindow.html -bin/res/ua.css -bin/res/html.css -bin/res/quirk.css -bin/res/forms.css -bin/res/platform-forms.css -bin/res/EditorOverride.css -bin/res/table-add-column-after-active.gif -bin/res/table-add-column-after-hover.gif -bin/res/table-add-column-after.gif -bin/res/table-add-column-before-active.gif -bin/res/table-add-column-before-hover.gif -bin/res/table-add-column-before.gif -bin/res/table-add-row-after-active.gif -bin/res/table-add-row-after-hover.gif -bin/res/table-add-row-after.gif -bin/res/table-add-row-before-active.gif -bin/res/table-add-row-before-hover.gif -bin/res/table-add-row-before.gif -bin/res/table-remove-column-active.gif -bin/res/table-remove-column-hover.gif -bin/res/table-remove-column.gif -bin/res/table-remove-row-active.gif -bin/res/table-remove-row-hover.gif -bin/res/table-remove-row.gif -bin/res/arrowd.gif -bin/res/grabber.gif -bin/res/viewsource.css -bin/res/mathml.css -bin/res/arrow.gif -bin/res/loading-image.gif -bin/res/broken-image.gif -bin/res/fonts/* -bin/res/dtd/* -bin/res/html/* -bin/res/unixcharset.properties -bin/res/charsetalias.properties -bin/res/charsetData.properties -bin/res/langGroups.properties -bin/res/language.properties -bin/res/entityTables/* - -; svg -bin/res/svg.css -bin/components/dom_svg.xpt - -; spellchecker (may not be present) -bin/components/libmyspell.so -bin/components/spellchecker.xpt -bin/components/libspellchecker.so - -; [Personal Security Manager] -; -bin/add-ons/libnssckbi.so -bin/components/pipboot.xpt -bin/components/pipnss.xpt -bin/components/pippki.xpt -bin/lib/libnss3.so -bin//lib/libsmime3.so -bin/libsoftokn3.chk -bin/lib/libsoftokn3.so -bin/libfreebl3.chk -bin/add-ons/libfreebl3.so -bin/lib/libssl3.so -bin/chrome/pipnss.jar -bin/chrome/pippki.jar -bin/chrome/pippki.manifest - -; [Updater] -; -bin/updater - -; [Extensions] -; -bin/components/libnkgnomevfs.so -bin/components/libauth.so - -; [Additional Developer Tools] -[adt] -bin/extensions/inspector@mozilla.org/install.rdf -bin/extensions/inspector@mozilla.org/components/inspector-cmdline.js -bin/extensions/inspector@mozilla.org/chrome.manifest -bin/extensions/inspector@mozilla.org/chrome/inspector.jar -bin/extensions/inspector@mozilla.org/defaults/preferences/inspector.js - -; [Additional Browsing Enhancements] -[abe] - -[talkback] -bin/README.txt,bin/readme.txt -bin/extensions/talkback@mozilla.org/install.rdf -bin/extensions/talkback@mozilla.org/chrome.manifest -bin/extensions/talkback@mozilla.org/components/libqfaservices.so -bin/extensions/talkback@mozilla.org/components/qfaservices.xpt -bin/extensions/talkback@mozilla.org/components/talkback/* diff --git a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/calendar/sunbird/app/apprunner-beos.rdef b/www-client/mozilla_firefox/copy-to-mozilla-src-dir/calendar/sunbird/app/apprunner-beos.rdef deleted file mode 100644 index 4394fcebb..000000000 --- a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/calendar/sunbird/app/apprunner-beos.rdef +++ /dev/null @@ -1,125 +0,0 @@ -/* - * BeZillaBrowser.rdef - */ - -resource app_signature "application/x-vnd.Mozilla-Sunbird"; - -resource app_flags B_SINGLE_LAUNCH; - -resource app_version { - /* - * We are using the source code version number - * for our program version. - * TODO : implement something better. - */ - major = 1, - middle = 8, - minor = 1, - - /* 0 = development 1 = alpha 2 = beta - 3 = gamma 4 = golden master 5 = final */ - variety = 0, - - internal = 21, - - short_info = "BeZillaCalendar", - long_info = "BeZillaCalendar is based on Mozilla's source code" -}; - -resource file_types message { - "types" = "text/csv", - "types" = "text/calendar" - /* - // TODO: - // .sdb is mimetype application/octet-stream - // is there a more elegant way to handle it? - types" = "application/octet-stream" - */ -}; -resource vector_icon { - $"6E636966200500020016029E8638A20EBA220EBA9E86384880254A18EA00FFFF" - $"8002001602BC9D88BB1F643B1F64BC9D884B716D48772700FFFF80020016023B" - $"F73A0000000000003BF73A49B5114976B000FFFF800200160237A0DDB61AF236" - $"1AF237A0DD497CAA48588100FFFF800200160238D81CB8152D38152D38D81C48" - $"420A499FB600FFFF8002001602397095000000000000397095486EDA49100600" - $"FFFF800200160231E5B2BA0EAF3A0EAF31E5B247DA3349779B00FFFF80020016" - $"0236BBEFB4543A34543A36BBEF495BDE469BC700FFFF6B0200160236E2E70000" - $"0000000036E2E74A2CD64670CD00FFFF800200160237AB1000000000000037AB" - $"104AE1D848449500FFFF5702001602375C10B74516374516375C1048B2B04AE9" - $"7200FFFF8002001602B07700B74912374912B077004898AD4AD99500FFFF8002" - $"00160232CFA5BA0B483A0B4832CFA54A3C584BA00E00FFFF8002001602368CB7" - $"000000000000368CB74B3D5E49752800FFFF4F0200160236A81C000000000000" - $"36A81C4B94C84A808500FFFF4002000602B738F7362603B62603B738F748BB3F" - $"4A241700A91212FFD7121202001602B04887376143B76143B0488748D36C44FB" - $"3100FFFF6B02001602B47620362BAAB62BAAB476204A0C144406C600FFFF8002" - $"001602B4CAE23409B3B409B3B4CAE24AD8D54611F100FFFF8002001602B328E4" - $"324E4AB24E4AB328E44B36A648859C00FFFF8002001602B22376311F03B11F03" - $"B223764B891349FFBC00FFFF80010079009803FF000004006002001602B4E6F3" - $"319259B19259B4E6F34B2F5D4AA2CA00FFFF0003FFFF0004FFD801FFFF669805" - $"000200060239CDA03A935CBC02343AF7494899864A8DDC00FFDB97FFFCAF2902" - $"0106033B471C0000000000003B36DB472800498C0000F2F2F2AB7D7A7AFFBCA1" - $"84280633EEEBFFFFAAEAABDBAEBBBEAE2BC0CEB389C02424C074B415BFF0B478" - $"BFB4B450BFB7B455BFB6B455BF8CB436BF14B430BF55B42DBEF5B3FFBE82B33E" - $"BBDBB3F2BBCEB4D7BBD0B4BABBCBB4DABBC7B4DABBC7B4DABBC8B4DABB45B50A" - $"BB45B50ABB44B50ABB37B50DBB37B50DBAD6B534BA1EB58DBA78B560BA1EB58D" - $"BA12B593BA12B593BA0FB596B99BB5D6B99BB5D6B99AB5D6B975B5ECB975B5EC" - $"B974B5EDB918B626B918B626B917B626B8EDB642B893B681B887B689B86CB69C" - $"B7F22AB7B5B72DB7A9B76EB73CB920B755B8C5B6B5B9A4B380BC3AB4F7BB4BB3" - $"80BC3AB317BC7FB33E42B755C332B80EC320B7E7C323B7FBC3522CC3C54FBB03" - $"C7E8BAF4C7DBBAD1C898BA59CA44BC40CC83BAD4CBC3BDF3CD6FC0A0CDA4C760" - $"C888CA38C797C90DC879CB7BC6A2CC38C4DCCB9AC3A6CBB6C3DDCBA2C34CCBC2" - $"C1EBCA78BF62C954BF30C9ADBF3FC934BEE9C900BE83C91DBEC2C927BE17C999" - $"BCEAC857BA6BC720BABCC767BAABC73FBA2EC7C0B7EEC5B1B563C3F4B6DBC472" - $"B66FC405B613C427B41BC12CB2F006032FBAF5C05EBAF5C05EBAF7C05C34C05A" - $"34C05B34C05A34C05B0610EE7AAAAAC693C7B5C9E8C667C896C755CAB5C5D3CB" - $"14C47FC521B8CDC521B8CDC0B9B834BD7FBA63BC9BBC64B789BF00B92ABE82B7" - $"89BF00C251BCE5C1CCBED1C0BCBE70C324BB51C5B0BB5AC71ABFC8C4E2C044C5" - $"12C05CCC1E0604EEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50AB87FB7A5" - $"BC0CB4F7B87FB7A50604FEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50ABF" - $"40B50ABD2DB521B87FB7A5BA8CB5E9B87FB7A50605BB02B3F7BCF4B5CD36B3F7" - $"BCF4B789BF00BA19BDD6B8DABE8835BD1EBC9BBC64B801B9930A04B87FB7A5BD" - $"7FBA63BC9BBC64B801B9930A04B3F7BCF4B413C012B789C251B789BF000A04BC" - $"7AB801BF99B6C0BE1BB43BBCAAB49E0A05BFE1B69AC187B3FFC341B4ABC30EB7" - $"7BC204B6CF0A05C3E9B805C594B69AC6D3B825C637BAECC521B8CD0A06B967C2" - $"23B8A5C3F1BB51C5B0BE70C323BED1C0BCBCE5C1CC0A04B8A5C548B8A5C3F1BB" - $"51C5B0BB5AC71A0606BA0ABC41C6A5BB73C983BCF9CB79BBC8CAD5BE40CC23C0" - $"5CCC1EC044C512BFC8C4E20A04C6A1BBC1C7E5BB6BC8ABBCF7C80EBE920A04C9" - $"EA41C8C5BFF3CABBC3D4CAE3C2140A06BA90C206BA19C33CBADEC3EBBEA7C1C4" - $"BED1C0BCBCE5C1CC0A06BC7AB801BCAAB49EBE1BB43BBE33B460BCDAB4C7BCB1" - $"B7EC0A04BFE1B69AC021B6A1C1ADB40DC187B3FF0A04C3E9B805C594B69AC5B7" - $"B6C3C41AB8250A04C6A1BBC1C7E5BB6BC7F4BB8EC6B9BBEC0A04C8C5BFF3C9EA" - $"41CA07C060C8E5C02B0628AAAAAAAAAAAEEFAAA9BACAB4C3BFCAE3C214C9EA41" - $"C8C5BFF3C80FBE90C8ABBCF7C7F4BB8EC7E5BB6BC6A1BBC1C637BAECC6D3B826" - $"C5B7B6C3C594B69AC3E9B805C3F9B80FC30EB77BC341B4ABC1ADB40DC187B3FF" - $"C068B5C6BF40B50ABE9BB514BF03B507BE9BB514BE1BB43BBCAAB49EBC9EB57C" - $"BC9EB57CBB34B5E3B87FB7A5B9BC29B87FB7A5B801B993B3F7BCF4B5CD36B3F7" - $"BCF4B413C012B789C251B964C223B8A5C3F1C548BB5AC71ABFC8C4E2C044C512" - $"C05CCC1EC693C7B5C9B7C688C894C759CAD2C5BECB14C47F0A06BE4DC302BB33" - $"4EB8F2C3E4B99FC21DBCE5C1CCBEAEC0D1020ABFDBBBF7BFE1BBDFBFC9BC38BF" - $"63BC91BF9DBC71BEE7BCD8BE03BC31BE4BBCABBE03BC31BE00BC24BE0137BE10" - $"BC1ABE4BBC03BE30BC0EBE4BBC03BEE9BBBABEE9BBBABEE9BBBABF7BBB58BF7B" - $"BB58BF8FBB45BFBDBB29BFA9BB3440BB2DBFC3BB34BFC3BB34BFD9BB5BBFE7BB" - $"B2BFE7BB85BFE7BBC8020ABFD5BC12BFD9BC00BFC3BC4FBF67BC9CBF9CBC80BE" - $"FCBCDBBE32BC45BE70BCB4BE32BC45BE2BBC39BE30BC41BE3EBC32BE70BC1DBE" - $"58BC27BE70BC1DBEFEBBDDBEFEBBDDBEFEBBDDBF7EBB84BF7EBB84BF90BB77BF" - $"B7BB5CBFA7BB66BFBDBB5F40BB6640BB66BFD4BB87BFDCBBD4BFDCBBADBFDCBB" - $"EA0605BA02BC2BC6AFC155C3BAC269C139C245C1A9C25CC1A9C1A5C3EFBBF5C7" - $"310A04BC7AB801BF99B6C0C125B79BBFB3B7FF0A03BFE1B69AC3A0B7D5C204B6" - $"CF0A05BCAAC670BCB9C66BBE0FC73AC05BC70BBDF4C7890A04BC34C73FBDE5C8" - $"8AC04EC88BBDC9C8D80A04BB81C817BD6CC9CFC072C973BD505A0A04BB60C971" - $"BD4FCB2BC054CACFBD33CB790A03C6D944C9E8C6DAC695540A03BD9FBC21BEE9" - $"BBBAC059BA770204BF4DBBE8BF4DBC1ABF4DBBB7BF95BB8FBF6FBB8FBFBCBB8F" - $"BFD9BBE8BFD9BBB7BFD9BC1ABF95BC42BFBCBC42BF6FBC420A04BAD6C37ABBFA" - $"C2FDBAD1C336BA8CC2FD0606BA0ABC2BC6AF35C98ABCC1CB6BBB88CAC8BE00CC" - $"16C049CC29C033C51CBFB5C4EA0A092844284E2A502A5A325A3250344E34442E" - $"4202042E3AB9753AB7B23A2A3E2ABE112ABFD52E42B7B242B97542323E32BFD5" - $"32BE11280A000100000A010101000A020102000A030103000A040104000A0501" - $"05000A060106000A070107000A080108000A090109000A0A010A000A0B010B00" - $"0A0C010C000A0D010D000A0E010E000A0F010F000A100110000A110111000A12" - $"0112000A130113000A140114000A150115000A1603161718000A170119000A18" - $"011A000A18011B000A18011C000A18011D000A18011E000A18011F000A180120" - $"000A190121000A180122000A1A0123000A1B0124000A1C0125000A1D012630C3" - $"89B47101178400040A1E012620C389B4710A1D012730C389B47101178400040A" - $"1F012720C389B471" -}; - diff --git a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/calendar/sunbird/app/apprunner-beos.rsrc b/www-client/mozilla_firefox/copy-to-mozilla-src-dir/calendar/sunbird/app/apprunner-beos.rsrc deleted file mode 100644 index 130fb93a5..000000000 Binary files a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/calendar/sunbird/app/apprunner-beos.rsrc and /dev/null differ diff --git a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/mail/app/apprunner-beos.rdef b/www-client/mozilla_firefox/copy-to-mozilla-src-dir/mail/app/apprunner-beos.rdef deleted file mode 100644 index 77e2166df..000000000 --- a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/mail/app/apprunner-beos.rdef +++ /dev/null @@ -1,126 +0,0 @@ -/* - * BeZillaBrowser.rdef - */ - -resource app_signature "application/x-vnd.Mozilla-Thunderbird"; - -resource app_flags B_SINGLE_LAUNCH; - -resource app_version { - /* - * We are using the source code version number - * for our program version. - * TODO : implement something better. - */ - major = 1, - middle = 8, - minor = 1, - - /* 0 = development 1 = alpha 2 = beta - 3 = gamma 4 = golden master 5 = final */ - variety = 0, - - internal = 21, - - short_info = "BeZillaMailNews", - long_info = "BeZillaMailNews is based on Mozilla's source code" -}; - -resource file_types message { - "types" = "application/x-vnd.Be.URL.mailto", - "types" = "application/x-vnd.Be.URL.news", - "types" = "applicataion/x-person", - "types" = "message/rfc822", - "types" = "text/E-mail", - "types" = "text/x-email", - "types" = "text/x-vnd.Be-MailDraft" -}; - -resource vector_icon { - $"6E636966200500020016029E8638A20EBA220EBA9E86384880254A18EA00FFFF" - $"8002001602BC9D88BB1F643B1F64BC9D884B716D48772700FFFF80020016023B" - $"F73A0000000000003BF73A49B5114976B000FFFF800200160237A0DDB61AF236" - $"1AF237A0DD497CAA48588100FFFF800200160238D81CB8152D38152D38D81C48" - $"420A499FB600FFFF8002001602397095000000000000397095486EDA49100600" - $"FFFF800200160231E5B2BA0EAF3A0EAF31E5B247DA3349779B00FFFF80020016" - $"0236BBEFB4543A34543A36BBEF495BDE469BC700FFFF6B0200160236E2E70000" - $"0000000036E2E74A2CD64670CD00FFFF800200160237AB1000000000000037AB" - $"104AE1D848449500FFFF5702001602375C10B74516374516375C1048B2B04AE9" - $"7200FFFF8002001602B07700B74912374912B077004898AD4AD99500FFFF8002" - $"00160232CFA5BA0B483A0B4832CFA54A3C584BA00E00FFFF8002001602368CB7" - $"000000000000368CB74B3D5E49752800FFFF4F0200160236A81C000000000000" - $"36A81C4B94C84A808500FFFF4002000602B738F7362603B62603B738F748BB3F" - $"4A241700A91212FFD7121202001602B04887376143B76143B0488748D36C44FB" - $"3100FFFF6B02001602B47620362BAAB62BAAB476204A0C144406C600FFFF8002" - $"001602B4CAE23409B3B409B3B4CAE24AD8D54611F100FFFF8002001602B328E4" - $"324E4AB24E4AB328E44B36A648859C00FFFF8002001602B22376311F03B11F03" - $"B223764B891349FFBC00FFFF80010079009803FF000004006002001602B4E6F3" - $"319259B19259B4E6F34B2F5D4AA2CA00FFFF0003FFFF0004FFD801FFFF669805" - $"0002000602389ECD3AF097BC491F3A09894954654ABDFA00FFFFFFFFD9D09303" - $"6B5222280633EEEBFFFFAAEAABDBAEBBBEAE2BC0CEB389C02424C074B415BFF0" - $"B478BFB4B450BFB7B455BFB6B455BF8CB436BF14B430BF55B42DBEF5B3FFBE82" - $"B33EBBDBB3F2BBCEB4D7BBD0B4BABBCBB4DABBC7B4DABBC7B4DABBC8B4DABB45" - $"B50ABB45B50ABB44B50ABB37B50DBB37B50DBAD6B534BA1EB58DBA78B560BA1E" - $"B58DBA12B593BA12B593BA0FB596B99BB5D6B99BB5D6B99AB5D6B975B5ECB975" - $"B5ECB974B5EDB918B626B918B626B917B626B8EDB642B893B681B887B689B86C" - $"B69CB7F22AB7B5B72DB7A9B76EB73CB920B755B8C5B6B5B9A4B380BC3AB4F7BB" - $"4BB380BC3AB317BC7FB33E42B755C332B80EC320B7E7C323B7FBC3522CC3C54F" - $"BB03C7E8BAF4C7DBBAD1C898BA59CA44BC40CC83BAD4CBC3BDF3CD6FC0A0CDA4" - $"C760C888CA38C797C90DC879CB7BC6A2CC38C4DCCB9AC3A6CBB6C3DDCBA2C34C" - $"CBC2C1EBCA78BF62C954BF30C9ADBF3FC934BEE9C900BE83C91DBEC2C927BE17" - $"C999BCEAC857BA6BC720BABCC767BAABC73FBA2EC7C0B7EEC5B1B563C3F4B6DB" - $"C472B66FC405B613C427B41BC12CB2F006032FBAF5C05EBAF5C05EBAF7C05C34" - $"C05A34C05B34C05A34C05B0610EE7AAAAAC693C7B5C9E8C667C896C755CAB5C5" - $"D3CB14C47FC521B8CDC521B8CDC0B9B834BD7FBA63BC9BBC64B789BF00B92ABE" - $"82B789BF00C251BCE5C1CCBED1C0BCBE70C324BB51C5B0BB5AC71ABFC8C4E2C0" - $"44C512C05CCC1E0604EEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50AB87F" - $"B7A5BC0CB4F7B87FB7A50604FEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B5" - $"0ABF40B50ABD2DB521B87FB7A5BA8CB5E9B87FB7A50605BB02B3F7BCF4B5CD36" - $"B3F7BCF4B789BF00BA19BDD6B8DABE8835BD1EBC9BBC64B801B9930A04B87FB7" - $"A5BD7FBA63BC9BBC64B801B9930A04B3F7BCF4B413C012B789C251B789BF000A" - $"04BC7AB801BF99B6C0BE1BB43BBCAAB49E0A05BFE1B69AC187B3FFC341B4ABC3" - $"0EB77BC204B6CF0A05C3E9B805C594B69AC6D3B825C637BAECC521B8CD0A06B9" - $"67C223B8A5C3F1BB51C5B0BE70C323BED1C0BCBCE5C1CC0A04B8A5C548B8A5C3" - $"F1BB51C5B0BB5AC71A0606BA0ABC41C6A5BB73C983BCF9CB79BBC8CAD5BE40CC" - $"23C05CCC1EC044C512BFC8C4E20A04C6A1BBC1C7E5BB6BC8ABBCF7C80EBE920A" - $"04C9EA41C8C5BFF3CABBC3D4CAE3C2140A06BA90C206BA19C33CBADEC3EBBEA7" - $"C1C4BED1C0BCBCE5C1CC0A06BC7AB801BCAAB49EBE1BB43BBE33B460BCDAB4C7" - $"BCB1B7EC0A04BFE1B69AC021B6A1C1ADB40DC187B3FF0A04C3E9B805C594B69A" - $"C5B7B6C3C41AB8250A04C6A1BBC1C7E5BB6BC7F4BB8EC6B9BBEC0A04C8C5BFF3" - $"C9EA41CA07C060C8E5C02B0628AAAAAAAAAAAEEFAAA9BACAB4C3BFCAE3C214C9" - $"EA41C8C5BFF3C80FBE90C8ABBCF7C7F4BB8EC7E5BB6BC6A1BBC1C637BAECC6D3" - $"B826C5B7B6C3C594B69AC3E9B805C3F9B80FC30EB77BC341B4ABC1ADB40DC187" - $"B3FFC068B5C6BF40B50ABE9BB514BF03B507BE9BB514BE1BB43BBCAAB49EBC9E" - $"B57CBC9EB57CBB34B5E3B87FB7A5B9BC29B87FB7A5B801B993B3F7BCF4B5CD36" - $"B3F7BCF4B413C012B789C251B964C223B8A5C3F1C548BB5AC71ABFC8C4E2C044" - $"C512C05CCC1EC693C7B5C9B7C688C894C759CAD2C5BECB14C47F0A06BE4DC302" - $"BB334EB8F2C3E4B99FC21DBCE5C1CCBEAEC0D1020ABFDBBBF7BFE1BBDFBFC9BC" - $"38BF63BC91BF9DBC71BEE7BCD8BE03BC31BE4BBCABBE03BC31BE00BC24BE0137" - $"BE10BC1ABE4BBC03BE30BC0EBE4BBC03BEE9BBBABEE9BBBABEE9BBBABF7BBB58" - $"BF7BBB58BF8FBB45BFBDBB29BFA9BB3440BB2DBFC3BB34BFC3BB34BFD9BB5BBF" - $"E7BBB2BFE7BB85BFE7BBC8020ABFD5BC12BFD9BC00BFC3BC4FBF67BC9CBF9CBC" - $"80BEFCBCDBBE32BC45BE70BCB4BE32BC45BE2BBC39BE30BC41BE3EBC32BE70BC" - $"1DBE58BC27BE70BC1DBEFEBBDDBEFEBBDDBEFEBBDDBF7EBB84BF7EBB84BF90BB" - $"77BFB7BB5CBFA7BB66BFBDBB5F40BB6640BB66BFD4BB87BFDCBBD4BFDCBBADBF" - $"DCBBEA0605BA02BC2BC6AFC155C3BAC269C139C245C1A9C25CC1A9C1A5C3EFBB" - $"F5C7310A04BC7AB801BF99B6C0C125B79BBFB3B7FF0A03BFE1B69AC3A0B7D5C2" - $"04B6CF0A05BCAAC670BCB9C66BBE0FC73AC05BC70BBDF4C7890A04BC34C73FBD" - $"E5C88AC04EC88BBDC9C8D80A04BB81C817BD6CC9CFC072C973BD505A0A04BB60" - $"C971BD4FCB2BC054CACFBD33CB790A03C6D944C9E8C6DAC695540A03BD9FBC21" - $"BEE9BBBAC059BA770204BF4DBBE8BF4DBC1ABF4DBBB7BF95BB8FBF6FBB8FBFBC" - $"BB8FBFD9BBE8BFD9BBB7BFD9BC1ABF95BC42BFBCBC42BF6FBC420A04BAD6C37A" - $"BBFAC2FDBAD1C336BA8CC2FD0606BA0ABC2BC6AF35C98ABCC1CB6BBB88CAC8BE" - $"00CC16C049CC29C033C51CBFB5C4EA0A04244C245C3C5C3C4C060AEEFE0E244C" - $"30542E5432543C4CBB1454BCCAC670BB14543C5CBABCC808BABCC808BA0EC8AC" - $"3056B9A856B91756B801C808B8B1C8ACB801C808245CB7A954B7A954B5F4C670" - $"280A000100000A010101000A020102000A030103000A040104000A050105000A" - $"060106000A070107000A080108000A090109000A0A010A000A0B010B000A0C01" - $"0C000A0D010D000A0E010E000A0F010F000A100110000A110111000A12011200" - $"0A130113000A140114000A150115000A1603161718000A170119000A18011A00" - $"0A18011B000A18011C000A18011D000A18011E000A18011F000A180120000A19" - $"0121000A180122000A1A0123000A1B0124000A1C0125000A1D012638C018B358" - $"15FF01178400040A1D012638C018B358001501178600040A1E012620C018B358" - $"0A1F012720C018B358" -}; - - diff --git a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/xpfe/bootstrap/apprunner-beos.rdef b/www-client/mozilla_firefox/copy-to-mozilla-src-dir/xpfe/bootstrap/apprunner-beos.rdef deleted file mode 100644 index 6ca677791..000000000 --- a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/xpfe/bootstrap/apprunner-beos.rdef +++ /dev/null @@ -1,136 +0,0 @@ -/* - * BeZillaBrowser.rdef - */ - -resource app_signature "application/x-vnd.Mozilla-SeaMonkey"; - -resource app_flags B_SINGLE_LAUNCH; - -resource app_version { - /* - * We are using the source code version number - * for our program version. - * TODO : implement something better. - */ - major = 1, - middle = 8, - minor = 1, - - /* 0 = development 1 = alpha 2 = beta - 3 = gamma 4 = golden master 5 = final */ - variety = 0, - - internal = 21, - - short_info = "BeZillaSuite", - long_info = "BeZillaSuite is based on Mozilla's source code" -}; - -resource file_types message { - "types" = "application/x-vnd.Be.URL.file", - "types" = "application/x-vnd.Be.URL.ftp", - "types" = "application/x-vnd.Be.URL.http", - "types" = "application/x-vnd.Be.URL.https", - "types" = "application/x-vnd.Be.URL.mailto", - "types" = "application/x-vnd.Be.URL.news", - "types" = "text/html" - /* - * Should BeZillaSuite include these additional filetypes? - * note: MailNews has them - "types" = "applicataion/x-person", - "types" = "message/rfc822", - "types" = "text/E-mail", - "types" = "text/x-email" - "types" = "text/x-vnd.Be-MailDraft" - */ -}; - -resource vector_icon { - $"6E636966210500020016029E8638A20EBA220EBA9E86384880254A18EA00FFFF" - $"8002001602BC9D88BB1F643B1F64BC9D884B716D48772700FFFF80020016023B" - $"F73A0000000000003BF73A49B5114976B000FFFF800200160237A0DDB61AF236" - $"1AF237A0DD497CAA48588100FFFF800200160238D81CB8152D38152D38D81C48" - $"420A499FB600FFFF8002001602397095000000000000397095486EDA49100600" - $"FFFF800200160231E5B2BA0EAF3A0EAF31E5B247DA3349779B00FFFF80020016" - $"0236BBEFB4543A34543A36BBEF495BDE469BC700FFFF6B0200160236E2E70000" - $"0000000036E2E74A2CD64670CD00FFFF800200160237AB1000000000000037AB" - $"104AE1D848449500FFFF5702001602375C10B74516374516375C1048B2B04AE9" - $"7200FFFF8002001602B07700B74912374912B077004898AD4AD99500FFFF8002" - $"00160232CFA5BA0B483A0B4832CFA54A3C584BA00E00FFFF8002001602368CB7" - $"000000000000368CB74B3D5E49752800FFFF4F0200160236A81C000000000000" - $"36A81C4B94C84A808500FFFF4002000602B738F7362603B62603B738F748BB3F" - $"4A241700A91212FFD7121202001602B04887376143B76143B0488748D36C44FB" - $"3100FFFF6B02001602B47620362BAAB62BAAB476204A0C144406C600FFFF8002" - $"001602B4CAE23409B3B409B3B4CAE24AD8D54611F100FFFF8002001602B328E4" - $"324E4AB24E4AB328E44B36A648859C00FFFF8002001602B22376311F03B11F03" - $"B223764B891349FFBC00FFFF80010079009803FF000004006002001602B4E6F3" - $"319259B19259B4E6F34B2F5D4AA2CA00FFFF0003FFFF0004FFD801FFFF669805" - $"000200060237889D389554BBFC4A3AB9D0491ADE4A422000FFF9BAFFFFC10402" - $"0006023882A6389353BB177D3B0378484ADD4AF27700C7E3FFFF392FFF020006" - $"0237A0CC393C5ABC1AC23A5C164A19B94AFE5400FF9797FFCE3232290633EEEB" - $"FFFFAAEAABDBAEBBBEAE2BC0CEB389C02424C074B415BFF0B478BFB4B450BFB7" - $"B455BFB6B455BF8CB436BF14B430BF55B42DBEF5B3FFBE82B33EBBDBB3F2BBCE" - $"B4D7BBD0B4BABBCBB4DABBC7B4DABBC7B4DABBC8B4DABB45B50ABB45B50ABB44" - $"B50ABB37B50DBB37B50DBAD6B534BA1EB58DBA78B560BA1EB58DBA12B593BA12" - $"B593BA0FB596B99BB5D6B99BB5D6B99AB5D6B975B5ECB975B5ECB974B5EDB918" - $"B626B918B626B917B626B8EDB642B893B681B887B689B86CB69CB7F22AB7B5B7" - $"2DB7A9B76EB73CB920B755B8C5B6B5B9A4B380BC3AB4F7BB4BB380BC3AB317BC" - $"7FB33E42B755C332B80EC320B7E7C323B7FBC3522CC3C54FBB03C7E8BAF4C7DB" - $"BAD1C898BA59CA44BC40CC83BAD4CBC3BDF3CD6FC0A0CDA4C760C888CA38C797" - $"C90DC879CB7BC6A2CC38C4DCCB9AC3A6CBB6C3DDCBA2C34CCBC2C1EBCA78BF62" - $"C954BF30C9ADBF3FC934BEE9C900BE83C91DBEC2C927BE17C999BCEAC857BA6B" - $"C720BABCC767BAABC73FBA2EC7C0B7EEC5B1B563C3F4B6DBC472B66FC405B613" - $"C427B41BC12CB2F006032FBAF5C05EBAF5C05EBAF7C05C34C05A34C05B34C05A" - $"34C05B0610EE7AAAAAC693C7B5C9E8C667C896C755CAB5C5D3CB14C47FC521B8" - $"CDC521B8CDC0B9B834BD7FBA63BC9BBC64B789BF00B92ABE82B789BF00C251BC" - $"E5C1CCBED1C0BCBE70C324BB51C5B0BB5AC71ABFC8C4E2C044C512C05CCC1E06" - $"04EEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50AB87FB7A5BC0CB4F7B87F" - $"B7A50604FEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50ABF40B50ABD2DB5" - $"21B87FB7A5BA8CB5E9B87FB7A50605BB02B3F7BCF4B5CD36B3F7BCF4B789BF00" - $"BA19BDD6B8DABE8835BD1EBC9BBC64B801B9930A04B87FB7A5BD7FBA63BC9BBC" - $"64B801B9930A04B3F7BCF4B413C012B789C251B789BF000A04BC7AB801BF99B6" - $"C0BE1BB43BBCAAB49E0A05BFE1B69AC187B3FFC341B4ABC30EB77BC204B6CF0A" - $"05C3E9B805C594B69AC6D3B825C637BAECC521B8CD0A06B967C223B8A5C3F1BB" - $"51C5B0BE70C323BED1C0BCBCE5C1CC0A04B8A5C548B8A5C3F1BB51C5B0BB5AC7" - $"1A0606BA0ABC41C6A5BB73C983BCF9CB79BBC8CAD5BE40CC23C05CCC1EC044C5" - $"12BFC8C4E20A04C6A1BBC1C7E5BB6BC8ABBCF7C80EBE920A04C9EA41C8C5BFF3" - $"CABBC3D4CAE3C2140A06BA90C206BA19C33CBADEC3EBBEA7C1C4BED1C0BCBCE5" - $"C1CC0A06BC7AB801BCAAB49EBE1BB43BBE33B460BCDAB4C7BCB1B7EC0A04BFE1" - $"B69AC021B6A1C1ADB40DC187B3FF0A04C3E9B805C594B69AC5B7B6C3C41AB825" - $"0A04C6A1BBC1C7E5BB6BC7F4BB8EC6B9BBEC0A04C8C5BFF3C9EA41CA07C060C8" - $"E5C02B0628AAAAAAAAAAAEEFAAA9BACAB4C3BFCAE3C214C9EA41C8C5BFF3C80F" - $"BE90C8ABBCF7C7F4BB8EC7E5BB6BC6A1BBC1C637BAECC6D3B826C5B7B6C3C594" - $"B69AC3E9B805C3F9B80FC30EB77BC341B4ABC1ADB40DC187B3FFC068B5C6BF40" - $"B50ABE9BB514BF03B507BE9BB514BE1BB43BBCAAB49EBC9EB57CBC9EB57CBB34" - $"B5E3B87FB7A5B9BC29B87FB7A5B801B993B3F7BCF4B5CD36B3F7BCF4B413C012" - $"B789C251B964C223B8A5C3F1C548BB5AC71ABFC8C4E2C044C512C05CCC1EC693" - $"C7B5C9B7C688C894C759CAD2C5BECB14C47F0A06BE4DC302BB334EB8F2C3E4B9" - $"9FC21DBCE5C1CCBEAEC0D1020ABFDBBBF7BFE1BBDFBFC9BC38BF63BC91BF9DBC" - $"71BEE7BCD8BE03BC31BE4BBCABBE03BC31BE00BC24BE0137BE10BC1ABE4BBC03" - $"BE30BC0EBE4BBC03BEE9BBBABEE9BBBABEE9BBBABF7BBB58BF7BBB58BF8FBB45" - $"BFBDBB29BFA9BB3440BB2DBFC3BB34BFC3BB34BFD9BB5BBFE7BBB2BFE7BB85BF" - $"E7BBC8020ABFD5BC12BFD9BC00BFC3BC4FBF67BC9CBF9CBC80BEFCBCDBBE32BC" - $"45BE70BCB4BE32BC45BE2BBC39BE30BC41BE3EBC32BE70BC1DBE58BC27BE70BC" - $"1DBEFEBBDDBEFEBBDDBEFEBBDDBF7EBB84BF7EBB84BF90BB77BFB7BB5CBFA7BB" - $"66BFBDBB5F40BB6640BB66BFD4BB87BFDCBBD4BFDCBBADBFDCBBEA0605BA02BC" - $"2BC6AFC155C3BAC269C139C245C1A9C25CC1A9C1A5C3EFBBF5C7310A04BC7AB8" - $"01BF99B6C0C125B79BBFB3B7FF0A03BFE1B69AC3A0B7D5C204B6CF0A05BCAAC6" - $"70BCB9C66BBE0FC73AC05BC70BBDF4C7890A04BC34C73FBDE5C88AC04EC88BBD" - $"C9C8D80A04BB81C817BD6CC9CFC072C973BD505A0A04BB60C971BD4FCB2BC054" - $"CACFBD33CB790A03C6D944C9E8C6DAC695540A03BD9FBC21BEE9BBBAC059BA77" - $"0204BF4DBBE8BF4DBC1ABF4DBBB7BF95BB8FBF6FBB8FBFBCBB8FBFD9BBE8BFD9" - $"BBB7BFD9BC1ABF95BC42BFBCBC42BF6FBC420A04BAD6C37ABBFAC2FDBAD1C336" - $"BA8CC2FD0606BA0ABC2BC6AF35C98ABCC1CB6BBB88CAC8BE00CC16C049CC29C0" - $"33C51CBFB5C4EA0A062C472C4E3251364E364730440A06265226592C5C305930" - $"522A4F0A0632533259385C3C593C5237C5D3290A000100000A010101000A0201" - $"02000A030103000A040104000A050105000A060106000A070107000A08010800" - $"0A090109000A0A010A000A0B010B000A0C010C000A0D010D000A0E010E000A0F" - $"010F000A100110000A110111000A120112000A130113000A140114000A150115" - $"000A1603161718000A170119000A18011A000A18011B000A18011C000A18011D" - $"000A18011E000A18011F000A180120000A190121000A180122000A1A0123000A" - $"1B0124000A1C0125000A1D032627283841B30C15FF01178400040A1D03262728" - $"3841B30C001501178600040A1E01262041B30C0A1F01272041B30C0A20012820" - $"41B30C" -}; - - diff --git a/www-client/mozilla_firefox/hvif-icons/BeZilla-Browser-l b/www-client/mozilla_firefox/hvif-icons/BeZilla-Browser-l deleted file mode 100644 index f6e7614a5..000000000 Binary files a/www-client/mozilla_firefox/hvif-icons/BeZilla-Browser-l and /dev/null differ diff --git a/www-client/mozilla_firefox/hvif-icons/BeZilla-Browser-r b/www-client/mozilla_firefox/hvif-icons/BeZilla-Browser-r deleted file mode 100644 index d5932a9a1..000000000 Binary files a/www-client/mozilla_firefox/hvif-icons/BeZilla-Browser-r and /dev/null differ diff --git a/www-client/mozilla_firefox/hvif-icons/BeZilla-MailNews b/www-client/mozilla_firefox/hvif-icons/BeZilla-MailNews deleted file mode 100644 index aae8f134e..000000000 Binary files a/www-client/mozilla_firefox/hvif-icons/BeZilla-MailNews and /dev/null differ diff --git a/www-client/mozilla_firefox/hvif-icons/BeZilla-MailNews-r b/www-client/mozilla_firefox/hvif-icons/BeZilla-MailNews-r deleted file mode 100644 index 10b514b4c..000000000 Binary files a/www-client/mozilla_firefox/hvif-icons/BeZilla-MailNews-r and /dev/null differ diff --git a/www-client/mozilla_firefox/hvif-icons/BeZilla-Suite-l b/www-client/mozilla_firefox/hvif-icons/BeZilla-Suite-l deleted file mode 100644 index 8df37e9c7..000000000 Binary files a/www-client/mozilla_firefox/hvif-icons/BeZilla-Suite-l and /dev/null differ diff --git a/www-client/mozilla_firefox/hvif-icons/BeZilla-Suite-r b/www-client/mozilla_firefox/hvif-icons/BeZilla-Suite-r deleted file mode 100644 index 9c882797e..000000000 Binary files a/www-client/mozilla_firefox/hvif-icons/BeZilla-Suite-r and /dev/null differ diff --git a/www-client/mozilla_firefox/hvif-icons/BeZilla-calendar-l b/www-client/mozilla_firefox/hvif-icons/BeZilla-calendar-l deleted file mode 100644 index a37cb9361..000000000 Binary files a/www-client/mozilla_firefox/hvif-icons/BeZilla-calendar-l and /dev/null differ diff --git a/www-client/mozilla_firefox/hvif-icons/BeZilla-calendar-r b/www-client/mozilla_firefox/hvif-icons/BeZilla-calendar-r deleted file mode 100644 index a4401ebc2..000000000 Binary files a/www-client/mozilla_firefox/hvif-icons/BeZilla-calendar-r and /dev/null differ diff --git a/www-client/mozilla_firefox/hvif-icons/bezilla-1 copy b/www-client/mozilla_firefox/hvif-icons/bezilla-1 copy deleted file mode 100644 index b82b4e952..000000000 Binary files a/www-client/mozilla_firefox/hvif-icons/bezilla-1 copy and /dev/null differ diff --git a/www-client/mozilla_firefox/hvif-icons/icon_copyright/copyleft.txt b/www-client/mozilla_firefox/hvif-icons/icon_copyright/copyleft.txt deleted file mode 100644 index 0a618151a..000000000 --- a/www-client/mozilla_firefox/hvif-icons/icon_copyright/copyleft.txt +++ /dev/null @@ -1,180 +0,0 @@ -DESIGN SCIENCE LICENSE - -TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - -Copyright © 1999-2001 Michael Stutz -Verbatim copying of this document is permitted, in any medium. - -0. PREAMBLE. - -Copyright law gives certain exclusive rights to the author of a work, -including the rights to copy, modify and distribute the work (the -"reproductive," "adaptative," and "distribution" rights). - -The idea of "copyleft" is to willfully revoke the exclusivity of those -rights under certain terms and conditions, so that anyone can copy and -distribute the work or properly attributed derivative works, while all -copies remain under the same terms and conditions as the original. - -The intent of this license is to be a general "copyleft" that can be -applied to any kind of work that has protection under copyright. This -license states those certain conditions under which a work published -under its terms may be copied, distributed, and modified. - -Whereas "design science" is a strategy for the development of -artifacts as a way to reform the environment (not people) and -subsequently improve the universal standard of living, this Design -Science License was written and deployed as a strategy for promoting -the progress of science and art through reform of the environment. - -1. DEFINITIONS. - -"License" shall mean this Design Science License. The License applies -to any work which contains a notice placed by the work's copyright -holder stating that it is published under the terms of this Design -Science License. - -"Work" shall mean such an aforementioned work. The License also -applies to the output of the Work, only if said output constitutes a -"derivative work" of the licensed Work as defined by copyright law. - -"Object Form" shall mean an executable or performable form of the -Work, being an embodiment of the Work in some tangible medium. - -"Source Data" shall mean the origin of the Object Form, being the -entire, machine-readable, preferred form of the Work for copying and -for human modification (usually the language, encoding or format in -which composed or recorded by the Author); plus any accompanying -files, scripts or other data necessary for installation, configuration -or compilation of the Work. - -(Examples of "Source Data" include, but are not limited to, the -following: if the Work is an image file composed and edited in PNG -format, then the original PNG source file is the Source Data; if the -Work is an MPEG 1.0 layer 3 digital audio recording made from a WAV -format audio file recording of an analog source, then the original WAV -file is the Source Data; if the Work was composed as an unformatted -plaintext file, then that file is the Source Data; if the Work was -composed in LaTeX, the LaTeX file(s) and any image files and/or custom -macros necessary for compilation constitute the Source Data.) - -"Author" shall mean the copyright holder(s) of the Work. - -The individual licensees are referred to as "you." - -2. RIGHTS AND COPYRIGHT. - -The Work is copyrighted by the Author. All rights to the Work are -reserved by the Author, except as specifically described below. This -License describes the terms and conditions under which the Author -permits you to copy, distribute and modify copies of the Work. - -In addition, you may refer to the Work, talk about it, and (as -dictated by "fair use") quote from it, just as you would any -copyrighted material under copyright law. - -Your right to operate, perform, read or otherwise interpret and/or -execute the Work is unrestricted; however, you do so at your own risk, -because the Work comes WITHOUT ANY WARRANTY -- see Section 7 ("NO -WARRANTY") below. - -3. COPYING AND DISTRIBUTION. - -Permission is granted to distribute, publish or otherwise present -verbatim copies of the entire Source Data of the Work, in any medium, -provided that full copyright notice and disclaimer of warranty, where -applicable, is conspicuously published on all copies, and a copy of -this License is distributed along with the Work. - -Permission is granted to distribute, publish or otherwise present -copies of the Object Form of the Work, in any medium, under the terms -for distribution of Source Data above and also provided that one of -the following additional conditions are met: - -(a) The Source Data is included in the same distribution, distributed -under the terms of this License; or - -(b) A written offer is included with the distribution, valid for at -least three years or for as long as the distribution is in print -(whichever is longer), with a publicly-accessible address (such as a -URL on the Internet) where, for a charge not greater than -transportation and media costs, anyone may receive a copy of the -Source Data of the Work distributed according to the section above; or - -(c) A third party's written offer for obtaining the Source Data at no -cost, as described in paragraph (b) above, is included with the -distribution. This option is valid only if you are a non-commercial -party, and only if you received the Object Form of the Work along with -such an offer. - -You may copy and distribute the Work either gratis or for a fee, and -if desired, you may offer warranty protection for the Work. - -The aggregation of the Work with other works that are not based on the -Work -- such as but not limited to inclusion in a publication, -broadcast, compilation, or other media -- does not bring the other -works in the scope of the License; nor does such aggregation void the -terms of the License for the Work. - -4. MODIFICATION. - -Permission is granted to modify or sample from a copy of the Work, -producing a derivative work, and to distribute the derivative work -under the terms described in the section for distribution above, -provided that the following terms are met: - -(a) The new, derivative work is published under the terms of this -License. - -(b) The derivative work is given a new name, so that its name or title -cannot be confused with the Work, or with a version of the Work, in -any way. - -(c) Appropriate authorship credit is given: for the differences -between the Work and the new derivative work, authorship is attributed -to you, while the material sampled or used from the Work remains -attributed to the original Author; appropriate notice must be included -with the new work indicating the nature and the dates of any -modifications of the Work made by you. - -5. NO RESTRICTIONS. - -You may not impose any further restrictions on the Work or any of its -derivative works beyond those restrictions described in this License. - -6. ACCEPTANCE. - -Copying, distributing or modifying the Work (including but not limited -to sampling from the Work in a new work) indicates acceptance of these -terms. If you do not follow the terms of this License, any rights -granted to you by the License are null and void. The copying, -distribution or modification of the Work outside of the terms -described in this License is expressly prohibited by law. - -If for any reason, conditions are imposed on you that forbid you to -fulfill the conditions of this License, you may not copy, distribute -or modify the Work at all. - -If any part of this License is found to be in conflict with the law, -that part shall be interpreted in its broadest meaning consistent with -the law, and no other parts of the License shall be affected. - -7. NO WARRANTY. - -THE WORK IS PROVIDED "AS IS," AND COMES WITH ABSOLUTELY NO WARRANTY, -EXPRESS OR IMPLIED, TO THE EXTENT PERMITTED BY APPLICABLE LAW, -INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY -OR FITNESS FOR A PARTICULAR PURPOSE. - -8. DISCLAIMER OF LIABILITY. - -IN NO EVENT SHALL THE AUTHOR 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 WORK, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -END OF TERMS AND CONDITIONS diff --git a/www-client/mozilla_firefox/hvif-icons/icon_copyright/copyright_info.txt b/www-client/mozilla_firefox/hvif-icons/icon_copyright/copyright_info.txt deleted file mode 100644 index 6761aa8c6..000000000 --- a/www-client/mozilla_firefox/hvif-icons/icon_copyright/copyright_info.txt +++ /dev/null @@ -1 +0,0 @@ -Copyright © 2002 Matthew McClintock; this information may be copied, distributed and/or modified under certain conditions, but it comes WITHOUT ANY WARRANTY; see the Design Science License for more details. \ No newline at end of file diff --git a/www-client/mozilla_firefox/old-patches/allO1.patch b/www-client/mozilla_firefox/old-patches/allO1.patch deleted file mode 100644 index f89874124..000000000 --- a/www-client/mozilla_firefox/old-patches/allO1.patch +++ /dev/null @@ -1,204 +0,0 @@ -Index: mozilla/directory/c-sdk/config/BeOS.mk -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/config/BeOS.mk,v -retrieving revision 5.0.138.1 -diff -u -8 -p -r5.0.138.1 BeOS.mk ---- mozilla/directory/c-sdk/config/BeOS.mk 3 Feb 2006 14:41:11 -0000 5.0.138.1 -+++ mozilla/directory/c-sdk/config/BeOS.mk 19 Feb 2009 02:42:41 -0000 -@@ -64,17 +64,18 @@ ifeq (PC,$(findstring PC,$(OS_TEST))) - CPU_ARCH = x86 - CC = gcc - CCC = g++ - LD = gcc - RANLIB = ranlib - DSO_LDOPTS = -nostart - PORT_FLAGS = -DHAVE_STRERROR - ifdef BUILD_OPT --OPTIMIZER = -O2 -+#OPTIMIZER = -O2 -+OPTIMIZER = -O1 -march=pentium -mcpu=pentiumpro - LDFLAGS += -s - else - OPTIMIZER = -gdwarf-2 -O0 - endif - else - CPU_ARCH = ppc - CC = mwcc - CCC = mwcc -@@ -85,17 +86,18 @@ DSO_LDOPTS = -xms -export p - -term _term_routine_ \ - -lroot -lnet \ - /boot/develop/lib/ppc/glue-noinit.a \ - /boot/develop/lib/ppc/init_term_dyn.o \ - /boot/develop/lib/ppc/start_dyn.o - - PORT_FLAGS = -DHAVE_STRERROR -D_POSIX_SOURCE - ifdef BUILD_OPT --OPTIMIZER = -O2 -+#OPTIMIZER = -O2 -+OPTIMIZER = -O1 -march=pentium -mcpu=pentiumpro - else - OPTIMIZER = -g -O0 - endif - endif - CPU_ARCH_TAG = _$(CPU_ARCH) - - OS_INCLUDES = -I- -I. - #G++INCLUDES = -I/usr/include/g++ -Index: mozilla/directory/c-sdk/configure.in -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/configure.in,v -retrieving revision 5.0.2.34.4.3 -diff -u -8 -p -r5.0.2.34.4.3 configure.in ---- mozilla/directory/c-sdk/configure.in 11 Jul 2007 20:43:19 -0000 5.0.2.34.4.3 -+++ mozilla/directory/c-sdk/configure.in 19 Feb 2009 02:43:12 -0000 -@@ -819,17 +819,17 @@ case "$target" in - AC_DEFINE(_POSIX_SOURCE) - DSO_LDOPTS=-nostart - MDCPUCFG_H=_beos.cfg - USE_BTHREADS=1 - PR_MD_ARCH_DIR=beos - RESOLVE_LINK_SYMBOLS=1 - case "${target_cpu}" in - i*86) -- _OPTIMIZE_FLAGS=-O2 -+ _OPTIMIZE_FLAGS=-O1 -march=pentium -mcpu=pentiumpro - _DEBUG_FLAGS='-gdwarf-2 -O0' - MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@' - AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) - ;; - powerpc) - CC=mwcc - CCC=mwcc - LD=mwld -Index: mozilla/nsprpub/configure.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/configure.in,v -retrieving revision 1.199.2.17 -diff -u -8 -p -r1.199.2.17 configure.in ---- mozilla/nsprpub/configure.in 31 Oct 2007 18:07:38 -0000 1.199.2.17 -+++ mozilla/nsprpub/configure.in 19 Feb 2009 02:59:37 -0000 -@@ -874,17 +874,17 @@ case "$target" in - AC_DEFINE(_POSIX_SOURCE) - DSO_LDOPTS=-nostart - MDCPUCFG_H=_beos.cfg - USE_BTHREADS=1 - PR_MD_ARCH_DIR=beos - RESOLVE_LINK_SYMBOLS=1 - case "${target_cpu}" in - i*86) -- _OPTIMIZE_FLAGS=-O2 -+ _OPTIMIZE_FLAGS=-O1 -march=pentium -mcpu=pentiumpro - _DEBUG_FLAGS='-gdwarf-2 -O0' - MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@' - AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) - ;; - powerpc) - CC=mwcc - CCC=mwcc - LD=mwld -Index: mozilla/security/coreconf/BeOS.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/coreconf/BeOS.mk,v -retrieving revision 1.2 -diff -u -8 -p -r1.2 BeOS.mk ---- mozilla/security/coreconf/BeOS.mk 25 Apr 2004 15:02:17 -0000 1.2 -+++ mozilla/security/coreconf/BeOS.mk 19 Feb 2009 03:02:58 -0000 -@@ -56,17 +56,17 @@ ifeq ($(OS_TEST),ppc) - CPU_ARCH = ppc - else - OS_REL_CFLAGS = -Di386 - CPU_ARCH = x86 - endif - - MKSHLIB = $(CC) -nostart -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so) - ifdef BUILD_OPT -- OPTIMIZER = -O2 -+ OPTIMIZER = -O1 -march=pentium -mcpu=pentiumpro - endif - - OS_CFLAGS = $(DSO_CFLAGS) $(OS_REL_CFLAGS) -Wall -pipe - OS_LIBS = -lbe - - DEFINES += -DBEOS - - ifdef USE_PTHREADS -Index: mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in,v -retrieving revision 1.80.4.6 -diff -u -8 -p -r1.80.4.6 Makefile.in ---- mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 19 Feb 2008 21:11:34 -0000 1.80.4.6 -+++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 19 Feb 2009 04:24:38 -0000 -@@ -94,16 +94,17 @@ CPPSRCS := xptcinvoke_ipf64.cpp xptcstu - ASFILES := xptcstubs_asm_ipf64.s xptcinvoke_asm_ipf64.s - endif - endif - # - # BeOS/Intel (uses the same unixish_x86 code) - # - ifeq ($(OS_ARCH)$(OS_TEST),BeOSBePC) - CPPSRCS := xptcinvoke_gcc_x86_unix.cpp xptcstubs_gcc_x86_unix.cpp -+CXXFLAGS += -O1 -march=pentium -mcpu=pentiumpro - endif - # - # Neutrino/Intel (uses the same unixish_x86 code) - # - ifeq ($(OS_TARGET),NTO) - ifeq ($(OS_TEST),x86) - CPPSRCS := xptcinvoke_unixish_x86.cpp xptcstubs_unixish_x86.cpp - endif -Index: mozilla/security/nss-fips/lib/freebl/mpi/target.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/freebl/mpi/target.mk,v -retrieving revision 1.4.2.1 -diff -u -8 -p -r1.4.2.1 target.mk ---- mozilla/security/nss-fips/lib/freebl/mpi/target.mk 16 Mar 2006 16:37:28 -0000 1.4.2.1 -+++ mozilla/security/nss-fips/lib/freebl/mpi/target.mk 19 Feb 2009 04:29:59 -0000 -@@ -40,17 +40,18 @@ - ## - ## Define CFLAGS to contain any local options your compiler - ## setup requires. - ## - ## Conditional compilation options are no longer here; see - ## the file 'mpi-config.h' instead. - ## - MPICMN = -I. -DMP_API_COMPATIBLE -DMP_IOFUNC --CFLAGS= -O $(MPICMN) -+CFLAGS= -O1 -march=pentium -mcpu=pentiumpro -+#CFLAGS= -O $(MPICMN) - #CFLAGS=-ansi -fullwarn -woff 1521 -O3 $(MPICMN) - #CFLAGS=-ansi -pedantic -Wall -O3 $(MPICMN) - #CFLAGS=-ansi -pedantic -Wall -g -O2 -DMP_DEBUG=1 $(MPICMN) - - ifeq ($(TARGET),mipsIRIX) - #IRIX - #MPICMN += -DMP_MONT_USE_MP_MUL - MPICMN += -DMP_ASSEMBLY_MULTIPLY -DMP_ASSEMBLY_SQUARE -Index: mozilla/security/nss/lib/freebl/mpi/target.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/freebl/mpi/target.mk,v -retrieving revision 1.4.2.1 -diff -u -8 -p -r1.4.2.1 target.mk ---- mozilla/security/nss/lib/freebl/mpi/target.mk 16 Mar 2006 16:37:28 -0000 1.4.2.1 -+++ mozilla/security/nss/lib/freebl/mpi/target.mk 19 Feb 2009 04:30:56 -0000 -@@ -40,17 +40,18 @@ - ## - ## Define CFLAGS to contain any local options your compiler - ## setup requires. - ## - ## Conditional compilation options are no longer here; see - ## the file 'mpi-config.h' instead. - ## - MPICMN = -I. -DMP_API_COMPATIBLE -DMP_IOFUNC --CFLAGS= -O $(MPICMN) -+CFLAGS= -O1 -march=pentium -mcpu=pentiumpro -+#CFLAGS= -O $(MPICMN) - #CFLAGS=-ansi -fullwarn -woff 1521 -O3 $(MPICMN) - #CFLAGS=-ansi -pedantic -Wall -O3 $(MPICMN) - #CFLAGS=-ansi -pedantic -Wall -g -O2 -DMP_DEBUG=1 $(MPICMN) - - ifeq ($(TARGET),mipsIRIX) - #IRIX - #MPICMN += -DMP_MONT_USE_MP_MUL - MPICMN += -DMP_ASSEMBLY_MULTIPLY -DMP_ASSEMBLY_SQUARE diff --git a/www-client/mozilla_firefox/old-patches/allO3.patch b/www-client/mozilla_firefox/old-patches/allO3.patch deleted file mode 100644 index 48763c761..000000000 --- a/www-client/mozilla_firefox/old-patches/allO3.patch +++ /dev/null @@ -1,204 +0,0 @@ -Index: mozilla/directory/c-sdk/config/BeOS.mk -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/config/BeOS.mk,v -retrieving revision 5.0.138.1 -diff -u -8 -p -r5.0.138.1 BeOS.mk ---- mozilla/directory/c-sdk/config/BeOS.mk 3 Feb 2006 14:41:11 -0000 5.0.138.1 -+++ mozilla/directory/c-sdk/config/BeOS.mk 19 Feb 2009 02:42:41 -0000 -@@ -64,17 +64,18 @@ ifeq (PC,$(findstring PC,$(OS_TEST))) - CPU_ARCH = x86 - CC = gcc - CCC = g++ - LD = gcc - RANLIB = ranlib - DSO_LDOPTS = -nostart - PORT_FLAGS = -DHAVE_STRERROR - ifdef BUILD_OPT --OPTIMIZER = -O2 -+#OPTIMIZER = -O2 -+OPTIMIZER = -O3 -march=pentium -mcpu=pentiumpro - LDFLAGS += -s - else - OPTIMIZER = -gdwarf-2 -O0 - endif - else - CPU_ARCH = ppc - CC = mwcc - CCC = mwcc -@@ -85,17 +86,18 @@ DSO_LDOPTS = -xms -export p - -term _term_routine_ \ - -lroot -lnet \ - /boot/develop/lib/ppc/glue-noinit.a \ - /boot/develop/lib/ppc/init_term_dyn.o \ - /boot/develop/lib/ppc/start_dyn.o - - PORT_FLAGS = -DHAVE_STRERROR -D_POSIX_SOURCE - ifdef BUILD_OPT --OPTIMIZER = -O2 -+#OPTIMIZER = -O2 -+OPTIMIZER = -O3 -march=pentium -mcpu=pentiumpro - else - OPTIMIZER = -g -O0 - endif - endif - CPU_ARCH_TAG = _$(CPU_ARCH) - - OS_INCLUDES = -I- -I. - #G++INCLUDES = -I/usr/include/g++ -Index: mozilla/directory/c-sdk/configure.in -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/configure.in,v -retrieving revision 5.0.2.34.4.3 -diff -u -8 -p -r5.0.2.34.4.3 configure.in ---- mozilla/directory/c-sdk/configure.in 11 Jul 2007 20:43:19 -0000 5.0.2.34.4.3 -+++ mozilla/directory/c-sdk/configure.in 19 Feb 2009 02:43:12 -0000 -@@ -819,17 +819,17 @@ case "$target" in - AC_DEFINE(_POSIX_SOURCE) - DSO_LDOPTS=-nostart - MDCPUCFG_H=_beos.cfg - USE_BTHREADS=1 - PR_MD_ARCH_DIR=beos - RESOLVE_LINK_SYMBOLS=1 - case "${target_cpu}" in - i*86) -- _OPTIMIZE_FLAGS=-O2 -+ _OPTIMIZE_FLAGS=-O3 -march=pentium -mcpu=pentiumpro - _DEBUG_FLAGS='-gdwarf-2 -O0' - MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@' - AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) - ;; - powerpc) - CC=mwcc - CCC=mwcc - LD=mwld -Index: mozilla/nsprpub/configure.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/configure.in,v -retrieving revision 1.199.2.17 -diff -u -8 -p -r1.199.2.17 configure.in ---- mozilla/nsprpub/configure.in 31 Oct 2007 18:07:38 -0000 1.199.2.17 -+++ mozilla/nsprpub/configure.in 19 Feb 2009 02:59:37 -0000 -@@ -874,17 +874,17 @@ case "$target" in - AC_DEFINE(_POSIX_SOURCE) - DSO_LDOPTS=-nostart - MDCPUCFG_H=_beos.cfg - USE_BTHREADS=1 - PR_MD_ARCH_DIR=beos - RESOLVE_LINK_SYMBOLS=1 - case "${target_cpu}" in - i*86) -- _OPTIMIZE_FLAGS=-O2 -+ _OPTIMIZE_FLAGS=-O3 -march=pentium -mcpu=pentiumpro - _DEBUG_FLAGS='-gdwarf-2 -O0' - MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@' - AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) - ;; - powerpc) - CC=mwcc - CCC=mwcc - LD=mwld -Index: mozilla/security/coreconf/BeOS.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/coreconf/BeOS.mk,v -retrieving revision 1.2 -diff -u -8 -p -r1.2 BeOS.mk ---- mozilla/security/coreconf/BeOS.mk 25 Apr 2004 15:02:17 -0000 1.2 -+++ mozilla/security/coreconf/BeOS.mk 19 Feb 2009 03:02:58 -0000 -@@ -56,17 +56,17 @@ ifeq ($(OS_TEST),ppc) - CPU_ARCH = ppc - else - OS_REL_CFLAGS = -Di386 - CPU_ARCH = x86 - endif - - MKSHLIB = $(CC) -nostart -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so) - ifdef BUILD_OPT -- OPTIMIZER = -O2 -+ OPTIMIZER = -O3 -march=pentium -mcpu=pentiumpro - endif - - OS_CFLAGS = $(DSO_CFLAGS) $(OS_REL_CFLAGS) -Wall -pipe - OS_LIBS = -lbe - - DEFINES += -DBEOS - - ifdef USE_PTHREADS -Index: mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in,v -retrieving revision 1.80.4.6 -diff -u -8 -p -r1.80.4.6 Makefile.in ---- mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 19 Feb 2008 21:11:34 -0000 1.80.4.6 -+++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 19 Feb 2009 04:24:38 -0000 -@@ -94,16 +94,17 @@ CPPSRCS := xptcinvoke_ipf64.cpp xptcstu - ASFILES := xptcstubs_asm_ipf64.s xptcinvoke_asm_ipf64.s - endif - endif - # - # BeOS/Intel (uses the same unixish_x86 code) - # - ifeq ($(OS_ARCH)$(OS_TEST),BeOSBePC) - CPPSRCS := xptcinvoke_gcc_x86_unix.cpp xptcstubs_gcc_x86_unix.cpp -+CXXFLAGS += -O3 -march=pentium -mcpu=pentiumpro - endif - # - # Neutrino/Intel (uses the same unixish_x86 code) - # - ifeq ($(OS_TARGET),NTO) - ifeq ($(OS_TEST),x86) - CPPSRCS := xptcinvoke_unixish_x86.cpp xptcstubs_unixish_x86.cpp - endif -Index: mozilla/security/nss-fips/lib/freebl/mpi/target.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/freebl/mpi/target.mk,v -retrieving revision 1.4.2.1 -diff -u -8 -p -r1.4.2.1 target.mk ---- mozilla/security/nss-fips/lib/freebl/mpi/target.mk 16 Mar 2006 16:37:28 -0000 1.4.2.1 -+++ mozilla/security/nss-fips/lib/freebl/mpi/target.mk 19 Feb 2009 04:29:59 -0000 -@@ -40,17 +40,18 @@ - ## - ## Define CFLAGS to contain any local options your compiler - ## setup requires. - ## - ## Conditional compilation options are no longer here; see - ## the file 'mpi-config.h' instead. - ## - MPICMN = -I. -DMP_API_COMPATIBLE -DMP_IOFUNC --CFLAGS= -O $(MPICMN) -+CFLAGS= -O3 -march=pentium -mcpu=pentiumpro -+#CFLAGS= -O $(MPICMN) - #CFLAGS=-ansi -fullwarn -woff 1521 -O3 $(MPICMN) - #CFLAGS=-ansi -pedantic -Wall -O3 $(MPICMN) - #CFLAGS=-ansi -pedantic -Wall -g -O2 -DMP_DEBUG=1 $(MPICMN) - - ifeq ($(TARGET),mipsIRIX) - #IRIX - #MPICMN += -DMP_MONT_USE_MP_MUL - MPICMN += -DMP_ASSEMBLY_MULTIPLY -DMP_ASSEMBLY_SQUARE -Index: mozilla/security/nss/lib/freebl/mpi/target.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/freebl/mpi/target.mk,v -retrieving revision 1.4.2.1 -diff -u -8 -p -r1.4.2.1 target.mk ---- mozilla/security/nss/lib/freebl/mpi/target.mk 16 Mar 2006 16:37:28 -0000 1.4.2.1 -+++ mozilla/security/nss/lib/freebl/mpi/target.mk 19 Feb 2009 04:30:56 -0000 -@@ -40,17 +40,18 @@ - ## - ## Define CFLAGS to contain any local options your compiler - ## setup requires. - ## - ## Conditional compilation options are no longer here; see - ## the file 'mpi-config.h' instead. - ## - MPICMN = -I. -DMP_API_COMPATIBLE -DMP_IOFUNC --CFLAGS= -O $(MPICMN) -+CFLAGS= -O3 -march=pentium -mcpu=pentiumpro -+#CFLAGS= -O $(MPICMN) - #CFLAGS=-ansi -fullwarn -woff 1521 -O3 $(MPICMN) - #CFLAGS=-ansi -pedantic -Wall -O3 $(MPICMN) - #CFLAGS=-ansi -pedantic -Wall -g -O2 -DMP_DEBUG=1 $(MPICMN) - - ifeq ($(TARGET),mipsIRIX) - #IRIX - #MPICMN += -DMP_MONT_USE_MP_MUL - MPICMN += -DMP_ASSEMBLY_MULTIPLY -DMP_ASSEMBLY_SQUARE diff --git a/www-client/mozilla_firefox/old-patches/configure-sunbird-nspr-reorder.diff b/www-client/mozilla_firefox/old-patches/configure-sunbird-nspr-reorder.diff deleted file mode 100644 index de1c4e017..000000000 --- a/www-client/mozilla_firefox/old-patches/configure-sunbird-nspr-reorder.diff +++ /dev/null @@ -1,17848 +0,0 @@ -? mozilla/browser/installer/beos -Index: mozilla/configure.in -=================================================================== -RCS file: /cvsroot/mozilla/configure.in,v -retrieving revision 1.1503.2.112 -diff -u -8 -p -r1.1503.2.112 configure.in ---- mozilla/configure.in 19 Oct 2008 16:14:06 -0000 1.1503.2.112 -+++ mozilla/configure.in 9 Feb 2009 04:00:37 -0000 -@@ -1333,17 +1333,17 @@ if test "$HAVE_64BIT_OS"; then - fi - AC_LANG_RESTORE - fi # COMPILE_ENVIRONMENT - - dnl ======================================================== - dnl System overrides of the defaults for host - dnl ======================================================== - case "$host" in --*-beos*) -+*-beos*|*-haiku*) - HOST_CFLAGS="$HOST_CFLAGS -DXP_BEOS -DBeOS -DBEOS -D_POSIX_SOURCE -DNO_X11" - HOST_NSPR_MDCPUCFG='\"md/_beos.cfg\"' - HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}" - ;; - - *cygwin*|*mingw*|*mks*|*msvc*|*wince) - if test -n "$_WIN32_MSVC"; then - HOST_AR=lib -@@ -1477,27 +1477,45 @@ case "$target" in - ;; - esac - if test "$COMPILE_ENVIRONMENT"; then - AC_CHECK_HEADERS(sys/inttypes.h) - fi - AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES) - ;; - --*-beos*) -+*-beos*|*-haiku*) - no_x=yes -- MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@' - _PLATFORM_DEFAULT_TOOLKIT="beos" -+ TARGET_NSPR_MDCPUCFG='\"md/_beos.cfg\"' -+ TARGET_MD_ARCH=beos -+ -+ DSO_PIC_CFLAGS=-fPIC - DSO_LDOPTS='-nostart' -+ MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@' -+ MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@' - TK_LIBS='-lbe -lroot' - LIBS="$LIBS -lbe" -+ -+ _HAIKU_BUILD=0 -+ - if test "$COMPILE_ENVIRONMENT"; then -- AC_CHECK_LIB(bind,main,LIBS="$LIBS -lbind") -- AC_CHECK_LIB(zeta,main,LIBS="$LIBS -lzeta") -+ AC_CHECK_LIB(network,main,_HAIKU_BUILD=1) - fi -+ if test "$_HAIKU_BUILD" = 1; then -+ LIBS="$LIBS -lnetwork" -+ AC_DEFINE(XP_HAIKU) -+ AC_DEFINE(__BEOS__) -+ AC_DEFINE(BONE_VERSION) -+ else -+ AC_CHECK_LIB(bind,main,LIBS="$LIBS -lbind") -+ AC_CHECK_LIB(zeta,main,LIBS="$LIBS -lzeta") -+ AC_DEFINE(BEOS_ADDON_WORKAROUND) -+ fi -+ - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wno-multichar" - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-multichar" - _MOZ_USE_RTTI=1 - USE_DEPENDENT_LIBS= - MOZ_USER_DIR="Mozilla" - ;; - - *-bsdi*) -@@ -5235,17 +5253,17 @@ fi - - dnl Remove dupes - MOZ_EXTENSIONS=`${PERL} ${srcdir}/build/unix/uniq.pl ${MOZ_EXTENSIONS}` - - dnl ======================================================== - dnl Image decoders - dnl ======================================================== - case "$target_os" in --cygwin*|mingw*|msvc*|mks*|os2*|wince*|beos*) -+cygwin*|mingw*|msvc*|mks*|os2*|wince*|beos*|haiku*) - MOZ_IMG_DECODERS_DEFAULT="$MOZ_IMG_DECODERS_DEFAULT icon" - ;; - darwin*) - if test "$MOZ_WIDGET_TOOLKIT" = "mac" -o "$MOZ_WIDGET_TOOLKIT" = "cocoa"; - then - MOZ_IMG_DECODERS_DEFAULT="$MOZ_IMG_DECODERS_DEFAULT icon" - fi - ;; -@@ -5676,17 +5694,17 @@ MOZ_ARG_ENABLE_STRING(debug, - fi - else - MOZ_DEBUG= - fi ], - MOZ_DEBUG=) - - MOZ_DEBUG_ENABLE_DEFS="-DDEBUG -D_DEBUG" - case "${target_os}" in -- beos*) -+ beos*|haiku*) - MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_${USER}" - ;; - msvc*|mks*|cygwin*|mingw*|os2*|wince*) - MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_`echo ${USERNAME} | sed -e 's| |_|g'`" - ;; - *) - MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_`$WHOAMI`" - ;; -@@ -6712,17 +6730,17 @@ mk_add_options MOZ_CO_MODULE=mozilla/oth - MOZ_LIBART_CFLAGS='-I${DIST}/include/libart_lgpl' - case "$target_os" in - msvc*|mks*|cygwin*|mingw*|wince*) - MOZ_LIBART_LIBS='$(DIST)/lib/$(LIB_PREFIX)moz_art_lgpl.$(IMPORT_LIB_SUFFIX)' - ;; - os2*) - MOZ_LIBART_LIBS='-lmoz_art -lm' - ;; -- beos*) -+ beos*|haiku*) - MOZ_LIBART_LIBS='-lmoz_art_lgpl -lroot -lbe' - ;; - *) - MOZ_LIBART_LIBS='-lmoz_art_lgpl -lm' - ;; - esac - AC_FUNC_ALLOCA - fi -@@ -7363,16 +7381,19 @@ fi # COMPILE_ENVIRONMENT - dnl Set various defines and substitutions - dnl ======================================================== - - if test "$OS_ARCH" = "OS2" -a "$VACPP" = "yes"; then - LIBS='so32dll.lib tcp32dll.lib' - elif test "$OS_ARCH" = "BeOS"; then - AC_DEFINE(XP_BEOS) - MOZ_MOVEMAIL=1 -+elif test "$OS_ARCH" = "Haiku"; then -+ AC_DEFINE(XP_BEOS) -+ MOZ_MOVEMAIL=1 - elif test "$OS_ARCH" = "Darwin"; then - AC_DEFINE(XP_UNIX) - AC_DEFINE(UNIX_ASYNC_DNS) - MOZ_MOVEMAIL=1 - elif test "$OS_ARCH" = "OpenVMS"; then - AC_DEFINE(XP_UNIX) - elif test "$OS_ARCH" != "WINNT" -a "$OS_ARCH" != "OS2" -a "$OS_ARCH" != "WINCE"; then - AC_DEFINE(XP_UNIX) -Index: mozilla/browser/app/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/browser/app/Makefile.in,v -retrieving revision 1.85.2.12 -diff -u -8 -p -r1.85.2.12 Makefile.in ---- mozilla/browser/app/Makefile.in 12 May 2008 18:25:50 -0000 1.85.2.12 -+++ mozilla/browser/app/Makefile.in 9 Feb 2009 04:00:40 -0000 -@@ -56,20 +56,24 @@ ifndef MOZ_BRANDING_DIRECTORY - PREF_JS_EXPORTS += $(srcdir)/firefox-branding.js - endif - - # hardcode en-US for the moment - AB_CD = en-US - - DEFINES += -DAB_CD=$(AB_CD) - --ifeq ($(USE_SHORT_LIBNAME), 1) -+ ifeq ($(USE_SHORT_LIBNAME), 1) -+ PROGRAM = firefox$(BIN_SUFFIX) -+ else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - PROGRAM = firefox$(BIN_SUFFIX) - else --PROGRAM = firefox-bin$(BIN_SUFFIX) -+ PROGRAM = firefox-bin$(BIN_SUFFIX) -+ endif - endif - - REQUIRES = \ - xpcom \ - $(NULL) - - CPPSRCS = nsBrowserApp.cpp - -@@ -146,17 +150,17 @@ endif - ifdef BUILD_STATIC_LIBS - RCFLAGS += -DMOZ_STATIC_BUILD - endif - ifdef DEBUG - RCFLAGS += -DDEBUG - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - BEOS_PROGRAM_RESOURCE = $(srcdir)/apprunner-beos.rsrc - ifdef BUILD_STATIC_LIBS - OS_LIBS += -ltracker -lgame - endif - endif - - ifeq ($(OS_ARCH),OS2) - RESFILE=splashos2.res -@@ -224,17 +228,17 @@ $(EXE_DEF_FILE): - @echo WinQueryProperty = PMMERGE.5450 >>$(EXE_DEF_FILE) - @echo WinRemoveProperty = PMMERGE.5451 >>$(EXE_DEF_FILE) - @echo WinSetProperty = PMMERGE.5452 >>$(EXE_DEF_FILE) - - LDFLAGS += -Zlinker /NOE - endif - endif - --ifneq (,$(filter-out OS2 WINNT,$(OS_ARCH))) -+ifneq (,$(filter-out OS2 WINNT BeOS Haiku,$(OS_ARCH))) - - firefox:: mozilla.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk - cat $< | sed -e "s|%MOZAPPDIR%|$(mozappdir)|" \ - -e "s|%MOZ_USER_DIR%|.mozilla/firefox|" \ - -e "s|%MREDIR%|$(mredir)|" > $@ - chmod +x $@ - - libs:: firefox -Index: mozilla/browser/components/migration/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/browser/components/migration/src/Makefile.in,v -retrieving revision 1.20.2.2 -diff -u -8 -p -r1.20.2.2 Makefile.in ---- mozilla/browser/components/migration/src/Makefile.in 27 Jan 2006 02:19:00 -0000 1.20.2.2 -+++ mozilla/browser/components/migration/src/Makefile.in 9 Feb 2009 04:00:42 -0000 -@@ -73,20 +73,23 @@ endif - - CPPSRCS = nsProfileMigrator.cpp \ - nsBrowserProfileMigratorUtils.cpp \ - nsNetscapeProfileMigratorBase.cpp \ - nsSeamonkeyProfileMigrator.cpp \ - nsPhoenixProfileMigrator.cpp \ - $(NULL) - --ifneq ($(OS_ARCH),BeOS) -+ifneq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += nsDogbertProfileMigrator.cpp - endif - -+ -+ -+ - ifneq ($(OS_ARCH),OS2) - CPPSRCS += nsOperaProfileMigrator.cpp - endif - - ifeq ($(OS_ARCH)_$(GNU_CXX),WINNT_) - DEFINES += -DPSTOREC_DLL=\"$(subst \,\\,$(WINDIR))\\system32\\pstorec.dll\" - - CPPSRCS += nsIEProfileMigrator.cpp \ -Index: mozilla/browser/installer/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/browser/installer/Makefile.in,v -retrieving revision 1.19.4.4 -diff -u -8 -p -r1.19.4.4 Makefile.in ---- mozilla/browser/installer/Makefile.in 6 Jun 2006 15:35:00 -0000 1.19.4.4 -+++ mozilla/browser/installer/Makefile.in 9 Feb 2009 04:00:44 -0000 -@@ -57,19 +57,23 @@ include $(topsrcdir)/config/rules.mk - - MOZ_PKG_REMOVALS = $(srcdir)/removed-files.in - - ifdef BUILD_STATIC_LIBS - ifeq (WINNT,$(OS_ARCH)) - MOZ_PKG_MANIFEST_P = $(srcdir)/windows/packages-static - else - ifneq (,$(filter-out OS2 Darwin,$(OS_ARCH))) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+MOZ_PKG_MANIFEST_P = $(srcdir)/beos/packages-static -+else - MOZ_PKG_MANIFEST_P = $(srcdir)/unix/packages-static - endif - endif -+endif - else - $(error you need a "--enable-static --disable-shared" build to create an installer) - endif - - MOZ_NONLOCALIZED_PKG_LIST = \ - xpcom \ - browser \ - $(NULL) -Index: mozilla/build/autoconf/config.guess -=================================================================== -RCS file: /cvsroot/mozilla/build/autoconf/config.guess,v -retrieving revision 1.19 -diff -u -8 -p -r1.19 config.guess ---- mozilla/build/autoconf/config.guess 18 Apr 2003 10:20:15 -0000 1.19 -+++ mozilla/build/autoconf/config.guess 9 Feb 2009 04:00:51 -0000 -@@ -1,34 +1,37 @@ - #! /bin/sh - # Attempt to guess a canonical system name. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2008-01-08' - - # This file 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Originally written by Per Bothner . - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # - # This script attempts to guess a canonical system name similar to - # config.sub. If it succeeds, it prints the system name on stdout, and - # exits with 0. Otherwise, it exits with 1. - # -@@ -48,34 +51,34 @@ Operation modes: - -v, --version print version number, then exit - - Report bugs and patches to ." - - version="\ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) -@@ -99,35 +102,36 @@ trap 'exit 1' 1 2 15 - # use `HOST_CC' if defined, but it is deprecated. - - # Portable tmp directory creation inspired by the Autoconf team. - - set_cc_for_build=' - trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; - trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; - : ${TMPDIR=/tmp} ; -- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || -+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || -+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; - dummy=$tmp/dummy ; - tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; - case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; --esac ;' -+esac ; set_cc_for_build= ;' - - # This is needed to find uname on a Pyramid OSx when run in the BSD universe. - # (ghazi@noc.rutgers.edu 1994-08-24) - if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH - fi - - UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -@@ -152,16 +156,17 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; -+ sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ -@@ -190,60 +195,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" -- exit 0 ;; -- amiga:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- arc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- hp300:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mac68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- macppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme88k:OpenBSD:*:*) -- echo m88k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvmeppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- pmax:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sgi:OpenBSD:*:*) -- echo mipseb-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sun3:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- wgrisc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:OpenBSD:*:*) -- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` -+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} -+ exit ;; -+ *:ekkoBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} -+ exit ;; -+ *:SolidBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} -+ exit ;; -+ macppc:MirBSD:*:*) -+ echo powerpc-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; -+ *:MirBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; - alpha:OSF1:*:*) -- if test $UNAME_RELEASE = "V4.0"; then -+ case $UNAME_RELEASE in -+ *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` -- fi -+ ;; -+ *5.*) -+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -+ ;; -+ esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; -@@ -271,147 +258,163 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac -+ # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. -- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -- exit 0 ;; -+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -+ exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix -- exit 0 ;; -+ exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 -- exit 0 ;; -+ exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 -- exit 0;; -+ exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos -- exit 0 ;; -+ exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos -- exit 0 ;; -+ exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition -- exit 0 ;; -+ exit ;; -+ *:z/VM:*:*) -+ echo s390-ibm-zvmoe -+ exit ;; -+ *:OS400:*:*) -+ echo powerpc-ibm-os400 -+ exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} -- exit 0;; -+ exit ;; -+ arm:riscos:*:*|arm:RISCOS:*:*) -+ echo arm-unknown-riscos -+ exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp -- exit 0;; -+ exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi -- exit 0 ;; -+ exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 -- exit 0 ;; -- DRS?6000:UNIX_SV:4.2*:7*) -+ exit ;; -+ DRS?6000:unix:4.0:6*) -+ echo sparc-icl-nx6 -+ exit ;; -+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in -- sparc) echo sparc-icl-nx7 && exit 0 ;; -+ sparc) echo sparc-icl-nx7; exit ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -- i86pc:SunOS:5.*:*) -+ exit ;; -+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` -- exit 0 ;; -+ exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac -- exit 0 ;; -+ exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ m68k:machten:*:*) -+ echo m68k-apple-machten${UNAME_RELEASE} -+ exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 -- exit 0 ;; -+ exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #ifdef __cplusplus - #include /* for printf() prototype */ - int main (int argc, char *argv[]) { - #else - int main (argc, argv) int argc; char *argv[]; { -@@ -425,145 +428,150 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c \ -- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ -- && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && -+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && -+ SYSTEM_NAME=`$dummy $dummyarg` && -+ { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax -- exit 0 ;; -+ exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix -- exit 0 ;; -+ exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 -- exit 0 ;; -+ exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 -- exit 0 ;; -+ exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 -- exit 0 ;; -+ exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 -- exit 0 ;; -+ exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd -- exit 0 ;; -+ exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` -- exit 0 ;; -+ exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. -- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' -+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix -- exit 0 ;; -+ exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -- echo rs6000-ibm-aix3.2.5 -+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` -+ then -+ echo "$SYSTEM_NAME" -+ else -+ echo rs6000-ibm-aix3.2.5 -+ fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi -- exit 0 ;; -- *:AIX:*:[45]) -+ exit ;; -+ *:AIX:*:[456]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix -- exit 0 ;; -+ exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 -- exit 0 ;; -+ exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to -- exit 0 ;; # report: romp-ibm BSD 4.3 -+ exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx -- exit 0 ;; -+ exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 -- exit 0 ;; -+ exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd -- exit 0 ;; -+ exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 -- exit 0 ;; -+ exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` -@@ -615,31 +623,41 @@ EOF - } - EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then -- # avoid double evaluation of $set_cc_for_build -- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build -- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null -+ eval $set_cc_for_build -+ -+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating -+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler -+ # generating 64-bit code. GNU and HP use different nomenclature: -+ # -+ # $ CC_FOR_BUILD=cc ./config.guess -+ # => hppa2.0w-hp-hpux11.23 -+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess -+ # => hppa64-hp-hpux11.23 -+ -+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | -+ grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); -@@ -657,181 +675,224 @@ EOF - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 -- exit 0 ;; -+ exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd -- exit 0 ;; -+ exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd -- exit 0 ;; -+ exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix -- exit 0 ;; -+ exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf -- exit 0 ;; -+ exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf -- exit 0 ;; -+ exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi -- exit 0 ;; -+ exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites -- exit 0 ;; -+ exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - *:UNICOS/mp:*:*) -- echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -+ exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -- exit 0 ;; -+ exit ;; -+ 5000:UNIX_System_V:4.*:*) -+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -+ exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:FreeBSD:*:*) -- # Determine whether the default compiler uses glibc. -- eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -- #include -- #if __GLIBC__ >= 2 -- LIBC=gnu -- #else -- LIBC= -- #endif --EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} -- exit 0 ;; -+ case ${UNAME_MACHINE} in -+ pc98) -+ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ amd64) -+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ *) -+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ esac -+ exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin -- exit 0 ;; -- i*:MINGW*:*) -+ exit ;; -+ *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 -- exit 0 ;; --#### MozillaHack --# Netscape's hacked uname -- xx:WINNT:* | xx:WIN95:*) -- echo i586-pc-msvc -- exit 0 ;; --### End MozillaHack -+ exit ;; -+ i*:windows32*:*) -+ # uname -m includes "-pc" on this system. -+ echo ${UNAME_MACHINE}-mingw32 -+ exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 -- exit 0 ;; -- x86:Interix*:3*) -- echo i586-pc-interix3 -- exit 0 ;; -+ exit ;; -+ *:Interix*:[3456]*) -+ case ${UNAME_MACHINE} in -+ x86) -+ echo i586-pc-interix${UNAME_RELEASE} -+ exit ;; -+ EM64T | authenticamd) -+ echo x86_64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ IA64) -+ echo ia64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks -- exit 0 ;; -+ exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix -- exit 0 ;; -+ exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin -- exit 0 ;; -+ exit ;; -+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) -+ echo x86_64-unknown-cygwin -+ exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin -- exit 0 ;; -+ exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - *:GNU:*:*) -+ # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` -- exit 0 ;; -+ exit ;; -+ *:GNU/*:*:*) -+ # other systems with GNU libc and userland -+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu -+ exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix -- exit 0 ;; -+ exit ;; - arm*:Linux:*:*) -+ eval $set_cc_for_build -+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ -+ | grep -q __ARM_EABI__ -+ then -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ else -+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ fi -+ exit ;; -+ avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ cris:Linux:*:*) -+ echo cris-axis-linux-gnu -+ exit ;; -+ crisv32:Linux:*:*) -+ echo crisv32-axis-linux-gnu -+ exit ;; -+ frv:Linux:*:*) -+ echo frv-unknown-linux-gnu -+ exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ m32r*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) -@@ -839,62 +900,78 @@ EOF - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; -+ or32:Linux:*:*) -+ echo or32-unknown-linux-gnu -+ exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -- exit 0 ;; -+ exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac -- exit 0 ;; -+ exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux -- exit 0 ;; -+ exit ;; -+ sh64*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ vax:Linux:*:*) -+ echo ${UNAME_MACHINE}-dec-linux-gnu -+ exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ xtensa*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g -@@ -902,99 +979,113 @@ EOF - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" -- exit 0 ;; -+ exit ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" -- exit 0 ;; -+ exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" -- exit 0 ;; -+ exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else -- #ifdef __INTEL_COMPILER -+ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif -+ #ifdef __dietlibc__ -+ LIBC=dietlibc -+ #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 -- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^LIBC/{ -+ s: ::g -+ p -+ }'`" -+ test x"${LIBC}" != x && { -+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" -+ exit -+ } -+ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 -- exit 0 ;; -+ exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx -- exit 0 ;; -+ exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop -- exit 0 ;; -+ exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos -- exit 0 ;; -+ exit ;; -+ i*86:syllable:*:*) -+ echo ${UNAME_MACHINE}-pc-syllable -+ exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi -- exit 0 ;; -- i*86:*:5:[78]*) -+ exit ;; -+ i*86:*:5:[678]*) -+ # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ -@@ -1002,214 +1093,248 @@ EOF - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi -- exit 0 ;; -+ exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 -- exit 0 ;; -+ exit ;; - paragon:*:*:*) - echo i860-intel-osf1 -- exit 0 ;; -+ exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi -- exit 0 ;; -+ exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv -- exit 0 ;; -+ exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv -- exit 0 ;; -+ exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix -- exit 0 ;; -- M68*:*:R3V[567]*:*) -- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; -- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0) -+ exit ;; -+ M68*:*:R3V[5678]*:*) -+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; -+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4.3${OS_REL} && exit 0 -+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4 && exit 0 ;; -+ && { echo i486-ncr-sysv4; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 -- exit 0 ;; -+ exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi -- exit 0 ;; -+ exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 -- exit 0 ;; --#### MozillaHack -- *:*OpenVMS*:*:*) -- case "${UNAME_SYSTEM}" in -- POSIX_for_OpenVMS_AXP) echo alpha-dec-openvmsposix ;; -- POSIX_for_OpenVMS_VAX) echo vax-dec-openvmsposix ;; -- OpenVMS) echo alpha-dec-openvms ;; -- *) echo unknown-dec-openvms ;; -- esac -- exit 0 ;; --#### End MozillaHack -+ exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 -- exit 0 ;; -+ exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 -- exit 0 ;; -+ exit ;; -+ i*86:VOS:*:*) -+ # From Paul.Green@stratus.com. -+ echo ${UNAME_MACHINE}-stratus-vos -+ exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos -- exit 0 ;; -+ exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 -- exit 0 ;; -+ exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos -- exit 0 ;; -+ exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos -- exit 0 ;; -+ exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos -- exit 0 ;; -+ 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 0 ;; -+ exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ SX-7:SUPER-UX:*:*) -+ echo sx7-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8:SUPER-UX:*:*) -+ echo sx8-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8R:SUPER-UX:*:*) -+ echo sx8r-nec-superux${UNAME_RELEASE} -+ exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Darwin:*:*) -- case `uname -p` in -- *86) UNAME_PROCESSOR=i686 ;; -- powerpc) UNAME_PROCESSOR=powerpc ;; -+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown -+ case $UNAME_PROCESSOR in -+ unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:QNX:*:4*) - echo i386-pc-qnx -- exit 0 ;; -- NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) -+ exit ;; -+ NSE-?:NONSTOP_KERNEL:*:*) -+ echo nse-tandem-nsk${UNAME_RELEASE} -+ exit ;; -+ NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux -- exit 0 ;; -+ exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv -- exit 0 ;; -+ exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 -- exit 0 ;; -+ exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 -- exit 0 ;; -+ exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex -- exit 0 ;; -+ exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 -- exit 0 ;; -+ exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 -- exit 0 ;; -+ exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 -- exit 0 ;; -+ exit ;; - *:ITS:*:*) - echo pdp10-unknown-its -- exit 0 ;; -+ exit ;; -+ SEI:*:*:SEIUX) -+ echo mips-sei-seiux${UNAME_RELEASE} -+ exit ;; -+ *:DragonFly:*:*) -+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` -+ exit ;; -+ *:*VMS:*:*) -+ UNAME_MACHINE=`(uname -p) 2>/dev/null` -+ case "${UNAME_MACHINE}" in -+ A*) echo alpha-dec-vms ; exit ;; -+ I*) echo ia64-dec-vms ; exit ;; -+ V*) echo vax-dec-vms ; exit ;; -+ esac ;; -+ *:XENIX:*:SysV) -+ echo i386-pc-xenix -+ exit ;; -+ i*86:skyos:*:*) -+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' -+ exit ;; -+ i*86:rdos:*:*) -+ echo ${UNAME_MACHINE}-pc-rdos -+ exit ;; - esac - - #echo '(No uname command or uname output not recognized.)' 1>&2 - #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - - eval $set_cc_for_build - cat >$dummy.c </dev/null && $dummy && exit 0 -+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - - # Apollos put the system type in the environment. - --test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } -+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - - # Convex versions that predate uname can use getsysinfo(1) - - if [ -x /usr/convex/getsysinfo ] - then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - c34*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - c38*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - c4*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - esac - fi - - cat >&2 < in order to provide the needed - information to handle your system. - - config.guess timestamp = $timestamp - -Index: mozilla/build/autoconf/config.sub -=================================================================== -RCS file: /cvsroot/mozilla/build/autoconf/config.sub,v -retrieving revision 1.20 -diff -u -8 -p -r1.20 config.sub ---- mozilla/build/autoconf/config.sub 18 Apr 2003 10:20:15 -0000 1.20 -+++ mozilla/build/autoconf/config.sub 9 Feb 2009 04:00:53 -0000 -@@ -1,14 +1,15 @@ - #! /bin/sh - # Configuration validation subroutine script. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2008-01-16' - - # This file is (in principle) common to ALL GNU software. - # The presence of a machine in this file suggests that SOME GNU software - # can handle that machine. It does not imply ALL GNU software can. - # - # This file 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 -@@ -16,24 +17,25 @@ timestamp='2003-02-22' - # - # 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., 59 Temple Place - Suite 330, --# Boston, MA 02111-1307, USA. -- -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. -+# - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # - # Configuration subroutine to validate and canonicalize a configuration type. - # Supply the specified configuration type as an argument. - # If it is invalid, we print an error message on stderr and exit with code 1. - # Otherwise, we print the canonical config type on stdout and succeed. - -@@ -65,46 +67,46 @@ Operation modes: - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - - Report bugs and patches to ." - - version="\ - GNU config.sub ($timestamp) - --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 -- exit 0;; -+ exit ;; - - * ) - break ;; - esac - done - - case $# in - 0) echo "$me: missing argument$help" >&2 -@@ -113,17 +115,19 @@ case $# in - *) echo "$me: too many arguments$help" >&2 - exit 1;; - esac - - # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). - # Here we must recognize all the valid KERNEL-OS combinations. - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` - case $maybe_os in -- nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) -+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ -+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ -+ storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi -@@ -139,17 +143,17 @@ case $os in - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -- -apple | -axis) -+ -apple | -axis | -knuth | -cray) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) -@@ -164,32 +168,40 @@ case $os in - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; -+ -sco6) -+ os=-sco5v6 -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; -+ -sco5v6*) -+ # Don't forget version if it is 3.2v4 or newer. -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) -@@ -219,171 +231,196 @@ case $os in - os=-mint - ;; - esac - - # Decode aliases for certain CPU-COMPANY combinations. - case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. --#### MozillaHack --# mips*el --#### End MozillaHack - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ -- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ -- | clipper \ -+ | am33_2.0 \ -+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ -+ | bfin \ -+ | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ -- | fr30 | frv \ -+ | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ -- | ip2k \ -- | m32r | m68000 | m68k | m88k | mcore \ -- | mips | mipsbe | mipseb | mips*el | mipsle \ -+ | ip2k | iq2000 \ -+ | m32c | m32r | m32rle | m68000 | m68k | m88k \ -+ | maxq | mb | microblaze | mcore | mep \ -+ | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64vr | mips64vrel \ - | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ -+ | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ -+ | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ -+ | mt \ - | msp430 \ -+ | nios | nios2 \ - | ns16k | ns32k \ -- | openrisc | or32 \ -+ | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ -- | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ -+ | score \ -+ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ -- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ -- | strongarm \ -- | tahoe | thumb | tic80 | tron \ -+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ -+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ -+ | spu | strongarm \ -+ | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ -- | x86 | xscale | xstormy16 | xtensa \ -+ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; -+ ms1) -+ basic_machine=mt-unknown -+ ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. --#### MozillaHack --# mips*el --#### End MozillaHack - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ -- | avr-* \ -- | bs2000-* \ -+ | avr-* | avr32-* \ -+ | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ -- | clipper-* | cydra-* \ -+ | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ -- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ -+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ -- | ip2k-* \ -- | m32r-* \ -+ | ip2k-* | iq2000-* \ -+ | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -- | m88110-* | m88k-* | mcore-* \ -- | mips-* | mipsbe-* | mipseb-* | mips*el-* | mipsle-* \ -+ | m88110-* | m88k-* | maxq-* | mcore-* \ -+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ -+ | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ -+ | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ -+ | mmix-* \ -+ | mt-* \ - | msp430-* \ -- | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ -+ | nios-* | nios2-* \ -+ | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ -- | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ -+ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ -- | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ -- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ -+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ -+ | sparclite-* \ -+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ -- | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ -- | xtensa-* \ -+ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ -+ | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-*) - ;; -+ # Recognize the basic CPU types without company name, with glob match. -+ xtensa*) -+ basic_machine=$basic_machine-unknown -+ ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; -+ abacus) -+ basic_machine=abacus-unknown -+ ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; -+ amd64) -+ basic_machine=x86_64-pc -+ ;; -+ amd64-*) -+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) -@@ -405,16 +442,24 @@ case $basic_machine in - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; -+ blackfin) -+ basic_machine=bfin-unknown -+ os=-linux -+ ;; -+ blackfin-*) -+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; -@@ -433,22 +478,37 @@ case $basic_machine in - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; -+ craynv) -+ basic_machine=craynv-cray -+ os=-unicosmp -+ ;; -+ cr16) -+ basic_machine=cr16-unknown -+ os=-elf -+ ;; - crds | unos) - basic_machine=m68k-crds - ;; -+ crisv32 | crisv32-* | etraxfs*) -+ basic_machine=crisv32-axis -+ ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; -+ crx) -+ basic_machine=crx-unknown -+ os=-elf -+ ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec -@@ -461,16 +521,20 @@ case $basic_machine in - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; -+ djgpp) -+ basic_machine=i586-pc -+ os=-msdosdjgpp -+ ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; -@@ -611,66 +675,71 @@ case $basic_machine in - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; -+ m68knommu) -+ basic_machine=m68k-unknown -+ os=-linux -+ ;; -+ m68knommu-*) -+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; --#### MozillaHack -- i386-msvc | msvc) -- basic_machine=i386-pc -- os=-msvc -+ mingw32ce) -+ basic_machine=arm-unknown -+ os=-mingw32ce - ;; --#### End MozillaHack - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; -- mmix*) -- basic_machine=mmix-knuth -- os=-mmixware -- ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; -+ ms1-*) -+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` -+ ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; -@@ -729,30 +798,29 @@ case $basic_machine in - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; -- nv1) -- basic_machine=nv1-cray -- os=-unicosmp -- ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; -- or32 | or32-*) -+ openrisc | openrisc-*) - basic_machine=or32-unknown -- os=-coff -+ ;; -+ os400) -+ basic_machine=powerpc-ibm -+ os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k -@@ -760,43 +828,63 @@ case $basic_machine in - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; -+ parisc) -+ basic_machine=hppa-unknown -+ os=-linux -+ ;; -+ parisc-*) -+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; -+ pc98) -+ basic_machine=i386-pc -+ ;; -+ pc98-*) -+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; -- pentiumii | pentium2) -+ pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; -+ pentium4) -+ basic_machine=i786-pc -+ ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -- pentiumii-* | pentium2-*) -+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -+ pentium4-*) -+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` -@@ -819,16 +907,20 @@ case $basic_machine in - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; -+ rdos) -+ basic_machine=i386-pc -+ os=-rdos -+ ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) -@@ -845,23 +937,37 @@ case $basic_machine in - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; -+ sde) -+ basic_machine=mipsisa32-sde -+ os=-elf -+ ;; -+ sei) -+ basic_machine=mips-sei -+ os=-seiux -+ ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; -+ sh5el) -+ basic_machine=sh5le-unknown -+ ;; -+ sh64) -+ basic_machine=sh64-unknown -+ ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; -@@ -926,45 +1032,49 @@ case $basic_machine in - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; -- tic4x | c4x*) -- basic_machine=tic4x-unknown -- os=-coff -- ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; -+ tile*) -+ basic_machine=tile-unknown -+ os=-linux-gnu -+ ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; -+ tpf) -+ basic_machine=s390x-ibm -+ os=-tpf -+ ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; -@@ -998,16 +1108,20 @@ case $basic_machine in - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; -+ xbox) -+ basic_machine=i686-pc -+ os=-mingw32 -+ ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) -@@ -1028,39 +1142,39 @@ case $basic_machine in - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; -+ mmix) -+ basic_machine=mmix-knuth -+ ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; -- sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) -+ sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; -- sh64) -- basic_machine=sh64-unknown -- ;; -- sparc | sparcv9 | sparcv9b) -+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; -@@ -1116,40 +1230,40 @@ case $os in - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. --#### MozillaHack --# msvc --#### End MozillaHack - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ -- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ -- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ -+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ -+ | -openbsd* | -solidbsd* \ -+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ -+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ -+ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ -+ | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ -- | -msvc* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ -- | -powermax* | -dnix*) -+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ -+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os -@@ -1157,34 +1271,40 @@ case $os in - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ -- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ -+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; -+ -linux-dietlibc) -+ os=-linux-dietlibc -+ ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; -+ -os400*) -+ os=-os400 -+ ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf -@@ -1196,16 +1316,19 @@ case $os in - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; -+ -syllable*) -+ os=-syllable -+ ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova -@@ -1218,16 +1341,19 @@ case $os in - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; -+ -tpf*) -+ os=-tpf -+ ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 -@@ -1254,16 +1380,19 @@ case $os in - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; -+ -zvmoe) -+ os=-zvmoe -+ ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -@@ -1276,25 +1405,34 @@ else - - # Note that if you're going to try to match "-MANUFACTURER" here (say, - # "-sun"), then you have to tell the case statement up towards the top - # that MANUFACTURER isn't an operating system. Otherwise, code above - # will signal an error saying that MANUFACTURER isn't an operating - # system, and we'll never get to this point. - - case $basic_machine in -+ score-*) -+ os=-elf -+ ;; -+ spu-*) -+ os=-elf -+ ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; -+ c4x-* | tic4x-*) -+ os=-coff -+ ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) -@@ -1310,16 +1448,19 @@ case $basic_machine in - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; -+ mep-*) -+ os=-elf -+ ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff -@@ -1328,19 +1469,25 @@ case $basic_machine in - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; -+ *-haiku) -+ os=-haiku -+ ;; - *-ibm) - os=-aix - ;; -+ *-knuth) -+ os=-mmixware -+ ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf -@@ -1463,19 +1610,25 @@ case $basic_machine in - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; -+ -os400*) -+ vendor=ibm -+ ;; - -ptx*) - vendor=sequent - ;; -+ -tpf*) -+ vendor=ibm -+ ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi -@@ -1490,16 +1643,16 @@ case $basic_machine in - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; - esac - - echo $basic_machine$os --exit 0 -+exit - - # Local variables: - # eval: (add-hook 'write-file-hooks 'time-stamp) - # time-stamp-start: "timestamp='" - # time-stamp-format: "%:y-%02m-%02d" - # time-stamp-end: "'" - # End: -Index: mozilla/calendar/base/content/preferences/preferences.xul -=================================================================== -RCS file: /cvsroot/mozilla/calendar/base/content/preferences/preferences.xul,v -retrieving revision 1.1.2.6 -diff -u -8 -p -r1.1.2.6 preferences.xul ---- mozilla/calendar/base/content/preferences/preferences.xul 14 Mar 2007 09:08:19 -0000 1.1.2.6 -+++ mozilla/calendar/base/content/preferences/preferences.xul 9 Feb 2009 04:00:56 -0000 -@@ -66,17 +66,22 @@ - #ifdef XP_UNIX - #ifdef XP_MACOSX - style="&prefWindow.styleMac;"> - #else - title="&prefWindow.titleGNOME;" - style="&prefWindow.styleGNOME;"> - #endif - #endif -+#ifdef XP_BEOS -+ title="&prefWindow.titleGNOME;" -+ style="&prefWindow.styleGNOME;"> - #endif -+#endif -+ - - - - - -Index: mozilla/calendar/libical/src/libical/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/calendar/libical/src/libical/Makefile.in,v -retrieving revision 1.3.6.1 -diff -u -8 -p -r1.3.6.1 Makefile.in ---- mozilla/calendar/libical/src/libical/Makefile.in 27 Dec 2007 10:03:57 -0000 1.3.6.1 -+++ mozilla/calendar/libical/src/libical/Makefile.in 9 Feb 2009 04:00:58 -0000 -@@ -84,17 +84,17 @@ CSRCS = \ - $(NULL) - - ifeq (,$(filter -DHAVE_SNPRINTF=1,$(ACDEFINES))) - CSRCS += vsnprintf.c - endif - - DEFINES += -DHAVE_CONFIG_H - --ifneq (,$(filter BeOS Darwin OpenVMS NetBSD FreeBSD,$(OS_ARCH))) -+ifneq (,$(filter BeOS Haiku Darwin OpenVMS NetBSD FreeBSD,$(OS_ARCH))) - DEFINES += -D__USE_BSD=1 - endif - - LOCAL_INCLUDES = -I$(srcdir)/../.. -I$(srcdir) -I. - - SRCS_IN_OBJDIR = 1 - - include $(topsrcdir)/config/rules.mk -Index: mozilla/calendar/sunbird/app/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/calendar/sunbird/app/Makefile.in,v -retrieving revision 1.21.2.23 -diff -u -8 -p -r1.21.2.23 Makefile.in ---- mozilla/calendar/sunbird/app/Makefile.in 4 May 2008 01:32:07 -0000 1.21.2.23 -+++ mozilla/calendar/sunbird/app/Makefile.in 9 Feb 2009 04:01:06 -0000 -@@ -79,18 +79,22 @@ include $(topsrcdir)/config/rules.mk - else - # Build a binary bootstrapping with XRE_main - - MOZILLA_INTERNAL_API = 1 - - ifeq ($(USE_SHORT_LIBNAME), 1) - PROGRAM = sunbird$(BIN_SUFFIX) - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+PROGRAM = sunbird$(BIN_SUFFIX) -+else - PROGRAM = sunbird-bin$(BIN_SUFFIX) - endif -+endif - - REQUIRES = \ - appshell \ - string \ - xpcom \ - xulapp \ - $(NULL) - -@@ -189,17 +193,17 @@ endif - ifdef BUILD_STATIC_LIBS - RCFLAGS += -DMOZ_STATIC_BUILD - endif - ifdef DEBUG - RCFLAGS += -DDEBUG - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - ifdef BUILD_STATIC_LIBS - OS_LIBS += -ltracker -lgame - endif - endif - - ifeq ($(OS_ARCH),OS2) - RESFILE=splashos2.res - RCFLAGS += -DMOZ_SUNBIRD -@@ -261,17 +265,17 @@ $(EXE_DEF_FILE): - @echo WinQueryProperty = PMMERGE.5450 >>$(EXE_DEF_FILE) - @echo WinRemoveProperty = PMMERGE.5451 >>$(EXE_DEF_FILE) - @echo WinSetProperty = PMMERGE.5452 >>$(EXE_DEF_FILE) - - LDFLAGS += -Zlinker /NOE - endif - endif - --ifneq (,$(filter-out OS2 WINNT,$(OS_ARCH))) -+ifneq (,$(filter-out OS2 WINNT BeOS Haiku,$(OS_ARCH))) - - sunbird:: mozilla.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk - cat $< | sed -e "s|%MOZAPPDIR%|$(mozappdir)|" \ - -e "s|%MOZ_USER_DIR%|.mozilla/sunbird|" \ - -e "s|%MREDIR%|$(mredir)|" > $@ - chmod +x $@ - - libs:: sunbird -Index: mozilla/config/config.mk -=================================================================== -RCS file: /cvsroot/mozilla/config/config.mk,v -retrieving revision 3.337.2.12 -diff -u -8 -p -r3.337.2.12 config.mk ---- mozilla/config/config.mk 23 Nov 2007 21:12:26 -0000 3.337.2.12 -+++ mozilla/config/config.mk 9 Feb 2009 04:01:20 -0000 -@@ -105,19 +105,16 @@ AUTOCONF_TOOLS = $(topsrcdir)/build/auto - - ifeq ($(OS_ARCH),QNX) - ifeq ($(OS_TARGET),NTO) - LD := qcc -Vgcc_ntox86 -nostdlib - else - LD := $(CC) - endif - endif --ifeq ($(OS_ARCH),BeOS) --BEOS_ADDON_WORKAROUND = 1 --endif - - # - # Strip off the excessively long version numbers on these platforms, - # but save the version to allow multiple versions of the same base - # platform to be built in the same tree. - # - ifneq (,$(filter FreeBSD HP-UX IRIX Linux NetBSD OpenBSD OSF1 SunOS,$(OS_ARCH))) - OS_RELEASE := $(basename $(OS_RELEASE)) -Index: mozilla/config/rules.mk -=================================================================== -RCS file: /cvsroot/mozilla/config/rules.mk,v -retrieving revision 3.487.2.9 -diff -u -8 -p -r3.487.2.9 rules.mk ---- mozilla/config/rules.mk 18 Dec 2007 21:33:08 -0000 3.487.2.9 -+++ mozilla/config/rules.mk 9 Feb 2009 04:01:24 -0000 -@@ -512,17 +512,17 @@ ifeq ($(OS_ARCH),Linux) - ifdef IS_COMPONENT - EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic - endif - endif - - # - # BeOS: add -Bsymbolic flag for components - # --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter BeOS Haiku,$(OS_ARCH))) - ifdef IS_COMPONENT - EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic - endif - endif - - # - # MINGW32 - # -@@ -672,19 +672,23 @@ ifdef BEOS_ADDON_WORKAROUND - ( cd $(FINAL_TARGET)/components && $(CC) -nostart -o $(SHARED_LIBRARY).stub $(SHARED_LIBRARY) ) - endif - else # ! IS_COMPONENT - ifneq (,$(filter OS2 WINNT WINCE,$(OS_ARCH))) - $(INSTALL) $(IFLAGS2) $(IMPORT_LIBRARY) $(DIST)/lib - else - $(INSTALL) $(IFLAGS2) $(SHARED_LIBRARY) $(DIST)/lib - endif -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) $(IFLAGS2) $(SHARED_LIBRARY) $(FINAL_TARGET)/lib -+else - $(INSTALL) $(IFLAGS2) $(SHARED_LIBRARY) $(FINAL_TARGET) -+endif - ifdef BEOS_ADDON_WORKAROUND -- ( cd $(FINAL_TARGET) && $(CC) -nostart -o $(SHARED_LIBRARY).stub $(SHARED_LIBRARY) ) -+ ( cd $(FINAL_TARGET)/lib && $(CC) -nostart -o $(SHARED_LIBRARY).stub $(SHARED_LIBRARY) ) - endif - endif # IS_COMPONENT - endif # SHARED_LIBRARY - ifdef PROGRAM - $(INSTALL) $(IFLAGS2) $(PROGRAM) $(FINAL_TARGET) - endif - ifdef SIMPLE_PROGRAMS - $(INSTALL) $(IFLAGS2) $(SIMPLE_PROGRAMS) $(FINAL_TARGET) -@@ -822,17 +826,17 @@ endif # OS2 - endif # WINCE - - ifdef ENABLE_STRIP - $(STRIP) $@ - endif - ifdef MOZ_POST_PROGRAM_COMMAND - $(MOZ_POST_PROGRAM_COMMAND) $@ - endif --ifeq ($(OS_ARCH),BeOS) -+ifneq (,$(filter BeOS Haiku,$(OS_ARCH))) - ifdef BEOS_PROGRAM_RESOURCE - xres -o $@ $(BEOS_PROGRAM_RESOURCE) - mimeset $@ - endif - endif # BeOS - - $(HOST_PROGRAM): $(HOST_PROGOBJS) $(HOST_LIBS_DEPS) $(HOST_EXTRA_DEPS) Makefile Makefile.in - ifeq ($(MOZ_OS2_TOOLS),VACPP) -Index: mozilla/directory/c-sdk/build.mk -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/build.mk,v -retrieving revision 5.0.2.15.4.1 -diff -u -8 -p -r5.0.2.15.4.1 build.mk ---- mozilla/directory/c-sdk/build.mk 3 Feb 2006 14:44:29 -0000 5.0.2.15.4.1 -+++ mozilla/directory/c-sdk/build.mk 9 Feb 2009 04:01:33 -0000 -@@ -437,17 +437,17 @@ endif #!os2 - - ifeq ($(OS_ARCH), OSF1) - # The linker on OSF/1 gets confused if it finds an so_locations file - # that doesn't meet its expectations, so we arrange to remove it before - # linking. - SO_FILES_TO_REMOVE=so_locations - endif - --ifneq (,$(filter BeOS Darwin NetBSD,$(OS_ARCH))) -+ifneq (,$(filter BeOS Haiku Darwin NetBSD,$(OS_ARCH))) - LINK_DLL = $(MKSHLIB) $(OBJS) - endif - - ifeq ($(OS_ARCH), HP-UX) - # On HPUX, we need a couple of changes: - # 1) Use the C++ compiler for linking, which will pass the +eh flag on down to the - # linker so the correct exception-handling-aware libC gets used (libnshttpd.sl - # needs this). -Index: mozilla/directory/c-sdk/configure.in -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/configure.in,v -retrieving revision 5.0.2.34.4.3 -diff -u -8 -p -r5.0.2.34.4.3 configure.in ---- mozilla/directory/c-sdk/configure.in 11 Jul 2007 20:43:19 -0000 5.0.2.34.4.3 -+++ mozilla/directory/c-sdk/configure.in 9 Feb 2009 04:01:39 -0000 -@@ -355,17 +355,17 @@ fi - if test -z "$SKIP_PATH_CHECKS"; then - AC_PATH_PROG(WHOAMI, $WHOAMI whoami, echo not_whoami) - fi - - if test -n "$MOZ_DEBUG"; then - AC_DEFINE(DEBUG) - DEFINES="$DEFINES -UNDEBUG" - case "${target_os}" in -- beos*) -+ beos*|haiku*) - DEFINES="$DEFINES -DDEBUG_${USER}" - ;; - msvc*|mks*|cygwin*|mingw*|os2*) - DEFINES="$DEFINES -DDEBUG_`echo ${USERNAME} | sed -e 's| |_|g'`" - ;; - *) - DEFINES="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_`$WHOAMI`" - ;; -@@ -728,17 +728,17 @@ case "$host" in - *-cygwin*|*-msvc*|*-mks*) - CYGWIN_WRAPPER='sh $(topsrcdir)/config/cygwin-wrapper' - NSINSTALL='$(CYGWIN_WRAPPER) nsinstall' - if test "`${PERL} -v | grep -c cygwin 2>/dev/null`" = 0; then - PERL='$(CYGWIN_WRAPPER) perl' - fi - WIN_TOP_SRC=`cygpath -a -w $srcdir | sed -e 's|\\\\|/|g'` - ;; --*-beos*) -+*-beos*|*-haiku*) - HOST_CFLAGS="$HOST_CFLAGS -DXP_BEOS -DBeOS -DBEOS -D_POSIX_SOURCE" - ;; - *os2*) - ;; - *) - HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX" - ;; - esac -@@ -807,34 +807,52 @@ case "$target" in - else - MDCPUCFG_H=_aix32.cfg - fi - fi - PR_MD_CSRCS=aix.c - RESOLVE_LINK_SYMBOLS=1 - ;; - --*-beos*) -+*-beos*|*-haiku*) - AC_DEFINE(XP_BEOS) - AC_DEFINE(BeOS) - AC_DEFINE(BEOS) - AC_DEFINE(_POSIX_SOURCE) -+ DSO_CFLAGS=-fPIC - DSO_LDOPTS=-nostart -+ - MDCPUCFG_H=_beos.cfg - USE_BTHREADS=1 - PR_MD_ARCH_DIR=beos - RESOLVE_LINK_SYMBOLS=1 -+ -+ _HAIKU_BUILD=0 -+ AC_CHECK_LIB(network,main,_HAIKU_BUILD=1) -+ if test "$_HAIKU_BUILD" = 1; then -+ OS_LIBS="$OS_LIBS -lnetwork" -+ AC_DEFINE(XP_HAIKU) -+ AC_DEFINE(BONE_VERSION) -+ else -+ AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) -+ fi -+ -+ -+ - case "${target_cpu}" in - i*86) -- _OPTIMIZE_FLAGS=-O2 -- _DEBUG_FLAGS='-gdwarf-2 -O0' -+ AC_DEFINE(i586) -+ CPU_ARCH=i586 -+ _OPTIMIZE_FLAGS=-O3 -+ _DEBUG_FLAGS='-gdwarf-2 -O0 -fno-inline' - MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@' -- AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) - ;; - powerpc) -+ AC_DEFINE(ppc) -+ CPU_ARCH=ppc - CC=mwcc - CCC=mwcc - LD=mwld - DSO_LDOPTS='-xms -export pragma -init _init_routine_ -term _term_routine_ -lroot -lnet /boot/develop/lib/ppc/glue-noinit.a /boot/develop/lib/ppc/init_term_dyn.o /boot/develop/lib/ppc/start_dyn.o' - _OPTIMIZE_FLAGS=-O2 - _DEBUG_FLAGS='-g -O0' - ;; - esac -@@ -2090,17 +2108,17 @@ AC_ARG_ENABLE(nspr-threads, - [ --enable-nspr-threads Build using classic nspr threads], - [ if test "$enableval" = "yes"; then - USE_PTHREADS= - USE_USER_PTHREADS= - USE_NSPR_THREADS=1 - fi]) - - case "$target" in --*-beos*) -+*-beos*|*-haiku*) - AC_ARG_WITH(bthreads, - [ --with-bthreads Use system bthreads library as thread subsystem (BeOS only)], - [ if test "$withval" = "yes"; then - USE_BTHREADS=1 - USE_USER_PTHREADS= - USE_PTHREADS= - fi]) - ;; -Index: mozilla/directory/c-sdk/config/autoconf/config.guess -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/config/autoconf/config.guess,v -retrieving revision 5.0.2.2 -diff -u -8 -p -r5.0.2.2 config.guess ---- mozilla/directory/c-sdk/config/autoconf/config.guess 18 Apr 2003 10:20:22 -0000 5.0.2.2 -+++ mozilla/directory/c-sdk/config/autoconf/config.guess 9 Feb 2009 04:01:43 -0000 -@@ -1,34 +1,37 @@ - #! /bin/sh - # Attempt to guess a canonical system name. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2008-01-08' - - # This file 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Originally written by Per Bothner . - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # - # This script attempts to guess a canonical system name similar to - # config.sub. If it succeeds, it prints the system name on stdout, and - # exits with 0. Otherwise, it exits with 1. - # -@@ -48,34 +51,34 @@ Operation modes: - -v, --version print version number, then exit - - Report bugs and patches to ." - - version="\ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) -@@ -99,35 +102,36 @@ trap 'exit 1' 1 2 15 - # use `HOST_CC' if defined, but it is deprecated. - - # Portable tmp directory creation inspired by the Autoconf team. - - set_cc_for_build=' - trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; - trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; - : ${TMPDIR=/tmp} ; -- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || -+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || -+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; - dummy=$tmp/dummy ; - tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; - case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; --esac ;' -+esac ; set_cc_for_build= ;' - - # This is needed to find uname on a Pyramid OSx when run in the BSD universe. - # (ghazi@noc.rutgers.edu 1994-08-24) - if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH - fi - - UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -@@ -152,16 +156,17 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; -+ sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ -@@ -190,60 +195,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" -- exit 0 ;; -- amiga:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- arc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- hp300:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mac68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- macppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme88k:OpenBSD:*:*) -- echo m88k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvmeppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- pmax:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sgi:OpenBSD:*:*) -- echo mipseb-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sun3:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- wgrisc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:OpenBSD:*:*) -- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` -+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} -+ exit ;; -+ *:ekkoBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} -+ exit ;; -+ *:SolidBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} -+ exit ;; -+ macppc:MirBSD:*:*) -+ echo powerpc-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; -+ *:MirBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; - alpha:OSF1:*:*) -- if test $UNAME_RELEASE = "V4.0"; then -+ case $UNAME_RELEASE in -+ *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` -- fi -+ ;; -+ *5.*) -+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -+ ;; -+ esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; -@@ -271,147 +258,163 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac -+ # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. -- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -- exit 0 ;; -+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -+ exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix -- exit 0 ;; -+ exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 -- exit 0 ;; -+ exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 -- exit 0;; -+ exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos -- exit 0 ;; -+ exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos -- exit 0 ;; -+ exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition -- exit 0 ;; -+ exit ;; -+ *:z/VM:*:*) -+ echo s390-ibm-zvmoe -+ exit ;; -+ *:OS400:*:*) -+ echo powerpc-ibm-os400 -+ exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} -- exit 0;; -+ exit ;; -+ arm:riscos:*:*|arm:RISCOS:*:*) -+ echo arm-unknown-riscos -+ exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp -- exit 0;; -+ exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi -- exit 0 ;; -+ exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 -- exit 0 ;; -- DRS?6000:UNIX_SV:4.2*:7*) -+ exit ;; -+ DRS?6000:unix:4.0:6*) -+ echo sparc-icl-nx6 -+ exit ;; -+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in -- sparc) echo sparc-icl-nx7 && exit 0 ;; -+ sparc) echo sparc-icl-nx7; exit ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -- i86pc:SunOS:5.*:*) -+ exit ;; -+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` -- exit 0 ;; -+ exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac -- exit 0 ;; -+ exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ m68k:machten:*:*) -+ echo m68k-apple-machten${UNAME_RELEASE} -+ exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 -- exit 0 ;; -+ exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #ifdef __cplusplus - #include /* for printf() prototype */ - int main (int argc, char *argv[]) { - #else - int main (argc, argv) int argc; char *argv[]; { -@@ -425,145 +428,150 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c \ -- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ -- && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && -+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && -+ SYSTEM_NAME=`$dummy $dummyarg` && -+ { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax -- exit 0 ;; -+ exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix -- exit 0 ;; -+ exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 -- exit 0 ;; -+ exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 -- exit 0 ;; -+ exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 -- exit 0 ;; -+ exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 -- exit 0 ;; -+ exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd -- exit 0 ;; -+ exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` -- exit 0 ;; -+ exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. -- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' -+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix -- exit 0 ;; -+ exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -- echo rs6000-ibm-aix3.2.5 -+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` -+ then -+ echo "$SYSTEM_NAME" -+ else -+ echo rs6000-ibm-aix3.2.5 -+ fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi -- exit 0 ;; -- *:AIX:*:[45]) -+ exit ;; -+ *:AIX:*:[456]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix -- exit 0 ;; -+ exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 -- exit 0 ;; -+ exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to -- exit 0 ;; # report: romp-ibm BSD 4.3 -+ exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx -- exit 0 ;; -+ exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 -- exit 0 ;; -+ exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd -- exit 0 ;; -+ exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 -- exit 0 ;; -+ exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` -@@ -615,31 +623,41 @@ EOF - } - EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then -- # avoid double evaluation of $set_cc_for_build -- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build -- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null -+ eval $set_cc_for_build -+ -+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating -+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler -+ # generating 64-bit code. GNU and HP use different nomenclature: -+ # -+ # $ CC_FOR_BUILD=cc ./config.guess -+ # => hppa2.0w-hp-hpux11.23 -+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess -+ # => hppa64-hp-hpux11.23 -+ -+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | -+ grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); -@@ -657,181 +675,224 @@ EOF - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 -- exit 0 ;; -+ exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd -- exit 0 ;; -+ exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd -- exit 0 ;; -+ exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix -- exit 0 ;; -+ exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf -- exit 0 ;; -+ exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf -- exit 0 ;; -+ exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi -- exit 0 ;; -+ exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites -- exit 0 ;; -+ exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - *:UNICOS/mp:*:*) -- echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -+ exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -- exit 0 ;; -+ exit ;; -+ 5000:UNIX_System_V:4.*:*) -+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -+ exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:FreeBSD:*:*) -- # Determine whether the default compiler uses glibc. -- eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -- #include -- #if __GLIBC__ >= 2 -- LIBC=gnu -- #else -- LIBC= -- #endif --EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} -- exit 0 ;; -+ case ${UNAME_MACHINE} in -+ pc98) -+ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ amd64) -+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ *) -+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ esac -+ exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin -- exit 0 ;; -- i*:MINGW*:*) -+ exit ;; -+ *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 -- exit 0 ;; --#### MozillaHack --# Netscape's hacked uname -- xx:WINNT:* | xx:WIN95:*) -- echo i586-pc-msvc -- exit 0 ;; --### End MozillaHack -+ exit ;; -+ i*:windows32*:*) -+ # uname -m includes "-pc" on this system. -+ echo ${UNAME_MACHINE}-mingw32 -+ exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 -- exit 0 ;; -- x86:Interix*:3*) -- echo i586-pc-interix3 -- exit 0 ;; -+ exit ;; -+ *:Interix*:[3456]*) -+ case ${UNAME_MACHINE} in -+ x86) -+ echo i586-pc-interix${UNAME_RELEASE} -+ exit ;; -+ EM64T | authenticamd) -+ echo x86_64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ IA64) -+ echo ia64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks -- exit 0 ;; -+ exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix -- exit 0 ;; -+ exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin -- exit 0 ;; -+ exit ;; -+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) -+ echo x86_64-unknown-cygwin -+ exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin -- exit 0 ;; -+ exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - *:GNU:*:*) -+ # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` -- exit 0 ;; -+ exit ;; -+ *:GNU/*:*:*) -+ # other systems with GNU libc and userland -+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu -+ exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix -- exit 0 ;; -+ exit ;; - arm*:Linux:*:*) -+ eval $set_cc_for_build -+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ -+ | grep -q __ARM_EABI__ -+ then -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ else -+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ fi -+ exit ;; -+ avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ cris:Linux:*:*) -+ echo cris-axis-linux-gnu -+ exit ;; -+ crisv32:Linux:*:*) -+ echo crisv32-axis-linux-gnu -+ exit ;; -+ frv:Linux:*:*) -+ echo frv-unknown-linux-gnu -+ exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ m32r*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) -@@ -839,62 +900,78 @@ EOF - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; -+ or32:Linux:*:*) -+ echo or32-unknown-linux-gnu -+ exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -- exit 0 ;; -+ exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac -- exit 0 ;; -+ exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux -- exit 0 ;; -+ exit ;; -+ sh64*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ vax:Linux:*:*) -+ echo ${UNAME_MACHINE}-dec-linux-gnu -+ exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ xtensa*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g -@@ -902,99 +979,113 @@ EOF - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" -- exit 0 ;; -+ exit ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" -- exit 0 ;; -+ exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" -- exit 0 ;; -+ exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else -- #ifdef __INTEL_COMPILER -+ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif -+ #ifdef __dietlibc__ -+ LIBC=dietlibc -+ #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 -- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^LIBC/{ -+ s: ::g -+ p -+ }'`" -+ test x"${LIBC}" != x && { -+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" -+ exit -+ } -+ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 -- exit 0 ;; -+ exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx -- exit 0 ;; -+ exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop -- exit 0 ;; -+ exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos -- exit 0 ;; -+ exit ;; -+ i*86:syllable:*:*) -+ echo ${UNAME_MACHINE}-pc-syllable -+ exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi -- exit 0 ;; -- i*86:*:5:[78]*) -+ exit ;; -+ i*86:*:5:[678]*) -+ # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ -@@ -1002,214 +1093,248 @@ EOF - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi -- exit 0 ;; -+ exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 -- exit 0 ;; -+ exit ;; - paragon:*:*:*) - echo i860-intel-osf1 -- exit 0 ;; -+ exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi -- exit 0 ;; -+ exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv -- exit 0 ;; -+ exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv -- exit 0 ;; -+ exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix -- exit 0 ;; -- M68*:*:R3V[567]*:*) -- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; -- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0) -+ exit ;; -+ M68*:*:R3V[5678]*:*) -+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; -+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4.3${OS_REL} && exit 0 -+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4 && exit 0 ;; -+ && { echo i486-ncr-sysv4; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 -- exit 0 ;; -+ exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi -- exit 0 ;; -+ exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 -- exit 0 ;; --#### MozillaHack -- *:*OpenVMS*:*:*) -- case "${UNAME_SYSTEM}" in -- POSIX_for_OpenVMS_AXP) echo alpha-dec-openvmsposix ;; -- POSIX_for_OpenVMS_VAX) echo vax-dec-openvmsposix ;; -- OpenVMS) echo alpha-dec-openvms ;; -- *) echo unknown-dec-openvms ;; -- esac -- exit 0 ;; --#### End MozillaHack -+ exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 -- exit 0 ;; -+ exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 -- exit 0 ;; -+ exit ;; -+ i*86:VOS:*:*) -+ # From Paul.Green@stratus.com. -+ echo ${UNAME_MACHINE}-stratus-vos -+ exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos -- exit 0 ;; -+ exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 -- exit 0 ;; -+ exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos -- exit 0 ;; -+ exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos -- exit 0 ;; -+ exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos -- exit 0 ;; -+ 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 0 ;; -+ exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ SX-7:SUPER-UX:*:*) -+ echo sx7-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8:SUPER-UX:*:*) -+ echo sx8-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8R:SUPER-UX:*:*) -+ echo sx8r-nec-superux${UNAME_RELEASE} -+ exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Darwin:*:*) -- case `uname -p` in -- *86) UNAME_PROCESSOR=i686 ;; -- powerpc) UNAME_PROCESSOR=powerpc ;; -+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown -+ case $UNAME_PROCESSOR in -+ unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:QNX:*:4*) - echo i386-pc-qnx -- exit 0 ;; -- NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) -+ exit ;; -+ NSE-?:NONSTOP_KERNEL:*:*) -+ echo nse-tandem-nsk${UNAME_RELEASE} -+ exit ;; -+ NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux -- exit 0 ;; -+ exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv -- exit 0 ;; -+ exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 -- exit 0 ;; -+ exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 -- exit 0 ;; -+ exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex -- exit 0 ;; -+ exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 -- exit 0 ;; -+ exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 -- exit 0 ;; -+ exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 -- exit 0 ;; -+ exit ;; - *:ITS:*:*) - echo pdp10-unknown-its -- exit 0 ;; -+ exit ;; -+ SEI:*:*:SEIUX) -+ echo mips-sei-seiux${UNAME_RELEASE} -+ exit ;; -+ *:DragonFly:*:*) -+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` -+ exit ;; -+ *:*VMS:*:*) -+ UNAME_MACHINE=`(uname -p) 2>/dev/null` -+ case "${UNAME_MACHINE}" in -+ A*) echo alpha-dec-vms ; exit ;; -+ I*) echo ia64-dec-vms ; exit ;; -+ V*) echo vax-dec-vms ; exit ;; -+ esac ;; -+ *:XENIX:*:SysV) -+ echo i386-pc-xenix -+ exit ;; -+ i*86:skyos:*:*) -+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' -+ exit ;; -+ i*86:rdos:*:*) -+ echo ${UNAME_MACHINE}-pc-rdos -+ exit ;; - esac - - #echo '(No uname command or uname output not recognized.)' 1>&2 - #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - - eval $set_cc_for_build - cat >$dummy.c </dev/null && $dummy && exit 0 -+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - - # Apollos put the system type in the environment. - --test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } -+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - - # Convex versions that predate uname can use getsysinfo(1) - - if [ -x /usr/convex/getsysinfo ] - then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - c34*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - c38*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - c4*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - esac - fi - - cat >&2 < in order to provide the needed - information to handle your system. - - config.guess timestamp = $timestamp - -Index: mozilla/directory/c-sdk/config/autoconf/config.sub -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/config/autoconf/config.sub,v -retrieving revision 5.0.2.3 -diff -u -8 -p -r5.0.2.3 config.sub ---- mozilla/directory/c-sdk/config/autoconf/config.sub 18 Apr 2003 10:20:22 -0000 5.0.2.3 -+++ mozilla/directory/c-sdk/config/autoconf/config.sub 9 Feb 2009 04:01:46 -0000 -@@ -1,14 +1,15 @@ - #! /bin/sh - # Configuration validation subroutine script. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2008-01-16' - - # This file is (in principle) common to ALL GNU software. - # The presence of a machine in this file suggests that SOME GNU software - # can handle that machine. It does not imply ALL GNU software can. - # - # This file 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 -@@ -16,24 +17,25 @@ timestamp='2003-02-22' - # - # 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., 59 Temple Place - Suite 330, --# Boston, MA 02111-1307, USA. -- -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. -+# - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # - # Configuration subroutine to validate and canonicalize a configuration type. - # Supply the specified configuration type as an argument. - # If it is invalid, we print an error message on stderr and exit with code 1. - # Otherwise, we print the canonical config type on stdout and succeed. - -@@ -65,46 +67,46 @@ Operation modes: - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - - Report bugs and patches to ." - - version="\ - GNU config.sub ($timestamp) - --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 -- exit 0;; -+ exit ;; - - * ) - break ;; - esac - done - - case $# in - 0) echo "$me: missing argument$help" >&2 -@@ -113,17 +115,19 @@ case $# in - *) echo "$me: too many arguments$help" >&2 - exit 1;; - esac - - # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). - # Here we must recognize all the valid KERNEL-OS combinations. - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` - case $maybe_os in -- nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) -+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ -+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ -+ storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi -@@ -139,17 +143,17 @@ case $os in - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -- -apple | -axis) -+ -apple | -axis | -knuth | -cray) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) -@@ -164,32 +168,40 @@ case $os in - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; -+ -sco6) -+ os=-sco5v6 -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; -+ -sco5v6*) -+ # Don't forget version if it is 3.2v4 or newer. -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) -@@ -219,171 +231,196 @@ case $os in - os=-mint - ;; - esac - - # Decode aliases for certain CPU-COMPANY combinations. - case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. --#### MozillaHack --# mips*el --#### End MozillaHack - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ -- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ -- | clipper \ -+ | am33_2.0 \ -+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ -+ | bfin \ -+ | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ -- | fr30 | frv \ -+ | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ -- | ip2k \ -- | m32r | m68000 | m68k | m88k | mcore \ -- | mips | mipsbe | mipseb | mips*el | mipsle \ -+ | ip2k | iq2000 \ -+ | m32c | m32r | m32rle | m68000 | m68k | m88k \ -+ | maxq | mb | microblaze | mcore | mep \ -+ | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64vr | mips64vrel \ - | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ -+ | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ -+ | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ -+ | mt \ - | msp430 \ -+ | nios | nios2 \ - | ns16k | ns32k \ -- | openrisc | or32 \ -+ | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ -- | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ -+ | score \ -+ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ -- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ -- | strongarm \ -- | tahoe | thumb | tic80 | tron \ -+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ -+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ -+ | spu | strongarm \ -+ | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ -- | x86 | xscale | xstormy16 | xtensa \ -+ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; -+ ms1) -+ basic_machine=mt-unknown -+ ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. --#### MozillaHack --# mips*el --#### End MozillaHack - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ -- | avr-* \ -- | bs2000-* \ -+ | avr-* | avr32-* \ -+ | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ -- | clipper-* | cydra-* \ -+ | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ -- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ -+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ -- | ip2k-* \ -- | m32r-* \ -+ | ip2k-* | iq2000-* \ -+ | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -- | m88110-* | m88k-* | mcore-* \ -- | mips-* | mipsbe-* | mipseb-* | mips*el-* | mipsle-* \ -+ | m88110-* | m88k-* | maxq-* | mcore-* \ -+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ -+ | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ -+ | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ -+ | mmix-* \ -+ | mt-* \ - | msp430-* \ -- | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ -+ | nios-* | nios2-* \ -+ | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ -- | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ -+ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ -- | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ -- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ -+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ -+ | sparclite-* \ -+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ -- | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ -- | xtensa-* \ -+ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ -+ | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-*) - ;; -+ # Recognize the basic CPU types without company name, with glob match. -+ xtensa*) -+ basic_machine=$basic_machine-unknown -+ ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; -+ abacus) -+ basic_machine=abacus-unknown -+ ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; -+ amd64) -+ basic_machine=x86_64-pc -+ ;; -+ amd64-*) -+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) -@@ -405,16 +442,24 @@ case $basic_machine in - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; -+ blackfin) -+ basic_machine=bfin-unknown -+ os=-linux -+ ;; -+ blackfin-*) -+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; -@@ -433,22 +478,37 @@ case $basic_machine in - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; -+ craynv) -+ basic_machine=craynv-cray -+ os=-unicosmp -+ ;; -+ cr16) -+ basic_machine=cr16-unknown -+ os=-elf -+ ;; - crds | unos) - basic_machine=m68k-crds - ;; -+ crisv32 | crisv32-* | etraxfs*) -+ basic_machine=crisv32-axis -+ ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; -+ crx) -+ basic_machine=crx-unknown -+ os=-elf -+ ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec -@@ -461,16 +521,20 @@ case $basic_machine in - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; -+ djgpp) -+ basic_machine=i586-pc -+ os=-msdosdjgpp -+ ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; -@@ -611,66 +675,71 @@ case $basic_machine in - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; -+ m68knommu) -+ basic_machine=m68k-unknown -+ os=-linux -+ ;; -+ m68knommu-*) -+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; --#### MozillaHack -- i386-msvc | msvc) -- basic_machine=i386-pc -- os=-msvc -+ mingw32ce) -+ basic_machine=arm-unknown -+ os=-mingw32ce - ;; --#### End MozillaHack - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; -- mmix*) -- basic_machine=mmix-knuth -- os=-mmixware -- ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; -+ ms1-*) -+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` -+ ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; -@@ -729,30 +798,29 @@ case $basic_machine in - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; -- nv1) -- basic_machine=nv1-cray -- os=-unicosmp -- ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; -- or32 | or32-*) -+ openrisc | openrisc-*) - basic_machine=or32-unknown -- os=-coff -+ ;; -+ os400) -+ basic_machine=powerpc-ibm -+ os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k -@@ -760,43 +828,63 @@ case $basic_machine in - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; -+ parisc) -+ basic_machine=hppa-unknown -+ os=-linux -+ ;; -+ parisc-*) -+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; -+ pc98) -+ basic_machine=i386-pc -+ ;; -+ pc98-*) -+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; -- pentiumii | pentium2) -+ pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; -+ pentium4) -+ basic_machine=i786-pc -+ ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -- pentiumii-* | pentium2-*) -+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -+ pentium4-*) -+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` -@@ -819,16 +907,20 @@ case $basic_machine in - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; -+ rdos) -+ basic_machine=i386-pc -+ os=-rdos -+ ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) -@@ -845,23 +937,37 @@ case $basic_machine in - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; -+ sde) -+ basic_machine=mipsisa32-sde -+ os=-elf -+ ;; -+ sei) -+ basic_machine=mips-sei -+ os=-seiux -+ ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; -+ sh5el) -+ basic_machine=sh5le-unknown -+ ;; -+ sh64) -+ basic_machine=sh64-unknown -+ ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; -@@ -926,45 +1032,49 @@ case $basic_machine in - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; -- tic4x | c4x*) -- basic_machine=tic4x-unknown -- os=-coff -- ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; -+ tile*) -+ basic_machine=tile-unknown -+ os=-linux-gnu -+ ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; -+ tpf) -+ basic_machine=s390x-ibm -+ os=-tpf -+ ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; -@@ -998,16 +1108,20 @@ case $basic_machine in - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; -+ xbox) -+ basic_machine=i686-pc -+ os=-mingw32 -+ ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) -@@ -1028,39 +1142,39 @@ case $basic_machine in - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; -+ mmix) -+ basic_machine=mmix-knuth -+ ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; -- sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) -+ sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; -- sh64) -- basic_machine=sh64-unknown -- ;; -- sparc | sparcv9 | sparcv9b) -+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; -@@ -1116,40 +1230,40 @@ case $os in - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. --#### MozillaHack --# msvc --#### End MozillaHack - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ -- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ -- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ -+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ -+ | -openbsd* | -solidbsd* \ -+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ -+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ -+ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ -+ | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ -- | -msvc* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ -- | -powermax* | -dnix*) -+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ -+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os -@@ -1157,34 +1271,40 @@ case $os in - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ -- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ -+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; -+ -linux-dietlibc) -+ os=-linux-dietlibc -+ ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; -+ -os400*) -+ os=-os400 -+ ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf -@@ -1196,16 +1316,19 @@ case $os in - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; -+ -syllable*) -+ os=-syllable -+ ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova -@@ -1218,16 +1341,19 @@ case $os in - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; -+ -tpf*) -+ os=-tpf -+ ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 -@@ -1254,16 +1380,19 @@ case $os in - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; -+ -zvmoe) -+ os=-zvmoe -+ ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -@@ -1276,25 +1405,34 @@ else - - # Note that if you're going to try to match "-MANUFACTURER" here (say, - # "-sun"), then you have to tell the case statement up towards the top - # that MANUFACTURER isn't an operating system. Otherwise, code above - # will signal an error saying that MANUFACTURER isn't an operating - # system, and we'll never get to this point. - - case $basic_machine in -+ score-*) -+ os=-elf -+ ;; -+ spu-*) -+ os=-elf -+ ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; -+ c4x-* | tic4x-*) -+ os=-coff -+ ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) -@@ -1310,16 +1448,19 @@ case $basic_machine in - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; -+ mep-*) -+ os=-elf -+ ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff -@@ -1328,19 +1469,25 @@ case $basic_machine in - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; -+ *-haiku) -+ os=-haiku -+ ;; - *-ibm) - os=-aix - ;; -+ *-knuth) -+ os=-mmixware -+ ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf -@@ -1463,19 +1610,25 @@ case $basic_machine in - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; -+ -os400*) -+ vendor=ibm -+ ;; - -ptx*) - vendor=sequent - ;; -+ -tpf*) -+ vendor=ibm -+ ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi -@@ -1490,16 +1643,16 @@ case $basic_machine in - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; - esac - - echo $basic_machine$os --exit 0 -+exit - - # Local variables: - # eval: (add-hook 'write-file-hooks 'time-stamp) - # time-stamp-start: "timestamp='" - # time-stamp-format: "%:y-%02m-%02d" - # time-stamp-end: "'" - # End: -Index: mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.in,v -retrieving revision 5.0.2.21.4.1 -diff -u -8 -p -r5.0.2.21.4.1 Makefile.in ---- mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.in 3 Feb 2006 14:44:42 -0000 5.0.2.21.4.1 -+++ mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.in 9 Feb 2009 04:01:47 -0000 -@@ -232,17 +232,17 @@ ifeq ($(OS_ARCH), Darwin) - EXTRA_LIBS = -L$(dist_libdir) -l$(LBER_LIBNAME) - endif - - ifeq ($(OS_ARCH), OpenVMS) - EXTRA_LIBS = -L$(dist_libdir) -l$(LBER_LIBNAME) $(OS_LIBS) - SHARED_LIBRARY_LIBS = $(dist_libdir)/lib$(LBER_LIBNAME).a - endif - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_LIBS = -L$(dist_libdir) -l$(LBER_LIBNAME) -lbe - endif - - ifeq ($(OS_ARCH), NetBSD) - EXTRA_LIBS = -L$(dist_libdir) -l$(LBER_LIBNAME) - endif - - ifeq ($(OS_ARCH), OpenBSD) -@@ -297,17 +297,17 @@ ltest:: $(LIBLDAP) test.o - $(LIBDIR): - $(MKDIR) $(LIBDIR) - - $(LIBLDAP): $(OBJS) $(LIBDIR) $(LDAP_EXPORT_DEFS) - @echo ======= making $(LIBLDAP) - ifdef SO_FILES_TO_REMOVE - -$(RM) $(SO_FILES_TO_REMOVE) - endif --ifneq (,$(filter AIX Linux HP-UX Darwin BeOS QNX NetBSD OSF1 OpenBSD, $(OS_ARCH))) -+ifneq (,$(filter AIX Linux HP-UX Darwin BeOS Haiku QNX NetBSD OSF1 OpenBSD, $(OS_ARCH))) - $(LINK_LIB) ../liblber/$(OBJDIR_NAME)/*.a - else - ifeq ($(OS_ARCH),OS2) - # create import library for OS/2 - rm -f $@ - $(IMPLIB) $@ $(LDAP_EXPORT_DEFS) - else - $(LINK_LIB) $(EXTRA_LIBS) -@@ -336,15 +336,19 @@ ifeq ($(LD),link) - EXPDEPS2 = $(DLLLDAP) - endif - endif - - export:: $(EXPDEPS2) - ifdef MKSHLIB - $(INSTALL) -m 444 $(LIBLDAP) $(dist_libdir) - $(INSTALL) -m 444 $(DLLLDAP) $(dist_libdir) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 444 $(DLLLDAP) $(dist_bindir)/lib -+else - $(INSTALL) -m 444 $(DLLLDAP) $(dist_bindir) - endif -+endif - ifeq ($(OS_ARCH), WINNT) - $(INSTALL) -m 444 $(LIBLDAP) $(dist_libdir) - $(INSTALL) -m 444 $(DLLLDAP) $(dist_libdir) - endif - $(INSTALL) -m 444 $(ETCFILES) $(ETCDIR) -Index: mozilla/directory/c-sdk/ldap/libraries/libprldap/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/ldap/libraries/libprldap/Makefile.in,v -retrieving revision 5.0.2.18.4.1 -diff -u -8 -p -r5.0.2.18.4.1 Makefile.in ---- mozilla/directory/c-sdk/ldap/libraries/libprldap/Makefile.in 3 Feb 2006 14:44:49 -0000 5.0.2.18.4.1 -+++ mozilla/directory/c-sdk/ldap/libraries/libprldap/Makefile.in 9 Feb 2009 04:01:49 -0000 -@@ -160,17 +160,18 @@ EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_L - EXTRA_LIBS += -L$(dist_libdir) $(DYNAMICNSPR) - endif - - ifeq ($(OS_ARCH), OpenVMS) - EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) - EXTRA_LIBS += -L$(dist_libdir) $(DYNAMICNSPR) - endif - --ifeq ($(OS_ARCH), BeOS) -+ -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) - EXTRA_LIBS += -L$(dist_libdir) $(DYNAMICNSPR) - endif - - OBJDEST = $(OBJDIR_NAME) - - ########################################################################### - -@@ -250,10 +251,14 @@ ifeq ($(OS_ARCH), WINNT) - $(INSTALL) -m 555 $(LIBPRLDAP) $(dist_libdir) - $(INSTALL) -m 555 $(DLLPRLDAP) $(dist_libdir) - endif - ifeq ($(OS_ARCH),OS2) - $(INSTALL) -m 444 $(LIBPRLDAP) $(dist_libdir) - endif - ifdef MKSHLIB - $(INSTALL) -m 555 $(DLLPRLDAP) $(dist_libdir) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 444 $(DLLPRLDAP) $(dist_bindir)/lib -+else - $(INSTALL) -m 444 $(DLLPRLDAP) $(dist_bindir) - endif -+endif -Index: mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/ldap/libraries/libssldap/Attic/Makefile,v -retrieving revision 5.0.2.8 -diff -u -8 -p -r5.0.2.8 Makefile ---- mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile 25 Aug 2004 23:02:30 -0000 5.0.2.8 -+++ mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile 9 Feb 2009 04:01:49 -0000 -@@ -162,17 +162,17 @@ EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_L - ifeq ($(NSS_DYNAMIC_SOFTOKN),1) - EXTRA_LIBS += -l$(SOFTOKN_LIBNAME) - endif - EXTRA_LIBS += -l$(SSL_LIBNAME) -l$(NSS_LIBNAME) - EXTRA_LIBS += $(DYNAMICNSPR) - EXTRA_LIBS += $(OS_LIBS) - endif - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) -l$(PRLDAP_LIBNAME) - ifeq ($(NSS_DYNAMIC_SOFTOKN),1) - EXTRA_LIBS += -l$(SOFTOKN_LIBNAME) - endif - EXTRA_LIBS += -l$(SSL_LIBNAME) -l$(NSS_LIBNAME) - EXTRA_LIBS += $(DYNAMICNSPR) - EXTRA_LIBS += $(OS_LIBS) - endif -Index: mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile.in,v -retrieving revision 5.0.2.9.4.1 -diff -u -8 -p -r5.0.2.9.4.1 Makefile.in ---- mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile.in 3 Feb 2006 14:44:49 -0000 5.0.2.9.4.1 -+++ mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile.in 9 Feb 2009 04:01:50 -0000 -@@ -177,17 +177,17 @@ EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_L - ifeq ($(NSS_DYNAMIC_SOFTOKN),1) - EXTRA_LIBS += -l$(SOFTOKN_LIBNAME) - endif - EXTRA_LIBS += -l$(SSL_LIBNAME) -l$(NSS_LIBNAME) - EXTRA_LIBS += $(DYNAMICNSPR) - EXTRA_LIBS += $(OS_LIBS) - endif - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) -l$(PRLDAP_LIBNAME) - ifeq ($(NSS_DYNAMIC_SOFTOKN),1) - EXTRA_LIBS += -l$(SOFTOKN_LIBNAME) - endif - EXTRA_LIBS += -l$(SSL_LIBNAME) -l$(NSS_LIBNAME) - EXTRA_LIBS += $(DYNAMICNSPR) - EXTRA_LIBS += $(OS_LIBS) - endif -Index: mozilla/embedding/componentlib/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/embedding/componentlib/Makefile.in,v -retrieving revision 1.3 -diff -u -8 -p -r1.3 Makefile.in ---- mozilla/embedding/componentlib/Makefile.in 18 Apr 2004 22:00:41 -0000 1.3 -+++ mozilla/embedding/componentlib/Makefile.in 9 Feb 2009 04:02:04 -0000 -@@ -147,17 +147,17 @@ OS_LIBS := -lstdc++ $(OS_LIBS) - SHLIB_LDENDFILE = -lgcc - - endif # darwin - - ifeq ($(OS_ARCH),WINNT) - OS_LIBS += ole32.lib shell32.lib - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - OS_LIBS += -ltracker - endif - - GARBAGE += $(CPPSRCS) - - ifdef _NO_AUTO_VARS - _TARGET = $(srcdir)/$(@F) - GARBAGE += $(addprefix $(srcdir)/,$(CPPSRCS)) -Index: mozilla/gfx/src/beos/nsFontMetricsBeOS.cpp -=================================================================== -RCS file: /cvsroot/mozilla/gfx/src/beos/nsFontMetricsBeOS.cpp,v -retrieving revision 1.40.12.5 -diff -u -8 -p -r1.40.12.5 nsFontMetricsBeOS.cpp ---- mozilla/gfx/src/beos/nsFontMetricsBeOS.cpp 27 Sep 2007 21:36:00 -0000 1.40.12.5 -+++ mozilla/gfx/src/beos/nsFontMetricsBeOS.cpp 9 Feb 2009 04:02:35 -0000 -@@ -123,22 +123,22 @@ NS_IMETHODIMP nsFontMetricsBeOS::Init(co - nsString *fam = param.family.StringAt(i); - PRBool isgeneric = ( param.isgeneric[i] ) ? PR_TRUE: PR_FALSE; - NS_ConvertUTF16toUTF8 family(*fam); - // Fallback - isfixed = family.Equals("monospace") || family.Equals("fixed"); - if (!isgeneric) - { - // non-generic font -- if (count_font_styles((font_family)family.get()) <= 0) -+ if (count_font_styles((char *) family.get()) <= 0) - { - // the specified font does not exist on this computer. - continue; - } -- mFontHandle.SetFamilyAndStyle( (font_family)family.get(), NULL ); -+ mFontHandle.SetFamilyAndStyle( (char *)family.get(), NULL ); - fontfound = PR_TRUE; - break; - } - else - { - // family is generic string like - // "serif" "sans-serif" "cursive" "fantasy" "monospace" "-moz-fixed" - // so look up preferences and get real family name -@@ -153,19 +153,19 @@ NS_IMETHODIMP nsFontMetricsBeOS::Init(co - //NS_WITH_SERVICE( nsIPref, prefs, kPrefCID, &res ); - nsCOMPtr prefs = do_GetService( NS_PREFSERVICE_CONTRACTID, &res ); - if (NS_SUCCEEDED(res)) - { - nsCOMPtr branch; - prefs->GetBranch("font.name.", getter_AddRefs(branch)); - branch->GetCharPref(prop, getter_Copies(real_family)); - -- if (!real_family.IsEmpty() && real_family.Length() <= B_FONT_FAMILY_LENGTH && count_font_styles((font_family)real_family.get()) > 0) -+ if (!real_family.IsEmpty() && real_family.Length() <= B_FONT_FAMILY_LENGTH && count_font_styles((char *)real_family.get()) > 0) - { -- mFontHandle.SetFamilyAndStyle( (font_family)real_family.get(), NULL ); -+ mFontHandle.SetFamilyAndStyle( (char *)real_family.get(), NULL ); - fontfound = PR_TRUE; - break; - } - } - // not successful. use system font. - if (isfixed) - mFontHandle = BFont(be_fixed_font); - else -@@ -409,18 +409,18 @@ NS_IMETHODIMP nsFontMetricsBeOS::GetFon - aHandle = (nsFontHandle)&mFontHandle; - return NS_OK; - } - - nsresult - nsFontMetricsBeOS::FamilyExists(const nsString& aName) - { - NS_ConvertUTF16toUTF8 family(aName); -- printf("exists? %s", (font_family)family.get()); -- return (count_font_styles((font_family)family.get()) > 0) ? NS_OK : NS_ERROR_FAILURE; -+ printf("exists? %s", (char *)family.get()); -+ return (count_font_styles((char *)family.get()) > 0) ? NS_OK : NS_ERROR_FAILURE; - } - - // useful UTF-8 utility - inline uint32 utf8_char_len(uchar byte) - { - return (((0xE5000000 >> ((byte >> 3) & 0x1E)) & 3) + 1); - } - -Index: mozilla/gfx/src/beos/nsRenderingContextBeOS.cpp -=================================================================== -RCS file: /cvsroot/mozilla/gfx/src/beos/nsRenderingContextBeOS.cpp,v -retrieving revision 1.51.12.8 -diff -u -8 -p -r1.51.12.8 nsRenderingContextBeOS.cpp ---- mozilla/gfx/src/beos/nsRenderingContextBeOS.cpp 18 Dec 2007 07:17:21 -0000 1.51.12.8 -+++ mozilla/gfx/src/beos/nsRenderingContextBeOS.cpp 9 Feb 2009 04:02:39 -0000 -@@ -345,19 +345,22 @@ bool nsRenderingContextBeOS::LockAndUpda - return rv; - - // Intelligent lock - if (mSurface->LockDrawable()) - { - // if BFont wasn't set already - if (mCurrentBFont == nsnull) - { -- if (mFontMetrics) -- mFontMetrics->GetFontHandle((nsFontHandle)mCurrentBFont); -- -+ if (mFontMetrics) -+ { -+ nsFontHandle fontHandle; -+ mFontMetrics->GetFontHandle(fontHandle); -+ mCurrentBFont = (BFont *) fontHandle; -+ } - if (mCurrentBFont) - mView->SetFont(mCurrentBFont); - else - mView->SetFont(be_plain_font); // fallback - only for single call - } - - if (mClipRegion) - { -@@ -1122,17 +1125,17 @@ NS_IMETHODIMP nsRenderingContextBeOS::Ge - // and call (UTF-8) char* version of the method. - // It works well with current nsFontMetricsBeOS which is, again, simpler in comparison with - // other platforms, partly due to UTF-8 nature of BeOS, partly due unimplemented font fallbacks - // and other tricks. - - NS_IMETHODIMP nsRenderingContextBeOS::GetTextDimensions(const PRUnichar* aString, - PRInt32 aLength, PRInt32 aAvailWidth, PRInt32* aBreaks, PRInt32 aNumBreaks, - nsTextDimensions& aDimensions, PRInt32& aNumCharsFit, nsTextDimensions& aLastWordDimensions, -- PRInt32* aFontID = nsnull) -+ PRInt32* aFontID) - { - nsresult ret_code = NS_ERROR_FAILURE; - uint8 utf8buf[1024]; - uint8* utf8str = nsnull; - // max UTF-8 string length - PRUint32 slength = aLength * 4 + 1; - // Allocating char* array rather from stack than from heap for speed. - // 1024 char array forms e.g. 256 == 32*8 frame for CJK glyphs, which may be -@@ -1155,17 +1158,17 @@ NS_IMETHODIMP nsRenderingContextBeOS::Ge - // deallocating if got from heap - if (utf8str != utf8buf) - delete [] utf8str; - return ret_code; - } - - NS_IMETHODIMP nsRenderingContextBeOS::GetTextDimensions(const char* aString, PRInt32 aLength, - PRInt32 aAvailWidth,PRInt32* aBreaks, PRInt32 aNumBreaks, nsTextDimensions& aDimensions, -- PRInt32& aNumCharsFit, nsTextDimensions& aLastWordDimensions, PRInt32* aFontID = nsnull) -+ PRInt32& aNumCharsFit, nsTextDimensions& aLastWordDimensions, PRInt32* aFontID) - { - // Code is borrowed from win32 implementation including comments. - // Minor changes are introduced due multibyte/utf-8 nature of char* strings handling in BeOS. - char * utf8ptr = (char *)aString; - PRInt32 *utf8pos =0; - PRInt32 num_of_glyphs = 0; // Number of glyphs isn't equal to number of bytes in case of UTF-8 - PRInt32 utf8posbuf[1025]; - if (aLength < 1025) -Index: mozilla/intl/uconv/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/intl/uconv/src/Makefile.in,v -retrieving revision 1.82.4.2 -diff -u -8 -p -r1.82.4.2 Makefile.in ---- mozilla/intl/uconv/src/Makefile.in 29 Jan 2006 16:51:01 -0000 1.82.4.2 -+++ mozilla/intl/uconv/src/Makefile.in 9 Feb 2009 04:02:45 -0000 -@@ -114,17 +114,17 @@ else - ifeq ($(MOZ_WIDGET_TOOLKIT),windows) - CPPSRCS += nsWinCharset.cpp - EXPORT_RESOURCE += wincharset.properties - else - ifneq (,$(filter cocoa mac, $(MOZ_WIDGET_TOOLKIT))) - CPPSRCS += nsMacCharset.cpp - EXPORT_RESOURCE += maccharset.properties - else --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += nsBeOSCharset.cpp - else - CPPSRCS += nsUNIXCharset.cpp - EXPORT_RESOURCE += unixcharset.properties - # add platform charset remapping properties files here if necessary - # (see unixcharset.sample.properties for an example file) - # eg: if we needed a charset remap for OSARCH=Linux then add the following line: - #EXPORT_RESOURCE += unixcharset.Linux.properties -Index: mozilla/ipc/ipcd/client/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/ipc/ipcd/client/src/Makefile.in,v -retrieving revision 1.7 -diff -u -8 -p -r1.7 Makefile.in ---- mozilla/ipc/ipcd/client/src/Makefile.in 9 Dec 2004 19:28:19 -0000 1.7 -+++ mozilla/ipc/ipcd/client/src/Makefile.in 9 Feb 2009 04:02:51 -0000 -@@ -59,17 +59,18 @@ CPPSRCS = \ - ipcdclient.cpp \ - ipcService.cpp \ - ipcModuleFactory.cpp \ - $(NULL) - - ifeq ($(OS_ARCH),WINNT) - CPPSRCS += ipcConnectionWin.cpp - else --ifeq ($(OS_ARCH),BeOS) -+ -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += ipcConnectionStub.cpp - else - CPPSRCS += ipcConnectionUnix.cpp - endif - endif - - LOCAL_INCLUDES = \ - -I$(srcdir)/../../shared/src \ -Index: mozilla/ipc/ipcd/daemon/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/ipc/ipcd/daemon/src/Makefile.in,v -retrieving revision 1.3 -diff -u -8 -p -r1.3 Makefile.in ---- mozilla/ipc/ipcd/daemon/src/Makefile.in 28 Jan 2004 21:31:46 -0000 1.3 -+++ mozilla/ipc/ipcd/daemon/src/Makefile.in 9 Feb 2009 04:02:52 -0000 -@@ -54,17 +54,18 @@ CPPSRCS = \ - ipcd.cpp \ - ipcClient.cpp \ - ipcModuleReg.cpp \ - ipcCommandModule.cpp - - ifeq ($(OS_ARCH),WINNT) - CPPSRCS += ipcdWin.cpp - else --ifeq ($(OS_ARCH),BeOS) -+ -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += ipcdStub.cpp - else - CPPSRCS += ipcdUnix.cpp - endif - endif - - PROGRAM = mozilla-ipcd$(BIN_SUFFIX) - -Index: mozilla/js/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/js/src/Makefile.in,v -retrieving revision 3.95.4.5 -diff -u -8 -p -r3.95.4.5 Makefile.in ---- mozilla/js/src/Makefile.in 27 Jul 2006 22:56:20 -0000 3.95.4.5 -+++ mozilla/js/src/Makefile.in 9 Feb 2009 04:02:54 -0000 -@@ -241,17 +241,17 @@ ifneq ($(findstring -L,$(NSPR_LIBS)),) - NSPR_STATIC_PATH = $(subst -L,,$(findstring -L,$(NSPR_LIBS))) - else - NSPR_STATIC_PATH = $(DIST)/lib - endif - - LDFLAGS += $(pathsubst -l%,$(NSPR_STATIC_PATH)/%.a,$(NSPR_LIBS)) - - # BeOS and HP-UX do not require the extra linking of "-lm" --ifeq (,$(filter BeOS HP-UX WINNT WINCE OpenVMS,$(OS_ARCH))) -+ifeq (,$(filter BeOS Haiku HP-UX WINNT WINCE OpenVMS,$(OS_ARCH))) - LDFLAGS += -lm - endif - - # Prevent floating point errors caused by VC++ optimizations - ifeq ($(OS_ARCH)_$(GNU_CC),WINNT_) - ifeq (,$(filter-out 1200 1300 1310,$(_MSC_VER))) - CFLAGS += -Op - else -Index: mozilla/mail/app/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/mail/app/Makefile.in,v -retrieving revision 1.46.2.10 -diff -u -8 -p -r1.46.2.10 Makefile.in ---- mozilla/mail/app/Makefile.in 22 Oct 2008 21:04:53 -0000 1.46.2.10 -+++ mozilla/mail/app/Makefile.in 9 Feb 2009 04:03:21 -0000 -@@ -57,18 +57,22 @@ PREF_JS_EXPORTS = \ - - ifndef MOZ_BRANDING_DIRECTORY - PREF_JS_EXPORTS += $(srcdir)/thunderbird-branding.js - endif - - ifeq ($(USE_SHORT_LIBNAME), 1) - PROGRAM = thunderbird$(BIN_SUFFIX) - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+PROGRAM = thunderbird$(BIN_SUFFIX) -+else - PROGRAM = thunderbird-bin$(BIN_SUFFIX) - endif -+endif - - REQUIRES = \ - xpcom \ - $(NULL) - - LOCAL_INCLUDES = -I$(topsrcdir)/toolkit/xre - - CPPSRCS = nsMailApp.cpp -@@ -142,17 +146,17 @@ RCFLAGS += -DMOZ_THUNDERBIRD -I$(srcdir) - else - RCFLAGS += -DMOZ_THUNDERBIRD --include-dir $(srcdir) - endif - ifdef BUILD_STATIC_LIBS - RCFLAGS += -DMOZ_STATIC_BUILD - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - BEOS_PROGRAM_RESOURCE = $(srcdir)/apprunner-beos.rsrc - ifdef BUILD_STATIC_LIBS - OS_LIBS += -ltracker -lgame - endif - endif - - ifeq ($(OS_ARCH),OS2) - RESFILE=splashos2.res -@@ -257,17 +261,17 @@ ifneq (,$(filter gtk gtk2,$(MOZ_WIDGET_T - cp $(srcdir)/mozicon16.xpm $(DIST)/branding/mozicon16.xpm - cp $(srcdir)/mozicon50.xpm $(DIST)/branding/mozicon50.xpm - endif - ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2) - cp $(srcdir)/default.xpm $(DIST)/branding/default.xpm - endif - endif - --ifneq (,$(filter-out OS2 WINNT Darwin,$(OS_ARCH))) -+ifneq (,$(filter-out OS2 WINNT Darwin BeOS Haiku,$(OS_ARCH))) - thunderbird:: mozilla.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk - cat $< | sed -e "s|%MOZAPPDIR%|$(mozappdir)|" \ - -e "s|%MOZ_USER_DIR%|.thunderbird|" \ - -e "s|%MREDIR%|$(mredir)|" \ - -e "s|%MOZ_APP_DISPLAYNAME%|$(MOZ_APP_DISPLAYNAME)|" > $@ - chmod +x $@ - - libs:: thunderbird -Index: mozilla/modules/libpr0n/decoders/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/modules/libpr0n/decoders/Makefile.in,v -retrieving revision 1.13.18.2 -diff -u -8 -p -r1.13.18.2 Makefile.in ---- mozilla/modules/libpr0n/decoders/Makefile.in 17 Feb 2006 19:03:47 -0000 1.13.18.2 -+++ mozilla/modules/libpr0n/decoders/Makefile.in 9 Feb 2009 04:03:46 -0000 -@@ -47,17 +47,17 @@ ifdef MOZ_ENABLE_GNOMEUI - TOOL_DIRS = icon/gtk icon - endif - ifneq (,$(filter WINCE WINNT,$(OS_ARCH))) - DIRS = icon/win icon - endif - ifeq ($(OS_ARCH),OS2) - DIRS = icon/os2 icon - endif --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - DIRS = icon/beos icon - endif - ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) - DIRS = icon/mac icon - endif - endif # icon - - DIRS += $(filter-out icon,$(MOZ_IMG_DECODERS)) -Index: mozilla/modules/libpr0n/decoders/icon/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/modules/libpr0n/decoders/icon/Makefile.in,v -retrieving revision 1.17.8.6 -diff -u -8 -p -r1.17.8.6 Makefile.in ---- mozilla/modules/libpr0n/decoders/icon/Makefile.in 30 May 2006 15:46:21 -0000 1.17.8.6 -+++ mozilla/modules/libpr0n/decoders/icon/Makefile.in 9 Feb 2009 04:03:46 -0000 -@@ -77,17 +77,17 @@ endif - ifeq ($(OS_ARCH),OS2) - PLATFORM = os2 - endif - - ifeq ($(OS_ARCH),Darwin) - PLATFORM = mac - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - PLATFORM = beos - endif - - REQUIRES = xpcom \ - string \ - gfx \ - imglib2 \ - necko \ -@@ -97,17 +97,17 @@ CPPSRCS = \ - nsIconURI.cpp \ - nsIconModule.cpp \ - nsIconProtocolHandler.cpp \ - $(NULL) - - ifdef MOZ_ENABLE_GNOMEUI - USE_ICON_DECODER = 1 - endif --ifeq (,$(filter-out Darwin OS2 BeOS,$(OS_ARCH))) -+ifeq (,$(filter-out Darwin OS2 BeOS Haiku,$(OS_ARCH))) - USE_ICON_DECODER = 1 - endif - - ifdef USE_ICON_DECODER - CPPSRCS += nsIconDecoder.cpp - DEFINES += -DUSE_ICON_DECODER - endif - -Index: mozilla/modules/libreg/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/modules/libreg/src/Makefile.in,v -retrieving revision 1.39 -diff -u -8 -p -r1.39 Makefile.in ---- mozilla/modules/libreg/src/Makefile.in 18 Apr 2004 22:00:45 -0000 1.39 -+++ mozilla/modules/libreg/src/Makefile.in 9 Feb 2009 04:03:47 -0000 -@@ -61,17 +61,17 @@ FORCE_STATIC_LIB = 1 - - # Force use of PIC - FORCE_USE_PIC = 1 - - include $(topsrcdir)/config/config.mk - - DEFINES += -DUSE_BUFFERED_REGISTRY_IO - # Memory mapped files are not supported under QNX, Neutrino, HP-UX and BeOS --#ifeq (,$(filter BeOS HP-UX QNX,$(OS_ARCH))) -+#ifeq (,$(filter BeOS Haiku HP-UX QNX,$(OS_ARCH))) - #CSRCS += mmapio.c - #DEFINES += -DUSE_MMAP_REGISTRY_IO - #endif - - include $(topsrcdir)/config/rules.mk - - R_%.o: %.c - $(CC) $(OUTOPTION)$@ -c $(COMPILE_CFLAGS) -DSTANDALONE_REGISTRY $< -Index: mozilla/modules/plugin/base/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/modules/plugin/base/src/Makefile.in,v -retrieving revision 1.104 -diff -u -8 -p -r1.104 Makefile.in ---- mozilla/modules/plugin/base/src/Makefile.in 8 Jun 2005 16:48:43 -0000 1.104 -+++ mozilla/modules/plugin/base/src/Makefile.in 9 Feb 2009 04:03:55 -0000 -@@ -91,17 +91,17 @@ CPPSRCS = \ - ns4xPluginInstance.cpp \ - nsPluginHostImpl.cpp \ - nsPluginModule.cpp \ - nsPluginInstancePeer.cpp \ - nsPluginDirServiceProvider.cpp \ - nsJSNPRuntime.cpp \ - $(NULL) - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += nsPluginsDirBeOS.cpp - CPPSRCS += nsPluginNativeWindow.cpp - else - ifneq (,$(filter WINNT WINCE,$(OS_ARCH))) - CPPSRCS += nsPluginsDirWin.cpp - CPPSRCS += nsPluginNativeWindowWin.cpp - else - ifeq ($(MOZ_WIDGET_TOOLKIT),os2) -Index: mozilla/nsprpub/configure.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/configure.in,v -retrieving revision 1.199.2.17 -diff -u -8 -p -r1.199.2.17 configure.in ---- mozilla/nsprpub/configure.in 31 Oct 2007 18:07:38 -0000 1.199.2.17 -+++ mozilla/nsprpub/configure.in 9 Feb 2009 04:04:09 -0000 -@@ -358,17 +358,17 @@ if test -z "$SKIP_PATH_CHECKS"; then - AC_PATH_PROG(WHOAMI, $WHOAMI whoami, echo not_whoami) - fi - - if test -n "$MOZ_DEBUG"; then - AC_DEFINE(DEBUG) - DEFINES="$DEFINES -UNDEBUG" - - case "${target_os}" in -- beos*) -+ beos*|haiku*) - DEFINES="$DEFINES -DDEBUG_${USER}" - ;; - msvc*|mks*|cygwin*|mingw*|os2*) - DEFINES="$DEFINES -DDEBUG_`echo ${USERNAME} | sed -e 's| |_|g'`" - ;; - *) - DEFINES="$DEFINES -DDEBUG_`$WHOAMI`" - ;; -@@ -787,17 +787,17 @@ case "$host" in - NSINSTALL=nsinstall - ;; - *-cygwin*|*-msvc*|*-mks*) - NSINSTALL='$(CYGWIN_WRAPPER) nsinstall' - if test `echo "${PATH}" | grep -c \;` = 0; then - CYGWIN_WRAPPER='sh $(topsrcdir)/build/cygwin-wrapper' - fi - ;; --*-beos*) -+*-beos*|*-haiku*) - HOST_CFLAGS="$HOST_CFLAGS -DXP_BEOS -DBeOS -DBEOS -D_POSIX_SOURCE" - ;; - *os2*) - ;; - *) - HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX" - ;; - esac -@@ -862,34 +862,50 @@ case "$target" in - OBJECT_MODE=64 - else - MDCPUCFG_H=_aix32.cfg - fi - PR_MD_CSRCS=aix.c - RESOLVE_LINK_SYMBOLS=1 - ;; - --*-beos*) -+*-beos*|*-haiku*) - AC_DEFINE(XP_BEOS) - AC_DEFINE(BeOS) - AC_DEFINE(BEOS) - AC_DEFINE(_POSIX_SOURCE) -- DSO_LDOPTS=-nostart -+ DSO_CFLAGS=-fPIC -+ DSO_LDOPTS='-nostart' -+ - MDCPUCFG_H=_beos.cfg - USE_BTHREADS=1 - PR_MD_ARCH_DIR=beos - RESOLVE_LINK_SYMBOLS=1 -+ -+ _HAIKU_BUILD=0 -+ AC_CHECK_LIB(network,main,_HAIKU_BUILD=1) -+ if test "$_HAIKU_BUILD" = 1; then -+ OS_LIBS="$OS_LIBS -lnetwork" -+ AC_DEFINE(XP_HAIKU) -+ AC_DEFINE(BONE_VERSION) -+ else -+ AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) -+ fi -+ - case "${target_cpu}" in - i*86) -- _OPTIMIZE_FLAGS=-O2 -- _DEBUG_FLAGS='-gdwarf-2 -O0' -+ AC_DEFINE(i586) -+ CPU_ARCH=i586 -+ _OPTIMIZE_FLAGS=-O3 -+ _DEBUG_FLAGS='-gdwarf-2 -O0 -fno-inline' - MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@' -- AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) - ;; - powerpc) -+ AC_DEFINE(ppc) -+ CPU_ARCH=ppc - CC=mwcc - CCC=mwcc - LD=mwld - DSO_LDOPTS='-xms -export pragma -init _init_routine_ -term _term_routine_ -lroot -lnet /boot/develop/lib/ppc/glue-noinit.a /boot/develop/lib/ppc/init_term_dyn.o /boot/develop/lib/ppc/start_dyn.o' - _OPTIMIZE_FLAGS=-O2 - _DEBUG_FLAGS='-g -O0' - ;; - esac -@@ -2164,16 +2180,18 @@ dnl AC_CHECK_LIB(vms_jackets, main) - - - dnl We don't want anything to link with libdl even if it's present on OS X, - dnl since it's not used and not part of the default installation. - - case $target in - *-darwin*) - ;; -+*-beos*|*-haiku*) -+ ;; - *) - AC_CHECK_LIB(dl, dlopen, - AC_CHECK_HEADER(dlfcn.h, - OS_LIBS="-ldl $OS_LIBS")) - ;; - esac - - -@@ -2352,17 +2370,17 @@ AC_ARG_ENABLE(nspr-threads, - [ --enable-nspr-threads Build using classic nspr threads], - [ if test "$enableval" = "yes"; then - USE_PTHREADS= - USE_USER_PTHREADS= - USE_NSPR_THREADS=1 - fi]) - - case "$target" in --*-beos*) -+*-beos*|*-haiku*) - AC_ARG_WITH(bthreads, - [ --with-bthreads Use system bthreads library as thread subsystem - (BeOS only)], - [ if test "$withval" = "yes"; then - USE_BTHREADS=1 - USE_USER_PTHREADS= - USE_PTHREADS= - fi]) -Index: mozilla/nsprpub/build/autoconf/config.guess -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/build/autoconf/config.guess,v -retrieving revision 1.15 -diff -u -8 -p -r1.15 config.guess ---- mozilla/nsprpub/build/autoconf/config.guess 18 Apr 2003 19:20:18 -0000 1.15 -+++ mozilla/nsprpub/build/autoconf/config.guess 9 Feb 2009 04:04:13 -0000 -@@ -1,34 +1,37 @@ - #! /bin/sh - # Attempt to guess a canonical system name. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2008-01-08' - - # This file 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Originally written by Per Bothner . - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # - # This script attempts to guess a canonical system name similar to - # config.sub. If it succeeds, it prints the system name on stdout, and - # exits with 0. Otherwise, it exits with 1. - # -@@ -48,34 +51,34 @@ Operation modes: - -v, --version print version number, then exit - - Report bugs and patches to ." - - version="\ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) -@@ -99,35 +102,36 @@ trap 'exit 1' 1 2 15 - # use `HOST_CC' if defined, but it is deprecated. - - # Portable tmp directory creation inspired by the Autoconf team. - - set_cc_for_build=' - trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; - trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; - : ${TMPDIR=/tmp} ; -- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || -+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || -+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; - dummy=$tmp/dummy ; - tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; - case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; --esac ;' -+esac ; set_cc_for_build= ;' - - # This is needed to find uname on a Pyramid OSx when run in the BSD universe. - # (ghazi@noc.rutgers.edu 1994-08-24) - if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH - fi - - UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -@@ -152,16 +156,17 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; -+ sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ -@@ -190,60 +195,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" -- exit 0 ;; -- amiga:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- arc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- hp300:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mac68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- macppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme88k:OpenBSD:*:*) -- echo m88k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvmeppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- pmax:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sgi:OpenBSD:*:*) -- echo mipseb-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sun3:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- wgrisc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:OpenBSD:*:*) -- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` -+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} -+ exit ;; -+ *:ekkoBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} -+ exit ;; -+ *:SolidBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} -+ exit ;; -+ macppc:MirBSD:*:*) -+ echo powerpc-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; -+ *:MirBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; - alpha:OSF1:*:*) -- if test $UNAME_RELEASE = "V4.0"; then -+ case $UNAME_RELEASE in -+ *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` -- fi -+ ;; -+ *5.*) -+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -+ ;; -+ esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; -@@ -271,147 +258,163 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac -+ # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. -- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -- exit 0 ;; -+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -+ exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix -- exit 0 ;; -+ exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 -- exit 0 ;; -+ exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 -- exit 0;; -+ exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos -- exit 0 ;; -+ exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos -- exit 0 ;; -+ exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition -- exit 0 ;; -+ exit ;; -+ *:z/VM:*:*) -+ echo s390-ibm-zvmoe -+ exit ;; -+ *:OS400:*:*) -+ echo powerpc-ibm-os400 -+ exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} -- exit 0;; -+ exit ;; -+ arm:riscos:*:*|arm:RISCOS:*:*) -+ echo arm-unknown-riscos -+ exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp -- exit 0;; -+ exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi -- exit 0 ;; -+ exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 -- exit 0 ;; -- DRS?6000:UNIX_SV:4.2*:7*) -+ exit ;; -+ DRS?6000:unix:4.0:6*) -+ echo sparc-icl-nx6 -+ exit ;; -+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in -- sparc) echo sparc-icl-nx7 && exit 0 ;; -+ sparc) echo sparc-icl-nx7; exit ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -- i86pc:SunOS:5.*:*) -+ exit ;; -+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` -- exit 0 ;; -+ exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac -- exit 0 ;; -+ exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ m68k:machten:*:*) -+ echo m68k-apple-machten${UNAME_RELEASE} -+ exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 -- exit 0 ;; -+ exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #ifdef __cplusplus - #include /* for printf() prototype */ - int main (int argc, char *argv[]) { - #else - int main (argc, argv) int argc; char *argv[]; { -@@ -425,145 +428,150 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c \ -- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ -- && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && -+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && -+ SYSTEM_NAME=`$dummy $dummyarg` && -+ { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax -- exit 0 ;; -+ exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix -- exit 0 ;; -+ exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 -- exit 0 ;; -+ exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 -- exit 0 ;; -+ exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 -- exit 0 ;; -+ exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 -- exit 0 ;; -+ exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd -- exit 0 ;; -+ exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` -- exit 0 ;; -+ exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. -- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' -+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix -- exit 0 ;; -+ exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -- echo rs6000-ibm-aix3.2.5 -+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` -+ then -+ echo "$SYSTEM_NAME" -+ else -+ echo rs6000-ibm-aix3.2.5 -+ fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi -- exit 0 ;; -- *:AIX:*:[45]) -+ exit ;; -+ *:AIX:*:[456]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix -- exit 0 ;; -+ exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 -- exit 0 ;; -+ exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to -- exit 0 ;; # report: romp-ibm BSD 4.3 -+ exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx -- exit 0 ;; -+ exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 -- exit 0 ;; -+ exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd -- exit 0 ;; -+ exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 -- exit 0 ;; -+ exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` -@@ -615,31 +623,41 @@ EOF - } - EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then -- # avoid double evaluation of $set_cc_for_build -- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build -- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null -+ eval $set_cc_for_build -+ -+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating -+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler -+ # generating 64-bit code. GNU and HP use different nomenclature: -+ # -+ # $ CC_FOR_BUILD=cc ./config.guess -+ # => hppa2.0w-hp-hpux11.23 -+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess -+ # => hppa64-hp-hpux11.23 -+ -+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | -+ grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); -@@ -657,181 +675,224 @@ EOF - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 -- exit 0 ;; -+ exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd -- exit 0 ;; -+ exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd -- exit 0 ;; -+ exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix -- exit 0 ;; -+ exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf -- exit 0 ;; -+ exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf -- exit 0 ;; -+ exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi -- exit 0 ;; -+ exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites -- exit 0 ;; -+ exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - *:UNICOS/mp:*:*) -- echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -+ exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -- exit 0 ;; -+ exit ;; -+ 5000:UNIX_System_V:4.*:*) -+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -+ exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:FreeBSD:*:*) -- # Determine whether the default compiler uses glibc. -- eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -- #include -- #if __GLIBC__ >= 2 -- LIBC=gnu -- #else -- LIBC= -- #endif --EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} -- exit 0 ;; -+ case ${UNAME_MACHINE} in -+ pc98) -+ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ amd64) -+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ *) -+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ esac -+ exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin -- exit 0 ;; -- i*:MINGW*:*) -+ exit ;; -+ *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 -- exit 0 ;; --#### MozillaHack --# Netscape's hacked uname -- xx:WINNT:* | xx:WIN95:*) -- echo i586-pc-msvc -- exit 0 ;; --### End MozillaHack -+ exit ;; -+ i*:windows32*:*) -+ # uname -m includes "-pc" on this system. -+ echo ${UNAME_MACHINE}-mingw32 -+ exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 -- exit 0 ;; -- x86:Interix*:3*) -- echo i586-pc-interix3 -- exit 0 ;; -+ exit ;; -+ *:Interix*:[3456]*) -+ case ${UNAME_MACHINE} in -+ x86) -+ echo i586-pc-interix${UNAME_RELEASE} -+ exit ;; -+ EM64T | authenticamd) -+ echo x86_64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ IA64) -+ echo ia64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks -- exit 0 ;; -+ exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix -- exit 0 ;; -+ exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin -- exit 0 ;; -+ exit ;; -+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) -+ echo x86_64-unknown-cygwin -+ exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin -- exit 0 ;; -+ exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - *:GNU:*:*) -+ # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` -- exit 0 ;; -+ exit ;; -+ *:GNU/*:*:*) -+ # other systems with GNU libc and userland -+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu -+ exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix -- exit 0 ;; -+ exit ;; - arm*:Linux:*:*) -+ eval $set_cc_for_build -+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ -+ | grep -q __ARM_EABI__ -+ then -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ else -+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ fi -+ exit ;; -+ avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ cris:Linux:*:*) -+ echo cris-axis-linux-gnu -+ exit ;; -+ crisv32:Linux:*:*) -+ echo crisv32-axis-linux-gnu -+ exit ;; -+ frv:Linux:*:*) -+ echo frv-unknown-linux-gnu -+ exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ m32r*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) -@@ -839,62 +900,78 @@ EOF - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; -+ or32:Linux:*:*) -+ echo or32-unknown-linux-gnu -+ exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -- exit 0 ;; -+ exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac -- exit 0 ;; -+ exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux -- exit 0 ;; -+ exit ;; -+ sh64*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ vax:Linux:*:*) -+ echo ${UNAME_MACHINE}-dec-linux-gnu -+ exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ xtensa*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g -@@ -902,99 +979,113 @@ EOF - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" -- exit 0 ;; -+ exit ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" -- exit 0 ;; -+ exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" -- exit 0 ;; -+ exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else -- #ifdef __INTEL_COMPILER -+ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif -+ #ifdef __dietlibc__ -+ LIBC=dietlibc -+ #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 -- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^LIBC/{ -+ s: ::g -+ p -+ }'`" -+ test x"${LIBC}" != x && { -+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" -+ exit -+ } -+ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 -- exit 0 ;; -+ exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx -- exit 0 ;; -+ exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop -- exit 0 ;; -+ exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos -- exit 0 ;; -+ exit ;; -+ i*86:syllable:*:*) -+ echo ${UNAME_MACHINE}-pc-syllable -+ exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi -- exit 0 ;; -- i*86:*:5:[78]*) -+ exit ;; -+ i*86:*:5:[678]*) -+ # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ -@@ -1002,214 +1093,248 @@ EOF - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi -- exit 0 ;; -+ exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 -- exit 0 ;; -+ exit ;; - paragon:*:*:*) - echo i860-intel-osf1 -- exit 0 ;; -+ exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi -- exit 0 ;; -+ exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv -- exit 0 ;; -+ exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv -- exit 0 ;; -+ exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix -- exit 0 ;; -- M68*:*:R3V[567]*:*) -- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; -- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0) -+ exit ;; -+ M68*:*:R3V[5678]*:*) -+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; -+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4.3${OS_REL} && exit 0 -+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4 && exit 0 ;; -+ && { echo i486-ncr-sysv4; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 -- exit 0 ;; -+ exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi -- exit 0 ;; -+ exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 -- exit 0 ;; --#### MozillaHack -- *:*OpenVMS*:*:*) -- case "${UNAME_SYSTEM}" in -- POSIX_for_OpenVMS_AXP) echo alpha-dec-openvmsposix ;; -- POSIX_for_OpenVMS_VAX) echo vax-dec-openvmsposix ;; -- OpenVMS) echo alpha-dec-openvms ;; -- *) echo unknown-dec-openvms ;; -- esac -- exit 0 ;; --#### End MozillaHack -+ exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 -- exit 0 ;; -+ exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 -- exit 0 ;; -+ exit ;; -+ i*86:VOS:*:*) -+ # From Paul.Green@stratus.com. -+ echo ${UNAME_MACHINE}-stratus-vos -+ exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos -- exit 0 ;; -+ exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 -- exit 0 ;; -+ exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos -- exit 0 ;; -+ exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos -- exit 0 ;; -+ exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos -- exit 0 ;; -+ 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 0 ;; -+ exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ SX-7:SUPER-UX:*:*) -+ echo sx7-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8:SUPER-UX:*:*) -+ echo sx8-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8R:SUPER-UX:*:*) -+ echo sx8r-nec-superux${UNAME_RELEASE} -+ exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Darwin:*:*) -- case `uname -p` in -- *86) UNAME_PROCESSOR=i686 ;; -- powerpc) UNAME_PROCESSOR=powerpc ;; -+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown -+ case $UNAME_PROCESSOR in -+ unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:QNX:*:4*) - echo i386-pc-qnx -- exit 0 ;; -- NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) -+ exit ;; -+ NSE-?:NONSTOP_KERNEL:*:*) -+ echo nse-tandem-nsk${UNAME_RELEASE} -+ exit ;; -+ NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux -- exit 0 ;; -+ exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv -- exit 0 ;; -+ exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 -- exit 0 ;; -+ exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 -- exit 0 ;; -+ exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex -- exit 0 ;; -+ exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 -- exit 0 ;; -+ exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 -- exit 0 ;; -+ exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 -- exit 0 ;; -+ exit ;; - *:ITS:*:*) - echo pdp10-unknown-its -- exit 0 ;; -+ exit ;; -+ SEI:*:*:SEIUX) -+ echo mips-sei-seiux${UNAME_RELEASE} -+ exit ;; -+ *:DragonFly:*:*) -+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` -+ exit ;; -+ *:*VMS:*:*) -+ UNAME_MACHINE=`(uname -p) 2>/dev/null` -+ case "${UNAME_MACHINE}" in -+ A*) echo alpha-dec-vms ; exit ;; -+ I*) echo ia64-dec-vms ; exit ;; -+ V*) echo vax-dec-vms ; exit ;; -+ esac ;; -+ *:XENIX:*:SysV) -+ echo i386-pc-xenix -+ exit ;; -+ i*86:skyos:*:*) -+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' -+ exit ;; -+ i*86:rdos:*:*) -+ echo ${UNAME_MACHINE}-pc-rdos -+ exit ;; - esac - - #echo '(No uname command or uname output not recognized.)' 1>&2 - #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - - eval $set_cc_for_build - cat >$dummy.c </dev/null && $dummy && exit 0 -+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - - # Apollos put the system type in the environment. - --test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } -+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - - # Convex versions that predate uname can use getsysinfo(1) - - if [ -x /usr/convex/getsysinfo ] - then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - c34*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - c38*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - c4*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - esac - fi - - cat >&2 < in order to provide the needed - information to handle your system. - - config.guess timestamp = $timestamp - -Index: mozilla/nsprpub/build/autoconf/config.sub -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/build/autoconf/config.sub,v -retrieving revision 1.16 -diff -u -8 -p -r1.16 config.sub ---- mozilla/nsprpub/build/autoconf/config.sub 18 Apr 2003 19:20:18 -0000 1.16 -+++ mozilla/nsprpub/build/autoconf/config.sub 9 Feb 2009 04:04:16 -0000 -@@ -1,14 +1,15 @@ - #! /bin/sh - # Configuration validation subroutine script. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2008-01-16' - - # This file is (in principle) common to ALL GNU software. - # The presence of a machine in this file suggests that SOME GNU software - # can handle that machine. It does not imply ALL GNU software can. - # - # This file 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 -@@ -16,24 +17,25 @@ timestamp='2003-02-22' - # - # 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., 59 Temple Place - Suite 330, --# Boston, MA 02111-1307, USA. -- -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. -+# - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # - # Configuration subroutine to validate and canonicalize a configuration type. - # Supply the specified configuration type as an argument. - # If it is invalid, we print an error message on stderr and exit with code 1. - # Otherwise, we print the canonical config type on stdout and succeed. - -@@ -65,46 +67,46 @@ Operation modes: - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - - Report bugs and patches to ." - - version="\ - GNU config.sub ($timestamp) - --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 -- exit 0;; -+ exit ;; - - * ) - break ;; - esac - done - - case $# in - 0) echo "$me: missing argument$help" >&2 -@@ -113,17 +115,19 @@ case $# in - *) echo "$me: too many arguments$help" >&2 - exit 1;; - esac - - # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). - # Here we must recognize all the valid KERNEL-OS combinations. - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` - case $maybe_os in -- nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) -+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ -+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ -+ storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi -@@ -139,17 +143,17 @@ case $os in - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -- -apple | -axis) -+ -apple | -axis | -knuth | -cray) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) -@@ -164,32 +168,40 @@ case $os in - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; -+ -sco6) -+ os=-sco5v6 -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; -+ -sco5v6*) -+ # Don't forget version if it is 3.2v4 or newer. -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) -@@ -219,171 +231,196 @@ case $os in - os=-mint - ;; - esac - - # Decode aliases for certain CPU-COMPANY combinations. - case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. --#### MozillaHack --# mips*el --#### End MozillaHack - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ -- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ -- | clipper \ -+ | am33_2.0 \ -+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ -+ | bfin \ -+ | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ -- | fr30 | frv \ -+ | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ -- | ip2k \ -- | m32r | m68000 | m68k | m88k | mcore \ -- | mips | mipsbe | mipseb | mips*el | mipsle \ -+ | ip2k | iq2000 \ -+ | m32c | m32r | m32rle | m68000 | m68k | m88k \ -+ | maxq | mb | microblaze | mcore | mep \ -+ | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64vr | mips64vrel \ - | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ -+ | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ -+ | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ -+ | mt \ - | msp430 \ -+ | nios | nios2 \ - | ns16k | ns32k \ -- | openrisc | or32 \ -+ | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ -- | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ -+ | score \ -+ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ -- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ -- | strongarm \ -- | tahoe | thumb | tic80 | tron \ -+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ -+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ -+ | spu | strongarm \ -+ | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ -- | x86 | xscale | xstormy16 | xtensa \ -+ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; -+ ms1) -+ basic_machine=mt-unknown -+ ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. --#### MozillaHack --# mips*el --#### End MozillaHack - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ -- | avr-* \ -- | bs2000-* \ -+ | avr-* | avr32-* \ -+ | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ -- | clipper-* | cydra-* \ -+ | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ -- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ -+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ -- | ip2k-* \ -- | m32r-* \ -+ | ip2k-* | iq2000-* \ -+ | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -- | m88110-* | m88k-* | mcore-* \ -- | mips-* | mipsbe-* | mipseb-* | mips*el-* | mipsle-* \ -+ | m88110-* | m88k-* | maxq-* | mcore-* \ -+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ -+ | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ -+ | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ -+ | mmix-* \ -+ | mt-* \ - | msp430-* \ -- | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ -+ | nios-* | nios2-* \ -+ | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ -- | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ -+ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ -- | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ -- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ -+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ -+ | sparclite-* \ -+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ -- | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ -- | xtensa-* \ -+ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ -+ | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-*) - ;; -+ # Recognize the basic CPU types without company name, with glob match. -+ xtensa*) -+ basic_machine=$basic_machine-unknown -+ ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; -+ abacus) -+ basic_machine=abacus-unknown -+ ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; -+ amd64) -+ basic_machine=x86_64-pc -+ ;; -+ amd64-*) -+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) -@@ -405,16 +442,24 @@ case $basic_machine in - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; -+ blackfin) -+ basic_machine=bfin-unknown -+ os=-linux -+ ;; -+ blackfin-*) -+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; -@@ -433,22 +478,37 @@ case $basic_machine in - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; -+ craynv) -+ basic_machine=craynv-cray -+ os=-unicosmp -+ ;; -+ cr16) -+ basic_machine=cr16-unknown -+ os=-elf -+ ;; - crds | unos) - basic_machine=m68k-crds - ;; -+ crisv32 | crisv32-* | etraxfs*) -+ basic_machine=crisv32-axis -+ ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; -+ crx) -+ basic_machine=crx-unknown -+ os=-elf -+ ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec -@@ -461,16 +521,20 @@ case $basic_machine in - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; -+ djgpp) -+ basic_machine=i586-pc -+ os=-msdosdjgpp -+ ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; -@@ -611,66 +675,71 @@ case $basic_machine in - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; -+ m68knommu) -+ basic_machine=m68k-unknown -+ os=-linux -+ ;; -+ m68knommu-*) -+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; --#### MozillaHack -- i386-msvc | msvc) -- basic_machine=i386-pc -- os=-msvc -+ mingw32ce) -+ basic_machine=arm-unknown -+ os=-mingw32ce - ;; --#### End MozillaHack - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; -- mmix*) -- basic_machine=mmix-knuth -- os=-mmixware -- ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; -+ ms1-*) -+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` -+ ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; -@@ -729,30 +798,29 @@ case $basic_machine in - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; -- nv1) -- basic_machine=nv1-cray -- os=-unicosmp -- ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; -- or32 | or32-*) -+ openrisc | openrisc-*) - basic_machine=or32-unknown -- os=-coff -+ ;; -+ os400) -+ basic_machine=powerpc-ibm -+ os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k -@@ -760,43 +828,63 @@ case $basic_machine in - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; -+ parisc) -+ basic_machine=hppa-unknown -+ os=-linux -+ ;; -+ parisc-*) -+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; -+ pc98) -+ basic_machine=i386-pc -+ ;; -+ pc98-*) -+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; -- pentiumii | pentium2) -+ pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; -+ pentium4) -+ basic_machine=i786-pc -+ ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -- pentiumii-* | pentium2-*) -+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -+ pentium4-*) -+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` -@@ -819,16 +907,20 @@ case $basic_machine in - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; -+ rdos) -+ basic_machine=i386-pc -+ os=-rdos -+ ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) -@@ -845,23 +937,37 @@ case $basic_machine in - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; -+ sde) -+ basic_machine=mipsisa32-sde -+ os=-elf -+ ;; -+ sei) -+ basic_machine=mips-sei -+ os=-seiux -+ ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; -+ sh5el) -+ basic_machine=sh5le-unknown -+ ;; -+ sh64) -+ basic_machine=sh64-unknown -+ ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; -@@ -926,45 +1032,49 @@ case $basic_machine in - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; -- tic4x | c4x*) -- basic_machine=tic4x-unknown -- os=-coff -- ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; -+ tile*) -+ basic_machine=tile-unknown -+ os=-linux-gnu -+ ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; -+ tpf) -+ basic_machine=s390x-ibm -+ os=-tpf -+ ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; -@@ -998,16 +1108,20 @@ case $basic_machine in - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; -+ xbox) -+ basic_machine=i686-pc -+ os=-mingw32 -+ ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) -@@ -1028,39 +1142,39 @@ case $basic_machine in - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; -+ mmix) -+ basic_machine=mmix-knuth -+ ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; -- sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) -+ sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; -- sh64) -- basic_machine=sh64-unknown -- ;; -- sparc | sparcv9 | sparcv9b) -+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; -@@ -1116,40 +1230,40 @@ case $os in - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. --#### MozillaHack --# msvc --#### End MozillaHack - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ -- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ -- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ -+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ -+ | -openbsd* | -solidbsd* \ -+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ -+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ -+ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ -+ | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ -- | -msvc* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ -- | -powermax* | -dnix*) -+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ -+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os -@@ -1157,34 +1271,40 @@ case $os in - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ -- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ -+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; -+ -linux-dietlibc) -+ os=-linux-dietlibc -+ ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; -+ -os400*) -+ os=-os400 -+ ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf -@@ -1196,16 +1316,19 @@ case $os in - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; -+ -syllable*) -+ os=-syllable -+ ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova -@@ -1218,16 +1341,19 @@ case $os in - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; -+ -tpf*) -+ os=-tpf -+ ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 -@@ -1254,16 +1380,19 @@ case $os in - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; -+ -zvmoe) -+ os=-zvmoe -+ ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -@@ -1276,25 +1405,34 @@ else - - # Note that if you're going to try to match "-MANUFACTURER" here (say, - # "-sun"), then you have to tell the case statement up towards the top - # that MANUFACTURER isn't an operating system. Otherwise, code above - # will signal an error saying that MANUFACTURER isn't an operating - # system, and we'll never get to this point. - - case $basic_machine in -+ score-*) -+ os=-elf -+ ;; -+ spu-*) -+ os=-elf -+ ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; -+ c4x-* | tic4x-*) -+ os=-coff -+ ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) -@@ -1310,16 +1448,19 @@ case $basic_machine in - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; -+ mep-*) -+ os=-elf -+ ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff -@@ -1328,19 +1469,25 @@ case $basic_machine in - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; -+ *-haiku) -+ os=-haiku -+ ;; - *-ibm) - os=-aix - ;; -+ *-knuth) -+ os=-mmixware -+ ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf -@@ -1463,19 +1610,25 @@ case $basic_machine in - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; -+ -os400*) -+ vendor=ibm -+ ;; - -ptx*) - vendor=sequent - ;; -+ -tpf*) -+ vendor=ibm -+ ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi -@@ -1490,16 +1643,16 @@ case $basic_machine in - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; - esac - - echo $basic_machine$os --exit 0 -+exit - - # Local variables: - # eval: (add-hook 'write-file-hooks 'time-stamp) - # time-stamp-start: "timestamp='" - # time-stamp-format: "%:y-%02m-%02d" - # time-stamp-end: "'" - # End: -Index: mozilla/nsprpub/lib/ds/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/lib/ds/Makefile.in,v -retrieving revision 1.35.2.1 -diff -u -8 -p -r1.35.2.1 Makefile.in ---- mozilla/nsprpub/lib/ds/Makefile.in 19 Oct 2006 00:39:28 -0000 1.35.2.1 -+++ mozilla/nsprpub/lib/ds/Makefile.in 9 Feb 2009 04:04:16 -0000 -@@ -180,18 +180,22 @@ endif - export:: $(TARGETS) - $(INSTALL) -m 444 $(HEADERS) $(dist_includedir) - $(INSTALL) -m 444 $(TARGETS) $(dist_libdir) - ifdef SHARED_LIBRARY - ifeq ($(OS_ARCH),HP-UX) - $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir) - $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir) - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir)/lib -+else - $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir) - endif - endif -+endif - ifeq ($(MOZ_BITS),16) - $(INSTALL) -m 444 $(HEADERS) $(MOZ_INCL) - $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/lib - $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/bin - endif - - -Index: mozilla/nsprpub/lib/libc/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/lib/libc/src/Makefile.in,v -retrieving revision 1.31.2.1 -diff -u -8 -p -r1.31.2.1 Makefile.in ---- mozilla/nsprpub/lib/libc/src/Makefile.in 19 Oct 2006 00:39:28 -0000 1.31.2.1 -+++ mozilla/nsprpub/lib/libc/src/Makefile.in 9 Feb 2009 04:04:17 -0000 -@@ -182,16 +182,20 @@ endif - - export:: $(TARGETS) - $(INSTALL) -m 444 $(TARGETS) $(dist_libdir) - ifdef SHARED_LIBRARY - ifeq ($(OS_ARCH),HP-UX) - $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir) - $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir) - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir)/lib -+else - $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir) - endif - endif -+endif - ifeq ($(MOZ_BITS),16) - $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/lib - $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/bin - endif - -Index: mozilla/nsprpub/lib/prstreams/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/lib/prstreams/Makefile.in,v -retrieving revision 1.21.2.1 -diff -u -8 -p -r1.21.2.1 Makefile.in ---- mozilla/nsprpub/lib/prstreams/Makefile.in 19 Oct 2006 00:39:28 -0000 1.21.2.1 -+++ mozilla/nsprpub/lib/prstreams/Makefile.in 9 Feb 2009 04:04:17 -0000 -@@ -64,17 +64,17 @@ ifeq ($(OS_ARCH),SunOS) - endif - - ifeq ($(OS_ARCH), IRIX) - ifneq ($(OS_RELEASE),5.3) - CCC_ONLY_FLAGS += -exceptions - endif - endif - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CFLAGS += -frtti -fexceptions - endif - - INCLUDES = -I$(dist_includedir) - - HEADERS = $(wildcard $(srcdir)/*.h) - - CSRCS = \ -@@ -113,17 +113,17 @@ else - MKSHLIB = makeC++SharedLib_r -p 0 - endif - OS_LIBS += -ldl - endif - endif - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - OS_LIBS = -lstdc++.r4 - endif - - ifeq ($(OS_ARCH), UNIXWARE) - OS_LIBS += -lC - endif - - EXTRA_LIBS = $(LIBNSPR) -Index: mozilla/nsprpub/pr/include/prio.h -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/include/prio.h,v -retrieving revision 3.40 -diff -u -8 -p -r3.40 prio.h ---- mozilla/nsprpub/pr/include/prio.h 25 Apr 2004 15:00:47 -0000 3.40 -+++ mozilla/nsprpub/pr/include/prio.h 9 Feb 2009 04:04:25 -0000 -@@ -169,38 +169,41 @@ struct PRIPv6Addr { - #define pr_s6_addr32 _S6_un._S6_u32 - #define pr_s6_addr64 _S6_un._S6_u64 - - typedef struct PRIPv6Addr PRIPv6Addr; - - union PRNetAddr { - struct { - PRUint16 family; /* address family (0x00ff maskable) */ --#ifdef XP_BEOS -- char data[10]; /* Be has a smaller structure */ --#else -+#ifndef XP_BEOS - char data[14]; /* raw address data */ -+#else -+ char data[30]; - #endif - } raw; - struct { - PRUint16 family; /* address family (AF_INET) */ - PRUint16 port; /* port number */ - PRUint32 ip; /* The actual 32 bits of address */ --#ifdef XP_BEOS -- char pad[4]; /* Be has a smaller structure */ --#else -+#ifndef XP_BEOS - char pad[8]; -+#else -+ char pad[24]; - #endif - } inet; - struct { - PRUint16 family; /* address family (AF_INET6) */ - PRUint16 port; /* port number */ - PRUint32 flowinfo; /* routing information */ - PRIPv6Addr ip; /* the actual 128 bits of address */ - PRUint32 scope_id; /* set of interfaces for a scope */ -+#ifdef XP_BEOS -+ char pad[4]; -+#endif - } ipv6; - #if defined(XP_UNIX) || defined(XP_OS2_EMX) - struct { /* Unix domain socket address */ - PRUint16 family; /* address family (AF_UNIX) */ - #ifdef XP_OS2 - char path[108]; /* null-terminated pathname */ - /* bind fails if size is not 108. */ - #else -Index: mozilla/nsprpub/pr/include/prtypes.h -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/include/prtypes.h,v -retrieving revision 3.30.2.2 -diff -u -8 -p -r3.30.2.2 prtypes.h ---- mozilla/nsprpub/pr/include/prtypes.h 5 Apr 2006 21:51:21 -0000 3.30.2.2 -+++ mozilla/nsprpub/pr/include/prtypes.h 9 Feb 2009 04:04:26 -0000 -@@ -93,29 +93,48 @@ - #define PR_IMPLEMENT_DATA(__type) __declspec(dllexport) __type - - #define PR_CALLBACK - #define PR_CALLBACK_DECL - #define PR_STATIC_CALLBACK(__x) static __x - - #elif defined(XP_BEOS) - -+/* GCC 3.3 and later support the visibility attribute. */ -+#if (__GNUC__ >= 4) || \ -+ (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) -+#define PR_VISIBILITY_DEFAULT __attribute__((visibility("default"))) -+#define PR_EXPORT(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_EXPORT_DATA(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_IMPORT(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_IMPORT_DATA(__type) extern PR_VISIBILITY_DEFAULT __type -+ -+#define PR_EXTERN(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_IMPLEMENT(__type) PR_VISIBILITY_DEFAULT __type -+#define PR_EXTERN_DATA(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_IMPLEMENT_DATA(__type) PR_VISIBILITY_DEFAULT __type -+#define PR_CALLBACK -+#define PR_CALLBACK_DECL -+#define PR_STATIC_CALLBACK(__x) static __x -+ -+#else - #define PR_EXPORT(__type) extern __declspec(dllexport) __type - #define PR_EXPORT_DATA(__type) extern __declspec(dllexport) __type - #define PR_IMPORT(__type) extern __declspec(dllexport) __type - #define PR_IMPORT_DATA(__type) extern __declspec(dllexport) __type - - #define PR_EXTERN(__type) extern __declspec(dllexport) __type - #define PR_IMPLEMENT(__type) __declspec(dllexport) __type - #define PR_EXTERN_DATA(__type) extern __declspec(dllexport) __type - #define PR_IMPLEMENT_DATA(__type) __declspec(dllexport) __type - - #define PR_CALLBACK - #define PR_CALLBACK_DECL - #define PR_STATIC_CALLBACK(__x) static __x -+#endif - - #elif defined(WIN16) - - #define PR_CALLBACK_DECL __cdecl - - #if defined(_WINDLL) - #define PR_EXPORT(__type) extern __type _cdecl _export _loadds - #define PR_IMPORT(__type) extern __type _cdecl _export _loadds -Index: mozilla/nsprpub/pr/include/md/_beos.cfg -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/include/md/_beos.cfg,v -retrieving revision 3.5.214.1 -diff -u -8 -p -r3.5.214.1 _beos.cfg ---- mozilla/nsprpub/pr/include/md/_beos.cfg 5 Apr 2006 22:00:45 -0000 3.5.214.1 -+++ mozilla/nsprpub/pr/include/md/_beos.cfg 9 Feb 2009 04:04:27 -0000 -@@ -15,16 +15,17 @@ - * The Original Code is the Netscape Portable Runtime (NSPR). - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998-2000 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): -+ * Fredrik Holmqvist - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your -@@ -35,33 +36,38 @@ - * - * ***** END LICENSE BLOCK ***** */ - - #ifndef nspr_cpucfg___ - #define nspr_cpucfg___ - - #ifndef XP_BEOS - #define XP_BEOS --#undef XP_UNIX - #endif - - #ifndef BEOS - #define BEOS - #endif - - #define PR_AF_INET6 5 /* same as AF_INET6 */ - - #ifdef __powerpc__ - #undef IS_LITTLE_ENDIAN - #define IS_BIG_ENDIAN 1 - #else - #define IS_LITTLE_ENDIAN 1 - #undef IS_BIG_ENDIAN - #endif - -+/* -+ * Fixme: Should be done according to arch -+ * Currently only x86/ia64. -+ */ -+#define PR_ALIGN_OF_WORD 4 -+ - #define PR_BYTES_PER_BYTE 1 - #define PR_BYTES_PER_SHORT 2 - #define PR_BYTES_PER_INT 4 - #define PR_BYTES_PER_INT64 8 - #define PR_BYTES_PER_LONG 4 - #define PR_BYTES_PER_FLOAT 4 - #define PR_BYTES_PER_DOUBLE 8 - #define PR_BYTES_PER_WORD 4 -Index: mozilla/nsprpub/pr/include/md/_beos.h -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/include/md/_beos.h,v -retrieving revision 3.23 -diff -u -8 -p -r3.23 _beos.h ---- mozilla/nsprpub/pr/include/md/_beos.h 17 Jan 2005 22:00:53 -0000 3.23 -+++ mozilla/nsprpub/pr/include/md/_beos.h 9 Feb 2009 04:04:27 -0000 -@@ -15,16 +15,17 @@ - * The Original Code is the Netscape Portable Runtime (NSPR). - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998-2000 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): -+ * Fredrik Holmqvist - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your -@@ -33,27 +34,26 @@ - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - - #ifndef nspr_beos_defs_h___ - #define nspr_beos_defs_h___ - --#include "prtypes.h" --#include "prio.h" --#include "prthread.h" --#include "prproces.h" --#include "prmem.h" --#include "obsolete/prsem.h" - #include -- --#include --#include - #include -+#include -+ -+/* -+ * Hack for Cross compile -+ */ -+#define FD_SETSIZE 1024 -+ -+#undef bool - - /* - * Internal configuration macros - */ - - #ifdef BONE_VERSION - #define _PR_HAVE_SOCKADDR_LEN - #endif -@@ -62,104 +62,66 @@ - #define _PR_SI_SYSNAME "BEOS" - #ifdef __powerpc__ - #define _PR_SI_ARCHITECTURE "ppc" - #else - #define _PR_SI_ARCHITECTURE "x86" - #endif - #define PR_DLL_SUFFIX ".so" - --#define _PR_VMBASE 0x30000000 --#define _PR_STACK_VMBASE 0x50000000 - #define _MD_DEFAULT_STACK_SIZE 65536L --#define _MD_MMAP_FLAGS MAP_PRIVATE - - #undef HAVE_STACK_GROWING_UP - #define HAVE_DLL --#define _PR_NO_CLOCK_TIMER - - /* - * The Atomic operations - */ - - #define _PR_HAVE_ATOMIC_OPS -+#ifdef __powerpc__ - #define _MD_INIT_ATOMIC _MD_AtomicInit -+#else -+#define _MD_INIT_ATOMIC() -+#endif - #define _MD_ATOMIC_INCREMENT _MD_AtomicIncrement - #define _MD_ATOMIC_ADD _MD_AtomicAdd - #define _MD_ATOMIC_DECREMENT _MD_AtomicDecrement - #define _MD_ATOMIC_SET _MD_AtomicSet - -+/* Makes sure to don't create cvar when creating sem */ - #define HAVE_CVAR_BUILT_ON_SEM -+ -+/* Not sure this is needed, but no harm. */ - #define _PR_GLOBAL_THREADS_ONLY -+ - #define _PR_BTHREADS --#define _PR_NEED_FAKE_POLL --#define _PR_HAVE_PEEK_BUFFER --#define _PR_PEEK_BUFFER_MAX (16 * 1024) --#define _PR_FD_NEED_EMULATE_MSG_PEEK(fd) 1 --#define _PR_CONNECT_DOES_NOT_BIND -+ - #define _PR_HAVE_O_APPEND - --/* Define threading functions and objects as native BeOS */ -+/* Define threading functions and objects as native BeOS -+ Used by bthreads. */ -+ - struct _MDThread { - thread_id tid; /* BeOS thread handle */ - sem_id joinSem; /* sems used to synchronzie joining */ - PRBool is_joining; /* TRUE if someone is currently waiting to - join this thread */ - }; - --struct _MDThreadStack { -- PRInt8 notused; --}; -- --/* -- * Lock and Semaphore related definitions -- */ -- --struct _MDLock { -- sem_id semaphoreID; -- int32 benaphoreCount; --}; -- --struct _MDCVar { -- sem_id sem1; -- sem_id sem2; -- int16 count; --}; -- --struct _MDSemaphore { -- sem_id sid; --}; -- --/* --** CPU-related definitions --*/ --struct _MDCPU { -- int8 unused; --}; -- - /* - ** Process-related definitions - */ - struct _MDProcess { - pid_t pid; - }; - --struct _MDSegment { -- PRInt8 notused; --}; -- - /* - ** File- and directory-related definitions - */ -- --#ifndef BONE_VERSION --#define BE_SOCK_SHUTDOWN_READ 0x01 --#define BE_SOCK_SHUTDOWN_WRITE 0x02 --#endif -- - struct _MDFileDesc { - PRInt32 osfd; - PRInt32 sock_state; - PRBool accepted_socket; - PRNetAddr peer_addr; - #ifndef BONE_VERSION - PRBool connectValueValid; - int connectReturnValue; -@@ -173,441 +135,114 @@ struct _MDDir { - - #define PR_DIRECTORY_SEPARATOR '/' - #define PR_DIRECTORY_SEPARATOR_STR "/" - #define PR_PATH_SEPARATOR ':' - #define PR_PATH_SEPARATOR_STR ":" - - #define GETTIMEOFDAY(tp) gettimeofday((tp), NULL) - --/* --- Memory-mapped files stuff --- not implemented on BeOS */ -- --struct _MDFileMap { -- PRInt8 unused; --}; - - /* - * Network related definitions. - */ - - #ifndef BONE_VERSION -+#define BE_SOCK_SHUTDOWN_READ 0x01 -+#define BE_SOCK_SHUTDOWN_WRITE 0x02 -+ - #define IPPROTO_IP 0 - #define AF_UNIX 2 - #define TCP_NODELAY SO_NONBLOCK - #define SO_LINGER -1 - #define SO_ERROR 4 --#endif -- --#define _PR_INTERRUPT_CHECK_INTERVAL_SECS 5 - --#ifndef BONE_VERSION - /* these aren't actually used. if they are, we're screwed */ - struct protoent { - char *p_name; /* official protocol name */ - char **p_aliases; /* alias list */ - int p_proto; /* protocol # */ - }; - - struct protoent* getprotobyname(const char* name); - struct protoent* getprotobynumber(int number); - #endif - -+/* Used by bnet.c */ -+#define _PR_INTERRUPT_CHECK_INTERVAL_SECS 5 -+ - /* - * malloc() related definitions. -+ * Avoids prmalloc.c's and prmem's code - */ -- - #undef _PR_OVERRIDE_MALLOC - - /* Miscellaneous */ - --#define _MD_ERRNO() (errno) -+#define _MD_ERRNO() (errno) - --#define _MD_CLEANUP_BEFORE_EXIT _MD_cleanup_before_exit --#define _MD_EXIT _MD_exit -+#define _MD_CLEANUP_BEFORE_EXIT() -+#define _MD_EXIT exit - - #define _MD_GET_ENV getenv - #define _MD_PUT_ENV putenv - --#define _MD_EARLY_INIT _MD_early_init --#define _MD_FINAL_INIT _MD_final_init -- --/* CPU Stuff */ -- --#define _MD_INIT_CPUS _MD_init_cpus --#define _MD_WAKEUP_CPUS _MD_wakeup_cpus --#define _MD_START_INTERRUPTS _MD_start_interrupts --#define _MD_STOP_INTERRUPTS _MD_stop_interrupts --#define _MD_DISABLE_CLOCK_INTERRUPTS _MD_disable_clock_interrupts --#define _MD_BLOCK_CLOCK_INTERRUPTS _MD_block_clock_interrupts --#define _MD_UNBLOCK_CLOCK_INTERRUPTS _MD_unblock_clock_interrupts --#define _MD_CLOCK_INTERRUPT _MD_clock_interrupt --#define _MD_INIT_STACK _MD_init_stack --#define _MD_CLEAR_STACK _MD_clear_stack --// #define _MD_GET_INTSOFF _MD_get_intsoff --// #define _MD_SET_INTSOFF _MD_set_intsoff --#define _MD_CURRENT_CPU _MD_current_cpu --#define _MD_SET_CURRENT_CPU _MD_set_current_cpu --#define _MD_INIT_RUNNING_CPU _MD_init_running_cpu --#define _MD_PAUSE_CPU _MD_pause_cpu -+#define _MD_EARLY_INIT() -+#ifdef BONE_VERSION -+#define _MD_FINAL_INIT() -+#else -+#define _MD_FINAL_INIT _MD_final_init_netserver -+#endif - - /* Thread stuff */ - - #define _MD_CURRENT_THREAD() PR_GetCurrentThread() --// #define _MD_GET_ATTACHED_THREAD _MD_get_attached_thread --#define _MD_LAST_THREAD _MD_last_thread --#define _MD_SET_CURRENT_THREAD _MD_set_current_THREAD --#define _MD_SET_LAST_THREAD _MD_set_last_thread --#define _MD_INIT_THREAD _MD_init_thread --#define _MD_EXIT_THREAD _MD_exit_thread --#define _MD_INIT_ATTACHED_THREAD _MD_init_attached_thread -- --#define _MD_SUSPEND_THREAD _MD_suspend_thread --#define _MD_RESUME_THREAD _MD_resume_thread --#define _MD_SUSPEND_CPU _MD_suspend_cpu --#define _MD_RESUME_CPU _MD_resume_cpu --#define _MD_BEGIN_SUSPEND_ALL _MD_begin_suspend_all --#define _MD_END_SUSPEND_ALL _MD_end_suspend_all --#define _MD_BEGIN_RESUME_ALL _MD_begin_resume_all --#define _MD_END_RESUME_ALL _MD_end_resume_all -- --#define _MD_GET_SP _MD_get_sp -- --#define _MD_CLEAN_THREAD _MD_clean_thread --#define _MD_CREATE_PRIMORDIAL_USER_THREAD _MD_create_primordial_user_thread --#define _MD_CREATE_USER_THREAD _MD_create_user_thread --#define _MD_INIT_PRIMORDIAL_THREAD _MD_init_primordial_thread --#define _MD_CREATE_THREAD _MD_create_thread --#define _MD_YIELD _MD_yield --#define _MD_SET_PRIORITY _MD_set_priority -- --#define _MD_SUSPENDALL _MD_suspendall --#define _MD_RESUMEALL _MD_resumeall -- --#define _MD_SWITCH_CONTEXT _MD_switch_context --#define _MD_RESTORE_CONTEXT _MD_restore_context -- --#define _MD_WAIT _MD_wait --#define _MD_WAKEUP_WAITER _MD_wakeup_waiter -- --#define _MD_SETTHREADAFFINITYMASK _MD_setthreadaffinitymask --#define _MD_GETTHREADAFFINITYMASK _MD_getthreadaffinitymask -- --/* Thread Synchronization */ -- --#define _MD_INIT_LOCKS _MD_init_locks --#define _MD_NEW_LOCK _MD_new_lock --#define _MD_FREE_LOCK _MD_free_lock --#define _MD_LOCK _MD_lock --#define _MD_TEST_AND_LOCK _MD_test_and_lock --#define _MD_UNLOCK _MD_unlock --#define _MD_IOQ_LOCK _MD_ioq_lock --#define _MD_IOQ_UNLOCK _MD_ioq_unlock --#define _MD_NEW_SEM _MD_new_sem --#define _MD_DESTROY_SEM _MD_destroy_sem --#define _MD_TIMED_WAIT_SEM _MD_timed_wait_sem --#define _MD_WAIT_SEM _MD_wait_sem --#define _MD_POST_SEM _MD_post_sem --// #define _MD_NEW_CV _MD_new_cv --// #define _MD_FREE_CV _MD_free_cv --// #define _MD_WAIT_CV _MD_wait_cv --// #define _MD_NOTIFY_CV _MD_notify_cv --// #define _MD_NOTIFYALL_CV _MD_notifyall_cv -+ - - /* File I/O */ - --/* don't need any I/O initializations */ --#define _MD_INIT_IO() --#define _MD_INIT_FILEDESC(fd) -- --#define _MD_OPEN_DIR _MD_open_dir --#define _MD_READ_DIR _MD_read_dir --#define _MD_CLOSE_DIR _MD_close_dir --#define _MD_MAKE_NONBLOCK _MD_make_nonblock --#define _MD_SET_FD_INHERITABLE _MD_set_fd_inheritable --#define _MD_INIT_FD_INHERITABLE _MD_init_fd_inheritable --#define _MD_QUERY_FD_INHERITABLE _MD_query_fd_inheritable --#define _MD_OPEN _MD_open --#define _MD_OPEN_FILE _MD_open --#define _MD_CLOSE_FILE _MD_close_file --#define _MD_READ _MD_read --#define _MD_WRITE _MD_write --#define _MD_WRITEV _MD_writev -+#define _PR_MD_WRITE -+ -+/* -+These are defined in primpl.h so that they are avail for all, but we -+have no calls, and pthreads doesn't either. - #define _MD_LSEEK _MD_lseek - #define _MD_LSEEK64 _MD_lseek64 --#define _MD_FSYNC _MD_fsync --#define _MD_DELETE _MD_delete -+ - #define _MD_GETFILEINFO _MD_getfileinfo - #define _MD_GETFILEINFO64 _MD_getfileinfo64 - #define _MD_GETOPENFILEINFO _MD_getopenfileinfo - #define _MD_GETOPENFILEINFO64 _MD_getopenfileinfo64 --#define _MD_RENAME _MD_rename --#define _MD_ACCESS _MD_access --#define _MD_STAT stat --#define _MD_MKDIR _MD_mkdir --#define _MD_MAKE_DIR _MD_mkdir --#define _MD_RMDIR _MD_rmdir --#define _MD_PR_POLL _MD_pr_poll -+*/ - - /* Network I/O */ - --#define _MD_CLOSE_SOCKET _MD_close_socket --#define _MD_CONNECT _MD_connect --#define _MD_ACCEPT _MD_accept --#define _MD_BIND _MD_bind --#define _MD_LISTEN _MD_listen --#define _MD_SHUTDOWN _MD_shutdown --#define _MD_RECV _MD_recv --#define _MD_SEND _MD_send --#define _MD_ACCEPT_READ _MD_accept_read --#define _MD_GETSOCKNAME _MD_getsockname --#define _MD_GETPEERNAME _MD_getpeername --#define _MD_GETSOCKOPT _MD_getsockopt --#define _MD_SETSOCKOPT _MD_setsockopt --#define _MD_RECVFROM _MD_recvfrom --#define _MD_SENDTO _MD_sendto --#define _MD_SOCKETPAIR _MD_socketpair --#define _MD_SOCKET _MD_socket --#define _MD_SOCKETAVAILABLE _MD_socketavailable --#define _MD_PIPEAVAILABLE _MD_socketavailable -- --#define _MD_GET_SOCKET_ERROR() (errno) -+#define _MD_GET_SOCKET_ERROR() (errno) - #define _MD_GETHOSTNAME _MD_gethostname - --#define _MD_SELECT select -- - /* Process management */ - - #define _MD_CREATE_PROCESS _MD_create_process - #define _MD_DETACH_PROCESS _MD_detach_process - #define _MD_WAIT_PROCESS _MD_wait_process - #define _MD_KILL_PROCESS _MD_kill_process - --/* Atomic data operations */ -- --// #define _MD_INIT_ATOMIC _MD_init_atomic --// #define _MD_ATOMIC_INCREMENT _MD_atomic_increment --// #define _MD_ATOMIC_DECREMENT _MD_atomic_decrement --// #define _MD_ATOMIC_SET _MD_atomic_set -- --/* memory management */ -- --#define _MD_INIT_SEGS _MD_init_segs --#define _MD_ALLOC_SEGMENT _MD_alloc_segment --#define _MD_FREE_SEGMENT _MD_free_segment -- - /* Memory mapped file I/O */ - - #define _MD_CREATE_FILE_MAP _MD_create_file_map - #define _MD_GET_MEM_MAP_ALIGNMENT _MD_get_mem_map_alignment - #define _MD_MEM_MAP _MD_mem_map - #define _MD_MEM_UNMAP _MD_mem_unmap - #define _MD_CLOSE_FILE_MAP _MD_close_file_map - - /* Time related */ - --#define _MD_NOW _MD_now --#define _MD_INTERVAL_INIT _MD_interval_init -+#define _MD_INTERVAL_INIT() - #define _MD_GET_INTERVAL _MD_get_interval - #define _MD_INTERVAL_PER_SEC _MD_interval_per_sec - - /* File locking */ - - #define _MD_LOCKFILE _MD_lockfile - #define _MD_TLOCKFILE _MD_tlockfile - #define _MD_UNLOCKFILE _MD_unlockfile - --/** -- * Prototypes for machine dependent function implementations. (Too bad -- * NSPR's MD system blows so much that we have to reiterate every stinking -- * thing we implement here in our MD header file.) -- */ -- --/* Miscellaneous */ -- --NSPR_API(void) _MD_cleanup_before_exit(void); --NSPR_API(void) _MD_exit(PRIntn status); -- --NSPR_API(char*) _MD_get_env(const char *name); --NSPR_API(PRIntn) _MD_put_env(const char *name); -- --NSPR_API(void) _MD_early_init(void); --NSPR_API(void) _MD_final_init(void); -- --/* CPU Stuff */ -- --NSPR_API(void) _MD_init_cpus(); --NSPR_API(void) _MD_wakeup_cpus(); --NSPR_API(void) _MD_start_interrupts(void); --NSPR_API(void) _MD_stop_interrupts(void); --NSPR_API(void) _MD_disable_clock_interrupts(void); --NSPR_API(void) _MD_block_clock_interrupts(void); --NSPR_API(void) _MD_unblock_clock_interrupts(void); --NSPR_API(void) _MD_clock_interrupt(void); --// NSPR_API(void) _MD_init_stack(PRThreadStack *ts, PRIntn redzone); --// NSPR_API(void) _MD_clear_stack(PRThreadStack* ts); --// NSPR_API(PRInt32) _MD_get_intsoff(void); --// NSPR_API(void) _MD_set_intsoff(PRInt32 _val); --// NSPR_API(_PRCPU*) _MD_current_cpu(void); --// NSPR_API(void) _MD_set_current_cpu(_PRCPU *cpu); --// NSPR_API(void) _MD_init_running_cpu(_PRCPU *cpu); --NSPR_API(PRInt32) _MD_pause_cpu(PRIntervalTime timeout); -- --/* Thread stuff */ -- --// NSPR_API(PRThread*) _MD_current_thread(void); --NSPR_API(PRThread*) _MD_get_attached_thread(void); --NSPR_API(PRThread*) _MD_last_thread(void); --NSPR_API(void) _MD_set_current_thread(PRThread *thread); --NSPR_API(void) _MD_set_last_thread(PRThread *thread); --NSPR_API(PRStatus) _MD_init_thread(PRThread *thread); --NSPR_API(void) _MD_exit_thread(PRThread *thread); --NSPR_API(PRStatus) _MD_init_attached_thread(PRThread *thread); -- --NSPR_API(void) _MD_suspend_thread(PRThread *thread); --NSPR_API(void) _MD_resume_thread(PRThread *thread); --// NSPR_API(void) _MD_suspend_cpu(_PRCPU *cpu); --// NSPR_API(void) _MD_resume_cpu(_PRCPU *cpu); --NSPR_API(void) _MD_begin_suspend_all(void); --NSPR_API(void) _MD_end_suspend_all(void); --NSPR_API(void) _MD_begin_resume_all(void); --NSPR_API(void) _MD_end_resume_all(void); -- --NSPR_API(void *) _MD_get_sp(PRThread *thread); -- --NSPR_API(void) _MD_clean_thread(PRThread *thread); --NSPR_API(void) _MD_create_primordial_user_thread(PRThread *); --NSPR_API(PRThread*) _MD_create_user_thread(PRUint32 stacksize, void (*start)(void *), void *arg); --NSPR_API(void) _MD_init_primordial_thread(PRThread *thread); --NSPR_API(PRStatus) _MD_create_thread(PRThread *thread, void (*start)(void *), PRThreadPriority priority, PRThreadScope scope, PRThreadState state, PRUint32 stackSize); --NSPR_API(void) _MD_yield(void); --NSPR_API(void) _MD_set_priority(struct _MDThread *md, PRThreadPriority newPri); -- --NSPR_API(void) _MD_suspendall(void); --NSPR_API(void) _MD_resumeall(void); -- --NSPR_API(void) _MD_init_context(PRThread *thread, char *top, void (*start) (void), PRBool *status); --NSPR_API(void) _MD_switch_context(PRThread *thread); --NSPR_API(void) _MD_restore_context(PRThread *thread); -- --NSPR_API(PRStatus) _MD_wait(PRThread *, PRIntervalTime timeout); --NSPR_API(PRStatus) _MD_wakeup_waiter(PRThread *); -- --NSPR_API(PRInt32) _MD_setthreadaffinitymask(PRThread *thread, PRUint32 mask ); --NSPR_API(PRInt32) _MD_getthreadaffinitymask(PRThread *thread, PRUint32 *mask); -- --/* Thread Synchronization */ -- --NSPR_API(void) _MD_init_locks(void); --NSPR_API(PRStatus) _MD_new_lock(struct _MDLock *md); --NSPR_API(void) _MD_free_lock(struct _MDLock *md); --NSPR_API(void) _MD_lock(struct _MDLock *md); --NSPR_API(PRIntn) _MD_test_and_lock(struct _MDLock *md); --NSPR_API(void) _MD_unlock(struct _MDLock *md); --NSPR_API(void) _MD_ioq_lock(void); --NSPR_API(void) _MD_ioq_unlock(void); --NSPR_API(void) _MD_new_sem(struct _MDSemaphore *md, PRUintn value); --NSPR_API(void) _MD_destroy_sem(struct _MDSemaphore *md); --NSPR_API(PRStatus) _MD_timed_wait_sem(struct _MDSemaphore *md, PRIntervalTime timeout); --NSPR_API(PRStatus) _MD_wait_sem(struct _MDSemaphore *md); --NSPR_API(void) _MD_post_sem(struct _MDSemaphore *md); --// NSPR_API(PRInt32) _MD_new_cv(struct _MDCVar *md); --// NSPR_API(void) _MD_free_cv(struct _MDCVar *md); --// NSPR_API(void) _MD_wait_cv(struct _MDCVar *mdCVar, struct _MDLock *mdLock, PRIntervalTime timeout); --// NSPR_API(void) _MD_notify_cv(struct _MDCVar *md, struct _MDLock *lock); --// NSPR_API(void) _MD_notifyall_cv(struct _MDCVar *md, struct _MDLock *lock); -- --/* File I/O */ -- --// NSPR_API(void) _MD_init_io(void); --NSPR_API(PRStatus) _MD_open_dir(struct _MDDir *md,const char *name); --NSPR_API(char *) _MD_read_dir(struct _MDDir *md, PRIntn flags); --NSPR_API(PRInt32) _MD_close_dir(struct _MDDir *md); --NSPR_API(void) _MD_make_nonblock(PRFileDesc *fd); --NSPR_API(void) _MD_init_fd_inheritable(PRFileDesc *fd, PRBool imported); --NSPR_API(void) _MD_query_fd_inheritable(PRFileDesc *fd); --NSPR_API(PRInt32) _MD_open(const char *name, PRIntn osflags, PRIntn mode); --NSPR_API(PRInt32) _MD_close_file(PRInt32 osfd); --NSPR_API(PRInt32) _MD_read(PRFileDesc *fd, void *buf, PRInt32 amount); --NSPR_API(PRInt32) _MD_write(PRFileDesc *fd, const void *buf, PRInt32 amount); --NSPR_API(PRInt32) _MD_writev(PRFileDesc *fd, const PRIOVec *iov, PRInt32 iov_size, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_lseek(PRFileDesc *fd, PRInt32 offset, int whence); --NSPR_API(PRInt64) _MD_lseek64(PRFileDesc *fd, PRInt64 offset, int whence); --NSPR_API(PRInt32) _MD_fsync(PRFileDesc *fd); --NSPR_API(PRInt32) _MD_delete(const char *name); --NSPR_API(PRInt32) _MD_getfileinfo(const char *fn, PRFileInfo *info); --NSPR_API(PRInt32) _MD_getfileinfo64(const char *fn, PRFileInfo64 *info); --NSPR_API(PRInt32) _MD_getopenfileinfo(const PRFileDesc *fd, PRFileInfo *info); --NSPR_API(PRInt32) _MD_getopenfileinfo64(const PRFileDesc *fd, PRFileInfo64 *info); --NSPR_API(PRInt32) _MD_rename(const char *from, const char *to); --NSPR_API(PRInt32) _MD_access(const char *name, PRIntn how); --NSPR_API(PRInt32) _MD_stat(const char *name, struct stat *buf); --NSPR_API(PRInt32) _MD_mkdir(const char *name, PRIntn mode); --NSPR_API(PRInt32) _MD_rmdir(const char *name); --NSPR_API(PRInt32) _MD_pr_poll(PRPollDesc *pds, PRIntn npds, PRIntervalTime timeout); -- --/* Network I/O */ --NSPR_API(PRInt32) _MD_close_socket(PRInt32 osfd); --NSPR_API(PRInt32) _MD_connect(PRFileDesc *fd, const PRNetAddr *addr, PRUint32 addrlen, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_accept(PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_bind(PRFileDesc *fd, const PRNetAddr *addr, PRUint32 addrlen); --NSPR_API(PRInt32) _MD_listen(PRFileDesc *fd, PRIntn backlog); --NSPR_API(PRInt32) _MD_shutdown(PRFileDesc *fd, PRIntn how); --NSPR_API(PRInt32) _MD_recv(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_send(PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_accept_read(PRFileDesc *sd, PRInt32 *newSock, PRNetAddr **raddr, void *buf, PRInt32 amount, PRIntervalTime timeout); --// NSPR_API(PRInt32) _MD_fast_accept(PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen, PRIntervalTime timeout, PRBool fast, _PR_AcceptTimeoutCallback callback, void *callbackArg); --// NSPR_API(PRInt32) _MD_fast_accept_read(PRFileDesc *sd, PRInt32 *newSock, PRNetAddr **raddr, void *buf, PRInt32 amount, PRIntervalTime timeout, PRBool fast, _PR_AcceptTimeoutCallback callback, void *callbackArg); --// NSPR_API(void) _MD_update_accept_context(PRInt32 s, PRInt32 ls); --NSPR_API(PRStatus) _MD_getsockname(PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen); --NSPR_API(PRStatus) _MD_getpeername(PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen); --NSPR_API(PRStatus) _MD_getsockopt(PRFileDesc *fd, PRInt32 level, PRInt32 optname, char* optval, PRInt32* optlen); --NSPR_API(PRStatus) _MD_setsockopt(PRFileDesc *fd, PRInt32 level, PRInt32 optname, const char* optval, PRInt32 optlen); --NSPR_API(PRInt32) _MD_recvfrom(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, PRNetAddr *addr, PRUint32 *addrlen, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_sendto(PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags, const PRNetAddr *addr, PRUint32 addrlen, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_socketpair(int af, int type, int flags, PRInt32 *osfd); --NSPR_API(PRInt32) _MD_socket(int af, int type, int flags); --NSPR_API(PRInt32) _MD_socketavailable(PRFileDesc *fd); -- --// NSPR_API(PRInt32) _MD_get_socket_error(void); --NSPR_API(PRStatus) _MD_gethostname(char *name, PRUint32 namelen); -- --/* Process management */ -- --NSPR_API(PRProcess *) _MD_create_process(const char *path, char *const *argv, char *const *envp, const PRProcessAttr *attr); --NSPR_API(PRStatus) _MD_detach_process(PRProcess *process); --NSPR_API(PRStatus) _MD_wait_process(PRProcess *process, PRInt32 *exitCode); --NSPR_API(PRStatus) _MD_kill_process(PRProcess *process); -- --/* Atomic data operations */ -- --// NSPR_API(void) _MD_init_atomic(void); --// NSPR_API(PRInt32) _MD_atomic_increment(PRInt32 *); --// NSPR_API(PRInt32) _MD_atomic_decrement(PRInt32 *); --// NSPR_API(PRInt32) _MD_atomic_set(PRInt32 *, PRInt32); -- --/* Memory management */ -- --NSPR_API(void) _MD_init_segs(void); --NSPR_API(PRStatus) _MD_alloc_segment(PRSegment *seg, PRUint32 size, void *vaddr); --NSPR_API(void) _MD_free_segment(PRSegment *seg); -- --/* Memory mapped file I/O */ -- --NSPR_API(PRStatus) _MD_create_file_map(PRFileMap *fmap, PRInt64 size); --NSPR_API(PRInt32) _MD_get_mem_map_alignment(void); --NSPR_API(void *) _MD_mem_map(PRFileMap *fmap, PRInt64 offset, PRUint32 len); --NSPR_API(PRStatus) _MD_mem_unmap(void *addr, PRUint32 size); --NSPR_API(PRStatus) _MD_close_file_map(PRFileMap *fmap); -- --/* Time related */ -- --NSPR_API(PRTime) _MD_now(void); --NSPR_API(void) _MD_interval_init(void); --NSPR_API(PRIntervalTime) _MD_get_interval(void); --NSPR_API(PRIntervalTime) _MD_interval_per_sec(void); -- --/* File locking */ -- --NSPR_API(PRStatus) _MD_lockfile(PRInt32 osfd); --NSPR_API(PRStatus) _MD_tlockfile(PRInt32 osfd); --NSPR_API(PRStatus) _MD_unlockfile(PRInt32 osfd); -- - #endif /* _nspr_beos_defs_h___*/ -Index: mozilla/nsprpub/pr/include/private/primpl.h -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/include/private/primpl.h,v -retrieving revision 3.84.2.2 -diff -u -8 -p -r3.84.2.2 primpl.h ---- mozilla/nsprpub/pr/include/private/primpl.h 25 Jul 2007 07:08:28 -0000 3.84.2.2 -+++ mozilla/nsprpub/pr/include/private/primpl.h 9 Feb 2009 04:04:34 -0000 -@@ -45,20 +45,16 @@ - * This macro causes chaos if signal.h gets included before pthread.h. - * To be safe, we include pthread.h first. - */ - - #if defined(_PR_PTHREADS) - #include - #endif - --#if defined(_PR_BTHREADS) --#include --#endif -- - #ifdef WINNT - /* Need to force service-pack 3 extensions to be defined by - ** setting _WIN32_WINNT to NT 4.0 for winsock.h, winbase.h, winnt.h. - */ - #ifndef _WIN32_WINNT - #define _WIN32_WINNT 0x0400 - #elif (_WIN32_WINNT < 0x0400) - #undef _WIN32_WINNT -@@ -223,16 +219,30 @@ typedef struct PTDebug - } PTDebug; - - #endif /* defined(DEBUG) */ - - NSPR_API(void) PT_FPrintStats(PRFileDesc *fd, const char *msg); - - #else /* defined(_PR_PTHREADS) */ - -+#ifdef _PR_BTHREADS -+#define _MD_GET_ATTACHED_THREAD() (_PR_MD_CURRENT_THREAD()) -+ -+#define _PR_IS_NATIVE_THREAD(thread) 1 -+#define _PR_IS_NATIVE_THREAD_SUPPORTED() 1 -+/* -+extern PRInt32 _PR_MD_WRITE(PRFileDesc *fd, const void *buf, PRInt32 amount); -+#define _PR_MD_WRITE _MD_WRITE -+*/ -+NSPR_API(PRThread*) _PR_MD_CURRENT_THREAD(void); -+#define _PR_MD_CURRENT_THREAD _MD_CURRENT_THREAD -+ -+#else /* defined(_PR_BTHREADS) */ -+ - NSPR_API(void) PT_FPrintStats(PRFileDesc *fd, const char *msg); - - /* - ** This section is contains those parts needed to implement NSPR on - ** platforms in general. One would assume that the pthreads implementation - ** included lots of the same types, at least conceptually. - */ - -@@ -1296,16 +1306,17 @@ extern PRStatus _PR_MD_SET_FD_INHERITABL - PR_SetError( PR_PENDING_INTERRUPT_ERROR, 0); \ - } else { \ - PR_SetError(PR_IO_TIMEOUT_ERROR, 0); \ - } - - extern void *_PR_MD_GET_SP(PRThread *thread); - #define _PR_MD_GET_SP _MD_GET_SP - -+#endif /* defined(_PR_BTHREADS) */ - #endif /* defined(_PR_PTHREADS) */ - - /************************************************************************/ - /************************************************************************* - ** The remainder of the definitions are shared by pthreads and the classic - ** NSPR code. These too may be conditionalized. - *************************************************************************/ - /************************************************************************/ -@@ -1550,17 +1561,20 @@ struct PRThreadStack { - char *stackTop; /* top of stack from C's point of view */ - PRUint32 stackSize; /* size of usable portion of the stack */ - - PRSegment *seg; - PRThread* thr; /* back pointer to thread owning this stack */ - - #if defined(_PR_PTHREADS) - #else /* defined(_PR_PTHREADS) */ -+#if defined(_PR_BTHREADS) -+#else /* defined(_PR_BTHREADS) */ - _MDThreadStack md; -+#endif /* defined(_PR_BTHREADS) */ - #endif /* defined(_PR_PTHREADS) */ - }; - - extern void _PR_DestroyThreadPrivate(PRThread*); - - typedef void (PR_CALLBACK *_PRStartFn)(void *); - - struct PRThread { -@@ -1603,19 +1617,16 @@ struct PRThread { - PRUint32 syspoll_count; /* number of elements in syspoll_list */ - #if defined(_PR_POLL_WITH_SELECT) - int *selectfd_list; /* Unix fd's that PR_Poll selects on */ - PRUint32 selectfd_count; /* number of elements in selectfd_list */ - #endif - #elif defined(_PR_BTHREADS) - PRUint32 flags; - _MDThread md; -- PRBool io_pending; -- PRInt32 io_fd; -- PRBool io_suspended; - #else /* not pthreads or Be threads */ - _MDLock threadLock; /* Lock to protect thread state variables. - * Protects the following fields: - * state - * priority - * links - * wait - * cpu -@@ -1689,17 +1700,19 @@ struct PRProcessAttr { - - struct PRProcess { - _MDProcess md; - }; - - struct PRFileMap { - PRFileDesc *fd; - PRFileMapProtect prot; -+#if !defined(XP_BEOS) - _MDFileMap md; -+#endif /* !defined(XP_BEOS) */ - }; - - /************************************************************************/ - - /* - ** File descriptors of the NSPR layer can be in one of the - ** following states (stored in the 'state' field of struct - ** PRFilePrivate): -@@ -1760,18 +1773,20 @@ struct PRDir { - #ifdef MOZ_UNICODE - struct PRDirUTF16 { - PRDirEntry d; - _MDDirUTF16 md; - }; - #endif /* MOZ_UNICODE */ - - extern void _PR_InitSegs(void); -+#if !defined(_PR_BTHREADS) - extern void _PR_InitStacks(void); - extern void _PR_InitTPD(void); -+#endif /* !defined(_PR_BTHREADS) */ - extern void _PR_InitMem(void); - extern void _PR_InitEnv(void); - extern void _PR_InitCMon(void); - extern void _PR_InitIO(void); - extern void _PR_InitLog(void); - extern void _PR_InitNet(void); - extern void _PR_InitClock(void); - extern void _PR_InitLinker(void); -@@ -1812,17 +1827,20 @@ extern PRBool _PR_Obsolete(const char *o - /************************************************************************/ - - struct PRSegment { - void *vaddr; - PRUint32 size; - PRUintn flags; - #if defined(_PR_PTHREADS) - #else /* defined(_PR_PTHREADS) */ -+#if defined(_PR_BTHREADS) -+#else /* defined(_PR_BTHREADS) */ - _MDSegment md; -+#endif /* defined(_PR_BTHREADS) */ - #endif /* defined(_PR_PTHREADS) */ - }; - - /* PRSegment.flags */ - #define _PR_SEG_VM 0x1 - - /************************************************************************/ - -@@ -2109,28 +2127,28 @@ extern void _PR_MD_QUERY_FD_INHERITABLE( - /* --- PR_GetRandomNoise() related things --- */ - - extern PRSize _PR_MD_GetRandomNoise( void *buf, PRSize size ); - #define _PR_MD_GET_RANDOM_NOISE(buf,size) _PR_MD_GetRandomNoise((buf),(size)) - extern PRSize _pr_CopyLowBits( void *dest, PRSize dstlen, void *src, PRSize srclen ); - - /* end PR_GetRandomNoise() related */ - --#ifdef XP_BEOS -+#if defined(XP_BEOS) && !defined(BONE_VERSION) - - extern PRLock *_connectLock; - - typedef struct _ConnectListNode { - PRInt32 osfd; - PRNetAddr addr; - PRUint32 addrlen; - PRIntervalTime timeout; - } ConnectListNode; - - extern ConnectListNode connectList[64]; - - extern PRUint32 connectCount; - --#endif /* XP_BEOS */ -+#endif /* XP_BEOS && !BONE_VERSION */ - - PR_END_EXTERN_C - - #endif /* primpl_h___ */ -Index: mozilla/nsprpub/pr/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/Makefile.in,v -retrieving revision 1.40.2.2 -diff -u -8 -p -r1.40.2.2 Makefile.in ---- mozilla/nsprpub/pr/src/Makefile.in 19 Oct 2006 00:39:28 -0000 1.40.2.2 -+++ mozilla/nsprpub/pr/src/Makefile.in 9 Feb 2009 04:04:35 -0000 -@@ -270,36 +270,33 @@ endif - - ifdef USE_PTHREADS - OBJS += \ - pthreads/$(OBJDIR)/ptsynch.$(OBJ_SUFFIX) \ - pthreads/$(OBJDIR)/ptio.$(OBJ_SUFFIX) \ - pthreads/$(OBJDIR)/ptthread.$(OBJ_SUFFIX) \ - pthreads/$(OBJDIR)/ptmisc.$(OBJ_SUFFIX) - else -+ifndef USE_BTHREADS - OBJS += \ - io/$(OBJDIR)/prdir.$(OBJ_SUFFIX) \ - io/$(OBJDIR)/prfile.$(OBJ_SUFFIX) \ - io/$(OBJDIR)/prio.$(OBJ_SUFFIX) \ - io/$(OBJDIR)/prsocket.$(OBJ_SUFFIX) \ -- misc/$(OBJDIR)/pripcsem.$(OBJ_SUFFIX) -- --ifndef USE_BTHREADS --OBJS += \ -- threads/$(OBJDIR)/prcthr.$(OBJ_SUFFIX) \ -- threads/$(OBJDIR)/prdump.$(OBJ_SUFFIX) \ -- threads/$(OBJDIR)/prmon.$(OBJ_SUFFIX) \ -- threads/$(OBJDIR)/prsem.$(OBJ_SUFFIX) \ -- threads/combined/$(OBJDIR)/prucpu.$(OBJ_SUFFIX) \ -- threads/combined/$(OBJDIR)/prucv.$(OBJ_SUFFIX) \ -- threads/combined/$(OBJDIR)/prulock.$(OBJ_SUFFIX) \ -- threads/combined/$(OBJDIR)/prustack.$(OBJ_SUFFIX) \ -- threads/combined/$(OBJDIR)/pruthr.$(OBJ_SUFFIX) -+ misc/$(OBJDIR)/pripcsem.$(OBJ_SUFFIX) \ -+ threads/$(OBJDIR)/prcthr.$(OBJ_SUFFIX) \ -+ threads/$(OBJDIR)/prdump.$(OBJ_SUFFIX) \ -+ threads/$(OBJDIR)/prmon.$(OBJ_SUFFIX) \ -+ threads/$(OBJDIR)/prsem.$(OBJ_SUFFIX) \ -+ threads/combined/$(OBJDIR)/prucpu.$(OBJ_SUFFIX) \ -+ threads/combined/$(OBJDIR)/prucv.$(OBJ_SUFFIX) \ -+ threads/combined/$(OBJDIR)/prulock.$(OBJ_SUFFIX) \ -+ threads/combined/$(OBJDIR)/prustack.$(OBJ_SUFFIX) \ -+ threads/combined/$(OBJDIR)/pruthr.$(OBJ_SUFFIX) - endif -- - endif - - ifeq ($(USE_CPLUS), 1) - OBJS += \ - cplus/$(OBJDIR)/rcbase.$(OBJ_SUFFIX) \ - cplus/$(OBJDIR)/rccv.$(OBJ_SUFFIX) \ - cplus/$(OBJDIR)/rcfileio.$(OBJ_SUFFIX) \ - cplus/$(OBJDIR)/rcinrval.$(OBJ_SUFFIX) \ -@@ -397,19 +394,23 @@ endif - - export:: $(TARGETS) - $(INSTALL) -m 444 $(TARGETS) $(dist_libdir) - ifdef SHARED_LIBRARY - ifeq ($(OS_ARCH),HP-UX) - $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir) - $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir) - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir)/lib -+else - $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir) - endif - endif -+endif - ifeq ($(MOZ_BITS),16) - $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/lib - $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/bin - endif - - ifeq ($(BUILD_AIX_RTL_LIBC),1) - $(AIX_RTL_LIBC): /usr/ccs/lib/libc.a - rtl_enable -o $@ $< -Index: mozilla/nsprpub/pr/src/bthreads/bsrcs.mk -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/bthreads/bsrcs.mk,v -retrieving revision 3.6 -diff -u -8 -p -r3.6 bsrcs.mk ---- mozilla/nsprpub/pr/src/bthreads/bsrcs.mk 25 Apr 2004 15:00:57 -0000 3.6 -+++ mozilla/nsprpub/pr/src/bthreads/bsrcs.mk 9 Feb 2009 04:04:35 -0000 -@@ -15,16 +15,17 @@ - # The Original Code is the Netscape Portable Runtime (NSPR). - # - # The Initial Developer of the Original Code is - # Netscape Communications Corporation. - # Portions created by the Initial Developer are Copyright (C) 1998-2000 - # the Initial Developer. All Rights Reserved. - # - # Contributor(s): -+# Fredrik Holmqvist - # - # Alternatively, the contents of this file may be used under the terms of - # either the GNU General Public License Version 2 or later (the "GPL"), or - # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - # in which case the provisions of the GPL or the LGPL are applicable instead - # of those above. If you wish to allow use of your version of this file only - # under the terms of either the GPL or the LGPL, and not to allow others to - # use your version of this file under the terms of the MPL, indicate your -@@ -41,9 +42,11 @@ - - BTCSRCS = \ - btthread.c \ - btlocks.c \ - btcvar.c \ - btmon.c \ - btsem.c \ - btmisc.c \ -+ btfile.c \ -+ btio.c \ - $(NULL) -Index: mozilla/nsprpub/pr/src/bthreads/btcvar.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/bthreads/btcvar.c,v -retrieving revision 3.9 -diff -u -8 -p -r3.9 btcvar.c ---- mozilla/nsprpub/pr/src/bthreads/btcvar.c 23 Feb 2005 17:43:13 -0000 3.9 -+++ mozilla/nsprpub/pr/src/bthreads/btcvar.c 9 Feb 2009 04:04:36 -0000 -@@ -15,33 +15,32 @@ - * The Original Code is the Netscape Portable Runtime (NSPR). - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998-2000 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): -- * -+ * Fredrik Holmqvist -+ * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - --#include -- - #include "primpl.h" - - /* - ** Create a new condition variable. - ** - ** "lock" is the lock used to protect the condition variable. - ** - ** Condition variables are synchronization objects that threads can use -@@ -52,25 +51,25 @@ - */ - PR_IMPLEMENT(PRCondVar*) - PR_NewCondVar (PRLock *lock) - { - PRCondVar *cv = PR_NEW( PRCondVar ); - PR_ASSERT( NULL != lock ); - if( NULL != cv ) - { -- cv->lock = lock; -- cv->sem = create_sem(0, "CVSem"); -- cv->handshakeSem = create_sem(0, "CVHandshake"); -- cv->signalSem = create_sem( 0, "CVSignal"); -- cv->signalBenCount = 0; -- cv->ns = cv->nw = 0; -- PR_ASSERT( cv->sem >= B_NO_ERROR ); -- PR_ASSERT( cv->handshakeSem >= B_NO_ERROR ); -- PR_ASSERT( cv->signalSem >= B_NO_ERROR ); -+ cv->lock = lock; -+ cv->sem = create_sem(0, "CVSem"); -+ cv->handshakeSem = create_sem(0, "CVHandshake"); -+ cv->signalSem = create_sem( 0, "CVSignal"); -+ cv->signalBenCount = 0; -+ cv->ns = cv->nw = 0; -+ PR_ASSERT( cv->sem >= B_NO_ERROR ); -+ PR_ASSERT( cv->handshakeSem >= B_NO_ERROR ); -+ PR_ASSERT( cv->signalSem >= B_NO_ERROR ); - } - return cv; - } /* PR_NewCondVar */ - - /* - ** Destroy a condition variable. There must be no thread - ** waiting on the condvar. The caller is responsible for guaranteeing - ** that the condvar is no longer in use. -@@ -118,69 +117,69 @@ PR_IMPLEMENT(void) - ** Returns PR_FAILURE if the caller has not locked the lock associated - ** with the condition variable or the thread was interrupted (PR_Interrupt()). - ** The particular reason can be extracted with PR_GetError(). - */ - PR_IMPLEMENT(PRStatus) - PR_WaitCondVar (PRCondVar *cvar, PRIntervalTime timeout) - { - status_t err; -- if( timeout == PR_INTERVAL_NO_WAIT ) -+ if( timeout == PR_INTERVAL_NO_WAIT ) - { - PR_Unlock( cvar->lock ); - PR_Lock( cvar->lock ); - return PR_SUCCESS; - } - -- if( atomic_add( &cvar->signalBenCount, 1 ) > 0 ) -+ if( _MD_ATOMIC_INCREMENT( &cvar->signalBenCount ) > 1 ) - { -- if (acquire_sem(cvar->signalSem) == B_INTERRUPTED) -+ if (acquire_sem(cvar->signalSem) == B_INTERRUPTED) - { -- atomic_add( &cvar->signalBenCount, -1 ); -+ _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ); - return PR_FAILURE; - } - } - cvar->nw += 1; -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } - - PR_Unlock( cvar->lock ); -- if( timeout==PR_INTERVAL_NO_TIMEOUT ) -+ if( timeout==PR_INTERVAL_NO_TIMEOUT ) - { -- err = acquire_sem(cvar->sem); -- } -- else -+ err = acquire_sem(cvar->sem); -+ } -+ else - { -- err = acquire_sem_etc(cvar->sem, 1, B_RELATIVE_TIMEOUT, PR_IntervalToMicroseconds(timeout) ); -+ err = acquire_sem_etc(cvar->sem, 1, B_RELATIVE_TIMEOUT, PR_IntervalToMicroseconds(timeout) ); - } - -- if( atomic_add( &cvar->signalBenCount, 1 ) > 0 ) -+ if( _MD_ATOMIC_INCREMENT( &cvar->signalBenCount ) > 1 ) - { - while (acquire_sem(cvar->signalSem) == B_INTERRUPTED); - } - - if (cvar->ns > 0) - { - release_sem_etc(cvar->handshakeSem, 1, B_DO_NOT_RESCHEDULE); - cvar->ns -= 1; - } - cvar->nw -= 1; -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } - - PR_Lock( cvar->lock ); -- if(err!=B_NO_ERROR) -+ if(err==B_NO_ERROR || (err == B_TIMED_OUT && timeout!=PR_INTERVAL_NO_TIMEOUT)) - { -- return PR_FAILURE; -+ return PR_SUCCESS; - } -- return PR_SUCCESS; -+ return PR_FAILURE; - } - - /* - ** Notify ONE thread that is currently waiting on 'cvar'. Which thread is - ** dependent on the implementation of the runtime. Common sense would dictate - ** that all threads waiting on a single condition have identical semantics, - ** therefore which one gets notified is not significant. - ** -@@ -189,88 +188,88 @@ PR_IMPLEMENT(PRStatus) - ** notify is called. - ** - ** Returns PR_FAILURE if the caller has not locked the lock associated - ** with the condition variable. - */ - PR_IMPLEMENT(PRStatus) - PR_NotifyCondVar (PRCondVar *cvar) - { -- status_t err ; -- if( atomic_add( &cvar->signalBenCount, 1 ) > 0 ) -+ status_t err; -+ if( _MD_ATOMIC_INCREMENT( &cvar->signalBenCount) > 1 ) - { -- if (acquire_sem(cvar->signalSem) == B_INTERRUPTED) -+ if (acquire_sem(cvar->signalSem) == B_INTERRUPTED) - { -- atomic_add( &cvar->signalBenCount, -1 ); -+ _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ); - return PR_FAILURE; - } - } - if (cvar->nw > cvar->ns) - { - cvar->ns += 1; - release_sem_etc(cvar->sem, 1, B_DO_NOT_RESCHEDULE); -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } - -- while (acquire_sem(cvar->handshakeSem) == B_INTERRUPTED) -+ while (acquire_sem(cvar->handshakeSem) == B_INTERRUPTED) - { -- err = B_INTERRUPTED; -+ err = B_INTERRUPTED; - } - } - else - { -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } - } -- return PR_SUCCESS; -+ return PR_SUCCESS; - } - - /* - ** Notify all of the threads waiting on the condition variable. The order - ** that the threads are notified is indeterminant. The lock that protects - ** the condition must be held. - ** - ** Returns PR_FAILURE if the caller has not locked the lock associated - ** with the condition variable. - */ - PR_IMPLEMENT(PRStatus) - PR_NotifyAllCondVar (PRCondVar *cvar) - { - int32 handshakes; - status_t err = B_OK; - -- if( atomic_add( &cvar->signalBenCount, 1 ) > 0 ) -+ if( _MD_ATOMIC_INCREMENT( &cvar->signalBenCount) > 1 ) - { -- if (acquire_sem(cvar->signalSem) == B_INTERRUPTED) -+ if (acquire_sem(cvar->signalSem) == B_INTERRUPTED) - { -- atomic_add( &cvar->signalBenCount, -1 ); -+ _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ); - return PR_FAILURE; - } - } - - if (cvar->nw > cvar->ns) - { - handshakes = cvar->nw - cvar->ns; -- cvar->ns = cvar->nw; -- release_sem_etc(cvar->sem, handshakes, B_DO_NOT_RESCHEDULE); -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ cvar->ns = cvar->nw; -+ release_sem_etc(cvar->sem, handshakes, B_DO_NOT_RESCHEDULE); -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } - -- while (acquire_sem_etc(cvar->handshakeSem, handshakes, 0, 0) == B_INTERRUPTED) -+ while (acquire_sem_etc(cvar->handshakeSem, handshakes, 0, 0) == B_INTERRUPTED) - { -- err = B_INTERRUPTED; -+ err = B_INTERRUPTED; - } - } - else - { -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } - } - return PR_SUCCESS; - } -Index: mozilla/nsprpub/pr/src/bthreads/btfile.c -=================================================================== -RCS file: mozilla/nsprpub/pr/src/bthreads/btfile.c -diff -N mozilla/nsprpub/pr/src/bthreads/btfile.c ---- /dev/null 1 Jan 1970 00:00:00 -0000 -+++ mozilla/nsprpub/pr/src/bthreads/btfile.c 5 Nov 2008 20:51:44 -0000 -@@ -0,0 +1,994 @@ -+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -+/* ***** BEGIN LICENSE BLOCK ***** -+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 -+ * -+ * The contents of this file are subject to the Mozilla Public License Version -+ * 1.1 (the "License"); you may not use this file except in compliance with -+ * the License. You may obtain a copy of the License at -+ * http://www.mozilla.org/MPL/ -+ * -+ * Software distributed under the License is distributed on an "AS IS" basis, -+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -+ * for the specific language governing rights and limitations under the -+ * License. -+ * -+ * The Original Code is the Netscape Portable Runtime (NSPR). -+ * -+ * The Initial Developer of the Original Code is -+ * Netscape Communications Corporation. -+ * Portions created by the Initial Developer are Copyright (C) 1998-2000 -+ * the Initial Developer. All Rights Reserved. -+ * -+ * Contributor(s): -+ * Roy Yokoyama -+ * -+ * Alternatively, the contents of this file may be used under the terms of -+ * either the GNU General Public License Version 2 or later (the "GPL"), or -+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -+ * in which case the provisions of the GPL or the LGPL are applicable instead -+ * of those above. If you wish to allow use of your version of this file only -+ * under the terms of either the GPL or the LGPL, and not to allow others to -+ * use your version of this file under the terms of the MPL, indicate your -+ * decision by deleting the provisions above and replace them with the notice -+ * and other provisions required by the GPL or the LGPL. If you do not delete -+ * the provisions above, a recipient may use your version of this file under -+ * the terms of any one of the MPL, the GPL or the LGPL. -+ * -+ * ***** END LICENSE BLOCK ***** */ -+ -+#include "primpl.h" -+ -+static PRLock *_pr_flock_lock; /* For PR_LockFile() etc. */ -+static PRCondVar *_pr_flock_cv; /* For PR_LockFile() etc. */ -+ -+PRErrorCode -+map_default_error(int err) -+{ -+ switch (err) { -+ case EACCES: -+ return PR_NO_ACCESS_RIGHTS_ERROR; -+ case EADDRINUSE: -+ return PR_ADDRESS_IN_USE_ERROR; -+ case EADDRNOTAVAIL: -+ return PR_ADDRESS_NOT_AVAILABLE_ERROR; -+ case EAFNOSUPPORT: -+ return PR_ADDRESS_NOT_SUPPORTED_ERROR; -+ /*Same as EWOULDBLOCK*/ -+ case EAGAIN: -+ return PR_WOULD_BLOCK_ERROR; -+#if EALREADY != EBUSY -+ case EALREADY: -+ return PR_ALREADY_INITIATED_ERROR; -+#endif -+ case EBADF: -+ return PR_BAD_DESCRIPTOR_ERROR; -+ case EBUSY: -+ return PR_FILESYSTEM_MOUNTED_ERROR; -+ case ECONNABORTED: -+ return PR_CONNECT_ABORTED_ERROR; -+ case ECONNREFUSED: -+ return PR_CONNECT_REFUSED_ERROR; -+ case EDEADLK: -+ return PR_DEADLOCK_ERROR; -+ case EEXIST: -+ return PR_FILE_EXISTS_ERROR; -+ case EFAULT: -+ return PR_ACCESS_FAULT_ERROR; -+ case EFBIG: -+ return PR_FILE_TOO_BIG_ERROR; -+ case EHOSTUNREACH: -+ return PR_HOST_UNREACHABLE_ERROR; -+ case EINPROGRESS: -+ return PR_IN_PROGRESS_ERROR; -+ case EINTR: -+ return PR_PENDING_INTERRUPT_ERROR; -+ case EINVAL: -+ return PR_INVALID_ARGUMENT_ERROR; -+ case EIO: -+ return PR_IO_ERROR; -+ case EISCONN: -+ return PR_IS_CONNECTED_ERROR; -+ case EISDIR: -+ return PR_IS_DIRECTORY_ERROR; -+ case ELOOP: -+ return PR_LOOP_ERROR; -+ case EMFILE: -+ return PR_PROC_DESC_TABLE_FULL_ERROR; -+ case EMLINK: -+ return PR_MAX_DIRECTORY_ENTRIES_ERROR; -+ case EMSGSIZE: -+ return PR_INVALID_ARGUMENT_ERROR; -+ case ENAMETOOLONG: -+ return PR_NAME_TOO_LONG_ERROR; -+ case ENETUNREACH: -+ return PR_NETWORK_UNREACHABLE_ERROR; -+ case ENFILE: -+ return PR_SYS_DESC_TABLE_FULL_ERROR; -+ case ENOBUFS: -+ return PR_INSUFFICIENT_RESOURCES_ERROR; -+ case ENODEV: -+ case ENOENT: -+ return PR_FILE_NOT_FOUND_ERROR; -+ case ENOLCK: -+ return PR_FILE_IS_LOCKED_ERROR; -+#if 0 -+ case ENOLINK: -+ return PR_REMOTE_FILE_ERROR; -+#endif -+ case ENOMEM: -+ return PR_OUT_OF_MEMORY_ERROR; -+ case ENOPROTOOPT: -+ return PR_INVALID_ARGUMENT_ERROR; -+ case ENOSPC: -+ return PR_NO_DEVICE_SPACE_ERROR; -+ case ENOTCONN: -+ return PR_NOT_CONNECTED_ERROR; -+ case ENOTDIR: -+ return PR_NOT_DIRECTORY_ERROR; -+ case ENOTSOCK: -+ return PR_NOT_SOCKET_ERROR; -+ case ENXIO: -+ return PR_FILE_NOT_FOUND_ERROR; -+ case EOPNOTSUPP: -+ return PR_NOT_TCP_SOCKET_ERROR; -+ case EOVERFLOW: -+ return PR_BUFFER_OVERFLOW_ERROR; -+ case EPERM: -+ return PR_NO_ACCESS_RIGHTS_ERROR; -+ case EPIPE: -+ return PR_CONNECT_RESET_ERROR; -+ case EPROTONOSUPPORT: -+ return PR_PROTOCOL_NOT_SUPPORTED_ERROR; -+ case EPROTOTYPE: -+ return PR_ADDRESS_NOT_SUPPORTED_ERROR; -+ case ERANGE: -+ return PR_INVALID_METHOD_ERROR; -+ case EROFS: -+ return PR_READ_ONLY_FILESYSTEM_ERROR; -+ case ESPIPE: -+ return PR_INVALID_METHOD_ERROR; -+ case ETIMEDOUT: -+ return PR_IO_TIMEOUT_ERROR; -+ case EXDEV: -+ return PR_NOT_SAME_DEVICE_ERROR; -+ default: -+ return PR_UNKNOWN_ERROR; -+ } -+} -+ -+ -+inline void -+set_open_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EAGAIN: -+ case ENOMEM: -+ prError = PR_INSUFFICIENT_RESOURCES_ERROR; -+ break; -+ case EBUSY: -+ prError = PR_IO_ERROR; -+ break; -+ case ENODEV: -+ prError = PR_FILE_NOT_FOUND_ERROR; -+ break; -+ case EOVERFLOW: -+ prError = PR_FILE_TOO_BIG_ERROR; -+ break; -+ case ETIMEDOUT: -+ prError = PR_REMOTE_FILE_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_rename_error(int err) -+{ -+ PR_SetError(err == EEXIST ? PR_DIRECTORY_NOT_EMPTY_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_unlink_error(int err) -+{ -+ PR_SetError(err == EPERM ? PR_IS_DIRECTORY_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_opendir_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_closedir_error(int err) -+{ -+ PR_SetError( err == EINVAL ? PR_BAD_DESCRIPTOR_ERROR : map_default_error(err), err); -+} -+ -+inline void -+set_readdir_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case 0: -+ case ENOENT: -+ prError = PR_NO_MORE_FILES_ERROR; -+ break; -+ case EOVERFLOW: -+ case EINVAL: -+ case ENXIO: -+ prError = PR_IO_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_mkdir_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+ -+inline void -+set_rmdir_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case ENOTEMPTY: -+ case EEXIST: -+ case EINVAL: -+ prError = PR_DIRECTORY_NOT_EMPTY_ERROR; -+ break; -+ case ETIMEDOUT: -+ prError = PR_REMOTE_FILE_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_close_error(int err) -+{ -+ PR_SetError( err == ETIMEDOUT ? PR_REMOTE_FILE_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_read_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_INVALID_METHOD_ERROR; -+ break; -+ case ENXIO: -+ prError = PR_INVALID_ARGUMENT_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_write_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_INVALID_METHOD_ERROR; -+ break; -+ case ENXIO: -+ prError = PR_INVALID_ARGUMENT_ERROR; -+ break; -+ case ETIMEDOUT: -+ prError = PR_REMOTE_FILE_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_lseek_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+ -+inline void -+set_fsync_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_INVALID_METHOD_ERROR; -+ break; -+ case ETIMEDOUT: -+ prError = PR_REMOTE_FILE_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_fstat_error(int err) -+{ -+ PR_SetError(err == ETIMEDOUT ? PR_REMOTE_FILE_ERROR : map_default_error(err), err); -+} -+ -+/* TODO: using uint8 instead of bool due to code that uses bool as var name in hard to change places -+ therefore we had to undef it. Or we need to change Haiku's headers around so we can include -+ everything we need except the bool decl. */ -+PRFileDesc * bt_CreateFileDesc(PRIntn osfd, const PRIOMethods * methods, _PRTriStateBool inheritable, uint8 nonblocking) { -+ const int blocking = 1; -+ PRFileDesc *fd = _PR_Getfd(); -+ if (fd == NULL) -+ { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ return NULL; -+ } -+ fd->secret->md.osfd = osfd; -+ fd->secret->state = _PR_FILEDESC_OPEN; -+ fd->secret->inheritable = inheritable; -+ fd->methods = methods; -+ if (nonblocking) -+ setsockopt(osfd, SOL_SOCKET, SO_NONBLOCK, &blocking, sizeof(blocking)); -+ return fd; -+} -+ -+ -+PR_IMPLEMENT(PRFileDesc*) PR_GetSpecialFD(PRSpecialFD osfd) -+{ -+ PR_ASSERT(osfd >= PR_StandardInput && osfd <= PR_StandardError); -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ -+ switch (osfd) -+ { -+ case PR_StandardInput: return _pr_stdin; -+ case PR_StandardOutput: return _pr_stdout; -+ case PR_StandardError: return _pr_stderr; -+ default: -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ } -+ return NULL; -+} /* PR_GetSpecialFD */ -+ -+ -+PR_IMPLEMENT(PRFileDesc*) PR_Open(const char *name, PRIntn flags, PRIntn mode) -+{ -+ return PR_OpenFile(name, flags, mode); -+} /* PR_Open */ -+ -+PR_IMPLEMENT(PRFileDesc*) PR_OpenFile(const char *name, PRIntn flags, PRIntn mode) -+{ -+ PRFileDesc *fd = NULL; -+ PRInt32 osflags; -+ PRInt32 osfd, err; -+ -+ if (flags & PR_RDWR) { -+ osflags = O_RDWR; -+ } else if (flags & PR_WRONLY) { -+ osflags = O_WRONLY; -+ } else { -+ osflags = O_RDONLY; -+ } -+ -+ if (flags & PR_EXCL) -+ osflags |= O_EXCL; -+ if (flags & PR_APPEND) -+ osflags |= O_APPEND; -+ if (flags & PR_TRUNCATE) -+ osflags |= O_TRUNC; -+ if (flags & PR_SYNC) { -+/* Ummmm. BeOS doesn't appear to -+ support sync in any way shape or -+ form. */ -+ return PR_NOT_IMPLEMENTED_ERROR; -+ } -+ -+ if (flags & PR_CREATE_FILE) -+ { -+ osflags |= O_CREAT; -+ } -+ -+ osfd = open(name, osflags, mode); -+ if (osfd < 0) { -+ err = _MD_ERRNO(); -+ set_open_error(err); -+ } -+ -+ if(osfd>=0) { -+ fd = bt_CreateFileDesc(osfd, PR_GetFileMethods(), _PR_TRI_TRUE, false); -+ if (fd == NULL) close(osfd); /* $$$ whoops! this is bad $$$ */ -+ } -+ return fd; -+} /* PR_OpenFile */ -+ -+/* -+** Import an existing OS file to NSPR -+*/ -+PR_IMPLEMENT(PRFileDesc*) PR_ImportFile(PRInt32 osfd) -+{ -+ PRFileDesc *fd = NULL; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ -+ fd = bt_CreateFileDesc(osfd, PR_GetFileMethods(), _PR_TRI_UNKNOWN, false); -+ if (NULL == fd) close(osfd); -+ return fd; -+} -+ -+/* -+** Import an existing OS pipe to NSPR -+*/ -+PR_IMPLEMENT(PRFileDesc*) PR_ImportPipe(PRInt32 osfd) -+{ -+ PRFileDesc *fd = NULL; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ fd = bt_CreateFileDesc(osfd, PR_GetPipeMethods(), _PR_TRI_UNKNOWN, true); -+ -+ if (NULL == fd) close(osfd); -+ return fd; -+} -+ -+ -+PR_IMPLEMENT(PRStatus) PR_Rename(const char *from, const char *to) -+{ -+ PRInt32 rv = -1, err; -+ -+ if (0 == access(to, F_OK)) -+ PR_SetError(PR_FILE_EXISTS_ERROR, 0); -+ else -+ { -+ rv = rename(from, to); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_rename_error(err); -+ } -+ } -+ if (rv < 0) { -+ return PR_FAILURE; -+ } else { -+ return PR_SUCCESS; -+ } -+} -+ -+PR_IMPLEMENT(PRStatus) PR_Delete(const char *name) -+{ -+ PRInt32 rv, err; -+ -+ rv = unlink(name); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_unlink_error(err); -+ return PR_FAILURE; -+ } else -+ return PR_SUCCESS; -+} -+ -+ -+PR_IMPLEMENT(PRDir*) PR_OpenDir(const char *name) -+{ -+ PRDir *dir; -+ PRInt32 err; -+ -+ dir = PR_NEW(PRDir); -+ if (dir) { -+ dir->md.d = opendir(name); -+ if (NULL == dir->md.d) { -+ err = _MD_ERRNO(); -+ set_opendir_error(err); -+ PR_DELETE(dir); -+ return NULL; -+ } -+ } else { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ } -+ return dir; -+} -+ -+PR_IMPLEMENT(PRDirEntry*) PR_ReadDir(PRDir *dir, PRDirFlags flags) -+{ -+ PRInt32 err; -+ struct dirent *de; -+ for (;;) { -+ /* -+ * XXX: readdir() is not MT-safe -+ */ -+ _MD_ERRNO() = 0; -+ de = readdir(dir->md.d); -+ -+ if (!de) { -+ err = _MD_ERRNO(); -+ set_readdir_error(err); -+ return 0; -+ } -+ -+ if ((flags & PR_SKIP_DOT) && -+ (de->d_name[0] == '.') && (de->d_name[1] == 0)) -+ continue; -+ -+ if ((flags & PR_SKIP_DOT_DOT) && -+ (de->d_name[0] == '.') && (de->d_name[1] == '.') && -+ (de->d_name[2] == 0)) -+ continue; -+ -+ if ((flags & PR_SKIP_HIDDEN) && (de->d_name[1] == '.')) -+ continue; -+ -+ break; -+ } -+ -+ dir->d.name = de->d_name; -+ return de->d_name ? &dir->d : NULL; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_CloseDir(PRDir *dir) -+{ -+ PRInt32 rv, err; -+ -+ if (dir && dir->md.d) { -+ rv = closedir(dir->md.d); -+ PR_DELETE(dir); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_closedir_error(err); -+ return PR_FAILURE; -+ } -+ } -+ return PR_SUCCESS; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_MkDir(const char *name, PRIntn mode) -+{ -+ status_t rv; -+ int err; -+ -+ rv = mkdir(name, mode); -+ -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_mkdir_error(err); -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_MakeDir(const char *name, PRIntn mode) -+{ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ return PR_MkDir(name, mode); -+} -+ -+PR_IMPLEMENT(PRStatus) PR_RmDir(const char *name) -+{ -+ PRInt32 rv, err; -+ -+ rv = rmdir(name); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_rmdir_error(err); -+ return PR_FAILURE; -+ } else -+ return PR_SUCCESS; -+} -+ -+PR_IMPLEMENT(PRInt32) -+PR_FileDesc2NativeHandle(PRFileDesc *fd) -+{ -+ if (fd) { -+ fd = PR_GetIdentitiesLayer(fd, PR_NSPR_IO_LAYER); -+ } -+ if (!fd) { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return -1; -+ } -+ -+ return fd->secret->md.osfd; -+} -+ -+#ifdef MOZ_UNICODE -+/* -+ * UTF16 Interface -+ */ -+PR_IMPLEMENT(PRDirUTF16*) PR_OpenDirUTF16(const PRUnichar *name) -+{ -+ PRDirUTF16 *dir; -+ PRStatus sts; -+ -+ dir = PR_NEW(PRDirUTF16); -+ if (dir) { -+ sts = _PR_MD_OPEN_DIR_UTF16(&dir->md,name); -+ if (sts != PR_SUCCESS) { -+ PR_DELETE(dir); -+ return NULL; -+ } -+ } else { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ } -+ return dir; -+} -+ -+PR_IMPLEMENT(PRDirEntryUTF16*) PR_ReadDirUTF16(PRDirUTF16 *dir, PRDirFlags flags) -+{ -+ /* -+ * _MD_READ_DIR_UTF16 return a PRUnichar* to the name; allocation in -+ * machine-dependent code -+ */ -+ PRUnichar* name = _PR_MD_READ_DIR_UTF16(&dir->md, flags); -+ dir->d.name = name; -+ return name ? &dir->d : NULL; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_CloseDirUTF16(PRDirUTF16 *dir) -+{ -+ PRInt32 rv; -+ -+ if (dir) { -+ rv = _PR_MD_CLOSE_DIR_UTF16(&dir->md); -+ PR_DELETE(dir); -+ if (rv < 0) -+ return PR_FAILURE; -+ else -+ return PR_SUCCESS; -+ } -+ return PR_SUCCESS; -+} -+ -+#endif /* MOZ_UNICODE */ -+ -+ -+static PRStatus PR_CALLBACK FileClose(PRFileDesc *fd) -+{ -+ PRInt32 err; -+ if (!fd || !fd->secret -+ || (fd->secret->state != _PR_FILEDESC_OPEN -+ && fd->secret->state != _PR_FILEDESC_CLOSED)) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ if (fd->secret->state == _PR_FILEDESC_OPEN) { -+ if (close(fd->secret->md.osfd) < 0) { -+ err = _MD_ERRNO(); -+ set_close_error(err); -+ return PR_FAILURE; -+ } -+ fd->secret->state = _PR_FILEDESC_CLOSED; -+ } -+ PR_ASSERT(fd); -+ _PR_Putfd(fd); -+ return PR_SUCCESS; -+} -+ -+static PRInt32 PR_CALLBACK FileRead(PRFileDesc *fd, void *buf, PRInt32 amount) -+{ -+ PRInt32 rv,err = 0; -+ -+ rv = read(fd->secret->md.osfd, buf, amount); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_read_error(err); -+ PR_ASSERT(rv == -1); -+ } -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("read -> %d", rv)); -+ return rv; -+} -+ -+static PRInt32 PR_CALLBACK FileWrite(PRFileDesc *fd, const void *buf, PRInt32 amount) -+{ -+ PRInt32 rv,err = 0; -+ PRInt32 temp, count; -+ -+ count = 0; -+ while (amount > 0) { -+ temp = write(fd->secret->md.osfd, buf, amount); -+ if (temp < 0) { -+ err = _MD_ERRNO(); -+ set_write_error(err); -+ count = -1; -+ break; -+ } -+ count += temp; -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ buf = (const void*) ((const char*)buf + temp); -+ amount -= temp; -+ } -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("write -> %d", count)); -+ return count; -+} -+ -+static PRInt32 PR_CALLBACK FileAvailable(PRFileDesc *fd) -+{ -+ PRInt32 result, cur, end, err; -+ -+ cur = lseek(fd->secret->md.osfd, 0, PR_SEEK_CUR); -+ -+ if (cur >= 0) -+ end = lseek(fd->secret->md.osfd, 0, PR_SEEK_END); -+ -+ if ((cur < 0) || (end < 0)) { -+ err = _MD_ERRNO(); -+ set_lseek_error(err); -+ return -1; -+ } -+ -+ result = end - cur; -+ lseek(fd->secret->md.osfd, cur, PR_SEEK_SET); -+ -+ return result; -+} -+ -+static PRInt64 PR_CALLBACK FileAvailable64(PRFileDesc *fd) -+{ -+ PRInt64 result, cur, end; -+ PRInt64 minus_one; -+ PRInt32 err; -+ -+ cur = lseek(fd->secret->md.osfd, LL_ZERO, PR_SEEK_CUR); -+ -+ if (LL_GE_ZERO(cur)) -+ end = lseek(fd->secret->md.osfd, LL_ZERO, PR_SEEK_END); -+ -+ if (!LL_GE_ZERO(cur) || !LL_GE_ZERO(end)) { -+ LL_I2L(minus_one, -1); -+ err = _MD_ERRNO(); -+ set_lseek_error(err); -+ return minus_one; -+ } -+ LL_SUB(result, end, cur); -+ lseek(fd->secret->md.osfd, cur, PR_SEEK_SET); -+ return result; -+} -+ -+static PRStatus PR_CALLBACK FileSync(PRFileDesc *fd) -+{ -+ PRInt32 result, err; -+ result = fsync(fd->secret->md.osfd); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_fsync_error(err); -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+static PROffset32 PR_CALLBACK FileSeek(PRFileDesc *fd, PROffset32 offset, PRSeekWhence whence) -+{ -+ PROffset32 result; -+ PRInt32 err; -+ result = lseek(fd->secret->md.osfd, offset, whence); -+ if(result<0) { -+ err = _MD_ERRNO(); -+ set_lseek_error(err); -+ } -+ return result; -+} -+ -+static PROffset64 PR_CALLBACK FileSeek64(PRFileDesc *fd, PROffset64 offset, PRSeekWhence whence) -+{ -+ PROffset64 result; -+ PRInt32 err; -+ -+ result = lseek(fd->secret->md.osfd, offset, whence); -+ if(!LL_GE_ZERO(result)) { -+ err = _MD_ERRNO(); -+ set_lseek_error(err); -+ } -+ return result; -+} -+ -+static PRStatus PR_CALLBACK FileGetInfo(PRFileDesc *fd, PRFileInfo *info) -+{ -+ struct stat sb; -+ PRInt64 s, s2us; -+ PRInt32 rv, err; -+ -+ rv = fstat(fd->secret->md.osfd, &sb); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_fstat_error(err); -+ return PR_FAILURE; -+ } -+ if(info) { -+ if (S_IFREG & sb.st_mode) -+ info->type = PR_FILE_FILE ; -+ else if (S_IFDIR & sb.st_mode) -+ info->type = PR_FILE_DIRECTORY; -+ else -+ info->type = PR_FILE_OTHER; -+ /* Use lower 32 bits of file size */ -+ info->size = ( sb.st_size & 0xffffffff); -+ LL_I2L(s, sb.st_mtime); -+ LL_I2L(s2us, PR_USEC_PER_SEC); -+ LL_MUL(s, s, s2us); -+ info->modifyTime = s; -+ LL_I2L(s, sb.st_ctime); -+ LL_MUL(s, s, s2us); -+ info->creationTime = s; -+ } -+ return PR_SUCCESS; -+} -+ -+static PRStatus PR_CALLBACK FileGetInfo64(PRFileDesc *fd, PRFileInfo64 *info) -+{ -+ struct stat sb; -+ PRInt64 s, s2us; -+ PRInt32 rv, err; -+ -+ rv = fstat(fd->secret->md.osfd, &sb); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_fstat_error(err); -+ return PR_FAILURE; -+ } -+ if(info) { -+ if (S_IFREG & sb.st_mode) -+ info->type = PR_FILE_FILE ; -+ else if (S_IFDIR & sb.st_mode) -+ info->type = PR_FILE_DIRECTORY; -+ else -+ info->type = PR_FILE_OTHER; -+ info->size = sb.st_size; -+ LL_I2L(s, sb.st_mtime); -+ LL_I2L(s2us, PR_USEC_PER_SEC); -+ LL_MUL(s, s, s2us); -+ info->modifyTime = s; -+ LL_I2L(s, sb.st_ctime); -+ LL_MUL(s, s, s2us); -+ info->creationTime = s; -+ } -+ return PR_SUCCESS; -+} -+ -+static PRInt16 PR_CALLBACK FilePoll( -+ PRFileDesc *fd, PRInt16 in_flags, PRInt16 *out_flags) -+{ -+ *out_flags = 0; -+ return in_flags; -+} /* FilePoll */ -+ -+ -+static PRIOMethods _pr_fileMethods = { -+ PR_DESC_FILE, -+ FileClose, -+ FileRead, -+ FileWrite, -+ FileAvailable, -+ FileAvailable64, -+ FileSync, -+ FileSeek, -+ FileSeek64, -+ FileGetInfo, -+ FileGetInfo64, -+ (PRWritevFN)_PR_InvalidInt, -+ (PRConnectFN)_PR_InvalidStatus, -+ (PRAcceptFN)_PR_InvalidDesc, -+ (PRBindFN)_PR_InvalidStatus, -+ (PRListenFN)_PR_InvalidStatus, -+ (PRShutdownFN)_PR_InvalidStatus, -+ (PRRecvFN)_PR_InvalidInt, -+ (PRSendFN)_PR_InvalidInt, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ FilePoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ (PRGetsocknameFN)_PR_InvalidStatus, -+ (PRGetpeernameFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRGetsocketoptionFN)_PR_InvalidStatus, -+ (PRSetsocketoptionFN)_PR_InvalidStatus, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+PR_IMPLEMENT(const PRIOMethods*) PR_GetFileMethods(void) -+{ -+ return &_pr_fileMethods; -+} -+ -+ -+static PRInt32 PR_CALLBACK PipeAvailable(PRFileDesc *fd) -+{ -+ PRInt32 rv; -+ rv = _bt_socketavailable(fd); -+ return rv; -+} -+ -+static PRInt64 PR_CALLBACK PipeAvailable64(PRFileDesc *fd) -+{ -+ PRInt64 rv; -+ LL_I2L(rv, _bt_socketavailable(fd)); -+ return rv; -+} -+ -+static PRStatus PR_CALLBACK PipeSync(PRFileDesc *fd) -+{ -+ return PR_SUCCESS; -+} -+ -+ -+static PRIOMethods _pr_pipeMethods = { -+ PR_DESC_PIPE, -+ FileClose, -+ FileRead, -+ FileWrite, -+ PipeAvailable, -+ PipeAvailable64, -+ PipeSync, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ (PRWritevFN)_PR_InvalidInt, -+ (PRConnectFN)_PR_InvalidStatus, -+ (PRAcceptFN)_PR_InvalidDesc, -+ (PRBindFN)_PR_InvalidStatus, -+ (PRListenFN)_PR_InvalidStatus, -+ (PRShutdownFN)_PR_InvalidStatus, -+ (PRRecvFN)_PR_InvalidInt, -+ (PRSendFN)_PR_InvalidInt, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ FilePoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ (PRGetsocknameFN)_PR_InvalidStatus, -+ (PRGetpeernameFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRGetsocketoptionFN)_PR_InvalidStatus, -+ (PRSetsocketoptionFN)_PR_InvalidStatus, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+PR_IMPLEMENT(const PRIOMethods*) PR_GetPipeMethods(void) -+{ -+ return &_pr_pipeMethods; -+} -+ -+void _PR_InitIO(void) { -+ const PRIOMethods *methods = PR_GetFileMethods(); -+ _PR_InitFdCache(); -+ _pr_flock_lock = PR_NewLock(); -+ _pr_flock_cv = PR_NewCondVar(_pr_flock_lock); -+ _pr_stdin = bt_CreateFileDesc(0, PR_GetFileMethods(), _PR_TRI_UNKNOWN, false); -+ _pr_stdout = bt_CreateFileDesc(1, PR_GetFileMethods(), _PR_TRI_UNKNOWN, false); -+ _pr_stderr = bt_CreateFileDesc(2, PR_GetFileMethods(), _PR_TRI_UNKNOWN, false); -+} -+ -Index: mozilla/nsprpub/pr/src/bthreads/btio.c -=================================================================== -RCS file: mozilla/nsprpub/pr/src/bthreads/btio.c -diff -N mozilla/nsprpub/pr/src/bthreads/btio.c ---- /dev/null 1 Jan 1970 00:00:00 -0000 -+++ mozilla/nsprpub/pr/src/bthreads/btio.c 5 Nov 2008 20:51:44 -0000 -@@ -0,0 +1,2424 @@ -+/* -*- Mode: C++; c-basic-offset: 4 -*- */ -+/* ***** BEGIN LICENSE BLOCK ***** -+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 -+ * -+ * The contents of this file are subject to the Mozilla Public License Version -+ * 1.1 (the "License"); you may not use this file except in compliance with -+ * the License. You may obtain a copy of the License at -+ * http://www.mozilla.org/MPL/ -+ * -+ * Software distributed under the License is distributed on an "AS IS" basis, -+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -+ * for the specific language governing rights and limitations under the -+ * License. -+ * -+ * The Original Code is the Netscape Portable Runtime (NSPR). -+ * -+ * The Initial Developer of the Original Code is -+ * Netscape Communications Corporation. -+ * Portions created by the Initial Developer are Copyright (C) 1998-2000 -+ * the Initial Developer. All Rights Reserved. -+ * -+ * Contributor(s): -+ * -+ * Alternatively, the contents of this file may be used under the terms of -+ * either the GNU General Public License Version 2 or later (the "GPL"), or -+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -+ * in which case the provisions of the GPL or the LGPL are applicable instead -+ * of those above. If you wish to allow use of your version of this file only -+ * under the terms of either the GPL or the LGPL, and not to allow others to -+ * use your version of this file under the terms of the MPL, indicate your -+ * decision by deleting the provisions above and replace them with the notice -+ * and other provisions required by the GPL or the LGPL. If you do not delete -+ * the provisions above, a recipient may use your version of this file under -+ * the terms of any one of the MPL, the GPL or the LGPL. -+ * -+ * ***** END LICENSE BLOCK ***** */ -+ -+#include "primpl.h" -+#include -+#include -+#include -+ -+#define READ_FD 1 -+#define WRITE_FD 2 -+ -+#ifdef BONE_VERSION -+inline int closesocket(int socket) { -+ return close(socket); -+} -+#endif -+ -+ -+inline void -+set_stat_error(int err) -+{ -+ PR_SetError(err == ETIMEDOUT ? PR_REMOTE_FILE_ERROR : map_default_error(err), err); -+} -+ -+inline void -+set_access_error(int err) -+{ -+ PR_SetError(err == ETIMEDOUT ? PR_REMOTE_FILE_ERROR : map_default_error(err), err); -+} -+ -+inline void -+set_select_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_writev_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_connect_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EACCES: -+ case ELOOP: -+ case ENOENT: -+ prError = PR_ADDRESS_NOT_SUPPORTED_ERROR; -+ break; -+ case ENXIO: -+ prError = PR_IO_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+ -+} -+ -+inline void -+set_accept_error(int err) -+{ -+ PR_SetError(err == ENODEV ? PR_NOT_TCP_SOCKET_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_bind_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_SOCKET_ADDRESS_IS_BOUND_ERROR; -+ break; -+ case EIO: -+ case EISDIR: -+ case ELOOP: -+ case ENOENT: -+ case ENOTDIR: -+ case EROFS: -+ prError = PR_ADDRESS_NOT_SUPPORTED_ERROR; -+ break; -+ case ENXIO: -+ prError = PR_IO_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+inline void -+set_listen_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_shutdown_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_socketpair_error(int err) -+{ -+ PR_SetError(err == ENOMEM ? PR_INSUFFICIENT_RESOURCES_ERROR : map_default_error(err), err); -+} -+ -+inline void -+set_recv_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_recvfrom_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+ -+inline void -+set_send_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_sendto_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_getsockname_error(int err) -+{ -+ PR_SetError(err == ENOMEM ? PR_INSUFFICIENT_RESOURCES_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_getpeername_error(int err) -+{ -+ PR_SetError(err == ENOMEM ? PR_INSUFFICIENT_RESOURCES_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_getsockopt_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_BUFFER_OVERFLOW_ERROR; -+ break; -+ case ENOMEM: -+ prError = PR_INSUFFICIENT_RESOURCES_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+inline void -+set_setsockopt_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_BUFFER_OVERFLOW_ERROR; -+ break; -+ case ENOMEM: -+ prError = PR_INSUFFICIENT_RESOURCES_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_socket_error(int err) -+{ -+ PR_SetError( err == ENOMEM ? PR_INSUFFICIENT_RESOURCES_ERROR : map_default_error(err), err); -+} -+ -+ -+PR_IMPLEMENT(PRStatus) PR_GetFileInfo(const char *fn, PRFileInfo *info) -+{ -+ struct stat sb; -+ PRInt32 rv, err; -+ PRInt64 s, s2us; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ rv = stat(fn, &sb); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_stat_error(err); -+ return PR_FAILURE; -+ } -+ if (info) { -+ if (S_IFREG & sb.st_mode) -+ info->type = PR_FILE_FILE; -+ else if (S_IFDIR & sb.st_mode) -+ info->type = PR_FILE_DIRECTORY; -+ else -+ info->type = PR_FILE_OTHER; -+ -+ /* Use lower 32 bits of file size */ -+ info->size = sb.st_size & 0xffffffff; -+ LL_I2L(s, sb.st_mtime); -+ LL_I2L(s2us, PR_USEC_PER_SEC); -+ LL_MUL(s, s, s2us); -+ info->modifyTime = s; -+ LL_I2L(s, sb.st_ctime); -+ LL_MUL(s, s, s2us); -+ info->creationTime = s; -+ } -+ -+ return PR_SUCCESS; -+} -+ -+ -+PR_IMPLEMENT(PRStatus) PR_GetFileInfo64(const char *fn, PRFileInfo64 *info) -+{ -+ struct stat sb; -+ PRInt32 rv, err; -+ PRInt64 s, s2us; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ rv = stat(fn, &sb); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_stat_error(err); -+ return PR_FAILURE; -+ } -+ if (info) { -+ if (S_IFREG & sb.st_mode) -+ info->type = PR_FILE_FILE; -+ else if (S_IFDIR & sb.st_mode) -+ info->type = PR_FILE_DIRECTORY; -+ else -+ info->type = PR_FILE_OTHER; -+ -+ /* For the 64 bit version we can use -+ * the native st_size without modification -+ */ -+ info->size = sb.st_size; -+ LL_I2L(s, sb.st_mtime); -+ LL_I2L(s2us, PR_USEC_PER_SEC); -+ LL_MUL(s, s, s2us); -+ info->modifyTime = s; -+ LL_I2L(s, sb.st_ctime); -+ LL_MUL(s, s, s2us); -+ info->creationTime = s; -+ } -+ -+ return PR_SUCCESS; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_Access(const char *name, PRAccessHow how) -+{ -+ PRInt32 rv, err; -+ int checkFlags; -+ struct stat buf; -+ -+ switch (how) { -+ case PR_ACCESS_WRITE_OK: -+ checkFlags = S_IWUSR | S_IWGRP | S_IWOTH; -+ break; -+ -+ case PR_ACCESS_READ_OK: -+ checkFlags = S_IRUSR | S_IRGRP | S_IROTH; -+ break; -+ -+ case PR_ACCESS_EXISTS: -+ /* we don't need to examine st_mode. */ -+ break; -+ -+ default: { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return PR_FAILURE; -+ } -+ } -+ -+ rv = stat(name, &buf); -+ if (rv == 0 && how != PR_ACCESS_EXISTS && (!(buf.st_mode & checkFlags))) { -+ PR_SetError(PR_NO_ACCESS_RIGHTS_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_access_error(err); -+ return PR_FAILURE; -+ } else -+ return PR_SUCCESS; -+} -+ -+ -+PRInt32 -+_bt_socketavailable (PRFileDesc *fd) -+{ -+#ifdef BONE_VERSION -+ PRInt32 result; -+ -+ if (ioctl(fd->secret->md.osfd, FIONREAD, &result) < 0) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, _MD_ERRNO()); -+ return -1; -+ } -+ return result; -+#else -+ return PR_NOT_IMPLEMENTED_ERROR; -+#endif -+} -+ -+ -+#if defined(DEBUG) -+ -+PRBool IsValidNetAddr(const PRNetAddr *addr) -+{ -+ if ((addr != NULL) -+ && (addr->raw.family != PR_AF_INET6) -+ && (addr->raw.family != PR_AF_INET)) { -+ return PR_FALSE; -+ } -+ return PR_TRUE; -+} -+ -+static PRBool IsValidNetAddrLen(const PRNetAddr *addr, PRInt32 addr_len) -+{ -+ /* -+ * The definition of the length of a Unix domain socket address -+ * is not uniform, so we don't check it. -+ */ -+ if ((addr != NULL) -+ && (PR_NETADDR_SIZE(addr) != addr_len)) { -+ return PR_FALSE; -+ } -+ return PR_TRUE; -+} -+ -+#endif /* DEBUG */ -+ -+static PRInt32 socket_io_wait(PRInt32 osfd, PRInt32 fd_type, -+ PRIntervalTime timeout) -+{ -+ PRInt32 rv = -1; -+ struct timeval tv; -+ PRIntervalTime epoch, now, elapsed, remaining; -+ PRBool wait_for_remaining; -+ PRInt32 syserror; -+ fd_set rd_wr; -+ -+ switch (timeout) { -+ case PR_INTERVAL_NO_WAIT: -+ PR_SetError(PR_IO_TIMEOUT_ERROR, 0); -+ break; -+ case PR_INTERVAL_NO_TIMEOUT: -+ /* -+ * This is a special case of the 'default' case below. -+ * Please see the comments there. -+ */ -+ tv.tv_sec = _PR_INTERRUPT_CHECK_INTERVAL_SECS; -+ tv.tv_usec = 0; -+ FD_ZERO(&rd_wr); -+ do { -+ FD_SET(osfd, &rd_wr); -+ if (fd_type == READ_FD) -+ rv = select(osfd + 1, &rd_wr, NULL, NULL, &tv); -+ else -+ rv = select(osfd + 1, NULL, &rd_wr, NULL, &tv); -+ if (rv == -1 && (syserror = _MD_ERRNO()) != EINTR) { -+#ifdef BONE_VERSION -+ set_select_error(syserror); -+#else -+ if (syserror == EBADF) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, EBADF); -+ } else { -+ PR_SetError(PR_UNKNOWN_ERROR, syserror); -+ } -+#endif -+ break; -+ } -+ } while (rv == 0 || (rv == -1 && syserror == EINTR)); -+ break; -+ default: -+ now = epoch = PR_IntervalNow(); -+ remaining = timeout; -+ FD_ZERO(&rd_wr); -+ do { -+ /* -+ * We block in select for at most -+ * _PR_INTERRUPT_CHECK_INTERVAL_SECS seconds, -+ * so that there is an upper limit on the delay -+ * before the interrupt bit is checked. -+ */ -+ wait_for_remaining = PR_TRUE; -+ tv.tv_sec = PR_IntervalToSeconds(remaining); -+ if (tv.tv_sec > _PR_INTERRUPT_CHECK_INTERVAL_SECS) { -+ wait_for_remaining = PR_FALSE; -+ tv.tv_sec = _PR_INTERRUPT_CHECK_INTERVAL_SECS; -+ tv.tv_usec = 0; -+ } else { -+ tv.tv_usec = PR_IntervalToMicroseconds( -+ remaining - -+ PR_SecondsToInterval(tv.tv_sec)); -+ } -+ FD_SET(osfd, &rd_wr); -+ if (fd_type == READ_FD) -+ rv = select(osfd + 1, &rd_wr, NULL, NULL, &tv); -+ else -+ rv = select(osfd + 1, NULL, &rd_wr, NULL, &tv); -+ /* -+ * we don't consider EINTR a real error -+ */ -+ if (rv == -1 && (syserror = _MD_ERRNO()) != EINTR) { -+#ifdef BONE_VERSION -+ set_select_error(syserror); -+#else -+ if (syserror == EBADF) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, EBADF); -+ } else { -+ PR_SetError(PR_UNKNOWN_ERROR, syserror); -+ } -+#endif -+ break; -+ } -+ /* -+ * We loop again if select timed out or got interrupted -+ * by a signal, and the timeout deadline has not passed yet. -+ */ -+ if (rv == 0 || (rv == -1 && syserror == EINTR)) { -+ /* -+ * If select timed out, we know how much time -+ * we spent in blocking, so we can avoid a -+ * PR_IntervalNow() call. -+ */ -+ if (rv == 0) { -+ if (wait_for_remaining) { -+ now += remaining; -+ } else { -+ now += PR_SecondsToInterval(tv.tv_sec) -+ + PR_MicrosecondsToInterval(tv.tv_usec); -+ } -+ } else { -+ now = PR_IntervalNow(); -+ } -+ elapsed = (PRIntervalTime) (now - epoch); -+ if (elapsed >= timeout) { -+ PR_SetError(PR_IO_TIMEOUT_ERROR, 0); -+ rv = -1; -+ break; -+ } else { -+ remaining = timeout - elapsed; -+ } -+ } -+ } while (rv == 0 || (rv == -1 && syserror == EINTR)); -+ break; -+ } -+ return(rv); -+} -+ -+ -+static PRInt32 PR_CALLBACK SocketWritev(PRFileDesc *fd, const PRIOVec *iov, -+PRInt32 iov_size, PRIntervalTime timeout) -+{ -+#ifdef BONE_VERSION -+ int w, err = 0; -+ const PRIOVec *tmp_iov; -+#define LOCAL_MAXIOV 8 -+ PRIOVec local_iov[LOCAL_MAXIOV]; -+ PRIOVec *iov_copy = NULL; -+ int tmp_out; -+ int index, iov_cnt; -+ int count=0, sz = 0; /* 'count' is the return value. */ -+ int i, amount = 0; -+ -+ /* -+ * Assume the first writev will succeed. Copy iov's only on -+ * failure. -+ */ -+ tmp_iov = iov; -+ for (index = 0; index < iov_size; index++) -+ sz += iov[index].iov_len; -+ -+ iov_cnt = iov_size; -+ -+ while (sz > 0) { -+/* -+ /* -+ * Calculate the total number of bytes to be sent; needed for -+ * optimization later. -+ * We could avoid this if this number was passed in; but it is -+ * probably not a big deal because iov_size is usually small (less than -+ * 3) -+ */ -+ if (!fd->secret->nonblocking) { -+ for (i=0; isecret->md.osfd, (const struct iovec*)tmp_iov, iov_size)) == -1) { -+ err = _MD_ERRNO(); -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ if ((w = socket_io_wait(fd->secret->md.osfd, WRITE_FD, timeout))<0) -+ goto done; -+ -+ } else if (err == EINTR) { -+ continue; -+ } else { -+ break; -+ } -+ } -+ /* -+ * optimization; if bytes sent is less than "amount" call -+ * select before returning. This is because it is likely that -+ * the next writev() call will return EWOULDBLOCK. -+ */ -+ if ((!fd->secret->nonblocking) && (w > 0) && (w < amount) -+ && (timeout != PR_INTERVAL_NO_WAIT)) { -+ if (socket_io_wait(fd->secret->md.osfd, WRITE_FD, timeout) < 0) { -+ w = -1; -+ goto done; -+ } -+ } -+ -+ if (w < 0) { -+ set_writev_error(err); -+ } -+done: -+ -+ -+ if (w < 0) { -+ count = -1; -+ break; -+ } -+ count += w; -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ sz -= w; -+ -+ if (sz > 0) { -+ /* find the next unwritten vector */ -+ for ( index = 0, tmp_out = count; -+ tmp_out >= iov[index].iov_len; -+ tmp_out -= iov[index].iov_len, index++){;} /* nothing to execute */ -+ -+ if (tmp_iov == iov) { -+ /* -+ * The first writev failed so we -+ * must copy iov's around. -+ * Avoid calloc/free if there -+ * are few enough iov's. -+ */ -+ if (iov_size - index <= LOCAL_MAXIOV) -+ iov_copy = local_iov; -+ else if ((iov_copy = (PRIOVec *) PR_CALLOC((iov_size - index) * -+ sizeof *iov_copy)) == NULL) { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ return -1; -+ } -+ tmp_iov = iov_copy; -+ } -+ -+ PR_ASSERT(tmp_iov == iov_copy); -+ -+ /* fill in the first partial read */ -+ iov_copy[0].iov_base = &(((char *)iov[index].iov_base)[tmp_out]); -+ iov_copy[0].iov_len = iov[index].iov_len - tmp_out; -+ index++; -+ -+ /* copy the remaining vectors */ -+ for (iov_cnt=1; indexsecret->md.osfd; -+ -+#ifndef BONE_VERSION -+ fd->secret->md.connectValueValid = PR_FALSE; -+#endif -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ PRNetAddr addrCopy; -+ -+ addrCopy = *addr; -+ ((struct sockaddr *) &addrCopy)->sa_len = addrlen; -+ ((struct sockaddr *) &addrCopy)->sa_family = addr->raw.family; -+#endif -+ -+ /* (Copied from unix.c) -+ * We initiate the connection setup by making a nonblocking connect() -+ * call. If the connect() call fails, there are two cases we handle -+ * specially: -+ * 1. The connect() call was interrupted by a signal. In this case -+ * we simply retry connect(). -+ * 2. The NSPR socket is nonblocking and connect() fails with -+ * EINPROGRESS. We first wait until the socket becomes writable. -+ * Then we try to find out whether the connection setup succeeded -+ * or failed. -+ */ -+ -+retry: -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if ((rv = connect(osfd, (struct sockaddr *)&addrCopy, addrlen)) == -1) { -+#else -+ if ((rv = connect(osfd, (struct sockaddr *)addr, addrlen)) == -1) { -+#endif -+ err = _MD_ERRNO(); -+#ifndef BONE_VERSION -+ fd->secret->md.connectReturnValue = rv; -+ fd->secret->md.connectReturnError = err; -+ fd->secret->md.connectValueValid = PR_TRUE; -+#endif -+ if( err == EINTR ) { -+#ifndef BONE_VERSION -+ snooze( 100000L ); -+#endif -+ goto retry; -+ } -+ -+#ifndef BONE_VERSION -+ if(!fd->secret->nonblocking && ((err == EINPROGRESS) || (err==EAGAIN) || (err==EALREADY))) { -+ -+ /* -+ ** There's no timeout on this connect, but that's not -+ ** a big deal, since the connect times out anyways -+ ** after 30 seconds. Just sleep for 1/10th of a second -+ ** and retry until we go through or die. -+ */ -+ goto retry; -+ } -+ -+ if( fd->secret->nonblocking && ((err == EAGAIN) || (err == EINPROGRESS))) { -+ PR_Lock(_connectLock); -+ if (connectCount < sizeof(connectList)/sizeof(connectList[0])) { -+ connectList[connectCount].osfd = osfd; -+ memcpy(&connectList[connectCount].addr, addr, addrlen); -+ connectList[connectCount].addrlen = addrlen; -+ connectList[connectCount].timeout = timeout; -+ connectCount++; -+ PR_Unlock(_connectLock); -+ set_connect_error(err); -+ } else { -+ PR_Unlock(_connectLock); -+ PR_SetError(PR_INSUFFICIENT_RESOURCES_ERROR, 0); -+ } -+ return rv; -+ } -+#else /* BONE_VERSION */ -+ if(!fd->secret->nonblocking && (err == EINTR)) { -+ -+ rv = socket_io_wait(osfd, WRITE_FD, timeout); -+ if (rv == -1) { -+ return -1; -+ } -+ -+ PR_ASSERT(rv == 1); -+/* _MD_beos_get_nonblocking_connect_error always return PR_NOT_IMPLEMENTED.. -+ err = _MD_beos_get_nonblocking_connect_error(osfd); -+ if (err != 0) { -+ set_connect_error(err); -+ return -1; -+ } -+*/ -+ return 0; -+ } -+#endif -+ -+ set_connect_error(err); -+ } -+ -+ return rv; -+} -+ -+ -+static PRStatus PR_CALLBACK SocketConnect( -+ PRFileDesc *fd, const PRNetAddr *addr, PRIntervalTime timeout) -+{ -+ PRInt32 rv; /* Return value of _PR_MD_CONNECT */ -+ const PRNetAddr *addrp = addr; -+#if defined(_PR_INET6) -+ PRNetAddr addrCopy; -+ if (addr->raw.family == PR_AF_INET6) { -+ addrCopy = *addr; -+ addrCopy.raw.family = AF_INET6; -+ addrp = &addrCopy; -+ } -+#endif -+ -+ rv = _bt_CONNECT(fd, addrp, PR_NETADDR_SIZE(addr), timeout); -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("connect -> %d", rv)); -+ if (rv == 0) -+ return PR_SUCCESS; -+ else -+ return PR_FAILURE; -+} -+ -+static PRStatus PR_CALLBACK SocketConnectContinue( -+ PRFileDesc *fd, PRInt16 out_flags) -+{ -+ PRInt32 osfd; -+ int err; -+ int rv; -+ -+ if (out_flags & PR_POLL_NVAL) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ if ((out_flags & (PR_POLL_WRITE | PR_POLL_EXCEPT | PR_POLL_ERR)) == 0) { -+ PR_ASSERT(out_flags == 0); -+ PR_SetError(PR_IN_PROGRESS_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ osfd = fd->secret->md.osfd; -+ -+ -+#ifdef BONE_VERSION /* bug 122364 */ -+ /* temporary workaround until getsockopt(SO_ERROR) works in BONE */ -+ if (out_flags & PR_POLL_EXCEPT) { -+ PR_SetError(PR_CONNECT_REFUSED_ERROR, 0); -+ return PR_FAILURE; -+ } -+ PR_ASSERT(out_flags & PR_POLL_WRITE); -+ return PR_SUCCESS; -+#else -+ rv = recv(fd->secret->md.osfd, NULL, 0, 0); -+ PR_ASSERT(-1 == rv || 0 == rv); -+ -+ if (-1 == rv && 0 != errno && errno != EAGAIN && errno != EWOULDBLOCK ) { -+ set_connect_error(errno); -+ return PR_FAILURE; -+ } -+ else -+ return PR_SUCCESS; -+#endif -+} -+ -+PRInt32 -+_bt_accept (PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen, -+ PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+ while ((rv = accept(osfd, (struct sockaddr *) addr, -+ (int *)addrlen)) == -1) { -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ /* If it's SUPPOSED to be a blocking thread, wait -+ * a while to see if the triggering condition gets -+ * satisfied. -+ */ -+ /* Assume that we're always using a native thread */ -+ if ((rv = socket_io_wait(osfd, READ_FD, timeout)) < 0) -+ goto done; -+ } else if (err == EINTR) { -+ continue; -+ } else { -+ break; -+ } -+ } -+ if (rv < 0) { -+ set_accept_error(err); -+ } else if (addr != NULL) { -+ /* bug 134099 */ -+ err = getpeername(rv, (struct sockaddr *) addr, (int *)addrlen); -+ } -+done: -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if (rv != -1) { -+ /* Mask off the first byte of struct sockaddr (the length field) */ -+ if (addr) { -+ addr->raw.family = ((struct sockaddr *) addr)->sa_family; -+ } -+ } -+#endif /* _PR_HAVE_SOCKADDR_LEN */ -+ return(rv); -+} -+ -+ -+ -+static PRFileDesc* PR_CALLBACK SocketAccept(PRFileDesc *fd, PRNetAddr *addr, -+PRIntervalTime timeout) -+{ -+ PRInt32 osfd; -+ PRFileDesc *fd2; -+ PRUint32 al; -+ -+ al = sizeof(PRNetAddr); -+ osfd = _bt_accept(fd, addr, &al, timeout); -+ if (osfd == -1) -+ return 0; -+ fd2 = bt_CreateFileDesc(osfd, PR_GetTCPMethods(), _PR_TRI_TRUE, true); -+ if (!fd2) { -+ closesocket(osfd); -+ -+ return NULL; -+ } -+ -+ fd2->secret->nonblocking = fd->secret->nonblocking; -+ fd2->secret->inheritable = fd->secret->inheritable; -+ -+#ifdef _PR_INET6 -+ if (addr && (AF_INET6 == addr->raw.family)) -+ addr->raw.family = PR_AF_INET6; -+#endif -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+ PR_ASSERT(IsValidNetAddrLen(addr, al) == PR_TRUE); -+ -+ return fd2; -+} -+ -+ -+static PRStatus PR_CALLBACK SocketBind(PRFileDesc *fd, const PRNetAddr *addr) -+{ -+ PRInt32 result, err; -+ const PRNetAddr *addrp = addr; -+#if defined(_PR_INET6) || defined(_PR_HAVE_SOCKADDR_LEN) -+ PRNetAddr addrCopy; -+#endif -+ -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+#if defined(_PR_INET6) -+ if (addr->raw.family == PR_AF_INET6) { -+ addrCopy = *addr; -+ addrCopy.raw.family = AF_INET6; -+ addrp = &addrCopy; -+ } -+#endif -+ -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ addrCopy = *addrp; -+ ((struct sockaddr *) &addrCopy)->sa_len = PR_NETADDR_SIZE(addrp); -+ ((struct sockaddr *) &addrCopy)->sa_family = addr->raw.family; -+ result = bind(fd->secret->md.osfd, (struct sockaddr *) &addrCopy, PR_NETADDR_SIZE(addrp)); -+#else -+ result = bind(fd->secret->md.osfd, (struct sockaddr *) addrp, PR_NETADDR_SIZE(addrp)); -+#endif -+ -+ -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_bind_error(err); -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+static PRStatus PR_CALLBACK SocketListen(PRFileDesc *fd, PRIntn backlog) -+{ -+ PRInt32 result,err; -+#ifndef BONE_VERSION -+ /* Bug workaround! Setting listen to 0 on Be accepts no connections. -+ ** On most UN*Xes this sets the default. -+ */ -+ -+ if( backlog == 0 ) backlog = 5; -+#endif -+ result = listen(fd->secret->md.osfd, backlog); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_listen_error(err); -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+static PRStatus PR_CALLBACK SocketShutdown(PRFileDesc *fd, PRIntn how) -+{ -+ PRInt32 result,err; -+#ifndef BONE_VERSION -+ if (how == PR_SHUTDOWN_SEND) -+ fd->secret->md.sock_state = BE_SOCK_SHUTDOWN_WRITE; -+ else if (how == PR_SHUTDOWN_RCV) -+ fd->secret->md.sock_state = BE_SOCK_SHUTDOWN_READ; -+ else if (how == PR_SHUTDOWN_BOTH) { -+ fd->secret->md.sock_state = (BE_SOCK_SHUTDOWN_WRITE | BE_SOCK_SHUTDOWN_READ); -+ } -+#else /* BONE_VERSION */ -+ result = shutdown(fd->secret->md.osfd, how); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_shutdown_error(err); -+ return PR_FAILURE; -+ } -+#endif -+ return PR_SUCCESS; -+} -+ -+PRInt32 -+_bt_recv (PRFileDesc *fd, void *buf, PRInt32 amount, PRInt32 flags, -+ PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+#ifndef BONE_VERSION -+ if (fd->secret->md.sock_state & BE_SOCK_SHUTDOWN_READ) { -+ set_recv_error(EPIPE); -+ return -1; -+ } -+#endif -+ -+#ifdef BONE_VERSION -+ /* -+ ** Gah, stupid hack. If reading a zero amount, instantly return success. -+ ** BONE beta 6 returns EINVAL for reads of zero bytes, which parts of -+ ** mozilla use to check for socket availability. -+ */ -+ -+ if( 0 == amount ) return(0); -+#endif -+ -+ while ((rv = recv(osfd, buf, amount, flags)) == -1) { -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ /* If socket was supposed to be blocking, -+ wait a while for the condition to be -+ satisfied. */ -+ if ((rv = socket_io_wait(osfd, READ_FD, timeout)) < 0) -+ goto done; -+ } else if (err == EINTR) { -+ continue; -+ } else -+ break; -+ } -+ -+ if (rv < 0) { -+ set_recv_error(err); -+ } -+ -+done: -+ return(rv); -+} -+ -+static PRInt32 PR_CALLBACK SocketRecv(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, -+PRIntervalTime timeout) -+{ -+ PRInt32 rv; -+ -+ if ((flags != 0) && (flags != PR_MSG_PEEK)) { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return -1; -+ } -+ -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("recv: fd=%p osfd=%d buf=%p amount=%d flags=%d", -+ fd, fd->secret->md.osfd, buf, amount, flags)); -+ -+ -+ rv = _bt_recv(fd, buf, amount, flags, timeout); -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("recv -> %d, error = %d, os error = %d", -+ rv, PR_GetError(), PR_GetOSError())); -+ -+ return rv; -+} -+ -+static PRInt32 PR_CALLBACK SocketRead(PRFileDesc *fd, void *buf, PRInt32 amount) -+{ -+ return SocketRecv(fd, buf, amount, 0, PR_INTERVAL_NO_TIMEOUT); -+} -+ -+PRInt32 -+_bt_send (PRFileDesc *fd, const void *buf, PRInt32 amount, PRInt32 flags, -+ PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+#ifndef BONE_VERSION -+ if (fd->secret->md.sock_state & BE_SOCK_SHUTDOWN_WRITE) -+ { -+ set_send_error(EPIPE); -+ return -1; -+ } -+#endif -+ -+ while ((rv = send(osfd, buf, amount, flags)) == -1) { -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ -+#ifndef BONE_VERSION -+ -+ /* in UNIX implementations, you could do a socket_io_wait here. -+ * but since BeOS doesn't yet support WRITE notification in select, -+ * you're spanked. -+ */ -+ snooze( 10000L ); -+ continue; -+#else /* BONE_VERSION */ -+ if ((rv = socket_io_wait(osfd, WRITE_FD, timeout))< 0) -+ goto done; -+#endif -+ -+ } else if (err == EINTR) { -+ continue; -+ } else { -+ break; -+ } -+ } -+ -+#ifdef BONE_VERSION -+ /* -+ * optimization; if bytes sent is less than "amount" call -+ * select before returning. This is because it is likely that -+ * the next writev() call will return EWOULDBLOCK. -+ */ -+ if ((!fd->secret->nonblocking) && (rv > 0) && (rv < amount) -+ && (timeout != PR_INTERVAL_NO_WAIT)) { -+ if (socket_io_wait(osfd, WRITE_FD, timeout) < 0) { -+ rv = -1; -+ goto done; -+ } -+ } -+#endif /* BONE_VERSION */ -+ -+ if (rv < 0) { -+ set_send_error(err); -+ } -+ -+#ifdef BONE_VERSION -+done: -+#endif -+ return(rv); -+} -+ -+ -+static PRInt32 PR_CALLBACK SocketSend(PRFileDesc *fd, const void *buf, PRInt32 amount, -+PRIntn flags, PRIntervalTime timeout) -+{ -+ PRInt32 temp, count; -+ -+ count = 0; -+ while (amount > 0) { -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, -+ ("send: fd=%p osfd=%d buf=%p amount=%d", -+ fd, fd->secret->md.osfd, buf, amount)); -+ temp = _bt_send(fd, buf, amount, flags, timeout); -+ if (temp < 0) { -+ count = -1; -+ break; -+ } -+ -+ count += temp; -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ buf = (const void*) ((const char*)buf + temp); -+ -+ amount -= temp; -+ } -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("send -> %d", count)); -+ return count; -+} -+ -+static PRInt32 PR_CALLBACK SocketWrite(PRFileDesc *fd, const void *buf, PRInt32 amount) -+{ -+ return SocketSend(fd, buf, amount, 0, PR_INTERVAL_NO_TIMEOUT); -+} -+ -+static PRStatus PR_CALLBACK SocketClose(PRFileDesc *fd) -+{ -+ if (!fd || !fd->secret -+ || (fd->secret->state != _PR_FILEDESC_OPEN -+ && fd->secret->state != _PR_FILEDESC_CLOSED)) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ if (fd->secret->state == _PR_FILEDESC_OPEN) { -+ if (closesocket(fd->secret->md.osfd) < 0) { -+ return PR_FAILURE; -+ } -+ -+ fd->secret->state = _PR_FILEDESC_CLOSED; -+ } -+ -+ PR_ASSERT(fd); -+ _PR_Putfd(fd); -+ return PR_SUCCESS; -+} -+ -+static PRInt32 PR_CALLBACK SocketAvailable(PRFileDesc *fd) -+{ -+ PRInt32 rv; -+ rv = _bt_socketavailable(fd); -+ return rv; -+} -+ -+static PRInt64 PR_CALLBACK SocketAvailable64(PRFileDesc *fd) -+{ -+ PRInt64 rv; -+ LL_I2L(rv, _bt_socketavailable(fd)); -+ return rv; -+} -+ -+static PRStatus PR_CALLBACK SocketSync(PRFileDesc *fd) -+{ -+ return PR_SUCCESS; -+} -+ -+PRInt32 -+_bt_sendto (PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags, -+ const PRNetAddr *addr, PRUint32 addrlen, PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ PRNetAddr addrCopy; -+ -+ addrCopy = *addr; -+ ((struct sockaddr *) &addrCopy)->sa_len = addrlen; -+ ((struct sockaddr *) &addrCopy)->sa_family = addr->raw.family; -+ -+ while ((rv = sendto(osfd, buf, amount, flags, -+ (struct sockaddr *) &addrCopy, addrlen)) == -1) { -+#else -+ while ((rv = sendto(osfd, buf, amount, flags, -+ (struct sockaddr *) addr, addrlen)) == -1) { -+#endif -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ -+#ifdef BONE_VERSION -+ if ((rv = socket_io_wait(osfd, WRITE_FD, timeout))< 0) -+ goto done; -+#endif -+ } else if (err == EINTR) { -+ continue; -+ -+ } else { -+ break; -+ } -+ } -+ -+ if (rv < 0) { -+ set_sendto_error(err); -+ } -+ -+#ifdef BONE_VERSION -+done: -+#endif -+ return(rv); -+} -+ -+ -+static PRInt32 PR_CALLBACK SocketSendTo( -+ PRFileDesc *fd, const void *buf, PRInt32 amount, -+ PRIntn flags, const PRNetAddr *addr, PRIntervalTime timeout) -+{ -+ PRInt32 temp, count; -+ const PRNetAddr *addrp = addr; -+#if defined(_PR_INET6) -+ PRNetAddr addrCopy; -+#endif -+ -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+#if defined(_PR_INET6) -+ if (addr->raw.family == PR_AF_INET6) { -+ addrCopy = *addr; -+ addrCopy.raw.family = AF_INET6; -+ addrp = &addrCopy; -+ } -+#endif -+ -+ count = 0; -+ while (amount > 0) { -+ temp = _bt_sendto(fd, buf, amount, flags, -+ addrp, PR_NETADDR_SIZE(addr), timeout); -+ if (temp < 0) { -+ count = -1; -+ break; -+ } -+ count += temp; -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ buf = (const void*) ((const char*)buf + temp); -+ amount -= temp; -+ } -+ return count; -+} -+ -+PRInt32 -+_bt_recvfrom (PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, -+ PRNetAddr *addr, PRUint32 *addrlen, PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+ while ((*addrlen = PR_NETADDR_SIZE(addr)), -+ ((rv = recvfrom(osfd, buf, amount, flags, -+ (struct sockaddr *) addr, -+ (int *)addrlen)) == -1)) { -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ if ((rv = socket_io_wait(osfd, READ_FD, timeout)) < 0) -+ goto done; -+ -+ } else if (err == EINTR) { -+ continue; -+ } else { -+ break; -+ } -+ } -+ -+ if (rv < 0) { -+ set_recvfrom_error(err); -+ } -+ -+done: -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if (rv != -1) { -+ /* ignore the sa_len field of struct sockaddr */ -+ if (addr) { -+ addr->raw.family = ((struct sockaddr *) addr)->sa_family; -+ } -+ } -+#endif /* _PR_HAVE_SOCKADDR_LEN */ -+ return(rv); -+} -+ -+ -+ -+static PRInt32 PR_CALLBACK SocketRecvFrom(PRFileDesc *fd, void *buf, PRInt32 amount, -+PRIntn flags, PRNetAddr *addr, PRIntervalTime timeout) -+{ -+ PRInt32 rv; -+ PRUint32 al; -+ -+ al = sizeof(PRNetAddr); -+ rv = _bt_recvfrom(fd, buf, amount, flags, addr, &al, timeout); -+#ifdef _PR_INET6 -+ if (addr && (AF_INET6 == addr->raw.family)) -+ addr->raw.family = PR_AF_INET6; -+#endif -+ return rv; -+} -+ -+static PRInt32 PR_CALLBACK SocketAcceptRead(PRFileDesc *sd, PRFileDesc **nd, -+PRNetAddr **raddr, void *buf, PRInt32 amount, -+PRIntervalTime timeout) -+{ -+ /* The socket must be in blocking mode. */ -+ if (sd->secret->nonblocking) { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return -1; -+ } -+ *nd = NULL; -+ -+ return PR_EmulateAcceptRead(sd, nd, raddr, buf, amount, timeout); -+} -+ -+ -+static PRInt32 PR_CALLBACK SocketSendFile( -+ PRFileDesc *sd, PRSendFileData *sfd, -+ PRTransmitFileFlags flags, PRIntervalTime timeout) -+{ -+ /* The socket must be in blocking mode. */ -+ if (sd->secret->nonblocking) { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return -1; -+ } -+ return PR_EmulateSendFile(sd, sfd, flags, timeout); -+} -+ -+static PRInt32 PR_CALLBACK SocketTransmitFile(PRFileDesc *sd, PRFileDesc *fd, -+const void *headers, PRInt32 hlen, PRTransmitFileFlags flags, -+PRIntervalTime timeout) -+{ -+ PRSendFileData sfd; -+ -+ sfd.fd = fd; -+ sfd.file_offset = 0; -+ sfd.file_nbytes = 0; -+ sfd.header = headers; -+ sfd.hlen = hlen; -+ sfd.trailer = NULL; -+ sfd.tlen = 0; -+ -+ return(SocketSendFile(sd, &sfd, flags, timeout)); -+} -+ -+static PRStatus PR_CALLBACK SocketGetName(PRFileDesc *fd, PRNetAddr *addr) -+{ -+ PRInt32 result, err; -+ PRUint32 addrlen; -+ -+ addrlen = sizeof(PRNetAddr); -+ result = getsockname(fd->secret->md.osfd, (struct sockaddr *) addr, &addrlen); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_getsockname_error(err); -+ return PR_FAILURE; -+ } -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if (result == 0) { -+ /* ignore the sa_len field of struct sockaddr */ -+ if (addr) { -+ addr->raw.family = ((struct sockaddr *) addr)->sa_family; -+ } -+ } -+#endif /* _PR_HAVE_SOCKADDR_LEN */ -+ -+#ifdef _PR_INET6 -+ if (AF_INET6 == addr->raw.family) -+ addr->raw.family = PR_AF_INET6; -+#endif -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+ PR_ASSERT(IsValidNetAddrLen(addr, addrlen) == PR_TRUE); -+ return PR_SUCCESS; -+} -+ -+static PRStatus PR_CALLBACK SocketGetPeerName(PRFileDesc *fd, PRNetAddr *addr) -+{ -+ PRInt32 result, err; -+ PRUint32 addrlen; -+ -+ addrlen = sizeof(PRNetAddr); -+ result = getpeername(fd->secret->md.osfd, (struct sockaddr *) addr, &addrlen); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_getpeername_error(err); -+ return PR_FAILURE; -+ } -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if (result == 0) { -+ /* ignore the sa_len field of struct sockaddr */ -+ if (addr) { -+ addr->raw.family = ((struct sockaddr *) addr)->sa_family; -+ } -+ } -+#endif /* _PR_HAVE_SOCKADDR_LEN */ -+ -+#ifdef _PR_INET6 -+ if (AF_INET6 == addr->raw.family) -+ addr->raw.family = PR_AF_INET6; -+#endif -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+ PR_ASSERT(IsValidNetAddrLen(addr, addrlen) == PR_TRUE); -+ return PR_SUCCESS; -+} -+ -+static PRInt16 PR_CALLBACK SocketPoll( -+ PRFileDesc *fd, PRInt16 in_flags, PRInt16 *out_flags) -+{ -+ *out_flags = 0; -+ return in_flags; -+} /* SocketPoll */ -+ -+ -+PRStatus PR_CALLBACK SocketGetOption(PRFileDesc *fd, PRSocketOptionData *data) -+{ -+ PRStatus rv; -+ PRInt32 level, name, length, err; -+ -+ /* -+ * PR_SockOpt_Nonblocking is a special case that does not -+ * translate to a getsockopt() call -+ */ -+ if (PR_SockOpt_Nonblocking == data->option) -+ { -+ data->value.non_blocking = fd->secret->nonblocking; -+ return PR_SUCCESS; -+ } -+ -+ rv = _PR_MapOptionName(data->option, &level, &name); -+ if (PR_SUCCESS != rv) return rv; -+ -+ switch (data->option) -+ { -+ case PR_SockOpt_Linger: -+ { -+#ifdef BONE_VERSION -+ struct linger linger; -+ length = sizeof(linger); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char *) &linger, &length)) -+ { -+ PR_ASSERT(sizeof(linger) == length); -+ data->value.linger.polarity = -+ (linger.l_onoff) ? PR_TRUE : PR_FALSE; -+ data->value.linger.linger = -+ PR_SecondsToInterval(linger.l_linger); -+ return PR_SUCCESS; -+ } -+ break; -+#else -+ PR_SetError( PR_NOT_IMPLEMENTED_ERROR, 0 ); -+ return PR_FAILURE; -+#endif -+ } -+ case PR_SockOpt_Reuseaddr: -+ case PR_SockOpt_Keepalive: -+ case PR_SockOpt_NoDelay: -+ case PR_SockOpt_Broadcast: -+ { -+ PRIntn value; -+ length = sizeof(value); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char *) &value, &length)) -+ { -+ data->value.reuse_addr = (0 == value) ? PR_FALSE : PR_TRUE; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+ case PR_SockOpt_McastLoopback: -+ { -+ PRUint8 bool; -+ length = sizeof(bool); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&bool, &length)) -+ { -+ data->value.mcast_loopback = (0 == bool) ? PR_FALSE : PR_TRUE; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+ case PR_SockOpt_RecvBufferSize: -+ case PR_SockOpt_SendBufferSize: -+ case PR_SockOpt_MaxSegment: -+ { -+ PRIntn value; -+ length = sizeof(value); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&value, &length)) -+ { -+ data->value.recv_buffer_size = value; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+ case PR_SockOpt_IpTimeToLive: -+ case PR_SockOpt_IpTypeOfService: -+ { -+ /* These options should really be an int (or PRIntn). */ -+ length = sizeof(PRUintn); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&data->value.ip_ttl, &length)) -+ return PR_SUCCESS; -+ break; -+ } -+ case PR_SockOpt_McastTimeToLive: -+ { -+ PRUint8 ttl; -+ length = sizeof(ttl); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&ttl, &length)) -+ { -+ data->value.mcast_ttl = ttl; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+#ifdef IP_ADD_MEMBERSHIP -+ case PR_SockOpt_AddMember: -+ case PR_SockOpt_DropMember: -+ { -+ struct ip_mreq mreq; -+ length = sizeof(mreq); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&mreq, &length)) -+ { -+ data->value.add_member.mcaddr.inet.ip = -+ mreq.imr_multiaddr.s_addr; -+ data->value.add_member.ifaddr.inet.ip = -+ mreq.imr_interface.s_addr; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+#endif /* IP_ADD_MEMBERSHIP */ -+ case PR_SockOpt_McastInterface: -+ { -+ /* This option is a struct in_addr. */ -+ length = sizeof(data->value.mcast_if.inet.ip); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, -+ (char*)&data->value.mcast_if.inet.ip, &length)) -+ return PR_SUCCESS; -+ break; -+ } -+ default: -+ PR_NOT_REACHED("Unknown socket option"); -+ break; -+ } -+ err = _MD_ERRNO(); -+ set_getsockopt_error(err); -+ return PR_FAILURE; -+} /* SocketGetOption */ -+ -+PRStatus PR_CALLBACK SocketSetOption(PRFileDesc *fd, const PRSocketOptionData *data) -+{ -+ PRStatus rv; -+ PRInt32 level, name, result, err; -+ -+ /* -+ * PR_SockOpt_Nonblocking is a special case that does not -+ * translate to a setsockopt call. -+ */ -+ if (PR_SockOpt_Nonblocking == data->option) -+ { -+ fd->secret->nonblocking = data->value.non_blocking; -+ return PR_SUCCESS; -+ } -+ -+ rv = _PR_MapOptionName(data->option, &level, &name); -+ if (PR_SUCCESS != rv) return rv; -+ -+ switch (data->option) -+ { -+ case PR_SockOpt_Linger: -+ { -+#ifdef BONE_VERSION -+ struct linger linger; -+ linger.l_onoff = data->value.linger.polarity; -+ linger.l_linger = PR_IntervalToSeconds(data->value.linger.linger); -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&linger, sizeof(linger)); -+ break; -+#else -+ PR_SetError( PR_NOT_IMPLEMENTED_ERROR, 0 ); -+ return PR_FAILURE; -+#endif -+ } -+ case PR_SockOpt_Reuseaddr: -+ case PR_SockOpt_Keepalive: -+ case PR_SockOpt_NoDelay: -+ case PR_SockOpt_Broadcast: -+ { -+ PRIntn value; -+ value = (data->value.reuse_addr) ? 1 : 0; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&value, sizeof(value)); -+ break; -+ } -+ case PR_SockOpt_McastLoopback: -+ { -+ PRUint8 bool; -+ bool = data->value.mcast_loopback ? 1 : 0; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&bool, sizeof(bool)); -+ break; -+ } -+ case PR_SockOpt_RecvBufferSize: -+ case PR_SockOpt_SendBufferSize: -+ case PR_SockOpt_MaxSegment: -+ { -+ PRIntn value = data->value.recv_buffer_size; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&value, sizeof(value)); -+ break; -+ } -+ case PR_SockOpt_IpTimeToLive: -+ case PR_SockOpt_IpTypeOfService: -+ { -+ /* These options should really be an int (or PRIntn). */ -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&data->value.ip_ttl, sizeof(PRUintn)); -+ break; -+ } -+ case PR_SockOpt_McastTimeToLive: -+ { -+ PRUint8 ttl; -+ ttl = data->value.mcast_ttl; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&ttl, sizeof(ttl)); -+ break; -+ } -+#ifdef IP_ADD_MEMBERSHIP -+ case PR_SockOpt_AddMember: -+ case PR_SockOpt_DropMember: -+ { -+ struct ip_mreq mreq; -+ mreq.imr_multiaddr.s_addr = -+ data->value.add_member.mcaddr.inet.ip; -+ mreq.imr_interface.s_addr = -+ data->value.add_member.ifaddr.inet.ip; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&mreq, sizeof(mreq)); -+ break; -+ } -+#endif /* IP_ADD_MEMBERSHIP */ -+ case PR_SockOpt_McastInterface: -+ { -+ /* This option is a struct in_addr. */ -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&data->value.mcast_if.inet.ip, -+ sizeof(data->value.mcast_if.inet.ip)); -+ break; -+ } -+ default: -+ PR_NOT_REACHED("Unknown socket option"); -+ break; -+ } -+ if (0 == result) -+ return PR_SUCCESS; -+ err = _MD_ERRNO(); -+ set_setsockopt_error(err); -+ return PR_FAILURE; -+} /* SocketSetOption */ -+ -+ -+ -+static PRIOMethods tcpMethods = { -+ PR_DESC_SOCKET_TCP, -+ SocketClose, -+ SocketRead, -+ SocketWrite, -+ SocketAvailable, -+ SocketAvailable64, -+ SocketSync, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ SocketWritev, -+ SocketConnect, -+ SocketAccept, -+ SocketBind, -+ SocketListen, -+ SocketShutdown, -+ SocketRecv, -+ SocketSend, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ SocketPoll, -+ SocketAcceptRead, -+ SocketTransmitFile, -+ SocketGetName, -+ SocketGetPeerName, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ SocketGetOption, -+ SocketSetOption, -+ SocketSendFile, -+ SocketConnectContinue, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+static PRIOMethods udpMethods = { -+ PR_DESC_SOCKET_UDP, -+ SocketClose, -+ SocketRead, -+ SocketWrite, -+ SocketAvailable, -+ SocketAvailable64, -+ SocketSync, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ SocketWritev, -+ SocketConnect, -+ (PRAcceptFN)_PR_InvalidDesc, -+ SocketBind, -+ SocketListen, -+ SocketShutdown, -+ SocketRecv, -+ SocketSend, -+ SocketRecvFrom, -+ SocketSendTo, -+ SocketPoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ SocketGetName, -+ SocketGetPeerName, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ SocketGetOption, -+ SocketSetOption, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+ -+static PRIOMethods socketpollfdMethods = { -+ (PRDescType) 0, -+ (PRCloseFN)_PR_InvalidStatus, -+ (PRReadFN)_PR_InvalidInt, -+ (PRWriteFN)_PR_InvalidInt, -+ (PRAvailableFN)_PR_InvalidInt, -+ (PRAvailable64FN)_PR_InvalidInt64, -+ (PRFsyncFN)_PR_InvalidStatus, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ (PRWritevFN)_PR_InvalidInt, -+ (PRConnectFN)_PR_InvalidStatus, -+ (PRAcceptFN)_PR_InvalidDesc, -+ (PRBindFN)_PR_InvalidStatus, -+ (PRListenFN)_PR_InvalidStatus, -+ (PRShutdownFN)_PR_InvalidStatus, -+ (PRRecvFN)_PR_InvalidInt, -+ (PRSendFN)_PR_InvalidInt, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ SocketPoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ (PRGetsocknameFN)_PR_InvalidStatus, -+ (PRGetpeernameFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRGetsocketoptionFN)_PR_InvalidStatus, -+ (PRSetsocketoptionFN)_PR_InvalidStatus, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+static PRIOMethods _pr_socketpollfd_methods = { -+ (PRDescType) 0, -+ (PRCloseFN)_PR_InvalidStatus, -+ (PRReadFN)_PR_InvalidInt, -+ (PRWriteFN)_PR_InvalidInt, -+ (PRAvailableFN)_PR_InvalidInt, -+ (PRAvailable64FN)_PR_InvalidInt64, -+ (PRFsyncFN)_PR_InvalidStatus, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ (PRWritevFN)_PR_InvalidInt, -+ (PRConnectFN)_PR_InvalidStatus, -+ (PRAcceptFN)_PR_InvalidDesc, -+ (PRBindFN)_PR_InvalidStatus, -+ (PRListenFN)_PR_InvalidStatus, -+ (PRShutdownFN)_PR_InvalidStatus, -+ (PRRecvFN)_PR_InvalidInt, -+ (PRSendFN)_PR_InvalidInt, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ SocketPoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ (PRGetsocknameFN)_PR_InvalidStatus, -+ (PRGetpeernameFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRGetsocketoptionFN)_PR_InvalidStatus, -+ (PRSetsocketoptionFN)_PR_InvalidStatus, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+PR_IMPLEMENT(const PRIOMethods*) PR_GetTCPMethods() -+{ -+ return &tcpMethods; -+} -+ -+PR_IMPLEMENT(const PRIOMethods*) PR_GetUDPMethods() -+{ -+ return &udpMethods; -+} -+ -+static const PRIOMethods* PR_GetSocketPollFdMethods(void) -+{ -+ return &_pr_socketpollfd_methods; -+} /* PR_GetSocketPollFdMethods */ -+ -+PR_IMPLEMENT(PRInt32) PR_Poll(PRPollDesc *pds, PRIntn npds, PRIntervalTime timeout) -+{ -+ PRInt32 rv = 0; -+ /* -+ * This code is almost a duplicate of w32poll.c's _PR_MD_PR_POLL(). -+ */ -+ fd_set rd, wt, ex; -+ PRFileDesc *bottom; -+ PRPollDesc *pd, *epd; -+ PRInt32 maxfd = -1, ready, err; -+ PRIntervalTime remaining, elapsed, start; -+ -+ struct timeval tv, *tvp = NULL; -+ -+ if (0 == npds) { -+ PR_Sleep(timeout); -+ return rv; -+ } -+ -+ FD_ZERO(&rd); -+ FD_ZERO(&wt); -+ FD_ZERO(&ex); -+ -+ ready = 0; -+ for (pd = pds, epd = pd + npds; pd < epd; pd++) -+ { -+ PRInt16 in_flags_read = 0, in_flags_write = 0; -+ PRInt16 out_flags_read = 0, out_flags_write = 0; -+ -+ if ((NULL != pd->fd) && (0 != pd->in_flags)) -+ { -+ if (pd->in_flags & PR_POLL_READ) -+ { -+ in_flags_read = (pd->fd->methods->poll)(pd->fd, pd->in_flags & ~PR_POLL_WRITE, &out_flags_read); -+ } -+ if (pd->in_flags & PR_POLL_WRITE) -+ { -+ in_flags_write = (pd->fd->methods->poll)(pd->fd, pd->in_flags & ~PR_POLL_READ, &out_flags_write); -+ } -+ if ((0 != (in_flags_read & out_flags_read)) -+ || (0 != (in_flags_write & out_flags_write))) -+ { -+ /* this one's ready right now */ -+ if (0 == ready) -+ { -+ /* -+ * We will have to return without calling the -+ * system poll/select function. So zero the -+ * out_flags fields of all the poll descriptors -+ * before this one. -+ */ -+ PRPollDesc *prev; -+ for (prev = pds; prev < pd; prev++) -+ { -+ prev->out_flags = 0; -+ } -+ } -+ ready += 1; -+ pd->out_flags = out_flags_read | out_flags_write; -+ } -+ else -+ { -+ pd->out_flags = 0; /* pre-condition */ -+ -+ /* make sure this is an NSPR supported stack */ -+ bottom = PR_GetIdentitiesLayer(pd->fd, PR_NSPR_IO_LAYER); -+ PR_ASSERT(NULL != bottom); /* what to do about that? */ -+ if ((NULL != bottom) -+ && (_PR_FILEDESC_OPEN == bottom->secret->state)) -+ { -+ if (0 == ready) -+ { -+ PRInt32 osfd = bottom->secret->md.osfd; -+ if (osfd > maxfd) maxfd = osfd; -+ if (in_flags_read & PR_POLL_READ) -+ { -+ pd->out_flags |= _PR_POLL_READ_SYS_READ; -+ FD_SET(osfd, &rd); -+ } -+ if (in_flags_read & PR_POLL_WRITE) -+ { -+ pd->out_flags |= _PR_POLL_READ_SYS_WRITE; -+ FD_SET(osfd, &wt); -+ } -+ if (in_flags_write & PR_POLL_READ) -+ { -+ pd->out_flags |= _PR_POLL_WRITE_SYS_READ; -+ FD_SET(osfd, &rd); -+ } -+ if (in_flags_write & PR_POLL_WRITE) -+ { -+ pd->out_flags |= _PR_POLL_WRITE_SYS_WRITE; -+ FD_SET(osfd, &wt); -+ } -+ if (pd->in_flags & PR_POLL_EXCEPT) FD_SET(osfd, &ex); -+ } -+ } -+ else -+ { -+ if (0 == ready) -+ { -+ PRPollDesc *prev; -+ for (prev = pds; prev < pd; prev++) -+ { -+ prev->out_flags = 0; -+ } -+ } -+ ready += 1; /* this will cause an abrupt return */ -+ pd->out_flags = PR_POLL_NVAL; /* bogii */ -+ } -+ } -+ } -+ else -+ { -+ pd->out_flags = 0; -+ } -+ } -+ -+ if (0 != ready) return ready; /* no need to block */ -+ -+ remaining = timeout; -+ start = PR_IntervalNow(); -+ -+ retry: -+ if (timeout != PR_INTERVAL_NO_TIMEOUT) -+ { -+ PRInt32 ticksPerSecond = PR_TicksPerSecond(); -+ tv.tv_sec = remaining / ticksPerSecond; -+ tv.tv_usec = PR_IntervalToMicroseconds( remaining % ticksPerSecond ); -+ tvp = &tv; -+ } -+ -+ ready = select(maxfd + 1, &rd, &wt, &ex, tvp); -+ -+ if (ready == -1 && errno == EINTR) -+ { -+ if (timeout == PR_INTERVAL_NO_TIMEOUT) goto retry; -+ else -+ { -+ elapsed = (PRIntervalTime) (PR_IntervalNow() - start); -+ if (elapsed > timeout) ready = 0; /* timed out */ -+ else -+ { -+ remaining = timeout - elapsed; -+ goto retry; -+ } -+ } -+ } -+ -+ /* -+ ** Now to unravel the select sets back into the client's poll -+ ** descriptor list. Is this possibly an area for pissing away -+ ** a few cycles or what? -+ */ -+ if (ready > 0) -+ { -+ ready = 0; -+ for (pd = pds, epd = pd + npds; pd < epd; pd++) -+ { -+ PRInt16 out_flags = 0; -+ if ((NULL != pd->fd) && (0 != pd->in_flags)) -+ { -+ PRInt32 osfd; -+ bottom = PR_GetIdentitiesLayer(pd->fd, PR_NSPR_IO_LAYER); -+ PR_ASSERT(NULL != bottom); -+ -+ osfd = bottom->secret->md.osfd; -+ -+ if (FD_ISSET(osfd, &rd)) -+ { -+ if (pd->out_flags & _PR_POLL_READ_SYS_READ) -+ out_flags |= PR_POLL_READ; -+ if (pd->out_flags & _PR_POLL_WRITE_SYS_READ) -+ out_flags |= PR_POLL_WRITE; -+ } -+ if (FD_ISSET(osfd, &wt)) -+ { -+ if (pd->out_flags & _PR_POLL_READ_SYS_WRITE) -+ out_flags |= PR_POLL_READ; -+ if (pd->out_flags & _PR_POLL_WRITE_SYS_WRITE) -+ out_flags |= PR_POLL_WRITE; -+ } -+ if (FD_ISSET(osfd, &ex)) out_flags |= PR_POLL_EXCEPT; -+ -+/* Workaround for nonblocking connects under net_server */ -+#ifndef BONE_VERSION -+ if (out_flags) -+ { -+ /* check if it is a pending connect */ -+ int i = 0, j = 0; -+ PR_Lock( _connectLock ); -+ for( i = 0; i < connectCount; i++ ) -+ { -+ if(connectList[i].osfd == osfd) -+ { -+ int connectError; -+ int connectResult; -+ -+ connectResult = connect(connectList[i].osfd, -+ &connectList[i].addr, -+ connectList[i].addrlen); -+ connectError = errno; -+ -+ if(connectResult < 0 ) -+ { -+ if(connectError == EINTR || connectError == EWOULDBLOCK || -+ connectError == EINPROGRESS || connectError == EALREADY) -+ { -+ break; -+ } -+ } -+ -+ if(i == (connectCount - 1)) -+ { -+ connectList[i].osfd = -1; -+ } else { -+ for(j = i; j < connectCount; j++ ) -+ { -+ memcpy( &connectList[j], &connectList[j+1], -+ sizeof(connectList[j])); -+ } -+ } -+ connectCount--; -+ -+ bottom->secret->md.connectReturnValue = connectResult; -+ bottom->secret->md.connectReturnError = connectError; -+ bottom->secret->md.connectValueValid = PR_TRUE; -+ break; -+ } -+ } -+ PR_Unlock( _connectLock ); -+ } -+#endif -+ } -+ pd->out_flags = out_flags; -+ if (out_flags) ready++; -+ } -+ PR_ASSERT(ready > 0); -+ } -+ else if (ready < 0) -+ { -+ err = _MD_ERRNO(); -+ if (err == EBADF) -+ { -+ /* Find the bad fds */ -+ ready = 0; -+ for (pd = pds, epd = pd + npds; pd < epd; pd++) -+ { -+ pd->out_flags = 0; -+ if ((NULL != pd->fd) && (0 != pd->in_flags)) -+ { -+ bottom = PR_GetIdentitiesLayer(pd->fd, PR_NSPR_IO_LAYER); -+ if (fcntl(bottom->secret->md.osfd, F_GETFL, 0) == -1) -+ { -+ pd->out_flags = PR_POLL_NVAL; -+ ready++; -+ } -+ } -+ } -+ PR_ASSERT(ready > 0); -+ } -+ else set_select_error(err); -+ } -+ -+ return ready; -+} /* PR_POLL */ -+ -+PR_IMPLEMENT(PRFileDesc*) PR_CreateSocketPollFd(PRInt32 osfd) -+{ -+ PRFileDesc *fd; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ -+ fd = _PR_Getfd(); -+ -+ if (fd == NULL) PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ else -+ { -+ fd->secret->md.osfd = osfd; -+ fd->secret->inheritable = _PR_TRI_FALSE; -+ fd->secret->state = _PR_FILEDESC_OPEN; -+ fd->methods = PR_GetSocketPollFdMethods(); -+ } -+ -+ return fd; -+} /* PR_CreateSocketPollFD */ -+ -+PR_IMPLEMENT(PRStatus) PR_DestroySocketPollFd(PRFileDesc *fd) -+{ -+ if (NULL == fd) -+ { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ fd->secret->state = _PR_FILEDESC_CLOSED; -+ _PR_Putfd(fd); -+ return PR_SUCCESS; -+} /* PR_DestroySocketPollFd */ -+ -+ -+PR_IMPLEMENT(PRFileDesc *) PR_ImportTCPSocket(PRInt32 osfd) -+{ -+ PRFileDesc *fd; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ fd = bt_CreateFileDesc(osfd, PR_GetTCPMethods(), _PR_TRI_UNKNOWN, true); -+ if (fd == NULL) -+ closesocket(osfd); -+ return(fd); -+} -+ -+PR_IMPLEMENT(PRFileDesc *) PR_ImportUDPSocket(PRInt32 osfd) -+{ -+ PRFileDesc *fd; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ fd = bt_CreateFileDesc(osfd, PR_GetUDPMethods(), _PR_TRI_UNKNOWN, true); -+ if (fd == NULL) -+ closesocket(osfd); -+ return(fd); -+} -+ -+ -+#ifndef XP_HAIKU -+int socketpair (int family, int type, int protocol, int sv[2]) -+{ -+ int insock, outsock, acceptedsock; -+ struct sockaddr_in addrs[2]; -+ int alen; -+ /* that's really only so we can build... */ -+ /*fprintf(stderr, "socketpair(%d, %d, %d)\n", family, type, protocol);*/ -+ if (family != AF_INET) { -+ /*fatal*/fprintf(stderr, "socketpair(%d, %d, %d): family not supported\n", family, type, protocol); -+ errno = EPFNOSUPPORT; -+ return -1; -+ } -+ if (type != SOCK_DGRAM && type != SOCK_STREAM) { -+ errno = EPROTONOSUPPORT; -+ return -1; -+ } -+ addrs[0].sin_family = AF_INET; -+ addrs[0].sin_port = 0; -+ addrs[0].sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ addrs[1].sin_family = AF_INET; -+ addrs[1].sin_port = 0; -+ addrs[1].sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ alen = sizeof(struct sockaddr_in); -+ -+ insock = socket(family, type, protocol); -+ if (insock < 0) -+ goto err1; -+ if (bind(insock, (struct sockaddr *)&addrs[0], alen) < 0) -+ goto err2; -+ if (getsockname(insock, (struct sockaddr *)&addrs[0], &alen) < 0) -+ goto err2; -+ if (type == SOCK_STREAM) -+ listen(insock, 2); -+ -+ outsock = socket(family, type, protocol); -+ if (outsock < 0) -+ goto err2; -+ alen = sizeof(struct sockaddr_in); -+ if (bind(outsock, (struct sockaddr *)&addrs[1], alen) < 0) -+ goto err2; -+ if (getsockname(outsock, (struct sockaddr *)&addrs[1], &alen) < 0) -+ goto err3; -+ addrs[0].sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ addrs[1].sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ /*fprintf(stderr, "socketpair: %08lx:%d <-> %08lx:%d\n", -+ ((struct sockaddr_in *)&addrs[0])->sin_addr.s_addr, -+ ((struct sockaddr_in *)&addrs[0])->sin_port, -+ ((struct sockaddr_in *)&addrs[1])->sin_addr.s_addr, -+ ((struct sockaddr_in *)&addrs[1])->sin_port);*/ -+ -+ if (connect(outsock, (struct sockaddr *)&addrs[0], alen) < 0) -+ goto err3; -+ if (type == SOCK_DGRAM) { -+ if (connect(insock, (struct sockaddr *)&addrs[1], alen) < 0) -+ goto err3; -+ sv[0] = insock; -+ } else { -+ acceptedsock = accept(insock, (struct sockaddr *)&addrs[1], &alen); -+ if (acceptedsock < 0) -+ goto err3; -+ closesocket(insock); -+ sv[0] = acceptedsock; -+ } -+ sv[1] = outsock; -+ return 0; -+err3: -+ closesocket(outsock); -+err2: -+ closesocket(insock); -+err1: -+ fprintf(stderr,"socketpair: error 0x%08x\n", errno); -+ return -1; -+} -+#endif -+ -+PR_IMPLEMENT(PRStatus) PR_NewTCPSocketPair(PRFileDesc *f[]) -+{ -+ PRInt32 rv, osfd[2]; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+#ifdef XP_HAIKU -+ rv = socketpair(AF_UNIX, SOCK_STREAM, 0, osfd); -+#else -+ rv = socketpair(AF_INET, SOCK_STREAM, 0, osfd); -+#endif -+ if (rv == -1) { -+ return PR_FAILURE; -+ } -+ f[0] = bt_CreateFileDesc(osfd[0], PR_GetTCPMethods(), _PR_TRI_TRUE, true); -+ if (NULL == f[0]) { -+ closesocket(osfd[0]); -+ closesocket(osfd[1]); -+ /* PR_AllocFileDesc() has invoked PR_SetError(). */ -+ return PR_FAILURE; -+ } -+ f[1] = bt_CreateFileDesc(osfd[1], PR_GetTCPMethods(), _PR_TRI_TRUE, true); -+ if (NULL == f[1]) { -+ PR_Close(f[0]); -+ closesocket(osfd[1]); -+ /* PR_AllocFileDesc() has invoked PR_SetError(). */ -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+ -+PR_IMPLEMENT(PRStatus) PR_GetConnectStatus(const PRPollDesc *pd) { -+ PRInt32 osfd; -+#ifndef BONE_VERSION -+ int rv; -+#endif -+ PRFileDesc *bottom; -+ -+ if (pd->out_flags & PR_POLL_NVAL) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ if ((pd->out_flags & (PR_POLL_WRITE | PR_POLL_EXCEPT | PR_POLL_ERR)) == 0) { -+ PR_ASSERT(pd->out_flags == 0); -+ PR_SetError(PR_IN_PROGRESS_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ -+ /* Find the NSPR layer and invoke its connectcontinue method */ -+ bottom = PR_GetIdentitiesLayer(pd->fd, PR_NSPR_IO_LAYER); -+ if (NULL == bottom) -+ { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ osfd = bottom->secret->md.osfd; -+#ifdef BONE_VERSION /* bug 122364 */ -+ /* temporary workaround until getsockopt(SO_ERROR) works in BONE */ -+ if (pd->out_flags & PR_POLL_EXCEPT) { -+ PR_SetError(PR_CONNECT_REFUSED_ERROR, 0); -+ return PR_FAILURE; -+ } -+ PR_ASSERT(pd->out_flags & PR_POLL_WRITE); -+ return PR_SUCCESS; -+#else -+ rv = recv(bottom->secret->md.osfd, NULL, 0, 0); -+ PR_ASSERT(-1 == rv || 0 == rv); -+ -+ if (-1 == rv && 0 != errno && errno != EAGAIN && errno != EWOULDBLOCK ) { -+ set_connect_error(errno); -+ return PR_FAILURE; -+ } -+ else -+ return PR_SUCCESS; -+#endif /* BONE_VERSION */ -+} -+ -+PR_IMPLEMENT(PRFileDesc*) PR_Socket(PRInt32 domain, PRInt32 type, PRInt32 proto) -+{ -+ PRInt32 osfd, err; -+ PRFileDesc *fd; -+ PRInt32 tmp_domain = domain; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ if (PR_AF_INET != domain -+ && PR_AF_INET6 != domain -+ ) { -+ PR_SetError(PR_ADDRESS_NOT_SUPPORTED_ERROR, 0); -+ return NULL; -+ } -+ if( type != SOCK_STREAM && type != SOCK_DGRAM ) -+ { -+ PR_SetError(PR_ADDRESS_NOT_SUPPORTED_ERROR, 0); -+ return NULL; -+ } -+ -+#if defined(_PR_INET6_PROBE) -+ if (PR_AF_INET6 == domain) { -+ if (_pr_ipv6_is_present == PR_FALSE) -+ domain = AF_INET; -+ else -+ domain = AF_INET6; -+ } -+#elif defined(_PR_INET6) -+ if (PR_AF_INET6 == domain) -+ domain = AF_INET6; -+#else -+ if (PR_AF_INET6 == domain) -+ domain = AF_INET; -+#endif /* _PR_INET6 */ -+#ifndef BONE_VERSION -+ osfd = socket(domain, type, 0); -+#else -+ osfd = socket(domain, type, proto); -+#endif -+ if (osfd == -1) { -+ err = _MD_ERRNO(); -+ set_socket_error(err); -+ return 0; -+ } -+ fd = bt_CreateFileDesc(osfd, SOCK_STREAM == type?PR_GetTCPMethods() : PR_GetUDPMethods(), _PR_TRI_TRUE, true); -+ -+ if (fd != NULL) { -+#if defined(_PR_INET6_PROBE) || !defined(_PR_INET6) -+ /* -+ * For platforms with no support for IPv6 -+ * create layered socket for IPv4-mapped IPv6 addresses -+ */ -+ if (PR_AF_INET6 == tmp_domain && PR_AF_INET == domain) { -+ if (PR_FAILURE == _pr_push_ipv6toipv4_layer(fd)) { -+ PR_Close(fd); -+ fd = NULL; -+ } -+ } -+#endif -+ } else -+ closesocket(osfd); -+ -+ return fd; -+} -+ -+ -+PR_IMPLEMENT(PRFileDesc *) PR_NewTCPSocket(void) -+{ -+ return PR_Socket(AF_INET, SOCK_STREAM, 0); -+} -+ -+PR_IMPLEMENT(PRFileDesc*) PR_NewUDPSocket(void) -+{ -+ return PR_Socket(AF_INET, SOCK_DGRAM, 0); -+} -+ -+PR_IMPLEMENT(PRFileDesc *) PR_OpenTCPSocket(PRIntn af) -+{ -+ return PR_Socket(af, SOCK_STREAM, 0); -+} -+ -+PR_IMPLEMENT(PRFileDesc*) PR_OpenUDPSocket(PRIntn af) -+{ -+ return PR_Socket(af, SOCK_DGRAM, 0); -+} -+ -Index: mozilla/nsprpub/pr/src/bthreads/btlocks.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/bthreads/btlocks.c,v -retrieving revision 3.7 -diff -u -8 -p -r3.7 btlocks.c ---- mozilla/nsprpub/pr/src/bthreads/btlocks.c 23 Feb 2005 17:43:13 -0000 3.7 -+++ mozilla/nsprpub/pr/src/bthreads/btlocks.c 9 Feb 2009 04:04:36 -0000 -@@ -38,44 +38,38 @@ - /* - ** File: btlocks.c - ** Description: Implemenation for thread locks using bthreads - ** Exports: prlock.h - */ - - #include "primpl.h" - --#include --#include -- - void - _PR_InitLocks (void) - { - } - - PR_IMPLEMENT(PRLock*) - PR_NewLock (void) - { - PRLock *lock; - status_t semresult; - - if (!_pr_initialized) _PR_ImplicitInitialization(); - - lock = PR_NEWZAP(PRLock); - if (lock != NULL) { -- -- lock->benaphoreCount = 0; -- lock->semaphoreID = create_sem( 0, "nsprLockSem" ); -- if( lock->semaphoreID < B_NO_ERROR ) { -- -- PR_DELETE( lock ); -- lock = NULL; -- } -+ lock->benaphoreCount = 0; -+ lock->semaphoreID = create_sem( 0, "nsprLockSem" ); -+ if( lock->semaphoreID < B_NO_ERROR ) { -+ PR_DELETE( lock ); -+ lock = NULL; -+ } - } -- - return lock; - } - - PR_IMPLEMENT(void) - PR_DestroyLock (PRLock* lock) - { - status_t result; - -@@ -83,34 +77,34 @@ PR_IMPLEMENT(void) - result = delete_sem(lock->semaphoreID); - PR_ASSERT(result == B_NO_ERROR); - PR_DELETE(lock); - } - - PR_IMPLEMENT(void) - PR_Lock (PRLock* lock) - { -+ status_t result; -+ - PR_ASSERT(lock != NULL); - -- if( atomic_add( &lock->benaphoreCount, 1 ) > 0 ) { -- -- if( acquire_sem(lock->semaphoreID ) != B_NO_ERROR ) { -- -- atomic_add( &lock->benaphoreCount, -1 ); -- return; -- } -+ if( _MD_ATOMIC_INCREMENT( &lock->benaphoreCount) > 1 ) { -+ result = acquire_sem(lock->semaphoreID ); -+ PR_ASSERT(result == B_NO_ERROR); -+ if( result != B_NO_ERROR ) { -+ _MD_ATOMIC_DECREMENT( &lock->benaphoreCount); -+ return; -+ } - } -- - lock->owner = find_thread( NULL ); - } - - PR_IMPLEMENT(PRStatus) - PR_Unlock (PRLock* lock) - { - PR_ASSERT(lock != NULL); - lock->owner = NULL; -- if( atomic_add( &lock->benaphoreCount, -1 ) > 1 ) { -- -- release_sem_etc( lock->semaphoreID, 1, B_DO_NOT_RESCHEDULE ); -+ if( _MD_ATOMIC_DECREMENT( &lock->benaphoreCount ) > 0 ) { -+ release_sem_etc( lock->semaphoreID, 1, B_DO_NOT_RESCHEDULE ); - } - - return PR_SUCCESS; - } -Index: mozilla/nsprpub/pr/src/bthreads/btmisc.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/bthreads/btmisc.c,v -retrieving revision 3.5 -diff -u -8 -p -r3.5 btmisc.c ---- mozilla/nsprpub/pr/src/bthreads/btmisc.c 25 Apr 2004 15:00:57 -0000 3.5 -+++ mozilla/nsprpub/pr/src/bthreads/btmisc.c 9 Feb 2009 04:04:37 -0000 -@@ -15,17 +15,18 @@ - * The Original Code is the Netscape Portable Runtime (NSPR). - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998-2000 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): -- * -+ * Fredrik Holmqvist -+ * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice -@@ -33,72 +34,38 @@ - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - - #include "primpl.h" - #include - --// void _PR_InitCPUs(void) {PT_LOG("_PR_InitCPUs")} --// void _MD_StartInterrupts(void) {PT_LOG("_MD_StartInterrupts")} -- --/* this is a total hack.. */ -- -+/* this is a total hack.. -+ * It's needed for netserver to compile. -+ * See nsprpub/pr/include/prnetdb.h -+ */ -+#ifndef BONE_VERSION - struct protoent* getprotobyname(const char* name) - { - return 0; - } - - struct protoent* getprotobynumber(int number) - { - return 0; - } -- --/* this is needed by prinit for some reason */ --void --_PR_InitStacks (void) --{ --} -- --/* this is needed by prinit for some reason */ --void --_PR_InitTPD (void) --{ --} -- --/* --** Create extra virtual processor threads. Generally used with MP systems. --*/ --PR_IMPLEMENT(void) -- PR_SetConcurrency (PRUintn numCPUs) --{ --} -- --/* --** Set thread recycle mode to on (1) or off (0) --*/ --PR_IMPLEMENT(void) -- PR_SetThreadRecycleMode (PRUint32 flag) --{ --} -+#endif - - /* - ** Get context registers, return with error for now. - */ -- - PR_IMPLEMENT(PRWord *) - _MD_HomeGCRegisters( PRThread *t, int isCurrent, int *np ) - { - return 0; - } - --PR_IMPLEMENT(void *) --PR_GetSP( PRThread *t ) --{ -- return 0; --} -- - PR_IMPLEMENT(PRStatus) - PR_EnumerateThreads( PREnumerator func, void *arg ) - { - return PR_FAILURE; - } -Index: mozilla/nsprpub/pr/src/bthreads/btsem.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/bthreads/btsem.c,v -retrieving revision 3.7 -diff -u -8 -p -r3.7 btsem.c ---- mozilla/nsprpub/pr/src/bthreads/btsem.c 23 Feb 2005 17:43:13 -0000 3.7 -+++ mozilla/nsprpub/pr/src/bthreads/btsem.c 9 Feb 2009 04:04:37 -0000 -@@ -33,51 +33,52 @@ - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - - #include - - #include "primpl.h" -+#include "obsolete/prsem.h" - - /* - ** Create a new semaphore object. - */ - PR_IMPLEMENT(PRSemaphore*) - PR_NewSem (PRUintn value) - { -- PRSemaphore *semaphore; -+ PRSemaphore *semaphore; - -- if (!_pr_initialized) _PR_ImplicitInitialization(); -+ if (!_pr_initialized) _PR_ImplicitInitialization(); - -- semaphore = PR_NEWZAP(PRSemaphore); -- if (NULL != semaphore) { -- if ((semaphore->sem = create_sem(value, "nspr_sem")) < B_NO_ERROR) -- return NULL; -- else -- return semaphore; -- } -- return NULL; -+ semaphore = PR_NEWZAP(PRSemaphore); -+ if (NULL != semaphore) { -+ if ((semaphore->sem = create_sem(value, "nspr_sem")) < B_NO_ERROR) -+ return NULL; -+ else -+ return semaphore; -+ } -+ return NULL; - } - - /* - ** Destroy the given semaphore object. - ** - */ - PR_IMPLEMENT(void) - PR_DestroySem (PRSemaphore *sem) - { -- status_t result; -+ status_t result; - -- PR_ASSERT(sem != NULL); -- result = delete_sem(sem->sem); -- PR_ASSERT(result == B_NO_ERROR); -- PR_DELETE(sem); --} -+ PR_ASSERT(sem != NULL); -+ result = delete_sem(sem->sem); -+ PR_ASSERT(result == B_NO_ERROR); -+ PR_DELETE(sem); -+} - - /* - ** Wait on a Semaphore. - ** - ** This routine allows a calling thread to wait or proceed depending upon - ** the state of the semahore sem. The thread can proceed only if the - ** counter value of the semaphore sem is currently greater than 0. If the - ** value of semaphore sem is positive, it is decremented by one and the -@@ -86,45 +87,45 @@ PR_IMPLEMENT(void) - ** semaphore to be released by another thread. - ** - ** This routine can return PR_PENDING_INTERRUPT if the waiting thread - ** has been interrupted. - */ - PR_IMPLEMENT(PRStatus) - PR_WaitSem (PRSemaphore *sem) - { -- PR_ASSERT(sem != NULL); -- if (acquire_sem(sem->sem) == B_NO_ERROR) -- return PR_SUCCESS; -- else -- return PR_FAILURE; -+ PR_ASSERT(sem != NULL); -+ if (acquire_sem(sem->sem) == B_NO_ERROR) -+ return PR_SUCCESS; -+ else -+ return PR_FAILURE; - } - - /* - ** This routine increments the counter value of the semaphore. If other - ** threads are blocked for the semaphore, then the scheduler will - ** determine which ONE thread will be unblocked. - */ - PR_IMPLEMENT(void) - PR_PostSem (PRSemaphore *sem) - { -- status_t result; -+ status_t result; - -- PR_ASSERT(sem != NULL); -- result = release_sem_etc(sem->sem, 1, B_DO_NOT_RESCHEDULE); -- PR_ASSERT(result == B_NO_ERROR); -+ PR_ASSERT(sem != NULL); -+ result = release_sem_etc(sem->sem, 1, B_DO_NOT_RESCHEDULE); -+ PR_ASSERT(result == B_NO_ERROR); - } - - /* - ** Returns the value of the semaphore referenced by sem without affecting - ** the state of the semaphore. The value represents the semaphore value - ** at the time of the call, but may not be the actual value when the - ** caller inspects it. - */ - PR_IMPLEMENT(PRUintn) - PR_GetValueSem (PRSemaphore *sem) - { -- sem_info info; -+ sem_info info; - -- PR_ASSERT(sem != NULL); -- get_sem_info(sem->sem, &info); -- return info.count; -+ PR_ASSERT(sem != NULL); -+ get_sem_info(sem->sem, &info); -+ return info.count; - } -Index: mozilla/nsprpub/pr/src/bthreads/btthread.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/bthreads/btthread.c,v -retrieving revision 3.8 -diff -u -8 -p -r3.8 btthread.c ---- mozilla/nsprpub/pr/src/bthreads/btthread.c 25 Apr 2004 15:00:57 -0000 3.8 -+++ mozilla/nsprpub/pr/src/bthreads/btthread.c 9 Feb 2009 04:04:39 -0000 -@@ -45,39 +45,39 @@ - - #include - #include - #include - - /* values for PRThread.state */ - #define BT_THREAD_PRIMORD 0x01 /* this is the primordial thread */ - #define BT_THREAD_SYSTEM 0x02 /* this is a system thread */ --#define BT_THREAD_JOINABLE 0x04 /* this is a joinable thread */ -+#define BT_THREAD_JOINABLE 0x04 /* this is a joinable thread */ - - struct _BT_Bookeeping - { - PRLock *ml; /* a lock to protect ourselves */ -- sem_id cleanUpSem; /* the primoridal thread will block on this -- sem while waiting for the user threads */ -- PRInt32 threadCount; /* user thred count */ -+ sem_id cleanUpSem; /* the primoridal thread will block on this -+ sem while waiting for the user threads */ -+ PRInt32 threadCount; /* user thred count */ - - } bt_book = { NULL, B_ERROR, 0 }; - - --#define BT_TPD_LIMIT 128 /* number of TPD slots we'll provide (arbitrary) */ -+#define BT_TPD_LIMIT 128 /* number of TPD slots we'll provide (arbitrary) */ - - /* these will be used to map an index returned by PR_NewThreadPrivateIndex() - to the corresponding beos native TLS slot number, and to the destructor - for that slot - note that, because it is allocated globally, this data - will be automatically zeroed for us when the program begins */ - static int32 tpd_beosTLSSlots[BT_TPD_LIMIT]; - static PRThreadPrivateDTOR tpd_dtors[BT_TPD_LIMIT]; - --static vint32 tpd_slotsUsed=0; /* number of currently-allocated TPD slots */ --static int32 tls_prThreadSlot; /* TLS slot in which PRThread will be stored */ -+static vint32 tpd_slotsUsed=0; /* number of currently-allocated TPD slots */ -+static int32 tls_prThreadSlot; /* TLS slot in which PRThread will be stored */ - - /* this mutex will be used to synchronize access to every - PRThread.md.joinSem and PRThread.md.is_joining (we could - actually allocate one per thread, but that seems a bit excessive, - especially considering that there will probably be little - contention, PR_JoinThread() is allowed to block anyway, and the code - protected by the mutex is short/fast) */ - static PRLock *joinSemLock; -@@ -89,355 +89,346 @@ static PRThread *_bt_AttachThread(); - - void - _PR_InitThreads (PRThreadType type, PRThreadPriority priority, - PRUintn maxPTDs) - { - PRThread *primordialThread; - PRUint32 beThreadPriority; - -- /* allocate joinSem mutex */ -- joinSemLock = PR_NewLock(); -- if (joinSemLock == NULL) -- { -- PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -- return; -+ /* allocate joinSem mutex */ -+ joinSemLock = PR_NewLock(); -+ if (joinSemLock == NULL) -+ { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ return; - } - - /* - ** Create and initialize NSPR structure for our primordial thread. - */ - - primordialThread = PR_NEWZAP(PRThread); - if( NULL == primordialThread ) - { - PR_SetError( PR_OUT_OF_MEMORY_ERROR, 0 ); - return; - } - -- primordialThread->md.joinSem = B_ERROR; -+ primordialThread->md.joinSem = B_ERROR; - - /* - ** Set the priority to the desired level. - */ - - beThreadPriority = _bt_MapNSPRToNativePriority( priority ); -- - set_thread_priority( find_thread( NULL ), beThreadPriority ); -- - primordialThread->priority = priority; - -- -- /* set the thread's state - note that the thread is not joinable */ -+ /* set the thread's state - note that the thread is not joinable */ - primordialThread->state |= BT_THREAD_PRIMORD; -- if (type == PR_SYSTEM_THREAD) -- primordialThread->state |= BT_THREAD_SYSTEM; -+ if (type == PR_SYSTEM_THREAD) -+ primordialThread->state |= BT_THREAD_SYSTEM; - - /* - ** Allocate a TLS slot for the PRThread structure (just using - ** native TLS, as opposed to NSPR TPD, will make PR_GetCurrentThread() - ** somewhat faster, and will leave one more TPD slot for our client) - */ -- -- tls_prThreadSlot = tls_allocate(); -+ -+ tls_prThreadSlot = tls_allocate(); - - /* - ** Stuff our new PRThread structure into our thread specific - ** slot. - */ - -- tls_set(tls_prThreadSlot, primordialThread); -+ tls_set(tls_prThreadSlot, primordialThread); - -- /* allocate lock for bt_book */ -+ /* allocate lock for bt_book */ - bt_book.ml = PR_NewLock(); - if( NULL == bt_book.ml ) - { -- PR_SetError( PR_OUT_OF_MEMORY_ERROR, 0 ); -- return; -+ PR_SetError( PR_OUT_OF_MEMORY_ERROR, 0 ); -+ return; - } - } - - PRUint32 - _bt_MapNSPRToNativePriority( PRThreadPriority priority ) -- { -+{ - switch( priority ) - { -- case PR_PRIORITY_LOW: return( B_LOW_PRIORITY ); -- case PR_PRIORITY_NORMAL: return( B_NORMAL_PRIORITY ); -- case PR_PRIORITY_HIGH: return( B_DISPLAY_PRIORITY ); -- case PR_PRIORITY_URGENT: return( B_URGENT_DISPLAY_PRIORITY ); -- default: return( B_NORMAL_PRIORITY ); -+ case PR_PRIORITY_LOW: return( B_LOW_PRIORITY ); -+ case PR_PRIORITY_NORMAL: return( B_NORMAL_PRIORITY ); -+ case PR_PRIORITY_HIGH: return( B_DISPLAY_PRIORITY ); -+ case PR_PRIORITY_URGENT: return( B_URGENT_DISPLAY_PRIORITY ); -+ default: return( B_NORMAL_PRIORITY ); - } - } - - PRThreadPriority - _bt_MapNativeToNSPRPriority(PRUint32 priority) -- { -- if (priority < B_NORMAL_PRIORITY) -- return PR_PRIORITY_LOW; -- if (priority < B_DISPLAY_PRIORITY) -- return PR_PRIORITY_NORMAL; -- if (priority < B_URGENT_DISPLAY_PRIORITY) -- return PR_PRIORITY_HIGH; -- return PR_PRIORITY_URGENT; -+{ -+ if (priority < B_NORMAL_PRIORITY) -+ return PR_PRIORITY_LOW; -+ if (priority < B_DISPLAY_PRIORITY) -+ return PR_PRIORITY_NORMAL; -+ if (priority < B_URGENT_DISPLAY_PRIORITY) -+ return PR_PRIORITY_HIGH; -+ return PR_PRIORITY_URGENT; - } - - PRUint32 - _bt_mapNativeToNSPRPriority( int32 priority ) - { - switch( priority ) - { -- case PR_PRIORITY_LOW: return( B_LOW_PRIORITY ); -- case PR_PRIORITY_NORMAL: return( B_NORMAL_PRIORITY ); -- case PR_PRIORITY_HIGH: return( B_DISPLAY_PRIORITY ); -- case PR_PRIORITY_URGENT: return( B_URGENT_DISPLAY_PRIORITY ); -- default: return( B_NORMAL_PRIORITY ); -+ case PR_PRIORITY_LOW: return( B_LOW_PRIORITY ); -+ case PR_PRIORITY_NORMAL: return( B_NORMAL_PRIORITY ); -+ case PR_PRIORITY_HIGH: return( B_DISPLAY_PRIORITY ); -+ case PR_PRIORITY_URGENT: return( B_URGENT_DISPLAY_PRIORITY ); -+ default: return( B_NORMAL_PRIORITY ); - } - } - - /* This method is called by all NSPR threads as they exit */ - void _bt_CleanupThread(void *arg) - { -- PRThread *me = PR_GetCurrentThread(); -- int32 i; -+ PRThread *me = PR_GetCurrentThread(); -+ int32 i; - -- /* first, clean up all thread-private data */ -- for (i = 0; i < tpd_slotsUsed; i++) -- { -- void *oldValue = tls_get(tpd_beosTLSSlots[i]); -- if ( oldValue != NULL && tpd_dtors[i] != NULL ) -- (*tpd_dtors[i])(oldValue); -- } -- -- /* if this thread is joinable, wait for someone to join it */ -- if (me->state & BT_THREAD_JOINABLE) -- { -- /* protect access to our joinSem */ -- PR_Lock(joinSemLock); -- -- if (me->md.is_joining) -- { -- /* someone is already waiting to join us (they've -- allocated a joinSem for us) - let them know we're -- ready */ -- delete_sem(me->md.joinSem); -- -- PR_Unlock(joinSemLock); -- -- } -- else -- { -- /* noone is currently waiting for our demise - it -- is our responsibility to allocate the joinSem -- and block on it */ -- me->md.joinSem = create_sem(0, "join sem"); -- -- /* we're done accessing our joinSem */ -- PR_Unlock(joinSemLock); -- -- /* wait for someone to join us */ -- while (acquire_sem(me->md.joinSem) == B_INTERRUPTED); -- } -- } -- -- /* if this is a user thread, we must update our books */ -- if ((me->state & BT_THREAD_SYSTEM) == 0) -- { -- /* synchronize access to bt_book */ -- PR_Lock( bt_book.ml ); -- -- /* decrement the number of currently-alive user threads */ -- bt_book.threadCount--; -+ /* first, clean up all thread-private data */ -+ for (i = 0; i < tpd_slotsUsed; i++) -+ { -+ void *oldValue = tls_get(tpd_beosTLSSlots[i]); -+ if ( oldValue != NULL && tpd_dtors[i] != NULL ) -+ (*tpd_dtors[i])(oldValue); -+ } -+ -+ /* if this thread is joinable, wait for someone to join it */ -+ if (me->state & BT_THREAD_JOINABLE) -+ { -+ /* protect access to our joinSem */ -+ PR_Lock(joinSemLock); -+ -+ if (me->md.is_joining) -+ { -+ /* someone is already waiting to join us (they've -+ allocated a joinSem for us) - let them know we're -+ ready */ -+ delete_sem(me->md.joinSem); -+ PR_Unlock(joinSemLock); -+ } -+ else -+ { -+ /* noone is currently waiting for our demise - it -+ is our responsibility to allocate the joinSem -+ and block on it */ -+ me->md.joinSem = create_sem(0, "join sem"); -+ /* we're done accessing our joinSem */ -+ PR_Unlock(joinSemLock); -+ /* wait for someone to join us */ -+ while (acquire_sem(me->md.joinSem) == B_INTERRUPTED); -+ } -+ } - -- if (bt_book.threadCount == 0 && bt_book.cleanUpSem != B_ERROR) { -- /* we are the last user thread, and the primordial thread is -- blocked in PR_Cleanup() waiting for us to finish - notify -- it */ -- delete_sem(bt_book.cleanUpSem); -- } -+ /* if this is a user thread, we must update our books */ -+ if ((me->state & BT_THREAD_SYSTEM) == 0) -+ { -+ /* synchronize access to bt_book */ -+ PR_Lock( bt_book.ml ); -+ /* decrement the number of currently-alive user threads */ -+ bt_book.threadCount--; -+ if (bt_book.threadCount == 0 && bt_book.cleanUpSem != B_ERROR) { -+ /* we are the last user thread, and the primordial thread is -+ blocked in PR_Cleanup() waiting for us to finish - notify -+ it */ -+ delete_sem(bt_book.cleanUpSem); -+ } - - PR_Unlock( bt_book.ml ); -- } -+ } - -- /* finally, delete this thread's PRThread */ -- PR_DELETE(me); -+ /* finally, delete this thread's PRThread */ -+ PR_DELETE(me); - } - - /** - * This is a wrapper that all threads invoke that allows us to set some - * things up prior to a thread's invocation and clean up after a thread has - * exited. - */ - static void* - _bt_root (void* arg) -- { -+{ - PRThread *thred = (PRThread*)arg; - PRIntn rv; - void *privData; - status_t result; - int i; - -- /* save our PRThread object into our TLS */ -- tls_set(tls_prThreadSlot, thred); -- -+ /* save our PRThread object into our TLS */ -+ tls_set(tls_prThreadSlot, thred); - thred->startFunc(thred->arg); /* run the dang thing */ -+ /* clean up */ -+ _bt_CleanupThread(NULL); - -- /* clean up */ -- _bt_CleanupThread(NULL); -- -- return 0; -+ return 0; - } - - PR_IMPLEMENT(PRThread*) - PR_CreateThread (PRThreadType type, void (*start)(void* arg), void* arg, - PRThreadPriority priority, PRThreadScope scope, - PRThreadState state, PRUint32 stackSize) - { - PRUint32 bePriority; -- - PRThread* thred; - - if (!_pr_initialized) _PR_ImplicitInitialization(); - -- thred = PR_NEWZAP(PRThread); -- if (thred == NULL) -- { -+ thred = PR_NEWZAP(PRThread); -+ if (thred == NULL) -+ { - PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); - return NULL; - } - - thred->md.joinSem = B_ERROR; -+ thred->arg = arg; -+ thred->startFunc = start; -+ thred->priority = priority; - -- thred->arg = arg; -- thred->startFunc = start; -- thred->priority = priority; -- -- if( state == PR_JOINABLE_THREAD ) -- { -- thred->state |= BT_THREAD_JOINABLE; -- } -- -- /* keep some books */ -- -- PR_Lock( bt_book.ml ); -- -- if (type == PR_USER_THREAD) -- { -- bt_book.threadCount++; -- } -+ if( state == PR_JOINABLE_THREAD ) -+ { -+ thred->state |= BT_THREAD_JOINABLE; -+ } - -- PR_Unlock( bt_book.ml ); -+ /* keep some books */ -+ PR_Lock( bt_book.ml ); - -- bePriority = _bt_MapNSPRToNativePriority( priority ); -+ if (type == PR_USER_THREAD) -+ { -+ bt_book.threadCount++; -+ } - -- thred->md.tid = spawn_thread((thread_func)_bt_root, "moz-thread", -+ PR_Unlock( bt_book.ml ); -+ bePriority = _bt_MapNSPRToNativePriority( priority ); -+ thred->md.tid = spawn_thread((thread_func)_bt_root, "moz-thread", - bePriority, thred); -- if (thred->md.tid < B_OK) { -- PR_SetError(PR_UNKNOWN_ERROR, thred->md.tid); -- PR_DELETE(thred); -- return NULL; -- } -+ if (thred->md.tid < B_OK) { -+ PR_SetError(PR_UNKNOWN_ERROR, thred->md.tid); -+ PR_DELETE(thred); -+ return NULL; -+ } - -- if (resume_thread(thred->md.tid) < B_OK) { -- PR_SetError(PR_UNKNOWN_ERROR, 0); -- PR_DELETE(thred); -- return NULL; -- } -+ if (resume_thread(thred->md.tid) < B_OK) { -+ PR_SetError(PR_UNKNOWN_ERROR, 0); -+ PR_DELETE(thred); -+ return NULL; -+ } - - return thred; -- } -+} - - PR_IMPLEMENT(PRThread*) -- PR_AttachThread(PRThreadType type, PRThreadPriority priority, -- PRThreadStack *stack) -+ PR_AttachThread(PRThreadType type, PRThreadPriority priority, -+ PRThreadStack *stack) - { -- /* PR_GetCurrentThread() will attach a thread if necessary */ -- return PR_GetCurrentThread(); -+ /* PR_GetCurrentThread() will attach a thread if necessary */ -+ return PR_GetCurrentThread(); - } - - PR_IMPLEMENT(void) -- PR_DetachThread() -+ PR_DetachThread() - { -- /* we don't support detaching */ -+ /* we don't support detaching */ - } - - PR_IMPLEMENT(PRStatus) - PR_JoinThread (PRThread* thred) - { - status_t eval, status; - - PR_ASSERT(thred != NULL); - -- if ((thred->state & BT_THREAD_JOINABLE) == 0) -+ if ((thred->state & BT_THREAD_JOINABLE) == 0) -+ { -+ PR_SetError( PR_INVALID_ARGUMENT_ERROR, 0 ); -+ return( PR_FAILURE ); -+ } -+ -+ /* synchronize access to the thread's joinSem */ -+ PR_Lock(joinSemLock); -+ -+ if (thred->md.is_joining) - { -- PR_SetError( PR_INVALID_ARGUMENT_ERROR, 0 ); -- return( PR_FAILURE ); -+ /* another thread is already waiting to join the specified -+ thread - we must fail */ -+ PR_Unlock(joinSemLock); -+ return PR_FAILURE; - } - -- /* synchronize access to the thread's joinSem */ -- PR_Lock(joinSemLock); -- -- if (thred->md.is_joining) -- { -- /* another thread is already waiting to join the specified -- thread - we must fail */ -- PR_Unlock(joinSemLock); -- return PR_FAILURE; -- } -- -- /* let others know we are waiting to join */ -- thred->md.is_joining = PR_TRUE; -- -- if (thred->md.joinSem == B_ERROR) -- { -- /* the thread hasn't finished yet - it is our responsibility to -- allocate a joinSem and wait on it */ -- thred->md.joinSem = create_sem(0, "join sem"); -- -- /* we're done changing the joinSem now */ -- PR_Unlock(joinSemLock); -- -- /* wait for the thread to finish */ -- while (acquire_sem(thred->md.joinSem) == B_INTERRUPTED); -- -- } -- else -- { -- /* the thread has already finished, and has allocated the -- joinSem itself - let it know it can finally die */ -- delete_sem(thred->md.joinSem); -- -- PR_Unlock(joinSemLock); -+ /* let others know we are waiting to join */ -+ thred->md.is_joining = PR_TRUE; -+ -+ if (thred->md.joinSem == B_ERROR) -+ { -+ /* the thread hasn't finished yet - it is our responsibility to -+ allocate a joinSem and wait on it */ -+ thred->md.joinSem = create_sem(0, "join sem"); -+ -+ /* we're done changing the joinSem now */ -+ PR_Unlock(joinSemLock); -+ -+ /* wait for the thread to finish */ -+ while (acquire_sem(thred->md.joinSem) == B_INTERRUPTED); -+ -+ } -+ else -+ { -+ /* the thread has already finished, and has allocated the -+ joinSem itself - let it know it can finally die */ -+ delete_sem(thred->md.joinSem); -+ -+ PR_Unlock(joinSemLock); - } - -- /* make sure the thread is dead */ -+ /* make sure the thread is dead */ - wait_for_thread(thred->md.tid, &eval); - - return PR_SUCCESS; - } - - PR_IMPLEMENT(PRThread*) - PR_GetCurrentThread () - { - PRThread* thred; - - if (!_pr_initialized) _PR_ImplicitInitialization(); - - thred = (PRThread *)tls_get( tls_prThreadSlot); -- if (thred == NULL) -- { -- /* this thread doesn't have a PRThread structure (it must be -- a native thread not created by the NSPR) - assimilate it */ -- thred = _bt_AttachThread(); -- } -+ if (thred == NULL) -+ { -+ /* this thread doesn't have a PRThread structure (it must be -+ a native thread not created by the NSPR) - assimilate it */ -+ thred = _bt_AttachThread(); -+ } - PR_ASSERT(NULL != thred); - - return thred; - } - -+PR_IMPLEMENT(void*)PR_GetSP(PRThread *thred) -+{ -+ thread_info tInfo; -+ get_thread_info(thred->md.tid, &tInfo); -+ return tInfo.stack_base; /* or should it be _end? */ -+} -+ - PR_IMPLEMENT(PRThreadScope) - PR_GetThreadScope (const PRThread* thred) - { - PR_ASSERT(thred != NULL); - return PR_GLOBAL_THREAD; - } - - PR_IMPLEMENT(PRThreadType) -@@ -448,17 +439,17 @@ PR_IMPLEMENT(PRThreadType) - PR_SYSTEM_THREAD : PR_USER_THREAD; - } - - PR_IMPLEMENT(PRThreadState) - PR_GetThreadState (const PRThread* thred) - { - PR_ASSERT(thred != NULL); - return (thred->state & BT_THREAD_JOINABLE)? -- PR_JOINABLE_THREAD: PR_UNJOINABLE_THREAD; -+ PR_JOINABLE_THREAD: PR_UNJOINABLE_THREAD; - } - - PR_IMPLEMENT(PRThreadPriority) - PR_GetThreadPriority (const PRThread* thred) - { - PR_ASSERT(thred != NULL); - return thred->priority; - } /* PR_GetThreadPriority */ -@@ -474,82 +465,82 @@ PR_IMPLEMENT(void) PR_SetThreadPriority( - bePriority = _bt_MapNSPRToNativePriority( newPri ); - set_thread_priority( thred->md.tid, bePriority ); - } - - PR_IMPLEMENT(PRStatus) - PR_NewThreadPrivateIndex (PRUintn* newIndex, - PRThreadPrivateDTOR destructor) - { -- int32 index; -+ int32 index; - - if (!_pr_initialized) _PR_ImplicitInitialization(); - -- /* reserve the next available tpd slot */ -- index = atomic_add( &tpd_slotsUsed, 1 ); -- if (index >= BT_TPD_LIMIT) -- { -- /* no slots left - decrement value, then fail */ -- atomic_add( &tpd_slotsUsed, -1 ); -- PR_SetError( PR_TPD_RANGE_ERROR, 0 ); -- return( PR_FAILURE ); -- } -- -- /* allocate a beos-native TLS slot for this index (the new slot -- automatically contains NULL) */ -- tpd_beosTLSSlots[index] = tls_allocate(); -+ /* reserve the next available tpd slot */ -+ index = atomic_add( &tpd_slotsUsed, 1 ); -+ if (index >= BT_TPD_LIMIT) -+ { -+ /* no slots left - decrement value, then fail */ -+ atomic_add( &tpd_slotsUsed, -1 ); -+ PR_SetError( PR_TPD_RANGE_ERROR, 0 ); -+ return( PR_FAILURE ); -+ } -+ -+ /* allocate a beos-native TLS slot for this index (the new slot -+ automatically contains NULL) */ -+ tpd_beosTLSSlots[index] = tls_allocate(); - -- /* remember the destructor */ -- tpd_dtors[index] = destructor; -+ /* remember the destructor */ -+ tpd_dtors[index] = destructor; - - *newIndex = (PRUintn)index; - - return( PR_SUCCESS ); - } - - PR_IMPLEMENT(PRStatus) - PR_SetThreadPrivate (PRUintn index, void* priv) - { -- void *oldValue; -+ void *oldValue; - - /* - ** Sanity checking - */ - - if(index < 0 || index >= tpd_slotsUsed || index >= BT_TPD_LIMIT) - { -- PR_SetError( PR_TPD_RANGE_ERROR, 0 ); -- return( PR_FAILURE ); -+ PR_SetError( PR_TPD_RANGE_ERROR, 0 ); -+ return( PR_FAILURE ); - } - -- /* if the old value isn't NULL, and the dtor for this slot isn't -- NULL, we must destroy the data */ -- oldValue = tls_get(tpd_beosTLSSlots[index]); -- if (oldValue != NULL && tpd_dtors[index] != NULL) -- (*tpd_dtors[index])(oldValue); -+ /* if the old value isn't NULL, and the dtor for this slot isn't -+ NULL, we must destroy the data */ -+ oldValue = tls_get(tpd_beosTLSSlots[index]); -+ if (oldValue != NULL && tpd_dtors[index] != NULL) -+ (*tpd_dtors[index])(oldValue); - -- /* save new value */ -- tls_set(tpd_beosTLSSlots[index], priv); -+ /* save new value */ -+ tls_set(tpd_beosTLSSlots[index], priv); - -- return( PR_SUCCESS ); -- } -+ return( PR_SUCCESS ); -+} - - PR_IMPLEMENT(void*) - PR_GetThreadPrivate (PRUintn index) - { -- /* make sure the index is valid */ -- if (index < 0 || index >= tpd_slotsUsed || index >= BT_TPD_LIMIT) -+ /* make sure the index is valid */ -+ if (index < 0 || index >= tpd_slotsUsed || index >= BT_TPD_LIMIT) - { -- PR_SetError( PR_TPD_RANGE_ERROR, 0 ); -- return NULL; -+ PR_SetError( PR_TPD_RANGE_ERROR, 0 ); -+ return NULL; - } - -- /* return the value */ -- return tls_get( tpd_beosTLSSlots[index] ); -- } -+ /* return the value */ -+ return tls_get( tpd_beosTLSSlots[index] ); -+} - - - PR_IMPLEMENT(PRStatus) - PR_Interrupt (PRThread* thred) - { - PRIntn rv; - - PR_ASSERT(thred != NULL); -@@ -622,73 +613,73 @@ PR_IMPLEMENT(PRStatus) - - PR_ASSERT(me->state & BT_THREAD_PRIMORD); - if ((me->state & BT_THREAD_PRIMORD) == 0) { - return PR_FAILURE; - } - - PR_Lock( bt_book.ml ); - -- if (bt_book.threadCount != 0) -+ if (bt_book.threadCount != 0) - { -- /* we'll have to wait for some threads to finish - create a -- sem to block on */ -- bt_book.cleanUpSem = create_sem(0, "cleanup sem"); -+ /* we'll have to wait for some threads to finish - create a -+ sem to block on */ -+ bt_book.cleanUpSem = create_sem(0, "cleanup sem"); - } - - PR_Unlock( bt_book.ml ); - -- /* note that, if all the user threads were already dead, we -- wouldn't have created a sem above, so this acquire_sem() -- will fail immediately */ -- while (acquire_sem(bt_book.cleanUpSem) == B_INTERRUPTED); -+ /* note that, if all the user threads were already dead, we -+ wouldn't have created a sem above, so this acquire_sem() -+ will fail immediately */ -+ while (acquire_sem(bt_book.cleanUpSem) == B_INTERRUPTED); - - return PR_SUCCESS; - } - - PR_IMPLEMENT(void) - PR_ProcessExit (PRIntn status) - { - exit(status); - } - - PRThread *_bt_AttachThread() - { -- PRThread *thread; -- thread_info tInfo; -+ PRThread *thread; -+ thread_info tInfo; - -- /* make sure this thread doesn't already have a PRThread structure */ -- PR_ASSERT(tls_get(tls_prThreadSlot) == NULL); -+ /* make sure this thread doesn't already have a PRThread structure */ -+ PR_ASSERT(tls_get(tls_prThreadSlot) == NULL); - -- /* allocate a PRThread structure for this thread */ -- thread = PR_NEWZAP(PRThread); -- if (thread == NULL) -- { -- PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -- return NULL; -- } -- -- /* get the native thread's current state */ -- get_thread_info(find_thread(NULL), &tInfo); -- -- /* initialize new PRThread */ -- thread->md.tid = tInfo.thread; -- thread->md.joinSem = B_ERROR; -- thread->priority = _bt_MapNativeToNSPRPriority(tInfo.priority); -- -- /* attached threads are always non-joinable user threads */ -- thread->state = 0; -- -- /* increment user thread count */ -- PR_Lock(bt_book.ml); -- bt_book.threadCount++; -- PR_Unlock(bt_book.ml); -- -- /* store this thread's PRThread */ -- tls_set(tls_prThreadSlot, thread); -- -- /* the thread must call _bt_CleanupThread() before it dies, in order -- to clean up its PRThread, synchronize with the primordial thread, -- etc. */ -- on_exit_thread(_bt_CleanupThread, NULL); -- -- return thread; -+ /* allocate a PRThread structure for this thread */ -+ thread = PR_NEWZAP(PRThread); -+ if (thread == NULL) -+ { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ return NULL; -+ } -+ -+ /* get the native thread's current state */ -+ get_thread_info(find_thread(NULL), &tInfo); -+ -+ /* initialize new PRThread */ -+ thread->md.tid = tInfo.thread; -+ thread->md.joinSem = B_ERROR; -+ thread->priority = _bt_MapNativeToNSPRPriority(tInfo.priority); -+ -+ /* attached threads are always non-joinable user threads */ -+ thread->state = 0; -+ -+ /* increment user thread count */ -+ PR_Lock(bt_book.ml); -+ bt_book.threadCount++; -+ PR_Unlock(bt_book.ml); -+ -+ /* store this thread's PRThread */ -+ tls_set(tls_prThreadSlot, thread); -+ -+ /* the thread must call _bt_CleanupThread() before it dies, in order -+ to clean up its PRThread, synchronize with the primordial thread, -+ etc. */ -+ on_exit_thread(_bt_CleanupThread, NULL); -+ -+ return thread; - } -Index: mozilla/nsprpub/pr/src/io/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/io/Makefile.in,v -retrieving revision 1.13 -diff -u -8 -p -r1.13 Makefile.in ---- mozilla/nsprpub/pr/src/io/Makefile.in 25 Apr 2004 15:00:58 -0000 1.13 -+++ mozilla/nsprpub/pr/src/io/Makefile.in 9 Feb 2009 04:04:39 -0000 -@@ -64,23 +64,25 @@ CSRCS = \ - prmmap.c \ - prpolevt.c \ - prprf.c \ - prscanf.c \ - prstdio.c \ - $(NULL) - - ifndef USE_PTHREADS -+ifndef USE_BTHREADS - CSRCS += \ - prdir.c \ - prfile.c \ - prio.c \ - prsocket.c \ - $(NULL) - endif -+endif - - TARGETS = $(OBJS) - - INCLUDES = -I$(dist_includedir) -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/private - - DEFINES += -D_NSPR_BUILD_ - - include $(topsrcdir)/config/rules.mk -Index: mozilla/nsprpub/pr/src/io/prmapopt.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/io/prmapopt.c,v -retrieving revision 3.18 -diff -u -8 -p -r3.18 prmapopt.c ---- mozilla/nsprpub/pr/src/io/prmapopt.c 25 Apr 2004 15:00:58 -0000 3.18 -+++ mozilla/nsprpub/pr/src/io/prmapopt.c 9 Feb 2009 04:04:40 -0000 -@@ -69,17 +69,17 @@ - /* NEXTSTEP is special: this must come before netinet/tcp.h. */ - #include /* n_short, n_long, n_time */ - #endif - - #if defined(XP_UNIX) || defined(OS2) || (defined(XP_BEOS) && defined(BONE_VERSION)) - #include /* TCP_NODELAY, TCP_MAXSEG */ - #endif - --#ifndef _PR_PTHREADS -+#if !defined(_PR_PTHREADS) && !defined(_PR_BTHREADS) - - PRStatus PR_CALLBACK _PR_SocketGetSocketOption(PRFileDesc *fd, PRSocketOptionData *data) - { - PRStatus rv; - PRInt32 length; - PRInt32 level, name; - - /* -@@ -94,34 +94,29 @@ PRStatus PR_CALLBACK _PR_SocketGetSocket - - rv = _PR_MapOptionName(data->option, &level, &name); - if (PR_SUCCESS == rv) - { - switch (data->option) - { - case PR_SockOpt_Linger: - { --#if !defined(XP_BEOS) || defined(BONE_VERSION) - struct linger linger; - length = sizeof(linger); - rv = _PR_MD_GETSOCKOPT( - fd, level, name, (char *) &linger, &length); - if (PR_SUCCESS == rv) - { - PR_ASSERT(sizeof(linger) == length); - data->value.linger.polarity = - (linger.l_onoff) ? PR_TRUE : PR_FALSE; - data->value.linger.linger = - PR_SecondsToInterval(linger.l_linger); - } - break; --#else -- PR_SetError( PR_NOT_IMPLEMENTED_ERROR, 0 ); -- return PR_FAILURE; --#endif - } - case PR_SockOpt_Reuseaddr: - case PR_SockOpt_Keepalive: - case PR_SockOpt_NoDelay: - case PR_SockOpt_Broadcast: - { - #ifdef WIN32 /* Winsock */ - BOOL value; -@@ -252,27 +247,22 @@ PRStatus PR_CALLBACK _PR_SocketSetSocket - - rv = _PR_MapOptionName(data->option, &level, &name); - if (PR_SUCCESS == rv) - { - switch (data->option) - { - case PR_SockOpt_Linger: - { --#if !defined(XP_BEOS) || defined(BONE_VERSION) - struct linger linger; - linger.l_onoff = data->value.linger.polarity; - linger.l_linger = PR_IntervalToSeconds(data->value.linger.linger); - rv = _PR_MD_SETSOCKOPT( - fd, level, name, (char*)&linger, sizeof(linger)); - break; --#else -- PR_SetError( PR_NOT_IMPLEMENTED_ERROR, 0 ); -- return PR_FAILURE; --#endif - } - case PR_SockOpt_Reuseaddr: - case PR_SockOpt_Keepalive: - case PR_SockOpt_NoDelay: - case PR_SockOpt_Broadcast: - { - #ifdef WIN32 /* Winsock */ - BOOL value; -@@ -350,17 +340,17 @@ PRStatus PR_CALLBACK _PR_SocketSetSocket - default: - PR_NOT_REACHED("Unknown socket option"); - break; - } - } - return rv; - } /* _PR_SocketSetSocketOption */ - --#endif /* ! _PR_PTHREADS */ -+#endif /* ! _PR_PTHREADS && ! _PR_BTHREADS */ - - /* - ********************************************************************* - ********************************************************************* - ** - ** Make sure that the following is at the end of this file, - ** because we will be playing with macro redefines. - ** -Index: mozilla/nsprpub/pr/src/io/prsocket.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/io/prsocket.c,v -retrieving revision 3.57.2.2 -diff -u -8 -p -r3.57.2.2 prsocket.c ---- mozilla/nsprpub/pr/src/io/prsocket.c 7 Nov 2007 22:24:04 -0000 3.57.2.2 -+++ mozilla/nsprpub/pr/src/io/prsocket.c 9 Feb 2009 04:04:44 -0000 -@@ -59,17 +59,17 @@ PRBool IsValidNetAddr(const PRNetAddr *a - - static PRBool IsValidNetAddrLen(const PRNetAddr *addr, PRInt32 addr_len) - { - /* - * The definition of the length of a Unix domain socket address - * is not uniform, so we don't check it. - */ - if ((addr != NULL) --#if defined(XP_UNIX) || defined(XP_OS2_EMX) -+#if defined(XP_UNIX) || defined(XP_OS2_EMX) || defined(XP_BEOS) - && (addr->raw.family != AF_UNIX) - #endif - && (PR_NETADDR_SIZE(addr) != addr_len)) { - #if defined(LINUX) && __GLIBC__ == 2 && __GLIBC_MINOR__ == 1 - /* - * In glibc 2.1, struct sockaddr_in6 is 24 bytes. In glibc 2.2 - * and in the 2.4 kernel, struct sockaddr_in6 has the scope_id - * field and is 28 bytes. It is possible for socket functions -Index: mozilla/nsprpub/pr/src/linking/prlink.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/linking/prlink.c,v -retrieving revision 3.81.2.5 -diff -u -8 -p -r3.81.2.5 prlink.c ---- mozilla/nsprpub/pr/src/linking/prlink.c 6 Oct 2006 23:36:22 -0000 3.81.2.5 -+++ mozilla/nsprpub/pr/src/linking/prlink.c 9 Feb 2009 04:04:49 -0000 -@@ -194,18 +194,20 @@ struct PRLibrary { - NSModule dlh; - #else - void* dlh; - #endif - #endif - - #ifdef XP_BEOS - void* dlh; -+#ifndef XP_HAIKU - void* stub_dlh; - #endif -+#endif - }; - - static PRLibrary *pr_loadmap; - static PRLibrary *pr_exe_loadmap; - static PRMonitor *pr_linker_lock; - static char* _pr_currentLibPath = NULL; - - static PRLibrary *pr_LoadLibraryByPathname(const char *name, PRIntn flags); -@@ -844,16 +846,29 @@ pr_LoadLibraryByPathname(const char *nam - } - /* the list of loaded library names are always kept in UTF-8 - * on Win32 platforms */ - result = pr_UnlockedFindLibrary(utf8name); - #else - result = pr_UnlockedFindLibrary(name); - #endif - -+#ifdef XP_BEOS -+ /* Havn't seen this happen so far, but it doesn't slow anything -+ down so let's keep it */ -+ for (result = pr_loadmap; result != NULL; result = result->next) { -+ /* hopefully, our caller will always use the same string -+ to refer to the same library */ -+ if (strcmp(name, result->name) == 0) { -+ result->refCount++; -+ break; -+ } -+ } -+#endif -+ - if (result != NULL) goto unlock; - - lm = PR_NEWZAP(PRLibrary); - if (lm == NULL) { - oserr = _MD_ERRNO(); - goto unlock; - } - lm->staticTable = NULL; -@@ -997,108 +1012,97 @@ pr_LoadLibraryByPathname(const char *nam - lm->name = strdup(name); - lm->dlh = h; - lm->next = pr_loadmap; - pr_loadmap = lm; - } - #endif /* HAVE_DLL */ - #endif /* XP_UNIX */ - -- lm->refCount = 1; -- - #ifdef XP_BEOS -- { -- image_info info; -- int32 cookie = 0; -+ { /* Code block to allow variable inits. :/ */ -+ /* it appears the library isn't yet loaded - load it now */ -+#ifdef XP_HAIKU -+ image_id imageid = load_add_on(name); -+#else - image_id imageid = B_ERROR; - image_id stubid = B_ERROR; -- PRLibrary *p; -+ char stubName [B_PATH_NAME_LENGTH + 1]; - -- for (p = pr_loadmap; p != NULL; p = p->next) { -- /* hopefully, our caller will always use the same string -- to refer to the same library */ -- if (strcmp(name, p->name) == 0) { -- /* we've already loaded this library */ -- imageid = info.id; -- lm->refCount++; -- break; -- } -- } -+ /* the following is a work-around to a "bug" in the beos - -+ the beos system loader allows only 32M (system-wide) -+ to be used by code loaded as "add-ons" (code loaded -+ through the 'load_add_on()' system call, which includes -+ mozilla components), but allows 256M to be used by -+ shared libraries. -+ -+ unfortunately, mozilla is too large to fit into the -+ "add-on" space, so we must trick the loader into -+ loading some of the components as shared libraries. this -+ is accomplished by creating a "stub" add-on (an empty -+ shared object), and linking it with the component -+ (the actual .so file generated by the build process, -+ without any modifications). when this stub is loaded -+ by load_add_on(), the loader will automatically load the -+ component into the shared library space. -+ */ - -- if(imageid == B_ERROR) { -- /* it appears the library isn't yet loaded - load it now */ -- char stubName [B_PATH_NAME_LENGTH + 1]; -- -- /* the following is a work-around to a "bug" in the beos - -- the beos system loader allows only 32M (system-wide) -- to be used by code loaded as "add-ons" (code loaded -- through the 'load_add_on()' system call, which includes -- mozilla components), but allows 256M to be used by -- shared libraries. -- -- unfortunately, mozilla is too large to fit into the -- "add-on" space, so we must trick the loader into -- loading some of the components as shared libraries. this -- is accomplished by creating a "stub" add-on (an empty -- shared object), and linking it with the component -- (the actual .so file generated by the build process, -- without any modifications). when this stub is loaded -- by load_add_on(), the loader will automatically load the -- component into the shared library space. -- */ -- -- strcpy(stubName, name); -- strcat(stubName, ".stub"); -- -- /* first, attempt to load the stub (thereby loading the -- component as a shared library */ -- if ((stubid = load_add_on(stubName)) > B_ERROR) { -- /* the stub was loaded successfully. */ -- imageid = B_FILE_NOT_FOUND; -- -- cookie = 0; -- while (get_next_image_info(0, &cookie, &info) == B_OK) { -- const char *endOfSystemName = strrchr(info.name, '/'); -- const char *endOfPassedName = strrchr(name, '/'); -- if( 0 == endOfSystemName ) -- endOfSystemName = info.name; -- else -- endOfSystemName++; -- if( 0 == endOfPassedName ) -- endOfPassedName = name; -- else -- endOfPassedName++; -- if (strcmp(endOfSystemName, endOfPassedName) == 0) { -- /* this is the actual component - remember it */ -- imageid = info.id; -- break; -- } -- } -+ strcpy(stubName, name); -+ strcat(stubName, ".stub"); - -- } else { -- /* we failed to load the "stub" - try to load the -- component directly as an add-on */ -- stubid = B_ERROR; -- imageid = load_add_on(name); -+ /* first, attempt to load the stub (thereby loading the -+ component as a shared library */ -+ if ((stubid = load_add_on(stubName)) > B_ERROR) { -+ -+ const char *endOfPassedName = strrchr(name, '/'); -+ image_info info; -+ int32 cookie = 0; -+ -+ /* the stub was loaded successfully. */ -+ imageid = B_FILE_NOT_FOUND; -+ if( 0 == endOfPassedName ) -+ endOfPassedName = name; -+ else -+ endOfPassedName++; -+ -+ while (get_next_image_info(0, &cookie, &info) == B_OK) { -+ const char *endOfSystemName = strrchr(info.name, '/'); -+ if( 0 == endOfSystemName ) -+ endOfSystemName = info.name; -+ else -+ endOfSystemName++; -+ if (strcmp(endOfSystemName, endOfPassedName) == 0) { -+ /* this is the actual component - remember it */ -+ imageid = info.id; -+ break; -+ } - } -+ } else { -+ /* we failed to load the "stub" - try to load the -+ component directly as an add-on */ -+ stubid = B_ERROR; -+ imageid = load_add_on(name); - } -- -+#endif /* XP_HAIKU */ - if (imageid <= B_ERROR) { - oserr = imageid; -- PR_DELETE( lm ); -+ PR_DELETE(lm); - goto unlock; - } - lm->name = strdup(name); - lm->dlh = (void*)imageid; -+#ifndef XP_HAIKU - lm->stub_dlh = (void*)stubid; -+#endif - lm->next = pr_loadmap; - pr_loadmap = lm; - } --#endif -+#endif /* XP_BEOS */ - -+ lm->refCount = 1; - result = lm; /* success */ - PR_LOG(_pr_linker_lm, PR_LOG_MIN, ("Loaded library %s (load lib)", lm->name)); - - unlock: - if (result == NULL) { - PR_SetError(PR_LOAD_LIBRARY_ERROR, oserr); - DLLErrorInternal(oserr); /* sets error text */ - } -@@ -1249,21 +1253,25 @@ PR_UnloadLibrary(PRLibrary *lib) - if (--lib->refCount > 0) { - PR_LOG(_pr_linker_lm, PR_LOG_MIN, - ("%s decr => %d", - lib->name, lib->refCount)); - goto done; - } - - #ifdef XP_BEOS -+#ifdef XP_HAIKU -+ unload_add_on( (image_id) lib->dlh ); -+#else - if(((image_id)lib->stub_dlh) == B_ERROR) - unload_add_on( (image_id) lib->dlh ); - else - unload_add_on( (image_id) lib->stub_dlh); --#endif -+#endif /* XP_HAIKU */ -+#endif /* XP_BEOS */ - - #ifdef XP_UNIX - #ifdef HAVE_DLL - #ifdef USE_DLFCN - result = dlclose(lib->dlh); - #elif defined(USE_HPSHL) - result = shl_unload(lib->dlh); - #elif defined(USE_MACH_DYLD) -Index: mozilla/nsprpub/pr/src/md/beos/beos.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/md/beos/beos.c,v -retrieving revision 3.5 -diff -u -8 -p -r3.5 beos.c ---- mozilla/nsprpub/pr/src/md/beos/beos.c 25 Apr 2004 15:00:59 -0000 3.5 -+++ mozilla/nsprpub/pr/src/md/beos/beos.c 9 Feb 2009 04:04:50 -0000 -@@ -32,233 +32,178 @@ - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - - #include "primpl.h" - --#include --#include --#include --#include --#include --#include - #include --#include --#include -- - /* - * Make sure _PRSockLen_t is 32-bit, because we will cast a PRUint32* or - * PRInt32* pointer to a _PRSockLen_t* pointer. - */ - #define _PRSockLen_t int - --/* --** Global lock variable used to bracket calls into rusty libraries that --** aren't thread safe (like libc, libX, etc). --*/ --static PRLock *_pr_rename_lock = NULL; --static PRMonitor *_pr_Xfe_mon = NULL; - --/* -- * Variables used by the GC code, initialized in _MD_InitSegs(). -- * _pr_zero_fd should be a static variable. Unfortunately, there is -- * still some Unix-specific code left in function PR_GrowSegment() -- * in file memory/prseg.c that references it, so it needs -- * to be a global variable for now. -- */ --PRInt32 _pr_zero_fd = -1; --static PRLock *_pr_md_lock = NULL; -+#ifndef BONE_VERSION -+PRLock *_connectLock = NULL; - --sigset_t timer_set; -+/* Workaround for nonblocking connects under net_server */ -+PRUint32 connectCount = 0; -+ConnectListNode connectList[64]; - --void _PR_UnixInit() -+void -+_MD_final_init_netserver(void) - { -- struct sigaction sigact; -- int rv; -- -- sigemptyset(&timer_set); -- -- sigact.sa_handler = SIG_IGN; -- sigemptyset(&sigact.sa_mask); -- sigact.sa_flags = 0; -- rv = sigaction(SIGPIPE, &sigact, 0); -- PR_ASSERT(0 == rv); -- -- _pr_rename_lock = PR_NewLock(); -- PR_ASSERT(NULL != _pr_rename_lock); -- _pr_Xfe_mon = PR_NewMonitor(); -- PR_ASSERT(NULL != _pr_Xfe_mon); -+ _connectLock = PR_NewLock(); -+ PR_ASSERT(NULL != _connectLock); -+ /* Workaround for nonblocking connects under net_server */ -+ connectCount = 0; - } -+#endif /* !BONE_VERSION */ - --/* -- *----------------------------------------------------------------------- -- * -- * PR_Now -- -- * -- * Returns the current time in microseconds since the epoch. -- * The epoch is midnight January 1, 1970 GMT. -- * The implementation is machine dependent. This is the Unix -- * implementation. -- * Cf. time_t time(time_t *tp) -- * -- *----------------------------------------------------------------------- -- */ -- --PR_IMPLEMENT(PRTime) --PR_Now(void) --{ -- struct timeval tv; -- PRInt64 s, us, s2us; - -- GETTIMEOFDAY(&tv); -- LL_I2L(s2us, PR_USEC_PER_SEC); -- LL_I2L(s, tv.tv_sec); -- LL_I2L(us, tv.tv_usec); -- LL_MUL(s, s, s2us); -- LL_ADD(s, s, us); -- return s; --} -+#ifdef __powerpc__ -+static PRLock *monitor = NULL; - --PRIntervalTime --_PR_UNIX_GetInterval() -+void -+_MD_AtomicInit(void) - { -- struct timeval time; -- PRIntervalTime ticks; -- -- (void)GETTIMEOFDAY(&time); /* fallicy of course */ -- ticks = (PRUint32)time.tv_sec * PR_MSEC_PER_SEC; /* that's in milliseconds */ -- ticks += (PRUint32)time.tv_usec / PR_USEC_PER_MSEC; /* so's that */ -- return ticks; --} /* _PR_SUNOS_GetInterval */ -- --PRIntervalTime _PR_UNIX_TicksPerSecond() --{ -- return 1000; /* this needs some work :) */ -+ if (monitor == NULL) { -+ monitor = PR_NewLock(); -+ } - } -- --/************************************************************************/ -+#endif /* __powerpc__ */ - - /* --** Special hacks for xlib. Xlib/Xt/Xm is not re-entrant nor is it thread --** safe. Unfortunately, neither is mozilla. To make these programs work --** in a pre-emptive threaded environment, we need to use a lock. -+** This is exceedingly messy. atomic_add returns the last value, NSPR -+** expects the new value. We just add or subtract 1 from the result. -+** The actual memory update is atomic. - */ - --void PR_XLock() -+PRInt32 -+_MD_AtomicAdd( PRInt32 *ptr, PRInt32 val ) - { -- PR_EnterMonitor(_pr_Xfe_mon); -+ return atomic_add( (long *)ptr, val ) + val; - } - --void PR_XUnlock() -+PRInt32 -+_MD_AtomicIncrement( PRInt32 *val ) - { -- PR_ExitMonitor(_pr_Xfe_mon); -+ return atomic_add( (long *)val, 1 ) + 1; - } - --PRBool PR_XIsLocked() -+PRInt32 -+_MD_AtomicDecrement( PRInt32 *val ) - { -- return (PR_InMonitor(_pr_Xfe_mon)) ? PR_TRUE : PR_FALSE; -+ return atomic_add( (long *)val, -1 ) - 1; - } - --void PR_XWait(int ms) -+PRInt32 -+_MD_AtomicSet( PRInt32 *val, PRInt32 newval ) - { -- PR_Wait(_pr_Xfe_mon, PR_MillisecondsToInterval(ms)); --} -- --void PR_XNotify(void) --{ -- PR_Notify(_pr_Xfe_mon); --} -+ PRInt32 result; -+#ifdef __powerpc__ -+ if (!_pr_initialized) { -+ _PR_ImplicitInitialization(); -+ } -+ PR_Lock(monitor); -+ result = *val; -+ *val = newval; -+ PR_Unlock(monitor); -+#else -+ asm volatile ("xchgl %0, %1" -+ : "=r"(result), "=m"(*val) -+ : "0"(newval), "m"(*val)); - --void PR_XNotifyAll(void) --{ -- PR_NotifyAll(_pr_Xfe_mon); -+#endif /* __powerpc__ */ -+ return result; - } - --#if !defined(BEOS) --#ifdef HAVE_BSD_FLOCK -- --#include -+/* -+ *----------------------------------------------------------------------- -+ * -+ * PR_Now -- -+ * -+ * Returns the current time in microseconds since the epoch. -+ * The epoch is midnight January 1, 1970 GMT. -+ * The implementation is machine dependent. -+ * -+ *----------------------------------------------------------------------- -+ */ - --PR_IMPLEMENT(PRStatus) --_MD_LOCKFILE (PRInt32 f) -+PR_IMPLEMENT(PRTime) -+PR_Now(void) - { -- PRInt32 rv; -- rv = flock(f, LOCK_EX); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_FLOCK_ERROR(_MD_ERRNO()); -- return PR_FAILURE; -+ return (PRTime) real_time_clock_usecs(); - } - --PR_IMPLEMENT(PRStatus) --_MD_TLOCKFILE (PRInt32 f) -+PRIntervalTime -+_MD_get_interval(void) - { -- PRInt32 rv; -- rv = flock(f, LOCK_EX|LOCK_NB); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_FLOCK_ERROR(_MD_ERRNO()); -- return PR_FAILURE; -+ return (PRIntervalTime) real_time_clock_usecs() / 10; - } - --PR_IMPLEMENT(PRStatus) --_MD_UNLOCKFILE (PRInt32 f) -+PRIntervalTime -+_MD_interval_per_sec(void) - { -- PRInt32 rv; -- rv = flock(f, LOCK_UN); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_FLOCK_ERROR(_MD_ERRNO()); -- return PR_FAILURE; -+ return 100000L; - } --#else - --PR_IMPLEMENT(PRStatus) --_MD_LOCKFILE (PRInt32 f) -+PRSize -+_PR_MD_GetRandomNoise( void *buf, PRSize size ) - { -- PRInt32 rv; -- rv = lockf(f, F_LOCK, 0); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_LOCKF_ERROR(_MD_ERRNO()); -- return PR_FAILURE; --} -+ struct timeval tv; -+ int n = 0; -+ int s; - --PR_IMPLEMENT(PRStatus) --_MD_TLOCKFILE (PRInt32 f) --{ -- PRInt32 rv; -- rv = lockf(f, F_TLOCK, 0); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_LOCKF_ERROR(_MD_ERRNO()); -- return PR_FAILURE; --} -+ GETTIMEOFDAY(&tv); -+ -+ if ( size >= 0 ) { -+ s = _pr_CopyLowBits((char*)buf+n, size, &tv.tv_usec, sizeof(tv.tv_usec)); -+ size -= s; -+ n += s; -+ } -+ if ( size >= 0 ) { -+ s = _pr_CopyLowBits((char*)buf+n, size, &tv.tv_sec, sizeof(tv.tv_sec)); -+ size -= s; -+ n += s; -+ } -+ return n; -+} /* end _PR_MD_GetRandomNoise() */ - --PR_IMPLEMENT(PRStatus) --_MD_UNLOCKFILE (PRInt32 f) -+ -+/* Needed by prinit.c:612 */ -+void -+_PR_MD_QUERY_FD_INHERITABLE(PRFileDesc *fd) - { -- PRInt32 rv; -- rv = lockf(f, F_ULOCK, 0); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_LOCKF_ERROR(_MD_ERRNO()); -- return PR_FAILURE; -+ int flags; -+ -+ PR_ASSERT(_PR_TRI_UNKNOWN == fd->secret->inheritable); -+ flags = fcntl(fd->secret->md.osfd, F_GETFD, 0); -+ PR_ASSERT(-1 != flags); -+ fd->secret->inheritable = (flags & FD_CLOEXEC) ? -+ _PR_TRI_FALSE : _PR_TRI_TRUE; - } --#endif - --PR_IMPLEMENT(PRStatus) -- _MD_GETHOSTNAME (char *name, PRUint32 namelen) -+PRStatus -+_MD_gethostname(char *name, PRUint32 namelen) - { -- PRIntn rv; -+ PRInt32 rv, err; - - rv = gethostname(name, namelen); -- if (0 == rv) { -- return PR_SUCCESS; -+ if (rv == 0) -+ { -+ err = _MD_ERRNO(); -+ switch (err) { -+ case EFAULT: -+ PR_SetError(PR_ACCESS_FAULT_ERROR, err); -+ break; -+ default: -+ PR_SetError(PR_UNKNOWN_ERROR, err); -+ break; -+ } -+ return PR_FAILURE; - } -- _PR_MD_MAP_GETHOSTNAME_ERROR(_MD_ERRNO()); -- return PR_FAILURE; -+ return PR_SUCCESS; - } -- --#endif -Index: mozilla/nsprpub/pr/src/md/beos/bproc.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/md/beos/bproc.c,v -retrieving revision 3.6 -diff -u -8 -p -r3.6 bproc.c ---- mozilla/nsprpub/pr/src/md/beos/bproc.c 25 Apr 2004 15:00:59 -0000 3.6 -+++ mozilla/nsprpub/pr/src/md/beos/bproc.c 9 Feb 2009 04:04:50 -0000 -@@ -31,207 +31,209 @@ - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - - #include "primpl.h" --#include -+#include - #include -+#include -+#include - - #define _PR_SIGNALED_EXITSTATUS 256 - - PRProcess* - _MD_create_process (const char *path, char *const *argv, -- char *const *envp, const PRProcessAttr *attr) -+ char *const *envp, const PRProcessAttr *attr) - { -- PRProcess *process; -- int nEnv, idx; -- char *const *childEnvp; -- char **newEnvp = NULL; -- int flags; -- -- process = PR_NEW(PRProcess); -- if (!process) { -- PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -- return NULL; -- } -- -- childEnvp = envp; -- if (attr && attr->fdInheritBuffer) { -- if (NULL == childEnvp) { -- childEnvp = environ; -- } -- for (nEnv = 0; childEnvp[nEnv]; nEnv++) { -- } -- newEnvp = (char **) PR_MALLOC((nEnv + 2) * sizeof(char *)); -- if (NULL == newEnvp) { -- PR_DELETE(process); -- PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -- return NULL; -- } -- for (idx = 0; idx < nEnv; idx++) { -- newEnvp[idx] = childEnvp[idx]; -- } -- newEnvp[idx++] = attr->fdInheritBuffer; -- newEnvp[idx] = NULL; -- childEnvp = newEnvp; -- } -- -- process->md.pid = fork(); -- -- if ((pid_t) -1 == process->md.pid) { -- PR_SetError(PR_INSUFFICIENT_RESOURCES_ERROR, errno); -- PR_DELETE(process); -- if (newEnvp) { -- PR_DELETE(newEnvp); -- } -- return NULL; -- } else if (0 == process->md.pid) { /* the child process */ -- /* -- * If the child process needs to exit, it must call _exit(). -- * Do not call exit(), because exit() will flush and close -- * the standard I/O file descriptors, and hence corrupt -- * the parent process's standard I/O data structures. -- */ -- -- if (attr) { -- /* the osfd's to redirect stdin, stdout, and stderr to */ -- int in_osfd = -1, out_osfd = -1, err_osfd = -1; -- -- if (attr->stdinFd -- && attr->stdinFd->secret->md.osfd != 0) { -- in_osfd = attr->stdinFd->secret->md.osfd; -- if (dup2(in_osfd, 0) != 0) { -- _exit(1); /* failed */ -- } -- flags = fcntl(0, F_GETFL, 0); -- if (flags & O_NONBLOCK) { -- fcntl(0, F_SETFL, flags & ~O_NONBLOCK); -- } -- } -- if (attr->stdoutFd -- && attr->stdoutFd->secret->md.osfd != 1) { -- out_osfd = attr->stdoutFd->secret->md.osfd; -- if (dup2(out_osfd, 1) != 1) { -- _exit(1); /* failed */ -- } -- flags = fcntl(1, F_GETFL, 0); -- if (flags & O_NONBLOCK) { -- fcntl(1, F_SETFL, flags & ~O_NONBLOCK); -- } -- } -- if (attr->stderrFd -- && attr->stderrFd->secret->md.osfd != 2) { -- err_osfd = attr->stderrFd->secret->md.osfd; -- if (dup2(err_osfd, 2) != 2) { -- _exit(1); /* failed */ -- } -- flags = fcntl(2, F_GETFL, 0); -- if (flags & O_NONBLOCK) { -- fcntl(2, F_SETFL, flags & ~O_NONBLOCK); -- } -- } -- if (in_osfd != -1) { -- close(in_osfd); -- } -- if (out_osfd != -1 && out_osfd != in_osfd) { -- close(out_osfd); -- } -- if (err_osfd != -1 && err_osfd != in_osfd -- && err_osfd != out_osfd) { -- close(err_osfd); -- } -- if (attr->currentDirectory) { -- if (chdir(attr->currentDirectory) < 0) { -- _exit(1); /* failed */ -- } -- } -- } -- -- if (childEnvp) { -- (void)execve(path, argv, childEnvp); -- } else { -- /* Inherit the environment of the parent. */ -- (void)execv(path, argv); -- } -- /* Whoops! It returned. That's a bad sign. */ -- _exit(1); -- } -- -- if (newEnvp) { -- PR_DELETE(newEnvp); -- } -+ PRProcess *process; -+ int nEnv, idx; -+ char *const *childEnvp; -+ char **newEnvp = NULL; -+ int flags; -+ -+ process = PR_NEW(PRProcess); -+ if (!process) { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ return NULL; -+ } -+ -+ childEnvp = envp; -+ if (attr && attr->fdInheritBuffer) { -+ if (NULL == childEnvp) { -+ childEnvp = environ; -+ } -+ for (nEnv = 0; childEnvp[nEnv]; nEnv++) { -+ } -+ newEnvp = (char **) PR_MALLOC((nEnv + 2) * sizeof(char *)); -+ if (NULL == newEnvp) { -+ PR_DELETE(process); -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ return NULL; -+ } -+ for (idx = 0; idx < nEnv; idx++) { -+ newEnvp[idx] = childEnvp[idx]; -+ } -+ newEnvp[idx++] = attr->fdInheritBuffer; -+ newEnvp[idx] = NULL; -+ childEnvp = newEnvp; -+ } -+ -+ process->md.pid = fork(); -+ -+ if ((pid_t) -1 == process->md.pid) { -+ PR_SetError(PR_INSUFFICIENT_RESOURCES_ERROR, errno); -+ PR_DELETE(process); -+ if (newEnvp) { -+ PR_DELETE(newEnvp); -+ } -+ return NULL; -+ } else if (0 == process->md.pid) { /* the child process */ -+ /* -+ * If the child process needs to exit, it must call _exit(). -+ * Do not call exit(), because exit() will flush and close -+ * the standard I/O file descriptors, and hence corrupt -+ * the parent process's standard I/O data structures. -+ */ -+ -+ if (attr) { -+ /* the osfd's to redirect stdin, stdout, and stderr to */ -+ int in_osfd = -1, out_osfd = -1, err_osfd = -1; -+ -+ if (attr->stdinFd -+ && attr->stdinFd->secret->md.osfd != 0) { -+ in_osfd = attr->stdinFd->secret->md.osfd; -+ if (dup2(in_osfd, 0) != 0) { -+ _exit(1); /* failed */ -+ } -+ flags = fcntl(0, F_GETFL, 0); -+ if (flags & O_NONBLOCK) { -+ fcntl(0, F_SETFL, flags & ~O_NONBLOCK); -+ } -+ } -+ if (attr->stdoutFd -+ && attr->stdoutFd->secret->md.osfd != 1) { -+ out_osfd = attr->stdoutFd->secret->md.osfd; -+ if (dup2(out_osfd, 1) != 1) { -+ _exit(1); /* failed */ -+ } -+ flags = fcntl(1, F_GETFL, 0); -+ if (flags & O_NONBLOCK) { -+ fcntl(1, F_SETFL, flags & ~O_NONBLOCK); -+ } -+ } -+ if (attr->stderrFd -+ && attr->stderrFd->secret->md.osfd != 2) { -+ err_osfd = attr->stderrFd->secret->md.osfd; -+ if (dup2(err_osfd, 2) != 2) { -+ _exit(1); /* failed */ -+ } -+ flags = fcntl(2, F_GETFL, 0); -+ if (flags & O_NONBLOCK) { -+ fcntl(2, F_SETFL, flags & ~O_NONBLOCK); -+ } -+ } -+ if (in_osfd != -1) { -+ close(in_osfd); -+ } -+ if (out_osfd != -1 && out_osfd != in_osfd) { -+ close(out_osfd); -+ } -+ if (err_osfd != -1 && err_osfd != in_osfd -+ && err_osfd != out_osfd) { -+ close(err_osfd); -+ } -+ if (attr->currentDirectory) { -+ if (chdir(attr->currentDirectory) < 0) { -+ _exit(1); /* failed */ -+ } -+ } -+ } -+ -+ if (childEnvp) { -+ (void)execve(path, argv, childEnvp); -+ } else { -+ /* Inherit the environment of the parent. */ -+ (void)execv(path, argv); -+ } -+ /* Whoops! It returned. That's a bad sign. */ -+ _exit(1); -+ } -+ -+ if (newEnvp) { -+ PR_DELETE(newEnvp); -+ } - -- return process; -+ return process; - } - - PRStatus - _MD_detach_process (PRProcess *process) - { -- /* If we kept a process table like unix does, -- * we'd remove the entry here. -- * Since we dont', just delete the process variable -- */ -- PR_DELETE(process); -- return PR_SUCCESS; -+ /* If we kept a process table like unix does, -+ * we'd remove the entry here. -+ * Since we dont', just delete the process variable -+ */ -+ PR_DELETE(process); -+ return PR_SUCCESS; - } - - PRStatus - _MD_wait_process (PRProcess *process, PRInt32 *exitCode) - { -- PRStatus retVal = PR_SUCCESS; -- int ret, status; -- -- /* Ignore interruptions */ -- do { -- ret = waitpid(process->md.pid, &status, 0); -- } while (ret == -1 && errno == EINTR); -- -- /* -- * waitpid() cannot return 0 because we did not invoke it -- * with the WNOHANG option. -- */ -- PR_ASSERT(0 != ret); -+ PRStatus retVal = PR_SUCCESS; -+ int ret, status; -+ -+ /* Ignore interruptions */ -+ do { -+ ret = waitpid(process->md.pid, &status, 0); -+ } while (ret == -1 && errno == EINTR); -+ -+ /* -+ * waitpid() cannot return 0 because we did not invoke it -+ * with the WNOHANG option. -+ */ -+ PR_ASSERT(0 != ret); - -- if (ret < 0) { -+ if (ret < 0) { - PR_SetError(PR_UNKNOWN_ERROR, _MD_ERRNO()); -- return PR_FAILURE; -- } -+ return PR_FAILURE; -+ } - -- /* If child process exited normally, return child exit code */ -- if (WIFEXITED(status)) { -- *exitCode = WEXITSTATUS(status); -- } else { -- PR_ASSERT(WIFSIGNALED(status)); -- *exitCode = _PR_SIGNALED_EXITSTATUS; -- } -+ /* If child process exited normally, return child exit code */ -+ if (WIFEXITED(status)) { -+ *exitCode = WEXITSTATUS(status); -+ } else { -+ PR_ASSERT(WIFSIGNALED(status)); -+ *exitCode = _PR_SIGNALED_EXITSTATUS; -+ } - -- PR_DELETE(process); -- return PR_SUCCESS; -+ PR_DELETE(process); -+ return PR_SUCCESS; - } - - PRStatus - _MD_kill_process (PRProcess *process) - { -- PRErrorCode prerror; -- PRInt32 oserror; -- -- if (kill(process->md.pid, SIGKILL) == 0) { -- return PR_SUCCESS; -- } -- oserror = errno; -- switch (oserror) { -+ PRErrorCode prerror; -+ PRInt32 oserror; -+ -+ if (kill(process->md.pid, SIGKILL) == 0) { -+ return PR_SUCCESS; -+ } -+ oserror = errno; -+ switch (oserror) { - case EPERM: -- prerror = PR_NO_ACCESS_RIGHTS_ERROR; -- break; -+ prerror = PR_NO_ACCESS_RIGHTS_ERROR; -+ break; - case ESRCH: -- prerror = PR_INVALID_ARGUMENT_ERROR; -- break; -+ prerror = PR_INVALID_ARGUMENT_ERROR; -+ break; - default: -- prerror = PR_UNKNOWN_ERROR; -- break; -- } -- PR_SetError(prerror, oserror); -- return PR_FAILURE; -+ prerror = PR_UNKNOWN_ERROR; -+ break; -+ } -+ PR_SetError(prerror, oserror); -+ return PR_FAILURE; - } -Index: mozilla/nsprpub/pr/src/md/beos/bsrcs.mk -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/md/beos/bsrcs.mk,v -retrieving revision 3.6 -diff -u -8 -p -r3.6 bsrcs.mk ---- mozilla/nsprpub/pr/src/md/beos/bsrcs.mk 25 Apr 2004 15:00:59 -0000 3.6 -+++ mozilla/nsprpub/pr/src/md/beos/bsrcs.mk 9 Feb 2009 04:04:50 -0000 -@@ -15,16 +15,17 @@ - # The Original Code is the Netscape Portable Runtime (NSPR). - # - # The Initial Developer of the Original Code is - # Netscape Communications Corporation. - # Portions created by the Initial Developer are Copyright (C) 1998-2000 - # the Initial Developer. All Rights Reserved. - # - # Contributor(s): -+# Fredrik Holmqvist - # - # Alternatively, the contents of this file may be used under the terms of - # either the GNU General Public License Version 2 or later (the "GPL"), or - # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - # in which case the provisions of the GPL or the LGPL are applicable instead - # of those above. If you wish to allow use of your version of this file only - # under the terms of either the GPL or the LGPL, and not to allow others to - # use your version of this file under the terms of the MPL, indicate your -@@ -37,18 +38,11 @@ - - - # this file lists the source files to be compiled (used in Makefile) and - # then enumerated as object files (in objs.mk) for inclusion in the NSPR - # shared library - - MDCSRCS = \ - beos.c \ -- beos_errors.c \ -- bfile.c \ -- bmisc.c \ -- bnet.c \ - bproc.c \ -- brng.c \ -- bseg.c \ -- btime.c \ - bmmap.c \ - $(NULL) -Index: mozilla/nsprpub/pr/src/memory/prseg.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/memory/prseg.c,v -retrieving revision 3.8 -diff -u -8 -p -r3.8 prseg.c ---- mozilla/nsprpub/pr/src/memory/prseg.c 25 Apr 2004 15:01:01 -0000 3.8 -+++ mozilla/nsprpub/pr/src/memory/prseg.c 9 Feb 2009 04:04:51 -0000 -@@ -32,26 +32,26 @@ - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - - #include "primpl.h" - --#if defined(_PR_PTHREADS) -+#if defined(_PR_PTHREADS) || defined(_PR_BTHREADS) - - /* - ** The pthreads version doesn't use these functions. - */ - void _PR_InitSegs(void) - { - } - --#else /* _PR_PTHREADS */ -+#else /* _PR_PTHREADS || defined(_PR_BTHREADS) */ - - void _PR_InitSegs(void) - { - _PR_MD_INIT_SEGS(); - } - - /* - ** Allocate a memory segment. The size value is rounded up to the native -@@ -85,9 +85,9 @@ PRSegment* _PR_NewSegment(PRUint32 size, - ** Free a memory segment. - */ - void _PR_DestroySegment(PRSegment *seg) - { - _PR_MD_FREE_SEGMENT(seg); - PR_DELETE(seg); - } - --#endif /* _PR_PTHREADS */ -+#endif /* _PR_PTHREADS || defined(_PR_BTHREADS) */ -Index: mozilla/nsprpub/pr/src/misc/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/misc/Makefile.in,v -retrieving revision 1.19 -diff -u -8 -p -r1.19 Makefile.in ---- mozilla/nsprpub/pr/src/misc/Makefile.in 8 Nov 2004 02:52:56 -0000 1.19 -+++ mozilla/nsprpub/pr/src/misc/Makefile.in 9 Feb 2009 04:04:52 -0000 -@@ -66,20 +66,22 @@ CSRCS = \ - prsystem.c \ - prtime.c \ - prthinfo.c \ - prtpool.c \ - prtrace.c \ - $(NULL) - - ifndef USE_PTHREADS -+ifndef USE_BTHREADS - CSRCS += \ - pripcsem.c \ - $(NULL) - endif -+endif - - TARGETS = $(OBJS) - - INCLUDES = -I$(dist_includedir) -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/private - - DEFINES += -D_NSPR_BUILD_ - - RELEASE_BINS = $(srcdir)/compile-et.pl $(srcdir)/prerr.properties -Index: mozilla/nsprpub/pr/src/misc/prinit.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/misc/prinit.c,v -retrieving revision 3.43.2.1 -diff -u -8 -p -r3.43.2.1 prinit.c ---- mozilla/nsprpub/pr/src/misc/prinit.c 1 Dec 2006 00:34:11 -0000 3.43.2.1 -+++ mozilla/nsprpub/pr/src/misc/prinit.c 9 Feb 2009 04:04:54 -0000 -@@ -195,18 +195,20 @@ static void _PR_InitStuff(void) - _pr_shma_lm = PR_NewLogModule("shma"); - - /* NOTE: These init's cannot depend on _PR_MD_CURRENT_THREAD() */ - _PR_MD_EARLY_INIT(); - - _PR_InitLocks(); - _PR_InitAtomic(); - _PR_InitSegs(); -+#if !defined(_PR_BTHREADS) - _PR_InitStacks(); - _PR_InitTPD(); -+#endif /*!defined(_PR_BTHREADS) */ - _PR_InitEnv(); - _PR_InitLayerCache(); - _PR_InitClock(); - - _pr_sleeplock = PR_NewLock(); - PR_ASSERT(NULL != _pr_sleeplock); - - #ifdef GC_LEAK_DETECTOR -Index: mozilla/nsprpub/pr/src/misc/pripcsem.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/misc/pripcsem.c,v -retrieving revision 3.5 -diff -u -8 -p -r3.5 pripcsem.c ---- mozilla/nsprpub/pr/src/misc/pripcsem.c 25 Apr 2004 15:01:01 -0000 3.5 -+++ mozilla/nsprpub/pr/src/misc/pripcsem.c 9 Feb 2009 04:04:54 -0000 -@@ -41,19 +41,19 @@ - * Description: implements the named semaphores API in prsemipc.h - * for classic NSPR. If _PR_HAVE_NAMED_SEMAPHORES is not defined, - * the named semaphore functions all fail with the error code - * PR_NOT_IMPLEMENTED_ERROR. - */ - - #include "primpl.h" - --#ifdef _PR_PTHREADS -+#if defined(_PR_PTHREADS) || defined(_PR_BTHREADS) - --#error "This file should not be compiled for the pthreads version" -+#error "This file should not be compiled for the pthreads or bthreads version" - - #else - - #ifndef _PR_HAVE_NAMED_SEMAPHORES - - PRSem * _PR_MD_OPEN_SEMAPHORE( - const char *osname, PRIntn flags, PRIntn mode, PRUintn value) - { -@@ -122,9 +122,9 @@ PR_IMPLEMENT(PRStatus) PR_DeleteSemaphor - if (!_pr_initialized) _PR_ImplicitInitialization(); - if (_PR_MakeNativeIPCName(name, osname, sizeof(osname), _PRIPCSem) - == PR_FAILURE) { - return PR_FAILURE; - } - return _PR_MD_DELETE_SEMAPHORE(osname); - } - --#endif /* _PR_PTHREADS */ -+#endif /* _PR_PTHREADS || _PR_BTHREADS */ -Index: mozilla/security/coreconf/BeOS.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/coreconf/BeOS.mk,v -retrieving revision 1.2 -diff -u -8 -p -r1.2 BeOS.mk ---- mozilla/security/coreconf/BeOS.mk 25 Apr 2004 15:02:17 -0000 1.2 -+++ mozilla/security/coreconf/BeOS.mk 9 Feb 2009 04:05:05 -0000 -@@ -56,17 +56,17 @@ ifeq ($(OS_TEST),ppc) - CPU_ARCH = ppc - else - OS_REL_CFLAGS = -Di386 - CPU_ARCH = x86 - endif - - MKSHLIB = $(CC) -nostart -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so) - ifdef BUILD_OPT -- OPTIMIZER = -O2 -+ OPTIMIZER = -O3 - endif - - OS_CFLAGS = $(DSO_CFLAGS) $(OS_REL_CFLAGS) -Wall -pipe - OS_LIBS = -lbe - - DEFINES += -DBEOS - - ifdef USE_PTHREADS -Index: mozilla/security/coreconf/arch.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/coreconf/arch.mk,v -retrieving revision 1.19.2.1 -diff -u -8 -p -r1.19.2.1 arch.mk ---- mozilla/security/coreconf/arch.mk 14 Nov 2007 22:47:33 -0000 1.19.2.1 -+++ mozilla/security/coreconf/arch.mk 9 Feb 2009 04:05:06 -0000 -@@ -57,16 +57,17 @@ - ifeq ($(USE_64), 1) - 64BIT_TAG=_64 - else - 64BIT_TAG= - endif - - OS_ARCH := $(subst /,_,$(shell uname -s)) - -+ - # - # Attempt to differentiate between sparc and x86 Solaris - # - - OS_TEST := $(shell uname -m) - ifeq ($(OS_TEST),i86pc) - OS_RELEASE := $(shell uname -r)_$(OS_TEST) - else -Index: mozilla/security/coreconf/config.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/coreconf/config.mk,v -retrieving revision 1.17.28.3 -diff -u -8 -p -r1.17.28.3 config.mk ---- mozilla/security/coreconf/config.mk 4 May 2007 06:54:05 -0000 1.17.28.3 -+++ mozilla/security/coreconf/config.mk 9 Feb 2009 04:05:07 -0000 -@@ -32,16 +32,17 @@ - # and other provisions required by the GPL or the LGPL. If you do not delete - # the provisions above, a recipient may use your version of this file under - # the terms of any one of the MPL, the GPL or the LGPL. - # - # ***** END LICENSE BLOCK ***** - - # Configuration information for building in the "Core Components" source module - -+ - ####################################################################### - # [1.0] Master "Core Components" source and release # - # tags # - ####################################################################### - ifndef MK_ARCH - include $(CORE_DEPTH)/coreconf/arch.mk - endif - -@@ -57,24 +58,30 @@ endif - # [3.0] Master "Core Components" -specific macros # - # (dependent upon tags) # - # # - # We are moving towards just having a $(OS_TARGET).mk file # - # as opposed to multiple $(OS_TARGET)$(OS_RELEASE).mk files, # - # one for each OS release. # - ####################################################################### - -+ -+ - TARGET_OSES = FreeBSD BSD_OS NetBSD OpenUNIX OS2 QNX Darwin BeOS OpenBSD \ - OpenVMS AIX - - ifeq (,$(filter-out $(TARGET_OSES),$(OS_TARGET))) - include $(CORE_DEPTH)/coreconf/$(OS_TARGET).mk - else -+ifeq ($(OS_ARCH), Haiku) -+include $(CORE_DEPTH)/coreconf/BeOS.mk -+else - include $(CORE_DEPTH)/coreconf/$(OS_TARGET)$(OS_RELEASE).mk - endif -+endif - - ####################################################################### - # [4.0] Master "Core Components" source and release tags # - # (dependent upon tags) # - ####################################################################### - PLATFORM = $(OBJDIR_NAME) - - ####################################################################### -Index: mozilla/security/manager/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/security/manager/Makefile.in,v -retrieving revision 1.57.4.6 -diff -u -8 -p -r1.57.4.6 Makefile.in ---- mozilla/security/manager/Makefile.in 23 May 2008 23:45:26 -0000 1.57.4.6 -+++ mozilla/security/manager/Makefile.in 9 Feb 2009 04:05:08 -0000 -@@ -257,30 +257,45 @@ ifndef MOZ_NATIVE_NSS - $(MAKE) -C $(topsrcdir)/security/nss-fips/lib/util $(DEFAULT_GMAKE_FLAGS) clean - # In NSS 3.11.8-3.11.9, lib/ssl/derive.c includes cmd/lib/secutil.h. - $(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS) export - $(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS) DIRS="util base dev pki pki1 certdb certhigh pk11wrap cryptohi nss ssl pkcs12 pkcs7 smime crmf jar ckfw ckfw/builtins" - ifndef SKIP_CHK - $(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS) - $(MAKE) -C $(topsrcdir)/security/nss/cmd/shlibsign $(DEFAULT_GMAKE_FLAGS) - endif -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 755 $(DIST)/lib/$(LOADABLE_ROOT_MODULE) $(DIST)/bin/add-ons -+else - $(INSTALL) -m 755 $(DIST)/lib/$(LOADABLE_ROOT_MODULE) $(DIST)/bin -+endif - ifndef SKIP_CHK - $(INSTALL) -m 644 $(DIST)/lib/$(SOFTOKEN3_CHK) $(DIST)/bin - endif -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 755 $(DIST)/lib/$(SOFTOKEN3_LIB) $(DIST)/bin/lib -+ $(INSTALL) -m 755 $(DIST)/lib/$(NSS3_LIB) $(DIST)/bin/lib -+ $(INSTALL) -m 755 $(DIST)/lib/$(SSL3_LIB) $(DIST)/bin/lib -+ $(INSTALL) -m 755 $(DIST)/lib/$(SMIME3_LIB) $(DIST)/bin/lib -+else - $(INSTALL) -m 755 $(DIST)/lib/$(SOFTOKEN3_LIB) $(DIST)/bin - $(INSTALL) -m 755 $(DIST)/lib/$(NSS3_LIB) $(DIST)/bin - $(INSTALL) -m 755 $(DIST)/lib/$(SSL3_LIB) $(DIST)/bin - $(INSTALL) -m 755 $(DIST)/lib/$(SMIME3_LIB) $(DIST)/bin -+endif - ifdef HAVE_FREEBL_LIBS - ifndef SKIP_CHK - $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_CHK) $(DIST)/bin - endif -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_LIB) $(DIST)/bin/add-ons -+else - $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_LIB) $(DIST)/bin - endif -+endif - ifdef HAVE_FREEBL_LIBS_32 - ifndef SKIP_CHK - $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_32INT_CHK) $(DIST)/bin - $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_32FPU_CHK) $(DIST)/bin - endif - $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_32INT_LIB) $(DIST)/bin - $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_32FPU_LIB) $(DIST)/bin - endif -Index: mozilla/security/nss/cmd/lib/secutil.h -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/cmd/lib/secutil.h,v -retrieving revision 1.18.24.1 -diff -u -8 -p -r1.18.24.1 secutil.h ---- mozilla/security/nss/cmd/lib/secutil.h 19 Jul 2006 00:25:03 -0000 1.18.24.1 -+++ mozilla/security/nss/cmd/lib/secutil.h 9 Feb 2009 04:05:13 -0000 -@@ -407,16 +407,16 @@ SECU_GetOptionArg(secuCommand *cmd, int - /* Return informative error string */ - char *SECU_ErrorString(int16 err); - - /* Return informative error string. Does not call XP_GetString */ - char *SECU_ErrorStringRaw(int16 err); - - void printflags(char *trusts, unsigned int flags); - --#ifndef XP_UNIX -+#if !defined(XP_UNIX) && !defined(XP_BEOS) - extern int ffs(unsigned int i); - #endif - - #include "secerr.h" - #include "sslerr.h" - - #endif /* _SEC_UTIL_H_ */ -Index: mozilla/security/nss/lib/dev/ckhelper.c -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/dev/ckhelper.c,v -retrieving revision 1.34.28.1 -diff -u -8 -p -r1.34.28.1 ckhelper.c ---- mozilla/security/nss/lib/dev/ckhelper.c 16 Nov 2007 05:25:07 -0000 1.34.28.1 -+++ mozilla/security/nss/lib/dev/ckhelper.c 9 Feb 2009 04:05:17 -0000 -@@ -225,33 +225,33 @@ NSS_IMPLEMENT PRBool - nssCKObject_IsAttributeTrue ( - CK_OBJECT_HANDLE object, - CK_ATTRIBUTE_TYPE attribute, - nssSession *session, - NSSSlot *slot, - PRStatus *rvStatus - ) - { -- CK_BBOOL bool; -+ CK_BBOOL boolval; - CK_ATTRIBUTE_PTR attr; - CK_ATTRIBUTE atemplate = { 0, NULL, 0 }; - CK_RV ckrv; - void *epv = nssSlot_GetCryptokiEPV(slot); - attr = &atemplate; -- NSS_CK_SET_ATTRIBUTE_VAR(attr, attribute, bool); -+ NSS_CK_SET_ATTRIBUTE_VAR(attr, attribute, boolval); - nssSession_EnterMonitor(session); - ckrv = CKAPI(epv)->C_GetAttributeValue(session->handle, object, - &atemplate, 1); - nssSession_ExitMonitor(session); - if (ckrv != CKR_OK) { - *rvStatus = PR_FAILURE; - return PR_FALSE; - } - *rvStatus = PR_SUCCESS; -- return (PRBool)(bool == CK_TRUE); -+ return (PRBool)(boolval == CK_TRUE); - } - - NSS_IMPLEMENT PRStatus - nssCKObject_SetAttributes ( - CK_OBJECT_HANDLE object, - CK_ATTRIBUTE_PTR obj_template, - CK_ULONG count, - nssSession *session, -Index: mozilla/security/nss/lib/ssl/config.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/ssl/config.mk,v -retrieving revision 1.21.2.1 -diff -u -8 -p -r1.21.2.1 config.mk ---- mozilla/security/nss/lib/ssl/config.mk 1 May 2007 06:09:31 -0000 1.21.2.1 -+++ mozilla/security/nss/lib/ssl/config.mk 9 Feb 2009 04:05:19 -0000 -@@ -103,17 +103,17 @@ EXTRA_SHARED_LIBS += \ - -L$(DIST)/lib \ - -lnss3 \ - -L$(NSPR_LIB_DIR) \ - -lplc4 \ - -lplds4 \ - -lnspr4 \ - $(NULL) - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_SHARED_LIBS += -lbe - endif - - ifeq ($(OS_ARCH), Darwin) - EXTRA_SHARED_LIBS += -dylib_file @executable_path/libsoftokn3.dylib:$(DIST)/lib/libsoftokn3.dylib - endif - - ifeq ($(OS_TARGET),SunOS) -Index: mozilla/security/nss/lib/freebl/unix_rand.c -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/freebl/unix_rand.c,v -retrieving revision 1.17.10.5 -diff -u -r1.17.10.5 unix_rand.c ---- mozilla/security/nss/lib/freebl/unix_rand.c 12 Oct 2006 22:50:48 -0000 1.17.10.5 -+++ mozilla/security/nss/lib/freebl/unix_rand.c 27 Feb 2008 22:18:39 -0000 -@@ -666,7 +666,7 @@ - #endif /* VMS */ - - #ifdef BEOS --#include -+#include - - static size_t - GetHighResClock(void *buf, size_t maxbytes) -Index: mozilla/security/nss-fips/lib/freebl/unix_rand.c -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/freebl/unix_rand.c,v -retrieving revision 1.17.10.5 -diff -u -8 -p -r1.17.10.5 unix_rand.c ---- mozilla/security/nss-fips/lib/freebl/unix_rand.c 12 Oct 2006 22:50:48 -0000 1.17.10.5 -+++ mozilla/security/nss-fips/lib/freebl/unix_rand.c 9 Feb 2009 04:05:28 -0000 -@@ -661,17 +661,17 @@ GetHighResClock(void *buf, size_t maxbyt - - t = asm("rpcc %v0"); - return CopyLowBits(buf, maxbytes, &t, sizeof(t)); - } - - #endif /* VMS */ - - #ifdef BEOS --#include -+#include - - static size_t - GetHighResClock(void *buf, size_t maxbytes) - { - bigtime_t bigtime; /* Actually an int64 */ - - bigtime = real_time_clock_usecs(); - return CopyLowBits(buf, maxbytes, &bigtime, sizeof(bigtime)); -Index: mozilla/security/nss-fips/lib/ssl/config.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/ssl/config.mk,v -retrieving revision 1.21 -diff -u -8 -p -r1.21 config.mk ---- mozilla/security/nss-fips/lib/ssl/config.mk 19 Oct 2005 01:04:16 -0000 1.21 -+++ mozilla/security/nss-fips/lib/ssl/config.mk 9 Feb 2009 04:05:30 -0000 -@@ -99,17 +99,17 @@ EXTRA_SHARED_LIBS += \ - -L$(DIST)/lib \ - -lnss3 \ - -L$(NSPR_LIB_DIR) \ - -lplc4 \ - -lplds4 \ - -lnspr4 \ - $(NULL) - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_SHARED_LIBS += -lbe - endif - - ifeq ($(OS_ARCH), Darwin) - EXTRA_SHARED_LIBS += -dylib_file @executable_path/libsoftokn3.dylib:$(DIST)/lib/libsoftokn3.dylib - endif - - ifeq ($(OS_TARGET),SunOS) -Index: mozilla/toolkit/library/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/toolkit/library/Makefile.in,v -retrieving revision 1.16.2.10 -diff -u -8 -p -r1.16.2.10 Makefile.in ---- mozilla/toolkit/library/Makefile.in 31 Aug 2007 02:40:21 -0000 1.16.2.10 -+++ mozilla/toolkit/library/Makefile.in 9 Feb 2009 04:05:45 -0000 -@@ -359,17 +359,17 @@ endif - ifdef MOZ_ENABLE_XPRINT - EXTRA_DSO_LDOPTS += $(MOZ_XPRINT_LDFLAGS) - endif - - ifdef MOZ_ENABLE_PANGO - EXTRA_DSO_LDOPTS += $(MOZ_PANGO_LIBS) - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_DSO_LDOPTS += -lbe - endif - - ifeq ($(OS_ARCH),WINNT) - EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME,shell32 ole32 uuid version winspool comdlg32) - ifneq (,$(MOZ_DEBUG)$(NS_TRACE_MALLOC)) - EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME,imagehlp) - endif -Index: mozilla/toolkit/mozapps/installer/package-name.mk -=================================================================== -RCS file: /cvsroot/mozilla/toolkit/mozapps/installer/package-name.mk,v -retrieving revision 1.4.8.3 -diff -u -8 -p -r1.4.8.3 package-name.mk ---- mozilla/toolkit/mozapps/installer/package-name.mk 4 Apr 2008 09:21:26 -0000 1.4.8.3 -+++ mozilla/toolkit/mozapps/installer/package-name.mk 9 Feb 2009 04:05:47 -0000 -@@ -54,16 +54,19 @@ ifeq ($(OS_ARCH),Darwin) - MOZ_PKG_PLATFORM := mac - endif - ifeq ($(TARGET_OS),linux-gnu) - MOZ_PKG_PLATFORM := linux-$(TARGET_CPU) - endif - ifeq ($(OS_ARCH),OS2) - MOZ_PKG_PLATFORM := os2 - endif -+ifeq ($(OS_ARCH), Haiku) -+MOZ_PKG_PLATFORM := Haiku -+endif - ifeq ($(OS_ARCH), BeOS) - ifeq (,$(filter-out 6.%, $(OS_RELEASE))) - MOZ_PKG_PLATFORM := Zeta - else - ifeq (,$(filter-out 5.1, $(OS_RELEASE))) - MOZ_PKG_PLATFORM := BeOS-bone - else - ifeq (,$(filter-out 5.0.4, $(OS_RELEASE))) -Index: mozilla/toolkit/mozapps/installer/packager.mk -=================================================================== -RCS file: /cvsroot/mozilla/toolkit/mozapps/installer/packager.mk,v -retrieving revision 1.16.2.18 -diff -u -8 -p -r1.16.2.18 packager.mk ---- mozilla/toolkit/mozapps/installer/packager.mk 4 Apr 2008 20:31:10 -0000 1.16.2.18 -+++ mozilla/toolkit/mozapps/installer/packager.mk 9 Feb 2009 04:05:49 -0000 -@@ -43,21 +43,24 @@ include $(topsrcdir)/toolkit/mozapps/ins - # This is how we create the Unix binary packages we release to the public. - # Currently the only format is tar.gz (TGZ), but it should be fairly easy - # to add .rpm (RPM) and .deb (DEB) later. - - ifndef MOZ_PKG_FORMAT - ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) - MOZ_PKG_FORMAT = DMG - else --ifeq (,$(filter-out OS2 WINNT BeOS, $(OS_ARCH))) -+ifeq (,$(filter-out OS2 WINNT BeOS Haiku, $(OS_ARCH))) - MOZ_PKG_FORMAT = ZIP - ifeq ($(OS_ARCH),OS2) - INSTALLER_DIR = os2 - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+INSTALLER_DIR = beos -+endif - ifeq ($(OS_ARCH), WINNT) - INSTALLER_DIR = windows - endif - endif - else - ifeq (,$(filter-out SunOS, $(OS_ARCH))) - MOZ_PKG_FORMAT = BZ2 - else -@@ -246,19 +249,19 @@ $(MOZ_PKG_REMOVALS_GEN): $(MOZ_PKG_REMOV - $(PERL) $(topsrcdir)/config/preprocessor.pl -Fsubstitution $(DEFINES) $(ACDEFINES) $(MOZ_PKG_REMOVALS) > $(MOZ_PKG_REMOVALS_GEN) - endif - - GARBAGE += $(DIST)/$(PACKAGE) $(PACKAGE) - - ifeq ($(OS_ARCH),IRIX) - STRIP_FLAGS = -f - endif --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - STRIP_FLAGS = -g --PLATFORM_EXCLUDE_LIST = ! -name "*.stub" ! -name "$(MOZ_PKG_APPNAME)-bin" -+PLATFORM_EXCLUDE_LIST = ! -name "*.stub" ! -name "$(MOZ_PKG_APPNAME)" - endif - ifeq ($(OS_ARCH),OS2) - STRIP = $(srcdir)/os2/strip.cmd - STRIP_FLAGS = - PLATFORM_EXCLUDE_LIST = ! -name "*.ico" - endif - - ifneq (,$(filter WINNT OS2,$(OS_ARCH))) -Index: mozilla/toolkit/xre/nsXREDirProvider.cpp -=================================================================== -RCS file: /cvsroot/mozilla/toolkit/xre/nsXREDirProvider.cpp,v -retrieving revision 1.37.2.11 -diff -u -8 -p -r1.37.2.11 nsXREDirProvider.cpp ---- mozilla/toolkit/xre/nsXREDirProvider.cpp 8 May 2007 19:25:29 -0000 1.37.2.11 -+++ mozilla/toolkit/xre/nsXREDirProvider.cpp 9 Feb 2009 04:05:57 -0000 -@@ -71,17 +71,17 @@ - #ifndef CSIDL_PROGRAM_FILES - #define CSIDL_PROGRAM_FILES 0x0026 - #endif - #endif - #ifdef XP_MACOSX - #include "nsILocalFileMac.h" - #endif - #ifdef XP_BEOS --#include -+#include - #include - #endif - #ifdef XP_UNIX - #include - #endif - #ifdef XP_OS2 - #define INCL_DOS - #include -Index: mozilla/widget/src/beos/nsDragService.cpp -=================================================================== -RCS file: /cvsroot/mozilla/widget/src/beos/nsDragService.cpp,v -retrieving revision 1.13.28.5 -diff -u -8 -p -r1.13.28.5 nsDragService.cpp ---- mozilla/widget/src/beos/nsDragService.cpp 13 Aug 2008 12:41:28 -0000 1.13.28.5 -+++ mozilla/widget/src/beos/nsDragService.cpp 9 Feb 2009 04:06:02 -0000 -@@ -250,17 +250,17 @@ nsDragService::InvokeDragSession (nsIDOM - dragRect = view->Frame(); - // do we need to offset? - } - - PR_LOG(sDragLm, PR_LOG_DEBUG, ("invoking mDragView->DragMessage")); - bool noBitmap = true; - - //This is the code for image-dragging, currently disabled. See comments in beginning of file. --# ifdef 0 -+#if 0 - do - { - PRUint32 dataSize; - PRUint32 noItems; - mSourceDataItems->Count(&noItems); - if (noItems!=1) - { - PR_LOG(sDragLm, PR_LOG_DEBUG, ("Transferables are not ==1, no drag bitmap!")); -@@ -307,17 +307,17 @@ nsDragService::InvokeDragSession (nsIDOM - if (aBitmap==NULL || !aBitmap->IsValid()) { - PR_LOG(sDragLm, PR_LOG_DEBUG, ("Could not get BBitmap, no drag bitmap %s!", aBitmap==NULL?"(null)":"(not valid)" )); - break; - } - - view->DragMessage(mDragMessage, aBitmap, B_OP_OVER, BPoint(-4,-4), view); - noBitmap = false; - } while(false); --# endif -+#endif - - if (noBitmap) - view->DragMessage(mDragMessage, dragRect, view); - - StartDragSession(); - view->UnlockLooper(); - return NS_OK; - } -Index: mozilla/xpcom/build/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xpcom/build/Makefile.in,v -retrieving revision 1.90.2.3 -diff -u -8 -p -r1.90.2.3 Makefile.in ---- mozilla/xpcom/build/Makefile.in 29 Mar 2008 06:56:29 -0000 1.90.2.3 -+++ mozilla/xpcom/build/Makefile.in 9 Feb 2009 04:06:06 -0000 -@@ -168,17 +168,17 @@ ifdef GC_LEAK_DETECTOR - DEFINES += -DGC_LEAK_DETECTOR - endif - - ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) - CXXFLAGS += $(TK_CFLAGS) - EXTRA_DSO_LDOPTS += $(TK_LIBS) - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_DSO_LDOPTS += -lbe - endif - - ifneq (,$(filter gtk2,$(MOZ_WIDGET_TOOLKIT))) - EXTRA_DSO_LDOPTS += $(MOZ_GTK2_LIBS) - endif - - ifeq ($(OS_ARCH),WINNT) -Index: mozilla/xpcom/obsolete/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xpcom/obsolete/Makefile.in,v -retrieving revision 1.17 -diff -u -8 -p -r1.17 Makefile.in ---- mozilla/xpcom/obsolete/Makefile.in 30 Jan 2005 21:33:45 -0000 1.17 -+++ mozilla/xpcom/obsolete/Makefile.in 9 Feb 2009 04:06:09 -0000 -@@ -115,17 +115,17 @@ DEFINES += -D_IMPL_NS_COM_OBSOLETE - - EXTRA_DSO_LDOPTS += $(MOZ_COMPONENT_LIBS) - - ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) - CXXFLAGS += $(TK_CFLAGS) - EXTRA_DSO_LDOPTS += $(TK_LIBS) - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_DSO_LDOPTS += -lbe - endif - - ifeq ($(OS_ARCH),WINNT) - EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME, shell32 ole32) - ifneq (,$(MOZ_DEBUG)$(NS_TRACE_MALLOC)) - EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME, imagehlp) - endif -Index: mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in,v -retrieving revision 1.80.4.6 -diff -u -8 -p -r1.80.4.6 Makefile.in ---- mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 19 Feb 2008 21:11:34 -0000 1.80.4.6 -+++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 9 Feb 2009 04:06:11 -0000 -@@ -90,21 +90,23 @@ endif - # IA64 Linux - ifneq (,$(filter Linux,$(OS_ARCH))) - ifneq (,$(findstring ia64,$(OS_TEST))) - CPPSRCS := xptcinvoke_ipf64.cpp xptcstubs_ipf64.cpp - ASFILES := xptcstubs_asm_ipf64.s xptcinvoke_asm_ipf64.s - endif - endif - # --# BeOS/Intel (uses the same unixish_x86 code) -+# BeOS/Intel (uses the same as Linux, works well. Migrate others!) - # --ifeq ($(OS_ARCH)$(OS_TEST),BeOSBePC) -+#ifeq ($(OS_ARCH)$(OS_TEST),BeOSBePC) -+ifeq (,$(filter-out BeOSBePC HaikuBePC, $(OS_ARCH)$(OS_TEST))) - CPPSRCS := xptcinvoke_gcc_x86_unix.cpp xptcstubs_gcc_x86_unix.cpp - endif -+ - # - # Neutrino/Intel (uses the same unixish_x86 code) - # - ifeq ($(OS_TARGET),NTO) - ifeq ($(OS_TEST),x86) - CPPSRCS := xptcinvoke_unixish_x86.cpp xptcstubs_unixish_x86.cpp - endif - ifeq ($(OS_TEST),arm) -Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h -=================================================================== -RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h,v -retrieving revision 1.18.28.3 -diff -u -8 -p -r1.18.28.3 xptc_platforms_unixish_x86.h ---- mozilla/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h 9 Apr 2007 20:01:13 -0000 1.18.28.3 -+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h 9 Feb 2009 04:06:12 -0000 -@@ -133,17 +133,22 @@ - /* Old gcc 2.7.x.x. What does gcc 2.8.x do?? */ - #define CFRONT_STYLE_THIS_ADJUST - #else - /* egcs and later */ - #define THUNK_BASED_THIS_ADJUST - #endif - - #elif defined(__BEOS__) -+#if (__GNUC__ == 2) - #define CFRONT_STYLE_THIS_ADJUST -+#else -+#define THUNK_BASED_THIS_ADJUST -+#endif -+ - - #elif defined(__sun__) || defined(__sun) - #if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */ - #define THUNK_BASED_THIS_ADJUST - #else - #define CFRONT_STYLE_THIS_ADJUST - #endif - -Index: mozilla/xpfe/bootstrap/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xpfe/bootstrap/Attic/Makefile.in,v -retrieving revision 1.283.2.6 -diff -u -8 -p -r1.283.2.6 Makefile.in ---- mozilla/xpfe/bootstrap/Makefile.in 29 Sep 2007 20:15:11 -0000 1.283.2.6 -+++ mozilla/xpfe/bootstrap/Makefile.in 9 Feb 2009 04:06:16 -0000 -@@ -113,18 +113,22 @@ ifdef MOZ_ENABLE_XREMOTE - REQUIRES += xremoteservice - endif - - include $(topsrcdir)/config/config.mk - - ifeq ($(USE_SHORT_LIBNAME),1) - PROGRAM = $(MOZ_APP_NAME)$(BIN_SUFFIX) - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+PROGRAM = $(MOZ_APP_NAME)$(BIN_SUFFIX) -+else - PROGRAM = $(MOZ_APP_NAME)-bin$(BIN_SUFFIX) - endif -+endif - - # Force applications to be built non-statically - # when building the mozcomps meta component - ifneq (,$(filter mozcomps,$(MOZ_META_COMPONENTS))) - BUILD_STATIC_LIBS= - BUILD_SHARED_LIBS=1 - ifdef MOZ_COMPONENTLIB - DEFINES += -D_MOZCOMPS_SHARED_LIBRARY -D_BUILD_STATIC_BIN -@@ -406,17 +410,17 @@ ifndef GNU_CC - LDFLAGS += /HEAP:0x40000 - endif - endif - - CXXFLAGS += $(MOZ_TOOLKIT_REGISTRY_CFLAGS) - - LOCAL_INCLUDES += -I$(srcdir) -I. - --ifneq (,$(filter-out OS2 WINNT,$(OS_ARCH))) -+ifneq (,$(filter-out OS2 WINNT BeOS Haiku,$(OS_ARCH))) - $(MOZ_APP_NAME).1: mozilla.man.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk - @sed -e "s|\@bindir\@|$(bindir)|g" -e "s|\@mozappdir\@|$(mozappdir)|g" \ - -e "s|\@MOZ_APP_DISPLAYNAME\@|$(MOZ_APP_DISPLAYNAME)|g" \ - -e "s|\@MOZ_APP_NAME\@|$(MOZ_APP_NAME)|g" \ - -e "s|\@MOZ_APP_VERSION\@|${MOZ_APP_VERSION}|g" < $< > $@ - - libs:: $(MOZ_APP_NAME).1 - $(INSTALL) $< $(DIST)/man/man1 -Index: mozilla/xpfe/bootstrap/nsSigHandlers.cpp -=================================================================== -RCS file: /cvsroot/mozilla/xpfe/bootstrap/nsSigHandlers.cpp,v -retrieving revision 1.41.18.1 -diff -u -8 -p -r1.41.18.1 nsSigHandlers.cpp ---- mozilla/xpfe/bootstrap/nsSigHandlers.cpp 22 Jun 2006 22:31:13 -0000 1.41.18.1 -+++ mozilla/xpfe/bootstrap/nsSigHandlers.cpp 9 Feb 2009 04:06:17 -0000 -@@ -55,17 +55,18 @@ - #include // atoi - #endif - - #if defined(SOLARIS) - #include - #endif - - #ifdef XP_BEOS --#include -+#include -+#include - #include - #include "nsCOMPtr.h" - #include "nsIServiceManager.h" - #include "nsIAppStartup.h" - #include "nsXPFEComponentsCID.h" - #endif - - #ifdef MOZ_WIDGET_PHOTON -Index: mozilla/xpinstall/packager/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xpinstall/packager/Attic/Makefile.in,v -retrieving revision 1.68.4.1 -diff -u -8 -p -r1.68.4.1 Makefile.in ---- mozilla/xpinstall/packager/Makefile.in 20 Feb 2006 17:42:11 -0000 1.68.4.1 -+++ mozilla/xpinstall/packager/Makefile.in 9 Feb 2009 04:06:26 -0000 -@@ -43,17 +43,17 @@ srcdir = @srcdir@ - VPATH = @srcdir@ - - include $(DEPTH)/config/autoconf.mk - - OSPACKAGE = unix - ifeq ($(OS_ARCH),IRIX) - STRIP_FLAGS = -f - endif --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - STRIP_FLAGS = -g - PLATFORM_EXCLUDE_LIST = ! -name "*.stub" ! -name "$(MOZ_PKG_APPNAME)-bin" - endif - ifeq ($(OS_ARCH),OS2) - STRIP = $(srcdir)/os2/strip.cmd - STRIP_FLAGS = - OSPACKAGE = os2 - PLATFORM_EXCLUDE_LIST = ! -name "*.ico" -Index: mozilla/xulrunner/app/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xulrunner/app/Makefile.in,v -retrieving revision 1.23.2.4 -diff -u -8 -p -r1.23.2.4 Makefile.in ---- mozilla/xulrunner/app/Makefile.in 9 Apr 2008 06:50:54 -0000 1.23.2.4 -+++ mozilla/xulrunner/app/Makefile.in 9 Feb 2009 04:06:32 -0000 -@@ -54,17 +54,17 @@ DIRS = profile - PREF_JS_EXPORTS = $(srcdir)/xulrunner.js - GARBAGE += $(addprefix $(DIST)/bin/defaults/pref/,xulrunner.js) - - DEFINES += -DAB_CD=$(AB_CD) - - ifeq ($(USE_SHORT_LIBNAME), 1) - PROGRAM = xulrunner$(BIN_SUFFIX) - else --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - PROGRAM = xulrunner$(BIN_SUFFIX) - else - PROGRAM = xulrunner-bin$(BIN_SUFFIX) - endif - endif - - DEFINES += -DXULRUNNER_PROGNAME=\"xulrunner\" - -@@ -80,17 +80,17 @@ REQUIRES = \ - xulrunner \ - $(NULL) - - CPPSRCS = nsXULRunnerApp.cpp - - ifeq ($(OS_ARCH),WINNT) - CPPSRCS += nsRegisterGREWin.cpp - else --ifneq (,$(filter OS2 Darwin,$(OS_ARCH))) -+ifneq (,$(filter OS2 Darwin BeOS Haiku,$(OS_ARCH))) - CPPSRCS += nsRegisterGREVoid.cpp - else - CPPSRCS += nsRegisterGREUnix.cpp - endif - endif - - LOCAL_INCLUDES += \ - -I$(topsrcdir)/toolkit/xre \ -@@ -169,17 +169,17 @@ endif - ifdef BUILD_STATIC_LIBS - RCFLAGS += -DMOZ_STATIC_BUILD - endif - ifdef DEBUG - RCFLAGS += -DDEBUG - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - OS_LIBS += -ltracker - endif - - ifeq ($(OS_ARCH),OS2) - RESFILE=splashos2.res - RCFLAGS += -DMOZ_XULRUNNER - ifdef BUILD_STATIC_LIBS - EXE_DEF_FILE = xulrunner.def -@@ -237,17 +237,17 @@ $(EXE_DEF_FILE): - @echo WinQueryProperty = PMMERGE.5450 >>$(EXE_DEF_FILE) - @echo WinRemoveProperty = PMMERGE.5451 >>$(EXE_DEF_FILE) - @echo WinSetProperty = PMMERGE.5452 >>$(EXE_DEF_FILE) - - LDFLAGS += -Zlinker /NOE - endif - endif - --ifneq (,$(filter-out OS2 WINNT Darwin BeOS,$(OS_ARCH))) -+ifneq (,$(filter-out OS2 WINNT Darwin BeOS Haiku,$(OS_ARCH))) - - xulrunner:: mozilla.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk - cat $< | sed -e "s|%MOZAPPDIR%|$(mozappdir)|" \ - -e "s|%MOZ_USER_DIR%|.mozilla/xulrunner|" \ - -e "s|%MREDIR%|$(mredir)|" > $@ - chmod +x $@ - - libs:: xulrunner diff --git a/www-client/mozilla_firefox/old-patches/firstrun-default-page.diff b/www-client/mozilla_firefox/old-patches/firstrun-default-page.diff deleted file mode 100644 index 46db657ab..000000000 --- a/www-client/mozilla_firefox/old-patches/firstrun-default-page.diff +++ /dev/null @@ -1,36 +0,0 @@ -Index: mozilla/browser/app/firefox-branding.js -=================================================================== -RCS file: /cvsroot/mozilla/browser/app/firefox-branding.js,v -retrieving revision 1.1.2.2 -diff -u -8 -p -w -r1.1.2.2 firefox-branding.js ---- mozilla/browser/app/firefox-branding.js 12 Sep 2006 15:50:19 -0000 1.1.2.2 -+++ mozilla/browser/app/firefox-branding.js 7 Jul 2009 12:20:54 -0000 -@@ -1,16 +1,15 @@ - pref("startup.homepage_override_url","http://www.mozilla.org/projects/%APP%/%VERSION%/whatsnew/"); --pref("startup.homepage_welcome_url","http://www.mozilla.org/projects/%APP%/%VERSION%/firstrun/"); - // URL user can browse to manually if for some reason all update installation - // attempts fail. - pref("app.update.url.manual", "http://www.mozilla.org/products/%APP%/"); - // A default value for the "More information about this update" link - // supplied in the "An update is available" page of the update wizard. - pref("app.update.url.details", "http://www.mozilla.org/projects/%APP%/"); - - // Release notes URL --pref("app.releaseNotesURL", "http://www.mozilla.org/projects/%APP%/%VERSION%/releasenotes/"); -+pref("app.releaseNotesURL", "about:buildconfig"); - - // Search codes belong only in builds with official branding - pref("browser.search.param.yahoo-fr", ""); - pref("browser.search.param.yahoo-fr-cjkt", ""); - pref("browser.search.param.yahoo-f-CN", ""); -Index: mozilla/browser/base/content/browserconfig.properties -=================================================================== -RCS file: /cvsroot/mozilla/browser/base/content/browserconfig.properties,v -retrieving revision 1.4.4.1 -diff -u -8 -p -w -r1.4.4.1 browserconfig.properties ---- mozilla/browser/base/content/browserconfig.properties 17 Mar 2006 04:17:56 -0000 1.4.4.1 -+++ mozilla/browser/base/content/browserconfig.properties 7 Jul 2009 12:31:48 -0000 -@@ -1,2 +1,2 @@ - # Do NOT localize or otherwise change these values --browser.startup.homepage=http://www.mozilla.org/projects/bonecho/ -+browser.startup.homepage=http://svn.berlios.de/svnroot/repos/haiku/haiku/trunk/docs/welcome/welcome.html diff --git a/www-client/mozilla_firefox/old-patches/forReorderPatches-browser.zip b/www-client/mozilla_firefox/old-patches/forReorderPatches-browser.zip deleted file mode 100644 index bdaef70cc..000000000 Binary files a/www-client/mozilla_firefox/old-patches/forReorderPatches-browser.zip and /dev/null differ diff --git a/www-client/mozilla_firefox/old-patches/greyMenuSelection.patch b/www-client/mozilla_firefox/old-patches/greyMenuSelection.patch deleted file mode 100644 index b86bea0a6..000000000 --- a/www-client/mozilla_firefox/old-patches/greyMenuSelection.patch +++ /dev/null @@ -1,28 +0,0 @@ -Index: mozilla/widget/src/beos/nsLookAndFeel.cpp -=================================================================== -RCS file: /cvsroot/mozilla/widget/src/beos/nsLookAndFeel.cpp,v -retrieving revision 1.27 -diff -u -8 -p -r1.27 nsLookAndFeel.cpp ---- mozilla/widget/src/beos/nsLookAndFeel.cpp 26 Oct 2004 01:45:26 -0000 1.27 -+++ mozilla/widget/src/beos/nsLookAndFeel.cpp 19 Feb 2009 04:37:06 -0000 -@@ -157,19 +157,17 @@ nsresult nsLookAndFeel::NativeGetColor(c - aColor = NS_RGB(0x00, 0x00, 0x00); - break; - case eColor_graytext: - aColor = NS_RGB(0x77, 0x77, 0x77); - break; - case eColor_highlight: - case eColor__moz_menuhover: - { -- // B_MENU_SELECTION_BACKGROUND_COLOR is used for text selection -- // this blue colors seems more suitable -- color = ui_color(B_KEYBOARD_NAVIGATION_COLOR); -+ color = ui_color(B_MENU_SELECTION_BACKGROUND_COLOR ); - aColor = NS_RGB(color.red, color.green, color.blue); - } - break; - case eColor_highlighttext: - case eColor__moz_menuhovertext: - { - color = ui_color(B_MENU_SELECTED_ITEM_TEXT_COLOR); - aColor = NS_RGB(color.red, color.green, color.blue); diff --git a/www-client/mozilla_firefox/old-patches/launch-kill-dowhile.patch b/www-client/mozilla_firefox/old-patches/launch-kill-dowhile.patch deleted file mode 100644 index e42a6c15e..000000000 --- a/www-client/mozilla_firefox/old-patches/launch-kill-dowhile.patch +++ /dev/null @@ -1,406 +0,0 @@ -Index: mozilla/widget/src/beos/nsAppShell.cpp -=================================================================== -RCS file: /cvsroot/mozilla/widget/src/beos/nsAppShell.cpp,v -retrieving revision 1.29.8.2 -diff -u -8 -p -r1.29.8.2 nsAppShell.cpp ---- mozilla/widget/src/beos/nsAppShell.cpp 3 Jul 2007 09:33:54 -0000 1.29.8.2 -+++ mozilla/widget/src/beos/nsAppShell.cpp 19 Feb 2009 06:12:35 -0000 -@@ -113,20 +113,38 @@ nsAppShell::nsAppShell() - //------------------------------------------------------------------------- - - NS_IMETHODIMP nsAppShell::Create(int* argc, char ** argv) - { - // system wide unique names - // NOTE: this needs to be run from within the main application thread - char portname[64]; - char semname[64]; -- PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) PR_GetCurrentThread()); -- PR_snprintf(semname, sizeof(semname), "sync%lx", -- (long unsigned) PR_GetCurrentThread()); -+ int32 cookie = 0; -+ image_info iinfo; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(leaf)); -+ PR_snprintf(semname, sizeof(semname), "sync%lx", -+ (long unsigned) find_thread(leaf)); -+ } -+ else -+ { -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(0)); -+ PR_snprintf(semname, sizeof(semname), "sync%lx", -+ (long unsigned) find_thread(0)); -+ } -+ } while(iinfo.type != B_APP_IMAGE); - - #ifdef DEBUG - printf("nsAppShell::Create portname: %s, semname: %s\n", portname, semname); - #endif - /* - * Set up the port for communicating. As restarts thru execv may occur - * and ports survive those (with faulty events as result). Combined with the fact - * that plevent.c can setup the port ahead of us we need to take extra -@@ -337,19 +355,33 @@ NS_IMETHODIMP nsAppShell::GetNativeEvent - - return NS_OK; - } - - NS_IMETHODIMP nsAppShell::DispatchNativeEvent(PRBool aRealEvent, void *aEvent) - { - // should we check for eventport initialization ? - char portname[64]; -- PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) PR_GetCurrentThread()); -- -+ int32 cookie = 0; -+ image_info iinfo; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(leaf)); -+ } -+ else -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(0)/*PR_GetCurrentThread()*/); -+ } while(iinfo.type != B_APP_IMAGE); -+ - if((eventport = find_port(portname)) < 0) - { - // not initialized - #ifdef DEBUG - printf("nsAppShell::DispatchNativeEvent() was called before init\n"); - #endif - fflush(stdout); - return NS_ERROR_FAILURE; -Index: mozilla/widget/src/beos/nsToolkit.cpp -=================================================================== -RCS file: /cvsroot/mozilla/widget/src/beos/nsToolkit.cpp,v -retrieving revision 1.23.8.1 -diff -u -8 -p -r1.23.8.1 nsToolkit.cpp ---- mozilla/widget/src/beos/nsToolkit.cpp 3 Jul 2007 09:33:54 -0000 1.23.8.1 -+++ mozilla/widget/src/beos/nsToolkit.cpp 19 Feb 2009 06:12:35 -0000 -@@ -37,16 +37,17 @@ - - #include "nsToolkit.h" - #include "prmon.h" - #include "prtime.h" - #include "nsGUIEvent.h" - #include "nsSwitchToUIThread.h" - #include "plevent.h" - #include "prprf.h" -+#include - - // - // Static thread local storage index of the Toolkit - // object associated with a given thread... - // - static PRUintn gToolkitTLSIndex = 0; - - //------------------------------------------------------------------------- -@@ -84,20 +85,36 @@ void nsToolkit::RunPump(void* arg) - gThreadState = PR_TRUE; - - PR_Notify(info->monitor); - PR_ExitMonitor(info->monitor); - - delete info; - - // system wide unique names -- PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) PR_GetCurrentThread()); -- -- port_id event = create_port(100, portname); -+ int32 cookie = 0; -+ image_info iinfo; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(leaf)); -+ } -+ else -+ { -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(0)); -+ } -+ } while(iinfo.type != B_APP_IMAGE); -+ -+ port_id event = create_port(200, portname); - - while(read_port(event, &code, &id, sizeof(id)) >= 0) - { - switch(code) - { - case WM_CALLMETHOD : - { - MethodInfo *mInfo = (MethodInfo *)id.data; -@@ -125,16 +142,17 @@ void nsToolkit::RunPump(void* arg) - // - // constructor - // - //------------------------------------------------------------------------- - nsToolkit::nsToolkit() - { - localthread = false; - mGuiThread = NULL; -+ mGUIThreadID = 0; - } - - - //------------------------------------------------------------------------- - // - // destructor - // - //------------------------------------------------------------------------- -@@ -182,17 +200,33 @@ void nsToolkit::CreateUIThread() - 0); - - // wait for the gui thread to start - while(gThreadState == PR_FALSE) - { - PR_Wait(monitor, PR_INTERVAL_NO_TIMEOUT); - } - } -- -+ -+ image_info iinfo; -+ int32 cookie = 0; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ mGUIThreadID = find_thread(leaf); -+ } -+ else -+ { -+ mGUIThreadID = find_thread(0); -+ } -+ } while(iinfo.type != B_APP_IMAGE); - // at this point the thread is running - PR_ExitMonitor(monitor); - PR_DestroyMonitor(monitor); - } - - - //------------------------------------------------------------------------- - // -@@ -213,28 +247,42 @@ NS_METHOD nsToolkit::Init(PRThread *aThr - { - localthread = true; - - // create a thread where the message pump will run - CreateUIThread(); - } - - cached = false; -- -+ image_info iinfo; -+ int32 cookie = 0; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ mGUIThreadID = find_thread(leaf); -+ } -+ else -+ { -+ mGUIThreadID = find_thread(0); -+ } -+ } while(iinfo.type != B_APP_IMAGE); - return NS_OK; - } - - void nsToolkit::GetInterface() - { - if(! cached) - { - char portname[64]; -- - PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) mGuiThread); -+ (long unsigned) mGUIThreadID); - - eventport = find_port(portname); - - cached = true; - } - } - - void nsToolkit::CallMethod(MethodInfo *info) -Index: mozilla/widget/src/beos/nsToolkit.h -=================================================================== -RCS file: /cvsroot/mozilla/widget/src/beos/nsToolkit.h,v -retrieving revision 1.5.8.1 -diff -u -8 -p -r1.5.8.1 nsToolkit.h ---- mozilla/widget/src/beos/nsToolkit.h 3 Jul 2007 09:33:54 -0000 1.5.8.1 -+++ mozilla/widget/src/beos/nsToolkit.h 19 Feb 2009 06:12:36 -0000 -@@ -66,16 +66,17 @@ public: - void Kill(); - private: - virtual ~nsToolkit(); - void CreateUIThread(void); - - protected: - // Thread Id of the "main" Gui thread. - PRThread *mGuiThread; -+ thread_id mGUIThreadID; - static void RunPump(void* arg); - void GetInterface(); - bool cached; - bool localthread; - port_id eventport; - }; - - #endif // TOOLKIT_H -Index: mozilla/xpcom/threads/plevent.c -=================================================================== -RCS file: /cvsroot/mozilla/xpcom/threads/Attic/plevent.c,v -retrieving revision 1.54.2.1 -diff -u -8 -p -r1.54.2.1 plevent.c ---- mozilla/xpcom/threads/plevent.c 26 Sep 2005 19:43:34 -0000 1.54.2.1 -+++ mozilla/xpcom/threads/plevent.c 19 Feb 2009 06:12:40 -0000 -@@ -61,16 +61,18 @@ - #if defined(XP_UNIX) - /* for fcntl */ - #include - #include - #endif - - #if defined(XP_BEOS) - #include -+#include -+#include - #endif - - #if defined(XP_MACOSX) - #if defined(MOZ_WIDGET_COCOA) - #include - #define MAC_USE_CFRUNLOOPSOURCE - #elif defined(TARGET_CARBON) - /* #include */ -@@ -903,21 +905,50 @@ failed: - * Otherwise we need to create the sem and the port, deleting any open ports before. - */ - - sem_info info; - int32 cookie = 0; - - char portname[64]; - char semname[64]; -- PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) self->handlerThread); -- PR_snprintf(semname, sizeof(semname), "sync%lx", -- (long unsigned) self->handlerThread); - -+struct _MDThread -+{ -+ thread_id tid; -+ sem_id joinSem; -+ PRBool is_joining; -+}; -+ struct _MDThread md; -+ -+ -+//#include "private/primpl.h" -+ image_info iinfo; -+ int32 icookie = 0; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &icookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(leaf)); -+ PR_snprintf(semname, sizeof(semname), "sync%lx", -+ (long unsigned) find_thread(leaf)); -+ } -+ else -+ { -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(0)); -+ PR_snprintf(semname, sizeof(semname), "sync%lx", -+ (long unsigned) find_thread(0)); -+ } -+ } while(iinfo.type != B_APP_IMAGE); -+ - self->eventport = find_port(portname); - while(get_next_sem_info(0, &cookie, &info) == B_OK) - { - if(strcmp(semname, info.name) != 0) { - continue; - } - - /* found semaphore */ -@@ -926,17 +957,17 @@ failed: - } - return PR_SUCCESS; - } - /* setup the port and semaphore */ - if(self->eventport >= 0) - { - delete_port( self->eventport ); - } -- self->eventport = create_port(200, portname); -+ self->eventport = create_port(512, portname); - /* We don't use the sem, but it has to be there - */ - create_sem(0, semname); - return PR_SUCCESS; - #else - return PR_SUCCESS; - #endif - } -@@ -1259,26 +1290,28 @@ _pl_NativeNotify(PLEventQueue* self) - - #if defined(XP_BEOS) - struct ThreadInterfaceData - { - void *data; - thread_id waitingThread; - }; - -+ - static PRStatus - _pl_NativeNotify(PLEventQueue* self) - { - struct ThreadInterfaceData id; - id.data = self; - id.waitingThread = 0; - write_port(self->eventport, 'natv', &id, sizeof(id)); - - return PR_SUCCESS; /* Is this correct? */ - } -+ - #endif /* XP_BEOS */ - - #if defined(XP_MACOSX) - static PRStatus - _pl_NativeNotify(PLEventQueue* self) - { - #if defined(MAC_USE_CFRUNLOOPSOURCE) - CFRunLoopSourceSignal(self->mRunLoopSource); diff --git a/www-client/mozilla_firefox/old-patches/mozilla-rdefs.zip b/www-client/mozilla_firefox/old-patches/mozilla-rdefs.zip deleted file mode 100644 index 456c1a758..000000000 Binary files a/www-client/mozilla_firefox/old-patches/mozilla-rdefs.zip and /dev/null differ diff --git a/www-client/mozilla_firefox/old-patches/nsAppRunner.patch b/www-client/mozilla_firefox/old-patches/nsAppRunner.patch deleted file mode 100644 index 7e100a850..000000000 --- a/www-client/mozilla_firefox/old-patches/nsAppRunner.patch +++ /dev/null @@ -1,25 +0,0 @@ -Index: mozilla/toolkit/xre/nsAppRunner.cpp -=================================================================== -RCS file: /cvsroot/mozilla/toolkit/xre/nsAppRunner.cpp,v -retrieving revision 1.113.2.24 -diff -u -4 -r1.113.2.24 nsAppRunner.cpp ---- mozilla/toolkit/xre/nsAppRunner.cpp 8 Nov 2007 11:56:25 -0000 1.113.2.24 -+++ mozilla/toolkit/xre/nsAppRunner.cpp 16 Feb 2009 19:19:26 -0000 -@@ -1360,12 +1360,13 @@ - - #elif defined(XP_BEOS) - int32 cookie = 0; - image_info info; -- -- if(get_next_image_info(0, &cookie, &info) != B_OK) -- return NS_ERROR_FAILURE; -- -+ do { -+ if(get_next_image_info(0, &cookie, &info) != B_OK) -+ return NS_ERROR_FAILURE; -+ } while(info.type != B_APP_IMAGE); -+ - rv = NS_NewNativeLocalFile(nsDependentCString(info.name), PR_TRUE, - getter_AddRefs(lf)); - if (NS_FAILED(rv)) - return rv; diff --git a/www-client/mozilla_firefox/old-patches/prpolevt-fix.patch b/www-client/mozilla_firefox/old-patches/prpolevt-fix.patch deleted file mode 100644 index 6c67e6503..000000000 --- a/www-client/mozilla_firefox/old-patches/prpolevt-fix.patch +++ /dev/null @@ -1,32 +0,0 @@ -Index: mozilla/nsprpub/pr/src/io/prpolevt.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/io/prpolevt.c,v -retrieving revision 3.15 -diff -u -8 -p -r3.15 prpolevt.c ---- mozilla/nsprpub/pr/src/io/prpolevt.c 25 Apr 2004 15:00:58 -0000 3.15 -+++ mozilla/nsprpub/pr/src/io/prpolevt.c 18 Feb 2009 02:06:41 -0000 -@@ -443,20 +443,20 @@ PR_IMPLEMENT(PRFileDesc *) PR_NewPollabl - #else - if (PR_NewTCPSocketPair(fd) == PR_FAILURE) { - fd[0] = fd[1] = NULL; - goto errorExit; - } - /* - * set the TCP_NODELAY option to reduce notification latency - */ -- socket_opt.option = PR_SockOpt_NoDelay; -- socket_opt.value.no_delay = PR_TRUE; -- rv = PR_SetSocketOption(fd[1], &socket_opt); -- PR_ASSERT(PR_SUCCESS == rv); -+// socket_opt.option = PR_SockOpt_NoDelay; -+// socket_opt.value.no_delay = PR_TRUE; -+// rv = PR_SetSocketOption(fd[1], &socket_opt); -+// PR_ASSERT(PR_SUCCESS == rv); - #endif - - event->secret->writeEnd = fd[1]; - if (PR_PushIOLayer(fd[0], PR_TOP_IO_LAYER, event) == PR_FAILURE) { - goto errorExit; - } - - return fd[0]; diff --git a/www-client/mozilla_firefox/old-patches/sunbird-makefile-apprunner-rsrc.zip b/www-client/mozilla_firefox/old-patches/sunbird-makefile-apprunner-rsrc.zip deleted file mode 100644 index b48cf7294..000000000 Binary files a/www-client/mozilla_firefox/old-patches/sunbird-makefile-apprunner-rsrc.zip and /dev/null differ diff --git a/www-client/mozilla_firefox/patches/2009-09-27/bezilla.step-by-step.txt b/www-client/mozilla_firefox/patches/2009-09-27/bezilla.step-by-step.txt deleted file mode 100644 index 329eb07b1..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/bezilla.step-by-step.txt +++ /dev/null @@ -1,18 +0,0 @@ -Note: use --dry-run, as some patches may need -p1 and others may not apply cleanly. - -r01-config-star.patch # patches config.guess, config.sub -r02-configure-in-withGCC4andCrossCompile.patch # same as above, plus additions from `svn diff -r 7:8` -r03a-makefile-in.patch # Adds "Haiku" to the OS_ARCH tests. -r03b-starmk.patch # More adding "Haiku" to the OS_ARCH tests. -r04a-rdef-support-in-Makefile.patch # Adds rdef support to Makefiles. -r04b-just-rdefs-no-Makefile.patch # various *.rdef -r05-fix-shlibsign.README # Discussion that led to the patch. -r05-fix-shlibsign.patch # hack/fix for someone defines true/false to 1/0 -r06-nss-gcc4.patch # possible gcc4 and header fixes for nss/ -r07-working-nspr-from-haikuports.patch # applying this instead of 89-unmodified.patch will allow proper compilation, at the cost of losing your newest nspr work. -r08-misc.patch # numerous patches. not sure which patches are dependant on each other. - # Fonts, AppRunner, AppShell, DragService, nsToolKit, plevent, maybe more. -r09-sunbird-options-fix.patch # small fix for Sunbird's option window -r11-bookmarks-v2.patch # changes the default startup page, bookmarks, allows UserGuide and Welcome to be fetched locally or from svn -r10-grey-menu-color.patch # switches the blue menu highlight selection color for grey. -r12-releasenotes.patch # removes the 2nd first-run tab, changes release notes to about:buildconfig diff --git a/www-client/mozilla_firefox/patches/2009-09-27/r01-config-star.patch b/www-client/mozilla_firefox/patches/2009-09-27/r01-config-star.patch deleted file mode 100644 index 4a08a242c..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/r01-config-star.patch +++ /dev/null @@ -1,5296 +0,0 @@ -Index: build/autoconf/config.guess -=================================================================== ---- build/autoconf/config.guess (revision 15) -+++ build/autoconf/config.guess (working copy) -@@ -1,9 +1,10 @@ - #! /bin/sh - # Attempt to guess a canonical system name. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2009-04-27' - - # This file is free software; you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by -@@ -17,13 +18,15 @@ - # - # 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Originally written by Per Bothner . - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. -@@ -53,8 +56,8 @@ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -@@ -66,11 +69,11 @@ - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. -@@ -104,8 +107,9 @@ - trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; - trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; - : ${TMPDIR=/tmp} ; -- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || -+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || -+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; - dummy=$tmp/dummy ; - tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -@@ -122,7 +126,7 @@ - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; --esac ;' -+esac ; set_cc_for_build= ;' - - # This is needed to find uname on a Pyramid OSx when run in the BSD universe. - # (ghazi@noc.rutgers.edu 1994-08-24) -@@ -157,6 +161,7 @@ - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; -+ sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched -@@ -195,50 +200,32 @@ - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" -- exit 0 ;; -- amiga:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- arc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- hp300:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mac68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- macppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme88k:OpenBSD:*:*) -- echo m88k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvmeppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- pmax:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sgi:OpenBSD:*:*) -- echo mipseb-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sun3:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- wgrisc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:OpenBSD:*:*) -- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` -+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} -+ exit ;; -+ *:ekkoBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} -+ exit ;; -+ *:SolidBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} -+ exit ;; -+ macppc:MirBSD:*:*) -+ echo powerpc-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; -+ *:MirBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; - alpha:OSF1:*:*) -- if test $UNAME_RELEASE = "V4.0"; then -+ case $UNAME_RELEASE in -+ *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` -- fi -+ ;; -+ *5.*) -+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -+ ;; -+ esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU -@@ -276,39 +263,49 @@ - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac -+ # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. -- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -- exit 0 ;; -+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -+ exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix -- exit 0 ;; -+ exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 -- exit 0 ;; -+ exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 -- exit 0;; -+ exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos -- exit 0 ;; -+ exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos -- exit 0 ;; -+ exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition -- exit 0 ;; -+ exit ;; -+ *:z/VM:*:*) -+ echo s390-ibm-zvmoe -+ exit ;; -+ *:OS400:*:*) -+ echo powerpc-ibm-os400 -+ exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} -- exit 0;; -+ exit ;; -+ arm:riscos:*:*|arm:RISCOS:*:*) -+ echo arm-unknown-riscos -+ exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp -- exit 0;; -+ exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then -@@ -316,29 +313,48 @@ - else - echo pyramid-pyramid-bsd - fi -- exit 0 ;; -+ exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 -- exit 0 ;; -- DRS?6000:UNIX_SV:4.2*:7*) -+ exit ;; -+ DRS?6000:unix:4.0:6*) -+ echo sparc-icl-nx6 -+ exit ;; -+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in -- sparc) echo sparc-icl-nx7 && exit 0 ;; -+ sparc) echo sparc-icl-nx7; exit ;; - esac ;; -+ s390x:SunOS:*:*) -+ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -+ exit ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -- i86pc:SunOS:5.*:*) -- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; -+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) -+ eval $set_cc_for_build -+ SUN_ARCH="i386" -+ # If there is a compiler, see if it is configured for 64-bit objects. -+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. -+ # This test works for both compilers. -+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then -+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ -+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ -+ grep IS_64BIT_ARCH >/dev/null -+ then -+ SUN_ARCH="x86_64" -+ fi -+ fi -+ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -+ exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) -@@ -347,10 +363,10 @@ - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` -- exit 0 ;; -+ exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 -@@ -362,10 +378,10 @@ - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac -- exit 0 ;; -+ exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor -@@ -376,37 +392,40 @@ - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ m68k:machten:*:*) -+ echo m68k-apple-machten${UNAME_RELEASE} -+ exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 -- exit 0 ;; -+ exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -@@ -430,32 +449,33 @@ - exit (-1); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c \ -- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ -- && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && -+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && -+ SYSTEM_NAME=`$dummy $dummyarg` && -+ { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax -- exit 0 ;; -+ exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix -- exit 0 ;; -+ exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 -- exit 0 ;; -+ exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 -- exit 0 ;; -+ exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` -@@ -471,29 +491,29 @@ - else - echo i586-dg-dgux${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 -- exit 0 ;; -+ exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 -- exit 0 ;; -+ exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd -- exit 0 ;; -+ exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` -- exit 0 ;; -+ exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. -- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' -+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix -- exit 0 ;; -+ exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` -@@ -501,7 +521,7 @@ - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build -@@ -516,15 +536,19 @@ - exit(0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -- echo rs6000-ibm-aix3.2.5 -+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` -+ then -+ echo "$SYSTEM_NAME" -+ else -+ echo rs6000-ibm-aix3.2.5 -+ fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi -- exit 0 ;; -- *:AIX:*:[45]) -+ exit ;; -+ *:AIX:*:[456]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 -@@ -537,28 +561,28 @@ - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix -- exit 0 ;; -+ exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 -- exit 0 ;; -+ exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to -- exit 0 ;; # report: romp-ibm BSD 4.3 -+ exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx -- exit 0 ;; -+ exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 -- exit 0 ;; -+ exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd -- exit 0 ;; -+ exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 -- exit 0 ;; -+ exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in -@@ -620,9 +644,19 @@ - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then -- # avoid double evaluation of $set_cc_for_build -- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build -- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null -+ eval $set_cc_for_build -+ -+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating -+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler -+ # generating 64-bit code. GNU and HP use different nomenclature: -+ # -+ # $ CC_FOR_BUILD=cc ./config.guess -+ # => hppa2.0w-hp-hpux11.23 -+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess -+ # => hppa64-hp-hpux11.23 -+ -+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | -+ grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else -@@ -630,11 +664,11 @@ - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -@@ -662,153 +696,192 @@ - exit (0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 -- exit 0 ;; -+ exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd -- exit 0 ;; -+ exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd -- exit 0 ;; -+ exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix -- exit 0 ;; -+ exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf -- exit 0 ;; -+ exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf -- exit 0 ;; -+ exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi -- exit 0 ;; -+ exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites -- exit 0 ;; -+ exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - *:UNICOS/mp:*:*) -- echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -+ exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -- exit 0 ;; -+ exit ;; -+ 5000:UNIX_System_V:4.*:*) -+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -+ exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:FreeBSD:*:*) -- # Determine whether the default compiler uses glibc. -- eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -- #include -- #if __GLIBC__ >= 2 -- LIBC=gnu -- #else -- LIBC= -- #endif --EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} -- exit 0 ;; -+ case ${UNAME_MACHINE} in -+ pc98) -+ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ amd64) -+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ *) -+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ esac -+ exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin -- exit 0 ;; -- i*:MINGW*:*) -+ exit ;; -+ *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 -- exit 0 ;; --#### MozillaHack --# Netscape's hacked uname -- xx:WINNT:* | xx:WIN95:*) -- echo i586-pc-msvc -- exit 0 ;; --### End MozillaHack -+ exit ;; -+ i*:windows32*:*) -+ # uname -m includes "-pc" on this system. -+ echo ${UNAME_MACHINE}-mingw32 -+ exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 -- exit 0 ;; -- x86:Interix*:3*) -- echo i586-pc-interix3 -- exit 0 ;; -+ exit ;; -+ *:Interix*:[3456]*) -+ case ${UNAME_MACHINE} in -+ x86) -+ echo i586-pc-interix${UNAME_RELEASE} -+ exit ;; -+ EM64T | authenticamd | genuineintel) -+ echo x86_64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ IA64) -+ echo ia64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks -- exit 0 ;; -+ exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix -- exit 0 ;; -+ exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin -- exit 0 ;; -+ exit ;; -+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) -+ echo x86_64-unknown-cygwin -+ exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin -- exit 0 ;; -+ exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - *:GNU:*:*) -+ # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` -- exit 0 ;; -+ exit ;; -+ *:GNU/*:*:*) -+ # other systems with GNU libc and userland -+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu -+ exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix -- exit 0 ;; -+ exit ;; - arm*:Linux:*:*) -+ eval $set_cc_for_build -+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ -+ | grep -q __ARM_EABI__ -+ then -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ else -+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ fi -+ exit ;; -+ avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ cris:Linux:*:*) -+ echo cris-axis-linux-gnu -+ exit ;; -+ crisv32:Linux:*:*) -+ echo crisv32-axis-linux-gnu -+ exit ;; -+ frv:Linux:*:*) -+ echo frv-unknown-linux-gnu -+ exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ m32r*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -@@ -825,8 +898,12 @@ - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) - eval $set_cc_for_build -@@ -844,15 +921,22 @@ - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; -+ or32:Linux:*:*) -+ echo or32-unknown-linux-gnu -+ exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; -@@ -866,7 +950,10 @@ - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -- exit 0 ;; -+ exit ;; -+ padre:Linux:*:*) -+ echo sparc-unknown-linux-gnu -+ exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in -@@ -874,22 +961,31 @@ - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac -- exit 0 ;; -+ exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux -- exit 0 ;; -+ exit ;; -+ sh64*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ vax:Linux:*:*) -+ echo ${UNAME_MACHINE}-dec-linux-gnu -+ exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ xtensa*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent -@@ -907,15 +1003,12 @@ - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" -- exit 0 ;; -- coff-i386) -- echo "${UNAME_MACHINE}-pc-linux-gnucoff" -- exit 0 ;; -+ exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" -- exit 0 ;; -+ exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build -@@ -932,23 +1025,33 @@ - LIBC=gnulibc1 - # endif - #else -- #ifdef __INTEL_COMPILER -+ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif -+ #ifdef __dietlibc__ -+ LIBC=dietlibc -+ #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 -- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^LIBC/{ -+ s: ::g -+ p -+ }'`" -+ test x"${LIBC}" != x && { -+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" -+ exit -+ } -+ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 -- exit 0 ;; -+ exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... -@@ -956,24 +1059,27 @@ - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx -- exit 0 ;; -+ exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop -- exit 0 ;; -+ exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos -- exit 0 ;; -+ exit ;; -+ i*86:syllable:*:*) -+ echo ${UNAME_MACHINE}-pc-syllable -+ exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then -@@ -981,15 +1087,16 @@ - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi -- exit 0 ;; -- i*86:*:5:[78]*) -+ exit ;; -+ i*86:*:5:[678]*) -+ # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi -- exit 0 ;; -+ exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv -- exit 0 ;; -+ exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv -- exit 0 ;; -+ exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix -- exit 0 ;; -- M68*:*:R3V[567]*:*) -- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; -- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0) -+ exit ;; -+ M68*:*:R3V[5678]*:*) -+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; -+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4.3${OS_REL} && exit 0 -+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4 && exit 0 ;; -+ && { echo i486-ncr-sysv4; exit; } ;; -+ NCR*:*:4.2:* | MPRAS*:*:4.2:*) -+ OS_REL='.3' -+ test -r /etc/.relid \ -+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` -+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } -+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } -+ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 -- exit 0 ;; -+ exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` -@@ -1081,78 +1201,84 @@ - else - echo ns32k-sni-sysv - fi -- exit 0 ;; -+ exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 -- exit 0 ;; --#### MozillaHack -- *:*OpenVMS*:*:*) -- case "${UNAME_SYSTEM}" in -- POSIX_for_OpenVMS_AXP) echo alpha-dec-openvmsposix ;; -- POSIX_for_OpenVMS_VAX) echo vax-dec-openvmsposix ;; -- OpenVMS) echo alpha-dec-openvms ;; -- *) echo unknown-dec-openvms ;; -- esac -- exit 0 ;; --#### End MozillaHack -+ exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 -- exit 0 ;; -+ exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 -- exit 0 ;; -+ exit ;; -+ i*86:VOS:*:*) -+ # From Paul.Green@stratus.com. -+ echo ${UNAME_MACHINE}-stratus-vos -+ exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos -- exit 0 ;; -+ exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 -- exit 0 ;; -+ exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos -- exit 0 ;; -+ exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos -- exit 0 ;; -+ exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos -- exit 0 ;; -+ exit ;; -+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible. -+ echo i586-pc-haiku -+ exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ SX-7:SUPER-UX:*:*) -+ echo sx7-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8:SUPER-UX:*:*) -+ echo sx8-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8R:SUPER-UX:*:*) -+ echo sx8r-nec-superux${UNAME_RELEASE} -+ exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Darwin:*:*) -- case `uname -p` in -- *86) UNAME_PROCESSOR=i686 ;; -- powerpc) UNAME_PROCESSOR=powerpc ;; -+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown -+ case $UNAME_PROCESSOR in -+ unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then -@@ -1160,22 +1286,25 @@ - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:QNX:*:4*) - echo i386-pc-qnx -- exit 0 ;; -- NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) -+ exit ;; -+ NSE-?:NONSTOP_KERNEL:*:*) -+ echo nse-tandem-nsk${UNAME_RELEASE} -+ exit ;; -+ NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux -- exit 0 ;; -+ exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv -- exit 0 ;; -+ exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 -@@ -1186,25 +1315,50 @@ - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 -- exit 0 ;; -+ exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 -- exit 0 ;; -+ exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex -- exit 0 ;; -+ exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 -- exit 0 ;; -+ exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 -- exit 0 ;; -+ exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 -- exit 0 ;; -+ exit ;; - *:ITS:*:*) - echo pdp10-unknown-its -- exit 0 ;; -+ exit ;; -+ SEI:*:*:SEIUX) -+ echo mips-sei-seiux${UNAME_RELEASE} -+ exit ;; -+ *:DragonFly:*:*) -+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` -+ exit ;; -+ *:*VMS:*:*) -+ UNAME_MACHINE=`(uname -p) 2>/dev/null` -+ case "${UNAME_MACHINE}" in -+ A*) echo alpha-dec-vms ; exit ;; -+ I*) echo ia64-dec-vms ; exit ;; -+ V*) echo vax-dec-vms ; exit ;; -+ esac ;; -+ *:XENIX:*:SysV) -+ echo i386-pc-xenix -+ exit ;; -+ i*86:skyos:*:*) -+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' -+ exit ;; -+ i*86:rdos:*:*) -+ echo ${UNAME_MACHINE}-pc-rdos -+ exit ;; -+ i*86:AROS:*:*) -+ echo ${UNAME_MACHINE}-pc-aros -+ exit ;; - esac - - #echo '(No uname command or uname output not recognized.)' 1>&2 -@@ -1236,7 +1390,7 @@ - #endif - - #if defined (__arm) && defined (__acorn) && defined (__unix) -- printf ("arm-acorn-riscix"); exit (0); -+ printf ("arm-acorn-riscix\n"); exit (0); - #endif - - #if defined (hp300) && !defined (hpux) -@@ -1325,11 +1479,12 @@ - } - EOF - --$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 -+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - - # Apollos put the system type in the environment. - --test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } -+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - - # Convex versions that predate uname can use getsysinfo(1) - -@@ -1338,22 +1493,22 @@ - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - c34*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - c38*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - c4*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - esac - fi - -@@ -1364,7 +1519,9 @@ - the operating system you are using. It is advised that you - download the most up to date version of the config scripts from - -- ftp://ftp.gnu.org/pub/gnu/config/ -+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD -+and -+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD - - If the version you run ($0) is already up to date, please - send the following data and any information you think might be -Index: build/autoconf/config.sub -=================================================================== ---- build/autoconf/config.sub (revision 15) -+++ build/autoconf/config.sub (working copy) -@@ -1,9 +1,10 @@ - #! /bin/sh - # Configuration validation subroutine script. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2009-04-17' - - # This file is (in principle) common to ALL GNU software. - # The presence of a machine in this file suggests that SOME GNU software -@@ -21,14 +22,15 @@ - # - # 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., 59 Temple Place - Suite 330, --# Boston, MA 02111-1307, USA. -- -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. -+# - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # -@@ -70,8 +72,8 @@ - version="\ - GNU config.sub ($timestamp) - --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -@@ -83,11 +85,11 @@ - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. -@@ -99,7 +101,7 @@ - *local*) - # First pass through any local machine types. - echo $1 -- exit 0;; -+ exit ;; - - * ) - break ;; -@@ -118,7 +120,10 @@ - # Here we must recognize all the valid KERNEL-OS combinations. - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` - case $maybe_os in -- nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) -+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ -+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ -+ kopensolaris*-gnu* | \ -+ storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; -@@ -144,7 +149,7 @@ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -- -apple | -axis) -+ -apple | -axis | -knuth | -cray) - os= - basic_machine=$1 - ;; -@@ -169,6 +174,10 @@ - -hiux*) - os=-hiuxwe2 - ;; -+ -sco6) -+ os=-sco5v6 -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -@@ -185,6 +194,10 @@ - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; -+ -sco5v6*) -+ # Don't forget version if it is 3.2v4 or newer. -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -@@ -224,51 +237,61 @@ - case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. --#### MozillaHack --# mips*el --#### End MozillaHack - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ -- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ -- | clipper \ -+ | am33_2.0 \ -+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ -+ | bfin \ -+ | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ -- | fr30 | frv \ -+ | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ -- | ip2k \ -- | m32r | m68000 | m68k | m88k | mcore \ -- | mips | mipsbe | mipseb | mips*el | mipsle \ -+ | ip2k | iq2000 \ -+ | lm32 \ -+ | m32c | m32r | m32rle | m68000 | m68k | m88k \ -+ | maxq | mb | microblaze | mcore | mep | metag \ -+ | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ -+ | mips64octeon | mips64octeonel \ -+ | mips64orion | mips64orionel \ -+ | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ -- | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ -+ | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ -+ | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ -+ | moxie \ -+ | mt \ - | msp430 \ -+ | nios | nios2 \ - | ns16k | ns32k \ -- | openrisc | or32 \ -+ | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ -- | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ -+ | score \ -+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ -- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ -- | strongarm \ -- | tahoe | thumb | tic80 | tron \ -+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ -+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ -+ | spu | strongarm \ -+ | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ -- | x86 | xscale | xstormy16 | xtensa \ -- | z8k) -+ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ -+ | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) -@@ -278,6 +301,9 @@ - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; -+ ms1) -+ basic_machine=mt-unknown -+ ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and -@@ -291,64 +317,74 @@ - exit 1 - ;; - # Recognize the basic CPU types with company name. --#### MozillaHack --# mips*el --#### End MozillaHack - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ -- | avr-* \ -- | bs2000-* \ -+ | avr-* | avr32-* \ -+ | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ -- | clipper-* | cydra-* \ -+ | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ -- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ -+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ -- | ip2k-* \ -- | m32r-* \ -+ | ip2k-* | iq2000-* \ -+ | lm32-* \ -+ | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -- | m88110-* | m88k-* | mcore-* \ -- | mips-* | mipsbe-* | mipseb-* | mips*el-* | mipsle-* \ -+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ -+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ -+ | mips64octeon-* | mips64octeonel-* \ -+ | mips64orion-* | mips64orionel-* \ -+ | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ -- | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ -+ | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ -+ | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ -+ | mmix-* \ -+ | mt-* \ - | msp430-* \ -- | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ -+ | nios-* | nios2-* \ -+ | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ -- | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ -+ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ -- | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ -- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ -+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ -+ | sparclite-* \ -+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ -- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ -+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ -- | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ -- | xtensa-* \ -+ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ -+ | xstormy16-* | xtensa*-* \ - | ymp-* \ -- | z8k-*) -+ | z8k-* | z80-*) - ;; -+ # Recognize the basic CPU types without company name, with glob match. -+ xtensa*) -+ basic_machine=$basic_machine-unknown -+ ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) -@@ -365,6 +401,9 @@ - basic_machine=a29k-amd - os=-udi - ;; -+ abacus) -+ basic_machine=abacus-unknown -+ ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout -@@ -379,6 +418,12 @@ - basic_machine=a29k-none - os=-bsd - ;; -+ amd64) -+ basic_machine=x86_64-pc -+ ;; -+ amd64-*) -+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - amdahl) - basic_machine=580-amdahl - os=-sysv -@@ -402,6 +447,10 @@ - basic_machine=m68k-apollo - os=-bsd - ;; -+ aros) -+ basic_machine=i386-pc -+ os=-aros -+ ;; - aux) - basic_machine=m68k-apple - os=-aux -@@ -410,10 +459,22 @@ - basic_machine=ns32k-sequent - os=-dynix - ;; -+ blackfin) -+ basic_machine=bfin-unknown -+ os=-linux -+ ;; -+ blackfin-*) -+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; -+ cegcc) -+ basic_machine=arm-unknown -+ os=-cegcc -+ ;; - convex-c1) - basic_machine=c1-convex - os=-bsd -@@ -438,12 +499,27 @@ - basic_machine=j90-cray - os=-unicos - ;; -+ craynv) -+ basic_machine=craynv-cray -+ os=-unicosmp -+ ;; -+ cr16) -+ basic_machine=cr16-unknown -+ os=-elf -+ ;; - crds | unos) - basic_machine=m68k-crds - ;; -+ crisv32 | crisv32-* | etraxfs*) -+ basic_machine=crisv32-axis -+ ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; -+ crx) -+ basic_machine=crx-unknown -+ os=-elf -+ ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; -@@ -466,6 +542,14 @@ - basic_machine=m88k-motorola - os=-sysv3 - ;; -+ dicos) -+ basic_machine=i686-pc -+ os=-dicos -+ ;; -+ djgpp) -+ basic_machine=i586-pc -+ os=-msdosdjgpp -+ ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx -@@ -616,6 +700,14 @@ - basic_machine=m68k-isi - os=-sysv - ;; -+ m68knommu) -+ basic_machine=m68k-unknown -+ os=-linux -+ ;; -+ m68knommu-*) -+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - m88k-omron*) - basic_machine=m88k-omron - ;; -@@ -631,12 +723,10 @@ - basic_machine=i386-pc - os=-mingw32 - ;; --#### MozillaHack -- i386-msvc | msvc) -- basic_machine=i386-pc -- os=-msvc -+ mingw32ce) -+ basic_machine=arm-unknown -+ os=-mingw32ce - ;; --#### End MozillaHack - miniframe) - basic_machine=m68000-convergent - ;; -@@ -650,10 +740,6 @@ - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; -- mmix*) -- basic_machine=mmix-knuth -- os=-mmixware -- ;; - monitor) - basic_machine=m68k-rom68k - os=-coff -@@ -666,6 +752,9 @@ - basic_machine=i386-pc - os=-msdos - ;; -+ ms1-*) -+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` -+ ;; - mvs) - basic_machine=i370-ibm - os=-mvs -@@ -734,10 +823,6 @@ - np1) - basic_machine=np1-gould - ;; -- nv1) -- basic_machine=nv1-cray -- os=-unicosmp -- ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; -@@ -745,10 +830,13 @@ - basic_machine=hppa1.1-oki - os=-proelf - ;; -- or32 | or32-*) -+ openrisc | openrisc-*) - basic_machine=or32-unknown -- os=-coff - ;; -+ os400) -+ basic_machine=powerpc-ibm -+ os=-os400 -+ ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose -@@ -765,6 +853,14 @@ - basic_machine=i860-intel - os=-osf - ;; -+ parisc) -+ basic_machine=hppa-unknown -+ os=-linux -+ ;; -+ parisc-*) -+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - pbd) - basic_machine=sparc-tti - ;; -@@ -774,24 +870,36 @@ - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; -+ pc98) -+ basic_machine=i386-pc -+ ;; -+ pc98-*) -+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; -- pentiumii | pentium2) -+ pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; -+ pentium4) -+ basic_machine=i786-pc -+ ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -- pentiumii-* | pentium2-*) -+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -+ pentium4-*) -+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pn) - basic_machine=pn-gould - ;; -@@ -824,6 +932,10 @@ - basic_machine=i586-unknown - os=-pw32 - ;; -+ rdos) -+ basic_machine=i386-pc -+ os=-rdos -+ ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff -@@ -850,6 +962,14 @@ - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; -+ sde) -+ basic_machine=mipsisa32-sde -+ os=-elf -+ ;; -+ sei) -+ basic_machine=mips-sei -+ os=-seiux -+ ;; - sequent) - basic_machine=i386-sequent - ;; -@@ -857,6 +977,12 @@ - basic_machine=sh-hitachi - os=-hms - ;; -+ sh5el) -+ basic_machine=sh5le-unknown -+ ;; -+ sh64) -+ basic_machine=sh64-unknown -+ ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks -@@ -931,10 +1057,6 @@ - basic_machine=t90-cray - os=-unicos - ;; -- tic4x | c4x*) -- basic_machine=tic4x-unknown -- os=-coff -- ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff -@@ -947,6 +1069,10 @@ - basic_machine=tic6x-unknown - os=-coff - ;; -+ tile*) -+ basic_machine=tile-unknown -+ os=-linux-gnu -+ ;; - tx39) - basic_machine=mipstx39-unknown - ;; -@@ -960,6 +1086,10 @@ - tower | tower-32) - basic_machine=m68k-ncr - ;; -+ tpf) -+ basic_machine=s390x-ibm -+ os=-tpf -+ ;; - udi29k) - basic_machine=a29k-amd - os=-udi -@@ -1003,6 +1133,10 @@ - basic_machine=hppa1.1-winbond - os=-proelf - ;; -+ xbox) -+ basic_machine=i686-pc -+ os=-mingw32 -+ ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; -@@ -1014,6 +1148,10 @@ - basic_machine=z8k-unknown - os=-sim - ;; -+ z80-*-coff) -+ basic_machine=z80-unknown -+ os=-sim -+ ;; - none) - basic_machine=none-none - os=-none -@@ -1033,6 +1171,9 @@ - romp) - basic_machine=romp-ibm - ;; -+ mmix) -+ basic_machine=mmix-knuth -+ ;; - rs6000) - basic_machine=rs6000-ibm - ;; -@@ -1049,13 +1190,10 @@ - we32k) - basic_machine=we32k-att - ;; -- sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) -+ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; -- sh64) -- basic_machine=sh64-unknown -- ;; -- sparc | sparcv9 | sparcv9b) -+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) -@@ -1121,30 +1259,31 @@ - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. --#### MozillaHack --# msvc --#### End MozillaHack - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ -+ | -kopensolaris* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ -- | -aos* \ -+ | -aos* | -aros* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ -- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ -- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ -+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ -+ | -openbsd* | -solidbsd* \ -+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ -+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ -- | -chorusos* | -chorusrdb* \ -+ | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ -+ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ -+ | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ -- | -msvc* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ -- | -powermax* | -dnix*) -+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ -+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) -@@ -1162,12 +1301,15 @@ - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ -- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ -+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; -+ -linux-dietlibc) -+ os=-linux-dietlibc -+ ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; -@@ -1180,6 +1322,9 @@ - -opened*) - os=-openedition - ;; -+ -os400*) -+ os=-os400 -+ ;; - -wince*) - os=-wince - ;; -@@ -1201,6 +1346,9 @@ - -atheos*) - os=-atheos - ;; -+ -syllable*) -+ os=-syllable -+ ;; - -386bsd) - os=-bsd - ;; -@@ -1223,6 +1371,9 @@ - -sinix*) - os=-sysv4 - ;; -+ -tpf*) -+ os=-tpf -+ ;; - -triton*) - os=-sysv3 - ;; -@@ -1259,6 +1410,12 @@ - -kaos*) - os=-kaos - ;; -+ -zvmoe) -+ os=-zvmoe -+ ;; -+ -dicos*) -+ os=-dicos -+ ;; - -none) - ;; - *) -@@ -1281,6 +1438,12 @@ - # system, and we'll never get to this point. - - case $basic_machine in -+ score-*) -+ os=-elf -+ ;; -+ spu-*) -+ os=-elf -+ ;; - *-acorn) - os=-riscix1.2 - ;; -@@ -1290,6 +1453,9 @@ - arm*-semi) - os=-aout - ;; -+ c4x-* | tic4x-*) -+ os=-coff -+ ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 -@@ -1315,6 +1481,9 @@ - m68*-cisco) - os=-aout - ;; -+ mep-*) -+ os=-elf -+ ;; - mips*-cisco) - os=-elf - ;; -@@ -1333,9 +1502,15 @@ - *-be) - os=-beos - ;; -+ *-haiku) -+ os=-haiku -+ ;; - *-ibm) - os=-aix - ;; -+ *-knuth) -+ os=-mmixware -+ ;; - *-wec) - os=-proelf - ;; -@@ -1468,9 +1643,15 @@ - -mvs* | -opened*) - vendor=ibm - ;; -+ -os400*) -+ vendor=ibm -+ ;; - -ptx*) - vendor=sequent - ;; -+ -tpf*) -+ vendor=ibm -+ ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; -@@ -1495,7 +1676,7 @@ - esac - - echo $basic_machine$os --exit 0 -+exit - - # Local variables: - # eval: (add-hook 'write-file-hooks 'time-stamp) -Index: directory/c-sdk/config/autoconf/config.guess -=================================================================== ---- directory/c-sdk/config/autoconf/config.guess (revision 15) -+++ directory/c-sdk/config/autoconf/config.guess (working copy) -@@ -1,9 +1,10 @@ - #! /bin/sh - # Attempt to guess a canonical system name. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2009-04-27' - - # This file is free software; you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by -@@ -17,13 +18,15 @@ - # - # 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Originally written by Per Bothner . - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. -@@ -53,8 +56,8 @@ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -@@ -66,11 +69,11 @@ - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. -@@ -104,8 +107,9 @@ - trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; - trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; - : ${TMPDIR=/tmp} ; -- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || -+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || -+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; - dummy=$tmp/dummy ; - tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -@@ -122,7 +126,7 @@ - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; --esac ;' -+esac ; set_cc_for_build= ;' - - # This is needed to find uname on a Pyramid OSx when run in the BSD universe. - # (ghazi@noc.rutgers.edu 1994-08-24) -@@ -157,6 +161,7 @@ - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; -+ sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched -@@ -195,50 +200,32 @@ - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" -- exit 0 ;; -- amiga:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- arc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- hp300:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mac68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- macppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme88k:OpenBSD:*:*) -- echo m88k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvmeppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- pmax:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sgi:OpenBSD:*:*) -- echo mipseb-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sun3:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- wgrisc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:OpenBSD:*:*) -- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` -+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} -+ exit ;; -+ *:ekkoBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} -+ exit ;; -+ *:SolidBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} -+ exit ;; -+ macppc:MirBSD:*:*) -+ echo powerpc-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; -+ *:MirBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; - alpha:OSF1:*:*) -- if test $UNAME_RELEASE = "V4.0"; then -+ case $UNAME_RELEASE in -+ *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` -- fi -+ ;; -+ *5.*) -+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -+ ;; -+ esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU -@@ -276,39 +263,49 @@ - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac -+ # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. -- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -- exit 0 ;; -+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -+ exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix -- exit 0 ;; -+ exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 -- exit 0 ;; -+ exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 -- exit 0;; -+ exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos -- exit 0 ;; -+ exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos -- exit 0 ;; -+ exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition -- exit 0 ;; -+ exit ;; -+ *:z/VM:*:*) -+ echo s390-ibm-zvmoe -+ exit ;; -+ *:OS400:*:*) -+ echo powerpc-ibm-os400 -+ exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} -- exit 0;; -+ exit ;; -+ arm:riscos:*:*|arm:RISCOS:*:*) -+ echo arm-unknown-riscos -+ exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp -- exit 0;; -+ exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then -@@ -316,29 +313,48 @@ - else - echo pyramid-pyramid-bsd - fi -- exit 0 ;; -+ exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 -- exit 0 ;; -- DRS?6000:UNIX_SV:4.2*:7*) -+ exit ;; -+ DRS?6000:unix:4.0:6*) -+ echo sparc-icl-nx6 -+ exit ;; -+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in -- sparc) echo sparc-icl-nx7 && exit 0 ;; -+ sparc) echo sparc-icl-nx7; exit ;; - esac ;; -+ s390x:SunOS:*:*) -+ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -+ exit ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -- i86pc:SunOS:5.*:*) -- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; -+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) -+ eval $set_cc_for_build -+ SUN_ARCH="i386" -+ # If there is a compiler, see if it is configured for 64-bit objects. -+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. -+ # This test works for both compilers. -+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then -+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ -+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ -+ grep IS_64BIT_ARCH >/dev/null -+ then -+ SUN_ARCH="x86_64" -+ fi -+ fi -+ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -+ exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) -@@ -347,10 +363,10 @@ - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` -- exit 0 ;; -+ exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 -@@ -362,10 +378,10 @@ - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac -- exit 0 ;; -+ exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor -@@ -376,37 +392,40 @@ - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ m68k:machten:*:*) -+ echo m68k-apple-machten${UNAME_RELEASE} -+ exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 -- exit 0 ;; -+ exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -@@ -430,32 +449,33 @@ - exit (-1); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c \ -- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ -- && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && -+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && -+ SYSTEM_NAME=`$dummy $dummyarg` && -+ { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax -- exit 0 ;; -+ exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix -- exit 0 ;; -+ exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 -- exit 0 ;; -+ exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 -- exit 0 ;; -+ exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` -@@ -471,29 +491,29 @@ - else - echo i586-dg-dgux${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 -- exit 0 ;; -+ exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 -- exit 0 ;; -+ exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd -- exit 0 ;; -+ exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` -- exit 0 ;; -+ exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. -- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' -+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix -- exit 0 ;; -+ exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` -@@ -501,7 +521,7 @@ - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build -@@ -516,15 +536,19 @@ - exit(0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -- echo rs6000-ibm-aix3.2.5 -+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` -+ then -+ echo "$SYSTEM_NAME" -+ else -+ echo rs6000-ibm-aix3.2.5 -+ fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi -- exit 0 ;; -- *:AIX:*:[45]) -+ exit ;; -+ *:AIX:*:[456]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 -@@ -537,28 +561,28 @@ - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix -- exit 0 ;; -+ exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 -- exit 0 ;; -+ exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to -- exit 0 ;; # report: romp-ibm BSD 4.3 -+ exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx -- exit 0 ;; -+ exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 -- exit 0 ;; -+ exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd -- exit 0 ;; -+ exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 -- exit 0 ;; -+ exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in -@@ -620,9 +644,19 @@ - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then -- # avoid double evaluation of $set_cc_for_build -- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build -- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null -+ eval $set_cc_for_build -+ -+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating -+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler -+ # generating 64-bit code. GNU and HP use different nomenclature: -+ # -+ # $ CC_FOR_BUILD=cc ./config.guess -+ # => hppa2.0w-hp-hpux11.23 -+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess -+ # => hppa64-hp-hpux11.23 -+ -+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | -+ grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else -@@ -630,11 +664,11 @@ - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -@@ -662,153 +696,192 @@ - exit (0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 -- exit 0 ;; -+ exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd -- exit 0 ;; -+ exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd -- exit 0 ;; -+ exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix -- exit 0 ;; -+ exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf -- exit 0 ;; -+ exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf -- exit 0 ;; -+ exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi -- exit 0 ;; -+ exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites -- exit 0 ;; -+ exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - *:UNICOS/mp:*:*) -- echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -+ exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -- exit 0 ;; -+ exit ;; -+ 5000:UNIX_System_V:4.*:*) -+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -+ exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:FreeBSD:*:*) -- # Determine whether the default compiler uses glibc. -- eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -- #include -- #if __GLIBC__ >= 2 -- LIBC=gnu -- #else -- LIBC= -- #endif --EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} -- exit 0 ;; -+ case ${UNAME_MACHINE} in -+ pc98) -+ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ amd64) -+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ *) -+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ esac -+ exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin -- exit 0 ;; -- i*:MINGW*:*) -+ exit ;; -+ *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 -- exit 0 ;; --#### MozillaHack --# Netscape's hacked uname -- xx:WINNT:* | xx:WIN95:*) -- echo i586-pc-msvc -- exit 0 ;; --### End MozillaHack -+ exit ;; -+ i*:windows32*:*) -+ # uname -m includes "-pc" on this system. -+ echo ${UNAME_MACHINE}-mingw32 -+ exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 -- exit 0 ;; -- x86:Interix*:3*) -- echo i586-pc-interix3 -- exit 0 ;; -+ exit ;; -+ *:Interix*:[3456]*) -+ case ${UNAME_MACHINE} in -+ x86) -+ echo i586-pc-interix${UNAME_RELEASE} -+ exit ;; -+ EM64T | authenticamd | genuineintel) -+ echo x86_64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ IA64) -+ echo ia64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks -- exit 0 ;; -+ exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix -- exit 0 ;; -+ exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin -- exit 0 ;; -+ exit ;; -+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) -+ echo x86_64-unknown-cygwin -+ exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin -- exit 0 ;; -+ exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - *:GNU:*:*) -+ # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` -- exit 0 ;; -+ exit ;; -+ *:GNU/*:*:*) -+ # other systems with GNU libc and userland -+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu -+ exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix -- exit 0 ;; -+ exit ;; - arm*:Linux:*:*) -+ eval $set_cc_for_build -+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ -+ | grep -q __ARM_EABI__ -+ then -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ else -+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ fi -+ exit ;; -+ avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ cris:Linux:*:*) -+ echo cris-axis-linux-gnu -+ exit ;; -+ crisv32:Linux:*:*) -+ echo crisv32-axis-linux-gnu -+ exit ;; -+ frv:Linux:*:*) -+ echo frv-unknown-linux-gnu -+ exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ m32r*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -@@ -825,8 +898,12 @@ - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) - eval $set_cc_for_build -@@ -844,15 +921,22 @@ - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; -+ or32:Linux:*:*) -+ echo or32-unknown-linux-gnu -+ exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; -@@ -866,7 +950,10 @@ - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -- exit 0 ;; -+ exit ;; -+ padre:Linux:*:*) -+ echo sparc-unknown-linux-gnu -+ exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in -@@ -874,22 +961,31 @@ - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac -- exit 0 ;; -+ exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux -- exit 0 ;; -+ exit ;; -+ sh64*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ vax:Linux:*:*) -+ echo ${UNAME_MACHINE}-dec-linux-gnu -+ exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ xtensa*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent -@@ -907,15 +1003,12 @@ - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" -- exit 0 ;; -- coff-i386) -- echo "${UNAME_MACHINE}-pc-linux-gnucoff" -- exit 0 ;; -+ exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" -- exit 0 ;; -+ exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build -@@ -932,23 +1025,33 @@ - LIBC=gnulibc1 - # endif - #else -- #ifdef __INTEL_COMPILER -+ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif -+ #ifdef __dietlibc__ -+ LIBC=dietlibc -+ #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 -- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^LIBC/{ -+ s: ::g -+ p -+ }'`" -+ test x"${LIBC}" != x && { -+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" -+ exit -+ } -+ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 -- exit 0 ;; -+ exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... -@@ -956,24 +1059,27 @@ - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx -- exit 0 ;; -+ exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop -- exit 0 ;; -+ exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos -- exit 0 ;; -+ exit ;; -+ i*86:syllable:*:*) -+ echo ${UNAME_MACHINE}-pc-syllable -+ exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then -@@ -981,15 +1087,16 @@ - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi -- exit 0 ;; -- i*86:*:5:[78]*) -+ exit ;; -+ i*86:*:5:[678]*) -+ # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi -- exit 0 ;; -+ exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv -- exit 0 ;; -+ exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv -- exit 0 ;; -+ exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix -- exit 0 ;; -- M68*:*:R3V[567]*:*) -- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; -- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0) -+ exit ;; -+ M68*:*:R3V[5678]*:*) -+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; -+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4.3${OS_REL} && exit 0 -+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4 && exit 0 ;; -+ && { echo i486-ncr-sysv4; exit; } ;; -+ NCR*:*:4.2:* | MPRAS*:*:4.2:*) -+ OS_REL='.3' -+ test -r /etc/.relid \ -+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` -+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } -+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } -+ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 -- exit 0 ;; -+ exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` -@@ -1081,78 +1201,84 @@ - else - echo ns32k-sni-sysv - fi -- exit 0 ;; -+ exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 -- exit 0 ;; --#### MozillaHack -- *:*OpenVMS*:*:*) -- case "${UNAME_SYSTEM}" in -- POSIX_for_OpenVMS_AXP) echo alpha-dec-openvmsposix ;; -- POSIX_for_OpenVMS_VAX) echo vax-dec-openvmsposix ;; -- OpenVMS) echo alpha-dec-openvms ;; -- *) echo unknown-dec-openvms ;; -- esac -- exit 0 ;; --#### End MozillaHack -+ exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 -- exit 0 ;; -+ exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 -- exit 0 ;; -+ exit ;; -+ i*86:VOS:*:*) -+ # From Paul.Green@stratus.com. -+ echo ${UNAME_MACHINE}-stratus-vos -+ exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos -- exit 0 ;; -+ exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 -- exit 0 ;; -+ exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos -- exit 0 ;; -+ exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos -- exit 0 ;; -+ exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos -- exit 0 ;; -+ exit ;; -+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible. -+ echo i586-pc-haiku -+ exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ SX-7:SUPER-UX:*:*) -+ echo sx7-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8:SUPER-UX:*:*) -+ echo sx8-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8R:SUPER-UX:*:*) -+ echo sx8r-nec-superux${UNAME_RELEASE} -+ exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Darwin:*:*) -- case `uname -p` in -- *86) UNAME_PROCESSOR=i686 ;; -- powerpc) UNAME_PROCESSOR=powerpc ;; -+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown -+ case $UNAME_PROCESSOR in -+ unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then -@@ -1160,22 +1286,25 @@ - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:QNX:*:4*) - echo i386-pc-qnx -- exit 0 ;; -- NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) -+ exit ;; -+ NSE-?:NONSTOP_KERNEL:*:*) -+ echo nse-tandem-nsk${UNAME_RELEASE} -+ exit ;; -+ NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux -- exit 0 ;; -+ exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv -- exit 0 ;; -+ exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 -@@ -1186,25 +1315,50 @@ - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 -- exit 0 ;; -+ exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 -- exit 0 ;; -+ exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex -- exit 0 ;; -+ exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 -- exit 0 ;; -+ exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 -- exit 0 ;; -+ exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 -- exit 0 ;; -+ exit ;; - *:ITS:*:*) - echo pdp10-unknown-its -- exit 0 ;; -+ exit ;; -+ SEI:*:*:SEIUX) -+ echo mips-sei-seiux${UNAME_RELEASE} -+ exit ;; -+ *:DragonFly:*:*) -+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` -+ exit ;; -+ *:*VMS:*:*) -+ UNAME_MACHINE=`(uname -p) 2>/dev/null` -+ case "${UNAME_MACHINE}" in -+ A*) echo alpha-dec-vms ; exit ;; -+ I*) echo ia64-dec-vms ; exit ;; -+ V*) echo vax-dec-vms ; exit ;; -+ esac ;; -+ *:XENIX:*:SysV) -+ echo i386-pc-xenix -+ exit ;; -+ i*86:skyos:*:*) -+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' -+ exit ;; -+ i*86:rdos:*:*) -+ echo ${UNAME_MACHINE}-pc-rdos -+ exit ;; -+ i*86:AROS:*:*) -+ echo ${UNAME_MACHINE}-pc-aros -+ exit ;; - esac - - #echo '(No uname command or uname output not recognized.)' 1>&2 -@@ -1236,7 +1390,7 @@ - #endif - - #if defined (__arm) && defined (__acorn) && defined (__unix) -- printf ("arm-acorn-riscix"); exit (0); -+ printf ("arm-acorn-riscix\n"); exit (0); - #endif - - #if defined (hp300) && !defined (hpux) -@@ -1325,11 +1479,12 @@ - } - EOF - --$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 -+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - - # Apollos put the system type in the environment. - --test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } -+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - - # Convex versions that predate uname can use getsysinfo(1) - -@@ -1338,22 +1493,22 @@ - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - c34*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - c38*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - c4*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - esac - fi - -@@ -1364,7 +1519,9 @@ - the operating system you are using. It is advised that you - download the most up to date version of the config scripts from - -- ftp://ftp.gnu.org/pub/gnu/config/ -+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD -+and -+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD - - If the version you run ($0) is already up to date, please - send the following data and any information you think might be -Index: directory/c-sdk/config/autoconf/config.sub -=================================================================== ---- directory/c-sdk/config/autoconf/config.sub (revision 15) -+++ directory/c-sdk/config/autoconf/config.sub (working copy) -@@ -1,9 +1,10 @@ - #! /bin/sh - # Configuration validation subroutine script. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2009-04-17' - - # This file is (in principle) common to ALL GNU software. - # The presence of a machine in this file suggests that SOME GNU software -@@ -21,14 +22,15 @@ - # - # 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., 59 Temple Place - Suite 330, --# Boston, MA 02111-1307, USA. -- -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. -+# - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # -@@ -70,8 +72,8 @@ - version="\ - GNU config.sub ($timestamp) - --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -@@ -83,11 +85,11 @@ - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. -@@ -99,7 +101,7 @@ - *local*) - # First pass through any local machine types. - echo $1 -- exit 0;; -+ exit ;; - - * ) - break ;; -@@ -118,7 +120,10 @@ - # Here we must recognize all the valid KERNEL-OS combinations. - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` - case $maybe_os in -- nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) -+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ -+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ -+ kopensolaris*-gnu* | \ -+ storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; -@@ -144,7 +149,7 @@ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -- -apple | -axis) -+ -apple | -axis | -knuth | -cray) - os= - basic_machine=$1 - ;; -@@ -169,6 +174,10 @@ - -hiux*) - os=-hiuxwe2 - ;; -+ -sco6) -+ os=-sco5v6 -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -@@ -185,6 +194,10 @@ - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; -+ -sco5v6*) -+ # Don't forget version if it is 3.2v4 or newer. -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -@@ -224,51 +237,61 @@ - case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. --#### MozillaHack --# mips*el --#### End MozillaHack - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ -- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ -- | clipper \ -+ | am33_2.0 \ -+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ -+ | bfin \ -+ | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ -- | fr30 | frv \ -+ | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ -- | ip2k \ -- | m32r | m68000 | m68k | m88k | mcore \ -- | mips | mipsbe | mipseb | mips*el | mipsle \ -+ | ip2k | iq2000 \ -+ | lm32 \ -+ | m32c | m32r | m32rle | m68000 | m68k | m88k \ -+ | maxq | mb | microblaze | mcore | mep | metag \ -+ | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ -+ | mips64octeon | mips64octeonel \ -+ | mips64orion | mips64orionel \ -+ | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ -- | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ -+ | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ -+ | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ -+ | moxie \ -+ | mt \ - | msp430 \ -+ | nios | nios2 \ - | ns16k | ns32k \ -- | openrisc | or32 \ -+ | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ -- | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ -+ | score \ -+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ -- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ -- | strongarm \ -- | tahoe | thumb | tic80 | tron \ -+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ -+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ -+ | spu | strongarm \ -+ | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ -- | x86 | xscale | xstormy16 | xtensa \ -- | z8k) -+ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ -+ | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) -@@ -278,6 +301,9 @@ - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; -+ ms1) -+ basic_machine=mt-unknown -+ ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and -@@ -291,64 +317,74 @@ - exit 1 - ;; - # Recognize the basic CPU types with company name. --#### MozillaHack --# mips*el --#### End MozillaHack - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ -- | avr-* \ -- | bs2000-* \ -+ | avr-* | avr32-* \ -+ | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ -- | clipper-* | cydra-* \ -+ | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ -- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ -+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ -- | ip2k-* \ -- | m32r-* \ -+ | ip2k-* | iq2000-* \ -+ | lm32-* \ -+ | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -- | m88110-* | m88k-* | mcore-* \ -- | mips-* | mipsbe-* | mipseb-* | mips*el-* | mipsle-* \ -+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ -+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ -+ | mips64octeon-* | mips64octeonel-* \ -+ | mips64orion-* | mips64orionel-* \ -+ | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ -- | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ -+ | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ -+ | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ -+ | mmix-* \ -+ | mt-* \ - | msp430-* \ -- | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ -+ | nios-* | nios2-* \ -+ | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ -- | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ -+ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ -- | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ -- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ -+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ -+ | sparclite-* \ -+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ -- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ -+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ -- | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ -- | xtensa-* \ -+ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ -+ | xstormy16-* | xtensa*-* \ - | ymp-* \ -- | z8k-*) -+ | z8k-* | z80-*) - ;; -+ # Recognize the basic CPU types without company name, with glob match. -+ xtensa*) -+ basic_machine=$basic_machine-unknown -+ ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) -@@ -365,6 +401,9 @@ - basic_machine=a29k-amd - os=-udi - ;; -+ abacus) -+ basic_machine=abacus-unknown -+ ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout -@@ -379,6 +418,12 @@ - basic_machine=a29k-none - os=-bsd - ;; -+ amd64) -+ basic_machine=x86_64-pc -+ ;; -+ amd64-*) -+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - amdahl) - basic_machine=580-amdahl - os=-sysv -@@ -402,6 +447,10 @@ - basic_machine=m68k-apollo - os=-bsd - ;; -+ aros) -+ basic_machine=i386-pc -+ os=-aros -+ ;; - aux) - basic_machine=m68k-apple - os=-aux -@@ -410,10 +459,22 @@ - basic_machine=ns32k-sequent - os=-dynix - ;; -+ blackfin) -+ basic_machine=bfin-unknown -+ os=-linux -+ ;; -+ blackfin-*) -+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; -+ cegcc) -+ basic_machine=arm-unknown -+ os=-cegcc -+ ;; - convex-c1) - basic_machine=c1-convex - os=-bsd -@@ -438,12 +499,27 @@ - basic_machine=j90-cray - os=-unicos - ;; -+ craynv) -+ basic_machine=craynv-cray -+ os=-unicosmp -+ ;; -+ cr16) -+ basic_machine=cr16-unknown -+ os=-elf -+ ;; - crds | unos) - basic_machine=m68k-crds - ;; -+ crisv32 | crisv32-* | etraxfs*) -+ basic_machine=crisv32-axis -+ ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; -+ crx) -+ basic_machine=crx-unknown -+ os=-elf -+ ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; -@@ -466,6 +542,14 @@ - basic_machine=m88k-motorola - os=-sysv3 - ;; -+ dicos) -+ basic_machine=i686-pc -+ os=-dicos -+ ;; -+ djgpp) -+ basic_machine=i586-pc -+ os=-msdosdjgpp -+ ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx -@@ -616,6 +700,14 @@ - basic_machine=m68k-isi - os=-sysv - ;; -+ m68knommu) -+ basic_machine=m68k-unknown -+ os=-linux -+ ;; -+ m68knommu-*) -+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - m88k-omron*) - basic_machine=m88k-omron - ;; -@@ -631,12 +723,10 @@ - basic_machine=i386-pc - os=-mingw32 - ;; --#### MozillaHack -- i386-msvc | msvc) -- basic_machine=i386-pc -- os=-msvc -+ mingw32ce) -+ basic_machine=arm-unknown -+ os=-mingw32ce - ;; --#### End MozillaHack - miniframe) - basic_machine=m68000-convergent - ;; -@@ -650,10 +740,6 @@ - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; -- mmix*) -- basic_machine=mmix-knuth -- os=-mmixware -- ;; - monitor) - basic_machine=m68k-rom68k - os=-coff -@@ -666,6 +752,9 @@ - basic_machine=i386-pc - os=-msdos - ;; -+ ms1-*) -+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` -+ ;; - mvs) - basic_machine=i370-ibm - os=-mvs -@@ -734,10 +823,6 @@ - np1) - basic_machine=np1-gould - ;; -- nv1) -- basic_machine=nv1-cray -- os=-unicosmp -- ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; -@@ -745,10 +830,13 @@ - basic_machine=hppa1.1-oki - os=-proelf - ;; -- or32 | or32-*) -+ openrisc | openrisc-*) - basic_machine=or32-unknown -- os=-coff - ;; -+ os400) -+ basic_machine=powerpc-ibm -+ os=-os400 -+ ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose -@@ -765,6 +853,14 @@ - basic_machine=i860-intel - os=-osf - ;; -+ parisc) -+ basic_machine=hppa-unknown -+ os=-linux -+ ;; -+ parisc-*) -+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - pbd) - basic_machine=sparc-tti - ;; -@@ -774,24 +870,36 @@ - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; -+ pc98) -+ basic_machine=i386-pc -+ ;; -+ pc98-*) -+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; -- pentiumii | pentium2) -+ pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; -+ pentium4) -+ basic_machine=i786-pc -+ ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -- pentiumii-* | pentium2-*) -+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -+ pentium4-*) -+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pn) - basic_machine=pn-gould - ;; -@@ -824,6 +932,10 @@ - basic_machine=i586-unknown - os=-pw32 - ;; -+ rdos) -+ basic_machine=i386-pc -+ os=-rdos -+ ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff -@@ -850,6 +962,14 @@ - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; -+ sde) -+ basic_machine=mipsisa32-sde -+ os=-elf -+ ;; -+ sei) -+ basic_machine=mips-sei -+ os=-seiux -+ ;; - sequent) - basic_machine=i386-sequent - ;; -@@ -857,6 +977,12 @@ - basic_machine=sh-hitachi - os=-hms - ;; -+ sh5el) -+ basic_machine=sh5le-unknown -+ ;; -+ sh64) -+ basic_machine=sh64-unknown -+ ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks -@@ -931,10 +1057,6 @@ - basic_machine=t90-cray - os=-unicos - ;; -- tic4x | c4x*) -- basic_machine=tic4x-unknown -- os=-coff -- ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff -@@ -947,6 +1069,10 @@ - basic_machine=tic6x-unknown - os=-coff - ;; -+ tile*) -+ basic_machine=tile-unknown -+ os=-linux-gnu -+ ;; - tx39) - basic_machine=mipstx39-unknown - ;; -@@ -960,6 +1086,10 @@ - tower | tower-32) - basic_machine=m68k-ncr - ;; -+ tpf) -+ basic_machine=s390x-ibm -+ os=-tpf -+ ;; - udi29k) - basic_machine=a29k-amd - os=-udi -@@ -1003,6 +1133,10 @@ - basic_machine=hppa1.1-winbond - os=-proelf - ;; -+ xbox) -+ basic_machine=i686-pc -+ os=-mingw32 -+ ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; -@@ -1014,6 +1148,10 @@ - basic_machine=z8k-unknown - os=-sim - ;; -+ z80-*-coff) -+ basic_machine=z80-unknown -+ os=-sim -+ ;; - none) - basic_machine=none-none - os=-none -@@ -1033,6 +1171,9 @@ - romp) - basic_machine=romp-ibm - ;; -+ mmix) -+ basic_machine=mmix-knuth -+ ;; - rs6000) - basic_machine=rs6000-ibm - ;; -@@ -1049,13 +1190,10 @@ - we32k) - basic_machine=we32k-att - ;; -- sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) -+ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; -- sh64) -- basic_machine=sh64-unknown -- ;; -- sparc | sparcv9 | sparcv9b) -+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) -@@ -1121,30 +1259,31 @@ - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. --#### MozillaHack --# msvc --#### End MozillaHack - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ -+ | -kopensolaris* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ -- | -aos* \ -+ | -aos* | -aros* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ -- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ -- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ -+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ -+ | -openbsd* | -solidbsd* \ -+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ -+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ -- | -chorusos* | -chorusrdb* \ -+ | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ -+ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ -+ | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ -- | -msvc* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ -- | -powermax* | -dnix*) -+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ -+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) -@@ -1162,12 +1301,15 @@ - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ -- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ -+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; -+ -linux-dietlibc) -+ os=-linux-dietlibc -+ ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; -@@ -1180,6 +1322,9 @@ - -opened*) - os=-openedition - ;; -+ -os400*) -+ os=-os400 -+ ;; - -wince*) - os=-wince - ;; -@@ -1201,6 +1346,9 @@ - -atheos*) - os=-atheos - ;; -+ -syllable*) -+ os=-syllable -+ ;; - -386bsd) - os=-bsd - ;; -@@ -1223,6 +1371,9 @@ - -sinix*) - os=-sysv4 - ;; -+ -tpf*) -+ os=-tpf -+ ;; - -triton*) - os=-sysv3 - ;; -@@ -1259,6 +1410,12 @@ - -kaos*) - os=-kaos - ;; -+ -zvmoe) -+ os=-zvmoe -+ ;; -+ -dicos*) -+ os=-dicos -+ ;; - -none) - ;; - *) -@@ -1281,6 +1438,12 @@ - # system, and we'll never get to this point. - - case $basic_machine in -+ score-*) -+ os=-elf -+ ;; -+ spu-*) -+ os=-elf -+ ;; - *-acorn) - os=-riscix1.2 - ;; -@@ -1290,6 +1453,9 @@ - arm*-semi) - os=-aout - ;; -+ c4x-* | tic4x-*) -+ os=-coff -+ ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 -@@ -1315,6 +1481,9 @@ - m68*-cisco) - os=-aout - ;; -+ mep-*) -+ os=-elf -+ ;; - mips*-cisco) - os=-elf - ;; -@@ -1333,9 +1502,15 @@ - *-be) - os=-beos - ;; -+ *-haiku) -+ os=-haiku -+ ;; - *-ibm) - os=-aix - ;; -+ *-knuth) -+ os=-mmixware -+ ;; - *-wec) - os=-proelf - ;; -@@ -1468,9 +1643,15 @@ - -mvs* | -opened*) - vendor=ibm - ;; -+ -os400*) -+ vendor=ibm -+ ;; - -ptx*) - vendor=sequent - ;; -+ -tpf*) -+ vendor=ibm -+ ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; -@@ -1495,7 +1676,7 @@ - esac - - echo $basic_machine$os --exit 0 -+exit - - # Local variables: - # eval: (add-hook 'write-file-hooks 'time-stamp) -Index: nsprpub/build/autoconf/config.guess -=================================================================== ---- nsprpub/build/autoconf/config.guess (revision 15) -+++ nsprpub/build/autoconf/config.guess (working copy) -@@ -1,9 +1,10 @@ - #! /bin/sh - # Attempt to guess a canonical system name. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2005-10-13' -+timestamp='2009-04-27' - - # This file is free software; you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by -@@ -55,8 +56,8 @@ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -@@ -106,7 +107,7 @@ - trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; - trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; - : ${TMPDIR=/tmp} ; -- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || -+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -@@ -160,6 +161,7 @@ - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; -+ sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched -@@ -206,8 +208,11 @@ - *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit ;; -+ *:SolidBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} -+ exit ;; - macppc:MirBSD:*:*) -- echo powerppc-unknown-mirbsd${UNAME_RELEASE} -+ echo powerpc-unknown-mirbsd${UNAME_RELEASE} - exit ;; - *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} -@@ -319,14 +324,30 @@ - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; -+ s390x:SunOS:*:*) -+ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -+ exit ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; -- i86pc:SunOS:5.*:*) -- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) -+ eval $set_cc_for_build -+ SUN_ARCH="i386" -+ # If there is a compiler, see if it is configured for 64-bit objects. -+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. -+ # This test works for both compilers. -+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then -+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ -+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ -+ grep IS_64BIT_ARCH >/dev/null -+ then -+ SUN_ARCH="x86_64" -+ fi -+ fi -+ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize -@@ -527,7 +548,7 @@ - echo rs6000-ibm-aix3.2 - fi - exit ;; -- *:AIX:*:[45]) -+ *:AIX:*:[456]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 -@@ -764,20 +785,21 @@ - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:FreeBSD:*:*) -- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` -+ case ${UNAME_MACHINE} in -+ pc98) -+ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ amd64) -+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ *) -+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ esac - exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; -- i*:MINGW*:*) -+ *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; --#### MozillaHack --# Netscape's hacked uname -- xx:WINNT:* | xx:WIN95:*) -- echo i586-pc-msvc -- exit ;; --### End MozillaHack - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 -@@ -785,9 +807,18 @@ - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit ;; -- x86:Interix*:[34]*) -- echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' -- exit ;; -+ *:Interix*:[3456]*) -+ case ${UNAME_MACHINE} in -+ x86) -+ echo i586-pc-interix${UNAME_RELEASE} -+ exit ;; -+ EM64T | authenticamd | genuineintel) -+ echo x86_64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ IA64) -+ echo ia64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; -@@ -821,6 +852,16 @@ - echo ${UNAME_MACHINE}-pc-minix - exit ;; - arm*:Linux:*:*) -+ eval $set_cc_for_build -+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ -+ | grep -q __ARM_EABI__ -+ then -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ else -+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ fi -+ exit ;; -+ avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - cris:Linux:*:*) -@@ -857,7 +898,11 @@ - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) -@@ -876,7 +921,11 @@ - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - or32:Linux:*:*) -@@ -902,6 +951,9 @@ - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit ;; -+ padre:Linux:*:*) -+ echo sparc-unknown-linux-gnu -+ exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in -@@ -925,9 +977,15 @@ - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; -+ vax:Linux:*:*) -+ echo ${UNAME_MACHINE}-dec-linux-gnu -+ exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu - exit ;; -+ xtensa*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent -@@ -946,9 +1004,6 @@ - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit ;; -- coff-i386) -- echo "${UNAME_MACHINE}-pc-linux-gnucoff" -- exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. -@@ -970,7 +1025,7 @@ - LIBC=gnulibc1 - # endif - #else -- #ifdef __INTEL_COMPILER -+ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout -@@ -980,7 +1035,11 @@ - LIBC=dietlibc - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^LIBC/{ -+ s: ::g -+ p -+ }'`" - test x"${LIBC}" != x && { - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" - exit -@@ -1059,8 +1118,11 @@ - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about -- # the processor, so we play safe by assuming i386. -- echo i386-pc-msdosdjgpp -+ # the processor, so we play safe by assuming i586. -+ # Note: whatever this is, it MUST be the same as what config.sub -+ # prints for the "djgpp" host, or else GDB configury will decide that -+ # this is a cross-build. -+ echo i586-pc-msdosdjgpp - exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 -@@ -1098,6 +1160,16 @@ - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; -+ NCR*:*:4.2:* | MPRAS*:*:4.2:*) -+ OS_REL='.3' -+ test -r /etc/.relid \ -+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` -+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } -+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } -+ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit ;; -@@ -1134,16 +1206,6 @@ - # says - echo i586-unisys-sysv4 - exit ;; --#### MozillaHack -- *:*OpenVMS*:*:*) -- case "${UNAME_SYSTEM}" in -- POSIX_for_OpenVMS_AXP) echo alpha-dec-openvmsposix ;; -- POSIX_for_OpenVMS_VAX) echo vax-dec-openvmsposix ;; -- OpenVMS) echo alpha-dec-openvms ;; -- *) echo unknown-dec-openvms ;; -- esac -- exit ;; --#### End MozillaHack - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm -@@ -1183,6 +1245,9 @@ - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; -+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible. -+ echo i586-pc-haiku -+ exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; -@@ -1192,6 +1257,15 @@ - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit ;; -+ SX-7:SUPER-UX:*:*) -+ echo sx7-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8:SUPER-UX:*:*) -+ echo sx8-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8R:SUPER-UX:*:*) -+ echo sx8r-nec-superux${UNAME_RELEASE} -+ exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit ;; -@@ -1279,6 +1353,12 @@ - i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' - exit ;; -+ i*86:rdos:*:*) -+ echo ${UNAME_MACHINE}-pc-rdos -+ exit ;; -+ i*86:AROS:*:*) -+ echo ${UNAME_MACHINE}-pc-aros -+ exit ;; - esac - - #echo '(No uname command or uname output not recognized.)' 1>&2 -@@ -1439,9 +1519,9 @@ - the operating system you are using. It is advised that you - download the most up to date version of the config scripts from - -- http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess -+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD - and -- http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub -+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD - - If the version you run ($0) is already up to date, please - send the following data and any information you think might be -Index: nsprpub/build/autoconf/config.sub -=================================================================== ---- nsprpub/build/autoconf/config.sub (revision 15) -+++ nsprpub/build/autoconf/config.sub (working copy) -@@ -1,9 +1,10 @@ - #! /bin/sh - # Configuration validation subroutine script. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2005-10-13' -+timestamp='2009-04-17' - - # This file is (in principle) common to ALL GNU software. - # The presence of a machine in this file suggests that SOME GNU software -@@ -71,8 +72,8 @@ - version="\ - GNU config.sub ($timestamp) - --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -@@ -119,8 +120,10 @@ - # Here we must recognize all the valid KERNEL-OS combinations. - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` - case $maybe_os in -- nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ -- kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) -+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ -+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ -+ kopensolaris*-gnu* | \ -+ storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; -@@ -171,6 +174,10 @@ - -hiux*) - os=-hiuxwe2 - ;; -+ -sco6) -+ os=-sco5v6 -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -@@ -187,6 +194,10 @@ - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; -+ -sco5v6*) -+ # Don't forget version if it is 3.2v4 or newer. -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -@@ -226,28 +237,29 @@ - case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. --#### MozillaHack --# mips*el --#### End MozillaHack - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ -- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ -+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ - | bfin \ - | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ -- | fr30 | frv \ -+ | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ -- | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \ -- | mips | mipsbe | mipseb | mips*el | mipsle \ -+ | lm32 \ -+ | m32c | m32r | m32rle | m68000 | m68k | m88k \ -+ | maxq | mb | microblaze | mcore | mep | metag \ -+ | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ -+ | mips64octeon | mips64octeonel \ -+ | mips64orion | mips64orionel \ -+ | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ -- | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ -@@ -260,28 +272,28 @@ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ -- | ms1 \ -+ | moxie \ -+ | mt \ - | msp430 \ -+ | nios | nios2 \ - | ns16k | ns32k \ - | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ -- | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ -+ | score \ -+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ -- | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \ -- | sparcv8 | sparcv9 | sparcv9b \ -- | strongarm \ -+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ -+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ -+ | spu | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ -- | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ -- | z8k) -+ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ -+ | z8k | z80) - basic_machine=$basic_machine-unknown - ;; -- m32c) -- basic_machine=$basic_machine-unknown -- ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown -@@ -289,6 +301,9 @@ - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; -+ ms1) -+ basic_machine=mt-unknown -+ ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and -@@ -302,34 +317,34 @@ - exit 1 - ;; - # Recognize the basic CPU types with company name. --#### MozillaHack --# mips*el --#### End MozillaHack - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ -- | avr-* \ -+ | avr-* | avr32-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ -- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ -+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ -- | m32r-* | m32rle-* \ -+ | lm32-* \ -+ | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -- | m88110-* | m88k-* | maxq-* | mcore-* \ -- | mips-* | mipsbe-* | mipseb-* | mips*el-* | mipsle-* \ -+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ -+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ -+ | mips64octeon-* | mips64octeonel-* \ -+ | mips64orion-* | mips64orionel-* \ -+ | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ -- | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ -@@ -342,30 +357,33 @@ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ -- | ms1-* \ -+ | mt-* \ - | msp430-* \ -+ | nios-* | nios2-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ -- | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \ -+ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ -- | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \ -+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ -- | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ -+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ -- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ -+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ -- | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ -- | xstormy16-* | xtensa-* \ -+ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ -+ | xstormy16-* | xtensa*-* \ - | ymp-* \ -- | z8k-*) -+ | z8k-* | z80-*) - ;; -- m32c-*) -+ # Recognize the basic CPU types without company name, with glob match. -+ xtensa*) -+ basic_machine=$basic_machine-unknown - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. -@@ -429,6 +447,10 @@ - basic_machine=m68k-apollo - os=-bsd - ;; -+ aros) -+ basic_machine=i386-pc -+ os=-aros -+ ;; - aux) - basic_machine=m68k-apple - os=-aux -@@ -437,10 +459,22 @@ - basic_machine=ns32k-sequent - os=-dynix - ;; -+ blackfin) -+ basic_machine=bfin-unknown -+ os=-linux -+ ;; -+ blackfin-*) -+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; -+ cegcc) -+ basic_machine=arm-unknown -+ os=-cegcc -+ ;; - convex-c1) - basic_machine=c1-convex - os=-bsd -@@ -469,8 +503,8 @@ - basic_machine=craynv-cray - os=-unicosmp - ;; -- cr16c) -- basic_machine=cr16c-unknown -+ cr16) -+ basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) -@@ -508,6 +542,10 @@ - basic_machine=m88k-motorola - os=-sysv3 - ;; -+ dicos) -+ basic_machine=i686-pc -+ os=-dicos -+ ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp -@@ -662,6 +700,14 @@ - basic_machine=m68k-isi - os=-sysv - ;; -+ m68knommu) -+ basic_machine=m68k-unknown -+ os=-linux -+ ;; -+ m68knommu-*) -+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - m88k-omron*) - basic_machine=m88k-omron - ;; -@@ -677,12 +723,10 @@ - basic_machine=i386-pc - os=-mingw32 - ;; --#### MozillaHack -- i386-msvc | msvc) -- basic_machine=i386-pc -- os=-msvc -+ mingw32ce) -+ basic_machine=arm-unknown -+ os=-mingw32ce - ;; --#### End MozillaHack - miniframe) - basic_machine=m68000-convergent - ;; -@@ -708,6 +752,9 @@ - basic_machine=i386-pc - os=-msdos - ;; -+ ms1-*) -+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` -+ ;; - mvs) - basic_machine=i370-ibm - os=-mvs -@@ -806,6 +853,14 @@ - basic_machine=i860-intel - os=-osf - ;; -+ parisc) -+ basic_machine=hppa-unknown -+ os=-linux -+ ;; -+ parisc-*) -+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - pbd) - basic_machine=sparc-tti - ;; -@@ -815,6 +870,12 @@ - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; -+ pc98) -+ basic_machine=i386-pc -+ ;; -+ pc98-*) -+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; -@@ -871,6 +932,10 @@ - basic_machine=i586-unknown - os=-pw32 - ;; -+ rdos) -+ basic_machine=i386-pc -+ os=-rdos -+ ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff -@@ -897,6 +962,10 @@ - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; -+ sde) -+ basic_machine=mipsisa32-sde -+ os=-elf -+ ;; - sei) - basic_machine=mips-sei - os=-seiux -@@ -908,6 +977,9 @@ - basic_machine=sh-hitachi - os=-hms - ;; -+ sh5el) -+ basic_machine=sh5le-unknown -+ ;; - sh64) - basic_machine=sh64-unknown - ;; -@@ -997,6 +1069,10 @@ - basic_machine=tic6x-unknown - os=-coff - ;; -+ tile*) -+ basic_machine=tile-unknown -+ os=-linux-gnu -+ ;; - tx39) - basic_machine=mipstx39-unknown - ;; -@@ -1072,6 +1148,10 @@ - basic_machine=z8k-unknown - os=-sim - ;; -+ z80-*-coff) -+ basic_machine=z80-unknown -+ os=-sim -+ ;; - none) - basic_machine=none-none - os=-none -@@ -1110,10 +1190,10 @@ - we32k) - basic_machine=we32k-att - ;; -- sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) -+ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; -- sparc | sparcv8 | sparcv9 | sparcv9b) -+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) -@@ -1179,32 +1259,31 @@ - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. --#### MozillaHack --# msvc --#### End MozillaHack - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ -+ | -kopensolaris* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ -- | -aos* \ -+ | -aos* | -aros* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ -- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ -+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ -+ | -openbsd* | -solidbsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ -- | -chorusos* | -chorusrdb* \ -+ | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -- | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ -+ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ -+ | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ -- | -msvc* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ -- | -skyos* | -haiku*) -+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) -@@ -1334,6 +1413,9 @@ - -zvmoe) - os=-zvmoe - ;; -+ -dicos*) -+ os=-dicos -+ ;; - -none) - ;; - *) -@@ -1356,6 +1438,12 @@ - # system, and we'll never get to this point. - - case $basic_machine in -+ score-*) -+ os=-elf -+ ;; -+ spu-*) -+ os=-elf -+ ;; - *-acorn) - os=-riscix1.2 - ;; -@@ -1365,9 +1453,9 @@ - arm*-semi) - os=-aout - ;; -- c4x-* | tic4x-*) -- os=-coff -- ;; -+ c4x-* | tic4x-*) -+ os=-coff -+ ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 -@@ -1393,6 +1481,9 @@ - m68*-cisco) - os=-aout - ;; -+ mep-*) -+ os=-elf -+ ;; - mips*-cisco) - os=-elf - ;; diff --git a/www-client/mozilla_firefox/patches/2009-09-27/r02-configure-in-withGCC4andCrossCompile.patch b/www-client/mozilla_firefox/patches/2009-09-27/r02-configure-in-withGCC4andCrossCompile.patch deleted file mode 100644 index 9830771ab..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/r02-configure-in-withGCC4andCrossCompile.patch +++ /dev/null @@ -1,362 +0,0 @@ -Index: configure.in -=================================================================== ---- configure.in (revision 7) -+++ configure.in (working copy) -@@ -880,11 +880,17 @@ - OS_RELEASE= - OS_TEST="${target_cpu}" - case "${target_os}" in -- linux*) OS_ARCH=Linux ;; -- solaris*) OS_ARCH=SunOS OS_RELEASE=5 ;; -- mingw*) OS_ARCH=WINNT ;; -- wince*) OS_ARCH=WINCE ;; -- darwin*) OS_ARCH=Darwin OS_TARGET=Darwin ;; -+ linux*) OS_ARCH=Linux ;; -+ solaris*) OS_ARCH=SunOS OS_RELEASE=5 ;; -+ mingw*) OS_ARCH=WINNT ;; -+ wince*) OS_ARCH=WINCE ;; -+ darwin*) OS_ARCH=Darwin OS_TARGET=Darwin ;; -+ beos* | haiku*) OS_ARCH=BeOS OS_TARGET=BeOS ;; -+dnl ------------------------------------------------------- -+dnl Cross-compiling-haiku - This should probably be -+dnl beos*) OS_ARCH=BeOS OS_TARGET=BeOS ;; -+dnl haiku*) OS_ARCH=Haiku OS_TARGET=Haiku ;; -+dnl ------------------------------------------------------- - esac - else - OS_TARGET=`uname -s` -@@ -1002,6 +1008,14 @@ - UnixWare) - HOST_OS_ARCH=UNIXWARE - ;; -+beos* | haiku*) -+ HOST_OS_ARCH=BeOS -+ ;; -+dnl ------------------------------------------------------- -+dnl This should probably be -+dnl beos*) HOST_OS_ARCH=BeOS ;; -+dnl haiku*) HOST_OS_ARCH=Haiku ;; -+dnl ------------------------------------------------------- - esac - - case "$OS_ARCH" in -@@ -1338,7 +1352,7 @@ - dnl System overrides of the defaults for host - dnl ======================================================== - case "$host" in --*-beos*) -+*-beos*|*-haiku*) - HOST_CFLAGS="$HOST_CFLAGS -DXP_BEOS -DBeOS -DBEOS -D_POSIX_SOURCE -DNO_X11" - HOST_NSPR_MDCPUCFG='\"md/_beos.cfg\"' - HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}" -@@ -1482,17 +1496,35 @@ - AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES) - ;; - --*-beos*) -+*-beos*|*-haiku*) - no_x=yes -- MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@' - _PLATFORM_DEFAULT_TOOLKIT="beos" -+ TARGET_NSPR_MDCPUCFG='\"md/_beos.cfg\"' -+ TARGET_MD_ARCH=beos -+ -+ DSO_PIC_CFLAGS=-fPIC - DSO_LDOPTS='-nostart' -+ MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@' -+ MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@' - TK_LIBS='-lbe -lroot' - LIBS="$LIBS -lbe" -+ -+ _HAIKU_BUILD=0 -+ - if test "$COMPILE_ENVIRONMENT"; then -+ AC_CHECK_LIB(network,main,_HAIKU_BUILD=1) -+ fi -+ if test "$_HAIKU_BUILD" = 1; then -+ LIBS="$LIBS -lnetwork" -+ AC_DEFINE(XP_HAIKU) -+ AC_DEFINE(__BEOS__) -+ AC_DEFINE(BONE_VERSION) -+ else - AC_CHECK_LIB(bind,main,LIBS="$LIBS -lbind") - AC_CHECK_LIB(zeta,main,LIBS="$LIBS -lzeta") -+ AC_DEFINE(BEOS_ADDON_WORKAROUND) - fi -+ - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wno-multichar" - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-multichar" - _MOZ_USE_RTTI=1 -@@ -2692,8 +2724,10 @@ - ]) - if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \ - "$ac_cv_have_visibility_class_bug" = "no"; then -- VISIBILITY_FLAGS='-I$(DIST)/include/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h' -- WRAP_SYSTEM_INCLUDES=1 -+ # HACK for Haiku GCC4 -- enforce '-fvisibility=hidden' -+ #VISIBILITY_FLAGS='-I$(DIST)/include/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h' -+ #WRAP_SYSTEM_INCLUDES=1 -+ VISIBILITY_FLAGS='-fvisibility=hidden' - else - VISIBILITY_FLAGS='-fvisibility=hidden' - fi # have visibility pragma bug -@@ -2761,6 +2795,8 @@ - case $target in - *-darwin*) - ;; -+*-beos*|*-haiku*) -+ ;; - *) - AC_CHECK_LIB(dl, dlopen, - AC_CHECK_HEADER(dlfcn.h, -@@ -3125,7 +3161,7 @@ - fi - - case $target_os in -- os2*|msvc*|mks*|cygwin*|mingw*|darwin*|wince*) -+ os2*|msvc*|mks*|cygwin*|mingw*|darwin*|wince*|beos*|haiku*) - ;; - *) - -@@ -5242,7 +5278,7 @@ - dnl Image decoders - dnl ======================================================== - case "$target_os" in --cygwin*|mingw*|msvc*|mks*|os2*|wince*|beos*) -+cygwin*|mingw*|msvc*|mks*|os2*|wince*|beos*|haiku*) - MOZ_IMG_DECODERS_DEFAULT="$MOZ_IMG_DECODERS_DEFAULT icon" - ;; - darwin*) -@@ -5689,7 +5725,7 @@ - - MOZ_DEBUG_ENABLE_DEFS="-DDEBUG -D_DEBUG" - case "${target_os}" in -- beos*) -+ beos*|haiku*) - MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_${USER}" - ;; - msvc*|mks*|cygwin*|mingw*|os2*|wince*) -@@ -6725,7 +6761,7 @@ - os2*) - MOZ_LIBART_LIBS='-lmoz_art -lm' - ;; -- beos*) -+ beos*|haiku*) - MOZ_LIBART_LIBS='-lmoz_art_lgpl -lroot -lbe' - ;; - *) -@@ -7377,6 +7413,9 @@ - elif test "$OS_ARCH" = "BeOS"; then - AC_DEFINE(XP_BEOS) - MOZ_MOVEMAIL=1 -+elif test "$OS_ARCH" = "Haiku"; then -+ AC_DEFINE(XP_BEOS) -+ MOZ_MOVEMAIL=1 - elif test "$OS_ARCH" = "Darwin"; then - AC_DEFINE(XP_UNIX) - AC_DEFINE(UNIX_ASYNC_DNS) -Index: directory/c-sdk/configure.in -=================================================================== ---- directory/c-sdk/configure.in (revision 7) -+++ directory/c-sdk/configure.in (working copy) -@@ -360,7 +360,7 @@ - AC_DEFINE(DEBUG) - DEFINES="$DEFINES -UNDEBUG" - case "${target_os}" in -- beos*) -+ beos*|haiku*) - DEFINES="$DEFINES -DDEBUG_${USER}" - ;; - msvc*|mks*|cygwin*|mingw*|os2*) -@@ -563,10 +563,16 @@ - OS_RELEASE= - OS_TEST="${target_cpu}" - case "${target_os}" in -- linux*) OS_ARCH=Linux ;; -- solaris*) OS_ARCH=SunOS OS_RELEASE=5 ;; -- mingw*) OS_ARCH=WINNT ;; -- darwin*) OS_ARCH=Darwin ;; -+ linux*) OS_ARCH=Linux ;; -+ solaris*) OS_ARCH=SunOS OS_RELEASE=5 ;; -+ mingw*) OS_ARCH=WINNT ;; -+ darwin*) OS_ARCH=Darwin ;; -+ beos* | haiku*) OS_ARCH=BeOS OS_TARGET=BeOS ;; -+dnl ------------------------------------------------------- -+dnl Cross-compiling-haiku - This should probably be -+dnl beos*) OS_ARCH=BeOS OS_TARGET=BeOS ;; -+dnl haiku*) OS_ARCH=Haiku OS_TARGET=Haiku ;; -+dnl ------------------------------------------------------- - esac - else - OS_ARCH=`uname -s | sed -e 's|/|_|g'` -@@ -733,7 +739,7 @@ - fi - WIN_TOP_SRC=`cygpath -a -w $srcdir | sed -e 's|\\\\|/|g'` - ;; --*-beos*) -+*-beos*|*-haiku*) - HOST_CFLAGS="$HOST_CFLAGS -DXP_BEOS -DBeOS -DBEOS -D_POSIX_SOURCE" - ;; - *os2*) -@@ -812,24 +818,40 @@ - RESOLVE_LINK_SYMBOLS=1 - ;; - --*-beos*) -+*-beos*|*-haiku*) - AC_DEFINE(XP_BEOS) - AC_DEFINE(BeOS) - AC_DEFINE(BEOS) - AC_DEFINE(_POSIX_SOURCE) -+ DSO_CFLAGS=-fPIC - DSO_LDOPTS=-nostart -+ - MDCPUCFG_H=_beos.cfg - USE_BTHREADS=1 - PR_MD_ARCH_DIR=beos - RESOLVE_LINK_SYMBOLS=1 -+ -+ _HAIKU_BUILD=0 -+ AC_CHECK_LIB(network,main,_HAIKU_BUILD=1) -+ if test "$_HAIKU_BUILD" = 1; then -+ OS_LIBS="$OS_LIBS -lnetwork" -+ AC_DEFINE(XP_HAIKU) -+ AC_DEFINE(BONE_VERSION) -+ else -+ AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) -+ fi -+ - case "${target_cpu}" in - i*86) -- _OPTIMIZE_FLAGS=-O2 -- _DEBUG_FLAGS='-gdwarf-2 -O0' -- MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@' -- AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) -+ AC_DEFINE(i586) -+ CPU_ARCH=i586 -+ _OPTIMIZE_FLAGS=-O3 -+ _DEBUG_FLAGS='-gdwarf-2 -O0 -fno-inline' -+ MKSHLIB='$(CXX) $(DSO_LDOPTS) -o $@' - ;; - powerpc) -+ AC_DEFINE(ppc) -+ CPU_ARCH=ppc - CC=mwcc - CCC=mwcc - LD=mwld -@@ -2095,7 +2117,7 @@ - fi]) - - case "$target" in --*-beos*) -+*-beos*|*-haiku*) - AC_ARG_WITH(bthreads, - [ --with-bthreads Use system bthreads library as thread subsystem (BeOS only)], - [ if test "$withval" = "yes"; then -Index: nsprpub/configure.in -=================================================================== ---- nsprpub/configure.in (revision 7) -+++ nsprpub/configure.in (working copy) -@@ -381,7 +381,7 @@ - DEFINES="$DEFINES -UNDEBUG" - - case "${target_os}" in -- beos*) -+ beos*|haiku*) - DEFINES="$DEFINES -DDEBUG_${USER}" - ;; - msvc*|mks*|cygwin*|mingw*|os2*) -@@ -652,6 +652,12 @@ - solaris*) OS_ARCH=SunOS OS_RELEASE=5 ;; - mingw*) OS_ARCH=WINNT ;; - darwin*) OS_ARCH=Darwin ;; -+ beos*|haiku*) OS_ARCH=BeOS OS_TARGET=BeOS OS_RELEASE=R5 ;; -+dnl ------------------------------------------------------- -+dnl Cross-compiling-haiku - This should probably be -+dnl beos*) OS_ARCH=BeOS OS_TARGET=BeOS OS_RELEASE=R5 ;; -+dnl haiku*) OS_ARCH=Haiku OS_TARGET=Haiku OS_RELEASE=R1 ;; -+dnl ------------------------------------------------------- - esac - else - OS_ARCH=`uname -s | sed -e 's|/|_|g'` -@@ -823,7 +829,7 @@ - CYGWIN_WRAPPER='sh $(topsrcdir)/build/cygwin-wrapper' - fi - ;; --*-beos*) -+*-beos*|*-haiku*) - HOST_CFLAGS="$HOST_CFLAGS -DXP_BEOS -DBeOS -DBEOS -D_POSIX_SOURCE" - ;; - *os2*) -@@ -898,24 +904,40 @@ - RESOLVE_LINK_SYMBOLS=1 - ;; - --*-beos*) -+*-beos*|*-haiku*) - AC_DEFINE(XP_BEOS) - AC_DEFINE(BeOS) - AC_DEFINE(BEOS) - AC_DEFINE(_POSIX_SOURCE) -- DSO_LDOPTS=-nostart -+ DSO_CFLAGS=-fPIC -+ DSO_LDOPTS='-nostart' -+ - MDCPUCFG_H=_beos.cfg - USE_BTHREADS=1 - PR_MD_ARCH_DIR=beos - RESOLVE_LINK_SYMBOLS=1 -+ -+ _HAIKU_BUILD=0 -+ AC_CHECK_LIB(network,main,_HAIKU_BUILD=1) -+ if test "$_HAIKU_BUILD" = 1; then -+ OS_LIBS="$OS_LIBS -lnetwork" -+ AC_DEFINE(XP_HAIKU) -+ AC_DEFINE(BONE_VERSION) -+ else -+ AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) -+ fi -+ - case "${target_cpu}" in - i*86) -- _OPTIMIZE_FLAGS=-O2 -- _DEBUG_FLAGS='-gdwarf-2 -O0' -- MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@' -- AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) -+ AC_DEFINE(i586) -+ CPU_ARCH=i586 -+ _OPTIMIZE_FLAGS=-O3 -+ _DEBUG_FLAGS='-gdwarf-2 -O0 -fno-inline' -+ MKSHLIB='$(CXX) $(DSO_LDOPTS) -o $@' - ;; - powerpc) -+ AC_DEFINE(ppc) -+ CPU_ARCH=ppc - CC=mwcc - CCC=mwcc - LD=mwld -@@ -2245,11 +2267,13 @@ - - dnl We don't want anything to link with libdl even if it's present on OS X, - dnl since it's not used and not part of the default installation. --dnl The same goes for BeOS. -+dnl The same goes for BeOS and Haiku. - - case $target in --*-darwin*|*-beos*) -+*-darwin*) - ;; -+*-beos*|*-haiku*) -+ ;; - *) - AC_CHECK_LIB(dl, dlopen, - AC_CHECK_HEADER(dlfcn.h, -@@ -2438,7 +2462,7 @@ - fi]) - - case "$target" in --*-beos*) -+*-beos*|*-haiku*) - AC_ARG_WITH(bthreads, - [ --with-bthreads Use system bthreads library as thread subsystem - (BeOS only)], diff --git a/www-client/mozilla_firefox/patches/2009-09-27/r03a-makefile-in.patch b/www-client/mozilla_firefox/patches/2009-09-27/r03a-makefile-in.patch deleted file mode 100644 index 4c7d35333..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/r03a-makefile-in.patch +++ /dev/null @@ -1,375 +0,0 @@ -Index: browser/app/Makefile.in -=================================================================== ---- browser/app/Makefile.in (revision 7) -+++ browser/app/Makefile.in (working copy) -@@ -151,7 +151,7 @@ - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - BEOS_PROGRAM_RESOURCE = $(srcdir)/apprunner-beos.rsrc - ifdef BUILD_STATIC_LIBS - OS_LIBS += -ltracker -lgame -Index: browser/components/migration/src/Makefile.in -=================================================================== ---- browser/components/migration/src/Makefile.in (revision 7) -+++ browser/components/migration/src/Makefile.in (working copy) -@@ -78,7 +78,7 @@ - nsPhoenixProfileMigrator.cpp \ - $(NULL) - --ifneq ($(OS_ARCH),BeOS) -+ifneq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += nsDogbertProfileMigrator.cpp - endif - -Index: calendar/libical/src/libical/Makefile.in -=================================================================== ---- calendar/libical/src/libical/Makefile.in (revision 7) -+++ calendar/libical/src/libical/Makefile.in (working copy) -@@ -89,7 +89,7 @@ - - DEFINES += -DHAVE_CONFIG_H - --ifneq (,$(filter BeOS Darwin OpenVMS NetBSD FreeBSD,$(OS_ARCH))) -+ifneq (,$(filter BeOS Haiku Darwin OpenVMS NetBSD FreeBSD,$(OS_ARCH))) - DEFINES += -D__USE_BSD=1 - endif - -Index: calendar/sunbird/app/Makefile.in -=================================================================== ---- calendar/sunbird/app/Makefile.in (revision 7) -+++ calendar/sunbird/app/Makefile.in (working copy) -@@ -194,7 +194,8 @@ - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+BEOS_PROGRAM_RESOURCE = $(srcdir)/apprunner-beos.rsrc - ifdef BUILD_STATIC_LIBS - OS_LIBS += -ltracker -lgame - endif -Index: directory/c-sdk/ldap/libraries/libldap/Makefile.in -=================================================================== ---- directory/c-sdk/ldap/libraries/libldap/Makefile.in (revision 7) -+++ directory/c-sdk/ldap/libraries/libldap/Makefile.in (working copy) -@@ -237,7 +237,7 @@ - SHARED_LIBRARY_LIBS = $(dist_libdir)/lib$(LBER_LIBNAME).a - endif - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_LIBS = -L$(dist_libdir) -l$(LBER_LIBNAME) -lbe - endif - -@@ -302,7 +302,7 @@ - ifdef SO_FILES_TO_REMOVE - -$(RM) $(SO_FILES_TO_REMOVE) - endif --ifneq (,$(filter AIX Linux HP-UX Darwin BeOS QNX NetBSD OSF1 OpenBSD, $(OS_ARCH))) -+ifneq (,$(filter AIX Linux HP-UX Darwin BeOS Haiku QNX NetBSD OSF1 OpenBSD, $(OS_ARCH))) - $(LINK_LIB) ../liblber/$(OBJDIR_NAME)/*.a - else - ifeq ($(OS_ARCH),OS2) -Index: directory/c-sdk/ldap/libraries/libprldap/Makefile.in -=================================================================== ---- directory/c-sdk/ldap/libraries/libprldap/Makefile.in (revision 7) -+++ directory/c-sdk/ldap/libraries/libprldap/Makefile.in (working copy) -@@ -165,7 +165,7 @@ - EXTRA_LIBS += -L$(dist_libdir) $(DYNAMICNSPR) - endif - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) - EXTRA_LIBS += -L$(dist_libdir) $(DYNAMICNSPR) - endif -Index: directory/c-sdk/ldap/libraries/libssldap/Makefile -=================================================================== ---- directory/c-sdk/ldap/libraries/libssldap/Makefile (revision 7) -+++ directory/c-sdk/ldap/libraries/libssldap/Makefile (working copy) -@@ -167,7 +167,7 @@ - EXTRA_LIBS += $(OS_LIBS) - endif - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) -l$(PRLDAP_LIBNAME) - ifeq ($(NSS_DYNAMIC_SOFTOKN),1) - EXTRA_LIBS += -l$(SOFTOKN_LIBNAME) -Index: directory/c-sdk/ldap/libraries/libssldap/Makefile.in -=================================================================== ---- directory/c-sdk/ldap/libraries/libssldap/Makefile.in (revision 7) -+++ directory/c-sdk/ldap/libraries/libssldap/Makefile.in (working copy) -@@ -182,7 +182,7 @@ - EXTRA_LIBS += $(OS_LIBS) - endif - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) -l$(PRLDAP_LIBNAME) - ifeq ($(NSS_DYNAMIC_SOFTOKN),1) - EXTRA_LIBS += -l$(SOFTOKN_LIBNAME) -Index: embedding/componentlib/Makefile.in -=================================================================== ---- embedding/componentlib/Makefile.in (revision 7) -+++ embedding/componentlib/Makefile.in (working copy) -@@ -152,7 +152,7 @@ - OS_LIBS += ole32.lib shell32.lib - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - OS_LIBS += -ltracker - endif - -Index: intl/uconv/src/Makefile.in -=================================================================== ---- intl/uconv/src/Makefile.in (revision 7) -+++ intl/uconv/src/Makefile.in (working copy) -@@ -119,7 +119,7 @@ - CPPSRCS += nsMacCharset.cpp - EXPORT_RESOURCE += maccharset.properties - else --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += nsBeOSCharset.cpp - else - CPPSRCS += nsUNIXCharset.cpp -Index: ipc/ipcd/client/src/Makefile.in -=================================================================== ---- ipc/ipcd/client/src/Makefile.in (revision 7) -+++ ipc/ipcd/client/src/Makefile.in (working copy) -@@ -64,7 +64,7 @@ - ifeq ($(OS_ARCH),WINNT) - CPPSRCS += ipcConnectionWin.cpp - else --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += ipcConnectionStub.cpp - else - CPPSRCS += ipcConnectionUnix.cpp -Index: ipc/ipcd/daemon/src/Makefile.in -=================================================================== ---- ipc/ipcd/daemon/src/Makefile.in (revision 7) -+++ ipc/ipcd/daemon/src/Makefile.in (working copy) -@@ -59,7 +59,7 @@ - ifeq ($(OS_ARCH),WINNT) - CPPSRCS += ipcdWin.cpp - else --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += ipcdStub.cpp - else - CPPSRCS += ipcdUnix.cpp -Index: js/src/Makefile.in -=================================================================== ---- js/src/Makefile.in (revision 7) -+++ js/src/Makefile.in (working copy) -@@ -246,7 +246,7 @@ - LDFLAGS += $(pathsubst -l%,$(NSPR_STATIC_PATH)/%.a,$(NSPR_LIBS)) - - # BeOS and HP-UX do not require the extra linking of "-lm" --ifeq (,$(filter BeOS HP-UX WINNT WINCE OpenVMS,$(OS_ARCH))) -+ifeq (,$(filter BeOS Haiku HP-UX WINNT WINCE OpenVMS,$(OS_ARCH))) - LDFLAGS += -lm - endif - -Index: mail/app/Makefile.in -=================================================================== ---- mail/app/Makefile.in (revision 7) -+++ mail/app/Makefile.in (working copy) -@@ -149,7 +149,7 @@ - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - BEOS_PROGRAM_RESOURCE = $(srcdir)/apprunner-beos.rsrc - ifdef BUILD_STATIC_LIBS - OS_LIBS += -ltracker -lgame -Index: modules/libpr0n/decoders/Makefile.in -=================================================================== ---- modules/libpr0n/decoders/Makefile.in (revision 7) -+++ modules/libpr0n/decoders/Makefile.in (working copy) -@@ -52,7 +52,7 @@ - ifeq ($(OS_ARCH),OS2) - DIRS = icon/os2 icon - endif --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - DIRS = icon/beos icon - endif - ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) -Index: modules/libpr0n/decoders/icon/Makefile.in -=================================================================== ---- modules/libpr0n/decoders/icon/Makefile.in (revision 7) -+++ modules/libpr0n/decoders/icon/Makefile.in (working copy) -@@ -82,7 +82,7 @@ - PLATFORM = mac - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - PLATFORM = beos - endif - -@@ -102,7 +102,7 @@ - ifdef MOZ_ENABLE_GNOMEUI - USE_ICON_DECODER = 1 - endif --ifeq (,$(filter-out Darwin OS2 BeOS,$(OS_ARCH))) -+ifeq (,$(filter-out Darwin OS2 BeOS Haiku,$(OS_ARCH))) - USE_ICON_DECODER = 1 - endif - -Index: modules/plugin/base/src/Makefile.in -=================================================================== ---- modules/plugin/base/src/Makefile.in (revision 7) -+++ modules/plugin/base/src/Makefile.in (working copy) -@@ -96,7 +96,7 @@ - nsJSNPRuntime.cpp \ - $(NULL) - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += nsPluginsDirBeOS.cpp - CPPSRCS += nsPluginNativeWindow.cpp - else -Index: modules/libreg/src/Makefile.in -=================================================================== ---- modules/libreg/src/Makefile.in (revision 7) -+++ modules/libreg/src/Makefile.in (working copy) -@@ -66,7 +66,7 @@ - - DEFINES += -DUSE_BUFFERED_REGISTRY_IO - # Memory mapped files are not supported under QNX, Neutrino, HP-UX and BeOS --#ifeq (,$(filter BeOS HP-UX QNX,$(OS_ARCH))) -+#ifeq (,$(filter BeOS Haiku HP-UX QNX,$(OS_ARCH))) - #CSRCS += mmapio.c - #DEFINES += -DUSE_MMAP_REGISTRY_IO - #endif -Index: nsprpub/lib/prstreams/Makefile.in -=================================================================== ---- nsprpub/lib/prstreams/Makefile.in (revision 7) -+++ nsprpub/lib/prstreams/Makefile.in (working copy) -@@ -69,7 +69,7 @@ - endif - endif - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CFLAGS += -frtti -fexceptions - endif - -@@ -118,7 +118,7 @@ - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - OS_LIBS = -lstdc++.r4 - endif - -Index: toolkit/library/Makefile.in -=================================================================== ---- toolkit/library/Makefile.in (revision 7) -+++ toolkit/library/Makefile.in (working copy) -@@ -364,7 +364,7 @@ - EXTRA_DSO_LDOPTS += $(MOZ_PANGO_LIBS) - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_DSO_LDOPTS += -lbe - endif - -Index: xpcom/build/Makefile.in -=================================================================== ---- xpcom/build/Makefile.in (revision 7) -+++ xpcom/build/Makefile.in (working copy) -@@ -173,7 +173,7 @@ - EXTRA_DSO_LDOPTS += $(TK_LIBS) - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_DSO_LDOPTS += -lbe - endif - -Index: xpcom/obsolete/Makefile.in -=================================================================== ---- xpcom/obsolete/Makefile.in (revision 7) -+++ xpcom/obsolete/Makefile.in (working copy) -@@ -120,7 +120,7 @@ - EXTRA_DSO_LDOPTS += $(TK_LIBS) - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_DSO_LDOPTS += -lbe - endif - -Index: xpcom/reflect/xptcall/src/md/unix/Makefile.in -=================================================================== ---- xpcom/reflect/xptcall/src/md/unix/Makefile.in (revision 7) -+++ xpcom/reflect/xptcall/src/md/unix/Makefile.in (working copy) -@@ -95,9 +95,10 @@ - endif - endif - # --# BeOS/Intel (uses the same unixish_x86 code) -+# BeOS/Intel (uses the same as Linux, works well. Migrate others!) - # --ifeq ($(OS_ARCH)$(OS_TEST),BeOSBePC) -+#ifeq ($(OS_ARCH)$(OS_TEST),BeOSBePC) -+ifeq (,$(filter-out BeOSBePC HaikuBePC, $(OS_ARCH)$(OS_TEST))) - CPPSRCS := xptcinvoke_gcc_x86_unix.cpp xptcstubs_gcc_x86_unix.cpp - endif - # -Index: xpinstall/packager/Makefile.in -=================================================================== ---- xpinstall/packager/Makefile.in (revision 7) -+++ xpinstall/packager/Makefile.in (working copy) -@@ -48,7 +48,7 @@ - ifeq ($(OS_ARCH),IRIX) - STRIP_FLAGS = -f - endif --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - STRIP_FLAGS = -g - PLATFORM_EXCLUDE_LIST = ! -name "*.stub" ! -name "$(MOZ_PKG_APPNAME)-bin" - endif -Index: xulrunner/app/Makefile.in -=================================================================== ---- xulrunner/app/Makefile.in (revision 7) -+++ xulrunner/app/Makefile.in (working copy) -@@ -59,7 +59,7 @@ - ifeq ($(USE_SHORT_LIBNAME), 1) - PROGRAM = xulrunner$(BIN_SUFFIX) - else --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - PROGRAM = xulrunner$(BIN_SUFFIX) - else - PROGRAM = xulrunner-bin$(BIN_SUFFIX) -@@ -85,7 +85,7 @@ - ifeq ($(OS_ARCH),WINNT) - CPPSRCS += nsRegisterGREWin.cpp - else --ifneq (,$(filter OS2 Darwin,$(OS_ARCH))) -+ifneq (,$(filter OS2 Darwin BeOS Haiku,$(OS_ARCH))) - CPPSRCS += nsRegisterGREVoid.cpp - else - CPPSRCS += nsRegisterGREUnix.cpp -@@ -174,7 +174,7 @@ - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - OS_LIBS += -ltracker - endif - diff --git a/www-client/mozilla_firefox/patches/2009-09-27/r03b-starmk.patch b/www-client/mozilla_firefox/patches/2009-09-27/r03b-starmk.patch deleted file mode 100644 index 93a823127..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/r03b-starmk.patch +++ /dev/null @@ -1,115 +0,0 @@ -Index: config/config.mk -=================================================================== ---- config/config.mk (revision 7) -+++ config/config.mk (working copy) -@@ -110,9 +110,6 @@ - LD := $(CC) - endif - endif --ifeq ($(OS_ARCH),BeOS) --BEOS_ADDON_WORKAROUND = 1 --endif - - # - # Strip off the excessively long version numbers on these platforms, -Index: config/rules.mk -=================================================================== ---- config/rules.mk (revision 7) -+++ config/rules.mk (working copy) -@@ -517,7 +517,7 @@ - # - # BeOS: add -Bsymbolic flag for components - # --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter BeOS Haiku,$(OS_ARCH))) - ifdef IS_COMPONENT - EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic - endif -@@ -827,7 +827,7 @@ - ifdef MOZ_POST_PROGRAM_COMMAND - $(MOZ_POST_PROGRAM_COMMAND) $@ - endif --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - ifdef BEOS_PROGRAM_RESOURCE - xres -o $@ $(BEOS_PROGRAM_RESOURCE) - mimeset $@ -Index: directory/c-sdk/build.mk -=================================================================== ---- directory/c-sdk/build.mk (revision 7) -+++ directory/c-sdk/build.mk (working copy) -@@ -442,7 +442,7 @@ - SO_FILES_TO_REMOVE=so_locations - endif - --ifneq (,$(filter BeOS Darwin NetBSD,$(OS_ARCH))) -+ifneq (,$(filter BeOS Haiku Darwin NetBSD,$(OS_ARCH))) - LINK_DLL = $(MKSHLIB) $(OBJS) - endif - -Index: security/coreconf/config.mk -=================================================================== ---- security/coreconf/config.mk (revision 7) -+++ security/coreconf/config.mk (working copy) -@@ -68,8 +68,12 @@ - ifeq (,$(filter-out $(TARGET_OSES),$(OS_TARGET))) - include $(CORE_DEPTH)/coreconf/$(OS_TARGET).mk - else -+ifeq ($(OS_ARCH), Haiku) -+include $(CORE_DEPTH)/coreconf/BeOS.mk -+else - include $(CORE_DEPTH)/coreconf/$(OS_TARGET)$(OS_RELEASE).mk - endif -+endif - - ####################################################################### - # [4.0] Master "Core Components" source and release tags # -Index: security/nss/lib/ssl/config.mk -=================================================================== ---- security/nss/lib/ssl/config.mk (revision 7) -+++ security/nss/lib/ssl/config.mk (working copy) -@@ -111,7 +111,7 @@ - -lnspr4 \ - $(NULL) - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_SHARED_LIBS += -lbe - endif - -Index: toolkit/mozapps/installer/package-name.mk -=================================================================== ---- toolkit/mozapps/installer/package-name.mk (revision 7) -+++ toolkit/mozapps/installer/package-name.mk (working copy) -@@ -59,6 +59,9 @@ - ifeq ($(OS_ARCH),OS2) - MOZ_PKG_PLATFORM := os2 - endif -+ifeq ($(OS_ARCH), Haiku) -+MOZ_PKG_PLATFORM := Haiku -+endif - ifeq ($(OS_ARCH), BeOS) - ifeq (,$(filter-out 6.%, $(OS_RELEASE))) - MOZ_PKG_PLATFORM := Zeta -Index: toolkit/mozapps/installer/packager.mk -=================================================================== ---- toolkit/mozapps/installer/packager.mk (revision 7) -+++ toolkit/mozapps/installer/packager.mk (working copy) -@@ -48,7 +48,7 @@ - ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) - MOZ_PKG_FORMAT = DMG - else --ifeq (,$(filter-out OS2 WINNT BeOS, $(OS_ARCH))) -+ifeq (,$(filter-out OS2 WINNT BeOS Haiku, $(OS_ARCH))) - MOZ_PKG_FORMAT = ZIP - ifeq ($(OS_ARCH),OS2) - INSTALLER_DIR = os2 -@@ -251,7 +251,7 @@ - ifeq ($(OS_ARCH),IRIX) - STRIP_FLAGS = -f - endif --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - STRIP_FLAGS = -g - PLATFORM_EXCLUDE_LIST = ! -name "*.stub" ! -name "$(MOZ_PKG_APPNAME)-bin" - endif diff --git a/www-client/mozilla_firefox/patches/2009-09-27/r04a-rdef-support-in-Makefile.patch b/www-client/mozilla_firefox/patches/2009-09-27/r04a-rdef-support-in-Makefile.patch deleted file mode 100644 index a751978a0..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/r04a-rdef-support-in-Makefile.patch +++ /dev/null @@ -1,140 +0,0 @@ -Index: mozilla/browser/app/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/browser/app/Makefile.in,v -retrieving revision 1.85.2.12 -diff -u -8 -p -w -r1.85.2.12 Makefile.in ---- mozilla/browser/app/Makefile.in 12 May 2008 18:25:50 -0000 1.85.2.12 -+++ mozilla/browser/app/Makefile.in 8 Jul 2009 21:49:35 -0000 -@@ -146,17 +150,20 @@ endif - ifdef BUILD_STATIC_LIBS - RCFLAGS += -DMOZ_STATIC_BUILD - endif - ifdef DEBUG - RCFLAGS += -DDEBUG - endif - endif - - ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ifeq ($(OS_ARCH),Haiku) -+BEOS_PROGRAM_RDEF = $(srcdir)/apprunner-beos.rdef -+endif - BEOS_PROGRAM_RESOURCE = $(srcdir)/apprunner-beos.rsrc - ifdef BUILD_STATIC_LIBS - OS_LIBS += -ltracker -lgame - endif - endif - - ifeq ($(OS_ARCH),OS2) - RESFILE=splashos2.res -Index: mozilla/calendar/sunbird/app/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/calendar/sunbird/app/Makefile.in,v -retrieving revision 1.21.2.23 -diff -u -8 -p -w -r1.21.2.23 Makefile.in ---- mozilla/calendar/sunbird/app/Makefile.in 4 May 2008 01:32:07 -0000 1.21.2.23 -+++ mozilla/calendar/sunbird/app/Makefile.in 8 Jul 2009 21:50:01 -0000 -@@ -189,18 +193,21 @@ endif - ifdef BUILD_STATIC_LIBS - RCFLAGS += -DMOZ_STATIC_BUILD - endif - ifdef DEBUG - RCFLAGS += -DDEBUG - endif - endif - - ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ifeq ($(OS_ARCH),Haiku) -+BEOS_PROGRAM_RDEF = $(srcdir)/apprunner-beos.rdef -+endif - BEOS_PROGRAM_RESOURCE = $(srcdir)/apprunner-beos.rsrc - ifdef BUILD_STATIC_LIBS - OS_LIBS += -ltracker -lgame - endif - endif - - ifeq ($(OS_ARCH),OS2) - RESFILE=splashos2.res - RCFLAGS += -DMOZ_SUNBIRD -Index: mozilla/config/rules.mk -=================================================================== -RCS file: /cvsroot/mozilla/config/rules.mk,v -retrieving revision 3.487.2.9 -diff -u -8 -p -w -r3.487.2.9 rules.mk ---- mozilla/config/rules.mk 18 Dec 2007 21:33:08 -0000 3.487.2.9 -+++ mozilla/config/rules.mk 8 Jul 2009 21:50:19 -0000 -@@ -822,17 +826,20 @@ endif # OS2 - endif # WINCE - - ifdef ENABLE_STRIP - $(STRIP) $@ - endif - ifdef MOZ_POST_PROGRAM_COMMAND - $(MOZ_POST_PROGRAM_COMMAND) $@ - endif - ifneq (,$(filter BeOS Haiku,$(OS_ARCH))) -+ifdef BEOS_PROGRAM_RDEF -+ rc -o $(BEOS_PROGRAM_RESOURCE) $(BEOS_PROGRAM_RDEF) -+endif - ifdef BEOS_PROGRAM_RESOURCE - xres -o $@ $(BEOS_PROGRAM_RESOURCE) - mimeset $@ - endif - endif # BeOS - - $(HOST_PROGRAM): $(HOST_PROGOBJS) $(HOST_LIBS_DEPS) $(HOST_EXTRA_DEPS) Makefile Makefile.in - ifeq ($(MOZ_OS2_TOOLS),VACPP) -Index: mozilla/mail/app/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/mail/app/Makefile.in,v -retrieving revision 1.46.2.10 -diff -u -8 -p -w -r1.46.2.10 Makefile.in ---- mozilla/mail/app/Makefile.in 22 Oct 2008 21:04:53 -0000 1.46.2.10 -+++ mozilla/mail/app/Makefile.in 8 Jul 2009 21:52:18 -0000 -@@ -142,17 +146,20 @@ RCFLAGS += -DMOZ_THUNDERBIRD -I$(srcdir) - else - RCFLAGS += -DMOZ_THUNDERBIRD --include-dir $(srcdir) - endif - ifdef BUILD_STATIC_LIBS - RCFLAGS += -DMOZ_STATIC_BUILD - endif - endif - - ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ifeq ($(OS_ARCH),Haiku) -+BEOS_PROGRAM_RDEF = $(srcdir)/apprunner-beos.rdef -+endif - BEOS_PROGRAM_RESOURCE = $(srcdir)/apprunner-beos.rsrc - ifdef BUILD_STATIC_LIBS - OS_LIBS += -ltracker -lgame - endif - endif - - ifeq ($(OS_ARCH),OS2) - RESFILE=splashos2.res -Index: mozilla/xpfe/bootstrap/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xpfe/bootstrap/Attic/Makefile.in,v -retrieving revision 1.283.2.6 -diff -u -8 -p -w -r1.283.2.6 Makefile.in ---- mozilla/xpfe/bootstrap/Makefile.in 29 Sep 2007 20:15:11 -0000 1.283.2.6 -+++ mozilla/xpfe/bootstrap/Makefile.in 8 Jul 2009 21:54:55 -0000 -@@ -215,16 +219,19 @@ ifdef GC_LEAK_DETECTOR - LIBS += -lboehm - endif - - ifdef WRAP_SYSTEM_INCLUDES - DEFINES += -DWRAP_SYSTEM_INCLUDES - endif - - ifeq ($(MOZ_WIDGET_TOOLKIT),beos) -+ifeq ($(OS_ARCH),Haiku) -+BEOS_PROGRAM_RDEF = $(srcdir)/apprunner-beos.rdef -+endif - BEOS_PROGRAM_RESOURCE = $(srcdir)/apprunner-beos.rsrc - CPPSRCS += nsNativeAppSupportBeOS.cpp - CPPSRCS += nsNativeAppSupportBase.cpp - ifdef BUILD_STATIC_LIBS - OS_LIBS += -ltracker -lgame - endif - endif - diff --git a/www-client/mozilla_firefox/patches/2009-09-27/r04b-just-rdefs-no-Makefile.patch b/www-client/mozilla_firefox/patches/2009-09-27/r04b-just-rdefs-no-Makefile.patch deleted file mode 100644 index 3b7cba03b..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/r04b-just-rdefs-no-Makefile.patch +++ /dev/null @@ -1,532 +0,0 @@ -Index: /generated/bezilla/mozilla/xpfe/apprunner-beos.rdef -=================================================================== ---- /generated/bezilla/mozilla/xpfe/apprunner-beos.rdef (revision 0) -+++ /generated/bezilla/mozilla/xpfe/apprunner-beos.rdef (revision 0) -@@ -0,0 +1,136 @@ -+/* -+ * BeZillaBrowser.rdef -+ */ -+ -+resource app_signature "application/x-vnd.Mozilla-SeaMonkey"; -+ -+resource app_flags B_SINGLE_LAUNCH; -+ -+resource app_version { -+ /* -+ * We are using the source code version number -+ * for our program version. -+ * TODO : implement something better. -+ */ -+ major = 1, -+ middle = 8, -+ minor = 1, -+ -+ /* 0 = development 1 = alpha 2 = beta -+ 3 = gamma 4 = golden master 5 = final */ -+ variety = 0, -+ -+ internal = 21, -+ -+ short_info = "BeZillaSuite", -+ long_info = "BeZillaSuite is based on Mozilla's source code" -+}; -+ -+resource file_types message { -+ "types" = "application/x-vnd.Be.URL.file", -+ "types" = "application/x-vnd.Be.URL.ftp", -+ "types" = "application/x-vnd.Be.URL.http", -+ "types" = "application/x-vnd.Be.URL.https", -+ "types" = "application/x-vnd.Be.URL.mailto", -+ "types" = "application/x-vnd.Be.URL.news", -+ "types" = "text/html" -+ /* -+ * Should BeZillaSuite include these additional filetypes? -+ * note: MailNews has them -+ "types" = "applicataion/x-person", -+ "types" = "message/rfc822", -+ "types" = "text/E-mail", -+ "types" = "text/x-email" -+ "types" = "text/x-vnd.Be-MailDraft" -+ */ -+}; -+ -+resource vector_icon { -+ $"6E636966210500020016029E8638A20EBA220EBA9E86384880254A18EA00FFFF" -+ $"8002001602BC9D88BB1F643B1F64BC9D884B716D48772700FFFF80020016023B" -+ $"F73A0000000000003BF73A49B5114976B000FFFF800200160237A0DDB61AF236" -+ $"1AF237A0DD497CAA48588100FFFF800200160238D81CB8152D38152D38D81C48" -+ $"420A499FB600FFFF8002001602397095000000000000397095486EDA49100600" -+ $"FFFF800200160231E5B2BA0EAF3A0EAF31E5B247DA3349779B00FFFF80020016" -+ $"0236BBEFB4543A34543A36BBEF495BDE469BC700FFFF6B0200160236E2E70000" -+ $"0000000036E2E74A2CD64670CD00FFFF800200160237AB1000000000000037AB" -+ $"104AE1D848449500FFFF5702001602375C10B74516374516375C1048B2B04AE9" -+ $"7200FFFF8002001602B07700B74912374912B077004898AD4AD99500FFFF8002" -+ $"00160232CFA5BA0B483A0B4832CFA54A3C584BA00E00FFFF8002001602368CB7" -+ $"000000000000368CB74B3D5E49752800FFFF4F0200160236A81C000000000000" -+ $"36A81C4B94C84A808500FFFF4002000602B738F7362603B62603B738F748BB3F" -+ $"4A241700A91212FFD7121202001602B04887376143B76143B0488748D36C44FB" -+ $"3100FFFF6B02001602B47620362BAAB62BAAB476204A0C144406C600FFFF8002" -+ $"001602B4CAE23409B3B409B3B4CAE24AD8D54611F100FFFF8002001602B328E4" -+ $"324E4AB24E4AB328E44B36A648859C00FFFF8002001602B22376311F03B11F03" -+ $"B223764B891349FFBC00FFFF80010079009803FF000004006002001602B4E6F3" -+ $"319259B19259B4E6F34B2F5D4AA2CA00FFFF0003FFFF0004FFD801FFFF669805" -+ $"000200060237889D389554BBFC4A3AB9D0491ADE4A422000FFF9BAFFFFC10402" -+ $"0006023882A6389353BB177D3B0378484ADD4AF27700C7E3FFFF392FFF020006" -+ $"0237A0CC393C5ABC1AC23A5C164A19B94AFE5400FF9797FFCE3232290633EEEB" -+ $"FFFFAAEAABDBAEBBBEAE2BC0CEB389C02424C074B415BFF0B478BFB4B450BFB7" -+ $"B455BFB6B455BF8CB436BF14B430BF55B42DBEF5B3FFBE82B33EBBDBB3F2BBCE" -+ $"B4D7BBD0B4BABBCBB4DABBC7B4DABBC7B4DABBC8B4DABB45B50ABB45B50ABB44" -+ $"B50ABB37B50DBB37B50DBAD6B534BA1EB58DBA78B560BA1EB58DBA12B593BA12" -+ $"B593BA0FB596B99BB5D6B99BB5D6B99AB5D6B975B5ECB975B5ECB974B5EDB918" -+ $"B626B918B626B917B626B8EDB642B893B681B887B689B86CB69CB7F22AB7B5B7" -+ $"2DB7A9B76EB73CB920B755B8C5B6B5B9A4B380BC3AB4F7BB4BB380BC3AB317BC" -+ $"7FB33E42B755C332B80EC320B7E7C323B7FBC3522CC3C54FBB03C7E8BAF4C7DB" -+ $"BAD1C898BA59CA44BC40CC83BAD4CBC3BDF3CD6FC0A0CDA4C760C888CA38C797" -+ $"C90DC879CB7BC6A2CC38C4DCCB9AC3A6CBB6C3DDCBA2C34CCBC2C1EBCA78BF62" -+ $"C954BF30C9ADBF3FC934BEE9C900BE83C91DBEC2C927BE17C999BCEAC857BA6B" -+ $"C720BABCC767BAABC73FBA2EC7C0B7EEC5B1B563C3F4B6DBC472B66FC405B613" -+ $"C427B41BC12CB2F006032FBAF5C05EBAF5C05EBAF7C05C34C05A34C05B34C05A" -+ $"34C05B0610EE7AAAAAC693C7B5C9E8C667C896C755CAB5C5D3CB14C47FC521B8" -+ $"CDC521B8CDC0B9B834BD7FBA63BC9BBC64B789BF00B92ABE82B789BF00C251BC" -+ $"E5C1CCBED1C0BCBE70C324BB51C5B0BB5AC71ABFC8C4E2C044C512C05CCC1E06" -+ $"04EEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50AB87FB7A5BC0CB4F7B87F" -+ $"B7A50604FEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50ABF40B50ABD2DB5" -+ $"21B87FB7A5BA8CB5E9B87FB7A50605BB02B3F7BCF4B5CD36B3F7BCF4B789BF00" -+ $"BA19BDD6B8DABE8835BD1EBC9BBC64B801B9930A04B87FB7A5BD7FBA63BC9BBC" -+ $"64B801B9930A04B3F7BCF4B413C012B789C251B789BF000A04BC7AB801BF99B6" -+ $"C0BE1BB43BBCAAB49E0A05BFE1B69AC187B3FFC341B4ABC30EB77BC204B6CF0A" -+ $"05C3E9B805C594B69AC6D3B825C637BAECC521B8CD0A06B967C223B8A5C3F1BB" -+ $"51C5B0BE70C323BED1C0BCBCE5C1CC0A04B8A5C548B8A5C3F1BB51C5B0BB5AC7" -+ $"1A0606BA0ABC41C6A5BB73C983BCF9CB79BBC8CAD5BE40CC23C05CCC1EC044C5" -+ $"12BFC8C4E20A04C6A1BBC1C7E5BB6BC8ABBCF7C80EBE920A04C9EA41C8C5BFF3" -+ $"CABBC3D4CAE3C2140A06BA90C206BA19C33CBADEC3EBBEA7C1C4BED1C0BCBCE5" -+ $"C1CC0A06BC7AB801BCAAB49EBE1BB43BBE33B460BCDAB4C7BCB1B7EC0A04BFE1" -+ $"B69AC021B6A1C1ADB40DC187B3FF0A04C3E9B805C594B69AC5B7B6C3C41AB825" -+ $"0A04C6A1BBC1C7E5BB6BC7F4BB8EC6B9BBEC0A04C8C5BFF3C9EA41CA07C060C8" -+ $"E5C02B0628AAAAAAAAAAAEEFAAA9BACAB4C3BFCAE3C214C9EA41C8C5BFF3C80F" -+ $"BE90C8ABBCF7C7F4BB8EC7E5BB6BC6A1BBC1C637BAECC6D3B826C5B7B6C3C594" -+ $"B69AC3E9B805C3F9B80FC30EB77BC341B4ABC1ADB40DC187B3FFC068B5C6BF40" -+ $"B50ABE9BB514BF03B507BE9BB514BE1BB43BBCAAB49EBC9EB57CBC9EB57CBB34" -+ $"B5E3B87FB7A5B9BC29B87FB7A5B801B993B3F7BCF4B5CD36B3F7BCF4B413C012" -+ $"B789C251B964C223B8A5C3F1C548BB5AC71ABFC8C4E2C044C512C05CCC1EC693" -+ $"C7B5C9B7C688C894C759CAD2C5BECB14C47F0A06BE4DC302BB334EB8F2C3E4B9" -+ $"9FC21DBCE5C1CCBEAEC0D1020ABFDBBBF7BFE1BBDFBFC9BC38BF63BC91BF9DBC" -+ $"71BEE7BCD8BE03BC31BE4BBCABBE03BC31BE00BC24BE0137BE10BC1ABE4BBC03" -+ $"BE30BC0EBE4BBC03BEE9BBBABEE9BBBABEE9BBBABF7BBB58BF7BBB58BF8FBB45" -+ $"BFBDBB29BFA9BB3440BB2DBFC3BB34BFC3BB34BFD9BB5BBFE7BBB2BFE7BB85BF" -+ $"E7BBC8020ABFD5BC12BFD9BC00BFC3BC4FBF67BC9CBF9CBC80BEFCBCDBBE32BC" -+ $"45BE70BCB4BE32BC45BE2BBC39BE30BC41BE3EBC32BE70BC1DBE58BC27BE70BC" -+ $"1DBEFEBBDDBEFEBBDDBEFEBBDDBF7EBB84BF7EBB84BF90BB77BFB7BB5CBFA7BB" -+ $"66BFBDBB5F40BB6640BB66BFD4BB87BFDCBBD4BFDCBBADBFDCBBEA0605BA02BC" -+ $"2BC6AFC155C3BAC269C139C245C1A9C25CC1A9C1A5C3EFBBF5C7310A04BC7AB8" -+ $"01BF99B6C0C125B79BBFB3B7FF0A03BFE1B69AC3A0B7D5C204B6CF0A05BCAAC6" -+ $"70BCB9C66BBE0FC73AC05BC70BBDF4C7890A04BC34C73FBDE5C88AC04EC88BBD" -+ $"C9C8D80A04BB81C817BD6CC9CFC072C973BD505A0A04BB60C971BD4FCB2BC054" -+ $"CACFBD33CB790A03C6D944C9E8C6DAC695540A03BD9FBC21BEE9BBBAC059BA77" -+ $"0204BF4DBBE8BF4DBC1ABF4DBBB7BF95BB8FBF6FBB8FBFBCBB8FBFD9BBE8BFD9" -+ $"BBB7BFD9BC1ABF95BC42BFBCBC42BF6FBC420A04BAD6C37ABBFAC2FDBAD1C336" -+ $"BA8CC2FD0606BA0ABC2BC6AF35C98ABCC1CB6BBB88CAC8BE00CC16C049CC29C0" -+ $"33C51CBFB5C4EA0A062C472C4E3251364E364730440A06265226592C5C305930" -+ $"522A4F0A0632533259385C3C593C5237C5D3290A000100000A010101000A0201" -+ $"02000A030103000A040104000A050105000A060106000A070107000A08010800" -+ $"0A090109000A0A010A000A0B010B000A0C010C000A0D010D000A0E010E000A0F" -+ $"010F000A100110000A110111000A120112000A130113000A140114000A150115" -+ $"000A1603161718000A170119000A18011A000A18011B000A18011C000A18011D" -+ $"000A18011E000A18011F000A180120000A190121000A180122000A1A0123000A" -+ $"1B0124000A1C0125000A1D032627283841B30C15FF01178400040A1D03262728" -+ $"3841B30C001501178600040A1E01262041B30C0A1F01272041B30C0A20012820" -+ $"41B30C" -+}; -+ -+ -Index: /generated/bezilla/mozilla/mail/app/apprunner-beos.rdef -=================================================================== ---- /generated/bezilla/mozilla/mail/app/apprunner-beos.rdef (revision 0) -+++ /generated/bezilla/mozilla/mail/app/apprunner-beos.rdef (revision 0) -@@ -0,0 +1,126 @@ -+/* -+ * BeZillaBrowser.rdef -+ */ -+ -+resource app_signature "application/x-vnd.Mozilla-Thunderbird"; -+ -+resource app_flags B_SINGLE_LAUNCH; -+ -+resource app_version { -+ /* -+ * We are using the source code version number -+ * for our program version. -+ * TODO : implement something better. -+ */ -+ major = 1, -+ middle = 8, -+ minor = 1, -+ -+ /* 0 = development 1 = alpha 2 = beta -+ 3 = gamma 4 = golden master 5 = final */ -+ variety = 0, -+ -+ internal = 21, -+ -+ short_info = "BeZillaMailNews", -+ long_info = "BeZillaMailNews is based on Mozilla's source code" -+}; -+ -+resource file_types message { -+ "types" = "application/x-vnd.Be.URL.mailto", -+ "types" = "application/x-vnd.Be.URL.news", -+ "types" = "applicataion/x-person", -+ "types" = "message/rfc822", -+ "types" = "text/E-mail", -+ "types" = "text/x-email", -+ "types" = "text/x-vnd.Be-MailDraft" -+}; -+ -+resource vector_icon { -+ $"6E636966200500020016029E8638A20EBA220EBA9E86384880254A18EA00FFFF" -+ $"8002001602BC9D88BB1F643B1F64BC9D884B716D48772700FFFF80020016023B" -+ $"F73A0000000000003BF73A49B5114976B000FFFF800200160237A0DDB61AF236" -+ $"1AF237A0DD497CAA48588100FFFF800200160238D81CB8152D38152D38D81C48" -+ $"420A499FB600FFFF8002001602397095000000000000397095486EDA49100600" -+ $"FFFF800200160231E5B2BA0EAF3A0EAF31E5B247DA3349779B00FFFF80020016" -+ $"0236BBEFB4543A34543A36BBEF495BDE469BC700FFFF6B0200160236E2E70000" -+ $"0000000036E2E74A2CD64670CD00FFFF800200160237AB1000000000000037AB" -+ $"104AE1D848449500FFFF5702001602375C10B74516374516375C1048B2B04AE9" -+ $"7200FFFF8002001602B07700B74912374912B077004898AD4AD99500FFFF8002" -+ $"00160232CFA5BA0B483A0B4832CFA54A3C584BA00E00FFFF8002001602368CB7" -+ $"000000000000368CB74B3D5E49752800FFFF4F0200160236A81C000000000000" -+ $"36A81C4B94C84A808500FFFF4002000602B738F7362603B62603B738F748BB3F" -+ $"4A241700A91212FFD7121202001602B04887376143B76143B0488748D36C44FB" -+ $"3100FFFF6B02001602B47620362BAAB62BAAB476204A0C144406C600FFFF8002" -+ $"001602B4CAE23409B3B409B3B4CAE24AD8D54611F100FFFF8002001602B328E4" -+ $"324E4AB24E4AB328E44B36A648859C00FFFF8002001602B22376311F03B11F03" -+ $"B223764B891349FFBC00FFFF80010079009803FF000004006002001602B4E6F3" -+ $"319259B19259B4E6F34B2F5D4AA2CA00FFFF0003FFFF0004FFD801FFFF669805" -+ $"0002000602389ECD3AF097BC491F3A09894954654ABDFA00FFFFFFFFD9D09303" -+ $"6B5222280633EEEBFFFFAAEAABDBAEBBBEAE2BC0CEB389C02424C074B415BFF0" -+ $"B478BFB4B450BFB7B455BFB6B455BF8CB436BF14B430BF55B42DBEF5B3FFBE82" -+ $"B33EBBDBB3F2BBCEB4D7BBD0B4BABBCBB4DABBC7B4DABBC7B4DABBC8B4DABB45" -+ $"B50ABB45B50ABB44B50ABB37B50DBB37B50DBAD6B534BA1EB58DBA78B560BA1E" -+ $"B58DBA12B593BA12B593BA0FB596B99BB5D6B99BB5D6B99AB5D6B975B5ECB975" -+ $"B5ECB974B5EDB918B626B918B626B917B626B8EDB642B893B681B887B689B86C" -+ $"B69CB7F22AB7B5B72DB7A9B76EB73CB920B755B8C5B6B5B9A4B380BC3AB4F7BB" -+ $"4BB380BC3AB317BC7FB33E42B755C332B80EC320B7E7C323B7FBC3522CC3C54F" -+ $"BB03C7E8BAF4C7DBBAD1C898BA59CA44BC40CC83BAD4CBC3BDF3CD6FC0A0CDA4" -+ $"C760C888CA38C797C90DC879CB7BC6A2CC38C4DCCB9AC3A6CBB6C3DDCBA2C34C" -+ $"CBC2C1EBCA78BF62C954BF30C9ADBF3FC934BEE9C900BE83C91DBEC2C927BE17" -+ $"C999BCEAC857BA6BC720BABCC767BAABC73FBA2EC7C0B7EEC5B1B563C3F4B6DB" -+ $"C472B66FC405B613C427B41BC12CB2F006032FBAF5C05EBAF5C05EBAF7C05C34" -+ $"C05A34C05B34C05A34C05B0610EE7AAAAAC693C7B5C9E8C667C896C755CAB5C5" -+ $"D3CB14C47FC521B8CDC521B8CDC0B9B834BD7FBA63BC9BBC64B789BF00B92ABE" -+ $"82B789BF00C251BCE5C1CCBED1C0BCBE70C324BB51C5B0BB5AC71ABFC8C4E2C0" -+ $"44C512C05CCC1E0604EEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50AB87F" -+ $"B7A5BC0CB4F7B87FB7A50604FEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B5" -+ $"0ABF40B50ABD2DB521B87FB7A5BA8CB5E9B87FB7A50605BB02B3F7BCF4B5CD36" -+ $"B3F7BCF4B789BF00BA19BDD6B8DABE8835BD1EBC9BBC64B801B9930A04B87FB7" -+ $"A5BD7FBA63BC9BBC64B801B9930A04B3F7BCF4B413C012B789C251B789BF000A" -+ $"04BC7AB801BF99B6C0BE1BB43BBCAAB49E0A05BFE1B69AC187B3FFC341B4ABC3" -+ $"0EB77BC204B6CF0A05C3E9B805C594B69AC6D3B825C637BAECC521B8CD0A06B9" -+ $"67C223B8A5C3F1BB51C5B0BE70C323BED1C0BCBCE5C1CC0A04B8A5C548B8A5C3" -+ $"F1BB51C5B0BB5AC71A0606BA0ABC41C6A5BB73C983BCF9CB79BBC8CAD5BE40CC" -+ $"23C05CCC1EC044C512BFC8C4E20A04C6A1BBC1C7E5BB6BC8ABBCF7C80EBE920A" -+ $"04C9EA41C8C5BFF3CABBC3D4CAE3C2140A06BA90C206BA19C33CBADEC3EBBEA7" -+ $"C1C4BED1C0BCBCE5C1CC0A06BC7AB801BCAAB49EBE1BB43BBE33B460BCDAB4C7" -+ $"BCB1B7EC0A04BFE1B69AC021B6A1C1ADB40DC187B3FF0A04C3E9B805C594B69A" -+ $"C5B7B6C3C41AB8250A04C6A1BBC1C7E5BB6BC7F4BB8EC6B9BBEC0A04C8C5BFF3" -+ $"C9EA41CA07C060C8E5C02B0628AAAAAAAAAAAEEFAAA9BACAB4C3BFCAE3C214C9" -+ $"EA41C8C5BFF3C80FBE90C8ABBCF7C7F4BB8EC7E5BB6BC6A1BBC1C637BAECC6D3" -+ $"B826C5B7B6C3C594B69AC3E9B805C3F9B80FC30EB77BC341B4ABC1ADB40DC187" -+ $"B3FFC068B5C6BF40B50ABE9BB514BF03B507BE9BB514BE1BB43BBCAAB49EBC9E" -+ $"B57CBC9EB57CBB34B5E3B87FB7A5B9BC29B87FB7A5B801B993B3F7BCF4B5CD36" -+ $"B3F7BCF4B413C012B789C251B964C223B8A5C3F1C548BB5AC71ABFC8C4E2C044" -+ $"C512C05CCC1EC693C7B5C9B7C688C894C759CAD2C5BECB14C47F0A06BE4DC302" -+ $"BB334EB8F2C3E4B99FC21DBCE5C1CCBEAEC0D1020ABFDBBBF7BFE1BBDFBFC9BC" -+ $"38BF63BC91BF9DBC71BEE7BCD8BE03BC31BE4BBCABBE03BC31BE00BC24BE0137" -+ $"BE10BC1ABE4BBC03BE30BC0EBE4BBC03BEE9BBBABEE9BBBABEE9BBBABF7BBB58" -+ $"BF7BBB58BF8FBB45BFBDBB29BFA9BB3440BB2DBFC3BB34BFC3BB34BFD9BB5BBF" -+ $"E7BBB2BFE7BB85BFE7BBC8020ABFD5BC12BFD9BC00BFC3BC4FBF67BC9CBF9CBC" -+ $"80BEFCBCDBBE32BC45BE70BCB4BE32BC45BE2BBC39BE30BC41BE3EBC32BE70BC" -+ $"1DBE58BC27BE70BC1DBEFEBBDDBEFEBBDDBEFEBBDDBF7EBB84BF7EBB84BF90BB" -+ $"77BFB7BB5CBFA7BB66BFBDBB5F40BB6640BB66BFD4BB87BFDCBBD4BFDCBBADBF" -+ $"DCBBEA0605BA02BC2BC6AFC155C3BAC269C139C245C1A9C25CC1A9C1A5C3EFBB" -+ $"F5C7310A04BC7AB801BF99B6C0C125B79BBFB3B7FF0A03BFE1B69AC3A0B7D5C2" -+ $"04B6CF0A05BCAAC670BCB9C66BBE0FC73AC05BC70BBDF4C7890A04BC34C73FBD" -+ $"E5C88AC04EC88BBDC9C8D80A04BB81C817BD6CC9CFC072C973BD505A0A04BB60" -+ $"C971BD4FCB2BC054CACFBD33CB790A03C6D944C9E8C6DAC695540A03BD9FBC21" -+ $"BEE9BBBAC059BA770204BF4DBBE8BF4DBC1ABF4DBBB7BF95BB8FBF6FBB8FBFBC" -+ $"BB8FBFD9BBE8BFD9BBB7BFD9BC1ABF95BC42BFBCBC42BF6FBC420A04BAD6C37A" -+ $"BBFAC2FDBAD1C336BA8CC2FD0606BA0ABC2BC6AF35C98ABCC1CB6BBB88CAC8BE" -+ $"00CC16C049CC29C033C51CBFB5C4EA0A04244C245C3C5C3C4C060AEEFE0E244C" -+ $"30542E5432543C4CBB1454BCCAC670BB14543C5CBABCC808BABCC808BA0EC8AC" -+ $"3056B9A856B91756B801C808B8B1C8ACB801C808245CB7A954B7A954B5F4C670" -+ $"280A000100000A010101000A020102000A030103000A040104000A050105000A" -+ $"060106000A070107000A080108000A090109000A0A010A000A0B010B000A0C01" -+ $"0C000A0D010D000A0E010E000A0F010F000A100110000A110111000A12011200" -+ $"0A130113000A140114000A150115000A1603161718000A170119000A18011A00" -+ $"0A18011B000A18011C000A18011D000A18011E000A18011F000A180120000A19" -+ $"0121000A180122000A1A0123000A1B0124000A1C0125000A1D012638C018B358" -+ $"15FF01178400040A1D012638C018B358001501178600040A1E012620C018B358" -+ $"0A1F012720C018B358" -+}; -+ -+ -Index: /generated/bezilla/mozilla/calendar/sunbird/app/apprunner-beos.rdef -=================================================================== ---- /generated/bezilla/mozilla/calendar/sunbird/app/apprunner-beos.rdef (revision 0) -+++ /generated/bezilla/mozilla/calendar/sunbird/app/apprunner-beos.rdef (revision 0) -@@ -0,0 +1,125 @@ -+/* -+ * BeZillaBrowser.rdef -+ */ -+ -+resource app_signature "application/x-vnd.Mozilla-Sunbird"; -+ -+resource app_flags B_SINGLE_LAUNCH; -+ -+resource app_version { -+ /* -+ * We are using the source code version number -+ * for our program version. -+ * TODO : implement something better. -+ */ -+ major = 1, -+ middle = 8, -+ minor = 1, -+ -+ /* 0 = development 1 = alpha 2 = beta -+ 3 = gamma 4 = golden master 5 = final */ -+ variety = 0, -+ -+ internal = 21, -+ -+ short_info = "BeZillaCalendar", -+ long_info = "BeZillaCalendar is based on Mozilla's source code" -+}; -+ -+resource file_types message { -+ "types" = "text/csv", -+ "types" = "text/calendar" -+ /* -+ // TODO: -+ // .sdb is mimetype application/octet-stream -+ // is there a more elegant way to handle it? -+ types" = "application/octet-stream" -+ */ -+}; -+resource vector_icon { -+ $"6E636966200500020016029E8638A20EBA220EBA9E86384880254A18EA00FFFF" -+ $"8002001602BC9D88BB1F643B1F64BC9D884B716D48772700FFFF80020016023B" -+ $"F73A0000000000003BF73A49B5114976B000FFFF800200160237A0DDB61AF236" -+ $"1AF237A0DD497CAA48588100FFFF800200160238D81CB8152D38152D38D81C48" -+ $"420A499FB600FFFF8002001602397095000000000000397095486EDA49100600" -+ $"FFFF800200160231E5B2BA0EAF3A0EAF31E5B247DA3349779B00FFFF80020016" -+ $"0236BBEFB4543A34543A36BBEF495BDE469BC700FFFF6B0200160236E2E70000" -+ $"0000000036E2E74A2CD64670CD00FFFF800200160237AB1000000000000037AB" -+ $"104AE1D848449500FFFF5702001602375C10B74516374516375C1048B2B04AE9" -+ $"7200FFFF8002001602B07700B74912374912B077004898AD4AD99500FFFF8002" -+ $"00160232CFA5BA0B483A0B4832CFA54A3C584BA00E00FFFF8002001602368CB7" -+ $"000000000000368CB74B3D5E49752800FFFF4F0200160236A81C000000000000" -+ $"36A81C4B94C84A808500FFFF4002000602B738F7362603B62603B738F748BB3F" -+ $"4A241700A91212FFD7121202001602B04887376143B76143B0488748D36C44FB" -+ $"3100FFFF6B02001602B47620362BAAB62BAAB476204A0C144406C600FFFF8002" -+ $"001602B4CAE23409B3B409B3B4CAE24AD8D54611F100FFFF8002001602B328E4" -+ $"324E4AB24E4AB328E44B36A648859C00FFFF8002001602B22376311F03B11F03" -+ $"B223764B891349FFBC00FFFF80010079009803FF000004006002001602B4E6F3" -+ $"319259B19259B4E6F34B2F5D4AA2CA00FFFF0003FFFF0004FFD801FFFF669805" -+ $"000200060239CDA03A935CBC02343AF7494899864A8DDC00FFDB97FFFCAF2902" -+ $"0106033B471C0000000000003B36DB472800498C0000F2F2F2AB7D7A7AFFBCA1" -+ $"84280633EEEBFFFFAAEAABDBAEBBBEAE2BC0CEB389C02424C074B415BFF0B478" -+ $"BFB4B450BFB7B455BFB6B455BF8CB436BF14B430BF55B42DBEF5B3FFBE82B33E" -+ $"BBDBB3F2BBCEB4D7BBD0B4BABBCBB4DABBC7B4DABBC7B4DABBC8B4DABB45B50A" -+ $"BB45B50ABB44B50ABB37B50DBB37B50DBAD6B534BA1EB58DBA78B560BA1EB58D" -+ $"BA12B593BA12B593BA0FB596B99BB5D6B99BB5D6B99AB5D6B975B5ECB975B5EC" -+ $"B974B5EDB918B626B918B626B917B626B8EDB642B893B681B887B689B86CB69C" -+ $"B7F22AB7B5B72DB7A9B76EB73CB920B755B8C5B6B5B9A4B380BC3AB4F7BB4BB3" -+ $"80BC3AB317BC7FB33E42B755C332B80EC320B7E7C323B7FBC3522CC3C54FBB03" -+ $"C7E8BAF4C7DBBAD1C898BA59CA44BC40CC83BAD4CBC3BDF3CD6FC0A0CDA4C760" -+ $"C888CA38C797C90DC879CB7BC6A2CC38C4DCCB9AC3A6CBB6C3DDCBA2C34CCBC2" -+ $"C1EBCA78BF62C954BF30C9ADBF3FC934BEE9C900BE83C91DBEC2C927BE17C999" -+ $"BCEAC857BA6BC720BABCC767BAABC73FBA2EC7C0B7EEC5B1B563C3F4B6DBC472" -+ $"B66FC405B613C427B41BC12CB2F006032FBAF5C05EBAF5C05EBAF7C05C34C05A" -+ $"34C05B34C05A34C05B0610EE7AAAAAC693C7B5C9E8C667C896C755CAB5C5D3CB" -+ $"14C47FC521B8CDC521B8CDC0B9B834BD7FBA63BC9BBC64B789BF00B92ABE82B7" -+ $"89BF00C251BCE5C1CCBED1C0BCBE70C324BB51C5B0BB5AC71ABFC8C4E2C044C5" -+ $"12C05CCC1E0604EEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50AB87FB7A5" -+ $"BC0CB4F7B87FB7A50604FEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50ABF" -+ $"40B50ABD2DB521B87FB7A5BA8CB5E9B87FB7A50605BB02B3F7BCF4B5CD36B3F7" -+ $"BCF4B789BF00BA19BDD6B8DABE8835BD1EBC9BBC64B801B9930A04B87FB7A5BD" -+ $"7FBA63BC9BBC64B801B9930A04B3F7BCF4B413C012B789C251B789BF000A04BC" -+ $"7AB801BF99B6C0BE1BB43BBCAAB49E0A05BFE1B69AC187B3FFC341B4ABC30EB7" -+ $"7BC204B6CF0A05C3E9B805C594B69AC6D3B825C637BAECC521B8CD0A06B967C2" -+ $"23B8A5C3F1BB51C5B0BE70C323BED1C0BCBCE5C1CC0A04B8A5C548B8A5C3F1BB" -+ $"51C5B0BB5AC71A0606BA0ABC41C6A5BB73C983BCF9CB79BBC8CAD5BE40CC23C0" -+ $"5CCC1EC044C512BFC8C4E20A04C6A1BBC1C7E5BB6BC8ABBCF7C80EBE920A04C9" -+ $"EA41C8C5BFF3CABBC3D4CAE3C2140A06BA90C206BA19C33CBADEC3EBBEA7C1C4" -+ $"BED1C0BCBCE5C1CC0A06BC7AB801BCAAB49EBE1BB43BBE33B460BCDAB4C7BCB1" -+ $"B7EC0A04BFE1B69AC021B6A1C1ADB40DC187B3FF0A04C3E9B805C594B69AC5B7" -+ $"B6C3C41AB8250A04C6A1BBC1C7E5BB6BC7F4BB8EC6B9BBEC0A04C8C5BFF3C9EA" -+ $"41CA07C060C8E5C02B0628AAAAAAAAAAAEEFAAA9BACAB4C3BFCAE3C214C9EA41" -+ $"C8C5BFF3C80FBE90C8ABBCF7C7F4BB8EC7E5BB6BC6A1BBC1C637BAECC6D3B826" -+ $"C5B7B6C3C594B69AC3E9B805C3F9B80FC30EB77BC341B4ABC1ADB40DC187B3FF" -+ $"C068B5C6BF40B50ABE9BB514BF03B507BE9BB514BE1BB43BBCAAB49EBC9EB57C" -+ $"BC9EB57CBB34B5E3B87FB7A5B9BC29B87FB7A5B801B993B3F7BCF4B5CD36B3F7" -+ $"BCF4B413C012B789C251B964C223B8A5C3F1C548BB5AC71ABFC8C4E2C044C512" -+ $"C05CCC1EC693C7B5C9B7C688C894C759CAD2C5BECB14C47F0A06BE4DC302BB33" -+ $"4EB8F2C3E4B99FC21DBCE5C1CCBEAEC0D1020ABFDBBBF7BFE1BBDFBFC9BC38BF" -+ $"63BC91BF9DBC71BEE7BCD8BE03BC31BE4BBCABBE03BC31BE00BC24BE0137BE10" -+ $"BC1ABE4BBC03BE30BC0EBE4BBC03BEE9BBBABEE9BBBABEE9BBBABF7BBB58BF7B" -+ $"BB58BF8FBB45BFBDBB29BFA9BB3440BB2DBFC3BB34BFC3BB34BFD9BB5BBFE7BB" -+ $"B2BFE7BB85BFE7BBC8020ABFD5BC12BFD9BC00BFC3BC4FBF67BC9CBF9CBC80BE" -+ $"FCBCDBBE32BC45BE70BCB4BE32BC45BE2BBC39BE30BC41BE3EBC32BE70BC1DBE" -+ $"58BC27BE70BC1DBEFEBBDDBEFEBBDDBEFEBBDDBF7EBB84BF7EBB84BF90BB77BF" -+ $"B7BB5CBFA7BB66BFBDBB5F40BB6640BB66BFD4BB87BFDCBBD4BFDCBBADBFDCBB" -+ $"EA0605BA02BC2BC6AFC155C3BAC269C139C245C1A9C25CC1A9C1A5C3EFBBF5C7" -+ $"310A04BC7AB801BF99B6C0C125B79BBFB3B7FF0A03BFE1B69AC3A0B7D5C204B6" -+ $"CF0A05BCAAC670BCB9C66BBE0FC73AC05BC70BBDF4C7890A04BC34C73FBDE5C8" -+ $"8AC04EC88BBDC9C8D80A04BB81C817BD6CC9CFC072C973BD505A0A04BB60C971" -+ $"BD4FCB2BC054CACFBD33CB790A03C6D944C9E8C6DAC695540A03BD9FBC21BEE9" -+ $"BBBAC059BA770204BF4DBBE8BF4DBC1ABF4DBBB7BF95BB8FBF6FBB8FBFBCBB8F" -+ $"BFD9BBE8BFD9BBB7BFD9BC1ABF95BC42BFBCBC42BF6FBC420A04BAD6C37ABBFA" -+ $"C2FDBAD1C336BA8CC2FD0606BA0ABC2BC6AF35C98ABCC1CB6BBB88CAC8BE00CC" -+ $"16C049CC29C033C51CBFB5C4EA0A092844284E2A502A5A325A3250344E34442E" -+ $"4202042E3AB9753AB7B23A2A3E2ABE112ABFD52E42B7B242B97542323E32BFD5" -+ $"32BE11280A000100000A010101000A020102000A030103000A040104000A0501" -+ $"05000A060106000A070107000A080108000A090109000A0A010A000A0B010B00" -+ $"0A0C010C000A0D010D000A0E010E000A0F010F000A100110000A110111000A12" -+ $"0112000A130113000A140114000A150115000A1603161718000A170119000A18" -+ $"011A000A18011B000A18011C000A18011D000A18011E000A18011F000A180120" -+ $"000A190121000A180122000A1A0123000A1B0124000A1C0125000A1D012630C3" -+ $"89B47101178400040A1E012620C389B4710A1D012730C389B47101178400040A" -+ $"1F012720C389B471" -+}; -+ -Index: /generated/bezilla/mozilla/browser/app/apprunner-beos.rdef -=================================================================== ---- /generated/bezilla/mozilla/browser/app/apprunner-beos.rdef (revision 0) -+++ /generated/bezilla/mozilla/browser/app/apprunner-beos.rdef (revision 0) -@@ -0,0 +1,125 @@ -+/* -+ * BeZillaBrowser.rdef -+ */ -+ -+resource app_signature "application/x-vnd.Mozilla-Firefox"; -+ -+resource app_flags B_SINGLE_LAUNCH; -+ -+resource app_version { -+ /* -+ * We are using the source code version number -+ * for our program version. -+ * TODO : implement something better. -+ */ -+ major = 1, -+ middle = 8, -+ minor = 1, -+ -+ /* 0 = development 1 = alpha 2 = beta -+ 3 = gamma 4 = golden master 5 = final */ -+ variety = 0, -+ -+ internal = 21, -+ -+ short_info = "BeZillaBrowser", -+ long_info = "BeZillaBrowser is based on Mozilla's source code" -+}; -+ -+resource file_types message { -+ "types" = "application/x-vnd.Be.URL.file", -+ "types" = "application/x-vnd.Be.URL.ftp", -+ "types" = "application/x-vnd.Be.URL.http", -+ "types" = "application/x-vnd.Be.URL.https", -+ "types" = "text/html", -+ "types" = "image/gif", -+ "types" = "image/png" -+}; -+ -+resource vector_icon { -+ $"6E6369661F0500020016029E8638A20EBA220EBA9E86384880254A18EA00FFFF" -+ $"8002001602BC9D88BB1F643B1F64BC9D884B716D48772700FFFF80020016023B" -+ $"F73A0000000000003BF73A49B5114976B000FFFF800200160237A0DDB61AF236" -+ $"1AF237A0DD497CAA48588100FFFF800200160238D81CB8152D38152D38D81C48" -+ $"420A499FB600FFFF8002001602397095000000000000397095486EDA49100600" -+ $"FFFF800200160231E5B2BA0EAF3A0EAF31E5B247DA3349779B00FFFF80020016" -+ $"0236BBEFB4543A34543A36BBEF495BDE469BC700FFFF6B0200160236E2E70000" -+ $"0000000036E2E74A2CD64670CD00FFFF800200160237AB1000000000000037AB" -+ $"104AE1D848449500FFFF5702001602375C10B74516374516375C1048B2B04AE9" -+ $"7200FFFF8002001602B07700B74912374912B077004898AD4AD99500FFFF8002" -+ $"00160232CFA5BA0B483A0B4832CFA54A3C584BA00E00FFFF8002001602368CB7" -+ $"000000000000368CB74B3D5E49752800FFFF4F0200160236A81C000000000000" -+ $"36A81C4B94C84A808500FFFF4002000602B738F7362603B62603B738F748BB3F" -+ $"4A241700A91212FFD7121202001602B04887376143B76143B0488748D36C44FB" -+ $"3100FFFF6B02001602B47620362BAAB62BAAB476204A0C144406C600FFFF8002" -+ $"001602B4CAE23409B3B409B3B4CAE24AD8D54611F100FFFF8002001602B328E4" -+ $"324E4AB24E4AB328E44B36A648859C00FFFF8002001602B22376311F03B11F03" -+ $"B223764B891349FFBC00FFFF80010079009803FF000004006002001602B4E6F3" -+ $"319259B19259B4E6F34B2F5D4AA2CA00FFFF0003FFFF0004FFD801FFFF669805" -+ $"000201060238CC87BD083D3DCC623981954609924A996B00FFB11BFFFFF9C727" -+ $"0633EEEBFFFFAAEAABDBAEBBBEAE2BC0CEB389C02424C074B415BFF0B478BFB4" -+ $"B450BFB7B455BFB6B455BF8CB436BF14B430BF55B42DBEF5B3FFBE82B33EBBDB" -+ $"B3F2BBCEB4D7BBD0B4BABBCBB4DABBC7B4DABBC7B4DABBC8B4DABB45B50ABB45" -+ $"B50ABB44B50ABB37B50DBB37B50DBAD6B534BA1EB58DBA78B560BA1EB58DBA12" -+ $"B593BA12B593BA0FB596B99BB5D6B99BB5D6B99AB5D6B975B5ECB975B5ECB974" -+ $"B5EDB918B626B918B626B917B626B8EDB642B893B681B887B689B86CB69CB7F2" -+ $"2AB7B5B72DB7A9B76EB73CB920B755B8C5B6B5B9A4B380BC3AB4F7BB4BB380BC" -+ $"3AB317BC7FB33E42B755C332B80EC320B7E7C323B7FBC3522CC3C54FBB03C7E8" -+ $"BAF4C7DBBAD1C898BA59CA44BC40CC83BAD4CBC3BDF3CD6FC0A0CDA4C760C888" -+ $"CA38C797C90DC879CB7BC6A2CC38C4DCCB9AC3A6CBB6C3DDCBA2C34CCBC2C1EB" -+ $"CA78BF62C954BF30C9ADBF3FC934BEE9C900BE83C91DBEC2C927BE17C999BCEA" -+ $"C857BA6BC720BABCC767BAABC73FBA2EC7C0B7EEC5B1B563C3F4B6DBC472B66F" -+ $"C405B613C427B41BC12CB2F006032FBAF5C05EBAF5C05EBAF7C05C34C05A34C0" -+ $"5B34C05A34C05B0610EE7AAAAAC693C7B5C9E8C667C896C755CAB5C5D3CB14C4" -+ $"7FC521B8CDC521B8CDC0B9B834BD7FBA63BC9BBC64B789BF00B92ABE82B789BF" -+ $"00C251BCE5C1CCBED1C0BCBE70C324BB51C5B0BB5AC71ABFC8C4E2C044C512C0" -+ $"5CCC1E0604EEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50AB87FB7A5BC0C" -+ $"B4F7B87FB7A50604FEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50ABF40B5" -+ $"0ABD2DB521B87FB7A5BA8CB5E9B87FB7A50605BB02B3F7BCF4B5CD36B3F7BCF4" -+ $"B789BF00BA19BDD6B8DABE8835BD1EBC9BBC64B801B9930A04B87FB7A5BD7FBA" -+ $"63BC9BBC64B801B9930A04B3F7BCF4B413C012B789C251B789BF000A04BC7AB8" -+ $"01BF99B6C0BE1BB43BBCAAB49E0A05BFE1B69AC187B3FFC341B4ABC30EB77BC2" -+ $"04B6CF0A05C3E9B805C594B69AC6D3B825C637BAECC521B8CD0A06B967C223B8" -+ $"A5C3F1BB51C5B0BE70C323BED1C0BCBCE5C1CC0A04B8A5C548B8A5C3F1BB51C5" -+ $"B0BB5AC71A0606BA0ABC41C6A5BB73C983BCF9CB79BBC8CAD5BE40CC23C05CCC" -+ $"1EC044C512BFC8C4E20A04C6A1BBC1C7E5BB6BC8ABBCF7C80EBE920A04C9EA41" -+ $"C8C5BFF3CABBC3D4CAE3C2140A06BA90C206BA19C33CBADEC3EBBEA7C1C4BED1" -+ $"C0BCBCE5C1CC0A06BC7AB801BCAAB49EBE1BB43BBE33B460BCDAB4C7BCB1B7EC" -+ $"0A04BFE1B69AC021B6A1C1ADB40DC187B3FF0A04C3E9B805C594B69AC5B7B6C3" -+ $"C41AB8250A04C6A1BBC1C7E5BB6BC7F4BB8EC6B9BBEC0A04C8C5BFF3C9EA41CA" -+ $"07C060C8E5C02B0628AAAAAAAAAAAEEFAAA9BACAB4C3BFCAE3C214C9EA41C8C5" -+ $"BFF3C80FBE90C8ABBCF7C7F4BB8EC7E5BB6BC6A1BBC1C637BAECC6D3B826C5B7" -+ $"B6C3C594B69AC3E9B805C3F9B80FC30EB77BC341B4ABC1ADB40DC187B3FFC068" -+ $"B5C6BF40B50ABE9BB514BF03B507BE9BB514BE1BB43BBCAAB49EBC9EB57CBC9E" -+ $"B57CBB34B5E3B87FB7A5B9BC29B87FB7A5B801B993B3F7BCF4B5CD36B3F7BCF4" -+ $"B413C012B789C251B964C223B8A5C3F1C548BB5AC71ABFC8C4E2C044C512C05C" -+ $"CC1EC693C7B5C9B7C688C894C759CAD2C5BECB14C47F0A06BE4DC302BB334EB8" -+ $"F2C3E4B99FC21DBCE5C1CCBEAEC0D1020ABFDBBBF7BFE1BBDFBFC9BC38BF63BC" -+ $"91BF9DBC71BEE7BCD8BE03BC31BE4BBCABBE03BC31BE00BC24BE0137BE10BC1A" -+ $"BE4BBC03BE30BC0EBE4BBC03BEE9BBBABEE9BBBABEE9BBBABF7BBB58BF7BBB58" -+ $"BF8FBB45BFBDBB29BFA9BB3440BB2DBFC3BB34BFC3BB34BFD9BB5BBFE7BBB2BF" -+ $"E7BB85BFE7BBC8020ABFD5BC12BFD9BC00BFC3BC4FBF67BC9CBF9CBC80BEFCBC" -+ $"DBBE32BC45BE70BCB4BE32BC45BE2BBC39BE30BC41BE3EBC32BE70BC1DBE58BC" -+ $"27BE70BC1DBEFEBBDDBEFEBBDDBEFEBBDDBF7EBB84BF7EBB84BF90BB77BFB7BB" -+ $"5CBFA7BB66BFBDBB5F40BB6640BB66BFD4BB87BFDCBBD4BFDCBBADBFDCBBEA06" -+ $"05BA02BC2BC6AFC155C3BAC269C139C245C1A9C25CC1A9C1A5C3EFBBF5C7310A" -+ $"04BC7AB801BF99B6C0C125B79BBFB3B7FF0A03BFE1B69AC3A0B7D5C204B6CF0A" -+ $"05BCAAC670BCB9C66BBE0FC73AC05BC70BBDF4C7890A04BC34C73FBDE5C88AC0" -+ $"4EC88BBDC9C8D80A04BB81C817BD6CC9CFC072C973BD505A0A04BB60C971BD4F" -+ $"CB2BC054CACFBD33CB790A03C6D944C9E8C6DAC695540A03BD9FBC21BEE9BBBA" -+ $"C059BA770204BF4DBBE8BF4DBC1ABF4DBBB7BF95BB8FBF6FBB8FBFBCBB8FBFD9" -+ $"BBE8BFD9BBB7BFD9BC1ABF95BC42BFBCBC42BF6FBC420A04BAD6C37ABBFAC2FD" -+ $"BAD1C336BA8CC2FD0606BA0ABC2BC6AF35C98ABCC1CB6BBB88CAC8BE00CC16C0" -+ $"49CC29C033C51CBFB5C4EA060DEE1FBF032F442B4F2B48294B244A2953235029" -+ $"532354295423542E58265A2E585C3030583058385A3B543B543554355335533B" -+ $"503A4A334F354B3348270A000100000A010101000A020102000A030103000A04" -+ $"0104000A050105000A060106000A070107000A080108000A090109000A0A010A" -+ $"000A0B010B000A0C010C000A0D010D000A0E010E000A0F010F000A100110000A" -+ $"110111000A120112000A130113000A140114000A150115000A1603161718000A" -+ $"170119000A18011A000A18011B000A18011C000A18011D000A18011E000A1801" -+ $"1F000A180120000A190121000A180122000A1A0123000A1B0124000A1C012500" -+ $"0A1D012638BFB3B32615FF01178400040A1D012638BFB3B32600150117860004" -+ $"0A1E012620BFB3B326" -+}; -+ -+ diff --git a/www-client/mozilla_firefox/patches/2009-09-27/r05-fix-shlibsign.README b/www-client/mozilla_firefox/patches/2009-09-27/r05-fix-shlibsign.README deleted file mode 100644 index 65bfa2fbd..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/r05-fix-shlibsign.README +++ /dev/null @@ -1,66 +0,0 @@ - does this look odd for gcc2 - #define NUM_ELEM(array) (sizeof(array)/sizeof(array[0])) CK_BBOOL true = CK_TRUE; CK_BBOOL false = CK_FALSE; static PRBool verbose = PR_FALSE; - #define NUM_ELEM(array) (sizeof(array)/sizeof(array[0])) - CK_BBOOL true = CK_TRUE; - CK_BBOOL false = CK_FALSE; - static PRBool verbose = PR_FALSE; - ignore the first line... bad paste :) - looks fine to me - here's the error http://haiku.pastebin.com/d3cf782e4 - and the full file http://haiku.pastebin.com/d4125cc53 - anyone wanna try ? - http://revolf.free.fr/beos/patches/oss-haiku-pci-reservation.diff - might have some macro issues there, it's using a ton of macro defines - mozilla-specific - any ideas what the error is indicating? - as I said, something's wrong with one of the macros, looking at the output of gcc -E for that line might be helpful - Disreali: does this uid/gid fix also fix the read-only files btw? - I think it was -E let me check - yep - -E with -o too ? - yes - it'll write the source after preprocessing to the output file - so you can see what all those macros actually evaluated to - unless that highlights something obvious you'd probably need to enlist tqh though, I know nothing about nspr - mmadia: it indicates that someone defines true/false to 1/0 - so it ends up doing CK_BBOOL 1 = CK_TRUE - which is a syntax error - ah oops - totally overlooked that - most likely you one of the Be/Haiku headers is indirectly included - BeBuild.h I think does define them - you could #undef true and #undef false before those lines to make sure - cpp/stl_config.h:# define true 1 - that should only be if __STL_NO_BOOL is defined though - and since it's a cpp header it shouldn't be used there right? - not seeing any others in the headers offhand - right - only other one I see is build/gcc-2.95.3/stdbool.h: #define true 1 - which definitely isn't involved - it's included from SupportDefs - /* Grandfathering */ - #ifndef __cplusplus - #include - #endif - yes but that's headers/build - also in headers/os - it's quite likely that you end up including SupportDefs.h one way or another - as it defines our native int types it's included indirectly by most Be/Haiku headers - hm, grep didn't find one in headers/os - at least not one doing that define - the #undef seems to have worked for now. - nah, it includes stdbool.h in haiku - that one presumably comes from the toolchain? - in beos it did define it at that place as far as I remember - stdbool.h that is - likely - it should be in the gcc headers - that explains that - not that I could find it off hand - ah, it's in the libgcc headers - - - - - - diff --git a/www-client/mozilla_firefox/patches/2009-09-27/r05-fix-shlibsign.patch b/www-client/mozilla_firefox/patches/2009-09-27/r05-fix-shlibsign.patch deleted file mode 100644 index c46cbbd9a..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/r05-fix-shlibsign.patch +++ /dev/null @@ -1,16 +0,0 @@ -Index: security/nss/cmd/shlibsign/shlibsign.c -=================================================================== ---- security/nss/cmd/shlibsign/shlibsign.c (revision 7) -+++ security/nss/cmd/shlibsign/shlibsign.c (working copy) -@@ -83,6 +83,11 @@ - /* freebl headers */ - #include "shsign.h" - -+#ifdef XP_BEOS -+#undef true -+#undef false -+#endif -+ - #define NUM_ELEM(array) (sizeof(array)/sizeof(array[0])) - CK_BBOOL true = CK_TRUE; - CK_BBOOL false = CK_FALSE; diff --git a/www-client/mozilla_firefox/patches/2009-09-27/r06-nss-gcc4.patch b/www-client/mozilla_firefox/patches/2009-09-27/r06-nss-gcc4.patch deleted file mode 100644 index 2a0496429..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/r06-nss-gcc4.patch +++ /dev/null @@ -1,55 +0,0 @@ -Index: security/nss/cmd/lib/secutil.h -=================================================================== ---- security/nss/cmd/lib/secutil.h (revision 7) -+++ security/nss/cmd/lib/secutil.h (working copy) -@@ -450,7 +450,7 @@ - - void printflags(char *trusts, unsigned int flags); - --#if !defined(XP_UNIX) && !defined(XP_OS2) -+#if !defined(XP_UNIX) && !defined(XP_OS2) && !defined(XP_BEOS) - extern int ffs(unsigned int i); - #endif - -Index: security/nss/lib/dev/ckhelper.c -=================================================================== ---- security/nss/lib/dev/ckhelper.c (revision 7) -+++ security/nss/lib/dev/ckhelper.c (working copy) -@@ -230,13 +230,13 @@ - PRStatus *rvStatus - ) - { -- CK_BBOOL bool; -+ CK_BBOOL boolval; - CK_ATTRIBUTE_PTR attr; - CK_ATTRIBUTE atemplate = { 0, NULL, 0 }; - CK_RV ckrv; - void *epv = nssSlot_GetCryptokiEPV(slot); - attr = &atemplate; -- NSS_CK_SET_ATTRIBUTE_VAR(attr, attribute, bool); -+ NSS_CK_SET_ATTRIBUTE_VAR(attr, attribute, boolval); - nssSession_EnterMonitor(session); - ckrv = CKAPI(epv)->C_GetAttributeValue(session->handle, object, - &atemplate, 1); -@@ -246,7 +246,7 @@ - return PR_FALSE; - } - *rvStatus = PR_SUCCESS; -- return (PRBool)(bool == CK_TRUE); -+ return (PRBool)(boolval == CK_TRUE); - } - - NSS_IMPLEMENT PRStatus -Index: security/nss/lib/freebl/unix_rand.c -=================================================================== ---- security/nss/lib/freebl/unix_rand.c (revision 7) -+++ security/nss/lib/freebl/unix_rand.c (working copy) -@@ -669,7 +669,7 @@ - #endif /* VMS */ - - #ifdef BEOS --#include -+#include - - static size_t - GetHighResClock(void *buf, size_t maxbytes) diff --git a/www-client/mozilla_firefox/patches/2009-09-27/r07-working-nspr-from-haikuports.patch b/www-client/mozilla_firefox/patches/2009-09-27/r07-working-nspr-from-haikuports.patch deleted file mode 100644 index 83868d3c9..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/r07-working-nspr-from-haikuports.patch +++ /dev/null @@ -1,5411 +0,0 @@ -Index: nsprpub/pr/include/prtypes.h -=================================================================== ---- nsprpub/pr/include/prtypes.h (revision 7) -+++ nsprpub/pr/include/prtypes.h (working copy) -@@ -98,6 +98,24 @@ - - #elif defined(XP_BEOS) - -+/* GCC 3.3 and later support the visibility attribute. */ -+#if (__GNUC__ >= 4) || \ -+ (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) -+#define PR_VISIBILITY_DEFAULT __attribute__((visibility("default"))) -+#define PR_EXPORT(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_EXPORT_DATA(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_IMPORT(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_IMPORT_DATA(__type) extern PR_VISIBILITY_DEFAULT __type -+ -+#define PR_EXTERN(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_IMPLEMENT(__type) PR_VISIBILITY_DEFAULT __type -+#define PR_EXTERN_DATA(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_IMPLEMENT_DATA(__type) PR_VISIBILITY_DEFAULT __type -+#define PR_CALLBACK -+#define PR_CALLBACK_DECL -+#define PR_STATIC_CALLBACK(__x) static __x -+ -+#else - #define PR_EXPORT(__type) extern __declspec(dllexport) __type - #define PR_EXPORT_DATA(__type) extern __declspec(dllexport) __type - #define PR_IMPORT(__type) extern __declspec(dllexport) __type -@@ -111,6 +129,7 @@ - #define PR_CALLBACK - #define PR_CALLBACK_DECL - #define PR_STATIC_CALLBACK(__x) static __x -+#endif - - #elif defined(WIN16) - -Index: nsprpub/pr/include/prio.h -=================================================================== ---- nsprpub/pr/include/prio.h (revision 7) -+++ nsprpub/pr/include/prio.h (working copy) -@@ -174,20 +174,20 @@ - union PRNetAddr { - struct { - PRUint16 family; /* address family (0x00ff maskable) */ --#ifdef XP_BEOS -- char data[10]; /* Be has a smaller structure */ -+#ifndef XP_BEOS -+ char data[14]; /* raw address data */ - #else -- char data[14]; /* raw address data */ -+ char data[30]; - #endif - } raw; - struct { - PRUint16 family; /* address family (AF_INET) */ - PRUint16 port; /* port number */ - PRUint32 ip; /* The actual 32 bits of address */ --#ifdef XP_BEOS -- char pad[4]; /* Be has a smaller structure */ -+#ifndef XP_BEOS -+ char pad[8]; - #else -- char pad[8]; -+ char pad[24]; - #endif - } inet; - struct { -@@ -196,6 +196,9 @@ - PRUint32 flowinfo; /* routing information */ - PRIPv6Addr ip; /* the actual 128 bits of address */ - PRUint32 scope_id; /* set of interfaces for a scope */ -+#ifdef XP_BEOS -+ char pad[4]; -+#endif - } ipv6; - #if defined(XP_UNIX) || defined(XP_OS2_EMX) - struct { /* Unix domain socket address */ -Index: nsprpub/pr/include/md/_beos.cfg -=================================================================== ---- nsprpub/pr/include/md/_beos.cfg (revision 7) -+++ nsprpub/pr/include/md/_beos.cfg (working copy) -@@ -20,6 +20,7 @@ - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): -+ * Fredrik Holmqvist - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or -@@ -40,7 +41,6 @@ - - #ifndef XP_BEOS - #define XP_BEOS --#undef XP_UNIX - #endif - - #ifndef BEOS -@@ -57,6 +57,12 @@ - #undef IS_BIG_ENDIAN - #endif - -+/* -+ * Fixme: Should be done according to arch -+ * Currently only x86/ia64. -+ */ -+#define PR_ALIGN_OF_WORD 4 -+ - #define PR_BYTES_PER_BYTE 1 - #define PR_BYTES_PER_SHORT 2 - #define PR_BYTES_PER_INT 4 -Index: nsprpub/pr/include/md/_beos.h -=================================================================== ---- nsprpub/pr/include/md/_beos.h (revision 7) -+++ nsprpub/pr/include/md/_beos.h (working copy) -@@ -20,6 +20,7 @@ - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): -+ * Fredrik Holmqvist - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or -@@ -38,19 +39,18 @@ - #ifndef nspr_beos_defs_h___ - #define nspr_beos_defs_h___ - --#include "prtypes.h" --#include "prio.h" --#include "prthread.h" --#include "prproces.h" --#include "prmem.h" --#include "obsolete/prsem.h" - #include -- --#include --#include - #include -+#include - - /* -+ * Hack for Cross compile -+ */ -+#define FD_SETSIZE 1024 -+ -+#undef bool -+ -+/* - * Internal configuration macros - */ - -@@ -67,37 +67,39 @@ - #endif - #define PR_DLL_SUFFIX ".so" - --#define _PR_VMBASE 0x30000000 --#define _PR_STACK_VMBASE 0x50000000 - #define _MD_DEFAULT_STACK_SIZE 65536L --#define _MD_MMAP_FLAGS MAP_PRIVATE - - #undef HAVE_STACK_GROWING_UP - #define HAVE_DLL --#define _PR_NO_CLOCK_TIMER - - /* - * The Atomic operations - */ - - #define _PR_HAVE_ATOMIC_OPS -+#ifdef __powerpc__ - #define _MD_INIT_ATOMIC _MD_AtomicInit -+#else -+#define _MD_INIT_ATOMIC() -+#endif - #define _MD_ATOMIC_INCREMENT _MD_AtomicIncrement - #define _MD_ATOMIC_ADD _MD_AtomicAdd - #define _MD_ATOMIC_DECREMENT _MD_AtomicDecrement - #define _MD_ATOMIC_SET _MD_AtomicSet - -+/* Makes sure to don't create cvar when creating sem */ - #define HAVE_CVAR_BUILT_ON_SEM -+ -+/* Not sure this is needed, but no harm. */ - #define _PR_GLOBAL_THREADS_ONLY -+ - #define _PR_BTHREADS --#define _PR_NEED_FAKE_POLL --#define _PR_HAVE_PEEK_BUFFER --#define _PR_PEEK_BUFFER_MAX (16 * 1024) --#define _PR_FD_NEED_EMULATE_MSG_PEEK(fd) 1 --#define _PR_CONNECT_DOES_NOT_BIND -+ - #define _PR_HAVE_O_APPEND - --/* Define threading functions and objects as native BeOS */ -+/* Define threading functions and objects as native BeOS -+ Used by bthreads. */ -+ - struct _MDThread { - thread_id tid; /* BeOS thread handle */ - sem_id joinSem; /* sems used to synchronzie joining */ -@@ -105,56 +107,16 @@ - join this thread */ - }; - --struct _MDThreadStack { -- PRInt8 notused; --}; -- - /* -- * Lock and Semaphore related definitions -- */ -- --struct _MDLock { -- sem_id semaphoreID; -- int32 benaphoreCount; --}; -- --struct _MDCVar { -- sem_id sem1; -- sem_id sem2; -- int16 count; --}; -- --struct _MDSemaphore { -- sem_id sid; --}; -- --/* --** CPU-related definitions --*/ --struct _MDCPU { -- int8 unused; --}; -- --/* - ** Process-related definitions - */ - struct _MDProcess { - pid_t pid; - }; - --struct _MDSegment { -- PRInt8 notused; --}; -- - /* - ** File- and directory-related definitions - */ -- --#ifndef BONE_VERSION --#define BE_SOCK_SHUTDOWN_READ 0x01 --#define BE_SOCK_SHUTDOWN_WRITE 0x02 --#endif -- - struct _MDFileDesc { - PRInt32 osfd; - PRInt32 sock_state; -@@ -178,27 +140,21 @@ - - #define GETTIMEOFDAY(tp) gettimeofday((tp), NULL) - --/* --- Memory-mapped files stuff --- not implemented on BeOS */ - --struct _MDFileMap { -- PRInt8 unused; --}; -- - /* - * Network related definitions. - */ - - #ifndef BONE_VERSION -+#define BE_SOCK_SHUTDOWN_READ 0x01 -+#define BE_SOCK_SHUTDOWN_WRITE 0x02 -+ - #define IPPROTO_IP 0 - #define AF_UNIX 2 - #define TCP_NODELAY SO_NONBLOCK - #define SO_LINGER -1 - #define SO_ERROR 4 --#endif - --#define _PR_INTERRUPT_CHECK_INTERVAL_SECS 5 -- --#ifndef BONE_VERSION - /* these aren't actually used. if they are, we're screwed */ - struct protoent { - char *p_name; /* official protocol name */ -@@ -210,169 +166,58 @@ - struct protoent* getprotobynumber(int number); - #endif - -+/* Used by bnet.c */ -+#define _PR_INTERRUPT_CHECK_INTERVAL_SECS 5 -+ - /* - * malloc() related definitions. -+ * Avoids prmalloc.c's and prmem's code - */ -- - #undef _PR_OVERRIDE_MALLOC - - /* Miscellaneous */ - - #define _MD_ERRNO() (errno) - --#define _MD_CLEANUP_BEFORE_EXIT _MD_cleanup_before_exit --#define _MD_EXIT _MD_exit -+#define _MD_CLEANUP_BEFORE_EXIT() -+#define _MD_EXIT exit - - #define _MD_GET_ENV getenv - #define _MD_PUT_ENV putenv - --#define _MD_EARLY_INIT _MD_early_init --#define _MD_FINAL_INIT _MD_final_init -+#define _MD_EARLY_INIT() -+#ifdef BONE_VERSION -+#define _MD_FINAL_INIT() -+#else -+#define _MD_FINAL_INIT _MD_final_init_netserver -+#endif - --/* CPU Stuff */ -- --#define _MD_INIT_CPUS _MD_init_cpus --#define _MD_WAKEUP_CPUS _MD_wakeup_cpus --#define _MD_START_INTERRUPTS _MD_start_interrupts --#define _MD_STOP_INTERRUPTS _MD_stop_interrupts --#define _MD_DISABLE_CLOCK_INTERRUPTS _MD_disable_clock_interrupts --#define _MD_BLOCK_CLOCK_INTERRUPTS _MD_block_clock_interrupts --#define _MD_UNBLOCK_CLOCK_INTERRUPTS _MD_unblock_clock_interrupts --#define _MD_CLOCK_INTERRUPT _MD_clock_interrupt --#define _MD_INIT_STACK _MD_init_stack --#define _MD_CLEAR_STACK _MD_clear_stack --// #define _MD_GET_INTSOFF _MD_get_intsoff --// #define _MD_SET_INTSOFF _MD_set_intsoff --#define _MD_CURRENT_CPU _MD_current_cpu --#define _MD_SET_CURRENT_CPU _MD_set_current_cpu --#define _MD_INIT_RUNNING_CPU _MD_init_running_cpu --#define _MD_PAUSE_CPU _MD_pause_cpu -- - /* Thread stuff */ - - #define _MD_CURRENT_THREAD() PR_GetCurrentThread() --// #define _MD_GET_ATTACHED_THREAD _MD_get_attached_thread --#define _MD_LAST_THREAD _MD_last_thread --#define _MD_SET_CURRENT_THREAD _MD_set_current_THREAD --#define _MD_SET_LAST_THREAD _MD_set_last_thread --#define _MD_INIT_THREAD _MD_init_thread --#define _MD_EXIT_THREAD _MD_exit_thread --#define _MD_INIT_ATTACHED_THREAD _MD_init_attached_thread - --#define _MD_SUSPEND_THREAD _MD_suspend_thread --#define _MD_RESUME_THREAD _MD_resume_thread --#define _MD_SUSPEND_CPU _MD_suspend_cpu --#define _MD_RESUME_CPU _MD_resume_cpu --#define _MD_BEGIN_SUSPEND_ALL _MD_begin_suspend_all --#define _MD_END_SUSPEND_ALL _MD_end_suspend_all --#define _MD_BEGIN_RESUME_ALL _MD_begin_resume_all --#define _MD_END_RESUME_ALL _MD_end_resume_all - --#define _MD_GET_SP _MD_get_sp -- --#define _MD_CLEAN_THREAD _MD_clean_thread --#define _MD_CREATE_PRIMORDIAL_USER_THREAD _MD_create_primordial_user_thread --#define _MD_CREATE_USER_THREAD _MD_create_user_thread --#define _MD_INIT_PRIMORDIAL_THREAD _MD_init_primordial_thread --#define _MD_CREATE_THREAD _MD_create_thread --#define _MD_YIELD _MD_yield --#define _MD_SET_PRIORITY _MD_set_priority -- --#define _MD_SUSPENDALL _MD_suspendall --#define _MD_RESUMEALL _MD_resumeall -- --#define _MD_SWITCH_CONTEXT _MD_switch_context --#define _MD_RESTORE_CONTEXT _MD_restore_context -- --#define _MD_WAIT _MD_wait --#define _MD_WAKEUP_WAITER _MD_wakeup_waiter -- --#define _MD_SETTHREADAFFINITYMASK _MD_setthreadaffinitymask --#define _MD_GETTHREADAFFINITYMASK _MD_getthreadaffinitymask -- --/* Thread Synchronization */ -- --#define _MD_INIT_LOCKS _MD_init_locks --#define _MD_NEW_LOCK _MD_new_lock --#define _MD_FREE_LOCK _MD_free_lock --#define _MD_LOCK _MD_lock --#define _MD_TEST_AND_LOCK _MD_test_and_lock --#define _MD_UNLOCK _MD_unlock --#define _MD_IOQ_LOCK _MD_ioq_lock --#define _MD_IOQ_UNLOCK _MD_ioq_unlock --#define _MD_NEW_SEM _MD_new_sem --#define _MD_DESTROY_SEM _MD_destroy_sem --#define _MD_TIMED_WAIT_SEM _MD_timed_wait_sem --#define _MD_WAIT_SEM _MD_wait_sem --#define _MD_POST_SEM _MD_post_sem --// #define _MD_NEW_CV _MD_new_cv --// #define _MD_FREE_CV _MD_free_cv --// #define _MD_WAIT_CV _MD_wait_cv --// #define _MD_NOTIFY_CV _MD_notify_cv --// #define _MD_NOTIFYALL_CV _MD_notifyall_cv -- - /* File I/O */ - --/* don't need any I/O initializations */ --#define _MD_INIT_IO() --#define _MD_INIT_FILEDESC(fd) -+#define _PR_MD_WRITE - --#define _MD_OPEN_DIR _MD_open_dir --#define _MD_READ_DIR _MD_read_dir --#define _MD_CLOSE_DIR _MD_close_dir --#define _MD_MAKE_NONBLOCK _MD_make_nonblock --#define _MD_SET_FD_INHERITABLE _MD_set_fd_inheritable --#define _MD_INIT_FD_INHERITABLE _MD_init_fd_inheritable --#define _MD_QUERY_FD_INHERITABLE _MD_query_fd_inheritable --#define _MD_OPEN _MD_open --#define _MD_OPEN_FILE _MD_open --#define _MD_CLOSE_FILE _MD_close_file --#define _MD_READ _MD_read --#define _MD_WRITE _MD_write --#define _MD_WRITEV _MD_writev -+/* -+These are defined in primpl.h so that they are avail for all, but we -+have no calls, and pthreads doesn't either. - #define _MD_LSEEK _MD_lseek - #define _MD_LSEEK64 _MD_lseek64 --#define _MD_FSYNC _MD_fsync --#define _MD_DELETE _MD_delete -+ - #define _MD_GETFILEINFO _MD_getfileinfo - #define _MD_GETFILEINFO64 _MD_getfileinfo64 - #define _MD_GETOPENFILEINFO _MD_getopenfileinfo - #define _MD_GETOPENFILEINFO64 _MD_getopenfileinfo64 --#define _MD_RENAME _MD_rename --#define _MD_ACCESS _MD_access --#define _MD_STAT stat --#define _MD_MKDIR _MD_mkdir --#define _MD_MAKE_DIR _MD_mkdir --#define _MD_RMDIR _MD_rmdir --#define _MD_PR_POLL _MD_pr_poll -+*/ - - /* Network I/O */ - --#define _MD_CLOSE_SOCKET _MD_close_socket --#define _MD_CONNECT _MD_connect --#define _MD_ACCEPT _MD_accept --#define _MD_BIND _MD_bind --#define _MD_LISTEN _MD_listen --#define _MD_SHUTDOWN _MD_shutdown --#define _MD_RECV _MD_recv --#define _MD_SEND _MD_send --#define _MD_ACCEPT_READ _MD_accept_read --#define _MD_GETSOCKNAME _MD_getsockname --#define _MD_GETPEERNAME _MD_getpeername --#define _MD_GETSOCKOPT _MD_getsockopt --#define _MD_SETSOCKOPT _MD_setsockopt --#define _MD_RECVFROM _MD_recvfrom --#define _MD_SENDTO _MD_sendto --#define _MD_SOCKETPAIR _MD_socketpair --#define _MD_SOCKET _MD_socket --#define _MD_SOCKETAVAILABLE _MD_socketavailable --#define _MD_PIPEAVAILABLE _MD_socketavailable -- - #define _MD_GET_SOCKET_ERROR() (errno) - #define _MD_GETHOSTNAME _MD_gethostname - --#define _MD_SELECT select -- - /* Process management */ - - #define _MD_CREATE_PROCESS _MD_create_process -@@ -380,19 +225,6 @@ - #define _MD_WAIT_PROCESS _MD_wait_process - #define _MD_KILL_PROCESS _MD_kill_process - --/* Atomic data operations */ -- --// #define _MD_INIT_ATOMIC _MD_init_atomic --// #define _MD_ATOMIC_INCREMENT _MD_atomic_increment --// #define _MD_ATOMIC_DECREMENT _MD_atomic_decrement --// #define _MD_ATOMIC_SET _MD_atomic_set -- --/* memory management */ -- --#define _MD_INIT_SEGS _MD_init_segs --#define _MD_ALLOC_SEGMENT _MD_alloc_segment --#define _MD_FREE_SEGMENT _MD_free_segment -- - /* Memory mapped file I/O */ - - #define _MD_CREATE_FILE_MAP _MD_create_file_map -@@ -403,8 +235,7 @@ - - /* Time related */ - --#define _MD_NOW _MD_now --#define _MD_INTERVAL_INIT _MD_interval_init -+#define _MD_INTERVAL_INIT() - #define _MD_GET_INTERVAL _MD_get_interval - #define _MD_INTERVAL_PER_SEC _MD_interval_per_sec - -@@ -414,200 +245,4 @@ - #define _MD_TLOCKFILE _MD_tlockfile - #define _MD_UNLOCKFILE _MD_unlockfile - --/** -- * Prototypes for machine dependent function implementations. (Too bad -- * NSPR's MD system blows so much that we have to reiterate every stinking -- * thing we implement here in our MD header file.) -- */ -- --/* Miscellaneous */ -- --NSPR_API(void) _MD_cleanup_before_exit(void); --NSPR_API(void) _MD_exit(PRIntn status); -- --NSPR_API(char*) _MD_get_env(const char *name); --NSPR_API(PRIntn) _MD_put_env(const char *name); -- --NSPR_API(void) _MD_early_init(void); --NSPR_API(void) _MD_final_init(void); -- --/* CPU Stuff */ -- --NSPR_API(void) _MD_init_cpus(); --NSPR_API(void) _MD_wakeup_cpus(); --NSPR_API(void) _MD_start_interrupts(void); --NSPR_API(void) _MD_stop_interrupts(void); --NSPR_API(void) _MD_disable_clock_interrupts(void); --NSPR_API(void) _MD_block_clock_interrupts(void); --NSPR_API(void) _MD_unblock_clock_interrupts(void); --NSPR_API(void) _MD_clock_interrupt(void); --// NSPR_API(void) _MD_init_stack(PRThreadStack *ts, PRIntn redzone); --// NSPR_API(void) _MD_clear_stack(PRThreadStack* ts); --// NSPR_API(PRInt32) _MD_get_intsoff(void); --// NSPR_API(void) _MD_set_intsoff(PRInt32 _val); --// NSPR_API(_PRCPU*) _MD_current_cpu(void); --// NSPR_API(void) _MD_set_current_cpu(_PRCPU *cpu); --// NSPR_API(void) _MD_init_running_cpu(_PRCPU *cpu); --NSPR_API(PRInt32) _MD_pause_cpu(PRIntervalTime timeout); -- --/* Thread stuff */ -- --// NSPR_API(PRThread*) _MD_current_thread(void); --NSPR_API(PRThread*) _MD_get_attached_thread(void); --NSPR_API(PRThread*) _MD_last_thread(void); --NSPR_API(void) _MD_set_current_thread(PRThread *thread); --NSPR_API(void) _MD_set_last_thread(PRThread *thread); --NSPR_API(PRStatus) _MD_init_thread(PRThread *thread); --NSPR_API(void) _MD_exit_thread(PRThread *thread); --NSPR_API(PRStatus) _MD_init_attached_thread(PRThread *thread); -- --NSPR_API(void) _MD_suspend_thread(PRThread *thread); --NSPR_API(void) _MD_resume_thread(PRThread *thread); --// NSPR_API(void) _MD_suspend_cpu(_PRCPU *cpu); --// NSPR_API(void) _MD_resume_cpu(_PRCPU *cpu); --NSPR_API(void) _MD_begin_suspend_all(void); --NSPR_API(void) _MD_end_suspend_all(void); --NSPR_API(void) _MD_begin_resume_all(void); --NSPR_API(void) _MD_end_resume_all(void); -- --NSPR_API(void *) _MD_get_sp(PRThread *thread); -- --NSPR_API(void) _MD_clean_thread(PRThread *thread); --NSPR_API(void) _MD_create_primordial_user_thread(PRThread *); --NSPR_API(PRThread*) _MD_create_user_thread(PRUint32 stacksize, void (*start)(void *), void *arg); --NSPR_API(void) _MD_init_primordial_thread(PRThread *thread); --NSPR_API(PRStatus) _MD_create_thread(PRThread *thread, void (*start)(void *), PRThreadPriority priority, PRThreadScope scope, PRThreadState state, PRUint32 stackSize); --NSPR_API(void) _MD_yield(void); --NSPR_API(void) _MD_set_priority(struct _MDThread *md, PRThreadPriority newPri); -- --NSPR_API(void) _MD_suspendall(void); --NSPR_API(void) _MD_resumeall(void); -- --NSPR_API(void) _MD_init_context(PRThread *thread, char *top, void (*start) (void), PRBool *status); --NSPR_API(void) _MD_switch_context(PRThread *thread); --NSPR_API(void) _MD_restore_context(PRThread *thread); -- --NSPR_API(PRStatus) _MD_wait(PRThread *, PRIntervalTime timeout); --NSPR_API(PRStatus) _MD_wakeup_waiter(PRThread *); -- --NSPR_API(PRInt32) _MD_setthreadaffinitymask(PRThread *thread, PRUint32 mask ); --NSPR_API(PRInt32) _MD_getthreadaffinitymask(PRThread *thread, PRUint32 *mask); -- --/* Thread Synchronization */ -- --NSPR_API(void) _MD_init_locks(void); --NSPR_API(PRStatus) _MD_new_lock(struct _MDLock *md); --NSPR_API(void) _MD_free_lock(struct _MDLock *md); --NSPR_API(void) _MD_lock(struct _MDLock *md); --NSPR_API(PRIntn) _MD_test_and_lock(struct _MDLock *md); --NSPR_API(void) _MD_unlock(struct _MDLock *md); --NSPR_API(void) _MD_ioq_lock(void); --NSPR_API(void) _MD_ioq_unlock(void); --NSPR_API(void) _MD_new_sem(struct _MDSemaphore *md, PRUintn value); --NSPR_API(void) _MD_destroy_sem(struct _MDSemaphore *md); --NSPR_API(PRStatus) _MD_timed_wait_sem(struct _MDSemaphore *md, PRIntervalTime timeout); --NSPR_API(PRStatus) _MD_wait_sem(struct _MDSemaphore *md); --NSPR_API(void) _MD_post_sem(struct _MDSemaphore *md); --// NSPR_API(PRInt32) _MD_new_cv(struct _MDCVar *md); --// NSPR_API(void) _MD_free_cv(struct _MDCVar *md); --// NSPR_API(void) _MD_wait_cv(struct _MDCVar *mdCVar, struct _MDLock *mdLock, PRIntervalTime timeout); --// NSPR_API(void) _MD_notify_cv(struct _MDCVar *md, struct _MDLock *lock); --// NSPR_API(void) _MD_notifyall_cv(struct _MDCVar *md, struct _MDLock *lock); -- --/* File I/O */ -- --// NSPR_API(void) _MD_init_io(void); --NSPR_API(PRStatus) _MD_open_dir(struct _MDDir *md,const char *name); --NSPR_API(char *) _MD_read_dir(struct _MDDir *md, PRIntn flags); --NSPR_API(PRInt32) _MD_close_dir(struct _MDDir *md); --NSPR_API(void) _MD_make_nonblock(PRFileDesc *fd); --NSPR_API(void) _MD_init_fd_inheritable(PRFileDesc *fd, PRBool imported); --NSPR_API(void) _MD_query_fd_inheritable(PRFileDesc *fd); --NSPR_API(PRInt32) _MD_open(const char *name, PRIntn osflags, PRIntn mode); --NSPR_API(PRInt32) _MD_close_file(PRInt32 osfd); --NSPR_API(PRInt32) _MD_read(PRFileDesc *fd, void *buf, PRInt32 amount); --NSPR_API(PRInt32) _MD_write(PRFileDesc *fd, const void *buf, PRInt32 amount); --NSPR_API(PRInt32) _MD_writev(PRFileDesc *fd, const PRIOVec *iov, PRInt32 iov_size, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_lseek(PRFileDesc *fd, PRInt32 offset, int whence); --NSPR_API(PRInt64) _MD_lseek64(PRFileDesc *fd, PRInt64 offset, int whence); --NSPR_API(PRInt32) _MD_fsync(PRFileDesc *fd); --NSPR_API(PRInt32) _MD_delete(const char *name); --NSPR_API(PRInt32) _MD_getfileinfo(const char *fn, PRFileInfo *info); --NSPR_API(PRInt32) _MD_getfileinfo64(const char *fn, PRFileInfo64 *info); --NSPR_API(PRInt32) _MD_getopenfileinfo(const PRFileDesc *fd, PRFileInfo *info); --NSPR_API(PRInt32) _MD_getopenfileinfo64(const PRFileDesc *fd, PRFileInfo64 *info); --NSPR_API(PRInt32) _MD_rename(const char *from, const char *to); --NSPR_API(PRInt32) _MD_access(const char *name, PRIntn how); --NSPR_API(PRInt32) _MD_stat(const char *name, struct stat *buf); --NSPR_API(PRInt32) _MD_mkdir(const char *name, PRIntn mode); --NSPR_API(PRInt32) _MD_rmdir(const char *name); --NSPR_API(PRInt32) _MD_pr_poll(PRPollDesc *pds, PRIntn npds, PRIntervalTime timeout); -- --/* Network I/O */ --NSPR_API(PRInt32) _MD_close_socket(PRInt32 osfd); --NSPR_API(PRInt32) _MD_connect(PRFileDesc *fd, const PRNetAddr *addr, PRUint32 addrlen, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_accept(PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_bind(PRFileDesc *fd, const PRNetAddr *addr, PRUint32 addrlen); --NSPR_API(PRInt32) _MD_listen(PRFileDesc *fd, PRIntn backlog); --NSPR_API(PRInt32) _MD_shutdown(PRFileDesc *fd, PRIntn how); --NSPR_API(PRInt32) _MD_recv(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_send(PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_accept_read(PRFileDesc *sd, PRInt32 *newSock, PRNetAddr **raddr, void *buf, PRInt32 amount, PRIntervalTime timeout); --// NSPR_API(PRInt32) _MD_fast_accept(PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen, PRIntervalTime timeout, PRBool fast, _PR_AcceptTimeoutCallback callback, void *callbackArg); --// NSPR_API(PRInt32) _MD_fast_accept_read(PRFileDesc *sd, PRInt32 *newSock, PRNetAddr **raddr, void *buf, PRInt32 amount, PRIntervalTime timeout, PRBool fast, _PR_AcceptTimeoutCallback callback, void *callbackArg); --// NSPR_API(void) _MD_update_accept_context(PRInt32 s, PRInt32 ls); --NSPR_API(PRStatus) _MD_getsockname(PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen); --NSPR_API(PRStatus) _MD_getpeername(PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen); --NSPR_API(PRStatus) _MD_getsockopt(PRFileDesc *fd, PRInt32 level, PRInt32 optname, char* optval, PRInt32* optlen); --NSPR_API(PRStatus) _MD_setsockopt(PRFileDesc *fd, PRInt32 level, PRInt32 optname, const char* optval, PRInt32 optlen); --NSPR_API(PRInt32) _MD_recvfrom(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, PRNetAddr *addr, PRUint32 *addrlen, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_sendto(PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags, const PRNetAddr *addr, PRUint32 addrlen, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_socketpair(int af, int type, int flags, PRInt32 *osfd); --NSPR_API(PRInt32) _MD_socket(int af, int type, int flags); --NSPR_API(PRInt32) _MD_socketavailable(PRFileDesc *fd); -- --// NSPR_API(PRInt32) _MD_get_socket_error(void); --NSPR_API(PRStatus) _MD_gethostname(char *name, PRUint32 namelen); -- --/* Process management */ -- --NSPR_API(PRProcess *) _MD_create_process(const char *path, char *const *argv, char *const *envp, const PRProcessAttr *attr); --NSPR_API(PRStatus) _MD_detach_process(PRProcess *process); --NSPR_API(PRStatus) _MD_wait_process(PRProcess *process, PRInt32 *exitCode); --NSPR_API(PRStatus) _MD_kill_process(PRProcess *process); -- --/* Atomic data operations */ -- --// NSPR_API(void) _MD_init_atomic(void); --// NSPR_API(PRInt32) _MD_atomic_increment(PRInt32 *); --// NSPR_API(PRInt32) _MD_atomic_decrement(PRInt32 *); --// NSPR_API(PRInt32) _MD_atomic_set(PRInt32 *, PRInt32); -- --/* Memory management */ -- --NSPR_API(void) _MD_init_segs(void); --NSPR_API(PRStatus) _MD_alloc_segment(PRSegment *seg, PRUint32 size, void *vaddr); --NSPR_API(void) _MD_free_segment(PRSegment *seg); -- --/* Memory mapped file I/O */ -- --NSPR_API(PRStatus) _MD_create_file_map(PRFileMap *fmap, PRInt64 size); --NSPR_API(PRInt32) _MD_get_mem_map_alignment(void); --NSPR_API(void *) _MD_mem_map(PRFileMap *fmap, PRInt64 offset, PRUint32 len); --NSPR_API(PRStatus) _MD_mem_unmap(void *addr, PRUint32 size); --NSPR_API(PRStatus) _MD_close_file_map(PRFileMap *fmap); -- --/* Time related */ -- --NSPR_API(PRTime) _MD_now(void); --NSPR_API(void) _MD_interval_init(void); --NSPR_API(PRIntervalTime) _MD_get_interval(void); --NSPR_API(PRIntervalTime) _MD_interval_per_sec(void); -- --/* File locking */ -- --NSPR_API(PRStatus) _MD_lockfile(PRInt32 osfd); --NSPR_API(PRStatus) _MD_tlockfile(PRInt32 osfd); --NSPR_API(PRStatus) _MD_unlockfile(PRInt32 osfd); -- - #endif /* _nspr_beos_defs_h___*/ -Index: nsprpub/pr/include/private/primpl.h -=================================================================== ---- nsprpub/pr/include/private/primpl.h (revision 7) -+++ nsprpub/pr/include/private/primpl.h (working copy) -@@ -50,10 +50,6 @@ - #include - #endif - --#if defined(_PR_BTHREADS) --#include --#endif -- - #ifdef WINNT - /* Need to force service-pack 3 extensions to be defined by - ** setting _WIN32_WINNT to NT 4.0 for winsock.h, winbase.h, winnt.h. -@@ -228,6 +224,20 @@ - - #else /* defined(_PR_PTHREADS) */ - -+#ifdef _PR_BTHREADS -+#define _MD_GET_ATTACHED_THREAD() (_PR_MD_CURRENT_THREAD()) -+ -+#define _PR_IS_NATIVE_THREAD(thread) 1 -+#define _PR_IS_NATIVE_THREAD_SUPPORTED() 1 -+/* -+extern PRInt32 _PR_MD_WRITE(PRFileDesc *fd, const void *buf, PRInt32 amount); -+#define _PR_MD_WRITE _MD_WRITE -+*/ -+NSPR_API(PRThread*) _PR_MD_CURRENT_THREAD(void); -+#define _PR_MD_CURRENT_THREAD _MD_CURRENT_THREAD -+ -+#else /* defined(_PR_BTHREADS) */ -+ - NSPR_API(void) PT_FPrintStats(PRFileDesc *fd, const char *msg); - - /* -@@ -1301,6 +1311,7 @@ - extern void *_PR_MD_GET_SP(PRThread *thread); - #define _PR_MD_GET_SP _MD_GET_SP - -+#endif /* defined(_PR_BTHREADS) */ - #endif /* defined(_PR_PTHREADS) */ - - /************************************************************************/ -@@ -1555,7 +1566,10 @@ - - #if defined(_PR_PTHREADS) - #else /* defined(_PR_PTHREADS) */ -+#if defined(_PR_BTHREADS) -+#else /* defined(_PR_BTHREADS) */ - _MDThreadStack md; -+#endif /* defined(_PR_BTHREADS) */ - #endif /* defined(_PR_PTHREADS) */ - }; - -@@ -1608,9 +1622,6 @@ - #elif defined(_PR_BTHREADS) - PRUint32 flags; - _MDThread md; -- PRBool io_pending; -- PRInt32 io_fd; -- PRBool io_suspended; - #else /* not pthreads or Be threads */ - _MDLock threadLock; /* Lock to protect thread state variables. - * Protects the following fields: -@@ -1694,7 +1705,9 @@ - struct PRFileMap { - PRFileDesc *fd; - PRFileMapProtect prot; -+#if !defined(XP_BEOS) - _MDFileMap md; -+#endif /* !defined(XP_BEOS) */ - }; - - /************************************************************************/ -@@ -1777,8 +1790,10 @@ - #endif /* MOZ_UNICODE */ - - extern void _PR_InitSegs(void); -+#if !defined(_PR_BTHREADS) - extern void _PR_InitStacks(void); - extern void _PR_InitTPD(void); -+#endif /* !defined(_PR_BTHREADS) */ - extern void _PR_InitMem(void); - extern void _PR_InitEnv(void); - extern void _PR_InitCMon(void); -@@ -1830,7 +1845,10 @@ - PRUintn flags; - #if defined(_PR_PTHREADS) - #else /* defined(_PR_PTHREADS) */ -+#if defined(_PR_BTHREADS) -+#else /* defined(_PR_BTHREADS) */ - _MDSegment md; -+#endif /* defined(_PR_BTHREADS) */ - #endif /* defined(_PR_PTHREADS) */ - }; - -@@ -2127,7 +2145,7 @@ - - /* end PR_GetRandomNoise() related */ - --#ifdef XP_BEOS -+#if defined(XP_BEOS) && !defined(BONE_VERSION) - - extern PRLock *_connectLock; - -@@ -2142,7 +2160,7 @@ - - extern PRUint32 connectCount; - --#endif /* XP_BEOS */ -+#endif /* XP_BEOS && !BONE_VERSION */ - - PR_END_EXTERN_C - -Index: nsprpub/pr/src/Makefile.in -=================================================================== ---- nsprpub/pr/src/Makefile.in (revision 7) -+++ nsprpub/pr/src/Makefile.in (working copy) -@@ -281,15 +281,13 @@ - pthreads/$(OBJDIR)/ptthread.$(OBJ_SUFFIX) \ - pthreads/$(OBJDIR)/ptmisc.$(OBJ_SUFFIX) - else -+ifndef USE_BTHREADS - OBJS += \ - io/$(OBJDIR)/prdir.$(OBJ_SUFFIX) \ - io/$(OBJDIR)/prfile.$(OBJ_SUFFIX) \ - io/$(OBJDIR)/prio.$(OBJ_SUFFIX) \ - io/$(OBJDIR)/prsocket.$(OBJ_SUFFIX) \ -- misc/$(OBJDIR)/pripcsem.$(OBJ_SUFFIX) -- --ifndef USE_BTHREADS --OBJS += \ -+ misc/$(OBJDIR)/pripcsem.$(OBJ_SUFFIX) \ - threads/$(OBJDIR)/prcthr.$(OBJ_SUFFIX) \ - threads/$(OBJDIR)/prdump.$(OBJ_SUFFIX) \ - threads/$(OBJDIR)/prmon.$(OBJ_SUFFIX) \ -@@ -300,7 +298,6 @@ - threads/combined/$(OBJDIR)/prustack.$(OBJ_SUFFIX) \ - threads/combined/$(OBJDIR)/pruthr.$(OBJ_SUFFIX) - endif -- - endif - - ifeq ($(USE_CPLUS), 1) -Index: nsprpub/pr/src/misc/Makefile.in -=================================================================== ---- nsprpub/pr/src/misc/Makefile.in (revision 7) -+++ nsprpub/pr/src/misc/Makefile.in (working copy) -@@ -71,10 +71,12 @@ - $(NULL) - - ifndef USE_PTHREADS -+ifndef USE_BTHREADS - CSRCS += \ - pripcsem.c \ - $(NULL) - endif -+endif - - TARGETS = $(OBJS) - -Index: nsprpub/pr/src/misc/prinit.c -=================================================================== ---- nsprpub/pr/src/misc/prinit.c (revision 7) -+++ nsprpub/pr/src/misc/prinit.c (working copy) -@@ -196,8 +196,10 @@ - _PR_InitLocks(); - _PR_InitAtomic(); - _PR_InitSegs(); -+#if !defined(_PR_BTHREADS) - _PR_InitStacks(); - _PR_InitTPD(); -+#endif /*!defined(_PR_BTHREADS) */ - _PR_InitEnv(); - _PR_InitLayerCache(); - _PR_InitClock(); -Index: nsprpub/pr/src/misc/pripcsem.c -=================================================================== ---- nsprpub/pr/src/misc/pripcsem.c (revision 7) -+++ nsprpub/pr/src/misc/pripcsem.c (working copy) -@@ -46,9 +46,9 @@ - - #include "primpl.h" - --#ifdef _PR_PTHREADS -+#if defined(_PR_PTHREADS) || defined(_PR_BTHREADS) - --#error "This file should not be compiled for the pthreads version" -+#error "This file should not be compiled for the pthreads or bthreads version" - - #else - -@@ -127,4 +127,4 @@ - return _PR_MD_DELETE_SEMAPHORE(osname); - } - --#endif /* _PR_PTHREADS */ -+#endif /* _PR_PTHREADS || _PR_BTHREADS */ -Index: nsprpub/pr/src/linking/prlink.c -=================================================================== ---- nsprpub/pr/src/linking/prlink.c (revision 7) -+++ nsprpub/pr/src/linking/prlink.c (working copy) -@@ -199,8 +199,10 @@ - - #ifdef XP_BEOS - void* dlh; -+#ifndef XP_HAIKU - void* stub_dlh; - #endif -+#endif - }; - - static PRLibrary *pr_loadmap; -@@ -863,6 +865,19 @@ - result = pr_UnlockedFindLibrary(name); - #endif - -+#ifdef XP_BEOS -+ /* Havn't seen this happen so far, but it doesn't slow anything -+ down so let's keep it */ -+ for (result = pr_loadmap; result != NULL; result = result->next) { -+ /* hopefully, our caller will always use the same string -+ to refer to the same library */ -+ if (strcmp(name, result->name) == 0) { -+ result->refCount++; -+ break; -+ } -+ } -+#endif -+ - if (result != NULL) goto unlock; - - lm = PR_NEWZAP(PRLibrary); -@@ -1020,29 +1035,14 @@ - #endif /* HAVE_DLL */ - #endif /* XP_UNIX */ - -- lm->refCount = 1; -- - #ifdef XP_BEOS -- { -- image_info info; -- int32 cookie = 0; -+ { /* Code block to allow variable inits. :/ */ -+ /* it appears the library isn't yet loaded - load it now */ -+#ifdef XP_HAIKU -+ image_id imageid = load_add_on(name); -+#else - image_id imageid = B_ERROR; - image_id stubid = B_ERROR; -- PRLibrary *p; -- -- for (p = pr_loadmap; p != NULL; p = p->next) { -- /* hopefully, our caller will always use the same string -- to refer to the same library */ -- if (strcmp(name, p->name) == 0) { -- /* we've already loaded this library */ -- imageid = info.id; -- lm->refCount++; -- break; -- } -- } -- -- if(imageid == B_ERROR) { -- /* it appears the library isn't yet loaded - load it now */ - char stubName [B_PATH_NAME_LENGTH + 1]; - - /* the following is a work-around to a "bug" in the beos - -@@ -1069,36 +1069,37 @@ - /* first, attempt to load the stub (thereby loading the - component as a shared library */ - if ((stubid = load_add_on(stubName)) > B_ERROR) { -+ -+ const char *endOfPassedName = strrchr(name, '/'); -+ image_info info; -+ int32 cookie = 0; -+ - /* the stub was loaded successfully. */ - imageid = B_FILE_NOT_FOUND; -+ if( 0 == endOfPassedName ) -+ endOfPassedName = name; -+ else -+ endOfPassedName++; - -- cookie = 0; - while (get_next_image_info(0, &cookie, &info) == B_OK) { - const char *endOfSystemName = strrchr(info.name, '/'); -- const char *endOfPassedName = strrchr(name, '/'); - if( 0 == endOfSystemName ) - endOfSystemName = info.name; - else - endOfSystemName++; -- if( 0 == endOfPassedName ) -- endOfPassedName = name; -- else -- endOfPassedName++; - if (strcmp(endOfSystemName, endOfPassedName) == 0) { - /* this is the actual component - remember it */ - imageid = info.id; - break; - } - } -- - } else { - /* we failed to load the "stub" - try to load the - component directly as an add-on */ - stubid = B_ERROR; - imageid = load_add_on(name); - } -- } -- -+#endif /* XP_HAIKU */ - if (imageid <= B_ERROR) { - oserr = imageid; - PR_DELETE( lm ); -@@ -1106,12 +1107,15 @@ - } - lm->name = strdup(name); - lm->dlh = (void*)imageid; -+#ifndef XP_HAIKU - lm->stub_dlh = (void*)stubid; -+#endif - lm->next = pr_loadmap; - pr_loadmap = lm; - } --#endif -+#endif /* XP_BEOS */ - -+ lm->refCount = 1; - result = lm; /* success */ - PR_LOG(_pr_linker_lm, PR_LOG_MIN, ("Loaded library %s (load lib)", lm->name)); - -@@ -1272,11 +1276,15 @@ - } - - #ifdef XP_BEOS -+#ifdef XP_HAIKU -+ unload_add_on( (image_id) lib->dlh ); -+#else - if(((image_id)lib->stub_dlh) == B_ERROR) - unload_add_on( (image_id) lib->dlh ); - else - unload_add_on( (image_id) lib->stub_dlh); --#endif -+#endif /* XP_HAIKU */ -+#endif /* XP_BEOS */ - - #ifdef XP_UNIX - #ifdef HAVE_DLL -Index: nsprpub/pr/src/bthreads/bsrcs.mk -=================================================================== ---- nsprpub/pr/src/bthreads/bsrcs.mk (revision 7) -+++ nsprpub/pr/src/bthreads/bsrcs.mk (working copy) -@@ -20,6 +20,7 @@ - # the Initial Developer. All Rights Reserved. - # - # Contributor(s): -+# Fredrik Holmqvist - # - # Alternatively, the contents of this file may be used under the terms of - # either the GNU General Public License Version 2 or later (the "GPL"), or -@@ -46,4 +47,6 @@ - btmon.c \ - btsem.c \ - btmisc.c \ -+ btfile.c \ -+ btio.c \ - $(NULL) -Index: nsprpub/pr/src/bthreads/btcvar.c -=================================================================== ---- nsprpub/pr/src/bthreads/btcvar.c (revision 7) -+++ nsprpub/pr/src/bthreads/btcvar.c (working copy) -@@ -20,6 +20,7 @@ - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): -+ * Fredrik Holmqvist - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or -@@ -35,8 +36,6 @@ - * - * ***** END LICENSE BLOCK ***** */ - --#include -- - #include "primpl.h" - - /* -@@ -130,16 +129,16 @@ - return PR_SUCCESS; - } - -- if( atomic_add( &cvar->signalBenCount, 1 ) > 0 ) -+ if( _MD_ATOMIC_INCREMENT( &cvar->signalBenCount ) > 1 ) - { - if (acquire_sem(cvar->signalSem) == B_INTERRUPTED) - { -- atomic_add( &cvar->signalBenCount, -1 ); -+ _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ); - return PR_FAILURE; - } - } - cvar->nw += 1; -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } -@@ -154,7 +153,7 @@ - err = acquire_sem_etc(cvar->sem, 1, B_RELATIVE_TIMEOUT, PR_IntervalToMicroseconds(timeout) ); - } - -- if( atomic_add( &cvar->signalBenCount, 1 ) > 0 ) -+ if( _MD_ATOMIC_INCREMENT( &cvar->signalBenCount ) > 1 ) - { - while (acquire_sem(cvar->signalSem) == B_INTERRUPTED); - } -@@ -165,18 +164,18 @@ - cvar->ns -= 1; - } - cvar->nw -= 1; -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } - - PR_Lock( cvar->lock ); -- if(err!=B_NO_ERROR) -+ if(err==B_NO_ERROR || (err == B_TIMED_OUT && timeout!=PR_INTERVAL_NO_TIMEOUT)) - { -- return PR_FAILURE; -- } - return PR_SUCCESS; - } -+ return PR_FAILURE; -+} - - /* - ** Notify ONE thread that is currently waiting on 'cvar'. Which thread is -@@ -195,11 +194,11 @@ - PR_NotifyCondVar (PRCondVar *cvar) - { - status_t err ; -- if( atomic_add( &cvar->signalBenCount, 1 ) > 0 ) -+ if( _MD_ATOMIC_INCREMENT( &cvar->signalBenCount) > 1 ) - { - if (acquire_sem(cvar->signalSem) == B_INTERRUPTED) - { -- atomic_add( &cvar->signalBenCount, -1 ); -+ _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ); - return PR_FAILURE; - } - } -@@ -207,7 +206,7 @@ - { - cvar->ns += 1; - release_sem_etc(cvar->sem, 1, B_DO_NOT_RESCHEDULE); -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } -@@ -219,7 +218,7 @@ - } - else - { -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } -@@ -241,11 +240,11 @@ - int32 handshakes; - status_t err = B_OK; - -- if( atomic_add( &cvar->signalBenCount, 1 ) > 0 ) -+ if( _MD_ATOMIC_INCREMENT( &cvar->signalBenCount) > 1 ) - { - if (acquire_sem(cvar->signalSem) == B_INTERRUPTED) - { -- atomic_add( &cvar->signalBenCount, -1 ); -+ _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ); - return PR_FAILURE; - } - } -@@ -255,7 +254,7 @@ - handshakes = cvar->nw - cvar->ns; - cvar->ns = cvar->nw; - release_sem_etc(cvar->sem, handshakes, B_DO_NOT_RESCHEDULE); -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } -@@ -267,7 +266,7 @@ - } - else - { -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } -Index: nsprpub/pr/src/bthreads/btlocks.c -=================================================================== ---- nsprpub/pr/src/bthreads/btlocks.c (revision 7) -+++ nsprpub/pr/src/bthreads/btlocks.c (working copy) -@@ -43,9 +43,6 @@ - - #include "primpl.h" - --#include --#include -- - void - _PR_InitLocks (void) - { -@@ -61,16 +58,13 @@ - - lock = PR_NEWZAP(PRLock); - if (lock != NULL) { -- - lock->benaphoreCount = 0; - lock->semaphoreID = create_sem( 0, "nsprLockSem" ); - if( lock->semaphoreID < B_NO_ERROR ) { -- - PR_DELETE( lock ); - lock = NULL; - } - } -- - return lock; - } - -@@ -88,17 +82,18 @@ - PR_IMPLEMENT(void) - PR_Lock (PRLock* lock) - { -+ status_t result; -+ - PR_ASSERT(lock != NULL); - -- if( atomic_add( &lock->benaphoreCount, 1 ) > 0 ) { -- -- if( acquire_sem(lock->semaphoreID ) != B_NO_ERROR ) { -- -- atomic_add( &lock->benaphoreCount, -1 ); -+ if( _MD_ATOMIC_INCREMENT( &lock->benaphoreCount) > 1 ) { -+ result = acquire_sem(lock->semaphoreID ); -+ PR_ASSERT(result == B_NO_ERROR); -+ if( result != B_NO_ERROR ) { -+ _MD_ATOMIC_DECREMENT( &lock->benaphoreCount); - return; - } - } -- - lock->owner = find_thread( NULL ); - } - -@@ -107,8 +102,7 @@ - { - PR_ASSERT(lock != NULL); - lock->owner = NULL; -- if( atomic_add( &lock->benaphoreCount, -1 ) > 1 ) { -- -+ if( _MD_ATOMIC_DECREMENT( &lock->benaphoreCount ) > 0 ) { - release_sem_etc( lock->semaphoreID, 1, B_DO_NOT_RESCHEDULE ); - } - -Index: nsprpub/pr/src/bthreads/btmisc.c -=================================================================== ---- nsprpub/pr/src/bthreads/btmisc.c (revision 7) -+++ nsprpub/pr/src/bthreads/btmisc.c (working copy) -@@ -20,6 +20,7 @@ - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): -+ * Fredrik Holmqvist - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or -@@ -38,11 +39,11 @@ - #include "primpl.h" - #include - --// void _PR_InitCPUs(void) {PT_LOG("_PR_InitCPUs")} --// void _MD_StartInterrupts(void) {PT_LOG("_MD_StartInterrupts")} -- --/* this is a total hack.. */ -- -+/* this is a total hack.. -+ * It's needed for netserver to compile. -+ * See nsprpub/pr/include/prnetdb.h -+ */ -+#ifndef BONE_VERSION - struct protoent* getprotobyname(const char* name) - { - return 0; -@@ -52,51 +53,17 @@ - { - return 0; - } -+#endif - --/* this is needed by prinit for some reason */ --void --_PR_InitStacks (void) --{ --} -- --/* this is needed by prinit for some reason */ --void --_PR_InitTPD (void) --{ --} -- - /* --** Create extra virtual processor threads. Generally used with MP systems. --*/ --PR_IMPLEMENT(void) -- PR_SetConcurrency (PRUintn numCPUs) --{ --} -- --/* --** Set thread recycle mode to on (1) or off (0) --*/ --PR_IMPLEMENT(void) -- PR_SetThreadRecycleMode (PRUint32 flag) --{ --} -- --/* - ** Get context registers, return with error for now. - */ -- - PR_IMPLEMENT(PRWord *) - _MD_HomeGCRegisters( PRThread *t, int isCurrent, int *np ) - { - return 0; - } - --PR_IMPLEMENT(void *) --PR_GetSP( PRThread *t ) --{ -- return 0; --} -- - PR_IMPLEMENT(PRStatus) - PR_EnumerateThreads( PREnumerator func, void *arg ) - { -Index: nsprpub/pr/src/bthreads/btfile.c -=================================================================== ---- nsprpub/pr/src/bthreads/btfile.c (revision 0) -+++ nsprpub/pr/src/bthreads/btfile.c (revision 0) -@@ -0,0 +1,994 @@ -+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -+/* ***** BEGIN LICENSE BLOCK ***** -+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 -+ * -+ * The contents of this file are subject to the Mozilla Public License Version -+ * 1.1 (the "License"); you may not use this file except in compliance with -+ * the License. You may obtain a copy of the License at -+ * http://www.mozilla.org/MPL/ -+ * -+ * Software distributed under the License is distributed on an "AS IS" basis, -+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -+ * for the specific language governing rights and limitations under the -+ * License. -+ * -+ * The Original Code is the Netscape Portable Runtime (NSPR). -+ * -+ * The Initial Developer of the Original Code is -+ * Netscape Communications Corporation. -+ * Portions created by the Initial Developer are Copyright (C) 1998-2000 -+ * the Initial Developer. All Rights Reserved. -+ * -+ * Contributor(s): -+ * Roy Yokoyama -+ * -+ * Alternatively, the contents of this file may be used under the terms of -+ * either the GNU General Public License Version 2 or later (the "GPL"), or -+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -+ * in which case the provisions of the GPL or the LGPL are applicable instead -+ * of those above. If you wish to allow use of your version of this file only -+ * under the terms of either the GPL or the LGPL, and not to allow others to -+ * use your version of this file under the terms of the MPL, indicate your -+ * decision by deleting the provisions above and replace them with the notice -+ * and other provisions required by the GPL or the LGPL. If you do not delete -+ * the provisions above, a recipient may use your version of this file under -+ * the terms of any one of the MPL, the GPL or the LGPL. -+ * -+ * ***** END LICENSE BLOCK ***** */ -+ -+#include "primpl.h" -+ -+static PRLock *_pr_flock_lock; /* For PR_LockFile() etc. */ -+static PRCondVar *_pr_flock_cv; /* For PR_LockFile() etc. */ -+ -+PRErrorCode -+map_default_error(int err) -+{ -+ switch (err) { -+ case EACCES: -+ return PR_NO_ACCESS_RIGHTS_ERROR; -+ case EADDRINUSE: -+ return PR_ADDRESS_IN_USE_ERROR; -+ case EADDRNOTAVAIL: -+ return PR_ADDRESS_NOT_AVAILABLE_ERROR; -+ case EAFNOSUPPORT: -+ return PR_ADDRESS_NOT_SUPPORTED_ERROR; -+ /*Same as EWOULDBLOCK*/ -+ case EAGAIN: -+ return PR_WOULD_BLOCK_ERROR; -+#if EALREADY != EBUSY -+ case EALREADY: -+ return PR_ALREADY_INITIATED_ERROR; -+#endif -+ case EBADF: -+ return PR_BAD_DESCRIPTOR_ERROR; -+ case EBUSY: -+ return PR_FILESYSTEM_MOUNTED_ERROR; -+ case ECONNABORTED: -+ return PR_CONNECT_ABORTED_ERROR; -+ case ECONNREFUSED: -+ return PR_CONNECT_REFUSED_ERROR; -+ case EDEADLK: -+ return PR_DEADLOCK_ERROR; -+ case EEXIST: -+ return PR_FILE_EXISTS_ERROR; -+ case EFAULT: -+ return PR_ACCESS_FAULT_ERROR; -+ case EFBIG: -+ return PR_FILE_TOO_BIG_ERROR; -+ case EHOSTUNREACH: -+ return PR_HOST_UNREACHABLE_ERROR; -+ case EINPROGRESS: -+ return PR_IN_PROGRESS_ERROR; -+ case EINTR: -+ return PR_PENDING_INTERRUPT_ERROR; -+ case EINVAL: -+ return PR_INVALID_ARGUMENT_ERROR; -+ case EIO: -+ return PR_IO_ERROR; -+ case EISCONN: -+ return PR_IS_CONNECTED_ERROR; -+ case EISDIR: -+ return PR_IS_DIRECTORY_ERROR; -+ case ELOOP: -+ return PR_LOOP_ERROR; -+ case EMFILE: -+ return PR_PROC_DESC_TABLE_FULL_ERROR; -+ case EMLINK: -+ return PR_MAX_DIRECTORY_ENTRIES_ERROR; -+ case EMSGSIZE: -+ return PR_INVALID_ARGUMENT_ERROR; -+ case ENAMETOOLONG: -+ return PR_NAME_TOO_LONG_ERROR; -+ case ENETUNREACH: -+ return PR_NETWORK_UNREACHABLE_ERROR; -+ case ENFILE: -+ return PR_SYS_DESC_TABLE_FULL_ERROR; -+ case ENOBUFS: -+ return PR_INSUFFICIENT_RESOURCES_ERROR; -+ case ENODEV: -+ case ENOENT: -+ return PR_FILE_NOT_FOUND_ERROR; -+ case ENOLCK: -+ return PR_FILE_IS_LOCKED_ERROR; -+#if 0 -+ case ENOLINK: -+ return PR_REMOTE_FILE_ERROR; -+#endif -+ case ENOMEM: -+ return PR_OUT_OF_MEMORY_ERROR; -+ case ENOPROTOOPT: -+ return PR_INVALID_ARGUMENT_ERROR; -+ case ENOSPC: -+ return PR_NO_DEVICE_SPACE_ERROR; -+ case ENOTCONN: -+ return PR_NOT_CONNECTED_ERROR; -+ case ENOTDIR: -+ return PR_NOT_DIRECTORY_ERROR; -+ case ENOTSOCK: -+ return PR_NOT_SOCKET_ERROR; -+ case ENXIO: -+ return PR_FILE_NOT_FOUND_ERROR; -+ case EOPNOTSUPP: -+ return PR_NOT_TCP_SOCKET_ERROR; -+ case EOVERFLOW: -+ return PR_BUFFER_OVERFLOW_ERROR; -+ case EPERM: -+ return PR_NO_ACCESS_RIGHTS_ERROR; -+ case EPIPE: -+ return PR_CONNECT_RESET_ERROR; -+ case EPROTONOSUPPORT: -+ return PR_PROTOCOL_NOT_SUPPORTED_ERROR; -+ case EPROTOTYPE: -+ return PR_ADDRESS_NOT_SUPPORTED_ERROR; -+ case ERANGE: -+ return PR_INVALID_METHOD_ERROR; -+ case EROFS: -+ return PR_READ_ONLY_FILESYSTEM_ERROR; -+ case ESPIPE: -+ return PR_INVALID_METHOD_ERROR; -+ case ETIMEDOUT: -+ return PR_IO_TIMEOUT_ERROR; -+ case EXDEV: -+ return PR_NOT_SAME_DEVICE_ERROR; -+ default: -+ return PR_UNKNOWN_ERROR; -+ } -+} -+ -+ -+inline void -+set_open_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EAGAIN: -+ case ENOMEM: -+ prError = PR_INSUFFICIENT_RESOURCES_ERROR; -+ break; -+ case EBUSY: -+ prError = PR_IO_ERROR; -+ break; -+ case ENODEV: -+ prError = PR_FILE_NOT_FOUND_ERROR; -+ break; -+ case EOVERFLOW: -+ prError = PR_FILE_TOO_BIG_ERROR; -+ break; -+ case ETIMEDOUT: -+ prError = PR_REMOTE_FILE_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_rename_error(int err) -+{ -+ PR_SetError(err == EEXIST ? PR_DIRECTORY_NOT_EMPTY_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_unlink_error(int err) -+{ -+ PR_SetError(err == EPERM ? PR_IS_DIRECTORY_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_opendir_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_closedir_error(int err) -+{ -+ PR_SetError( err == EINVAL ? PR_BAD_DESCRIPTOR_ERROR : map_default_error(err), err); -+} -+ -+inline void -+set_readdir_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case 0: -+ case ENOENT: -+ prError = PR_NO_MORE_FILES_ERROR; -+ break; -+ case EOVERFLOW: -+ case EINVAL: -+ case ENXIO: -+ prError = PR_IO_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_mkdir_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+ -+inline void -+set_rmdir_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case ENOTEMPTY: -+ case EEXIST: -+ case EINVAL: -+ prError = PR_DIRECTORY_NOT_EMPTY_ERROR; -+ break; -+ case ETIMEDOUT: -+ prError = PR_REMOTE_FILE_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_close_error(int err) -+{ -+ PR_SetError( err == ETIMEDOUT ? PR_REMOTE_FILE_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_read_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_INVALID_METHOD_ERROR; -+ break; -+ case ENXIO: -+ prError = PR_INVALID_ARGUMENT_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_write_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_INVALID_METHOD_ERROR; -+ break; -+ case ENXIO: -+ prError = PR_INVALID_ARGUMENT_ERROR; -+ break; -+ case ETIMEDOUT: -+ prError = PR_REMOTE_FILE_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_lseek_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+ -+inline void -+set_fsync_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_INVALID_METHOD_ERROR; -+ break; -+ case ETIMEDOUT: -+ prError = PR_REMOTE_FILE_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_fstat_error(int err) -+{ -+ PR_SetError(err == ETIMEDOUT ? PR_REMOTE_FILE_ERROR : map_default_error(err), err); -+} -+ -+/* TODO: using uint8 instead of bool due to code that uses bool as var name in hard to change places -+ therefore we had to undef it. Or we need to change Haiku's headers around so we can include -+ everything we need except the bool decl. */ -+PRFileDesc * bt_CreateFileDesc(PRIntn osfd, const PRIOMethods * methods, _PRTriStateBool inheritable, uint8 nonblocking) { -+ const int blocking = 1; -+ PRFileDesc *fd = _PR_Getfd(); -+ if (fd == NULL) -+ { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ return NULL; -+ } -+ fd->secret->md.osfd = osfd; -+ fd->secret->state = _PR_FILEDESC_OPEN; -+ fd->secret->inheritable = inheritable; -+ fd->methods = methods; -+ if (nonblocking) -+ setsockopt(osfd, SOL_SOCKET, SO_NONBLOCK, &blocking, sizeof(blocking)); -+ return fd; -+} -+ -+ -+PR_IMPLEMENT(PRFileDesc*) PR_GetSpecialFD(PRSpecialFD osfd) -+{ -+ PR_ASSERT(osfd >= PR_StandardInput && osfd <= PR_StandardError); -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ -+ switch (osfd) -+ { -+ case PR_StandardInput: return _pr_stdin; -+ case PR_StandardOutput: return _pr_stdout; -+ case PR_StandardError: return _pr_stderr; -+ default: -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ } -+ return NULL; -+} /* PR_GetSpecialFD */ -+ -+ -+PR_IMPLEMENT(PRFileDesc*) PR_Open(const char *name, PRIntn flags, PRIntn mode) -+{ -+ return PR_OpenFile(name, flags, mode); -+} /* PR_Open */ -+ -+PR_IMPLEMENT(PRFileDesc*) PR_OpenFile(const char *name, PRIntn flags, PRIntn mode) -+{ -+ PRFileDesc *fd = NULL; -+ PRInt32 osflags; -+ PRInt32 osfd, err; -+ -+ if (flags & PR_RDWR) { -+ osflags = O_RDWR; -+ } else if (flags & PR_WRONLY) { -+ osflags = O_WRONLY; -+ } else { -+ osflags = O_RDONLY; -+ } -+ -+ if (flags & PR_EXCL) -+ osflags |= O_EXCL; -+ if (flags & PR_APPEND) -+ osflags |= O_APPEND; -+ if (flags & PR_TRUNCATE) -+ osflags |= O_TRUNC; -+ if (flags & PR_SYNC) { -+/* Ummmm. BeOS doesn't appear to -+ support sync in any way shape or -+ form. */ -+ return PR_NOT_IMPLEMENTED_ERROR; -+ } -+ -+ if (flags & PR_CREATE_FILE) -+ { -+ osflags |= O_CREAT; -+ } -+ -+ osfd = open(name, osflags, mode); -+ if (osfd < 0) { -+ err = _MD_ERRNO(); -+ set_open_error(err); -+ } -+ -+ if(osfd>=0) { -+ fd = bt_CreateFileDesc(osfd, PR_GetFileMethods(), _PR_TRI_TRUE, false); -+ if (fd == NULL) close(osfd); /* $$$ whoops! this is bad $$$ */ -+ } -+ return fd; -+} /* PR_OpenFile */ -+ -+/* -+** Import an existing OS file to NSPR -+*/ -+PR_IMPLEMENT(PRFileDesc*) PR_ImportFile(PRInt32 osfd) -+{ -+ PRFileDesc *fd = NULL; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ -+ fd = bt_CreateFileDesc(osfd, PR_GetFileMethods(), _PR_TRI_UNKNOWN, false); -+ if (NULL == fd) close(osfd); -+ return fd; -+} -+ -+/* -+** Import an existing OS pipe to NSPR -+*/ -+PR_IMPLEMENT(PRFileDesc*) PR_ImportPipe(PRInt32 osfd) -+{ -+ PRFileDesc *fd = NULL; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ fd = bt_CreateFileDesc(osfd, PR_GetPipeMethods(), _PR_TRI_UNKNOWN, true); -+ -+ if (NULL == fd) close(osfd); -+ return fd; -+} -+ -+ -+PR_IMPLEMENT(PRStatus) PR_Rename(const char *from, const char *to) -+{ -+ PRInt32 rv = -1, err; -+ -+ if (0 == access(to, F_OK)) -+ PR_SetError(PR_FILE_EXISTS_ERROR, 0); -+ else -+ { -+ rv = rename(from, to); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_rename_error(err); -+ } -+ } -+ if (rv < 0) { -+ return PR_FAILURE; -+ } else { -+ return PR_SUCCESS; -+ } -+} -+ -+PR_IMPLEMENT(PRStatus) PR_Delete(const char *name) -+{ -+ PRInt32 rv, err; -+ -+ rv = unlink(name); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_unlink_error(err); -+ return PR_FAILURE; -+ } else -+ return PR_SUCCESS; -+} -+ -+ -+PR_IMPLEMENT(PRDir*) PR_OpenDir(const char *name) -+{ -+ PRDir *dir; -+ PRInt32 err; -+ -+ dir = PR_NEW(PRDir); -+ if (dir) { -+ dir->md.d = opendir(name); -+ if (NULL == dir->md.d) { -+ err = _MD_ERRNO(); -+ set_opendir_error(err); -+ PR_DELETE(dir); -+ return NULL; -+ } -+ } else { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ } -+ return dir; -+} -+ -+PR_IMPLEMENT(PRDirEntry*) PR_ReadDir(PRDir *dir, PRDirFlags flags) -+{ -+ PRInt32 err; -+ struct dirent *de; -+ for (;;) { -+ /* -+ * XXX: readdir() is not MT-safe -+ */ -+ _MD_ERRNO() = 0; -+ de = readdir(dir->md.d); -+ -+ if (!de) { -+ err = _MD_ERRNO(); -+ set_readdir_error(err); -+ return 0; -+ } -+ -+ if ((flags & PR_SKIP_DOT) && -+ (de->d_name[0] == '.') && (de->d_name[1] == 0)) -+ continue; -+ -+ if ((flags & PR_SKIP_DOT_DOT) && -+ (de->d_name[0] == '.') && (de->d_name[1] == '.') && -+ (de->d_name[2] == 0)) -+ continue; -+ -+ if ((flags & PR_SKIP_HIDDEN) && (de->d_name[1] == '.')) -+ continue; -+ -+ break; -+ } -+ -+ dir->d.name = de->d_name; -+ return de->d_name ? &dir->d : NULL; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_CloseDir(PRDir *dir) -+{ -+ PRInt32 rv, err; -+ -+ if (dir && dir->md.d) { -+ rv = closedir(dir->md.d); -+ PR_DELETE(dir); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_closedir_error(err); -+ return PR_FAILURE; -+ } -+ } -+ return PR_SUCCESS; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_MkDir(const char *name, PRIntn mode) -+{ -+ status_t rv; -+ int err; -+ -+ rv = mkdir(name, mode); -+ -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_mkdir_error(err); -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_MakeDir(const char *name, PRIntn mode) -+{ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ return PR_MkDir(name, mode); -+} -+ -+PR_IMPLEMENT(PRStatus) PR_RmDir(const char *name) -+{ -+ PRInt32 rv, err; -+ -+ rv = rmdir(name); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_rmdir_error(err); -+ return PR_FAILURE; -+ } else -+ return PR_SUCCESS; -+} -+ -+PR_IMPLEMENT(PRInt32) -+PR_FileDesc2NativeHandle(PRFileDesc *fd) -+{ -+ if (fd) { -+ fd = PR_GetIdentitiesLayer(fd, PR_NSPR_IO_LAYER); -+ } -+ if (!fd) { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return -1; -+ } -+ -+ return fd->secret->md.osfd; -+} -+ -+#ifdef MOZ_UNICODE -+/* -+ * UTF16 Interface -+ */ -+PR_IMPLEMENT(PRDirUTF16*) PR_OpenDirUTF16(const PRUnichar *name) -+{ -+ PRDirUTF16 *dir; -+ PRStatus sts; -+ -+ dir = PR_NEW(PRDirUTF16); -+ if (dir) { -+ sts = _PR_MD_OPEN_DIR_UTF16(&dir->md,name); -+ if (sts != PR_SUCCESS) { -+ PR_DELETE(dir); -+ return NULL; -+ } -+ } else { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ } -+ return dir; -+} -+ -+PR_IMPLEMENT(PRDirEntryUTF16*) PR_ReadDirUTF16(PRDirUTF16 *dir, PRDirFlags flags) -+{ -+ /* -+ * _MD_READ_DIR_UTF16 return a PRUnichar* to the name; allocation in -+ * machine-dependent code -+ */ -+ PRUnichar* name = _PR_MD_READ_DIR_UTF16(&dir->md, flags); -+ dir->d.name = name; -+ return name ? &dir->d : NULL; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_CloseDirUTF16(PRDirUTF16 *dir) -+{ -+ PRInt32 rv; -+ -+ if (dir) { -+ rv = _PR_MD_CLOSE_DIR_UTF16(&dir->md); -+ PR_DELETE(dir); -+ if (rv < 0) -+ return PR_FAILURE; -+ else -+ return PR_SUCCESS; -+ } -+ return PR_SUCCESS; -+} -+ -+#endif /* MOZ_UNICODE */ -+ -+ -+static PRStatus PR_CALLBACK FileClose(PRFileDesc *fd) -+{ -+ PRInt32 err; -+ if (!fd || !fd->secret -+ || (fd->secret->state != _PR_FILEDESC_OPEN -+ && fd->secret->state != _PR_FILEDESC_CLOSED)) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ if (fd->secret->state == _PR_FILEDESC_OPEN) { -+ if (close(fd->secret->md.osfd) < 0) { -+ err = _MD_ERRNO(); -+ set_close_error(err); -+ return PR_FAILURE; -+ } -+ fd->secret->state = _PR_FILEDESC_CLOSED; -+ } -+ PR_ASSERT(fd); -+ _PR_Putfd(fd); -+ return PR_SUCCESS; -+} -+ -+static PRInt32 PR_CALLBACK FileRead(PRFileDesc *fd, void *buf, PRInt32 amount) -+{ -+ PRInt32 rv,err = 0; -+ -+ rv = read(fd->secret->md.osfd, buf, amount); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_read_error(err); -+ PR_ASSERT(rv == -1); -+ } -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("read -> %d", rv)); -+ return rv; -+} -+ -+static PRInt32 PR_CALLBACK FileWrite(PRFileDesc *fd, const void *buf, PRInt32 amount) -+{ -+ PRInt32 rv,err = 0; -+ PRInt32 temp, count; -+ -+ count = 0; -+ while (amount > 0) { -+ temp = write(fd->secret->md.osfd, buf, amount); -+ if (temp < 0) { -+ err = _MD_ERRNO(); -+ set_write_error(err); -+ count = -1; -+ break; -+ } -+ count += temp; -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ buf = (const void*) ((const char*)buf + temp); -+ amount -= temp; -+ } -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("write -> %d", count)); -+ return count; -+} -+ -+static PRInt32 PR_CALLBACK FileAvailable(PRFileDesc *fd) -+{ -+ PRInt32 result, cur, end, err; -+ -+ cur = lseek(fd->secret->md.osfd, 0, PR_SEEK_CUR); -+ -+ if (cur >= 0) -+ end = lseek(fd->secret->md.osfd, 0, PR_SEEK_END); -+ -+ if ((cur < 0) || (end < 0)) { -+ err = _MD_ERRNO(); -+ set_lseek_error(err); -+ return -1; -+ } -+ -+ result = end - cur; -+ lseek(fd->secret->md.osfd, cur, PR_SEEK_SET); -+ -+ return result; -+} -+ -+static PRInt64 PR_CALLBACK FileAvailable64(PRFileDesc *fd) -+{ -+ PRInt64 result, cur, end; -+ PRInt64 minus_one; -+ PRInt32 err; -+ -+ cur = lseek(fd->secret->md.osfd, LL_ZERO, PR_SEEK_CUR); -+ -+ if (LL_GE_ZERO(cur)) -+ end = lseek(fd->secret->md.osfd, LL_ZERO, PR_SEEK_END); -+ -+ if (!LL_GE_ZERO(cur) || !LL_GE_ZERO(end)) { -+ LL_I2L(minus_one, -1); -+ err = _MD_ERRNO(); -+ set_lseek_error(err); -+ return minus_one; -+ } -+ LL_SUB(result, end, cur); -+ lseek(fd->secret->md.osfd, cur, PR_SEEK_SET); -+ return result; -+} -+ -+static PRStatus PR_CALLBACK FileSync(PRFileDesc *fd) -+{ -+ PRInt32 result, err; -+ result = fsync(fd->secret->md.osfd); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_fsync_error(err); -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+static PROffset32 PR_CALLBACK FileSeek(PRFileDesc *fd, PROffset32 offset, PRSeekWhence whence) -+{ -+ PROffset32 result; -+ PRInt32 err; -+ result = lseek(fd->secret->md.osfd, offset, whence); -+ if(result<0) { -+ err = _MD_ERRNO(); -+ set_lseek_error(err); -+ } -+ return result; -+} -+ -+static PROffset64 PR_CALLBACK FileSeek64(PRFileDesc *fd, PROffset64 offset, PRSeekWhence whence) -+{ -+ PROffset64 result; -+ PRInt32 err; -+ -+ result = lseek(fd->secret->md.osfd, offset, whence); -+ if(!LL_GE_ZERO(result)) { -+ err = _MD_ERRNO(); -+ set_lseek_error(err); -+ } -+ return result; -+} -+ -+static PRStatus PR_CALLBACK FileGetInfo(PRFileDesc *fd, PRFileInfo *info) -+{ -+ struct stat sb; -+ PRInt64 s, s2us; -+ PRInt32 rv, err; -+ -+ rv = fstat(fd->secret->md.osfd, &sb); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_fstat_error(err); -+ return PR_FAILURE; -+ } -+ if(info) { -+ if (S_IFREG & sb.st_mode) -+ info->type = PR_FILE_FILE ; -+ else if (S_IFDIR & sb.st_mode) -+ info->type = PR_FILE_DIRECTORY; -+ else -+ info->type = PR_FILE_OTHER; -+ /* Use lower 32 bits of file size */ -+ info->size = ( sb.st_size & 0xffffffff); -+ LL_I2L(s, sb.st_mtime); -+ LL_I2L(s2us, PR_USEC_PER_SEC); -+ LL_MUL(s, s, s2us); -+ info->modifyTime = s; -+ LL_I2L(s, sb.st_ctime); -+ LL_MUL(s, s, s2us); -+ info->creationTime = s; -+ } -+ return PR_SUCCESS; -+} -+ -+static PRStatus PR_CALLBACK FileGetInfo64(PRFileDesc *fd, PRFileInfo64 *info) -+{ -+ struct stat sb; -+ PRInt64 s, s2us; -+ PRInt32 rv, err; -+ -+ rv = fstat(fd->secret->md.osfd, &sb); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_fstat_error(err); -+ return PR_FAILURE; -+ } -+ if(info) { -+ if (S_IFREG & sb.st_mode) -+ info->type = PR_FILE_FILE ; -+ else if (S_IFDIR & sb.st_mode) -+ info->type = PR_FILE_DIRECTORY; -+ else -+ info->type = PR_FILE_OTHER; -+ info->size = sb.st_size; -+ LL_I2L(s, sb.st_mtime); -+ LL_I2L(s2us, PR_USEC_PER_SEC); -+ LL_MUL(s, s, s2us); -+ info->modifyTime = s; -+ LL_I2L(s, sb.st_ctime); -+ LL_MUL(s, s, s2us); -+ info->creationTime = s; -+ } -+ return PR_SUCCESS; -+} -+ -+static PRInt16 PR_CALLBACK FilePoll( -+ PRFileDesc *fd, PRInt16 in_flags, PRInt16 *out_flags) -+{ -+ *out_flags = 0; -+ return in_flags; -+} /* FilePoll */ -+ -+ -+static PRIOMethods _pr_fileMethods = { -+ PR_DESC_FILE, -+ FileClose, -+ FileRead, -+ FileWrite, -+ FileAvailable, -+ FileAvailable64, -+ FileSync, -+ FileSeek, -+ FileSeek64, -+ FileGetInfo, -+ FileGetInfo64, -+ (PRWritevFN)_PR_InvalidInt, -+ (PRConnectFN)_PR_InvalidStatus, -+ (PRAcceptFN)_PR_InvalidDesc, -+ (PRBindFN)_PR_InvalidStatus, -+ (PRListenFN)_PR_InvalidStatus, -+ (PRShutdownFN)_PR_InvalidStatus, -+ (PRRecvFN)_PR_InvalidInt, -+ (PRSendFN)_PR_InvalidInt, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ FilePoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ (PRGetsocknameFN)_PR_InvalidStatus, -+ (PRGetpeernameFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRGetsocketoptionFN)_PR_InvalidStatus, -+ (PRSetsocketoptionFN)_PR_InvalidStatus, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+PR_IMPLEMENT(const PRIOMethods*) PR_GetFileMethods(void) -+{ -+ return &_pr_fileMethods; -+} -+ -+ -+static PRInt32 PR_CALLBACK PipeAvailable(PRFileDesc *fd) -+{ -+ PRInt32 rv; -+ rv = _bt_socketavailable(fd); -+ return rv; -+} -+ -+static PRInt64 PR_CALLBACK PipeAvailable64(PRFileDesc *fd) -+{ -+ PRInt64 rv; -+ LL_I2L(rv, _bt_socketavailable(fd)); -+ return rv; -+} -+ -+static PRStatus PR_CALLBACK PipeSync(PRFileDesc *fd) -+{ -+ return PR_SUCCESS; -+} -+ -+ -+static PRIOMethods _pr_pipeMethods = { -+ PR_DESC_PIPE, -+ FileClose, -+ FileRead, -+ FileWrite, -+ PipeAvailable, -+ PipeAvailable64, -+ PipeSync, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ (PRWritevFN)_PR_InvalidInt, -+ (PRConnectFN)_PR_InvalidStatus, -+ (PRAcceptFN)_PR_InvalidDesc, -+ (PRBindFN)_PR_InvalidStatus, -+ (PRListenFN)_PR_InvalidStatus, -+ (PRShutdownFN)_PR_InvalidStatus, -+ (PRRecvFN)_PR_InvalidInt, -+ (PRSendFN)_PR_InvalidInt, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ FilePoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ (PRGetsocknameFN)_PR_InvalidStatus, -+ (PRGetpeernameFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRGetsocketoptionFN)_PR_InvalidStatus, -+ (PRSetsocketoptionFN)_PR_InvalidStatus, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+PR_IMPLEMENT(const PRIOMethods*) PR_GetPipeMethods(void) -+{ -+ return &_pr_pipeMethods; -+} -+ -+void _PR_InitIO(void) { -+ const PRIOMethods *methods = PR_GetFileMethods(); -+ _PR_InitFdCache(); -+ _pr_flock_lock = PR_NewLock(); -+ _pr_flock_cv = PR_NewCondVar(_pr_flock_lock); -+ _pr_stdin = bt_CreateFileDesc(0, PR_GetFileMethods(), _PR_TRI_UNKNOWN, false); -+ _pr_stdout = bt_CreateFileDesc(1, PR_GetFileMethods(), _PR_TRI_UNKNOWN, false); -+ _pr_stderr = bt_CreateFileDesc(2, PR_GetFileMethods(), _PR_TRI_UNKNOWN, false); -+} -+ -Index: nsprpub/pr/src/bthreads/btsem.c -=================================================================== ---- nsprpub/pr/src/bthreads/btsem.c (revision 7) -+++ nsprpub/pr/src/bthreads/btsem.c (working copy) -@@ -38,6 +38,7 @@ - #include - - #include "primpl.h" -+#include "obsolete/prsem.h" - - /* - ** Create a new semaphore object. -Index: nsprpub/pr/src/bthreads/btio.c -=================================================================== ---- nsprpub/pr/src/bthreads/btio.c (revision 0) -+++ nsprpub/pr/src/bthreads/btio.c (revision 0) -@@ -0,0 +1,2424 @@ -+/* -*- Mode: C++; c-basic-offset: 4 -*- */ -+/* ***** BEGIN LICENSE BLOCK ***** -+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 -+ * -+ * The contents of this file are subject to the Mozilla Public License Version -+ * 1.1 (the "License"); you may not use this file except in compliance with -+ * the License. You may obtain a copy of the License at -+ * http://www.mozilla.org/MPL/ -+ * -+ * Software distributed under the License is distributed on an "AS IS" basis, -+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -+ * for the specific language governing rights and limitations under the -+ * License. -+ * -+ * The Original Code is the Netscape Portable Runtime (NSPR). -+ * -+ * The Initial Developer of the Original Code is -+ * Netscape Communications Corporation. -+ * Portions created by the Initial Developer are Copyright (C) 1998-2000 -+ * the Initial Developer. All Rights Reserved. -+ * -+ * Contributor(s): -+ * -+ * Alternatively, the contents of this file may be used under the terms of -+ * either the GNU General Public License Version 2 or later (the "GPL"), or -+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -+ * in which case the provisions of the GPL or the LGPL are applicable instead -+ * of those above. If you wish to allow use of your version of this file only -+ * under the terms of either the GPL or the LGPL, and not to allow others to -+ * use your version of this file under the terms of the MPL, indicate your -+ * decision by deleting the provisions above and replace them with the notice -+ * and other provisions required by the GPL or the LGPL. If you do not delete -+ * the provisions above, a recipient may use your version of this file under -+ * the terms of any one of the MPL, the GPL or the LGPL. -+ * -+ * ***** END LICENSE BLOCK ***** */ -+ -+#include "primpl.h" -+#include -+#include -+#include -+ -+#define READ_FD 1 -+#define WRITE_FD 2 -+ -+#ifdef BONE_VERSION -+inline int closesocket(int socket) { -+ return close(socket); -+} -+#endif -+ -+ -+inline void -+set_stat_error(int err) -+{ -+ PR_SetError(err == ETIMEDOUT ? PR_REMOTE_FILE_ERROR : map_default_error(err), err); -+} -+ -+inline void -+set_access_error(int err) -+{ -+ PR_SetError(err == ETIMEDOUT ? PR_REMOTE_FILE_ERROR : map_default_error(err), err); -+} -+ -+inline void -+set_select_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_writev_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_connect_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EACCES: -+ case ELOOP: -+ case ENOENT: -+ prError = PR_ADDRESS_NOT_SUPPORTED_ERROR; -+ break; -+ case ENXIO: -+ prError = PR_IO_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+ -+} -+ -+inline void -+set_accept_error(int err) -+{ -+ PR_SetError(err == ENODEV ? PR_NOT_TCP_SOCKET_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_bind_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_SOCKET_ADDRESS_IS_BOUND_ERROR; -+ break; -+ case EIO: -+ case EISDIR: -+ case ELOOP: -+ case ENOENT: -+ case ENOTDIR: -+ case EROFS: -+ prError = PR_ADDRESS_NOT_SUPPORTED_ERROR; -+ break; -+ case ENXIO: -+ prError = PR_IO_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+inline void -+set_listen_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_shutdown_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_socketpair_error(int err) -+{ -+ PR_SetError(err == ENOMEM ? PR_INSUFFICIENT_RESOURCES_ERROR : map_default_error(err), err); -+} -+ -+inline void -+set_recv_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_recvfrom_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+ -+inline void -+set_send_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_sendto_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_getsockname_error(int err) -+{ -+ PR_SetError(err == ENOMEM ? PR_INSUFFICIENT_RESOURCES_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_getpeername_error(int err) -+{ -+ PR_SetError(err == ENOMEM ? PR_INSUFFICIENT_RESOURCES_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_getsockopt_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_BUFFER_OVERFLOW_ERROR; -+ break; -+ case ENOMEM: -+ prError = PR_INSUFFICIENT_RESOURCES_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+inline void -+set_setsockopt_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_BUFFER_OVERFLOW_ERROR; -+ break; -+ case ENOMEM: -+ prError = PR_INSUFFICIENT_RESOURCES_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_socket_error(int err) -+{ -+ PR_SetError( err == ENOMEM ? PR_INSUFFICIENT_RESOURCES_ERROR : map_default_error(err), err); -+} -+ -+ -+PR_IMPLEMENT(PRStatus) PR_GetFileInfo(const char *fn, PRFileInfo *info) -+{ -+ struct stat sb; -+ PRInt32 rv, err; -+ PRInt64 s, s2us; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ rv = stat(fn, &sb); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_stat_error(err); -+ return PR_FAILURE; -+ } -+ if (info) { -+ if (S_IFREG & sb.st_mode) -+ info->type = PR_FILE_FILE; -+ else if (S_IFDIR & sb.st_mode) -+ info->type = PR_FILE_DIRECTORY; -+ else -+ info->type = PR_FILE_OTHER; -+ -+ /* Use lower 32 bits of file size */ -+ info->size = sb.st_size & 0xffffffff; -+ LL_I2L(s, sb.st_mtime); -+ LL_I2L(s2us, PR_USEC_PER_SEC); -+ LL_MUL(s, s, s2us); -+ info->modifyTime = s; -+ LL_I2L(s, sb.st_ctime); -+ LL_MUL(s, s, s2us); -+ info->creationTime = s; -+ } -+ -+ return PR_SUCCESS; -+} -+ -+ -+PR_IMPLEMENT(PRStatus) PR_GetFileInfo64(const char *fn, PRFileInfo64 *info) -+{ -+ struct stat sb; -+ PRInt32 rv, err; -+ PRInt64 s, s2us; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ rv = stat(fn, &sb); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_stat_error(err); -+ return PR_FAILURE; -+ } -+ if (info) { -+ if (S_IFREG & sb.st_mode) -+ info->type = PR_FILE_FILE; -+ else if (S_IFDIR & sb.st_mode) -+ info->type = PR_FILE_DIRECTORY; -+ else -+ info->type = PR_FILE_OTHER; -+ -+ /* For the 64 bit version we can use -+ * the native st_size without modification -+ */ -+ info->size = sb.st_size; -+ LL_I2L(s, sb.st_mtime); -+ LL_I2L(s2us, PR_USEC_PER_SEC); -+ LL_MUL(s, s, s2us); -+ info->modifyTime = s; -+ LL_I2L(s, sb.st_ctime); -+ LL_MUL(s, s, s2us); -+ info->creationTime = s; -+ } -+ -+ return PR_SUCCESS; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_Access(const char *name, PRAccessHow how) -+{ -+ PRInt32 rv, err; -+ int checkFlags; -+ struct stat buf; -+ -+ switch (how) { -+ case PR_ACCESS_WRITE_OK: -+ checkFlags = S_IWUSR | S_IWGRP | S_IWOTH; -+ break; -+ -+ case PR_ACCESS_READ_OK: -+ checkFlags = S_IRUSR | S_IRGRP | S_IROTH; -+ break; -+ -+ case PR_ACCESS_EXISTS: -+ /* we don't need to examine st_mode. */ -+ break; -+ -+ default: { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return PR_FAILURE; -+ } -+ } -+ -+ rv = stat(name, &buf); -+ if (rv == 0 && how != PR_ACCESS_EXISTS && (!(buf.st_mode & checkFlags))) { -+ PR_SetError(PR_NO_ACCESS_RIGHTS_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_access_error(err); -+ return PR_FAILURE; -+ } else -+ return PR_SUCCESS; -+} -+ -+ -+PRInt32 -+_bt_socketavailable (PRFileDesc *fd) -+{ -+#ifdef BONE_VERSION -+ PRInt32 result; -+ -+ if (ioctl(fd->secret->md.osfd, FIONREAD, &result) < 0) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, _MD_ERRNO()); -+ return -1; -+ } -+ return result; -+#else -+ return PR_NOT_IMPLEMENTED_ERROR; -+#endif -+} -+ -+ -+#if defined(DEBUG) -+ -+PRBool IsValidNetAddr(const PRNetAddr *addr) -+{ -+ if ((addr != NULL) -+ && (addr->raw.family != PR_AF_INET6) -+ && (addr->raw.family != PR_AF_INET)) { -+ return PR_FALSE; -+ } -+ return PR_TRUE; -+} -+ -+static PRBool IsValidNetAddrLen(const PRNetAddr *addr, PRInt32 addr_len) -+{ -+ /* -+ * The definition of the length of a Unix domain socket address -+ * is not uniform, so we don't check it. -+ */ -+ if ((addr != NULL) -+ && (PR_NETADDR_SIZE(addr) != addr_len)) { -+ return PR_FALSE; -+ } -+ return PR_TRUE; -+} -+ -+#endif /* DEBUG */ -+ -+static PRInt32 socket_io_wait(PRInt32 osfd, PRInt32 fd_type, -+ PRIntervalTime timeout) -+{ -+ PRInt32 rv = -1; -+ struct timeval tv; -+ PRIntervalTime epoch, now, elapsed, remaining; -+ PRBool wait_for_remaining; -+ PRInt32 syserror; -+ fd_set rd_wr; -+ -+ switch (timeout) { -+ case PR_INTERVAL_NO_WAIT: -+ PR_SetError(PR_IO_TIMEOUT_ERROR, 0); -+ break; -+ case PR_INTERVAL_NO_TIMEOUT: -+ /* -+ * This is a special case of the 'default' case below. -+ * Please see the comments there. -+ */ -+ tv.tv_sec = _PR_INTERRUPT_CHECK_INTERVAL_SECS; -+ tv.tv_usec = 0; -+ FD_ZERO(&rd_wr); -+ do { -+ FD_SET(osfd, &rd_wr); -+ if (fd_type == READ_FD) -+ rv = select(osfd + 1, &rd_wr, NULL, NULL, &tv); -+ else -+ rv = select(osfd + 1, NULL, &rd_wr, NULL, &tv); -+ if (rv == -1 && (syserror = _MD_ERRNO()) != EINTR) { -+#ifdef BONE_VERSION -+ set_select_error(syserror); -+#else -+ if (syserror == EBADF) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, EBADF); -+ } else { -+ PR_SetError(PR_UNKNOWN_ERROR, syserror); -+ } -+#endif -+ break; -+ } -+ } while (rv == 0 || (rv == -1 && syserror == EINTR)); -+ break; -+ default: -+ now = epoch = PR_IntervalNow(); -+ remaining = timeout; -+ FD_ZERO(&rd_wr); -+ do { -+ /* -+ * We block in select for at most -+ * _PR_INTERRUPT_CHECK_INTERVAL_SECS seconds, -+ * so that there is an upper limit on the delay -+ * before the interrupt bit is checked. -+ */ -+ wait_for_remaining = PR_TRUE; -+ tv.tv_sec = PR_IntervalToSeconds(remaining); -+ if (tv.tv_sec > _PR_INTERRUPT_CHECK_INTERVAL_SECS) { -+ wait_for_remaining = PR_FALSE; -+ tv.tv_sec = _PR_INTERRUPT_CHECK_INTERVAL_SECS; -+ tv.tv_usec = 0; -+ } else { -+ tv.tv_usec = PR_IntervalToMicroseconds( -+ remaining - -+ PR_SecondsToInterval(tv.tv_sec)); -+ } -+ FD_SET(osfd, &rd_wr); -+ if (fd_type == READ_FD) -+ rv = select(osfd + 1, &rd_wr, NULL, NULL, &tv); -+ else -+ rv = select(osfd + 1, NULL, &rd_wr, NULL, &tv); -+ /* -+ * we don't consider EINTR a real error -+ */ -+ if (rv == -1 && (syserror = _MD_ERRNO()) != EINTR) { -+#ifdef BONE_VERSION -+ set_select_error(syserror); -+#else -+ if (syserror == EBADF) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, EBADF); -+ } else { -+ PR_SetError(PR_UNKNOWN_ERROR, syserror); -+ } -+#endif -+ break; -+ } -+ /* -+ * We loop again if select timed out or got interrupted -+ * by a signal, and the timeout deadline has not passed yet. -+ */ -+ if (rv == 0 || (rv == -1 && syserror == EINTR)) { -+ /* -+ * If select timed out, we know how much time -+ * we spent in blocking, so we can avoid a -+ * PR_IntervalNow() call. -+ */ -+ if (rv == 0) { -+ if (wait_for_remaining) { -+ now += remaining; -+ } else { -+ now += PR_SecondsToInterval(tv.tv_sec) -+ + PR_MicrosecondsToInterval(tv.tv_usec); -+ } -+ } else { -+ now = PR_IntervalNow(); -+ } -+ elapsed = (PRIntervalTime) (now - epoch); -+ if (elapsed >= timeout) { -+ PR_SetError(PR_IO_TIMEOUT_ERROR, 0); -+ rv = -1; -+ break; -+ } else { -+ remaining = timeout - elapsed; -+ } -+ } -+ } while (rv == 0 || (rv == -1 && syserror == EINTR)); -+ break; -+ } -+ return(rv); -+} -+ -+ -+static PRInt32 PR_CALLBACK SocketWritev(PRFileDesc *fd, const PRIOVec *iov, -+PRInt32 iov_size, PRIntervalTime timeout) -+{ -+#ifdef BONE_VERSION -+ int w, err = 0; -+ const PRIOVec *tmp_iov; -+#define LOCAL_MAXIOV 8 -+ PRIOVec local_iov[LOCAL_MAXIOV]; -+ PRIOVec *iov_copy = NULL; -+ int tmp_out; -+ int index, iov_cnt; -+ int count=0, sz = 0; /* 'count' is the return value. */ -+ int i, amount = 0; -+ -+ /* -+ * Assume the first writev will succeed. Copy iov's only on -+ * failure. -+ */ -+ tmp_iov = iov; -+ for (index = 0; index < iov_size; index++) -+ sz += iov[index].iov_len; -+ -+ iov_cnt = iov_size; -+ -+ while (sz > 0) { -+/* -+ /* -+ * Calculate the total number of bytes to be sent; needed for -+ * optimization later. -+ * We could avoid this if this number was passed in; but it is -+ * probably not a big deal because iov_size is usually small (less than -+ * 3) -+ */ -+ if (!fd->secret->nonblocking) { -+ for (i=0; isecret->md.osfd, (const struct iovec*)tmp_iov, iov_size)) == -1) { -+ err = _MD_ERRNO(); -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ if ((w = socket_io_wait(fd->secret->md.osfd, WRITE_FD, timeout))<0) -+ goto done; -+ -+ } else if (err == EINTR) { -+ continue; -+ } else { -+ break; -+ } -+ } -+ /* -+ * optimization; if bytes sent is less than "amount" call -+ * select before returning. This is because it is likely that -+ * the next writev() call will return EWOULDBLOCK. -+ */ -+ if ((!fd->secret->nonblocking) && (w > 0) && (w < amount) -+ && (timeout != PR_INTERVAL_NO_WAIT)) { -+ if (socket_io_wait(fd->secret->md.osfd, WRITE_FD, timeout) < 0) { -+ w = -1; -+ goto done; -+ } -+ } -+ -+ if (w < 0) { -+ set_writev_error(err); -+ } -+done: -+ -+ -+ if (w < 0) { -+ count = -1; -+ break; -+ } -+ count += w; -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ sz -= w; -+ -+ if (sz > 0) { -+ /* find the next unwritten vector */ -+ for ( index = 0, tmp_out = count; -+ tmp_out >= iov[index].iov_len; -+ tmp_out -= iov[index].iov_len, index++){;} /* nothing to execute */ -+ -+ if (tmp_iov == iov) { -+ /* -+ * The first writev failed so we -+ * must copy iov's around. -+ * Avoid calloc/free if there -+ * are few enough iov's. -+ */ -+ if (iov_size - index <= LOCAL_MAXIOV) -+ iov_copy = local_iov; -+ else if ((iov_copy = (PRIOVec *) PR_CALLOC((iov_size - index) * -+ sizeof *iov_copy)) == NULL) { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ return -1; -+ } -+ tmp_iov = iov_copy; -+ } -+ -+ PR_ASSERT(tmp_iov == iov_copy); -+ -+ /* fill in the first partial read */ -+ iov_copy[0].iov_base = &(((char *)iov[index].iov_base)[tmp_out]); -+ iov_copy[0].iov_len = iov[index].iov_len - tmp_out; -+ index++; -+ -+ /* copy the remaining vectors */ -+ for (iov_cnt=1; indexsecret->md.osfd; -+ -+#ifndef BONE_VERSION -+ fd->secret->md.connectValueValid = PR_FALSE; -+#endif -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ PRNetAddr addrCopy; -+ -+ addrCopy = *addr; -+ ((struct sockaddr *) &addrCopy)->sa_len = addrlen; -+ ((struct sockaddr *) &addrCopy)->sa_family = addr->raw.family; -+#endif -+ -+ /* (Copied from unix.c) -+ * We initiate the connection setup by making a nonblocking connect() -+ * call. If the connect() call fails, there are two cases we handle -+ * specially: -+ * 1. The connect() call was interrupted by a signal. In this case -+ * we simply retry connect(). -+ * 2. The NSPR socket is nonblocking and connect() fails with -+ * EINPROGRESS. We first wait until the socket becomes writable. -+ * Then we try to find out whether the connection setup succeeded -+ * or failed. -+ */ -+ -+retry: -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if ((rv = connect(osfd, (struct sockaddr *)&addrCopy, addrlen)) == -1) { -+#else -+ if ((rv = connect(osfd, (struct sockaddr *)addr, addrlen)) == -1) { -+#endif -+ err = _MD_ERRNO(); -+#ifndef BONE_VERSION -+ fd->secret->md.connectReturnValue = rv; -+ fd->secret->md.connectReturnError = err; -+ fd->secret->md.connectValueValid = PR_TRUE; -+#endif -+ if( err == EINTR ) { -+#ifndef BONE_VERSION -+ snooze( 100000L ); -+#endif -+ goto retry; -+ } -+ -+#ifndef BONE_VERSION -+ if(!fd->secret->nonblocking && ((err == EINPROGRESS) || (err==EAGAIN) || (err==EALREADY))) { -+ -+ /* -+ ** There's no timeout on this connect, but that's not -+ ** a big deal, since the connect times out anyways -+ ** after 30 seconds. Just sleep for 1/10th of a second -+ ** and retry until we go through or die. -+ */ -+ goto retry; -+ } -+ -+ if( fd->secret->nonblocking && ((err == EAGAIN) || (err == EINPROGRESS))) { -+ PR_Lock(_connectLock); -+ if (connectCount < sizeof(connectList)/sizeof(connectList[0])) { -+ connectList[connectCount].osfd = osfd; -+ memcpy(&connectList[connectCount].addr, addr, addrlen); -+ connectList[connectCount].addrlen = addrlen; -+ connectList[connectCount].timeout = timeout; -+ connectCount++; -+ PR_Unlock(_connectLock); -+ set_connect_error(err); -+ } else { -+ PR_Unlock(_connectLock); -+ PR_SetError(PR_INSUFFICIENT_RESOURCES_ERROR, 0); -+ } -+ return rv; -+ } -+#else /* BONE_VERSION */ -+ if(!fd->secret->nonblocking && (err == EINTR)) { -+ -+ rv = socket_io_wait(osfd, WRITE_FD, timeout); -+ if (rv == -1) { -+ return -1; -+ } -+ -+ PR_ASSERT(rv == 1); -+/* _MD_beos_get_nonblocking_connect_error always return PR_NOT_IMPLEMENTED.. -+ err = _MD_beos_get_nonblocking_connect_error(osfd); -+ if (err != 0) { -+ set_connect_error(err); -+ return -1; -+ } -+*/ -+ return 0; -+ } -+#endif -+ -+ set_connect_error(err); -+ } -+ -+ return rv; -+} -+ -+ -+static PRStatus PR_CALLBACK SocketConnect( -+ PRFileDesc *fd, const PRNetAddr *addr, PRIntervalTime timeout) -+{ -+ PRInt32 rv; /* Return value of _PR_MD_CONNECT */ -+ const PRNetAddr *addrp = addr; -+#if defined(_PR_INET6) -+ PRNetAddr addrCopy; -+ if (addr->raw.family == PR_AF_INET6) { -+ addrCopy = *addr; -+ addrCopy.raw.family = AF_INET6; -+ addrp = &addrCopy; -+ } -+#endif -+ -+ rv = _bt_CONNECT(fd, addrp, PR_NETADDR_SIZE(addr), timeout); -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("connect -> %d", rv)); -+ if (rv == 0) -+ return PR_SUCCESS; -+ else -+ return PR_FAILURE; -+} -+ -+static PRStatus PR_CALLBACK SocketConnectContinue( -+ PRFileDesc *fd, PRInt16 out_flags) -+{ -+ PRInt32 osfd; -+ int err; -+ int rv; -+ -+ if (out_flags & PR_POLL_NVAL) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ if ((out_flags & (PR_POLL_WRITE | PR_POLL_EXCEPT | PR_POLL_ERR)) == 0) { -+ PR_ASSERT(out_flags == 0); -+ PR_SetError(PR_IN_PROGRESS_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ osfd = fd->secret->md.osfd; -+ -+ -+#ifdef BONE_VERSION /* bug 122364 */ -+ /* temporary workaround until getsockopt(SO_ERROR) works in BONE */ -+ if (out_flags & PR_POLL_EXCEPT) { -+ PR_SetError(PR_CONNECT_REFUSED_ERROR, 0); -+ return PR_FAILURE; -+ } -+ PR_ASSERT(out_flags & PR_POLL_WRITE); -+ return PR_SUCCESS; -+#else -+ rv = recv(fd->secret->md.osfd, NULL, 0, 0); -+ PR_ASSERT(-1 == rv || 0 == rv); -+ -+ if (-1 == rv && 0 != errno && errno != EAGAIN && errno != EWOULDBLOCK ) { -+ set_connect_error(errno); -+ return PR_FAILURE; -+ } -+ else -+ return PR_SUCCESS; -+#endif -+} -+ -+PRInt32 -+_bt_accept (PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen, -+ PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+ while ((rv = accept(osfd, (struct sockaddr *) addr, -+ (int *)addrlen)) == -1) { -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ /* If it's SUPPOSED to be a blocking thread, wait -+ * a while to see if the triggering condition gets -+ * satisfied. -+ */ -+ /* Assume that we're always using a native thread */ -+ if ((rv = socket_io_wait(osfd, READ_FD, timeout)) < 0) -+ goto done; -+ } else if (err == EINTR) { -+ continue; -+ } else { -+ break; -+ } -+ } -+ if (rv < 0) { -+ set_accept_error(err); -+ } else if (addr != NULL) { -+ /* bug 134099 */ -+ err = getpeername(rv, (struct sockaddr *) addr, (int *)addrlen); -+ } -+done: -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if (rv != -1) { -+ /* Mask off the first byte of struct sockaddr (the length field) */ -+ if (addr) { -+ addr->raw.family = ((struct sockaddr *) addr)->sa_family; -+ } -+ } -+#endif /* _PR_HAVE_SOCKADDR_LEN */ -+ return(rv); -+} -+ -+ -+ -+static PRFileDesc* PR_CALLBACK SocketAccept(PRFileDesc *fd, PRNetAddr *addr, -+PRIntervalTime timeout) -+{ -+ PRInt32 osfd; -+ PRFileDesc *fd2; -+ PRUint32 al; -+ -+ al = sizeof(PRNetAddr); -+ osfd = _bt_accept(fd, addr, &al, timeout); -+ if (osfd == -1) -+ return 0; -+ fd2 = bt_CreateFileDesc(osfd, PR_GetTCPMethods(), _PR_TRI_TRUE, true); -+ if (!fd2) { -+ closesocket(osfd); -+ -+ return NULL; -+ } -+ -+ fd2->secret->nonblocking = fd->secret->nonblocking; -+ fd2->secret->inheritable = fd->secret->inheritable; -+ -+#ifdef _PR_INET6 -+ if (addr && (AF_INET6 == addr->raw.family)) -+ addr->raw.family = PR_AF_INET6; -+#endif -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+ PR_ASSERT(IsValidNetAddrLen(addr, al) == PR_TRUE); -+ -+ return fd2; -+} -+ -+ -+static PRStatus PR_CALLBACK SocketBind(PRFileDesc *fd, const PRNetAddr *addr) -+{ -+ PRInt32 result, err; -+ const PRNetAddr *addrp = addr; -+#if defined(_PR_INET6) || defined(_PR_HAVE_SOCKADDR_LEN) -+ PRNetAddr addrCopy; -+#endif -+ -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+#if defined(_PR_INET6) -+ if (addr->raw.family == PR_AF_INET6) { -+ addrCopy = *addr; -+ addrCopy.raw.family = AF_INET6; -+ addrp = &addrCopy; -+ } -+#endif -+ -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ addrCopy = *addrp; -+ ((struct sockaddr *) &addrCopy)->sa_len = PR_NETADDR_SIZE(addrp); -+ ((struct sockaddr *) &addrCopy)->sa_family = addr->raw.family; -+ result = bind(fd->secret->md.osfd, (struct sockaddr *) &addrCopy, PR_NETADDR_SIZE(addrp)); -+#else -+ result = bind(fd->secret->md.osfd, (struct sockaddr *) addrp, PR_NETADDR_SIZE(addrp)); -+#endif -+ -+ -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_bind_error(err); -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+static PRStatus PR_CALLBACK SocketListen(PRFileDesc *fd, PRIntn backlog) -+{ -+ PRInt32 result,err; -+#ifndef BONE_VERSION -+ /* Bug workaround! Setting listen to 0 on Be accepts no connections. -+ ** On most UN*Xes this sets the default. -+ */ -+ -+ if( backlog == 0 ) backlog = 5; -+#endif -+ result = listen(fd->secret->md.osfd, backlog); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_listen_error(err); -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+static PRStatus PR_CALLBACK SocketShutdown(PRFileDesc *fd, PRIntn how) -+{ -+ PRInt32 result,err; -+#ifndef BONE_VERSION -+ if (how == PR_SHUTDOWN_SEND) -+ fd->secret->md.sock_state = BE_SOCK_SHUTDOWN_WRITE; -+ else if (how == PR_SHUTDOWN_RCV) -+ fd->secret->md.sock_state = BE_SOCK_SHUTDOWN_READ; -+ else if (how == PR_SHUTDOWN_BOTH) { -+ fd->secret->md.sock_state = (BE_SOCK_SHUTDOWN_WRITE | BE_SOCK_SHUTDOWN_READ); -+ } -+#else /* BONE_VERSION */ -+ result = shutdown(fd->secret->md.osfd, how); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_shutdown_error(err); -+ return PR_FAILURE; -+ } -+#endif -+ return PR_SUCCESS; -+} -+ -+PRInt32 -+_bt_recv (PRFileDesc *fd, void *buf, PRInt32 amount, PRInt32 flags, -+ PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+#ifndef BONE_VERSION -+ if (fd->secret->md.sock_state & BE_SOCK_SHUTDOWN_READ) { -+ set_recv_error(EPIPE); -+ return -1; -+ } -+#endif -+ -+#ifdef BONE_VERSION -+ /* -+ ** Gah, stupid hack. If reading a zero amount, instantly return success. -+ ** BONE beta 6 returns EINVAL for reads of zero bytes, which parts of -+ ** mozilla use to check for socket availability. -+ */ -+ -+ if( 0 == amount ) return(0); -+#endif -+ -+ while ((rv = recv(osfd, buf, amount, flags)) == -1) { -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ /* If socket was supposed to be blocking, -+ wait a while for the condition to be -+ satisfied. */ -+ if ((rv = socket_io_wait(osfd, READ_FD, timeout)) < 0) -+ goto done; -+ } else if (err == EINTR) { -+ continue; -+ } else -+ break; -+ } -+ -+ if (rv < 0) { -+ set_recv_error(err); -+ } -+ -+done: -+ return(rv); -+} -+ -+static PRInt32 PR_CALLBACK SocketRecv(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, -+PRIntervalTime timeout) -+{ -+ PRInt32 rv; -+ -+ if ((flags != 0) && (flags != PR_MSG_PEEK)) { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return -1; -+ } -+ -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("recv: fd=%p osfd=%d buf=%p amount=%d flags=%d", -+ fd, fd->secret->md.osfd, buf, amount, flags)); -+ -+ -+ rv = _bt_recv(fd, buf, amount, flags, timeout); -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("recv -> %d, error = %d, os error = %d", -+ rv, PR_GetError(), PR_GetOSError())); -+ -+ return rv; -+} -+ -+static PRInt32 PR_CALLBACK SocketRead(PRFileDesc *fd, void *buf, PRInt32 amount) -+{ -+ return SocketRecv(fd, buf, amount, 0, PR_INTERVAL_NO_TIMEOUT); -+} -+ -+PRInt32 -+_bt_send (PRFileDesc *fd, const void *buf, PRInt32 amount, PRInt32 flags, -+ PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+#ifndef BONE_VERSION -+ if (fd->secret->md.sock_state & BE_SOCK_SHUTDOWN_WRITE) -+ { -+ set_send_error(EPIPE); -+ return -1; -+ } -+#endif -+ -+ while ((rv = send(osfd, buf, amount, flags)) == -1) { -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ -+#ifndef BONE_VERSION -+ -+ /* in UNIX implementations, you could do a socket_io_wait here. -+ * but since BeOS doesn't yet support WRITE notification in select, -+ * you're spanked. -+ */ -+ snooze( 10000L ); -+ continue; -+#else /* BONE_VERSION */ -+ if ((rv = socket_io_wait(osfd, WRITE_FD, timeout))< 0) -+ goto done; -+#endif -+ -+ } else if (err == EINTR) { -+ continue; -+ } else { -+ break; -+ } -+ } -+ -+#ifdef BONE_VERSION -+ /* -+ * optimization; if bytes sent is less than "amount" call -+ * select before returning. This is because it is likely that -+ * the next writev() call will return EWOULDBLOCK. -+ */ -+ if ((!fd->secret->nonblocking) && (rv > 0) && (rv < amount) -+ && (timeout != PR_INTERVAL_NO_WAIT)) { -+ if (socket_io_wait(osfd, WRITE_FD, timeout) < 0) { -+ rv = -1; -+ goto done; -+ } -+ } -+#endif /* BONE_VERSION */ -+ -+ if (rv < 0) { -+ set_send_error(err); -+ } -+ -+#ifdef BONE_VERSION -+done: -+#endif -+ return(rv); -+} -+ -+ -+static PRInt32 PR_CALLBACK SocketSend(PRFileDesc *fd, const void *buf, PRInt32 amount, -+PRIntn flags, PRIntervalTime timeout) -+{ -+ PRInt32 temp, count; -+ -+ count = 0; -+ while (amount > 0) { -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, -+ ("send: fd=%p osfd=%d buf=%p amount=%d", -+ fd, fd->secret->md.osfd, buf, amount)); -+ temp = _bt_send(fd, buf, amount, flags, timeout); -+ if (temp < 0) { -+ count = -1; -+ break; -+ } -+ -+ count += temp; -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ buf = (const void*) ((const char*)buf + temp); -+ -+ amount -= temp; -+ } -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("send -> %d", count)); -+ return count; -+} -+ -+static PRInt32 PR_CALLBACK SocketWrite(PRFileDesc *fd, const void *buf, PRInt32 amount) -+{ -+ return SocketSend(fd, buf, amount, 0, PR_INTERVAL_NO_TIMEOUT); -+} -+ -+static PRStatus PR_CALLBACK SocketClose(PRFileDesc *fd) -+{ -+ if (!fd || !fd->secret -+ || (fd->secret->state != _PR_FILEDESC_OPEN -+ && fd->secret->state != _PR_FILEDESC_CLOSED)) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ if (fd->secret->state == _PR_FILEDESC_OPEN) { -+ if (closesocket(fd->secret->md.osfd) < 0) { -+ return PR_FAILURE; -+ } -+ -+ fd->secret->state = _PR_FILEDESC_CLOSED; -+ } -+ -+ PR_ASSERT(fd); -+ _PR_Putfd(fd); -+ return PR_SUCCESS; -+} -+ -+static PRInt32 PR_CALLBACK SocketAvailable(PRFileDesc *fd) -+{ -+ PRInt32 rv; -+ rv = _bt_socketavailable(fd); -+ return rv; -+} -+ -+static PRInt64 PR_CALLBACK SocketAvailable64(PRFileDesc *fd) -+{ -+ PRInt64 rv; -+ LL_I2L(rv, _bt_socketavailable(fd)); -+ return rv; -+} -+ -+static PRStatus PR_CALLBACK SocketSync(PRFileDesc *fd) -+{ -+ return PR_SUCCESS; -+} -+ -+PRInt32 -+_bt_sendto (PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags, -+ const PRNetAddr *addr, PRUint32 addrlen, PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ PRNetAddr addrCopy; -+ -+ addrCopy = *addr; -+ ((struct sockaddr *) &addrCopy)->sa_len = addrlen; -+ ((struct sockaddr *) &addrCopy)->sa_family = addr->raw.family; -+ -+ while ((rv = sendto(osfd, buf, amount, flags, -+ (struct sockaddr *) &addrCopy, addrlen)) == -1) { -+#else -+ while ((rv = sendto(osfd, buf, amount, flags, -+ (struct sockaddr *) addr, addrlen)) == -1) { -+#endif -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ -+#ifdef BONE_VERSION -+ if ((rv = socket_io_wait(osfd, WRITE_FD, timeout))< 0) -+ goto done; -+#endif -+ } else if (err == EINTR) { -+ continue; -+ -+ } else { -+ break; -+ } -+ } -+ -+ if (rv < 0) { -+ set_sendto_error(err); -+ } -+ -+#ifdef BONE_VERSION -+done: -+#endif -+ return(rv); -+} -+ -+ -+static PRInt32 PR_CALLBACK SocketSendTo( -+ PRFileDesc *fd, const void *buf, PRInt32 amount, -+ PRIntn flags, const PRNetAddr *addr, PRIntervalTime timeout) -+{ -+ PRInt32 temp, count; -+ const PRNetAddr *addrp = addr; -+#if defined(_PR_INET6) -+ PRNetAddr addrCopy; -+#endif -+ -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+#if defined(_PR_INET6) -+ if (addr->raw.family == PR_AF_INET6) { -+ addrCopy = *addr; -+ addrCopy.raw.family = AF_INET6; -+ addrp = &addrCopy; -+ } -+#endif -+ -+ count = 0; -+ while (amount > 0) { -+ temp = _bt_sendto(fd, buf, amount, flags, -+ addrp, PR_NETADDR_SIZE(addr), timeout); -+ if (temp < 0) { -+ count = -1; -+ break; -+ } -+ count += temp; -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ buf = (const void*) ((const char*)buf + temp); -+ amount -= temp; -+ } -+ return count; -+} -+ -+PRInt32 -+_bt_recvfrom (PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, -+ PRNetAddr *addr, PRUint32 *addrlen, PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+ while ((*addrlen = PR_NETADDR_SIZE(addr)), -+ ((rv = recvfrom(osfd, buf, amount, flags, -+ (struct sockaddr *) addr, -+ (int *)addrlen)) == -1)) { -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ if ((rv = socket_io_wait(osfd, READ_FD, timeout)) < 0) -+ goto done; -+ -+ } else if (err == EINTR) { -+ continue; -+ } else { -+ break; -+ } -+ } -+ -+ if (rv < 0) { -+ set_recvfrom_error(err); -+ } -+ -+done: -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if (rv != -1) { -+ /* ignore the sa_len field of struct sockaddr */ -+ if (addr) { -+ addr->raw.family = ((struct sockaddr *) addr)->sa_family; -+ } -+ } -+#endif /* _PR_HAVE_SOCKADDR_LEN */ -+ return(rv); -+} -+ -+ -+ -+static PRInt32 PR_CALLBACK SocketRecvFrom(PRFileDesc *fd, void *buf, PRInt32 amount, -+PRIntn flags, PRNetAddr *addr, PRIntervalTime timeout) -+{ -+ PRInt32 rv; -+ PRUint32 al; -+ -+ al = sizeof(PRNetAddr); -+ rv = _bt_recvfrom(fd, buf, amount, flags, addr, &al, timeout); -+#ifdef _PR_INET6 -+ if (addr && (AF_INET6 == addr->raw.family)) -+ addr->raw.family = PR_AF_INET6; -+#endif -+ return rv; -+} -+ -+static PRInt32 PR_CALLBACK SocketAcceptRead(PRFileDesc *sd, PRFileDesc **nd, -+PRNetAddr **raddr, void *buf, PRInt32 amount, -+PRIntervalTime timeout) -+{ -+ /* The socket must be in blocking mode. */ -+ if (sd->secret->nonblocking) { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return -1; -+ } -+ *nd = NULL; -+ -+ return PR_EmulateAcceptRead(sd, nd, raddr, buf, amount, timeout); -+} -+ -+ -+static PRInt32 PR_CALLBACK SocketSendFile( -+ PRFileDesc *sd, PRSendFileData *sfd, -+ PRTransmitFileFlags flags, PRIntervalTime timeout) -+{ -+ /* The socket must be in blocking mode. */ -+ if (sd->secret->nonblocking) { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return -1; -+ } -+ return PR_EmulateSendFile(sd, sfd, flags, timeout); -+} -+ -+static PRInt32 PR_CALLBACK SocketTransmitFile(PRFileDesc *sd, PRFileDesc *fd, -+const void *headers, PRInt32 hlen, PRTransmitFileFlags flags, -+PRIntervalTime timeout) -+{ -+ PRSendFileData sfd; -+ -+ sfd.fd = fd; -+ sfd.file_offset = 0; -+ sfd.file_nbytes = 0; -+ sfd.header = headers; -+ sfd.hlen = hlen; -+ sfd.trailer = NULL; -+ sfd.tlen = 0; -+ -+ return(SocketSendFile(sd, &sfd, flags, timeout)); -+} -+ -+static PRStatus PR_CALLBACK SocketGetName(PRFileDesc *fd, PRNetAddr *addr) -+{ -+ PRInt32 result, err; -+ PRUint32 addrlen; -+ -+ addrlen = sizeof(PRNetAddr); -+ result = getsockname(fd->secret->md.osfd, (struct sockaddr *) addr, &addrlen); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_getsockname_error(err); -+ return PR_FAILURE; -+ } -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if (result == 0) { -+ /* ignore the sa_len field of struct sockaddr */ -+ if (addr) { -+ addr->raw.family = ((struct sockaddr *) addr)->sa_family; -+ } -+ } -+#endif /* _PR_HAVE_SOCKADDR_LEN */ -+ -+#ifdef _PR_INET6 -+ if (AF_INET6 == addr->raw.family) -+ addr->raw.family = PR_AF_INET6; -+#endif -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+ PR_ASSERT(IsValidNetAddrLen(addr, addrlen) == PR_TRUE); -+ return PR_SUCCESS; -+} -+ -+static PRStatus PR_CALLBACK SocketGetPeerName(PRFileDesc *fd, PRNetAddr *addr) -+{ -+ PRInt32 result, err; -+ PRUint32 addrlen; -+ -+ addrlen = sizeof(PRNetAddr); -+ result = getpeername(fd->secret->md.osfd, (struct sockaddr *) addr, &addrlen); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_getpeername_error(err); -+ return PR_FAILURE; -+ } -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if (result == 0) { -+ /* ignore the sa_len field of struct sockaddr */ -+ if (addr) { -+ addr->raw.family = ((struct sockaddr *) addr)->sa_family; -+ } -+ } -+#endif /* _PR_HAVE_SOCKADDR_LEN */ -+ -+#ifdef _PR_INET6 -+ if (AF_INET6 == addr->raw.family) -+ addr->raw.family = PR_AF_INET6; -+#endif -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+ PR_ASSERT(IsValidNetAddrLen(addr, addrlen) == PR_TRUE); -+ return PR_SUCCESS; -+} -+ -+static PRInt16 PR_CALLBACK SocketPoll( -+ PRFileDesc *fd, PRInt16 in_flags, PRInt16 *out_flags) -+{ -+ *out_flags = 0; -+ return in_flags; -+} /* SocketPoll */ -+ -+ -+PRStatus PR_CALLBACK SocketGetOption(PRFileDesc *fd, PRSocketOptionData *data) -+{ -+ PRStatus rv; -+ PRInt32 level, name, length, err; -+ -+ /* -+ * PR_SockOpt_Nonblocking is a special case that does not -+ * translate to a getsockopt() call -+ */ -+ if (PR_SockOpt_Nonblocking == data->option) -+ { -+ data->value.non_blocking = fd->secret->nonblocking; -+ return PR_SUCCESS; -+ } -+ -+ rv = _PR_MapOptionName(data->option, &level, &name); -+ if (PR_SUCCESS != rv) return rv; -+ -+ switch (data->option) -+ { -+ case PR_SockOpt_Linger: -+ { -+#ifdef BONE_VERSION -+ struct linger linger; -+ length = sizeof(linger); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char *) &linger, &length)) -+ { -+ PR_ASSERT(sizeof(linger) == length); -+ data->value.linger.polarity = -+ (linger.l_onoff) ? PR_TRUE : PR_FALSE; -+ data->value.linger.linger = -+ PR_SecondsToInterval(linger.l_linger); -+ return PR_SUCCESS; -+ } -+ break; -+#else -+ PR_SetError( PR_NOT_IMPLEMENTED_ERROR, 0 ); -+ return PR_FAILURE; -+#endif -+ } -+ case PR_SockOpt_Reuseaddr: -+ case PR_SockOpt_Keepalive: -+ case PR_SockOpt_NoDelay: -+ case PR_SockOpt_Broadcast: -+ { -+ PRIntn value; -+ length = sizeof(value); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char *) &value, &length)) -+ { -+ data->value.reuse_addr = (0 == value) ? PR_FALSE : PR_TRUE; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+ case PR_SockOpt_McastLoopback: -+ { -+ PRUint8 bool; -+ length = sizeof(bool); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&bool, &length)) -+ { -+ data->value.mcast_loopback = (0 == bool) ? PR_FALSE : PR_TRUE; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+ case PR_SockOpt_RecvBufferSize: -+ case PR_SockOpt_SendBufferSize: -+ case PR_SockOpt_MaxSegment: -+ { -+ PRIntn value; -+ length = sizeof(value); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&value, &length)) -+ { -+ data->value.recv_buffer_size = value; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+ case PR_SockOpt_IpTimeToLive: -+ case PR_SockOpt_IpTypeOfService: -+ { -+ /* These options should really be an int (or PRIntn). */ -+ length = sizeof(PRUintn); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&data->value.ip_ttl, &length)) -+ return PR_SUCCESS; -+ break; -+ } -+ case PR_SockOpt_McastTimeToLive: -+ { -+ PRUint8 ttl; -+ length = sizeof(ttl); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&ttl, &length)) -+ { -+ data->value.mcast_ttl = ttl; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+#ifdef IP_ADD_MEMBERSHIP -+ case PR_SockOpt_AddMember: -+ case PR_SockOpt_DropMember: -+ { -+ struct ip_mreq mreq; -+ length = sizeof(mreq); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&mreq, &length)) -+ { -+ data->value.add_member.mcaddr.inet.ip = -+ mreq.imr_multiaddr.s_addr; -+ data->value.add_member.ifaddr.inet.ip = -+ mreq.imr_interface.s_addr; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+#endif /* IP_ADD_MEMBERSHIP */ -+ case PR_SockOpt_McastInterface: -+ { -+ /* This option is a struct in_addr. */ -+ length = sizeof(data->value.mcast_if.inet.ip); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, -+ (char*)&data->value.mcast_if.inet.ip, &length)) -+ return PR_SUCCESS; -+ break; -+ } -+ default: -+ PR_NOT_REACHED("Unknown socket option"); -+ break; -+ } -+ err = _MD_ERRNO(); -+ set_getsockopt_error(err); -+ return PR_FAILURE; -+} /* SocketGetOption */ -+ -+PRStatus PR_CALLBACK SocketSetOption(PRFileDesc *fd, const PRSocketOptionData *data) -+{ -+ PRStatus rv; -+ PRInt32 level, name, result, err; -+ -+ /* -+ * PR_SockOpt_Nonblocking is a special case that does not -+ * translate to a setsockopt call. -+ */ -+ if (PR_SockOpt_Nonblocking == data->option) -+ { -+ fd->secret->nonblocking = data->value.non_blocking; -+ return PR_SUCCESS; -+ } -+ -+ rv = _PR_MapOptionName(data->option, &level, &name); -+ if (PR_SUCCESS != rv) return rv; -+ -+ switch (data->option) -+ { -+ case PR_SockOpt_Linger: -+ { -+#ifdef BONE_VERSION -+ struct linger linger; -+ linger.l_onoff = data->value.linger.polarity; -+ linger.l_linger = PR_IntervalToSeconds(data->value.linger.linger); -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&linger, sizeof(linger)); -+ break; -+#else -+ PR_SetError( PR_NOT_IMPLEMENTED_ERROR, 0 ); -+ return PR_FAILURE; -+#endif -+ } -+ case PR_SockOpt_Reuseaddr: -+ case PR_SockOpt_Keepalive: -+ case PR_SockOpt_NoDelay: -+ case PR_SockOpt_Broadcast: -+ { -+ PRIntn value; -+ value = (data->value.reuse_addr) ? 1 : 0; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&value, sizeof(value)); -+ break; -+ } -+ case PR_SockOpt_McastLoopback: -+ { -+ PRUint8 bool; -+ bool = data->value.mcast_loopback ? 1 : 0; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&bool, sizeof(bool)); -+ break; -+ } -+ case PR_SockOpt_RecvBufferSize: -+ case PR_SockOpt_SendBufferSize: -+ case PR_SockOpt_MaxSegment: -+ { -+ PRIntn value = data->value.recv_buffer_size; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&value, sizeof(value)); -+ break; -+ } -+ case PR_SockOpt_IpTimeToLive: -+ case PR_SockOpt_IpTypeOfService: -+ { -+ /* These options should really be an int (or PRIntn). */ -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&data->value.ip_ttl, sizeof(PRUintn)); -+ break; -+ } -+ case PR_SockOpt_McastTimeToLive: -+ { -+ PRUint8 ttl; -+ ttl = data->value.mcast_ttl; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&ttl, sizeof(ttl)); -+ break; -+ } -+#ifdef IP_ADD_MEMBERSHIP -+ case PR_SockOpt_AddMember: -+ case PR_SockOpt_DropMember: -+ { -+ struct ip_mreq mreq; -+ mreq.imr_multiaddr.s_addr = -+ data->value.add_member.mcaddr.inet.ip; -+ mreq.imr_interface.s_addr = -+ data->value.add_member.ifaddr.inet.ip; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&mreq, sizeof(mreq)); -+ break; -+ } -+#endif /* IP_ADD_MEMBERSHIP */ -+ case PR_SockOpt_McastInterface: -+ { -+ /* This option is a struct in_addr. */ -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&data->value.mcast_if.inet.ip, -+ sizeof(data->value.mcast_if.inet.ip)); -+ break; -+ } -+ default: -+ PR_NOT_REACHED("Unknown socket option"); -+ break; -+ } -+ if (0 == result) -+ return PR_SUCCESS; -+ err = _MD_ERRNO(); -+ set_setsockopt_error(err); -+ return PR_FAILURE; -+} /* SocketSetOption */ -+ -+ -+ -+static PRIOMethods tcpMethods = { -+ PR_DESC_SOCKET_TCP, -+ SocketClose, -+ SocketRead, -+ SocketWrite, -+ SocketAvailable, -+ SocketAvailable64, -+ SocketSync, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ SocketWritev, -+ SocketConnect, -+ SocketAccept, -+ SocketBind, -+ SocketListen, -+ SocketShutdown, -+ SocketRecv, -+ SocketSend, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ SocketPoll, -+ SocketAcceptRead, -+ SocketTransmitFile, -+ SocketGetName, -+ SocketGetPeerName, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ SocketGetOption, -+ SocketSetOption, -+ SocketSendFile, -+ SocketConnectContinue, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+static PRIOMethods udpMethods = { -+ PR_DESC_SOCKET_UDP, -+ SocketClose, -+ SocketRead, -+ SocketWrite, -+ SocketAvailable, -+ SocketAvailable64, -+ SocketSync, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ SocketWritev, -+ SocketConnect, -+ (PRAcceptFN)_PR_InvalidDesc, -+ SocketBind, -+ SocketListen, -+ SocketShutdown, -+ SocketRecv, -+ SocketSend, -+ SocketRecvFrom, -+ SocketSendTo, -+ SocketPoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ SocketGetName, -+ SocketGetPeerName, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ SocketGetOption, -+ SocketSetOption, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+ -+static PRIOMethods socketpollfdMethods = { -+ (PRDescType) 0, -+ (PRCloseFN)_PR_InvalidStatus, -+ (PRReadFN)_PR_InvalidInt, -+ (PRWriteFN)_PR_InvalidInt, -+ (PRAvailableFN)_PR_InvalidInt, -+ (PRAvailable64FN)_PR_InvalidInt64, -+ (PRFsyncFN)_PR_InvalidStatus, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ (PRWritevFN)_PR_InvalidInt, -+ (PRConnectFN)_PR_InvalidStatus, -+ (PRAcceptFN)_PR_InvalidDesc, -+ (PRBindFN)_PR_InvalidStatus, -+ (PRListenFN)_PR_InvalidStatus, -+ (PRShutdownFN)_PR_InvalidStatus, -+ (PRRecvFN)_PR_InvalidInt, -+ (PRSendFN)_PR_InvalidInt, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ SocketPoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ (PRGetsocknameFN)_PR_InvalidStatus, -+ (PRGetpeernameFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRGetsocketoptionFN)_PR_InvalidStatus, -+ (PRSetsocketoptionFN)_PR_InvalidStatus, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+static PRIOMethods _pr_socketpollfd_methods = { -+ (PRDescType) 0, -+ (PRCloseFN)_PR_InvalidStatus, -+ (PRReadFN)_PR_InvalidInt, -+ (PRWriteFN)_PR_InvalidInt, -+ (PRAvailableFN)_PR_InvalidInt, -+ (PRAvailable64FN)_PR_InvalidInt64, -+ (PRFsyncFN)_PR_InvalidStatus, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ (PRWritevFN)_PR_InvalidInt, -+ (PRConnectFN)_PR_InvalidStatus, -+ (PRAcceptFN)_PR_InvalidDesc, -+ (PRBindFN)_PR_InvalidStatus, -+ (PRListenFN)_PR_InvalidStatus, -+ (PRShutdownFN)_PR_InvalidStatus, -+ (PRRecvFN)_PR_InvalidInt, -+ (PRSendFN)_PR_InvalidInt, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ SocketPoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ (PRGetsocknameFN)_PR_InvalidStatus, -+ (PRGetpeernameFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRGetsocketoptionFN)_PR_InvalidStatus, -+ (PRSetsocketoptionFN)_PR_InvalidStatus, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+PR_IMPLEMENT(const PRIOMethods*) PR_GetTCPMethods() -+{ -+ return &tcpMethods; -+} -+ -+PR_IMPLEMENT(const PRIOMethods*) PR_GetUDPMethods() -+{ -+ return &udpMethods; -+} -+ -+static const PRIOMethods* PR_GetSocketPollFdMethods(void) -+{ -+ return &_pr_socketpollfd_methods; -+} /* PR_GetSocketPollFdMethods */ -+ -+PR_IMPLEMENT(PRInt32) PR_Poll(PRPollDesc *pds, PRIntn npds, PRIntervalTime timeout) -+{ -+ PRInt32 rv = 0; -+ /* -+ * This code is almost a duplicate of w32poll.c's _PR_MD_PR_POLL(). -+ */ -+ fd_set rd, wt, ex; -+ PRFileDesc *bottom; -+ PRPollDesc *pd, *epd; -+ PRInt32 maxfd = -1, ready, err; -+ PRIntervalTime remaining, elapsed, start; -+ -+ struct timeval tv, *tvp = NULL; -+ -+ if (0 == npds) { -+ PR_Sleep(timeout); -+ return rv; -+ } -+ -+ FD_ZERO(&rd); -+ FD_ZERO(&wt); -+ FD_ZERO(&ex); -+ -+ ready = 0; -+ for (pd = pds, epd = pd + npds; pd < epd; pd++) -+ { -+ PRInt16 in_flags_read = 0, in_flags_write = 0; -+ PRInt16 out_flags_read = 0, out_flags_write = 0; -+ -+ if ((NULL != pd->fd) && (0 != pd->in_flags)) -+ { -+ if (pd->in_flags & PR_POLL_READ) -+ { -+ in_flags_read = (pd->fd->methods->poll)(pd->fd, pd->in_flags & ~PR_POLL_WRITE, &out_flags_read); -+ } -+ if (pd->in_flags & PR_POLL_WRITE) -+ { -+ in_flags_write = (pd->fd->methods->poll)(pd->fd, pd->in_flags & ~PR_POLL_READ, &out_flags_write); -+ } -+ if ((0 != (in_flags_read & out_flags_read)) -+ || (0 != (in_flags_write & out_flags_write))) -+ { -+ /* this one's ready right now */ -+ if (0 == ready) -+ { -+ /* -+ * We will have to return without calling the -+ * system poll/select function. So zero the -+ * out_flags fields of all the poll descriptors -+ * before this one. -+ */ -+ PRPollDesc *prev; -+ for (prev = pds; prev < pd; prev++) -+ { -+ prev->out_flags = 0; -+ } -+ } -+ ready += 1; -+ pd->out_flags = out_flags_read | out_flags_write; -+ } -+ else -+ { -+ pd->out_flags = 0; /* pre-condition */ -+ -+ /* make sure this is an NSPR supported stack */ -+ bottom = PR_GetIdentitiesLayer(pd->fd, PR_NSPR_IO_LAYER); -+ PR_ASSERT(NULL != bottom); /* what to do about that? */ -+ if ((NULL != bottom) -+ && (_PR_FILEDESC_OPEN == bottom->secret->state)) -+ { -+ if (0 == ready) -+ { -+ PRInt32 osfd = bottom->secret->md.osfd; -+ if (osfd > maxfd) maxfd = osfd; -+ if (in_flags_read & PR_POLL_READ) -+ { -+ pd->out_flags |= _PR_POLL_READ_SYS_READ; -+ FD_SET(osfd, &rd); -+ } -+ if (in_flags_read & PR_POLL_WRITE) -+ { -+ pd->out_flags |= _PR_POLL_READ_SYS_WRITE; -+ FD_SET(osfd, &wt); -+ } -+ if (in_flags_write & PR_POLL_READ) -+ { -+ pd->out_flags |= _PR_POLL_WRITE_SYS_READ; -+ FD_SET(osfd, &rd); -+ } -+ if (in_flags_write & PR_POLL_WRITE) -+ { -+ pd->out_flags |= _PR_POLL_WRITE_SYS_WRITE; -+ FD_SET(osfd, &wt); -+ } -+ if (pd->in_flags & PR_POLL_EXCEPT) FD_SET(osfd, &ex); -+ } -+ } -+ else -+ { -+ if (0 == ready) -+ { -+ PRPollDesc *prev; -+ for (prev = pds; prev < pd; prev++) -+ { -+ prev->out_flags = 0; -+ } -+ } -+ ready += 1; /* this will cause an abrupt return */ -+ pd->out_flags = PR_POLL_NVAL; /* bogii */ -+ } -+ } -+ } -+ else -+ { -+ pd->out_flags = 0; -+ } -+ } -+ -+ if (0 != ready) return ready; /* no need to block */ -+ -+ remaining = timeout; -+ start = PR_IntervalNow(); -+ -+ retry: -+ if (timeout != PR_INTERVAL_NO_TIMEOUT) -+ { -+ PRInt32 ticksPerSecond = PR_TicksPerSecond(); -+ tv.tv_sec = remaining / ticksPerSecond; -+ tv.tv_usec = PR_IntervalToMicroseconds( remaining % ticksPerSecond ); -+ tvp = &tv; -+ } -+ -+ ready = select(maxfd + 1, &rd, &wt, &ex, tvp); -+ -+ if (ready == -1 && errno == EINTR) -+ { -+ if (timeout == PR_INTERVAL_NO_TIMEOUT) goto retry; -+ else -+ { -+ elapsed = (PRIntervalTime) (PR_IntervalNow() - start); -+ if (elapsed > timeout) ready = 0; /* timed out */ -+ else -+ { -+ remaining = timeout - elapsed; -+ goto retry; -+ } -+ } -+ } -+ -+ /* -+ ** Now to unravel the select sets back into the client's poll -+ ** descriptor list. Is this possibly an area for pissing away -+ ** a few cycles or what? -+ */ -+ if (ready > 0) -+ { -+ ready = 0; -+ for (pd = pds, epd = pd + npds; pd < epd; pd++) -+ { -+ PRInt16 out_flags = 0; -+ if ((NULL != pd->fd) && (0 != pd->in_flags)) -+ { -+ PRInt32 osfd; -+ bottom = PR_GetIdentitiesLayer(pd->fd, PR_NSPR_IO_LAYER); -+ PR_ASSERT(NULL != bottom); -+ -+ osfd = bottom->secret->md.osfd; -+ -+ if (FD_ISSET(osfd, &rd)) -+ { -+ if (pd->out_flags & _PR_POLL_READ_SYS_READ) -+ out_flags |= PR_POLL_READ; -+ if (pd->out_flags & _PR_POLL_WRITE_SYS_READ) -+ out_flags |= PR_POLL_WRITE; -+ } -+ if (FD_ISSET(osfd, &wt)) -+ { -+ if (pd->out_flags & _PR_POLL_READ_SYS_WRITE) -+ out_flags |= PR_POLL_READ; -+ if (pd->out_flags & _PR_POLL_WRITE_SYS_WRITE) -+ out_flags |= PR_POLL_WRITE; -+ } -+ if (FD_ISSET(osfd, &ex)) out_flags |= PR_POLL_EXCEPT; -+ -+/* Workaround for nonblocking connects under net_server */ -+#ifndef BONE_VERSION -+ if (out_flags) -+ { -+ /* check if it is a pending connect */ -+ int i = 0, j = 0; -+ PR_Lock( _connectLock ); -+ for( i = 0; i < connectCount; i++ ) -+ { -+ if(connectList[i].osfd == osfd) -+ { -+ int connectError; -+ int connectResult; -+ -+ connectResult = connect(connectList[i].osfd, -+ &connectList[i].addr, -+ connectList[i].addrlen); -+ connectError = errno; -+ -+ if(connectResult < 0 ) -+ { -+ if(connectError == EINTR || connectError == EWOULDBLOCK || -+ connectError == EINPROGRESS || connectError == EALREADY) -+ { -+ break; -+ } -+ } -+ -+ if(i == (connectCount - 1)) -+ { -+ connectList[i].osfd = -1; -+ } else { -+ for(j = i; j < connectCount; j++ ) -+ { -+ memcpy( &connectList[j], &connectList[j+1], -+ sizeof(connectList[j])); -+ } -+ } -+ connectCount--; -+ -+ bottom->secret->md.connectReturnValue = connectResult; -+ bottom->secret->md.connectReturnError = connectError; -+ bottom->secret->md.connectValueValid = PR_TRUE; -+ break; -+ } -+ } -+ PR_Unlock( _connectLock ); -+ } -+#endif -+ } -+ pd->out_flags = out_flags; -+ if (out_flags) ready++; -+ } -+ PR_ASSERT(ready > 0); -+ } -+ else if (ready < 0) -+ { -+ err = _MD_ERRNO(); -+ if (err == EBADF) -+ { -+ /* Find the bad fds */ -+ ready = 0; -+ for (pd = pds, epd = pd + npds; pd < epd; pd++) -+ { -+ pd->out_flags = 0; -+ if ((NULL != pd->fd) && (0 != pd->in_flags)) -+ { -+ bottom = PR_GetIdentitiesLayer(pd->fd, PR_NSPR_IO_LAYER); -+ if (fcntl(bottom->secret->md.osfd, F_GETFL, 0) == -1) -+ { -+ pd->out_flags = PR_POLL_NVAL; -+ ready++; -+ } -+ } -+ } -+ PR_ASSERT(ready > 0); -+ } -+ else set_select_error(err); -+ } -+ -+ return ready; -+} /* PR_POLL */ -+ -+PR_IMPLEMENT(PRFileDesc*) PR_CreateSocketPollFd(PRInt32 osfd) -+{ -+ PRFileDesc *fd; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ -+ fd = _PR_Getfd(); -+ -+ if (fd == NULL) PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ else -+ { -+ fd->secret->md.osfd = osfd; -+ fd->secret->inheritable = _PR_TRI_FALSE; -+ fd->secret->state = _PR_FILEDESC_OPEN; -+ fd->methods = PR_GetSocketPollFdMethods(); -+ } -+ -+ return fd; -+} /* PR_CreateSocketPollFD */ -+ -+PR_IMPLEMENT(PRStatus) PR_DestroySocketPollFd(PRFileDesc *fd) -+{ -+ if (NULL == fd) -+ { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ fd->secret->state = _PR_FILEDESC_CLOSED; -+ _PR_Putfd(fd); -+ return PR_SUCCESS; -+} /* PR_DestroySocketPollFd */ -+ -+ -+PR_IMPLEMENT(PRFileDesc *) PR_ImportTCPSocket(PRInt32 osfd) -+{ -+ PRFileDesc *fd; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ fd = bt_CreateFileDesc(osfd, PR_GetTCPMethods(), _PR_TRI_UNKNOWN, true); -+ if (fd == NULL) -+ closesocket(osfd); -+ return(fd); -+} -+ -+PR_IMPLEMENT(PRFileDesc *) PR_ImportUDPSocket(PRInt32 osfd) -+{ -+ PRFileDesc *fd; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ fd = bt_CreateFileDesc(osfd, PR_GetUDPMethods(), _PR_TRI_UNKNOWN, true); -+ if (fd == NULL) -+ closesocket(osfd); -+ return(fd); -+} -+ -+ -+#ifndef XP_HAIKU -+int socketpair (int family, int type, int protocol, int sv[2]) -+{ -+ int insock, outsock, acceptedsock; -+ struct sockaddr_in addrs[2]; -+ int alen; -+ /* that's really only so we can build... */ -+ /*fprintf(stderr, "socketpair(%d, %d, %d)\n", family, type, protocol);*/ -+ if (family != AF_INET) { -+ /*fatal*/fprintf(stderr, "socketpair(%d, %d, %d): family not supported\n", family, type, protocol); -+ errno = EPFNOSUPPORT; -+ return -1; -+ } -+ if (type != SOCK_DGRAM && type != SOCK_STREAM) { -+ errno = EPROTONOSUPPORT; -+ return -1; -+ } -+ addrs[0].sin_family = AF_INET; -+ addrs[0].sin_port = 0; -+ addrs[0].sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ addrs[1].sin_family = AF_INET; -+ addrs[1].sin_port = 0; -+ addrs[1].sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ alen = sizeof(struct sockaddr_in); -+ -+ insock = socket(family, type, protocol); -+ if (insock < 0) -+ goto err1; -+ if (bind(insock, (struct sockaddr *)&addrs[0], alen) < 0) -+ goto err2; -+ if (getsockname(insock, (struct sockaddr *)&addrs[0], &alen) < 0) -+ goto err2; -+ if (type == SOCK_STREAM) -+ listen(insock, 2); -+ -+ outsock = socket(family, type, protocol); -+ if (outsock < 0) -+ goto err2; -+ alen = sizeof(struct sockaddr_in); -+ if (bind(outsock, (struct sockaddr *)&addrs[1], alen) < 0) -+ goto err2; -+ if (getsockname(outsock, (struct sockaddr *)&addrs[1], &alen) < 0) -+ goto err3; -+ addrs[0].sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ addrs[1].sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ /*fprintf(stderr, "socketpair: %08lx:%d <-> %08lx:%d\n", -+ ((struct sockaddr_in *)&addrs[0])->sin_addr.s_addr, -+ ((struct sockaddr_in *)&addrs[0])->sin_port, -+ ((struct sockaddr_in *)&addrs[1])->sin_addr.s_addr, -+ ((struct sockaddr_in *)&addrs[1])->sin_port);*/ -+ -+ if (connect(outsock, (struct sockaddr *)&addrs[0], alen) < 0) -+ goto err3; -+ if (type == SOCK_DGRAM) { -+ if (connect(insock, (struct sockaddr *)&addrs[1], alen) < 0) -+ goto err3; -+ sv[0] = insock; -+ } else { -+ acceptedsock = accept(insock, (struct sockaddr *)&addrs[1], &alen); -+ if (acceptedsock < 0) -+ goto err3; -+ closesocket(insock); -+ sv[0] = acceptedsock; -+ } -+ sv[1] = outsock; -+ return 0; -+err3: -+ closesocket(outsock); -+err2: -+ closesocket(insock); -+err1: -+ fprintf(stderr,"socketpair: error 0x%08x\n", errno); -+ return -1; -+} -+#endif -+ -+PR_IMPLEMENT(PRStatus) PR_NewTCPSocketPair(PRFileDesc *f[]) -+{ -+ PRInt32 rv, osfd[2]; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+#ifdef XP_HAIKU -+ rv = socketpair(AF_UNIX, SOCK_STREAM, 0, osfd); -+#else -+ rv = socketpair(AF_INET, SOCK_STREAM, 0, osfd); -+#endif -+ if (rv == -1) { -+ return PR_FAILURE; -+ } -+ f[0] = bt_CreateFileDesc(osfd[0], PR_GetTCPMethods(), _PR_TRI_TRUE, true); -+ if (NULL == f[0]) { -+ closesocket(osfd[0]); -+ closesocket(osfd[1]); -+ /* PR_AllocFileDesc() has invoked PR_SetError(). */ -+ return PR_FAILURE; -+ } -+ f[1] = bt_CreateFileDesc(osfd[1], PR_GetTCPMethods(), _PR_TRI_TRUE, true); -+ if (NULL == f[1]) { -+ PR_Close(f[0]); -+ closesocket(osfd[1]); -+ /* PR_AllocFileDesc() has invoked PR_SetError(). */ -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+ -+PR_IMPLEMENT(PRStatus) PR_GetConnectStatus(const PRPollDesc *pd) { -+ PRInt32 osfd; -+#ifndef BONE_VERSION -+ int rv; -+#endif -+ PRFileDesc *bottom; -+ -+ if (pd->out_flags & PR_POLL_NVAL) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ if ((pd->out_flags & (PR_POLL_WRITE | PR_POLL_EXCEPT | PR_POLL_ERR)) == 0) { -+ PR_ASSERT(pd->out_flags == 0); -+ PR_SetError(PR_IN_PROGRESS_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ -+ /* Find the NSPR layer and invoke its connectcontinue method */ -+ bottom = PR_GetIdentitiesLayer(pd->fd, PR_NSPR_IO_LAYER); -+ if (NULL == bottom) -+ { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ osfd = bottom->secret->md.osfd; -+#ifdef BONE_VERSION /* bug 122364 */ -+ /* temporary workaround until getsockopt(SO_ERROR) works in BONE */ -+ if (pd->out_flags & PR_POLL_EXCEPT) { -+ PR_SetError(PR_CONNECT_REFUSED_ERROR, 0); -+ return PR_FAILURE; -+ } -+ PR_ASSERT(pd->out_flags & PR_POLL_WRITE); -+ return PR_SUCCESS; -+#else -+ rv = recv(bottom->secret->md.osfd, NULL, 0, 0); -+ PR_ASSERT(-1 == rv || 0 == rv); -+ -+ if (-1 == rv && 0 != errno && errno != EAGAIN && errno != EWOULDBLOCK ) { -+ set_connect_error(errno); -+ return PR_FAILURE; -+ } -+ else -+ return PR_SUCCESS; -+#endif /* BONE_VERSION */ -+} -+ -+PR_IMPLEMENT(PRFileDesc*) PR_Socket(PRInt32 domain, PRInt32 type, PRInt32 proto) -+{ -+ PRInt32 osfd, err; -+ PRFileDesc *fd; -+ PRInt32 tmp_domain = domain; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ if (PR_AF_INET != domain -+ && PR_AF_INET6 != domain -+ ) { -+ PR_SetError(PR_ADDRESS_NOT_SUPPORTED_ERROR, 0); -+ return NULL; -+ } -+ if( type != SOCK_STREAM && type != SOCK_DGRAM ) -+ { -+ PR_SetError(PR_ADDRESS_NOT_SUPPORTED_ERROR, 0); -+ return NULL; -+ } -+ -+#if defined(_PR_INET6_PROBE) -+ if (PR_AF_INET6 == domain) { -+ if (_pr_ipv6_is_present == PR_FALSE) -+ domain = AF_INET; -+ else -+ domain = AF_INET6; -+ } -+#elif defined(_PR_INET6) -+ if (PR_AF_INET6 == domain) -+ domain = AF_INET6; -+#else -+ if (PR_AF_INET6 == domain) -+ domain = AF_INET; -+#endif /* _PR_INET6 */ -+#ifndef BONE_VERSION -+ osfd = socket(domain, type, 0); -+#else -+ osfd = socket(domain, type, proto); -+#endif -+ if (osfd == -1) { -+ err = _MD_ERRNO(); -+ set_socket_error(err); -+ return 0; -+ } -+ fd = bt_CreateFileDesc(osfd, SOCK_STREAM == type?PR_GetTCPMethods() : PR_GetUDPMethods(), _PR_TRI_TRUE, true); -+ -+ if (fd != NULL) { -+#if defined(_PR_INET6_PROBE) || !defined(_PR_INET6) -+ /* -+ * For platforms with no support for IPv6 -+ * create layered socket for IPv4-mapped IPv6 addresses -+ */ -+ if (PR_AF_INET6 == tmp_domain && PR_AF_INET == domain) { -+ if (PR_FAILURE == _pr_push_ipv6toipv4_layer(fd)) { -+ PR_Close(fd); -+ fd = NULL; -+ } -+ } -+#endif -+ } else -+ closesocket(osfd); -+ -+ return fd; -+} -+ -+ -+PR_IMPLEMENT(PRFileDesc *) PR_NewTCPSocket(void) -+{ -+ return PR_Socket(AF_INET, SOCK_STREAM, 0); -+} -+ -+PR_IMPLEMENT(PRFileDesc*) PR_NewUDPSocket(void) -+{ -+ return PR_Socket(AF_INET, SOCK_DGRAM, 0); -+} -+ -+PR_IMPLEMENT(PRFileDesc *) PR_OpenTCPSocket(PRIntn af) -+{ -+ return PR_Socket(af, SOCK_STREAM, 0); -+} -+ -+PR_IMPLEMENT(PRFileDesc*) PR_OpenUDPSocket(PRIntn af) -+{ -+ return PR_Socket(af, SOCK_DGRAM, 0); -+} -+ -Index: nsprpub/pr/src/bthreads/btthread.c -=================================================================== ---- nsprpub/pr/src/bthreads/btthread.c (revision 7) -+++ nsprpub/pr/src/bthreads/btthread.c (working copy) -@@ -120,12 +120,9 @@ - */ - - beThreadPriority = _bt_MapNSPRToNativePriority( priority ); -- - set_thread_priority( find_thread( NULL ), beThreadPriority ); -- - primordialThread->priority = priority; - -- - /* set the thread's state - note that the thread is not joinable */ - primordialThread->state |= BT_THREAD_PRIMORD; - if (type == PR_SYSTEM_THREAD) -@@ -219,9 +216,7 @@ - allocated a joinSem for us) - let them know we're - ready */ - delete_sem(me->md.joinSem); -- - PR_Unlock(joinSemLock); -- - } - else - { -@@ -229,10 +224,8 @@ - is our responsibility to allocate the joinSem - and block on it */ - me->md.joinSem = create_sem(0, "join sem"); -- - /* we're done accessing our joinSem */ - PR_Unlock(joinSemLock); -- - /* wait for someone to join us */ - while (acquire_sem(me->md.joinSem) == B_INTERRUPTED); - } -@@ -243,10 +236,8 @@ - { - /* synchronize access to bt_book */ - PR_Lock( bt_book.ml ); -- - /* decrement the number of currently-alive user threads */ - bt_book.threadCount--; -- - if (bt_book.threadCount == 0 && bt_book.cleanUpSem != B_ERROR) { - /* we are the last user thread, and the primordial thread is - blocked in PR_Cleanup() waiting for us to finish - notify -@@ -277,9 +268,7 @@ - - /* save our PRThread object into our TLS */ - tls_set(tls_prThreadSlot, thred); -- - thred->startFunc(thred->arg); /* run the dang thing */ -- - /* clean up */ - _bt_CleanupThread(NULL); - -@@ -292,7 +281,6 @@ - PRThreadState state, PRUint32 stackSize) - { - PRUint32 bePriority; -- - PRThread* thred; - - if (!_pr_initialized) _PR_ImplicitInitialization(); -@@ -305,7 +293,6 @@ - } - - thred->md.joinSem = B_ERROR; -- - thred->arg = arg; - thred->startFunc = start; - thred->priority = priority; -@@ -316,7 +303,6 @@ - } - - /* keep some books */ -- - PR_Lock( bt_book.ml ); - - if (type == PR_USER_THREAD) -@@ -325,9 +311,7 @@ - } - - PR_Unlock( bt_book.ml ); -- - bePriority = _bt_MapNSPRToNativePriority( priority ); -- - thred->md.tid = spawn_thread((thread_func)_bt_root, "moz-thread", - bePriority, thred); - if (thred->md.tid < B_OK) { -@@ -433,6 +417,13 @@ - return thred; - } - -+PR_IMPLEMENT(void*)PR_GetSP(PRThread *thred) -+{ -+ thread_info tInfo; -+ get_thread_info(thred->md.tid, &tInfo); -+ return tInfo.stack_base; /* or should it be _end? */ -+} -+ - PR_IMPLEMENT(PRThreadScope) - PR_GetThreadScope (const PRThread* thred) - { -Index: nsprpub/pr/src/io/prmapopt.c -=================================================================== ---- nsprpub/pr/src/io/prmapopt.c (revision 7) -+++ nsprpub/pr/src/io/prmapopt.c (working copy) -@@ -74,7 +74,7 @@ - #include /* TCP_NODELAY, TCP_MAXSEG */ - #endif - --#ifndef _PR_PTHREADS -+#if !defined(_PR_PTHREADS) && !defined(_PR_BTHREADS) - - PRStatus PR_CALLBACK _PR_SocketGetSocketOption(PRFileDesc *fd, PRSocketOptionData *data) - { -@@ -99,7 +99,6 @@ - { - case PR_SockOpt_Linger: - { --#if !defined(XP_BEOS) || defined(BONE_VERSION) - struct linger linger; - length = sizeof(linger); - rv = _PR_MD_GETSOCKOPT( -@@ -113,10 +112,6 @@ - PR_SecondsToInterval(linger.l_linger); - } - break; --#else -- PR_SetError( PR_NOT_IMPLEMENTED_ERROR, 0 ); -- return PR_FAILURE; --#endif - } - case PR_SockOpt_Reuseaddr: - case PR_SockOpt_Keepalive: -@@ -257,17 +252,12 @@ - { - case PR_SockOpt_Linger: - { --#if !defined(XP_BEOS) || defined(BONE_VERSION) - struct linger linger; - linger.l_onoff = data->value.linger.polarity; - linger.l_linger = PR_IntervalToSeconds(data->value.linger.linger); - rv = _PR_MD_SETSOCKOPT( - fd, level, name, (char*)&linger, sizeof(linger)); - break; --#else -- PR_SetError( PR_NOT_IMPLEMENTED_ERROR, 0 ); -- return PR_FAILURE; --#endif - } - case PR_SockOpt_Reuseaddr: - case PR_SockOpt_Keepalive: -@@ -355,7 +345,7 @@ - return rv; - } /* _PR_SocketSetSocketOption */ - --#endif /* ! _PR_PTHREADS */ -+#endif /* ! _PR_PTHREADS && ! _PR_BTHREADS */ - - /* - ********************************************************************* -Index: nsprpub/pr/src/md/beos/bsrcs.mk -=================================================================== ---- nsprpub/pr/src/md/beos/bsrcs.mk (revision 7) -+++ nsprpub/pr/src/md/beos/bsrcs.mk (working copy) -@@ -20,6 +20,7 @@ - # the Initial Developer. All Rights Reserved. - # - # Contributor(s): -+# Fredrik Holmqvist - # - # Alternatively, the contents of this file may be used under the terms of - # either the GNU General Public License Version 2 or later (the "GPL"), or -@@ -42,13 +43,6 @@ - - MDCSRCS = \ - beos.c \ -- beos_errors.c \ -- bfile.c \ -- bmisc.c \ -- bnet.c \ - bproc.c \ -- brng.c \ -- bseg.c \ -- btime.c \ - bmmap.c \ - $(NULL) -Index: nsprpub/pr/src/md/beos/bproc.c -=================================================================== ---- nsprpub/pr/src/md/beos/bproc.c (revision 7) -+++ nsprpub/pr/src/md/beos/bproc.c (working copy) -@@ -36,8 +36,10 @@ - * ***** END LICENSE BLOCK ***** */ - - #include "primpl.h" -+#include -+#include - #include --#include -+#include - - #define _PR_SIGNALED_EXITSTATUS 256 - -Index: nsprpub/pr/src/md/beos/beos.c -=================================================================== ---- nsprpub/pr/src/md/beos/beos.c (revision 7) -+++ nsprpub/pr/src/md/beos/beos.c (working copy) -@@ -37,58 +37,87 @@ - - #include "primpl.h" - --#include --#include --#include --#include --#include --#include - #include --#include --#include -- - /* - * Make sure _PRSockLen_t is 32-bit, because we will cast a PRUint32* or - * PRInt32* pointer to a _PRSockLen_t* pointer. - */ - #define _PRSockLen_t int - --/* --** Global lock variable used to bracket calls into rusty libraries that --** aren't thread safe (like libc, libX, etc). --*/ --static PRLock *_pr_rename_lock = NULL; --static PRMonitor *_pr_Xfe_mon = NULL; - -+#ifndef BONE_VERSION -+PRLock *_connectLock = NULL; -+ -+/* Workaround for nonblocking connects under net_server */ -+PRUint32 connectCount = 0; -+ConnectListNode connectList[64]; -+ -+void -+_MD_final_init_netserver(void) -+{ -+ _connectLock = PR_NewLock(); -+ PR_ASSERT(NULL != _connectLock); -+ /* Workaround for nonblocking connects under net_server */ -+ connectCount = 0; -+} -+#endif /* !BONE_VERSION */ -+ -+ -+#ifdef __powerpc__ -+static PRLock *monitor = NULL; -+ -+void -+_MD_AtomicInit(void) -+{ -+ if (monitor == NULL) { -+ monitor = PR_NewLock(); -+ } -+} -+#endif /* __powerpc__ */ -+ - /* -- * Variables used by the GC code, initialized in _MD_InitSegs(). -- * _pr_zero_fd should be a static variable. Unfortunately, there is -- * still some Unix-specific code left in function PR_GrowSegment() -- * in file memory/prseg.c that references it, so it needs -- * to be a global variable for now. -+** This is exceedingly messy. atomic_add returns the last value, NSPR -+** expects the new value. We just add or subtract 1 from the result. -+** The actual memory update is atomic. - */ --PRInt32 _pr_zero_fd = -1; --static PRLock *_pr_md_lock = NULL; - --sigset_t timer_set; -+PRInt32 -+_MD_AtomicAdd( PRInt32 *ptr, PRInt32 val ) -+{ -+ return atomic_add( (long *)ptr, val ) + val; -+} - --void _PR_UnixInit() -+PRInt32 -+_MD_AtomicIncrement( PRInt32 *val ) - { -- struct sigaction sigact; -- int rv; -+ return atomic_add( (long *)val, 1 ) + 1; -+} - -- sigemptyset(&timer_set); -+PRInt32 -+_MD_AtomicDecrement( PRInt32 *val ) -+{ -+ return atomic_add( (long *)val, -1 ) - 1; -+} - -- sigact.sa_handler = SIG_IGN; -- sigemptyset(&sigact.sa_mask); -- sigact.sa_flags = 0; -- rv = sigaction(SIGPIPE, &sigact, 0); -- PR_ASSERT(0 == rv); -+PRInt32 -+_MD_AtomicSet( PRInt32 *val, PRInt32 newval ) -+{ -+ PRInt32 result; -+#ifdef __powerpc__ -+ if (!_pr_initialized) { -+ _PR_ImplicitInitialization(); -+ } -+ PR_Lock(monitor); -+ result = *val; -+ *val = newval; -+ PR_Unlock(monitor); -+#else -+ asm volatile ("xchgl %0, %1" -+ : "=r"(result), "=m"(*val) -+ : "0"(newval), "m"(*val)); - -- _pr_rename_lock = PR_NewLock(); -- PR_ASSERT(NULL != _pr_rename_lock); -- _pr_Xfe_mon = PR_NewMonitor(); -- PR_ASSERT(NULL != _pr_Xfe_mon); -+#endif /* __powerpc__ */ -+ return result; - } - - /* -@@ -98,9 +127,7 @@ - * - * Returns the current time in microseconds since the epoch. - * The epoch is midnight January 1, 1970 GMT. -- * The implementation is machine dependent. This is the Unix -- * implementation. -- * Cf. time_t time(time_t *tp) -+ * The implementation is machine dependent. - * - *----------------------------------------------------------------------- - */ -@@ -108,157 +135,75 @@ - PR_IMPLEMENT(PRTime) - PR_Now(void) - { -- struct timeval tv; -- PRInt64 s, us, s2us; -- -- GETTIMEOFDAY(&tv); -- LL_I2L(s2us, PR_USEC_PER_SEC); -- LL_I2L(s, tv.tv_sec); -- LL_I2L(us, tv.tv_usec); -- LL_MUL(s, s, s2us); -- LL_ADD(s, s, us); -- return s; -+ return (PRTime) real_time_clock_usecs(); - } - - PRIntervalTime --_PR_UNIX_GetInterval() -+_MD_get_interval(void) - { -- struct timeval time; -- PRIntervalTime ticks; -- -- (void)GETTIMEOFDAY(&time); /* fallicy of course */ -- ticks = (PRUint32)time.tv_sec * PR_MSEC_PER_SEC; /* that's in milliseconds */ -- ticks += (PRUint32)time.tv_usec / PR_USEC_PER_MSEC; /* so's that */ -- return ticks; --} /* _PR_SUNOS_GetInterval */ -- --PRIntervalTime _PR_UNIX_TicksPerSecond() --{ -- return 1000; /* this needs some work :) */ -+ return (PRIntervalTime) real_time_clock_usecs() / 10; - } - --/************************************************************************/ -- --/* --** Special hacks for xlib. Xlib/Xt/Xm is not re-entrant nor is it thread --** safe. Unfortunately, neither is mozilla. To make these programs work --** in a pre-emptive threaded environment, we need to use a lock. --*/ -- --void PR_XLock() -+PRIntervalTime -+_MD_interval_per_sec(void) - { -- PR_EnterMonitor(_pr_Xfe_mon); -+ return 100000L; - } - --void PR_XUnlock() -+PRSize -+_PR_MD_GetRandomNoise( void *buf, PRSize size ) - { -- PR_ExitMonitor(_pr_Xfe_mon); --} -+ struct timeval tv; -+ int n = 0; -+ int s; - --PRBool PR_XIsLocked() --{ -- return (PR_InMonitor(_pr_Xfe_mon)) ? PR_TRUE : PR_FALSE; --} -+ GETTIMEOFDAY(&tv); - --void PR_XWait(int ms) --{ -- PR_Wait(_pr_Xfe_mon, PR_MillisecondsToInterval(ms)); -+ if ( size >= 0 ) { -+ s = _pr_CopyLowBits((char*)buf+n, size, &tv.tv_usec, sizeof(tv.tv_usec)); -+ size -= s; -+ n += s; - } -- --void PR_XNotify(void) --{ -- PR_Notify(_pr_Xfe_mon); -+ if ( size >= 0 ) { -+ s = _pr_CopyLowBits((char*)buf+n, size, &tv.tv_sec, sizeof(tv.tv_sec)); -+ size -= s; -+ n += s; - } -+ return n; -+} /* end _PR_MD_GetRandomNoise() */ - --void PR_XNotifyAll(void) --{ -- PR_NotifyAll(_pr_Xfe_mon); --} - --#if !defined(BEOS) --#ifdef HAVE_BSD_FLOCK -- --#include -- --PR_IMPLEMENT(PRStatus) --_MD_LOCKFILE (PRInt32 f) -+/* Needed by prinit.c:612 */ -+void -+_PR_MD_QUERY_FD_INHERITABLE(PRFileDesc *fd) - { -- PRInt32 rv; -- rv = flock(f, LOCK_EX); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_FLOCK_ERROR(_MD_ERRNO()); -- return PR_FAILURE; --} -+ int flags; - --PR_IMPLEMENT(PRStatus) --_MD_TLOCKFILE (PRInt32 f) --{ -- PRInt32 rv; -- rv = flock(f, LOCK_EX|LOCK_NB); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_FLOCK_ERROR(_MD_ERRNO()); -- return PR_FAILURE; -+ PR_ASSERT(_PR_TRI_UNKNOWN == fd->secret->inheritable); -+ flags = fcntl(fd->secret->md.osfd, F_GETFD, 0); -+ PR_ASSERT(-1 != flags); -+ fd->secret->inheritable = (flags & FD_CLOEXEC) ? -+ _PR_TRI_FALSE : _PR_TRI_TRUE; - } - --PR_IMPLEMENT(PRStatus) --_MD_UNLOCKFILE (PRInt32 f) -+PRStatus -+_MD_gethostname(char *name, PRUint32 namelen) - { -- PRInt32 rv; -- rv = flock(f, LOCK_UN); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_FLOCK_ERROR(_MD_ERRNO()); -- return PR_FAILURE; --} --#else -+ PRInt32 rv, err; - --PR_IMPLEMENT(PRStatus) --_MD_LOCKFILE (PRInt32 f) --{ -- PRInt32 rv; -- rv = lockf(f, F_LOCK, 0); -+ rv = gethostname(name, namelen); - if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_LOCKF_ERROR(_MD_ERRNO()); -- return PR_FAILURE; --} -- --PR_IMPLEMENT(PRStatus) --_MD_TLOCKFILE (PRInt32 f) - { -- PRInt32 rv; -- rv = lockf(f, F_TLOCK, 0); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_LOCKF_ERROR(_MD_ERRNO()); -- return PR_FAILURE; -+ err = _MD_ERRNO(); -+ switch (err) { -+ case EFAULT: -+ PR_SetError(PR_ACCESS_FAULT_ERROR, err); -+ break; -+ default: -+ PR_SetError(PR_UNKNOWN_ERROR, err); -+ break; - } -- --PR_IMPLEMENT(PRStatus) --_MD_UNLOCKFILE (PRInt32 f) --{ -- PRInt32 rv; -- rv = lockf(f, F_ULOCK, 0); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_LOCKF_ERROR(_MD_ERRNO()); - return PR_FAILURE; - } --#endif -- --PR_IMPLEMENT(PRStatus) -- _MD_GETHOSTNAME (char *name, PRUint32 namelen) --{ -- PRIntn rv; -- -- rv = gethostname(name, namelen); -- if (0 == rv) { - return PR_SUCCESS; - } -- _PR_MD_MAP_GETHOSTNAME_ERROR(_MD_ERRNO()); -- return PR_FAILURE; --} -- --#endif -Index: nsprpub/pr/src/io/Makefile.in -=================================================================== ---- nsprpub/pr/src/io/Makefile.in (revision 7) -+++ nsprpub/pr/src/io/Makefile.in (working copy) -@@ -69,6 +69,7 @@ - $(NULL) - - ifndef USE_PTHREADS -+ifndef USE_BTHREADS - CSRCS += \ - prdir.c \ - prfile.c \ -@@ -76,6 +77,7 @@ - prsocket.c \ - $(NULL) - endif -+endif - - TARGETS = $(OBJS) - -Index: nsprpub/pr/src/io/prsocket.c -=================================================================== ---- nsprpub/pr/src/io/prsocket.c (revision 7) -+++ nsprpub/pr/src/io/prsocket.c (working copy) -@@ -64,7 +64,7 @@ - * is not uniform, so we don't check it. - */ - if ((addr != NULL) --#if defined(XP_UNIX) || defined(XP_OS2_EMX) -+#if defined(XP_UNIX) || defined(XP_OS2_EMX) || defined(XP_BEOS) - && (addr->raw.family != AF_UNIX) - #endif - && (PR_NETADDR_SIZE(addr) != addr_len)) { -Index: nsprpub/pr/src/memory/prseg.c -=================================================================== ---- nsprpub/pr/src/memory/prseg.c (revision 7) -+++ nsprpub/pr/src/memory/prseg.c (working copy) -@@ -37,7 +37,7 @@ - - #include "primpl.h" - --#if defined(_PR_PTHREADS) -+#if defined(_PR_PTHREADS) || defined(_PR_BTHREADS) - - /* - ** The pthreads version doesn't use these functions. -@@ -46,7 +46,7 @@ - { - } - --#else /* _PR_PTHREADS */ -+#else /* _PR_PTHREADS || defined(_PR_BTHREADS) */ - - void _PR_InitSegs(void) - { -@@ -90,4 +90,4 @@ - PR_DELETE(seg); - } - --#endif /* _PR_PTHREADS */ -+#endif /* _PR_PTHREADS || defined(_PR_BTHREADS) */ diff --git a/www-client/mozilla_firefox/patches/2009-09-27/r08-misc.patch b/www-client/mozilla_firefox/patches/2009-09-27/r08-misc.patch deleted file mode 100644 index 76ebbd3f4..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/r08-misc.patch +++ /dev/null @@ -1,410 +0,0 @@ -Index: gfx/src/beos/nsFontMetricsBeOS.cpp -=================================================================== ---- gfx/src/beos/nsFontMetricsBeOS.cpp (revision 7) -+++ gfx/src/beos/nsFontMetricsBeOS.cpp (working copy) -@@ -128,12 +128,12 @@ - if (!isgeneric) - { - // non-generic font -- if (count_font_styles((font_family)family.get()) <= 0) -+ if (count_font_styles((char *) family.get()) <= 0) - { - // the specified font does not exist on this computer. - continue; - } -- mFontHandle.SetFamilyAndStyle( (font_family)family.get(), NULL ); -+ mFontHandle.SetFamilyAndStyle( (char *)family.get(), NULL ); - fontfound = PR_TRUE; - break; - } -@@ -158,9 +158,9 @@ - prefs->GetBranch("font.name.", getter_AddRefs(branch)); - branch->GetCharPref(prop, getter_Copies(real_family)); - -- if (!real_family.IsEmpty() && real_family.Length() <= B_FONT_FAMILY_LENGTH && count_font_styles((font_family)real_family.get()) > 0) -+ if (!real_family.IsEmpty() && real_family.Length() <= B_FONT_FAMILY_LENGTH && count_font_styles((char *)real_family.get()) > 0) - { -- mFontHandle.SetFamilyAndStyle( (font_family)real_family.get(), NULL ); -+ mFontHandle.SetFamilyAndStyle( (char *)real_family.get(), NULL ); - fontfound = PR_TRUE; - break; - } -@@ -414,8 +414,8 @@ - nsFontMetricsBeOS::FamilyExists(const nsString& aName) - { - NS_ConvertUTF16toUTF8 family(aName); -- printf("exists? %s", (font_family)family.get()); -- return (count_font_styles((font_family)family.get()) > 0) ? NS_OK : NS_ERROR_FAILURE; -+ printf("exists? %s", (char *)family.get()); -+ return (count_font_styles((char *)family.get()) > 0) ? NS_OK : NS_ERROR_FAILURE; - } - - // useful UTF-8 utility -Index: gfx/src/beos/nsRenderingContextBeOS.cpp -=================================================================== ---- gfx/src/beos/nsRenderingContextBeOS.cpp (revision 7) -+++ gfx/src/beos/nsRenderingContextBeOS.cpp (working copy) -@@ -351,8 +351,11 @@ - if (mCurrentBFont == nsnull) - { - if (mFontMetrics) -- mFontMetrics->GetFontHandle((nsFontHandle)mCurrentBFont); -- -+ { -+ nsFontHandle fontHandle; -+ mFontMetrics->GetFontHandle(fontHandle); -+ mCurrentBFont = (BFont *) fontHandle; -+ } - if (mCurrentBFont) - mView->SetFont(mCurrentBFont); - else -@@ -1127,7 +1130,7 @@ - NS_IMETHODIMP nsRenderingContextBeOS::GetTextDimensions(const PRUnichar* aString, - PRInt32 aLength, PRInt32 aAvailWidth, PRInt32* aBreaks, PRInt32 aNumBreaks, - nsTextDimensions& aDimensions, PRInt32& aNumCharsFit, nsTextDimensions& aLastWordDimensions, -- PRInt32* aFontID = nsnull) -+ PRInt32* aFontID) - { - nsresult ret_code = NS_ERROR_FAILURE; - uint8 utf8buf[1024]; -@@ -1160,7 +1163,7 @@ - - NS_IMETHODIMP nsRenderingContextBeOS::GetTextDimensions(const char* aString, PRInt32 aLength, - PRInt32 aAvailWidth,PRInt32* aBreaks, PRInt32 aNumBreaks, nsTextDimensions& aDimensions, -- PRInt32& aNumCharsFit, nsTextDimensions& aLastWordDimensions, PRInt32* aFontID = nsnull) -+ PRInt32& aNumCharsFit, nsTextDimensions& aLastWordDimensions, PRInt32* aFontID) - { - // Code is borrowed from win32 implementation including comments. - // Minor changes are introduced due multibyte/utf-8 nature of char* strings handling in BeOS. -Index: toolkit/xre/nsAppRunner.cpp -=================================================================== ---- toolkit/xre/nsAppRunner.cpp (revision 7) -+++ toolkit/xre/nsAppRunner.cpp (working copy) -@@ -1361,9 +1361,10 @@ - #elif defined(XP_BEOS) - int32 cookie = 0; - image_info info; -- -+ do { - if(get_next_image_info(0, &cookie, &info) != B_OK) - return NS_ERROR_FAILURE; -+ } while(info.type != B_APP_IMAGE); - - rv = NS_NewNativeLocalFile(nsDependentCString(info.name), PR_TRUE, - getter_AddRefs(lf)); -Index: toolkit/xre/nsXREDirProvider.cpp -=================================================================== ---- toolkit/xre/nsXREDirProvider.cpp (revision 7) -+++ toolkit/xre/nsXREDirProvider.cpp (working copy) -@@ -76,7 +76,7 @@ - #include "nsILocalFileMac.h" - #endif - #ifdef XP_BEOS --#include -+#include - #include - #endif - #ifdef XP_UNIX -Index: widget/src/beos/nsAppShell.cpp -=================================================================== ---- widget/src/beos/nsAppShell.cpp (revision 7) -+++ widget/src/beos/nsAppShell.cpp (working copy) -@@ -118,10 +118,28 @@ - // NOTE: this needs to be run from within the main application thread - char portname[64]; - char semname[64]; -+ int32 cookie = 0; -+ image_info iinfo; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(leaf)); -+ PR_snprintf(semname, sizeof(semname), "sync%lx", -+ (long unsigned) find_thread(leaf)); -+ } -+ else -+ { - PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) PR_GetCurrentThread()); -+ (long unsigned) find_thread(0)); - PR_snprintf(semname, sizeof(semname), "sync%lx", -- (long unsigned) PR_GetCurrentThread()); -+ (long unsigned) find_thread(0)); -+ } -+ } while(iinfo.type != B_APP_IMAGE); - - #ifdef DEBUG - printf("nsAppShell::Create portname: %s, semname: %s\n", portname, semname); -@@ -342,8 +360,22 @@ - { - // should we check for eventport initialization ? - char portname[64]; -+ int32 cookie = 0; -+ image_info iinfo; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(leaf)); -+ } -+ else - PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) PR_GetCurrentThread()); -+ (long unsigned) find_thread(0)/*PR_GetCurrentThread()*/); -+ } while(iinfo.type != B_APP_IMAGE); - - if((eventport = find_port(portname)) < 0) - { -Index: widget/src/beos/nsDragService.cpp -=================================================================== ---- widget/src/beos/nsDragService.cpp (revision 7) -+++ widget/src/beos/nsDragService.cpp (working copy) -@@ -255,7 +255,7 @@ - bool noBitmap = true; - - //This is the code for image-dragging, currently disabled. See comments in beginning of file. --# ifdef 0 -+#if 0 - do - { - PRUint32 dataSize; -Index: widget/src/beos/nsToolkit.cpp -=================================================================== ---- widget/src/beos/nsToolkit.cpp (revision 7) -+++ widget/src/beos/nsToolkit.cpp (working copy) -@@ -42,6 +42,7 @@ - #include "nsSwitchToUIThread.h" - #include "plevent.h" - #include "prprf.h" -+#include - - // - // Static thread local storage index of the Toolkit -@@ -89,10 +90,26 @@ - delete info; - - // system wide unique names -+ int32 cookie = 0; -+ image_info iinfo; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(leaf)); -+ } -+ else -+ { - PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) PR_GetCurrentThread()); -+ (long unsigned) find_thread(0)); -+ } -+ } while(iinfo.type != B_APP_IMAGE); - -- port_id event = create_port(100, portname); -+ port_id event = create_port(200, portname); - - while(read_port(event, &code, &id, sizeof(id)) >= 0) - { -@@ -130,6 +147,7 @@ - { - localthread = false; - mGuiThread = NULL; -+ mGUIThreadID = 0; - } - - -@@ -188,6 +206,22 @@ - } - } - -+ image_info iinfo; -+ int32 cookie = 0; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ mGUIThreadID = find_thread(leaf); -+ } -+ else -+ { -+ mGUIThreadID = find_thread(0); -+ } -+ } while(iinfo.type != B_APP_IMAGE); - // at this point the thread is running - PR_ExitMonitor(monitor); - PR_DestroyMonitor(monitor); -@@ -218,7 +252,22 @@ - } - - cached = false; -- -+ image_info iinfo; -+ int32 cookie = 0; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ mGUIThreadID = find_thread(leaf); -+ } -+ else -+ { -+ mGUIThreadID = find_thread(0); -+ } -+ } while(iinfo.type != B_APP_IMAGE); - return NS_OK; - } - -@@ -227,9 +276,8 @@ - if(! cached) - { - char portname[64]; -- - PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) mGuiThread); -+ (long unsigned) mGUIThreadID); - - eventport = find_port(portname); - -Index: widget/src/beos/nsToolkit.h -=================================================================== ---- widget/src/beos/nsToolkit.h (revision 7) -+++ widget/src/beos/nsToolkit.h (working copy) -@@ -71,6 +71,7 @@ - protected: - // Thread Id of the "main" Gui thread. - PRThread *mGuiThread; -+ thread_id mGUIThreadID; - static void RunPump(void* arg); - void GetInterface(); - bool cached; -Index: xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h -=================================================================== ---- xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h (revision 7) -+++ xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h (working copy) -@@ -138,8 +138,13 @@ - #endif - - #elif defined(__BEOS__) -+#if (__GNUC__ == 2) - #define CFRONT_STYLE_THIS_ADJUST -+#else -+#define THUNK_BASED_THIS_ADJUST -+#endif - -+ - #elif defined(__sun__) || defined(__sun) - #if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */ - #define THUNK_BASED_THIS_ADJUST -Index: xpcom/threads/plevent.c -=================================================================== ---- xpcom/threads/plevent.c (revision 7) -+++ xpcom/threads/plevent.c (working copy) -@@ -66,6 +66,8 @@ - - #if defined(XP_BEOS) - #include -+#include -+#include - #endif - - #if defined(XP_MACOSX) -@@ -908,10 +910,39 @@ - - char portname[64]; - char semname[64]; -+ -+struct _MDThread -+{ -+ thread_id tid; -+ sem_id joinSem; -+ PRBool is_joining; -+}; -+ struct _MDThread md; -+ -+ -+//#include "private/primpl.h" -+ image_info iinfo; -+ int32 icookie = 0; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &icookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(leaf)); -+ PR_snprintf(semname, sizeof(semname), "sync%lx", -+ (long unsigned) find_thread(leaf)); -+ } -+ else -+ { - PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) self->handlerThread); -+ (long unsigned) find_thread(0)); - PR_snprintf(semname, sizeof(semname), "sync%lx", -- (long unsigned) self->handlerThread); -+ (long unsigned) find_thread(0)); -+ } -+ } while(iinfo.type != B_APP_IMAGE); - - self->eventport = find_port(portname); - while(get_next_sem_info(0, &cookie, &info) == B_OK) -@@ -931,7 +962,7 @@ - { - delete_port( self->eventport ); - } -- self->eventport = create_port(200, portname); -+ self->eventport = create_port(512, portname); - /* We don't use the sem, but it has to be there - */ - create_sem(0, semname); -@@ -1264,6 +1295,7 @@ - thread_id waitingThread; - }; - -+ - static PRStatus - _pl_NativeNotify(PLEventQueue* self) - { -@@ -1274,6 +1306,7 @@ - - return PR_SUCCESS; /* Is this correct? */ - } -+ - #endif /* XP_BEOS */ - - #if defined(XP_MACOSX) -Index: xpfe/bootstrap/nsSigHandlers.cpp -=================================================================== ---- xpfe/bootstrap/nsSigHandlers.cpp (revision 7) -+++ xpfe/bootstrap/nsSigHandlers.cpp (working copy) -@@ -60,7 +60,8 @@ - #endif - - #ifdef XP_BEOS --#include -+#include -+#include - #include - #include "nsCOMPtr.h" - #include "nsIServiceManager.h" diff --git a/www-client/mozilla_firefox/patches/2009-09-27/r09-sunbird-options-fix.patch b/www-client/mozilla_firefox/patches/2009-09-27/r09-sunbird-options-fix.patch deleted file mode 100644 index 2c91e2aa3..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/r09-sunbird-options-fix.patch +++ /dev/null @@ -1,18 +0,0 @@ -Index: calendar/base/content/preferences/preferences.xul -=================================================================== ---- calendar/base/content/preferences/preferences.xul (revision 7) -+++ calendar/base/content/preferences/preferences.xul (working copy) -@@ -71,8 +71,13 @@ - style="&prefWindow.styleGNOME;"> - #endif - #endif -+#ifdef XP_BEOS -+ title="&prefWindow.titleGNOME;" -+ style="&prefWindow.styleGNOME;"> - #endif -+#endif - -+ -

Bookmarks Toolbar Folder

-
Add bookmarks to this folder to see them displayed on the Bookmarks Toolbar -

--

Getting Started --
Latest Headlines -+
Haiku WebSite -+
Nightly Builds -

-


--

Mozilla Firefox

-+

BeZilla Browser

-

--

Help and Tutorials --
Customize Firefox --
Get Involved --
About Us -+
BeZilla Blog -+
Report an Issue -+
View Known Issues -

-+

Haiku Bookmarks

-+

-+

Nightly Builds -+
Optional Packages -+
Bug Tracker -+
Haiku User Guide -+
BeBook -+
Welcome -+

-+

Software for Haiku

-+

-+

OSDrawer.net -+
HaikuWare -+
Zeta-Games -+
BeBits -+

-+

Haiku WebSite -+ -

-Index: profile/defaults/bookmarks.html -=================================================================== ---- profile/defaults/bookmarks.html (revision 7) -+++ profile/defaults/bookmarks.html (working copy) -@@ -7,35 +7,34 @@ -

Bookmarks

- -

--

Personal Toolbar Folder

--

--

mozilla.org --
mozillaZine --
mozdev.org -+
Get Bookmark Add-ons -+
-+

Bookmarks Toolbar Folder

-+
Add bookmarks to this folder to see them displayed on the Bookmarks Toolbar -+

-+

Haiku WebSite -+
Nightly Builds -

--

Mozilla Project

-+
-+

BeZilla Browser

-

--

mozilla.org

--

--

The Mozilla Organization --
SeaMonkey Project --
Mozilla Products --
Feedback --

--

Community & Support

--

--

mozillaZine --
SeaMonkey Support (mozillaZine) --
mozdev.org --
Mozilla Plug-in Information (mozdev) --
Mozilla Extensions (mozdev) --

-+

BeZilla Blog -+
Report an Issue -+
View Known Issues -

--

Search the Web

-+

Haiku Bookmarks

-

--

Google --
Google Groups --
Google News -+
Nightly Builds -+
Optional Packages -+
Bug Tracker -+

-+

Software for Haiku

-+

-+

OSDrawer.net -+
HaikuWare -+
Zeta-Games -+
BeBits -

--


-+
Haiku WebSite -+ -

-Index: browser/base/content/dynamic-bebook-v1.html -=================================================================== ---- browser/base/content/dynamic-bebook-v1.html (revision 0) -+++ browser/base/content/dynamic-bebook-v1.html (revision 0) -@@ -0,0 +1,32 @@ -+ -+ -+ Opening the welcome page... -+ -+ -+ -+ Opening the welcome page... -+ -+ -Index: browser/base/content/dynamic-bebook-v2.html -=================================================================== ---- browser/base/content/dynamic-bebook-v2.html (revision 0) -+++ browser/base/content/dynamic-bebook-v2.html (revision 0) -@@ -0,0 +1,56 @@ -+ -+ -+ -+ -+ -+ -+Welcome to Haiku! -+ -+ -+ -+ -+ -+ -+ -Index: browser/base/content/dynamic-userguide-v1.html -=================================================================== ---- browser/base/content/dynamic-userguide-v1.html (revision 0) -+++ browser/base/content/dynamic-userguide-v1.html (revision 0) -@@ -0,0 +1,32 @@ -+ -+ -+ Opening the welcome page... -+ -+ -+ -+ Opening the welcome page... -+ -+ -Index: browser/base/content/dynamic-userguide-v2.html -=================================================================== ---- browser/base/content/dynamic-userguide-v2.html (revision 0) -+++ browser/base/content/dynamic-userguide-v2.html (revision 0) -@@ -0,0 +1,56 @@ -+ -+ -+ -+ -+ -+ -+Welcome to Haiku! -+ -+ -+ -+ -+ -+ -+ -Index: browser/base/content/dynamic-welcome-v1.html -=================================================================== ---- browser/base/content/dynamic-welcome-v1.html (revision 0) -+++ browser/base/content/dynamic-welcome-v1.html (revision 0) -@@ -0,0 +1,32 @@ -+ -+ -+ Opening the welcome page... -+ -+ -+ -+ Opening the welcome page... -+ -+ -Index: browser/base/content/dynamic-welcome-v2.html -=================================================================== ---- browser/base/content/dynamic-welcome-v2.html (revision 0) -+++ browser/base/content/dynamic-welcome-v2.html (revision 0) -@@ -0,0 +1,56 @@ -+ -+ -+ -+ -+ -+ -+Welcome to Haiku! -+ -+ -+ -+ -+ -+ -+ diff --git a/www-client/mozilla_firefox/patches/2009-09-27/r12-releasenotes.patch b/www-client/mozilla_firefox/patches/2009-09-27/r12-releasenotes.patch deleted file mode 100644 index 500251404..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/r12-releasenotes.patch +++ /dev/null @@ -1,19 +0,0 @@ -Index: browser/app/firefox-branding.js -=================================================================== ---- browser/app/firefox-branding.js (revision 7) -+++ browser/app/firefox-branding.js (working copy) -@@ -1,5 +1,4 @@ - pref("startup.homepage_override_url","http://www.mozilla.org/projects/%APP%/%VERSION%/whatsnew/"); --pref("startup.homepage_welcome_url","http://www.mozilla.org/projects/%APP%/%VERSION%/firstrun/"); - // URL user can browse to manually if for some reason all update installation - // attempts fail. - pref("app.update.url.manual", "http://www.mozilla.org/products/%APP%/"); -@@ -8,7 +7,7 @@ - pref("app.update.url.details", "http://www.mozilla.org/projects/%APP%/"); - - // Release notes URL --pref("app.releaseNotesURL", "http://www.mozilla.org/projects/%APP%/%VERSION%/releasenotes/"); -+pref("app.releaseNotesURL", "about:buildconfig"); - - // Search codes belong only in builds with official branding - pref("browser.search.param.yahoo-fr", ""); diff --git a/www-client/mozilla_firefox/persdict.dat b/www-client/mozilla_firefox/persdict.dat deleted file mode 100644 index abc3037a0..000000000 --- a/www-client/mozilla_firefox/persdict.dat +++ /dev/null @@ -1,65 +0,0 @@ -ActivityMonitor -AddFilesToHaikuImage -AddGroupToHaikuImage -AddOptionalHaikuImagePackages -AddSourceDirectoryToHaikuImage -AddSymlinkToHaikuImage -AddTargetVariableToScript -AddUserToHaikuImage -AddVariableToScript -AppendToConfigVar -BeHappy -BeOS -BePDF -BeZilla -BeZillaBrowser -Berlios -CDPlayer -CodyCam -CopyDirectoryToHaikuImage -DeferredSubInclude -DefineBuildProfile -DeskCalc -Deskbar -DiskProbe -DiskUsage -DriveSetup -DriveUsage -GParted -Jamfile -LaunchBox -MediaPlayer -MidiPlayer -MidiPlayerSettings -NetPenguin -NetSurf -NetworkStatus -OpenSSH -OpenSSL -OptionalPackages -PackageInstaller -ProcessController -Qemu -Screenshot -SetConfigVar -ShowImage -SoundRecorder -StyledEdit -TextSearch -UnzipArchiveToHaikuImage -UserBuildConfig -UserBuildConfigRulePostBuildTargets -UserBuildConfigRulePostImage -UserBuildConfigRulePreImage -UserShutdownScript -VLC -VMWare -VideoLAN -VirtualBox -Vmware -WonderBrush -bootman -makebootable -preflet -replicant -zbeos diff --git a/www-client/mozilla_firefox/select-a-mozconfig/browser-debug.mozconfig b/www-client/mozilla_firefox/select-a-mozconfig/browser-debug.mozconfig deleted file mode 100644 index 821711fd9..000000000 --- a/www-client/mozilla_firefox/select-a-mozconfig/browser-debug.mozconfig +++ /dev/null @@ -1,70 +0,0 @@ -# ------------------ -# Browser, DEBUG -# ------------------ - -### Tags for packaged-filename -export MOZ_PKG_SPECIAL=DEBUG -mk_add_options MOZ_PKG_SPECIAL=DEBUG - -. $topsrcdir/browser/config/mozconfig -mk_add_options MOZ_CO_PROJECT=browser - -# Required to download the right version of the source code -mk_add_options MOZ_CO_TAG=MOZILLA_1_8_BRANCH - -export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot -mk_add_options CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot - -# ----------------------------------------------------- -# --- EDIT THESE VALUES TO REFLECT YOUR LOCAL BUILD --- -export GLIB_CONFIG=/boot/common/bin/glib-config -mk_add_options GLIB_CONFIG=/boot/common/bin/glib-config - -export LIBIDL_CONFIG=/boot/common/bin/libIDL-config -mk_add_options LIBIDL_CONFIG=/boot/common/bin/libIDL-config - -# --- Set the outputdir for the build --- -mk_add_options MOZ_OBJDIR=/moz_obj/debug-browser - -# autoconf 2.13 was built by -#./configure --prefix=/boot/common/autoconf-2.13 --program-suffix=-2.13 --bindir=/boot/common/bin/ -# make && make install -export AUTOCONF='/boot/common/bin/autoconf-2.13 -m /boot/common/autoconf-2.13/share/autoconf' -# ----------------------------------------------------- - -# Automatic updates not currently supported on BeOS. Delete this when we add this feature. -ac_add_options --disable-updater - -# We don't have Java for BeOS yet. While this builds fine, it is not useful. -ac_add_options --disable-oji - -# Build without Cairo -ac_add_options --disable-svg -ac_add_options --disable-canvas - -# Utilize Haiku's default shared libraries -ac_add_options --with-system-jpeg -ac_add_options --with-system-png -ac_add_options --with-system-zlib - -# Reduce build size and time by omitting IPv6 support (not needed on BeOS) -ac_add_options --disable-ipv6 - -# Required configure options -ac_add_options --enable-cpp-rtti - -# Eliminate lots of relatively useless warnings during build -ac_add_options --disable-cpp-exceptions - -# Optional optimizations -ac_add_options --enable-debug -ac_add_options --disable-optimize -ac_add_options --disable-reorder -ac_add_options --disable-strip -ac_add_options --disable-static -ac_add_options --enable-shared -#ac_add_options --enable-tests - -#--disable-logging #--disable-logging Disable logging facilities - -ac_add_options --enable-nspr-threads diff --git a/www-client/mozilla_firefox/select-a-mozconfig/browser.mozconfig b/www-client/mozilla_firefox/select-a-mozconfig/browser.mozconfig deleted file mode 100644 index 1950001c5..000000000 --- a/www-client/mozilla_firefox/select-a-mozconfig/browser.mozconfig +++ /dev/null @@ -1,80 +0,0 @@ -# ------------------ -# Browser, Optimized -# ------------------ - -. $topsrcdir/browser/config/mozconfig -mk_add_options MOZ_CO_PROJECT=browser - -# Required to download the right version of the source code -mk_add_options MOZ_CO_TAG=MOZILLA_1_8_BRANCH - -export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot -mk_add_options CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot - -# ----------------------------------------------------- -# --- EDIT THESE VALUES TO REFLECT YOUR LOCAL BUILD --- -export GLIB_CONFIG=/boot/common/bin/glib-config -mk_add_options GLIB_CONFIG=/boot/common/bin/glib-config - -export LIBIDL_CONFIG=/boot/common/bin/libIDL-config -mk_add_options LIBIDL_CONFIG=/boot/common/bin/libIDL-config - -# --- Set the outputdir for the build --- -mk_add_options MOZ_OBJDIR=/moz_obj/browser - -# autoconf 2.13 was built by -#./configure --prefix=/boot/common/autoconf-2.13 --program-suffix=-2.13 --bindir=/boot/common/bin/ -# make && make install -export AUTOCONF='/boot/common/bin/autoconf-2.13 -m /boot/common/autoconf-2.13/share/autoconf' -# ----------------------------------------------------- - -# Automatic updates not currently supported on BeOS. Delete this when we add this feature. -ac_add_options --disable-updater - -# We don't have Java for BeOS yet. While this builds fine, it is not useful. -ac_add_options --disable-oji - -# Build without Cairo -ac_add_options --disable-svg -ac_add_options --disable-canvas - -# Utilize Haiku's default shared libraries -ac_add_options --with-system-jpeg -ac_add_options --with-system-png -ac_add_options --with-system-zlib - -ac_add_options --enable-nspr-threads - -# Reduce build size and time by omitting test suite and IPv6 support (not needed on BeOS) -ac_add_options --disable-tests -ac_add_options --disable-ipv6 - -# Required configure options -ac_add_options --enable-cpp-rtti - -# Eliminate lots of relatively useless warnings during build -ac_add_options --disable-cpp-exceptions - -# Optional optimizations -export BUILD_OPT=1 -mk_add_options BUILD_OPT=1 -ac_add_options --enable-static --disable-shared -ac_add_options --enable-strip -ac_add_options --enable-reorder -#ac_add_options --enable-js-static-build - -# ---------------------------------------------------------------------------- -# GCC Specific Optimiztions. -# ---------------------------- -# -# Uncomment the first line for GCC 2, the second line for GCC 4. -# -# --- GCC2 --- -ac_add_options '--enable-optimize=-O3 -march=pentium -mcpu=pentiumpro -fthread-jumps -fforce-addr -frerun-cse-after-loop -frerun-loop-opt -fexpensive-optimizations -malign-functions=4 -malign-jumps=4' -# -# --- GCC4 --- -#ac_add_options '--enable-optimize=-O1 -march=i586 -mtune=generic' -# -# ---------------------------------------------------------------------------- - - diff --git a/www-client/mozilla_firefox/select-a-mozconfig/calendar.mozconfig b/www-client/mozilla_firefox/select-a-mozconfig/calendar.mozconfig deleted file mode 100644 index c733a36c5..000000000 --- a/www-client/mozilla_firefox/select-a-mozconfig/calendar.mozconfig +++ /dev/null @@ -1,81 +0,0 @@ -# ------------------ -# Calendar, Optimized -# ------------------ - -. $topsrcdir/calendar/sunbird/config/mozconfig -mk_add_options MOZ_CO_PROJECT=calendar - -# Required to download the right version of the source code -mk_add_options MOZ_CO_TAG=MOZILLA_1_8_BRANCH - -export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot -mk_add_options CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot - -# ----------------------------------------------------- -# --- EDIT THESE VALUES TO REFLECT YOUR LOCAL BUILD --- -export GLIB_CONFIG=/boot/common/bin/glib-config -mk_add_options GLIB_CONFIG=/boot/common/bin/glib-config - -export LIBIDL_CONFIG=/boot/common/bin/libIDL-config -mk_add_options LIBIDL_CONFIG=/boot/common/bin/libIDL-config - -# --- Set the outputdir for the build --- -mk_add_options MOZ_OBJDIR=/moz_obj/calendar - -# autoconf 2.13 was built by -#./configure --prefix=/boot/common/autoconf-2.13 --program-suffix=-2.13 --bindir=/boot/common/bin/ -# make && make install -export AUTOCONF='/boot/common/bin/autoconf-2.13 -m /boot/common/autoconf-2.13/share/autoconf' -# ----------------------------------------------------- - -# Automatic updates not currently supported on BeOS. Delete this when we add this feature. -ac_add_options --disable-updater - -# We don't have Java for BeOS yet. While this builds fine, it is not useful. -ac_add_options --disable-oji - -# Build without Cairo -ac_add_options --disable-svg -ac_add_options --disable-canvas - -# Utilize Haiku's default shared libraries -ac_add_options --with-system-jpeg -ac_add_options --with-system-png -ac_add_options --with-system-zlib - -ac_add_options --enable-nspr-threads - -# Reduce build size and time by omitting test suite and IPv6 support (not needed on BeOS) -ac_add_options --disable-tests -ac_add_options --disable-ipv6 - -# Required configure options -ac_add_options --enable-cpp-rtti - -# Eliminate lots of relatively useless warnings during build -ac_add_options --disable-cpp-exceptions - -# Optional optimizations -export BUILD_OPT=1 -mk_add_options BUILD_OPT=1 -ac_add_options --enable-static --disable-shared -ac_add_options --enable-strip -ac_add_options --enable-reorder -#ac_add_options --enable-js-static-build - -# ---------------------------------------------------------------------------- -# GCC Specific Optimiztions. -# ---------------------------- -# -# Uncomment the first line for GCC 2, the second line for GCC 4. -# -# --- GCC2 --- -ac_add_options '--enable-optimize=-O3 -march=pentium -mcpu=pentiumpro -fthread-jumps -fforce-addr -frerun-cse-after-loop -frerun-loop-opt -fexpensive-optimizations -malign-functions=4 -malign-jumps=4' -# -# --- GCC4 --- -#aac_add_options '--enable-optimize=-O1 -march=i586 -mtune=generic' -# -# ---------------------------------------------------------------------------- - - - diff --git a/www-client/mozilla_firefox/select-a-mozconfig/mailnews.mozconfig b/www-client/mozilla_firefox/select-a-mozconfig/mailnews.mozconfig deleted file mode 100644 index 03fc3b54c..000000000 --- a/www-client/mozilla_firefox/select-a-mozconfig/mailnews.mozconfig +++ /dev/null @@ -1,81 +0,0 @@ -# ------------------ -# MailNews, Optimized -# ------------------ - -. $topsrcdir/mail/config/mozconfig -mk_add_options MOZ_CO_PROJECT=mail - -# Required to download the right version of the source code -mk_add_options MOZ_CO_TAG=MOZILLA_1_8_BRANCH - -export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot -mk_add_options CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot - -# ----------------------------------------------------- -# --- EDIT THESE VALUES TO REFLECT YOUR LOCAL BUILD --- -export GLIB_CONFIG=/boot/common/bin/glib-config -mk_add_options GLIB_CONFIG=/boot/common/bin/glib-config - -export LIBIDL_CONFIG=/boot/common/bin/libIDL-config -mk_add_options LIBIDL_CONFIG=/boot/common/bin/libIDL-config - -# --- Set the outputdir for the build --- -mk_add_options MOZ_OBJDIR=/moz_obj/mailnews - -# autoconf 2.13 was built by -#./configure --prefix=/boot/common/autoconf-2.13 --program-suffix=-2.13 --bindir=/boot/common/bin/ -# make && make install -export AUTOCONF='/boot/common/bin/autoconf-2.13 -m /boot/common/autoconf-2.13/share/autoconf' -# ----------------------------------------------------- - -# Automatic updates not currently supported on BeOS. Delete this when we add this feature. -ac_add_options --disable-updater - -# We don't have Java for BeOS yet. While this builds fine, it is not useful. -ac_add_options --disable-oji - -# Build without Cairo -ac_add_options --disable-svg -ac_add_options --disable-canvas - -# Utilize Haiku's default shared libraries -ac_add_options --with-system-jpeg -ac_add_options --with-system-png -ac_add_options --with-system-zlib - -ac_add_options --enable-nspr-threads - -# Reduce build size and time by omitting test suite and IPv6 support (not needed on BeOS) -ac_add_options --disable-tests -ac_add_options --disable-ipv6 - -# Required configure options -ac_add_options --enable-cpp-rtti - -# Eliminate lots of relatively useless warnings during build -ac_add_options --disable-cpp-exceptions - -# Optional optimizations -export BUILD_OPT=1 -mk_add_options BUILD_OPT=1 -ac_add_options --enable-static --disable-shared -ac_add_options --enable-strip -ac_add_options --enable-reorder -#ac_add_options --enable-js-static-build - -# ---------------------------------------------------------------------------- -# GCC Specific Optimiztions. -# ---------------------------- -# -# Uncomment the first line for GCC 2, the second line for GCC 4. -# -# --- GCC2 --- -ac_add_options '--enable-optimize=-O3 -march=pentium -mcpu=pentiumpro -fthread-jumps -fforce-addr -frerun-cse-after-loop -frerun-loop-opt -fexpensive-optimizations -malign-functions=4 -malign-jumps=4' -# -# --- GCC4 --- -#ac_add_options '--enable-optimize=-O1 -march=i586 -mtune=generic' -# -# ---------------------------------------------------------------------------- - - - diff --git a/www-client/mozilla_firefox/select-a-mozconfig/suite-debug.mozconfig b/www-client/mozilla_firefox/select-a-mozconfig/suite-debug.mozconfig deleted file mode 100644 index a88145d2d..000000000 --- a/www-client/mozilla_firefox/select-a-mozconfig/suite-debug.mozconfig +++ /dev/null @@ -1,70 +0,0 @@ -# ------------------ -# suite, DEBUG -# ------------------ - -### Tags for packaged-filename -export MOZ_PKG_SPECIAL=DEBUG -mk_add_options MOZ_PKG_SPECIAL=DEBUG - -mk_add_options MOZ_CO_PROJECT=suite -ac_add_options --enable-application=suite - -# Required to download the right version of the source code -mk_add_options MOZ_CO_TAG=MOZILLA_1_8_BRANCH - -export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot -mk_add_options CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot - -# ----------------------------------------------------- -# --- EDIT THESE VALUES TO REFLECT YOUR LOCAL BUILD --- -export GLIB_CONFIG=/boot/common/bin/glib-config -mk_add_options GLIB_CONFIG=/boot/common/bin/glib-config - -export LIBIDL_CONFIG=/boot/common/bin/libIDL-config -mk_add_options LIBIDL_CONFIG=/boot/common/bin/libIDL-config - -# --- Set the outputdir for the build --- -mk_add_options MOZ_OBJDIR=/moz_obj/debug-suite - -# autoconf 2.13 was built by -#./configure --prefix=/boot/common/autoconf-2.13 --program-suffix=-2.13 --bindir=/boot/common/bin/ -# make && make install -export AUTOCONF='/boot/common/bin/autoconf-2.13 -m /boot/common/autoconf-2.13/share/autoconf' -# ----------------------------------------------------- - -# Automatic updates not currently supported on BeOS. Delete this when we add this feature. -ac_add_options --disable-updater - -# We don't have Java for BeOS yet. While this builds fine, it is not useful. -ac_add_options --disable-oji - -# Build without Cairo -ac_add_options --disable-svg -ac_add_options --disable-canvas - -# Utilize Haiku's default shared libraries -ac_add_options --with-system-jpeg -ac_add_options --with-system-png -ac_add_options --with-system-zlib - -# Reduce build size and time by omitting IPv6 support (not needed on BeOS) -ac_add_options --disable-ipv6 - -# Required configure options -ac_add_options --enable-cpp-rtti - -# Eliminate lots of relatively useless warnings during build -ac_add_options --disable-cpp-exceptions - -# Optional optimizations -ac_add_options --enable-debug -ac_add_options --disable-optimize -ac_add_options --disable-reorder -ac_add_options --disable-strip -ac_add_options --disable-static -ac_add_options --enable-shared -#ac_add_options --enable-tests - -#--disable-logging #--disable-logging Disable logging facilities - -ac_add_options --enable-nspr-threads diff --git a/www-client/mozilla_firefox/select-a-mozconfig/suite-just-browser.mozconfig b/www-client/mozilla_firefox/select-a-mozconfig/suite-just-browser.mozconfig deleted file mode 100644 index 96059216a..000000000 --- a/www-client/mozilla_firefox/select-a-mozconfig/suite-just-browser.mozconfig +++ /dev/null @@ -1,89 +0,0 @@ -# ------------------ -# Suite Just Browser, Optimized -# ------------------ - -mk_add_options MOZ_CO_PROJECT=suite -ac_add_options --enable-application=suite - -export MOZ_PKG_SPECIAL=JustBrowser -mk_add_options MOZ_PKG_SPECIAL=JustBrowser - -# Required to download the right version of the source code -mk_add_options MOZ_CO_TAG=MOZILLA_1_8_BRANCH - -export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot -mk_add_options CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot - -# ----------------------------------------------------- -# --- EDIT THESE VALUES TO REFLECT YOUR LOCAL BUILD --- -export GLIB_CONFIG=/boot/common/bin/glib-config -mk_add_options GLIB_CONFIG=/boot/common/bin/glib-config - -export LIBIDL_CONFIG=/boot/common/bin/libIDL-config -mk_add_options LIBIDL_CONFIG=/boot/common/bin/libIDL-config - -# --- Set the outputdir for the build --- -mk_add_options MOZ_OBJDIR=/moz_obj/suite-JustBrowser - -# autoconf 2.13 was built by -#./configure --prefix=/boot/common/autoconf-2.13 --program-suffix=-2.13 --bindir=/boot/common/bin/ -# make && make install -export AUTOCONF='/boot/common/bin/autoconf-2.13 -m /boot/common/autoconf-2.13/share/autoconf' -# ----------------------------------------------------- - -# Options for JustBrowser -ac_add_options --disable-mailnews -ac_add_options --disable-composer -#ac_add_options --enable-plaintext-editor-only -#ac_add_options --disable-irc - -# Automatic updates not currently supported on BeOS. Delete this when we add this feature. -ac_add_options --disable-updater - -# We don't have Java for BeOS yet. While this builds fine, it is not useful. -ac_add_options --disable-oji - -# Build without Cairo -ac_add_options --disable-svg -ac_add_options --disable-canvas - -# Utilize Haiku's default shared libraries -ac_add_options --with-system-jpeg -ac_add_options --with-system-png -ac_add_options --with-system-zlib - -ac_add_options --enable-nspr-threads - -# Reduce build size and time by omitting test suite and IPv6 support (not needed on BeOS) -ac_add_options --disable-tests -ac_add_options --disable-ipv6 - -# Required configure options -ac_add_options --enable-cpp-rtti - -# Eliminate lots of relatively useless warnings during build -ac_add_options --disable-cpp-exceptions - -# Optional optimizations -export BUILD_OPT=1 -mk_add_options BUILD_OPT=1 -ac_add_options --enable-static --disable-shared -ac_add_options --enable-strip -ac_add_options --enable-reorder -#ac_add_options --enable-js-static-build - -# ---------------------------------------------------------------------------- -# GCC Specific Optimiztions. -# ---------------------------- -# -# Uncomment the first line for GCC 2, the second line for GCC 4. -# -# --- GCC2 --- -ac_add_options '--enable-optimize=-O3 -march=pentium -mcpu=pentiumpro -fthread-jumps -fforce-addr -frerun-cse-after-loop -frerun-loop-opt -fexpensive-optimizations -malign-functions=4 -malign-jumps=4' -# -# --- GCC4 --- -#ac_add_options '--enable-optimize=-O1 -march=i586 -mtune=generic' -# -# ---------------------------------------------------------------------------- - - diff --git a/www-client/mozilla_firefox/select-a-mozconfig/suite.mozconfig b/www-client/mozilla_firefox/select-a-mozconfig/suite.mozconfig deleted file mode 100644 index f2e2fbbec..000000000 --- a/www-client/mozilla_firefox/select-a-mozconfig/suite.mozconfig +++ /dev/null @@ -1,80 +0,0 @@ -# ------------------ -# Suite, Optimized -# ------------------ - -mk_add_options MOZ_CO_PROJECT=suite -ac_add_options --enable-application=suite - -# Required to download the right version of the source code -mk_add_options MOZ_CO_TAG=MOZILLA_1_8_BRANCH - -export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot -mk_add_options CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot - -# ----------------------------------------------------- -# --- EDIT THESE VALUES TO REFLECT YOUR LOCAL BUILD --- -export GLIB_CONFIG=/boot/common/bin/glib-config -mk_add_options GLIB_CONFIG=/boot/common/bin/glib-config - -export LIBIDL_CONFIG=/boot/common/bin/libIDL-config -mk_add_options LIBIDL_CONFIG=/boot/common/bin/libIDL-config - -# --- Set the outputdir for the build --- -mk_add_options MOZ_OBJDIR=/moz_obj/suite - -# autoconf 2.13 was built by -#./configure --prefix=/boot/common/autoconf-2.13 --program-suffix=-2.13 --bindir=/boot/common/bin/ -# make && make install -export AUTOCONF='/boot/common/bin/autoconf-2.13 -m /boot/common/autoconf-2.13/share/autoconf' -# ----------------------------------------------------- - -# Automatic updates not currently supported on BeOS. Delete this when we add this feature. -ac_add_options --disable-updater - -# We don't have Java for BeOS yet. While this builds fine, it is not useful. -ac_add_options --disable-oji - -# Build without Cairo -ac_add_options --disable-svg -ac_add_options --disable-canvas - -# Utilize Haiku's default shared libraries -ac_add_options --with-system-jpeg -ac_add_options --with-system-png -ac_add_options --with-system-zlib - -ac_add_options --enable-nspr-threads - -# Reduce build size and time by omitting test suite and IPv6 support (not needed on BeOS) -ac_add_options --disable-tests -ac_add_options --disable-ipv6 - -# Required configure options -ac_add_options --enable-cpp-rtti - -# Eliminate lots of relatively useless warnings during build -ac_add_options --disable-cpp-exceptions - -# Optional optimizations -export BUILD_OPT=1 -mk_add_options BUILD_OPT=1 -ac_add_options --enable-static --disable-shared -ac_add_options --enable-strip -ac_add_options --enable-reorder -#ac_add_options --enable-js-static-build - -# ---------------------------------------------------------------------------- -# GCC Specific Optimiztions. -# ---------------------------- -# -# Uncomment the first line for GCC 2, the second line for GCC 4. -# -# --- GCC2 --- -ac_add_options '--enable-optimize=-O3 -march=pentium -mcpu=pentiumpro -fthread-jumps -fforce-addr -frerun-cse-after-loop -frerun-loop-opt -fexpensive-optimizations -malign-functions=4 -malign-jumps=4' -# --- GCC4 --- -#ac_add_options '--enable-optimize=-O1 -march=i586 -mtune=generic' -# -# ---------------------------------------------------------------------------- - - - diff --git a/www-client/netsurf/netsurf-10380.recipe b/www-client/netsurf/netsurf-10380.recipe deleted file mode 100644 index 1d850b1a9..000000000 --- a/www-client/netsurf/netsurf-10380.recipe +++ /dev/null @@ -1,40 +0,0 @@ -DESCRIPTION="NetSurf is a multi-platform web browser" -HOMEPAGE="http://www.netsurf-browser.org/" -SRC_URI="svn://svn.netsurf-browser.org/trunk#10380" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="dev-util/pkgconfig >= 0.23 - dev-util/gperf >= 3.0.4 - media-libs/libpng >= 1.4.1" -#CHECKSUM_MD5="f73fdd2a9e29cf7200bdc521590d4592" -BUILD() -{ - export GCCVER=2 - cp ../scanner.c netsurf-10380/netsurf/css/scanner.c - cd netsurf-10380 - touch -t 201801010000 netsurf/css/scanner.c - export GCCVER=2 - cd libparserutils - echo "CFLAGS += -DWITH_ICONV_FILTER" > build/Makefile.config.override - make - make install - cd .. - cd libwapcaplet - make - make install - cd .. - cd libcss - make - make install - cd .. - make beos -} - -INSTALL() -{ - cd netsurf-10380 - make install -} -LICENSE="MIT - GNU GPL v2" -COPYRIGHT="2003 - 2009 The NetSurf Developers" diff --git a/www-client/netsurf/netsurf-2.1.recipe b/www-client/netsurf/netsurf-2.1.recipe deleted file mode 100644 index 9005480f2..000000000 --- a/www-client/netsurf/netsurf-2.1.recipe +++ /dev/null @@ -1,56 +0,0 @@ -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.1-src.tar.gz" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -CHECKSUM_MD5="f0a34fd076b492c1a13b45432e8d7e49" -BUILD() -{ - cd netsurf - 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 - svn co svn://svn.netsurf-browser.org/trunk/libcss - svn co svn://svn.netsurf-browser.org/trunk/libnsgif - svn co svn://svn.netsurf-browser.org/trunk/libnsbmp - svn co svn://svn.netsurf-browser.org/trunk/librosprite - svn co svn://svn.netsurf-browser.org/trunk/libsvgtiny - 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 ../librosprite - make - make install PREFIX=`finddir B_COMMON_DIRECTORY` - cd ../libsvgtiny - make - make install PREFIX=`finddir B_COMMON_DIRECTORY` - cd .. - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd netsurf - make install -} -LICENSE="MIT - GNU GPL v2" -COPYRIGHT="2003 - 2009 The NetSurf Developers" diff --git a/www-client/netsurf/netsurf-2.6.recipe b/www-client/netsurf/netsurf-2.6.recipe deleted file mode 100644 index a4d406fc4..000000000 --- a/www-client/netsurf/netsurf-2.6.recipe +++ /dev/null @@ -1,56 +0,0 @@ -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.6-src.tar.gz" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -CHECKSUM_MD5="8653789d2ede6dbbfe79882afc7538fc" -BUILD() -{ - cd netsurf - 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 - svn co svn://svn.netsurf-browser.org/trunk/libcss - svn co svn://svn.netsurf-browser.org/trunk/libnsgif - svn co svn://svn.netsurf-browser.org/trunk/libnsbmp - svn co svn://svn.netsurf-browser.org/trunk/librosprite - svn co svn://svn.netsurf-browser.org/trunk/libsvgtiny - 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 -# patch -p0 -ui ../../../patches/librosprite.patch - make - make install PREFIX=`finddir B_COMMON_DIRECTORY` - cd .. - make beos -} - -INSTALL() -{ - cd netsurf - make install -} -LICENSE="MIT - GNU GPL v2" -COPYRIGHT="2003 - 2009 The NetSurf Developers" diff --git a/www-client/netsurf/netsurf-2.7.recipe b/www-client/netsurf/netsurf-2.7.recipe deleted file mode 100644 index 12ac7f385..000000000 --- a/www-client/netsurf/netsurf-2.7.recipe +++ /dev/null @@ -1,61 +0,0 @@ -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.7_svn.recipe b/www-client/netsurf/netsurf-2.7_svn.recipe deleted file mode 100644 index 9b8719291..000000000 --- a/www-client/netsurf/netsurf-2.7_svn.recipe +++ /dev/null @@ -1,60 +0,0 @@ -DESCRIPTION="NetSurf is a multi-platform web browser" -HOMEPAGE="http://www.netsurf-browser.org/" -SRC_URI="svn+svn://svn.netsurf-browser.org/trunk/netsurf" -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" -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 - svn co svn://svn.netsurf-browser.org/trunk/libcss - svn co svn://svn.netsurf-browser.org/trunk/libnsgif - svn co svn://svn.netsurf-browser.org/trunk/libnsbmp - svn co svn://svn.netsurf-browser.org/trunk/librosprite - svn co svn://svn.netsurf-browser.org/trunk/libsvgtiny - 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-2.7-svn - make install -} -LICENSE="MIT - GNU GPL v2" -COPYRIGHT="2003-2011 The NetSurf Developers" diff --git a/www-client/netsurf/netsurf-2.9.recipe b/www-client/netsurf/netsurf-2.9.recipe deleted file mode 100644 index 4d6d9ed8e..000000000 --- a/www-client/netsurf/netsurf-2.9.recipe +++ /dev/null @@ -1,30 +0,0 @@ -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.recipe b/www-client/netsurf/netsurf-2.HEAD.recipe deleted file mode 100644 index fc3f5ef8c..000000000 --- a/www-client/netsurf/netsurf-2.HEAD.recipe +++ /dev/null @@ -1,36 +0,0 @@ -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-3.1_HEAD.recipe b/www-client/netsurf/netsurf-3.1git.recipe similarity index 96% rename from www-client/netsurf/netsurf-3.1_HEAD.recipe rename to www-client/netsurf/netsurf-3.1git.recipe index 9bfd94afd..45bbaa837 100644 --- a/www-client/netsurf/netsurf-3.1_HEAD.recipe +++ b/www-client/netsurf/netsurf-3.1git.recipe @@ -17,12 +17,14 @@ DEPEND="media-libs/libmng > 1.0.10 dev-perl/HTML-Entities >= 3.70 " -BUILD { +BUILD() +{ cd netsurf-3.1-HEAD make } -INSTALL { +INSTALL() +{ cd netsurf-3.1-HEAD make install } diff --git a/www-client/netsurf/netsurf-9799.recipe b/www-client/netsurf/netsurf-9799.recipe deleted file mode 100644 index b988044f0..000000000 --- a/www-client/netsurf/netsurf-9799.recipe +++ /dev/null @@ -1,57 +0,0 @@ -DESCRIPTION="NetSurf is a multi-platform web browser" -HOMEPAGE="http://www.netsurf-browser.org/" -SRC_URI="http://www.netsurf-browser.org/downloads/development/netsurf-r9799.tar.gz" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="dev-util/pkgconfig >= 0.23 - dev-util/gperf >= 3.0.4 - media-libs/libpng >= 1.4.1" -CHECKSUM_MD5="f73fdd2a9e29cf7200bdc521590d4592" -BUILD() -{ - cd netsurf - 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 - svn co svn://svn.netsurf-browser.org/trunk/libcss - svn co svn://svn.netsurf-browser.org/trunk/libnsgif - svn co svn://svn.netsurf-browser.org/trunk/libnsbmp - svn co svn://svn.netsurf-browser.org/trunk/librosprite - svn co svn://svn.netsurf-browser.org/trunk/libsvgtiny - 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 ../librosprite -# make -# make install PREFIX=`finddir B_COMMON_DIRECTORY` - cd ../libsvgtiny - make - make install PREFIX=`finddir B_COMMON_DIRECTORY` - cd .. - make -} - -INSTALL() -{ - cd netsurf - make install -} -LICENSE="MIT - GNU GPL v2" -COPYRIGHT="2003 - 2009 The NetSurf Developers" diff --git a/www-client/netsurf/netsurf-9872.recipe b/www-client/netsurf/netsurf-9872.recipe deleted file mode 100644 index e7f033c11..000000000 --- a/www-client/netsurf/netsurf-9872.recipe +++ /dev/null @@ -1,40 +0,0 @@ -DESCRIPTION="NetSurf is a multi-platform web browser" -HOMEPAGE="http://www.netsurf-browser.org/" -SRC_URI="svn://svn.netsurf-browser.org/trunk#9872" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="dev-util/pkgconfig >= 0.23 - dev-util/gperf >= 3.0.4 - media-libs/libpng >= 1.4.1" -#CHECKSUM_MD5="f73fdd2a9e29cf7200bdc521590d4592" -BUILD() -{ - export GCCVER=2 - cp ../scanner.c netsurf-9872/netsurf/css/scanner.c - cd netsurf-9872 - touch -t 201801010000 netsurf/css/scanner.c - export GCCVER=2 - cd libparserutils - echo "CFLAGS += -DWITH_ICONV_FILTER" > build/Makefile.config.override - make - make install - cd .. - cd libwapcaplet - make - make install - cd .. - cd libcss - make - make install - cd .. - make beos -} - -INSTALL() -{ - cd netsurf-9872 - make install -} -LICENSE="MIT - GNU GPL v2" -COPYRIGHT="2003 - 2009 The NetSurf Developers" diff --git a/www-client/netsurf/patches/netsurf-2.7.patch b/www-client/netsurf/patches/netsurf-2.7.patch deleted file mode 100644 index a7e08f8cc..000000000 --- a/www-client/netsurf/patches/netsurf-2.7.patch +++ /dev/null @@ -1,18 +0,0 @@ -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 deleted file mode 100644 index ff7b69f98..000000000 --- a/www-client/netsurf/patches/netsurf-2.9.patch +++ /dev/null @@ -1,77 +0,0 @@ -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 deleted file mode 100644 index 606e567c4..000000000 --- a/www-client/netsurf/patches/netsurf-2.HEAD.patch +++ /dev/null @@ -1,272 +0,0 @@ -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/qupzilla/patches/qupzilla-1.4.x.patchset b/www-client/qupzilla/patches/qupzilla-1.4.x.patchset new file mode 100644 index 000000000..9b9b2c806 --- /dev/null +++ b/www-client/qupzilla/patches/qupzilla-1.4.x.patchset @@ -0,0 +1,119 @@ +From 49c386fa4bd03dfe7e102c1d0635743d966b75b7 Mon Sep 17 00:00:00 2001 +From: "Arfonzo J. Coward" +Date: Thu, 5 Dec 2013 00:04:04 +0000 +Subject: QupZilla sources and build definitions modified for Haiku. + + +diff --git a/src/defines.pri b/src/defines.pri +index 18a234a..7c33ba5 100644 +--- a/src/defines.pri ++++ b/src/defines.pri +@@ -19,6 +19,13 @@ win32-msvc* { + LIBS += User32.lib Ole32.lib Shell32.lib ShlWapi.lib Gdi32.lib ComCtl32.lib + } + ++#DEFINES *= QUPZILLA_PREFIX="`finddir B_USER_APPS_DIRECTORY`/QupZilla/" ++DEFINES *= QUPZILLA_PREFIX="/boot/home/config/apps/QupZilla/" ++DEFINES *= DISABLE_DBUS ++DEFINES *= NO_SYSTEM_DATAPATH ++DEFINES *= NO_X11 ++ ++ + # Check for pkg-config availability + !mac:unix:system(pkg-config --version > /dev/null) { + isEqual(QT_MAJOR_VERSION, 5) { +diff --git a/src/lib/3rdparty/processinfo.cpp b/src/lib/3rdparty/processinfo.cpp +index 6131d62..ba96c63 100644 +--- a/src/lib/3rdparty/processinfo.cpp ++++ b/src/lib/3rdparty/processinfo.cpp +@@ -30,6 +30,10 @@ + #include + #endif + ++#ifdef __HAIKU__ ++#define DT_DIR 4 ++#endif ++ + ProcessInfo::ProcessInfo(const QString &name) + : m_name(name) + { +@@ -75,7 +79,8 @@ pid_t ProcessInfo::GetPIDbyName(const char* cchrptr_ProcessName) const + } + + // Loop while not NULL +- while ((de_DirEntity = readdir(dir_proc))) { ++ while ((de_DirEntity = readdir(dir_proc))) { ++#ifndef __HAIKU__ + if (de_DirEntity->d_type == DT_DIR) { + if (IsNumeric(de_DirEntity->d_name)) { + strcpy(chrarry_CommandLinePath, "/proc/") ; +@@ -104,6 +109,7 @@ pid_t ProcessInfo::GetPIDbyName(const char* cchrptr_ProcessName) const + } + } + } ++#endif + } + + closedir(dir_proc) ; +diff --git a/src/main/main.cpp b/src/main/main.cpp +index e6a56ea..e4ac880 100644 +--- a/src/main/main.cpp ++++ b/src/main/main.cpp +@@ -20,10 +20,12 @@ + + #include // For QT_REQUIRE_VERSION + +-#if defined(Q_OS_LINUX) || defined(__GLIBC__) ++#if defined(Q_OS_LINUX) || defined(__GLIBC__) || defined(__HAIKU__) + #include + #include ++#ifndef __HAIKU__ + #include ++#endif + + #include "qupzilla.h" + +@@ -56,6 +58,7 @@ void qupzilla_signal_handler(int s) + } + sigSegvServed = true; + ++#ifndef __HAIKU__ + std::cout << "QupZilla: Crashed :( Saving backtrace in " << qPrintable(mApp->PROFILEDIR) << "crashlog ..." << std::endl; + + void* array[100]; +@@ -105,6 +108,9 @@ void qupzilla_signal_handler(int s) + file.close(); + + std::cout << "Backtrace successfuly saved in " << qPrintable(dir.absoluteFilePath(file.fileName())) << std::endl; ++#else ++ std::cout << "QupZilla: Crashed :(" << std::endl; ++#endif + } + + default: +-- +1.8.3.4 + + +From 002f7d5e1da83f0e0db8129ae05ebf805abec4fe Mon Sep 17 00:00:00 2001 +From: "Arfonzo J. Coward" +Date: Thu, 5 Dec 2013 08:00:47 +0000 +Subject: Remove QUPZILLA_PREFIX definition. We set thisbuild time instead. + + +diff --git a/src/defines.pri b/src/defines.pri +index 7c33ba5..96093af 100644 +--- a/src/defines.pri ++++ b/src/defines.pri +@@ -19,8 +19,6 @@ win32-msvc* { + LIBS += User32.lib Ole32.lib Shell32.lib ShlWapi.lib Gdi32.lib ComCtl32.lib + } + +-#DEFINES *= QUPZILLA_PREFIX="`finddir B_USER_APPS_DIRECTORY`/QupZilla/" +-DEFINES *= QUPZILLA_PREFIX="/boot/home/config/apps/QupZilla/" + DEFINES *= DISABLE_DBUS + DEFINES *= NO_SYSTEM_DATAPATH + DEFINES *= NO_X11 +-- +1.8.3.4 + diff --git a/www-client/qupzilla/qupzilla-1.4.x.recipe b/www-client/qupzilla/qupzilla-1.4.x.recipe new file mode 100644 index 000000000..dd80ab1e2 --- /dev/null +++ b/www-client/qupzilla/qupzilla-1.4.x.recipe @@ -0,0 +1,77 @@ +SUMMARY="A lightweight Qt WebKit web browser." +DESCRIPTION=" +QupZilla is a lightweight multiplatform web browser based on libqtwebkit. +It provides: +- A unified interface for bookmarks, history and RSS reading. +- A themeable interface. +- Integrated AdBlock. +- Speed Dial. +- Multiplatform support. +" +HOMEPAGE="http://www.qupzilla.com" + +SRC_URI="git://github.com/QupZilla/qupzilla.git#4f3aba95ff4194c9b756d196f54d50ff30161f46" + +REVISION="1" +LICENSE="GNU GPL v3" +COPYRIGHT="2010-2013 David Rosca" + +ARCHITECTURES="x86" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + qupzilla${secondaryArchSuffix} = $portVersion + app:qupzilla${secondaryArchSuffix} = $portVersion + " + +# TODO: update requirements to be more specific about which Qt +# libraries are required. +REQUIRES=" + haiku${secondaryArchSuffix} >= $haikuVersion + qtcore${secondaryArchSuffix} >= 4.8.0 + " + +BUILD_PREREQUIRES=" + cmd:qmake${secondaryArchSuffix} + cmd:make + cmd:g++${secondaryArchSuffix} + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + openssl${secondaryArchSuffix}_devel + qtcore${secondaryArchSuffix} >= 4.8.0 + qtcore${secondaryArchSuffix}_devel >= 4.8.0 + " + +PATCHES=" + qupzilla-1.4.x.patchset + " + +BUILD() +{ + qmake QUPZILLA_PREFIX=${appsDir}/QupZilla + make $jobArgs +} + +INSTALL() +{ + echo "Installing QupZilla..." + + mkdir -p ${appsDir}/QupZilla/ + mkdir -p ${appsDir}/QupZilla/lib/ + + cd bin/ + + cp qupzilla ${appsDir}/QupZilla/ + cp -R locale ${appsDir}/QupZilla/ + cp -R plugins ${appsDir}/QupZilla/ + cp -R themes ${appsDir}/QupZilla/ + cp libQupZilla.* ${appsDir}/QupZilla/lib/ + + echo "Linking QupZilla..." + addAppDeskbarSymlink ${appsDir}/QupZilla/qupzilla "QupZilla" +} diff --git a/www-client/w3m/w3m-0.5.3.recipe b/www-client/w3m/w3m-0.5.3.recipe index 543e20f1c..a403eeda1 100644 --- a/www-client/w3m/w3m-0.5.3.recipe +++ b/www-client/w3m/w3m-0.5.3.recipe @@ -1,20 +1,19 @@ SUMMARY="Text based WWW browser, supports tables and frames" DESCRIPTION=" -w3m is a text-based web browser as well as a pager like 'more' or -'less'. With w3m you can browse web pages through a terminal emulator -window (xterm, rxvt or something like that). Moreover, w3m can be -used as a text formatting tool which typesets HTML into plain text." - +w3m is a text-based web browser as well as a pager like 'more' or 'less'. With \ +w3m you can browse web pages through a terminal emulator window (xterm, rxvt \ +or something like that). Moreover, w3m can be used as a text formatting tool \ +which typesets HTML into plain text. +" HOMEPAGE="http://w3m.sourceforge.net/" SRC_URI="http://sourceforge.net/projects/w3m/files/w3m/w3m-0.5.3/w3m-0.5.3.tar.gz" -REVISION="1" +CHECKSUM_SHA256="e994d263f2fd2c22febfbe45103526e00145a7674a0fda79c822b97c2770a9e3" +REVISION="2" ARCHITECTURES="x86 x86_gcc2" -CHECKSUM_MD5="1b845a983a50b8dec0169ac48479eacc" LICENSE="W3M" COPYRIGHT="1994-2011 Akinori ITO 2002-2011 Hironori SAKAMOTO 2002-2011 Fumitoshi UKAI" -SOURCE_DIR="$portVersionedName" PATCHES="w3m-0.5.3.patch" @@ -55,7 +54,7 @@ BUILD() libtoolize -fci autoconf runConfigure ./configure \ - --with-editor=${packageLinksDir}/cmd~nano/bin/nano \ + --with-editor=${portPackageLinksDir}/cmd~nano/bin/nano \ --with-browser=open make } diff --git a/www-servers/cherokee/cherokee-1.2.101.recipe b/www-servers/cherokee/cherokee-1.2.101.recipe index 82a05810a..bd2c983f9 100644 --- a/www-servers/cherokee/cherokee-1.2.101.recipe +++ b/www-servers/cherokee/cherokee-1.2.101.recipe @@ -1,4 +1,7 @@ -DESCRIPTION="Cherokee is an innovative, feature rich, and yet easy to configure open source web server" +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" diff --git a/www-servers/haproxy/haproxy-1.4.22.recipe b/www-servers/haproxy/haproxy-1.4.22.recipe index 854d047dc..c498e4038 100644 --- a/www-servers/haproxy/haproxy-1.4.22.recipe +++ b/www-servers/haproxy/haproxy-1.4.22.recipe @@ -1,24 +1,51 @@ -DESCRIPTION="Reliable, high performace TCP/HTTP load balancer" +SUMMARY="Reliable, high performace TCP/HTTP load balancer" +DESCRIPTION=" +HAProxy is a free, very fast and reliable solution offering high availability, \ +load balancing, and proxying for TCP and HTTP-based applications. It is \ +particularly suited for web sites crawling under very high loads while needing \ +persistence or Layer7 processing. +" 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" +CHECKSUM_SHA256="ba221b3eaa4d71233230b156c3000f5c2bd4dace94d9266235517fe42f917fc6" REVISION="1" + +LICENSE="GNU GPL v2" +COPYRIGHT="2012 Willy Tarreau" + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + haproxy = $portVersion + cmd:haproxy = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:make + cmd:gcc + " +PATCHES="haproxy-1.4.22.patch" + + 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` + make TARGET=haiku PREFIX="$prefix" } 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` -} + mkdir -p "${sbinDir}" + mkdir -p "${manDir}" + mkdir -p "${docDir}" + -LICENSE="GNU GPL v2" -COPYRIGHT="2012 Willy Tarreau" \ No newline at end of file + make install DESTDIR="" \ + PREFIX="$prefix"\ + SBINDIR="${sbinDir}" \ + MANDIR="${manDir}" \ + DOCDIR="${docDir}" +} diff --git a/x11-libs/agg/agg-2.5.recipe b/x11-libs/agg/agg-2.5.recipe index e5d686489..980c729a8 100644 --- a/x11-libs/agg/agg-2.5.recipe +++ b/x11-libs/agg/agg-2.5.recipe @@ -1,27 +1,105 @@ -DESCRIPTION="Anti-Grain Geometry (AGG) is an Open Source, free of charge graphic library, written in industrially standard C++." -HOMEPAGE="http://antigrain.com" -SRC_URI="http://www.antigrain.com/agg-2.5.tar.gz" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -CHECKSUM_MD5="0229a488bc47be10a2fee6cf0b2febd6" +SUMMARY="Anti-Grain Geometry (AGG)" +DESCRIPTION=" +Anti-Grain Geometry (AGG) is an Open Source, free of charge graphic library, \ +written in industrially standard C++. +" +HOMEPAGE="http://en.wikipedia.org/wiki/Anti-Grain_Geometry" +SRC_URI="http://gnashdev.org/tools/ltib/agg-2.5.tar.gz" +CHECKSUM_SHA256="ab1edc54cc32ba51a62ff120d501eecd55fceeedf869b9354e7e13812289911f" +REVISION="2" +LICENSE="GNU GPL v2" +COPYRIGHT="2002-2006 Maxim Shemanarev" + +ARCHITECTURES="!x86_gcc2 !x86" +SECONDARY_ARCHITECTURES="!x86_gcc2 !x86" + +PROVIDES=" + agg$secondaryArchSuffix = $portVersion + lib:libagg$secondaryArchSuffix = 2.0.4 compat >= 2 + lib:libaggfontfreetype$secondaryArchSuffix = 2.0.4 compat >= 2 + lib:libagggpc$secondaryArchSuffix = 2.0.4 compat >= 2 + lib:libaggplatformHaiku$secondaryArchSuffix = 2.0.4 compat >= 2 +" +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libz$secondaryArchSuffix + lib:libbz2$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + lib:libfreetype$secondaryArchSuffix +" +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libsdl_1.2$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:libbz2$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + devel:libfreetype$secondaryArchSuffix +" +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:make + cmd:autoconf + cmd:autoheader + cmd:automake + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:sed + cmd:pkg_config$secondaryArchSuffix +" +PATCHES="agg-2.5.patchset" + BUILD() { - cd agg-2.5 - libtoolize --force --copy --install + if [ -d src/platform/BeOS ]; then + mv src/platform/BeOS src/platform/Haiku + fi aclocal autoheader autoconf + libtoolize --force automake --foreign --add-missing --ignore-deps - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make + runConfigure ./configure \ + --enable-ctrl \ + --enable-gpc \ + --enable-platform \ + --enable-examples + make $jobArgs } INSTALL() { - cd agg-2.5 - make install DESTDIR=${DESTDIR} + make install + + prepareInstalledDevelLibs libagg libagggpc libaggfontfreetype \ + libaggplatformHaiku libaggplatformsdl + fixPkgconfig + # fix include path in pkgconfig + sed -i -e 's#^includedir=\(.*\)#includedir=\1/agg2#g' \ + $developLibDir/pkgconfig/libagg.pc + + packageEntries devel $developDir $dataRootDir/aclocal + packageEntries sdl $libDir/libaggplatformsdl* } -LICENSE="GNU GPL v2" -COPYRIGHT="2002-2006 Maxim Shemanarev" +PROVIDES_devel=" + agg${secondaryArchSuffix}_devel = $portVersion + devel:libagg$secondaryArchSuffix = 2.0.4 compat >= 2 + devel:libaggfontfreetype$secondaryArchSuffix = 2.0.4 compat >= 2 + devel:libagggpc$secondaryArchSuffix = 2.0.4 compat >= 2 + devel:libaggplatformHaiku$secondaryArchSuffix = 2.0.4 compat >= 2 + devel:libaggplatformsdl$secondaryArchSuffix = 2.0.4 compat >= 2 +" +REQUIRES_devel=" + agg$secondaryArchSuffix == $portVersion base +" + +PROVIDES_sdl=" + agg${secondaryArchSuffix}_sdl = $portVersion + lib:libaggplatformsdl$secondaryArchSuffix = 2.0.4 compat >= 2 +" +REQUIRES_sdl=" + agg$secondaryArchSuffix == $portVersion base + haiku$secondaryArchSuffix >= $haikuVersion + lib:libsdl_1.2$secondaryArchSuffix + lib:libGL$secondaryArchSuffix +" diff --git a/x11-libs/agg/patches/agg-2.5.patch b/x11-libs/agg/patches/agg-2.5.patch deleted file mode 100644 index d70c11bb4..000000000 --- a/x11-libs/agg/patches/agg-2.5.patch +++ /dev/null @@ -1,9 +0,0 @@ -diff -urN agg-2.5/Makefile.am agg-2.5-haiku/Makefile.am ---- agg-2.5/Makefile.am 2006-10-09 04:06:36.031719424 +0000 -+++ agg-2.5-haiku/Makefile.am 2011-01-05 16:03:11.000000000 +0000 -@@ -1,4 +1,4 @@ --SUBDIRS = gpc src font_freetype font_win32_tt include examples -+SUBDIRS = gpc src font_freetype font_win32_tt include - - pkgconfigdir = $(libdir)/pkgconfig - pkgconfig_DATA = libagg.pc diff --git a/x11-libs/agg/patches/agg-2.5.patchset b/x11-libs/agg/patches/agg-2.5.patchset new file mode 100644 index 000000000..23cf3ceda --- /dev/null +++ b/x11-libs/agg/patches/agg-2.5.patchset @@ -0,0 +1,239 @@ +From 7a5199ab842d8aa425590ffc5419ad3015abbc10 Mon Sep 17 00:00:00 2001 +From: Kacper Kasper +Date: Thu, 24 Apr 2014 20:00:29 +0000 +Subject: Haiku support + + +diff --git a/configure.in b/configure.in +index fceca82..d06dc7f 100644 +--- a/configure.in ++++ b/configure.in +@@ -8,7 +8,7 @@ dnl Checks for programs. + AC_PROG_CC + AC_PROG_CXX + AC_ISC_POSIX +-AM_C_PROTOTYPES ++ + if test "x$U" != "x"; then + AC_MSG_ERROR(Compiler not ANSI compliant) + fi +@@ -58,9 +58,18 @@ dnl #### Check if we are compiling for win32 ##### + AC_SUBST(WINDOWS_LIBS) + PREFERED_PLATFORM=win32 + ;; ++ *haiku*) ++ haiku_host=yes ++ HAIKU_LIBS="-lbe -ltranslation" ++ HAIKU_CFLAGS= ++ AC_SUBST(HAIKU_CFLAGS) ++ AC_SUBST(HAIKU_LIBS) ++ PREFERED_PLATFORM=Haiku ++ ;; + esac + AM_CONDITIONAL(ENABLE_WIN32,[test x$win32_host = xyes -a x$enable_platform != xno ]) + AM_CONDITIONAL(ENABLE_OSX,[test x$osx_host = xyes -a x$enable_platform != xno ]) ++AM_CONDITIONAL(ENABLE_HAIKU,[test x$haiku_host = xyes -a x$enable_platform != xno ]) + dnl then enable font_win32tt + AC_ARG_ENABLE(win32tt, + AC_HELP_STRING([--enable-win32tt],[Win32 TrueType font support library]), +@@ -154,7 +163,7 @@ AC_OUTPUT( + src/platform/sdl/Makefile + src/platform/mac/Makefile + src/platform/win32/Makefile +- src/platform/BeOS/Makefile ++ src/platform/Haiku/Makefile + src/platform/AmigaOS/Makefile + include/Makefile + include/ctrl/Makefile +diff --git a/src/platform/BeOS/Makefile.am b/src/platform/BeOS/Makefile.am +index 474153c..2095717 100644 +--- a/src/platform/BeOS/Makefile.am ++++ b/src/platform/BeOS/Makefile.am +@@ -1 +1,10 @@ +-EXTRA_DIST=agg_platform_support.cpp ++if ENABLE_HAIKU ++ ++lib_LTLIBRARIES = libaggplatformHaiku.la ++ ++libaggplatformHaiku_la_LDFLAGS = -version-info @AGG_LIB_VERSION@ ++libaggplatformHaiku_la_SOURCES = agg_platform_support.cpp ++libaggplatformHaiku_la_CXXFLAGS = -I$(top_srcdir)/include @HAIKU_CFLAGS@ ++libaggplatformHaiku_la_LIBADD = @HAIKU_LIBS@ ++endif ++ +diff --git a/src/platform/Makefile.am b/src/platform/Makefile.am +index ebe5e7e..c6622bc 100644 +--- a/src/platform/Makefile.am ++++ b/src/platform/Makefile.am +@@ -1 +1 @@ +-SUBDIRS = X11 sdl win32 AmigaOS BeOS mac ++SUBDIRS = X11 sdl win32 AmigaOS Haiku mac +-- +1.8.3.4 + + +From 6aadf8ccb0db0ba33c33220ed9c70d078163ee02 Mon Sep 17 00:00:00 2001 +From: Kacper Kasper +Date: Fri, 25 Apr 2014 12:52:34 +0000 +Subject: fix unsigned integer overflows + + +diff --git a/include/agg_array.h b/include/agg_array.h +index 5c6d390..c25947a 100644 +--- a/include/agg_array.h ++++ b/include/agg_array.h +@@ -366,9 +366,10 @@ namespace agg + + void add_array(const T* ptr, unsigned num_elem) + { +- while(num_elem--) ++ while(num_elem > 0) + { + add(*ptr++); ++ --num_elem; + } + } + +@@ -526,10 +527,11 @@ namespace agg + if(m_num_blocks) + { + T** blk = m_blocks + m_num_blocks - 1; +- while(m_num_blocks--) ++ while(m_num_blocks > 0) + { + pod_allocator::deallocate(*blk, block_size); + --blk; ++ --m_num_blocks; + } + } + pod_allocator::deallocate(m_blocks, m_max_blocks); +@@ -802,10 +804,11 @@ namespace agg + if(m_num_blocks) + { + block_type* blk = m_blocks + m_num_blocks - 1; +- while(m_num_blocks--) ++ while(m_num_blocks > 0) + { + pod_allocator::deallocate(blk->data, blk->size); + --blk; ++ --m_num_blocks; + } + pod_allocator::deallocate(m_blocks, m_max_blocks); + } +diff --git a/include/agg_pixfmt_rgba.h b/include/agg_pixfmt_rgba.h +index 79d10dc..73937d0 100644 +--- a/include/agg_pixfmt_rgba.h ++++ b/include/agg_pixfmt_rgba.h +@@ -703,9 +703,9 @@ namespace agg + } + if(sa) + { +- calc_type dr = p[Order::R] - sr; +- calc_type dg = p[Order::G] - sg; +- calc_type db = p[Order::B] - sb; ++ calc_type dr = (sr > p[Order::R]) ? 0 : p[Order::R] - sr; ++ calc_type dg = (sg > p[Order::G]) ? 0 : p[Order::G] - sg; ++ calc_type db = (sb > p[Order::B]) ? 0 : p[Order::B] - sb; + p[Order::R] = (dr > base_mask) ? 0 : dr; + p[Order::G] = (dg > base_mask) ? 0 : dg; + p[Order::B] = (db > base_mask) ? 0 : db; +diff --git a/include/agg_rasterizer_cells_aa.h b/include/agg_rasterizer_cells_aa.h +index d3bb138..6aa3852 100644 +--- a/include/agg_rasterizer_cells_aa.h ++++ b/include/agg_rasterizer_cells_aa.h +@@ -140,10 +140,11 @@ namespace agg + if(m_num_blocks) + { + cell_type** ptr = m_cells + m_num_blocks - 1; +- while(m_num_blocks--) ++ while(m_num_blocks > 0) + { + pod_allocator::deallocate(*ptr, cell_block_size); + ptr--; ++ --m_num_blocks; + } + pod_allocator::deallocate(m_cells, m_max_blocks); + } +@@ -666,23 +667,26 @@ namespace agg + cell_type* cell_ptr; + unsigned nb = m_num_cells >> cell_block_shift; + unsigned i; +- while(nb--) ++ while(nb > 0) + { + cell_ptr = *block_ptr++; + i = cell_block_size; +- while(i--) ++ while(i > 0) + { + m_sorted_y[cell_ptr->y - m_min_y].start++; + ++cell_ptr; ++ --i; + } ++ --nb; + } + + cell_ptr = *block_ptr++; + i = m_num_cells & cell_block_mask; +- while(i--) ++ while(i > 0) + { + m_sorted_y[cell_ptr->y - m_min_y].start++; + ++cell_ptr; ++ --i; + } + + // Convert the Y-histogram into the array of starting indexes +@@ -697,27 +701,30 @@ namespace agg + // Fill the cell pointer array sorted by Y + block_ptr = m_cells; + nb = m_num_cells >> cell_block_shift; +- while(nb--) ++ while(nb > 0) + { + cell_ptr = *block_ptr++; + i = cell_block_size; +- while(i--) ++ while(i > 0) + { + sorted_y& curr_y = m_sorted_y[cell_ptr->y - m_min_y]; + m_sorted_cells[curr_y.start + curr_y.num] = cell_ptr; + ++curr_y.num; + ++cell_ptr; ++ --i; + } ++ --nb; + } + + cell_ptr = *block_ptr++; + i = m_num_cells & cell_block_mask; +- while(i--) ++ while(i > 0) + { + sorted_y& curr_y = m_sorted_y[cell_ptr->y - m_min_y]; + m_sorted_cells[curr_y.start + curr_y.num] = cell_ptr; + ++curr_y.num; + ++cell_ptr; ++ --i; + } + + // Finally arrange the X-arrays +diff --git a/include/agg_rendering_buffer.h b/include/agg_rendering_buffer.h +index 3a39caa..1fddb4e 100644 +--- a/include/agg_rendering_buffer.h ++++ b/include/agg_rendering_buffer.h +@@ -191,10 +191,11 @@ namespace agg + + T** rows = &m_rows[0]; + +- while(height--) ++ while(height > 0) + { + *rows++ = row_ptr; + row_ptr += stride; ++ --height; + } + } + +-- +1.8.3.4 diff --git a/x11-libs/cairo/cairo-1.10.0.recipe b/x11-libs/cairo/cairo-1.10.0.recipe index 776d8bdfb..196990cfd 100644 --- a/x11-libs/cairo/cairo-1.10.0.recipe +++ b/x11-libs/cairo/cairo-1.10.0.recipe @@ -1,4 +1,6 @@ -DESCRIPTION="Cairo is a 2D graphics library with support for multiple output devices." +DESCRIPTION=" +Cairo is a 2D graphics library with support for multiple output devices. +" HOMEPAGE="http://cairographics.org" SRC_URI="http://cairographics.org/releases/cairo-1.10.0.tar.gz" REVISION="1" diff --git a/x11-libs/cairo/cairo-1.8.10.recipe b/x11-libs/cairo/cairo-1.8.10.recipe index 571c35752..d3715de56 100644 --- a/x11-libs/cairo/cairo-1.8.10.recipe +++ b/x11-libs/cairo/cairo-1.8.10.recipe @@ -1,4 +1,6 @@ -DESCRIPTION="Cairo is a 2D graphics library with support for multiple output devices." +DESCRIPTION=" +Cairo is a 2D graphics library with support for multiple output devices. +" HOMEPAGE="http://cairographics.org" SRC_URI="http://cairographics.org/releases/cairo-1.8.10.tar.gz" REVISION="1" diff --git a/x11-libs/cd/cd-5.6.recipe b/x11-libs/cd/cd-5.6.recipe new file mode 100644 index 000000000..e827eb129 --- /dev/null +++ b/x11-libs/cd/cd-5.6.recipe @@ -0,0 +1,136 @@ +SUMMARY="CD (Canvas Draw) is a platform-independent graphics library." +HOMEPAGE="http://www.tecgraf.puc-rio.br/cd/" +SRC_URI="http://heanet.dl.sourceforge.net/project/canvasdraw/5.6.1/Docs%20and%20Sources/cd-5.6.1_Sources.zip" +CHECKSUM_SHA256="5ad7618eed720ce993280549175b86ccaeb8b0a08a7262c5cd8b02903ec40c11" + # They have a tar.gz but the permissions are broken inside it (will create unreadable files) +REVISION="1" +ARCHITECTURES="x86_gcc2" +SECONDARY_ARCHITECTURES="x86" +PROVIDES=" + cd$secondaryArchSuffix = $portVersion + lib:libcd$secondaryArchSuffix = $portVersion + lib:libcdgl$secondaryArchSuffix = $portVersion + lib:libcdlua51$secondaryArchSuffix = $portVersion + lib:libcdlua52$secondaryArchSuffix = $portVersion + lib:libcdluagl51$secondaryArchSuffix = $portVersion + lib:libcdluagl52$secondaryArchSuffix = $portVersion + lib:libcdluaim51$secondaryArchSuffix = $portVersion + lib:libcdluaim52$secondaryArchSuffix = $portVersion + lib:libcdluapdf51$secondaryArchSuffix = $portVersion + lib:libcdluapdf52$secondaryArchSuffix = $portVersion + lib:libcdpdf$secondaryArchSuffix = $portVersion + + lib:libftgl$secondaryArchSuffix = $portVersion + lib:libpdflib$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libGLU$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libfreetype$secondaryArchSuffix + lib:libfontconfig$secondaryArchSuffix + lib:libim$secondaryArchSuffix + lib:libxml2$secondaryArchSuffix +" + +BUILD_REQUIRES=" + devel:libfontconfig$secondaryArchSuffix + devel:libfreetype$secondaryArchSuffix + devel:libglu$secondaryArchSuffix + devel:libiconv$secondaryArchSuffix + devel:libim$secondaryArchSuffix + devel:liblua$secondaryArchSuffix + devel:libxml2$secondaryArchSuffix + devel:libz$secondaryArchSuffix +" + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:as$secondaryArchSuffix + cmd:pkg_config + cmd:which +" + +SOURCE_DIR="cd" +PATCHES="cd-5.6.patchset" +BUILD() +{ + export PKG_CONFIG_PATH=`finddir B_SYSTEM_DEVELOP_DIRECTORY`/lib$secondaryArchSubDir/pkgconfig + + cd src + make + + cd .. +} + +INSTALL() +{ + mkdir -p $developLibDir + mkdir -p $libDir + mkdir -p $includeDir + + cp lib/Haiku11/* $libDir + cp include/* $includeDir + + prepareInstalledDevelLibs libcd libcdgl libcdlua51 libcdlua52 libcdluagl51 \ + libcdluagl52 libcdluaim51 libcdluaim52 libcdluapdf51 libcdluapdf52 \ + libcdpdf libftgl libpdflib + + packageEntries devel $developDir +} + +TEST() +{ + export PKG_CONFIG_PATH=`finddir B_SYSTEM_DEVELOP_DIRECTORY`/lib$secondaryArchSubDir/pkgconfig + + # Make sure the tests can link against the built libs + mkdir -p bin/Haiku11 + ln -sf ../../lib/Haiku11 bin/Haiku11/lib + + cd test + + make -f ../tecmake.mak MF=metafile + ../bin/Haiku11/metafile + + # needs IUP + #make -f ../tecmake.mak MF=screencapture + #../bin/Haiku11/screencapture + + # needs IUP + #pushd cdtest + #make -f ../../tecmake.mak + #popd + #../bin/Haiku11/cdtest +} + +PROVIDES_devel=" + cd${secondaryArchSuffix}_devel = $portVersion + devel:libcd$secondaryArchSuffix = $portVersion + devel:libcdgl$secondaryArchSuffix = $portVersion + devel:libcdlua51$secondaryArchSuffix = $portVersion + devel:libcdlua52$secondaryArchSuffix = $portVersion + devel:libcdluagl51$secondaryArchSuffix = $portVersion + devel:libcdluagl52$secondaryArchSuffix = $portVersion + devel:libcdluaim51$secondaryArchSuffix = $portVersion + devel:libcdluaim52$secondaryArchSuffix = $portVersion + devel:libcdluapdf51$secondaryArchSuffix = $portVersion + devel:libcdluapdf52$secondaryArchSuffix = $portVersion + devel:libcdpdf$secondaryArchSuffix = $portVersion + + devel:libftgl$secondaryArchSuffix = $portVersion + devel:libpdflib$secondaryArchSuffix = $portVersion +" + +LICENSE="MIT" +COPYRIGHT="1994-2013 Tecgraf, PUC-Rio." +DESCRIPTION=" +CD (Canvas Draw) is a platform-independent graphics library. It is implemented \ +in several platforms using native graphics libraries: Microsoft Windows (GDI) \ +and X-Windows (XLIB). +The library contains functions to support both vector and image applications, \ +and the visualization surface can be either a window or a more abstract \ +surface, such as Image, Clipboard, Metafile, PS, and so on. +" diff --git a/x11-libs/cd/patches/cd-5.6.patchset b/x11-libs/cd/patches/cd-5.6.patchset new file mode 100644 index 000000000..724e16b3d --- /dev/null +++ b/x11-libs/cd/patches/cd-5.6.patchset @@ -0,0 +1,881 @@ +From 5b55dd52708486264bfb4e9eb46a6a215ed5e816 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Fri, 15 Nov 2013 21:59:25 +0100 +Subject: Import Haiku port sources. + + +diff --git a/include/cd_private.h b/include/cd_private.h +index 4062cca..4887b2e 100644 +--- a/include/cd_private.h ++++ b/include/cd_private.h +@@ -240,7 +240,7 @@ struct _cdCanvas + cdContext* context; + }; + +-enum{CD_BASE_WIN, CD_BASE_X, CD_BASE_GDK}; ++enum{CD_BASE_WIN, CD_BASE_X, CD_BASE_GDK, CD_BASE_HAIKU}; + int cdBaseDriver(void); + + /***************/ +diff --git a/src/Makefile b/src/Makefile +index b34037b..0c88757 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -5,7 +5,7 @@ else + endif + + .PHONY: do_all cd_zlib cd_freetype cd_ftgl cd cdx11 cdgdk cd_pdflib cdpdf cdgl cdcontextplus cdcairo cdlua3 cdluapdf3 cdluagl3 cdlua5 cdluapdf5 cdluagl5 cdluacontextplus5 cdluacairo5 cdluaim5 +-do_all: cd_zlib cd_freetype cd_ftgl cd cd_pdflib cdpdf cdgl cdlua5 cdluapdf5 cdluagl5 cdluaim5 ++do_all: cd_ftgl cd cd_pdflib cdpdf cdgl cdlua5 cdluapdf5 cdluagl5 cdluaim5 + + cd_zlib: + @$(TECMAKE_CMD) MF=cd_zlib +diff --git a/src/config.mak b/src/config.mak +index b3fe8e2..6eddc29 100644 +--- a/src/config.mak ++++ b/src/config.mak +@@ -2,6 +2,9 @@ PROJNAME = cd + LIBNAME = cd + OPT = YES + ++ifeq "$(TEC_SYSNAME)" "Haiku" ++ USE_HAIKU = Yes ++else + ifdef GTK_DEFAULT + ifdef USE_X11 + # Build X11 version in Linux and BSD +@@ -23,6 +26,7 @@ else + endif + endif + endif ++endif + + DEFINES = CD_NO_OLD_INTERFACE + +@@ -36,6 +40,9 @@ SRCINTCGM := $(addprefix intcgm/, $(SRCINTCGM)) + SRCSIM := cdfontex.c sim.c cd_truetype.c sim_primitives.c sim_text.c sim_linepolyfill.c + SRCSIM := $(addprefix sim/, $(SRCSIM)) + ++SRCHAIKU = cdhaiku.cpp cdhaikunative.cpp cdhaikudbuf.cpp ++SRCHAIKU := $(addprefix haiku/, $(SRCHAIKU)) ++ + SRCWIN32 = cdwclp.c cdwemf.c cdwimg.c cdwin.c cdwnative.c cdwprn.c \ + cdwwmf.c wmf_emf.c cdwdbuf.c cdwdib.c + SRCWIN32 := $(addprefix win32/, $(SRCWIN32)) +@@ -95,13 +102,13 @@ ifdef USE_GDK + LIBS += fontconfig + endif + endif +-else ++else + ifdef USE_X11 + SRC += $(SRCX11) $(SRCNULL) + LIBS += freetype +- ifneq ($(findstring cygw, $(TEC_UNAME)), ) +- LIBS += fontconfig +- endif ++ else ifdef USE_HAIKU ++ SRC += $(SRCHAIKU) $(SRCNULL) ++ LIBS += freetype fontconfig + else + SRC += $(SRCWIN32) + ifneq ($(findstring cygw, $(TEC_UNAME)), ) +diff --git a/src/haiku/cdhaiku.cpp b/src/haiku/cdhaiku.cpp +new file mode 100644 +index 0000000..eb76815 +--- /dev/null ++++ b/src/haiku/cdhaiku.cpp +@@ -0,0 +1,304 @@ ++/* ++ Canvas Draw - CD_Haiku Driver ++*/ ++ ++#include "cd.h" ++#include "cdhaiku.h" ++#include "cd_private.h" ++#include ++#include ++#include ++ ++#include ++#include ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++ ++static rgb_color cdColorToHaiku(unsigned long rgb) ++{ ++ rgb_color clrRGB; ++ ++ clrRGB.red = cdRed(rgb); ++ clrRGB.green = cdGreen(rgb); ++ clrRGB.blue = cdBlue(rgb); ++ ++ return clrRGB; ++} ++ ++ ++static void cdpixel(cdCtxCanvas *ctxcanvas, int x, int y, long int color) ++{ ++ ctxcanvas->view->LockLooper(); ++ ctxcanvas->view->SetHighColor(cdColorToHaiku(color)); ++ ctxcanvas->view->StrokeLine(BPoint(x, y), BPoint(x, y)); ++ ctxcanvas->view->UnlockLooper(); ++} ++ ++static void cdline(cdCtxCanvas *ctxcanvas, int x1, int y1, int x2, int y2) ++{ ++ ctxcanvas->view->LockLooper(); ++ ctxcanvas->view->StrokeLine(BPoint(x1, y1), BPoint(x2, y2)); ++ ctxcanvas->view->UnlockLooper(); ++} ++ ++static void cdpoly(cdCtxCanvas *ctxcanvas, int mode, cdPoint* poly, int n) ++{ ++ BPoint points[n]; ++ for(int i = 0; i < n; i++) ++ { ++ points[i] = BPoint(poly[i].x, poly[i].y); ++ } ++ ctxcanvas->view->LockLooper(); ++ ctxcanvas->view->FillPolygon(points, n); ++ ctxcanvas->view->UnlockLooper(); ++} ++ ++static void cdrect(cdCtxCanvas *ctxcanvas, int xmin, int xmax, int ymin, int ymax) ++{ ++ ctxcanvas->view->LockLooper(); ++ ctxcanvas->view->StrokeRect(BRect(xmin, ymin, xmax, ymax)); ++ ctxcanvas->view->UnlockLooper(); ++} ++ ++static void cdbox(cdCtxCanvas *ctxcanvas, int xmin, int xmax, int ymin, int ymax) ++{ ++ ctxcanvas->view->LockLooper(); ++ ctxcanvas->view->FillRect(BRect(xmin, ymin, xmax, ymax)); ++ ctxcanvas->view->UnlockLooper(); ++} ++ ++static void cdarc(cdCtxCanvas *ctxcanvas, int xc, int yc, int w, int h, double a1, double a2) ++{ ++ ctxcanvas->view->LockLooper(); ++ ctxcanvas->view->StrokeArc(BPoint(xc, yc), w, h, a1, a1 + a2); ++ ctxcanvas->view->UnlockLooper(); ++} ++ ++static void cdsector(cdCtxCanvas *ctxcanvas, int xc, int yc, int w, int h, double a1, double a2) ++{ ++ UNIMPLEMENTED ++} ++ ++static void cdtext(cdCtxCanvas *ctxcanvas, int x, int y, const char *s, int len) ++{ ++ ctxcanvas->view->LockLooper(); ++ ctxcanvas->view->DrawString(s, len, BPoint(x,y)); ++ ctxcanvas->view->UnlockLooper(); ++} ++ ++static int cdfont(cdCtxCanvas *ctxcanvas, const char *typeface, int style, int size) ++{ ++ int face = 0; ++ ++ // Recognize Windows fonts and map them to something we have. ++ if (cdStrEqualNoCase(typeface, "Courier") || cdStrEqualNoCase(typeface, "Courier New")) ++ typeface = "Monospace"; ++ else if (cdStrEqualNoCase(typeface, "Times") || cdStrEqualNoCase(typeface, "Times New Roman")) ++ typeface = "Serif"; ++ else if (cdStrEqualNoCase(typeface, "Helvetica") || cdStrEqualNoCase(typeface, "Arial")) ++ typeface = "Sans"; ++ ++ if (style & CD_BOLD) ++ face |= B_BOLD_FACE; ++ ++ if (style & CD_ITALIC) ++ face |= B_ITALIC_FACE; ++ ++ if (style & CD_UNDERLINE) ++ face |= B_UNDERSCORE_FACE; ++ ++ if (style & CD_STRIKEOUT) ++ face |= B_STRIKEOUT_FACE; ++ ++ size = cdGetFontSizePoints(ctxcanvas->canvas, size); ++ ++ BFont font; ++ font.SetFace(style); ++ // TODO SetFamilyAndStyle() (see what we did in IUP, may be reuseable ?) ++ font.SetSize(size); ++ ++ if (ctxcanvas->view->LockLooper()) { ++ ctxcanvas->view->SetFont(&font); ++ ctxcanvas->view->UnlockLooper(); ++ } ++ ++ return 1; ++} ++ ++static void cdgetfontdim(cdCtxCanvas *ctxcanvas, int *max_width, int *height, int *ascent, int *descent) ++{ ++ font_height metrics; ++ ctxcanvas->view->GetFontHeight(&metrics); ++ ++ if (max_width) { *max_width = 8; UNIMPLEMENTED } ++ if (height) *height = (int)(metrics.ascent + metrics.descent + metrics.leading); ++ if (ascent) *ascent = (int)metrics.ascent; ++ if (descent) *descent = (int)metrics.descent; ++} ++ ++static void cdgettextsize(cdCtxCanvas *ctxcanvas, const char *s, int len, int *width, int *height) ++{ ++ // TODO maybe needs to handle newlines ? ++ if (width) *width = (int)ctxcanvas->view->StringWidth(s, len); ++ cdgetfontdim(ctxcanvas, NULL, height, NULL, NULL); ++} ++ ++ ++ ++void cdhaikuKillCanvas(cdCtxCanvas* ctxcanvas) ++{ ++ // FIXME how are the canvas_dbuffer and image_dbuffer freed ? gdk version does not do it ? ++ if (ctxcanvas->view->LockLooper()) { ++ if (ctxcanvas->view->RemoveSelf()) ++ delete ctxcanvas->view; ++ ctxcanvas->view->UnlockLooper(); ++ ctxcanvas->view = NULL; // be extra safe to make sure we won't reuse it... ++ } ++ free(ctxcanvas); ++} ++ ++ ++static long int cdbackground(cdCtxCanvas *ctxcanvas, long int color) ++{ ++ if (ctxcanvas->view->LockLooper()) { ++ rgb_color c = cdColorToHaiku(color); ++ ctxcanvas->view->SetLowColor(c); ++ ctxcanvas->view->SetViewColor(c); ++ ctxcanvas->view->UnlockLooper(); ++ } ++ return color; ++} ++ ++static long int cdforeground(cdCtxCanvas *ctxcanvas, long int color) ++{ ++ if (ctxcanvas->view->LockLooper()) { ++ ctxcanvas->view->SetHighColor(cdColorToHaiku(color)); ++ ctxcanvas->view->UnlockLooper(); ++ } ++ return color; ++} ++ ++static cdCtxImage *cdcreateimage (cdCtxCanvas *ctxcanvas, int w, int h) ++{ ++ // TODO we need to get the colorspace from cdCtxCanvas ++ BBitmap* bitmap = new BBitmap(BRect(0, 0, w, h), B_RGB32, true); ++ cdCtxImage *ctximage = (cdCtxImage *)malloc(sizeof(cdCtxImage)); ++ ++ /* ++ ctximage->w = w; ++ ctximage->h = h; ++ ctximage->depth = ctxcanvas->depth; ++ ctximage->scr = ctxcanvas->scr; ++ ctximage->vis = ctxcanvas->vis; ++*/ ++ ctximage->bitmap = bitmap; ++ ++ if (!ctximage->bitmap) ++ { ++ free(ctximage); ++ return NULL; ++ } ++ ++ return ctximage; ++} ++ ++static void cdputimagerect (cdCtxCanvas *ctxcanvas, cdCtxImage *ctximage, int x, int y, int xmin, int xmax, int ymin, int ymax) ++{ ++ /* y is the bottom-left of the image region in CD */ ++ y -= (ymax-ymin+1)-1; ++ ++ int w = xmax - xmin; ++ int h = ymax - ymin; ++ if (ctxcanvas->view->LockLooper()) { ++ ctxcanvas->view->DrawBitmapAsync(ctximage->bitmap, BRect(xmin, ymin, xmax, ymax), ++ BRect(x, y, x + w, y + h)); ++ ctxcanvas->view->UnlockLooper(); ++ } ++} ++ ++static void cdkillimage (cdCtxImage *ctximage) ++{ ++ delete ctximage->bitmap; ++ free(ctximage); ++} ++ ++ ++void cdhaikuInitTable(cdCanvas* canvas) ++{ ++// canvas->cxFlush = cdflush; ++// canvas->cxClear = cdclear; ++ ++ canvas->cxPixel = cdpixel; ++ canvas->cxLine = cdline; ++ canvas->cxPoly = cdpoly; ++ canvas->cxRect = cdrect; ++ canvas->cxBox = cdbox; ++ canvas->cxArc = cdarc; ++ canvas->cxSector = cdsector; ++ canvas->cxChord = cdSimChord; ++ canvas->cxText = cdtext; ++ ++ canvas->cxFont = cdfont; ++ ++ // TODO optional ++ canvas->cxGetFontDim = cdgetfontdim; ++ canvas->cxGetTextSize = cdgettextsize; ++ // cxFLine, cxFPoly, cxFRect, ++ // cxFBox, cxFArc, cxFSector, cxFChord, cxFText, cxClip, cxClipArea, ++ // cxFClipArea, cxBackOpacity, cxWriteMode, cxLineStyle, cxLineWidth, ++ // cxLineJoin, cxLineCap, cxInteriorStyle, cxHatch, cxStipple, cxPattern, ++ // cxNativeFont, cxTextAlignment, cxTextOrientation, cxPalette, cxTransform, ++ // cxIsPointInRegion, cxOffsetRegion, cxGetRegionBox, cxActivate, cxDeactivate ++ // FIXME can we LockLooper and UnlockLooper in cxActivate and cxDeactivate ? ++ canvas->cxBackground = cdbackground; ++ canvas->cxForeground = cdforeground; ++ ++ // cxScrollArea, cxGetImage, cxNewRegion, ++ canvas->cxCreateImage = cdcreateimage; ++ canvas->cxPutImageRect = cdputimagerect; ++ canvas->cxKillImage = cdkillimage; ++ ++ // cxGetImageRGB, cxPutImageRectRGBA, cxPutImageRectMap, cxPutImageRectRGB ++} ++ ++ ++cdCtxCanvas* cdhaikuCreateCanvas(cdCanvas* canvas, BView* destination) ++{ ++ cdCtxCanvas *ctxcanvas = (cdCtxCanvas *)malloc(sizeof(cdCtxCanvas)); ++ memset(ctxcanvas, 0, sizeof(cdCtxCanvas)); ++ ++ ctxcanvas->view = destination; ++ ++ ctxcanvas->canvas = canvas; ++ canvas->ctxcanvas = ctxcanvas; ++ ++ if (destination->LockLooper()) ++ { ++ BRect rect = destination->Bounds(); ++ destination->UnlockLooper(); ++ ctxcanvas->canvas->w = (int)(rect.Width()); ++ ctxcanvas->canvas->h = (int)(rect.Height()); ++ } ++ ++ // TODO ++ // canvas->bpp, xres, yres, w_mm, h_mm, colormap ++ // ctxcanvas->depth ++ canvas->invert_yaxis = 1; ++ ++ /* ++ cdRegisterAttribute(canvas, &gc_attrib); ++ cdRegisterAttribute(canvas, &rotate_attrib); ++ cdRegisterAttribute(canvas, &pangoversion_attrib); ++ cdRegisterAttribute(canvas, &imgdither_attrib); ++ cdRegisterAttribute(canvas, &interp_attrib); ++ */ ++ ++ return ctxcanvas; ++} ++ ++extern "C" int cdBaseDriver(void) ++{ ++ return CD_BASE_HAIKU; ++} ++ +diff --git a/src/haiku/cdhaiku.h b/src/haiku/cdhaiku.h +new file mode 100644 +index 0000000..4deb865 +--- /dev/null ++++ b/src/haiku/cdhaiku.h +@@ -0,0 +1,37 @@ ++#ifndef __CD_HAIKU_H ++#define __CD_HAIKU_H ++ ++#include "cd_private.h" ++ ++class BBitmap; ++class BView; ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++struct _cdCtxCanvas { ++ cdCanvas* canvas; ++ BView* view; ++ ++ cdImage* image_dbuffer; /* Used by double buffer driver */ ++ cdCanvas* canvas_dbuffer; ++}; ++ ++struct _cdCtxImage { ++ BBitmap * bitmap; ++}; ++ ++cdContext* cdContextHaiku(void); ++ ++#define CD_HAIKU cdContextHaiku() ++ ++void cdhaikuInitTable(cdCanvas* canvas); ++cdCtxCanvas* cdhaikuCreateCanvas(cdCanvas* canvas, BView* destination); ++void cdhaikuKillCanvas(cdCtxCanvas *ctxcanvas); ++ ++#ifdef __cplusplus ++} ++#endif ++ ++#endif +diff --git a/src/haiku/cdhaikudbuf.cpp b/src/haiku/cdhaikudbuf.cpp +new file mode 100644 +index 0000000..6e764d3 +--- /dev/null ++++ b/src/haiku/cdhaikudbuf.cpp +@@ -0,0 +1,154 @@ ++/** \file ++ * \brief Haiku Double Buffer Driver ++ * ++ * See Copyright Notice in cd.h ++ */ ++ ++#include "cd.h" ++#include "cd_private.h" ++#include "cdhaiku.h" ++ ++#include ++#include ++ ++#include ++#include ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++static void cdkillcanvas (cdCtxCanvas* ctxcanvas) ++{ ++ cdKillImage(ctxcanvas->image_dbuffer); ++ cdhaikuKillCanvas(ctxcanvas); ++} ++ ++static void cddeactivate(cdCtxCanvas* ctxcanvas) ++{ ++ cdCanvas* canvas_dbuffer = ctxcanvas->canvas_dbuffer; ++ /* this is done in the canvas_dbuffer context */ ++ cdCanvasDeactivate(canvas_dbuffer); ++} ++ ++static void cdflush(cdCtxCanvas* ctxcanvas) ++{ ++ int old_writemode; ++ cdImage* image_dbuffer = ctxcanvas->image_dbuffer; ++ cdCanvas* canvas_dbuffer = ctxcanvas->canvas_dbuffer; ++ ++ /* flush the writing in the image */ ++ ctxcanvas->view->LockLooper(); ++ ctxcanvas->view->Sync(); ++ ctxcanvas->view->UnlockLooper(); ++ ++ /* this is done in the canvas_dbuffer context */ ++ /* Flush can be affected by Origin and Clipping, but not WriteMode */ ++ old_writemode = cdCanvasWriteMode(canvas_dbuffer, CD_REPLACE); ++ cdCanvasPutImageRect(canvas_dbuffer, image_dbuffer, 0, 0, 0, 0, 0, 0); ++ cdCanvasWriteMode(canvas_dbuffer, old_writemode); ++} ++ ++static void cdcreatecanvas(cdCanvas* canvas, void* backbuffer) ++{ ++ cdCanvas* canvas_dbuffer = (cdCanvas*)backbuffer; ++ int w, h; ++ cdCtxCanvas* ctxcanvas; ++ cdImage* image_dbuffer; ++ cdCtxImage* ctximage; ++ ++ cdCanvasActivate(canvas_dbuffer); ++ w = canvas_dbuffer->w; ++ h = canvas_dbuffer->h; ++ if (w==0) w=1; ++ if (h==0) h=1; ++ ++ /* this is done in the canvas_dbuffer context */ ++ image_dbuffer = cdCanvasCreateImage(canvas_dbuffer, w, h); ++ if (!image_dbuffer) { ++ return; ++ } ++ ++ ctximage = image_dbuffer->ctximage; ++ ++ /* Init the driver DBuffer */ ++ BView* view = new BView(ctximage->bitmap->Bounds(), "backbuffer", B_FOLLOW_NONE, B_WILL_DRAW); ++ ctximage->bitmap->AddChild(view); ++ ctxcanvas = cdhaikuCreateCanvas(canvas, view); ++ ++ if (!ctxcanvas) ++ return; ++ ++ ctxcanvas->image_dbuffer = image_dbuffer; ++ ctxcanvas->canvas_dbuffer = canvas_dbuffer; ++} ++ ++static int cdactivate(cdCtxCanvas* ctxcanvas) ++{ ++ int w, h; ++ cdCanvas* canvas_dbuffer = ctxcanvas->canvas_dbuffer; ++ ++ /* this is done in the canvas_dbuffer context */ ++ /* this will update canvas size */ ++ cdCanvasActivate(canvas_dbuffer); ++ w = canvas_dbuffer->w; ++ h = canvas_dbuffer->h; ++ if (w==0) w=1; ++ if (h==0) h=1; ++ ++ /* check if the size changed */ ++ if (w != ctxcanvas->image_dbuffer->w || ++ h != ctxcanvas->image_dbuffer->h) ++ { ++ cdCanvas* canvas = ctxcanvas->canvas; ++ /* save the current, if the rebuild fail */ ++ cdImage* old_image_dbuffer = ctxcanvas->image_dbuffer; ++ cdCtxCanvas* old_ctxcanvas = ctxcanvas; ++ ++ /* if the image is rebuild, the canvas that uses the image must be also rebuild */ ++ ++ /* rebuild the image and the canvas */ ++ canvas->ctxcanvas = NULL; ++ canvas->context->cxCreateCanvas(canvas, canvas_dbuffer); ++ if (!canvas->ctxcanvas) ++ { ++ canvas->ctxcanvas = old_ctxcanvas; ++ return CD_ERROR; ++ } ++ ++ /* remove the old image and canvas */ ++ cdKillImage(old_image_dbuffer); ++ cdhaikuKillCanvas(old_ctxcanvas); ++ ++ ctxcanvas = canvas->ctxcanvas; ++ ++ /* update canvas attributes */ ++ cdUpdateAttributes(canvas); ++ } ++ ++ return CD_OK; ++} ++ ++static void cdinittable(cdCanvas* canvas) ++{ ++ cdhaikuInitTable(canvas); ++ ++ canvas->cxActivate = cdactivate; ++ canvas->cxDeactivate = cddeactivate; ++ canvas->cxFlush = cdflush; ++ canvas->cxKillCanvas = cdkillcanvas; ++} ++ ++static cdContext cdDBufferContext = ++{ ++ CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_YAXIS | CD_CAP_PATH | CD_CAP_BEZIER | CD_CAP_FPRIMTIVES ), ++ CD_CTX_IMAGE, ++ cdcreatecanvas, ++ cdinittable, ++ NULL, ++ NULL, ++}; ++ ++extern "C" cdContext* cdContextDBuffer(void) ++{ ++ return &cdDBufferContext; ++} ++ +diff --git a/src/haiku/cdhaikunative.cpp b/src/haiku/cdhaikunative.cpp +new file mode 100644 +index 0000000..96073e1 +--- /dev/null ++++ b/src/haiku/cdhaikunative.cpp +@@ -0,0 +1,85 @@ ++/** \file ++ * \brief Gdk Native Window Driver ++ * ++ * See Copyright Notice in cd.h ++ */ ++ ++#include "cd.h" ++#include "cd_private.h" ++#include "cdhaiku.h" ++ ++#include ++#include ++ ++#include ++#include ++#include ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++static void cdkillcanvas(cdCtxCanvas *ctxcanvas) ++{ ++ cdhaikuKillCanvas(ctxcanvas); ++} ++ ++static int cdactivate(cdCtxCanvas *ctxcanvas) ++{ ++ BView* view = ctxcanvas->view; ++ ++ BLooper* looper = view->Looper(); ++ const char* ln = ""; ++ if (looper != NULL) { ++ ln = looper->Name(); ++ } ++ printf("CD Activate view %p (%s), looper is %s\n", view, view->Name(), ln); ++ ++ BRect rect = view->Bounds(); ++ ++ ctxcanvas->canvas->w = (int)(rect.Width()); ++ ctxcanvas->canvas->h = (int)(rect.Height()); ++ ++ ctxcanvas->canvas->w_mm = ((double)ctxcanvas->canvas->w) / ctxcanvas->canvas->xres; ++ ctxcanvas->canvas->h_mm = ((double)ctxcanvas->canvas->h) / ctxcanvas->canvas->yres; ++ ++ if (ctxcanvas->canvas->use_matrix) ++ ctxcanvas->canvas->cxTransform(ctxcanvas, ctxcanvas->canvas->matrix); ++ return CD_OK; ++} ++ ++static void cdcreatecanvas(cdCanvas* canvas, void *data) ++{ ++ BView* view = (BView*)data; ++ if(!view) { ++ return; ++ } ++ ++ cdhaikuCreateCanvas(canvas, view); ++} ++ ++static void cdinittable(cdCanvas* canvas) ++{ ++ cdhaikuInitTable(canvas); ++ ++ canvas->cxKillCanvas = cdkillcanvas; ++ canvas->cxActivate = cdactivate; ++} ++ ++ ++ ++static cdContext cdNativeWindowContext = ++{ ++ CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_YAXIS | CD_CAP_FPRIMTIVES | CD_CAP_PATH | CD_CAP_BEZIER ), ++ CD_CTX_WINDOW, ++ cdcreatecanvas, ++ cdinittable, ++ NULL, ++ NULL, ++}; ++ ++ ++extern "C" { ++cdContext* cdContextNativeWindow(void) ++{ ++ return &cdNativeWindowContext; ++} ++} +diff --git a/tec_uname b/tec_uname +index cc89349..fc982e0 100644 +--- a/tec_uname ++++ b/tec_uname +@@ -148,6 +148,11 @@ ComputeSystemPaths() + + TEC_SYSTEM_INC=/usr/include + ++ if [ $TEC_SYSNAME == Haiku ]; then ++ TEC_SYSTEM_LIB=`finddir B_SYSTEM_LIB_DIRECTORY` ++ TEC_SYSTEM_INC=`finddir B_SYSTEM_HEADERS_DIRECTORY` ++ fi ++ + TEC_LUA_LIB=$TEC_SYSTEM_LIB/lua/$LUA_VER + } + +diff --git a/tecmake.mak b/tecmake.mak +index e5f5efd..0fd2536 100644 +--- a/tecmake.mak ++++ b/tecmake.mak +@@ -6,7 +6,7 @@ + + #---------------------------------# + # Tecmake Version +-VERSION = 4.7 ++VERSION = 4.6 + + + #---------------------------------# +@@ -26,6 +26,9 @@ ifndef TEC_UNAME + TEC_SYSARCH:=$(shell uname -m) + + # Fixes ++ ifeq ($(TEC_SYSNAME), Haiku) ++ TEC_SYSARCH:=$(shell uname -p) ++ endif + ifeq ($(TEC_SYSNAME), SunOS) + TEC_SYSARCH:=$(shell uname -p) + endif +@@ -225,6 +228,11 @@ DLIBEXT := so + DLIBPRE := lib + APPEXT := + ++ifneq ($(findstring Haiku, $(TEC_UNAME)), ) ++ # GTK and Motif are not available on Haiku ++ USE_HAIKU = Yes ++endif ++ + ifneq ($(findstring Linux24, $(TEC_UNAME)), ) + NO_GTK_DEFAULT = Yes + endif +@@ -505,6 +513,11 @@ else + endif + endif + ++ifeq "$(TEC_SYSNAME)" "Haiku" ++ STDFLAGS += -Wno-multichar ++ LIBS += be textencoding ++endif ++ + ifneq ($(findstring Linux, $(TEC_UNAME)), ) + UNIX_LINUX = Yes + ifdef BUILD_64 +@@ -526,6 +539,11 @@ ifneq ($(findstring Linux, $(TEC_UNAME)), ) + endif + endif + ++ifneq ($(findstring Haiku, $(TEC_UNAME)), ) ++ UNIX_POSIX = Yes ++ STDLDFLAGS := -shared -Wl,-soname=lib$(TARGETNAME).so ++endif ++ + ifneq ($(findstring IRIX, $(TEC_UNAME)), ) + UNIX_POSIX = Yes + ifndef NO_LOCAL_LD +@@ -852,6 +870,7 @@ endif + ifdef USE_IUP + IUP_SUFFIX ?= + ifdef USE_IUP3 ++ ifndef USE_HAIKU + ifdef GTK_DEFAULT + ifdef USE_MOTIF + IUP_SUFFIX := mot +@@ -869,6 +888,7 @@ ifdef USE_IUP + endif + endif + endif ++ endif + else + ifndef NO_OVERRIDE + override USE_MOTIF = Yes +@@ -902,17 +922,19 @@ endif + + ifdef USE_CD + CD_SUFFIX ?= +- ifndef NO_OVERRIDE +- override USE_X11 = Yes +- endif +- ifndef USE_CD_OLD +- ifdef GTK_DEFAULT +- ifdef USE_MOTIF +- CD_SUFFIX := x11 +- endif +- else +- ifdef USE_GTK +- CD_SUFFIX := gdk ++ ifndef USE_HAIKU ++ ifndef NO_OVERRIDE ++ override USE_X11 = Yes ++ endif ++ ifndef USE_CD_OLD ++ ifdef GTK_DEFAULT ++ ifdef USE_MOTIF ++ CD_SUFFIX := x11 ++ endif ++ else ++ ifdef USE_GTK ++ CD_SUFFIX := gdk ++ endif + endif + endif + endif +@@ -993,7 +1015,6 @@ endif + ifdef LINK_FREETYPE + FREETYPE = freetype + ifneq ($(findstring cygw, $(TEC_UNAME)), ) +- # To be compatible with the existing DLLs of cygwin + FREETYPE = freetype-6 + endif + +@@ -1047,6 +1068,11 @@ ifdef USE_OPENGL + STDINCS += $(OPENGL_INC) + endif + ++ifdef USE_HAIKU ++ PKGINCS += $(shell pkg-config --cflags libxml-2.0) ++ PKGLIBS += $(shell pkg-config --libs libxml-2.0) ++endif ++ + ifdef USE_MOTIF + ifndef NO_OVERRIDE + override USE_X11 = Yes +@@ -1138,23 +1164,21 @@ ifdef USE_GTK + ifndef USE_GTK3 + STDINCS += $(GTK)/lib/x86_64-linux-gnu/gtk-2.0/include + endif +- else +- ifeq ($(TEC_SYSARCH), ia64) +- STDINCS += $(GTK)/lib64/glib-2.0/include +- ifndef USE_GTK3 +- STDINCS += $(GTK)/lib64/gtk-2.0/include +- endif +- else +- STDINCS += $(GTK)/lib/glib-2.0/include +- ifndef USE_GTK3 +- STDINCS += $(GTK)/lib/gtk-2.0/include +- endif +- +- # Add also support for newer instalations +- STDINCS += $(GTK)/lib/i386-linux-gnu/glib-2.0/include +- ifndef USE_GTK3 +- STDINCS += $(GTK)/lib/i386-linux-gnu/gtk-2.0/include +- endif ++ else ifeq ($(TEC_SYSARCH), ia64) ++ STDINCS += $(GTK)/lib64/glib-2.0/include ++ ifndef USE_GTK3 ++ STDINCS += $(GTK)/lib64/gtk-2.0/include ++ endif ++ else ++ STDINCS += $(GTK)/lib/glib-2.0/include ++ ifndef USE_GTK3 ++ STDINCS += $(GTK)/lib/gtk-2.0/include ++ endif ++ ++ # Add also support for newer instalations ++ STDINCS += $(GTK)/lib/i386-linux-gnu/glib-2.0/include ++ ifndef USE_GTK3 ++ STDINCS += $(GTK)/lib/i386-linux-gnu/gtk-2.0/include + endif + endif + +@@ -1180,7 +1204,9 @@ ifdef USE_X11 + STDINCS += $(X11_INC) + endif + +-LIBS += m ++ifneq "$(TEC_SYSNAME)" "Haiku" ++ LIBS += m ++endif + + ifneq ($(findstring cygw, $(TEC_UNAME)), ) + WIN_OTHER := Yes +-- +1.8.3.4 + diff --git a/x11-libs/cd/patches/cd_x86-5.6.patchset b/x11-libs/cd/patches/cd_x86-5.6.patchset new file mode 100644 index 000000000..7a9f49ea4 --- /dev/null +++ b/x11-libs/cd/patches/cd_x86-5.6.patchset @@ -0,0 +1,884 @@ +From 16b5bf8321dd4ba98468ee7ec5946d336b97e31e Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Fri, 15 Nov 2013 21:59:25 +0100 +Subject: Import Haiku port sources. + + +diff --git a/include/cd_private.h b/include/cd_private.h +index 4062cca..4887b2e 100644 +--- a/include/cd_private.h ++++ b/include/cd_private.h +@@ -240,7 +240,7 @@ struct _cdCanvas + cdContext* context; + }; + +-enum{CD_BASE_WIN, CD_BASE_X, CD_BASE_GDK}; ++enum{CD_BASE_WIN, CD_BASE_X, CD_BASE_GDK, CD_BASE_HAIKU}; + int cdBaseDriver(void); + + /***************/ +diff --git a/src/config.mak b/src/config.mak +index b3fe8e2..6eddc29 100644 +--- a/src/config.mak ++++ b/src/config.mak +@@ -2,6 +2,9 @@ PROJNAME = cd + LIBNAME = cd + OPT = YES + ++ifeq "$(TEC_SYSNAME)" "Haiku" ++ USE_HAIKU = Yes ++else + ifdef GTK_DEFAULT + ifdef USE_X11 + # Build X11 version in Linux and BSD +@@ -23,6 +26,7 @@ else + endif + endif + endif ++endif + + DEFINES = CD_NO_OLD_INTERFACE + +@@ -36,6 +40,9 @@ SRCINTCGM := $(addprefix intcgm/, $(SRCINTCGM)) + SRCSIM := cdfontex.c sim.c cd_truetype.c sim_primitives.c sim_text.c sim_linepolyfill.c + SRCSIM := $(addprefix sim/, $(SRCSIM)) + ++SRCHAIKU = cdhaiku.cpp cdhaikunative.cpp cdhaikudbuf.cpp ++SRCHAIKU := $(addprefix haiku/, $(SRCHAIKU)) ++ + SRCWIN32 = cdwclp.c cdwemf.c cdwimg.c cdwin.c cdwnative.c cdwprn.c \ + cdwwmf.c wmf_emf.c cdwdbuf.c cdwdib.c + SRCWIN32 := $(addprefix win32/, $(SRCWIN32)) +@@ -95,13 +102,13 @@ ifdef USE_GDK + LIBS += fontconfig + endif + endif +-else ++else + ifdef USE_X11 + SRC += $(SRCX11) $(SRCNULL) + LIBS += freetype +- ifneq ($(findstring cygw, $(TEC_UNAME)), ) +- LIBS += fontconfig +- endif ++ else ifdef USE_HAIKU ++ SRC += $(SRCHAIKU) $(SRCNULL) ++ LIBS += freetype fontconfig + else + SRC += $(SRCWIN32) + ifneq ($(findstring cygw, $(TEC_UNAME)), ) +diff --git a/src/haiku/cdhaiku.cpp b/src/haiku/cdhaiku.cpp +new file mode 100644 +index 0000000..eb76815 +--- /dev/null ++++ b/src/haiku/cdhaiku.cpp +@@ -0,0 +1,304 @@ ++/* ++ Canvas Draw - CD_Haiku Driver ++*/ ++ ++#include "cd.h" ++#include "cdhaiku.h" ++#include "cd_private.h" ++#include ++#include ++#include ++ ++#include ++#include ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++ ++static rgb_color cdColorToHaiku(unsigned long rgb) ++{ ++ rgb_color clrRGB; ++ ++ clrRGB.red = cdRed(rgb); ++ clrRGB.green = cdGreen(rgb); ++ clrRGB.blue = cdBlue(rgb); ++ ++ return clrRGB; ++} ++ ++ ++static void cdpixel(cdCtxCanvas *ctxcanvas, int x, int y, long int color) ++{ ++ ctxcanvas->view->LockLooper(); ++ ctxcanvas->view->SetHighColor(cdColorToHaiku(color)); ++ ctxcanvas->view->StrokeLine(BPoint(x, y), BPoint(x, y)); ++ ctxcanvas->view->UnlockLooper(); ++} ++ ++static void cdline(cdCtxCanvas *ctxcanvas, int x1, int y1, int x2, int y2) ++{ ++ ctxcanvas->view->LockLooper(); ++ ctxcanvas->view->StrokeLine(BPoint(x1, y1), BPoint(x2, y2)); ++ ctxcanvas->view->UnlockLooper(); ++} ++ ++static void cdpoly(cdCtxCanvas *ctxcanvas, int mode, cdPoint* poly, int n) ++{ ++ BPoint points[n]; ++ for(int i = 0; i < n; i++) ++ { ++ points[i] = BPoint(poly[i].x, poly[i].y); ++ } ++ ctxcanvas->view->LockLooper(); ++ ctxcanvas->view->FillPolygon(points, n); ++ ctxcanvas->view->UnlockLooper(); ++} ++ ++static void cdrect(cdCtxCanvas *ctxcanvas, int xmin, int xmax, int ymin, int ymax) ++{ ++ ctxcanvas->view->LockLooper(); ++ ctxcanvas->view->StrokeRect(BRect(xmin, ymin, xmax, ymax)); ++ ctxcanvas->view->UnlockLooper(); ++} ++ ++static void cdbox(cdCtxCanvas *ctxcanvas, int xmin, int xmax, int ymin, int ymax) ++{ ++ ctxcanvas->view->LockLooper(); ++ ctxcanvas->view->FillRect(BRect(xmin, ymin, xmax, ymax)); ++ ctxcanvas->view->UnlockLooper(); ++} ++ ++static void cdarc(cdCtxCanvas *ctxcanvas, int xc, int yc, int w, int h, double a1, double a2) ++{ ++ ctxcanvas->view->LockLooper(); ++ ctxcanvas->view->StrokeArc(BPoint(xc, yc), w, h, a1, a1 + a2); ++ ctxcanvas->view->UnlockLooper(); ++} ++ ++static void cdsector(cdCtxCanvas *ctxcanvas, int xc, int yc, int w, int h, double a1, double a2) ++{ ++ UNIMPLEMENTED ++} ++ ++static void cdtext(cdCtxCanvas *ctxcanvas, int x, int y, const char *s, int len) ++{ ++ ctxcanvas->view->LockLooper(); ++ ctxcanvas->view->DrawString(s, len, BPoint(x,y)); ++ ctxcanvas->view->UnlockLooper(); ++} ++ ++static int cdfont(cdCtxCanvas *ctxcanvas, const char *typeface, int style, int size) ++{ ++ int face = 0; ++ ++ // Recognize Windows fonts and map them to something we have. ++ if (cdStrEqualNoCase(typeface, "Courier") || cdStrEqualNoCase(typeface, "Courier New")) ++ typeface = "Monospace"; ++ else if (cdStrEqualNoCase(typeface, "Times") || cdStrEqualNoCase(typeface, "Times New Roman")) ++ typeface = "Serif"; ++ else if (cdStrEqualNoCase(typeface, "Helvetica") || cdStrEqualNoCase(typeface, "Arial")) ++ typeface = "Sans"; ++ ++ if (style & CD_BOLD) ++ face |= B_BOLD_FACE; ++ ++ if (style & CD_ITALIC) ++ face |= B_ITALIC_FACE; ++ ++ if (style & CD_UNDERLINE) ++ face |= B_UNDERSCORE_FACE; ++ ++ if (style & CD_STRIKEOUT) ++ face |= B_STRIKEOUT_FACE; ++ ++ size = cdGetFontSizePoints(ctxcanvas->canvas, size); ++ ++ BFont font; ++ font.SetFace(style); ++ // TODO SetFamilyAndStyle() (see what we did in IUP, may be reuseable ?) ++ font.SetSize(size); ++ ++ if (ctxcanvas->view->LockLooper()) { ++ ctxcanvas->view->SetFont(&font); ++ ctxcanvas->view->UnlockLooper(); ++ } ++ ++ return 1; ++} ++ ++static void cdgetfontdim(cdCtxCanvas *ctxcanvas, int *max_width, int *height, int *ascent, int *descent) ++{ ++ font_height metrics; ++ ctxcanvas->view->GetFontHeight(&metrics); ++ ++ if (max_width) { *max_width = 8; UNIMPLEMENTED } ++ if (height) *height = (int)(metrics.ascent + metrics.descent + metrics.leading); ++ if (ascent) *ascent = (int)metrics.ascent; ++ if (descent) *descent = (int)metrics.descent; ++} ++ ++static void cdgettextsize(cdCtxCanvas *ctxcanvas, const char *s, int len, int *width, int *height) ++{ ++ // TODO maybe needs to handle newlines ? ++ if (width) *width = (int)ctxcanvas->view->StringWidth(s, len); ++ cdgetfontdim(ctxcanvas, NULL, height, NULL, NULL); ++} ++ ++ ++ ++void cdhaikuKillCanvas(cdCtxCanvas* ctxcanvas) ++{ ++ // FIXME how are the canvas_dbuffer and image_dbuffer freed ? gdk version does not do it ? ++ if (ctxcanvas->view->LockLooper()) { ++ if (ctxcanvas->view->RemoveSelf()) ++ delete ctxcanvas->view; ++ ctxcanvas->view->UnlockLooper(); ++ ctxcanvas->view = NULL; // be extra safe to make sure we won't reuse it... ++ } ++ free(ctxcanvas); ++} ++ ++ ++static long int cdbackground(cdCtxCanvas *ctxcanvas, long int color) ++{ ++ if (ctxcanvas->view->LockLooper()) { ++ rgb_color c = cdColorToHaiku(color); ++ ctxcanvas->view->SetLowColor(c); ++ ctxcanvas->view->SetViewColor(c); ++ ctxcanvas->view->UnlockLooper(); ++ } ++ return color; ++} ++ ++static long int cdforeground(cdCtxCanvas *ctxcanvas, long int color) ++{ ++ if (ctxcanvas->view->LockLooper()) { ++ ctxcanvas->view->SetHighColor(cdColorToHaiku(color)); ++ ctxcanvas->view->UnlockLooper(); ++ } ++ return color; ++} ++ ++static cdCtxImage *cdcreateimage (cdCtxCanvas *ctxcanvas, int w, int h) ++{ ++ // TODO we need to get the colorspace from cdCtxCanvas ++ BBitmap* bitmap = new BBitmap(BRect(0, 0, w, h), B_RGB32, true); ++ cdCtxImage *ctximage = (cdCtxImage *)malloc(sizeof(cdCtxImage)); ++ ++ /* ++ ctximage->w = w; ++ ctximage->h = h; ++ ctximage->depth = ctxcanvas->depth; ++ ctximage->scr = ctxcanvas->scr; ++ ctximage->vis = ctxcanvas->vis; ++*/ ++ ctximage->bitmap = bitmap; ++ ++ if (!ctximage->bitmap) ++ { ++ free(ctximage); ++ return NULL; ++ } ++ ++ return ctximage; ++} ++ ++static void cdputimagerect (cdCtxCanvas *ctxcanvas, cdCtxImage *ctximage, int x, int y, int xmin, int xmax, int ymin, int ymax) ++{ ++ /* y is the bottom-left of the image region in CD */ ++ y -= (ymax-ymin+1)-1; ++ ++ int w = xmax - xmin; ++ int h = ymax - ymin; ++ if (ctxcanvas->view->LockLooper()) { ++ ctxcanvas->view->DrawBitmapAsync(ctximage->bitmap, BRect(xmin, ymin, xmax, ymax), ++ BRect(x, y, x + w, y + h)); ++ ctxcanvas->view->UnlockLooper(); ++ } ++} ++ ++static void cdkillimage (cdCtxImage *ctximage) ++{ ++ delete ctximage->bitmap; ++ free(ctximage); ++} ++ ++ ++void cdhaikuInitTable(cdCanvas* canvas) ++{ ++// canvas->cxFlush = cdflush; ++// canvas->cxClear = cdclear; ++ ++ canvas->cxPixel = cdpixel; ++ canvas->cxLine = cdline; ++ canvas->cxPoly = cdpoly; ++ canvas->cxRect = cdrect; ++ canvas->cxBox = cdbox; ++ canvas->cxArc = cdarc; ++ canvas->cxSector = cdsector; ++ canvas->cxChord = cdSimChord; ++ canvas->cxText = cdtext; ++ ++ canvas->cxFont = cdfont; ++ ++ // TODO optional ++ canvas->cxGetFontDim = cdgetfontdim; ++ canvas->cxGetTextSize = cdgettextsize; ++ // cxFLine, cxFPoly, cxFRect, ++ // cxFBox, cxFArc, cxFSector, cxFChord, cxFText, cxClip, cxClipArea, ++ // cxFClipArea, cxBackOpacity, cxWriteMode, cxLineStyle, cxLineWidth, ++ // cxLineJoin, cxLineCap, cxInteriorStyle, cxHatch, cxStipple, cxPattern, ++ // cxNativeFont, cxTextAlignment, cxTextOrientation, cxPalette, cxTransform, ++ // cxIsPointInRegion, cxOffsetRegion, cxGetRegionBox, cxActivate, cxDeactivate ++ // FIXME can we LockLooper and UnlockLooper in cxActivate and cxDeactivate ? ++ canvas->cxBackground = cdbackground; ++ canvas->cxForeground = cdforeground; ++ ++ // cxScrollArea, cxGetImage, cxNewRegion, ++ canvas->cxCreateImage = cdcreateimage; ++ canvas->cxPutImageRect = cdputimagerect; ++ canvas->cxKillImage = cdkillimage; ++ ++ // cxGetImageRGB, cxPutImageRectRGBA, cxPutImageRectMap, cxPutImageRectRGB ++} ++ ++ ++cdCtxCanvas* cdhaikuCreateCanvas(cdCanvas* canvas, BView* destination) ++{ ++ cdCtxCanvas *ctxcanvas = (cdCtxCanvas *)malloc(sizeof(cdCtxCanvas)); ++ memset(ctxcanvas, 0, sizeof(cdCtxCanvas)); ++ ++ ctxcanvas->view = destination; ++ ++ ctxcanvas->canvas = canvas; ++ canvas->ctxcanvas = ctxcanvas; ++ ++ if (destination->LockLooper()) ++ { ++ BRect rect = destination->Bounds(); ++ destination->UnlockLooper(); ++ ctxcanvas->canvas->w = (int)(rect.Width()); ++ ctxcanvas->canvas->h = (int)(rect.Height()); ++ } ++ ++ // TODO ++ // canvas->bpp, xres, yres, w_mm, h_mm, colormap ++ // ctxcanvas->depth ++ canvas->invert_yaxis = 1; ++ ++ /* ++ cdRegisterAttribute(canvas, &gc_attrib); ++ cdRegisterAttribute(canvas, &rotate_attrib); ++ cdRegisterAttribute(canvas, &pangoversion_attrib); ++ cdRegisterAttribute(canvas, &imgdither_attrib); ++ cdRegisterAttribute(canvas, &interp_attrib); ++ */ ++ ++ return ctxcanvas; ++} ++ ++extern "C" int cdBaseDriver(void) ++{ ++ return CD_BASE_HAIKU; ++} ++ +diff --git a/src/haiku/cdhaiku.h b/src/haiku/cdhaiku.h +new file mode 100644 +index 0000000..4deb865 +--- /dev/null ++++ b/src/haiku/cdhaiku.h +@@ -0,0 +1,37 @@ ++#ifndef __CD_HAIKU_H ++#define __CD_HAIKU_H ++ ++#include "cd_private.h" ++ ++class BBitmap; ++class BView; ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++struct _cdCtxCanvas { ++ cdCanvas* canvas; ++ BView* view; ++ ++ cdImage* image_dbuffer; /* Used by double buffer driver */ ++ cdCanvas* canvas_dbuffer; ++}; ++ ++struct _cdCtxImage { ++ BBitmap * bitmap; ++}; ++ ++cdContext* cdContextHaiku(void); ++ ++#define CD_HAIKU cdContextHaiku() ++ ++void cdhaikuInitTable(cdCanvas* canvas); ++cdCtxCanvas* cdhaikuCreateCanvas(cdCanvas* canvas, BView* destination); ++void cdhaikuKillCanvas(cdCtxCanvas *ctxcanvas); ++ ++#ifdef __cplusplus ++} ++#endif ++ ++#endif +diff --git a/src/haiku/cdhaikudbuf.cpp b/src/haiku/cdhaikudbuf.cpp +new file mode 100644 +index 0000000..6e764d3 +--- /dev/null ++++ b/src/haiku/cdhaikudbuf.cpp +@@ -0,0 +1,154 @@ ++/** \file ++ * \brief Haiku Double Buffer Driver ++ * ++ * See Copyright Notice in cd.h ++ */ ++ ++#include "cd.h" ++#include "cd_private.h" ++#include "cdhaiku.h" ++ ++#include ++#include ++ ++#include ++#include ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++static void cdkillcanvas (cdCtxCanvas* ctxcanvas) ++{ ++ cdKillImage(ctxcanvas->image_dbuffer); ++ cdhaikuKillCanvas(ctxcanvas); ++} ++ ++static void cddeactivate(cdCtxCanvas* ctxcanvas) ++{ ++ cdCanvas* canvas_dbuffer = ctxcanvas->canvas_dbuffer; ++ /* this is done in the canvas_dbuffer context */ ++ cdCanvasDeactivate(canvas_dbuffer); ++} ++ ++static void cdflush(cdCtxCanvas* ctxcanvas) ++{ ++ int old_writemode; ++ cdImage* image_dbuffer = ctxcanvas->image_dbuffer; ++ cdCanvas* canvas_dbuffer = ctxcanvas->canvas_dbuffer; ++ ++ /* flush the writing in the image */ ++ ctxcanvas->view->LockLooper(); ++ ctxcanvas->view->Sync(); ++ ctxcanvas->view->UnlockLooper(); ++ ++ /* this is done in the canvas_dbuffer context */ ++ /* Flush can be affected by Origin and Clipping, but not WriteMode */ ++ old_writemode = cdCanvasWriteMode(canvas_dbuffer, CD_REPLACE); ++ cdCanvasPutImageRect(canvas_dbuffer, image_dbuffer, 0, 0, 0, 0, 0, 0); ++ cdCanvasWriteMode(canvas_dbuffer, old_writemode); ++} ++ ++static void cdcreatecanvas(cdCanvas* canvas, void* backbuffer) ++{ ++ cdCanvas* canvas_dbuffer = (cdCanvas*)backbuffer; ++ int w, h; ++ cdCtxCanvas* ctxcanvas; ++ cdImage* image_dbuffer; ++ cdCtxImage* ctximage; ++ ++ cdCanvasActivate(canvas_dbuffer); ++ w = canvas_dbuffer->w; ++ h = canvas_dbuffer->h; ++ if (w==0) w=1; ++ if (h==0) h=1; ++ ++ /* this is done in the canvas_dbuffer context */ ++ image_dbuffer = cdCanvasCreateImage(canvas_dbuffer, w, h); ++ if (!image_dbuffer) { ++ return; ++ } ++ ++ ctximage = image_dbuffer->ctximage; ++ ++ /* Init the driver DBuffer */ ++ BView* view = new BView(ctximage->bitmap->Bounds(), "backbuffer", B_FOLLOW_NONE, B_WILL_DRAW); ++ ctximage->bitmap->AddChild(view); ++ ctxcanvas = cdhaikuCreateCanvas(canvas, view); ++ ++ if (!ctxcanvas) ++ return; ++ ++ ctxcanvas->image_dbuffer = image_dbuffer; ++ ctxcanvas->canvas_dbuffer = canvas_dbuffer; ++} ++ ++static int cdactivate(cdCtxCanvas* ctxcanvas) ++{ ++ int w, h; ++ cdCanvas* canvas_dbuffer = ctxcanvas->canvas_dbuffer; ++ ++ /* this is done in the canvas_dbuffer context */ ++ /* this will update canvas size */ ++ cdCanvasActivate(canvas_dbuffer); ++ w = canvas_dbuffer->w; ++ h = canvas_dbuffer->h; ++ if (w==0) w=1; ++ if (h==0) h=1; ++ ++ /* check if the size changed */ ++ if (w != ctxcanvas->image_dbuffer->w || ++ h != ctxcanvas->image_dbuffer->h) ++ { ++ cdCanvas* canvas = ctxcanvas->canvas; ++ /* save the current, if the rebuild fail */ ++ cdImage* old_image_dbuffer = ctxcanvas->image_dbuffer; ++ cdCtxCanvas* old_ctxcanvas = ctxcanvas; ++ ++ /* if the image is rebuild, the canvas that uses the image must be also rebuild */ ++ ++ /* rebuild the image and the canvas */ ++ canvas->ctxcanvas = NULL; ++ canvas->context->cxCreateCanvas(canvas, canvas_dbuffer); ++ if (!canvas->ctxcanvas) ++ { ++ canvas->ctxcanvas = old_ctxcanvas; ++ return CD_ERROR; ++ } ++ ++ /* remove the old image and canvas */ ++ cdKillImage(old_image_dbuffer); ++ cdhaikuKillCanvas(old_ctxcanvas); ++ ++ ctxcanvas = canvas->ctxcanvas; ++ ++ /* update canvas attributes */ ++ cdUpdateAttributes(canvas); ++ } ++ ++ return CD_OK; ++} ++ ++static void cdinittable(cdCanvas* canvas) ++{ ++ cdhaikuInitTable(canvas); ++ ++ canvas->cxActivate = cdactivate; ++ canvas->cxDeactivate = cddeactivate; ++ canvas->cxFlush = cdflush; ++ canvas->cxKillCanvas = cdkillcanvas; ++} ++ ++static cdContext cdDBufferContext = ++{ ++ CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_YAXIS | CD_CAP_PATH | CD_CAP_BEZIER | CD_CAP_FPRIMTIVES ), ++ CD_CTX_IMAGE, ++ cdcreatecanvas, ++ cdinittable, ++ NULL, ++ NULL, ++}; ++ ++extern "C" cdContext* cdContextDBuffer(void) ++{ ++ return &cdDBufferContext; ++} ++ +diff --git a/src/haiku/cdhaikunative.cpp b/src/haiku/cdhaikunative.cpp +new file mode 100644 +index 0000000..96073e1 +--- /dev/null ++++ b/src/haiku/cdhaikunative.cpp +@@ -0,0 +1,85 @@ ++/** \file ++ * \brief Gdk Native Window Driver ++ * ++ * See Copyright Notice in cd.h ++ */ ++ ++#include "cd.h" ++#include "cd_private.h" ++#include "cdhaiku.h" ++ ++#include ++#include ++ ++#include ++#include ++#include ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++static void cdkillcanvas(cdCtxCanvas *ctxcanvas) ++{ ++ cdhaikuKillCanvas(ctxcanvas); ++} ++ ++static int cdactivate(cdCtxCanvas *ctxcanvas) ++{ ++ BView* view = ctxcanvas->view; ++ ++ BLooper* looper = view->Looper(); ++ const char* ln = ""; ++ if (looper != NULL) { ++ ln = looper->Name(); ++ } ++ printf("CD Activate view %p (%s), looper is %s\n", view, view->Name(), ln); ++ ++ BRect rect = view->Bounds(); ++ ++ ctxcanvas->canvas->w = (int)(rect.Width()); ++ ctxcanvas->canvas->h = (int)(rect.Height()); ++ ++ ctxcanvas->canvas->w_mm = ((double)ctxcanvas->canvas->w) / ctxcanvas->canvas->xres; ++ ctxcanvas->canvas->h_mm = ((double)ctxcanvas->canvas->h) / ctxcanvas->canvas->yres; ++ ++ if (ctxcanvas->canvas->use_matrix) ++ ctxcanvas->canvas->cxTransform(ctxcanvas, ctxcanvas->canvas->matrix); ++ return CD_OK; ++} ++ ++static void cdcreatecanvas(cdCanvas* canvas, void *data) ++{ ++ BView* view = (BView*)data; ++ if(!view) { ++ return; ++ } ++ ++ cdhaikuCreateCanvas(canvas, view); ++} ++ ++static void cdinittable(cdCanvas* canvas) ++{ ++ cdhaikuInitTable(canvas); ++ ++ canvas->cxKillCanvas = cdkillcanvas; ++ canvas->cxActivate = cdactivate; ++} ++ ++ ++ ++static cdContext cdNativeWindowContext = ++{ ++ CD_CAP_ALL & ~(CD_CAP_PLAY | CD_CAP_YAXIS | CD_CAP_FPRIMTIVES | CD_CAP_PATH | CD_CAP_BEZIER ), ++ CD_CTX_WINDOW, ++ cdcreatecanvas, ++ cdinittable, ++ NULL, ++ NULL, ++}; ++ ++ ++extern "C" { ++cdContext* cdContextNativeWindow(void) ++{ ++ return &cdNativeWindowContext; ++} ++} +diff --git a/tec_uname b/tec_uname +index cc89349..fc982e0 100644 +--- a/tec_uname ++++ b/tec_uname +@@ -148,6 +148,11 @@ ComputeSystemPaths() + + TEC_SYSTEM_INC=/usr/include + ++ if [ $TEC_SYSNAME == Haiku ]; then ++ TEC_SYSTEM_LIB=`finddir B_SYSTEM_LIB_DIRECTORY` ++ TEC_SYSTEM_INC=`finddir B_SYSTEM_HEADERS_DIRECTORY` ++ fi ++ + TEC_LUA_LIB=$TEC_SYSTEM_LIB/lua/$LUA_VER + } + +diff --git a/tecmake.mak b/tecmake.mak +index e5f5efd..d52f725 100644 +--- a/tecmake.mak ++++ b/tecmake.mak +@@ -6,7 +6,7 @@ + + #---------------------------------# + # Tecmake Version +-VERSION = 4.7 ++VERSION = 4.6 + + + #---------------------------------# +@@ -26,6 +26,9 @@ ifndef TEC_UNAME + TEC_SYSARCH:=$(shell uname -m) + + # Fixes ++ ifeq ($(TEC_SYSNAME), Haiku) ++ TEC_SYSARCH:=$(shell uname -p) ++ endif + ifeq ($(TEC_SYSNAME), SunOS) + TEC_SYSARCH:=$(shell uname -p) + endif +@@ -505,6 +508,11 @@ else + endif + endif + ++ifeq "$(TEC_SYSNAME)" "Haiku" ++ STDFLAGS += -Wno-multichar ++ LIBS += be textencoding ++endif ++ + ifneq ($(findstring Linux, $(TEC_UNAME)), ) + UNIX_LINUX = Yes + ifdef BUILD_64 +@@ -526,6 +534,11 @@ ifneq ($(findstring Linux, $(TEC_UNAME)), ) + endif + endif + ++ifneq ($(findstring Haiku, $(TEC_UNAME)), ) ++ UNIX_POSIX = Yes ++ STDLDFLAGS := -shared -Wl,-soname=lib$(TARGETNAME).so ++endif ++ + ifneq ($(findstring IRIX, $(TEC_UNAME)), ) + UNIX_POSIX = Yes + ifndef NO_LOCAL_LD +@@ -852,6 +865,7 @@ endif + ifdef USE_IUP + IUP_SUFFIX ?= + ifdef USE_IUP3 ++ ifndef USE_HAIKU + ifdef GTK_DEFAULT + ifdef USE_MOTIF + IUP_SUFFIX := mot +@@ -869,6 +883,7 @@ ifdef USE_IUP + endif + endif + endif ++ endif + else + ifndef NO_OVERRIDE + override USE_MOTIF = Yes +@@ -902,17 +917,21 @@ endif + + ifdef USE_CD + CD_SUFFIX ?= +- ifndef NO_OVERRIDE +- override USE_X11 = Yes +- endif +- ifndef USE_CD_OLD +- ifdef GTK_DEFAULT +- ifdef USE_MOTIF +- CD_SUFFIX := x11 +- endif +- else +- ifdef USE_GTK +- CD_SUFFIX := gdk ++ ifdef USE_HAIKU ++ CD_SUFFIX := haiku ++ else ++ ifndef NO_OVERRIDE ++ override USE_X11 = Yes ++ endif ++ ifndef USE_CD_OLD ++ ifdef GTK_DEFAULT ++ ifdef USE_MOTIF ++ CD_SUFFIX := x11 ++ endif ++ else ++ ifdef USE_GTK ++ CD_SUFFIX := gdk ++ endif + endif + endif + endif +@@ -993,7 +1012,6 @@ endif + ifdef LINK_FREETYPE + FREETYPE = freetype + ifneq ($(findstring cygw, $(TEC_UNAME)), ) +- # To be compatible with the existing DLLs of cygwin + FREETYPE = freetype-6 + endif + +@@ -1138,23 +1156,21 @@ ifdef USE_GTK + ifndef USE_GTK3 + STDINCS += $(GTK)/lib/x86_64-linux-gnu/gtk-2.0/include + endif +- else +- ifeq ($(TEC_SYSARCH), ia64) +- STDINCS += $(GTK)/lib64/glib-2.0/include +- ifndef USE_GTK3 +- STDINCS += $(GTK)/lib64/gtk-2.0/include +- endif +- else +- STDINCS += $(GTK)/lib/glib-2.0/include +- ifndef USE_GTK3 +- STDINCS += $(GTK)/lib/gtk-2.0/include +- endif +- +- # Add also support for newer instalations +- STDINCS += $(GTK)/lib/i386-linux-gnu/glib-2.0/include +- ifndef USE_GTK3 +- STDINCS += $(GTK)/lib/i386-linux-gnu/gtk-2.0/include +- endif ++ else ifeq ($(TEC_SYSARCH), ia64) ++ STDINCS += $(GTK)/lib64/glib-2.0/include ++ ifndef USE_GTK3 ++ STDINCS += $(GTK)/lib64/gtk-2.0/include ++ endif ++ else ++ STDINCS += $(GTK)/lib/glib-2.0/include ++ ifndef USE_GTK3 ++ STDINCS += $(GTK)/lib/gtk-2.0/include ++ endif ++ ++ # Add also support for newer instalations ++ STDINCS += $(GTK)/lib/i386-linux-gnu/glib-2.0/include ++ ifndef USE_GTK3 ++ STDINCS += $(GTK)/lib/i386-linux-gnu/gtk-2.0/include + endif + endif + +@@ -1180,7 +1196,9 @@ ifdef USE_X11 + STDINCS += $(X11_INC) + endif + +-LIBS += m ++ifneq "$(TEC_SYSNAME)" "Haiku" ++ LIBS += m ++endif + + ifneq ($(findstring cygw, $(TEC_UNAME)), ) + WIN_OTHER := Yes +-- +1.8.3.4 + + +From 9c725a6d23509f8407f548559ccc7a01249b9056 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 17 Nov 2013 11:59:17 +0100 +Subject: Do not build zlib and freetype + +We have perfectly working libs already, no need to replace them. + +diff --git a/src/Makefile b/src/Makefile +index b34037b..0c88757 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -5,7 +5,7 @@ else + endif + + .PHONY: do_all cd_zlib cd_freetype cd_ftgl cd cdx11 cdgdk cd_pdflib cdpdf cdgl cdcontextplus cdcairo cdlua3 cdluapdf3 cdluagl3 cdlua5 cdluapdf5 cdluagl5 cdluacontextplus5 cdluacairo5 cdluaim5 +-do_all: cd_zlib cd_freetype cd_ftgl cd cd_pdflib cdpdf cdgl cdlua5 cdluapdf5 cdluagl5 cdluaim5 ++do_all: cd_ftgl cd cd_pdflib cdpdf cdgl cdlua5 cdluapdf5 cdluagl5 cdluaim5 + + cd_zlib: + @$(TECMAKE_CMD) MF=cd_zlib +diff --git a/tecmake.mak b/tecmake.mak +index d52f725..2b71fbd 100644 +--- a/tecmake.mak ++++ b/tecmake.mak +@@ -919,6 +919,9 @@ ifdef USE_CD + CD_SUFFIX ?= + ifdef USE_HAIKU + CD_SUFFIX := haiku ++ # Force using system-provided freetype and zlib ++ LINK_FREETYPE = Yes ++ LINK_ZLIB = Yes + else + ifndef NO_OVERRIDE + override USE_X11 = Yes +-- +1.8.3.4 + diff --git a/x11-libs/iup/iup-3.8.recipe b/x11-libs/iup/iup-3.8.recipe new file mode 100644 index 000000000..454bccf42 --- /dev/null +++ b/x11-libs/iup/iup-3.8.recipe @@ -0,0 +1,145 @@ +SUMMARY="IUP is a multi-platform toolkit for building graphical user interfaces." +HOMEPAGE="http://www.tecgraf.puc-rio.br/iup/" +SRC_URI="http://downloads.sourceforge.net/project/iup/3.8/Docs%20and%20Sources/iup-3.8_Sources.zip" # The tar.gz has permission problems. +CHECKSUM_SHA256="8030c4f35c3a3f096e6552cecb600d8ee95c9c379c76368d99fa6ffc6ebc8b5c" +REVISION="1" +ARCHITECTURES="x86_gcc2" +SECONDARY_ARCHITECTURES="x86" +PROVIDES=" + iup$secondaryArchSuffix = $portVersion + lib:libiup$secondaryArchSuffix = $portVersion + lib:libiup_mglplot$secondaryArchSuffix = $portVersion + lib:libiup_pplot$secondaryArchSuffix = $portVersion + lib:libiupcd$secondaryArchSuffix = $portVersion + lib:libiupcontrols$secondaryArchSuffix = $portVersion + lib:libiupgl$secondaryArchSuffix = $portVersion + lib:libiupim$secondaryArchSuffix = $portVersion + lib:libiupimglib$secondaryArchSuffix = $portVersion + lib:libiuplua51$secondaryArchSuffix = $portVersion + lib:libiuplua52$secondaryArchSuffix = $portVersion + lib:libiuplua_mglplot51$secondaryArchSuffix = $portVersion + lib:libiuplua_mglplot52$secondaryArchSuffix = $portVersion + lib:libiuplua_pplot51$secondaryArchSuffix = $portVersion + lib:libiuplua_pplot52$secondaryArchSuffix = $portVersion + lib:libiupluacd51$secondaryArchSuffix = $portVersion + lib:libiupluacd52$secondaryArchSuffix = $portVersion + lib:libiupluacontrols51$secondaryArchSuffix = $portVersion + lib:libiupluacontrols52$secondaryArchSuffix = $portVersion + lib:libiupluagl51$secondaryArchSuffix = $portVersion + lib:libiupluagl52$secondaryArchSuffix = $portVersion + lib:libiupluaim51$secondaryArchSuffix = $portVersion + lib:libiupluaim52$secondaryArchSuffix = $portVersion + lib:libiupluaimglib51$secondaryArchSuffix = $portVersion + lib:libiupluaimglib52$secondaryArchSuffix = $portVersion + lib:libiupluatuio51$secondaryArchSuffix = $portVersion + lib:libiupluatuio52$secondaryArchSuffix = $portVersion + lib:libiuptuio$secondaryArchSuffix = $portVersion + lib:libiupweb$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:liblua$secondaryArchSuffix + lib:libcd$secondaryArchSuffix >= 5.6 + lib:libim$secondaryArchSuffix >= 3.8 + lib:libfreetype$secondaryArchSuffix + lib:libGLU$secondaryArchSuffix + lib:libz$secondaryArchSuffix +" + +BUILD_REQUIRES=" + devel:libcd$secondaryArchSuffix + devel:libfontconfig$secondaryArchSuffix + devel:libfreetype$secondaryArchSuffix + devel:libGLU$secondaryArchSuffix + devel:libim$secondaryArchSuffix + devel:liblua$secondaryArchSuffix + devel:libxml2$secondaryArchSuffix + devel:libz$secondaryArchSuffix +" + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:gcc$secondaryArchSuffix + cmd:as$secondaryArchSuffix + cmd:make + cmd:which + cmd:yacc +" + +SOURCE_DIR="iup" +#PATCHES="iup-3.8.patchset" +BUILD() +{ + export LUA52=`finddir B_SYSTEM_DIRECTORY` + export LUA_LIB=`finddir B_SYSTEM_DEVELOP_DIRECTORY`/lib$secondaryArchSubDir + export LUA_BIN=/bin$secondaryArchSubDir + export LUA_SUFFIX= + export LUA_INC=`finddir B_SYSTEM_HEADERS_DIRECTORY` + make +} + +INSTALL() +{ + mkdir -p $developLibDir + mkdir -p $libDir + mkdir -p $includeDir + + cp lib/Haiku11/* $libDir + cp include/* $includeDir + + prepareInstalledDevelLibs libiup libiup_mglplot libiup_pplot libiupcd \ + libiupcontrols libiupgl libiupim libiupimglib libiuplua51 libiuplua52 \ + libiuplua_mglplot51 libiuplua_mglplot52 libiuplua_pplot51 \ + libiuplua_pplot52 libiupluacd51 libiupluacd52 libiupluacontrols51 \ + libiupluacontrols52 libiupluagl51 libiupluagl52 libiupluaim51 \ + libiupluaim52 libiupluaimglib51 libiupluaimglib52 libiupluatuio51 \ + libiupluatuio52 libiuptuio libiupweb + + packageEntries devel $developDir +} + +PROVIDES_devel=" + devel:libiup$secondaryArchSuffix = $portVersion + devel:libiup_mglplot$secondaryArchSuffix = $portVersion + devel:libiup_pplot$secondaryArchSuffix = $portVersion + devel:libiupcd$secondaryArchSuffix = $portVersion + devel:libiupcontrols$secondaryArchSuffix = $portVersion + devel:libiupgl$secondaryArchSuffix = $portVersion + devel:libiupim$secondaryArchSuffix = $portVersion + devel:libiupimglib$secondaryArchSuffix = $portVersion + devel:libiuplua51$secondaryArchSuffix = $portVersion + devel:libiuplua52$secondaryArchSuffix = $portVersion + devel:libiuplua_mglplot51$secondaryArchSuffix = $portVersion + devel:libiuplua_mglplot52$secondaryArchSuffix = $portVersion + devel:libiuplua_pplot51$secondaryArchSuffix = $portVersion + devel:libiuplua_pplot52$secondaryArchSuffix = $portVersion + devel:libiupluacd51$secondaryArchSuffix = $portVersion + devel:libiupluacd52$secondaryArchSuffix = $portVersion + devel:libiupluacontrols51$secondaryArchSuffix = $portVersion + devel:libiupluacontrols52$secondaryArchSuffix = $portVersion + devel:libiupluagl51$secondaryArchSuffix = $portVersion + devel:libiupluagl52$secondaryArchSuffix = $portVersion + devel:libiupluaim51$secondaryArchSuffix = $portVersion + devel:libiupluaim52$secondaryArchSuffix = $portVersion + devel:libiupluaimglib51$secondaryArchSuffix = $portVersion + devel:libiupluaimglib52$secondaryArchSuffix = $portVersion + devel:libiupluatuio51$secondaryArchSuffix = $portVersion + devel:libiupluatuio52$secondaryArchSuffix = $portVersion + devel:libiuptuio$secondaryArchSuffix = $portVersion + devel:libiupweb$secondaryArchSuffix = $portVersion +" + +LICENSE="MIT" +COPYRIGHT="1994-2013 Tecgraf, PUC-Rio." +DESCRIPTION=" +IUP is a multi-platform toolkit for building graphical user interfaces. It \ +offers APIs in three basic languages: C, Lua and LED. +Its library contains about 100 functions for creating and manipulating dialogs. +IUP's purpose is to allow a program to run in different systems without \ +changes - the toolkit provides the application portability. Supported systems \ +include: GTK+, Motif and Windows. +IUP uses an abstract layout model based on the boxes-and-glue paradigm from \ +the TEX text editor. This model, combined with the dialog-specification \ +language (LED) or with the Lua binding (IupLua) makes the dialog creation task \ +more flexible and independent from the graphics system's resolution. +" diff --git a/x11-libs/iup/patches/iup-3.8.patchset b/x11-libs/iup/patches/iup-3.8.patchset new file mode 100644 index 000000000..a9b87577b --- /dev/null +++ b/x11-libs/iup/patches/iup-3.8.patchset @@ -0,0 +1,8066 @@ +From 115eb3270ff3039a7dcbeeb3510aa11c3a0c73d3 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sat, 16 Nov 2013 18:59:48 +0100 +Subject: Import work done on Haiku port. + + +diff --git a/Makefile b/Makefile +index dac895c..3cf0b70 100644 +--- a/Makefile ++++ b/Makefile +@@ -3,7 +3,7 @@ ifeq ($(OS), Windows_NT) + endif + + .PHONY: do_all iup iupgtk iupmot iupcd iupcontrols iupgl iup_pplot iup_mglplot iup_scintilla iupim iupimglib ledc iupview iuplua3 iuplua5 iupconsole iupole iupweb iuptuio +-do_all: iup iupcd iupcontrols iupgl iup_pplot iup_mglplot iup_scintilla iupim iupimglib $(WINLIBS) iupweb iuptuio ledc iupview iuplua5 iupconsole ++do_all: iup iupcd iupcontrols iupgl iup_pplot iup_mglplot iupim iupimglib $(WINLIBS) iupweb iuptuio ledc iupview iuplua5 iupconsole + + iup iupgtk iupmot: + @$(MAKE) --no-print-directory -C ./src/ $@ +diff --git a/src/Makefile b/src/Makefile +index b4ba247..0e099df 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -4,7 +4,7 @@ else + TECMAKE_CMD = $(MAKE) --no-print-directory -f ../tecmake.mak + endif + +-.PHONY: do_all iup iupgtk iupmot iupstub ++.PHONY: do_all iup iupgtk iupmot iuphaiku iupstub + do_all: iup + + iup: +@@ -16,5 +16,8 @@ iupgtk: + iupmot: + @$(TECMAKE_CMD) USE_MOTIF=Yes + ++iuphaiku: ++ @$(TECMAKE_CMD) USE_HAIKU=Yes ++ + iupstub: + @$(TECMAKE_CMD) MF=iupstub +diff --git a/src/config.mak b/src/config.mak +index c59e837..4019b34 100644 +--- a/src/config.mak ++++ b/src/config.mak +@@ -2,6 +2,9 @@ PROJNAME = iup + LIBNAME := iup + OPT = YES + ++ifeq "$(TEC_SYSNAME)" "Haiku" ++ USE_HAIKU = Yes ++else + ifdef GTK_DEFAULT + ifdef USE_MOTIF + # Build Motif version in Linux and BSD +@@ -24,6 +27,7 @@ else + endif + endif + endif ++endif + + ifdef DBG + DEFINES += IUP_ASSERT +@@ -44,6 +48,22 @@ SRC = iup_array.c iup_callback.c iup_dlglist.c iup_attrib.c iup_focus.c iup_font + iup_mask.c iup_maskparse.c iup_tabs.c iup_spin.c iup_list.c iup_getparam.c iup_link.c \ + iup_sbox.c iup_scrollbox.c iup_normalizer.c iup_tree.c iup_split.c iup_layoutdlg.c iup_recplay.c + ++ifdef USE_HAIKU ++ # Since Haiku has no GTK and no Motif, we can only use the native implementation ++ SRC += haiku/iuphaiku_button.cpp haiku/iuphaiku_canvas.cpp haiku/iuphaiku_clipboard.c \ ++ haiku/iuphaiku_colordlg.c haiku/iuphaiku_common.cpp haiku/iuphaiku_dialog.cpp \ ++ haiku/iuphaiku_dragdrop.c haiku/iuphaiku_draw.c haiku/iuphaiku_filedlg.cpp \ ++ haiku/iuphaiku_focus.cpp haiku/iuphaiku_font.cpp haiku/iuphaiku_fontdlg.c \ ++ haiku/iuphaiku_frame.cpp haiku/iuphaiku_globalattrib.c haiku/iuphaiku_help.c \ ++ haiku/iuphaiku_image.cpp haiku/iuphaiku_info.cpp haiku/iuphaiku_label.cpp \ ++ haiku/iuphaiku_list.cpp haiku/iuphaiku_loop.cpp haiku/iuphaiku_menu.cpp \ ++ haiku/iuphaiku_messagedlg.c haiku/iuphaiku_open.cpp haiku/iuphaiku_progressbar.cpp \ ++ haiku/iuphaiku_tabs.cpp haiku/iuphaiku_text.cpp haiku/iuphaiku_timer.cpp \ ++ haiku/iuphaiku_tips.c haiku/iuphaiku_toggle.cpp haiku/iuphaiku_tree.cpp \ ++ haiku/iuphaiku_val.cpp ++ INCLUDES += haiku ++# DEFINES += _WIN32_WINNT=$(WIN32VER) _WIN32_IE=$(WIN32VER) WINVER=$(WIN32VER) NOTREEVIEW ++else + ifdef USE_GTK + CHECK_GTK = Yes + DEFINES += GTK_DISABLE_DEPRECATED +@@ -118,6 +138,7 @@ else + DEFINES += _WIN32_WINNT=$(WIN32VER) _WIN32_IE=0x600 WINVER=$(WIN32VER) NOTREEVIEW + endif + endif ++endif + + ifneq ($(findstring dll, $(TEC_UNAME)), ) + DEFINES += IUP_DLL +diff --git a/src/haiku/iupgtk_draw_cairo.c b/src/haiku/iupgtk_draw_cairo.c +new file mode 100644 +index 0000000..d4a8b14 +--- /dev/null ++++ b/src/haiku/iupgtk_draw_cairo.c +@@ -0,0 +1,322 @@ ++/** \file ++ * \brief Draw Functions ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++ ++#include "iup.h" ++ ++#include "iup_attrib.h" ++#include "iup_class.h" ++#include "iup_str.h" ++#include "iup_object.h" ++#include "iup_image.h" ++#include "iup_draw.h" ++ ++#include "iupgtk_drv.h" ++ ++/* This was build for GTK3, but works also for GTK2 */ ++ ++struct _IdrawCanvas{ ++ Ihandle* ih; ++ int w, h; ++ ++ GdkWindow* window; ++ cairo_t *cr, *image_cr; ++}; ++ ++IdrawCanvas* iupDrawCreateCanvas(Ihandle* ih) ++{ ++ IdrawCanvas* dc = calloc(1, sizeof(IdrawCanvas)); ++ cairo_surface_t* surface; ++ ++ dc->ih = ih; ++ dc->window = iupgtkGetWindow(ih->handle); ++ dc->cr = gdk_cairo_create(dc->window); ++ ++#if GTK_CHECK_VERSION(2, 24, 0) ++ dc->w = gdk_window_get_width(dc->window); ++ dc->h = gdk_window_get_height(dc->window); ++#else ++ gdk_drawable_get_size(dc->window, &dc->w, &dc->h); ++#endif ++ ++ surface = cairo_surface_create_similar(cairo_get_target(dc->cr), CAIRO_CONTENT_COLOR_ALPHA, dc->w, dc->h); ++ dc->image_cr = cairo_create(surface); ++ cairo_surface_destroy(surface); ++ ++ return dc; ++} ++ ++void iupDrawKillCanvas(IdrawCanvas* dc) ++{ ++ cairo_destroy(dc->image_cr); ++ cairo_destroy(dc->cr); ++ ++ free(dc); ++} ++ ++void iupDrawUpdateSize(IdrawCanvas* dc) ++{ ++ int w, h; ++ ++#if GTK_CHECK_VERSION(2, 24, 0) ++ w = gdk_window_get_width(dc->window); ++ h = gdk_window_get_height(dc->window); ++#else ++ gdk_drawable_get_size(dc->window, &w, &h); ++#endif ++ ++ if (w != dc->w || h != dc->h) ++ { ++ cairo_surface_t* surface; ++ ++ dc->w = w; ++ dc->h = h; ++ ++ cairo_destroy(dc->image_cr); ++ ++ surface = cairo_surface_create_similar(cairo_get_target(dc->cr), CAIRO_CONTENT_COLOR_ALPHA, dc->w, dc->h); ++ dc->image_cr = cairo_create(surface); ++ cairo_surface_destroy(surface); ++ } ++} ++ ++void iupDrawFlush(IdrawCanvas* dc) ++{ ++ /* flush the writing in the image */ ++ cairo_show_page(dc->image_cr); ++ ++ cairo_rectangle(dc->cr, 0, 0, dc->w, dc->h); ++ cairo_clip(dc->cr); ++ ++ /* creates a pattern from the image and sets it as source in the canvas. */ ++ cairo_set_source_surface(dc->cr, cairo_get_target(dc->image_cr), 0, 0); ++ ++// cairo_pattern_set_extend(cairo_get_source(dc->cr), CAIRO_EXTEND_NONE); ++ cairo_set_operator(dc->cr, CAIRO_OPERATOR_SOURCE); ++ cairo_paint(dc->cr); /* paints the current source everywhere within the current clip region. */ ++} ++ ++void iupDrawGetSize(IdrawCanvas* dc, int *w, int *h) ++{ ++ if (w) *w = dc->w; ++ if (h) *h = dc->h; ++} ++ ++void iupDrawParentBackground(IdrawCanvas* dc) ++{ ++ unsigned char r=0, g=0, b=0; ++ char* color = iupBaseNativeParentGetBgColorAttrib(dc->ih); ++ iupStrToRGB(color, &r, &g, &b); ++ iupDrawRectangle(dc, 0, 0, dc->w-1, dc->h-1, r, g, b, IUP_DRAW_FILL); ++} ++ ++void iupDrawRectangle(IdrawCanvas* dc, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b, int style) ++{ ++ cairo_set_source_rgba(dc->image_cr, iupCOLOR8ToDouble(r), ++ iupCOLOR8ToDouble(g), ++ iupCOLOR8ToDouble(b), ++ 1.0); ++ ++ if (style==IUP_DRAW_FILL) ++ { ++ cairo_rectangle(dc->image_cr, x1, y1, x2-x1+1, y2-y1+1); ++ cairo_fill(dc->image_cr); ++ } ++ else ++ { ++ if (style==IUP_DRAW_STROKE_DASH) ++ { ++ double dashes[2]; ++ dashes[0] = 6.0; dashes[1] = 2.0; ++ cairo_set_dash(dc->image_cr, dashes, 2, 0); ++ } ++ else ++ cairo_set_dash(dc->image_cr, 0, 0, 0); ++ ++ cairo_rectangle(dc->image_cr, x1, y1, x2-x1, y2-y1); /* outlined rectangle is actually of size w+1,h+1 */ ++ cairo_stroke(dc->image_cr); ++ } ++} ++ ++void iupDrawLine(IdrawCanvas* dc, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b, int style) ++{ ++ cairo_set_source_rgba(dc->image_cr, iupCOLOR8ToDouble(r), ++ iupCOLOR8ToDouble(g), ++ iupCOLOR8ToDouble(b), ++ 1.0); ++ ++ if (style==IUP_DRAW_STROKE_DASH) ++ { ++ double dashes[2]; ++ dashes[0] = 6.0; dashes[1] = 2.0; ++ cairo_set_dash(dc->image_cr, dashes, 2, 0); ++ } ++ else ++ cairo_set_dash(dc->image_cr, 0, 0, 0); ++ ++ cairo_move_to(dc->image_cr, x1, y1); ++ cairo_line_to(dc->image_cr, x2, y2); ++ cairo_stroke(dc->image_cr); ++} ++ ++void iupDrawArc(IdrawCanvas* dc, int x1, int y1, int x2, int y2, double a1, double a2, unsigned char r, unsigned char g, unsigned char b, int style) ++{ ++ int xc, yc, w, h; ++ ++ cairo_set_source_rgba(dc->image_cr, iupCOLOR8ToDouble(r), ++ iupCOLOR8ToDouble(g), ++ iupCOLOR8ToDouble(b), ++ 1.0); ++ ++ if (style!=IUP_DRAW_FILL) ++ { ++ if (style==IUP_DRAW_STROKE_DASH) ++ { ++ double dashes[2]; ++ dashes[0] = 6.0; dashes[1] = 2.0; ++ cairo_set_dash(dc->image_cr, dashes, 2, 0); ++ } ++ else ++ cairo_set_dash(dc->image_cr, 0, 0, 0); ++ } ++ ++ w = x2-x1+1; ++ h = y2-y1+1; ++ xc = x1 + w/2; ++ yc = y1 + h/2; ++ ++ if (w == h) ++ { ++ cairo_arc(dc->image_cr, xc, yc, 0.5*w, a1, a2); ++ ++ if (style==IUP_DRAW_FILL) ++ cairo_fill(dc->image_cr); ++ else ++ cairo_stroke(dc->image_cr); ++ } ++ else /* Ellipse: change the scale to create from the circle */ ++ { ++ cairo_save(dc->image_cr); /* save to use the local transform */ ++ ++ cairo_translate(dc->image_cr, xc, yc); ++ cairo_scale(dc->image_cr, w/h, 1.0); ++ cairo_translate(dc->image_cr, -xc, -yc); ++ ++ cairo_arc(dc->image_cr, xc, yc, 0.5*h, a1, a2); ++ ++ if (style==IUP_DRAW_FILL) ++ cairo_fill(dc->image_cr); ++ else ++ cairo_stroke(dc->image_cr); ++ ++ cairo_restore(dc->image_cr); /* restore from local */ ++ } ++} ++ ++void iupDrawPolygon(IdrawCanvas* dc, int* points, int count, unsigned char r, unsigned char g, unsigned char b, int style) ++{ ++ int i; ++ ++ cairo_set_source_rgba(dc->image_cr, iupCOLOR8ToDouble(r), ++ iupCOLOR8ToDouble(g), ++ iupCOLOR8ToDouble(b), ++ 1.0); ++ ++ if (style!=IUP_DRAW_FILL) ++ { ++ if (style==IUP_DRAW_STROKE_DASH) ++ { ++ double dashes[2]; ++ dashes[0] = 6.0; dashes[1] = 2.0; ++ cairo_set_dash(dc->image_cr, dashes, 2, 0); ++ } ++ else ++ cairo_set_dash(dc->image_cr, 0, 0, 0); ++ } ++ ++ cairo_move_to(dc->image_cr, points[0], points[1]); ++ for (i=0; iimage_cr, points[2*i], points[2*i+1]); ++ ++ if (style==IUP_DRAW_FILL) ++ cairo_fill(dc->image_cr); ++ else ++ cairo_stroke(dc->image_cr); ++} ++ ++void iupDrawSetClipRect(IdrawCanvas* dc, int x1, int y1, int x2, int y2) ++{ ++ cairo_rectangle(dc->image_cr, x1, y1, x2-x1+1, y2-y1+1); ++ cairo_clip(dc->image_cr); ++} ++ ++void iupDrawResetClip(IdrawCanvas* dc) ++{ ++ cairo_reset_clip(dc->image_cr); ++} ++ ++void iupDrawText(IdrawCanvas* dc, const char* text, int len, int x, int y, unsigned char r, unsigned char g, unsigned char b, const char* font) ++{ ++ PangoLayout* fontlayout = (PangoLayout*)iupgtkGetPangoLayout(font); ++ ++ pango_layout_set_text(fontlayout, iupgtkStrConvertToUTF8(text), len); ++ ++ cairo_set_source_rgba(dc->image_cr, iupCOLOR8ToDouble(r), ++ iupCOLOR8ToDouble(g), ++ iupCOLOR8ToDouble(b), ++ 1.0); ++ ++ pango_cairo_update_layout(dc->image_cr, fontlayout); ++ ++ cairo_move_to(dc->image_cr, x, y); ++ pango_cairo_show_layout(dc->image_cr, fontlayout); ++} ++ ++void iupDrawImage(IdrawCanvas* dc, const char* name, int make_inactive, int x, int y, int *img_w, int *img_h) ++{ ++ int bpp; ++ GdkPixbuf* pixbuf = iupImageGetImage(name, dc->ih, make_inactive); ++ if (!pixbuf) ++ return; ++ ++ /* must use this info, since image can be a driver image loaded from resources */ ++ iupdrvImageGetInfo(pixbuf, img_w, img_h, &bpp); ++ ++ cairo_save (dc->image_cr); ++ ++ cairo_rectangle(dc->image_cr, x, y, *img_w, *img_h); ++ cairo_clip(dc->image_cr); ++ ++ gdk_cairo_set_source_pixbuf(dc->image_cr, pixbuf, x, y); ++ cairo_paint(dc->image_cr); /* paints the current source everywhere within the current clip region. */ ++ ++ /* must restore clipping */ ++ cairo_restore (dc->image_cr); ++} ++ ++void iupDrawSelectRect(IdrawCanvas* dc, int x, int y, int w, int h) ++{ ++ cairo_set_source_rgba(dc->image_cr, 0, 0, 1, 0.80); ++ cairo_rectangle(dc->image_cr, x, y, w, h); ++ cairo_fill(dc->image_cr); ++} ++ ++void iupDrawFocusRect(IdrawCanvas* dc, int x, int y, int w, int h) ++{ ++#if GTK_CHECK_VERSION(3, 0, 0) ++ GtkStyleContext* context = gtk_widget_get_style_context(dc->ih->handle); ++ gtk_render_focus(context, dc->image_cr, x, y, w, h); ++#else ++ GtkStyle *style = gtk_widget_get_style(dc->ih->handle); ++ gtk_paint_focus(style, dc->window, GTK_STATE_NORMAL, NULL, NULL, NULL, x, y, w, h); ++#endif ++} +diff --git a/src/haiku/iupgtk_key.c b/src/haiku/iupgtk_key.c +new file mode 100644 +index 0000000..a63ab57 +--- /dev/null ++++ b/src/haiku/iupgtk_key.c +@@ -0,0 +1,443 @@ ++/** \file ++ * \brief GTK Driver keyboard mapping ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#include ++#include ++#if GTK_CHECK_VERSION(3, 0, 0) ++#include ++#endif ++ ++#include ++#include ++ ++#include "iup.h" ++#include "iupcbs.h" ++#include "iupkey.h" ++ ++#include "iup_object.h" ++#include "iup_key.h" ++ ++#include "iup_drv.h" ++#include "iupgtk_drv.h" ++ ++ ++typedef struct _Igtk2iupkey ++{ ++ guint gtkcode; ++ int iupcode; ++ int s_iupcode; ++ int c_iupcode; ++ int m_iupcode; ++ int y_iupcode; ++} Igtk2iupkey; ++ ++static Igtk2iupkey gtkkey_map[] = { ++ ++{ GDK_Escape, K_ESC, K_sESC, K_cESC, K_mESC ,K_yESC }, ++{ GDK_Pause, K_PAUSE, K_sPAUSE, K_cPAUSE, K_mPAUSE ,K_yPAUSE }, ++{ GDK_Print, K_Print, K_sPrint, K_cPrint, K_mPrint ,K_yPrint }, ++{ GDK_Menu, K_Menu, K_sMenu, K_cMenu, K_mMenu ,K_yMenu }, ++ ++{ GDK_Home, K_HOME, K_sHOME, K_cHOME, K_mHOME ,K_yHOME }, ++{ GDK_Up, K_UP, K_sUP, K_cUP, K_mUP ,K_yUP }, ++{ GDK_Prior, K_PGUP, K_sPGUP, K_cPGUP, K_mPGUP ,K_yPGUP }, ++{ GDK_Left, K_LEFT, K_sLEFT, K_cLEFT, K_mLEFT ,K_yLEFT }, ++{ GDK_Begin, K_MIDDLE,K_sMIDDLE, K_cMIDDLE,K_mMIDDLE,K_yMIDDLE}, ++{ GDK_Right, K_RIGHT, K_sRIGHT, K_cRIGHT, K_mRIGHT ,K_yRIGHT }, ++{ GDK_End, K_END, K_sEND, K_cEND, K_mEND ,K_yEND }, ++{ GDK_Down, K_DOWN, K_sDOWN, K_cDOWN, K_mDOWN ,K_yDOWN }, ++{ GDK_Next, K_PGDN, K_sPGDN, K_cPGDN, K_mPGDN ,K_yPGDN }, ++{ GDK_Insert, K_INS, K_sINS, K_cINS, K_mINS ,K_yINS }, ++{ GDK_Delete, K_DEL, K_sDEL, K_cDEL, K_mDEL ,K_yDEL }, ++{ GDK_space, K_SP, K_sSP, K_cSP, K_mSP ,K_ySP }, ++{ GDK_Tab, K_TAB, K_sTAB, K_cTAB, K_mTAB ,K_yTAB }, ++{ GDK_Return, K_CR, K_sCR, K_cCR, K_mCR ,K_yCR }, ++{ GDK_BackSpace, K_BS, K_sBS, K_cBS, K_mBS ,K_yBS }, ++ ++{ GDK_1, K_1, K_exclam, K_c1, K_m1, K_y1 }, ++{ GDK_2, K_2, K_at, K_c2, K_m2, K_y2 }, ++{ GDK_3, K_3, K_numbersign, K_c3, K_m3, K_y3 }, ++{ GDK_4, K_4, K_dollar, K_c4, K_m4, K_y4 }, ++{ GDK_5, K_5, K_percent, K_c5, K_m5, K_y5 }, ++{ GDK_6, K_6, K_circum, K_c6, K_m6, K_y6 }, ++{ GDK_7, K_7, K_ampersand, K_c7, K_m7, K_y7 }, ++{ GDK_8, K_8, K_asterisk, K_c8, K_m8, K_y8 }, ++{ GDK_9, K_9, K_parentleft, K_c9, K_m9, K_y9 }, ++{ GDK_0, K_0, K_parentright, K_c0, K_m0, K_y0 }, ++ ++/* Shift will be flaged so s_iupcode will contain the right code */ ++{ GDK_exclam, K_1, K_exclam, K_c1, K_m1, K_y1 }, ++{ GDK_at, K_2, K_at, K_c2, K_m2, K_y2 }, ++{ GDK_numbersign, K_3, K_numbersign, K_c3, K_m3, K_y3 }, ++{ GDK_dollar, K_4, K_dollar, K_c4, K_m4, K_y4 }, ++{ GDK_percent, K_5, K_percent, K_c5, K_m5, K_y5 }, ++{ GDK_dead_diaeresis, K_6, K_circum, K_c6, K_m6, K_y6 }, ++{ GDK_ampersand, K_7, K_ampersand, K_c7, K_m7, K_y7 }, ++{ GDK_asterisk, K_8, K_asterisk, K_c8, K_m8, K_y8 }, ++{ GDK_parenleft, K_9, K_parentleft, K_c9, K_m9, K_y9 }, ++{ GDK_parenright, K_0, K_parentright, K_c0, K_m0, K_y0 }, ++ ++{ GDK_a, K_a, K_A, K_cA, K_mA, K_yA }, ++{ GDK_b, K_b, K_B, K_cB, K_mB, K_yB }, ++{ GDK_c, K_c, K_C, K_cC, K_mC, K_yC }, ++{ GDK_d, K_d, K_D, K_cD, K_mD, K_yD }, ++{ GDK_e, K_e, K_E, K_cE, K_mE, K_yE }, ++{ GDK_f, K_f, K_F, K_cF, K_mF, K_yF }, ++{ GDK_g, K_g, K_G, K_cG, K_mG, K_yG }, ++{ GDK_h, K_h, K_H, K_cH, K_mH, K_yH }, ++{ GDK_i, K_i, K_I, K_cI, K_mI, K_yI }, ++{ GDK_j, K_j, K_J, K_cJ, K_mJ, K_yJ }, ++{ GDK_k, K_k, K_K, K_cK, K_mK, K_yK }, ++{ GDK_l, K_l, K_L, K_cL, K_mL, K_yL }, ++{ GDK_m, K_m, K_M, K_cM, K_mM, K_yM }, ++{ GDK_n, K_n, K_N, K_cN, K_mN, K_yN }, ++{ GDK_o, K_o, K_O, K_cO, K_mO, K_yO }, ++{ GDK_p, K_p, K_P, K_cP, K_mP, K_yP }, ++{ GDK_q, K_q, K_Q, K_cQ, K_mQ, K_yQ }, ++{ GDK_r, K_r, K_R, K_cR, K_mR, K_yR }, ++{ GDK_s, K_s, K_S, K_cS, K_mS, K_yS }, ++{ GDK_t, K_t, K_T, K_cT, K_mT, K_yT }, ++{ GDK_u, K_u, K_U, K_cU, K_mU, K_yU }, ++{ GDK_v, K_v, K_V, K_cV, K_mV, K_yV }, ++{ GDK_w, K_w, K_W, K_cW, K_mW, K_yW }, ++{ GDK_x, K_x, K_X, K_cX, K_mX, K_yX }, ++{ GDK_y, K_y, K_Y, K_cY, K_mY, K_yY }, ++{ GDK_z, K_z, K_Z, K_cZ, K_mZ, K_yZ }, ++ ++/* Shift will be flaged so s_iupcode will contain the right code */ ++{ GDK_A, K_a, K_A, K_cA, K_mA, K_yA }, ++{ GDK_B, K_b, K_B, K_cB, K_mB, K_yB }, ++{ GDK_C, K_c, K_C, K_cC, K_mC, K_yC }, ++{ GDK_D, K_d, K_D, K_cD, K_mD, K_yD }, ++{ GDK_E, K_e, K_E, K_cE, K_mE, K_yE }, ++{ GDK_F, K_f, K_F, K_cF, K_mF, K_yF }, ++{ GDK_G, K_g, K_G, K_cG, K_mG, K_yG }, ++{ GDK_H, K_h, K_H, K_cH, K_mH, K_yH }, ++{ GDK_I, K_i, K_I, K_cI, K_mI, K_yI }, ++{ GDK_J, K_j, K_J, K_cJ, K_mJ, K_yJ }, ++{ GDK_K, K_k, K_K, K_cK, K_mK, K_yK }, ++{ GDK_L, K_l, K_L, K_cL, K_mL, K_yL }, ++{ GDK_M, K_m, K_M, K_cM, K_mM, K_yM }, ++{ GDK_N, K_n, K_N, K_cN, K_mN, K_yN }, ++{ GDK_O, K_o, K_O, K_cO, K_mO, K_yO }, ++{ GDK_P, K_p, K_P, K_cP, K_mP, K_yP }, ++{ GDK_Q, K_q, K_Q, K_cQ, K_mQ, K_yQ }, ++{ GDK_R, K_r, K_R, K_cR, K_mR, K_yR }, ++{ GDK_S, K_s, K_S, K_cS, K_mS, K_yS }, ++{ GDK_T, K_t, K_T, K_cT, K_mT, K_yT }, ++{ GDK_U, K_u, K_U, K_cU, K_mU, K_yU }, ++{ GDK_V, K_v, K_V, K_cV, K_mV, K_yV }, ++{ GDK_W, K_w, K_W, K_cW, K_mW, K_yW }, ++{ GDK_X, K_x, K_X, K_cX, K_mX, K_yX }, ++{ GDK_Y, K_y, K_Y, K_cY, K_mY, K_yY }, ++{ GDK_Z, K_z, K_Z, K_cZ, K_mZ, K_yZ }, ++ ++{ GDK_F1, K_F1, K_sF1, K_cF1, K_mF1, K_yF1 }, ++{ GDK_F2, K_F2, K_sF2, K_cF2, K_mF2, K_yF2 }, ++{ GDK_F3, K_F3, K_sF3, K_cF3, K_mF3, K_yF3 }, ++{ GDK_F4, K_F4, K_sF4, K_cF4, K_mF4, K_yF4 }, ++{ GDK_F5, K_F5, K_sF5, K_cF5, K_mF5, K_yF5 }, ++{ GDK_F6, K_F6, K_sF6, K_cF6, K_mF6, K_yF6 }, ++{ GDK_F7, K_F7, K_sF7, K_cF7, K_mF7, K_yF7 }, ++{ GDK_F8, K_F8, K_sF8, K_cF8, K_mF8, K_yF8 }, ++{ GDK_F9, K_F9, K_sF9, K_cF9, K_mF9, K_yF9 }, ++{ GDK_F10, K_F10, K_sF10, K_cF10, K_mF10, K_yF10 }, ++{ GDK_F11, K_F11, K_sF11, K_cF11, K_mF11, K_yF11 }, ++{ GDK_F12, K_F12, K_sF12, K_cF12, K_mF12, K_yF12 }, ++ ++{ GDK_semicolon, K_semicolon, K_colon, K_cSemicolon, K_mSemicolon, K_ySemicolon }, ++{ GDK_equal, K_equal, K_plus, K_cEqual, K_mEqual, K_yEqual }, ++{ GDK_comma, K_comma, K_less, K_cComma, K_mComma, K_yComma }, ++{ GDK_minus, K_minus, K_underscore, K_cMinus, K_mMinus, K_yMinus }, ++{ GDK_period, K_period, K_greater, K_cPeriod, K_mPeriod, K_yPeriod }, ++{ GDK_slash, K_slash, K_question, K_cSlash, K_mSlash, K_ySlash }, ++{ GDK_grave, K_grave, K_tilde, 0, 0, 0 }, ++{ GDK_bracketleft, K_bracketleft, K_braceleft, K_cBracketleft, K_mBracketleft, K_yBracketleft }, ++{ GDK_backslash, K_backslash, K_bar, K_cBackslash, K_mBackslash, K_yBackslash }, ++{ GDK_bracketright,K_bracketright, K_braceright, K_cBracketright,K_mBracketright,K_yBracketright }, ++{ GDK_apostrophe, K_apostrophe, K_quotedbl, 0, 0, 0 }, ++ ++/* Shift will be flaged so s_iupcode will contain the right code */ ++{ GDK_colon, K_semicolon, K_colon, K_cSemicolon, K_mSemicolon, K_ySemicolon }, ++{ GDK_plus, K_equal, K_plus, K_cEqual, K_mEqual, K_yEqual }, ++{ GDK_less, K_comma, K_less, K_cComma, K_mComma, K_yComma }, ++{ GDK_underscore, K_minus, K_underscore, K_cMinus, K_mMinus, K_yMinus }, ++{ GDK_greater, K_period, K_greater, K_cPeriod, K_mPeriod, K_yPeriod }, ++{ GDK_question, K_slash, K_question, K_cSlash, K_mSlash, K_ySlash }, ++{ GDK_braceleft, K_bracketleft, K_braceleft, K_cBracketleft, K_mBracketleft, K_yBracketleft }, ++{ GDK_bar, K_backslash, K_bar, K_cBackslash, K_mBackslash, K_yBackslash }, ++{ GDK_braceright, K_bracketright, K_braceright, K_cBracketright,K_mBracketright,K_yBracketright }, ++{ GDK_quotedbl, K_apostrophe, K_quotedbl, 0, 0, 0 }, ++ ++{ GDK_KP_0, K_0, K_0, K_c0, K_m0, K_y0 }, ++{ GDK_KP_1, K_1, K_1, K_c1, K_m1, K_y1 }, ++{ GDK_KP_2, K_2, K_2, K_c2, K_m2, K_y2 }, ++{ GDK_KP_3, K_3, K_3, K_c3, K_m3, K_y3 }, ++{ GDK_KP_4, K_4, K_4, K_c4, K_m4, K_y4 }, ++{ GDK_KP_5, K_5, K_5, K_c5, K_m5, K_y5 }, ++{ GDK_KP_6, K_6, K_6, K_c6, K_m6, K_y6 }, ++{ GDK_KP_7, K_7, K_7, K_c7, K_m7, K_y7 }, ++{ GDK_KP_8, K_8, K_8, K_c8, K_m8, K_y8 }, ++{ GDK_KP_9, K_9, K_9, K_c9, K_m9, K_y9 }, ++{ GDK_KP_Multiply, K_asterisk, K_sAsterisk, K_cAsterisk, K_mAsterisk, K_yAsterisk }, ++{ GDK_KP_Add, K_plus, K_sPlus, K_cPlus, K_mPlus, K_yPlus }, ++{ GDK_KP_Subtract, K_minus, K_sMinus, K_cMinus, K_mMinus, K_yMinus }, ++{ GDK_KP_Decimal, K_period, K_sPeriod, K_cPeriod, K_mPeriod, K_yPeriod }, ++{ GDK_KP_Divide, K_slash, K_sSlash, K_cSlash, K_mSlash, K_ySlash }, ++{ GDK_KP_Separator, K_comma, K_sComma, K_cComma, K_mComma, K_yComma }, ++ ++{ GDK_ccedilla, K_ccedilla, K_Ccedilla, K_cCcedilla, K_mCcedilla, K_yCcedilla }, ++{ GDK_Ccedilla, K_ccedilla, K_Ccedilla, K_cCcedilla, K_mCcedilla, K_yCcedilla }, ++ ++{ GDK_dead_tilde, K_tilde, K_circum, 0, 0, 0 }, ++{ GDK_dead_acute, K_acute, K_grave, 0, 0, 0 }, ++{ GDK_dead_grave, K_grave, K_tilde, 0, 0, 0 }, ++{ GDK_dead_circumflex, K_tilde, K_circum, 0, 0, 0 }, ++ ++{ GDK_KP_F1, K_F1, K_sF1, K_cF1, K_mF1, K_yF1 }, ++{ GDK_KP_F2, K_F2, K_sF2, K_cF2, K_mF2, K_yF2 }, ++{ GDK_KP_F3, K_F3, K_sF3, K_cF3, K_mF3, K_yF3 }, ++{ GDK_KP_F4, K_F4, K_sF4, K_cF4, K_mF4, K_yF4 }, ++{ GDK_KP_Space, K_SP, K_sSP, K_cSP, K_mSP ,K_ySP }, ++{ GDK_KP_Tab, K_TAB, K_sTAB, K_cTAB, K_mTAB ,K_yTAB }, ++{ GDK_KP_Equal, K_equal, 0, K_cEqual, K_mEqual, K_yEqual }, ++ ++{ GDK_KP_Enter, K_CR, K_sCR, K_cCR, K_mCR, K_yCR }, ++{ GDK_KP_Home, K_HOME, K_sHOME, K_cHOME, K_mHOME, K_yHOME }, ++{ GDK_KP_Up, K_UP, K_sUP, K_cUP, K_mUP, K_yUP }, ++{ GDK_KP_Page_Up, K_PGUP, K_sPGUP, K_cPGUP, K_mPGUP, K_yPGUP }, ++{ GDK_KP_Left, K_LEFT, K_sLEFT, K_cLEFT, K_mLEFT, K_yLEFT }, ++{ GDK_KP_Begin, K_MIDDLE,K_sMIDDLE, K_cMIDDLE,K_mMIDDLE,K_yMIDDLE}, ++{ GDK_KP_Right, K_RIGHT, K_sRIGHT, K_cRIGHT, K_mRIGHT, K_yRIGHT }, ++{ GDK_KP_End, K_END, K_sEND, K_cEND, K_mEND, K_yEND }, ++{ GDK_KP_Down, K_DOWN, K_sDOWN, K_cDOWN, K_mDOWN, K_yDOWN }, ++{ GDK_KP_Page_Down, K_PGDN, K_sPGDN, K_cPGDN, K_mPGDN, K_yPGDN }, ++{ GDK_KP_Insert, K_INS, K_sINS, K_cINS, K_mINS, K_yINS }, ++{ GDK_KP_Delete, K_DEL, K_sDEL, K_cDEL, K_mDEL, K_yDEL } ++ ++}; ++ ++void iupdrvKeyEncode(int key, unsigned int *keyval, unsigned int *state) ++{ ++ int i, iupcode = key & 0xFF; /* 0-255 interval */ ++ int count = sizeof(gtkkey_map)/sizeof(gtkkey_map[0]); ++ for (i = 0; i < count; i++) ++ { ++ Igtk2iupkey* key_map = &(gtkkey_map[i]); ++ if (key_map->iupcode == iupcode) ++ { ++ *keyval = key_map->gtkcode; ++ *state = 0; ++ ++ if (iupcode != key) ++ { ++ if (key_map->c_iupcode == key) ++ *state = GDK_CONTROL_MASK; ++ else if (key_map->m_iupcode == key) ++ *state = GDK_MOD1_MASK; ++ else if (key_map->y_iupcode == key) ++ *state = GDK_MOD4_MASK; ++ else if (key_map->s_iupcode == key) ++ *state = GDK_SHIFT_MASK; ++ } ++ return; ++ } ++ else if (key_map->s_iupcode == key) /* There are Shift keys below 256 */ ++ { ++ *keyval = key_map->gtkcode; ++ *state = GDK_SHIFT_MASK; ++ ++ if ((*keyval >= GDK_a) && ++ (*keyval <= GDK_z)) ++ { ++ /* remap to upper case */ ++ *keyval -= GDK_a-GDK_A; ++ } ++ return; ++ } ++ } ++} ++ ++static int gtkKeyMap2Iup(int state, int i) ++{ ++ int code = 0; ++ if (state & GDK_CONTROL_MASK) /* Ctrl */ ++ code = gtkkey_map[i].c_iupcode; ++ else if (state & GDK_MOD1_MASK || ++ state & GDK_MOD5_MASK) /* Alt */ ++ code = gtkkey_map[i].m_iupcode; ++ else if (state & GDK_MOD4_MASK) /* Apple/Win */ ++ code = gtkkey_map[i].y_iupcode; ++ else if (state & GDK_LOCK_MASK) /* CapsLock */ ++ { ++ if ((state & GDK_SHIFT_MASK) || !iupKeyCanCaps(gtkkey_map[i].iupcode)) ++ return gtkkey_map[i].iupcode; ++ else ++ code = gtkkey_map[i].s_iupcode; ++ } ++ else if (state & GDK_SHIFT_MASK) /* Shift */ ++ code = gtkkey_map[i].s_iupcode; ++ else ++ return gtkkey_map[i].iupcode; ++ ++ if (!code) ++ code = gtkkey_map[i].iupcode; ++ ++ return code; ++} ++ ++int iupgtkKeyDecode(GdkEventKey *evt) ++{ ++ int i; ++ int count = sizeof(gtkkey_map)/sizeof(gtkkey_map[0]); ++ guint keyval = evt->keyval; ++ ++ if ((evt->state & GDK_MOD2_MASK) && /* NumLock */ ++ (keyval >= GDK_KP_Home) && ++ (keyval <= GDK_KP_Delete)) ++ { ++ /* remap to numeric keys */ ++ guint remap_numkey[] = {GDK_KP_7, GDK_KP_4, GDK_KP_8, GDK_KP_6, GDK_KP_2, GDK_KP_9, GDK_KP_3, GDK_KP_1, GDK_KP_5, GDK_KP_0, GDK_KP_Decimal}; ++ keyval = remap_numkey[keyval-GDK_KP_Home]; ++ } ++ ++ for (i = 0; i < count; i++) ++ { ++ if (gtkkey_map[i].gtkcode == keyval) ++ return gtkKeyMap2Iup(evt->state, i); ++ } ++ ++ return 0; ++} ++ ++static int iupObjectIsNativeContainer(Ihandle* ih) ++{ ++ if (ih->iclass->childtype != IUP_CHILDNONE && ++ ih->iclass->nativetype != IUP_TYPEVOID) ++ return 1; ++ else ++ return 0; ++} ++ ++gboolean iupgtkKeyPressEvent(GtkWidget *widget, GdkEventKey *evt, Ihandle *ih) ++{ ++ int result; ++ int code = iupgtkKeyDecode(evt); ++ if (code == 0) ++ return FALSE; ++ ++ /* Avoid duplicate calls if a child of a native container contains the focus. ++ GTK will call the callback for the child and for the container. ++ Ignore the one sent to the parent. For now only IupDialog and IupTabs ++ have keyboard signals intercepted. ++ */ ++ if (iupObjectIsNativeContainer(ih)) ++ { ++ GtkWindow* win = (GtkWindow*)IupGetDialog(ih)->handle; ++ GtkWidget *widget_focus = gtk_window_get_focus(win); ++ if (widget_focus && widget_focus != widget) ++ return FALSE; ++ } ++ ++ result = iupKeyCallKeyCb(ih, code); ++ if (result == IUP_CLOSE) ++ { ++ IupExitLoop(); ++ return FALSE; ++ } ++ if (result == IUP_IGNORE) ++ return TRUE; ++ ++ /* in the previous callback the dialog could be destroyed */ ++ if (iupObjectCheck(ih)) ++ { ++ /* this is called only for canvas */ ++ if (ih->iclass->nativetype == IUP_TYPECANVAS) ++ { ++ result = iupKeyCallKeyPressCb(ih, code, 1); ++ if (result == IUP_CLOSE) ++ { ++ IupExitLoop(); ++ return FALSE; ++ } ++ if (result == IUP_IGNORE) ++ return TRUE; ++ } ++ ++ if (!iupKeyProcessNavigation(ih, code, evt->state & GDK_SHIFT_MASK)) ++ return TRUE; ++ ++ /* compensate the show-help limitation. ++ * It is not called on F1, only on Shift+F1 and Ctrl+F1. */ ++ if (code == K_F1) ++ { ++ Icallback cb = IupGetCallback(ih, "HELP_CB"); ++ if (cb) ++ { ++ if (cb(ih) == IUP_CLOSE) ++ IupExitLoop(); ++ } ++ } ++ } ++ ++ (void)widget; ++ return FALSE; ++} ++ ++gboolean iupgtkKeyReleaseEvent(GtkWidget *widget, GdkEventKey *evt, Ihandle *ih) ++{ ++ /* this is called only for canvas */ ++ int result; ++ int code = iupgtkKeyDecode(evt); ++ if (code == 0) ++ return FALSE; ++ ++ result = iupKeyCallKeyPressCb(ih, code, 0); ++ if (result == IUP_CLOSE) ++ { ++ IupExitLoop(); ++ return FALSE; ++ } ++ if (result == IUP_IGNORE) ++ return TRUE; ++ ++ (void)widget; ++ return FALSE; ++} ++ ++void iupgtkButtonKeySetStatus(guint state, unsigned int but, char* status, int doubleclick) ++{ ++ if (state & GDK_SHIFT_MASK) ++ iupKEY_SETSHIFT(status); ++ ++ if (state & GDK_CONTROL_MASK) ++ iupKEY_SETCONTROL(status); ++ ++ if ((state & GDK_BUTTON1_MASK) || but==1) ++ iupKEY_SETBUTTON1(status); ++ ++ if ((state & GDK_BUTTON2_MASK) || but==2) ++ iupKEY_SETBUTTON2(status); ++ ++ if ((state & GDK_BUTTON3_MASK) || but==3) ++ iupKEY_SETBUTTON3(status); ++ ++ if ((state & GDK_BUTTON4_MASK) || but==4) ++ iupKEY_SETBUTTON4(status); ++ ++ if ((state & GDK_BUTTON5_MASK) || but==5) ++ iupKEY_SETBUTTON5(status); ++ ++ if (state & GDK_MOD1_MASK || state & GDK_MOD5_MASK) /* Alt */ ++ iupKEY_SETALT(status); ++ ++ if (state & GDK_MOD4_MASK) /* Apple/Win */ ++ iupKEY_SETSYS(status); ++ ++ if (doubleclick) ++ iupKEY_SETDOUBLE(status); ++} ++ +diff --git a/src/haiku/iuphaiku_button.cpp b/src/haiku/iuphaiku_button.cpp +new file mode 100644 +index 0000000..aced623 +--- /dev/null ++++ b/src/haiku/iuphaiku_button.cpp +@@ -0,0 +1,286 @@ ++/** \file ++ * \brief Button Control ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "iup.h" ++#include "iupcbs.h" ++ ++#include "iup_object.h" ++#include "iup_layout.h" ++#include "iup_attrib.h" ++#include "iup_str.h" ++#include "iup_image.h" ++#include "iup_button.h" ++#include "iup_drv.h" ++#include "iup_drvfont.h" ++#include "iup_image.h" ++#include "iup_key.h" ++ ++#include "iuphaiku_drv.h" ++ ++class IUPButton: public BButton ++{ ++ public: ++ IUPButton(BMessage* msg) ++ : BButton(BRect(0,0,10,10), "button", NULL, msg) ++ , fBitmap(NULL) ++ { ++ } ++ ++ void Draw(BRect updateRect) ++ { ++ BButton::Draw(updateRect); ++ if (fBitmap) { ++ MovePenTo(6, 6); ++ SetDrawingMode(B_OP_ALPHA); ++ DrawBitmapAsync(fBitmap); ++ } ++ } ++ ++ void SetBitmap(BBitmap* bitmap) ++ { ++ fBitmap = bitmap; ++ } ++ ++ private: ++ BBitmap* fBitmap; ++}; ++ ++void iupdrvButtonAddBorders(int *x, int *y) ++{ ++ // TODO can we use BControlLook here ? ++ int border_size = 2*7+1; /* borders are not symetric */ ++ (*x) += border_size; ++ (*y) += border_size; ++} ++ ++static int beButtonSetTitleAttrib(Ihandle* ih, const char* value) ++{ ++ BButton* button = (BButton*)ih->handle; ++ button->SetLabel(value); ++ return 1; ++} ++ ++static int haikuButtonSetAlignmentAttrib(Ihandle* ih, const char* value) ++{ ++ char value1[30]="", value2[30]=""; ++ iupStrToStrStr(value, value1, value2, ':'); ++ ++ if (iupStrEqualNoCase(value1, "ARIGHT")) ++ UNIMPLEMENTED ++ else if (iupStrEqualNoCase(value1, "ACENTER")) ++ { ++ // This is the default behavior in HAIKU ++ // TODO actually restore it when the others are handled ++ } ++ else /* "ALEFT" */ ++ UNIMPLEMENTED ++ ++ if (iupStrEqualNoCase(value2, "ABOTTOM")) ++ UNIMPLEMENTED ++ else if (iupStrEqualNoCase(value2, "ATOP")) ++ UNIMPLEMENTED ++ else /* ACENTER (default) */ ++ { ++ // This is the default behavior in HAIKU ++ // TODO actually restore it when the others are handled ++ } ++ ++ return 1; ++} ++ ++static int haikuButtonSetPaddingAttrib(Ihandle* ih, const char* value) ++{ ++ iupStrToIntInt(value, &ih->data->horiz_padding, &ih->data->vert_padding, 'x'); ++ if (ih->handle) ++ { ++ if (ih->data->type == IUP_BUTTON_TEXT) /* text only */ ++ { ++ UNIMPLEMENTED ++ } ++ else ++ { ++ UNIMPLEMENTED ++ } ++ return 0; ++ } ++ else ++ return 1; /* store until not mapped, when mapped will be set again */ ++} ++ ++static int gtkButtonSetFgColorAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++/* ++static int gtkButtonSetStandardFontAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++*/ ++ ++/* FIXME this is copypasted from the same method for Toggle. we should share it. */ ++static void gtkButtonSetPixbuf(Ihandle* ih, const char* name, int make_inactive) ++{ ++ IUPButton* button = (IUPButton*)ih->handle; ++ ++ if (name) ++ { ++ BBitmap* bitmap = (BBitmap*)iupImageGetImage(name, ih, make_inactive); ++ button->SetBitmap(bitmap); ++ } ++} ++ ++static int gtkButtonSetImageAttrib(Ihandle* ih, const char* value) ++{ ++ if (ih->data->type & IUP_BUTTON_IMAGE) ++ { ++ if (iupdrvIsActive(ih)) ++ gtkButtonSetPixbuf(ih, value, 0); ++ else ++ { ++ if (!iupAttribGet(ih, "IMINACTIVE")) ++ { ++ /* if not active and IMINACTIVE is not defined ++ then automaticaly create one based on IMAGE */ ++ gtkButtonSetPixbuf(ih, value, 1); /* make_inactive */ ++ } ++ } ++ return 1; ++ } ++ else ++ return 0; ++} ++ ++static int gtkButtonSetImInactiveAttrib(Ihandle* ih, const char* value) ++{ ++ if (ih->data->type & IUP_BUTTON_IMAGE) ++ { ++ if (!iupdrvIsActive(ih)) ++ { ++ if (value) ++ gtkButtonSetPixbuf(ih, value, 0); ++ else ++ { ++ /* if not defined then automaticaly create one based on IMAGE */ ++ char* name = iupAttribGet(ih, "IMAGE"); ++ gtkButtonSetPixbuf(ih, name, 1); /* make_inactive */ ++ } ++ } ++ return 1; ++ } ++ else ++ return 0; ++} ++ ++static int gtkButtonSetActiveAttrib(Ihandle* ih, const char* value) ++{ ++ /* update the inactive image if necessary */ ++ if (ih->data->type & IUP_BUTTON_IMAGE) ++ { ++ if (!iupStrBoolean(value)) ++ { ++ char* name = iupAttribGet(ih, "IMINACTIVE"); ++ if (name) ++ gtkButtonSetPixbuf(ih, name, 0); ++ else ++ { ++ /* if not defined then automaticaly create one based on IMAGE */ ++ name = iupAttribGet(ih, "IMAGE"); ++ gtkButtonSetPixbuf(ih, name, 1); /* make_inactive */ ++ } ++ } ++ else ++ { ++ /* must restore the normal image */ ++ char* name = iupAttribGet(ih, "IMAGE"); ++ gtkButtonSetPixbuf(ih, name, 0); ++ } ++ } ++ ++ return iupBaseSetActiveAttrib(ih, value); ++} ++ ++static int gtkButtonMapMethod(Ihandle* ih) ++{ ++ char* value; ++ value = iupAttribGet(ih, "IMAGE"); ++ char* title = iupAttribGet(ih, "TITLE"); ++ ++ BMessage* msg = new BMessage(buttonInvoke); ++ msg->AddPointer("iHandle", ih); ++ ++ BButton* button = new IUPButton(msg); ++ ++ if (value) ++ { ++ ih->data->type = IUP_BUTTON_IMAGE; ++ ++ if (title && *title!=0) { ++ ih->data->type |= IUP_BUTTON_TEXT; ++ } ++ } else { ++ ih->data->type = IUP_BUTTON_TEXT; ++ button->SetLabel(title); ++ } ++ ++ ih->handle = (InativeHandle*)button; ++ ++ iuphaikuBaseAddToParent(ih); ++ return IUP_NOERROR; ++} ++ ++void iupdrvButtonInitClass(Iclass* ic) ++{ ++ /* Driver Dependent Class functions */ ++ ic->Map = gtkButtonMapMethod; ++ ++ /* Driver Dependent Attribute functions */ ++ ++ /* Overwrite Common */ ++// iupClassRegisterAttribute(ic, "STANDARDFONT", NULL, gtkButtonSetStandardFontAttrib, IUPAF_SAMEASSYSTEM, "DEFAULTFONT", IUPAF_NO_SAVE|IUPAF_NOT_MAPPED); ++ ++ /* Overwrite Visual */ ++ iupClassRegisterAttribute(ic, "ACTIVE", iupBaseGetActiveAttrib, gtkButtonSetActiveAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_DEFAULT); ++ ++ /* Visual */ ++ iupClassRegisterAttribute(ic, "BGCOLOR", NULL, iupdrvBaseSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT); ++ ++ /* Special */ ++ iupClassRegisterAttribute(ic, "FGCOLOR", NULL, gtkButtonSetFgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGFGCOLOR", IUPAF_DEFAULT); ++ iupClassRegisterAttribute(ic, "TITLE", NULL, beButtonSetTitleAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ ++ /* IupButton only */ ++ iupClassRegisterAttribute(ic, "ALIGNMENT", NULL, haikuButtonSetAlignmentAttrib, "ACENTER:ACENTER", NULL, IUPAF_NO_INHERIT); /* force new default value */ ++ iupClassRegisterAttribute(ic, "IMAGE", NULL, gtkButtonSetImageAttrib, NULL, NULL, IUPAF_IHANDLENAME|IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "IMINACTIVE", NULL, gtkButtonSetImInactiveAttrib, NULL, NULL, IUPAF_IHANDLENAME|IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "IMPRESS", NULL, NULL, NULL, NULL, IUPAF_IHANDLENAME|IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ ++ iupClassRegisterAttribute(ic, "PADDING", iupButtonGetPaddingAttrib, haikuButtonSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED); ++ iupClassRegisterAttribute(ic, "MARKUP", NULL, NULL, NULL, NULL, IUPAF_DEFAULT); ++} ++ ++void iuphaikuButtonInvoked(Ihandle* ih) ++{ ++ Icallback cb = IupGetCallback(ih, "ACTION"); ++ if (cb) ++ { ++ if (cb(ih) == IUP_CLOSE) ++ IupExitLoop(); ++ } ++} +diff --git a/src/haiku/iuphaiku_canvas.cpp b/src/haiku/iuphaiku_canvas.cpp +new file mode 100644 +index 0000000..8c83345 +--- /dev/null ++++ b/src/haiku/iuphaiku_canvas.cpp +@@ -0,0 +1,277 @@ ++/** \file ++ * \brief Canvas Control ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "iup.h" ++#include "iupcbs.h" ++ ++#include "iup_object.h" ++#include "iup_layout.h" ++#include "iup_attrib.h" ++#include "iup_dialog.h" ++#include "iup_str.h" ++#include "iup_drv.h" ++#include "iup_drvinfo.h" ++#include "iup_drvfont.h" ++#include "iup_canvas.h" ++#include "iup_key.h" ++ ++#include "iuphaiku_drv.h" ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++#define GTK_TYPE_IUPDRAWING_AREA (iup_gtk_drawing_area_get_type ()) ++#define GTK_IUPDRAWING_AREA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_IUPDRAWING_AREA, GtkIupDrawingArea)) ++ ++enum { ++ PROP_0, ++ PROP_HADJUSTMENT, ++ PROP_VADJUSTMENT, ++ PROP_HSCROLL_POLICY, ++ PROP_VSCROLL_POLICY ++}; ++ ++static int gtkCanvasSetBgColorAttrib(Ihandle* ih, const char* value); ++ ++static int gtkCanvasSetXAutoHideAttrib(Ihandle* ih, const char *value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++ ++static int gtkCanvasSetYAutoHideAttrib(Ihandle* ih, const char *value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++ ++static int gtkCanvasSetDXAttrib(Ihandle* ih, const char *value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++ ++static int gtkCanvasSetDYAttrib(Ihandle* ih, const char *value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++ ++static BView* iuphaikuGetScrolled(Ihandle* ih) ++{ ++ BScrollView* sv = (BScrollView*)ih->handle; ++ BScrollBar* sb = sv->ScrollBar(B_HORIZONTAL); ++ if(!sb) sb = sv->ScrollBar(B_VERTICAL); ++ return sb->Target(); ++} ++ ++static int gtkCanvasSetPosXAttrib(Ihandle* ih, const char *value) ++{ ++ float posx, xmin, xmax, dx; ++ if (!(ih->data->sb & IUP_SB_HORIZ)) ++ return 1; ++ if (!iupStrToFloat(value, &posx)) ++ return 1; ++ ++ xmin = iupAttribGetFloat(ih, "XMIN"); ++ xmax = iupAttribGetFloat(ih, "XMAX"); ++ dx = iupAttribGetFloat(ih, "DX"); ++ ++ if (posx < xmin) posx = xmin; ++ if (posx > (xmax - dx)) posx = xmax - dx; ++ ih->data->posx = posx; ++ ++ BView* canvas = iuphaikuGetScrolled(ih); ++ ++ BPoint curPos = canvas->LeftTop(); ++ curPos.x = posx; ++ canvas->ScrollTo(curPos); ++ ++ return 1; ++} ++ ++static int gtkCanvasSetPosYAttrib(Ihandle* ih, const char *value) ++{ ++ float posy, ymin, ymax, dy; ++ if (!iupStrToFloat(value, &posy)) ++ return 1; ++ ymin = iupAttribGetFloat(ih, "YMIN"); ++ ymax = iupAttribGetFloat(ih, "YMAX"); ++ dy = iupAttribGetFloat(ih, "DY"); ++ ++ if (posy < ymin) posy = ymin; ++ if (posy > (ymax - dy)) posy = ymax - dy; ++ ih->data->posy = posy; ++ ++ BView* canvas = (BView*)iupAttribGetStr(ih, "DRAWABLE"); ++ BPoint origin = canvas->LeftTop(); ++ canvas->ScrollTo(origin.x, posy); ++ ++ return 1; ++} ++ ++static int gtkCanvasSetBgColorAttrib(Ihandle* ih, const char* value) ++{ ++ // TODO This will set the color for the BScrollView. Is it ok ? ++ return iupdrvBaseSetBgColorAttrib(ih, value); ++ /* ++ BView* canvas = iuphaikuGetScrolled(ih); ++ unsigned char r, g, b; ++ ++ if (iupStrToRGB(parent_value, &r, &g, &b)) ++ { ++ } ++ ++ canvas->SetViewColor(); ++ canvas->SetLowColor(); ++ return 1; ++ */ ++} ++ ++static void haikuCanvasLayoutUpdateMethod(Ihandle *ih) ++{ ++ iupdrvBaseLayoutUpdateMethod(ih); ++ ++ // Also resize the child ++ BView* canvas = (BView*)iupAttribGetStr(ih, "DRAWABLE"); ++ // TODO we need to substract the scrollbar size, and maybe the canvas wants to ++ // be bigger and have scrollbars... ++ canvas->ResizeTo(ih->currentwidth - 2, ih->currentheight - 2); ++} ++ ++static char* gtkCanvasGetDrawSizeAttrib(Ihandle *ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++class IUPCanvas: public BView ++{ ++ public: ++ IUPCanvas(Ihandle* ih) ++ : BView(BRect(0, 0, 10, 10), "canvas", B_FOLLOW_ALL_SIDES, B_WILL_DRAW | B_FRAME_EVENTS) ++ , fHandle(ih) ++ {} ++ ++ void Draw(BRect rect) ++ { ++ iupAttribSetStrf(fHandle, "CLIPRECT", "%d %d %d %d", rect.left, rect.top, rect.right, rect.bottom); ++ IFnff cb = (IFnff)IupGetCallback(fHandle,"ACTION"); ++ if (cb) { ++ LockLooper(); ++ cb (fHandle, fHandle->data->posx, fHandle->data->posy); ++ UnlockLooper(); ++ } ++ } ++ ++ // TODO handle ScrollBy/ScrollTo (manage X/YMIN/MAX, DX,DY, call SCROLL_CB ++ // TODO handle size changes and call iupdrvBaseLayoutUpdateMethod(ih); ++ // TODO handle events (focus, key press/release, enter, leave, ...) ++ void FrameResized(float w, float h) ++ { ++ IFnii cb = (IFnii)IupGetCallback(fHandle, "RESIZE_CB"); ++ if (cb) { ++ if (!LockLooper()) debugger("Failed to lock view from FrameResized"); ++ cb(fHandle, (int)w, (int)h); ++ UnlockLooper(); ++ } ++ } ++ private: ++ Ihandle* fHandle; ++}; ++ ++static int haikuCanvasMapMethod(Ihandle* ih) ++{ ++ if (!ih->parent) ++ return IUP_ERROR; ++ ++ bool scrollh = false; ++ bool scrollv = false; ++ border_style border = B_NO_BORDER; ++ ++ ih->data->sb = iupBaseGetScrollbar(ih); ++ if (ih->data->sb & IUP_SB_HORIZ) ++ scrollh = true; ++ if (ih->data->sb & IUP_SB_VERT) ++ scrollv = true; ++ ++ if (iupAttribGetBoolean(ih, "BORDER")) ++ { ++ iupAttribSetInt(ih, "BORDERWIDTH", 1); ++ border = B_FANCY_BORDER; ++ } ++ ++ int flags = 0; ++ ++ /* To receive keyboard events, you will need to set the GTK_CAN_FOCUS flag on ++ * the drawing area. */ ++ if (ih->iclass->is_interactive) ++ { ++ if (iupAttribGetBoolean(ih, "CANFOCUS")) ++ flags |= B_NAVIGABLE; ++ } ++ ++ BView* canvas = new IUPCanvas(ih); ++ ++ ih->handle = (InativeHandle*)new BScrollView("scrollcanvas", ++ canvas, B_FOLLOW_LEFT | B_FOLLOW_TOP, flags, scrollh, scrollv, border); ++ ++ /* configure for DRAG&DROP */ ++ if (IupGetCallback(ih, "DROPFILES_CB")) ++ iupAttribSetStr(ih, "DROPFILESTARGET", "YES"); ++ ++ iuphaikuBaseAddToParent(ih); ++ ++ iupAttribSetStr(ih, "DRAWABLE", (char*)canvas); ++ ++ return IUP_NOERROR; ++} ++ ++void iupdrvCanvasInitClass(Iclass* ic) ++{ ++ /* Driver Dependent Class functions */ ++ ic->Map = haikuCanvasMapMethod; ++ ic->LayoutUpdate = haikuCanvasLayoutUpdateMethod; ++ ++ /* Driver Dependent Attribute functions */ ++ ++ /* Visual */ ++ iupClassRegisterAttribute(ic, "BGCOLOR", NULL, gtkCanvasSetBgColorAttrib, "255 255 255", NULL, IUPAF_DEFAULT); /* force new default value */ ++ ++ /* IupCanvas only */ ++ iupClassRegisterAttribute(ic, "CURSOR", NULL, iupdrvBaseSetCursorAttrib, IUPAF_SAMEASSYSTEM, "ARROW", IUPAF_IHANDLENAME|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "DRAWSIZE", gtkCanvasGetDrawSizeAttrib, NULL, NULL, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT); ++ ++ iupClassRegisterAttribute(ic, "DX", NULL, gtkCanvasSetDXAttrib, "0.1", NULL, IUPAF_NO_INHERIT); /* force new default value */ ++ iupClassRegisterAttribute(ic, "DY", NULL, gtkCanvasSetDYAttrib, "0.1", NULL, IUPAF_NO_INHERIT); /* force new default value */ ++ iupClassRegisterAttribute(ic, "POSX", iupCanvasGetPosXAttrib, gtkCanvasSetPosXAttrib, "0", NULL, IUPAF_NO_INHERIT); /* force new default value */ ++ iupClassRegisterAttribute(ic, "POSY", iupCanvasGetPosYAttrib, gtkCanvasSetPosYAttrib, "0", NULL, IUPAF_NO_INHERIT); /* force new default value */ ++ iupClassRegisterAttribute(ic, "XAUTOHIDE", NULL, gtkCanvasSetXAutoHideAttrib, "YES", NULL, IUPAF_DEFAULT); /* force new default value */ ++ iupClassRegisterAttribute(ic, "YAUTOHIDE", NULL, gtkCanvasSetYAutoHideAttrib, "YES", NULL, IUPAF_DEFAULT); /* force new default value */ ++ ++ /* IupCanvas Windows or X only */ ++#ifndef GTK_MAC ++ #ifdef WIN32 ++ iupClassRegisterAttribute(ic, "HWND", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_STRING|IUPAF_NO_INHERIT); ++ #else ++ iupClassRegisterAttribute(ic, "XWINDOW", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_INHERIT|IUPAF_NO_STRING); ++ iupClassRegisterAttribute(ic, "XDISPLAY", (IattribGetFunc)iupdrvGetDisplay, NULL, NULL, NULL, IUPAF_READONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT|IUPAF_NO_STRING); ++ #endif ++#endif ++ ++ /* Not Supported */ ++ iupClassRegisterAttribute(ic, "BACKINGSTORE", NULL, NULL, "YES", NULL, IUPAF_NOT_SUPPORTED|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "TOUCH", NULL, NULL, NULL, NULL, IUPAF_NOT_SUPPORTED|IUPAF_NO_INHERIT); ++} +diff --git a/src/haiku/iuphaiku_clipboard.c b/src/haiku/iuphaiku_clipboard.c +new file mode 100644 +index 0000000..f313b0a +--- /dev/null ++++ b/src/haiku/iuphaiku_clipboard.c +@@ -0,0 +1,122 @@ ++/** \file ++ * \brief Clipboard for the GTK Driver. ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++ ++#include ++#include ++#include ++ ++#include "iup.h" ++ ++#include "iup_object.h" ++#include "iup_attrib.h" ++#include "iup_str.h" ++#include "iup_image.h" ++ ++#include "iuphaiku_drv.h" ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++static int gtkClipboardSetFormatDataAttrib(Ihandle *ih, const char *value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static char* gtkClipboardGetFormatDataAttrib(Ihandle *ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static int gtkClipboardSetTextAttrib(Ihandle *ih, const char *value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static char* gtkClipboardGetTextAttrib(Ihandle *ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static int gtkClipboardSetImageAttrib(Ihandle *ih, const char *value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkClipboardSetNativeImageAttrib(Ihandle *ih, const char *value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static char* gtkClipboardGetNativeImageAttrib(Ihandle *ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static char* gtkClipboardGetTextAvailableAttrib(Ihandle *ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static char* gtkClipboardGetImageAvailableAttrib(Ihandle *ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static char* gtkClipboardGetFormatAvailableAttrib(Ihandle *ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static int gtkClipboardSetAddFormatAttrib(Ihandle *ih, const char *value) ++{ ++ UNIMPLEMENTED; ++ return 0; ++} ++ ++/******************************************************************************/ ++ ++Ihandle* IupClipboard(void) ++{ ++ return IupCreate("clipboard"); ++} ++ ++Iclass* iupClipboardNewClass(void) ++{ ++ Iclass* ic = iupClassNew(NULL); ++ ++ ic->name = "clipboard"; ++ ic->format = NULL; /* no parameters */ ++ ic->nativetype = IUP_TYPECONTROL; ++ ic->childtype = IUP_CHILDNONE; ++ ic->is_interactive = 0; ++ ++ ic->New = iupClipboardNewClass; ++ ++ /* Attribute functions */ ++ iupClassRegisterAttribute(ic, "TEXT", gtkClipboardGetTextAttrib, gtkClipboardSetTextAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "TEXTAVAILABLE", gtkClipboardGetTextAvailableAttrib, NULL, NULL, NULL, IUPAF_READONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); ++ ++ iupClassRegisterAttribute(ic, "NATIVEIMAGE", gtkClipboardGetNativeImageAttrib, gtkClipboardSetNativeImageAttrib, NULL, NULL, IUPAF_NO_STRING|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "IMAGE", NULL, gtkClipboardSetImageAttrib, NULL, NULL, IUPAF_IHANDLENAME|IUPAF_WRITEONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "IMAGEAVAILABLE", gtkClipboardGetImageAvailableAttrib, NULL, NULL, NULL, IUPAF_READONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); ++ ++ iupClassRegisterAttribute(ic, "ADDFORMAT", NULL, gtkClipboardSetAddFormatAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "FORMAT", NULL, NULL, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "FORMATAVAILABLE", gtkClipboardGetFormatAvailableAttrib, NULL, NULL, NULL, IUPAF_READONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "FORMATDATA", gtkClipboardGetFormatDataAttrib, gtkClipboardSetFormatDataAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "FORMATDATASIZE", NULL, NULL, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); ++ ++ return ic; ++} +diff --git a/src/haiku/iuphaiku_colordlg.c b/src/haiku/iuphaiku_colordlg.c +new file mode 100644 +index 0000000..132aae1 +--- /dev/null ++++ b/src/haiku/iuphaiku_colordlg.c +@@ -0,0 +1,31 @@ ++/** \file ++ * \brief IupColorDlg pre-defined dialog ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#include ++#include ++#include ++ ++#include "iup.h" ++ ++#include "iup_object.h" ++#include "iup_attrib.h" ++#include "iup_str.h" ++#include "iup_dialog.h" ++ ++#include "iuphaiku_drv.h" ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++static int gtkColorDlgPopup(Ihandle* ih, int x, int y) ++{ ++ UNIMPLEMENTED ++ return IUP_NOERROR; ++} ++ ++void iupdrvColorDlgInitClass(Iclass* ic) ++{ ++ ic->DlgPopup = gtkColorDlgPopup; ++} +diff --git a/src/haiku/iuphaiku_common.cpp b/src/haiku/iuphaiku_common.cpp +new file mode 100644 +index 0000000..df4b761 +--- /dev/null ++++ b/src/haiku/iuphaiku_common.cpp +@@ -0,0 +1,292 @@ ++/** \file ++ * \brief Haiku Base Functions ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++#include "iup.h" ++#include "iupcbs.h" ++#include "iupkey.h" ++ ++#include "iup_object.h" ++#include "iup_childtree.h" ++#include "iup_key.h" ++#include "iup_str.h" ++#include "iup_class.h" ++#include "iup_attrib.h" ++#include "iup_focus.h" ++#include "iup_key.h" ++#include "iup_image.h" ++#include "iup_drv.h" ++ ++#include "iuphaiku_drv.h" ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++void iupgtkUpdateMnemonic(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++} ++ ++void iupdrvActivate(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++} ++ ++void iupdrvReparent(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++} ++ ++ ++BView* viewFromHandler(BHandler* handler) ++{ ++ BWindow* window = dynamic_cast(handler); ++ if (window) ++ return window->ChildAt(0); // Get background view ++ else ++ return dynamic_cast(handler); ++} ++ ++ ++void iuphaikuBaseAddToParent(Ihandle* ih) ++{ ++ BHandler* parent = (BHandler*)iupChildTreeGetNativeParentHandle(ih); ++ BView* child = (BView*)ih->handle; ++ ++ BView* view = viewFromHandler(parent); ++ if(view) ++ view->AddChild(child); ++ else ++ debugger("Trying to add a control to a parent that has no BView"); ++} ++ ++void iupdrvBaseLayoutUpdateMethod(Ihandle *ih) ++{ ++ BView* view = (BView*)ih->handle; ++ view->MoveTo(ih->x, ih->y); ++ view->ResizeTo(ih->currentwidth, ih->currentheight); ++} ++ ++void iupdrvBaseUnMapMethod(Ihandle* ih) ++{ ++ BHandler* handler = (BHandler*)ih->handle; ++ BView* view = dynamic_cast(handler); ++ BWindow* window = dynamic_cast(handler); ++ if(view) { ++ view->RemoveSelf(); ++ delete view; ++ } else if(window) { ++ window->Quit(); ++ // The window will delete itself ++ } else if(handler != NULL) ++ UNIMPLEMENTED ++} ++ ++void iupdrvPostRedraw(Ihandle *ih) ++{ ++ UNIMPLEMENTED ++} ++ ++void iupdrvRedrawNow(Ihandle *ih) ++{ ++ UNIMPLEMENTED ++} ++ ++void iupdrvScreenToClient(Ihandle* ih, int *x, int *y) ++{ ++ UNIMPLEMENTED ++} ++ ++void iupdrvClientToScreen(Ihandle* ih, int *x, int *y) ++{ ++ UNIMPLEMENTED ++} ++ ++int iupdrvBaseSetZorderAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++void iupdrvSetVisible(Ihandle* ih, int visible) ++{ ++ BView* view = (BView*)ih->handle; ++ if(visible && view->IsHidden()) ++ view->Show(); ++ else if(!visible && !view->IsHidden()) ++ view->Hide(); ++} ++ ++int iupdrvIsVisible(Ihandle* ih) ++{ ++ BView* view = (BView*)ih->handle; ++ return !view->IsHidden(); ++} ++ ++int iupdrvIsActive(Ihandle *ih) ++{ ++ BHandler* handler = (BHandler*)ih->handle; ++ ++ BControl* control = dynamic_cast(handler); ++ if (control && !control->IsEnabled()) ++ return false; ++ return true; ++} ++ ++void iupdrvSetActive(Ihandle* ih, int enable) ++{ ++ BHandler* handler = (BHandler*)ih->handle; ++ ++ BView* view = dynamic_cast(handler); ++ BWindow* window = dynamic_cast(handler); ++ if (view) ++ view->MakeFocus(enable); ++ if (window) ++ window->Activate(enable); ++} ++ ++void iuphaikuBaseSetBgColor(InativeHandle* handle, unsigned char r, unsigned char g, unsigned char b) ++{ ++ BView* view = viewFromHandler((BHandler*)handle); ++ ++ view->SetLowColor(r,g,b); ++ view->SetViewColor(r,g,b); ++} ++ ++void iuphaikuBaseSetFgColor(InativeHandle* handle, unsigned char r, unsigned char g, unsigned char b) ++{ ++ BView* view = viewFromHandler((BHandler*)handle); ++ ++ view->SetHighColor(r,g,b); ++} ++ ++int iupdrvBaseSetBgColorAttrib(Ihandle* ih, const char* value) ++{ ++ unsigned char r, g, b; ++ if (!iupStrToRGB(value, &r, &g, &b)) ++ return 0; ++ ++ iuphaikuBaseSetBgColor(ih->handle, r, g, b); ++ ++ /* DO NOT NEED TO UPDATE GTK IMAGES SINCE THEY DO NOT DEPEND ON BGCOLOR */ ++ ++ return 1; ++} ++ ++int iupdrvBaseSetFgColorAttrib(Ihandle* ih, const char* value) ++{ ++ unsigned char r, g, b; ++ if (!iupStrToRGB(value, &r, &g, &b)) ++ return 0; ++ ++ iuphaikuBaseSetFgColor(ih->handle, r, g, b); ++ ++ return 1; ++} ++ ++int iupdrvBaseSetCursorAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++int iupdrvGetScrollbarSize(void) ++{ ++ return (int)B_V_SCROLL_BAR_WIDTH; ++} ++ ++void iupdrvDrawFocusRect(Ihandle* ih, void* _gc, int x, int y, int w, int h) ++{ ++ UNIMPLEMENTED ++} ++ ++void iupdrvBaseRegisterCommonAttrib(Iclass* ic) ++{ ++ // Other drivers seems to register some info about fonts and tooltips here. ++ // I'm not sure what is needed and there is no documentation... ++ iupClassRegisterAttribute(ic, "TIPMARKUP", NULL, NULL, IUPAF_SAMEASSYSTEM, NULL, IUPAF_NOT_MAPPED); ++ iupClassRegisterAttribute(ic, "TIPICON", NULL, NULL, IUPAF_SAMEASSYSTEM, NULL, IUPAF_NOT_MAPPED); ++} ++ ++void iupgtkReleaseConvertUTF8(void) ++{ ++ UNIMPLEMENTED ++} ++ ++char* iuphaikuStrConvertToUTF8(const char* str) /* From IUP to GTK */ ++{ ++ if (!str || *str == 0) ++ return (char*)str; ++ ++ if (iupgtk_utf8autoconvert) /* this means str is in current locale */ ++ { ++ static char* buffer = NULL; ++ int32 len = strlen(str); ++ int32 len2 = 2 * len; ++ int32 cookie; ++ free(buffer); ++ buffer = (char*)malloc(len * 2); // Should be enough in most cases ? ++ convert_to_utf8(B_ISO9_CONVERSION, str, &len, buffer, &len2, &cookie); ++ return buffer; ++ } ++ ++ return (char*)str; ++} ++ ++char* iuphaikuStrConvertFromUTF8(const char* str) /* From GTK to IUP */ ++{ ++ if (!str || *str == 0) ++ return (char*)str; ++ ++ if (iupgtk_utf8autoconvert) /* this means str is in current locale */ ++ { ++ static char* buffer = NULL; ++ int32 len = strlen(str); ++ int32 len2 = 2 * len; ++ int32 cookie; ++ free(buffer); ++ buffer = (char*)malloc(len * 2); // Should be enough in most cases ? ++ convert_from_utf8(B_ISO9_CONVERSION, str, &len, buffer, &len2, &cookie); ++ return buffer; ++ } ++ ++ return (char*)str; ++} ++ ++char* iupgtkStrConvertFromFilename(const char* str) /* From Filename to IUP */ ++{ ++ UNIMPLEMENTED ++ return (char*)str; ++} ++ ++void iupdrvSendKey(int key, int press) ++{ ++ UNIMPLEMENTED ++} ++ ++void iupdrvWarpPointer(int x, int y) ++{ ++ UNIMPLEMENTED ++} ++ ++void iupdrvSendMouse(int x, int y, int bt, int status) ++{ ++ UNIMPLEMENTED ++} ++ ++void iupdrvSleep(int time) ++{ ++ UNIMPLEMENTED ++} ++ +diff --git a/src/haiku/iuphaiku_dialog.cpp b/src/haiku/iuphaiku_dialog.cpp +new file mode 100644 +index 0000000..f679f03 +--- /dev/null ++++ b/src/haiku/iuphaiku_dialog.cpp +@@ -0,0 +1,367 @@ ++/** \file ++ * \brief IupDialog class ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "iup.h" ++#include "iupcbs.h" ++ ++#include "iup_class.h" ++#include "iup_object.h" ++#include "iup_layout.h" ++#include "iup_dlglist.h" ++#include "iup_attrib.h" ++#include "iup_drv.h" ++#include "iup_drvfont.h" ++#include "iup_drvinfo.h" ++#include "iup_focus.h" ++#include "iup_str.h" ++#define _IUPDLG_PRIVATE ++#include "iup_dialog.h" ++#include "iup_image.h" ++ ++#include "iuphaiku_drv.h" ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++/**************************************************************** ++ Utilities ++****************************************************************/ ++ ++int iupdrvDialogIsVisible(Ihandle* ih) ++{ ++ BWindow* win = (BWindow*)ih->handle; ++ return !win->IsHidden(); ++} ++ ++void iupdrvDialogGetSize(Ihandle* ih, InativeHandle* handle, int *w, int *h) ++{ ++ BWindow* window = (BWindow*)ih->handle; ++ BRect bounds = window->Bounds(); ++ ++ if(w) *w = (int)bounds.right; ++ if(h) *h = (int)bounds.bottom; ++} ++ ++void iupdrvDialogSetVisible(Ihandle* ih, int visible) ++{ ++ BHandler* handler = (BHandler*)ih->handle; ++ BWindow* window = dynamic_cast(handler); ++ if(window) { ++ if(visible) ++ window->Show(); ++ else ++ window->Hide(); ++ return; ++ } ++ ++ // TODO We can get there even though the window is already destroyed... ++} ++ ++void iupdrvDialogGetPosition(Ihandle *ih, InativeHandle* handle, int *x, int *y) ++{ ++ UNIMPLEMENTED ++} ++ ++void iupdrvDialogSetPosition(Ihandle *ih, int x, int y) ++{ ++ BWindow* window = (BWindow*)ih->handle; ++ window->MoveTo(x, y); ++} ++ ++static int gtkDialogGetMenuSize(Ihandle* ih) ++{ ++ if (ih->data->menu && !iupgtk_globalmenu) ++ return iupdrvMenuGetMenuBarSize(ih->data->menu); ++ else ++ return 0; ++} ++ ++static void gtkDialogGetWindowDecor(Ihandle* ih, int *win_border, int *win_caption) ++{ ++ UNIMPLEMENTED ++} ++ ++void iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu) ++{ ++ static int native_border = 0; ++ static int native_caption = 0; ++ ++ int has_titlebar = iupAttribGetBoolean(ih, "RESIZE") || /* GTK and Motif only */ ++ iupAttribGetBoolean(ih, "MAXBOX") || ++ iupAttribGetBoolean(ih, "MINBOX") || ++ iupAttribGetBoolean(ih, "MENUBOX") || ++ IupGetAttribute(ih, "TITLE"); /* must use IupGetAttribute to check from the native implementation */ ++ ++ int has_border = has_titlebar || ++ iupAttribGetBoolean(ih, "RESIZE") || ++ iupAttribGetBoolean(ih, "BORDER"); ++ ++ *menu = gtkDialogGetMenuSize(ih); ++ ++ if (ih->handle && iupdrvIsVisible(ih)) ++ { ++ int win_border, win_caption; ++ gtkDialogGetWindowDecor(ih, &win_border, &win_caption); ++ ++#ifdef WIN32 ++ if (*menu) ++ win_caption -= *menu; ++#endif ++ ++ if (!native_border && *border) ++ native_border = win_border; ++ ++ if (!native_caption && *caption) ++ native_caption = win_caption; ++ } ++ ++ // In Haiku, we don't need to worry about the borders when sizing a window. ++ // They are not part of the stuff we resize. So just tell IUP that the ++ // border uses no space at all. ++ *border = 0; ++ *caption = 0; ++} ++ ++int iupdrvDialogSetPlacement(Ihandle* ih) ++{ ++ char* placement; ++ int old_state = ih->data->show_state; ++ ih->data->show_state = IUP_SHOW; ++ ++ BWindow* window = (BWindow*)ih->handle; ++ ++ if (iupAttribGetBoolean(ih, "FULLSCREEN")) ++ { ++ UNIMPLEMENTED ++ return 1; ++ } ++ ++ placement = iupAttribGet(ih, "PLACEMENT"); ++ if (!placement) ++ { ++ if (old_state == IUP_MAXIMIZE || old_state == IUP_MINIMIZE) ++ ih->data->show_state = IUP_RESTORE; ++ ++ window->ResizeTo(ih->naturalwidth, ih->naturalheight); ++ return 0; ++ } ++ ++ if (iupStrEqualNoCase(placement, "MINIMIZED")) ++ { ++ ih->data->show_state = IUP_MINIMIZE; ++ UNIMPLEMENTED ++ } ++ else if (iupStrEqualNoCase(placement, "MAXIMIZED")) ++ { ++ int width, height, x, y; ++ int border, caption, menu; ++ iupdrvDialogGetDecoration(ih, &border, &caption, &menu); ++ ++ x = (border); ++ y = (border+caption+menu); ++ ++ iupdrvGetFullSize(&width, &height); ++ height += menu; /* menu is inside the client area. */ ++ ++ height -= y + border; ++ width -= border * 2; ++ ++ ih->data->show_state = IUP_MAXIMIZE; ++ ++ window->ResizeTo(width, height); ++ window->MoveTo(x, y); ++ } ++ else if (iupStrEqualNoCase(placement, "FULL")) ++ { ++ BScreen scr(window); ++ BRect frame = scr.Frame(); ++ ++ window->ResizeTo(frame.Width(), frame.Height()); ++ window->MoveTo(frame.left, frame.top); ++ ++ if (old_state == IUP_MAXIMIZE || old_state == IUP_MINIMIZE) ++ ih->data->show_state = IUP_RESTORE; ++ } ++ ++ iupAttribSetStr(ih, "PLACEMENT", NULL); /* reset to NORMAL */ ++ ++ return 1; ++} ++ ++ ++static int beDialogSetTitleAttrib(Ihandle* ih, const char* value) ++{ ++ if (!value) ++ value = ""; ++ ++ BWindow* window = (BWindow*)ih->handle; ++ window->SetTitle(value); ++ ++ return 0; ++} ++ ++static char* beDialogGetTitleAttrib(Ihandle* ih) ++{ ++ BWindow* window = (BWindow*)ih->handle; ++ const char* title = window->Title(); ++ ++ if (!title || title[0] == 0) ++ return NULL; ++ else ++ return iupStrGetMemoryCopy(title); ++} ++ ++/**************************************************************** ++ Idialog Methods ++****************************************************************/ ++ ++// TODO these could be IUPWindow static private methods ? ++extern void iuphaikuListInvoked(Ihandle* ih, int item); ++extern void iuphaikuToggleInvoked(Ihandle* ih, int value); ++extern void iuphaikuButtonInvoked(Ihandle* ih); ++extern void iuphaikuListSelected(Ihandle* ih, int item); ++ ++// This one also used at BApplication level ++extern void iuphaikuTimerFired(Ihandle* ih); ++ ++class IUPWindow: public BWindow ++{ ++ private: ++ Ihandle* myHandle; ++ public: ++ ++ IUPWindow(Ihandle* ih) ++ : BWindow(BRect(100,100,200,200), "", B_TITLED_WINDOW, 0) ++ { ++ this->myHandle = ih; ++ BView* view = new BView(Bounds(), "background",B_FOLLOW_ALL_SIDES, 0); ++ view->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); ++ AddChild(view); ++ } ++ ++ void MessageReceived(BMessage* message) ++ { ++ Ihandle* ih = NULL; ++ int32 index = 0; ++ ++ message->FindPointer("iHandle", (void**)&ih); ++ ++ switch(message->what) ++ { ++ case checkboxInvoke: ++ message->FindInt32("be:value", &index); ++ iuphaikuToggleInvoked(ih, index); ++ break; ++ case listInvoke: ++ message->FindInt32("index", &index); ++ iuphaikuListInvoked(ih, index); ++ break; ++ case listSelect: ++ message->FindInt32("index", &index); ++ iuphaikuListSelected(ih, index); ++ break; ++ case buttonInvoke: ++ case menuInvoke: ++ iuphaikuButtonInvoked(ih); ++ break; ++ case timerFire: ++ iuphaikuTimerFired(ih); ++ break; ++ default: ++ BWindow::MessageReceived(message); ++ } ++ } ++ ++ bool QuitRequested() ++ { ++ Icallback cb = IupGetCallback(myHandle, "CLOSE_CB"); ++ if (cb) ++ { ++ int ret = cb(myHandle); ++ if (ret == IUP_IGNORE) ++ return false; ++ if (ret == IUP_CLOSE) ++ return true; ++ } ++ ++ return true; ++ } ++}; ++ ++ ++static int beDialogMapMethod(Ihandle* ih) ++{ ++ ih->handle = (InativeHandle*)new IUPWindow(ih); ++ return IUP_NOERROR; ++} ++ ++ ++/* replace the common dialog SetChildrenPosition method because of ++ the menu that it is inside the dialog. */ ++static void beDialogSetChildrenPositionMethod(Ihandle* ih, int x, int y) ++{ ++ int menu_h = gtkDialogGetMenuSize(ih); ++ (void)x; ++ (void)y; ++ ++ /* Child coordinates are relative to client left-top corner. */ ++ iupBaseSetPosition(ih->firstchild, 0, menu_h); ++} ++ ++/**************************************************************************** ++ Attributes ++****************************************************************************/ ++ ++void iupdrvDialogInitClass(Iclass* ic) ++{ ++ ic->Map = beDialogMapMethod; ++ /* ++ ic->UnMap = beDialogUnMapMethod; ++ ic->LayoutUpdate = beDialogLayoutUpdateMethod; ++ ic->GetInnerNativeContainerHandle = beDialogGetInnerNativeContainerHandleMethod; ++ */ ++ ic->SetChildrenPosition = beDialogSetChildrenPositionMethod; ++ ++ // Register TRAYCLICK_CB callback ++ ++ // Set platform-specific handlers ++ // HWND/XWINDOW > Get native BWindow pointer ++ // CLIENTSIZE > window size ++ // CLIENTOFFSET > window position ++ ++ /* Visual */ ++ iupClassRegisterAttribute(ic, "BGCOLOR", NULL, iupdrvBaseSetBgColorAttrib, "DLGBGCOLOR", NULL, IUPAF_DEFAULT); /* force new default value */ ++ ++ /* Special */ ++ iupClassRegisterAttribute(ic, "TITLE", beDialogGetTitleAttrib, beDialogSetTitleAttrib, ++ NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ ++ // BACKGROUND ++ // ICON ++ // FULLSCREEN ++ // MINSIZE ++ // MAXSIZE ++ // SAVEUNDER ? ++ // ACTIVEWINDOW ++ // TOPMOST ++ // DIALOGHINT ++ // OPACITY ++ // TRAY ++ // TRAYIMAGE ++ // TRAYTIP ++ // TRAYTIPMARKUP ++} +diff --git a/src/haiku/iuphaiku_dragdrop.c b/src/haiku/iuphaiku_dragdrop.c +new file mode 100644 +index 0000000..441f027 +--- /dev/null ++++ b/src/haiku/iuphaiku_dragdrop.c +@@ -0,0 +1,94 @@ ++/** \file ++ * \brief GTK Drag&Drop Functions ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#include ++#include ++#include ++#include ++ ++#include "iup.h" ++#include "iupcbs.h" ++ ++#include "iup_object.h" ++#include "iup_str.h" ++#include "iup_class.h" ++#include "iup_attrib.h" ++#include "iup_drv.h" ++#include "iup_key.h" ++ ++#include "iuphaiku_drv.h" ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++/******************************************************************************************/ ++ ++ ++static int gtkSetDropTypesAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++ ++static int gtkSetDropTargetAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++ ++static int gtkSetDragTypesAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++ ++static int gtkSetDragSourceAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++ ++ ++/******************************************************************************************/ ++ ++ ++static int gtkSetDropFilesTargetAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++ ++ ++/******************************************************************************************/ ++ ++ ++void iupdrvRegisterDragDropAttrib(Iclass* ic) ++{ ++ iupClassRegisterCallback(ic, "DROPFILES_CB", "siii"); ++ ++ iupClassRegisterCallback(ic, "DRAGBEGIN_CB", "ii"); ++ iupClassRegisterCallback(ic, "DRAGDATASIZE_CB", "s"); ++ iupClassRegisterCallback(ic, "DRAGDATA_CB", "sCi"); ++ iupClassRegisterCallback(ic, "DRAGEND_CB", "i"); ++ iupClassRegisterCallback(ic, "DROPDATA_CB", "sCiii"); ++ iupClassRegisterCallback(ic, "DROPMOTION_CB", "iis"); ++ ++ iupClassRegisterAttribute(ic, "DRAGTYPES", NULL, gtkSetDragTypesAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "DROPTYPES", NULL, gtkSetDropTypesAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "DRAGSOURCE", NULL, gtkSetDragSourceAttrib, NULL, NULL, IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "DROPTARGET", NULL, gtkSetDropTargetAttrib, NULL, NULL, IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "DRAGSOURCEMOVE", NULL, NULL, NULL, NULL, IUPAF_NO_INHERIT); ++ ++ iupClassRegisterAttribute(ic, "DRAGDROP", NULL, gtkSetDropFilesTargetAttrib, NULL, NULL, IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "DROPFILESTARGET", NULL, gtkSetDropFilesTargetAttrib, NULL, NULL, IUPAF_NO_INHERIT); ++} ++ ++/* TODO: ++ Could not find a way to disable the internal DND support ++ in IupText(GtkTextView or GtkEntry). ++ Mixing the generic support from here and the internal gives weird results. ++ So the application should use only the internal in this case. ++ The edit box in a IupList has the same problem. ++*/ +diff --git a/src/haiku/iuphaiku_draw.c b/src/haiku/iuphaiku_draw.c +new file mode 100644 +index 0000000..f24206f +--- /dev/null ++++ b/src/haiku/iuphaiku_draw.c +@@ -0,0 +1,127 @@ ++/** \file ++ * \brief Draw Functions ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#include ++#include ++#include ++#include ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++#include "iup.h" ++ ++#include "iup_attrib.h" ++#include "iup_class.h" ++#include "iup_str.h" ++#include "iup_object.h" ++#include "iup_image.h" ++#include "iup_draw.h" ++ ++#include "iuphaiku_drv.h" ++ ++ ++struct _IdrawCanvas{ ++ Ihandle* ih; ++ int w, h; ++ ++ /* ++ GdkDrawable* wnd; ++ GdkPixmap* pixmap; ++ GdkGC *gc, *pixmap_gc; ++ */ ++}; ++ ++IdrawCanvas* iupDrawCreateCanvas(Ihandle* ih) ++{ ++ IdrawCanvas* dc = calloc(1, sizeof(IdrawCanvas)); ++ ++ dc->ih = ih; ++ ++UNIMPLEMENTED ++ ++ return dc; ++} ++ ++void iupDrawKillCanvas(IdrawCanvas* dc) ++{ ++UNIMPLEMENTED ++ ++ free(dc); ++} ++ ++void iupDrawUpdateSize(IdrawCanvas* dc) ++{ ++UNIMPLEMENTED ++} ++ ++void iupDrawFlush(IdrawCanvas* dc) ++{ ++UNIMPLEMENTED ++} ++ ++void iupDrawGetSize(IdrawCanvas* dc, int *w, int *h) ++{ ++ if (w) *w = dc->w; ++ if (h) *h = dc->h; ++} ++ ++void iupDrawParentBackground(IdrawCanvas* dc) ++{ ++ unsigned char r=0, g=0, b=0; ++ char* color = iupBaseNativeParentGetBgColorAttrib(dc->ih); ++ iupStrToRGB(color, &r, &g, &b); ++ iupDrawRectangle(dc, 0, 0, dc->w-1, dc->h-1, r, g, b, IUP_DRAW_FILL); ++} ++ ++void iupDrawRectangle(IdrawCanvas* dc, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b, int style) ++{ ++ UNIMPLEMENTED ++} ++ ++void iupDrawLine(IdrawCanvas* dc, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b, int style) ++{ ++ UNIMPLEMENTED ++} ++ ++void iupDrawArc(IdrawCanvas* dc, int x1, int y1, int x2, int y2, double a1, double a2, unsigned char r, unsigned char g, unsigned char b, int style) ++{ ++ UNIMPLEMENTED ++} ++ ++void iupDrawPolygon(IdrawCanvas* dc, int* points, int count, unsigned char r, unsigned char g, unsigned char b, int style) ++{ ++ UNIMPLEMENTED ++} ++ ++void iupDrawSetClipRect(IdrawCanvas* dc, int x1, int y1, int x2, int y2) ++{ ++ UNIMPLEMENTED ++} ++ ++void iupDrawResetClip(IdrawCanvas* dc) ++{ ++ UNIMPLEMENTED ++} ++ ++void iupDrawText(IdrawCanvas* dc, const char* text, int len, int x, int y, unsigned char r, unsigned char g, unsigned char b, const char* font) ++{ ++ UNIMPLEMENTED ++} ++ ++void iupDrawImage(IdrawCanvas* dc, const char* name, int make_inactive, int x, int y, int *img_w, int *img_h) ++{ ++ UNIMPLEMENTED ++} ++ ++void iupDrawSelectRect(IdrawCanvas* dc, int x, int y, int w, int h) ++{ ++ UNIMPLEMENTED ++} ++ ++void iupDrawFocusRect(IdrawCanvas* dc, int x, int y, int w, int h) ++{ ++ UNIMPLEMENTED ++} +diff --git a/src/haiku/iuphaiku_drv.h b/src/haiku/iuphaiku_drv.h +new file mode 100644 +index 0000000..9668517 +--- /dev/null ++++ b/src/haiku/iuphaiku_drv.h +@@ -0,0 +1,72 @@ ++/** \file ++ * \brief GTK Driver ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#ifndef __IUPGTK_DRV_H ++#define __IUPGTK_DRV_H ++ ++ ++#ifdef __cplusplus ++class BView; ++class BHandler; ++ ++BView* viewFromHandler(BHandler* handler); ++ ++extern "C" { ++#endif ++ ++#define iupCOLORDoubleTO8(_x) ((unsigned char)(_x*255)) /* 1.0*255 = 255 */ ++#define iupCOLOR8ToDouble(_x) ((double)_x/255.0) ++ ++ ++/* global variables, declared in iupgtk_globalattrib.c */ ++extern int iupgtk_utf8autoconvert; ++extern int iupgtk_globalmenu; ++ ++ ++/* common */ ++void iuphaikuBaseAddToParent(Ihandle* ih); ++char* iuphaikuStrConvertToUTF8(const char* str); ++char* iuphaikuStrConvertFromUTF8(const char* str); ++void iupgtkReleaseConvertUTF8(void); ++char* iupgtkStrConvertFromFilename(const char* str); ++char* iupgtkStrConvertToFilename(const char* str); ++void iupgtkUpdateMnemonic(Ihandle* ih); ++void iuphaikuBaseSetBgColor(InativeHandle* handle, unsigned char r, unsigned char g, unsigned char b); ++void iuphaikuBaseSetFgColor(InativeHandle* handle, unsigned char r, unsigned char g, unsigned char b); ++ ++ ++/* key */ ++ ++/* font */ ++char* iupgtkGetPangoFontDescAttrib(Ihandle *ih); ++char* iupgtkGetPangoLayoutAttrib(Ihandle *ih); ++char* iupgtkGetFontIdAttrib(Ihandle *ih); ++ ++/* There are PANGO_SCALE Pango units in one device unit. ++ For an output backend where a device unit is a pixel, ++ a size value of 10 * PANGO_SCALE gives 10 pixels. */ ++#define iupGTK_PANGOUNITS2PIXELS(_x) (((_x) + PANGO_SCALE/2) / PANGO_SCALE) ++#define iupGTK_PIXELS2PANGOUNITS(_x) ((_x) * PANGO_SCALE) ++ ++ ++/* open */ ++char* iupgtkGetNativeWindowHandle(Ihandle* ih); ++void iupgtkPushVisualAndColormap(void* visual, void* colormap); ++ ++enum messageConstants { ++ buttonInvoke = 'buti', ++ checkboxInvoke = 'cbxi', ++ listInvoke = 'linv', ++ listSelect = 'lsel', ++ menuInvoke = 'meni', ++ timerFire = 'time', ++}; ++ ++#ifdef __cplusplus ++} ++#endif ++ ++#endif +diff --git a/src/haiku/iuphaiku_filedlg.cpp b/src/haiku/iuphaiku_filedlg.cpp +new file mode 100644 +index 0000000..c6f197a +--- /dev/null ++++ b/src/haiku/iuphaiku_filedlg.cpp +@@ -0,0 +1,221 @@ ++/** \file ++ * \brief IupFileDlg pre-defined dialog ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "iup.h" ++#include "iupcbs.h" ++ ++#include "iup_object.h" ++#include "iup_attrib.h" ++#include "iup_str.h" ++#include "iup_drvinfo.h" ++#include "iup_dialog.h" ++#include "iup_strmessage.h" ++#include "iup_array.h" ++#include "iup_drvinfo.h" ++ ++#include "iuphaiku_drv.h" ++ ++ ++class FileHandler: public BLooper ++{ ++ public: ++ ++ FileHandler() ++ : BLooper("filepanel listener") ++ { ++ lock = create_sem(0, "filepanel sem"); ++ path = NULL; ++ ++ Run(); ++ } ++ ++ ~FileHandler() ++ { ++ delete_sem(lock); ++ free(path); ++ } ++ ++ void MessageReceived(BMessage* message) ++ { ++ switch(message->what) ++ { ++ case B_REFS_RECEIVED: ++ { ++ entry_ref ref; ++ ++ message->FindRef("refs", 0, &ref); ++ BEntry entry(&ref); ++ BPath xpath; ++ entry.GetPath(&xpath); ++ path = strdup(xpath.Path()); ++ break; ++ } ++ ++ case B_SAVE_REQUESTED: ++ { ++ entry_ref ref; ++ ++ message->FindRef("directory", 0, &ref); ++ BEntry entry(&ref); ++ BPath xpath; ++ entry.GetPath(&xpath); ++ const char* dir = xpath.Path(); ++ ++ const char* name; ++ message->FindString("name", 0, &name); ++ path = (char*)malloc(strlen(name) + strlen(dir) + 1); ++ strcpy(path, dir); ++ strcat(path, name); ++ break; ++ } ++ ++ case B_CANCEL: ++ { ++ // If the path was set, do not change it. ++ // If it was not set, leave it null and HT will not load anything ++ break; ++ } ++ ++ default: ++ printf("Unhandled message %lx\n", message->what); ++ BHandler::MessageReceived(message); ++ return; ++ } ++ ++ release_sem(lock); ++ } ++ ++ void Wait() { ++ acquire_sem(lock); ++ } ++ ++ char* path; ++ ++ private: ++ sem_id lock; ++}; ++ ++static int gtkFileDlgPopup(Ihandle* ih, int x, int y) ++{ ++ file_panel_mode mode; ++ uint32 flavour; ++ char* value = iupAttribGetStr(ih, "DIALOGTYPE"); ++ if (iupStrEqualNoCase(value, "SAVE")) ++ mode = B_SAVE_PANEL; ++ else { ++ mode = B_OPEN_PANEL; ++ if (iupStrEqualNoCase(value, "DIR")) ++ flavour = B_DIRECTORY_NODE; ++ else ++ flavour = B_FILE_NODE; ++ } ++ ++ ++ //if (IupGetCallback(ih, "HELP_CB")) ++ //if (iupAttribGetBoolean(ih, "MULTIPLEFILES") && action == GTK_FILE_CHOOSER_ACTION_OPEN) ++ //if (!iupAttribGetBoolean(ih, "NOOVERWRITEPROMPT") && action == GTK_FILE_CHOOSER_ACTION_SAVE) ++ ++ FileHandler* handler = new FileHandler(); ++ BMessenger messenger(handler); ++ BFilePanel* panel = new BFilePanel(mode, &messenger, NULL, flavour); ++ ++ /* just check for the path inside FILE */ ++ value = iupAttribGet(ih, "FILE"); ++ if (value && (value[0] == '/' || value[1] == ':')) ++ { ++ char* dir = iupStrFileGetPath(value); ++ int len = strlen(dir); ++ iupAttribStoreStr(ih, "DIRECTORY", dir); ++ free(dir); ++ iupAttribStoreStr(ih, "FILE", value+len); ++ } ++ ++ value = iupAttribGet(ih, "DIRECTORY"); ++ if (value) ++ panel->SetPanelDirectory(new BDirectory(value)); ++ //iupgtkStrConvertToFilename(value); ++ value = iupAttribGet(ih, "FILE"); ++ // TODO preset the textfield with the file name ++ ++ value = iupAttribGet(ih, "TITLE"); ++ BWindow* win = panel->Window(); ++ win->LockLooper(); ++ win->SetTitle(value); ++ win->UnlockLooper(); ++ ++ //value = iupAttribGet(ih, "EXTFILTER"); ++ //value = iupAttribGet(ih, "FILTER"); ++ //char* info = iupAttribGet(ih, "FILTERINFO"); ++ ++ //file_cb = (IFnss)IupGetCallback(ih, "FILE_CB"); ++ //if (iupAttribGetBoolean(ih, "SHOWPREVIEW")) ++ ++ panel->Show(); ++ handler->Wait(); ++ delete panel; ++ ++ if (iupAttribGetBoolean(ih, "MULTIPLEFILES")) ++ UNIMPLEMENTED ++ ++ iupAttribStoreStr(ih, "VALUE", handler->path); ++ ++ int file_exist = iupdrvIsFile(handler->path); ++ int dir_exist = iupdrvIsDirectory(handler->path); ++ ++ if (file_exist) ++ { ++ char* dir = iupStrFileGetPath(handler->path); ++ iupAttribStoreStr(ih, "DIRECTORY", dir); ++ free(dir); ++ } ++ ++ if (dir_exist) ++ { ++ iupAttribSetStr(ih, "FILEEXIST", NULL); ++ iupAttribSetStr(ih, "STATUS", "0"); ++ } ++ else ++ { ++ if (file_exist) /* check if file exists */ ++ { ++ iupAttribSetStr(ih, "FILEEXIST", "YES"); ++ iupAttribSetStr(ih, "STATUS", "0"); ++ } ++ else ++ { ++ iupAttribSetStr(ih, "FILEEXIST", "NO"); ++ iupAttribSetStr(ih, "STATUS", "1"); ++ } ++ } ++ // put results ++ //if (action != GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER && !iupAttribGetBoolean(ih, "NOCHANGEDIR")) /* do change the current directory */ ++ messenger.SendMessage(B_QUIT_REQUESTED); ++ return IUP_NOERROR; ++} ++ ++extern "C" void iupdrvFileDlgInitClass(Iclass* ic) ++{ ++ ic->DlgPopup = gtkFileDlgPopup; ++ ++ /* IupFileDialog Windows and GTK Only */ ++ iupClassRegisterAttribute(ic, "EXTFILTER", NULL, NULL, NULL, NULL, IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "FILTERINFO", NULL, NULL, NULL, NULL, IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "FILTERUSED", NULL, NULL, NULL, NULL, IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "MULTIPLEFILES", NULL, NULL, NULL, NULL, IUPAF_NO_INHERIT); ++} +diff --git a/src/haiku/iuphaiku_focus.cpp b/src/haiku/iuphaiku_focus.cpp +new file mode 100644 +index 0000000..bdce784 +--- /dev/null ++++ b/src/haiku/iuphaiku_focus.cpp +@@ -0,0 +1,28 @@ ++/** \file ++ * \brief Haiku Focus ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#include ++ ++#include "iup.h" ++ ++#include "iup_object.h" ++#include "iup_focus.h" ++#include "iup_attrib.h" ++#include "iup_drv.h" ++#include "iup_assert.h" ++#include "iup_drv.h" ++ ++#include "iuphaiku_drv.h" ++ ++ ++void iupdrvSetFocus(Ihandle *ih) ++{ ++ BView* view = (BView*)ih->handle; ++ view->LockLooper(); ++ view->MakeFocus(true); ++ view->UnlockLooper(); ++} ++ +diff --git a/src/haiku/iuphaiku_font.cpp b/src/haiku/iuphaiku_font.cpp +new file mode 100644 +index 0000000..2ece646 +--- /dev/null ++++ b/src/haiku/iuphaiku_font.cpp +@@ -0,0 +1,277 @@ ++/** \file ++ * \brief GTK Font mapping ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++ ++#include "iup.h" ++ ++#include "iup_str.h" ++#include "iup_attrib.h" ++#include "iup_array.h" ++#include "iup_object.h" ++#include "iup_drv.h" ++#include "iup_drvfont.h" ++#include "iup_assert.h" ++ ++#include "iuphaiku_drv.h" ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++static const int fontHandleSize = B_FONT_FAMILY_LENGTH + B_FONT_STYLE_LENGTH + 7; ++ ++typedef struct _IbeFont ++{ ++ char standardfont[fontHandleSize]; ++ BFont* font; ++} IbeFont; ++ ++static Iarray* be_fonts = NULL; ++ ++char* iupdrvGetSystemFont(void) ++{ ++ static char str[B_FONT_FAMILY_LENGTH + B_FONT_STYLE_LENGTH + 7]; ++ /* must return a static string, because it will be used as the default value ++ * for the FONT attribute */ ++ ++ font_family family; ++ font_style style; ++ be_plain_font->GetFamilyAndStyle(&family, &style); ++ float size = be_plain_font->Size(); ++ ++ // FIXME use one of IUP standard formats here (ParseWin, ParseX or ParsePango) ++ sprintf(str, "%s, %s %d",family, style, (int)size); ++ return str; ++} ++ ++char* iupgtkGetPangoFontDescAttrib(Ihandle *ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++char* iupgtkGetPangoLayoutAttrib(Ihandle *ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++char* iupgtkGetFontIdAttrib(Ihandle *ih) ++{ ++ /* Used by IupGLCanvas for IupGLUseFont */ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static BFont* beFindFont(const char* standardfont) ++{ ++ IbeFont* fonts = (IbeFont*)iupArrayGetData(be_fonts); ++ int count = iupArrayCount(be_fonts); ++ ++ /* Check if the standardfont already exists in cache */ ++ int i; ++ for (i = 0; i < count; i++) ++ { ++ if (iupStrEqualNoCase(standardfont, fonts[i].standardfont)) ++ return fonts[i].font; ++ } ++ ++ BFont* font = new BFont(); ++ /* not found, create a new one */ ++ { ++ int size = 0; ++ int is_bold = 0, ++ is_underline = 0, ++ is_strikeout = 0, ++ is_italic = 0; ++ char typeface[1024]; ++ const char* mapped_name; ++ ++ /* parse the old Windows format first */ ++ if (!iupFontParseWin(standardfont, typeface, &size, &is_bold, &is_italic, &is_underline, &is_strikeout)) ++ { ++ if (!iupFontParseX(standardfont, typeface, &size, &is_bold, &is_italic, &is_underline, &is_strikeout)) ++ { ++ if (!iupFontParsePango(standardfont, typeface, &size, &is_bold, &is_italic, &is_underline, &is_strikeout)) ++ return NULL; ++ } ++ } ++ ++ /* Map standard names to native names */ ++ mapped_name = iupFontGetPangoName(typeface); ++ if (mapped_name) ++ { ++ strcpy(typeface, mapped_name); ++ } ++ ++ font->SetSize(size); ++ font->SetFamilyAndStyle(typeface, NULL); ++ uint16 face = 0; ++ if (is_bold) face |= B_BOLD_FACE; ++ if (is_italic) face |= B_ITALIC_FACE; ++ if (is_underline) face |= B_UNDERSCORE_FACE; ++ if (is_strikeout) face |= B_STRIKEOUT_FACE; ++ font->SetFace(face); ++ } ++ ++ if (!font) ++ return NULL; ++ ++ /* create room in the array */ ++ fonts = (IbeFont*)iupArrayInc(be_fonts); ++ ++ strcpy(fonts[i].standardfont, standardfont); ++ fonts[i].font = font; ++ return fonts[i].font; ++} ++ ++static BFont* beFontCreateNativeFont(Ihandle* ih, const char* value) ++{ ++ BFont* bfont = beFindFont(value); ++ if (!bfont) ++ { ++ iupERROR1("Failed to create Font: %s", value); ++ return NULL; ++ } ++ ++ iupAttribSetStr(ih, "_IUP_HAIKUFONT", (char*)bfont); ++ return bfont; ++} ++ ++ ++int iupdrvSetStandardFontAttrib(Ihandle* ih, const char* value) ++{ ++ BFont* bfont = beFontCreateNativeFont(ih, value); ++ if(!bfont) ++ return 1; ++ ++ /* If FONT is changed, must update the SIZE attribute */ ++ iupBaseUpdateSizeFromFont(ih); ++ ++ /* FONT attribute must be able to be set before mapping, ++ so the font is enable for size calculation. */ ++ if (ih->handle && (ih->iclass->nativetype != IUP_TYPEVOID)) ++ { ++ BHandler* handler = (BHandler*)ih->handle; ++ BView* view = viewFromHandler(handler); ++ if (!view) { ++ debugger("Invalid handle ! what is it ?"); ++ } ++ view->SetFont(bfont); ++ //iupgtkFontUpdatePangoLayout(ih, gtkFontGetWidgetPangoLayout(ih)); ++ } ++ ++ return 1; ++} ++ ++static int beFontHeight(const BFont* font) ++{ ++ font_height height; ++ font->GetHeight(&height); ++ return (int)(height.ascent + height.descent + height.leading); ++} ++ ++static BFont* beFontGet(Ihandle *ih) ++{ ++ BFont* bfont = (BFont*)iupAttribGet(ih, "_IUP_HAIKUFONT"); ++ if(!bfont) ++ bfont = beFontCreateNativeFont(ih, iupGetFontAttrib(ih)); ++ return bfont; ++} ++ ++void iupdrvFontGetMultiLineStringSize(Ihandle* ih, const char* str, int *w, int *h) ++{ ++ int max_w = 0; ++ ++ BFont* bfont = beFontGet(ih); ++ if (!bfont) ++ { ++ if (w) *w = 0; ++ if (h) *h = 0; ++ return; ++ } ++ ++ int height = beFontHeight(bfont); ++ ++ if (!str) ++ { ++ if (w) *w = 0; ++ if (h) *h = height; ++ return; ++ } ++ ++ if (str[0]) ++ { ++ int len, lw; ++ const char *nextstr; ++ const char *curstr = str; ++ ++ do ++ { ++ nextstr = iupStrNextLine(curstr, &len); ++ if (len) ++ { ++ lw = (int)bfont->StringWidth(curstr, len); ++ max_w = iupMAX(max_w, lw); ++ } ++ ++ curstr = nextstr; ++ } while(*nextstr); ++ } ++ ++ if (w) *w = max_w; ++ if (h) *h = height * iupStrLineCount(str); ++} ++ ++int iupdrvFontGetStringWidth(Ihandle* ih, const char* str) ++{ ++ BFont* bfont = beFontGet(ih); ++ if (!bfont || !str) ++ { ++ return 0; ++ } ++ ++ return (int)bfont->StringWidth(str); ++} ++ ++void iupdrvFontGetCharSize(Ihandle* ih, int *charwidth, int *charheight) ++{ ++ BFont* befont = beFontGet(ih); ++ if(!befont) ++ { ++ if (charwidth) *charwidth = 0; ++ if (charheight) *charheight = 0; ++ return; ++ } ++ ++ if (charheight) { ++ *charheight = beFontHeight(befont); ++ } ++ ++ if (charwidth) { ++ *charwidth = (int)befont->StringWidth("M"); ++ } ++} ++ ++void iupdrvFontInit(void) ++{ ++ be_fonts = iupArrayCreate(50, sizeof(IbeFont)); ++} ++ ++void iupdrvFontFinish(void) ++{ ++ int i, count = iupArrayCount(be_fonts); ++ IbeFont* fonts = (IbeFont*)iupArrayGetData(be_fonts); ++ for (i = 0; i < count; i++) ++ { ++ delete fonts[i].font; ++ } ++ iupArrayDestroy(be_fonts); ++} +diff --git a/src/haiku/iuphaiku_fontdlg.c b/src/haiku/iuphaiku_fontdlg.c +new file mode 100644 +index 0000000..beb7778 +--- /dev/null ++++ b/src/haiku/iuphaiku_fontdlg.c +@@ -0,0 +1,35 @@ ++/** \file ++ * \brief IupFontDlg pre-defined dialog ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++#include ++ ++#include ++#include ++ ++#include "iup.h" ++ ++#include "iup_object.h" ++#include "iup_attrib.h" ++#include "iup_str.h" ++#include "iup_dialog.h" ++ ++#include "iuphaiku_drv.h" ++ ++ ++static int gtkFontDlgPopup(Ihandle* ih, int x, int y) ++{ ++ UNIMPLEMENTED ++ return IUP_NOERROR; ++} ++ ++void iupdrvFontDlgInitClass(Iclass* ic) ++{ ++ ic->DlgPopup = gtkFontDlgPopup; ++ ++ /* IupFontDialog GTK Only */ ++ iupClassRegisterAttribute(ic, "PREVIEWTEXT", NULL, NULL, NULL, NULL, IUPAF_NO_INHERIT); ++} +diff --git a/src/haiku/iuphaiku_frame.cpp b/src/haiku/iuphaiku_frame.cpp +new file mode 100644 +index 0000000..6b271e4 +--- /dev/null ++++ b/src/haiku/iuphaiku_frame.cpp +@@ -0,0 +1,141 @@ ++/** \file ++ * \brief Frame Control ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "iup.h" ++ ++#include "iup_object.h" ++#include "iup_layout.h" ++#include "iup_attrib.h" ++#include "iup_str.h" ++#include "iup_dialog.h" ++#include "iup_drv.h" ++#include "iup_drvfont.h" ++#include "iup_stdcontrols.h" ++ ++#include "iuphaiku_drv.h" ++ ++ ++extern "C" { ++void iupdrvFrameGetDecorOffset(int *x, int *y) ++{ ++ *x = 3; ++ *y = 1; ++} ++ ++int iupdrvFrameHasClientOffset(void) ++{ ++ return 1; ++} ++} ++ ++static char* beFrameGetTitleAttrib(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static int beFrameSetTitleAttrib(Ihandle* ih, const char* value) ++{ ++ if (iupAttribGetStr(ih, "_IUPFRAME_HAS_TITLE")) ++ { ++ BBox* box = (BBox*)ih->handle; ++ box->SetLabel(value); ++ } ++ return 0; ++} ++ ++static int gtkFrameSetBgColorAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++ ++static int gtkFrameSetFgColorAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++ ++/* ++static int beFrameSetStandardFontAttrib(Ihandle* ih, const char* value) ++{ ++ iupdrvSetStandardFontAttrib(ih, value); ++ ++ if (ih->handle) ++ { ++ ++ } ++ return 1; ++} ++ ++static void* beFrameGetInnerNativeContainerHandleMethod(Ihandle* ih, Ihandle* child) ++{ ++ return ih->handle; ++} ++*/ ++ ++static int beFrameMapMethod(Ihandle* ih) ++{ ++ char *value, *title = iupAttribGet(ih, "TITLE"); ++ BBox* bbox = new BBox(BRect(0, 0, 10, 10), title); ++ ih->handle = (InativeHandle*)bbox; ++ new BBox(BRect(0, 0, 10, 10), title); ++ ++ if(!ih->handle) ++ return IUP_ERROR; ++ ++ title = iupAttribGet(ih, "TITLE"); ++ ++ if (title) ++ iupAttribSetStr(ih, "_IUPFRAME_HAS_TITLE", "1"); ++ else ++ { ++ value = iupAttribGetStr(ih, "SUNKEN"); ++ if (iupStrBoolean(value)) ++ bbox->SetBorder(B_FANCY_BORDER); ++ else ++ bbox->SetBorder(B_PLAIN_BORDER); ++ ++ if (iupAttribGet(ih, "BGCOLOR")) ++ iupAttribSetStr(ih, "_IUPFRAME_HAS_BGCOLOR", "1"); ++ } ++ ++ iuphaikuBaseAddToParent(ih); ++ ++ return IUP_NOERROR; ++} ++ ++extern "C" { ++void iupdrvFrameInitClass(Iclass* ic) ++{ ++ /* Driver Dependent Class functions */ ++ ic->Map = beFrameMapMethod; ++// ic->GetInnerNativeContainerHandle = beFrameGetInnerNativeContainerHandleMethod; ++ ++ /* Driver Dependent Attribute functions */ ++ ++ /* Overwrite Common */ ++ //iupClassRegisterAttribute(ic, "STANDARDFONT", NULL, beFrameSetStandardFontAttrib, IUPAF_SAMEASSYSTEM, "DEFAULTFONT", IUPAF_NO_SAVE|IUPAF_NOT_MAPPED); ++ ++ /* Visual */ ++ iupClassRegisterAttribute(ic, "BGCOLOR", NULL, gtkFrameSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT); ++ ++ /* Special */ ++ iupClassRegisterAttribute(ic, "FGCOLOR", NULL, gtkFrameSetFgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGFGCOLOR", IUPAF_DEFAULT); ++ iupClassRegisterAttribute(ic, "TITLE", beFrameGetTitleAttrib, beFrameSetTitleAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++} ++} +diff --git a/src/haiku/iuphaiku_globalattrib.c b/src/haiku/iuphaiku_globalattrib.c +new file mode 100644 +index 0000000..61dc0a5 +--- /dev/null ++++ b/src/haiku/iuphaiku_globalattrib.c +@@ -0,0 +1,55 @@ ++/** \file ++ * \brief GTK Driver iupdrvSetGlobal ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#include ++#include ++ ++#include "iup.h" ++#include "iupcbs.h" ++ ++#include "iup_object.h" ++#include "iup_str.h" ++#include "iup_drv.h" ++#include "iup_drvinfo.h" ++#include "iup_key.h" ++ ++#include "iuphaiku_drv.h" ++ ++ ++int iupgtk_utf8autoconvert = 1; ++int iupgtk_globalmenu = 0; ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++int iupdrvSetGlobal(const char *name, const char *value) ++{ ++ if (iupStrEqual(name, "INPUTCALLBACKS")) ++ { ++ UNIMPLEMENTED ++ return 1; // Return 0 when we handle it properly ! ++ } ++ if (iupStrEqual(name, "SINGLEINSTANCE")) ++ { ++ UNIMPLEMENTED ++ return 1; // Return 0 when we handle it properly ! ++ } ++ ++ // Other attributes are ignored by the driver. They are forwarded to the main ++ // implementation of IUP. ++ return 1; ++} ++ ++int iupdrvCheckMainScreen(int *w, int *h) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++char *iupdrvGetGlobal(const char *name) ++{ ++ // TODO we can return some platform-specific info here ++ return NULL; ++} +diff --git a/src/haiku/iuphaiku_help.c b/src/haiku/iuphaiku_help.c +new file mode 100644 +index 0000000..e2ef8ba +--- /dev/null ++++ b/src/haiku/iuphaiku_help.c +@@ -0,0 +1,23 @@ ++/** \file ++ * \brief GTK Driver IupHelp for non Windows systems ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#include ++#include ++#include ++ ++#include "iup.h" ++ ++#include "iup_str.h" ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++int IupHelp(const char *url) ++{ ++ // TODO open the html page in web browser ++ UNIMPLEMENTED ++ ++ return -1; ++} +diff --git a/src/haiku/iuphaiku_image.cpp b/src/haiku/iuphaiku_image.cpp +new file mode 100644 +index 0000000..09a7679 +--- /dev/null ++++ b/src/haiku/iuphaiku_image.cpp +@@ -0,0 +1,160 @@ ++/** \file ++ * \brief Image Resource. ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++#include "iup.h" ++ ++#include "iup_object.h" ++#include "iup_attrib.h" ++#include "iup_str.h" ++#include "iup_image.h" ++#include "iup_drvinfo.h" ++ ++#include "iuphaiku_drv.h" ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++void iupdrvImageGetRawData(void* handle, unsigned char* imgdata) ++{ ++ UNIMPLEMENTED ++} ++ ++void* iupdrvImageCreateImageRaw(int width, int height, int bpp, iupColor* colors, int colors_count, unsigned char *imgdata) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++void* iupdrvImageCreateImage(Ihandle *ih, const char* bgcolor, int make_inactive) ++{ ++ int bpp = iupAttribGetInt(ih, "BPP"); ++ color_space space; ++ if (bpp == 8) ++ space = B_CMAP8; ++ else if (bpp == 32) ++ space = B_RGBA32; ++ else if(bpp == 24) ++ space = B_RGB24; ++ else ++ UNIMPLEMENTED ++ BBitmap* bitmap = new BBitmap(BRect(0, 0, ih->currentwidth - 1, ih->currentheight - 1), space); ++ ++ ++ unsigned char* imgdata = (unsigned char*)iupAttribGetStr(ih, "WID"); ++ ++ if (make_inactive) ++ { ++ unsigned char bg_r = 0, bg_g = 0, bg_b = 0; ++ iupStrToRGB(bgcolor, &bg_r, &bg_g, &bg_b); ++ ++ if (bpp >= 24) ++ for (int y=0; ycurrentheight; y++) ++ for (int x=0; xcurrentwidth; x++) ++ { ++ rgb_color* c = (rgb_color*)(imgdata + (x + y * ih->currentwidth) * bpp / 8); ++ if (bpp == 32) { ++ c->red = iupALPHABLEND(c->red, bg_r, c->alpha); ++ c->green = iupALPHABLEND(c->green, bg_r, c->alpha); ++ c->blue = iupALPHABLEND(c->blue, bg_r, c->alpha); ++ } ++ iupImageColorMakeInactive(&c->red, &c->blue, &c->green, bg_r, bg_g, bg_b); ++ } else if(bpp == 8) { ++ // FIXME this isn't working too well... ++ rgb_color disable = make_color(bg_r, bg_g, bg_b); ++ unsigned char cid = BScreen().IndexForColor(disable); ++ for (int y=0; ycurrentheight; y++) ++ for (int x=y&1; xcurrentwidth; x+=2) { ++ *(imgdata + x + y * ih->currentwidth) = cid; ++ } ++ } else ++ UNIMPLEMENTED // Not sure how to do that for 16 bit pics ? ++ ++ } ++ ++ bitmap->SetBits(imgdata, ih->currentwidth * ih->currentheight * bpp / 8, 0, space); ++ ++ return bitmap; ++} ++ ++void* iupdrvImageCreateIcon(Ihandle *ih) ++{ ++ return iupdrvImageCreateImage(ih, NULL, 0); ++} ++ ++void* iupdrvImageCreateCursor(Ihandle *ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++void* iupdrvImageCreateMask(Ihandle *ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++void* iupdrvImageLoad(const char* name, int type) ++{ ++ if(type == IUPIMAGE_CURSOR) { ++ UNIMPLEMENTED ++ } else { ++ // TODO the GTK driver attempts to load icons and cursors from the GTK theme ++ // Try using the translation kit ++ /* ++ BBitmap* bitmap = BTranslationUtils::GetBitmap(name); ++ if (bitmap == NULL) ++ { ++ // likely an image from iupimglib ? ++ printf("Loading image %s\n", name); ++ UNIMPLEMENTED ++ } ++ return bitmap; ++ */ ++ ++ // TODO try loading from resources ? ++ // UNIMPLEMENTED ++ } ++ ++ return NULL; ++} ++ ++int iupdrvImageGetInfo(void* handle, int *w, int *h, int *bpp) ++{ ++ BBitmap* bmp = (BBitmap*)handle; ++ BRect r = bmp->Bounds(); ++ ++ if(w) *w = r.Width(); ++ if(h) *h = r.Height(); ++ if(bpp) { ++ switch(bmp->ColorSpace()) { ++ case B_RGB32: *bpp=32; break; ++ case B_CMAP8: *bpp=8; break; ++ default: UNIMPLEMENTED ++ } ++ } ++ return 1; ++} ++ ++int iupdrvImageGetRawInfo(void* handle, int *w, int *h, int *bpp, iupColor* colors, int *colors_count) ++{ ++ /* GdkPixbuf are only 24 bpp or 32 bpp */ ++ (void)colors; ++ (void)colors_count; ++ return iupdrvImageGetInfo(handle, w, h, bpp); ++} ++ ++void iupdrvImageDestroy(void* handle, int type) ++{ ++ UNIMPLEMENTED ++} +diff --git a/src/haiku/iuphaiku_info.cpp b/src/haiku/iuphaiku_info.cpp +new file mode 100644 +index 0000000..7061362 +--- /dev/null ++++ b/src/haiku/iuphaiku_info.cpp +@@ -0,0 +1,190 @@ ++/** \file ++ * \brief MAC OS System Information ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++/* This module should depend only on IUP core headers */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "iup.h" ++ ++#include "iup_str.h" ++#include "iup_drv.h" ++#include "iup_drvinfo.h" ++ ++#define IUP_MAC_ERROR -1 ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++int iupdrvMakeDirectory(const char* name) ++{ ++ mode_t oldmask = umask((mode_t)0); ++ int fail = mkdir(name, S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | ++ S_IWGRP | S_IXGRP | S_IROTH | S_IXOTH); ++ umask (oldmask); ++ if (fail) ++ return 0; ++ return 1; ++} ++ ++int iupdrvIsFile(const char* name) ++{ ++ return BEntry(name).IsFile(); ++} ++ ++int iupdrvIsDirectory(const char* name) ++{ ++ return BEntry(name).IsDirectory(); ++} ++ ++char* iupdrvGetCurrentDirectory(void) ++{ ++ size_t size = 256; ++ char *buffer = (char *)malloc(size); ++ ++ for (;;) ++ { ++ if (getcwd(buffer, size) != NULL) ++ return buffer; ++ ++ if (errno != ERANGE) ++ { ++ free(buffer); ++ return NULL; ++ } ++ ++ size += size; ++ buffer = (char *)realloc(buffer, size); ++ } ++ ++ return NULL; ++} ++ ++int iupdrvSetCurrentDirectory(const char* dir) ++{ ++ return chdir(dir) == 0? 1: 0; ++} ++ ++int iupdrvGetWindowDecor(void* wnd, int *border, int *caption) ++{ ++ UNIMPLEMENTED ++ ++ *border = 0; ++ *caption = 0; ++ ++ return 0; ++} ++ ++void iupdrvGetScreenSize(int *width, int *height) ++{ ++ BScreen screen; ++ BRect frame = screen.Frame(); ++ ++ if(width) *width = (int)frame.right + 1; ++ if(height) *height = (int)frame.bottom + 1; ++} ++ ++void iupdrvGetFullSize(int *width, int *height) ++{ ++ // TODO is this only useful in mutli-monitor situations ? ++ iupdrvGetScreenSize(width, height); ++} ++ ++int iupdrvGetScreenDepth(void) ++{ ++ BScreen screen; ++ ++ switch(screen.ColorSpace()) ++ { ++ case B_CMAP8: return 8; ++ case B_RGB15: return 15; ++ case B_RGB32: return 32; ++ default: ++ printf("%s (%s:%d) FIXME unknown colorspace\n", __func__, __FILE__, __LINE__); ++ return 0; ++ } ++} ++ ++float iupdrvGetScreenDpi(void) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++void iupdrvGetCursorPos(int *x, int *y) ++{ ++ UNIMPLEMENTED ++} ++ ++void iupdrvGetKeyState(char* key) ++{ ++ UNIMPLEMENTED ++} ++ ++char* iupdrvLocaleInfo(void) ++{ ++ return iupStrGetMemoryCopy(nl_langinfo(CODESET)); ++} ++ ++/* Everything below is copypasted from mot/iupunix.c, but that one depends on X11 :( */ ++char *iupdrvGetSystemName(void) ++{ ++ struct utsname un; ++ char *str = iupStrGetMemory(50); ++ ++ uname(&un); ++ if (iupStrEqualNoCase(un.sysname, "Darwin")) ++ strcpy(str, "MacOS"); ++ else ++ strcpy(str, un.sysname); ++ ++ return str; ++} ++ ++char *iupdrvGetSystemVersion(void) ++{ ++ struct utsname un; ++ char *str = iupStrGetMemory(100); ++ ++ uname(&un); ++ if (iupStrEqualNoCase(un.sysname, "Darwin")) ++ { ++ int release = atoi(un.release); ++ sprintf(str, "%d", release-4); ++ } ++ else ++ { ++ strcpy(str, un.release); ++ strcat(str, "."); ++ strcat(str, un.version); ++ } ++ ++ return str; ++} ++ ++char *iupdrvGetComputerName(void) ++{ ++ char* str = iupStrGetMemory(50); ++ gethostname(str, 50); ++ return str; ++} ++ ++char *iupdrvGetUserName(void) ++{ ++ return (char*)getlogin(); ++} ++ +diff --git a/src/haiku/iuphaiku_label.cpp b/src/haiku/iuphaiku_label.cpp +new file mode 100644 +index 0000000..a0042b8 +--- /dev/null ++++ b/src/haiku/iuphaiku_label.cpp +@@ -0,0 +1,288 @@ ++/** \file ++ * \brief Label Control ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "iup.h" ++#include "iupcbs.h" ++ ++#include "iup_object.h" ++#include "iup_layout.h" ++#include "iup_attrib.h" ++#include "iup_str.h" ++#include "iup_image.h" ++#include "iup_label.h" ++#include "iup_drv.h" ++#include "iup_image.h" ++#include "iup_focus.h" ++ ++#include "iuphaiku_drv.h" ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++static int beLabelSetTitleAttrib(Ihandle* ih, const char* value) ++{ ++ if (ih->data->type == IUP_LABEL_TEXT) { ++ BStringView* stringView = (BStringView*)ih->handle; ++ stringView->SetText(iuphaikuStrConvertToUTF8(value)); ++ ++ // TODO handle the mnemonic ? ++ ++ return 1; ++ } ++ return 0; ++} ++ ++static int gtkLabelSetWordWrapAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkLabelSetEllipsisAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkLabelSetAlignmentAttrib(Ihandle* ih, const char* value) ++{ ++ if (ih->data->type != IUP_LABEL_SEP_HORIZ && ih->data->type != IUP_LABEL_SEP_VERT) ++ { ++ BStringView* view = (BStringView*)ih->handle; ++ char value1[30]="", value2[30]=""; ++ ++ iupStrToStrStr(value, value1, value2, ':'); ++ if (iupStrEqualNoCase(value1, "ARIGHT")) ++ view->SetAlignment(B_ALIGN_RIGHT); ++ else if (iupStrEqualNoCase(value1, "ACENTER")) ++ view->SetAlignment(B_ALIGN_CENTER); ++ else /* "ALEFT" */ ++ view->SetAlignment(B_ALIGN_LEFT); ++ ++ /* TODO ++ if (iupStrEqualNoCase(value2, "ABOTTOM")) ++ else if (iupStrEqualNoCase(value2, "ATOP")) ++ else // ACENTER (default) ++ */ ++ ++ return 1; ++ } else { ++ // TODO handle image labels as well, but ignore separators ++ UNIMPLEMENTED ++ return 0; ++ } ++} ++ ++static int gtkLabelSetPaddingAttrib(Ihandle* ih, const char* value) ++{ ++ if (ih->handle && ih->data->type != IUP_LABEL_SEP_HORIZ && ih->data->type != IUP_LABEL_SEP_VERT) ++ { ++ // There's no way to do that in Haiku BStringView ? ++ UNIMPLEMENTED ++ return 0; ++ } else ++ return 1; /* store until not mapped, when mapped will be set again */ ++} ++ ++static char* gtkLabelGetWidgetPangoLayoutAttrib(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++ ++static void beLabelSetPixbuf(Ihandle* ih, const char* name, int make_inactive) ++{ ++ BView* widget = (BView*)ih->handle; ++ ++ if (name) ++ { ++ BBitmap* bitmap = (BBitmap*)iupImageGetImage(name, ih, make_inactive); ++ // TODO we may need to play with source and destination rects to align the ++ // image here ? Or maybe it's simpler to handle that at view level... ++ widget->SetViewBitmap(bitmap, B_FOLLOW_NONE, 0); ++ } else { ++ widget->ClearViewBitmap(); ++ } ++} ++ ++static int gtkLabelSetImageAttrib(Ihandle* ih, const char* value) ++{ ++ if (ih->data->type == IUP_LABEL_IMAGE) ++ { ++ if (iupdrvIsActive(ih)) ++ beLabelSetPixbuf(ih, value, 0); ++ else ++ { ++ if (!iupAttribGet(ih, "IMINACTIVE")) ++ { ++ /* if not active and IMINACTIVE is not defined ++ then automaticaly create one based on IMAGE */ ++ beLabelSetPixbuf(ih, value, 1); /* make_inactive */ ++ } ++ } ++ return 1; ++ } ++ else ++ return 0; ++} ++ ++static int gtkLabelSetImInactiveAttrib(Ihandle* ih, const char* value) ++{ ++ if (ih->data->type == IUP_LABEL_IMAGE) ++ { ++ if (!iupdrvIsActive(ih)) ++ { ++ if (value) ++ beLabelSetPixbuf(ih, value, 0); ++ else ++ { ++ /* if not defined then automaticaly create one based on IMAGE */ ++ char* name = iupAttribGet(ih, "IMAGE"); ++ beLabelSetPixbuf(ih, name, 1); /* make_inactive */ ++ } ++ } ++ return 1; ++ } ++ else ++ return 0; ++} ++ ++static int gtkLabelSetActiveAttrib(Ihandle* ih, const char* value) ++{ ++ /* update the inactive image if necessary */ ++ if (ih->data->type == IUP_LABEL_IMAGE) ++ { ++ if (!iupStrBoolean(value)) ++ { ++ char* name = iupAttribGet(ih, "IMINACTIVE"); ++ if (name) ++ beLabelSetPixbuf(ih, name, 0); ++ else ++ { ++ /* if not defined then automaticaly create one based on IMAGE */ ++ name = iupAttribGet(ih, "IMAGE"); ++ beLabelSetPixbuf(ih, name, 1); /* make_inactive */ ++ } ++ } ++ else ++ { ++ /* must restore the normal image */ ++ char* name = iupAttribGet(ih, "IMAGE"); ++ beLabelSetPixbuf(ih, name, 0); ++ } ++ } ++ ++ return iupBaseSetActiveAttrib(ih, value); ++} ++ ++class IUPSeparator: public BView ++{ ++ public: ++ IUPSeparator(/*orientation dir*/) ++ : BView(BRect(0,0,1,1), "Separator", B_FOLLOW_NONE, B_WILL_DRAW) ++ { ++ SetHighColor(tint_color(ui_color(B_PANEL_BACKGROUND_COLOR), ++ B_DISABLED_LABEL_TINT)); ++ ++ } ++ ++ void Draw(BRect updateRect) ++ { ++ BRect bounds = Bounds(); ++ if (bounds.Width() > bounds.Height()) ++ { ++ StrokeLine(bounds.LeftTop(), bounds.RightTop()); ++ } else { ++ StrokeLine(bounds.LeftTop(), bounds.LeftBottom()); ++ } ++ } ++}; ++ ++static int beLabelMapMethod(Ihandle* ih) ++{ ++ char* value = iupAttribGet(ih, "SEPARATOR"); ++ BView* label = NULL; ++ ++ if (value) ++ { ++ // TODO maybe we need to hint the separator direction here ? ++ label = new IUPSeparator(); ++ if (iupStrEqualNoCase(value, "HORIZONTAL")) ++ { ++ ih->data->type = IUP_LABEL_SEP_HORIZ; ++ } else { ++ ih->data->type = IUP_LABEL_SEP_VERT; ++ } ++ } else { ++ value = iupAttribGet(ih, "IMAGE"); ++ if (value) ++ { ++ ih->data->type = IUP_LABEL_IMAGE; ++ // FIXME We rely on SetViewBitmap to put the image on screen. But this ++ // doesn't work too well when the image needs an alpha channel ++ label = new BView(BRect(0,0,10,10),"Label/Image", B_FOLLOW_NONE, 0); ++ } else { ++ ih->data->type = IUP_LABEL_TEXT; ++ label = new BStringView(BRect(0, 0, 10, 10),"StringView", ""); ++ } ++ } ++ ++ if (!label) ++ return IUP_ERROR; ++ ++ label->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); ++ ++ ih->handle = (InativeHandle*)label; ++ ++ iuphaikuBaseAddToParent(ih); ++ ++ return IUP_NOERROR; ++} ++ ++void iupdrvLabelInitClass(Iclass* ic) ++{ ++ /* Driver Dependent Class functions */ ++ ic->Map = beLabelMapMethod; ++ ++ /* Driver Dependent Attribute functions */ ++ ++ /* Common GTK only (when text is in a secondary element) */ ++ iupClassRegisterAttribute(ic, "WIDGETPANGOLAYOUT", gtkLabelGetWidgetPangoLayoutAttrib, NULL, NULL, NULL, IUPAF_NO_INHERIT); ++ ++ /* Overwrite Visual */ ++ iupClassRegisterAttribute(ic, "ACTIVE", iupBaseGetActiveAttrib, gtkLabelSetActiveAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_DEFAULT); ++ ++ /* Visual */ ++ iupClassRegisterAttribute(ic, "BGCOLOR", iupBaseNativeParentGetBgColorAttrib, NULL, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT); ++ ++ /* Special */ ++ iupClassRegisterAttribute(ic, "FGCOLOR", NULL, iupdrvBaseSetFgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGFGCOLOR", IUPAF_DEFAULT); ++ iupClassRegisterAttribute(ic, "TITLE", NULL, beLabelSetTitleAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ ++ /* IupLabel only */ ++ iupClassRegisterAttribute(ic, "ALIGNMENT", NULL, gtkLabelSetAlignmentAttrib, "ALEFT:ACENTER", NULL, IUPAF_NO_INHERIT); /* force new default value */ ++ iupClassRegisterAttribute(ic, "IMAGE", NULL, gtkLabelSetImageAttrib, NULL, NULL, IUPAF_IHANDLENAME|IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "PADDING", iupLabelGetPaddingAttrib, gtkLabelSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED); ++ ++ /* IupLabel GTK and Motif only */ ++ iupClassRegisterAttribute(ic, "IMINACTIVE", NULL, gtkLabelSetImInactiveAttrib, NULL, NULL, IUPAF_IHANDLENAME|IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ ++ /* IupLabel Windows and GTK only */ ++ iupClassRegisterAttribute(ic, "WORDWRAP", NULL, gtkLabelSetWordWrapAttrib, NULL, NULL, IUPAF_DEFAULT); ++ iupClassRegisterAttribute(ic, "ELLIPSIS", NULL, gtkLabelSetEllipsisAttrib, NULL, NULL, IUPAF_DEFAULT); ++ ++ /* IupLabel GTK only */ ++ iupClassRegisterAttribute(ic, "MARKUP", NULL, NULL, NULL, NULL, IUPAF_DEFAULT); ++} +diff --git a/src/haiku/iuphaiku_list.cpp b/src/haiku/iuphaiku_list.cpp +new file mode 100644 +index 0000000..30b3bd2 +--- /dev/null ++++ b/src/haiku/iuphaiku_list.cpp +@@ -0,0 +1,556 @@ ++/** \file ++ * \brief List Control ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "iup.h" ++#include "iupcbs.h" ++ ++#include "iup_object.h" ++#include "iup_layout.h" ++#include "iup_attrib.h" ++#include "iup_str.h" ++#include "iup_drv.h" ++#include "iup_drvfont.h" ++#include "iup_mask.h" ++#include "iup_key.h" ++#include "iup_image.h" ++#include "iup_list.h" ++ ++#include "iuphaiku_drv.h" ++ ++ ++enum ++{ ++ IUPGTK_LIST_IMAGE, /* "pixbuf" */ ++ IUPGTK_LIST_TEXT, /* "text" */ ++ IUPGTK_LIST_LAST_DATA /* used as a count */ ++}; ++ ++void iupdrvListAddItemSpace(Ihandle* ih, int *h) ++{ ++ (void)ih; ++ *h += 3; ++} ++ ++void iupdrvListAddBorders(Ihandle* ih, int *x, int *y) ++{ ++ int border_size = 2*5; ++ (*x) += border_size; ++ (*y) += border_size; ++ ++ if (ih->data->is_dropdown) ++ { ++#ifdef HILDON ++ (*x) += 9; /* extra space for the dropdown button */ ++#else ++ (*x) += 5; /* extra space for the dropdown button */ ++#endif ++ ++ if (ih->data->has_editbox) ++ (*x) += 5; /* another extra space for the dropdown button */ ++ else ++ { ++ (*y) += 4; /* extra padding space */ ++ (*x) += 4; /* extra padding space */ ++ } ++ } ++ else ++ { ++ if (ih->data->has_editbox) ++ (*y) += 2*3; /* internal border between editbox and list */ ++ } ++} ++ ++int iupdrvListGetCount(Ihandle* ih) ++{ ++ BListView* listview = (BListView*)ih->handle; ++ return listview->CountItems(); ++} ++ ++BListView* iuphaikuGetListView(BView* view) ++{ ++ // TODO maybe it is easier to get ScrollBar->Target ? ++ BListView* listview = dynamic_cast(view); ++ if(!listview) ++ { ++ BView* previous = view; ++ previous->LockLooper(); ++ view = view->ChildAt(0); ++ previous->UnlockLooper(); ++ while(view && !listview) ++ { ++ listview = dynamic_cast(view); ++ view = view->NextSibling(); ++ } ++ } ++ ++ return listview; ++} ++ ++void iupdrvListAppendItem(Ihandle* ih, const char* value) ++{ ++ BView* view = (BView*)ih->handle; ++ ++ BMenuField* menu = dynamic_cast(view); ++ if(menu) ++ { ++ menu->Menu()->AddItem(new BMenuItem(value, NULL)); ++ return; ++ } ++ ++ BListView* listview = iuphaikuGetListView(view); ++ ++ if(listview) ++ { ++ BListItem* item = new BStringItem(value); ++ listview->LockLooper(); ++ listview->AddItem(item); ++ listview->UnlockLooper(); ++ } else { ++ fprintf(stderr, "View hierarchy problem\n"); ++ } ++ ++} ++ ++void iupdrvListInsertItem(Ihandle* ih, int pos, const char* value) ++{ ++ UNIMPLEMENTED ++} ++ ++void iupdrvListRemoveItem(Ihandle* ih, int pos) ++{ ++ BView* view = (BView*)ih->handle; ++ ++ BMenuField* menu = dynamic_cast(view); ++ if(menu) ++ { ++ UNIMPLEMENTED ++ return; ++ } ++ ++ BListView* listview = iuphaikuGetListView(view); ++ if(listview) { ++ BListItem* item = listview->RemoveItem(pos - 1); ++ delete item; ++ } else { ++ fprintf(stderr, "View hierarchy problem\n"); ++ } ++} ++ ++void iupdrvListRemoveAllItems(Ihandle* ih) ++{ ++ BView* view = (BView*)ih->handle; ++ ++ BMenuField* menu = dynamic_cast(view); ++ if(menu) ++ { ++ UNIMPLEMENTED ++ return; ++ } ++ ++ BListView* listview = iuphaikuGetListView(view); ++ if(listview) { ++ while(!listview->IsEmpty()) { ++ BListItem* item = listview->RemoveItem(0L); ++ delete item; ++ } ++ } else { ++ fprintf(stderr, "View hierarchy problem\n"); ++ } ++} ++ ++ ++/*********************************************************************************/ ++ ++/* ++static int gtkListSetStandardFontAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++*/ ++ ++static char* haikuListGetIdValueAttrib(Ihandle* ih, int id) ++{ ++ BView* view = (BView*)ih->handle; ++ ++ BMenuField* menu = dynamic_cast(view); ++ if(menu) ++ { ++ UNIMPLEMENTED ++ return NULL; ++ } ++ ++ BListView* listview = iuphaikuGetListView(view); ++ ++ if(listview) ++ { ++ BStringItem* item = (BStringItem*)listview->ItemAt(id - 1); ++ return (char*)item->Text(); ++ } else { ++ fprintf(stderr, "View hierarchy problem\n"); ++ } ++ ++ return NULL; ++} ++ ++ ++static int gtkListSetBgColorAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkListSetFgColorAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++ ++static char* haikuListGetValueAttrib(Ihandle* ih) ++{ ++ BView* view = (BView*)ih->handle; ++ ++ BMenuField* menu = dynamic_cast(view); ++ if(menu) ++ { ++ UNIMPLEMENTED ++ return NULL; ++ } ++ ++ BListView* listview = iuphaikuGetListView(view); ++ ++ if(listview) ++ { ++ BStringItem* item = (BStringItem*) ++ listview->ItemAt(listview->CurrentSelection()); ++ fprintf(stderr, "IEMTXT %s", item->Text()); ++ return (char*)item->Text(); ++ } else { ++ fprintf(stderr, "View hierarchy problem\n"); ++ } ++ ++ return NULL; ++} ++ ++static int gtkListSetValueAttrib(Ihandle* ih, const char* value) ++{ ++ if (ih->data->has_editbox) ++ UNIMPLEMENTED ++ ++ BView* view = (BView*)ih->handle; ++ ++ BMenuField* menu = dynamic_cast(view); ++ if(menu) ++ { ++ int pos; ++ if (iupStrToInt(value, &pos)==1) ++ menu->Menu()->ItemAt(pos - 1)->SetMarked(true); ++ else ++ UNIMPLEMENTED ++ return 0; ++ } ++ ++ BListView* listview = iuphaikuGetListView(view); ++ ++ if(listview) ++ { ++ if (!ih->data->is_multiple) { ++ int pos; ++ if (iupStrToInt(value, &pos)==1) ++ listview->Select(pos - 1); ++ else ++ listview->DeselectAll(); ++ } else ++ UNIMPLEMENTED ++ ++ } else { ++ fprintf(stderr, "View hierarchy problem\n"); ++ } ++ ++ return 0; ++} ++ ++static int gtkListSetShowDropdownAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkListSetTopItemAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkListSetSpacingAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; /* store until not mapped, when mapped will be set again */ ++} ++ ++static int gtkListSetPaddingAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; /* store until not mapped, when mapped will be set again */ ++} ++ ++static int gtkListSetSelectionAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static char* gtkListGetSelectionAttrib(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static int gtkListSetSelectionPosAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static char* gtkListGetSelectionPosAttrib(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static int gtkListSetSelectedTextAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static char* gtkListGetSelectedTextAttrib(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static int gtkListSetCaretAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static char* gtkListGetCaretAttrib(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static int gtkListSetCaretPosAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static char* gtkListGetCaretPosAttrib(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static int gtkListSetScrollToAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkListSetScrollToPosAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkListSetInsertAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkListSetAppendAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkListSetNCAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; /* store until not mapped, when mapped will be set again */ ++} ++ ++static int gtkListSetClipboardAttrib(Ihandle *ih, const char *value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkListSetReadOnlyAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static char* gtkListGetReadOnlyAttrib(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++ return "NO"; ++} ++ ++static int gtkListSetImageAttrib(Ihandle* ih, int id, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++void* iupdrvListGetImageHandle(Ihandle* ih, int id) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++/*********************************************************************************/ ++ ++static int beListMapMethod(Ihandle* ih) ++{ ++ if (ih->data->is_dropdown) ++ { ++ BMenu* menu = new BMenu(""); ++ menu->SetLabelFromMarked(true); ++ ih->handle = (InativeHandle*)new BMenuField(BRect(0,0,10,10), "PopUpMenu", NULL, menu); ++ } else { ++ BListView* widget = new BListView(BRect(0, 0, 10,10), "ListView", ++ B_SINGLE_SELECTION_LIST, B_FOLLOW_ALL_SIDES); ++ ih->handle = (InativeHandle*)widget; ++ ++ BMessage* msg; ++ msg = new BMessage(listInvoke); ++ msg->AddPointer("iHandle", ih); ++ widget->SetInvocationMessage(msg); ++ ++ msg = new BMessage(listSelect); ++ msg->AddPointer("iHandle", ih); ++ widget->SetSelectionMessage(msg); ++ ++ if (ih->data->sb) ++ { ++ ih->handle = (InativeHandle*)new BScrollView("scrolllist", ++ (BView*)ih->handle, B_FOLLOW_LEFT | B_FOLLOW_TOP, 0, false, true); ++ } ++ } ++ ++ if(ih->data->show_image) ++ UNIMPLEMENTED ++ ++ if (ih->data->has_editbox) ++ UNIMPLEMENTED ++ ++ iuphaikuBaseAddToParent(ih); ++ ++ iupListSetInitialItems(ih); ++ return IUP_NOERROR; ++} ++ ++void iupdrvListInitClass(Iclass* ic) ++{ ++ /* Driver Dependent Class functions */ ++ ic->Map = beListMapMethod; ++ ++ /* Driver Dependent Attribute functions */ ++ ++ /* Overwrite Common */ ++// TODO does the common code actually works for lists ? We may need to iterate ++// over the stringitems and set the font for each of them ? ++// iupClassRegisterAttribute(ic, "STANDARDFONT", NULL, gtkListSetStandardFontAttrib, IUPAF_SAMEASSYSTEM, "DEFAULTFONT", IUPAF_NO_SAVE|IUPAF_NOT_MAPPED); ++ ++ /* Visual */ ++ iupClassRegisterAttribute(ic, "BGCOLOR", NULL, gtkListSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "TXTBGCOLOR", IUPAF_DEFAULT); ++ ++ /* Special */ ++ iupClassRegisterAttribute(ic, "FGCOLOR", NULL, gtkListSetFgColorAttrib, IUPAF_SAMEASSYSTEM, "TXTFGCOLOR", IUPAF_DEFAULT); ++ ++ /* IupList only */ ++ iupClassRegisterAttributeId(ic, "IDVALUE", haikuListGetIdValueAttrib, iupListSetIdValueAttrib, IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "VALUE", haikuListGetValueAttrib, gtkListSetValueAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "SHOWDROPDOWN", NULL, gtkListSetShowDropdownAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "TOPITEM", NULL, gtkListSetTopItemAttrib, NULL, NULL, IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "SPACING", iupListGetSpacingAttrib, gtkListSetSpacingAttrib, IUPAF_SAMEASSYSTEM, "0", IUPAF_NOT_MAPPED); ++ ++ iupClassRegisterAttribute(ic, "PADDING", iupListGetPaddingAttrib, gtkListSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED); ++ iupClassRegisterAttribute(ic, "SELECTEDTEXT", gtkListGetSelectedTextAttrib, gtkListSetSelectedTextAttrib, NULL, NULL, IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "SELECTION", gtkListGetSelectionAttrib, gtkListSetSelectionAttrib, NULL, NULL, IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "SELECTIONPOS", gtkListGetSelectionPosAttrib, gtkListSetSelectionPosAttrib, NULL, NULL, IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "CARET", gtkListGetCaretAttrib, gtkListSetCaretAttrib, NULL, NULL, IUPAF_NO_SAVE|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "CARETPOS", gtkListGetCaretPosAttrib, gtkListSetCaretPosAttrib, IUPAF_SAMEASSYSTEM, "0", IUPAF_NO_SAVE|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "INSERT", NULL, gtkListSetInsertAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "APPEND", NULL, gtkListSetAppendAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "READONLY", gtkListGetReadOnlyAttrib, gtkListSetReadOnlyAttrib, NULL, NULL, IUPAF_DEFAULT); ++ iupClassRegisterAttribute(ic, "NC", iupListGetNCAttrib, gtkListSetNCAttrib, NULL, NULL, IUPAF_NOT_MAPPED); ++ iupClassRegisterAttribute(ic, "CLIPBOARD", NULL, gtkListSetClipboardAttrib, NULL, NULL, IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "SCROLLTO", NULL, gtkListSetScrollToAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "SCROLLTOPOS", NULL, gtkListSetScrollToPosAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT); ++ ++ iupClassRegisterAttributeId(ic, "IMAGE", NULL, gtkListSetImageAttrib, IUPAF_IHANDLENAME|IUPAF_WRITEONLY|IUPAF_NO_INHERIT); ++ ++ /* Not Supported */ ++ iupClassRegisterAttribute(ic, "VISIBLE_ITEMS", NULL, NULL, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_SUPPORTED); ++ iupClassRegisterAttribute(ic, "DROPEXPAND", NULL, NULL, IUPAF_SAMEASSYSTEM, "Yes", IUPAF_NOT_SUPPORTED|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "AUTOREDRAW", NULL, NULL, IUPAF_SAMEASSYSTEM, "Yes", IUPAF_NOT_SUPPORTED|IUPAF_NO_INHERIT); ++} ++ ++// Event handlers ++ ++void iuphaikuListInvoked(Ihandle* ih, int item) ++{ ++ IFnis cb = (IFnis) IupGetCallback(ih, "DBLCLICK_CB"); ++ if (cb) ++ { ++ iupListSingleCallDblClickCallback(ih, cb, item+1); /* IUP starts at 1 */ ++ } ++} ++ ++void iuphaikuListSelected(Ihandle* ih, int item) ++{ ++ if (ih->data->has_editbox) ++ { ++ /* must manually update its contents */ ++ UNIMPLEMENTED ++ } ++ ++ if (!ih->data->is_multiple) ++ { ++ IFnsii cb = (IFnsii) IupGetCallback(ih, "ACTION"); ++ if (cb) ++ { ++ iupListSingleCallActionCallback(ih, cb, item+1); /* IUP starts at 1 */ ++ } ++ } else { ++ IFns multi_cb = (IFns)IupGetCallback(ih, "MULTISELECT_CB"); ++ IFnsii cb = (IFnsii) IupGetCallback(ih, "ACTION"); ++ if (multi_cb || cb) ++ { ++ UNIMPLEMENTED ++ } ++ } ++} +diff --git a/src/haiku/iuphaiku_loop.cpp b/src/haiku/iuphaiku_loop.cpp +new file mode 100644 +index 0000000..db60cb5 +--- /dev/null ++++ b/src/haiku/iuphaiku_loop.cpp +@@ -0,0 +1,109 @@ ++/** \file ++ * \brief GTK Message Loop ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#include ++#include ++ ++#include ++#include ++#include ++ ++#include "iup.h" ++#include "iupcbs.h" ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++static IFidle haiku_idle_cb = NULL; ++ ++extern "C" { ++void iupdrvSetIdleFunction(Icallback f) ++{ ++ haiku_idle_cb = (IFidle)f; ++ if (f != NULL) ++ UNIMPLEMENTED ++} ++} ++ ++void IupExitLoop(void) ++{ ++ be_app->PostMessage(B_QUIT_REQUESTED); ++} ++ ++int IupMainLoopLevel(void) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static bool isRunning = false; ++ ++int IupMainLoop(void) ++{ ++ // This is called for the main window (and we start the application), but ++ // also for all modal dialogs. We can only start the application once, so ++ // when this function gets called again it should instead wait for the ++ // last opened dialog to close... ++ // TODO how do we manage the callback from setIdleFunction ? ++ if(!isRunning) ++ { ++ isRunning = true; ++ be_app->Run(); ++ } else { ++ // FIXME not so good design here. We're locking the calling thread (likely ++ // a BWindow) which means it will not be able to receive any messages as ++ // long as the modal dialog is open. This includes redraw messages as well ++ // so the window will get drawing artifacts... ++ // But if we return from this method, the dialog will be closed by IUP. ++ // We likely need to do some changes to IUP dialog code to get it right. ++ BWindow* win = be_app->WindowAt(be_app->CountWindows() - 1); ++ thread_id tid = win->Thread(); ++ status_t result; ++ wait_for_thread(tid, &result); ++ } ++ return IUP_NOERROR; ++} ++ ++int IupLoopStepWait(void) ++{ ++ UNIMPLEMENTED ++ return IUP_DEFAULT; ++} ++ ++int32 appLoop(void*) ++{ ++ be_app->LockLooper(); ++ be_app->Run(); ++} ++ ++int IupLoopStep(void) ++{ ++ if(!isRunning) { ++ isRunning = true; ++ thread_id id = spawn_thread(appLoop, "IUP Application", B_NORMAL_PRIORITY, NULL); ++ resume_thread(id); ++ be_app->UnlockLooper(); ++ } ++ ++ BLooper* looper = BLooper::LooperForThread(find_thread(NULL)); ++ if (looper == NULL) ++ return IUP_DEFAULT; ++ ++ BMessage* msg = looper->MessageQueue()->NextMessage(); ++ if (msg != NULL) { ++ msg->PrintToStream(); ++ looper->MessageReceived(msg); ++ } else { ++ puts("no messages"); ++ } ++ return IUP_DEFAULT; ++} ++ ++void IupFlush(void) ++{ ++ // This is meant to flush the event loop. Since the windows each run in ++ // their own thread, we can't do much anyway. Let's see later if this is a ++ // real problem... ++} +diff --git a/src/haiku/iuphaiku_menu.cpp b/src/haiku/iuphaiku_menu.cpp +new file mode 100644 +index 0000000..fc86e91 +--- /dev/null ++++ b/src/haiku/iuphaiku_menu.cpp +@@ -0,0 +1,273 @@ ++/** \file ++ * \brief Menu Resources ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "iup.h" ++#include "iupcbs.h" ++ ++#include "iup_object.h" ++#include "iup_childtree.h" ++#include "iup_attrib.h" ++#include "iup_dialog.h" ++#include "iup_str.h" ++#include "iup_label.h" ++#include "iup_drv.h" ++#include "iup_drvfont.h" ++#include "iup_image.h" ++#include "iup_menu.h" ++ ++#include "iuphaiku_drv.h" ++ ++ ++typedef struct _ImenuPos ++{ ++ int x, y; ++} ImenuPos; ++ ++int iupdrvMenuPopup(Ihandle* ih, int x, int y) ++{ ++ UNIMPLEMENTED ++ return IUP_NOERROR; ++} ++ ++int iupdrvMenuGetMenuBarSize(Ihandle* ih) ++{ ++ int ch; ++ iupdrvFontGetCharSize(ih, NULL, &ch); ++ return 4 + ch + 4; ++} ++ ++/*******************************************************************************************/ ++ ++ ++static int haikuMenuMapMethod(Ihandle* ih) ++{ ++ if (iupMenuIsMenuBar(ih)) ++ { ++ /* top level menu used for MENU attribute in IupDialog (a menu bar) */ ++ ih->handle = (InativeHandle*)new BMenuBar(BRect(0, 0, 10, 10), "IUPMenuBar"); ++ if (!ih->handle) ++ return IUP_ERROR; ++ ++ iuphaikuBaseAddToParent(ih); ++ } ++ else ++ { ++ if (ih->parent) ++ { ++ // Menu was already created with the SubMenu. Just set the handle now. ++ BMenuItem* item = (BMenuItem*)ih->parent->handle; ++ ih->handle = (InativeHandle*)(item->Submenu()); ++ if (!ih->handle) ++ return IUP_ERROR; ++ } ++ else ++ { ++ /* top level menu used for IupPopup */ ++ UNIMPLEMENTED; ++ } ++ } ++ ++ //gtk_widget_add_events(ih->handle, GDK_KEY_PRESS_MASK); ++ //g_signal_connect(G_OBJECT(ih->handle), "key-press-event", G_CALLBACK(gtkMenuKeyPressEvent), ih); ++ ++ ih->serial = iupMenuGetChildId(ih); ++ //gtk_widget_show(ih->handle); ++ ++ return IUP_NOERROR; ++} ++ ++static void gtkMenuUnMapMethod(Ihandle* ih) ++{ ++ if (iupMenuIsMenuBar(ih)) ++ ih->parent = NULL; ++ ++ iupdrvBaseUnMapMethod(ih); ++} ++ ++void iupdrvMenuInitClass(Iclass* ic) ++{ ++ /* Driver Dependent Class functions */ ++ ic->Map = haikuMenuMapMethod; ++ ic->UnMap = gtkMenuUnMapMethod; ++ ++ /* Used by iupdrvMenuGetMenuBarSize */ ++ iupClassRegisterAttribute(ic, "STANDARDFONT", NULL, NULL, IUPAF_SAMEASSYSTEM, "DEFAULTFONT", IUPAF_NO_SAVE|IUPAF_DEFAULT); /* use inheritance to retrieve standard fonts */ ++ ++ iupClassRegisterAttribute(ic, "BGCOLOR", NULL, iupdrvBaseSetBgColorAttrib, NULL, NULL, IUPAF_DEFAULT); ++} ++ ++ ++/*******************************************************************************************/ ++ ++static int gtkItemSetTitleImageAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkItemSetImageAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkItemSetImpressAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkItemSetTitleAttrib(Ihandle* ih, const char* value) ++{ ++ BMenuItem* item = (BMenuItem*)ih->handle; ++ item->SetLabel(value); ++ return 1; ++} ++ ++static int gtkItemSetValueAttrib(Ihandle* ih, const char* value) ++{ ++ if (iupAttribGetBoolean(ih->parent, "RADIO")) ++ value = "ON"; ++ ++ BMenuItem* item = (BMenuItem*)ih->handle; ++ item->SetMarked(iupStrBoolean(value)); ++ ++ // TODO handle images items ++ ++ return 0; ++} ++ ++static char* gtkItemGetValueAttrib(Ihandle* ih) ++{ ++ BMenuItem* item = (BMenuItem*)ih->handle; ++ return (char*)(item->IsMarked() ? "ON":"OFF"); ++} ++ ++static int gtkItemMapMethod(Ihandle* ih) ++{ ++ if (!ih->parent) ++ return IUP_ERROR; ++ ++ BMenu* parent = dynamic_cast((BView*)ih->parent->handle); ++ char* title = iupAttribGet(ih, "TITLE"); ++ ++ BMessage* msg = new BMessage(menuInvoke); ++ msg->AddPointer("iHandle", ih); ++ BMenuItem* child = new BMenuItem(title, msg); ++ ih->handle = (InativeHandle*)child; ++ ++ int pos = IupGetChildPos(ih->parent, ih); ++ parent->AddItem(child, pos); ++ ++ return IUP_NOERROR; ++} ++ ++void iupdrvItemInitClass(Iclass* ic) ++{ ++ /* Driver Dependent Class functions */ ++ ic->Map = gtkItemMapMethod; ++ ic->UnMap = iupdrvBaseUnMapMethod; ++ ++ /* Common */ ++ iupClassRegisterAttribute(ic, "STANDARDFONT", NULL, iupdrvSetStandardFontAttrib, IUPAF_SAMEASSYSTEM, "DEFAULTFONT", IUPAF_NO_SAVE|IUPAF_NOT_MAPPED); /* use inheritance to retrieve standard fonts */ ++ ++ /* Visual */ ++ iupClassRegisterAttribute(ic, "ACTIVE", iupBaseGetActiveAttrib, iupBaseSetActiveAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_DEFAULT); ++ iupClassRegisterAttribute(ic, "BGCOLOR", NULL, iupdrvBaseSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT); ++ ++ /* IupItem only */ ++ iupClassRegisterAttribute(ic, "VALUE", gtkItemGetValueAttrib, gtkItemSetValueAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "TITLE", NULL, gtkItemSetTitleAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "TITLEIMAGE", NULL, gtkItemSetTitleImageAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "IMAGE", NULL, gtkItemSetImageAttrib, NULL, NULL, IUPAF_IHANDLENAME|IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "IMPRESS", NULL, gtkItemSetImpressAttrib, NULL, NULL, IUPAF_IHANDLENAME|IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ ++ /* IupItem GTK and Motif only */ ++ iupClassRegisterAttribute(ic, "HIDEMARK", NULL, NULL, NULL, NULL, IUPAF_NOT_MAPPED); ++} ++ ++ ++/*******************************************************************************************/ ++ ++ ++static int gtkSubmenuSetImageAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int haikuSubmenuMapMethod(Ihandle* ih) ++{ ++ if (!ih->parent) ++ return IUP_ERROR; ++ ++ char* title = iupAttribGet(ih, "TITLE"); ++ BMenuItem* item = new BMenuItem(new BMenu(title), NULL); ++ ih->handle = (InativeHandle*)item; ++ ++ BMenu* topmenu = (BMenu*)ih->parent->handle; ++ int pos = IupGetChildPos(ih->parent, ih); ++ topmenu->AddItem(item, pos); ++ ++ //iupUpdateStandardFontAttrib(ih); ++ ++ return IUP_NOERROR; ++} ++ ++void iupdrvSubmenuInitClass(Iclass* ic) ++{ ++ /* Driver Dependent Class functions */ ++ ic->Map = haikuSubmenuMapMethod; ++ ic->UnMap = iupdrvBaseUnMapMethod; ++ ++ /* Common */ ++ iupClassRegisterAttribute(ic, "STANDARDFONT", NULL, iupdrvSetStandardFontAttrib, IUPAF_SAMEASSYSTEM, "DEFAULTFONT", IUPAF_NO_SAVE|IUPAF_NOT_MAPPED); /* use inheritance to retrieve standard fonts */ ++ ++ /* Visual */ ++ iupClassRegisterAttribute(ic, "ACTIVE", iupBaseGetActiveAttrib, iupBaseSetActiveAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_DEFAULT); ++ iupClassRegisterAttribute(ic, "BGCOLOR", NULL, iupdrvBaseSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT); ++ ++ /* IupSubmenu only */ ++ iupClassRegisterAttribute(ic, "TITLE", NULL, gtkItemSetTitleAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "IMAGE", NULL, gtkSubmenuSetImageAttrib, NULL, NULL, IUPAF_IHANDLENAME|IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++} ++ ++ ++/*******************************************************************************************/ ++ ++ ++static int gtkSeparatorMapMethod(Ihandle* ih) ++{ ++ ++ if (!ih->parent) ++ return IUP_ERROR; ++ ++ ih->handle = (InativeHandle*)new BSeparatorItem(); ++ ++ BMenu* parent = dynamic_cast((BView*)ih->parent->handle); ++ int pos = IupGetChildPos(ih->parent, ih); ++ parent->AddItem((BSeparatorItem*)ih->handle, pos); ++ ++ return IUP_NOERROR; ++} ++ ++void iupdrvSeparatorInitClass(Iclass* ic) ++{ ++ /* Driver Dependent Class functions */ ++ ic->Map = gtkSeparatorMapMethod; ++ ic->UnMap = iupdrvBaseUnMapMethod; ++} +diff --git a/src/haiku/iuphaiku_messagedlg.c b/src/haiku/iuphaiku_messagedlg.c +new file mode 100644 +index 0000000..6c7f487 +--- /dev/null ++++ b/src/haiku/iuphaiku_messagedlg.c +@@ -0,0 +1,38 @@ ++/** \file ++ * \brief GTK IupMessageDlg pre-defined dialog ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#include "iup.h" ++ ++#include "iup_object.h" ++#include "iup_attrib.h" ++#include "iup_str.h" ++#include "iup_dialog.h" ++ ++#include "iuphaiku_drv.h" ++ ++#include ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++/* Sometimes GTK decides to invert the buttons position because of the GNOME Guidelines. ++ To avoid that we define different Ids for the buttons. */ ++#define IUP_RESPONSE_1 -100 ++#define IUP_RESPONSE_2 -200 ++#define IUP_RESPONSE_HELP -300 ++ ++#ifndef GTK_MESSAGE_OTHER ++#define GTK_MESSAGE_OTHER GTK_MESSAGE_INFO ++#endif ++ ++static int gtkMessageDlgPopup(Ihandle* ih, int x, int y) ++{ ++ UNIMPLEMENTED ++ return IUP_NOERROR; ++} ++ ++void iupdrvMessageDlgInitClass(Iclass* ic) ++{ ++ ic->DlgPopup = gtkMessageDlgPopup; ++} +diff --git a/src/haiku/iuphaiku_open.cpp b/src/haiku/iuphaiku_open.cpp +new file mode 100644 +index 0000000..badd7c7 +--- /dev/null ++++ b/src/haiku/iuphaiku_open.cpp +@@ -0,0 +1,114 @@ ++/** \file ++ * \brief GTK Driver Core ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++#include "iup.h" ++ ++#include "iup_str.h" ++#include "iup_drv.h" ++#include "iup_drvinfo.h" ++#include "iup_object.h" ++#include "iup_globalattrib.h" ++ ++#include "iuphaiku_drv.h" ++ ++char* iupgtkGetNativeWindowHandle(Ihandle* ih) ++{ ++ BView* view = (BView*)ih->handle; ++ return (char*)view->Window(); ++} ++ ++void* iupdrvGetDisplay(void) ++{ ++ return new BScreen(); // TODO Does this leak memory ? ++} ++ ++void iupgtkPushVisualAndColormap(void* visual, void* colormap) ++{ ++ UNIMPLEMENTED ++} ++ ++extern void iuphaikuTimerFired(Ihandle* ih); ++ ++class IUPApplication: public BApplication ++{ ++ public: ++ IUPApplication() ++ : BApplication("application/iup") ++ { ++ } ++ ++ void MessageReceived(BMessage* message) ++ { ++ Ihandle* ih = NULL; ++ message->FindPointer("iHandle", (void**)&ih); ++ ++ switch(message->what) { ++ case timerFire: ++ iuphaikuTimerFired(ih); ++ break; ++ default: ++ BApplication::MessageReceived(message); ++ break; ++ } ++ } ++}; ++ ++ ++static void haikuSetGlobalAttrib(void) ++{ ++ // XDISPLAY, XSCREEN, XSERVERVENDOR, XVENDORRELEASE ++} ++ ++ ++void haikuSetGlobalColors(void) ++{ ++ rgb_color color; ++ color = ui_color(B_PANEL_BACKGROUND_COLOR); // or B_CONTROL_BACKGROUND_COLOR ? ++ iupGlobalSetDefaultColorAttrib("DLGBGCOLOR", color.red, color.green, color.blue); ++ color = ui_color(B_PANEL_TEXT_COLOR); // or B_CONTROL_TEXT_COLOR ? ++ iupGlobalSetDefaultColorAttrib("DLFBGCOLOR", color.red, color.green, color.blue); ++ color = ui_color(B_DOCUMENT_BACKGROUND_COLOR); ++ iupGlobalSetDefaultColorAttrib("TXTBGCOLOR", color.red, color.green, color.blue); ++ color = ui_color(B_DOCUMENT_TEXT_COLOR); ++ iupGlobalSetDefaultColorAttrib("TXTFGCOLOR", color.red, color.green, color.blue); ++} ++ ++ ++int iupdrvOpen(int *argc, char ***argv) ++{ ++ IupSetGlobal("DRIVER", "HAIKU"); ++ //IupStoreGlobal("SYSTEMLANGUAGE", pango_language_to_string(gtk_get_default_language())); ++ //HAIKUVERSION ? (does that make any sense ?) ++ ++ haikuSetGlobalAttrib(); ++ ++ haikuSetGlobalColors(); ++ ++ // Here, create our BApplication. ++ new IUPApplication(); ++ ++ return IUP_NOERROR; ++} ++ ++void iupdrvClose(void) ++{ ++ // Here, destroy our BApplication. ++ if (be_app) ++ { ++ be_app->Lock(); ++ be_app->Quit(); ++ } ++} +diff --git a/src/haiku/iuphaiku_progressbar.cpp b/src/haiku/iuphaiku_progressbar.cpp +new file mode 100644 +index 0000000..c5da813 +--- /dev/null ++++ b/src/haiku/iuphaiku_progressbar.cpp +@@ -0,0 +1,105 @@ ++/** \file ++* \brief Progress bar Control ++* ++* See Copyright Notice in "iup.h" ++*/ ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "iup.h" ++#include "iupcbs.h" ++ ++#include "iup_object.h" ++#include "iup_layout.h" ++#include "iup_attrib.h" ++#include "iup_str.h" ++#include "iup_progressbar.h" ++#include "iup_drv.h" ++ ++#include "iuphaiku_drv.h" ++ ++static int haikuProgressBarSetValueAttrib(Ihandle* ih, const char* value) ++{ ++ if (ih->data->marquee) ++ return 0; ++ ++ if (!value) ++ ih->data->value = 0; ++ else ++ ih->data->value = atof(value); ++ iProgressBarCropValue(ih); ++ ++ BStatusBar* bar = (BStatusBar*)ih->handle; ++ float val = bar->CurrentValue(); ++ bar->Update(ih->data->value - val); ++ ++ return 1; ++} ++ ++static int haikuProgressBarSetMaxAttrib(Ihandle* ih, const char* value) ++{ ++ if (ih->data->marquee) ++ return 0; ++ ++ if (!value) ++ ih->data->vmax = 1; ++ else ++ ih->data->vmax = atof(value); ++ iProgressBarCropValue(ih); ++ ++ BStatusBar* bar = (BStatusBar*)ih->handle; ++ bar->SetMaxValue(ih->data->vmax); ++ ++ return 1; ++} ++ ++static int haikuProgressBarMapMethod(Ihandle* ih) ++{ ++ BStatusBar* bar = new BStatusBar(BRect(0,0,200,30), "progress"); ++ bar->SetFlags(bar->Flags() | B_SUPPORTS_LAYOUT); ++ // We need this to allow the bar to have no labels ++ ++ bar->SetMaxValue(1.0f); ++ ++ ih->handle = (InativeHandle*)bar; ++ ++ if (iupStrEqualNoCase(iupAttribGetStr(ih, "ORIENTATION"), "VERTICAL")) ++ UNIMPLEMENTED ++ ++ if (iupAttribGetBoolean(ih, "MARQUEE")) ++ UNIMPLEMENTED ++ ++ iuphaikuBaseAddToParent(ih); ++ return IUP_NOERROR; ++} ++ ++ ++static void haikuProgressLayoutUpdateMethod(Ihandle *ih) ++{ ++ iupdrvBaseLayoutUpdateMethod(ih); ++ ++ BStatusBar* bar = (BStatusBar*)ih->handle; ++ bar->SetBarHeight(ih->currentheight - 1); ++} ++ ++ ++void iupdrvProgressBarInitClass(Iclass* ic) ++{ ++ /* Driver Dependent Class functions */ ++ ic->Map = haikuProgressBarMapMethod; ++ ic->LayoutUpdate = haikuProgressLayoutUpdateMethod; ++ ++ // TODO Callbacks : BGCOLOR, FGCOLOR, DASHED, ORIENTATION, MARQUEE ++ ++ /* IupProgressBar only */ ++ iupClassRegisterAttribute(ic, "VALUE", iProgressBarGetValueAttrib, haikuProgressBarSetValueAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "MAX", NULL, haikuProgressBarSetMaxAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++} +diff --git a/src/haiku/iuphaiku_tabs.cpp b/src/haiku/iuphaiku_tabs.cpp +new file mode 100644 +index 0000000..072591a +--- /dev/null ++++ b/src/haiku/iuphaiku_tabs.cpp +@@ -0,0 +1,389 @@ ++/** \file ++* \brief Tabs Control ++* ++* See Copyright Notice in "iup.h" ++*/ ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#include "iup.h" ++#include "iupcbs.h" ++ ++#include "iup_object.h" ++#include "iup_layout.h" ++#include "iup_attrib.h" ++#include "iup_str.h" ++#include "iup_dialog.h" ++#include "iup_drv.h" ++#include "iup_drvfont.h" ++#include "iup_stdcontrols.h" ++#include "iup_image.h" ++#include "iup_tabs.h" ++ ++#include "iuphaiku_drv.h" ++ ++ ++int iupdrvTabsExtraDecor(Ihandle* ih) ++{ ++ (void)ih; ++ return 0; ++} ++ ++int iupdrvTabsGetLineCountAttrib(Ihandle* ih) ++{ ++ (void)ih; ++ return 1; ++} ++ ++void iupdrvTabsSetCurrentTab(Ihandle* ih, int pos) ++{ ++ UNIMPLEMENTED ++} ++ ++int iupdrvTabsGetCurrentTab(Ihandle* ih) ++{ ++ BTabView* tv = (BTabView*)ih->handle; ++ return tv->Selection(); ++} ++ ++static void gtkTabsUpdatePageFont(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++} ++ ++static void gtkTabsUpdatePageBgColor(Ihandle* ih, unsigned char r, unsigned char g, unsigned char b) ++{ ++ UNIMPLEMENTED ++} ++ ++static void gtkTabsUpdatePageFgColor(Ihandle* ih, unsigned char r, unsigned char g, unsigned char b) ++{ ++ UNIMPLEMENTED ++} ++ ++static void gtkTabsUpdatePagePadding(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++} ++ ++/* ------------------------------------------------------------------------- */ ++/* gtkTabs - Sets and Gets accessors */ ++/* ------------------------------------------------------------------------- */ ++ ++ ++static int gtkTabsSetPaddingAttrib(Ihandle* ih, const char* value) ++{ ++ iupStrToIntInt(value, &ih->data->horiz_padding, &ih->data->vert_padding, 'x'); ++ ++ if (ih->handle) ++ { ++ gtkTabsUpdatePagePadding(ih); ++ return 0; ++ } ++ else ++ return 1; /* store until not mapped, when mapped will be set again */ ++} ++ ++static void gtkTabsUpdateTabType(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++} ++ ++static int gtkTabsSetTabTypeAttrib(Ihandle* ih, const char* value) ++{ ++ if(iupStrEqualNoCase(value, "BOTTOM")) ++ ih->data->type = ITABS_BOTTOM; ++ else if(iupStrEqualNoCase(value, "LEFT")) ++ ih->data->type = ITABS_LEFT; ++ else if(iupStrEqualNoCase(value, "RIGHT")) ++ ih->data->type = ITABS_RIGHT; ++ else /* "TOP" */ ++ ih->data->type = ITABS_TOP; ++ ++ if (ih->handle) ++ gtkTabsUpdateTabType(ih); /* for this to work must be updated in map */ ++ ++ return 0; ++} ++ ++static int gtkTabsSetTabOrientationAttrib(Ihandle* ih, const char* value) ++{ ++ if (ih->handle) /* allow to set only before mapping */ ++ return 0; ++ ++ if(iupStrEqualNoCase(value, "VERTICAL")) ++ ih->data->orientation = ITABS_VERTICAL; ++ else /* HORIZONTAL */ ++ ih->data->orientation = ITABS_HORIZONTAL; ++ ++ return 0; ++} ++ ++static int haikuTabsSetTabTitleAttrib(Ihandle* ih, int pos, const char* value) ++{ ++ if (value) ++ { ++ BTabView* tv = (BTabView*)ih->handle; ++ BTab* tab = tv->TabAt(pos); ++ tab->SetLabel(value); ++ } ++ ++ return 1; ++} ++ ++static int gtkTabsSetTabImageAttrib(Ihandle* ih, int pos, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++ ++static int gtkTabsSetStandardFontAttrib(Ihandle* ih, const char* value) ++{ ++ iupdrvSetStandardFontAttrib(ih, value); ++ if (ih->handle) ++ gtkTabsUpdatePageFont(ih); ++ return 1; ++} ++ ++static int gtkTabsSetFgColorAttrib(Ihandle* ih, const char* value) ++{ ++ unsigned char r, g, b; ++ if (!iupStrToRGB(value, &r, &g, &b)) ++ return 0; ++ ++ iuphaikuBaseSetFgColor(ih->handle, r, g, b); ++ gtkTabsUpdatePageFgColor(ih, r, g, b); ++ ++ return 1; ++} ++ ++static int gtkTabsSetBgColorAttrib(Ihandle* ih, const char* value) ++{ ++ unsigned char r, g, b; ++ if (!iupStrToRGB(value, &r, &g, &b)) ++ return 0; ++ ++ iuphaikuBaseSetBgColor(ih->handle, r, g, b); ++ gtkTabsUpdatePageBgColor(ih, r, g, b); ++ ++ return 1; ++} ++ ++ ++/* ------------------------------------------------------------------------- */ ++/* gtkTabs - Methods and Init Class */ ++/* ------------------------------------------------------------------------- */ ++ ++static void haikuTabsChildAddedMethod(Ihandle* ih, Ihandle* child) ++{ ++ if (IupGetName(child) == NULL) ++ iupAttribSetHandleName(child); ++ ++ if (ih->handle) ++ { ++ BTabView* tv = (BTabView*)ih->handle; ++ ++ const char *tabtitle, *tabimage; ++ int pos; ++ ++ pos = IupGetChildPos(ih, child); ++ ++ BTab* tab = new BTab((BView*)child->handle); ++ ++ BView* view = new BView( ++ BRect(0, 0, ih->currentwidth, ih->currentheight), ++ "IUPTabHolder", B_FOLLOW_ALL_SIDES, 0); ++ ++ tabtitle = iupTabsAttribGetStrId(ih, "TABTITLE", pos); ++ if (!tabtitle) ++ { ++ tabtitle = iupAttribGet(child, "TABTITLE"); ++ if (tabtitle) ++ iupTabsAttribSetStrId(ih, "TABTITLE", pos, tabtitle); ++ } ++ ++ tabimage = iupTabsAttribGetStrId(ih, "TABIMAGE", pos); ++ if (!tabimage) ++ { ++ tabimage = iupAttribGet(child, "TABIMAGE"); ++ if (tabimage) ++ iupTabsAttribSetStrId(ih, "TABIMAGE", pos, tabimage); ++ } ++ ++ if (!tabtitle && !tabimage) ++ tabtitle = " "; ++ ++ if (tabtitle) ++ { ++ tab->SetLabel(tabtitle); ++ } ++ ++ if (tabimage) ++ { ++ UNIMPLEMENTED ++ //GdkPixbuf* pixbuf = iupImageGetImage(tabimage, ih, 0); ++ ++ //tab_image = gtk_image_new(); ++ ++ //if (pixbuf) ++ // gtk_image_set_from_pixbuf((GtkImage*)tab_image, pixbuf); ++ } ++ ++ if (tabimage && tabtitle) ++ { ++ UNIMPLEMENTED ++ //GtkWidget* box; ++ /* ++ if (ih->data->orientation == ITABS_VERTICAL) ++ box = gtk_vbox_new(FALSE, 2); ++ else ++ box = gtk_hbox_new(FALSE, 2); ++ gtk_widget_show(box); ++ ++ gtk_container_add((GtkContainer*)box, tab_image); ++ gtk_container_add((GtkContainer*)box, tab_label); ++ ++ gtk_notebook_insert_page((GtkNotebook*)ih->handle, tab_page, box, pos); ++ gtk_notebook_set_menu_label_text((GtkNotebook*)ih->handle, tab_page, gtk_label_get_text((GtkLabel*)tab_label)); ++ */ ++ } ++ ++ // There is some breakage of the view hierarchy here. Haiku does not use the ++ // regular AddChild method for adding tabs to a BTabView, and IUP also doesn't ++ // use the regular way of looking for the parent native view. We need to add ++ // a top view for te whole tab and tell IUP explicitly that this is the ++ // parent view to use for the tab contents. ++ iupAttribSetStr(child, "_IUPTAB_CONTAINER", (char*)view); ++ iupAttribSetStr(child, "_IUPTAB_PAGE", (char*)tab); ++ ++ unsigned char r, g, b; ++ iupStrToRGB(IupGetAttribute(ih, "BGCOLOR"), &r, &g, &b); ++ iuphaikuBaseSetBgColor((InativeHandle*)view, r, g, b); ++ ++ //iupAttribSetStr(ih, "_IUPGTK_IGNORE_CHANGE", NULL); ++ ++ tv->AddTab(view, tab); ++ } ++} ++ ++static void gtkTabsChildRemovedMethod(Ihandle* ih, Ihandle* child) ++{ ++ UNIMPLEMENTED ++} ++ ++ ++class IUPTabView: public BTabView ++{ ++ public: ++ IUPTabView(Ihandle* handle) ++ : BTabView(BRect(0,0,10,10), "iuptabs") ++ , ih(handle) ++ {} ++ ++ void Select(int32 newtab) { ++ int32 oldtab = Selection(); ++ ++ BTabView::Select(newtab); ++ ++ IFnnn cb = (IFnnn)IupGetCallback(ih, "TABCHANGE_CB"); ++ if (cb) { ++ Ihandle* child = IupGetChild(ih, newtab); ++ Ihandle* prev_child = IupGetChild(ih, oldtab); ++ cb(ih, child, prev_child); ++ } else ++ { ++ IFnii cb2 = (IFnii)IupGetCallback(ih, "TABCHANGEPOS_CB"); ++ if (cb2) ++ cb2(ih, newtab, oldtab); ++ } ++ } ++ private: ++ Ihandle* ih; ++}; ++ ++ ++static int haikuTabsMapMethod(Ihandle* ih) ++{ ++ ih->handle = (InativeHandle*)new IUPTabView(ih); ++ if (!ih->handle) ++ return IUP_ERROR; ++ ++ //gtk_notebook_set_scrollable((GtkNotebook*)ih->handle, TRUE); ++ //gtk_notebook_popup_enable((GtkNotebook*)ih->handle); ++ ++ //gtkTabsUpdateTabType(ih); ++ ++ /* add to the parent, all controls must call this. */ ++ iuphaikuBaseAddToParent(ih); ++ ++ /* ++ gtk_widget_add_events(ih->handle, GDK_ENTER_NOTIFY_MASK|GDK_LEAVE_NOTIFY_MASK); ++ ++ g_signal_connect(G_OBJECT(ih->handle), "enter-notify-event", G_CALLBACK(iupgtkEnterLeaveEvent), ih); ++ g_signal_connect(G_OBJECT(ih->handle), "leave-notify-event", G_CALLBACK(iupgtkEnterLeaveEvent), ih); ++ g_signal_connect(G_OBJECT(ih->handle), "focus-in-event", G_CALLBACK(iupgtkFocusInOutEvent), ih); ++ g_signal_connect(G_OBJECT(ih->handle), "focus-out-event", G_CALLBACK(iupgtkFocusInOutEvent), ih); ++ g_signal_connect(G_OBJECT(ih->handle), "key-press-event", G_CALLBACK(iupgtkKeyPressEvent), ih); ++ g_signal_connect(G_OBJECT(ih->handle), "show-help", G_CALLBACK(iupgtkShowHelp), ih); ++ ++ g_signal_connect(G_OBJECT(ih->handle), "switch-page", G_CALLBACK(gtkTabSwitchPage), ih); ++ ++ gtk_widget_realize(ih->handle); ++ */ ++ ++ /* Create pages and tabs */ ++ if (ih->firstchild) ++ { ++ Ihandle* child; ++ for (child = ih->firstchild; child; child = child->brother) ++ haikuTabsChildAddedMethod(ih, child); ++ } ++ ++ return IUP_NOERROR; ++} ++ ++void iupdrvTabsInitClass(Iclass* ic) ++{ ++ /* Driver Dependent Class functions */ ++ ic->Map = haikuTabsMapMethod; ++ ic->ChildAdded = haikuTabsChildAddedMethod; ++ ic->ChildRemoved = gtkTabsChildRemovedMethod; ++ ++ /* Driver Dependent Attribute functions */ ++ ++ /* Common */ ++ iupClassRegisterAttribute(ic, "STANDARDFONT", NULL, gtkTabsSetStandardFontAttrib, ++ IUPAF_SAMEASSYSTEM, "DEFAULTFONT", IUPAF_NO_SAVE|IUPAF_NOT_MAPPED); ++ ++ /* Visual */ ++ iupClassRegisterAttribute(ic, "BGCOLOR", NULL, gtkTabsSetBgColorAttrib, ++ IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT); ++ iupClassRegisterAttribute(ic, "FGCOLOR", NULL, gtkTabsSetFgColorAttrib, ++ IUPAF_SAMEASSYSTEM, "DLGFGCOLOR", IUPAF_DEFAULT); ++ ++ /* IupTabs only */ ++ iupClassRegisterAttribute(ic, "TABTYPE", iupTabsGetTabTypeAttrib, ++ gtkTabsSetTabTypeAttrib, IUPAF_SAMEASSYSTEM, "TOP", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "TABORIENTATION", iupTabsGetTabOrientationAttrib, ++ gtkTabsSetTabOrientationAttrib, IUPAF_SAMEASSYSTEM, "HORIZONTAL", ++ IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); ++ iupClassRegisterAttributeId(ic, "TABTITLE", NULL, haikuTabsSetTabTitleAttrib, ++ IUPAF_NO_INHERIT); ++ iupClassRegisterAttributeId(ic, "TABIMAGE", NULL, gtkTabsSetTabImageAttrib, ++ IUPAF_IHANDLENAME|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "PADDING", iupTabsGetPaddingAttrib, ++ gtkTabsSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); ++ ++ /* NOT supported */ ++ iupClassRegisterAttribute(ic, "MULTILINE", NULL, NULL, NULL, NULL, ++ IUPAF_NOT_SUPPORTED|IUPAF_DEFAULT); ++} +diff --git a/src/haiku/iuphaiku_text.cpp b/src/haiku/iuphaiku_text.cpp +new file mode 100644 +index 0000000..1afd172 +--- /dev/null ++++ b/src/haiku/iuphaiku_text.cpp +@@ -0,0 +1,394 @@ ++/** \file ++ * \brief Text Control ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "iup.h" ++#include "iupcbs.h" ++ ++#include "iup_object.h" ++#include "iup_layout.h" ++#include "iup_attrib.h" ++#include "iup_str.h" ++#include "iup_image.h" ++#include "iup_mask.h" ++#include "iup_drv.h" ++#include "iup_drvfont.h" ++#include "iup_image.h" ++#include "iup_key.h" ++#include "iup_array.h" ++#include "iup_text.h" ++ ++#include "iuphaiku_drv.h" ++ ++#ifndef PANGO_WEIGHT_SEMIBOLD ++#define PANGO_WEIGHT_SEMIBOLD 600 ++#endif ++ ++void iupdrvTextAddSpin(int *w, int h) ++{ ++ int spin_size = 16; ++ *w += spin_size; ++ (void)h; ++} ++ ++void iupdrvTextAddBorders(int *x, int *y) ++{ ++ int border_size = 2*5; ++ (*x) += border_size; ++ (*y) += border_size; ++} ++ ++void iupdrvTextConvertLinColToPos(Ihandle* ih, int lin, int col, int *pos) ++{ ++ UNIMPLEMENTED ++} ++ ++void iupdrvTextConvertPosToLinCol(Ihandle* ih, int pos, int *lin, int *col) ++{ ++ UNIMPLEMENTED ++} ++ ++/*******************************************************************************************/ ++ ++ ++static int gtkTextSetSelectionAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static char* gtkTextGetSelectionAttrib(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static int gtkTextSetSelectionPosAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static char* gtkTextGetSelectionPosAttrib(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static int gtkTextSetSelectedTextAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static char* gtkTextGetCountAttrib(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static char* gtkTextGetLineCountAttrib(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static char* gtkTextGetSelectedTextAttrib(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static int gtkTextSetCaretAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static char* gtkTextGetCaretAttrib(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static int gtkTextSetCaretPosAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static char* gtkTextGetCaretPosAttrib(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static int gtkTextSetScrollToAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkTextSetScrollToPosAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkTextSetValueAttrib(Ihandle* ih, const char* value) ++{ ++ BView* view = (BView*)ih->handle; ++ ++ BTextControl* ctrl = dynamic_cast(view); ++ if (ctrl) { ++ ctrl->SetText(value); ++ } else ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static char* gtkTextGetValueAttrib(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static char* gtkTextGetLineValueAttrib(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static int gtkTextSetInsertAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkTextSetAppendAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkTextSetAlignmentAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++ ++static int gtkTextSetPaddingAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; /* store until not mapped, when mapped will be set again */ ++} ++ ++static int gtkTextSetNCAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; /* store until not mapped, when mapped will be set again */ ++} ++ ++static int gtkTextSetClipboardAttrib(Ihandle *ih, const char *value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkTextSetReadOnlyAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static char* gtkTextGetReadOnlyAttrib(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static char* gtkTextGetWidgetPangoLayoutAttrib(Ihandle* ih) ++{ ++ if (ih->data->is_multiline) ++ return NULL; ++ else ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static int gtkTextSetBgColorAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkTextSetTabSizeAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++ ++static int gtkTextSetOverwriteAttrib(Ihandle* ih, const char* value) ++{ ++ if (!ih->data->is_multiline) ++ return 0; ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static char* gtkTextGetOverwriteAttrib(Ihandle* ih) ++{ ++ if (!ih->data->is_multiline) ++ return "NO"; ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++void* iupdrvTextAddFormatTagStartBulk(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++void iupdrvTextAddFormatTagStopBulk(Ihandle* ih, void* state) ++{ ++ UNIMPLEMENTED ++} ++ ++void iupdrvTextAddFormatTag(Ihandle* ih, Ihandle* formattag, int bulk) ++{ ++ UNIMPLEMENTED ++} ++ ++static int gtkTextSetRemoveFormattingAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++ ++static int gtkTextSetSpinMinAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++ ++static int gtkTextSetSpinMaxAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++ ++static int gtkTextSetSpinIncAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++ ++static int gtkTextSetSpinValueAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++ ++static char* gtkTextGetSpinValueAttrib(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++ ++/**********************************************************************************************************/ ++ ++ ++static int gtkTextMapMethod(Ihandle* ih) ++{ ++ static const BRect defaultRect(0, 0, 10, 10); ++ if (ih->data->is_multiline) { ++ ih->handle = (InativeHandle*)new BTextView(defaultRect, "multiline", ++ defaultRect, B_FOLLOW_ALL_SIDES, B_WILL_DRAW); ++ } else if (iupAttribGetBoolean(ih, "SPIN")) { ++ UNIMPLEMENTED ++ // TODO build an actual spinner control ! ++ ih->handle = (InativeHandle*)new BTextControl(defaultRect, "text", ++ NULL, NULL, NULL); ++ } else { ++ ih->handle = (InativeHandle*)new BTextControl(defaultRect, "text", ++ NULL, NULL, NULL); ++ if (iupAttribGetBoolean(ih, "PASSWORD")) ++ UNIMPLEMENTED ++ } ++ ++ iuphaikuBaseAddToParent(ih); ++ ++ if (!iupAttribGetBoolean(ih, "CANFOCUS")) ++ UNIMPLEMENTED ++ ++ return IUP_NOERROR; ++} ++ ++void iupdrvTextInitClass(Iclass* ic) ++{ ++ /* Driver Dependent Class functions */ ++ ic->Map = gtkTextMapMethod; ++ ++ /* Driver Dependent Attribute functions */ ++ ++ /* Common GTK only (when text is in a secondary element) */ ++ iupClassRegisterAttribute(ic, "WIDGETPANGOLAYOUT", gtkTextGetWidgetPangoLayoutAttrib, NULL, NULL, NULL, IUPAF_NO_INHERIT); ++ ++ /* Visual */ ++ iupClassRegisterAttribute(ic, "BGCOLOR", NULL, gtkTextSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "TXTBGCOLOR", IUPAF_DEFAULT); ++ ++ /* Special */ ++ iupClassRegisterAttribute(ic, "FGCOLOR", NULL, iupdrvBaseSetFgColorAttrib, IUPAF_SAMEASSYSTEM, "TXTFGCOLOR", IUPAF_DEFAULT); ++ ++ /* IupText only */ ++ iupClassRegisterAttribute(ic, "PADDING", iupTextGetPaddingAttrib, gtkTextSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED); ++ iupClassRegisterAttribute(ic, "VALUE", gtkTextGetValueAttrib, gtkTextSetValueAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "LINEVALUE", gtkTextGetLineValueAttrib, NULL, NULL, NULL, IUPAF_READONLY|IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "SELECTEDTEXT", gtkTextGetSelectedTextAttrib, gtkTextSetSelectedTextAttrib, NULL, NULL, IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "SELECTION", gtkTextGetSelectionAttrib, gtkTextSetSelectionAttrib, NULL, NULL, IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "SELECTIONPOS", gtkTextGetSelectionPosAttrib, gtkTextSetSelectionPosAttrib, NULL, NULL, IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "CARET", gtkTextGetCaretAttrib, gtkTextSetCaretAttrib, NULL, NULL, IUPAF_NO_SAVE|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "CARETPOS", gtkTextGetCaretPosAttrib, gtkTextSetCaretPosAttrib, IUPAF_SAMEASSYSTEM, "0", IUPAF_NO_SAVE|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "INSERT", NULL, gtkTextSetInsertAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "APPEND", NULL, gtkTextSetAppendAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "READONLY", gtkTextGetReadOnlyAttrib, gtkTextSetReadOnlyAttrib, NULL, NULL, IUPAF_DEFAULT); ++ iupClassRegisterAttribute(ic, "NC", iupTextGetNCAttrib, gtkTextSetNCAttrib, IUPAF_SAMEASSYSTEM, "0", IUPAF_NOT_MAPPED); ++ iupClassRegisterAttribute(ic, "CLIPBOARD", NULL, gtkTextSetClipboardAttrib, NULL, NULL, IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "SCROLLTO", NULL, gtkTextSetScrollToAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "SCROLLTOPOS", NULL, gtkTextSetScrollToPosAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "SPINMIN", NULL, gtkTextSetSpinMinAttrib, IUPAF_SAMEASSYSTEM, "0", IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "SPINMAX", NULL, gtkTextSetSpinMaxAttrib, IUPAF_SAMEASSYSTEM, "100", IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "SPININC", NULL, gtkTextSetSpinIncAttrib, IUPAF_SAMEASSYSTEM, "1", IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "SPINVALUE", gtkTextGetSpinValueAttrib, gtkTextSetSpinValueAttrib, IUPAF_SAMEASSYSTEM, "0", IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "COUNT", gtkTextGetCountAttrib, NULL, NULL, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "LINECOUNT", gtkTextGetLineCountAttrib, NULL, NULL, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT); ++ ++ /* IupText Windows and GTK only */ ++ iupClassRegisterAttribute(ic, "ADDFORMATTAG", NULL, iupTextSetAddFormatTagAttrib, NULL, NULL, IUPAF_IHANDLENAME|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "ADDFORMATTAG_HANDLE", NULL, iupTextSetAddFormatTagHandleAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "ALIGNMENT", NULL, gtkTextSetAlignmentAttrib, IUPAF_SAMEASSYSTEM, "ALEFT", IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "FORMATTING", iupTextGetFormattingAttrib, iupTextSetFormattingAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "OVERWRITE", gtkTextGetOverwriteAttrib, gtkTextSetOverwriteAttrib, NULL, NULL, IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "REMOVEFORMATTING", NULL, gtkTextSetRemoveFormattingAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "TABSIZE", NULL, gtkTextSetTabSizeAttrib, "8", NULL, IUPAF_DEFAULT); /* force new default value */ ++ iupClassRegisterAttribute(ic, "PASSWORD", NULL, NULL, NULL, NULL, IUPAF_NO_INHERIT); ++ ++ /* Not Supported */ ++ iupClassRegisterAttribute(ic, "CUEBANNER", NULL, NULL, NULL, NULL, IUPAF_NOT_SUPPORTED|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "FILTER", NULL, NULL, NULL, NULL, IUPAF_NOT_SUPPORTED|IUPAF_NO_INHERIT); ++} +diff --git a/src/haiku/iuphaiku_timer.cpp b/src/haiku/iuphaiku_timer.cpp +new file mode 100644 +index 0000000..6839f1d +--- /dev/null ++++ b/src/haiku/iuphaiku_timer.cpp +@@ -0,0 +1,79 @@ ++/** \file ++ * \brief Timer for the GTK Driver. ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++#include "iup.h" ++ ++#include "iup_object.h" ++#include "iup_attrib.h" ++#include "iup_str.h" ++#include "iup_assert.h" ++#include "iup_timer.h" ++ ++#include "iuphaiku_drv.h" ++ ++ ++void iuphaikuTimerFired(Ihandle* ih) ++{ ++ Icallback cb; ++ ++ if (!iupObjectCheck(ih)) { ++ /* control was destroyed before timer callback */ ++ return; ++ } ++ ++ cb = IupGetCallback(ih, "ACTION_CB"); ++ if (cb && cb(ih)==IUP_CLOSE) ++ IupExitLoop(); ++} ++ ++void iupdrvTimerRun(Ihandle *ih) ++{ ++ unsigned int time_ms; ++ ++ if (ih->serial > 0) /* timer already started */ ++ return; ++ ++ time_ms = iupAttribGetInt(ih, "TIME"); ++ if (time_ms > 0) { ++ BMessage* msg = new BMessage(timerFire); ++ msg->AddPointer("iHandle", ih); ++ ++ BLooper* looper = be_app->WindowAt(be_app->CountWindows() - 1); ++ if (looper == NULL) { ++ looper = be_app; ++ } ++ ++ BMessenger messenger(looper); ++ ++ ih->handle = (InativeHandle*)new BMessageRunner(messenger, msg, time_ms * 1000); ++ // Just use something "reasonably unique" as the serial... ++ ih->serial = (int)ih->handle; ++ if (ih->serial < 0) ih->serial = -ih->serial; ++ } ++} ++ ++void iupdrvTimerStop(Ihandle* ih) ++{ ++ if (ih->serial > 0) ++ { ++ BMessageRunner* runner = (BMessageRunner*)ih->handle; ++ delete runner; ++ ih->serial = -1; ++ } ++} ++ ++void iupdrvTimerInitClass(Iclass* ic) ++{ ++ (void)ic; ++} +diff --git a/src/haiku/iuphaiku_tips.c b/src/haiku/iuphaiku_tips.c +new file mode 100644 +index 0000000..de57538 +--- /dev/null ++++ b/src/haiku/iuphaiku_tips.c +@@ -0,0 +1,39 @@ ++/** \file ++ * \brief Windows Driver TIPS management ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#include ++ ++#include "iup.h" ++#include "iupcbs.h" ++ ++#include "iup_object.h" ++#include "iup_str.h" ++#include "iup_attrib.h" ++#include "iup_image.h" ++#include "iup_drv.h" ++#include "iup_drvinfo.h" ++ ++#include "iuphaiku_drv.h" ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++int iupdrvBaseSetTipAttrib(Ihandle* ih, const char* value) ++{ ++ // FIXME Haiku has no official support for tooltips (there's an internal API) ++ UNIMPLEMENTED ++ return 1; ++} ++ ++int iupdrvBaseSetTipVisibleAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++char* iupdrvBaseGetTipVisibleAttrib(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} +diff --git a/src/haiku/iuphaiku_toggle.cpp b/src/haiku/iuphaiku_toggle.cpp +new file mode 100644 +index 0000000..a4fc50e +--- /dev/null ++++ b/src/haiku/iuphaiku_toggle.cpp +@@ -0,0 +1,298 @@ ++/** \file ++ * \brief Toggle Control ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "iup.h" ++#include "iupcbs.h" ++ ++#include "iup_object.h" ++#include "iup_layout.h" ++#include "iup_attrib.h" ++#include "iup_str.h" ++#include "iup_image.h" ++#include "iup_drv.h" ++#include "iup_drvfont.h" ++#include "iup_image.h" ++#include "iup_key.h" ++#include "iup_toggle.h" ++ ++#include "iuphaiku_drv.h" ++ ++ ++void iupdrvToggleAddCheckBox(int *x, int *y) ++{ ++#ifdef HILDON ++ (*x) += 30+4; ++ if ((*y) < 30) (*y) = 30; /* minimum height */ ++#else ++ (*x) += 16+4; ++ if ((*y) < 16) (*y) = 16; /* minimum height */ ++#endif ++ (*y) += 4; ++} ++ ++static int beToggleGetCheck(Ihandle* ih) ++{ ++ BControl* control = (BControl*)ih->handle; ++ return control->Value(); ++} ++ ++static BPicture* getPicture(Ihandle* ih, const char* name, int make_inactive, bool make_enabled = false) ++{ ++ BPictureButton* button = (BPictureButton*)ih->handle; ++ ++ if (name) ++ { ++ BBitmap* bitmap = (BBitmap*)iupImageGetImage(name, ih, make_inactive); ++ BPicture* picture = new BPicture(); ++ button->LockLooper(); ++ ++ button->BeginPicture(picture); ++ ++ // TODO use control look classes to draw a proper button border instead ++ if(make_enabled) { ++ button->SetHighColor(ui_color(B_PANEL_TEXT_COLOR)); ++ button->StrokeRect(button->Bounds()); ++ } ++ ++ button->DrawBitmapAsync(bitmap); ++ ++ button->EndPicture(); ++ ++ button->UnlockLooper(); ++ ++ return picture; ++ } ++ ++ return NULL; ++} ++ ++static void beToggleUpdateImage(Ihandle* ih, int active, int check) ++{ ++ char* name; ++ BPicture* pic; ++ BPictureButton* button = (BPictureButton*)ih->handle; ++ ++ pic = getPicture(ih, iupAttribGet(ih, "IMAGE"), 0); ++ button->SetEnabledOff(pic); ++ ++ name = iupAttribGet(ih, "IMINACTIVE"); ++ if (name) ++ pic = getPicture(ih, name, 0); ++ else ++ pic = getPicture(ih, iupAttribGet(ih, "IMAGE"), 1); ++ button->SetDisabledOff(pic); ++ button->SetDisabledOn(pic); ++ ++ name = iupAttribGet(ih, "IMPRESS"); ++ if (name) ++ pic = getPicture(ih, name, 0); ++ else ++ pic = getPicture(ih, iupAttribGet(ih, "IMAGE"), 0, true); ++ button->SetEnabledOn(pic); ++} ++ ++ ++/*************************************************************************/ ++ ++ ++static int gtkToggleSetValueAttrib(Ihandle* ih, const char* value) ++{ ++ if (iupStrEqualNoCase(value,"NOTDEF")) ++ UNIMPLEMENTED ++ else ++ { ++ int check; ++ BControl* checkbox = (BCheckBox*)ih->handle; ++ ++ if (iupStrEqualNoCase(value,"TOGGLE")) { ++ check = checkbox->Value(); ++ if (check == 0) check = 1; ++ else check = 0; ++ } else ++ check = iupStrBoolean(value); ++ ++ checkbox->SetValue(check); ++ } ++ ++ return 0; ++} ++ ++static char* gtkToggleGetValueAttrib(Ihandle* ih) ++{ ++ int check = beToggleGetCheck(ih); ++ if (check == -1) ++ return "NOTDEF"; ++ else if (check == 1) ++ return "ON"; ++ else ++ return "OFF"; ++} ++ ++static int beToggleSetTitleAttrib(Ihandle* ih, const char* value) ++{ ++ BControl* checkbox = (BCheckBox*)ih->handle; ++ checkbox->SetLabel(value); ++ return 1; ++} ++ ++static int gtkToggleSetAlignmentAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++ ++static int gtkToggleSetPaddingAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; /* store until not mapped, when mapped will be set again */ ++} ++ ++static int gtkToggleSetFgColorAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++ ++/* ++static int gtkToggleSetStandardFontAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++*/ ++ ++static int beToggleSetImageAttrib(Ihandle* ih, const char* value) ++{ ++ if (ih->data->type == IUP_TOGGLE_IMAGE) ++ { ++ if (value != iupAttribGet(ih, "IMAGE")) ++ iupAttribSetStr(ih, "IMAGE", (char*)value); ++ beToggleUpdateImage(ih, iupdrvIsActive(ih), beToggleGetCheck(ih)); ++ return 1; ++ } ++ else ++ return 0; ++} ++ ++static int beToggleSetImInactiveAttrib(Ihandle* ih, const char* value) ++{ ++ if (ih->data->type == IUP_TOGGLE_IMAGE) ++ { ++ if (value != iupAttribGet(ih, "IMINACTIVE")) ++ iupAttribSetStr(ih, "IMINACTIVE", (char*)value); ++ beToggleUpdateImage(ih, iupdrvIsActive(ih), beToggleGetCheck(ih)); ++ return 1; ++ } ++ else ++ return 0; ++} ++ ++static int gtkToggleSetImPressAttrib(Ihandle* ih, const char* value) ++{ ++ if (ih->data->type == IUP_TOGGLE_IMAGE) ++ { ++ if (value != iupAttribGet(ih, "IMPRESS")) ++ iupAttribSetStr(ih, "IMPRESS", (char*)value); ++ beToggleUpdateImage(ih, iupdrvIsActive(ih), beToggleGetCheck(ih)); ++ return 1; ++ } ++ else ++ return 0; ++} ++ ++// Event handlers ++ ++void iuphaikuToggleInvoked(Ihandle* ih, int value) ++{ ++ IFni cb = (IFni) IupGetCallback(ih, "ACTION"); ++ if (cb && cb(ih, value) == IUP_CLOSE) ++ IupExitLoop(); ++ ++ if (iupObjectCheck(ih)) ++ iupBaseCallValueChangedCb(ih); ++} ++ ++/****************************************************************************************************/ ++ ++static int gtkToggleMapMethod(Ihandle* ih) ++{ ++ Ihandle* radio = iupRadioFindToggleParent(ih); ++ ++ if (radio) ++ ih->data->radio = 1; ++ ++ char* value = iupAttribGet(ih, "IMAGE"); ++ if (value) ++ { ++ ih->data->type = IUP_TOGGLE_IMAGE; ++ // The pictures will be set only later, from the image callbacks. ++ BPicture* empty = new BPicture(); ++ ih->handle = (InativeHandle*)new BPictureButton(BRect(0,0,10,10), "PictureButton", empty, empty, NULL, ++ B_TWO_STATE_BUTTON); ++ delete empty; ++ } ++ else ++ { ++ ih->data->type = IUP_TOGGLE_TEXT; ++ ++ if (radio) { ++ ih->handle = (InativeHandle*)new BRadioButton(BRect(0,0,10,10), "Radio", NULL, NULL); ++ } else { ++ ih->handle = (InativeHandle*)new BCheckBox(BRect(0,0,10,10), "Checkbox", NULL, NULL); ++ } ++ } ++ ++ BControl* ctrl = (BControl*)(ih->handle); ++ BMessage* message = new BMessage(checkboxInvoke); ++ message->AddPointer("iHandle", ih); ++ ctrl->SetMessage(message); ++ ++ iuphaikuBaseAddToParent(ih); ++ return IUP_NOERROR; ++} ++ ++void iupdrvToggleInitClass(Iclass* ic) ++{ ++ /* Driver Dependent Class functions */ ++ ic->Map = gtkToggleMapMethod; ++ ++ /* Driver Dependent Attribute functions */ ++ ++ /* Overwrite Common */ ++ //iupClassRegisterAttribute(ic, "STANDARDFONT", NULL, gtkToggleSetStandardFontAttrib, IUPAF_SAMEASSYSTEM, "DEFAULTFONT", IUPAF_NO_SAVE|IUPAF_NOT_MAPPED); ++ ++ /* Visual */ ++ iupClassRegisterAttribute(ic, "BGCOLOR", NULL, iupdrvBaseSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT); ++ ++ /* Special */ ++ iupClassRegisterAttribute(ic, "FGCOLOR", NULL, gtkToggleSetFgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGFGCOLOR", IUPAF_DEFAULT); /* black */ ++ iupClassRegisterAttribute(ic, "TITLE", NULL, beToggleSetTitleAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ ++ /* IupToggle only */ ++ iupClassRegisterAttribute(ic, "ALIGNMENT", NULL, gtkToggleSetAlignmentAttrib, "ACENTER:ACENTER", NULL, IUPAF_NO_INHERIT); /* force new default value */ ++ iupClassRegisterAttribute(ic, "IMAGE", NULL, beToggleSetImageAttrib, NULL, NULL, IUPAF_IHANDLENAME|IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "IMINACTIVE", NULL, beToggleSetImInactiveAttrib, NULL, NULL, IUPAF_IHANDLENAME|IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "IMPRESS", NULL, gtkToggleSetImPressAttrib, NULL, NULL, IUPAF_IHANDLENAME|IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "VALUE", gtkToggleGetValueAttrib, gtkToggleSetValueAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ ++ iupClassRegisterAttribute(ic, "PADDING", iupToggleGetPaddingAttrib, gtkToggleSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED); ++ iupClassRegisterAttribute(ic, "MARKUP", NULL, NULL, NULL, NULL, IUPAF_DEFAULT); ++ ++ /* NOT supported */ ++ iupClassRegisterAttribute(ic, "RIGHTBUTTON", NULL, NULL, NULL, NULL, IUPAF_NOT_SUPPORTED|IUPAF_DEFAULT); ++} +diff --git a/src/haiku/iuphaiku_tree.cpp b/src/haiku/iuphaiku_tree.cpp +new file mode 100644 +index 0000000..46520d1 +--- /dev/null ++++ b/src/haiku/iuphaiku_tree.cpp +@@ -0,0 +1,482 @@ ++/** \file ++ * \brief Tree Control ++ * ++ * See Copyright Notice in iup.h ++ */ ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "iup.h" ++#include "iupcbs.h" ++ ++#include "iup_object.h" ++#include "iup_layout.h" ++#include "iup_attrib.h" ++#include "iup_str.h" ++#include "iup_drv.h" ++#include "iup_drvfont.h" ++#include "iup_stdcontrols.h" ++#include "iup_key.h" ++#include "iup_image.h" ++#include "iup_array.h" ++#include "iup_tree.h" ++ ++#include "iup_drvinfo.h" ++#include "iuphaiku_drv.h" ++ ++ ++class IUPListItem: public BStringItem ++{ ++ public: ++ IUPListItem(const char* title, int level) ++ : BStringItem(title, level) ++ {} ++ ++ int kind; ++}; ++ ++ ++/*****************************************************************************/ ++/* MANIPULATING IMAGES */ ++/*****************************************************************************/ ++static void gtkTreeUpdateImages(Ihandle* ih, int mode) ++{ ++ UNIMPLEMENTED ++} ++ ++/*****************************************************************************/ ++/* ADDING ITEMS */ ++/*****************************************************************************/ ++void iupdrvTreeAddNode(Ihandle* ih, int id, int kind, const char* title, int add) ++{ ++ BOutlineListView* list = (BOutlineListView*)ih->handle; ++ int kindPrev = -1; ++ int level = 0; ++ ++ IUPListItem* parent = (IUPListItem*)list->FullListItemAt(id); ++ ++ // Only the root node is allowed to have no parent ++ if(parent == NULL && id != -1) ++ return; ++ else if(parent) { ++ kindPrev = parent->kind; ++ } ++ ++ if (kindPrev != -1) ++ { ++ level = parent->OutlineLevel(); ++ // The parent has a valid kind ++ if (kindPrev == ITREE_BRANCH && add) ++ level++; // Adding item inside the branch ++ else ++ id += list->CountItemsUnder(parent, true); // Adding item as a sibling of 'parent' ++ } ++ ++ IUPListItem* item = new IUPListItem(title, level); ++ item->kind = kind; ++ ++ bool unlock = list->LockLooper(); ++ // No need to lock if the list is currently unmapped (happens when it was ++ // added to a BTabView, but that one is hidden) ++ list->AddItem(item, id + 1); ++ if (unlock) list->UnlockLooper(); ++ ++ // TODO FGCOLOR, default images, ADDEXPANDED ++} ++ ++ ++/*****************************************************************************/ ++/* AUXILIAR FUNCTIONS */ ++/*****************************************************************************/ ++ ++ ++int iupdrvTreeTotalChildCount(Ihandle* ih, InodeHandle* node_handle) ++{ ++ int count = 0; ++ UNIMPLEMENTED ++ return count; ++} ++ ++InodeHandle* iupdrvTreeGetFocusNode(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++typedef struct _gtkTreeSelectMinMax ++{ ++ Ihandle* ih; ++ int id1, id2; ++} gtkTreeSelectMinMax; ++ ++/*****************************************************************************/ ++/* GET AND SET ATTRIBUTES */ ++/*****************************************************************************/ ++ ++ ++static char* gtkTreeGetIndentationAttrib(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static int gtkTreeSetIndentationAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkTreeSetTopItemAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkTreeSetSpacingAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; /* store until not mapped, when mapped will be set again */ ++} ++ ++static int gtkTreeSetExpandAllAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static char* gtkTreeGetDepthAttrib(Ihandle* ih, int id) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static int gtkTreeSetMoveNodeAttrib(Ihandle* ih, int id, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkTreeSetCopyNodeAttrib(Ihandle* ih, int id, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static char* gtkTreeGetColorAttrib(Ihandle* ih, int id) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static int gtkTreeSetColorAttrib(Ihandle* ih, int id, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static char* gtkTreeGetParentAttrib(Ihandle* ih, int id) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static char* gtkTreeGetChildCountAttrib(Ihandle* ih, int id) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static char* gtkTreeGetKindAttrib(Ihandle* ih, int id) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static char* gtkTreeGetStateAttrib(Ihandle* ih, int id) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static int gtkTreeSetStateAttrib(Ihandle* ih, int id, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static char* gtkTreeGetTitleAttrib(Ihandle* ih, int id) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static int gtkTreeSetTitleAttrib(Ihandle* ih, int id, const char* value) ++{ ++ BOutlineListView* lv = (BOutlineListView*)ih->handle; ++ BStringItem* item = (BStringItem*)lv->FullListItemAt(id); ++ item->SetText(value); ++ return 0; ++} ++ ++static int gtkTreeSetTitleFontAttrib(Ihandle* ih, int id, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static char* gtkTreeGetTitleFontAttrib(Ihandle* ih, int id) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static char* gtkTreeGetValueAttrib(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static char* gtkTreeGetMarkedNodesAttrib(Ihandle* ih) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static int gtkTreeSetMarkedNodesAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkTreeSetMarkAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++ ++static int gtkTreeSetValueAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkTreeSetMarkStartAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++ ++static char* gtkTreeGetMarkedAttrib(Ihandle* ih, int id) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static int gtkTreeSetMarkedAttrib(Ihandle* ih, int id, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static char* gtkTreeGetToggleValueAttrib(Ihandle* ih, int id) ++{ ++ UNIMPLEMENTED ++ return NULL; ++} ++ ++static int gtkTreeSetToggleValueAttrib(Ihandle* ih, int id, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkTreeSetDelNodeAttrib(Ihandle* ih, int id, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkTreeSetRenameAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkTreeSetImageExpandedAttrib(Ihandle* ih, int id, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++ ++static int gtkTreeSetImageAttrib(Ihandle* ih, int id, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++static int gtkTreeSetImageBranchExpandedAttrib(Ihandle* ih, const char* value) ++{ ++ ih->data->def_image_expanded = iupImageGetImage(value, ih, 0); ++ ++ /* Update all images */ ++ gtkTreeUpdateImages(ih, ITREE_UPDATEIMAGE_EXPANDED); ++ ++ return 1; ++} ++ ++static int gtkTreeSetImageBranchCollapsedAttrib(Ihandle* ih, const char* value) ++{ ++ ih->data->def_image_collapsed = iupImageGetImage(value, ih, 0); ++ ++ /* Update all images */ ++ gtkTreeUpdateImages(ih, ITREE_UPDATEIMAGE_COLLAPSED); ++ ++ return 1; ++} ++ ++static int gtkTreeSetImageLeafAttrib(Ihandle* ih, const char* value) ++{ ++ ih->data->def_image_leaf = iupImageGetImage(value, ih, 0); ++ ++ /* Update all images */ ++ gtkTreeUpdateImages(ih, ITREE_UPDATEIMAGE_LEAF); ++ ++ return 1; ++} ++ ++static int gtkTreeSetBgColorAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++ ++static int gtkTreeSetFgColorAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 1; ++} ++ ++static int gtkTreeSetShowRenameAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; ++} ++ ++void iupdrvTreeUpdateMarkMode(Ihandle *ih) ++{ ++ BListView* lv = (BListView*)ih->handle; ++ if(ih->data->mark_mode == ITREE_MARK_SINGLE) ++ { ++ lv->SetListType(B_SINGLE_SELECTION_LIST); ++ } else { ++ lv->SetListType(B_MULTIPLE_SELECTION_LIST); ++ } ++} ++ ++ ++/*****************************************************************************/ ++ ++static int haikuTreeMapMethod(Ihandle* ih) ++{ ++ ih->handle = (InativeHandle*)new BOutlineListView(BRect(0, 0, 10, 10), "IUPOutline"); ++ ++ if(ih->data->show_toggle) ++ UNIMPLEMENTED ++ if (ih->data->show_rename) ++ UNIMPLEMENTED ++ if (ih->data->show_dragdrop) ++ UNIMPLEMENTED ++ ++ iuphaikuBaseAddToParent(ih); ++ ++ /* ++ if (!iupAttribGetBoolean(ih, "CANFOCUS")) ++ iuphaikuSetCanFocus(ih->handle, 0); ++ */ ++ ++ if (iupAttribGetInt(ih, "ADDROOT")) ++ iupdrvTreeAddNode(ih, -1, ITREE_BRANCH, "", 0); ++ ++ /* configure for DRAG&DROP of files */ ++ if (IupGetCallback(ih, "DROPFILES_CB")) ++ iupAttribSetStr(ih, "DROPFILESTARGET", "YES"); ++ ++// IupSetCallback(ih, "_IUP_XY2POS_CB", (Icallback)gtkTreeConvertXYToPos); ++ iupdrvTreeUpdateMarkMode(ih); ++ ++ return IUP_NOERROR; ++} ++ ++static void haikuTreeUnMapMethod(Ihandle* ih) ++{ ++ ih->data->node_count = 0; ++ ++ iupdrvBaseUnMapMethod(ih); ++} ++ ++void iupdrvTreeInitClass(Iclass* ic) ++{ ++ /* Driver Dependent Class functions */ ++ ic->Map = haikuTreeMapMethod; ++ ic->UnMap = haikuTreeUnMapMethod; ++ ++ /* Visual */ ++ iupClassRegisterAttribute(ic, "BGCOLOR", NULL, gtkTreeSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "TXTBGCOLOR", IUPAF_DEFAULT); ++ iupClassRegisterAttribute(ic, "FGCOLOR", NULL, gtkTreeSetFgColorAttrib, IUPAF_SAMEASSYSTEM, "TXTFGCOLOR", IUPAF_DEFAULT); ++ ++ /* IupTree Attributes - GENERAL */ ++ iupClassRegisterAttribute(ic, "EXPANDALL", NULL, gtkTreeSetExpandAllAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "INDENTATION", gtkTreeGetIndentationAttrib, gtkTreeSetIndentationAttrib, NULL, NULL, IUPAF_DEFAULT); ++ iupClassRegisterAttribute(ic, "SPACING", iupTreeGetSpacingAttrib, gtkTreeSetSpacingAttrib, IUPAF_SAMEASSYSTEM, "0", IUPAF_NOT_MAPPED); ++ iupClassRegisterAttribute(ic, "TOPITEM", NULL, gtkTreeSetTopItemAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT); ++ ++ /* IupTree Attributes - IMAGES */ ++ iupClassRegisterAttributeId(ic, "IMAGE", NULL, gtkTreeSetImageAttrib, IUPAF_IHANDLENAME|IUPAF_WRITEONLY|IUPAF_NO_INHERIT); ++ iupClassRegisterAttributeId(ic, "IMAGEEXPANDED", NULL, gtkTreeSetImageExpandedAttrib, IUPAF_IHANDLENAME|IUPAF_WRITEONLY|IUPAF_NO_INHERIT); ++ ++ iupClassRegisterAttribute(ic, "IMAGELEAF", NULL, gtkTreeSetImageLeafAttrib, IUPAF_SAMEASSYSTEM, "IMGLEAF", IUPAF_IHANDLENAME|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "IMAGEBRANCHCOLLAPSED", NULL, gtkTreeSetImageBranchCollapsedAttrib, IUPAF_SAMEASSYSTEM, "IMGCOLLAPSED", IUPAF_IHANDLENAME|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "IMAGEBRANCHEXPANDED", NULL, gtkTreeSetImageBranchExpandedAttrib, IUPAF_SAMEASSYSTEM, "IMGEXPANDED", IUPAF_IHANDLENAME|IUPAF_NO_INHERIT); ++ ++ /* IupTree Attributes - NODES */ ++ iupClassRegisterAttributeId(ic, "STATE", gtkTreeGetStateAttrib, gtkTreeSetStateAttrib, IUPAF_NO_INHERIT); ++ iupClassRegisterAttributeId(ic, "DEPTH", gtkTreeGetDepthAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT); ++ iupClassRegisterAttributeId(ic, "KIND", gtkTreeGetKindAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT); ++ iupClassRegisterAttributeId(ic, "PARENT", gtkTreeGetParentAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT); ++ iupClassRegisterAttributeId(ic, "COLOR", gtkTreeGetColorAttrib, gtkTreeSetColorAttrib, IUPAF_NO_INHERIT); ++ iupClassRegisterAttributeId(ic, "NAME", gtkTreeGetTitleAttrib, gtkTreeSetTitleAttrib, IUPAF_NO_INHERIT); ++ iupClassRegisterAttributeId(ic, "TITLE", gtkTreeGetTitleAttrib, gtkTreeSetTitleAttrib, IUPAF_NO_INHERIT); ++ ++ /* Change the set method for GTK */ ++ iupClassRegisterReplaceAttribFunc(ic, "SHOWRENAME", NULL, gtkTreeSetShowRenameAttrib); ++ ++ iupClassRegisterAttributeId(ic, "CHILDCOUNT", gtkTreeGetChildCountAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT); ++ iupClassRegisterAttributeId(ic, "TITLEFONT", gtkTreeGetTitleFontAttrib, gtkTreeSetTitleFontAttrib, IUPAF_NO_INHERIT); ++ ++ /* IupTree Attributes - MARKS */ ++ iupClassRegisterAttributeId(ic, "TOGGLEVALUE", gtkTreeGetToggleValueAttrib, gtkTreeSetToggleValueAttrib, IUPAF_NO_INHERIT); ++ iupClassRegisterAttributeId(ic, "MARKED", gtkTreeGetMarkedAttrib, gtkTreeSetMarkedAttrib, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute (ic, "MARK", NULL, gtkTreeSetMarkAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute (ic, "STARTING", NULL, gtkTreeSetMarkStartAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute (ic, "MARKSTART", NULL, gtkTreeSetMarkStartAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute (ic, "MARKEDNODES", gtkTreeGetMarkedNodesAttrib, gtkTreeSetMarkedNodesAttrib, NULL, NULL, IUPAF_NO_SAVE|IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ ++ iupClassRegisterAttribute (ic, "VALUE", gtkTreeGetValueAttrib, gtkTreeSetValueAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ ++ /* IupTree Attributes - ACTION */ ++ iupClassRegisterAttributeId(ic, "DELNODE", NULL, gtkTreeSetDelNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "RENAME", NULL, gtkTreeSetRenameAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT); ++ iupClassRegisterAttributeId(ic, "MOVENODE", NULL, gtkTreeSetMoveNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT); ++ iupClassRegisterAttributeId(ic, "COPYNODE", NULL, gtkTreeSetCopyNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT); ++ ++ /* IupTree Attributes - GTK Only */ ++ iupClassRegisterAttribute (ic, "RUBBERBAND", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NO_INHERIT); ++} +diff --git a/src/haiku/iuphaiku_val.cpp b/src/haiku/iuphaiku_val.cpp +new file mode 100644 +index 0000000..0d279ed +--- /dev/null ++++ b/src/haiku/iuphaiku_val.cpp +@@ -0,0 +1,105 @@ ++/** \file ++ * \brief Valuator Control ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#define UNIMPLEMENTED printf("%s (%s %d) UNIMPLEMENTED\n",__func__,__FILE__,__LINE__); ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "iup.h" ++#include "iupcbs.h" ++ ++#include "iup_object.h" ++#include "iup_layout.h" ++#include "iup_attrib.h" ++#include "iup_str.h" ++#include "iup_val.h" ++#include "iup_drv.h" ++#include "iup_drvfont.h" ++#include "iup_key.h" ++ ++#include "iuphaiku_drv.h" ++ ++ ++void iupdrvValGetMinSize(Ihandle* ih, int *w, int *h) ++{ ++ if (ih->data->orientation == IVAL_HORIZONTAL) ++ { ++ *w = 20; ++ *h = 35; ++ } ++ else ++ { ++ *w = 35; ++ *h = 20; ++ } ++} ++ ++static int gtkValSetStepAttrib(Ihandle* ih, const char* value) ++{ ++ ih->data->step = atof(value); ++ BSlider* slider = (BSlider*)ih->handle; ++ slider->SetKeyIncrementValue(ih->data->step); ++ return 0; /* do not store value in hash table */ ++} ++ ++static int gtkValSetPageStepAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; /* do not store value in hash table */ ++} ++ ++static int gtkValSetValueAttrib(Ihandle* ih, const char* value) ++{ ++ UNIMPLEMENTED ++ return 0; /* do not store value in hash table */ ++} ++ ++ ++/*****************************************************************************/ ++ ++ ++ ++static int gtkValMapMethod(Ihandle* ih) ++{ ++ BSlider* slider = new BSlider(BRect(0,0,10,10), NULL, NULL, NULL, 0, 100); ++ ih->handle = (InativeHandle*)slider; ++ if (ih->data->orientation == IVAL_HORIZONTAL) ++ slider->SetOrientation(B_HORIZONTAL); ++ else ++ slider->SetOrientation(B_VERTICAL); ++ ++ // TODO handle min/max value at construction (can't change it later...) ++ ++ iuphaikuBaseAddToParent(ih); ++ return IUP_NOERROR; ++} ++ ++void iupdrvValInitClass(Iclass* ic) ++{ ++ /* Driver Dependent Class functions */ ++ ic->Map = gtkValMapMethod; ++ ++ /* Driver Dependent Attribute functions */ ++ ++ /* Visual */ ++ iupClassRegisterAttribute(ic, "BGCOLOR", NULL, iupdrvBaseSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT); ++ ++ /* IupVal only */ ++ iupClassRegisterAttribute(ic, "VALUE", iupValGetValueAttrib, gtkValSetValueAttrib, IUPAF_SAMEASSYSTEM, "0", IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "PAGESTEP", iupValGetPageStepAttrib, gtkValSetPageStepAttrib, IUPAF_SAMEASSYSTEM, "0.1", IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "STEP", iupValGetStepAttrib, gtkValSetStepAttrib, IUPAF_SAMEASSYSTEM, "0.01", IUPAF_NO_INHERIT); ++ ++ /* NOT supported */ ++ // TODO we actually can support these on Haiku, but we can't support PAGESTEP ++ iupClassRegisterAttribute(ic, "TICKSPOS", NULL, NULL, NULL, NULL, IUPAF_NOT_SUPPORTED|IUPAF_NOT_MAPPED); ++ iupClassRegisterAttribute(ic, "SHOWTICKS", NULL, NULL, NULL, NULL, IUPAF_NOT_SUPPORTED); ++} +diff --git a/src/haiku/iupmac_help.c b/src/haiku/iupmac_help.c +new file mode 100644 +index 0000000..fa8d0af +--- /dev/null ++++ b/src/haiku/iupmac_help.c +@@ -0,0 +1,46 @@ ++/** \file ++ * \brief MAC Driver IupHelp ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#include ++#include ++#include ++ ++#include "iup.h" ++ ++#include "iup_str.h" ++ ++int IupHelp(const char *url) ++{ ++ char *cmd; ++ int ret; ++ char *browser = getenv("IUP_HELPAPP"); ++ if (!browser) ++ browser = IupGetGlobal("HELPAPP"); ++ ++ if (!browser) ++ { ++ char* system = IupGetGlobal("SYSTEM"); ++ if (iupStrEqualNoCase(system, "Snow Leopard") || ++ iupStrEqualNoCase(system, "Leopard") || ++ iupStrEqualNoCase(system, "Tiger") || ++ iupStrEqualNoCase(system, "Panther")) ++ browser = "safari"; ++ else if (iupStrEqualNoCase(system, "Jaguar") || ++ iupStrEqualNoCase(system, "Puma") || ++ iupStrEqualNoCase(system, "Cheetah")) ++ browser = "iexplore"; ++ else /* MacOS */ ++ browser = "netscape"; ++ } ++ ++ cmd = (char*)malloc(sizeof(char)*(strlen(url)+strlen(browser)+3)); ++ sprintf(cmd, "open -a %s %s &", browser, url); ++ ret = system(cmd); ++ free(cmd); ++ if (ret == -1) ++ return -1; ++ return 1; ++} +diff --git a/srccd/iup_cd.c b/srccd/iup_cd.c +index 619ded7..0b12e72 100644 +--- a/srccd/iup_cd.c ++++ b/srccd/iup_cd.c +@@ -23,7 +23,7 @@ static void cdcreatecanvasIUP(cdCanvas* canvas, Ihandle *ih_canvas) + #endif + char* data; + +- if (cdBaseDriver()==CD_BASE_GDK) ++ if (cdBaseDriver()==CD_BASE_GDK || cdBaseDriver()==CD_BASE_HAIKU) + { + data = IupGetAttribute(ih_canvas, "DRAWABLE"); /* new IUP 3 attribute, works for GTK only */ + if (!data) +diff --git a/srcconsole/Makefile b/srcconsole/Makefile +index a9102a3..c35adc9 100644 +--- a/srcconsole/Makefile ++++ b/srcconsole/Makefile +@@ -8,7 +8,6 @@ endif + do_all: iuplua5 + + iuplua5: +- @$(TECMAKE_CMD) USE_LUA51=Yes + @$(TECMAKE_CMD) USE_LUA52=Yes + + iuplua5gtk: +diff --git a/srcgl/config.mak b/srcgl/config.mak +index d569f43..7de22a6 100644 +--- a/srcgl/config.mak ++++ b/srcgl/config.mak +@@ -15,6 +15,8 @@ USE_MACOS_OPENGL = Yes + + ifneq ($(findstring Win, $(TEC_SYSNAME)), ) + SRC = iup_glcanvas_win.c ++else ifneq ($(findstring Haiku, $(TEC_SYSNAME)), ) ++ SRC = iup_glcanvas_haiku.c + else + SRC = iup_glcanvas_x.c + USE_X11 = Yes +diff --git a/srcgl/iup_glcanvas_haiku.c b/srcgl/iup_glcanvas_haiku.c +new file mode 100644 +index 0000000..e78cd5e +--- /dev/null ++++ b/srcgl/iup_glcanvas_haiku.c +@@ -0,0 +1,629 @@ ++/** \file ++ * \brief iupgl control for Haiku ++ * ++ * See Copyright Notice in "iup.h" ++ */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++ ++#include "iup.h" ++#include "iupcbs.h" ++#include "iupgl.h" ++ ++#include "iup_object.h" ++#include "iup_attrib.h" ++#include "iup_str.h" ++#include "iup_stdcontrols.h" ++#include "iup_assert.h" ++#include "iup_register.h" ++ ++ ++#ifndef GLX_CONTEXT_MAJOR_VERSION_ARB ++#define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091 ++#define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092 ++#define GLX_CONTEXT_FLAGS_ARB 0x2094 ++#define GLX_CONTEXT_DEBUG_BIT_ARB 0x0001 ++#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002 ++#endif ++ ++#ifndef GLX_CONTEXT_PROFILE_MASK_ARB ++#define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126 ++#define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 ++#define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 ++#endif ++ ++ ++/* Do NOT use _IcontrolData to make inheritance easy ++ when parent class in glcanvas */ ++typedef struct _IGlControlData ++{ ++ /* TODO likely store a BGLView here ? ++ Display* display; ++ Drawable window; ++ Colormap colormap; ++ XVisualInfo *vinfo; ++ GLXContext context;*/ ++} IGlControlData; ++ ++ ++static int xGLCanvasDefaultResize(Ihandle *ih, int width, int height) ++{ ++ IupGLMakeCurrent(ih); ++ glViewport(0,0,width,height); ++ return IUP_DEFAULT; ++} ++ ++static int xGLCanvasCreateMethod(Ihandle* ih, void** params) ++{ ++ IGlControlData* gldata; ++ (void)params; ++ ++ gldata = (IGlControlData*)malloc(sizeof(IGlControlData)); ++ memset(gldata, 0, sizeof(IGlControlData)); ++ iupAttribSetStr(ih, "_IUP_GLCONTROLDATA", (char*)gldata); ++ ++ IupSetCallback(ih, "RESIZE_CB", (Icallback)xGLCanvasDefaultResize); ++ ++ return IUP_NOERROR; ++} ++ ++static void xGLCanvasGetVisual(Ihandle* ih, IGlControlData* gldata) ++{ ++ int erb, evb, number; ++ int n = 0; ++ int alist[40]; ++ ++#if 0 ++ if (!gldata->display) ++ gldata->display = (Display*)IupGetGlobal("XDISPLAY"); /* works for Motif and GTK, can be called before mapped */ ++ if (!gldata->display) ++ return; ++#endif ++ ++ /* double or single buffer */ ++ if (iupStrEqualNoCase(iupAttribGetStr(ih,"BUFFER"), "DOUBLE")) ++ { ++ //alist[n++] = GLX_DOUBLEBUFFER; ++ } ++ ++ /* stereo */ ++ if (iupAttribGetBoolean(ih,"STEREO")) ++ { ++ //alist[n++] = GLX_STEREO; ++ } ++ ++ /* rgba or index */ ++ if (iupStrEqualNoCase(iupAttribGetStr(ih,"COLOR"), "INDEX")) ++ { ++ /* buffer size (for index mode) */ ++ number = iupAttribGetInt(ih,"BUFFER_SIZE"); ++ if (number > 0) ++ { ++ //alist[n++] = GLX_BUFFER_SIZE; ++ alist[n++] = number; ++ } ++ } ++ else ++ { ++ //alist[n++] = GLX_RGBA; /* assume rgba as default */ ++ } ++ ++ /* red, green, blue bits */ ++ number = iupAttribGetInt(ih,"RED_SIZE"); ++ if (number > 0) ++ { ++ //alist[n++] = GLX_RED_SIZE; ++ //alist[n++] = number; ++ } ++ ++ number = iupAttribGetInt(ih,"GREEN_SIZE"); ++ if (number > 0) ++ { ++ //alist[n++] = GLX_GREEN_SIZE; ++ //alist[n++] = number; ++ } ++ ++ number = iupAttribGetInt(ih,"BLUE_SIZE"); ++ if (number > 0) ++ { ++ //alist[n++] = GLX_BLUE_SIZE; ++ //alist[n++] = number; ++ } ++ ++ number = iupAttribGetInt(ih,"ALPHA_SIZE"); ++ if (number > 0) ++ { ++ //alist[n++] = GLX_ALPHA_SIZE; ++ //alist[n++] = number; ++ } ++ ++ /* depth and stencil size */ ++ number = iupAttribGetInt(ih,"DEPTH_SIZE"); ++ if (number > 0) ++ { ++ //alist[n++] = GLX_DEPTH_SIZE; ++ //alist[n++] = number; ++ } ++ ++ number = iupAttribGetInt(ih,"STENCIL_SIZE"); ++ if (number > 0) ++ { ++ //alist[n++] = GLX_STENCIL_SIZE; ++ //alist[n++] = number; ++ } ++ ++ /* red, green, blue accumulation bits */ ++ number = iupAttribGetInt(ih,"ACCUM_RED_SIZE"); ++ if (number > 0) ++ { ++ //alist[n++] = GLX_ACCUM_RED_SIZE; ++ //alist[n++] = number; ++ } ++ ++ number = iupAttribGetInt(ih,"ACCUM_GREEN_SIZE"); ++ if (number > 0) ++ { ++ //alist[n++] = GLX_ACCUM_GREEN_SIZE; ++ //alist[n++] = number; ++ } ++ ++ number = iupAttribGetInt(ih,"ACCUM_BLUE_SIZE"); ++ if (number > 0) ++ { ++ //alist[n++] = GLX_ACCUM_BLUE_SIZE; ++ //alist[n++] = number; ++ } ++ ++ number = iupAttribGetInt(ih,"ACCUM_ALPHA_SIZE"); ++ if (number > 0) ++ { ++ //alist[n++] = GLX_ACCUM_ALPHA_SIZE; ++ //alist[n++] = number; ++ } ++ //alist[n++] = None; ++ ++ /* check out X extension */ ++ /* ++ if (!glXQueryExtension(gldata->display, &erb, &evb)) ++ { ++ iupAttribSetStr(ih, "ERROR", "X server has no OpenGL GLX extension"); ++ return; ++ } ++ */ ++ ++ /* choose visual */ ++ /* ++ gldata->vinfo = glXChooseVisual(gldata->display, DefaultScreen(gldata->display), alist); ++ if (!gldata->vinfo) ++ { ++ iupAttribSetStr(ih, "ERROR", "No appropriate visual"); ++ return; ++ } ++ */ ++ ++ iupAttribSetStr(ih, "ERROR", NULL); ++} ++ ++static char* xGLCanvasGetVisualAttrib(Ihandle *ih) ++{ ++ IGlControlData* gldata = (IGlControlData*)iupAttribGet(ih, "_IUP_GLCONTROLDATA"); ++ ++ /* This must be available before mapping, because IupCanvas uses it during map in GTK and Motif. */ ++ /* ++ if (gldata->vinfo) ++ return (char*)gldata->vinfo->visual; ++*/ ++ xGLCanvasGetVisual(ih, gldata); ++/* ++ if (gldata->vinfo) ++ return (char*)gldata->vinfo->visual; ++*/ ++ return NULL; ++} ++ ++static int xGLCanvasMapMethod(Ihandle* ih) ++{ ++ IGlControlData* gldata = (IGlControlData*)iupAttribGet(ih, "_IUP_GLCONTROLDATA"); ++ //GLXContext shared_context = NULL; ++ Ihandle* ih_shared; ++ ++ /* the IupCanvas is already mapped, just initialize the OpenGL context */ ++ ++ if (!xGLCanvasGetVisualAttrib(ih)) ++ return IUP_NOERROR; /* do not abort mapping */ ++#if 0 ++ gldata->window = (XID)iupAttribGet(ih, "XWINDOW"); /* check first in the hash table, can be defined by the IupFileDlg */ ++ if (!gldata->window) ++ gldata->window = (XID)IupGetAttribute(ih, "XWINDOW"); /* works for Motif and GTK, only after mapping the IupCanvas */ ++ if (!gldata->window) ++ return IUP_NOERROR; ++#endif ++ ih_shared = IupGetAttributeHandle(ih, "SHAREDCONTEXT"); ++ if (ih_shared && IupClassMatch(ih_shared, "glcanvas")) /* must be an IupGLCanvas */ ++ { ++ IGlControlData* shared_gldata = (IGlControlData*)iupAttribGet(ih_shared, "_IUP_GLCONTROLDATA"); ++ //shared_context = shared_gldata->context; ++ } ++ ++ /* create rendering context */ ++ if (iupAttribGetBoolean(ih, "ARBCONTEXT")) ++ { ++#if 0 ++ glXCreateContextAttribsARB_PROC CreateContextAttribsARB = NULL; ++ ++ GLXContext tempContext = glXCreateContext(gldata->display, gldata->vinfo, NULL, GL_TRUE); ++ GLXContext oldContext = glXGetCurrentContext(); ++ Display* oldDisplay = glXGetCurrentDisplay(); ++ GLXDrawable oldDrawable = glXGetCurrentDrawable(); ++ glXMakeCurrent(gldata->display, gldata->window, tempContext); /* glXGetProcAddress only works with an active context */ ++ ++ CreateContextAttribsARB = (glXCreateContextAttribsARB_PROC)glXGetProcAddress((const GLubyte*)"glXCreateContextAttribsARB"); ++#endif ++// if (CreateContextAttribsARB) ++ { ++ int attribs[9], a = 0; ++ char* value; ++ ++ int nelements; ++ // GLXFBConfig *config = glXChooseFBConfig(gldata->display, DefaultScreen(gldata->display), 0, &nelements); ++ ++ value = iupAttribGetStr(ih, "CONTEXTVERSION"); ++ if (value) ++ { ++ int major, minor; ++ if (iupStrToIntInt(value, &major, &minor, '.') == 2) ++ { ++ attribs[a++] = GLX_CONTEXT_MAJOR_VERSION_ARB; ++ attribs[a++] = major; ++ attribs[a++] = GLX_CONTEXT_MINOR_VERSION_ARB; ++ attribs[a++] = minor; ++ } ++ } ++ ++ value = iupAttribGetStr(ih, "CONTEXTFLAGS"); ++ if (value) ++ { ++ int flags = 0; ++ if (iupStrEqualNoCase(value, "DEBUG")) ++ flags = GLX_CONTEXT_DEBUG_BIT_ARB; ++ else if (iupStrEqualNoCase(value, "FORWARDCOMPATIBLE")) ++ flags = GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB; ++ else if (iupStrEqualNoCase(value, "DEBUGFORWARDCOMPATIBLE")) ++ flags = GLX_CONTEXT_DEBUG_BIT_ARB|GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB; ++ if (flags) ++ { ++ attribs[a++] = GLX_CONTEXT_FLAGS_ARB; ++ attribs[a++] = flags; ++ } ++ } ++ ++ value = iupAttribGetStr(ih, "CONTEXTPROFILE"); ++ if (value) ++ { ++ int profile = 0; ++ if (iupStrEqualNoCase(value, "CORE")) ++ profile = GLX_CONTEXT_CORE_PROFILE_BIT_ARB; ++ else if (iupStrEqualNoCase(value, "COMPATIBILITY")) ++ profile = GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB; ++ else if (iupStrEqualNoCase(value, "CORECOMPATIBILITY")) ++ profile = GLX_CONTEXT_CORE_PROFILE_BIT_ARB|GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB; ++ if (profile) ++ { ++ attribs[a++] = GLX_CONTEXT_PROFILE_MASK_ARB; ++ attribs[a++] = profile; ++ } ++ } ++ ++ attribs[a] = 0; /* terminator */ ++ ++ //gldata->context = CreateContextAttribsARB(gldata->display, *config, shared_context, GL_TRUE, attribs); ++ } ++/* ++ glXMakeCurrent(oldDisplay, oldDrawable, oldContext); ++ glXDestroyContext(gldata->display, tempContext); ++ ++ if (!CreateContextAttribsARB) ++*/ ++ { ++// gldata->context = glXCreateContext(gldata->display, gldata->vinfo, shared_context, GL_TRUE); ++ iupAttribSetStr(ih, "ARBCONTEXT", "NO"); ++ } ++ } ++ else ++// gldata->context = glXCreateContext(gldata->display, gldata->vinfo, shared_context, GL_TRUE); ++/* ++ if (!gldata->context) ++ { ++ iupAttribSetStr(ih, "ERROR", "Could not create a rendering context"); ++ return IUP_NOERROR; ++ } ++ ++ iupAttribSetStr(ih, "CONTEXT", (char*)gldata->context); ++*/ ++ /* create colormap for index mode */ ++#if 0 ++ if (iupStrEqualNoCase(iupAttribGetStr(ih,"COLOR"), "INDEX") && ++ gldata->vinfo->class != StaticColor && gldata->vinfo->class != StaticGray) ++ { ++ gldata->colormap = XCreateColormap(gldata->display, RootWindow(gldata->display, DefaultScreen(gldata->display)), gldata->vinfo->visual, AllocAll); ++ iupAttribSetStr(ih, "COLORMAP", (char*)gldata->colormap); ++ } ++ ++ if (gldata->colormap != None) ++ IupGLPalette(ih,0,1,1,1); /* set first color as white */ ++#endif ++ iupAttribSetStr(ih, "ERROR", NULL); ++ return IUP_NOERROR; ++} ++ ++static void xGLCanvasDestroy(Ihandle* ih) ++{ ++ IGlControlData* gldata = (IGlControlData*)iupAttribGet(ih, "_IUP_GLCONTROLDATA"); ++ free(gldata); ++ iupAttribSetStr(ih, "_IUP_GLCONTROLDATA", NULL); ++} ++ ++static void xGLCanvasUnMapMethod(Ihandle* ih) ++{ ++ IGlControlData* gldata = (IGlControlData*)iupAttribGet(ih, "_IUP_GLCONTROLDATA"); ++#if 0 ++ if (gldata->context) ++ { ++ if (gldata->context == glXGetCurrentContext()) ++ glXMakeCurrent(gldata->display, None, NULL); ++ ++ glXDestroyContext(gldata->display, gldata->context); ++ } ++ ++ if (gldata->colormap != None) ++ XFreeColormap(gldata->display, gldata->colormap); ++ ++ if (gldata->vinfo) ++ XFree(gldata->vinfo); ++#endif ++ memset(gldata, 0, sizeof(IGlControlData)); ++} ++ ++static Iclass* xGlCanvasNewClass(void) ++{ ++ Iclass* ic = iupClassNew(iupRegisterFindClass("canvas")); ++ ++ ic->name = "glcanvas"; ++ ic->format = "a"; /* one ACTION callback name */ ++ ic->nativetype = IUP_TYPECANVAS; ++ ic->childtype = IUP_CHILDNONE; ++ ic->is_interactive = 1; ++ ++ ic->New = xGlCanvasNewClass; ++ ic->Create = xGLCanvasCreateMethod; ++ ic->Destroy = xGLCanvasDestroy; ++ ic->Map = xGLCanvasMapMethod; ++ ic->UnMap = xGLCanvasUnMapMethod; ++ ++ iupClassRegisterAttribute(ic, "BUFFER", NULL, NULL, IUPAF_SAMEASSYSTEM, "SINGLE", IUPAF_DEFAULT); ++ iupClassRegisterAttribute(ic, "COLOR", NULL, NULL, IUPAF_SAMEASSYSTEM, "RGBA", IUPAF_DEFAULT); ++ iupClassRegisterAttribute(ic, "ERROR", NULL, NULL, NULL, NULL, IUPAF_NO_INHERIT); ++ ++ iupClassRegisterAttribute(ic, "CONTEXT", NULL, NULL, NULL, NULL, IUPAF_READONLY|IUPAF_NO_STRING); ++ iupClassRegisterAttribute(ic, "VISUAL", xGLCanvasGetVisualAttrib, NULL, NULL, NULL, IUPAF_READONLY|IUPAF_NO_STRING|IUPAF_NOT_MAPPED); ++ iupClassRegisterAttribute(ic, "COLORMAP", NULL, NULL, NULL, NULL, IUPAF_READONLY|IUPAF_NO_STRING); ++ ++ iupClassRegisterAttribute(ic, "CONTEXTFLAGS", NULL, NULL, NULL, NULL, IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "CONTEXTPROFILE", NULL, NULL, NULL, NULL, IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "CONTEXTVERSION", NULL, NULL, NULL, NULL, IUPAF_NO_INHERIT); ++ iupClassRegisterAttribute(ic, "ARBCONTEXT", NULL, NULL, NULL, NULL, IUPAF_NO_INHERIT); ++ ++ return ic; ++} ++ ++ ++/******************************************* Exported functions */ ++ ++void IupGLCanvasOpen(void) ++{ ++ if (!IupGetGlobal("_IUP_GLCANVAS_OPEN")) ++ { ++ iupRegisterClass(xGlCanvasNewClass()); ++ IupSetGlobal("_IUP_GLCANVAS_OPEN", "1"); ++ } ++} ++ ++Ihandle* IupGLCanvas(const char *action) ++{ ++ void *params[2]; ++ params[0] = (void*)action; ++ params[1] = NULL; ++ return IupCreatev("glcanvas", params); ++} ++ ++int IupGLIsCurrent(Ihandle* ih) ++{ ++ IGlControlData* gldata; ++ ++ iupASSERT(iupObjectCheck(ih)); ++ if (!iupObjectCheck(ih)) ++ return 0; ++ ++ /* must be an IupGLCanvas */ ++ if (ih->iclass->nativetype != IUP_TYPECANVAS || ++ !IupClassMatch(ih, "glcanvas")) ++ return 0; ++ ++ /* must be mapped */ ++ gldata = (IGlControlData*)iupAttribGet(ih, "_IUP_GLCONTROLDATA"); ++/* ++ if (!gldata->window) ++ return 0; ++ ++ if (gldata->context == glXGetCurrentContext()) ++ return 1; ++*/ ++ return 0; ++} ++ ++void IupGLMakeCurrent(Ihandle* ih) ++{ ++ IGlControlData* gldata; ++ ++ iupASSERT(iupObjectCheck(ih)); ++ if (!iupObjectCheck(ih)) ++ return; ++ ++ /* must be an IupGLCanvas */ ++ if (ih->iclass->nativetype != IUP_TYPECANVAS || ++ !IupClassMatch(ih, "glcanvas")) ++ return; ++ ++ /* must be mapped */ ++ gldata = (IGlControlData*)iupAttribGet(ih, "_IUP_GLCONTROLDATA"); ++#if 0 ++ if (!gldata->window) ++ return; ++ ++ if (glXMakeCurrent(gldata->display, gldata->window, gldata->context)==False) ++ iupAttribSetStr(ih, "ERROR", "Failed to set new current context"); ++ else ++ { ++ iupAttribSetStr(ih, "ERROR", NULL); ++ glXWaitX(); ++ } ++#endif ++} ++ ++void IupGLSwapBuffers(Ihandle* ih) ++{ ++ IGlControlData* gldata; ++ ++ iupASSERT(iupObjectCheck(ih)); ++ if (!iupObjectCheck(ih)) ++ return; ++ ++ /* must be an IupGLCanvas */ ++ if (ih->iclass->nativetype != IUP_TYPECANVAS || ++ !IupClassMatch(ih, "glcanvas")) ++ return; ++ ++ /* must be mapped */ ++ gldata = (IGlControlData*)iupAttribGet(ih, "_IUP_GLCONTROLDATA"); ++/* ++ if (!gldata->window) ++ return; ++ ++ glXSwapBuffers(gldata->display, gldata->window); ++*/ ++} ++ ++/* ++static int xGLCanvasIgnoreError(Display *param1, XErrorEvent *param2) ++{ ++ (void)param1; ++ (void)param2; ++ return 0; ++} ++*/ ++ ++void IupGLPalette(Ihandle* ih, int index, float r, float g, float b) ++{ ++ IGlControlData* gldata; ++// XColor color; ++ int rShift, gShift, bShift; ++// XVisualInfo *vinfo; ++// XErrorHandler old_handler; ++ ++ iupASSERT(iupObjectCheck(ih)); ++ if (!iupObjectCheck(ih)) ++ return; ++ ++ /* must be an IupGLCanvas */ ++ if (ih->iclass->nativetype != IUP_TYPECANVAS || ++ !IupClassMatch(ih, "glcanvas")) ++ return; ++ ++ /* must be mapped */ ++ gldata = (IGlControlData*)iupAttribGet(ih, "_IUP_GLCONTROLDATA"); ++#if 0 ++ if (!gldata->window) ++ return; ++ ++ /* must have a colormap */ ++ if (gldata->colormap == None) ++ return; ++ ++ /* code fragment based on the toolkit library provided with OpenGL */ ++ old_handler = XSetErrorHandler(xGLCanvasIgnoreError); ++ ++ vinfo = gldata->vinfo; ++ switch (vinfo->class) ++ { ++ case DirectColor: ++ rShift = ffs((unsigned int)vinfo->red_mask) - 1; ++ gShift = ffs((unsigned int)vinfo->green_mask) - 1; ++ bShift = ffs((unsigned int)vinfo->blue_mask) - 1; ++ color.pixel = ((index << rShift) & vinfo->red_mask) | ++ ((index << gShift) & vinfo->green_mask) | ++ ((index << bShift) & vinfo->blue_mask); ++ color.red = (unsigned short)(r * 65535.0 + 0.5); ++ color.green = (unsigned short)(g * 65535.0 + 0.5); ++ color.blue = (unsigned short)(b * 65535.0 + 0.5); ++ color.flags = DoRed | DoGreen | DoBlue; ++ XStoreColor(gldata->display, gldata->colormap, &color); ++ break; ++ case GrayScale: ++ case PseudoColor: ++ if (index < vinfo->colormap_size) ++ { ++ color.pixel = index; ++ color.red = (unsigned short)(r * 65535.0 + 0.5); ++ color.green = (unsigned short)(g * 65535.0 + 0.5); ++ color.blue = (unsigned short)(b * 65535.0 + 0.5); ++ color.flags = DoRed | DoGreen | DoBlue; ++ XStoreColor(gldata->display, gldata->colormap, &color); ++ } ++ break; ++ } ++ ++ XSync(gldata->display, 0); ++ XSetErrorHandler(old_handler); ++#endif ++} ++ ++void IupGLUseFont(Ihandle* ih, int first, int count, int list_base) ++{ ++ IGlControlData* gldata; ++// Font font; ++ ++ iupASSERT(iupObjectCheck(ih)); ++ if (!iupObjectCheck(ih)) ++ return; ++ ++ /* must be an IupGLCanvas */ ++ if (ih->iclass->nativetype != IUP_TYPECANVAS || ++ !IupClassMatch(ih, "glcanvas")) ++ return; ++ ++ /* must be mapped */ ++ gldata = (IGlControlData*)iupAttribGet(ih, "_IUP_GLCONTROLDATA"); ++/* ++ if (!gldata->window) ++ return; ++ ++ font = (Font)IupGetAttribute(ih, "XFONTID"); ++ if (font) ++ glXUseXFont(font, first, count, list_base); ++*/ ++} ++ ++void IupGLWait(int gl) ++{ ++/* ++ if (gl) ++ glXWaitGL(); ++ else ++ glXWaitX(); ++*/ ++} +diff --git a/srcimglib/iup_image_library.c b/srcimglib/iup_image_library.c +index 575e433..93747ce 100644 +--- a/srcimglib/iup_image_library.c ++++ b/srcimglib/iup_image_library.c +@@ -28,7 +28,7 @@ void IupImageLibOpen(void) + driver = IupGetGlobal("DRIVER"); + if (iupStrEqualNoCase(driver, "GTK")) + gtk = 1; +- else if (iupStrEqualNoCase(driver, "Motif")) ++ else if (iupStrEqualNoCase(driver, "Motif") || iupStrEqualNoCase(driver, "Haiku")) + motif = 1; + else if (iupStrEqualNoCase(driver, "Win32")) + win32 = 1; +diff --git a/srclua5/Makefile b/srclua5/Makefile +index 9c597fb..486cf17 100644 +--- a/srclua5/Makefile ++++ b/srclua5/Makefile +@@ -6,7 +6,7 @@ else + endif + + .PHONY: do_all iuplua iupluacd iupluacontrols iupluagl iuplua_pplot iuplua_mglplot iuplua_scintilla iupluaim iupluaimglib iupluatuio iupluaole iupluaweb +-do_all: iuplua iupluacd iupluacontrols iupluagl iuplua_pplot iuplua_mglplot iuplua_scintilla iupluaim iupluaimglib iupluatuio $(WINLIBS) ++do_all: iuplua iupluacd iupluacontrols iupluagl iuplua_pplot iuplua_mglplot iupluaim iupluaimglib iupluatuio $(WINLIBS) + + iuplua: + @$(TECMAKE_CMD) USE_LUA51=Yes +diff --git a/srcmglplot/mgl/mgl_ab.h b/srcmglplot/mgl/mgl_ab.h +index 7c47201..35c1b1e 100644 +--- a/srcmglplot/mgl/mgl_ab.h ++++ b/srcmglplot/mgl/mgl_ab.h +@@ -32,10 +32,12 @@ + class mglGraphAB : public mglGraph + { + public: +-using mglGraph::Mark; +-using mglGraph::Ball; +-//using mglGraph::Colorbar; +-using mglGraph::Legend; ++#if (!defined(__GNUC__) || (__GNUC__ > 2)) ++ using mglGraph::Mark; ++ using mglGraph::Ball; ++ //using mglGraph::Colorbar; ++ using mglGraph::Legend; ++#endif + int *OI; ///< ObjId arrays + int ObjId; ///< object id for mglPrim + +diff --git a/srcmglplot/mgl/mgl_axis.cpp b/srcmglplot/mgl/mgl_axis.cpp +index d81c014..0685ce2 100644 +--- a/srcmglplot/mgl/mgl_axis.cpp ++++ b/srcmglplot/mgl/mgl_axis.cpp +@@ -1021,7 +1021,9 @@ void mglGraph::Legend(int n, wchar_t **text,char **style, int where, + //----------------------------------------------------------------------------- + void mglGraph::Ternary(int t) + { +- static mglPoint x1(-1,-1,-1),x2(1,1,1),o(NAN,NAN,NAN); ++ static mglPoint x1(-1,-1,-1); ++ static mglPoint x2(1,1,1); ++ static mglPoint o(NAN,NAN,NAN); + static bool c = true; + TernAxis = t; + if(t) +diff --git a/srcscintilla/Makefile b/srcscintilla/Makefile +index 639ab7d..07f0d5f 100644 +--- a/srcscintilla/Makefile ++++ b/srcscintilla/Makefile +@@ -7,5 +7,5 @@ endif + .PHONY: do_all iup_scintilla + do_all: iup_scintilla + +-iup_mglplot: ++iup_scintilla: + @$(TECMAKE_CMD) +diff --git a/srcview/config.mak b/srcview/config.mak +index 742f92e..7e71767 100644 +--- a/srcview/config.mak ++++ b/srcview/config.mak +@@ -11,6 +11,10 @@ LINKER = $(CPPC) + USE_IUPCONTROLS = Yes + USE_IUP3 = Yes + ++ifeq "$(TEC_SYSNAME)" "Haiku" ++ USE_HAIKU = Yes ++else ++ USE_STATIC = Yes + ifdef GTK_DEFAULT + ifdef USE_MOTIF + # Build Motif version in Linux and BSD +@@ -22,8 +26,8 @@ else + APPNAME := $(APPNAME)gtk + endif + endif ++endif + +-USE_STATIC = Yes + + ifeq "$(TEC_UNAME)" "SunOS510x86" + DEFINES += USE_NO_OPENGL +diff --git a/tec_uname b/tec_uname +index cc89349..fc982e0 100644 +--- a/tec_uname ++++ b/tec_uname +@@ -148,6 +148,11 @@ ComputeSystemPaths() + + TEC_SYSTEM_INC=/usr/include + ++ if [ $TEC_SYSNAME == Haiku ]; then ++ TEC_SYSTEM_LIB=`finddir B_SYSTEM_LIB_DIRECTORY` ++ TEC_SYSTEM_INC=`finddir B_SYSTEM_HEADERS_DIRECTORY` ++ fi ++ + TEC_LUA_LIB=$TEC_SYSTEM_LIB/lua/$LUA_VER + } + +diff --git a/tecmake.mak b/tecmake.mak +index e5f5efd..1e09d6c 100644 +--- a/tecmake.mak ++++ b/tecmake.mak +@@ -26,6 +26,9 @@ ifndef TEC_UNAME + TEC_SYSARCH:=$(shell uname -m) + + # Fixes ++ ifeq ($(TEC_SYSNAME), Haiku) ++ TEC_SYSARCH:=$(shell uname -p) ++ endif + ifeq ($(TEC_SYSNAME), SunOS) + TEC_SYSARCH:=$(shell uname -p) + endif +@@ -505,6 +508,12 @@ else + endif + endif + ++ ++ifeq "$(TEC_SYSNAME)" "Haiku" ++ STDFLAGS += -Wno-multichar ++ LIBS += be textencoding tracker ++endif ++ + ifneq ($(findstring Linux, $(TEC_UNAME)), ) + UNIX_LINUX = Yes + ifdef BUILD_64 +@@ -526,6 +535,11 @@ ifneq ($(findstring Linux, $(TEC_UNAME)), ) + endif + endif + ++ifneq ($(findstring Haiku, $(TEC_UNAME)), ) ++ UNIX_POSIX = Yes ++ STDLDFLAGS := -shared -Wl,-soname=lib$(TARGETNAME).so ++endif ++ + ifneq ($(findstring IRIX, $(TEC_UNAME)), ) + UNIX_POSIX = Yes + ifndef NO_LOCAL_LD +@@ -852,6 +866,7 @@ endif + ifdef USE_IUP + IUP_SUFFIX ?= + ifdef USE_IUP3 ++ ifndef USE_HAIKU + ifdef GTK_DEFAULT + ifdef USE_MOTIF + IUP_SUFFIX := mot +@@ -869,6 +884,7 @@ ifdef USE_IUP + endif + endif + endif ++ endif + else + ifndef NO_OVERRIDE + override USE_MOTIF = Yes +@@ -956,6 +972,11 @@ ifdef USE_CD + LIBS += cdcairo + LIBS += pangocairo-1.0 cairo + endif ++ ++ ifdef USE_HAIKU ++ LINK_FREETYPE = Yes ++ LIBS += fontconfig xml2 ++ endif + + LIBS += cd$(CD_SUFFIX) + LDIR += $(CD_LIB) +@@ -1180,7 +1201,9 @@ ifdef USE_X11 + STDINCS += $(X11_INC) + endif + +-LIBS += m ++ifneq "$(TEC_SYSNAME)" "Haiku" ++ LIBS += m ++endif + + ifneq ($(findstring cygw, $(TEC_UNAME)), ) + WIN_OTHER := Yes +diff --git a/test/config.mak b/test/config.mak +index 8d558b2..6db8745 100644 +--- a/test/config.mak ++++ b/test/config.mak +@@ -20,6 +20,11 @@ USE_IUP3 = Yes + USE_STATIC = Yes + IUP = .. + ++ifeq "$(TEC_SYSNAME)" "Haiku" ++ USE_HAIKU = Yes ++ USE_STATIC = No ++endif ++ + ifdef DBG_DIR + IUPLIB = $(IUP)/lib/$(TEC_UNAME)d + CDLIB = $(CD)/lib/$(TEC_UNAME)d +-- +1.8.3.4 + diff --git a/sys-apps/which/patches/which-2.20.patchset b/x11-libs/iup/patches/iup_x86-3.8.patchset similarity index 100% rename from sys-apps/which/patches/which-2.20.patchset rename to x11-libs/iup/patches/iup_x86-3.8.patchset diff --git a/x11-libs/libXau/libXau-1.0.5.recipe b/x11-libs/libXau/libXau-1.0.5.recipe deleted file mode 100644 index 262bf426b..000000000 --- a/x11-libs/libXau/libXau-1.0.5.recipe +++ /dev/null @@ -1,22 +0,0 @@ -DESCRIPTION="libxau" -HOMEPAGE="http://xorg.freedesktop.org/releases/individual/lib/" -SRC_URI="http://xorg.freedesktop.org/releases/individual/lib/libXau-1.0.5.tar.gz" -CHECKSUM_MD5="1a421d9376f43596fe068ce209a70b84" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="pkgconfig >= 0.23 - x11-misc/util-macros >= 1.7.0" -BUILD() -{ - cd libXau-1.0.5 - libtoolize --force --copy --install - autoreconf -i - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd libXau-1.0.5 - make install -} diff --git a/x11-libs/libXau/patches/libXau-1.0.5.patch b/x11-libs/libXau/patches/libXau-1.0.5.patch deleted file mode 100644 index b131ea47e..000000000 --- a/x11-libs/libXau/patches/libXau-1.0.5.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -Naur libXau-1.0.5/configure.ac libXau-1.0.5-haiku/configure.ac ---- libXau-1.0.5/configure.ac 2009-08-28 04:34:23.023855104 +0000 -+++ libXau-1.0.5-haiku/configure.ac 2010-04-26 23:21:53.573308928 +0000 -@@ -58,6 +58,9 @@ - if test "x$mtsafe" = "x" ; then - AC_CHECK_LIB(nsl, gethostbyname_r, [mtsafe=yes]) - fi -+ if test "x$mtsafe" = "x" ; then -+ AC_CHECK_LIB(network, gethostbyname_r, [mtsafe=yes]) -+ fi - if test "x$mtsafe" = "xyes" ; then - AC_DEFINE(XUSE_MTSAFE_API, 1, - [Whether libXau needs to use MT safe API's]) diff --git a/x11-libs/libX11/libX11-1.3.3.recipe b/x11-libs/libx11/libx11-1.3.3.recipe similarity index 100% rename from x11-libs/libX11/libX11-1.3.3.recipe rename to x11-libs/libx11/libx11-1.3.3.recipe diff --git a/x11-libs/libX11/patches/libX11-1.3.3.patch b/x11-libs/libx11/patches/libx11-1.3.3.patch similarity index 100% rename from x11-libs/libX11/patches/libX11-1.3.3.patch rename to x11-libs/libx11/patches/libx11-1.3.3.patch diff --git a/x11-libs/libxau/libxau-1.0.5.recipe b/x11-libs/libxau/libxau-1.0.5.recipe new file mode 100644 index 000000000..401df5e10 --- /dev/null +++ b/x11-libs/libxau/libxau-1.0.5.recipe @@ -0,0 +1,60 @@ +SUMMARY="libxau" +DESCRIPTION=" +libxau. +" +HOMEPAGE="http://xorg.freedesktop.org/releases/individual/lib/" +SRC_URI="http://xorg.freedesktop.org/releases/individual/lib/libXau-1.0.5.tar.gz" +CHECKSUM_SHA256="2ad4324cf204331d6773bba441baed58e46168e7913de2079f10b272eae5c4db" +REVISION="1" +COPYRIGHT="1988, 1993, 1994, 1998 The Open Group" +LICENSE="MIT (no promotion)" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + libxau$secondaryArchSuffix = $portVersion + lib:libxau$secondaryArchSuffix = $portVersion + lib:libXau$secondaryArchSuffix = $portVersion + devel:libxau$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + xproto$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + devel:xproto$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:util_macros$secondaryArchSuffix + cmd:autoconf + cmd:libtool + cmd:aclocal + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:pkg_config$secondaryArchSuffix + " + +SOURCE_DIR="libXau-$portVersion" + +PATCHES="libxau-1.0.5.patch" + +BUILD() +{ + libtoolize --force --copy --install + autoreconf -i + runConfigure ./configure + make +} + +INSTALL() +{ + make install + prepareInstalledDevelLibs libXau + fixPkgconfig +} diff --git a/x11-libs/libxau/patches/libxau-1.0.5.patch b/x11-libs/libxau/patches/libxau-1.0.5.patch new file mode 100644 index 000000000..7779a6f82 --- /dev/null +++ b/x11-libs/libxau/patches/libxau-1.0.5.patch @@ -0,0 +1,23 @@ +diff --git a/configure.ac b/configure.ac +index c63adcb..0d981c6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -28,7 +28,7 @@ AC_INIT(libXau, 1.0.5, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg] + AM_INIT_AUTOMAKE([dist-bzip2]) + AM_MAINTAINER_MODE + +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADER(config.h) + + # Require xorg-macros: XORG_CWARNFLAGS, XORG_CHANGELOG, XORG_WITH_LINT + m4_ifndef([XORG_MACROS_VERSION], [AC_FATAL([must install xorg-macros 1.2 or later before running autoconf/autogen])]) +@@ -58,6 +58,9 @@ if test "x$xthreads" = "xyes" ; then + if test "x$mtsafe" = "x" ; then + AC_CHECK_LIB(nsl, gethostbyname_r, [mtsafe=yes]) + fi ++ if test "x$mtsafe" = "x" ; then ++ AC_CHECK_LIB(network, gethostbyname_r, [mtsafe=yes]) ++ fi + if test "x$mtsafe" = "xyes" ; then + AC_DEFINE(XUSE_MTSAFE_API, 1, + [Whether libXau needs to use MT safe API's]) diff --git a/x11-libs/libxcb/libxcb-1.6.recipe b/x11-libs/libxcb/libxcb-1.6.recipe index 8d316acf2..55e654b36 100644 --- a/x11-libs/libxcb/libxcb-1.6.recipe +++ b/x11-libs/libxcb/libxcb-1.6.recipe @@ -1,25 +1,63 @@ -DESCRIPTION="libxcb" +SUMMARY="libxcb" +DESCRIPTION=" +libxcb. +" HOMEPAGE="http://xcb.freedesktop.org/" SRC_URI="http://xcb.freedesktop.org/dist/libxcb-1.6.tar.gz" -CHECKSUM_MD5="f824cc4cb4b43f5bbc84c0e17fbd80d0" +CHECKSUM_SHA256="df93b7d5afb0f970c73294636dc8cbc08f59bd39239cac4e6e0a46792ae7b759" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="pkgconfig >= 0.23 - x11-misc/util-macros >= 1.7.0 - dev-libs/libxslt >= 1.1.26 - x11-proto/xcb-proto >= 1.6 - x11-libs/libXau >= 1.0.5" +COPYRIGHT="2001-2006 Bart Massey, Jamey Sharp, and Josh Triplett. +All Rights Reserved." +LICENSE="MIT (no promotion)" + +ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="?x86_gcc2 ?x86" + +PROVIDES=" + libxcb$secondaryArchSuffix = $portVersion + lib:libxcb$secondaryArchSuffix = $portVersion + devel:libxcb$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libxslt >= 1.1.26 + " + +BUILD_REQUIRES=" + devel:libxslt >= 1.1.26 + devel:xcb_proto >= 1.6 + devel:libpthread_stubs$secondaryArchSuffix >= 0.3 + devel:libxau$secondaryArchSuffix >= 1.0.5 + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:util_macros$secondaryArchSuffix + cmd:autoconf + cmd:libtool + cmd:aclocal + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:pkg_config$secondaryArchSuffix + cmd:python + " + + +#DEPEND="pkgconfig >= 0.23 +# x11-misc/util-macros >= 1.7.0 +# dev-libs/libxslt >= 1.1.26 +# x11-proto/xcb-proto >= 1.6 +# x11-libs/libXau >= 1.0.5" BUILD() { - cd libxcb-1.6 libtoolize --force --copy --install ./autogen.sh - ./configure --prefix=`finddir B_COMMON_DIRECTORY` + runConfigure ./configure } INSTALL() { - cd libxcb-1.6 make install } diff --git a/x11-libs/pango/pango-1.28.1.recipe b/x11-libs/pango/pango-1.28.1.recipe index a783d46ad..21fa4b064 100644 --- a/x11-libs/pango/pango-1.28.1.recipe +++ b/x11-libs/pango/pango-1.28.1.recipe @@ -1,4 +1,7 @@ -DESCRIPTION="Pango is a library for laying out and rendering of text, with an emphasis on internationalization." +DESCRIPTION=" +Pango is a library for laying out and rendering of text, with an emphasis on \ +internationalization. +" HOMEPAGE="http://www.pango.org/" SRC_URI="http://ftp.gnome.org/pub/GNOME/sources/pango/1.28/pango-1.28.1.tar.gz" CHECKSUM_MD5="8c0418a1400df7c4d08db5dbd3287d53" diff --git a/x11-libs/pixman/pixman-0.20.0.recipe b/x11-libs/pixman/pixman-0.20.0.recipe index ffa1be8dd..b0051e825 100644 --- a/x11-libs/pixman/pixman-0.20.0.recipe +++ b/x11-libs/pixman/pixman-0.20.0.recipe @@ -1,32 +1,10 @@ -DESCRIPTION="Pixman - The pixel-manipulation library for X and cairo" +SUMMARY="pixman" +DESCRIPTION=" +Pixman - The pixel-manipulation library for X and cairo. +" HOMEPAGE="http://cgit.freedesktop.org/pixman/" SRC_URI="http://cairographics.org/releases/pixman-0.20.0.tar.gz" -CHECKSUM_MD5="c1a31d5cedfa97c5af7148a2d1fd4356" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD() -{ - cd pixman-0.20.0 - libtoolize --force --copy --install - aclocal - autoconf - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd pixman-0.20.0 - make install -} - -TEST() -{ - cd pixman-0.20.0 - make check -} - +CHECKSUM_SHA256="9c02c22c6cc3f28f3633d02ef6f0cac130518f621edb011ebbbf08cd1a81251a" LICENSE="MIT" COPYRIGHT="1987-1998 The Open Group 1987-1989 Digital Equipment Corporation @@ -34,3 +12,78 @@ COPYRIGHT="1987-1998 The Open Group 2004-2010 Red Hat, Inc. 2009-2010 Sun Microsystems, Inc. and many others" + +REVISION="1" + +ARCHITECTURES="x86 x86_64" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + pixman$secondaryArchSuffix = $portVersion + lib:libpixman_1$secondaryArchSuffix = $portVersion + " + +PROVIDES_devel=" + pixman${secondaryArchSuffix}_devel = $portVersion + devel:libpixman_1$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +REQUIRES_devel=" + pixman$secondaryArchSuffix == $portVersion base + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:libtoolize + cmd:make + cmd:perl + cmd:pkg_config + " + +PATCH() +{ + sed -i 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/g' configure.ac +} + +BUILD() +{ + aclocal + libtoolize --force --copy --install + automake --add-missing + autoconf + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install + + prepareInstalledDevelLibs libpixman-1 + + fixPkgconfig + + packageEntries devel \ + $developDir +} + +TEST() +{ + make check +} diff --git a/x11-libs/xtrans/xtrans-1.2.5.recipe b/x11-libs/xtrans/xtrans-1.2.5.recipe index fb109065a..c2f5e6efa 100644 --- a/x11-libs/xtrans/xtrans-1.2.5.recipe +++ b/x11-libs/xtrans/xtrans-1.2.5.recipe @@ -1,23 +1,55 @@ -DESCRIPTION="xtrans" +SUMMARY="xtrans" +DESCRIPTION=" +xtrans. +" HOMEPAGE="http://xorg.freedesktop.org/releases/individual/lib/" SRC_URI="http://xorg.freedesktop.org/releases/individual/lib/xtrans-1.2.5.tar.gz" -CHECKSUM_MD5="b2f47d49faf1f24e8294b624b21b9b93" +CHECKSUM_SHA256="97d76ab76c755fabf2ef1896aaa76c0e38fc58d92799f9b2dd885a535cdd1e2b" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="pkgconfig >= 0.23 - x11-misc/util-macros >= 1.7.0" - +COPYRIGHT="1993, 1994, 1998 The Open Group + 1993, 1994 NCR Corporation - Dayton, Ohio, USA + 2002, 2005 Sun Microsystems, Inc. All rights reserved. + Copyright 1996 by Sebastien Marineau and Holger Veit + 2003 Keith Packard, Noah Levitt" +LICENSE="MIT (no promotion)" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + xtrans$secondaryArchSuffix = $portVersion + devel:xtrans$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:util_macros$secondaryArchSuffix + cmd:autoconf + cmd:libtool + cmd:aclocal + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:pkg_config$secondaryArchSuffix + " + + BUILD() { - cd xtrans-1.2.5 libtoolize --force --copy --install autoreconf -i - ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --datadir=`finddir B_COMMON_DATA_DIRECTORY` + runConfigure ./configure } INSTALL() { - cd xtrans-1.2.5 make install + mkdir -p $prefix/develop/lib${secondaryArchSuffix/_//} + mv -f $prefix/data/pkgconfig $prefix/develop/lib${secondaryArchSuffix/_//}/ } diff --git a/x11-misc/util_macros/util_macros-1.17.0_git.recipe b/x11-misc/util_macros/util_macros-1.17.0_git.recipe index 8f7f416d5..d088a29d3 100644 --- a/x11-misc/util_macros/util_macros-1.17.0_git.recipe +++ b/x11-misc/util_macros/util_macros-1.17.0_git.recipe @@ -1,4 +1,7 @@ -DESCRIPTION="xorg util-macros" +SUMMARY="xorg util-macros" +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." @@ -7,19 +10,42 @@ LICENSE="MIT" SRC_URI="git://anongit.freedesktop.org/xorg/util/macros" #CHECKSUM_MD5="" REVISION="1" -STATUS_HAIKU="untested" -DEPEND="" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + util_macros$secondaryArchSuffix = $portVersion + devel:util_macros$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:autoconf + cmd:aclocal + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + " + + BUILD() { - cd util-macros-1.17.0-git ./autogen.sh -V - ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --datadir=`finddir B_COMMON_LIB_DIRECTORY` + runConfigure ./configure make } INSTALL() { - cd util-macros-1.17.0-git make install + #fixPkgconfig + mkdir -p $prefix/develop/lib${secondaryArchSuffix/_//} + mv -f $prefix/data/pkgconfig $prefix/develop/lib${secondaryArchSuffix/_//}/ } diff --git a/x11-proto/inputproto/inputproto-2.0.recipe b/x11-proto/inputproto/inputproto-2.0.recipe index 6d461f68d..41aa9bf03 100644 --- a/x11-proto/inputproto/inputproto-2.0.recipe +++ b/x11-proto/inputproto/inputproto-2.0.recipe @@ -1,21 +1,52 @@ -DESCRIPTION="inputproto" +SUMMARY="inputproto" +DESCRIPTION=" +inputproto. +" HOMEPAGE="http://xorg.freedesktop.org/releases/individual/proto/" SRC_URI="http://xorg.freedesktop.org/releases/individual/proto/inputproto-2.0.tar.gz" -CHECKSUM_MD5="13d91739cf70a781f1db24d8d3677574" +CHECKSUM_SHA256="cd89a1e95745875e66947ba28587c720c91aec63836ac6548ca12fd525c0a2ee" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="x11-misc/util-macros >= 1.7.0" +COPYRIGHT="1989, 1998 The Open Group + 1989 by Hewlett-Packard Company, Palo Alto, California. + " +LICENSE="MIT (no promotion)" + + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + inputproto$secondaryArchSuffix = $portVersion + devel:inputproto$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:util_macros$secondaryArchSuffix + cmd:autoconf + cmd:libtool + cmd:aclocal + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:pkg_config$secondaryArchSuffix + " BUILD() { - cd inputproto-2.0 libtoolize --force --copy --install autoreconf -i - ./configure --prefix=`finddir B_COMMON_DIRECTORY` + runConfigure ./configure } INSTALL() { - cd inputproto-2.0 make install + fixPkgconfig } diff --git a/x11-proto/kbproto/kbproto-1.0.4.recipe b/x11-proto/kbproto/kbproto-1.0.4.recipe index 970e88e87..4bae0ebbc 100644 --- a/x11-proto/kbproto/kbproto-1.0.4.recipe +++ b/x11-proto/kbproto/kbproto-1.0.4.recipe @@ -1,21 +1,49 @@ -DESCRIPTION="kbproto" +SUMMARY="kbproto" +DESCRIPTION=" +kbproto. +" HOMEPAGE="http://xorg.freedesktop.org/releases/individual/proto/" SRC_URI="http://xorg.freedesktop.org/releases/individual/proto/kbproto-1.0.4.tar.gz" -CHECKSUM_MD5="4deef518a03bc94a7a25902bb7c98dd6" +CHECKSUM_SHA256="d7fcd4fa4332109b05f0d5e238e4aa0ef2ca1a51b45ab9fcf8affd7ee021cfe7" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="x11-misc/util-macros >= 1.7.0" +COPYRIGHT="1993 by Silicon Graphics Computer Systems, Inc." +LICENSE="MIT" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + kbproto$secondaryArchSuffix = $portVersion + devel:kbproto$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:util_macros$secondaryArchSuffix + cmd:autoconf + cmd:libtool + cmd:aclocal + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:pkg_config$secondaryArchSuffix + " BUILD() { - cd kbproto-1.0.4 libtoolize --force --copy --install autoreconf -i - ./configure --prefix=`finddir B_COMMON_DIRECTORY` + runConfigure ./configure } INSTALL() { - cd kbproto-1.0.4 make install + fixPkgconfig } diff --git a/x11-proto/xcb_proto/xcb_proto-1.6.recipe b/x11-proto/xcb_proto/xcb_proto-1.6.recipe index 6573458f7..eb46c5ccf 100644 --- a/x11-proto/xcb_proto/xcb_proto-1.6.recipe +++ b/x11-proto/xcb_proto/xcb_proto-1.6.recipe @@ -1,22 +1,57 @@ -DESCRIPTION="xcb-proto" +SUMMARY="xcb-proto" +DESCRIPTION=" +xcb-proto. +" HOMEPAGE="http://xcb.freedesktop.org/" SRC_URI="http://xcb.freedesktop.org/dist/xcb-proto-1.6.tar.gz" -CHECKSUM_MD5="8d29695e8faf5fcdce568c66eaeaa5ee" +CHECKSUM_SHA256="2c64602868f69409d9e14f43a17eb2faf7c1c48654e0eff6b6978034f304724d" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="x11-misc/util-macros >= 1.7.0" +COPYRIGHT="2001-2006 Bart Massey, Jamey Sharp, and Josh Triplett." +LICENSE="MIT (no promotion)" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + xcb_proto$secondaryArchSuffix = $portVersion + devel:xcb_proto$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:util_macros$secondaryArchSuffix + cmd:autoconf + cmd:libtool + cmd:aclocal + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:pkg_config$secondaryArchSuffix + cmd:python$secondaryArchSuffix + " + +SOURCE_DIR="xcb-proto-$portVersion" + +GLOBAL_WRITABLE_FILES=" + non-packaged/lib/python2.6/site-packages directory keep-old + " BUILD() { - cd xcb-proto-1.6 libtoolize --force --copy --install autoreconf -i - ./configure --prefix=`finddir B_COMMON_DIRECTORY` + runConfigure ./configure make } INSTALL() { - cd xcb-proto-1.6 - make install + make install DESTDIR=/ + fixPkgconfig } diff --git a/x11-proto/xextproto/xextproto-7.1.1.recipe b/x11-proto/xextproto/xextproto-7.1.1.recipe index 224d93786..da6336db8 100644 --- a/x11-proto/xextproto/xextproto-7.1.1.recipe +++ b/x11-proto/xextproto/xextproto-7.1.1.recipe @@ -1,21 +1,57 @@ -DESCRIPTION="xextproto" +SUMMARY="xextproto" +DESCRIPTION=" +xextproto. +" HOMEPAGE="http://xorg.freedesktop.org/releases/individual/proto/" SRC_URI="http://xorg.freedesktop.org/releases/individual/proto/xextproto-7.1.1.tar.gz" -CHECKSUM_MD5="6c55283718dbeb826bcf899b9e89faba" +CHECKSUM_SHA256="5ade284271eed437b05829be336b2b0ddaabad48335be220c0d9d5101fd8baec" REVISION="1" -STATUS_HAIKU="stable" -DEPEND="x11-misc/util-macros >= 1.7.0" +COPYRIGHT="1989, 1998 The Open Group + 1997 by Silicon Graphics Computer Systems, Inc. + 1992 Network Computing Devices + 1994, 1995 Hewlett-Packard Company + 1996 Digital Equipment Corporation, Maynard, Massachusetts. + 1988, 1989, 1990, 1994 Network Computing Devices, Inc. + 1991,1993 by Digital Equipment Corporation, Maynard, Massachusetts, and Olivetti Research Limited, Cambridge, England. + 1986, 1987, 1988 by Hewlett-Packard Corporation + 2007-2008 Peter Hutterer" +LICENSE="MIT (no promotion)" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + xextproto$secondaryArchSuffix = $portVersion + devel:xextproto$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:util_macros$secondaryArchSuffix >= 1.7.0 + cmd:autoconf + cmd:libtool + cmd:aclocal + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:pkg_config$secondaryArchSuffix + " BUILD() { - cd xextproto-7.1.1 libtoolize --force --copy --install autoreconf -i - ./configure --prefix=`finddir B_COMMON_DIRECTORY` + runConfigure ./configure } INSTALL() { - cd xextproto-7.1.1 make install + fixPkgconfig } diff --git a/x11-proto/xproto/xproto-7.0.23_git.recipe b/x11-proto/xproto/xproto-7.0.23_git.recipe index 1d808c8c7..ad07d01d7 100644 --- a/x11-proto/xproto/xproto-7.0.23_git.recipe +++ b/x11-proto/xproto/xproto-7.0.23_git.recipe @@ -1,4 +1,7 @@ -DESCRIPTION="xproto" +SUMMARY="xproto" +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 @@ -11,19 +14,44 @@ LICENSE="MIT (no promotion)" SRC_URI="git://anongit.freedesktop.org/xorg/proto/xproto" #CHECKSUM_MD5="" REVISION="1" -STATUS_HAIKU="untested" -DEPEND="" + +PATCHES="xproto-7.0.23_git.patch" + +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" + +PROVIDES=" + xproto$secondaryArchSuffix = $portVersion + devel:xproto$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + " + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:util_macros$secondaryArchSuffix + cmd:autoconf + cmd:libtool + cmd:aclocal + cmd:make + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:pkg_config$secondaryArchSuffix + " + BUILD() { - cd xproto-7.0.23-git ./autogen.sh -V - ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --datadir=`finddir B_COMMON_LIB_DIRECTORY` + runConfigure ./configure make } INSTALL() { - cd xproto-7.0.23-git make install + fixPkgconfig }