• Bug#836453: xserver-xorg-dev: please move xorg-server.pc to a multiarch

    From Manuel A. Fernandez Montecelo@21:1/5 to All on Fri Sep 29 01:00:01 2017
    XPost: linux.debian.bugs.dist

    (Copying explicitly pochu since he's the most active uploader in the
    last year)

    Hi,

    2016-09-03 13:10 Helmut Grohne:
    [...]
    Hi,

    xserver-xorg-dev makes the aforementioned affected packages fail to
    cross build from source, because pkg-config does not consider[1] >/usr/lib/pkgconfig/ during cross compilation. In contrast, it always >considers /usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig, so moving
    xorg-server.pc there will make both native and cross builds happy.

    The requested change is implemented in the attached patch for your >convenience.

    How do you feel about applying this patch to help with cross-compilation
    and (re)bootstrapping?

    If it helps, I can prepare a NMU for it.


    Cheers.
    --
    Manuel A. Fernandez Montecelo <manuel.montezelo@gmail.com>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Helmut Grohne@21:1/5 to Julien Cristau on Mon Oct 2 23:10:02 2017
    XPost: linux.debian.bugs.dist

    On Sun, Oct 01, 2017 at 10:47:54PM +0200, Julien Cristau wrote:
    How do you feel about applying this patch to help with cross-compilation and (re)bootstrapping?

    Unconvinced. d/rules is already too messy as it is.

    Indeed. The original patch makes d/rules worse. So I am attaching a new
    patch to improve the situation:

    1. Drop --libdir (to pick up the debhelper default).

    2. Add --with-module-dir to avoid moving /usr/lib/xorg. Other packages
    place their modules here, so we cannot move it without coordination.
    Given that there can be only one /usr/bin/Xorg and that these
    modules are loaded into that Xorg, I think it should default to
    ${libexecdir}/modules. I can try changing that upstream.

    3. Add --with-serverconfig-path to avoid moving protocol.txt. It ends
    up in xserver-common, which is Arch:all and thus cannot be
    multiarchy. Again using ${libexecdir} would make more sense.

    4. Move the installation of pkgconfig into d/rules as .install files
    cannot contain variables. (Alternatively: use dh-exec)

    5. d/rules fails to define the architecture variables (e.g.
    DEB_HOST_ARCH_OS). Unless building with dpkg-buildpackage they are
    undefined. So I sneak "include /usr/share/dpkg/architecture.mk" into
    the patch.

    Ignoring the last point (which is a bug imo), this is a net increase in
    1 line. Potentially, points 2 and 3 could be upstreamed to further
    reduce messiness.

    I hope this works better for you.

    Helmut

    diff -u xorg-server-1.19.3/debian/changelog xorg-server-1.19.3/debian/changelog --- xorg-server-1.19.3/debian/changelog
    +++ xorg-server-1.19.3/debian/changelog
    @@ -1,3 +1,10 @@
    +xorg-server (2:1.19.3-2.1) UNRELEASED; urgency=medium
    +
    + * Non-maintainer upload.
    + * Move xorg-server.pc to a multiarch location. closes: #836453
    +
    + -- Helmut Grohne <helmut@subdivi.de> Mon, 02 Oct 2017 06:50:45 +0200
    +
    xorg-server (2:1.19.3-2) unstable; urgency=high

    * CVE-2017-10972: information leak out of the X server due to an
    diff -u xorg-server-1.19.3/debian/rules xorg-server-1.19.3/debian/rules
    --- xorg-server-1.19.3/debian/rules
    +++ xorg-server-1.19.3/debian/rules
    @@ -1,5 +1,7 @@
    #!/usr/bin/make -f

    +include /usr/share/dpkg/architecture.mk
    +
    ifeq ($(DEB_HOST_ARCH_OS), linux)
    selinux = --enable-xselinux
    wayland = --enable-xwayland
    @@ -77,8 +79,11 @@
    --disable-strict-compilation \
    --disable-debug \
    $(config_tests) \
    + --libexecdir=\$${prefix}/lib/xorg \
    --with-int10=x86emu \
    + --with-module-dir=\$${libexecdir}
  • From Julien Cristau@21:1/5 to Manuel A. Fernandez Montecelo on Sun Oct 1 23:00:01 2017
    XPost: linux.debian.bugs.dist

    On Fri, Sep 29, 2017 at 00:55:46 +0200, Manuel A. Fernandez Montecelo wrote:

    (Copying explicitly pochu since he's the most active uploader in the
    last year)

    Hi,

    2016-09-03 13:10 Helmut Grohne:
    [...]
    Hi,

    xserver-xorg-dev makes the aforementioned affected packages fail to
    cross build from source, because pkg-config does not consider[1] /usr/lib/pkgconfig/ during cross compilation. In contrast, it always considers /usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig, so moving xorg-server.pc there will make both native and cross builds happy.

    The requested change is implemented in the attached patch for your convenience.

    How do you feel about applying this patch to help with cross-compilation
    and (re)bootstrapping?

    Unconvinced. d/rules is already too messy as it is.

    If it helps, I can prepare a NMU for it.

    I don't think that would be appropriate.

    Cheers,
    Julien

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Julien Cristau@21:1/5 to Julien Cristau on Wed Oct 4 14:10:02 2017
    XPost: linux.debian.bugs.dist

    On 10/04/2017 01:55 PM, Julien Cristau wrote:
    On 10/02/2017 09:48 PM, Helmut Grohne wrote:
    5. d/rules fails to define the architecture variables (e.g.
    DEB_HOST_ARCH_OS). Unless building with dpkg-buildpackage they are
    undefined. So I sneak "include /usr/share/dpkg/architecture.mk" into
    the patch.

    Looks like a bug in https://anonscm.debian.org/git/pkg-xorg/xserver/xorg-server.git/commit/?id=29d0f5ae367f0efa80d48990843f2e30019cd233
    which we should fix. I think I'd prefer bringing back the explicit
    variable definitions to architecture.mk, but don't feel very strongly
    either way.

    Fixed in https://anonscm.debian.org/git/pkg-xorg/xserver/xorg-server.git/commit/?id=1135bbf8b3eacfd26484cf15bbdd4c91a03c394c

    Cheers,
    Julien

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Julien Cristau@21:1/5 to Helmut Grohne on Wed Oct 4 14:00:02 2017
    XPost: linux.debian.bugs.dist

    On 10/02/2017 09:48 PM, Helmut Grohne wrote:
    On Sun, Oct 01, 2017 at 10:47:54PM +0200, Julien Cristau wrote:
    How do you feel about applying this patch to help with cross-compilation >>> and (re)bootstrapping?

    Unconvinced. d/rules is already too messy as it is.

    Indeed. The original patch makes d/rules worse. So I am attaching a new
    patch to improve the situation:

    1. Drop --libdir (to pick up the debhelper default).

    OK.

    2. Add --with-module-dir to avoid moving /usr/lib/xorg. Other packages
    place their modules here, so we cannot move it without coordination.
    Given that there can be only one /usr/bin/Xorg and that these
    modules are loaded into that Xorg, I think it should default to
    ${libexecdir}/modules. I can try changing that upstream.

    Sounds reasonable. Bit of an uphill battle to get all drivers updated,
    so not sure this is actually worth it. Possibly we should add comments
    to document our overridden paths in configure flags, and leave it at
    that, at least for now.

    3. Add --with-serverconfig-path to avoid moving protocol.txt. It ends
    up in xserver-common, which is Arch:all and thus cannot be
    multiarchy. Again using ${libexecdir} would make more sense.

    Fair.

    4. Move the installation of pkgconfig into d/rules as .install files
    cannot contain variables. (Alternatively: use dh-exec)

    I'd rather not switch to dh-exec if at all possible, so ok.

    5. d/rules fails to define the architecture variables (e.g.
    DEB_HOST_ARCH_OS). Unless building with dpkg-buildpackage they are
    undefined. So I sneak "include /usr/share/dpkg/architecture.mk" into
    the patch.

    Looks like a bug in https://anonscm.debian.org/git/pkg-xorg/xserver/xorg-server.git/commit/?id=29d0f5ae367f0efa80d48990843f2e30019cd233
    which we should fix. I think I'd prefer bringing back the explicit
    variable definitions to architecture.mk, but don't feel very strongly
    either way.

    Ignoring the last point (which is a bug imo), this is a net increase in
    1 line. Potentially, points 2 and 3 could be upstreamed to further
    reduce messiness.

    I hope this works better for you.

    Thanks,
    Julien

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)