Skip to content

Update X packages #89

Merged
merged 33 commits into from
Sep 7, 2016
Merged

Update X packages #89

merged 33 commits into from
Sep 7, 2016

Conversation

pmenzel
Copy link
Collaborator

@pmenzel pmenzel commented Aug 10, 2016

Update the X.Org X server from 1.15.0 to 1.18.4. Also update the evdev driver.

Note, first the Xorg server has to be built and installed, and only then the modules can be built. Otherwise, they complain about an ABI mismatch and are not loaded, resulting in a black screen.

Please note, that the modesetting driver is included in this version, supporting Intel graphics devices
out of the box. This driver is used by default on a lot distributions now.

Tested on keineahnung, thehawk, sigint, and lammkarree.

The problem with powered off monitors connected over DP, not being recognized again, still remains on lammkarree, but not my system.

libinput is not added, as it fails to build, and is not needed, as evdev is available.

@pmenzel pmenzel self-assigned this Aug 11, 2016
@pmenzel pmenzel changed the title Update X packages [NOTFORMERGE] Update X packages Aug 11, 2016
@pmenzel pmenzel changed the title [NOTFORMERGE] Update X packages Update X packages Aug 31, 2016
@pmenzel
Copy link
Collaborator Author

pmenzel commented Aug 31, 2016

Here is the update script.

sudo bee update util-macros
sudo bee update libevent
sudo bee update xtrans
sudo bee update xproto
sudo bee update randrproto
sudo bee update fontsproto
sudo bee update libevdev
sudo bee install mtdev
sudo bee update libwacom

#sudo ./cairo.be0
sudo bee update cairo
#sudo ./libdrm.be0
sudo bee update libdrm

#sudo ./xorg-server.be0
sudo bee update xorg-server

#sudo ./xf86-input-evdev.be0
sudo bee update xf86-input-evdev

@pmenzel
Copy link
Collaborator Author

pmenzel commented Aug 31, 2016

Tested on keineahnung, thehawk, and sigint.

@pmenzel
Copy link
Collaborator Author

pmenzel commented Aug 31, 2016

… and lammkarree.

The current URL is a redirect, so use the final location right away.

```
$ wget http://ftp.x.org/pub/individual/util/
--2016-08-24 17:18:48--  http://ftp.x.org/pub/individual/util/
Resolving ftp.x.org (ftp.x.org)... 131.252.210.176, 2610:10:20:722:a800:ff:feda:470f
Connecting to ftp.x.org (ftp.x.org)|131.252.210.176|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.x.org/pub/individual/util/ [following]
--2016-08-24 17:18:49--  https://www.x.org/pub/individual/util/
Resolving www.x.org (www.x.org)... 131.252.210.176, 2610:10:20:722:a800:ff:feda:470f
Connecting to www.x.org (www.x.org)|131.252.210.176|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.x.org/archive//individual/util/ [following]
--2016-08-24 17:18:49--  https://www.x.org/archive//individual/util/
Reusing existing connection to www.x.org:443.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘index.html’

index.html                                               [ <=>                                                                                                                    ]  28.65K   154KB/s   in 0.2s

2016-08-24 17:18:50 (154 KB/s) - ‘index.html’ saved [29342]

```
Recreate the bee file using the command below.

```
> bee init https://www.x.org/archive/individual/util/util-macros-1.19.0.tar.bz2
creating util-macros-1.19.0-0.bee from template '/etc/default/bee/templates/fallback'
```
@donald
Copy link
Collaborator

donald commented Sep 2, 2016

rebased on master for testing....

@donald
Copy link
Collaborator

donald commented Sep 2, 2016

