X-Git-Url: https://git.piment-noir.org/?p=deb_xorg-server.git;a=blobdiff_plain;f=debian%2Frules;fp=debian%2Frules;h=a2bbaf0361339c821befd4b3d4ff06135fdc8422;hp=0000000000000000000000000000000000000000;hb=7217e0ca50bba73dad94782e67980aeeb24ab693;hpb=a09e091a5c996d46a398abb27b06fe504591673f diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..a2bbaf0 --- /dev/null +++ b/debian/rules @@ -0,0 +1,402 @@ +#!/usr/bin/make -f +# debian/rules for the Debian xorg-server package. +# Copyright © 2004 Scott James Remnant +# Copyright © 2005 Daniel Stone +# Copyright © 2005 David Nusinow + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# Set up the $(STAMP_DIR) directory, and use it for quilt' stamp: +STAMP_DIR := stampdir +QUILT_STAMPFN := $(STAMP_DIR)/patch +$(STAMP_DIR)/stampdir: + mkdir $(STAMP_DIR) + >$@ + +include /usr/share/quilt/quilt.make + +ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) + NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) + MAKEFLAGS += -j$(NUMJOBS) +endif + +DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) +DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS) +ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) + confflags += --build=$(DEB_HOST_GNU_TYPE) +else + confflags += --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) +endif + +# udeb is arch-dependent... +ifneq (, $(filter %-udeb, $(shell dh_listpackages -s))) + udeb = yes +endif + +# ...but let's support disabling it to speed up debug builds: +ifneq (,$(filter noudeb,$(DEB_BUILD_OPTIONS))) + udeb = + DH_INSTALL_OPTIONS = -Nxserver-xorg-core-udeb +endif + + +ifeq ($(DEB_HOST_ARCH_OS), linux) + selinux = --enable-xselinux + build_xmir = --enable-xmir +else + selinux = --disable-xselinux +endif + +# Mir isn't built on PPC +ifneq (,$(filter $(DEB_HOST_ARCH), arm64 powerpc ppc64el)) + build_xmir = --disable-xmir +endif + +ifeq ($(DEB_HOST_ARCH_OS), hurd) + dri = --disable-dri --disable-dri2 --disable-dri3 +else + dri = --enable-dri --enable-dri2 +ifeq ($(DEB_HOST_ARCH_OS), linux) + dri += --enable-dri3 +else + # disable dri3 on kbsd until xtrans fd passing is enabled + dri += --disable-dri3 +endif +endif + +config_backend = --disable-config-dbus --disable-config-hal +ifeq ($(DEB_HOST_ARCH_OS), linux) + config_backend += --enable-config-udev +else ifeq ($(DEB_HOST_ARCH_OS), kfreebsd) + config_backend += --disable-config-udev --enable-config-devd + libs = $(shell pkg-config --libs libbsd-overlay) + cppflags = $(shell pkg-config --cflags libbsd-overlay) +else # hurd + config_backend += --disable-config-udev +endif + +vars = $(shell DEB_BUILD_MAINT_OPTIONS="hardening=+pie" DEB_LDFLAGS_MAINT_APPEND="-Wl,-Bsymbolic" DEB_CPPFLAGS_MAINT_APPEND="-DPRE_RELEASE=0 $(cppflags)" dpkg-buildflags --export=configure) LIBS="$(libs)" + +ifneq (,$(filter nocheck, $(DEB_BUILD_OPTIONS))) + config_tests = --disable-unit-tests +else + config_tests = --enable-unit-tests +endif + +INSTALL=/usr/bin/install + +VENDOR = $(shell lsb_release -i -s) +SUPPORT = For technical support please see http://www.ubuntu.com/support + +SOURCE_NAME := xorg-server +SOURCE_VERSION := $(shell dpkg-parsechangelog | awk -F': ' '/^Version: / {print $$2}') + +# Add a workaround for LP: #1266492 +confflags += lt_cv_prog_compiler_static_works=no + +# Add a workaround for LP: #1266492 +confflags += lt_cv_prog_compiler_static_works=no + +# disable-static is so we don't get libfoo.a for modules. now if only we could +# kill the .las. +confflags += \ + --disable-silent-rules \ + --disable-static \ + --without-dtrace \ + --disable-strict-compilation \ + --disable-debug \ + $(config_tests) \ + --with-int10=x86emu \ + --with-extra-module-dir="/usr/lib/${DEB_HOST_MULTIARCH}/xorg/extra-modules,/usr/lib/xorg/extra-modules" \ + --with-os-vendor="$(VENDOR)" \ + --with-builderstring="$(SOURCE_NAME) $(SOURCE_VERSION) ($(SUPPORT))" \ + --with-xkb-path=/usr/share/X11/xkb \ + --with-xkb-output=/var/lib/xkb \ + --disable-install-libxf86config \ + --enable-mitshm \ + --enable-xres \ + --disable-xcsecurity \ + --disable-tslib \ + --enable-dbe \ + --disable-xf86bigfont \ + --enable-dpms \ + $(config_backend) \ + --enable-xorg \ + --disable-linux-acpi \ + --disable-linux-apm \ + --disable-xquartz \ + --disable-xwin \ + --disable-xfake \ + --disable-xfbdev \ + --disable-install-setuid + +confflags_main = \ + --with-default-font-path="/usr/share/fonts/X11/misc,/usr/share/fonts/X11/cyrillic,/usr/share/fonts/X11/100dpi/:unscaled,/usr/share/fonts/X11/75dpi/:unscaled,/usr/share/fonts/X11/Type1,/usr/share/fonts/X11/100dpi,/usr/share/fonts/X11/75dpi,built-ins" \ + --enable-aiglx \ + --enable-glx-tls \ + --enable-registry \ + --enable-composite \ + --enable-record \ + --enable-xv \ + --enable-xvmc \ + --enable-dga \ + --enable-screensaver \ + --enable-xdmcp \ + --enable-xdm-auth-1 \ + --enable-glx \ + $(dri) \ + --enable-present \ + --enable-xinerama \ + --enable-xf86vidmode \ + --enable-xace \ + $(selinux) \ + --enable-xfree86-utils \ + --enable-dmx \ + --enable-xvfb \ + --enable-xnest \ + --enable-kdrive \ + --enable-xephyr \ + $(build_xfbdev) \ + $(build_xmir) \ + --with-sha1=libgcrypt \ + --enable-xcsecurity \ + $(config_backend_main) \ + $(void) + +confflags_udeb = \ + --with-default-font-path="built-ins" \ + --disable-aiglx \ + --disable-glx-tls \ + --disable-registry \ + --disable-composite \ + --disable-record \ + --disable-xv \ + --disable-xvmc \ + --enable-dga \ + --disable-screensaver \ + --disable-xdmcp \ + --disable-xdm-auth-1 \ + --disable-glx \ + --disable-dri \ + --disable-dri2 \ + --disable-xinerama \ + --disable-xf86vidmode \ + --disable-xace \ + --disable-xselinux \ + --disable-xfree86-utils \ + --disable-dmx \ + --disable-xvfb \ + --disable-xnest \ + --disable-kdrive \ + --disable-xephyr \ + --disable-xfbdev \ + --disable-xmir \ + --with-sha1=libnettle \ + $(config_backend_udeb) \ + $(void) + +$(QUILT_STAMPFN): $(STAMP_DIR)/stampdir + +$(STAMP_DIR)/autoreconf: $(STAMP_DIR)/stampdir $(QUILT_STAMPFN) + dh_testdir + autoreconf -vfi + >$@ + +$(STAMP_DIR)/build-source: $(STAMP_DIR)/autoreconf + mkdir -p build-source + tar \ + --owner=0 --group=0 \ + --transform 's,^,xorg-server/,' \ + --exclude=stampdir --exclude=debian \ + --exclude=build-* --exclude=autom4te.cache \ + -cf - * | xz > build-source/xorg-server.tar.xz + >$@ + +$(STAMP_DIR)/configure-%: $(STAMP_DIR)/autoreconf + dh_testdir + mkdir -p build-$* + cd build-$* && \ + ../configure \ + --prefix=/usr \ + --mandir=\$${prefix}/share/man \ + --infodir=\$${prefix}/share/info \ + --sysconfdir=/etc \ + --localstatedir=/var \ + $(confflags) \ + $(confflags_$*) \ + $(vars) + >$@ + +$(STAMP_DIR)/build-%: $(STAMP_DIR)/configure-% + dh_testdir + cd build-$* && $(MAKE) + >$@ + +$(STAMP_DIR)/tests-%: $(STAMP_DIR)/build-% + cd build-$* && $(MAKE) check VERBOSE=1 + >$@ + +build: abibumpcheck +build: $(STAMP_DIR)/build-main +build: $(STAMP_DIR)/tests-main +ifeq ($(udeb), yes) +build: $(STAMP_DIR)/build-udeb +build: $(STAMP_DIR)/tests-udeb +endif +build-arch: build +build-indep: $(STAMP_DIR)/build-source build + +clean: unpatch + dh_testdir + rm -rf $(STAMP_DIR) + rm -f config.cache config.log config.status + rm -f */config.cache */config.log */config.status + rm -f conftest* */conftest* + rm -rf autom4te.cache */autom4te.cache + rm -rf build-* + rm -f compile config.guess config.sub configure depcomp install-sh + rm -f ltmain.sh missing INSTALL aclocal.m4 ylwrap + rm -f include/do-not-use-config.h.in + rm -f m4/lt*.m4 m4/libtool.m4 + find -name Makefile.in -delete + rm -f test-driver + dh_clean + +install: build + dh_testdir + dh_testroot + dh_prep + dh_installdirs + + cd build-main && $(MAKE) DESTDIR=$(CURDIR)/debian/tmp/main install +ifeq ($(udeb), yes) + cd build-udeb && $(MAKE) DESTDIR=$(CURDIR)/debian/tmp/udeb install +endif + + # oh, yuck. + find debian/tmp/*/usr/lib/xorg -type f -name '*.la' | \ + xargs rm -f + + # remove modules not needed in d-i + rm -rf debian/tmp/udeb/usr/lib/xorg/modules/multimedia + rm -f debian/tmp/udeb/usr/lib/xorg/modules/libxaa.so + rm -f debian/tmp/udeb/usr/lib/xorg/modules/libexa.so + rm -f debian/tmp/udeb/usr/lib/xorg/modules/libwfb.so + rm -f debian/tmp/udeb/usr/lib/xorg/modules/libxf8_16bpp.so + + # we don't ship these from the udeb build, reduce noise from dh_install + # --list-missing + rm -rf debian/tmp/udeb/usr/include + rm -rf debian/tmp/udeb/usr/share/aclocal + rm -rf debian/tmp/udeb/usr/share/man + rm -rf debian/tmp/udeb/usr/lib/pkgconfig + + install -m 755 debian/local/xvfb-run debian/tmp/main/usr/bin + # Make sure Xvfb at least starts up + PATH=debian/tmp/main/usr/bin/:/bin:/usr/bin \ + debian/tmp/main/usr/bin/xvfb-run -s "-screen 0 1280x1024x24 -nolisten tcp -noreset" true + + install debian/local/xvfb-run.1 debian/tmp/main/usr/share/man/man1 +ifneq ($(DEB_HOST_ARCH_OS), linux) + install -d debian/tmp/main/usr/share/X11/xorg.conf.d + install -m 644 debian/local/10-*.conf debian/tmp/main/usr/share/X11/xorg.conf.d +ifeq ($(udeb), yes) + install -d debian/tmp/udeb/usr/share/X11/xorg.conf.d + install -m 644 debian/local/10-*.conf debian/tmp/udeb/usr/share/X11/xorg.conf.d +endif +endif + +# stub to start building deb files, used by binary-indep and binary-arch +binary-initial: + dh_testdir + dh_testroot + +# stub to build deb files, used by binary-indep and binary-arch +binary-deb: + dh_lintian + dh_compress + dh_fixperms + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +# Only read the first line, the rest of the file is used to determine +# when the minimal version as to be bumped: +SERVERMINVER = debian/serverminver +serverminver = $(shell head -1 $(SERVERMINVER)) + +.PHONY: abibumpcheck +abibumpcheck: debian/serverminver $(QUILT_STAMPFN) + @echo Checking for the need of an ABI bump + # Build an updated version of the file: + head -1 $(SERVERMINVER) > $(SERVERMINVER).new + perl -ne 'print "$$1:$$2.$$3\n" if /^#define\s+(ABI_(?:VIDEODRV|XINPUT)_VERSION)\s+SET_ABI_VERSION\(\s*(\d+)\s*,\s*(\d+)\s*\)/' hw/xfree86/common/xf86Module.h|sort >> $(SERVERMINVER).new + # Compare both files: + @if ! cmp --quiet $(SERVERMINVER) $(SERVERMINVER).new; then \ + echo "serverminver bump required, ABI changed!";\ + echo "When bumping major or minor, always bump required xorg-server minimum";\ + echo "version too, the newly built drivers are not backwards compatible!";\ + diff -u $(SERVERMINVER) $(SERVERMINVER).new; \ + exit 1; \ + else \ + echo "ABI unchanged"; \ + rm -f $(SERVERMINVER).new; \ + fi + +# Build architecture-dependent files here. +binary-arch: build install + $(MAKE) -f debian/rules DH_OPTIONS=-s binary-initial + + dh_installdocs -s + dh_installchangelogs -s + dh_install $(DH_INSTALL_OPTIONS) -s --list-missing + $(INSTALL) -d $(CURDIR)/debian/xserver-xorg-dev/usr/share/xserver-xorg + # Extract only the major ABI version: + abi_videodrv=`PKG_CONFIG_PATH=debian/tmp/main/usr/lib/pkgconfig pkg-config --variable=abi_videodrv xorg-server|cut -d . -f 1`; \ + echo videoabi=xorg-video-abi-$$abi_videodrv > debian/xserver-xorg-core.substvars && \ + echo "xorg-video-abi-$$abi_videodrv, xserver-xorg-core (>= $(serverminver))" > debian/xserver-xorg-dev/usr/share/xserver-xorg/videodrvdep + abi_xinput=`PKG_CONFIG_PATH=debian/tmp/main/usr/lib/pkgconfig pkg-config --variable=abi_xinput xorg-server|cut -d . -f 1`; \ + echo inputabi=xorg-input-abi-$$abi_xinput >> debian/xserver-xorg-core.substvars && \ + echo "xorg-input-abi-$$abi_xinput, xserver-xorg-core (>= $(serverminver))" > debian/xserver-xorg-dev/usr/share/xserver-xorg/xinputdep + + # The udeb uses the same substvars: + cp debian/xserver-xorg-core.substvars debian/xserver-xorg-core-udeb.substvars + + $(INSTALL) -m 755 -d debian/xserver-xorg-core/usr/share/bug/xserver-xorg-core + $(INSTALL) -m 755 debian/xserver-xorg-core.bug.script debian/xserver-xorg-core/usr/share/bug/xserver-xorg-core/script +ifeq ($(DEB_HOST_ARCH_OS), linux) + install -d debian/xserver-xorg-core/lib/udev/rules.d + install -m 644 debian/local/64-xorg-xkb.rules debian/xserver-xorg-core/lib/udev/rules.d +ifeq ($(udeb), yes) + install -d debian/xserver-xorg-core-udeb/lib/udev/rules.d + install -m 644 debian/local/64-xorg-xkb.rules debian/xserver-xorg-core-udeb/lib/udev/rules.d +endif +endif + dh_installdebconf -s + dh_installman -s + dh_link -s + dh_strip -pxserver-xorg-xmir -pxserver-xorg-core --dbg-package=xserver-xorg-core-dbg + dh_strip -s -Nxserver-xorg-core -Nxserver-xorg-core-dbg + $(MAKE) -f debian/rules DH_OPTIONS=-s binary-deb + + +# Build architecture-independent files here +binary-indep: build-indep install check + $(MAKE) -f debian/rules DH_OPTIONS=-i binary-initial + dh_install -i + dh_installdocs -i + dh_installchangelogs -i ChangeLog + + $(MAKE) -f debian/rules DH_OPTIONS=-i binary-deb + +check: + dh_testdir + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install