Summary: | emulators/virtualbox-ose: incorrect USE_GL | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Ports & Packages | Reporter: | Maxim Sobolev <sobomax> | ||||||||
Component: | Individual Port(s) | Assignee: | Virtualbox Team (Nobody) <vbox> | ||||||||
Status: | Closed FIXED | ||||||||||
Severity: | Affects Only Me | CC: | cmt, dmgk, jkim, pi, samy.mahmoudi, sobomax, w.schwarzenfeld | ||||||||
Priority: | --- | Keywords: | needs-patch, needs-qa | ||||||||
Version: | Latest | Flags: | bugzilla:
maintainer-feedback?
(vbox) |
||||||||
Hardware: | Any | ||||||||||
OS: | Any | ||||||||||
Attachments: |
|
Description
Maxim Sobolev
2017-03-03 01:24:34 UTC
We have 5.2.4 is this still a problem, or is it overcome by events, Yes, it's still a problem. Should be USE_GL="gl glu". Created attachment 201411 [details] Patch file generated with svn diff (In reply to Maxim Sobolev from comment #2) Since revision 479445, it should even be: USES=gl USE_GL=gl glu Please note that USE_GL=gl glu alone is "deprecated": it is now provided for backward compatibility but "will be removed eventually". Source: https://svnweb.freebsd.org/ports?view=revision&revision=479445 Someone who knows this has modified the port accordingly, but your patch is still unapplied. Anyway, Makefile has changed since 2017 so that I updated your initial patch. Thanks for the patch. I did poudriere testbuilds and they failed with ===> Checking for items in STAGEDIR missing from pkg-plist Error: Orphaned: @dir %%DATADIR%%/sdk ===> Checking for items in pkg-plist which are not in STAGEDIR which is, I guess, unrelated to your patch. Nice catch Kurt. I will investigate and possibly file a bug report. Created attachment 201487 [details] Poudriere package log (In reply to Kurt Jaeger from comment #4) Hi Kurt, I may know how to solve this but I need to reproduce the error as a control. What commands did you issue to generate this error? I naively tried: • poudriere jail -c -j 120-RELEASE-amd64 -v 12.0-RELEASE -a amd64 • poudriere ports -c -m svn+https • poudriere testport -j 120-RELEASE-amd64 -o emulators/virtualbox-ose but I did not get such an error. My full build log can be found at http://people.freebsd.org/~pi/logs/virtualbox-120-1548507690.txt make showconfig has this: ===> The following configuration options are available for virtualbox-ose-5.2.24_1: ALSA=off: ALSA audio architecture support DBUS=on: D-Bus IPC system support DEBUG=off: Debug symbols, additional logs and assertions GUESTADDITIONS=on: Build with Guest Additions MANUAL=on: Build with user manual NLS=on: Native language support (requires QT5) PULSEAUDIO=on: PulseAudio sound server support PYTHON=on: Python bindings or support QT5=on: Build with QT5 frontend (requires X11) R0LOGGING=off: Enable R0 logging (requires DEBUG) UDPTUNNEL=on: Build with UDP tunnel support VDE=off: Build with VDE support VNC=on: Build with VNC support VPX=off: Use libvpx for video recording WEBSERVICE=off: Build Webservice X11=on: X11 (graphics) support If I use the same options you used, it builds. (In reply to Kurt Jaeger from comment #9) Comparing our options and looking at the make file, I thought the option PYTHON triggered the error. Your last comment seems to confirm this. My laptop is too slow to build this port and ccache seems useless so I will carry on testing on a different machine. I tested with PYTHON=on, it still builds. So the cause is some other option. I'll do more tests. (In reply to Kurt Jaeger from comment #4) This is a simple problem. Try this: Index: emulators/virtualbox-ose/Makefile =================================================================== --- emulators/virtualbox-ose/Makefile (revision 491592) +++ emulators/virtualbox-ose/Makefile (working copy) @@ -315,7 +315,9 @@ do-build: .endif do-install: +.if ${PORT_OPTIONS:MPYTHON} || ${PORT_OPTIONS:MWEBSERVICE} ${MKDIR} ${STAGEDIR}${DATADIR}/sdk +.endif cd ${KMK_BUILDDIR}/bin/sdk/bindings/xpcom && \ ${COPYTREE_SHARE} "idl samples" ${STAGEDIR}${DATADIR} Thank you both for your help. (In reply to Jung-uk Kim from comment #12) My problem is the lack of a decent machine... Uprading an 8-cores server from 11.1 to 12.0 should be better than sticking to my laptop ;-) A commit references this bug: Author: jkim Date: Tue Jan 29 22:28:25 UTC 2019 New revision: 491601 URL: https://svnweb.freebsd.org/changeset/ports/491601 Log: Fix OpenGL dependency and appease stage-qa. PR: 217511 Changes: head/emulators/virtualbox-ose/Makefile It should be fixed now. Thanks! (In reply to Jung-uk Kim from comment #16) With your commit and Kurt's set of options, I now get: Error: /usr/local/lib/virtualbox/VBoxTestOGL is linked to /usr/local/lib/libGL.so.1 from graphics/mesa-libs but it is not declared as a dependency Warning: you need USE_GL+=gl So the secondary problem that Kurt found out seems corrected while the primary problem of Bug 217511 is still not. I think you should have changed the value of line 152 as I did in the patch of comment #3: to "gl glu", not to "glu" only. I understand the new semantic as: • First, indicate that the port uses OpenGL • Secondly, indicate which OpenGL components the port uses In the make syntax, this gives in general: • USES=gl • USE_GL=egl gl glu... (In reply to Jung-uk Kim from comment #16) sorry to barge in here, but after this commit, do-install is broken if neither PYTHON nor WEBSERVISE has been selected: ${DATADIR}/sdk will not be created anymore, but Makefile line 331: ${RLN} ${STAGEDIR}${DATADIR}/sdk ${STAGEDIR}${VBOX_DIR} still references ${DATADIR}/sdk: install -l rs /wrkdirs/usr/ports/emulators/virtualbox-ose/work/stage/usr/local/share/virtualbox-ose/sdk /wrkdirs/usr/ports/emulators/virtualbox-ose/work/stage/usr/local/lib/virtualbox install: /wrkdirs/usr/ports/emulators/virtualbox-ose/work/stage/usr/local/share/virtualbox-ose/sdk: realpath: No such file or directory *** Error code 71 For the secondary problem, we may use lines 178 to 182 (these lines seem useless now) and modify the package plist with some %%SDK%% prefixes according to these guidelines: https://www.freebsd.org/doc/en/books/porters-handbook/plist-cleaning.html *** Bug 235317 has been marked as a duplicate of this bug. *** ${RLN} needs a condition and pkg-plist seems to be just missing %%SDK%% prefix: Index: Makefile =================================================================== --- Makefile (revision 491626) +++ Makefile (working copy) @@ -328,7 +328,9 @@ ${MKDIR} ${STAGEDIR}${VBOX_DIR} cd ${KMK_BUILDDIR}/bin && ${COPYTREE_SHARE} \ "*.fd *.r0 *.rc *.so components" ${STAGEDIR}${VBOX_DIR} +.if ${PORT_OPTIONS:MPYTHON} || ${PORT_OPTIONS:MWEBSERVICE} ${RLN} ${STAGEDIR}${DATADIR}/sdk ${STAGEDIR}${VBOX_DIR} +.endif ${INSTALL_SCRIPT} ${WRKSRC}/src/VBox/Installer/freebsd/VBox.sh \ ${STAGEDIR}${VBOX_DIR} Index: pkg-plist =================================================================== --- pkg-plist (revision 491626) +++ pkg-plist (working copy) @@ -422,7 +422,7 @@ lib/virtualbox/VMMRC.rc %%QT%%@(root,%%VBOXGROUP%%,4510) lib/virtualbox/VirtualBox %%QT%%lib/virtualbox/VirtualBox.so -lib/virtualbox/sdk +%%SDK%%lib/virtualbox/sdk %%WEBSERVICE%%lib/virtualbox/vboxwebsrv %%WEBSERVICE%%lib/virtualbox/webtest %%VNC%%lib/virtualbox/ExtensionPacks/VNC/ExtPack-license.html (In reply to Samy Mahmoudi from comment #17) I omitted gl because glu requires gl. If it still complains, I guess we have to add it, too. :-( (In reply to Dmitri Goutnik from comment #21) I'll commit it soon. Thanks! A commit references this bug: Author: jkim Date: Wed Jan 30 19:24:18 UTC 2019 New revision: 491653 URL: https://svnweb.freebsd.org/changeset/ports/491653 Log: Appease stage-qa. PR: 217511 Changes: head/emulators/virtualbox-ose/Makefile head/emulators/virtualbox-ose/pkg-plist |