To get my system in sync to this branch I'd have to

  • build from the supplied bee files (packages were/are missing in /src/mariux) :
    • libXrandr-1.5.0-0
    • libinput-1.1.3-0 (would need to, but doesn't build)
    • mesalib-11.2.2-0 (would need to, but doesn't build)
  • add to update script:
    • remove glamor-egl-0.6.0-0.x86_64
    • update libXrand-1.5.0-0
    • install libinput-1.1.3-0
  • add/replace bee files in the branch by existing uninstalled bee files, which are added by the update script:
    • fontsproto-2.1.2-0.bee -> fontsproto-2.1.3-0.bee
    • libevent-2.0.19-0.bee -> libevent-2.0.21-0.bee
    • libwacom-0.5-0.bee -> libwacom-0.18-0.bee
    • mtdev-1.1.5-1.bee
    • randrproto-1.4.0-0.bee -> randrproto-1.5.0-0.bee
    • xproto-7.0.25-0.bee -> xproto-7.0.28-0.bee
    • xtrans-1.3.3-0.bee -> xtrans-1.3.3-0.bee

@pmenzel
Copy link
Collaborator Author

pmenzel commented Sep 2, 2016

@donald, did you use my latest commit/branch? The libinput commit is for example reverted.

Strange about mesa. What was updated then. ;-) What error did you get?

See you on Monday.

@thomas
Copy link
Collaborator

thomas commented Sep 2, 2016

Just a test ...

On September 2, 2016 6:20:22 PM GMT+02:00, pmenzel nobody@molgen.mpg.de wrote:

@donald, did you use my latest commit/branch? The libinput commit is
for example reverted.

Strange about mesa. What was updated then. ;-) What error did you get?

See you on Monday.


You are receiving this because you were assigned.
Reply to this email directly or view it on GitHub Enterprise:
#89 (comment)

Thomas Kreitler - Information Retrieval
kreitler@molgen.mpg.de
49/30/8413 1702

@pmenzel
Copy link
Collaborator Author

pmenzel commented Sep 5, 2016

I’ll also take out Mesa, as it needs changes in LLVM for building.

checking for AMDGPU... yes
configure: error: Could not find llvm shared libraries:
        Please make sure you have built llvm with the --enable-shared option
        and that your llvm libraries are installed in /usr/lib
        If you have installed your llvm libraries to a different directory you
        can use the --with-llvm-prefix= configure flag to specify this directory.
        NOTE: Mesa is attempting to use llvm shared libraries by default.
        If you do not want to build with llvm shared libraries and instead want to
        use llvm static libraries then add --disable-llvm-shared-libs to your configure
        invocation and rebuild.

@pmenzel pmenzel force-pushed the update-x-packages branch 2 times, most recently from 9e0908f to d84e6fa Compare September 5, 2016 11:48
Copy the already present bee file from `/src/mariux/beeroot`.

```
$ cp -a /src/mariux/beeroot/bee-files/libevent-2.0.21-0.bee .
$ ls -l --full-time libevent-2.0.21-0.bee
-rwxr-xr-x 1 pmenzel pmenzel 417 2014-12-18 08:52:49.000000000 +0100 libevent-2.0.21-0.bee
```
Copy the already present bee file from `/src/mariux/beeroot`.

```
$ cp -a /src/mariux/beeroot/bee-files/xtrans-1.3.5-0.bee .
$ ls -l --full-time xtrans-1.3.5-0.bee
-rwxr-xr-x 1 pmenzel pmenzel 2583 2015-12-11 11:54:46.000000000 +0100 xtrans-1.3.5-0.bee
```
Copy the already present bee file from `/src/mariux/beeroot`.

```
$ cp -a /src/mariux/beeroot/bee-files/xproto-7.0.28-0.bee .
$ ls -l --full-time xproto-7.0.28-0.bee
-rwxr-xr-x 1 pmenzel pmenzel 2585 2015-12-11 12:04:24.000000000 +0100 xproto-7.0.28-0.bee
```
Copy the already present bee file from `/src/mariux/beeroot`.

```
$ cp -a /src/mariux/beeroot/bee-files/randrproto-1.5.0-0.bee .
$ ls -l --full-time randrproto-1.5.0-0.bee
-rwxr-xr-x 1 pmenzel pmenzel 2589 2015-12-11 12:14:03.000000000 +0100 randrproto-1.5.0-0.bee
```
Copy the already present bee file from `/src/mariux/beeroot`.

