Bug 255973 - x11-drivers/xf86-video-qxl deprecated/deleted, yet upstream source builds on freebsd 12.2
Summary: x11-drivers/xf86-video-qxl deprecated/deleted, yet upstream source builds on ...
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: amd64 Any
: --- Affects Some People
Assignee: Hiroki Sato
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-05-18 11:24 UTC by John Hartley
Modified: 2024-02-13 11:55 UTC (History)
7 users (show)

See Also:


Attachments
qxl Makefile patch to remove python version dependency (776 bytes, patch)
2021-09-07 00:09 UTC, John Hartley
no flags Details | Diff
Readd xf86-video-xql and remove python27 as dep (4.67 KB, patch)
2021-09-26 09:37 UTC, Alexander Vereeken
no flags Details | Diff
Readd xf86-video-xql and remove python27 as dep (v2) (4.66 KB, patch)
2021-09-26 09:44 UTC, Alexander Vereeken
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description John Hartley 2021-05-18 11:24:36 UTC
BUG/REQUEST:

The xf86-video-qxl X11 driver has been deprecated due to dependency on Python 2.7

See Fresh Ports: https://www.freshports.org/x11-drivers/xf86-video-qxl/

However on doing upstream source build on FreeBSD 12.2 this builds and runs without any source changes / patches and already supports Python 3.7 dependency.

Could this port please be reinstated and updated with build against Python 3.7

TESTING:

X11 failed to start using: startx

On FreeBSD 12.2 running as Ubuntu 21.04 KVM / QEMU quest did:

1. Package install of build tools
2. Clone of upstream xf86-video-qxl
3. Followed by configure, make and make install

Simple configuration update to allow QEMU EvTouch USB Tablet to work with evdev & utouch package.

Result was:

X11 now starts on FreeBSD 12.2 when run as guest on Ubuntu 21.04 KVM / QEMU host

Build details are:

---
--- Install the build tools
---
$ pkg install git
$ pkg install autoconf
$ pkg install automake
$ pkg install xorg-macros
$ pkg install m4
$ pkg install pkgconf
$ pkg install libtool
$ pkg install python37

---
--- Clone source and make
--- 
$ cd dev
$ git clone https://gitlab.freedesktop.org/xorg/driver/xf86-video-qxl.git
$ cd xf86-video-qxl
$ ./autogen.sh
$ make
$ su
$ make install

NOTE: Other packages installed include: xorg evdev & utouch

Configuration required for evdev/utouch:

# cat /usr/local/etc/X11/xorg.conf.d/99-qemu-input.conf 
#
# Overide libinput
#
Section "InputClass"
        Identifier "evdev touchscreen catchall"
        MatchIsTouchscreen "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

More details and testing information is documented here:https://tips.graphica.com.au/freebsd-gnome-on-qemu/

X11 now starts via startx

NOTE: gdm & gnome3 not installed as these package are also missing, to I only tested as part as getting X11 running.


SUMMARY:

I have not done build of full "Spice" sub-system but certainly the xf86-video-qxl driver port should be readily updated to build without Python 2.7 dependency.
Comment 1 Niclas Zeising freebsd_committer freebsd_triage 2021-05-28 09:29:24 UTC
Hi!
Feel free to submit a patch to update qxl to use python3 instead of python 2, and I'll look into it.
Thanks!
Comment 2 John Hartley 2021-05-30 06:53:14 UTC
Hi Niclas,

as it appears that xf86-video-qxl was removed from the ports repository with branch 2020Q4, I did a fork of entire ports tree (via GitHub) and then checked out the 2020Q3 branch.

# git checkout 2020Q3

I then update of Makefile to use python 3.7 and make.

This built successfully.

