Skip to content
Snippets Groups Projects
PKGBUILD 7.41 KiB
Newer Older
  • Learn to ignore specific revisions
  • # Copyright     : Obarun
    #------------------------
    
    # Maintainer    : Eric Vidal <eric@obarun.org>
    # Maintainer    : Jean-Michel T.Dydak <jean-michel@obarun.org>
    #----------------
    
    # Obarun PkgSrc : https://git.obarun.org/pkg/obextra/xorg-server
    
    #--------------------------------------------------------------
    
    # DESCRIPTION ]
    
    Eric Vidal's avatar
    Eric Vidal committed
    pkgbase=xorg-server
    
    Eric Vidal's avatar
    Eric Vidal committed
    pkgver=21.1.6
    
    Eric Vidal's avatar
    Eric Vidal committed
    pkgrel=2
    
    url='https://xorg.freedesktop.org'
    
    Eric Vidal's avatar
    Eric Vidal committed
    
    
    Eric Vidal's avatar
    Eric Vidal committed
    pkgname=(
    
        'xorg-server'
        'xorg-server-xephyr'
        'xorg-server-xvfb'
        'xorg-server-xnest'
        'xorg-server-common'
    
        'xorg-server-devel'
    )
    
    track="releases/individual/xserver"
    target="$pkgbase-$pkgver"
    
        "https://xorg.freedesktop.org/${track}/${target}.tar.xz"{,.sig}
    
        0002-xephyr_Dont_check_for_SeatId_anymore.patch
    
        xvfb-run # with updates from FC master
        xvfb-run.1
        Xwrapper.config
    )
    
    
    #----------------------
    # BUILD CONFIGURATION ]
    
    makedepends=(
        'xorgproto'
        'pixman'
        'libx11'
        'mesa'
        'mesa-libgl'
        'xtrans'
        'libxkbfile'
        'libxfont2'
        'libpciaccess'
        'libxv'
    
        'libxcvt'
    
        'libxmu'
        'libxrender'
        'libxi'
        'libxaw'
        'libxtst'
        'libxres'
        'xorg-xkbcomp'
        'xorg-util-macros'
        'xorg-font-util'
        'libepoxy'
        'xcb-util'
        'xcb-util-image'
        'xcb-util-renderutil'
        'xcb-util-wm'
        'xcb-util-keysyms'
        'libxshmfence'
        'libunwind'
    
        'meson'
    
    )
    
    #------------------------
    # INSTALL CONFIGURATION ]
    
    groups=(
        'xorg'
    )
    
    backup=(
        'etc/X11/Xwrapper.config'
    )
    
    #----------------
    # BUILD PREPARE ]
    
    prepare() {
        cd $pkgbase-$pkgver
    
    
        ## FS#73274
        patch -Np1 -i ../0002-xephyr_Dont_check_for_SeatId_anymore.patch
    
    Eric Vidal's avatar
    Eric Vidal committed
    
    
    #----------------
    # BUILD CONTROL ]
    
    _flags=(
    
        -Dipv6=true
    
        -Dxvfb=true
        -Dxnest=true
        -Dxcsecurity=true
        -Dxorg=true
        -Dxephyr=true
        -Dglamor=true
        -Dudev=true
    
        -Ddtrace=false
    
        -Dsystemd_logind=false
    
        -Dsuid_wrapper=true
        -Dxkb_dir=/usr/share/X11/xkb
        -Dxkb_output_dir=/var/lib/xkb
    
    Eric Vidal's avatar
    Eric Vidal committed
        -D libunwind=true
    
    Eric Vidal's avatar
    Eric Vidal committed
    
    
    Eric Vidal's avatar
    Eric Vidal committed
    build() {
    
        ## Since pacman 5.0.2-2, hardened flags are now enabled in makepkg.conf
        ## With them, module fail to load with undefined symbol.
    
        ## See https://bugs.archlinux.org/task/55102 / https://bugs.archlinux.org/task/54845
    
        export CFLAGS=${CFLAGS/-fno-plt}
        export CXXFLAGS=${CXXFLAGS/-fno-plt}
        export LDFLAGS=${LDFLAGS/,-z,now}
    
    
        arch-meson $pkgbase-$pkgver build "${_flags[@]}"
    
    
        ## Print config
        meson configure build
    
        ninja -C build
    
    
        ## fake installation to be seperated into packages
    
        DESTDIR="$srcdir/fakeinstall" ninja -C build install
    
    Eric Vidal's avatar
    Eric Vidal committed
    }
    
    _install() {
    
        local src f dir
    
            for src; do
                f="${src#fakeinstall/}"
                dir="${pkgdir}/${f%/*}"
                install -m755 -d "${dir}"
                ## use copy so a new file is created and fakeroot
                ## can track properties such as setuid.
                cp -av "${src}" "${dir}/"
                rm -rf "${src}"
            done
    
    Eric Vidal's avatar
    Eric Vidal committed
    }
    
    package_xorg-server-common() {
    
        pkgdesc='Xorg server common files'
    
    
        depends=(
            'xkeyboard-config'
            'xorg-xkbcomp'
    
            'xorg-setxkbmap'
        )
    
    Eric Vidal's avatar
    Eric Vidal committed
    
    
        _install fakeinstall/usr/lib/xorg/protocol.txt
        _install fakeinstall/usr/share/man/man1/Xserver.1
    
    Eric Vidal's avatar
    Eric Vidal committed
    
    
        install -m644 -Dt "$pkgdir/var/lib/xkb/" "$pkgbase-$pkgver"/xkb/README.compiled
        install -m644 -Dt "$pkgdir/usr/share/licenses/$pkgname" "$pkgbase-$pkgver"/COPYING
    
    Eric Vidal's avatar
    Eric Vidal committed
    }
    
    package_xorg-server() {
    
        pkgdesc="Xorg X server"
    
        depends=(
            'libepoxy'
            'libxfont2'
            'pixman'
            'xorg-server-common'
            'libunwind'
            'dbus'
            'libgl'
            'xf86-input-libinput'
            'nettle'
            'libpciaccess'
            'libdrm'
    
            'libxshmfence'
            'libxcvt'
        )   ## FS#52949
    
    
        ## see xorg-server-*/hw/xfree86/common/xf86Module.h for ABI versions.
        ## we provide major numbers that drivers can depend on
        ## and /usr/lib/pkgconfig/xorg-server.pc in xorg-server-devel pkg
        provides=(
    
            'X-ABI-VIDEODRV_VERSION=25.2'
            'X-ABI-XINPUT_VERSION=24.4'
    
            'X-ABI-EXTENSION_VERSION=10.0'
    
        conflicts=(
            'nvidia-utils<=331.20'
            'glamor-egl'
    
            'xf86-video-modesetting'
        )
    
        replaces=(
            'glamor-egl'
    
            'xf86-video-modesetting'
        )
    
        install=xorg-server.install
    
    
        _install fakeinstall/usr/bin/{X,Xorg,gtf}
    
        _install fakeinstall/usr/lib/Xorg{,.wrap}
        _install fakeinstall/usr/lib/xorg/modules/*
        _install fakeinstall/usr/share/X11/xorg.conf.d/10-quirks.conf
    
        _install fakeinstall/usr/share/man/man1/{Xorg,Xorg.wrap,gtf}.1
        _install fakeinstall/usr/share/man/man4/{exa,fbdevhw,inputtestdrv,modesetting}.4
    
        _install fakeinstall/usr/share/man/man5/{Xwrapper.config,xorg.conf,xorg.conf.d}.5
    
        ## distro specific files must be installed in /usr/share/X11/xorg.conf.d
    
        install -m755 -d "$pkgdir/etc/X11/xorg.conf.d"
    
    
        ## Xwrapper.config
    
        install -Dm0644 Xwrapper.config "$pkgdir"/etc/X11/Xwrapper.config
    
    
        ## license
    
        install -m644 -Dt "$pkgdir/usr/share/licenses/$pkgname" "$pkgbase-$pkgver"/COPYING
    
    Eric Vidal's avatar
    Eric Vidal committed
    }
    
    package_xorg-server-xephyr() {
    
        pkgdesc="A nested X server that runs as an X application"
    
        depends=(
            'libxfont2'
            'libgl'
            'libepoxy'
            'libunwind'
            'libxv'
            'pixman'
            'xorg-server-common'
            'xcb-util-image'
            'xcb-util-renderutil'
            'xcb-util-wm'
            'xcb-util-keysyms'
            'nettle'
    
    
        _install fakeinstall/usr/bin/Xephyr
        _install fakeinstall/usr/share/man/man1/Xephyr.1
    
        ## license
    
        install -m644 -Dt "$pkgdir/usr/share/licenses/$pkgname" "$pkgbase-$pkgver"/COPYING
    
    Eric Vidal's avatar
    Eric Vidal committed
    }
    
    package_xorg-server-xvfb() {
    
        pkgdesc="Virtual framebuffer X server"
    
        depends=(
            'libxfont2'
            'libunwind'
            'pixman'
            'xorg-server-common'
            'xorg-xauth'
            'libgl'
    
    Eric Vidal's avatar
    Eric Vidal committed
            'nettle'
    
    
        _install fakeinstall/usr/bin/Xvfb
        _install fakeinstall/usr/share/man/man1/Xvfb.1
    
    
        install -m755 "$srcdir/xvfb-run" "$pkgdir/usr/bin/"
        install -m644 "$srcdir/xvfb-run.1" "$pkgdir/usr/share/man/man1/" ## outda
    
    
        ## license
    
        install -m644 -Dt "$pkgdir/usr/share/licenses/$pkgname" "$pkgbase-$pkgver"/COPYING
    
    Eric Vidal's avatar
    Eric Vidal committed
    }
    
    package_xorg-server-xnest() {
    
        pkgdesc="A nested X server that runs as an X application"
    
        depends=(
            'libxfont2'
    
    Eric Vidal's avatar
    Eric Vidal committed
            'libunwind'
    
            'libxext'
            'pixman'
            'xorg-server-common'
            'nettle'
    
    
        _install fakeinstall/usr/bin/Xnest
        _install fakeinstall/usr/share/man/man1/Xnest.1
    
        ## license
    
        install -m644 -Dt "$pkgdir/usr/share/licenses/$pkgname" "$pkgbase-$pkgver"/COPYING
    
    Eric Vidal's avatar
    Eric Vidal committed
    }
    
    package_xorg-server-devel() {
    
        pkgdesc="Development files for the X.Org X server"
    
        depends=(
            'xorgproto'
            'mesa'
            'libpciaccess'
    
            'xorg-util-macros'
        )   ## not technically required but almost every Xorg pkg needs it to build.
    
    
        _install fakeinstall/usr/include/xorg/*
        _install fakeinstall/usr/lib/pkgconfig/xorg-server.pc
        _install fakeinstall/usr/share/aclocal/xorg-server.m4
    
        ## license
    
        install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" "${pkgbase}-${pkgver}"/COPYING
    
    
        ## make sure there are no files left to install
        find fakeinstall -depth -print0 | xargs -0 rmdir
    }
    
    Eric Vidal's avatar
    Eric Vidal committed
    
    
    #---------------------------
    # LICENSE AND VERIFICATION ]
    
    Eric Vidal's avatar
    Eric Vidal committed
    
    
    arch=(x86_64)
    license=(custom)
    
    validpgpkeys=(
    
    Eric Vidal's avatar
    Eric Vidal committed
        '67DC86F2623FC5FD4BB5225D14706DBE1E4B4540') # "Olivier Fourdan <fourdan@xfce.org>"