```
$ cp -a /src/mariux/beeroot/bee-files/fontsproto-2.1.3-0.bee .
$ ls -l --full-time fontsproto-2.1.3-0.bee
-rwxr-xr-x 1 pmenzel pmenzel 2589 2015-12-11 12:16:03.000000000 +0100 fontsproto-2.1.3-0.bee
```
[ANNOUNCE] libevdev 1.5.0 [0]

> libevdev 1.5.0 is now available
>
> The main change in this version is the transparent use of the new
> uinput ioctls available in kernels 4.5 and later. These ioctls now
> allow for setting the abs resolution field without the previous danger
> of race conditions. This obviously only affects the creation of uinput
> devices, libevdev itself was otherwise unchanged.
>
> Option parsing in libevdev-tweak-device has been fixed too, so the
> previous quirky behavior is now sensible. And it now allows for
> numeric axis names for those axes that don't have a #define.

[ANNOUNCE] libevdev 1.5.1 [1]

> Only one fix over the 1.5.0 release - a missing backslash caused the
> linux/uinput.h to be excluded from the tarball. This caused build
> errors on systems with older kernels that lacked the new uinput.h
> defines.

[ANNOUNCE] libevdev 1.5.2 [2]

> Only a single change to update to a newere linux/input.h header. This
> gives us name resolution for the new BUS_RMI define.

[0] https://lists.freedesktop.org/archives/input-tools/2016-May/001296.html
[1] https://lists.freedesktop.org/archives/input-tools/2016-May/001301.html
[2] https://lists.freedesktop.org/archives/input-tools/2016-June/001307.html
pmenzel and others added 24 commits September 5, 2016 13:49
Copy the already present bee file from `/src/mariux/beeroot`.

```
$ cp -a /src/mariux/beeroot/bee-files/mtdev-1.1.5-0.bee .
$ ls -l --full-time mtdev-1.1.5-0.bee
-rwxr-xr-x 1 pmenzel pmenzel 2570 2016-02-29 12:27:17.000000000 +0100 mtdev-1.1.5-0.bee
```
Copy the already present bee file from `/src/mariux/beeroot`.

```
$ cp -a /src/mariux/beeroot/bee-files/mtdev-1.1.5-1.bee .
$ ls -l --full-time mtdev-1.1.5-1.bee
-rwxr-xr-x 1 pmenzel pmenzel 2570 2016-07-01 12:45:56.723069052 +0200 mtdev-1.1.5-1.bee
```
Copy the already present bee file from `/src/mariux/beeroot`.

```
$ cp -a /src/mariux/beeroot/bee-files/libwacom-0.18-0.bee .
$ ls -l --full-time libwacom-0.18-0.bee
-rwxr-xr-x 1 pmenzel pmenzel 2580 2016-06-23 11:39:23.337641021 +0200 libwacom-0.18-0.bee
```
Convert to versionless bee file, and update version.
Use HTTPS to securely download the source archive.
Convert to versionless bee file, and update version.
Use HTTPS to securely download the source archive.
=== 1.18.1 [1] ===

First release in the 1.18 stable branch. Major themes are bugfixes in
glamor, the modesetting driver, and the Present extension.

Xwayland users may want to apply the following pair of patches in
addition to this release:

https://patchwork.freedesktop.org/patch/72945/raw/
https://patchwork.freedesktop.org/patch/72951/raw/

which combined fix an input issue when hotplugging monitors. Both are
likely to be included in a future release unless testing discovers
further problems.

=== 1.18.2 [2] ===

A big pile of updates in this one. Highlights include:

- glamor is updated to use OpenGL core profiles if available, which
should improve memory usage and performance on modern hardware, and got
some other performance improvements for rpi and other GLES platforms

- DRI2, DRI3, and Present all received correctness fixes for hangs,
crashes, and other weirdness

- Xwayland server has been updated to support the Xv and the
xf86vidmode extensions for better compatibility, and fixed some bugs
with output hotplug and pointer updates

- Xwin saw improvements to window and clipboard management, and a few
new keyboard layouts

Full change list below. Many thanks to all for fixes and code review.

=== 1.18.3 [3] ===