Here is diff:
git diff Makefile
diff --git a/x11-drivers/xf86-video-qxl/Makefile b/x11-drivers/xf86-video-qxl/Makefile
index 65dbd1059ebe..fb265dd39d71 100644
--- a/x11-drivers/xf86-video-qxl/Makefile
+++ b/x11-drivers/xf86-video-qxl/Makefile
@@ -17,7 +17,7 @@ BUILD_DEPENDS=        spice-protocol>=0.12.10:devel/spice-protocol \
                ${LOCALBASE}/include/linux/input.h:devel/evdev-proto
 LIB_DEPENDS=   libspice-server.so:devel/libspice-server
 
-USES=          localbase:ldflags pkgconfig python:2.7 shebangfix xorg \
+USES=          localbase:ldflags pkgconfig python:3.7 shebangfix xorg \
                xorg-cat:driver
 USE_XORG=      xfont


Given that the entire sub-directory is removed from port tree, I am not sure what the process is to get it back with updated dependencies.

Cheers,


John Hartley.
Comment 3 Jan Beich freebsd_committer freebsd_triage 2021-09-03 10:21:04 UTC
(In reply to John Hartley from comment #0)
> python:3.7

This hardcodes lang/python37 dependency which is non-default since ports 6cd3db2d03cc. Try "python" (without quotes) instead as ports 6a834798621f already excludes lang/python27.

Disclaimer: I haven't tested the suggestion, don't use the port and not the maintainer to approve.
Comment 4 John Hartley 2021-09-04 13:24:08 UTC
(In reply to Jan Beich from comment #3)

Hi Jan,

I wish the maintain of this port would resolve the problem.

The port has not been restored.

I have retested with 12.2.

Process was:

1. Clean install of FreeBSD 12.2

2. Install the X11/gnome/evdev/utouch pks: pkg install xorg gnome-desktop xf86-input-evdev utouch-kmod

3. Install all the build tools: pkg install git autoconf automake xorg-macros m4 pkgconf libtool

4. Install all the dependency (as pkg) to ensure pickup latest and greatest versions: pkg install help2man libspice-server spice-protocol bison texinfo openssl

5. Clone the ports tree via github: git clone XXX

6. Check out the old tree branck: git checkout 2020Q3

7. Edit the Makefile to remove the explicit python dependency (as per suggestion)

8. Fix the X11 config file to pickup the QEMU Tablet Driver

Result: Able to run FreeBSD Desktop again as KVM/QEMU VM

Here is updated diff file:

$ git diff Makefile
diff --git a/x11-drivers/xf86-video-qxl/Makefile b/x11-drivers/xf86-video-qxl/Makefile
index fb265dd39d71..42cb413cebf7 100644
--- a/x11-drivers/xf86-video-qxl/Makefile
+++ b/x11-drivers/xf86-video-qxl/Makefile
@@ -17,7 +17,7 @@ BUILD_DEPENDS=        spice-protocol>=0.12.10:devel/spice-protocol \
                ${LOCALBASE}/include/linux/input.h:devel/evdev-proto
 LIB_DEPENDS=   libspice-server.so:devel/libspice-server
 
-USES=          localbase:ldflags pkgconfig python:3.7 shebangfix xorg \
+USES=          localbase:ldflags pkgconfig python shebangfix xorg \
                xorg-cat:driver
 USE_XORG=      xfont
Comment 5 John Hartley 2021-09-04 13:31:22 UTC
(In reply to Niclas Zeising from comment #1)

Hi Niclas,

are you able to help with getting the x11-drivers/xf86-video-qxl port tree restored and fixed.

I have tested with both explicit python, updated to 3.7:

>> USES=          localbase:ldflags pkgconfig python:3.7 shebangfix xorg \

As well as implicit "current" python version:

>> USES=          localbase:ldflags pkgconfig python shebangfix xorg \

where have:

>> $ python3.7 --version
>> Python 3.7.9

Cheers from Australia.

John Hartley.
Comment 6 Niclas Zeising freebsd_committer freebsd_triage 2021-09-06 10:21:03 UTC
Are you actually using this driver?  Does it work, or just compile?

Can you add the patch as an attachment so that it is not mangled by bugzilla, that would be helpful.

I'll see if I can get the port restored.
Comment 7 John Hartley 2021-09-07 00:04:49 UTC
(In reply to Niclas Zeising from comment #6)

Hi Niclas,

yes I have used and tested.

Testing requires a Linux KVM / QEMU setup as the QXL driver is virtual device driver for use with QEMU. 

Without the QXL driver X11 startup "startx" fails.

So the driver allows FreeBSD with X11 running as VM.

But you need to make sure that the there is no video/display driver in configured in "/etc/usr/local/X11/xorg.conf.s" for it to work.

I have attached patch file, which just removes to pyton version check completely (on assumption that ports is enforcing default python version somewhere else, as per comment from Jan Beich.

NOTE: In doing build test I have already done pkg install of: libspice-dev spice-protocol so the bulid process did not go into "spice" dependency build.

Cheers from Australia,

John Hartley.
Comment 8 John Hartley 2021-09-07 00:09:18 UTC
Created attachment 227723 [details]
qxl Makefile patch to remove python version dependency



Patch file for: x11-drivers/xf86-video-qxl/Makefile

NOTE: The entire x11-drivers/xf86-video-qxl port tree was deprecated after "2020Q3" due to python 2.7 dependency (already addressed upstream).
Comment 9 Alexander Vereeken 2021-09-26 09:37:51 UTC
Created attachment 228190 [details]
Readd xf86-video-xql and remove python27 as dep

I guess that should be the proper patch that the reporter wants.
Comment 10 Alexander Vereeken 2021-09-26 09:44:02 UTC
Created attachment 228191 [details]
Readd xf86-video-xql and remove python27 as dep (v2)

Remove # $FreeBSD$ from the Makefile.
Comment 11 John Hartley 2021-10-07 00:22:59 UTC
(In reply to Alexander Vereeken from comment #10)

Hi Alexander,

does your patch both re-establish the xf86-video-qxl port sub-tree as well as address the (redundant) python27 dependency ?

And if so I should just make my patch obselete ?

Thank you.

John Hartley
Comment 12 Alexander Vereeken 2021-11-07 10:56:47 UTC
(In reply to John Hartley from comment #11)

Yes. Sorry for late answer btw.
Comment 13 Michael Dexter 2022-06-28 06:09:36 UTC
I see a comment from five years ago, "Xspice: Fix Python3 str() vs bytes() confusion" which suggests this is getting some Python3 attention.

Has anyone tried to build the current code?

https://gitlab.freedesktop.org/xorg/driver/xf86-video-qxl
Comment 14 Jan Beich freebsd_committer freebsd_triage 2023-02-12 17:26:06 UTC
Revived in ports 72478310d3b0 with "python" in USES and different maintainer.
Comment 15 John Hartley 2023-04-08 08:47:24 UTC
Hi BSD Maintainers,

TESTING:

I have retested using VM on:
- Ubuntu 22.04 QEMU/KVM Host
- with OVMF (UEFI), Q35 VM with VirtoIO Disk and Network Drivers

FreeBSD Quest OS:
- 13.1
- only pkg (binary) install: xorg gnome-lite xf86-input-evdev utouch-kmod help2man texinfo libspice-server spice-protocol python38 bison openssl
- pkg (binary) install: xf86-video-qxl


RESULT:

Test #1

startx - initially failed, add X11 configuration to force use of scfb video

Test #2

With scfb video

startx - brings up X11 with working QEMU USB Tablet mouse with no further additional configuration

SUMMARY:

QEMU USB Tablet working again
QXL - Video Driver Crashes
SCFB - Video Driver provides usable workaround

No need to build install revived ports package as binary pkg works

END:

Thank you very much for restoring xf86-video-qxl package.

It is again possible to running X11 on KVM/QEMU without to much work.

Happy Easter from Australia,

John Hartley.
Comment 16 mario felicioni 2024-02-13 11:55:48 UTC
I've tested the qxl-vga driver because I wanted to boot FreeBSD 14 with quickemu.
I compiled it from ports,but unfortunately it didn't work :

https://github.com/quickemu-project/quickemu/issues/926#issuecomment-1941307198