diff --git a/app-arch/zip/zip-3.0.recipe b/app-arch/zip/zip-3.0.recipe index ab36b1ce5..9680e4ed4 100644 --- a/app-arch/zip/zip-3.0.recipe +++ b/app-arch/zip/zip-3.0.recipe @@ -24,8 +24,10 @@ PROVIDES=" " REQUIRES=" haiku >= $haikuVersion + lib:libz " BUILD_REQUIRES=" + devel:libz " BUILD_PREREQUIRES=" haiku_devel >= $haikuVersion diff --git a/app-emulation/virtualbox-guest-additions/patches/vbox-4.3.53_svn.patch b/app-emulation/virtualbox-guest-additions/patches/virtualbox_guest_additions-4.3.53_svn.patchset similarity index 87% rename from app-emulation/virtualbox-guest-additions/patches/vbox-4.3.53_svn.patch rename to app-emulation/virtualbox-guest-additions/patches/virtualbox_guest_additions-4.3.53_svn.patchset index da8183198..3880e39ab 100644 --- a/app-emulation/virtualbox-guest-additions/patches/vbox-4.3.53_svn.patch +++ b/app-emulation/virtualbox-guest-additions/patches/virtualbox_guest_additions-4.3.53_svn.patchset @@ -1,8 +1,14 @@ -Index: trunk/Config.kmk -=================================================================== ---- trunk/Config.kmk (revision 51740) -+++ trunk/Config.kmk (working copy) -@@ -1365,7 +1365,7 @@ +From ddbf13536ae03b14c3c8b985b7ebbcafd41fe6d5 Mon Sep 17 00:00:00 2001 +From: Sergei Reznikov +Date: Tue, 2 Dec 2014 14:59:12 +0300 +Subject: Haiku support + + +diff --git a/Config.kmk b/Config.kmk +index 738c808..8a4d0af 100644 +--- a/Config.kmk ++++ b/Config.kmk +@@ -1372,7 +1372,7 @@ ifndef VBOX_GCC_TOOL VBOX_GCC_TOOL := GXX4MACHO else ifeq ($(KBUILD_TARGET),haiku) # Haiku shouldn't pass '-r' to the linker by default @@ -11,7 +17,7 @@ Index: trunk/Config.kmk else ifeq ($(KBUILD_TARGET),solaris) VBOX_GCC_TOOL := GXX3PLAIN VBOX_GCC32_TOOL := GXX3PLAIN -@@ -1506,8 +1506,14 @@ +@@ -1513,8 +1513,14 @@ VBOX_GCC_WARN_PEDANTIC = -Wshadow $(VBOX_GCC_WARN) -Wno-long-long ifdef VBOX_WITH_MASOCHISTIC_WARNINGS VBOX_GCC_WARN_PEDANTIC += -Wunused-variable -Wunused-function -Wunused-label -Wunused-parameter endif @@ -28,7 +34,7 @@ Index: trunk/Config.kmk ifeq ($(KBUILD_TARGET),win) VBOX_C_CXX_FLAGS_NO_UNUSED_PARAMETERS = #-Wdxxxx else -@@ -2771,17 +2777,18 @@ +@@ -2842,17 +2848,18 @@ ifeq ($(KBUILD_HOST),haiku) # @param 1 The file to add resources to. # @param 2 The resource files. # @param 3 The target name. @@ -56,7 +62,7 @@ Index: trunk/Config.kmk VBOX_HAIKU_XRES_SETVER_CMDS ?= $(if $(eq $(tool_do),LINK_PROGRAM),$(call VBOX_HAIKU_XRES_SETVER_FN,$(out),$($(target)_RSRCS),$(target)),) endif -@@ -3508,7 +3515,7 @@ +@@ -3598,7 +3605,7 @@ endif # FreeBSD ifeq ($(KBUILD_TARGET),haiku) ## The Haiku include directories @@ -65,7 +71,7 @@ Index: trunk/Config.kmk TEMPLATE_VBOXR0DRV_TOOL = $(VBOX_GCC_TOOL) TEMPLATE_VBOXR0DRV_LDTOOL = $(VBOX_GCC_TOOL) -@@ -3519,13 +3526,13 @@ +@@ -3609,13 +3616,13 @@ TEMPLATE_VBOXR0DRV_LDFLAGS = -shared -no-undefined -dc -dy -lroot -r TEMPLATE_VBOXR0DRV_CFLAGS = -fno-PIC \ $(VBOX_GCC_WARN) -Wstrict-prototypes $(VBOX_GCC_Wno-pointer-sign) -Wno-sign-compare \ $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration @@ -82,7 +88,7 @@ Index: trunk/Config.kmk -Wformat \ -O2 -nodefaultlibs -fno-omit-frame-pointer -fno-strict-aliasing -fno-common -fno-exceptions -fno-rtti TEMPLATE_VBOXR0DRV_CXXFLAGS.x86 = $(TEMPLATE_VBOXR0DRV_CFLAGS.x86) -fno-exceptions -fno-rtti -@@ -3628,7 +3635,9 @@ +@@ -3723,7 +3730,9 @@ ifeq ($(KBUILD_TARGET),win) else # the gcc guys TEMPLATE_VBOXR3EXE_TOOL = $(VBOX_GCC_TOOL) TEMPLATE_VBOXR3EXE_CXXFLAGS = -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_OPT) $(VBOX_GCC_FP) -fno-strict-aliasing $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_fvisibility-inlines-hidden) @@ -92,7 +98,7 @@ Index: trunk/Config.kmk TEMPLATE_VBOXR3EXE_CXXFLAGS.amd64 = -m64 TEMPLATE_VBOXR3EXE_CXXFLAGS.sparc32 = -m32 TEMPLATE_VBOXR3EXE_CXXFLAGS.sparc64 = -m64 -@@ -3650,7 +3659,9 @@ +@@ -3745,7 +3754,9 @@ TEMPLATE_VBOXR3EXE_OBJCXXFLAGS.x86 = $(TEMPLATE_VBOXR3EXE_CXXFLAGS.x86) TEMPLATE_VBOXR3EXE_OBJCXXFLAGS.amd64 = $(TEMPLATE_VBOXR3EXE_CXXFLAGS.amd64) TEMPLATE_VBOXR3EXE_OBJCXXFLAGS.debug = $(TEMPLATE_VBOXR3EXE_CXXFLAGS.debug) TEMPLATE_VBOXR3EXE_OBJCXXFLAGS.kprofile= $(TEMPLATE_VBOXR3EXE_CXXFLAGS.kprofile) @@ -102,7 +108,7 @@ Index: trunk/Config.kmk TEMPLATE_VBOXR3EXE_LDFLAGS.amd64 = -m64 TEMPLATE_VBOXR3EXE_LDFLAGS.sparc32 = -m32 TEMPLATE_VBOXR3EXE_LDFLAGS.sparc64 = -m64 -@@ -3676,9 +3687,11 @@ +@@ -3771,9 +3782,11 @@ TEMPLATE_VBOXR3EXE_LDFLAGS.darwin.x86 = -read_only_relocs suppress TEMPLATE_VBOXR3EXE_CXXFLAGS := $(filter-out -pedantic,$(TEMPLATE_VBOXR3EXE_CXXFLAGS)) -fdollars-in-identifiers # annoying gcc option precedence. endif else ifeq ($(KBUILD_TARGET),haiku) @@ -116,7 +122,7 @@ Index: trunk/Config.kmk TEMPLATE_VBOXR3EXE_LIBPATH += \ /boot/common/lib # Haiku uses PIC by default... -@@ -4887,7 +4900,9 @@ +@@ -5024,7 +5037,9 @@ else # (gcc of some kind ) TEMPLATE_VBoxBldProg_TOOL = GXX3 TEMPLATE_VBoxBldProg_CFLAGS = -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC_Wno-variadic-macros) @@ -126,7 +132,7 @@ Index: trunk/Config.kmk TEMPLATE_VBoxBldProg_CFLAGS.sparc32 = -m32 TEMPLATE_VBoxBldProg_CFLAGS.amd64 = -m64 TEMPLATE_VBoxBldProg_CFLAGS.sparc64 = -m64 -@@ -4895,7 +4910,9 @@ +@@ -5032,7 +5047,9 @@ TEMPLATE_VBoxBldProg_CFLAGS.release = -O2 -fno-omit-frame-pointer -fno-stri TEMPLATE_VBoxBldProg_CFLAGS.profile = $(TEMPLATE_VBoxBldProg_CXXFLAGS.profile) TEMPLATE_VBoxBldProg_CFLAGS.kprofile = $(TEMPLATE_VBoxBldProg_CXXFLAGS.kprofile) TEMPLATE_VBoxBldProg_CXXFLAGS = -g $(VBOX_GCC_pipe) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) @@ -136,7 +142,7 @@ Index: trunk/Config.kmk TEMPLATE_VBoxBldProg_CXXFLAGS.sparc32 = -m32 TEMPLATE_VBoxBldProg_CXXFLAGS.amd64 = -m64 TEMPLATE_VBoxBldProg_CXXFLAGS.sparc64 = -m64 -@@ -4914,7 +4931,9 @@ +@@ -5051,7 +5068,9 @@ TEMPLATE_VBoxBldProg_OBJCXXFLAGS.amd64 = $(TEMPLATE_VBoxBldProg_CXXFLAGS.amd64 TEMPLATE_VBoxBldProg_OBJCXXFLAGS.release = $(TEMPLATE_VBoxBldProg_CXXFLAGS.release) TEMPLATE_VBoxBldProg_OBJCXXFLAGS.profile = $(TEMPLATE_VBoxBldProg_CXXFLAGS.profile) TEMPLATE_VBoxBldProg_OBJCXXFLAGS.kprofile= $(TEMPLATE_VBoxBldProg_CXXFLAGS.kprofile) @@ -146,7 +152,7 @@ Index: trunk/Config.kmk TEMPLATE_VBoxBldProg_LDFLAGS.sparc32 = -m32 TEMPLATE_VBoxBldProg_LDFLAGS.amd64 = -m64 TEMPLATE_VBoxBldProg_LDFLAGS.sparc64 = -m64 -@@ -4956,7 +4975,7 @@ +@@ -5093,7 +5112,7 @@ TEMPLATE_VBoxBldProg_LDFLAGS.darwin = $(VBOX_DARWIN_DEF_SDK_LDFLAGS) endif TEMPLATE_VBoxBldProg_LIBS = else ifeq ($(KBUILD_HOST),haiku) @@ -155,970 +161,11 @@ Index: trunk/Config.kmk TEMPLATE_VBoxBldProg_LIBS = network iconv TEMPLATE_VBoxBldProg_LIBPATH += \ /boot/common/lib -Index: trunk/src/VBox/Additions/haiku/VBoxMouse/Makefile.kmk -=================================================================== ---- trunk/src/VBox/Additions/haiku/VBoxMouse/Makefile.kmk (revision 51740) -+++ trunk/src/VBox/Additions/haiku/VBoxMouse/Makefile.kmk (working copy) -@@ -52,7 +52,7 @@ - # R1 will need gcc2-built input_server add-ons. - - PROGRAMS += VBoxMouse --VBoxMouse_TEMPLATE = VBOXGUESTR3EXE -+VBoxMouse_TEMPLATE = NewVBoxGuestR3Exe - VBoxMouse_DEFS = VBOX_WITH_HGCM LOG_TO_BACKDOOR - VBoxMouse_DEFS += LOG_ENABLED - VBoxMouse_INCS = ../include -@@ -67,7 +67,7 @@ - /system/servers/input_server - - PROGRAMS += VBoxMouseFilter --VBoxMouseFilter_TEMPLATE = VBOXGUESTR3EXE -+VBoxMouseFilter_TEMPLATE = NewVBoxGuestR3Exe - VBoxMouseFilter_DEFS = VBOX_WITH_HGCM LOG_TO_BACKDOOR - VBoxMouseFilter_DEFS += LOG_ENABLED - VBoxMouseFilter_INCS = ../include -Index: trunk/src/VBox/Additions/haiku/VBoxTray/VBoxGuestApplication.cpp -=================================================================== ---- trunk/src/VBox/Additions/haiku/VBoxTray/VBoxGuestApplication.cpp (revision 51740) -+++ trunk/src/VBox/Additions/haiku/VBoxTray/VBoxGuestApplication.cpp (working copy) -@@ -75,6 +75,7 @@ - status_t err; - - err = VBoxGuestDeskbarView::AddToDeskbar(); -+ printf("error 0x%08lx\n", err); - LogFlow(("VBoxGuestDeskbarView::ReadyToRun: AddToDeskbar returned 0x%08lx\n", err)); - exit(0); - } -Index: trunk/src/VBox/Additions/haiku/VBoxTray/Makefile.kmk -=================================================================== ---- trunk/src/VBox/Additions/haiku/VBoxTray/Makefile.kmk (revision 51740) -+++ trunk/src/VBox/Additions/haiku/VBoxTray/Makefile.kmk (working copy) -@@ -51,7 +51,7 @@ - # single bin will cause problems loading gcc4 binary from a gcc2-built Deskbar! - - PROGRAMS += VBoxTray --VBoxTray_TEMPLATE = VBOXGUESTR3EXE -+VBoxTray_TEMPLATE = NewVBoxGuestR3Exe - VBoxTray_DEFS = VBOX_WITH_HGCM LOG_TO_BACKDOOR - VBoxTray_DEFS += LOG_ENABLED - VBoxTray_INCS = ../include -Index: trunk/src/VBox/Additions/haiku/VBoxTray/VBoxGuestDeskbarView.cpp -=================================================================== ---- trunk/src/VBox/Additions/haiku/VBoxTray/VBoxGuestDeskbarView.cpp (revision 51740) -+++ trunk/src/VBox/Additions/haiku/VBoxTray/VBoxGuestDeskbarView.cpp (working copy) -@@ -47,6 +47,7 @@ - * Header Files * - *******************************************************************************/ - #include -+#include - #include - #include - #include -@@ -83,7 +84,8 @@ - VBoxGuestDeskbarView::VBoxGuestDeskbarView() - : BView(BRect(0, 0, 15, 15), VIEWNAME, B_FOLLOW_NONE, - B_WILL_DRAW | B_NAVIGABLE), -- fIcon(NULL), fClipboardService(NULL), fDisplayService(NULL) -+ fIcon(NULL), fInitStatus(B_NO_INIT), -+ fClipboardService(NULL), fDisplayService(NULL) - { - _Init(); - } -@@ -91,7 +93,8 @@ - - VBoxGuestDeskbarView::VBoxGuestDeskbarView(BMessage *archive) - : BView(archive), -- fIcon(NULL) -+ fIcon(NULL), fInitStatus(B_NO_INIT), -+ fClipboardService(NULL), fDisplayService(NULL) - { - archive->PrintToStream(); - _Init(archive); -@@ -106,7 +109,13 @@ - fClipboardService->Disconnect(); - delete fClipboardService; - } -- VbglR3Term(); -+ if (fDisplayService) -+ { -+ //fDisplayService->Disconnect(); -+ delete fDisplayService; -+ } -+ if (fInitStatus == B_OK) -+ VbglR3Term(); - } - - -@@ -165,8 +174,10 @@ - void VBoxGuestDeskbarView::DetachedFromWindow() - { - BMessage message(B_QUIT_REQUESTED); -- fClipboardService->MessageReceived(&message); -- fDisplayService->MessageReceived(&message); -+ if (fClipboardService) -+ fClipboardService->MessageReceived(&message); -+ if (fDisplayService) -+ fDisplayService->MessageReceived(&message); - } - - -@@ -197,7 +208,7 @@ - if (message->what == B_QUIT_REQUESTED) - RemoveFromDeskbar(); - else -- BHandler::MessageReceived(message); -+ BView::MessageReceived(message); - } - - -@@ -217,7 +228,9 @@ - return err; - - BPath p(&info.ref); -- return deskbar.AddItem(&info.ref); -+ printf("%s:%s\n", __FUNCTION__, p.Path()); -+ int32 id; -+ return deskbar.AddItem(&info.ref, &id); - } - - -@@ -260,14 +273,15 @@ - fIcon = BTranslationUtils::GetBitmap(&mem); - } - -- int rc = RTR3InitDll(RTR3INIT_FLAGS_UNOBTRUSIVE); -+ int rc = RTR3InitDll(RTR3INIT_FLAGS_SUPLIB | RTR3INIT_FLAGS_UNOBTRUSIVE | RTR3INIT_FLAGS_UTF8_ARGV); - if (RT_SUCCESS(rc)) - { - rc = VbglR3Init(); - if (RT_SUCCESS(rc)) - { - fClipboardService = new VBoxClipboardService(); -- fDisplayService = new VBoxDisplayService(); -+ //fDisplayService = new VBoxDisplayService(); -+ fInitStatus = B_OK; - } - else - LogRel(("VBoxGuestDeskbarView::_init VbglR3Init failed. rc=%d\n", rc)); -@@ -278,8 +292,10 @@ - } - - -+extern "C" { - RTDECL(BView*) instantiate_deskbar_item() - { -+ printf("%s()\n", __FUNCTION__); - return new VBoxGuestDeskbarView(); - } -- -+} // C -Index: trunk/src/VBox/Additions/haiku/VBoxTray/VBoxGuestDeskbarView.h -=================================================================== ---- trunk/src/VBox/Additions/haiku/VBoxTray/VBoxGuestDeskbarView.h (revision 51740) -+++ trunk/src/VBox/Additions/haiku/VBoxTray/VBoxGuestDeskbarView.h (working copy) -@@ -88,6 +88,7 @@ - status_t _Init(BMessage *archive = NULL); - BBitmap *fIcon; - -+ status_t fInitStatus; - VBoxClipboardService *fClipboardService; - VBoxDisplayService *fDisplayService; - }; -Index: trunk/src/VBox/Additions/haiku/SharedFolders/lock.h -=================================================================== ---- trunk/src/VBox/Additions/haiku/SharedFolders/lock.h (revision 51740) -+++ trunk/src/VBox/Additions/haiku/SharedFolders/lock.h (working copy) -@@ -64,7 +64,7 @@ - const char* name; - struct rw_lock_waiter* waiters; - thread_id holder; -- vint32 count; -+ int32 count; - int32 owner_count; - int16 active_readers; - // Only > 0 while a writer is waiting: number -Index: trunk/src/VBox/Additions/haiku/SharedFolders/vboxsf.c -=================================================================== ---- trunk/src/VBox/Additions/haiku/SharedFolders/vboxsf.c (revision 51740) -+++ trunk/src/VBox/Additions/haiku/SharedFolders/vboxsf.c (working copy) -@@ -55,6 +55,7 @@ - - status_t init_module(void) - { -+ int rc; - #if 0 - /* @todo enable this soon */ - int rc = get_module(VBOXGUEST_MODULE_NAME, (module_info **)&g_VBoxGuest); -@@ -98,7 +99,10 @@ - return B_ERROR; - } - -- if (RT_FAILURE(vboxInit())) -+ rc = vboxInit(); -+ dprintf("rc=%d\n", rc); -+ if (RT_FAILURE(rc)) -+ //if (RT_FAILURE(vboxInit())) - { - dprintf("vboxInit failed\n"); - return B_ERROR; -@@ -136,6 +140,7 @@ - - PSHFLSTRING make_shflstring(const char* const s) - { -+ PSHFLSTRING rv; - int len = strlen(s); - if (len > 0xFFFE) - { -@@ -143,7 +148,7 @@ - return NULL; - } - -- PSHFLSTRING rv = malloc(sizeof(SHFLSTRING) + len); -+ rv = malloc(sizeof(SHFLSTRING) + len); - if (!rv) - return NULL; - -@@ -194,12 +199,14 @@ - - PSHFLSTRING build_path(vboxsf_vnode* dir, const char* const name) - { -+ size_t len; -+ PSHFLSTRING rv; - dprintf("*** build_path(%p, %p)\n", dir, name); - if (!dir || !name) - return NULL; - -- size_t len = dir->path->u16Length + strlen(name) + 1; -- PSHFLSTRING rv = malloc(sizeof(SHFLSTRING) + len); -+ len = dir->path->u16Length + strlen(name) + 1; -+ rv = malloc(sizeof(SHFLSTRING) + len); - if (rv) - { - strcpy(rv->String.utf8, dir->path->String.utf8); -@@ -214,6 +221,10 @@ - - status_t mount(fs_volume *volume, const char *device, uint32 flags, const char *args, ino_t *_rootVnodeID) - { -+ PSHFLSTRING sharename; -+ vboxsf_volume* vbsfvolume; -+ int rv; -+ - if (device) - { - dprintf(FS_NAME ": trying to mount a real device as a vbox share is silly\n"); -@@ -222,16 +233,17 @@ - - dprintf(FS_NAME ": mount(%s)\n", args); - -- PSHFLSTRING sharename = make_shflstring(args); -+ sharename = make_shflstring(args); - -- vboxsf_volume* vbsfvolume = malloc(sizeof(vboxsf_volume)); -+ vbsfvolume = malloc(sizeof(vboxsf_volume)); - volume->private_volume = vbsfvolume; -- int rv = vboxCallMapFolder(&g_clientHandle, sharename, &(vbsfvolume->map)); -+ rv = vboxCallMapFolder(&g_clientHandle, sharename, &(vbsfvolume->map)); - free(sharename); - - if (rv == 0) - { - vboxsf_vnode* root_vnode; -+ status_t rs; - - PSHFLSTRING name = make_shflstring(""); - if (!name) -@@ -240,7 +252,7 @@ - return B_NO_MEMORY; - } - -- status_t rs = vboxsf_new_vnode(&vbsfvolume->map, name, name, &root_vnode); -+ rs = vboxsf_new_vnode(&vbsfvolume->map, name, name, &root_vnode); - dprintf(FS_NAME ": allocated %p (path=%p name=%p)\n", root_vnode, root_vnode->path, root_vnode->name); - - if (rs != B_OK) -@@ -323,12 +335,13 @@ - vboxsf_volume* volume = _volume->private_volume; - vboxsf_vnode* vnode = _vnode->private_node; - SHFLCREATEPARMS params; -+ int rc; - - RT_ZERO(params); - params.Handle = SHFL_HANDLE_NIL; - params.CreateFlags = SHFL_CF_DIRECTORY | SHFL_CF_ACT_OPEN_IF_EXISTS | SHFL_CF_ACT_FAIL_IF_NEW | SHFL_CF_ACCESS_READ; - -- int rc = vboxCallCreate(&g_clientHandle, &volume->map, vnode->path, ¶ms); -+ rc = vboxCallCreate(&g_clientHandle, &volume->map, vnode->path, ¶ms); - if (RT_SUCCESS(rc)) - { - if (params.Result == SHFL_FILE_EXISTS && params.Handle != SHFL_HANDLE_NIL) -@@ -358,17 +371,23 @@ - status_t vboxsf_read_dir_1(vboxsf_volume* volume, vboxsf_vnode* vnode, vboxsf_dir_cookie* cookie, - struct dirent* buffer, size_t bufferSize) - { -+ PSHFLSTRING name1; -+ int rv; -+ vboxsf_vnode* new_vnode; -+ size_t size; -+ - dprintf("%p, %d, %p\n", cookie, cookie->has_more_files, cookie->buffer); - if (!cookie->has_more_files) - return B_ENTRY_NOT_FOUND; - - if (!cookie->buffer) - { -+ int rc; - cookie->buffer_length = 16384; - cookie->buffer_start = cookie->buffer = malloc(cookie->buffer_length); - -- int rc = vboxCallDirInfo(&g_clientHandle, &volume->map, cookie->handle, cookie->path, 0, cookie->index, -- &cookie->buffer_length, cookie->buffer, &cookie->num_files); -+ rc = vboxCallDirInfo(&g_clientHandle, &volume->map, cookie->handle, cookie->path, 0, cookie->index, -+ &cookie->buffer_length, cookie->buffer, &cookie->num_files); - - if (rc != 0 && rc != VERR_NO_MORE_FILES) - { -@@ -393,15 +412,14 @@ - return B_BUFFER_OVERFLOW; - } - -- PSHFLSTRING name1 = clone_shflstring(&cookie->buffer->name); -+ name1 = clone_shflstring(&cookie->buffer->name); - if (!name1) - { - dprintf(FS_NAME ": make_shflstring() failed\n"); - return B_NO_MEMORY; - } - -- vboxsf_vnode* new_vnode; -- int rv = vboxsf_new_vnode(&volume->map, build_path(vnode, name1->String.utf8), name1, &new_vnode); -+ rv = vboxsf_new_vnode(&volume->map, build_path(vnode, name1->String.utf8), name1, &new_vnode); - if (rv != B_OK) - { - dprintf(FS_NAME ": vboxsf_new_vnode() failed\n"); -@@ -415,7 +433,7 @@ - buffer->d_reclen = sizeof(struct dirent) + cookie->buffer->name.u16Length; - strncpy(buffer->d_name, cookie->buffer->name.String.utf8, NAME_MAX); - -- size_t size = offsetof(SHFLDIRINFO, name.String) + cookie->buffer->name.u16Size; -+ size = offsetof(SHFLDIRINFO, name.String) + cookie->buffer->name.u16Size; - cookie->buffer = ((void*)cookie->buffer + size); - cookie->index++; - -@@ -504,22 +522,24 @@ - - status_t vboxsf_lookup(fs_volume* _volume, fs_vnode* dir, const char* name, ino_t* _id) - { -- dprintf(FS_NAME ": lookup %s\n", name); - vboxsf_volume* volume = _volume->private_volume; - SHFLCREATEPARMS params; -+ PSHFLSTRING path; -+ int rc; -+ dprintf(FS_NAME ": lookup %s\n", name); - - RT_ZERO(params); - params.Handle = SHFL_HANDLE_NIL; - params.CreateFlags = SHFL_CF_LOOKUP | SHFL_CF_ACT_FAIL_IF_NEW; - -- PSHFLSTRING path = build_path(dir->private_node, name); -+ path = build_path(dir->private_node, name); - if (!path) - { - dprintf(FS_NAME ": make_shflstring() failed\n"); - return B_NO_MEMORY; - } - -- int rc = vboxCallCreate(&g_clientHandle, &volume->map, path, ¶ms); -+ rc = vboxCallCreate(&g_clientHandle, &volume->map, path, ¶ms); - if (RT_SUCCESS(rc)) - { - if (params.Result == SHFL_FILE_EXISTS) -@@ -600,11 +620,12 @@ - { - vboxsf_volume* volume = _volume->private_volume; - vboxsf_vnode* vnode = _vnode->private_node; -+ SHFLCREATEPARMS params; -+ int rc; -+ vboxsf_file_cookie* cookie; - - dprintf(FS_NAME ": open %s (mode=%x)\n", vnode->path->String.utf8, openMode); - -- SHFLCREATEPARMS params; -- - RT_ZERO(params); - params.Handle = SHFL_HANDLE_NIL; - -@@ -637,14 +658,14 @@ - params.CreateFlags |= SHFL_CF_ACT_OPEN_IF_EXISTS; - } - -- int rc = vboxCallCreate(&g_clientHandle, &volume->map, vnode->path, ¶ms); -+ rc = vboxCallCreate(&g_clientHandle, &volume->map, vnode->path, ¶ms); - if (!RT_SUCCESS(rc)) - { - dprintf("vboxCallCreate returned %d\n", rc); - return vbox_err_to_haiku_err(rc); - } - -- vboxsf_file_cookie* cookie = malloc(sizeof(vboxsf_file_cookie)); -+ cookie = malloc(sizeof(vboxsf_file_cookie)); - if (!cookie) - { - dprintf("couldn't allocate file cookie\n"); -@@ -665,6 +686,9 @@ - vboxsf_volume* volume = _volume->private_volume; - - SHFLCREATEPARMS params; -+ PSHFLSTRING path; -+ int rc; -+ vboxsf_file_cookie* cookie; - - RT_ZERO(params); - params.Handle = SHFL_HANDLE_NIL; -@@ -698,8 +722,8 @@ - params.CreateFlags |= SHFL_CF_ACT_OPEN_IF_EXISTS; - } - -- PSHFLSTRING path = build_path(_dir->private_node, name); -- int rc = vboxCallCreate(&g_clientHandle, &volume->map, path, ¶ms); -+ path = build_path(_dir->private_node, name); -+ rc = vboxCallCreate(&g_clientHandle, &volume->map, path, ¶ms); - - if (!RT_SUCCESS(rc)) - { -@@ -708,7 +732,7 @@ - return vbox_err_to_haiku_err(rc); - } - -- vboxsf_file_cookie* cookie = malloc(sizeof(vboxsf_file_cookie)); -+ cookie = malloc(sizeof(vboxsf_file_cookie)); - if (!cookie) - { - dprintf("couldn't allocate file cookie\n"); -@@ -761,13 +785,16 @@ - vboxsf_volume* volume = _volume->private_volume; - vboxsf_vnode* vnode = _vnode->private_node; - vboxsf_file_cookie* cookie = _cookie; -+ uint32_t l; -+ void* other_buffer; -+ int rc; - - if (*length > 0xFFFFFFFF) - *length = 0xFFFFFFFF; - -- uint32_t l = *length; -- void* other_buffer = malloc(l); /* @todo map the user memory into kernel space here for efficiency */ -- int rc = vboxCallRead(&g_clientHandle, &volume->map, cookie->handle, pos, &l, other_buffer, false); -+ l = *length; -+ other_buffer = malloc(l); /* @todo map the user memory into kernel space here for efficiency */ -+ rc = vboxCallRead(&g_clientHandle, &volume->map, cookie->handle, pos, &l, other_buffer, false); - memcpy(buffer, other_buffer, l); - free(other_buffer); - -@@ -782,14 +809,17 @@ - vboxsf_volume* volume = _volume->private_volume; - vboxsf_vnode* vnode = _vnode->private_node; - vboxsf_file_cookie* cookie = _cookie; -+ uint32_t l; -+ void* other_buffer; -+ int rc; - - if (*length > 0xFFFFFFFF) - *length = 0xFFFFFFFF; - -- uint32_t l = *length; -- void* other_buffer = malloc(l); /* @todo map the user memory into kernel space here for efficiency */ -+ l = *length; -+ other_buffer = malloc(l); /* @todo map the user memory into kernel space here for efficiency */ - memcpy(other_buffer, buffer, l); -- int rc = vboxCallWrite(&g_clientHandle, &volume->map, cookie->handle, pos, &l, other_buffer, false); -+ rc = vboxCallWrite(&g_clientHandle, &volume->map, cookie->handle, pos, &l, other_buffer, false); - free(other_buffer); - - *length = l; -@@ -807,6 +837,8 @@ - status_t vboxsf_create_dir(fs_volume *_volume, fs_vnode *parent, const char *name, int perms) - { - vboxsf_volume* volume = _volume->private_volume; -+ PSHFLSTRING path; -+ int rc; - - SHFLCREATEPARMS params; - params.Handle = 0; -@@ -814,8 +846,8 @@ - params.CreateFlags = SHFL_CF_DIRECTORY | SHFL_CF_ACT_CREATE_IF_NEW | - SHFL_CF_ACT_FAIL_IF_EXISTS | SHFL_CF_ACCESS_READ; - -- PSHFLSTRING path = build_path(parent->private_node, name); -- int rc = vboxCallCreate(&g_clientHandle, &volume->map, path, ¶ms); -+ path = build_path(parent->private_node, name); -+ rc = vboxCallCreate(&g_clientHandle, &volume->map, path, ¶ms); - free(path); - /** @todo r=ramshankar: we should perhaps also check rc here and change - * Handle initialization from 0 to SHFL_HANDLE_NIL. */ -@@ -879,9 +911,10 @@ - PSHFLSTRING target = make_shflstring(path); - PSHFLSTRING linkpath = build_path(dir->private_node, name); - SHFLFSOBJINFO stuff; -+ int rc; - RT_ZERO(stuff); - -- int rc = vboxCallSymlink(&g_clientHandle, &volume->map, linkpath, target, &stuff); -+ rc = vboxCallSymlink(&g_clientHandle, &volume->map, linkpath, target, &stuff); - - free(target); - free(linkpath); -Index: trunk/src/VBox/Additions/common/VBoxGuest/VBoxGuest-haiku.c -=================================================================== ---- trunk/src/VBox/Additions/common/VBoxGuest/VBoxGuest-haiku.c (revision 51740) -+++ trunk/src/VBox/Additions/common/VBoxGuest/VBoxGuest-haiku.c (working copy) -@@ -69,6 +69,7 @@ - #include - - #define MODULE_NAME VBOXGUEST_MODULE_NAME -+#define DO_LOG 1 - - /* - * IRQ related functions. -@@ -302,9 +303,10 @@ - */ - static int32 VBoxGuestHaikuISR(void *pvState) - { -+ bool fOurIRQ; - LogFlow((MODULE_NAME ":VBoxGuestHaikuISR pvState=%p\n", pvState)); - -- bool fOurIRQ = VBoxGuestCommonISR(&g_DevExt); -+ fOurIRQ = VBoxGuestCommonISR(&g_DevExt); - if (fOurIRQ) - return B_HANDLED_INTERRUPT; - return B_UNHANDLED_INTERRUPT; -@@ -313,9 +315,10 @@ - - void VBoxGuestNativeISRMousePollEvent(PVBOXGUESTDEVEXT pDevExt) - { -+ status_t err = B_OK; -+ - LogFlow((MODULE_NAME "::NativeISRMousePollEvent:\n")); - -- status_t err = B_OK; - //dprintf(MODULE_NAME ": isr mouse\n"); - - /* -Index: trunk/src/VBox/Additions/common/VBoxGuest/VBoxDev-haiku.c -=================================================================== ---- trunk/src/VBox/Additions/common/VBoxGuest/VBoxDev-haiku.c (revision 51740) -+++ trunk/src/VBox/Additions/common/VBoxGuest/VBoxDev-haiku.c (working copy) -@@ -191,11 +191,14 @@ - */ - static status_t VBoxGuestHaikuIOCtl(void *cookie, uint32 op, void *data, size_t len) - { -+ int rc = B_OK; -+ void *pvBuf = NULL; -+ size_t cbDataReturned; -+ - PVBOXGUESTSESSION pSession = (PVBOXGUESTSESSION)cookie; -+ dprintf(DRIVER_NAME ":VBoxGuestHaikuIOCtl cookie=%p op=0x%08x data=%p len=%lu)\n", cookie, op, data, len); - Log((DRIVER_NAME ":VBoxGuestHaikuIOCtl cookie=%p op=0x%08x data=%p len=%lu)\n", cookie, op, data, len)); - -- int rc = B_OK; -- - /* - * Validate the input. - */ -@@ -223,7 +226,6 @@ - /* - * Read the request. - */ -- void *pvBuf = NULL; - if (RT_LIKELY(len > 0)) - { - pvBuf = RTMemTmpAlloc(len); -@@ -238,6 +240,7 @@ - if (RT_UNLIKELY(rc < 0)) - { - RTMemTmpFree(pvBuf); -+ dprintf(DRIVER_NAME ":VBoxGuestHaikuIOCtl: user_memcpy failed; pvBuf=%p data=%p op=%d. rc=%d\n", pvBuf, data, op, rc); - LogRel((DRIVER_NAME ":VBoxGuestHaikuIOCtl: user_memcpy failed; pvBuf=%p data=%p op=%d. rc=%d\n", pvBuf, data, op, rc)); - return EFAULT; - } -@@ -253,7 +256,6 @@ - /* - * Process the IOCtl. - */ -- size_t cbDataReturned; - rc = VBoxGuestCommonIOCtl(op, &g_DevExt, pSession, pvBuf, len, &cbDataReturned); - if (RT_SUCCESS(rc)) - { -@@ -268,6 +270,7 @@ - rc = user_memcpy(data, pvBuf, cbDataReturned); - if (RT_UNLIKELY(rc < 0)) - { -+ dprintf(DRIVER_NAME ":VBoxGuestHaikuIOCtl: user_memcpy failed; pvBuf=%p pArg=%p Cmd=%lu. rc=%d\n", pvBuf, data, op, rc); - Log((DRIVER_NAME ":VBoxGuestHaikuIOCtl: user_memcpy failed; pvBuf=%p pArg=%p Cmd=%lu. rc=%d\n", pvBuf, data, op, rc)); - rc = EFAULT; - } -@@ -275,6 +278,7 @@ - } - else - { -+ dprintf(DRIVER_NAME ":VBoxGuestHaikuIOCtl: VBoxGuestCommonIOCtl failed. rc=%d\n", rc); - Log((DRIVER_NAME ":VBoxGuestHaikuIOCtl: VBoxGuestCommonIOCtl failed. rc=%d\n", rc)); - rc = EFAULT; - } -@@ -297,6 +301,7 @@ - { - PVBOXGUESTSESSION pSession = (PVBOXGUESTSESSION)cookie; - status_t err = B_OK; -+ uint32_t u32CurSeq; - - switch (event) - { -@@ -308,7 +313,7 @@ - - RTSpinlockAcquire(g_DevExt.SessionSpinlock); - -- uint32_t u32CurSeq = ASMAtomicUoReadU32(&g_DevExt.u32MousePosChangedSeq); -+ u32CurSeq = ASMAtomicUoReadU32(&g_DevExt.u32MousePosChangedSeq); - if (pSession->u32MousePosChangedSeq != u32CurSeq) - { - pSession->u32MousePosChangedSeq = u32CurSeq; -@@ -388,11 +393,12 @@ - static status_t VBoxGuestHaikuRead(void *cookie, off_t position, void *data, size_t *numBytes) - { - PVBOXGUESTSESSION pSession = (PVBOXGUESTSESSION)cookie; -+ uint32_t u32CurSeq; - - if (*numBytes == 0) - return B_OK; - -- uint32_t u32CurSeq = ASMAtomicUoReadU32(&g_DevExt.u32MousePosChangedSeq); -+ u32CurSeq = ASMAtomicUoReadU32(&g_DevExt.u32MousePosChangedSeq); - if (pSession->u32MousePosChangedSeq != u32CurSeq) - { - pSession->u32MousePosChangedSeq = u32CurSeq; -Index: trunk/src/VBox/Runtime/r3/haiku/rtProcInitExePath-haiku.cpp -=================================================================== ---- trunk/src/VBox/Runtime/r3/haiku/rtProcInitExePath-haiku.cpp (revision 51740) -+++ trunk/src/VBox/Runtime/r3/haiku/rtProcInitExePath-haiku.cpp (working copy) -@@ -31,6 +31,7 @@ - #ifdef RT_OS_HAIKU - # include - #endif -+#include - - #include - #include -@@ -51,6 +52,7 @@ - */ - status = get_next_image_info(0, &Cookie, &ImageInfo); - AssertReturn((status == B_OK), VERR_INTERNAL_ERROR); -+fprintf(stderr, "p='%s'\n", ImageInfo.name); - - int rc = rtPathFromNativeCopy(pszPath, MIN(cchPath, MAXPATHLEN), ImageInfo.name, NULL); - AssertMsgRCReturn(rc, ("rc=%Rrc pszLink=\"%s\"\nhex: %.*Rhxs\n", rc, pszPath, MIN(cchPath, MAXPATHLEN), pszPath), rc); -Index: trunk/src/VBox/Runtime/r3/posix/utf8-posix.cpp -=================================================================== ---- trunk/src/VBox/Runtime/r3/posix/utf8-posix.cpp (revision 51740) -+++ trunk/src/VBox/Runtime/r3/posix/utf8-posix.cpp (working copy) -@@ -173,7 +173,7 @@ - iconv_t hIconv = (iconv_t)*phIconv; - if (hIconv == (iconv_t)-1) - { --#ifdef RT_OS_SOLARIS -+#if defined(RT_OS_HAIKU) || defined(RT_OS_SOLARIS) - /* Solaris doesn't grok empty codeset strings, so help it find the current codeset. */ - if (!*pszInputCS) - pszInputCS = rtStrGetLocaleCodeset(); -@@ -304,7 +304,7 @@ - /* - * Create conversion object. - */ --#ifdef RT_OS_SOLARIS -+#if defined(RT_OS_HAIKU) || defined(RT_OS_SOLARIS) - /* Solaris doesn't grok empty codeset strings, so help it find the current codeset. */ - if (!*pszInputCS) - pszInputCS = rtStrGetLocaleCodeset(); -Index: trunk/src/VBox/Runtime/r0drv/haiku/semfastmutex-r0drv-haiku.c -=================================================================== ---- trunk/src/VBox/Runtime/r0drv/haiku/semfastmutex-r0drv-haiku.c (revision 51740) -+++ trunk/src/VBox/Runtime/r0drv/haiku/semfastmutex-r0drv-haiku.c (working copy) -@@ -57,10 +57,13 @@ - - RTDECL(int) RTSemFastMutexCreate(PRTSEMFASTMUTEX phFastMtx) - { -+ PRTSEMFASTMUTEXINTERNAL pThis; -+ - AssertCompile(sizeof(RTSEMFASTMUTEXINTERNAL) > sizeof(void *)); -+ dprintf("phFastMtx: %p\n", phFastMtx); - AssertPtrReturn(phFastMtx, VERR_INVALID_POINTER); - -- PRTSEMFASTMUTEXINTERNAL pThis = (PRTSEMFASTMUTEXINTERNAL)RTMemAllocZ(sizeof(*pThis)); -+ pThis = (PRTSEMFASTMUTEXINTERNAL)RTMemAllocZ(sizeof(*pThis)); - if (RT_UNLIKELY(!pThis)) - return VERR_NO_MEMORY; - -Index: trunk/src/VBox/Runtime/r0drv/haiku/semevent-r0drv-haiku.c -=================================================================== ---- trunk/src/VBox/Runtime/r0drv/haiku/semevent-r0drv-haiku.c (revision 51740) -+++ trunk/src/VBox/Runtime/r0drv/haiku/semevent-r0drv-haiku.c (working copy) -@@ -66,12 +66,15 @@ - - RTDECL(int) RTSemEventCreateEx(PRTSEMEVENT phEventSem, uint32_t fFlags, RTLOCKVALCLASS hClass, const char *pszNameFmt, ...) - { -+ PRTSEMEVENTINTERNAL pThis; -+ - AssertCompile(sizeof(RTSEMEVENTINTERNAL) > sizeof(void *)); - AssertReturn(!(fFlags & ~(RTSEMEVENT_FLAGS_NO_LOCK_VAL | RTSEMEVENT_FLAGS_BOOTSTRAP_HACK)), VERR_INVALID_PARAMETER); - Assert(!(fFlags & RTSEMEVENT_FLAGS_BOOTSTRAP_HACK) || (fFlags & RTSEMEVENT_FLAGS_NO_LOCK_VAL)); -+ dprintf("phEventSem: %p\n", phEventSem); - AssertPtrReturn(phEventSem, VERR_INVALID_POINTER); - -- PRTSEMEVENTINTERNAL pThis = (PRTSEMEVENTINTERNAL)RTMemAllocZ(sizeof(*pThis)); -+ pThis = (PRTSEMEVENTINTERNAL)RTMemAllocZ(sizeof(*pThis)); - if (!pThis) - return VERR_NO_MEMORY; - -Index: trunk/src/VBox/Runtime/r0drv/haiku/alloc-r0drv-haiku.c -=================================================================== ---- trunk/src/VBox/Runtime/r0drv/haiku/alloc-r0drv-haiku.c (revision 51740) -+++ trunk/src/VBox/Runtime/r0drv/haiku/alloc-r0drv-haiku.c (working copy) -@@ -44,10 +44,12 @@ - */ - int rtR0MemAllocEx(size_t cb, uint32_t fFlags, PRTMEMHDR *ppHdr) - { -+ PRTMEMHDR pHdr; -+ - if (RT_UNLIKELY(fFlags & RTMEMHDR_FLAG_ANY_CTX)) - return VERR_NOT_SUPPORTED; - -- PRTMEMHDR pHdr = (PRTMEMHDR)malloc(cb + sizeof(*pHdr)); -+ pHdr = (PRTMEMHDR)malloc(cb + sizeof(*pHdr)); - if (RT_UNLIKELY(!pHdr)) - { - LogRel(("rtR0MemAllocEx(%u, %#x) failed\n",(unsigned)cb + sizeof(*pHdr), fFlags)); -@@ -75,6 +77,9 @@ - - RTR0DECL(void *) RTMemContAlloc(PRTCCPHYS pPhys, size_t cb) RT_NO_THROW - { -+ void *pv; -+ area_id area; -+ - /* - * Validate input. - */ -@@ -87,8 +92,7 @@ - * memory that's always below 4GB. - */ - cb = RT_ALIGN_Z(cb, PAGE_SIZE); -- void *pv; -- area_id area = create_area("VirtualBox Contig Alloc", &pv, B_ANY_KERNEL_ADDRESS, cb, B_32_BIT_CONTIGUOUS, -+ area = create_area("VirtualBox Contig Alloc", &pv, B_ANY_KERNEL_ADDRESS, cb, B_32_BIT_CONTIGUOUS, - B_READ_AREA | B_WRITE_AREA); - if (area >= 0) - { -@@ -112,9 +116,10 @@ - RT_ASSERT_PREEMPTIBLE(); - if (pv) - { -+ area_id area; - Assert(cb > 0); - -- area_id area = area_for(pv); -+ area = area_for(pv); - if (area >= B_OK) - delete_area(area); - else -Index: trunk/src/VBox/Runtime/r0drv/haiku/semeventmulti-r0drv-haiku.c -=================================================================== ---- trunk/src/VBox/Runtime/r0drv/haiku/semeventmulti-r0drv-haiku.c (revision 51740) -+++ trunk/src/VBox/Runtime/r0drv/haiku/semeventmulti-r0drv-haiku.c (working copy) -@@ -76,7 +76,7 @@ - pThis->u32Magic = RTSEMEVENTMULTI_MAGIC; - pThis->cRefs = 1; - pThis->SemId = create_sem(0, "IPRT Semaphore Event Multi"); -- if (pThis->SemId < B_OK) -+ if (pThis->SemId >= B_OK) - { - set_sem_owner(pThis->SemId, B_SYSTEM_TEAM); - *phEventMultiSem = pThis; -Index: trunk/src/VBox/Runtime/r0drv/haiku/semmutex-r0drv-haiku.c -=================================================================== ---- trunk/src/VBox/Runtime/r0drv/haiku/semmutex-r0drv-haiku.c (revision 51740) -+++ trunk/src/VBox/Runtime/r0drv/haiku/semmutex-r0drv-haiku.c (working copy) -@@ -65,16 +65,19 @@ - - RTDECL(int) RTSemMutexCreate(PRTSEMMUTEX phMutexSem) - { -+ PRTSEMMUTEXINTERNAL pThis; -+ - AssertCompile(sizeof(RTSEMMUTEXINTERNAL) > sizeof(void *)); -+ dprintf("phMutexSem: %p\n", phMutexSem); - AssertPtrReturn(phMutexSem, VERR_INVALID_POINTER); - -- PRTSEMMUTEXINTERNAL pThis = (PRTSEMMUTEXINTERNAL)RTMemAllocZ(sizeof(*pThis)); -+ pThis = (PRTSEMMUTEXINTERNAL)RTMemAllocZ(sizeof(*pThis)); - if (RT_UNLIKELY(!pThis)) - return VERR_NO_MEMORY; - - pThis->u32Magic = RTSEMMUTEX_MAGIC; - pThis->SemId = create_sem(0, "IPRT Mutex Semaphore"); -- if (pThis->SemId < B_OK) -+ if (pThis->SemId >= B_OK) - { - pThis->OwnerId = -1; - pThis->cRecursion = 0; -@@ -215,7 +218,7 @@ - if (--pThis->cRecursion == 0) - { - pThis->OwnerId == -1; -- release_sem(pThis->SemId); -+ release_sem_etc(pThis->SemId, 1, B_DO_NOT_RESCHEDULE); - } - - return VINF_SUCCESS; -Index: trunk/src/VBox/Runtime/r0drv/haiku/RTLogWriteDebugger-r0drv-haiku.c -=================================================================== ---- trunk/src/VBox/Runtime/r0drv/haiku/RTLogWriteDebugger-r0drv-haiku.c (revision 51740) -+++ trunk/src/VBox/Runtime/r0drv/haiku/RTLogWriteDebugger-r0drv-haiku.c (working copy) -@@ -36,6 +36,7 @@ - RTDECL(void) RTLogWriteDebugger(const char *pch, size_t cb) - { - /** @todo implement this */ -+ dprintf("%.*s", (int)cb, pch); - /*kprintf("%.*s", (int)cb, pch);*/ - return; - } -Index: trunk/src/VBox/Runtime/r0drv/haiku/memobj-r0drv-haiku.c -=================================================================== ---- trunk/src/VBox/Runtime/r0drv/haiku/memobj-r0drv-haiku.c (revision 51740) -+++ trunk/src/VBox/Runtime/r0drv/haiku/memobj-r0drv-haiku.c (working copy) -@@ -153,13 +153,15 @@ - static int rtR0MemObjNativeAllocArea(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, - bool fExecutable, RTR0MEMOBJTYPE type, RTHCPHYS PhysHighest, size_t uAlignment) - { -- NOREF(fExecutable); -- - int rc; - void *pvMap = NULL; - const char *pszName = NULL; - uint32 addressSpec = B_ANY_KERNEL_ADDRESS; - uint32 fLock = ~0U; -+ PRTR0MEMOBJHAIKU pMemHaiku; -+ -+ NOREF(fExecutable); -+ - LogFlowFunc(("ppMem=%p cb=%u, fExecutable=%s, type=%08x, PhysHighest=%RX64 uAlignment=%u\n", ppMem,(unsigned)cb, - fExecutable ? "true" : "false", type, PhysHighest,(unsigned)uAlignment)); - -@@ -201,7 +203,6 @@ - } - - /* Create the object. */ -- PRTR0MEMOBJHAIKU pMemHaiku; - pMemHaiku = (PRTR0MEMOBJHAIKU)rtR0MemObjNew(sizeof(RTR0MEMOBJHAIKU), type, NULL, cb); - if (RT_UNLIKELY(!pMemHaiku)) - return VERR_NO_MEMORY; -@@ -277,11 +278,13 @@ - - int rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJINTERNAL ppMem, RTHCPHYS Phys, size_t cb, uint32_t uCachePolicy) - { -+ PRTR0MEMOBJHAIKU pMemHaiku; -+ - AssertReturn(uCachePolicy == RTMEM_CACHE_POLICY_DONT_CARE, VERR_NOT_SUPPORTED); - LogFlowFunc(("ppMem=%p Phys=%08x cb=%u uCachePolicy=%x\n", ppMem, Phys,(unsigned)cb, uCachePolicy)); - - /* Create the object. */ -- PRTR0MEMOBJHAIKU pMemHaiku = (PRTR0MEMOBJHAIKU)rtR0MemObjNew(sizeof(*pMemHaiku), RTR0MEMOBJTYPE_PHYS, NULL, cb); -+ pMemHaiku = (PRTR0MEMOBJHAIKU)rtR0MemObjNew(sizeof(*pMemHaiku), RTR0MEMOBJTYPE_PHYS, NULL, cb); - if (!pMemHaiku) - return VERR_NO_MEMORY; - -@@ -311,15 +314,16 @@ - static int rtR0MemObjNativeLockInMap(PPRTR0MEMOBJINTERNAL ppMem, void *pvStart, size_t cb, uint32_t fAccess, - RTR0PROCESS R0Process, int fFlags) - { -- NOREF(fAccess); - int rc; - team_id TeamId = B_SYSTEM_TEAM; -+ PRTR0MEMOBJHAIKU pMemHaiku; -+ NOREF(fAccess); - - LogFlowFunc(("ppMem=%p pvStart=%p cb=%u fAccess=%x R0Process=%d fFlags=%x\n", ppMem, pvStart, cb, fAccess, R0Process, - fFlags)); - - /* Create the object. */ -- PRTR0MEMOBJHAIKU pMemHaiku = (PRTR0MEMOBJHAIKU)rtR0MemObjNew(sizeof(*pMemHaiku), RTR0MEMOBJTYPE_LOCK, pvStart, cb); -+ pMemHaiku = (PRTR0MEMOBJHAIKU)rtR0MemObjNew(sizeof(*pMemHaiku), RTR0MEMOBJTYPE_LOCK, pvStart, cb); - if (RT_UNLIKELY(!pMemHaiku)) - return VERR_NO_MEMORY; - -@@ -605,10 +609,11 @@ - team_id TeamId = B_SYSTEM_TEAM; - physical_entry aPhysMap[2]; - int32 cPhysMap = 2; /** @todo r=ramshankar: why not use RT_ELEMENTS? */ -+ void *pb; - - if (pMemHaiku->Core.u.Lock.R0Process != NIL_RTR0PROCESS) - TeamId = (team_id)pMemHaiku->Core.u.Lock.R0Process; -- void *pb = pMemHaiku->Core.pv + (iPage << PAGE_SHIFT); -+ pb = pMemHaiku->Core.pv + (iPage << PAGE_SHIFT); - - rc = get_memory_map_etc(TeamId, pb, B_PAGE_SIZE, aPhysMap, &cPhysMap); - if (rc < B_OK || cPhysMap < 1) -Index: trunk/src/VBox/Runtime/r0drv/haiku/spinlock-r0drv-haiku.c -=================================================================== ---- trunk/src/VBox/Runtime/r0drv/haiku/spinlock-r0drv-haiku.c (revision 51740) -+++ trunk/src/VBox/Runtime/r0drv/haiku/spinlock-r0drv-haiku.c (working copy) -@@ -66,14 +66,15 @@ - - RTDECL(int) RTSpinlockCreate(PRTSPINLOCK pSpinlock, uint32_t fFlags, const char *pszName) - { -+ PRTSPINLOCKINTERNAL pSpinlockInt; - RT_ASSERT_PREEMPTIBLE(); - NOREF(pszName); - - /* - * Allocate. - */ -- AssertCompile(sizeof(RTSPINLOCKINTERNAL) > sizeof(void *)); -- PRTSPINLOCKINTERNAL pSpinlockInt = (PRTSPINLOCKINTERNAL)RTMemAllocZ(sizeof(*pSpinlockInt)); -+// AssertCompile(sizeof(RTSPINLOCKINTERNAL) > sizeof(void *)); -+ pSpinlockInt = (PRTSPINLOCKINTERNAL)RTMemAllocZ(sizeof(*pSpinlockInt)); - if (RT_UNLIKELY(!pSpinlockInt)) - return VERR_NO_MEMORY; - -Index: trunk/src/VBox/Runtime/Makefile.kmk -=================================================================== ---- trunk/src/VBox/Runtime/Makefile.kmk (revision 51740) -+++ trunk/src/VBox/Runtime/Makefile.kmk (working copy) -@@ -1062,7 +1062,6 @@ - r3/posix/fs3-posix.cpp \ - r3/posix/ldrNative-posix.cpp \ - r3/posix/rtmempage-exec-mmap-heap-posix.cpp \ -- r3/posix/rtmemlocked-posix.cpp \ - r3/posix/path-posix.cpp \ - r3/posix/path2-posix.cpp \ - r3/posix/pathhost-posix.cpp \ -Index: trunk/src/VBox/Runtime/VBox/log-vbox.cpp -=================================================================== ---- trunk/src/VBox/Runtime/VBox/log-vbox.cpp (revision 51740) -+++ trunk/src/VBox/Runtime/VBox/log-vbox.cpp (working copy) -@@ -492,6 +492,11 @@ - RTLogFlags(pLogger, "enabled unbuffered tid"); - pLogger->fDestFlags |= RTLOGDEST_DEBUGGER | RTLOGDEST_STDOUT; - # endif -+# if 1 /* vboxdrv logging - ATTENTION: this is what we're referring to guys! Change to '# if 1'. */ -+ RTLogGroupSettings(pLogger, "+all"); -+ RTLogFlags(pLogger, "enabled unbuffered tid"); -+ pLogger->fDestFlags |= RTLOGDEST_DEBUGGER | RTLOGDEST_STDOUT; -+# endif - } - #endif /* IN_RING0 */ - return g_pLogger = RT_SUCCESS(rc) ? pLogger : NULL; -Index: trunk/configure -=================================================================== ---- trunk/configure (revision 51740) -+++ trunk/configure (working copy) -@@ -417,6 +417,9 @@ +diff --git a/configure b/configure +index e8415ac..cb46f77 100755 +--- a/configure ++++ b/configure +@@ -417,6 +417,9 @@ check_gcc() elif [ $cc_maj -eq 4 -a $cc_min -eq 0 -a "$OS" = "darwin" ]; then log_success "found version $cc_ver" # gcc-4.0 is allowed for Darwin only @@ -1128,7 +175,7 @@ Index: trunk/configure elif [ $cc_maj -lt 3 \ -o \( $cc_maj -eq 3 -a $cc_min -lt 2 \) \ -o \( $cc_maj -eq 4 -a $cc_min -lt 1 -a "$OS" != "darwin" \) \ -@@ -2652,6 +2655,12 @@ +@@ -2652,6 +2655,12 @@ if [ $OSE -ge 1 ]; then else cnf_append "VBOX_WITH_LINUX_ADDITIONS" "" fi @@ -1141,23 +188,10 @@ Index: trunk/configure echo >> $CNF fi -Index: trunk/include/iprt/cpp/autores.h -=================================================================== ---- trunk/include/iprt/cpp/autores.h (revision 51740) -+++ trunk/include/iprt/cpp/autores.h (working copy) -@@ -51,7 +51,7 @@ - } - - /** Specialisation of RTAutoResNil for RTFILE */ --template <> -+template - inline RTFILE RTAutoResNil(void) - { - return NIL_RTFILE; -Index: trunk/include/iprt/cdefs.h -=================================================================== ---- trunk/include/iprt/cdefs.h (revision 51740) -+++ trunk/include/iprt/cdefs.h (working copy) +diff --git a/include/iprt/cdefs.h b/include/iprt/cdefs.h +index c1f7cf0..efb98bf 100644 +--- a/include/iprt/cdefs.h ++++ b/include/iprt/cdefs.h @@ -1142,7 +1142,7 @@ * @param type The return type of the function declaration. * @remarks Use sparsely and with care. Don't use this macro on C++ methods. @@ -1167,11 +201,24 @@ Index: trunk/include/iprt/cdefs.h # define DECL_FORCE_INLINE(type) __attribute__((__always_inline__)) DECLINLINE(type) #elif defined(_MSC_VER) # define DECL_FORCE_INLINE(type) __forceinline type -Index: trunk/include/iprt/types.h -=================================================================== ---- trunk/include/iprt/types.h (revision 51740) -+++ trunk/include/iprt/types.h (working copy) -@@ -149,6 +149,13 @@ +diff --git a/include/iprt/cpp/autores.h b/include/iprt/cpp/autores.h +index 0edad23..217d555 100644 +--- a/include/iprt/cpp/autores.h ++++ b/include/iprt/cpp/autores.h +@@ -51,7 +51,7 @@ inline T RTAutoResNil(void) + } + + /** Specialisation of RTAutoResNil for RTFILE */ +-template <> ++template + inline RTFILE RTAutoResNil(void) + { + return NIL_RTFILE; +diff --git a/include/iprt/types.h b/include/iprt/types.h +index a58e072..31ab2a3 100644 +--- a/include/iprt/types.h ++++ b/include/iprt/types.h +@@ -150,6 +150,13 @@ RT_C_DECLS_END # undef false # undef true # undef bool @@ -1185,7 +232,7 @@ Index: trunk/include/iprt/types.h # else # include # include -@@ -206,8 +213,13 @@ +@@ -207,8 +214,13 @@ typedef uint8_t bool; # ifndef __bool_true_false_are_defined typedef _Bool bool; # endif @@ -1200,33 +247,11 @@ Index: trunk/include/iprt/types.h # undef bool # endif typedef _Bool bool; -Index: trunk/src/libs/kStuff/kStuff/include/k/kDefs.h -=================================================================== ---- trunk/src/libs/kStuff/kStuff/include/k/kDefs.h (revision 66) -+++ trunk/src/libs/kStuff/kStuff/include/k/kDefs.h (working copy) -@@ -60,8 +60,10 @@ - #define K_OS_SOLARIS 9 - /** Windows. */ - #define K_OS_WINDOWS 10 -+/** Haiku */ -+#define K_OS_HAIKU 11 - /** The max K_OS_* value (exclusive). */ --#define K_OS_MAX 11 -+#define K_OS_MAX 12 - /** @} */ - - /** @def K_OS -@@ -82,6 +84,8 @@ - # define K_OS K_OS_DRAGONFLY - # elif defined(__FreeBSD__) /*??*/ - # define K_OS K_OS_FREEBSD -+# elif defined(__HAIKU__) -+# define K_OS K_OS_HAIKU - # elif defined(__gnu_linux__) - # define K_OS K_OS_LINUX - # elif defined(__NetBSD__) /*??*/ ---- /dev/null 2014-07-01 06:17:57.378104000 +0200 -+++ trunk/kBuild/tools/GCC2.kmk 2014-01-13 18:20:19.486539264 +0100 +diff --git a/kBuild/tools/GCC2.kmk b/kBuild/tools/GCC2.kmk +new file mode 100644 +index 0000000..3b64888 +--- /dev/null ++++ b/kBuild/tools/GCC2.kmk @@ -0,0 +1,352 @@ +# $Id: GCC2.kmk 2541 2011-08-03 09:51:30Z bird $ +## @file @@ -1580,8 +605,11 @@ Index: trunk/src/libs/kStuff/kStuff/include/k/kDefs.h + endif +endef + ---- /dev/null 2014-07-01 06:17:57.378104000 +0200 -+++ trunk/kBuild/tools/GCC2PLAIN.kmk 2014-01-13 18:20:48.054001664 +0100 +diff --git a/kBuild/tools/GCC2PLAIN.kmk b/kBuild/tools/GCC2PLAIN.kmk +new file mode 100644 +index 0000000..c63f35c +--- /dev/null ++++ b/kBuild/tools/GCC2PLAIN.kmk @@ -0,0 +1,320 @@ +# $Id: GCC2PLAIN.kmk 2545 2011-09-13 19:09:05Z bird $ +## @file @@ -1903,8 +931,11 @@ Index: trunk/src/libs/kStuff/kStuff/include/k/kDefs.h + $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib))) +endef + ---- /dev/null 2014-07-01 06:17:57.378104000 +0200 -+++ trunk/kBuild/tools/GXX2.kmk 2014-01-13 18:20:37.267911168 +0100 +diff --git a/kBuild/tools/GXX2.kmk b/kBuild/tools/GXX2.kmk +new file mode 100644 +index 0000000..012cb9c +--- /dev/null ++++ b/kBuild/tools/GXX2.kmk @@ -0,0 +1,352 @@ +# $Id: GXX2.kmk 2541 2011-08-03 09:51:30Z bird $ +## @file @@ -2258,8 +1289,11 @@ Index: trunk/src/libs/kStuff/kStuff/include/k/kDefs.h + endif +endef + ---- /dev/null 2014-07-01 06:17:57.378104000 +0200 -+++ trunk/kBuild/tools/GXX2PLAIN.kmk 2014-01-13 18:20:43.542113792 +0100 +diff --git a/kBuild/tools/GXX2PLAIN.kmk b/kBuild/tools/GXX2PLAIN.kmk +new file mode 100644 +index 0000000..2ab0b73 +--- /dev/null ++++ b/kBuild/tools/GXX2PLAIN.kmk @@ -0,0 +1,320 @@ +# $Id: GXX2PLAIN.kmk 2545 2011-09-13 19:09:05Z bird $ +## @file @@ -2581,3 +1615,987 @@ Index: trunk/src/libs/kStuff/kStuff/include/k/kDefs.h + $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib))) +endef + +diff --git a/src/VBox/Additions/common/VBoxGuest/VBoxDev-haiku.c b/src/VBox/Additions/common/VBoxGuest/VBoxDev-haiku.c +index 4d344e8..9486778 100644 +--- a/src/VBox/Additions/common/VBoxGuest/VBoxDev-haiku.c ++++ b/src/VBox/Additions/common/VBoxGuest/VBoxDev-haiku.c +@@ -191,11 +191,14 @@ static status_t VBoxGuestHaikuFree(void *cookie) + */ + static status_t VBoxGuestHaikuIOCtl(void *cookie, uint32 op, void *data, size_t len) + { ++ int rc = B_OK; ++ void *pvBuf = NULL; ++ size_t cbDataReturned; ++ + PVBOXGUESTSESSION pSession = (PVBOXGUESTSESSION)cookie; ++ dprintf(DRIVER_NAME ":VBoxGuestHaikuIOCtl cookie=%p op=0x%08x data=%p len=%lu)\n", cookie, op, data, len); + Log((DRIVER_NAME ":VBoxGuestHaikuIOCtl cookie=%p op=0x%08x data=%p len=%lu)\n", cookie, op, data, len)); + +- int rc = B_OK; +- + /* + * Validate the input. + */ +@@ -223,7 +226,6 @@ static status_t VBoxGuestHaikuIOCtl(void *cookie, uint32 op, void *data, size_t + /* + * Read the request. + */ +- void *pvBuf = NULL; + if (RT_LIKELY(len > 0)) + { + pvBuf = RTMemTmpAlloc(len); +@@ -238,6 +240,7 @@ static status_t VBoxGuestHaikuIOCtl(void *cookie, uint32 op, void *data, size_t + if (RT_UNLIKELY(rc < 0)) + { + RTMemTmpFree(pvBuf); ++ dprintf(DRIVER_NAME ":VBoxGuestHaikuIOCtl: user_memcpy failed; pvBuf=%p data=%p op=%d. rc=%d\n", pvBuf, data, op, rc); + LogRel((DRIVER_NAME ":VBoxGuestHaikuIOCtl: user_memcpy failed; pvBuf=%p data=%p op=%d. rc=%d\n", pvBuf, data, op, rc)); + return EFAULT; + } +@@ -253,7 +256,6 @@ static status_t VBoxGuestHaikuIOCtl(void *cookie, uint32 op, void *data, size_t + /* + * Process the IOCtl. + */ +- size_t cbDataReturned; + rc = VBoxGuestCommonIOCtl(op, &g_DevExt, pSession, pvBuf, len, &cbDataReturned); + if (RT_SUCCESS(rc)) + { +@@ -268,6 +270,7 @@ static status_t VBoxGuestHaikuIOCtl(void *cookie, uint32 op, void *data, size_t + rc = user_memcpy(data, pvBuf, cbDataReturned); + if (RT_UNLIKELY(rc < 0)) + { ++ dprintf(DRIVER_NAME ":VBoxGuestHaikuIOCtl: user_memcpy failed; pvBuf=%p pArg=%p Cmd=%lu. rc=%d\n", pvBuf, data, op, rc); + Log((DRIVER_NAME ":VBoxGuestHaikuIOCtl: user_memcpy failed; pvBuf=%p pArg=%p Cmd=%lu. rc=%d\n", pvBuf, data, op, rc)); + rc = EFAULT; + } +@@ -275,6 +278,7 @@ static status_t VBoxGuestHaikuIOCtl(void *cookie, uint32 op, void *data, size_t + } + else + { ++ dprintf(DRIVER_NAME ":VBoxGuestHaikuIOCtl: VBoxGuestCommonIOCtl failed. rc=%d\n", rc); + Log((DRIVER_NAME ":VBoxGuestHaikuIOCtl: VBoxGuestCommonIOCtl failed. rc=%d\n", rc)); + rc = EFAULT; + } +@@ -297,6 +301,7 @@ static status_t VBoxGuestHaikuSelect(void *cookie, uint8 event, uint32 ref, sele + { + PVBOXGUESTSESSION pSession = (PVBOXGUESTSESSION)cookie; + status_t err = B_OK; ++ uint32_t u32CurSeq; + + switch (event) + { +@@ -308,7 +313,7 @@ static status_t VBoxGuestHaikuSelect(void *cookie, uint8 event, uint32 ref, sele + + RTSpinlockAcquire(g_DevExt.SessionSpinlock); + +- uint32_t u32CurSeq = ASMAtomicUoReadU32(&g_DevExt.u32MousePosChangedSeq); ++ u32CurSeq = ASMAtomicUoReadU32(&g_DevExt.u32MousePosChangedSeq); + if (pSession->u32MousePosChangedSeq != u32CurSeq) + { + pSession->u32MousePosChangedSeq = u32CurSeq; +@@ -388,11 +393,12 @@ static status_t VBoxGuestHaikuWrite(void *cookie, off_t position, const void *da + static status_t VBoxGuestHaikuRead(void *cookie, off_t position, void *data, size_t *numBytes) + { + PVBOXGUESTSESSION pSession = (PVBOXGUESTSESSION)cookie; ++ uint32_t u32CurSeq; + + if (*numBytes == 0) + return B_OK; + +- uint32_t u32CurSeq = ASMAtomicUoReadU32(&g_DevExt.u32MousePosChangedSeq); ++ u32CurSeq = ASMAtomicUoReadU32(&g_DevExt.u32MousePosChangedSeq); + if (pSession->u32MousePosChangedSeq != u32CurSeq) + { + pSession->u32MousePosChangedSeq = u32CurSeq; +diff --git a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-haiku.c b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-haiku.c +index b3617b9..847c334 100644 +--- a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-haiku.c ++++ b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-haiku.c +@@ -69,6 +69,7 @@ + #include + + #define MODULE_NAME VBOXGUEST_MODULE_NAME ++#define DO_LOG 1 + + /* + * IRQ related functions. +@@ -301,9 +302,10 @@ static status_t VBoxGuestHaikuDetach(void) + */ + static int32 VBoxGuestHaikuISR(void *pvState) + { ++ bool fOurIRQ; + LogFlow((MODULE_NAME ":VBoxGuestHaikuISR pvState=%p\n", pvState)); + +- bool fOurIRQ = VBoxGuestCommonISR(&g_DevExt); ++ fOurIRQ = VBoxGuestCommonISR(&g_DevExt); + if (fOurIRQ) + return B_HANDLED_INTERRUPT; + return B_UNHANDLED_INTERRUPT; +@@ -312,9 +314,10 @@ static int32 VBoxGuestHaikuISR(void *pvState) + + void VBoxGuestNativeISRMousePollEvent(PVBOXGUESTDEVEXT pDevExt) + { ++ status_t err = B_OK; ++ + LogFlow((MODULE_NAME "::NativeISRMousePollEvent:\n")); + +- status_t err = B_OK; + //dprintf(MODULE_NAME ": isr mouse\n"); + + /* +diff --git a/src/VBox/Additions/haiku/SharedFolders/lock.h b/src/VBox/Additions/haiku/SharedFolders/lock.h +index b2f428a..c86d6ab 100644 +--- a/src/VBox/Additions/haiku/SharedFolders/lock.h ++++ b/src/VBox/Additions/haiku/SharedFolders/lock.h +@@ -64,7 +64,7 @@ typedef struct rw_lock { + const char* name; + struct rw_lock_waiter* waiters; + thread_id holder; +- vint32 count; ++ int32 count; + int32 owner_count; + int16 active_readers; + // Only > 0 while a writer is waiting: number +diff --git a/src/VBox/Additions/haiku/SharedFolders/vboxsf.c b/src/VBox/Additions/haiku/SharedFolders/vboxsf.c +index c4eec30..012f66b 100644 +--- a/src/VBox/Additions/haiku/SharedFolders/vboxsf.c ++++ b/src/VBox/Additions/haiku/SharedFolders/vboxsf.c +@@ -55,6 +55,7 @@ static fs_vnode_ops vboxsf_vnode_ops; + + status_t init_module(void) + { ++ int rc; + #if 0 + /* @todo enable this soon */ + int rc = get_module(VBOXGUEST_MODULE_NAME, (module_info **)&g_VBoxGuest); +@@ -98,7 +99,10 @@ status_t init_module(void) + return B_ERROR; + } + +- if (RT_FAILURE(vboxInit())) ++ rc = vboxInit(); ++ dprintf("rc=%d\n", rc); ++ if (RT_FAILURE(rc)) ++ //if (RT_FAILURE(vboxInit())) + { + dprintf("vboxInit failed\n"); + return B_ERROR; +@@ -136,6 +140,7 @@ void uninit_module(void) + + PSHFLSTRING make_shflstring(const char* const s) + { ++ PSHFLSTRING rv; + int len = strlen(s); + if (len > 0xFFFE) + { +@@ -143,7 +148,7 @@ PSHFLSTRING make_shflstring(const char* const s) + return NULL; + } + +- PSHFLSTRING rv = malloc(sizeof(SHFLSTRING) + len); ++ rv = malloc(sizeof(SHFLSTRING) + len); + if (!rv) + return NULL; + +@@ -194,12 +199,14 @@ PSHFLSTRING concat_cstr_shflstring(const char* const s1, PSHFLSTRING s2) + + PSHFLSTRING build_path(vboxsf_vnode* dir, const char* const name) + { ++ size_t len; ++ PSHFLSTRING rv; + dprintf("*** build_path(%p, %p)\n", dir, name); + if (!dir || !name) + return NULL; + +- size_t len = dir->path->u16Length + strlen(name) + 1; +- PSHFLSTRING rv = malloc(sizeof(SHFLSTRING) + len); ++ len = dir->path->u16Length + strlen(name) + 1; ++ rv = malloc(sizeof(SHFLSTRING) + len); + if (rv) + { + strcpy(rv->String.utf8, dir->path->String.utf8); +@@ -214,6 +221,10 @@ PSHFLSTRING build_path(vboxsf_vnode* dir, const char* const name) + + status_t mount(fs_volume *volume, const char *device, uint32 flags, const char *args, ino_t *_rootVnodeID) + { ++ PSHFLSTRING sharename; ++ vboxsf_volume* vbsfvolume; ++ int rv; ++ + if (device) + { + dprintf(FS_NAME ": trying to mount a real device as a vbox share is silly\n"); +@@ -222,16 +233,17 @@ status_t mount(fs_volume *volume, const char *device, uint32 flags, const char * + + dprintf(FS_NAME ": mount(%s)\n", args); + +- PSHFLSTRING sharename = make_shflstring(args); ++ sharename = make_shflstring(args); + +- vboxsf_volume* vbsfvolume = malloc(sizeof(vboxsf_volume)); ++ vbsfvolume = malloc(sizeof(vboxsf_volume)); + volume->private_volume = vbsfvolume; +- int rv = vboxCallMapFolder(&g_clientHandle, sharename, &(vbsfvolume->map)); ++ rv = vboxCallMapFolder(&g_clientHandle, sharename, &(vbsfvolume->map)); + free(sharename); + + if (rv == 0) + { + vboxsf_vnode* root_vnode; ++ status_t rs; + + PSHFLSTRING name = make_shflstring(""); + if (!name) +@@ -240,7 +252,7 @@ status_t mount(fs_volume *volume, const char *device, uint32 flags, const char * + return B_NO_MEMORY; + } + +- status_t rs = vboxsf_new_vnode(&vbsfvolume->map, name, name, &root_vnode); ++ rs = vboxsf_new_vnode(&vbsfvolume->map, name, name, &root_vnode); + dprintf(FS_NAME ": allocated %p (path=%p name=%p)\n", root_vnode, root_vnode->path, root_vnode->name); + + if (rs != B_OK) +@@ -323,12 +335,13 @@ status_t vboxsf_open_dir(fs_volume* _volume, fs_vnode* _vnode, void** _cookie) + vboxsf_volume* volume = _volume->private_volume; + vboxsf_vnode* vnode = _vnode->private_node; + SHFLCREATEPARMS params; ++ int rc; + + RT_ZERO(params); + params.Handle = SHFL_HANDLE_NIL; + params.CreateFlags = SHFL_CF_DIRECTORY | SHFL_CF_ACT_OPEN_IF_EXISTS | SHFL_CF_ACT_FAIL_IF_NEW | SHFL_CF_ACCESS_READ; + +- int rc = vboxCallCreate(&g_clientHandle, &volume->map, vnode->path, ¶ms); ++ rc = vboxCallCreate(&g_clientHandle, &volume->map, vnode->path, ¶ms); + if (RT_SUCCESS(rc)) + { + if (params.Result == SHFL_FILE_EXISTS && params.Handle != SHFL_HANDLE_NIL) +@@ -358,17 +371,23 @@ status_t vboxsf_open_dir(fs_volume* _volume, fs_vnode* _vnode, void** _cookie) + status_t vboxsf_read_dir_1(vboxsf_volume* volume, vboxsf_vnode* vnode, vboxsf_dir_cookie* cookie, + struct dirent* buffer, size_t bufferSize) + { ++ PSHFLSTRING name1; ++ int rv; ++ vboxsf_vnode* new_vnode; ++ size_t size; ++ + dprintf("%p, %d, %p\n", cookie, cookie->has_more_files, cookie->buffer); + if (!cookie->has_more_files) + return B_ENTRY_NOT_FOUND; + + if (!cookie->buffer) + { ++ int rc; + cookie->buffer_length = 16384; + cookie->buffer_start = cookie->buffer = malloc(cookie->buffer_length); + +- int rc = vboxCallDirInfo(&g_clientHandle, &volume->map, cookie->handle, cookie->path, 0, cookie->index, +- &cookie->buffer_length, cookie->buffer, &cookie->num_files); ++ rc = vboxCallDirInfo(&g_clientHandle, &volume->map, cookie->handle, cookie->path, 0, cookie->index, ++ &cookie->buffer_length, cookie->buffer, &cookie->num_files); + + if (rc != 0 && rc != VERR_NO_MORE_FILES) + { +@@ -393,15 +412,14 @@ status_t vboxsf_read_dir_1(vboxsf_volume* volume, vboxsf_vnode* vnode, vboxsf_di + return B_BUFFER_OVERFLOW; + } + +- PSHFLSTRING name1 = clone_shflstring(&cookie->buffer->name); ++ name1 = clone_shflstring(&cookie->buffer->name); + if (!name1) + { + dprintf(FS_NAME ": make_shflstring() failed\n"); + return B_NO_MEMORY; + } + +- vboxsf_vnode* new_vnode; +- int rv = vboxsf_new_vnode(&volume->map, build_path(vnode, name1->String.utf8), name1, &new_vnode); ++ rv = vboxsf_new_vnode(&volume->map, build_path(vnode, name1->String.utf8), name1, &new_vnode); + if (rv != B_OK) + { + dprintf(FS_NAME ": vboxsf_new_vnode() failed\n"); +@@ -415,7 +433,7 @@ status_t vboxsf_read_dir_1(vboxsf_volume* volume, vboxsf_vnode* vnode, vboxsf_di + buffer->d_reclen = sizeof(struct dirent) + cookie->buffer->name.u16Length; + strncpy(buffer->d_name, cookie->buffer->name.String.utf8, NAME_MAX); + +- size_t size = offsetof(SHFLDIRINFO, name.String) + cookie->buffer->name.u16Size; ++ size = offsetof(SHFLDIRINFO, name.String) + cookie->buffer->name.u16Size; + cookie->buffer = ((void*)cookie->buffer + size); + cookie->index++; + +@@ -504,22 +522,24 @@ status_t vboxsf_read_fs_info(fs_volume* _volume, struct fs_info* info) + + status_t vboxsf_lookup(fs_volume* _volume, fs_vnode* dir, const char* name, ino_t* _id) + { +- dprintf(FS_NAME ": lookup %s\n", name); + vboxsf_volume* volume = _volume->private_volume; + SHFLCREATEPARMS params; ++ PSHFLSTRING path; ++ int rc; ++ dprintf(FS_NAME ": lookup %s\n", name); + + RT_ZERO(params); + params.Handle = SHFL_HANDLE_NIL; + params.CreateFlags = SHFL_CF_LOOKUP | SHFL_CF_ACT_FAIL_IF_NEW; + +- PSHFLSTRING path = build_path(dir->private_node, name); ++ path = build_path(dir->private_node, name); + if (!path) + { + dprintf(FS_NAME ": make_shflstring() failed\n"); + return B_NO_MEMORY; + } + +- int rc = vboxCallCreate(&g_clientHandle, &volume->map, path, ¶ms); ++ rc = vboxCallCreate(&g_clientHandle, &volume->map, path, ¶ms); + if (RT_SUCCESS(rc)) + { + if (params.Result == SHFL_FILE_EXISTS) +@@ -600,11 +620,12 @@ status_t vboxsf_open(fs_volume* _volume, fs_vnode* _vnode, int openMode, void** + { + vboxsf_volume* volume = _volume->private_volume; + vboxsf_vnode* vnode = _vnode->private_node; ++ SHFLCREATEPARMS params; ++ int rc; ++ vboxsf_file_cookie* cookie; + + dprintf(FS_NAME ": open %s (mode=%x)\n", vnode->path->String.utf8, openMode); + +- SHFLCREATEPARMS params; +- + RT_ZERO(params); + params.Handle = SHFL_HANDLE_NIL; + +@@ -637,14 +658,14 @@ status_t vboxsf_open(fs_volume* _volume, fs_vnode* _vnode, int openMode, void** + params.CreateFlags |= SHFL_CF_ACT_OPEN_IF_EXISTS; + } + +- int rc = vboxCallCreate(&g_clientHandle, &volume->map, vnode->path, ¶ms); ++ rc = vboxCallCreate(&g_clientHandle, &volume->map, vnode->path, ¶ms); + if (!RT_SUCCESS(rc)) + { + dprintf("vboxCallCreate returned %d\n", rc); + return vbox_err_to_haiku_err(rc); + } + +- vboxsf_file_cookie* cookie = malloc(sizeof(vboxsf_file_cookie)); ++ cookie = malloc(sizeof(vboxsf_file_cookie)); + if (!cookie) + { + dprintf("couldn't allocate file cookie\n"); +@@ -665,6 +686,9 @@ status_t vboxsf_create(fs_volume* _volume, fs_vnode* _dir, const char *name, int + vboxsf_volume* volume = _volume->private_volume; + + SHFLCREATEPARMS params; ++ PSHFLSTRING path; ++ int rc; ++ vboxsf_file_cookie* cookie; + + RT_ZERO(params); + params.Handle = SHFL_HANDLE_NIL; +@@ -698,8 +722,8 @@ status_t vboxsf_create(fs_volume* _volume, fs_vnode* _dir, const char *name, int + params.CreateFlags |= SHFL_CF_ACT_OPEN_IF_EXISTS; + } + +- PSHFLSTRING path = build_path(_dir->private_node, name); +- int rc = vboxCallCreate(&g_clientHandle, &volume->map, path, ¶ms); ++ path = build_path(_dir->private_node, name); ++ rc = vboxCallCreate(&g_clientHandle, &volume->map, path, ¶ms); + + if (!RT_SUCCESS(rc)) + { +@@ -708,7 +732,7 @@ status_t vboxsf_create(fs_volume* _volume, fs_vnode* _dir, const char *name, int + return vbox_err_to_haiku_err(rc); + } + +- vboxsf_file_cookie* cookie = malloc(sizeof(vboxsf_file_cookie)); ++ cookie = malloc(sizeof(vboxsf_file_cookie)); + if (!cookie) + { + dprintf("couldn't allocate file cookie\n"); +@@ -761,13 +785,16 @@ status_t vboxsf_read(fs_volume* _volume, fs_vnode* _vnode, void* _cookie, off_t + vboxsf_volume* volume = _volume->private_volume; + vboxsf_vnode* vnode = _vnode->private_node; + vboxsf_file_cookie* cookie = _cookie; ++ uint32_t l; ++ void* other_buffer; ++ int rc; + + if (*length > 0xFFFFFFFF) + *length = 0xFFFFFFFF; + +- uint32_t l = *length; +- void* other_buffer = malloc(l); /* @todo map the user memory into kernel space here for efficiency */ +- int rc = vboxCallRead(&g_clientHandle, &volume->map, cookie->handle, pos, &l, other_buffer, false); ++ l = *length; ++ other_buffer = malloc(l); /* @todo map the user memory into kernel space here for efficiency */ ++ rc = vboxCallRead(&g_clientHandle, &volume->map, cookie->handle, pos, &l, other_buffer, false); + memcpy(buffer, other_buffer, l); + free(other_buffer); + +@@ -782,14 +809,17 @@ status_t vboxsf_write(fs_volume* _volume, fs_vnode* _vnode, void* _cookie, off_t + vboxsf_volume* volume = _volume->private_volume; + vboxsf_vnode* vnode = _vnode->private_node; + vboxsf_file_cookie* cookie = _cookie; ++ uint32_t l; ++ void* other_buffer; ++ int rc; + + if (*length > 0xFFFFFFFF) + *length = 0xFFFFFFFF; + +- uint32_t l = *length; +- void* other_buffer = malloc(l); /* @todo map the user memory into kernel space here for efficiency */ ++ l = *length; ++ other_buffer = malloc(l); /* @todo map the user memory into kernel space here for efficiency */ + memcpy(other_buffer, buffer, l); +- int rc = vboxCallWrite(&g_clientHandle, &volume->map, cookie->handle, pos, &l, other_buffer, false); ++ rc = vboxCallWrite(&g_clientHandle, &volume->map, cookie->handle, pos, &l, other_buffer, false); + free(other_buffer); + + *length = l; +@@ -807,6 +837,8 @@ status_t vboxsf_write_stat(fs_volume *volume, fs_vnode *vnode, const struct stat + status_t vboxsf_create_dir(fs_volume *_volume, fs_vnode *parent, const char *name, int perms) + { + vboxsf_volume* volume = _volume->private_volume; ++ PSHFLSTRING path; ++ int rc; + + SHFLCREATEPARMS params; + params.Handle = 0; +@@ -814,8 +846,8 @@ status_t vboxsf_create_dir(fs_volume *_volume, fs_vnode *parent, const char *nam + params.CreateFlags = SHFL_CF_DIRECTORY | SHFL_CF_ACT_CREATE_IF_NEW | + SHFL_CF_ACT_FAIL_IF_EXISTS | SHFL_CF_ACCESS_READ; + +- PSHFLSTRING path = build_path(parent->private_node, name); +- int rc = vboxCallCreate(&g_clientHandle, &volume->map, path, ¶ms); ++ path = build_path(parent->private_node, name); ++ rc = vboxCallCreate(&g_clientHandle, &volume->map, path, ¶ms); + free(path); + /** @todo r=ramshankar: we should perhaps also check rc here and change + * Handle initialization from 0 to SHFL_HANDLE_NIL. */ +@@ -879,9 +911,10 @@ status_t vboxsf_create_symlink(fs_volume* _volume, fs_vnode* dir, const char* na + PSHFLSTRING target = make_shflstring(path); + PSHFLSTRING linkpath = build_path(dir->private_node, name); + SHFLFSOBJINFO stuff; ++ int rc; + RT_ZERO(stuff); + +- int rc = vboxCallSymlink(&g_clientHandle, &volume->map, linkpath, target, &stuff); ++ rc = vboxCallSymlink(&g_clientHandle, &volume->map, linkpath, target, &stuff); + + free(target); + free(linkpath); +diff --git a/src/VBox/Additions/haiku/VBoxMouse/Makefile.kmk b/src/VBox/Additions/haiku/VBoxMouse/Makefile.kmk +index 0423daa..6b88540 100644 +--- a/src/VBox/Additions/haiku/VBoxMouse/Makefile.kmk ++++ b/src/VBox/Additions/haiku/VBoxMouse/Makefile.kmk +@@ -52,7 +52,7 @@ include $(KBUILD_PATH)/subheader.kmk + # R1 will need gcc2-built input_server add-ons. + + PROGRAMS += VBoxMouse +-VBoxMouse_TEMPLATE = VBOXGUESTR3EXE ++VBoxMouse_TEMPLATE = NewVBoxGuestR3Exe + VBoxMouse_DEFS = VBOX_WITH_HGCM LOG_TO_BACKDOOR + VBoxMouse_DEFS += LOG_ENABLED + VBoxMouse_INCS = ../include +@@ -67,7 +67,7 @@ VBoxMouse_LIBS = \ + /system/servers/input_server + + PROGRAMS += VBoxMouseFilter +-VBoxMouseFilter_TEMPLATE = VBOXGUESTR3EXE ++VBoxMouseFilter_TEMPLATE = NewVBoxGuestR3Exe + VBoxMouseFilter_DEFS = VBOX_WITH_HGCM LOG_TO_BACKDOOR + VBoxMouseFilter_DEFS += LOG_ENABLED + VBoxMouseFilter_INCS = ../include +diff --git a/src/VBox/Additions/haiku/VBoxTray/Makefile.kmk b/src/VBox/Additions/haiku/VBoxTray/Makefile.kmk +index a79a82e..130cfd9 100644 +--- a/src/VBox/Additions/haiku/VBoxTray/Makefile.kmk ++++ b/src/VBox/Additions/haiku/VBoxTray/Makefile.kmk +@@ -51,7 +51,7 @@ include $(KBUILD_PATH)/subheader.kmk + # single bin will cause problems loading gcc4 binary from a gcc2-built Deskbar! + + PROGRAMS += VBoxTray +-VBoxTray_TEMPLATE = VBOXGUESTR3EXE ++VBoxTray_TEMPLATE = NewVBoxGuestR3Exe + VBoxTray_DEFS = VBOX_WITH_HGCM LOG_TO_BACKDOOR + VBoxTray_DEFS += LOG_ENABLED + VBoxTray_INCS = ../include +diff --git a/src/VBox/Additions/haiku/VBoxTray/VBoxGuestApplication.cpp b/src/VBox/Additions/haiku/VBoxTray/VBoxGuestApplication.cpp +index 0690ff3..6cdee5a 100644 +--- a/src/VBox/Additions/haiku/VBoxTray/VBoxGuestApplication.cpp ++++ b/src/VBox/Additions/haiku/VBoxTray/VBoxGuestApplication.cpp +@@ -75,6 +75,7 @@ void VBoxGuestApplication::ReadyToRun() + status_t err; + + err = VBoxGuestDeskbarView::AddToDeskbar(); ++ printf("error 0x%08lx\n", err); + LogFlow(("VBoxGuestDeskbarView::ReadyToRun: AddToDeskbar returned 0x%08lx\n", err)); + exit(0); + } +diff --git a/src/VBox/Additions/haiku/VBoxTray/VBoxGuestDeskbarView.cpp b/src/VBox/Additions/haiku/VBoxTray/VBoxGuestDeskbarView.cpp +index 1da72bc..56246a2 100644 +--- a/src/VBox/Additions/haiku/VBoxTray/VBoxGuestDeskbarView.cpp ++++ b/src/VBox/Additions/haiku/VBoxTray/VBoxGuestDeskbarView.cpp +@@ -47,6 +47,7 @@ + * Header Files * + *******************************************************************************/ + #include ++#include + #include + #include + #include +@@ -83,7 +84,8 @@ our_image(image_info& image) + VBoxGuestDeskbarView::VBoxGuestDeskbarView() + : BView(BRect(0, 0, 15, 15), VIEWNAME, B_FOLLOW_NONE, + B_WILL_DRAW | B_NAVIGABLE), +- fIcon(NULL), fClipboardService(NULL), fDisplayService(NULL) ++ fIcon(NULL), fInitStatus(B_NO_INIT), ++ fClipboardService(NULL), fDisplayService(NULL) + { + _Init(); + } +@@ -91,7 +93,8 @@ VBoxGuestDeskbarView::VBoxGuestDeskbarView() + + VBoxGuestDeskbarView::VBoxGuestDeskbarView(BMessage *archive) + : BView(archive), +- fIcon(NULL) ++ fIcon(NULL), fInitStatus(B_NO_INIT), ++ fClipboardService(NULL), fDisplayService(NULL) + { + archive->PrintToStream(); + _Init(archive); +@@ -106,7 +109,13 @@ VBoxGuestDeskbarView::~VBoxGuestDeskbarView() + fClipboardService->Disconnect(); + delete fClipboardService; + } +- VbglR3Term(); ++ if (fDisplayService) ++ { ++ //fDisplayService->Disconnect(); ++ delete fDisplayService; ++ } ++ if (fInitStatus == B_OK) ++ VbglR3Term(); + } + + +@@ -165,8 +174,10 @@ void VBoxGuestDeskbarView::AttachedToWindow() + void VBoxGuestDeskbarView::DetachedFromWindow() + { + BMessage message(B_QUIT_REQUESTED); +- fClipboardService->MessageReceived(&message); +- fDisplayService->MessageReceived(&message); ++ if (fClipboardService) ++ fClipboardService->MessageReceived(&message); ++ if (fDisplayService) ++ fDisplayService->MessageReceived(&message); + } + + +@@ -197,7 +208,7 @@ void VBoxGuestDeskbarView::MessageReceived(BMessage *message) + if (message->what == B_QUIT_REQUESTED) + RemoveFromDeskbar(); + else +- BHandler::MessageReceived(message); ++ BView::MessageReceived(message); + } + + +@@ -217,7 +228,9 @@ status_t VBoxGuestDeskbarView::AddToDeskbar(bool force) + return err; + + BPath p(&info.ref); +- return deskbar.AddItem(&info.ref); ++ printf("%s:%s\n", __FUNCTION__, p.Path()); ++ int32 id; ++ return deskbar.AddItem(&info.ref, &id); + } + + +@@ -260,14 +273,15 @@ status_t VBoxGuestDeskbarView::_Init(BMessage *archive) + fIcon = BTranslationUtils::GetBitmap(&mem); + } + +- int rc = RTR3InitDll(RTR3INIT_FLAGS_UNOBTRUSIVE); ++ int rc = RTR3InitDll(RTR3INIT_FLAGS_SUPLIB | RTR3INIT_FLAGS_UNOBTRUSIVE | RTR3INIT_FLAGS_UTF8_ARGV); + if (RT_SUCCESS(rc)) + { + rc = VbglR3Init(); + if (RT_SUCCESS(rc)) + { + fClipboardService = new VBoxClipboardService(); +- fDisplayService = new VBoxDisplayService(); ++ //fDisplayService = new VBoxDisplayService(); ++ fInitStatus = B_OK; + } + else + LogRel(("VBoxGuestDeskbarView::_init VbglR3Init failed. rc=%d\n", rc)); +@@ -278,8 +292,10 @@ status_t VBoxGuestDeskbarView::_Init(BMessage *archive) + } + + ++extern "C" { + RTDECL(BView*) instantiate_deskbar_item() + { ++ printf("%s()\n", __FUNCTION__); + return new VBoxGuestDeskbarView(); + } +- ++} // C +diff --git a/src/VBox/Additions/haiku/VBoxTray/VBoxGuestDeskbarView.h b/src/VBox/Additions/haiku/VBoxTray/VBoxGuestDeskbarView.h +index 2bd4bc5..d4842d9 100644 +--- a/src/VBox/Additions/haiku/VBoxTray/VBoxGuestDeskbarView.h ++++ b/src/VBox/Additions/haiku/VBoxTray/VBoxGuestDeskbarView.h +@@ -88,6 +88,7 @@ class VBoxGuestDeskbarView : public BView + status_t _Init(BMessage *archive = NULL); + BBitmap *fIcon; + ++ status_t fInitStatus; + VBoxClipboardService *fClipboardService; + VBoxDisplayService *fDisplayService; + }; +diff --git a/src/VBox/Runtime/VBox/log-vbox.cpp b/src/VBox/Runtime/VBox/log-vbox.cpp +index dc10c4a..9010890 100644 +--- a/src/VBox/Runtime/VBox/log-vbox.cpp ++++ b/src/VBox/Runtime/VBox/log-vbox.cpp +@@ -423,7 +423,7 @@ RTDECL(PRTLOGGER) RTLogDefaultInit(void) + + # else /* IN_GUEST */ + /* The user destination is backdoor logging. */ +- rc = RTLogCreate(&pLogger, 0, NULL, "VBOX_LOG", RT_ELEMENTS(g_apszGroups), &g_apszGroups[0], RTLOGDEST_USER, "VBox.log"); ++ rc = RTLogCreate(&pLogger, 0, NULL, "VBOX_LOG", RT_ELEMENTS(g_apszGroups), &g_apszGroups[0], RTLOGDEST_USER, "VirtualBox.log"); + # endif /* IN_GUEST */ + + #else /* IN_RING0 */ +@@ -492,6 +492,11 @@ RTDECL(PRTLOGGER) RTLogDefaultInit(void) + RTLogFlags(pLogger, "enabled unbuffered tid"); + pLogger->fDestFlags |= RTLOGDEST_DEBUGGER | RTLOGDEST_STDOUT; + # endif ++# if 1 /* vboxdrv logging - ATTENTION: this is what we're referring to guys! Change to '# if 1'. */ ++ RTLogGroupSettings(pLogger, "+all"); ++ RTLogFlags(pLogger, "enabled unbuffered tid"); ++ pLogger->fDestFlags |= RTLOGDEST_DEBUGGER | RTLOGDEST_STDOUT; ++# endif + } + #endif /* IN_RING0 */ + return g_pLogger = RT_SUCCESS(rc) ? pLogger : NULL; +diff --git a/src/VBox/Runtime/r0drv/haiku/RTLogWriteDebugger-r0drv-haiku.c b/src/VBox/Runtime/r0drv/haiku/RTLogWriteDebugger-r0drv-haiku.c +index e301aa8..d47e7c6 100644 +--- a/src/VBox/Runtime/r0drv/haiku/RTLogWriteDebugger-r0drv-haiku.c ++++ b/src/VBox/Runtime/r0drv/haiku/RTLogWriteDebugger-r0drv-haiku.c +@@ -36,6 +36,7 @@ + RTDECL(void) RTLogWriteDebugger(const char *pch, size_t cb) + { + /** @todo implement this */ ++ dprintf("%.*s", (int)cb, pch); + /*kprintf("%.*s", (int)cb, pch);*/ + return; + } +diff --git a/src/VBox/Runtime/r0drv/haiku/alloc-r0drv-haiku.c b/src/VBox/Runtime/r0drv/haiku/alloc-r0drv-haiku.c +index 7617aaf..d1fae9a 100644 +--- a/src/VBox/Runtime/r0drv/haiku/alloc-r0drv-haiku.c ++++ b/src/VBox/Runtime/r0drv/haiku/alloc-r0drv-haiku.c +@@ -44,10 +44,12 @@ + */ + int rtR0MemAllocEx(size_t cb, uint32_t fFlags, PRTMEMHDR *ppHdr) + { ++ PRTMEMHDR pHdr; ++ + if (RT_UNLIKELY(fFlags & RTMEMHDR_FLAG_ANY_CTX)) + return VERR_NOT_SUPPORTED; + +- PRTMEMHDR pHdr = (PRTMEMHDR)malloc(cb + sizeof(*pHdr)); ++ pHdr = (PRTMEMHDR)malloc(cb + sizeof(*pHdr)); + if (RT_UNLIKELY(!pHdr)) + { + LogRel(("rtR0MemAllocEx(%u, %#x) failed\n",(unsigned)cb + sizeof(*pHdr), fFlags)); +@@ -75,6 +77,9 @@ void rtR0MemFree(PRTMEMHDR pHdr) + + RTR0DECL(void *) RTMemContAlloc(PRTCCPHYS pPhys, size_t cb) RT_NO_THROW + { ++ void *pv; ++ area_id area; ++ + /* + * Validate input. + */ +@@ -87,8 +92,7 @@ RTR0DECL(void *) RTMemContAlloc(PRTCCPHYS pPhys, size_t cb) RT_NO_THROW + * memory that's always below 4GB. + */ + cb = RT_ALIGN_Z(cb, PAGE_SIZE); +- void *pv; +- area_id area = create_area("VirtualBox Contig Alloc", &pv, B_ANY_KERNEL_ADDRESS, cb, B_32_BIT_CONTIGUOUS, ++ area = create_area("VirtualBox Contig Alloc", &pv, B_ANY_KERNEL_ADDRESS, cb, B_32_BIT_CONTIGUOUS, + B_READ_AREA | B_WRITE_AREA); + if (area >= 0) + { +@@ -112,9 +116,10 @@ RTR0DECL(void) RTMemContFree(void *pv, size_t cb) RT_NO_THROW + RT_ASSERT_PREEMPTIBLE(); + if (pv) + { ++ area_id area; + Assert(cb > 0); + +- area_id area = area_for(pv); ++ area = area_for(pv); + if (area >= B_OK) + delete_area(area); + else +diff --git a/src/VBox/Runtime/r0drv/haiku/memobj-r0drv-haiku.c b/src/VBox/Runtime/r0drv/haiku/memobj-r0drv-haiku.c +index 83dac1d..984e973 100644 +--- a/src/VBox/Runtime/r0drv/haiku/memobj-r0drv-haiku.c ++++ b/src/VBox/Runtime/r0drv/haiku/memobj-r0drv-haiku.c +@@ -153,13 +153,15 @@ int rtR0MemObjNativeFree(RTR0MEMOBJ pMem) + static int rtR0MemObjNativeAllocArea(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, + bool fExecutable, RTR0MEMOBJTYPE type, RTHCPHYS PhysHighest, size_t uAlignment) + { +- NOREF(fExecutable); +- + int rc; + void *pvMap = NULL; + const char *pszName = NULL; + uint32 addressSpec = B_ANY_KERNEL_ADDRESS; + uint32 fLock = ~0U; ++ PRTR0MEMOBJHAIKU pMemHaiku; ++ ++ NOREF(fExecutable); ++ + LogFlowFunc(("ppMem=%p cb=%u, fExecutable=%s, type=%08x, PhysHighest=%RX64 uAlignment=%u\n", ppMem,(unsigned)cb, + fExecutable ? "true" : "false", type, PhysHighest,(unsigned)uAlignment)); + +@@ -201,7 +203,6 @@ static int rtR0MemObjNativeAllocArea(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, + } + + /* Create the object. */ +- PRTR0MEMOBJHAIKU pMemHaiku; + pMemHaiku = (PRTR0MEMOBJHAIKU)rtR0MemObjNew(sizeof(RTR0MEMOBJHAIKU), type, NULL, cb); + if (RT_UNLIKELY(!pMemHaiku)) + return VERR_NO_MEMORY; +@@ -277,11 +278,13 @@ int rtR0MemObjNativeAllocPhysNC(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, RTHCPHYS + + int rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJINTERNAL ppMem, RTHCPHYS Phys, size_t cb, uint32_t uCachePolicy) + { ++ PRTR0MEMOBJHAIKU pMemHaiku; ++ + AssertReturn(uCachePolicy == RTMEM_CACHE_POLICY_DONT_CARE, VERR_NOT_SUPPORTED); + LogFlowFunc(("ppMem=%p Phys=%08x cb=%u uCachePolicy=%x\n", ppMem, Phys,(unsigned)cb, uCachePolicy)); + + /* Create the object. */ +- PRTR0MEMOBJHAIKU pMemHaiku = (PRTR0MEMOBJHAIKU)rtR0MemObjNew(sizeof(*pMemHaiku), RTR0MEMOBJTYPE_PHYS, NULL, cb); ++ pMemHaiku = (PRTR0MEMOBJHAIKU)rtR0MemObjNew(sizeof(*pMemHaiku), RTR0MEMOBJTYPE_PHYS, NULL, cb); + if (!pMemHaiku) + return VERR_NO_MEMORY; + +@@ -311,15 +314,16 @@ int rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJINTERNAL ppMem, RTHCPHYS Phys, size_t + static int rtR0MemObjNativeLockInMap(PPRTR0MEMOBJINTERNAL ppMem, void *pvStart, size_t cb, uint32_t fAccess, + RTR0PROCESS R0Process, int fFlags) + { +- NOREF(fAccess); + int rc; + team_id TeamId = B_SYSTEM_TEAM; ++ PRTR0MEMOBJHAIKU pMemHaiku; ++ NOREF(fAccess); + + LogFlowFunc(("ppMem=%p pvStart=%p cb=%u fAccess=%x R0Process=%d fFlags=%x\n", ppMem, pvStart, cb, fAccess, R0Process, + fFlags)); + + /* Create the object. */ +- PRTR0MEMOBJHAIKU pMemHaiku = (PRTR0MEMOBJHAIKU)rtR0MemObjNew(sizeof(*pMemHaiku), RTR0MEMOBJTYPE_LOCK, pvStart, cb); ++ pMemHaiku = (PRTR0MEMOBJHAIKU)rtR0MemObjNew(sizeof(*pMemHaiku), RTR0MEMOBJTYPE_LOCK, pvStart, cb); + if (RT_UNLIKELY(!pMemHaiku)) + return VERR_NO_MEMORY; + +@@ -605,10 +609,11 @@ RTHCPHYS rtR0MemObjNativeGetPagePhysAddr(PRTR0MEMOBJINTERNAL pMem, size_t iPage) + team_id TeamId = B_SYSTEM_TEAM; + physical_entry aPhysMap[2]; + int32 cPhysMap = 2; /** @todo r=ramshankar: why not use RT_ELEMENTS? */ ++ void *pb; + + if (pMemHaiku->Core.u.Lock.R0Process != NIL_RTR0PROCESS) + TeamId = (team_id)pMemHaiku->Core.u.Lock.R0Process; +- void *pb = pMemHaiku->Core.pv + (iPage << PAGE_SHIFT); ++ pb = pMemHaiku->Core.pv + (iPage << PAGE_SHIFT); + + rc = get_memory_map_etc(TeamId, pb, B_PAGE_SIZE, aPhysMap, &cPhysMap); + if (rc < B_OK || cPhysMap < 1) +diff --git a/src/VBox/Runtime/r0drv/haiku/semevent-r0drv-haiku.c b/src/VBox/Runtime/r0drv/haiku/semevent-r0drv-haiku.c +index 9000aef..b94af77 100644 +--- a/src/VBox/Runtime/r0drv/haiku/semevent-r0drv-haiku.c ++++ b/src/VBox/Runtime/r0drv/haiku/semevent-r0drv-haiku.c +@@ -66,12 +66,15 @@ RTDECL(int) RTSemEventCreate(PRTSEMEVENT phEventSem) + + RTDECL(int) RTSemEventCreateEx(PRTSEMEVENT phEventSem, uint32_t fFlags, RTLOCKVALCLASS hClass, const char *pszNameFmt, ...) + { ++ PRTSEMEVENTINTERNAL pThis; ++ + AssertCompile(sizeof(RTSEMEVENTINTERNAL) > sizeof(void *)); + AssertReturn(!(fFlags & ~(RTSEMEVENT_FLAGS_NO_LOCK_VAL | RTSEMEVENT_FLAGS_BOOTSTRAP_HACK)), VERR_INVALID_PARAMETER); + Assert(!(fFlags & RTSEMEVENT_FLAGS_BOOTSTRAP_HACK) || (fFlags & RTSEMEVENT_FLAGS_NO_LOCK_VAL)); ++ dprintf("phEventSem: %p\n", phEventSem); + AssertPtrReturn(phEventSem, VERR_INVALID_POINTER); + +- PRTSEMEVENTINTERNAL pThis = (PRTSEMEVENTINTERNAL)RTMemAllocZ(sizeof(*pThis)); ++ pThis = (PRTSEMEVENTINTERNAL)RTMemAllocZ(sizeof(*pThis)); + if (!pThis) + return VERR_NO_MEMORY; + +diff --git a/src/VBox/Runtime/r0drv/haiku/semeventmulti-r0drv-haiku.c b/src/VBox/Runtime/r0drv/haiku/semeventmulti-r0drv-haiku.c +index 2e4fc31..b0cf6ce 100644 +--- a/src/VBox/Runtime/r0drv/haiku/semeventmulti-r0drv-haiku.c ++++ b/src/VBox/Runtime/r0drv/haiku/semeventmulti-r0drv-haiku.c +@@ -76,7 +76,7 @@ RTDECL(int) RTSemEventMultiCreateEx(PRTSEMEVENTMULTI phEventMultiSem, uint32_t + pThis->u32Magic = RTSEMEVENTMULTI_MAGIC; + pThis->cRefs = 1; + pThis->SemId = create_sem(0, "IPRT Semaphore Event Multi"); +- if (pThis->SemId < B_OK) ++ if (pThis->SemId >= B_OK) + { + set_sem_owner(pThis->SemId, B_SYSTEM_TEAM); + *phEventMultiSem = pThis; +diff --git a/src/VBox/Runtime/r0drv/haiku/semfastmutex-r0drv-haiku.c b/src/VBox/Runtime/r0drv/haiku/semfastmutex-r0drv-haiku.c +index 3b28b1a..1c66df5 100644 +--- a/src/VBox/Runtime/r0drv/haiku/semfastmutex-r0drv-haiku.c ++++ b/src/VBox/Runtime/r0drv/haiku/semfastmutex-r0drv-haiku.c +@@ -57,10 +57,13 @@ typedef struct RTSEMFASTMUTEXINTERNAL + + RTDECL(int) RTSemFastMutexCreate(PRTSEMFASTMUTEX phFastMtx) + { ++ PRTSEMFASTMUTEXINTERNAL pThis; ++ + AssertCompile(sizeof(RTSEMFASTMUTEXINTERNAL) > sizeof(void *)); ++ dprintf("phFastMtx: %p\n", phFastMtx); + AssertPtrReturn(phFastMtx, VERR_INVALID_POINTER); + +- PRTSEMFASTMUTEXINTERNAL pThis = (PRTSEMFASTMUTEXINTERNAL)RTMemAllocZ(sizeof(*pThis)); ++ pThis = (PRTSEMFASTMUTEXINTERNAL)RTMemAllocZ(sizeof(*pThis)); + if (RT_UNLIKELY(!pThis)) + return VERR_NO_MEMORY; + +diff --git a/src/VBox/Runtime/r0drv/haiku/semmutex-r0drv-haiku.c b/src/VBox/Runtime/r0drv/haiku/semmutex-r0drv-haiku.c +index 9e8f3ba..5d238d4 100644 +--- a/src/VBox/Runtime/r0drv/haiku/semmutex-r0drv-haiku.c ++++ b/src/VBox/Runtime/r0drv/haiku/semmutex-r0drv-haiku.c +@@ -65,16 +65,19 @@ typedef struct RTSEMMUTEXINTERNAL + + RTDECL(int) RTSemMutexCreate(PRTSEMMUTEX phMutexSem) + { ++ PRTSEMMUTEXINTERNAL pThis; ++ + AssertCompile(sizeof(RTSEMMUTEXINTERNAL) > sizeof(void *)); ++ dprintf("phMutexSem: %p\n", phMutexSem); + AssertPtrReturn(phMutexSem, VERR_INVALID_POINTER); + +- PRTSEMMUTEXINTERNAL pThis = (PRTSEMMUTEXINTERNAL)RTMemAllocZ(sizeof(*pThis)); ++ pThis = (PRTSEMMUTEXINTERNAL)RTMemAllocZ(sizeof(*pThis)); + if (RT_UNLIKELY(!pThis)) + return VERR_NO_MEMORY; + + pThis->u32Magic = RTSEMMUTEX_MAGIC; + pThis->SemId = create_sem(0, "IPRT Mutex Semaphore"); +- if (pThis->SemId < B_OK) ++ if (pThis->SemId >= B_OK) + { + pThis->OwnerId = -1; + pThis->cRecursion = 0; +@@ -215,7 +218,7 @@ RTDECL(int) RTSemMutexRelease(RTSEMMUTEX hMutexSem) + if (--pThis->cRecursion == 0) + { + pThis->OwnerId == -1; +- release_sem(pThis->SemId); ++ release_sem_etc(pThis->SemId, 1, B_DO_NOT_RESCHEDULE); + } + + return VINF_SUCCESS; +diff --git a/src/VBox/Runtime/r0drv/haiku/spinlock-r0drv-haiku.c b/src/VBox/Runtime/r0drv/haiku/spinlock-r0drv-haiku.c +index d60e8cc..cd044cf 100644 +--- a/src/VBox/Runtime/r0drv/haiku/spinlock-r0drv-haiku.c ++++ b/src/VBox/Runtime/r0drv/haiku/spinlock-r0drv-haiku.c +@@ -66,14 +66,15 @@ typedef struct RTSPINLOCKINTERNAL + + RTDECL(int) RTSpinlockCreate(PRTSPINLOCK pSpinlock, uint32_t fFlags, const char *pszName) + { ++ PRTSPINLOCKINTERNAL pSpinlockInt; + RT_ASSERT_PREEMPTIBLE(); + NOREF(pszName); + + /* + * Allocate. + */ +- AssertCompile(sizeof(RTSPINLOCKINTERNAL) > sizeof(void *)); +- PRTSPINLOCKINTERNAL pSpinlockInt = (PRTSPINLOCKINTERNAL)RTMemAllocZ(sizeof(*pSpinlockInt)); ++// AssertCompile(sizeof(RTSPINLOCKINTERNAL) > sizeof(void *)); ++ pSpinlockInt = (PRTSPINLOCKINTERNAL)RTMemAllocZ(sizeof(*pSpinlockInt)); + if (RT_UNLIKELY(!pSpinlockInt)) + return VERR_NO_MEMORY; + +diff --git a/src/VBox/Runtime/r3/haiku/rtProcInitExePath-haiku.cpp b/src/VBox/Runtime/r3/haiku/rtProcInitExePath-haiku.cpp +index ca7d829..99afe4e 100644 +--- a/src/VBox/Runtime/r3/haiku/rtProcInitExePath-haiku.cpp ++++ b/src/VBox/Runtime/r3/haiku/rtProcInitExePath-haiku.cpp +@@ -31,6 +31,7 @@ + #ifdef RT_OS_HAIKU + # include + #endif ++#include + + #include + #include +@@ -51,6 +52,7 @@ DECLHIDDEN(int) rtProcInitExePath(char *pszPath, size_t cchPath) + */ + status = get_next_image_info(0, &Cookie, &ImageInfo); + AssertReturn((status == B_OK), VERR_INTERNAL_ERROR); ++fprintf(stderr, "p='%s'\n", ImageInfo.name); + + int rc = rtPathFromNativeCopy(pszPath, MIN(cchPath, MAXPATHLEN), ImageInfo.name, NULL); + AssertMsgRCReturn(rc, ("rc=%Rrc pszLink=\"%s\"\nhex: %.*Rhxs\n", rc, pszPath, MIN(cchPath, MAXPATHLEN), pszPath), rc); +diff --git a/src/VBox/Runtime/r3/posix/utf8-posix.cpp b/src/VBox/Runtime/r3/posix/utf8-posix.cpp +index c5c1607..f3e6d59 100644 +--- a/src/VBox/Runtime/r3/posix/utf8-posix.cpp ++++ b/src/VBox/Runtime/r3/posix/utf8-posix.cpp +@@ -173,7 +173,7 @@ static int rtstrConvertCached(const void *pvInput, size_t cbInput, const char *p + iconv_t hIconv = (iconv_t)*phIconv; + if (hIconv == (iconv_t)-1) + { +-#ifdef RT_OS_SOLARIS ++#if defined(RT_OS_HAIKU) || defined(RT_OS_SOLARIS) + /* Solaris doesn't grok empty codeset strings, so help it find the current codeset. */ + if (!*pszInputCS) + pszInputCS = rtStrGetLocaleCodeset(); +@@ -304,7 +304,7 @@ static int rtStrConvertUncached(const void *pvInput, size_t cbInput, const char + /* + * Create conversion object. + */ +-#ifdef RT_OS_SOLARIS ++#if defined(RT_OS_HAIKU) || defined(RT_OS_SOLARIS) + /* Solaris doesn't grok empty codeset strings, so help it find the current codeset. */ + if (!*pszInputCS) + pszInputCS = rtStrGetLocaleCodeset(); +diff --git a/src/libs/kStuff/kStuff/include/k/kDefs.h b/src/libs/kStuff/kStuff/include/k/kDefs.h +index 0f2215f..064d62d 100644 +--- a/src/libs/kStuff/kStuff/include/k/kDefs.h ++++ b/src/libs/kStuff/kStuff/include/k/kDefs.h +@@ -60,8 +60,10 @@ + #define K_OS_SOLARIS 9 + /** Windows. */ + #define K_OS_WINDOWS 10 ++/** Haiku */ ++#define K_OS_HAIKU 11 + /** The max K_OS_* value (exclusive). */ +-#define K_OS_MAX 11 ++#define K_OS_MAX 12 + /** @} */ + + /** @def K_OS +@@ -82,6 +84,8 @@ + # define K_OS K_OS_DRAGONFLY + # elif defined(__FreeBSD__) /*??*/ + # define K_OS K_OS_FREEBSD ++# elif defined(__HAIKU__) ++# define K_OS K_OS_HAIKU + # elif defined(__gnu_linux__) + # define K_OS K_OS_LINUX + # elif defined(__NetBSD__) /*??*/ +-- +1.8.3.4 + diff --git a/app-emulation/virtualbox-guest-additions/virtualbox_guest_additions-4.3.53_svn.recipe b/app-emulation/virtualbox-guest-additions/virtualbox_guest_additions-4.3.53_svn.recipe index e78aa103a..b95af61af 100644 --- a/app-emulation/virtualbox-guest-additions/virtualbox_guest_additions-4.3.53_svn.recipe +++ b/app-emulation/virtualbox-guest-additions/virtualbox_guest_additions-4.3.53_svn.recipe @@ -8,8 +8,7 @@ This package contains the VirtualBox kernel modules and user-space \ tools for Haiku guests. " HOMEPAGE="http://www.virtualbox.org/" -SRC_URI="svn+http://www.virtualbox.org/svn/vbox/trunk#51740" -#CHECKSUM_SHA256="" +SRC_URI="svn+http://www.virtualbox.org/svn/vbox/trunk#53373" #TODO:check user manual for full list COPYRIGHT="2003-2014 Oracle Corporation." #TODO:check user manual for full list @@ -17,7 +16,7 @@ LICENSE=" GNU GPL v2 CDDL v1 " -REVISION="1" +REVISION="2" ARCHITECTURES="x86_gcc2 x86 x86_64" PROVIDES=" @@ -27,15 +26,12 @@ PROVIDES=" cmd:VBoxTray$secondaryArchSuffix = $portVersion " -PATCHES="vbox-$portVersion.patch" - REQUIRES=" haiku$secondaryArchSuffix >= $haikuVersion openssl$secondaryArchSuffix >= 1.0.0 lib:libiconv$secondaryArchSuffix lib:libz$secondaryArchSuffix lib:libpng$secondaryArchSuffix -# lib:libstdc++$secondaryArchSuffix lib:libcurl$secondaryArchSuffix " @@ -52,6 +48,7 @@ BUILD_PREREQUIRES=" haiku_x86 >= $haikuVersion haiku${secondaryArchSuffix}_devel >= $haikuVersion cmd:mkisofs + cmd:grep cmd:gcc$secondaryArchSuffix cmd:ld$secondaryArchSuffix cmd:sed @@ -59,6 +56,8 @@ BUILD_PREREQUIRES=" cmd:yasm " +PATCHES="virtualbox_guest_additions-$portVersion.patchset" + BUILD() { # use the checked-out kBuild for now @@ -71,23 +70,28 @@ BUILD() INSTALL() { - op="out/haiku.x86/strict" - ap=$op/bin/additions + cd out/haiku.x86/strict/bin/additions + mkdir -p $addOnsDir/kernel/{generic,drivers/bin,drivers/dev/misc} - tad="$addOnsDir" - tbd="$binDir" + cp vboxguest $addOnsDir/kernel/generic + cp vboxdev $addOnsDir/kernel/drivers/bin + ln -fs ../../bin/vboxdev $addOnsDir/kernel/drivers/dev/misc - mkdir -p "$tad/kernel/generic" - mkdir -p "$tad/kernel/drivers/bin" - cp $ap/vboxguest "$tad/kernel/generic/" - cp $ap/vboxdev "$tad/kernel/drivers/bin/" - mkdir -p "$tad/kernel/drivers/dev/misc" - ln -fs ../../bin/vboxdev "$tad/kernel/drivers/dev/misc/" - mkdir -p "$tad/kernel/file_systems" - #cp $ap/vboxsf "$tad/kernel/file_systems/" +# mkdir -p $addOnsDir/kernel/file_systems +# cp vboxsf $addOnsDir/kernel/file_systems - mkdir -p "$tbd" - cp $ap/VBoxControl "$tbd/" - cp $ap/VBoxService "$tbd/" - cp $ap/VBoxTray "$tbd/" +# mkdir -p $addOnsDir/{input_server/filters,input_server/devices} +# cp VBoxMouseFilter $addOnsDir/input_server/filters +# cp VBoxMouse $addOnsDir/input_server/devices + +# mkdir -p $addOnsDir/{accelerants,kernel/drivers/dev/graphics} +# cp vboxvideo $addOnsDir/kernel/drivers/bin +# ln -fs ../../bin/vboxvideo $addOnsDir/kernel/drivers/dev/graphics +# cp vboxvideo.accelerant $addOnsDir/accelerants +# + mkdir -p $binDir + cp VBoxControl $binDir + cp VBoxService $binDir + cp VBoxTray $binDir } + diff --git a/app-text/antiword/patches/antiword-0.37.patch b/app-text/antiword/patches/antiword-0.37.patch index 117c4e06a..2873294b8 100644 --- a/app-text/antiword/patches/antiword-0.37.patch +++ b/app-text/antiword/patches/antiword-0.37.patch @@ -6,7 +6,7 @@ diff -Naur antiword-0.37/antiword.h antiword-0.37-haiku/antiword.h #define ANTIWORD_DIR "antiword" #define FONTNAMES_FILE "fontnames" +#elif defined(__haiku) -+#define GLOBAL_ANTIWORD_DIR "/boot/common/data/antiword" ++#define GLOBAL_ANTIWORD_DIR "/boot/system/data/antiword" +#define ANTIWORD_DIR "antiword" +#define FONTNAMES_FILE "fontnames" #elif defined(__CYGMING__) @@ -28,7 +28,7 @@ diff -Naur antiword-0.37/Makefile.haiku antiword-0.37-haiku/Makefile.haiku +INSTALL_DATA = $(INSTALL) + +# must be equal to DEBUG or NDEBUG -+DB = DEBUG ++DB = NDEBUG +# Optimization: -O or debugging: -g +OPT = -O2 + diff --git a/dev-games/ode/ode-0.12.recipe b/dev-games/ode/ode-0.12.recipe index f9129d0d0..09da5fc0d 100644 --- a/dev-games/ode/ode-0.12.recipe +++ b/dev-games/ode/ode-0.12.recipe @@ -36,6 +36,7 @@ BUILD_PREREQUIRES=" cmd:mkdepend cmd:gcc$secondaryArchSuffix cmd:ld$secondaryArchSuffix + cmd:awk " PATCHES="ode-0.12.patch" diff --git a/dev-libs/glib/glib-1.2.10.recipe b/dev-libs/glib/glib-1.2.10.recipe index 2e34bc13b..92be8b050 100644 --- a/dev-libs/glib/glib-1.2.10.recipe +++ b/dev-libs/glib/glib-1.2.10.recipe @@ -22,8 +22,8 @@ COPYRIGHT="1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald REVISION="1" -ARCHITECTURES="?x86_gcc2 x86" -SECONDARY_ARCHITECTURES="?x86_gcc2 x86" +ARCHITECTURES="x86_gcc2 x86" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" PROVIDES=" glib$secondaryArchSuffix = $portVersion compat >= 1 diff --git a/dev-libs/libffi/libffi-3.2.1.recipe b/dev-libs/libffi/libffi-3.2.1.recipe index e5b624282..80d18f53f 100644 --- a/dev-libs/libffi/libffi-3.2.1.recipe +++ b/dev-libs/libffi/libffi-3.2.1.recipe @@ -6,8 +6,8 @@ HOMEPAGE="http://sourceware.org/libffi" LICENSE="MIT" REVISION="2" -ARCHITECTURES="x86_gcc2 x86 x86_64" -SECONDARY_ARCHITECTURES="x86_gcc2 x86" +ARCHITECTURES="!x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="!x86_gcc2 x86" SRC_URI="ftp://sourceware.org/pub/libffi/libffi-$portVersion.tar.gz" CHECKSUM_SHA256="d06ebb8e1d9a22d19e38d63fdb83954253f39bedc5d46232a05645685722ca37" diff --git a/dev-libs/libidl/libidl-0.6.8.recipe b/dev-libs/libidl/libidl-0.6.8.recipe index af0895bf4..aa7268aa0 100644 --- a/dev-libs/libidl/libidl-0.6.8.recipe +++ b/dev-libs/libidl/libidl-0.6.8.recipe @@ -12,8 +12,8 @@ CHECKSUM_SHA256="50e8f7674815e42a6e8be32610838d9b7da91b3043784d2b69d17b79c7203e7 COPYRIGHT="1998-1999 Andrew T. Veliath" LICENSE="GNU LGPL v2" REVISION="1" -ARCHITECTURES="x86 ?x86_gcc2" -SECONDARY_ARCHITECTURES="x86 ?x86_gcc2" +ARCHITECTURES="x86_gcc2 x86" +SECONDARY_ARCHITECTURES="x86_gcc2 x86" PROVIDES=" libidl$secondaryArchSuffix = $portVersion @@ -23,7 +23,7 @@ PROVIDES=" REQUIRES=" haiku$secondaryArchSuffix >= $haikuVersion - lib:libglib + lib:libglib$secondaryArchSuffix " BUILD_REQUIRES=" diff --git a/dev-python/argh/argh-0.26.1.recipe b/dev-python/argh/argh-0.26.1.recipe new file mode 100644 index 000000000..954eabb67 --- /dev/null +++ b/dev-python/argh/argh-0.26.1.recipe @@ -0,0 +1,55 @@ +SUMMARY="An unobtrusive argparse wrapper with natural syntax" +DESCRIPTION="Building a command-line interface? \ +Found yourself uttering "argh!" while struggling with the API of argparse? \ +Don't like the complexity but need the power? +Argh is a smart wrapper for argparse. Argparse is a very powerful tool; \ +Argh just makes it easy to use." +HOMEPAGE="https://pypi.python.org/pypi/argh" + +SRC_URI="https://pypi.python.org/packages/source/a/argh/argh-0.26.1.tar.gz" +CHECKSUM_SHA256="06a7442cb9130fb8806fe336000fcf20edf1f2f8ad205e7b62cec118505510db" +LICENSE="GNU LGPL v3" +COPYRIGHT="2010—2014 Andrey Mikhaylenko and contributors" +REVISION="1" + +ARCHITECTURES="x86 x86_gcc2 x86_64" + +SOURCE_DIR="argh-$portVersion" + +PROVIDES=" + argh = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + cmd:python + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + python_setuptools + " + +BUILD_PREREQUIRES=" + cmd:python + cmd:gcc + " + +BUILD() +{ + $portPackageLinksDir/cmd~python/bin/python setup.py build +} + +INSTALL() +{ + # GENERIC: all python_setuptools-based installs need this + python=$portPackageLinksDir/cmd~python/bin/python + pythonVersion=$($python --version 2>&1 | sed 's/Python //' | head -c3) + installLocation=$prefix/lib/python$pythonVersion/vendor-packages/ + export PYTHONPATH=$installLocation:$PYTHONPATH + mkdir -p $installLocation + + $python setup.py install \ + --single-version-externally-managed \ + --root=/ --prefix=$prefix +} diff --git a/dev-python/pathtools/pathtools-0.1.2.recipe b/dev-python/pathtools/pathtools-0.1.2.recipe new file mode 100644 index 000000000..0cda667d2 --- /dev/null +++ b/dev-python/pathtools/pathtools-0.1.2.recipe @@ -0,0 +1,56 @@ +SUMMARY="HTTP library for human beings" +DESCRIPTION=" + Requests is an Apache2 Licensed HTTP library, written in Python, \ + for human beings. +" +HOMEPAGE=" + http://python-requests.org/ + http://pypi.python.org/pypi/requests + " +SRC_URI="https://pypi.python.org/packages/source/p/pathtools/pathtools-0.1.2.tar.gz" +CHECKSUM_SHA256="7c35c5421a39bb82e58018febd90e3b6e5db34c5443aaaf742b3f33d4655f1c0" +LICENSE="MIT" +COPYRIGHT="2010 Yesudeep Mangalapilly" +REVISION="1" + +ARCHITECTURES="x86 x86_gcc2 x86_64" + +SOURCE_DIR="pathtools-$portVersion" + +PROVIDES=" + pathtools = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + cmd:python + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + python_setuptools + " + +BUILD_PREREQUIRES=" + cmd:python + cmd:gcc + " + +BUILD() +{ + $portPackageLinksDir/cmd~python/bin/python setup.py build +} + +INSTALL() +{ + # GENERIC: all python_setuptools-based installs need this + python=$portPackageLinksDir/cmd~python/bin/python + pythonVersion=$($python --version 2>&1 | sed 's/Python //' | head -c3) + installLocation=$prefix/lib/python$pythonVersion/vendor-packages/ + export PYTHONPATH=$installLocation:$PYTHONPATH + mkdir -p $installLocation + + $python setup.py install \ + --single-version-externally-managed \ + --root=/ --prefix=$prefix +} diff --git a/dev-python/python_setuptools/python_setuptools-5.3.recipe b/dev-python/python_setuptools/python_setuptools-5.3.recipe index f4b5afb01..8ec7dde6f 100644 --- a/dev-python/python_setuptools/python_setuptools-5.3.recipe +++ b/dev-python/python_setuptools/python_setuptools-5.3.recipe @@ -27,6 +27,7 @@ BUILD_REQUIRES="" BUILD_PREREQUIRES=" haiku_devel >= $haikuVersion cmd:python + cmd:sed " BUILD() diff --git a/dev-python/pyyaml/pyyaml-3.11.recipe b/dev-python/pyyaml/pyyaml-3.11.recipe new file mode 100644 index 000000000..19ad24e4c --- /dev/null +++ b/dev-python/pyyaml/pyyaml-3.11.recipe @@ -0,0 +1,66 @@ +SUMMARY="YAML parser and emitter for Python" +DESCRIPTION=" +YAML is a data serialization format designed for human readability \ +and interaction with scripting languages. \ +PyYAML is a YAML parser and emitter for Python. + +PyYAML features a complete YAML 1.1 parser, Unicode support, \ +pickle support, capable extension API, and sensible error messages. \ +PyYAML supports standard YAML tags and \ +provides Python-specific tags that allow to represent an arbitrary Python object. + +PyYAML is applicable for a broad range of tasks from \ +complex configuration files to object serialization and persistance. +" +HOMEPAGE=" + http://pyyaml.org/ + http://pypi.python.org/pypi/PyYAML + " +SRC_URI="https://pypi.python.org/packages/source/P/PyYAML/PyYAML-3.11.tar.gz" +CHECKSUM_SHA256="c36c938a872e5ff494938b33b14aaa156cb439ec67548fcab3535bb78b0846e8" +LICENSE="MIT" +COPYRIGHT="2006 Kirill Simonov" +REVISION="1" + +ARCHITECTURES="x86 x86_gcc2 x86_64" + +SOURCE_DIR="PyYAML-$portVersion" + +PROVIDES=" + pyyaml = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + cmd:python + " + +#TODO: eventually depend on http://pyyaml.org/wiki/LibYAML +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + cmd:sed + python_setuptools + " + +BUILD_PREREQUIRES=" + cmd:python + cmd:gcc + " + +BUILD() +{ + $portPackageLinksDir/cmd~python/bin/python setup.py build +} + +INSTALL() +{ + # GENERIC: all python_setuptools-based installs need this + python=$portPackageLinksDir/cmd~python/bin/python + pythonVersion=$($python --version 2>&1 | sed 's/Python //' | head -c3) + installLocation=$prefix/lib/python$pythonVersion/vendor-packages/ + export PYTHONPATH=$installLocation:$PYTHONPATH + mkdir -p $installLocation + + $python setup.py install \ + --prefix=$prefix +} diff --git a/dev-python/urllib3/urllib3-1.9.1.recipe b/dev-python/urllib3/urllib3-1.9.1.recipe new file mode 100644 index 000000000..50bbe7846 --- /dev/null +++ b/dev-python/urllib3/urllib3-1.9.1.recipe @@ -0,0 +1,64 @@ +SUMMARY="HTTP library with thread-safe connection pooling, file post, and more." +DESCRIPTION=" +- Re-use the same socket connection for multiple requests + (HTTPConnectionPool and HTTPSConnectionPool) + (with optional client-side certificate verification). +- File posting (encode_multipart_formdata). +- Built-in redirection and retries (optional). +- Supports gzip and deflate decoding. +- Thread-safe and sanity-safe. +- Works with AppEngine, gevent, and eventlib. +- Tested on Python 2.6+, Python 3.2+, and PyPy, with 100% unit test coverage. +- Small and easy to understand codebase perfect for extending and building upon. + For a more comprehensive solution, have a look at \ + Requests which is also powered by urllib3 +" +HOMEPAGE=" + http://urllib3.readthedocs.org/ + https://pypi.python.org/pypi/urllib3 + " +SRC_URI="https://github.com/shazow/urllib3/archive/1.9.1.tar.gz" +CHECKSUM_SHA256="baf4dbc6d78f4a7bb28a44d3772cd8f3b24df5282f5cb72f3d85106aa06cf2a3" +LICENSE="MIT" +COPYRIGHT="2008-2014 Andrey Petrov and contributors" +REVISION="1" + +ARCHITECTURES="x86 x86_gcc2 x86_64" + +SOURCE_DIR="urllib3-$portVersion" + +PROVIDES=" + urllib3 = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + cmd:python + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD_PREREQUIRES=" + cmd:python + cmd:gcc + " + +BUILD() +{ + $portPackageLinksDir/cmd~python/bin/python setup.py build +} + +INSTALL() +{ + # GENERIC: all python_setuptools-based installs need this + python=$portPackageLinksDir/cmd~python/bin/python + pythonVersion=$($python --version 2>&1 | sed 's/Python //' | head -c3) + installLocation=$prefix/lib/python$pythonVersion/vendor-packages/ + export PYTHONPATH=$installLocation:$PYTHONPATH + mkdir -p $installLocation + + $python setup.py install \ + --prefix=$prefix +} diff --git a/dev-python/watchdog/watchdog-0.8.2.recipe b/dev-python/watchdog/watchdog-0.8.2.recipe new file mode 100644 index 000000000..bf2ef3f52 --- /dev/null +++ b/dev-python/watchdog/watchdog-0.8.2.recipe @@ -0,0 +1,58 @@ +SUMMARY="Filesystem events monitoring" +DESCRIPTION="Python API and shell utilities to monitor file system events." +HOMEPAGE="https://pypi.python.org/pypi/watchdog" + +SRC_URI="https://pypi.python.org/packages/source/w/watchdog/watchdog-0.8.2.tar.gz" +CHECKSUM_SHA256="33a9ab3ce2e6b1aca4d2a50752231668d69bdba4ab096d9742195ccfbef1e023" +LICENSE="Apache v2" +COPYRIGHT=" + 2011 Yesudeep Mangalapilly + 2012 Google, Inc. + " +REVISION="1" + +ARCHITECTURES="x86 x86_gcc2 x86_64" + +SOURCE_DIR="watchdog-$portVersion" + +PROVIDES=" + watchdog = $portVersion + cmd:watchmedo + " + +REQUIRES=" + haiku >= $haikuVersion + cmd:python + argh + pathtools + pyyaml + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + python_setuptools + " + +BUILD_PREREQUIRES=" + cmd:python + cmd:gcc + " + +BUILD() +{ + $portPackageLinksDir/cmd~python/bin/python setup.py build +} + +INSTALL() +{ + # GENERIC: all python_setuptools-based installs need this + python=$portPackageLinksDir/cmd~python/bin/python + pythonVersion=$($python --version 2>&1 | sed 's/Python //' | head -c3) + installLocation=$prefix/lib/python$pythonVersion/vendor-packages/ + export PYTHONPATH=$installLocation:$PYTHONPATH + mkdir -p $installLocation + + $python setup.py install \ + --single-version-externally-managed \ + --root=/ --prefix=$prefix +} diff --git a/dev-util/astyle/astyle-2.03.recipe b/dev-util/astyle/astyle-2.05.recipe similarity index 85% rename from dev-util/astyle/astyle-2.03.recipe rename to dev-util/astyle/astyle-2.05.recipe index c9e945f34..4d3794786 100644 --- a/dev-util/astyle/astyle-2.03.recipe +++ b/dev-util/astyle/astyle-2.05.recipe @@ -5,13 +5,18 @@ re-formats C / C++ / C# / Java source files. It can be used from a command \ line, or it can be incorporated as classes in another C++ program. " HOMEPAGE="http://astyle.sourceforge.net" -SRC_URI="http://sourceforge.net/projects/astyle/files/astyle/astyle%202.03/astyle_2.03_linux.tar.gz" -CHECKSUM_SHA256="22b5249a0b8c9fab3b3bcd467abcb3c6b4a78458b528028634a83dca4c6ca389" +SRC_URI="http://sourceforge.net/projects/astyle/files/astyle/astyle%20${portVersion}/astyle_${portVersion}_linux.tar.gz" +CHECKSUM_SHA256="da34eb1f8f12e6f50f1cf674944c0db70c91b203008e11be0f57aa8267823a39" LICENSE="GNU LGPL v3" -COPYRIGHT="1998-2002 by Tal Davidson - 2006-2013 Jim Pattee" + +COPYRIGHT=" +1998-2002 by Tal Davidson \ +2006-2013 Jim Pattee +" + REVISION="1" -ARCHITECTURES="x86" +ARCHITECTURES="x86 x86_64 arm ppc" + if [ $effectiveTargetArchitecture != x86_gcc2 ]; then # x86_gcc2 is fine as primary target architecture as long as we're building # for a different secondary architecture. diff --git a/dev-util/indent/indent-2.2.10.recipe b/dev-util/indent/indent-2.2.10.recipe new file mode 100644 index 000000000..8330b4660 --- /dev/null +++ b/dev-util/indent/indent-2.2.10.recipe @@ -0,0 +1,78 @@ +SUMMARY="Indent program source files" +DESCRIPTION="The indent program can be used to make code easier to read. + It can also convert from one style of writing C to another. indent + understands a substantial amount about the syntax of C, but it also + attempts to cope with incomplete and misformed syntax. + " +HOMEPAGE="https://www.gnu.org/software/indent/" +REVISION="2" +ARCHITECTURES="x86 x86_gcc2" +LICENSE="GNU GPL v3" +COPYRIGHT="Copyright (c) 1999, 2000 Carlo Wood. All rights reserved. + Copyright (c) 1994, 1996, 1997 Joseph Arceneaux. All rights reserved. + Copyright (c) 1992, 2002, 2008 Free Software Foundation, Inc. All rights reserved. + Copyright (c) 1980 The Regents of the University of California. + Copyright (c) 1976 Board of Trustees of the University of Illinois. All rights reserved. + Copyright (c) 1985 Sun Microsystems, Inc.1998-2000 The Santa Cruz Operation + " + +SRC_URI="http://mirror.keystealth.org/gnu/indent/indent-2.2.10.tar.gz" +CHECKSUM_SHA256="8a9b41be5bfcab5d8c1be74204b10ae78789fc3deabea0775fdced8677292639" + +ARCHITECTURES="x86 x86_64 arm ppc" + +PROVIDES=" + indent = $portVersion + cmd:indent = $portVersion + cmd:texinfo2man = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + lib:libiconv$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + gettext$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:autopoint + cmd:autoreconf + cmd:awk + cmd:gcc + cmd:ld + cmd:libtoolize + cmd:make + cmd:find + " + +BUILD() +{ + libtoolize --force --copy --install + ./bootstrap + runConfigure ./configure + make $jobArgs +} + +INSTALL() +{ + make install + + # Clean up improperly placed documentation + mkdir -p $docDir/html + mv $prefix/doc/indent/* $docDir/html/ + rm -rf $prefix/doc +} + +TEST() +{ + make test + make check +} diff --git a/dev-util/indent/indent-2.2.11.recipe b/dev-util/indent/indent-2.2.11.recipe deleted file mode 100644 index bcc2e7068..000000000 --- a/dev-util/indent/indent-2.2.11.recipe +++ /dev/null @@ -1,39 +0,0 @@ -DESCRIPTION="Indent program source files" -HOMEPAGE="http://indent.isidore-it.eu/beautify.html" -SRC_URI="http://indent.isidore-it.eu/indent-2.2.11.tar.gz" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="sys-devel/gettext >= 0.17 - net-misc/rsync >= 3.0.7 - app-text/texi2html >= 1.82" -CHECKSUM_MD5="98beafca62472805a3739d3867d5d70f" -BUILD() -{ - cd indent-2.2.11 - libtoolize --force --copy --install - ./bootstrap - ./configure --prefix=`finddir B_COMMON_DIRECTORY` - make -} - -INSTALL() -{ - cd indent-2.2.11 - make install DESTDIR=${DESTDIR} -} - -TEST() -{ - cd indent-2.2.11 -# make test -# make check -} - -LICENSE="BSD (3-clause)" -COPYRIGHT="1999-2000 Carlo Wood. All rights reserved - 1994, 1996-1997 Joseph Arceneaux All rights reserved. - 1992, 2002, 2008 Free Software Foundation, Inc. All rights reserved. - 1985 Sun Microsystems, Inc. - 1980 The Regents of the University of California. - 1976 Board of Trustees of the University of Illinois. All rights reserved. - " diff --git a/games-emulation/visualboyadvance/visualboyadvance-1.8.recipe b/games-emulation/visualboyadvance/visualboyadvance-1.8.recipe index 29173fec3..ffd5e7a50 100644 --- a/games-emulation/visualboyadvance/visualboyadvance-1.8.recipe +++ b/games-emulation/visualboyadvance/visualboyadvance-1.8.recipe @@ -34,7 +34,7 @@ BUILD_REQUIRES=" devel:libpng$secondaryArchSuffix " BUILD_PREREQUIRES=" - cmd:nasm$secondaryArchSuffix + cmd:nasm cmd:make cmd:gcc$secondaryArchSuffix cmd:ld$secondaryArchSuffix diff --git a/games-strategy/homeworld_sdl/homeworld_sdl-0.6.recipe b/games-strategy/homeworld_sdl/homeworld_sdl-0.6.recipe new file mode 100644 index 000000000..8b688b187 --- /dev/null +++ b/games-strategy/homeworld_sdl/homeworld_sdl-0.6.recipe @@ -0,0 +1,74 @@ +SUMMARY="Homeworld is a space real-time strategy computer game." +DESCRIPTION=" +Homeworld is a real-time strategy computer \ +game, set and played in a 3D space environment. \ +Developed by Relic Entertainment, it was released \ +for the PC in 1998 to worldwide acclaim, winning \ +multiple awards for its novel gameplay and strong \ +single-player story. Relic Entertainment later released \ +the source code to the public under licence. +" +HOMEPAGE="http://www.homeworldsdl.org/" +COPYRIGHT="1999-2000 Sierra On-Line, Inc." +LICENSE="RE-INC-EULA" +SRC_URI="git+https://bitbucket.org/extrowerk/homeworld-sdl-haiku.git" +REVISION="1" +ARCHITECTURES="x86_gcc2 x86" +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + homeworld_sdl$secondaryArchSuffix = $portVersion + app:homeworld_sdl$secondaryArchSuffix = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libsdl$secondaryArchSuffix + lib:libGL$secondaryArchSuffix + lib:libglu$secondaryArchSuffix + #lib:mesa_swrast + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libsdl$secondaryArchSuffix + devel:libglu$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:autoconf + cmd:aclocal + cmd:libtool + cmd:yacc$secondaryArchSuffix + cmd:flex + " + +SOURCE_DIR="homeworld-sdl-haiku" + +BUILD() +{ + cd Haiku + echo "Bootstrapping Homewold_SDL" + bash ./bootstrap + echo "Configuring Homeworld_SDL" + runConfigure ../configure -C --bindir=$appsDir/Homeworld_SDL + echo "Building Homeworld_SDL" + make $jobArgs +} + +INSTALL() +{ + cd Haiku/src + echo "Striping debug symbols" + strip homeworld + echo "Creating bin directory for packaging Homeworld_SDL" + mkdir -p $appsDir/Homeworld_SDL + echo "Moving binary into the bin directory" + cp homeworld $appsDir/Homeworld_SDL/homeworld_sdl + cd .. + unzip ./Haiku_Extra/Homeworld_Haiku_Start.sh.zip + cp Homeworld_Haiku_Start.sh $appsDir/Homeworld_SDL/Start_Homeworld_SDL.sh + echo "Adding Homeworld_SDL to the Deskbar" + addAppDeskbarSymlink $appsDir/Start_Homeworld_SDL.sh Homeworld_SDL +} diff --git a/games-strategy/homeworld_sdl/licenses/RE-INC-EULA b/games-strategy/homeworld_sdl/licenses/RE-INC-EULA new file mode 100644 index 000000000..38dcd1ff2 --- /dev/null +++ b/games-strategy/homeworld_sdl/licenses/RE-INC-EULA @@ -0,0 +1,261 @@ +Homeworld © 1999-2000 Sierra On-Line, Inc. All Rights Reserved. +Homeworld is a registered trademark, and Sierra and Sierra Studios are +registered trademarks of Sierra On-Line, Inc. Relic is a trademark of Relic +Entertainment, Inc. + +------------------------------------------------------------------------------ + +This port of Homeworld is based on the original Homeworld source code released +by Relic Entertainment through the Relic Developers Network. It has been +edited for content and formatted to fit your OS. + +The original Homeworld source code in its entirety is available from the Relic +Developers Network website at http://www.relic.com/rdn/ + +This file contains a copy of the end-user license agreement presented with the +Homeworld source code from the Relic Developers Network. If you are using a +pre-built version of Homeworld, other pre-built libraries have been included +with the distribution which utilize their own licenses (particularly the GPL +and LGPL). Copies of these licenses have been included in additional +"COPYING_*" files with the pre-built package. + +Simple DirectMedia Layer (SDL) is licensed under the LGPL. The source code to +SDL is available at http://www.libsdl.org/ + +Headers for Glide 2 have also been thrown into the source package. They are +taken from the open-source Glide 2 library, which is licensed under the 3dfx +Glide General Public License. A copy of the license is included in the +"include/glide2" directory in the source package. + +------------------------------------------------------------------------------ + + Relic Entertainment Inc. TM + + END-USER LICENSE AGREEMENT FOR + RELIC ENTERTAINMENT INC. ("RELIC") SOFTWARE + + IMPORTANT-READ CAREFULLY: + + +This RELIC End-User License Agreement (the "Agreement") is a legal agreement +between you (either an individual or a single entity) and RELIC, for the use +of one or more elements of RELIC proprietary software, which may at RELIC's +discretion include computer code related to Homeworld 1 TM, tools or other +material related to creating content related to Homeworld 2 TM and/or +Impossible Creatures TM including without limitation associated media, printed +materials, and "online" or electronic documentation (individually or +collectively referred to as the "SOFTWARE PRODUCT"). The SOFTWARE PRODUCT may +also include any updates and supplements to the original SOFTWARE PRODUCT +provided to you by RELIC. Any software provided along with the SOFTWARE +PRODUCT that is associated with a separate end-user license agreement is +licensed to you under the terms of that license agreement. + +BY CLICKING "AGREE" BELOW, AND/OR BY INSTALLING, COPYING, DOWNLOADING, +ACCESSING OR OTHERWISE USING THE SOFTWARE PRODUCT, YOU AGREE TO BE BOUND BY +THE TERMS OF THIS AGREEMENT. IF YOU DO NOT AGREE TO THE TERMS OF THIS +AGREEMENT, DO NOT INSTALL OR USE THE SOFTWARE PRODUCT. + +This Agreement is made by and between you (the "LICENSEE") and RELIC. + +WHEREAS, RELIC is a game development company that owns certain tools, game +engines and other technology used to develop interactive entertainment +software games; and + +WHEREAS, LICENSEE wishes to utilize the SOFTWARE PRODUCT for non-commercial +purposes in accordance with the terms set forth herein; and + +WHEREAS, LICENSEE wishes to license from RELIC and RELIC wishes to license to +LICENSEE, the SOFTWARE PRODUCT and other information as deemed from time to +time appropriate by RELIC, all on the terms set forth herein; + +NOW, THEREFORE, in consideration of the mutual promises made herein, the +receipt and sufficiency of which is hereby acknowledged, the parties agree as +follows: + + +1. License + +1.1 License Grant. Provided that the LICENSEE complies with the terms set +forth herein, RELIC hereby grants LICENSEE a limited purpose, nonexclusive, +royalty-free, terminable, worldwide, non-transferable license to: + + (a) use, reproduce and modify the SOFTWARE PRODUCT and the MODIFIED SOFTWARE +(as defined in section 2.1) solely for non-commercial purposes; and + + (b) distribute the SOFTWARE PRODUCT and the MODIFIED SOFTWARE, solely for +non-commercial purposes, and only to registered members of RDN-RELIC +Developer's Network who have agreed to abide by the terms of this Agreement. + +For greater certainty, the term "for non-commercial purposes" as used in this +Agreement means that the use, reproduction, modification and/or distribution +of the SOFTWARE PRODUCT and/or MODIFIED SOFTWARE must be made free of any and +all charges or payments and, without limitation, must not entitle, directly or +indirectly, the LICENSEE, any related parties or third parties to receive any +financial consideration or compensation related to such use, reproduction, +modification and/or distribution. + +1.2 Updates. RELIC may from time to time, in its sole discretion, and without +any obligation on the part of RELIC, provide updates, error corrections, and +future versions of SOFTWARE PRODUCT to LICENSEE. Upon delivery, such updates, +error corrections and future versions shall be deemed part of the SOFTWARE +PRODUCT, as applicable, and governed by the terms and conditions of this +Agreement. + +1.3 Reservation of Rights. RELIC reserves all rights not explicitly granted +herein. + +1.4 Indemnity. LICENSEE hereby agrees that it is solely responsible for any +and all liability, claims, damages or losses arising, directly or indirectly, +from any and all LICENSEE use, reproduction, modification and distribution of +the SOFTWARE PRODUCT. LICENSEE shall defend, indemnify, and hold harmless +RELIC, its officers, directors, employees and agents against any and all +claims, damages, losses, or liabilities whatsoever arising out of LICENSEE's +use, reproduction, modification and/or distribution of the SOFTWARE PRODUCT. + +1.5 Trademarks. LICENSEE acknowledges and agrees that this Agreement does not +grant LICENSEE any right to use any trademarks or trade names of RELIC or +their licensors. All such marks shall remain the property of the respective +owner. + + +2. Intellectual Property + +2.1 Ownership. The LICENSEE acknowledges and agrees that if the SOFTWARE +PROGRAM is improved, modified, developed or otherwise amended by the LICENSEE +("MODIFIED SOFTWARE") the LICENSEE shall have, save and except for the limited +license granted to the LICENSEE pursuant to the terms and conditions of this +Agreement, no right, title or interest in and to the MODIFIED SOFTWARE as +modified or altered, whether modified by the LICENSEE or RELIC and whether or +not such modifications are authorized pursuant to this Agreement. +Specifically, the LICENSEE hereby assigns all right, title and interest +arising out of any such MODIFIED SOFTWARE to RELIC or any other entity as +RELIC shall require and the LICENSEE will execute such further and other +documents and do such further and other acts as may be necessary, in the sole +opinion of RELIC, to transfer all such right, title and interest in and to the +MODIFIED SOFTWARE from the LICENSEE to RELIC. If, to the extent that it may +be deemed that an assignment or grant of right under this section cannot be +made until after relevant works are in existence, the LICENSEE's acceptance of +the terms and conditions of this Agreement shall constitute an irrevocable +assignment of all right, title and interest in and to all complete or +incomplete works that make up the MODIFIED SOFTWARE. The LICENSEE hereby +irrevocably waives in whole any and all moral rights arising under the +Copyright Act (Canada), as amended from time to time, or other similar +legislation in any jurisdiction or at common law, which the LICENSEE may have +in the MODIFIED SOFTWARE. + + +3. Term + +3.1 Term. This Agreement shall become effective as of the date LICENSEE +downloads or installs the SOFTWARE PRODUCT and shall expire five (5) years +after such date. + +3.2 Termination. RELIC may, at its sole discretion and authority, terminate +this Agreement immediately upon notice including without limitation notice via +email to LICENSEE. The Agreement will terminate automatically upon LICENSEE's +breach of any term of this Agreement. Any notice sent or transmitted by RELIC +to the LICENSEE's last known or registered address will be deemed to have been +sent by RELIC and received by LICENSEE one (1) day after such sending or +transmission by RELIC. In the event that this Agreement is terminated for any +reason, the LICENSEE shall immediately and permanently cease use, +reproduction, modification or distribution of the SOFTWARE PRODUCT and +MODIFIED SOFTWARE and will destroy any and all software, code, associated +media and printed materials related to, directly or indirectly, the SOFTWARE +PRODUCT and/or the MODIFIED SOFTWARE. + +3.3 Survival. Sections 1.4, 1.5, 2.1, 3.2, 3.3, 4.1, 4.2, 5.1 and 7 shall +survive any expiration or termination of this Agreement. + + +4. Disclaimers, Warranties and Limitation of Liability + +4.1 NO WARRANTIES. RELIC AND ITS SUPPLIERS DISCLAIM ANY AND ALL WARRANTIES +WITH RESPECT TO THE SOFTWARE PRODUCT, EITHER EXPRESS OR IMPLIED, INCLUDING, +BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE. THE LICENSEE ACKNOWLEDGES THAT IT HAS NOT RELIED ON ANY +WARRANTY MADE BY RELIC OR ITS SUPPLIERS. THE SOFTWARE PRODUCT IS PROVIDED ON +AN "AS IS" BASIS WITH NO WARRANTY, EXPRESS OR IMPLIED AND RELIC HAS NO +OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS OR +MODIFICATIONS WITH RESPECT TO THE SOFTWARE PRODUCT TO THE LICENSEE. + +4.2 LIMITATION OF LIABILITY. IN NO EVENT SHALL RELIC OR ITS SUPPLIERS BE +LIABLE FOR ANY DAMAGES SUFFERED OR INCURRED BY THE LICENSEE OR ANY OTHER +PERSON OR ENTITY INCLUDING, WITHOUT LIMITATION, ANY SPECIAL, INCIDENTAL, +INDIRECT, PUNITIVE OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT +LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, LOSS OF REVENUE, BUSINESS +INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) +ARISING OUT OF THE USE OF OR INABILITY TO USE THE SOFTWARE PRODUCT, EVEN IF +RELIC HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + + +5. + +5.1 COPYRIGHT. All title and copyrights in and to the SOFTWARE PRODUCT +(including but not limited to any images, photographs, animations, video, +audio, music, text, and "applets" incorporated into the SOFTWARE PRODUCT), the +accompanying printed materials, and any copies of the SOFTWARE PRODUCT are +owned by RELIC or its suppliers. All title and intellectual property rights +in and to the content which may be accessed through use of the SOFTWARE +PRODUCT is the property of the respective content owner and may be protected +by applicable copyright or other intellectual property laws and treaties. +This Agreement grants LICENSEE no rights to use such content. If this +SOFTWARE PRODUCT contains documentation, which is provided only in electronic +form, LICENSEE may print one copy of such electronic documentation. LICENSEE +may not copy the printed materials accompanying the SOFTWARE PRODUCT. + +5.2 COPY PROTECTION. Use of the SOFTWARE PRODUCT may require additional RELIC +software for use of the SOFTWARE PRODUCT which may employ copy protection +technology to prevent the unauthorized copying of the SOFTWARE PRODUCT and/or +additional RELIC software. It is illegal to make unauthorized copies of the +SOFTWARE PRODUCT and/or additional RELIC software or circumvent any copy protection technology employed by RELIC. + + +6. No Exclusivity + +Nothing in this Agreement nor the license of the SOFTWARE PRODUCT shall +constitute or imply any promise to or intention to make any purchase of +products or services by either party or its affiliated companies or any +commitment by either party or its affiliated companies with respect to the +present or future marketing of any product or service or any commitment to +enter into any other business relationship. + + +7. General + +7.1 Modification. No amendment or modification of this Agreement shall be +valid or binding on RELIC unless made in writing and signed on behalf of RELIC +by its respective duly authorized officers or representatives. RELIC may, +without notice to the LICENSEE, modify, alter or vary the terms of this +Agreement without the consent of the LICENSEE, however, such modification, +alteration or variance shall be displayed on the RELIC website located at +www.relic.com . + +7.2 Assignment. LICENSEE may not assign this Agreement without the prior +written consent of RELIC. Subject to the limitations set forth in this +Agreement, this Agreement will inure to the benefit of and be binding upon the +parties, their successors and permitted assigns. + +7.3 Separation of Components. The SOFTWARE PRODUCT is licensed as a single +product. Its component parts may not be separated for use license, +distribution or replacement by the LICENSEE. + +7.4 Severability. If any provision of this Agreement shall be held by a court +of competent jurisdiction to be illegal, invalid or unenforceable, the +remaining provisions will not be affected and will be deemed to be in full +force and effect. + +7.5 Governing Law, Jurisdiction and Venue. This Agreement shall be governed by +the laws of the Province of British Columbia. Each of the parties hereto +submits and attorns to the exclusive jurisdiction and venue in the provincial +and federal courts sitting in Vancouver, BC. + +7.6 Entire Agreement. This Agreement constitutes the entire understanding +between the parties hereto and supersedes all previous communications, +representations and understandings, oral or written, between the parties, with +respect to the subject matter of this Agreement. + +7.7 The LICENSEE agrees that RELIC would be irreparably injured by breach of +this Agreement by LICENSEE and that RELIC shall be entitled to equitable +relief, including injunctive relief and specific performance, in addition to +any and all monetary damages, in the event of any breach of the provisions of +this Agreement by the LICENSEE. diff --git a/haiku-apps/beezer/beezer-0.99.hg.recipe b/haiku-apps/beezer/beezer-0.99.hg.recipe index 599cc74c2..2ef33aedc 100644 --- a/haiku-apps/beezer/beezer-0.99.hg.recipe +++ b/haiku-apps/beezer/beezer-0.99.hg.recipe @@ -12,7 +12,7 @@ COPYRIGHT=" 2009 Ramshankar (aka Teknomancer) 2011-2012 Chris Roberts " -REVISION="2" +REVISION="3" ARCHITECTURES="x86_gcc2 x86 ?x86_64" PROVIDES=" @@ -29,15 +29,11 @@ BUILD_REQUIRES=" " BUILD_PREREQUIRES=" - cmd:cmake >= 2.8 + cmd:cmake cmd:gcc cmd:make " -PATCHES=" - beezer-0.99.hg.patch - " - BUILD() { cd Source diff --git a/haiku-apps/beezer/patches/beezer-0.99.hg.patch b/haiku-apps/beezer/patches/beezer-0.99.hg.patch deleted file mode 100644 index 638f8e7e2..000000000 --- a/haiku-apps/beezer/patches/beezer-0.99.hg.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 3728835e4083c862c9b03dd5ffdb5941f34f9da5 Mon Sep 17 00:00:00 2001 -From: Luke -Date: Sun, 1 Dec 2013 12:22:29 +0000 -Subject: [PATCH] Remove references to B_COMMON_ - ---- - Source/Archiver/Archiver.cpp | 13 +------------ - Source/Beezer/FSUtils/FSUtils.cpp | 2 +- - 2 files changed, 2 insertions(+), 13 deletions(-) - -diff --git a/Source/Archiver/Archiver.cpp b/Source/Archiver/Archiver.cpp -index c272333..7b57313 100644 ---- a/Source/Archiver/Archiver.cpp -+++ b/Source/Archiver/Archiver.cpp -@@ -625,7 +625,7 @@ status_t Archiver::SetComment(char* commentStr, const char* tempDirPath) - bool Archiver::IsBinaryFound(char* filePath, const char* fileName) const - { - // Check if the given fileName exists in the given dir, if so copy the full path of fileName to filePath -- // Path priority /workers -> B_SYSTEM_BIN_DIRECTORY -> B_COMMON_BIN_DIRECTORY -+ // Path priority /workers -> B_SYSTEM_BIN_DIRECTORY - BPath binPath; - app_info appInfo; - be_app->GetAppInfo(&appInfo); -@@ -652,17 +652,6 @@ bool Archiver::IsBinaryFound(char* filePath, const char* fileName) const - } - } - -- if (find_directory(B_COMMON_BIN_DIRECTORY, &binPath) == B_OK) -- { -- binPath.Append(fileName); -- BEntry entry(binPath.Path(), true); -- if (entry.Exists()) -- { -- strcpy(filePath, binPath.Path()); -- return true; -- } -- } -- - // TODO full search of $PATH - - filePath = '\0'; -diff --git a/Source/Beezer/FSUtils/FSUtils.cpp b/Source/Beezer/FSUtils/FSUtils.cpp -index a651c58..8fbb01d 100644 ---- a/Source/Beezer/FSUtils/FSUtils.cpp -+++ b/Source/Beezer/FSUtils/FSUtils.cpp -@@ -177,7 +177,7 @@ BString CreateTempDirectory(const char* prefix, BDirectory** createdDir, bool cr - prefixStr << prefix << "_"; - - BPath tmpPath; -- find_directory(B_COMMON_TEMP_DIRECTORY, &tmpPath, true); -+ find_directory(B_SYSTEM_TEMP_DIRECTORY, &tmpPath, true); - BString tempDirName = tempnam(const_cast(tmpPath.Path()), const_cast(prefixStr.String())); - - // Further random the dir name (the below number is a prime) --- -1.8.3.4 - diff --git a/haiku-apps/orphilia_dropbox/orphilia_dropbox-1.recipe b/haiku-apps/orphilia_dropbox/orphilia_dropbox-1.recipe new file mode 100644 index 000000000..3b49e9f17 --- /dev/null +++ b/haiku-apps/orphilia_dropbox/orphilia_dropbox-1.recipe @@ -0,0 +1,76 @@ +DESCRIPTION="Orphilia is an open-source Dropbox client written in Python. \ +Project's main goal is to provide an open-source desktop Dropbox client for \ +platforms, that aren't supported (for example, Haiku). Orphilia is \ +script-based which makes it platform-independent. It's written using \ +Dropbox SDK from here, which has been integrated \ +into Orphilia's source code and is not required for installation." +SUMMARY="Open-source Dropbox client." +HOMEPAGE="https://github.com/ksiazkowicz/orphilia-dropbox" +SRC_URI="git+https://github.com/ksiazkowicz/orphilia-dropbox.git#f692f26793a48e2742f12c20767f0f22a9ff39af" +REVISION="1" +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +# Should be called after activating package +#POST_INSTALL_SCRIPTS=" +# \"orphilia.py --configuration\" +# " + +PROVIDES=" + orphilia_dropbox = $portVersion + cmd:orphilia_haiku_notify = $portVersion + cmd:orphilia.py = $portVersion + " + +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:gcc + cmd:python + cmd:sed + " + + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + python_setuptools + " + +REQUIRES=" + pathtools + python_setuptools + urllib3 + watchdog + cmd:python + " + +COPYRIGHT="2011-2014 Maciej Janiszewski" +LICENSE="MIT" + +BUILD() +{ + python build.py +} + +INSTALL() +{ + # GENERIC: all python_setuptools-based installs need this + export PATH="$portPackageLinksDir/cmd~python/bin:$PATH" + pythonVersion=$(python --version 2>&1 | sed 's/Python //' | head -c3) + installLocation=$prefix/lib/python$pythonVersion/vendor-packages/ + export PYTHONPATH=$installLocation:$PYTHONPATH + mkdir -p $installLocation + + cd built/dependencies + python setup.py install \ + --single-version-externally-managed \ + --root=/ --prefix=$prefix + cd ../.. + + mkdir -p $installLocation/orphilia_dropbox + cp -R built/* $installLocation/orphilia_dropbox + + mkdir -p $binDir + + # create symlink which could be directly accessed + ln -s $installLocation/orphilia_dropbox/notify/haiku-notify $binDir/orphilia_haiku-notify + ln -s $installLocation/orphilia_dropbox/orphilia.py $binDir/orphilia.py +} diff --git a/haiku-apps/rename/rename-3.9.0.recipe b/haiku-apps/rename/rename-3.9.0.recipe new file mode 100644 index 000000000..0ad131b77 --- /dev/null +++ b/haiku-apps/rename/rename-3.9.0.recipe @@ -0,0 +1,50 @@ +SUMMARY="A Tracker add-on that provides you with a way to rename multiple files at once." +DESCRIPTION=" +ReName! is a Tracker Add-On for HAIKU users. It provides you with a way to\ +rename multiple files at once. ReName! allows you to add, remove or change file\ +extensions. It also allows you to change the capitialization of your files, and\ +do a search and replace on your file names. ReName! also allows you to prepend\ +or append text to multiple file names! +" +HOMEPAGE="https://github.com/bbjimmy/ReName_for_HAIKU" +SRC_URI="https://github.com/bbjimmy/ReName_for_HAIKU/archive/1.0.tar.gz" +CHECKSUM_SHA512="f13f3a022dab3305c35af0a149711e9e304b00082835115aea3ca8eafa7026cf15613e8f932466e16050dc8282fdcdc16ea3b0d4dc257db09442e16a69c939ae" +SOURCE_DIR="ReName_for_HAIKU-1.0" +REVISION="1" +LICENSE="Public Domain" +COPYRIGHT=" + 2000 FlipSide Software + " +ARCHITECTURES="x86_gcc2 x86 ?x86_64" + +PROVIDES=" + rename= $portVersion + app:rename = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + " +BUILD_PREREQUIRES=" + cmd:gcc + cmd:make + makefile_engine + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD() +{ + cd source + make $jobArgs BUILDHOME=`finddir B_SYSTEM_DEVELOP_DIRECTORY` +} + +INSTALL() +{ + mkdir -p $addOnsDir/Tracker + cp source/ReName $addOnsDir/Tracker/ReName! + mkdir -p $documentationDir/ReName + cd documentation + cp -r * $documentationDir/ReName + +} diff --git a/haiku-apps/rez/rez-108.recipe b/haiku-apps/rez/rez-108.recipe index d4d1ce2c4..259c972a5 100644 --- a/haiku-apps/rez/rez-108.recipe +++ b/haiku-apps/rez/rez-108.recipe @@ -1,24 +1,47 @@ -DESCRIPTION="rez" -HOMEPAGE="http://dev.osdrawer.net/projects/sum-it" -SRC_URI="svn+http://svn.osdrawer.net/sum-it/rez#108" +DESCRIPTION="Rez is a resource compiler similar to rc. Its main use is compiling\ +the Sum-it spreadsheet. New applications should consider using rc instead, but\ +Rez may still be useful to compile some old apps from the BeOS days" +SUMMARY="The Rez resource compiler" + +LICENSE="BSD (4-clause)" +COPYRIGHT="1996-1998, 2000 Hekkelman Programmatuur B.V. All rights reserved. + 1999-2000 Tim Vernum. All rights reserved." + +HOMEPAGE="https://github.com/HaikuArchives/Rez/archive/v1.0" +SRC_URI="https://github.com/HaikuArchives/Rez/archive/v1.0.tar.gz" +SOURCE_DIR="Rez-1.0" + REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -#CHECKSUM_MD5="" + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + haiku >= $haikuVersion + " + +BUILD_PREREQUIRES=" + haiku >= $haikuVersion + cmd:make + cmd:flex + cmd:bison + cmd:cc + " + +CHECKSUM_SHA256="a2e41044ad34302abef5ccaf2f86b16e7bf658c96ab337935cee5b6228597afa" + +ARCHITECTURES="!x86 x86_gcc2" + +PROVIDES=" + rez = $portVersion + cmd:rez = $portVersion + " BUILD() { - cd rez-108 - make + make $jobArgs } INSTALL() { - cd rez-108 - BIN_DIR=`finddir B_COMMON_BIN_DIRECTORY` - mkdir -p ${DESTDIR}${BIN_DIR} - cp rez ${DESTDIR}${BIN_DIR}/rez -} - -#LICENSE="" -#COPYRIGHT="" + mkdir -p $binDir + cp rez $binDir +} \ No newline at end of file diff --git a/haiku-apps/scriptureguide/scriptureguide-0.9.0.recipe b/haiku-apps/scriptureguide/scriptureguide-0.9.0.recipe new file mode 100644 index 000000000..c059d28ec --- /dev/null +++ b/haiku-apps/scriptureguide/scriptureguide-0.9.0.recipe @@ -0,0 +1,69 @@ +SUMMARY="Bible study tool that supports a wide variety of Bibles" +DESCRIPTION="ScriptureGuide is a Bible study tool. It supports all of the \ +features you'd expect: search, setting the font, taking notes, etc. Through \ +the accompanying ScriptureGuideManager app, you can download hundereds of free \ +copies of various Bibles, commentaries, and related books." +COPYRIGHT="2014 ScriptureGuide Team" +LICENSE="GNU GPL v2" +HOMEPAGE="https://github.com/HaikuArchives/ScriptureGuide" +SRC_URI="https://github.com/HaikuArchives/ScriptureGuide/archive/v0.9.0.tar.gz" +CHECKSUM_SHA256="63b36186eaf4be130f333e62fa0fb283dbff90149a14763e96c157d9950777b5" +SOURCE_DIR="ScriptureGuide-$portVersion" +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" + +PROVIDES=" + scriptureguide$secondaryArchSuffix = $portVersion + app:ScriptureGuide = $portVersion + app:ScriptureGuideManager = $portVersion + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + cmd:awk + cmd:wget + cmd:unzip + lib:libsword$secondaryArchSuffix + lib:libz$secondaryArchSuffix + icu$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + devel:libsword$secondaryArchSuffix + devel:libz$secondaryArchSuffix + icu${secondaryArchSuffix}_devel + " + +BUILD_PREREQUIRES=" + makefile_engine + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:mkdepend + " + +BUILD() +{ + cd ScriptureGuide + make $jobArgs + cd ../ScriptureGuideManager + make $jobArgs +} + +INSTALL() +{ + mkdir -p $appsDir + cp -R App $appsDir + mv $appsDir/App $appsDir/ScriptureGuide + + addAppDeskbarSymlink $appsDir/ScriptureGuide/ScriptureGuide + addAppDeskbarSymlink $appsDir/ScriptureGuide/ScriptureGuideManager +} diff --git a/haiku-apps/scrittore/licenses/Scintilla b/haiku-apps/scrittore/licenses/Scintilla new file mode 100644 index 000000000..cbe25b2fc --- /dev/null +++ b/haiku-apps/scrittore/licenses/Scintilla @@ -0,0 +1,20 @@ +License for Scintilla and SciTE + +Copyright 1998-2003 by Neil Hodgson + +All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation. + +NEIL HODGSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS +SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS, IN NO EVENT SHALL NEIL HODGSON BE LIABLE FOR ANY +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE +OR PERFORMANCE OF THIS SOFTWARE. \ No newline at end of file diff --git a/haiku-apps/scrittore/scrittore-git.recipe b/haiku-apps/scrittore/scrittore-git.recipe new file mode 100644 index 000000000..adb4634a7 --- /dev/null +++ b/haiku-apps/scrittore/scrittore-git.recipe @@ -0,0 +1,36 @@ +SUMMARY="A Scintilla-based text editor." +DESCRIPTION="Based on the popular framework for code highlighting, Scrittore provides a simplistic programmer's text editor." +REVISION="1" +LICENSE="Scintilla" +SRC_URI="git+https://github.com/HaikuArchives/Scrittore.git" +COPYRIGHT=" + 1998-2003 Scintilla authors. + 2011-2013 Haiku authors. + " + +HOMEPAGE="https://github.com/HaikuArchives/Scrittore" +PROVIDES=" + Scrittore + app:Scrittore + " + +ARCHITECTURES="x86 !x86_64 ?arm ?ppc" + +BUILD_PREREQUIRES=" + cmd:make + cmd:g++ + haiku_devel + " + +BUILD() +{ + cd scintilla/haiku + make +} + +INSTALL() +{ + mkdir -p $appsDir + cp bin/scintilla-haiku $appsDir/Scrittore + addAppDeskbarSymlink $appsDir/Scrittore +} diff --git a/haiku-apps/sum_it/sum_it-0.2beta.recipe b/haiku-apps/sum_it/sum_it-0.2beta.recipe index 99f9e1f97..bd7f8307e 100644 --- a/haiku-apps/sum_it/sum_it-0.2beta.recipe +++ b/haiku-apps/sum_it/sum_it-0.2beta.recipe @@ -27,6 +27,7 @@ BUILD_PREREQUIRES=" cmd:gcc cmd:flex cmd:bison + cmd:rez " BUILD() @@ -35,12 +36,7 @@ BUILD() BE_C_COMPILER=gcc make DEBUG=0 PATH=`pwd`:$PATH popd - - - pushd rez - BE_C_COMPILER=gcc make DEBUG=0 - PATH=`pwd`:$PATH - popd + cd sum-it BE_C_COMPILER=gcc make DEBUG=0 diff --git a/haiku-apps/virtualbelive/virtualbelive-20140718.recipe b/haiku-apps/virtualbelive/virtualbelive-20140718.recipe new file mode 100644 index 000000000..485ac883d --- /dev/null +++ b/haiku-apps/virtualbelive/virtualbelive-20140718.recipe @@ -0,0 +1,46 @@ +SUMMARY="Video editing software." +DESCRIPTION=" +VirtualBeLive is a software for video editing. It supports basic transitions, \ +cutting and a few effects. +" +HOMEPAGE="https://github.com/HaikuArchives/VirtualBeLive" +SRC_URI="git+https://github.com/HaikuArchives/VirtualBeLive#23bea51" +REVISION="1" +LICENSE="Public Domain" +COPYRIGHT="Public Domain" + +ARCHITECTURES="x86_gcc2" + +PROVIDES=" + virtualbelive = $portVersion + app:VirtualBeLive = $portVersion + " + +REQUIRES=" + haiku >= $haikuVersion + " + +BUILD_PREREQUIRES=" + makefile_engine + cmd:mkdepend + cmd:make + cmd:g++ + cmd:xres + cmd:grep + " + +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD() +{ + make $jobArgs OBJ_DIR=objects +} + +INSTALL() +{ + mkdir -p $appsDir + cp objects/VirtualBeLive $appsDir/VirtualBeLive + addAppDeskbarSymlink $appsDir/VirtualBeLive +} diff --git a/media-fonts/ahem/ahem-1.0.recipe b/media-fonts/ahem/ahem-1.0.recipe new file mode 100644 index 000000000..215eef282 --- /dev/null +++ b/media-fonts/ahem/ahem-1.0.recipe @@ -0,0 +1,46 @@ +SUMMARY="A font developed to help test writers develop predictable tests" +DESCRIPTION="The Ahem font was developed by Todd Fahrner to help test writers \ +develop predictable tests. The font's em square is exactly square. \ +Its ascent and descent is exactly the size of the em square. This \ +means that the font's extent is exactly the same as its line-height, \ +meaning that it can be exactly aligned with padding, borders, margins, \ +and so forth. +The font's alphabetic baseline is 0.2em above its bottom, and 0.8em \ +below its top. The font has an x-height of 0.8em. +The font has four glyphs: + \'X\' U+0058 A square exactly 1em in height and width. + \'p\' U+0070 A rectangle exactly 0.2em high, 1em wide, and aligned so \ + that its top is flush with the baseline. + \'É\' U+00C9 A rectangle exactly 0.8em high, 1em wide, and aligned so \ + that its bottom is flush with the baseline. + \' \' U+0020 A transparent space exactly 1em high and wide. +Most other US-ASCII characters in the font have the same glyph as X." +HOMEPAGE="http://github.com/Kozea/Ahem" +SRC_URI="https://github.com/Kozea/Ahem/archive/1.0.tar.gz" +CHECKSUM_SHA256="bae33954780217ea0e8e517f51e5a84c525ff22b39a508d50ab49e2d5cef7530" +LICENSE="Public Domain" +COPYRIGHT="Late-90s Todd Fahrner" +REVISION="1" +SOURCE_DIR="Ahem-1.0" + +ARCHITECTURES="any" +DISABLE_SOURCE_PACKAGE="yes" + +PROVIDES=" + ahem = $portVersion + " + +REQUIRES="" +BUILD_REQUIRES="" +BUILD_PREREQUIRES="coreutils" + +BUILD() +{ + true +} + +INSTALL() +{ + mkdir -p $fontsDir/ahem + cp Ahem.ttf README $fontsDir/ahem +} diff --git a/media-fonts/paratype/paratype-1.0.recipe b/media-fonts/paratype/paratype-1.0.recipe new file mode 100644 index 000000000..af546807b --- /dev/null +++ b/media-fonts/paratype/paratype-1.0.recipe @@ -0,0 +1,39 @@ +SUMMARY="ParaType font collection for languages of Russia" +DESCRIPTION="ParaType is a font collection designed for use with minority \ +languages of Russia." +HOMEPAGE="http://www.paratype.com/public" +SRC_URI_1="http://www.paratype.com/uni/public/PTSansOFL.zip" +SRC_URI_2="http://www.paratype.com/uni/public/PTSerifOFL.zip" +SRC_URI_3="http://www.paratype.com/uni/public/PTMonoOFL.zip" +CHECKSUM_SHA256_1="57448741b709c5f022127134ffd49506e3925242bd06f73a039e070765d1d637" +CHECKSUM_SHA256_2="e7a2a27ed0481d20973f0d3b589362d055269082e3fc4d96f81dacd58bad8dcc" +CHECKSUM_SHA256_3="e34e729f9509cf85acc52caadf68e96db90457b7164ba45719967d53e7a20dcc" +LICENSE="SIL Open Font License v1.1" +COPYRIGHT="2009 ParaType" +REVISION="1" +SOURCE_DIR="" + +ARCHITECTURES="any" +DISABLE_SOURCE_PACKAGE="yes" + +PROVIDES=" + paratype = $portVersion + " + +REQUIRES="" +BUILD_REQUIRES="" +BUILD_PREREQUIRES="coreutils" + +BUILD() +{ + true +} + +INSTALL() +{ + mkdir -p $fontsDir/paratype + cp *.ttf $fontsDir/paratype + cp ../sources-2/*.ttf $fontsDir/paratype + cp ../sources-3/*.ttf $fontsDir/paratype +} + diff --git a/media-fonts/symbola/symbola-7.18.recipe b/media-fonts/symbola/symbola-7.18.recipe new file mode 100644 index 000000000..ffa56b1af --- /dev/null +++ b/media-fonts/symbola/symbola-7.18.recipe @@ -0,0 +1,30 @@ +SUMMARY="Unicode font for ancient scripts" +DESCRIPTION="Basic Latin, Greek, Cyrillic, and many Symbol blocks of The \ +Unicode Standard, Version 7.0" +HOMEPAGE="http://users.teilar.gr/~g1951d" +SRC_URI="http://users.teilar.gr/~g1951d/Symbola.zip" +CHECKSUM_SHA256="4e98df630002a95da59970916cab05a2229874066871f12f2ad0b547b9c260b6" +LICENSE="Public Domain" +COPYRIGHT="None" +REVISION="1" + +ARCHITECTURES="any" +DISABLE_SOURCE_PACKAGE="yes" + +PROVIDES="symbola = $portVersion" +REQUIRES="" +BUILD_REQUIRES="" +BUILD_PREREQUIRES="coreutils" + +SOURCE_DIR="" + +BUILD() +{ + true +} + +INSTALL() +{ + mkdir -p $fontsDir/ttfonts + cp *.ttf $fontsDir/ttfonts +} diff --git a/media-fonts/vl_gothic/vl_gothic-20141206.recipe b/media-fonts/vl_gothic/vl_gothic-20141206.recipe new file mode 100644 index 000000000..08ba3b550 --- /dev/null +++ b/media-fonts/vl_gothic/vl_gothic-20141206.recipe @@ -0,0 +1,43 @@ +SUMMARY="A modern gothic font including Japanese, as well as Latin and Greek glyphs" +DESCRIPTION="This package includes the VL Gothic (monospace) and VL PGothic \ +(proportional) fonts. Originally developed for the Vine Linux project, they \ +include glyphs suitable for rendering Japanese text, as well as Latin and Greek \ +alphabets. +The fonts are based on the M+ fonts and the Sazanami fonts." +HOMEPAGE="http://vlgothic.dicey.org/" +SRC_URI="http://sourceforge.jp/frs/redir.php?m=jaist&f=%2Fvlgothic%2F62375%2FVLGothic-20141206.tar.xz" +CHECKSUM_SHA256="982040db2f9cb73d7c6ab7d9d163f2ed46d1180f330c9ba2fae303649bf8102d" +LICENSE="BSD (3-clause) + M+ Fonts Project + Sazanami Gothic Font +" +COPYRIGHT="1990-2003 Wada Laboratory, the University of Tokyo. +2003-2004 Electronic Font Open Laboratory (/efont/). +2002-2014 M+ FONTS PROJECT +2006-2014 Daisuke SUZUKI . +2006-2014 Project Vine . +" +REVISION="1" + +ARCHITECTURES="any" +DISABLE_SOURCE_PACKAGE=yes + +PROVIDES="vl_gothic = $portVersion" +REQUIRES="" +BUILD_REQUIRES="" +BUILD_PREREQUIRES="coreutils" + +SOURCE_DIR="VLGothic" + +BUILD() +{ + true +} + +INSTALL() +{ + FONTDIR=$fontsDir/ttfonts/ + mkdir -p ${FONTDIR} + cp VL-Gothic-Regular.ttf ${FONTDIR} + cp VL-PGothic-Regular.ttf ${FONTDIR} +} diff --git a/sci-libs/libsvm/libsvm-v320.recipe b/sci-libs/libsvm/libsvm-v320.recipe new file mode 100644 index 000000000..8fa9e9b65 --- /dev/null +++ b/sci-libs/libsvm/libsvm-v320.recipe @@ -0,0 +1,97 @@ +SUMMARY="Library for Support Vector Machines" +DESCRIPTION=" +Libsvm is a simple, easy-to-use, and efficient software for SVM \ +classification and regression. It solves C-SVM classification, nu-SVM \ +classification, one-class-SVM, epsilon-SVM regression, and nu-SVM \ +regression. It also provides an automatic model selection tool for \ +C-SVM classification." +HOMEPAGE="http://www.csie.ntu.edu.tw/~cjlin/libsvm/" +SRC_URI="git+https://github.com/cjlin1/libsvm#8f3d96e" +REVISION="1" +LICENSE="BSD (3-clause)" +COPYRIGHT="2000-2014 Chih-Chung Chang and Chih-Jen Lin" + +ARCHITECTURES="x86_gcc2 x86 x86_64" + +PROVIDES=" + libsvm = $portVersion + lib:libsvm + " + +REQUIRES=" + haiku >= $haikuVersion + lib:libstdc++ + " + +BUILD_PREREQUIRES=" + haiku >= $haikuVersion + cmd:make + cmd:gcc + cmd:g++ + cmd:sed + " + +BUILD_REQUIRES=" + haiku_devel + " + +PATCH() +{ + sed -e 's/-lm//g' -i Makefile +} + +BUILD() +{ + make lib $jobArgs + make $jobArgs +} + +INSTALL() +{ + mkdir -p $binDir + mkdir -p $libDir + mkdir -p $includeDir + + cp svm-train $binDir/svm-train + cp svm-predict $binDir/svm-predict + cp svm-scale $binDir/svm-scale + cp tools/checkdata.py $binDir/svm-checkdata + cp tools/subset.py $binDir/svm-subset + cp tools/easy.py $binDir/svm-easy + cp tools/grid.py $binDir/svm-grid + packageEntries tools $binDir + + cp libsvm.so.2 $libDir + cp svm.h $includeDir + prepareInstalledDevelLibs libsvm + packageEntries devel $developDir +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + libsvm_devel = $portVersion + devel:libsvm + " + +REQUIRES_devel=" + libsvm == $portVersion base + " +# ----- tools package ------------------------------------------------------- + +PROVIDES_tools=" + libsvm_tools = $portVersion + cmd:svm_train + cmd:svm_predict + cmd:svm_scale + cmd:svm_checkdata + cmd:svm_subset + cmd:svm_easy + cmd:svm_grid + " + +REQUIRES_tools=" + haiku >= $haikuVersion + lib:libstdc++ + cmd:python + "