mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-09 05:10:05 +02:00
VirtualBox Guest Additions: add recipe and patch for version 5.1.14
* build fails on x86_64 at the very end with the following error: undefined reference to `__dso_handle' * TODO: use proper KBUILD_PATH
This commit is contained in:
@@ -0,0 +1,303 @@
|
||||
From c4b6e70754a3318ca4708fd2efc862b257231a64 Mon Sep 17 00:00:00 2001
|
||||
From: Segey Reznikov <diver@gelios.net>
|
||||
Date: Wed, 18 Jan 2017 00:26:11 +0000
|
||||
Subject: Haiku fixes
|
||||
|
||||
|
||||
diff --git a/Config.kmk b/Config.kmk
|
||||
index 8637671..7c25b92 100644
|
||||
--- a/Config.kmk
|
||||
+++ b/Config.kmk
|
||||
@@ -2746,8 +2746,8 @@ if $(KBUILD_TARGET) == "linux" \
|
||||
VBOX_GCC_WARN_PEDANTIC += $(VBOX_GCC_WARN_MASOCHISTIC)
|
||||
endif
|
||||
|
||||
-VBOX_GCC_PEDANTIC_CXX ?= -pedantic $(VBOX_GCC_WARN_PEDANTIC) $(VBOX_GCC_Wno-return-type-c-linkage) $(VBOX_GCC_Wno-overloaded-virtual)
|
||||
-VBOX_GCC_PEDANTIC_C ?= -pedantic $(VBOX_GCC_WARN_PEDANTIC) -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Werror-implicit-function-declaration
|
||||
+VBOX_GCC_PEDANTIC_CXX ?= $(VBOX_GCC_WARN_PEDANTIC) $(VBOX_GCC_Wno-return-type-c-linkage) $(VBOX_GCC_Wno-overloaded-virtual)
|
||||
+VBOX_GCC_PEDANTIC_C ?= $(VBOX_GCC_WARN_PEDANTIC) -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Werror-implicit-function-declaration
|
||||
|
||||
VBOX_GCC_NON_PEDANTIC_CXX ?= -Wno-sign-compare
|
||||
VBOX_GCC_NON_PEDANTIC_C ?= -Wno-sign-compare -Werror-implicit-function-declaration
|
||||
@@ -4474,8 +4474,8 @@ TEMPLATE_VBOXR0DRV_LDTOOL = $(VBOX_GCC_TOOL)
|
||||
TEMPLATE_VBOXR0DRV_DEFS = _KERNEL_MODE=1 _STRICT_STDC IN_RING0 IN_RT_R0
|
||||
TEMPLATE_VBOXR0DRV_INCS = $(VBOX_HAIKU_SYS_INCS)
|
||||
#TODO: sort this out
|
||||
-TEMPLATE_VBOXR0DRV_LDFLAGS = -shared -no-undefined -dc -dy -lroot -rpath-link /boot/system/develop/lib/x86 --no-add-needed /boot/system/develop/lib/_KERNEL_ --no-add-needed /boot/system/develop/lib/haiku_version_glue.o
|
||||
-TEMPLATE_VBOXR0DRV_CFLAGS = -fno-PIC \
|
||||
+TEMPLATE_VBOXR0DRV_LDFLAGS = -shared -no-undefined -dc -dy -lstdc++ -lsupc++ -lroot -rpath-link /system/develop/lib --no-add-needed /system/develop/lib/_KERNEL_ --no-add-needed /system/develop/lib/haiku_version_glue.o
|
||||
+TEMPLATE_VBOXR0DRV_CFLAGS = -fPIC \
|
||||
$(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
|
||||
TEMPLATE_VBOXR0DRV_CFLAGS.x86 = -mno-sse -mno-mmx -mno-sse2 -mno-3dnow
|
||||
@@ -4483,7 +4483,7 @@ TEMPLATE_VBOXR0DRV_CFLAGS.x86 = -m32 -mno-sse -mno-mmx -mno-sse2 -mno-3
|
||||
TEMPLATE_VBOXR0DRV_CFLAGS.amd64 = -m64 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow \
|
||||
-fno-reorder-blocks -ffreestanding -fno-asynchronous-unwind-tables -funit-at-a-time \
|
||||
-Wno-sign-compare
|
||||
-TEMPLATE_VBOXR0DRV_CXXFLAGS = -fno-PIC -Wpointer-arith \
|
||||
+TEMPLATE_VBOXR0DRV_CXXFLAGS = -fPIC -Wpointer-arith \
|
||||
-Wshadow -Wuninitialized -Wunused-function -Wunused-label -Wunused-value -Wunused-variable \
|
||||
-Wformat \
|
||||
-O2 -nodefaultlibs -fno-omit-frame-pointer -fno-strict-aliasing -fno-common -fno-exceptions -fno-rtti
|
||||
@@ -4664,9 +4664,9 @@ TEMPLATE_VBOXR3EXE_LIBS = network iconv stdc++ supc++
|
||||
TEMPLATE_VBOXR3EXE_LIBPATH += \
|
||||
/boot/common/lib
|
||||
# Haiku uses PIC by default...
|
||||
-TEMPLATE_VBOXR3EXE_CFLAGS += -fno-pic
|
||||
-TEMPLATE_VBOXR3EXE_CXXFLAGS += -fno-pic
|
||||
-TEMPLATE_VBOXR3EXE_LDFLAGS += -fno-pic
|
||||
+TEMPLATE_VBOXR3EXE_CFLAGS += -fPIC
|
||||
+TEMPLATE_VBOXR3EXE_CXXFLAGS += -fPIC
|
||||
+TEMPLATE_VBOXR3EXE_LDFLAGS += -fPIC
|
||||
else if1of ($(KBUILD_TARGET), freebsd openbsd)
|
||||
TEMPLATE_VBOXR3EXE_TOOL = GXX3
|
||||
TEMPLATE_VBOXR3EXE_LIBS = pthread
|
||||
@@ -4724,9 +4724,9 @@ ifn1of ($(KBUILD_TARGET), darwin win os2)
|
||||
endif
|
||||
ifeq ($(KBUILD_TARGET),haiku)
|
||||
# Haiku uses PIC by default...
|
||||
- TEMPLATE_VBOXR3_CFLAGS = $(TEMPLATE_VBOXR3EXE_CFLAGS) -fno-pic
|
||||
- TEMPLATE_VBOXR3_CXXFLAGS = $(TEMPLATE_VBOXR3EXE_CXXFLAGS) -fno-pic
|
||||
- TEMPLATE_VBOXR3_LDFLAGS = $(TEMPLATE_VBOXR3EXE_LDFLAGS) -fno-pic
|
||||
+ TEMPLATE_VBOXR3_CFLAGS = $(TEMPLATE_VBOXR3EXE_CFLAGS) -fPIC
|
||||
+ TEMPLATE_VBOXR3_CXXFLAGS = $(TEMPLATE_VBOXR3EXE_CXXFLAGS) -fPIC
|
||||
+ TEMPLATE_VBOXR3_LDFLAGS = $(TEMPLATE_VBOXR3EXE_LDFLAGS) -fPIC
|
||||
endif
|
||||
|
||||
#
|
||||
diff --git a/src/VBox/Additions/common/VBoxGuest/VBoxDev-haiku.c b/src/VBox/Additions/common/VBoxGuest/VBoxDev-haiku.c
|
||||
index b56e972..375f845 100644
|
||||
--- a/src/VBox/Additions/common/VBoxGuest/VBoxDev-haiku.c
|
||||
+++ b/src/VBox/Additions/common/VBoxGuest/VBoxDev-haiku.c
|
||||
@@ -104,7 +104,7 @@ static status_t vgdrvHaikuOpen(const char *name, uint32 flags, void **cookie)
|
||||
return B_OK;
|
||||
}
|
||||
|
||||
- LogRel((DRIVER_NAME ":vgdrvHaikuOpen: failed. rc=%d\n", rc));
|
||||
+ Log((DRIVER_NAME ":vgdrvHaikuOpen: failed. rc=%d\n", rc));
|
||||
return RTErrConvertToErrno(rc);
|
||||
}
|
||||
|
||||
@@ -176,7 +176,7 @@ static status_t vgdrvHaikuIOCtl(void *cookie, uint32 op, void *data, size_t len)
|
||||
{
|
||||
PVBOXGUESTSESSION pSession = (PVBOXGUESTSESSION)cookie;
|
||||
int rc;
|
||||
- Log(("vgdrvHaikuIOCtl: cookie=%p op=0x%08x data=%p len=%lu)\n", cookie, op, data, len));
|
||||
+ LogFlow(("vgdrvHaikuIOCtl: cookie=%p op=0x%08x data=%p len=%lu)\n", cookie, op, data, len));
|
||||
|
||||
/*
|
||||
* Validate the input.
|
||||
@@ -211,7 +211,7 @@ static status_t vgdrvHaikuIOCtl(void *cookie, uint32 op, void *data, size_t len)
|
||||
pvBuf = RTMemTmpAlloc(len);
|
||||
if (RT_UNLIKELY(!pvBuf))
|
||||
{
|
||||
- LogRel((DRIVER_NAME ":vgdrvHaikuIOCtl: RTMemTmpAlloc failed to alloc %d bytes.\n", len));
|
||||
+ Log((DRIVER_NAME ":vgdrvHaikuIOCtl: RTMemTmpAlloc failed to alloc %d bytes.\n", len));
|
||||
return ENOMEM;
|
||||
}
|
||||
|
||||
@@ -220,13 +220,13 @@ static status_t vgdrvHaikuIOCtl(void *cookie, uint32 op, void *data, size_t len)
|
||||
if (RT_UNLIKELY(rc < 0))
|
||||
{
|
||||
RTMemTmpFree(pvBuf);
|
||||
- LogRel((DRIVER_NAME ":vgdrvHaikuIOCtl: user_memcpy failed; pvBuf=%p data=%p op=%d. rc=%d\n", pvBuf, data, op, rc));
|
||||
+ Log((DRIVER_NAME ":vgdrvHaikuIOCtl: user_memcpy failed; pvBuf=%p data=%p op=%d. rc=%d\n", pvBuf, data, op, rc));
|
||||
return EFAULT;
|
||||
}
|
||||
if (RT_UNLIKELY(!VALID_PTR(pvBuf)))
|
||||
{
|
||||
RTMemTmpFree(pvBuf);
|
||||
- LogRel((DRIVER_NAME ":vgdrvHaikuIOCtl: pvBuf invalid pointer %p\n", pvBuf));
|
||||
+ Log((DRIVER_NAME ":vgdrvHaikuIOCtl: pvBuf invalid pointer %p\n", pvBuf));
|
||||
return EINVAL;
|
||||
}
|
||||
}
|
||||
diff --git a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-haiku-stubs.c b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-haiku-stubs.c
|
||||
index b013db2..c454e32 100644
|
||||
--- a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-haiku-stubs.c
|
||||
+++ b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-haiku-stubs.c
|
||||
@@ -338,10 +338,6 @@ RTDECL(PRTLOGGER) RTLogRelGetDefaultInstance(void)
|
||||
{
|
||||
return g_VBoxGuest->_RTLogRelGetDefaultInstance();
|
||||
}
|
||||
-RTDECL(PRTLOGGER) RTLogRelGetDefaultInstance(uint32_t fFlags, uint32_t iGroup)
|
||||
-{
|
||||
- return g_VBoxGuest->_RTLogRelGetDefaultInstanceEx(fFlags, iGroup);
|
||||
-}
|
||||
RTDECL(int) RTErrConvertToErrno(int iErr)
|
||||
{
|
||||
return g_VBoxGuest->_RTErrConvertToErrno(iErr);
|
||||
diff --git a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-haiku.c b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-haiku.c
|
||||
index 72bc988..37e0912 100644
|
||||
--- a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-haiku.c
|
||||
+++ b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-haiku.c
|
||||
@@ -186,9 +186,6 @@ static struct vboxguest_module_info g_VBoxGuest =
|
||||
VGDrvCommonIoCtl,
|
||||
VGDrvCommonCreateUserSession,
|
||||
VGDrvCommonCloseSession,
|
||||
- VBoxGuestIDCOpen,
|
||||
- VBoxGuestIDCClose,
|
||||
- VBoxGuestIDCCall,
|
||||
RTAssertMsg1Weak,
|
||||
RTAssertMsg2Weak,
|
||||
RTAssertMsg2WeakV,
|
||||
diff --git a/src/VBox/Additions/common/VBoxGuestLib/Init.cpp b/src/VBox/Additions/common/VBoxGuestLib/Init.cpp
|
||||
index e8c985e..041ac23 100644
|
||||
--- a/src/VBox/Additions/common/VBoxGuestLib/Init.cpp
|
||||
+++ b/src/VBox/Additions/common/VBoxGuestLib/Init.cpp
|
||||
@@ -167,7 +167,7 @@ int vbglInitCommon (void)
|
||||
}
|
||||
else
|
||||
{
|
||||
- LogRel(("vbglInitCommon: VbglPhysHeapInit failed. rc=%Rrc\n", rc));
|
||||
+ Log(("vbglInitCommon: VbglPhysHeapInit failed. rc=%Rrc\n", rc));
|
||||
g_vbgldata.status = VbglStatusNotInitialized;
|
||||
}
|
||||
|
||||
diff --git a/src/VBox/Additions/common/VBoxGuestLib/PhysHeap.cpp b/src/VBox/Additions/common/VBoxGuestLib/PhysHeap.cpp
|
||||
index 7ba42a4..8722647 100644
|
||||
--- a/src/VBox/Additions/common/VBoxGuestLib/PhysHeap.cpp
|
||||
+++ b/src/VBox/Additions/common/VBoxGuestLib/PhysHeap.cpp
|
||||
@@ -314,7 +314,7 @@ static VBGLPHYSHEAPBLOCK *vbglPhysHeapChunkAlloc (uint32_t cbSize)
|
||||
|
||||
if (!pChunk)
|
||||
{
|
||||
- LogRel(("vbglPhysHeapChunkAlloc: failed to alloc %u contiguous bytes.\n", cbSize));
|
||||
+ Log(("vbglPhysHeapChunkAlloc: failed to alloc %u contiguous bytes.\n", cbSize));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3Lib.cpp b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3Lib.cpp
|
||||
index 9510688..12ceb20 100644
|
||||
--- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3Lib.cpp
|
||||
+++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3Lib.cpp
|
||||
@@ -426,7 +426,7 @@ int vbglR3DoIOCtl(unsigned iFunction, void *pvData, size_t cbData)
|
||||
# elif defined(RT_OS_HAIKU)
|
||||
/* The ioctl hook in Haiku does take the len parameter when specified,
|
||||
* so just use it. */
|
||||
- int rc = ioctl((int)g_File, iFunction, pvData, cbData);
|
||||
+ int rc = ioctl(RTFileToNative(g_File), iFunction, pvData, cbData);
|
||||
# else
|
||||
# error Port me!
|
||||
# endif
|
||||
diff --git a/src/VBox/Additions/haiku/SharedFolders/lock.h b/src/VBox/Additions/haiku/SharedFolders/lock.h
|
||||
index 07c9e61..6badd17 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/vnode_cache.cpp b/src/VBox/Additions/haiku/SharedFolders/vnode_cache.cpp
|
||||
index 92bee8f..fc1ebc2 100644
|
||||
--- a/src/VBox/Additions/haiku/SharedFolders/vnode_cache.cpp
|
||||
+++ b/src/VBox/Additions/haiku/SharedFolders/vnode_cache.cpp
|
||||
@@ -77,7 +77,7 @@ static ino_t g_nextVnid = 1;
|
||||
mutex g_vnodeCacheLock;
|
||||
|
||||
|
||||
-extern "C" status_t vboxsf_new_vnode(PVBSFMAP map, PSHFLSTRING path, PSHFLSTRING name, vboxsf_vnode** p)
|
||||
+extern "C" status_t vboxsf_new_vnode(PVBGLSFMAP map, PSHFLSTRING path, PSHFLSTRING name, vboxsf_vnode** p)
|
||||
{
|
||||
vboxsf_vnode* vn = (vboxsf_vnode*)malloc(sizeof(vboxsf_vnode));
|
||||
if (vn == NULL)
|
||||
diff --git a/src/VBox/Additions/haiku/VBoxTray/VBoxClipboard.cpp b/src/VBox/Additions/haiku/VBoxTray/VBoxClipboard.cpp
|
||||
index 13467b2..733ea5a 100644
|
||||
--- a/src/VBox/Additions/haiku/VBoxTray/VBoxClipboard.cpp
|
||||
+++ b/src/VBox/Additions/haiku/VBoxTray/VBoxClipboard.cpp
|
||||
@@ -255,7 +255,7 @@ void VBoxClipboardService::MessageReceived(BMessage *message)
|
||||
if (formats & VBOX_SHARED_CLIPBOARD_FMT_UNICODETEXT)
|
||||
{
|
||||
const char *text;
|
||||
- int32 textLen;
|
||||
+ ssize_t textLen;
|
||||
if (clip->FindData("text/plain", B_MIME_TYPE, (const void **)&text, &textLen) == B_OK)
|
||||
{
|
||||
// usually doesn't include the \0 so be safe
|
||||
@@ -314,7 +314,7 @@ void VBoxClipboardService::MessageReceived(BMessage *message)
|
||||
{
|
||||
printf("B_CLIPBOARD_CHANGED\n");
|
||||
const void *data;
|
||||
- int32 dataLen;
|
||||
+ ssize_t dataLen;
|
||||
if (!be_clipboard->Lock())
|
||||
break;
|
||||
|
||||
diff --git a/src/VBox/Additions/haiku/VBoxTray/VBoxGuestApplication.cpp b/src/VBox/Additions/haiku/VBoxTray/VBoxGuestApplication.cpp
|
||||
index 37c229a..f59489c 100644
|
||||
--- a/src/VBox/Additions/haiku/VBoxTray/VBoxGuestApplication.cpp
|
||||
+++ b/src/VBox/Additions/haiku/VBoxTray/VBoxGuestApplication.cpp
|
||||
@@ -51,7 +51,6 @@
|
||||
#include <iprt/log.h>
|
||||
|
||||
#include <errno.h>
|
||||
-#include <Alert.h>
|
||||
#include <Debug.h>
|
||||
#include <Invoker.h>
|
||||
#include <String.h>
|
||||
diff --git a/src/VBox/Additions/haiku/VBoxVideo/driver/driver.cpp b/src/VBox/Additions/haiku/VBoxVideo/driver/driver.cpp
|
||||
index b15afdb..4b3797e 100644
|
||||
--- a/src/VBox/Additions/haiku/VBoxVideo/driver/driver.cpp
|
||||
+++ b/src/VBox/Additions/haiku/VBoxVideo/driver/driver.cpp
|
||||
@@ -171,10 +171,10 @@ status_t init_hardware()
|
||||
if (err == B_OK)
|
||||
return B_OK;
|
||||
|
||||
- LogRel((DRIVER_NAME ":_init_hardware() get_module(%s) failed. err=%08lx\n", B_PCI_MODULE_NAME));
|
||||
+ Log((DRIVER_NAME ":_init_hardware() get_module(%s) failed. err=%08lx\n", B_PCI_MODULE_NAME));
|
||||
}
|
||||
else
|
||||
- LogRel((DRIVER_NAME ":_init_hardware() get_module(%s) failed. err=%08lx\n", VBOXGUEST_MODULE_NAME, err));
|
||||
+ Log((DRIVER_NAME ":_init_hardware() get_module(%s) failed. err=%08lx\n", VBOXGUEST_MODULE_NAME, err));
|
||||
return B_ERROR;
|
||||
}
|
||||
|
||||
diff --git a/src/VBox/Runtime/r3/posix/process-creation-posix.cpp b/src/VBox/Runtime/r3/posix/process-creation-posix.cpp
|
||||
index 7fc3a43..2d3b957 100644
|
||||
--- a/src/VBox/Runtime/r3/posix/process-creation-posix.cpp
|
||||
+++ b/src/VBox/Runtime/r3/posix/process-creation-posix.cpp
|
||||
@@ -71,6 +71,11 @@
|
||||
# include <libcontract.h>
|
||||
#endif
|
||||
|
||||
+#ifdef RT_OS_HAIKU
|
||||
+#define _BSD_SOURCE
|
||||
+# include <bsd/paths.h>
|
||||
+#endif
|
||||
+
|
||||
#ifndef RT_OS_SOLARIS
|
||||
# include <paths.h>
|
||||
#else
|
||||
diff --git a/src/libs/kStuff/kStuff/include/k/kDefs.h b/src/libs/kStuff/kStuff/include/k/kDefs.h
|
||||
index f805cc3..3207d50 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
|
||||
@@ -94,6 +96,8 @@
|
||||
# define K_OS K_OS_SOLARIS
|
||||
# elif defined(_WIN32) || defined(_WIN64)
|
||||
# define K_OS K_OS_WINDOWS
|
||||
+# elif defined(__HAIKU__)
|
||||
+# define K_OS K_OS_HAIKU
|
||||
# else
|
||||
# error "Port Me"
|
||||
# endif
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -15,7 +15,7 @@ REVISION="5"
|
||||
SOURCE_URI="svn+http://www.virtualbox.org/svn/vbox/trunk#53373"
|
||||
PATCHES="virtualbox_guest_additions-$portVersion.patchset"
|
||||
|
||||
ARCHITECTURES="x86_gcc2 x86 x86_64"
|
||||
ARCHITECTURES="x86_gcc2 x86 !x86_64"
|
||||
|
||||
PROVIDES="
|
||||
virtualbox_guest_additions$secondaryArchSuffix = $portVersion
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
SUMMARY="VirtualBox kernel modules and user-space tools for Haiku guests"
|
||||
DESCRIPTION="VirtualBox is a free x86 virtualization solution allowing a wide \
|
||||
range of x86 operating systems such as Windows, DOS, BSD or Linux to run on a \
|
||||
Linux system.
|
||||
|
||||
This package contains the VirtualBox kernel modules and user-space \
|
||||
tools for Haiku guests."
|
||||
HOMEPAGE="https://www.virtualbox.org/"
|
||||
COPYRIGHT="2003-2017 Oracle Corporation"
|
||||
LICENSE="
|
||||
GNU GPL v2
|
||||
CDDL v1
|
||||
"
|
||||
REVISION="1"
|
||||
SOURCE_URI="http://download.virtualbox.org/virtualbox/$portVersion/VirtualBox-$portVersion.tar.bz2"
|
||||
CHECKSUM_SHA256="8267bb026717c6e55237eb798210767d9c703cfcdf01224d9bc26f7dac9f228a"
|
||||
SOURCE_DIR="VirtualBox-$portVersion"
|
||||
PATCHES="virtualbox_guest_additions-$portVersion.patchset"
|
||||
|
||||
ARCHITECTURES="!x86_gcc2 ?x86 !x86_64"
|
||||
|
||||
PROVIDES="
|
||||
virtualbox_guest_additions$secondaryArchSuffix = $portVersion
|
||||
cmd:VBoxControl$secondaryArchSuffix = $portVersion
|
||||
cmd:VBoxService$secondaryArchSuffix = $portVersion
|
||||
cmd:VBoxTray$secondaryArchSuffix = $portVersion
|
||||
"
|
||||
REQUIRES="
|
||||
haiku$secondaryArchSuffix
|
||||
lib:libiconv$secondaryArchSuffix
|
||||
lib:libz$secondaryArchSuffix
|
||||
lib:libpng$secondaryArchSuffix
|
||||
lib:libcurl$secondaryArchSuffix
|
||||
"
|
||||
|
||||
BUILD_REQUIRES="
|
||||
haiku${secondaryArchSuffix}_devel
|
||||
devel:libiconv$secondaryArchSuffix
|
||||
devel:libz$secondaryArchSuffix
|
||||
devel:libpng$secondaryArchSuffix
|
||||
devel:libcurl$secondaryArchSuffix
|
||||
"
|
||||
BUILD_PREREQUIRES="
|
||||
cmd:gcc$secondaryArchSuffix
|
||||
cmd:grep
|
||||
cmd:kmk$secondaryArchSuffix
|
||||
cmd:ld$secondaryArchSuffix
|
||||
cmd:mkisofs
|
||||
cmd:sed
|
||||
cmd:which
|
||||
cmd:xres
|
||||
cmd:yasm
|
||||
"
|
||||
|
||||
BUILD()
|
||||
{
|
||||
export USER=user
|
||||
export KBUILD_PATH=/system/package-links/kbuild-0.1.9998svn~git-1/.self/data
|
||||
# ./configure --build-headless --disable-python --disable-java --nofatal
|
||||
./configure --only-additions
|
||||
source env.sh
|
||||
kmk VBOX_ONLY_ADDITIONS=1 VBOX_WITH_ADDITION_DRIVERS=1 BUILD_TYPE=strict all
|
||||
}
|
||||
|
||||
INSTALL()
|
||||
{
|
||||
cd out/haiku.x86/strict/bin/additions
|
||||
mkdir -p $addOnsDir/kernel/{generic,drivers/bin,drivers/dev/misc}
|
||||
|
||||
cp vboxguest $addOnsDir/kernel/generic
|
||||
cp vboxdev $addOnsDir/kernel/drivers/bin
|
||||
ln -fs ../../bin/vboxdev $addOnsDir/kernel/drivers/dev/misc
|
||||
|
||||
mkdir -p $addOnsDir/kernel/file_systems
|
||||
cp vboxsf $addOnsDir/kernel/file_systems
|
||||
|
||||
# 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
|
||||
|
||||
xres -o file.tmp VBoxControl ; strip -S VBoxControl ; xres -o VBoxControl file.tmp
|
||||
xres -o file.tmp VBoxService ; strip -S VBoxService ; xres -o VBoxService file.tmp
|
||||
xres -o file.tmp VBoxTray ; strip -S VBoxTray ; xres -o VBoxTray file.tmp
|
||||
|
||||
cp VBoxControl VBoxService VBoxTray $binDir
|
||||
|
||||
|
||||
# install VBoxTray replicant
|
||||
# mkdir -p $prefix/boot/post-install
|
||||
# cat <<'EOF' > $prefix/boot/post-install/install-VBoxTray-replicant.sh
|
||||
#!/bin/sh
|
||||
#/bin/VBoxTray
|
||||
#EOF
|
||||
# chmod a+x $prefix/boot/post-install/install-VBoxTray-replicant.sh
|
||||
|
||||
|
||||
# Add a symlink to the Desktop applets directory in Deskbar
|
||||
desktopAppletsDir="$dataDir/deskbar/menu/Desktop applets"
|
||||
mkdir -p $desktopAppletsDir
|
||||
ln -s $binDir/VBoxTray $desktopAppletsDir
|
||||
}
|
||||
Reference in New Issue
Block a user