A few fixes relative to 1.18.2, including one fairly important
performance fix to the Present extension. Thanks to all for fixes and
testing.

=== 1.18.4 [4] ===

Another pile of backports from the devel branch, primarily in glamor,
xwayland, and the modesetting driver. Thanks to all who contributed.

[1] https://lists.x.org/archives/xorg-announce/2016-February/002674.html
[2] https://lists.x.org/archives/xorg-announce/2016-March/002681.html
[3] https://lists.x.org/archives/xorg-announce/2016-April/002683.html
[4] https://lists.x.org/archives/xorg-announce/2016-July/002699.html
From the LFS book [1]:

> --enable-glamor: Build the Glamor DIX (Device Independent X) module
> which is currently required for Southern Islands and Sea Islands radeon
> video chipsets, optional for some other radeons, and also optional for
> the intel driver. It is also used by the modesetting driver (which is
> part of this package) for hardware using KMS which offers acceleration.

[1] http://www.linuxfromscratch.org/blfs/view/svn/x/xorg-server.html
xorg.freedesktop.org redirects to x.org.

```
[BEE] fetching http://xorg.freedesktop.org/archive/individual/xserver/xorg-server-1.18.4.tar.bz2
--2016-08-11 15:03:43--  http://xorg.freedesktop.org/archive/individual/xserver/xorg-server-1.18.4.tar.bz2
Resolving xorg.freedesktop.org (xorg.freedesktop.org)... 131.252.210.176, 2610:10:20:722:a800:ff:feda:470f
Connecting to xorg.freedesktop.org (xorg.freedesktop.org)|131.252.210.176|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.x.org/archive/individual/xserver/xorg-server-1.18.4.tar.bz2 [following]
--2016-08-11 15:03:43--  https://www.x.org/archive/individual/xserver/xorg-server-1.18.4.tar.bz2
Resolving www.x.org (www.x.org)... 131.252.210.176, 2610:10:20:722:a800:ff:feda:470f
Connecting to www.x.org (www.x.org)|131.252.210.176|:443... connected.
HTTP request sent, awaiting response... 200 OK
[…]
```
It’s redirected to HTTPS already, but save the redirect and make it
clear.
Somebody, maybe Peter, built libinput already. So copy the version from
`/src/mariux/beeroot`.

```
$ cp -a /src/mariux/beeroot/bee-files/libinput-1.1.3-0.bee .
$ ls -l --full-time libinput-1.1.3-0.bee
-rwxr-xr-x 1 pmenzel pmenzel 2613 2016-04-20 14:43:38.000000000 +0200 libinput-1.1.3-0.bee
```
Note, the bee file was removed from the repository, as the package was
not installed. Add it again.

The Wiki page [1] contains links to all the change-logs.

Change-log 1.2.0 [2]:
---------------------

> libinput 1.2 is now available.
>
> Nothing significant since rc2, below is an outline of changes since 1.1.
> The main feature merged since 1.1 is graphics tablet tool support.
> Devices tagged by udev as ID_INPUT_TABLET are handled by libinput now and
> exposed with the LIBINPUT_DEVICE_CAP_TABLET_TOOL capability. Note that this
> currently only includes tablet tool support, including stylus, eraser,
> cursor, lens cursor, etc. The "pad" part of the tablet is not yet
> integrated. For documentation on tablet support see these two links:
> http://wayland.freedesktop.org/libinput/doc/latest/tablet-support.html
> http://wayland.freedesktop.org/libinput/doc/latest/group__event__tablet.html
>
> It is now possible to disable tap-and-drag independently from tapping in
> general by caling libinput_device_config_tap_set_drag_enabled()
>
> We now have three-finger pinch gestures on supported hardware, but also had
> to disable gestures on some hardware. On that hardware the data is generally
> garbage for gestures but two-finger scroll gestures and multi-finger taps
> should work a lot more reliable now.
>
> The motion hysteresis has been deactivated by default. This provides
> smoother motion especially on small to tiny motions, making single-pixel
> elements much easier to target.
> On some devices, especially older touchpads the hysteresis may be required.
> We've enabled a bunch of those already, if you notice the pointer wobbling
> when hold the finger still, please file a bug so we can fix this.
>
> Disable-while-typing has seen two fixes: if a key is merely held down rather
> than pressed repeatedly, DWT will engage as expected now. And the
> pairing algorithm has been improved to avoid cases where the touchpad was
> paired with an external USB keyboard, despite there being a internal
> keyboard.
>
> Last: the mode button on the Cyborg RAT 5 is disabled. This button is
> special, on each press it cycles through 3 'modes', sending a release
> event for the current button and a down event for the next event code. This
> causes stuck buttons, since we have nothing in userspace that would handle
> that button as intended, disabling it is the current solution.

