[SOLVED] Compiling VirtualBox 5.2.12 on Slackware 14.2 64-bit
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Compiling VirtualBox 5.2.12 on Slackware 14.2 64-bit
This thread is about compiling only and not about how to install VirtualBox.
I am unable to compile 5.2. The errors:
Code:
build debug: VBOX_WITH_NO_GCC_WARNING_POLICY is enabled
CXX VBoxFUSE - {C}/VBoxFUSE.cpp
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:112:5: error: 'PVBOXHDD' does not name a type
PVBOXHDD pDisk;
^
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp: In function 'bool vboxfuseNodeDestroy(PVBOXFUSENODE, bool)':
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:200:29: error: 'VBOXFUSEFLATIMAGE {aka struct VBOXFUSEFLATIMAGE}' has no member named 'pDisk'
if (pFlatImage->pDisk)
^
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:202:47: error: 'VBOXFUSEFLATIMAGE {aka struct VBOXFUSEFLATIMAGE}' has no member named 'pDisk'
int rc2 = VDClose(pFlatImage->pDisk, false /* fDelete */); AssertRC(rc2);
^
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:203:29: error: 'VBOXFUSEFLATIMAGE {aka struct VBOXFUSEFLATIMAGE}' has no member named 'pDisk'
pFlatImage->pDisk = NULL;
^
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp: In function 'void vboxfuseNodeRetain(PVBOXFUSENODE)':
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:268:13: warning: unused variable 'cNewRefs' [-Wunused-variable]
int32_t cNewRefs = ASMAtomicIncS32(&pNode->cRefs);
^
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp: In function 'int vboxfuseFlatImageCreate(const char*, const char*, VBOXFUSEFLATIMAGE**)':
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:530:5: error: 'PVBOXHDD' was not declared in this scope
PVBOXHDD pDisk = NULL;
^
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:531:53: error: 'pDisk' was not declared in this scope
rc = VDCreate(NULL /* pVDIIfsDisk */, enmType, &pDisk);
^
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:559:28: error: 'VBOXFUSEFLATIMAGE {aka struct VBOXFUSEFLATIMAGE}' has no member named 'pDisk'
pNewFlatImage->pDisk = pDisk;
^
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:561:73: error: 'VBOXFUSEFLATIMAGE {aka struct VBOXFUSEFLATIMAGE}' has no member named 'pDisk'
pNewFlatImage->cReaders = VDIsReadOnly(pNewFlatImage->pDisk) ? INT32_MAX / 2 : 0;
^
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:563:70: error: 'VBOXFUSEFLATIMAGE {aka struct VBOXFUSEFLATIMAGE}' has no member named 'pDisk'
pNewFlatImage->Node.cbPrimary = VDGetSize(pNewFlatImage->pDisk, 0 /* base */);
^
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp: At global scope:
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:906:43: warning: unused parameter 'pszPath' [-Wunused-parameter]
static int vboxfuseOp_readdir(const char *pszPath, void *pvBuf, fuse_fill_dir_t pfnFiller,
^
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:965:46: warning: unused parameter 'pszPath' [-Wunused-parameter]
static int vboxfuseOp_releasedir(const char *pszPath, struct fuse_file_info *pInfo)
^
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:1104:43: warning: unused parameter 'pszPath' [-Wunused-parameter]
static int vboxfuseOp_release(const char *pszPath, struct fuse_file_info *pInfo)
^
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp: In function 'int vboxfuseOp_read(const char*, char*, size_t, off_t, fuse_file_info*)':
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:1203:46: error: 'VBOXFUSEFLATIMAGE {aka struct VBOXFUSEFLATIMAGE}' has no member named 'pDisk'
rc2 = VDRead(pFlatImage->pDisk, offFile, pbBuf, cbBuf);
^
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:1213:50: error: 'VBOXFUSEFLATIMAGE {aka struct VBOXFUSEFLATIMAGE}' has no member named 'pDisk'
rc2 = VDRead(pFlatImage->pDisk, offFile & VBOXFUSE_MIN_SIZE_MASK_BLK, abBlock, VBOXFUSE_MIN_SIZ
^
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:1223:54: error: 'VBOXFUSEFLATIMAGE {aka struct VBOXFUSEFLATIMAGE}' has no member named 'pDisk'
rc2 = VDRead(pFlatImage->pDisk, offFile & VBOXFUSE_MIN_SIZE_MASK_BLK, abBlock, VBOXFUSE_MIN
^
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:1239:54: error: 'VBOXFUSEFLATIMAGE {aka struct VBOXFUSEFLATIMAGE}' has no member named 'pDisk'
rc2 = VDRead(pFlatImage->pDisk, offFile, pbBuf, cbRead);
^
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:1253:54: error: 'VBOXFUSEFLATIMAGE {aka struct VBOXFUSEFLATIMAGE}' has no member named 'pDisk'
rc2 = VDRead(pFlatImage->pDisk, offFile, abBlock, VBOXFUSE_MIN_SIZE);
^
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp: At global scope:
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:1162:40: warning: unused parameter 'pszPath' [-Wunused-parameter]
static int vboxfuseOp_read(const char *pszPath, char *pbBuf, size_t cbBuf,
^
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp: In function 'int vboxfuseOp_write(const char*, const char*, size_t, off_t, fuse_file_info*)':
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:1323:47: error: 'VBOXFUSEFLATIMAGE {aka struct VBOXFUSEFLATIMAGE}' has no member named 'pDisk'
rc2 = VDWrite(pFlatImage->pDisk, offFile, pbBuf, cbBuf);
^
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:1333:50: error: 'VBOXFUSEFLATIMAGE {aka struct VBOXFUSEFLATIMAGE}' has no member named 'pDisk'
rc2 = VDRead(pFlatImage->pDisk, offFile & VBOXFUSE_MIN_SIZE_MASK_BLK, abBlock, VBOXFUSE_MIN_SIZ
^
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:1338:55: error: 'VBOXFUSEFLATIMAGE {aka struct VBOXFUSEFLATIMAGE}' has no member named 'pDisk'
rc2 = VDWrite(pFlatImage->pDisk, offFile & VBOXFUSE_MIN_SIZE_MASK_BLK, abBlock, VBOXFUSE_MI
^
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:1347:54: error: 'VBOXFUSEFLATIMAGE {aka struct VBOXFUSEFLATIMAGE}' has no member named 'pDisk'
rc2 = VDRead(pFlatImage->pDisk, offFile & VBOXFUSE_MIN_SIZE_MASK_BLK, abBlock, VBOXFUSE_MIN
^
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:1355:59: error: 'VBOXFUSEFLATIMAGE {aka struct VBOXFUSEFLATIMAGE}' has no member named 'pDisk'
rc2 = VDWrite(pFlatImage->pDisk, offFile & VBOXFUSE_MIN_SIZE_MASK_BLK, abBlock, VBOXFUS
^
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:1364:55: error: 'VBOXFUSEFLATIMAGE {aka struct VBOXFUSEFLATIMAGE}' has no member named 'pDisk'
rc2 = VDWrite(pFlatImage->pDisk, offFile, pbBuf, cbWrite);
^
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:1378:54: error: 'VBOXFUSEFLATIMAGE {aka struct VBOXFUSEFLATIMAGE}' has no member named 'pDisk'
rc2 = VDRead(pFlatImage->pDisk, offFile, abBlock, VBOXFUSE_MIN_SIZE);
^
/tmp/VirtualBox-5.2.12/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:1382:59: error: 'VBOXFUSEFLATIMAGE {aka struct VBOXFUSEFLATIMAGE}' has no member named 'pDisk'
rc2 = VDWrite(pFlatImage->pDisk, offFile, abBlock, VBOXFUSE_MIN_SIZE);
As far as I can tell, pDisk is defined in VBox/vd.h and VBox/vd.h is included in VBoxFUSE.cpp. I do not have VirtualBox installed on the build system. There should not be any confusion about which vd.h to use.
No problems compiling 5.1.38 on 14.2 64-bit. Qt5.6.1 is installed.
I recommend downloading the "All distributions (built on EL5 and therefore do not require recent system libraries)" *.run script from VirtualBox and installing VB by running the script. It has always worked flawlessly for me.
I recommend downloading the "All distributions (built on EL5 and therefore do not require recent system libraries)" *.run script from VirtualBox and installing VB by running the script. It has always worked flawlessly for me.
First sentence of the thread:
This thread is about compiling only and not about how to install VirtualBox.
VBoxFUSE isn't really needed for anything. I enabled building it in earlier releases as it might be useful for some people. However, I never actually got it working for what I would have liked it to do (mount vbox images on the host) and I don't think it receives much love from upstream. You can just disable it, I did the same for the SlackBuilds in ponce's branch for -current.
If you use the SlackBuilds you can just fetch them from there as well. They should mostly work on 14.2 as is, with perhaps just minor modifications (I tested them on 14.2, but don't remember exactly what would need to be different). The main reason I don't want virtualbox > 5.0 in the 14.2 repo is to avoid a dependency on qt5.
I was able to compile 5.2.12 on 14.2 64-bit after I commented out the VBoxFUSE related snippets in the build script. That doesn't help those who might want to still use VBoxFUSE.
With respect to upstream, looks like the VBoxFUSE package was dropped on Debian based distros starting with Jessie (Debian 8). I don't know why the package was dropped.
I tried updating the fuse package on 14.2 and that did not help compiling.
The move to qt5 was a poor decision on the Virtualbox developers. Typical case of bleeding edge rather than stability. I am using qt 5.6.1 from slackbuilds.org to compile 5.1/5.2. I understand your support position. I'll only add that 5.0.40 no longer is supported upstream, so no security patches or bug fixes.
Let me know if you need testing help.
Edit: I looked at the *.run script from upstream to see if perhaps a build script wrapper could be used to convert the *.run output into a package. something like the nvidia build script. I did not dig deep, so perhaps a way exists.
FWIW, the choice for qt5 is perfectly fine. qt4 is already EOL and won't receive any updates or security fixes anymore. It's just Slackware which is behind a little bit
But that's fine as well. We'll catch up soon enough in -current and then this will again not be a problem.
Update: I am running 5.2.14 on 14.2 64-bit using a modified SlackBuild script. I had to move to 5.2.14 because one of my VMs would not build the GA vboxvideo driver with 5.1.38.
I had to comment out the VBoxFUSE elements in the build script otherwise the package failed to build. I don't know if this is a Slackware issue or upstream -- I am not a compiling weeeezard.
Still would be nice if the build script could be a wrapper to the upstream *.run scripts, something like NVidia.
Apply that patch to the VirtualBox source (for example, put it in a .patch file, then call it the same as the other patches in your SlackBuild) and it should continue building. You'll likely have other issues though If you notice a bug in compiling, try removing any already-installed virtualbox packages, includes, libraries, etc and try your build again.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.