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..12d248294 --- /dev/null +++ b/app-arch/tar/patches/tar-1.27.1.patchset @@ -0,0 +1,125 @@ +From 5601acb5afe236cc83a2577a5fb36ef478944bab Mon Sep 17 00:00:00 2001 +From: Jonathan Schleifer +Date: Thu, 20 Mar 2014 14:52:58 +0100 +Subject: [PATCH] Patches from tar-1.26 + +--- + src/common.h | 2 ++ + src/extract.c | 41 +++++++++++++++++++++++++++++++++++++++++ + src/tar.c | 7 +++++++ + 3 files changed, 50 insertions(+) + +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; +-- +Jonathan + 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..3f42192c5 --- /dev/null +++ b/app-arch/tar/tar-1.27.1.recipe @@ -0,0 +1,64 @@ +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_SIZE="2573070" +CHECKSUM_MD5="490e074dd7e71f553df8357a7ef9bdcf" +CHECKSUM_RMD160="a99ccfd874ac72c1e0feec2d86423c3e5bcd19fb" +CHECKSUM_SHA512="f14a0a58e574db3aeec0914621aff2f0518b8d8acce81106b8219b36b3fed47349d6cb802c51a836a5e6889529337434d83b3c50cd7fc1801b9b3944eecc695b" +REVISION="2" +ARCHITECTURES="?x86_gcc2 ?x86 x86_64" + +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/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..99d81c779 --- /dev/null +++ b/app-arch/xz_utils/xz_utils-5.0.5.recipe @@ -0,0 +1,123 @@ +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_SIZE="1060649" +CHECKSUM_MD5="db44efe0d53ac4317627624b98c63da0" +CHECKSUM_RMD160="16c0a0b4a72023342b1ece8151c8d0bdf8b40968" +CHECKSUM_SHA512="5980de4c7ddc11dfafb5b1bd6026cd50d6dcec64e7e1d5d848a462e35497bf22dcdf7f3340e24cea75258edfda0b46afabb59df93261841d4e6da2210cc9cf1b" +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-text/help2man/help2man-1.44.1.recipe b/app-text/help2man/help2man-1.44.1.recipe new file mode 100644 index 000000000..c9812006d --- /dev/null +++ b/app-text/help2man/help2man-1.44.1.recipe @@ -0,0 +1,55 @@ +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.44.1.tar.xz" +CHECKSUM_SIZE="123608" +CHECKSUM_MD5="a5dc6530340b41f0e492d400670dd7ae" +CHECKSUM_RMD160="8f38a2f9c3163096a41233bd0fb40699050bd20b" +CHECKSUM_SHA512="94bf7482c4a7bd940b048203b8920692075ce43262807c6df86a8091f2be42e231f8e0cc1e61a5f52b559f4bc309b51be4bda78a1a80492280864283b93cb1d2" + +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/dev-db/db/db-6.0.30.recipe b/dev-db/db/db-6.0.30.recipe new file mode 100644 index 000000000..147baa1a5 --- /dev/null +++ b/dev-db/db/db-6.0.30.recipe @@ -0,0 +1,98 @@ +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_SIZE="36584356" +CHECKSUM_MD5="ad28eb86ad3203b5422844db179c585b" +CHECKSUM_SHA512="ea249c59dba18cad391f523840028ba8ef962c32f2c7470942d52f9c07f18ba9fdf964dcd545cb7f2d6c66b91924a0ba1478af1d8f81f0dcbbf94c97ac515cf9" +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/sqlite/sqlite-3.8.4.1.recipe b/dev-db/sqlite/sqlite-3.8.4.1.recipe new file mode 100644 index 000000000..e6384916b --- /dev/null +++ b/dev-db/sqlite/sqlite-3.8.4.1.recipe @@ -0,0 +1,85 @@ +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_SIZE="1937368" +CHECKSUM_MD5="6b8cb7b9063a1d97f7b5dc517e8ee0c4" +CHECKSUM_RMD160="e4cf636abcffb628b66428eaa9687632acf096a2" +CHECKSUM_SHA512="222868477a73b2f15ee95dbe244a724fd42ad6d6f7401fda0161ac40d13babed36e42cbafd154102dcab202f10576c4460143c634e31701381d314b2390e186b" +REVISION="1" +ARCHITECTURES="?x86_gcc2 ?x86" +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-lang/nasm/nasm-2.11.02.recipe b/dev-lang/nasm/nasm-2.11.02.recipe new file mode 100644 index 000000000..8ab8b7fad --- /dev/null +++ b/dev-lang/nasm/nasm-2.11.02.recipe @@ -0,0 +1,45 @@ +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_SIZE="905509" +CHECKSUM_MD5="3bbc8ed83115b8caf7931f35ec3bc5e0" +CHECKSUM_RMD160="f05691782855ac23dc8b0078de02953538f78ad5" +CHECKSUM_SHA512="b207918f34871a8df7d5e945ea95f4dfe3830fe4c48e9f5ade11070659734290c9f0bbdf588859231aa5257fc1e50cca8d5a6f7a711c2b8e4cd2d712c7a52c9d" +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:make + cmd:perl + " + + +BUILD() +{ + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install +} 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..6ee66b229 --- /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_SIZE="4397871" +CHECKSUM_MD5="04dfdd7da189462a4f10ec6530359cef" +CHECKSUM_RMD160="5a15c9db1b7280500291bb6224bbd91eff7988bb" +CHECKSUM_SHA512="94e6e0eba98b0d20c196a938959837fbe247ab9b88224210ab09c61905bae24ddb9418eba361f1660e67ecbe050ca7047757823741d546cbe8cd0f42dc9d8ba4" +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 + cmd:gcc + " + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:make + cmd:gcc + " + +PATCHES="ocaml-4.00.0.patchset" + +BUILD() +{ + ./configure --prefix $prefix \ + --mandir $manDir + make world.opt +} + +INSTALL() +{ + make install +} 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..7bba0b316 --- /dev/null +++ b/dev-lang/perl/perl-5.18.2.recipe @@ -0,0 +1,146 @@ +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_SIZE="17296490" +CHECKSUM_MD5="373f57ccc441dbc1812435f45ad20660" +CHECKSUM_RMD160="12588e908fbf826228bc0a3966f41d5502b09c88" +CHECKSUM_SHA512="81ae4eec8b9f34d2130bd90251b7f71587263f6b673b54dbfe8a9fa7d0002633edeb8a361a5143beb52568920dab85974e5ab22769a340033bc0c16757fc5369" +REVISION="2" +ARCHITECTURES="?x86_gcc2 ?x86 x86_64" + +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.7.6.patchset b/dev-lang/python/patches/python-2.7.6.patchset new file mode 100644 index 000000000..aaf1c963f --- /dev/null +++ b/dev-lang/python/patches/python-2.7.6.patchset @@ -0,0 +1,711 @@ +From b06b5f1a27ce987aba1de80599a8082065399dde 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..5ea9c94 100644 +--- a/setup.py ++++ b/setup.py +@@ -523,6 +523,11 @@ 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/develop/headers/3rdparty'] ++ lib_dirs += ['/boot/system/lib', '/boot/develop/lib/x86'] + + # OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb) + if host_platform in ['osf1', 'unixware7', 'openunix8']: +@@ -551,7 +556,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 +@@ -1324,7 +1329,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 + 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..ef16ae4cc --- /dev/null +++ b/dev-lang/python/python-2.7.6.recipe @@ -0,0 +1,110 @@ +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="http://www.python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz" +CHECKSUM_MD5="bcf93efa8eaf383c98ed3ce40b763497" +REVISION="1" +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.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/ruby/ruby-1.9.3.recipe b/dev-lang/ruby/ruby-1.9.3.recipe new file mode 100644 index 000000000..8e1b5e0f0 --- /dev/null +++ b/dev-lang/ruby/ruby-1.9.3.recipe @@ -0,0 +1,98 @@ +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_SIZE="10038164" +CHECKSUM_MD5="4743c1dc48491070bae8fc8b423bc1a7" +CHECKSUM_SHA512="7fbdaac5950abcb3cc9a2f99f441eced5f2a7d0c9107a41fb4b6caf299e372edab2be24a294ec1a6d6863b865f9cb5511ca1c15ec6bb1f45e60ffa7ab5480e04" +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-libs/gmp/gmp-5.1.3.recipe b/dev-libs/gmp/gmp-5.1.3.recipe new file mode 100644 index 000000000..aa57aa089 --- /dev/null +++ b/dev-libs/gmp/gmp-5.1.3.recipe @@ -0,0 +1,76 @@ +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_SIZE="1818812" +CHECKSUM_MD5="e5fe367801ff067b923d1e6a126448aa" +CHECKSUM_RMD160="09f274b178b5ef120eed8df36f44997df30090ba" +CHECKSUM_SHA512="44bbec2b2a6480d4c9a9a633cca4fe0de966c13bc08bdcd8b934d81e21f3dfacaecf273f149dc613d365277d280ecee43cffdafaec1bd1239a7ed903f8658b5b" +LICENSE="GNU GPL v3 + GNU LGPL v3" +COPYRIGHT="1991-2013 Free Software Foundation, Inc." +REVISION="1" +ARCHITECTURES="x86 x86_gcc2" +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-util/cmake/patches/cmake-3.0.0_git.patchset b/dev-util/cmake/patches/cmake-3.0.0_git.patchset index 74c45b918..1c97ac007 100644 --- a/dev-util/cmake/patches/cmake-3.0.0_git.patchset +++ b/dev-util/cmake/patches/cmake-3.0.0_git.patchset @@ -1,151 +1,4 @@ -From 71a1a0a1f751e4c47f0d58a1c7a207051f0235c1 Mon Sep 17 00:00:00 2001 -From: Brad King -Date: Thu, 6 Mar 2014 16:18:56 -0500 -Subject: FindSDL: Make FindSDL_*.cmake path suffixes consistent with main - module - -Add the 'SDL' path suffix to the FindSDL_*.cmake modules. Add a comment -explaining the purpose of suffixes as in commit v3.0.0-rc1~540^2 -(FindSDL: Add path suffixes for /include/..., 2013-10-08). - -Inspired-by: Adrien Destugues - -diff --git a/Modules/FindSDL_image.cmake b/Modules/FindSDL_image.cmake -index e5173e3..fc2c043 100644 ---- a/Modules/FindSDL_image.cmake -+++ b/Modules/FindSDL_image.cmake -@@ -54,7 +54,9 @@ 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 -+ # path suffixes to search inside ENV{SDLDIR} -+ 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..176fee6 100644 ---- a/Modules/FindSDL_mixer.cmake -+++ b/Modules/FindSDL_mixer.cmake -@@ -54,7 +54,9 @@ 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 -+ # path suffixes to search inside ENV{SDLDIR} -+ include/SDL include/SDL12 include/SDL11 include - ) - - if(CMAKE_SIZEOF_VOID_P EQUAL 8) -diff --git a/Modules/FindSDL_net.cmake b/Modules/FindSDL_net.cmake -index e5c2cdb..ef23573 100644 ---- a/Modules/FindSDL_net.cmake -+++ b/Modules/FindSDL_net.cmake -@@ -54,7 +54,9 @@ find_path(SDL_NET_INCLUDE_DIR SDL_net.h - HINTS - ENV SDLNETDIR - ENV SDLDIR -- PATH_SUFFIXES include/SDL include/SDL12 include/SDL11 include -+ PATH_SUFFIXES SDL -+ # path suffixes to search inside ENV{SDLDIR} -+ include/SDL include/SDL12 include/SDL11 include - ) - - if(CMAKE_SIZEOF_VOID_P EQUAL 8) -diff --git a/Modules/FindSDL_sound.cmake b/Modules/FindSDL_sound.cmake -index 3a6ab7b..8b22ff7 100644 ---- a/Modules/FindSDL_sound.cmake -+++ b/Modules/FindSDL_sound.cmake -@@ -98,7 +98,9 @@ find_path(SDL_SOUND_INCLUDE_DIR SDL_sound.h - HINTS - ENV SDLSOUNDDIR - ENV SDLDIR -- PATH_SUFFIXES include/SDL include/SDL12 include/SDL11 include -+ PATH_SUFFIXES SDL -+ # path suffixes to search inside ENV{SDLDIR} -+ include/SDL include/SDL12 include/SDL11 include - ) - - find_library(SDL_SOUND_LIBRARY -diff --git a/Modules/FindSDL_ttf.cmake b/Modules/FindSDL_ttf.cmake -index 3f58ac1..4b527fa 100644 ---- a/Modules/FindSDL_ttf.cmake -+++ b/Modules/FindSDL_ttf.cmake -@@ -54,7 +54,9 @@ 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 -+ # path suffixes to search inside ENV{SDLDIR} -+ include/SDL include/SDL12 include/SDL11 include - ) - - if(CMAKE_SIZEOF_VOID_P EQUAL 8) --- -1.8.3.4 - - -From b698a970d31ad923cf2451a1e248771eadd879a0 Mon Sep 17 00:00:00 2001 -From: Adrien Destugues -Date: Mon, 3 Mar 2014 16:01:23 +0100 -Subject: FindFreetype: Add plain 'freetype2' path suffix - -On Haiku, the headers are not in an 'include' directory. - -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 --- -1.8.3.4 - - -From 37e2252c6e5647bbca9a5c5992775ee7495a4c07 Mon Sep 17 00:00:00 2001 -From: Adrien Destugues -Date: Mon, 3 Mar 2014 15:47:08 +0100 -Subject: Ninja: Detect command-line length limit on Haiku - - -diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx -index a49fc2d..c24c5e0 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 --- -1.8.3.4 - - -From 3d18f07a267c6ecedeedd8c5eadd4a9361f0715c Mon Sep 17 00:00:00 2001 +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 @@ -153,7 +6,7 @@ Subject: Haiku: Enable CMake builtin ELF editor Co-Author: Brad King diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt -index 966e0f6..93b44ba 100644 +index 762470f..27d099d 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -18,6 +18,23 @@ else() @@ -180,7 +33,7 @@ index 966e0f6..93b44ba 100644 else() set(CMAKE_USE_ELF_PARSER) endif() -@@ -52,6 +69,7 @@ include_directories( +@@ -57,6 +74,7 @@ include_directories( ${CMAKE_EXPAT_INCLUDES} ${CMAKE_TAR_INCLUDES} ${CMAKE_COMPRESS_INCLUDES} @@ -189,7 +42,7 @@ index 966e0f6..93b44ba 100644 # let cmake know it is supposed to use it diff --git a/Source/cmELF.cxx b/Source/cmELF.cxx -index 353f2e9..da5a58c 100644 +index bc1c25b..dc6772c 100644 --- a/Source/cmELF.cxx +++ b/Source/cmELF.cxx @@ -23,6 +23,26 @@ @@ -223,7 +76,7 @@ index 353f2e9..da5a58c 100644 1.8.3.4 -From 5c6d7bdabf3dfb8f0d423b855ce03c0884f7e55d Mon Sep 17 00:00:00 2001 +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 @@ -304,7 +157,7 @@ index 825f851..dfc2664 100644 1.8.3.4 -From fb798c65438e33ddaa00b4665a8df94a9ec5d20c Mon Sep 17 00:00:00 2001 +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 @@ -614,10 +467,10 @@ index 0000000..772f422 + 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 93b44ba..83ecac0 100644 +index 27d099d..bbf979b 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt -@@ -576,6 +576,12 @@ if(UNIX) +@@ -589,6 +589,12 @@ if(UNIX) ) endif() 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..fd90ee076 --- /dev/null +++ b/dev-vcs/mercurial/mercurial-2.9.1.recipe @@ -0,0 +1,59 @@ +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_SIZE="3851747" +CHECKSUM_MD5="56b3732f0f558f3cc986c9323ca8d17f" +CHECKSUM_RMD160="a39057a8d99bfe6f6a41da34005bac5c54112a2b" +CHECKSUM_SHA512="a1734ff7228f02454fc3ae4a0ed95d11b44ac344702c55e5357b4d64c4e81a84fadfcecdc8f67bb1aa8ef1a5708181670626ac7a64dcc74f47b7842525091168" +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/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..bd09c68c5 --- /dev/null +++ b/haiku-apps/pe/pe-2.4.4_2014_03_18.recipe @@ -0,0 +1,77 @@ +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_SIZE="756293" +CHECKSUM_RMD160="31259e128451f58787f5d95ea6ca6371c66ae633" +CHECKSUM_SHA512="06c6940653fba865de278c5b3af02dee98b11f8655168c76139f82f9b1e624fafa7b7f07afd354f7dad41f94e615b6d06937fbb80ee1dd28a459d3aa2f0ae8a4" + +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/vision/vision-0.9.7.r949.recipe b/haiku-apps/vision/vision-0.9.7.r949.recipe index 2b0dabe2a..952cda4cd 100644 --- a/haiku-apps/vision/vision-0.9.7.r949.recipe +++ b/haiku-apps/vision/vision-0.9.7.r949.recipe @@ -3,12 +3,17 @@ 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#949" +SRC_URI="http://haiku-files.org/distfiles/vision-0.9.7.r949.tar.gz" LICENSE="MPL v1.1" COPYRIGHT="1999-2010 The Vision Team" -REVISION="2" +REVISION="3" ARCHITECTURES="x86_gcc2 x86 x86_64" +CHECKSUM_SIZE="538913" +CHECKSUM_MD5="d649df8cc81d5bd876826465289f764b" +CHECKSUM_RMD160="32a9159d7652f90f2e76472c524d24b31c81f31e" +CHECKSUM_SHA512="292bc7176b42e13851640839b7c50c162d699d29533ad17f2bfd6809a0b8019710e3ac1a0a295547430e8f3c3f024d2a26b3896f48f76c0a370a94d99955f012" + if [ $targetArchitecture != x86_gcc2 ]; then PATCHES="vision-0.9.7-gcc4.patch" fi @@ -25,6 +30,7 @@ BUILD_REQUIRES=" " BUILD_PREREQUIRES=" haiku_devel >= $haikuVersion + cmd:find cmd:gcc cmd:ld cmd:make 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..466624ab1 --- /dev/null +++ b/haiku-libs/haikuwebkit/haikuwebkit-1.2.5.recipe @@ -0,0 +1,106 @@ +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" +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" + +CHECKSUM_SIZE="599979083" +CHECKSUM_MD5="044299eacba255ec05a97865543d2f1b" +CHECKSUM_RMD160="11db0c4fcdc2c049867ef9480c34fa020ad6b49d" +CHECKSUM_SHA512="60b0d83f98f732df3fa779581766570598e3cf0f7500bbf70322a61c53f29ad06a7781994779038844052ddf61752acd305eef6739c7917ca8e54b56503ff493" + +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/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/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..292161fd7 --- /dev/null +++ b/media-fonts/terminus_ttf/terminus_ttf-4.38.2.recipe @@ -0,0 +1,35 @@ +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" +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 + " + +CHECKSUM_SIZE="265256" +CHECKSUM_MD5="d242830e51895bd9ca7396a2ea847d54" +CHECKSUM_RMD160="31bc31572f01ede3d4bc349ff8a74be96f9cb9c1" +CHECKSUM_SHA512="6dc81400b200288319eb0ef39482a238c67aa3e75d80f87a677414e87ee62b2abbba34d0e187aea428245b6a82044f10f27d489c6cb411cfde18098b5b558ca5" + +BUILD() +{ + echo "No building required." +} + +INSTALL() +{ + FONTDIR=$fontsDir/terminus-ttf + mkdir -p ${FONTDIR} + cp -r *.ttf ${FONTDIR}/ +} diff --git a/sci-libs/fftw/fftw-3.3.3.recipe b/sci-libs/fftw/fftw-3.3.3.recipe new file mode 100644 index 000000000..6b87212d4 --- /dev/null +++ b/sci-libs/fftw/fftw-3.3.3.recipe @@ -0,0 +1,69 @@ +SUMMARY="Fast C library for the Discrete Fourier Transform" +DESCRIPTION=" +FFTW is a C subroutine library for computing the discrete Fourier transform \ +(DFT) in one or more dimensions, of arbitrary input size, and of both real and \ +complex data (as well as of even/odd data, i.e. the discrete cosine/sine \ +transforms or DCT/DST). We believe that FFTW, which is free software, should \ +become the FFT library of choice for most applications. +Our benchmarks, performed on on a variety of platforms, show that FFTW's \ +performance is typically superior to that of other publicly available FFT \ +software, and is even competitive with vendor-tuned codes. In contrast to \ +vendor-tuned codes, however, FFTW's performance is portable: the same program \ +will perform well on most architectures without modification. Hence the name, \ +FFTW, which stands for the somewhat whimsical title of Fastest Fourier \ +Transform in the West. +" +HOMEPAGE="http://www.fftw.org/" +SRC_URI="http://www.fftw.org/fftw-3.3.3.tar.gz" +CHECKSUM_SIZE="3920661" +CHECKSUM_MD5="0a05ca9c7b3bfddc8278e7c40791a1c2" +CHECKSUM_RMD160="f45e97f06ffaf59b5022ea5e33ef240cb5e84e74" +CHECKSUM_SHA512="1d88b6376ba8c15cceafd3381de1d181a974b921b72b31dd89c297e5771e8d665aa3c121ef2504a70e7b0bb562b1e0612ac2a02121c412d27df06c4d687507c4" +LICENSE="GNU GPL v2" +COPYRIGHT=" + 2003, 2007-2011 Matteo Frigo + 2003, 2007-2011 Massachusetts Institute of Technology + " +REVISION="1" +ARCHITECTURES="?x86 ?x86_gcc2 ?x86_64" +SECONDARY_ARCHITECTURES="?x86_gcc2 ?x86" + +PROVIDES=" + lib:libfftw$secondaryArchSuffix = $portVersion + cmd:fftw_wisdom + cmd:fftw_wisdom_to_conf + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +BUILD() +{ + runConfigure ./configure + make +} + +INSTALL() +{ + make install + prepareInstalledDevelLib libfftw3 + packageEntries devel $developDir +} + +PROVIDES_devel=" + devel:libfftw$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + lib:libfftw$secondaryArchSuffix == $portVersion base + " 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..13f3873fe --- /dev/null +++ b/sys-devel/binutils/binutils-2.24_2014_03_19.recipe @@ -0,0 +1,179 @@ +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" +REVISION="4" +LICENSE=" + GNU GPL v2 + GNU LGPL v2 + " +COPYRIGHT="1988-2013 Free Software Foundation, Inc." + +CHECKSUM_SIZE="155931258" +CHECKSUM_MD5="799058d91d7e8772dc78c64d4f6722f3" +CHECKSUM_RMD160="b81cf4d5a551408587d0e9209f399226c2661ccf" +CHECKSUM_SHA512="3b8b41c08c4c06137835fc88ff996597d75e4ace7e24f5310d0daaf0ccb73c92a69c11f15801bf561c310a44f0721930ba3b598c37a7f4fa2c411931a8fb8205" + +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=" + 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 + " +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 +} + +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/gcc/gcc-4.8.2_2014_01_28.recipe b/sys-devel/gcc/gcc-4.8.2_2014_03_20.recipe similarity index 89% rename from sys-devel/gcc/gcc-4.8.2_2014_01_28.recipe rename to sys-devel/gcc/gcc-4.8.2_2014_03_20.recipe index 00a6a525e..29733cd8e 100644 --- a/sys-devel/gcc/gcc-4.8.2_2014_01_28.recipe +++ b/sys-devel/gcc/gcc-4.8.2_2014_03_20.recipe @@ -3,16 +3,21 @@ DESCRIPTION=" Standard compiler for x86 platform. " HOMEPAGE="http://gcc.gnu.org" + +srcGitRev="c20a732df8f8b6d0f32c872817f3a0498a5c4761" +SRC_URI="https://github.com/haiku/buildtools/archive/$srcGitRev.tar.gz" +REVISION="1" LICENSE=" GNU GPL v2 GNU LGPL v2 " COPYRIGHT="1988-2013 Free Software Foundation, Inc." -SRC_URI=" - git+file://$portBaseDir/../binutils/download/buildtools.git#66becd8fe7e99054b190c181b063933310718179 - git+git://github.com/haiku/buildtools.git#66becd8fe7e99054b190c181b063933310718179 - " -REVISION="2" + +CHECKSUM_SIZE="155931258" +CHECKSUM_MD5="799058d91d7e8772dc78c64d4f6722f3" +CHECKSUM_RMD160="b81cf4d5a551408587d0e9209f399226c2661ccf" +CHECKSUM_SHA512="3b8b41c08c4c06137835fc88ff996597d75e4ace7e24f5310d0daaf0ccb73c92a69c11f15801bf561c310a44f0721930ba3b598c37a7f4fa2c411931a8fb8205" + ARCHITECTURES="x86 x86_64" if [ $effectiveTargetArchitecture != x86_gcc2 ]; then # x86_gcc2 is fine as primary target architecture as long as we're building @@ -54,7 +59,7 @@ BUILD_PREREQUIRES=" cmd:xargs " -SOURCE_DIR="gcc-$portVersion/gcc" +SOURCE_DIR="buildtools-$srcGitRev/gcc" sourceDir=$(pwd) relativeInstallDir="develop/tools$secondaryArchSubDir" diff --git a/sys-devel/llvm/llvm-3.2.recipe b/sys-devel/llvm/llvm-3.2.recipe index 88de60727..c55a926ad 100644 --- a/sys-devel/llvm/llvm-3.2.recipe +++ b/sys-devel/llvm/llvm-3.2.recipe @@ -58,6 +58,7 @@ BUILD_PREREQUIRES=" cmd:aclocal cmd:autoconf cmd:automake + cmd:find cmd:gcc$secondaryArchSuffix cmd:ld$secondaryArchSuffix cmd:libtoolize diff --git a/sys-devel/llvm/llvm-3.3.recipe b/sys-devel/llvm/llvm-3.3.recipe index e7aa7515a..64c605a4b 100644 --- a/sys-devel/llvm/llvm-3.3.recipe +++ b/sys-devel/llvm/llvm-3.3.recipe @@ -31,6 +31,7 @@ BUILD_PREREQUIRES=" cmd:aclocal cmd:autoconf cmd:automake + cmd:find cmd:gcc$secondaryArchSuffix cmd:ld$secondaryArchSuffix cmd:libtoolize diff --git a/sys-devel/llvm/llvm-3.4.recipe b/sys-devel/llvm/llvm-3.4.recipe index 10e107e1e..028146381 100644 --- a/sys-devel/llvm/llvm-3.4.recipe +++ b/sys-devel/llvm/llvm-3.4.recipe @@ -58,6 +58,7 @@ BUILD_PREREQUIRES=" cmd:aclocal cmd:autoconf cmd:automake + cmd:find cmd:gcc$secondaryArchSuffix cmd:ld$secondaryArchSuffix cmd:libtoolize 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..d7a855ff0 --- /dev/null +++ b/sys-libs/mesa/mesa-10.1.0.recipe @@ -0,0 +1,158 @@ +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_MD5="3ec43f79dbcd9aa2a4a27bf1f51655b6" +CHECKSUM_SIZE="6908005" +CHECKSUM_RMD160="3a7183d8ace0f5b5546e86839cbc46caa6efe9ce" +CHECKSUM_SHA512="a8c57e50c360f3d4ebc850de6b24b87175100cedcbb48ceace2b228f654d29ffa97ec24118ad8e0f281fee80750568fdb2f8b58866713424889c69387e3a6adb" +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/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 +