Change-log 1.3.0 [3]:
---------------------

> libinput 1.3 is now available.
>
> The main addition over 1.2 is support for so-called tablet pads, i.e.
> the actual tablet part of a graphics tablet. This concludes the graphics
> tablet work in libinput, we are now feature-complete.
> Since the rc2 we only had a documentation change, so below is the
> announcement for 1.3rc1.
>
> Tablet pads feature three input sources - buttons, rings and strips. Rings
> and strips provide data in degrees and normalized, respectively, with a
> similar "source" system as we already offer for pointer axis sources.
> Buttons are just that, a sequential list of buttons starting at index 0 -
> this is a notable departure from the linux/input.h event codes we use in the
> pointer and the tablet tool interface.
>
> The second notable addition are middle buttons for touchpads with a software
> button area. Previously, a middle button could be triggered by pressing with
> a finger in the left and right button area simultanously. Unfortunately, too
> many touchpads are unable to reliably detect both fingers. The middle button
> area is always available when software buttons are enabled and encompasses
> the center 15-20mm on the touchpad.
>
> We already had middle button scrolling available on trackpoints, with this
> release middle button emulation now works as well. Thus, scrolling is
> available on trackpoints that don't have a physical middle button.
>
> Finally, touchscreens that have a fuzz value set on the kernel device are
> now defuzzed in libinput, thus stopping pointer wobbles previously seen when
> holding the finger still. Note that libinput does not *set* the fuzz value,
> it merely uses it. Employ a udev rule or hwdb entry to set this on your
> device if needed.

[1] https://www.freedesktop.org/wiki/Software/libinput/
[2] https://lists.freedesktop.org/archives/wayland-devel/2016-February/027172.html
[3] https://lists.freedesktop.org/archives/wayland-devel/2016-May/028704.html
This reverts commit 5e594099e000e3ba4b8007c97201c4bcebf5b96b.

Building fails with the error below.

