Merged haikuports/haikuports into master

This commit is contained in:
julien lepiller
2014-03-22 11:40:38 +01:00
28 changed files with 2636 additions and 163 deletions

View File

@@ -0,0 +1,125 @@
From 5601acb5afe236cc83a2577a5fb36ef478944bab Mon Sep 17 00:00:00 2001
From: Jonathan Schleifer <js@webkeks.org>
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, &current_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

View File

@@ -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
}

View File

@@ -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/<arch>/, 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.
"

View File

@@ -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
}

View File

@@ -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
"

View File

@@ -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
"

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -0,0 +1,711 @@
From b06b5f1a27ce987aba1de80599a8082065399dde Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
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 <bluetooth/bluetooth.h>
#include <bluetooth/rfcomm.h>
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

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
"

View File

@@ -1,151 +1,4 @@
From 71a1a0a1f751e4c47f0d58a1c7a207051f0235c1 Mon Sep 17 00:00:00 2001
From: Brad King <brad.king@kitware.com>
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 <prefix>/include/..., 2013-10-08).
Inspired-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
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 <pulkomandy@pulkomandy.tk>
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 <pulkomandy@pulkomandy.tk>
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 <pulkomandy@pulkomandy.tk>
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 <brad.king@kitware.com>
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 <pulkomandy@pulkomandy.tk>
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 <pulkomandy@pulkomandy.tk>
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()

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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

View File

@@ -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
"

View File

@@ -0,0 +1,29 @@
From 77b90ebb44229f5e920e95d517cd153c5c3c0ce8 Mon Sep 17 00:00:00 2001
From: Jonathan Schleifer <js@webkeks.org>
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

View File

@@ -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}/
}

View File

@@ -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
"

View File

@@ -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=<path> 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.
"

View File

@@ -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"

View File

@@ -58,6 +58,7 @@ BUILD_PREREQUIRES="
cmd:aclocal
cmd:autoconf
cmd:automake
cmd:find
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:libtoolize

View File

@@ -31,6 +31,7 @@ BUILD_PREREQUIRES="
cmd:aclocal
cmd:autoconf
cmd:automake
cmd:find
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:libtoolize

View File

@@ -58,6 +58,7 @@ BUILD_PREREQUIRES="
cmd:aclocal
cmd:autoconf
cmd:automake
cmd:find
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:libtoolize

View File

@@ -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
"

View File

@@ -0,0 +1,65 @@
From 14ba24e39946117b05fd97a077bad7eeda8790f5 Mon Sep 17 00:00:00 2001
From: Alexander von Gluck IV <kallisti5@unixzen.com>
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