```
  CCLD     ptraccel-debug
  CCLD     libshared.la
  CCLD     libinput-list-devices
  CCLD     libinput-debug-events
  CCLD     event-debug
../src/.libs/libinput.so: undefined reference to `udev_device_get_is_initialized'
collect2: error: ld returned 1 exit status
Makefile:567: recipe for target 'libinput-list-devices' failed
make[2]: *** [libinput-list-devices] Error 1
make[2]: *** Waiting for unfinished jobs....
../src/.libs/libinput.so: undefined reference to `udev_device_get_is_initialized'
collect2: error: ld returned 1 exit status
Makefile:563: recipe for target 'libinput-debug-events' failed
make[2]: *** [libinput-debug-events] Error 1
../src/.libs/libinput.so: undefined reference to `udev_device_get_is_initialized'
collect2: error: ld returned 1 exit status
Makefile:555: recipe for target 'event-debug' failed
make[2]: *** [event-debug] Error 1
make[2]: Leaving directory '/dev/shm/bee-root/libinput/libinput-1.3.3-0/build/tools'
Makefile:431: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/dev/shm/bee-root/libinput/libinput-1.3.3-0/build'
Makefile:363: recipe for target 'all' failed
make: *** [all] Error 2
```

As commented in the upstream bug report [1], this seems to be a problem with
our udev installation.

[1] https://bugs.freedesktop.org/show_bug.cgi?id=96900
This reverts commit cfb855550145386287cdbf1b82bdf4515f654ac5.
This reverts commit c86200029d5d91e33524973a73aff45677bc4fd3.
Change-log [1]:

> Only one fix over 2.10.2 restoring tablets' functionality. A bug in
> the wheel emulation rework caused non-x/y axes to stop updating.
> Interaction with tablets thus resulted in a zero pressure sent to the
> clients an the tablet being unable to draw.

[1] https://lists.freedesktop.org/pipermail/xorg/2016-June/058097.html
The Glamor DIX (Device Independent X) module is now part of the X.org
server. So remove it.
@pmenzel
Copy link
Collaborator Author

pmenzel commented Sep 5, 2016

I fixed the issues in the branch. The missing bee files are copied from /src/mariux, and the commits are reordered.

The updated update commands are below.

sudo bee update util-macros
sudo bee update libevent
sudo bee update xtrans
sudo bee update xproto
sudo bee update randrproto
sudo bee update fontsproto
sudo bee update libevdev
sudo bee install mtdev
sudo bee update libwacom

#sudo ./cairo.be0
sudo bee update cairo
#sudo ./libdrm.be0
sudo bee update libdrm

#sudo ./xorg-server.be0
sudo bee update xorg-server

#sudo ./xf86-input-evdev.be0
sudo bee update xf86-input-evdev
sudo bee remove glamor-egl-0.6.0-0.x86_64

@pmenzel
Copy link
Collaborator Author

pmenzel commented Sep 5, 2016

$ sudo ./update-to-x-1.18.4.sh
installing /src/mariux/beeroot/packages/util-macros-1.19.0-0.x86_64.bee.tar.bz2 ..
removing util-macros-1.18.0-0.x86_64 ..
installing /src/mariux/beeroot/packages/libevent-2.0.21-0.x86_64.bee.tar.bz2 ..
removing libevent-2.0.19-0.x86_64 ..
installing /src/mariux/beeroot/packages/xtrans-1.3.5-0.x86_64.bee.tar.bz2 ..
removing xtrans-1.3.3-0.x86_64 ..
installing /src/mariux/beeroot/packages/xproto-7.0.28-0.x86_64.bee.tar.bz2 ..
removing xproto-7.0.25-0.x86_64 ..
installing /src/mariux/beeroot/packages/randrproto-1.5.0-0.x86_64.bee.tar.bz2 ..
removing randrproto-1.4.0-0.x86_64 ..
installing /src/mariux/beeroot/packages/fontsproto-2.1.3-0.x86_64.bee.tar.bz2 ..
removing fontsproto-2.1.2-0.x86_64 ..
installing /src/mariux/beeroot/packages/libevdev-1.5.2-0.x86_64.bee.tar.bz2 ..
installing /src/mariux/beeroot/packages/mtdev-1.1.5-1.x86_64.bee.tar.bz2 ..
installing /src/mariux/beeroot/packages/libwacom-0.18-0.x86_64.bee.tar.bz2 ..
removing libwacom-0.5-0.x86_64 ..
installing /src/mariux/beeroot/packages/cairo-1.15.2-0.x86_64.bee.tar.bz2 ..
removing cairo-1.14.2-0.x86_64 ..
installing /src/mariux/beeroot/packages/libdrm-2.4.68-0.x86_64.bee.tar.bz2 ..
removing libdrm-2.4.52-0.x86_64 ..
installing /src/mariux/beeroot/packages/xorg-server-1.18.4-0.x86_64.bee.tar.bz2 ..
    Conflicts with installed package found: glamor-egl-0.6.0-0.x86_64:
        /usr/include/xorg/glamor.h
removing xorg-server-1.15.0-3.x86_64 ..
removing glamor-egl-0.6.0-0.x86_64 ..
installing /src/mariux/beeroot/packages/xf86-input-evdev-2.10.3-0.x86_64.bee.tar.bz2 ..
removing xf86-input-evdev-2.8.2-0.x86_64 ..

@donald
Copy link
Collaborator

donald commented Sep 7, 2016

works for me.

@donald donald merged commit 4a6a794 into master Sep 7, 2016
@donald donald deleted the update-x-packages branch September 7, 2016 08:01
Sign in to join this conversation on GitHub.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants