xserver: Branch 'master' - 7 commits
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu May 2 15:54:48 UTC 2019
.travis.yml | 21 +++++--
Makefile.am | 4 +
configure.ac | 2
hw/xfree86/common/Makefile.am | 6 +-
hw/xfree86/common/meson.build | 7 --
hw/xfree86/common/xf86Init.c | 2
hw/xquartz/GL/meson.build | 5 +
hw/xquartz/Makefile.am | 2
hw/xquartz/bundle/chown-bundle.sh | 7 ++
hw/xquartz/bundle/meson.build | 65 ++++++++++++++++++++++++
hw/xquartz/darwin.c | 3 -
hw/xquartz/mach-startup/Makefile.am | 2
hw/xquartz/mach-startup/bundle-main.c | 9 +--
hw/xquartz/mach-startup/meson.build | 92 ++++++++++++++++++++++++++++++++++
hw/xquartz/man/Xquartz.man | 2
hw/xquartz/meson.build | 71 ++++++++++++++++++--------
hw/xquartz/pbproxy/meson.build | 29 ++++++++++
hw/xquartz/xpr/meson.build | 18 ++++++
hw/xwin/glx/meson.build | 4 -
hw/xwin/meson.build | 2
include/meson.build | 12 +++-
meson.build | 41 ++++++++++++---
meson_options.txt | 14 +++++
miext/rootless/meson.build | 13 ++++
os/meson.build | 2
test/scripts/build-travis-osx.sh | 33 ++++++++----
26 files changed, 400 insertions(+), 68 deletions(-)
New commits:
commit dd1aebccf2e1722ac10fb73ed438251785283b8d
Author: Jon Turney <jon.turney at dronecode.org.uk>
Date: Sat Apr 20 13:50:57 2019 +0100
travis: Suppress uninteresting warnings on OSX
Suppress uninteresting warnings on OSX that we are drowning in, turned
on by default in meson.
diff --git a/test/scripts/build-travis-osx.sh b/test/scripts/build-travis-osx.sh
index 800fafcb2..e77049e9c 100755
--- a/test/scripts/build-travis-osx.sh
+++ b/test/scripts/build-travis-osx.sh
@@ -18,7 +18,7 @@ hdiutil detach /Volumes/XQuartz-${XQUARTZ_VERSION}
export PATH="/opt/X11/bin:${PATH}"
export PKG_CONFIG_PATH="/opt/X11/share/pkgconfig:/opt/X11/lib/pkgconfig:${PKG_CONFIG_PATH}"
export ACLOCAL="aclocal -I /opt/X11/share/aclocal -I /usr/local/share/aclocal"
-export CFLAGS="-Wall -O2 -ggdb3 -arch x86_64 -pipe"
+export CFLAGS="-Wall -O2 -ggdb3 -arch x86_64 -pipe -Wno-typedef-redefinition -Wno-deprecated-declarations"
export CXXFLAGS=$CFLAGS
export OBJCFLAGS=$CFLAGS
export LDFLAGS=$CFLAGS
commit f0e22a76c93c98d67dbd5c966812b2901de5ed49
Author: Jon Turney <jon.turney at dronecode.org.uk>
Date: Fri Apr 19 15:37:22 2019 +0100
travis: Add OSX meson build to matrix
Unfortunately, a 'brew update' is currently needed to get the meson >=
0.46.0 required by xserver.
diff --git a/.travis.yml b/.travis.yml
index 15677891b..654ab5ba5 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,18 +1,27 @@
language: c
-cache: ccache
+cache:
+ ccache: true
+ directories:
+ - $HOME/Library/Caches/Homebrew
branches:
except:
- /appveyor.*/
+os: osx
+osx_image: xcode9.2
+
matrix:
include:
- - os: osx
- osx_image: xcode9.2
- env: DISTRO=xcode9.2
+ - env: TOOL=meson
+ - env: TOOL=autotools
install:
- - HOMEBREW_NO_AUTO_UPDATE=1 brew install ccache
+ - brew update
+ - HOMEBREW_NO_AUTO_UPDATE=1 brew install ccache meson
script:
- - ./test/scripts/build-travis-osx.sh
+ - ./test/scripts/build-travis-osx.sh $TOOL
- ccache -s
+
+before_cache:
+ - brew cleanup
diff --git a/test/scripts/build-travis-osx.sh b/test/scripts/build-travis-osx.sh
index 193a8851d..800fafcb2 100755
--- a/test/scripts/build-travis-osx.sh
+++ b/test/scripts/build-travis-osx.sh
@@ -30,14 +30,29 @@ export PATH="/usr/local/opt/ccache/libexec:$PATH"
pushd $HOME
git clone git://anongit.freedesktop.org/git/xorg/proto/xorgproto
cd xorgproto
-autoreconf -fvi
-./configure --prefix=/opt/X11
-sudo make install
+if [[ "$1" == "autotools" ]]; then
+ autoreconf -fvi
+ ./configure --prefix=/opt/X11
+ sudo make install
+elif [[ "$1" == "meson" ]]; then
+ meson _build/ -Dprefix=/opt/X11
+ ninja -C _build/
+ sudo ninja -C _build/ install
+else
+ echo "Unknown build tool $1"
+ exit 1
+fi
popd
# build
-autoreconf -fvi
-./configure --prefix=/opt/X11 --disable-dependency-tracking --with-apple-application-name=XQuartz --with-bundle-id-prefix=org.macosforge.xquartz
-make
-make check
-make install DESTDIR=$(pwd)/staging
+if [[ "$1" == "autotools" ]]; then
+ autoreconf -fvi
+ ./configure --prefix=/opt/X11 --disable-dependency-tracking --with-apple-application-name=XQuartz --with-bundle-id-prefix=org.macosforge.xquartz
+ make
+ make check
+ make install DESTDIR=$(pwd)/staging
+elif [[ "$1" == "meson" ]]; then
+ meson _build/ -Dprefix=/opt/X11 -Dsecure-rpc=false
+ DESTDIR=$(pwd)/staging ninja -C _build/ install
+ ninja -C _build/ test
+fi
commit 0bdfa5bc0ab050ce74c2289178f2f89790e2c8ef
Author: Jon Turney <jon.turney at dronecode.org.uk>
Date: Sat Apr 20 01:24:21 2019 +0100
travis: Don't produce fat binaries on OSX
Trying to build fat binaries for multiple arches tickles a bug [1] in
the framework detector in meson 0.50. Workaround this by not bothering
building for x86, which is probably no great loss :S
https://github.com/mesonbuild/meson/issues/5290
diff --git a/test/scripts/build-travis-osx.sh b/test/scripts/build-travis-osx.sh
index 6f3f9f3a7..193a8851d 100755
--- a/test/scripts/build-travis-osx.sh
+++ b/test/scripts/build-travis-osx.sh
@@ -18,7 +18,7 @@ hdiutil detach /Volumes/XQuartz-${XQUARTZ_VERSION}
export PATH="/opt/X11/bin:${PATH}"
export PKG_CONFIG_PATH="/opt/X11/share/pkgconfig:/opt/X11/lib/pkgconfig:${PKG_CONFIG_PATH}"
export ACLOCAL="aclocal -I /opt/X11/share/aclocal -I /usr/local/share/aclocal"
-export CFLAGS="-Wall -O2 -ggdb3 -arch i386 -arch x86_64 -pipe"
+export CFLAGS="-Wall -O2 -ggdb3 -arch x86_64 -pipe"
export CXXFLAGS=$CFLAGS
export OBJCFLAGS=$CFLAGS
export LDFLAGS=$CFLAGS
commit 655b1eb32e3f7f9ba587e878a691fbc9195e81f5
Author: Jon Turney <jon.turney at dronecode.org.uk>
Date: Thu Apr 18 17:06:41 2019 +0100
meson: Convert xquartz from autotools
Differences from autotools:
* Autotools defined NO_ALLOCA for OSX builds. I don't think we need
this anymore as Xalloc.h is no longer used anywhere in the xserver.
* X11.bin is linked with -u,miDCInitialize, and then libserver_mi
provided to satisfy (just) that. It's been that way since the commit
which added it. We can't write the equivalent in meson due to linker
argument ordering issues, but do we really need to?
* An explicit -Dsecure-rpc=false is required for OSX, since in meson we
don't do the checks that XTRANS_SECURE_RPC_FLAGS did for the existence
of the specific RPC functions required.
diff --git a/hw/xquartz/GL/meson.build b/hw/xquartz/GL/meson.build
new file mode 100644
index 000000000..556417525
--- /dev/null
+++ b/hw/xquartz/GL/meson.build
@@ -0,0 +1,5 @@
+libcglcore = static_library('CGLCore',
+ ['indirect.c', 'capabilities.c', 'visualConfigs.c'],
+ include_directories: [inc, glx_inc, '..', '../xpr'],
+ dependencies: [xproto_dep, pixman_dep],
+)
diff --git a/hw/xquartz/bundle/chown-bundle.sh b/hw/xquartz/bundle/chown-bundle.sh
new file mode 100755
index 000000000..ac62f289f
--- /dev/null
+++ b/hw/xquartz/bundle/chown-bundle.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+BUNDLE_ROOT=$1
+
+if [[ $(id -u) == 0 ]] ; then
+ chown -R root:admin ${BUNDLE_ROOT}
+fi
diff --git a/hw/xquartz/bundle/meson.build b/hw/xquartz/bundle/meson.build
new file mode 100644
index 000000000..ec5225293
--- /dev/null
+++ b/hw/xquartz/bundle/meson.build
@@ -0,0 +1,65 @@
+# system-wide Xquartz server defaults file
+install_data('Xquartz.plist',
+ install_dir: join_paths(get_option('libdir'), 'X11/xserver'))
+
+# generate Info.plist
+cpp = find_program('cpp')
+cpp_defs = [
+ '-DAPPLE_APPLICATION_NAME=@0@'.format(apple_application_name),
+ '-DBUNDLE_ID_PREFIX=@0@'.format(bundle_id_prefix),
+ '-DBUNDLE_VERSION=@0@'.format(bundle_version),
+ '-DBUNDLE_VERSION_STRING=@0@'.format(bundle_version_string),
+]
+
+if build_sparkle
+cpp_defs += [
+ '-DXQUARTZ_SPARKLE',
+ '-DXQUARTZ_SPARKLE_FEED_URL=@0@'.format(xquartz_sparkle_feed_url),
+]
+endif
+
+# bundle data
+localities = [
+ 'Dutch', 'English', 'French', 'German', 'Italian', 'Japanese', 'Spanish',
+ 'ar','ca','cs','da','el','fi','he','hr','hu','ko','no','pl','pt','pt_PT',
+ 'ro','ru','sk','sv','th','tr','uk','zh_CN','zh_TW'
+]
+foreach lang : localities
+ install_data(join_paths('Resources', lang + '.lproj', 'Localizable.strings'),
+ install_dir: join_paths(bundle_root, 'Contents/Resources', lang + '.lproj'),
+ install_mode: 'rw-r--r--')
+
+ install_data(join_paths('Resources', lang + '.lproj', 'main.nib/keyedobjects.nib'),
+ install_dir: join_paths(bundle_root, 'Contents/Resources', lang + '.lproj', 'main.nib'),
+ install_mode: 'rw-r--r--')
+endforeach
+
+install_data('Resources/English.lproj/main.nib/designable.nib',
+ install_dir: join_paths(bundle_root, 'Contents/Resources/English.lproj/main.nib'),
+ install_mode: 'rw-r--r--')
+
+install_data('Resources/X11.icns',
+ install_dir: join_paths(bundle_root, 'Contents/Resources'),
+ install_mode: 'rw-r--r--')
+
+custom_target('Info.plist',
+ command: [cpp, '-P', cpp_defs, '@INPUT@'],
+ capture: true,
+ input: 'Info.plist.cpp',
+ output: 'Info.plist',
+ install: true,
+ install_dir: join_paths(bundle_root, 'Contents'),
+ install_mode: 'rw-r--r--',
+ build_by_default: true,
+)
+
+install_data('PkgInfo',
+ install_dir: join_paths(bundle_root, 'Contents'),
+ install_mode: 'rw-r--r--')
+
+install_data('X11.sh',
+ rename: 'X11',
+ install_dir: join_paths(bundle_root, 'Contents/MacOS'),
+ install_mode: 'rwxr-xr-x')
+
+meson.add_install_script('chown-bundle.sh', bundle_root)
diff --git a/hw/xquartz/mach-startup/meson.build b/hw/xquartz/mach-startup/meson.build
new file mode 100644
index 000000000..1d5318441
--- /dev/null
+++ b/hw/xquartz/mach-startup/meson.build
@@ -0,0 +1,92 @@
+# mach interface
+mig = find_program('mig')
+mach_startup = custom_target('mach_startup',
+ command: [mig,
+ '-sheader', '@OUTPUT0@', '-header', '@OUTPUT2@',
+ '-server', '@OUTPUT1@', '-user', '@OUTPUT3@',
+ '@INPUT@'],
+ input: 'mach_startup.defs',
+ output: ['mach_startupServer.h',
+ 'mach_startupServer.c',
+ 'mach_startup.h',
+ 'mach_startupUser.c'],
+)
+
+mach_startup_dep = declare_dependency(
+ sources: mach_startup[2] # mach_startup.h
+)
+
+# common defines
+xquartz_defs = [
+ bundle_id_def,
+ '-DXSERVER_VERSION="@0@"'.format(meson.project_version()),
+ '-DX11BINDIR="@0@"'.format(join_paths(get_option('prefix'), get_option('bindir'))),
+]
+
+# X11.bin
+x11appdir = join_paths(bundle_root, 'Contents/MacOS')
+
+x11_bin_deps = [
+ meson.get_compiler('c').find_library('Xplugin'),
+ dependency('Carbon', method: 'extraframework'),
+ cocoa,
+ dependency('CoreAudio', method: 'extraframework'),
+ dependency('IOKit', method: 'extraframework')
+]
+
+if build_glx
+ x11_bin_deps += [dependency('OpenGL', method: 'extraframework')]
+endif
+
+if build_sparkle
+ x11_bin_deps += sparkle
+endif
+
+x11_bin_libs = [
+ libXquartz,
+ libXquartzXpr,
+ libxpbproxy,
+ libxserver_fb,
+ libxserver,
+ libxserver_xkb_stubs,
+]
+
+if build_glx
+ x11_bin_libs += [libcglcore, libxserver_glx, libglxvnd]
+endif
+
+x11_bin = executable('X11.bin',
+ [
+ 'bundle-main.c',
+ # strndup(3) was added in Mac OS X 10.7 (Lion), but we do this
+ # unconditionally to deal with the case where we build on 10.7 or later,
+ # but target 10.6 (Snow Leopard) or earlier as the minimum OS version.
+ '../../../os/strndup.c',
+ mach_startup[1], # mach_startupServer.c
+ mach_startup[3], # mach_startupUser.c
+ ],
+ link_with: x11_bin_libs,
+ dependencies: [xproto_dep, x11_bin_deps, mach_startup_dep],
+ include_directories: [inc, '..', top_dir_inc],
+ c_args: xquartz_defs,
+ link_args: ['-Objc'],
+ install: true,
+ install_dir: x11appdir,
+)
+
+# Xquartz
+xquartz_deps = [
+ dependency('CoreServices', method: 'extraframework'),
+]
+
+xquartz = executable('Xquartz',
+ [
+ 'stub.c',
+ 'launchd_fd.c',
+ mach_startup[3], # mach_startupUser.c
+ ],
+ include_directories: inc,
+ c_args: xquartz_defs,
+ dependencies: [xquartz_deps, mach_startup_dep],
+ install: true,
+)
diff --git a/hw/xquartz/meson.build b/hw/xquartz/meson.build
index ebb24132c..25004f79c 100644
--- a/hw/xquartz/meson.build
+++ b/hw/xquartz/meson.build
@@ -1,6 +1,25 @@
add_languages('objc')
-srcs = [
+apple_applications_dir = get_option('apple-applications-dir')
+apple_application_name = get_option('apple-application-name')
+bundle_id_prefix = get_option('bundle-id-prefix')
+xquartz_sparkle_feed_url = get_option('sparkle-feed-url')
+
+bundle_version_string = meson.project_version() # CFBundleShortVersionString
+bundle_version = release # CFBundleVersion
+
+bundle_id_def = '-DBUNDLE_ID_PREFIX="@0@"'.format(bundle_id_prefix)
+
+bundle_root = join_paths(apple_applications_dir, apple_application_name + '.app')
+
+# using sparkle update framework?
+build_sparkle = xquartz_sparkle_feed_url != ''
+if build_sparkle
+ sparkle = dependency('Sparkle', method: 'extraframework')
+endif
+
+# libxquartz
+srcs_libxquartz = [
'X11Application.m',
'X11Controller.m',
'applewm.c',
@@ -17,30 +36,42 @@ srcs = [
'../../mi/miinitext.c',
]
-xquartz_c_args = [
- '-DXFree86Server',
- # XXXX: BUILD_DATE
- '-DXSERVER_VERSION="' + meson_project.version() + '"',
+libxquartz_defs = [
'-DINXQUARTZ',
'-DUSE_NEW_CLUT',
+ '-DX11LIBDIR="@0@"'.format(join_paths(get_option('prefix'),
+ get_option('libdir'))),
+ '-DXFree86Server',
+ '-DXQUARTZ',
+ '-DXSERVER_VERSION="@0@"'.format(meson.project_version()),
+ bundle_id_def,
]
if cc.has_function('dispatch_async')
- xquartz_c_args += '-DHAVE_LIBDISPATCH'
+ libxquartz_defs += '-DHAVE_LIBDISPATCH'
+endif
+
+libXquartz = static_library('Xquartz',
+ srcs_libxquartz,
+ c_args: libxquartz_defs,
+ objc_args: libxquartz_defs,
+ include_directories: [inc, '../../pseudoramiX', '../../miext/rootless', top_dir_inc],
+ dependencies: [xproto_dep, pixman_dep],
+ link_with: [libxserver_pseudoramix, libxserver_miext_rootless],
+)
+
+subdir('bundle')
+if build_glx
+ subdir('GL')
endif
+subdir('pbproxy')
+subdir('xpr')
+subdir('mach-startup')
-executable(
- 'Xquartz',
- srcs,
- include_directories: inc,
- link_with: [
- libxserver_main,
- libxserver,
- libxserver_xkb_stubs,
- libxserver_xi_stubs,
- libxserver_glx,
- libxserver_pseudoramix,
- ],
- c_args: xquartz_c_args,
- install: true,
+# manpage
+xquartz_man = configure_file(
+ input: 'man/Xquartz.man',
+ output: 'Xquartz.1',
+ configuration: manpage_config,
)
+install_man(xquartz_man)
diff --git a/hw/xquartz/pbproxy/meson.build b/hw/xquartz/pbproxy/meson.build
new file mode 100644
index 000000000..bf0f06f75
--- /dev/null
+++ b/hw/xquartz/pbproxy/meson.build
@@ -0,0 +1,29 @@
+build_standalone_pbproxy = get_option('xpbproxy')
+
+pbproxy_defs = [bundle_id_def]
+if build_standalone_pbproxy
+ pbproxy_defs += ['-DSTANDALONE_XPBPROXY']
+endif
+
+libapplewm_dep = dependency('applewm', version: '>=1.4')
+
+libxpbproxy = static_library('xpbproxy',
+ ['main.m',
+ 'x-input.m',
+ 'x-selection.m'],
+ dependencies: [applewmproto_dep, libapplewm_dep, dependency('xfixes'), dependency('x11')],
+ objc_args: pbproxy_defs,
+)
+
+cocoa = dependency('Cocoa', method: 'extraframework')
+
+# standalone xpbproxy
+if build_standalone_pbproxy
+ executable('xpbproxy',
+ 'app-main.m',
+ link_with: libxpbproxy,
+ dependencies: [cocoa, dependency('x11')],
+ objc_args: pbproxy_defs,
+ install: true,
+ )
+endif
diff --git a/hw/xquartz/xpr/meson.build b/hw/xquartz/xpr/meson.build
new file mode 100644
index 000000000..590727f47
--- /dev/null
+++ b/hw/xquartz/xpr/meson.build
@@ -0,0 +1,18 @@
+libXquartzXpr = static_library('XquartzXpr',
+ [
+ 'appledri.c',
+ 'dri.c',
+ 'driWrap.c',
+ 'xprAppleWM.c',
+ 'xprCursor.c',
+ 'xprEvent.c',
+ 'xprFrame.c',
+ 'xprScreen.c',
+ 'x-hash.c',
+ 'x-hook.c',
+ 'x-list.c',
+ ],
+ include_directories: [inc, '..', '../../../pseudoramiX', '../../../miext/rootless'],
+ c_args: [bundle_id_def, '-DXQUARTZ'],
+ dependencies: [xproto_dep, pixman_dep],
+)
diff --git a/include/meson.build b/include/meson.build
index 8e400d05d..65781b7a0 100644
--- a/include/meson.build
+++ b/include/meson.build
@@ -52,8 +52,6 @@ conf_data.set('_GNU_SOURCE', '1')
# ifdef for openbsd?
conf_data.set('HAS_APERTURE_DRV', host_machine.system() == 'openbsd')
-# XXX: BUNDLE_ID_PREFIX
-
if get_option('input_thread') == 'false'
enable_input_thread = false
else
@@ -289,6 +287,10 @@ if host_machine.system() == 'openbsd'
csrg_based = true
endif
+if host_machine.system() == 'darwin'
+ csrg_based = true
+endif
+
conf_data.set('SVR4', cc.compiles(defines_svr4))
conf_data.set_quoted('XKB_DFLT_RULES', get_option('xkb_default_rules'))
conf_data.set('XORGSERVER', build_xorg)
diff --git a/meson.build b/meson.build
index 85c045ee3..08395ff62 100644
--- a/meson.build
+++ b/meson.build
@@ -6,7 +6,7 @@ project('xserver', 'c',
version: '1.20.99.1',
meson_version: '>= 0.46.0',
)
-add_project_arguments('-DHAVE_DIX_CONFIG_H', language: 'c')
+add_project_arguments('-DHAVE_DIX_CONFIG_H', language: ['c', 'objc'])
cc = meson.get_compiler('c')
add_global_arguments('-fno-strict-aliasing', language : 'c')
@@ -56,7 +56,7 @@ foreach wflag: test_wflags
endif
endforeach
-add_global_arguments(common_wflags, language : 'c')
+add_global_arguments(common_wflags, language : ['c', 'objc'])
xproto_dep = dependency('xproto', version: '>= 7.0.31')
randrproto_dep = dependency('randrproto', version: '>= 1.6.0')
@@ -133,14 +133,21 @@ dfp = get_option('default_font_path')
if dfp == ''
fontutil_dep = dependency('fontutil')
fontrootdir = fontutil_dep.get_pkgconfig_variable('fontrootdir')
- default_font_path = ','.join([
+ dfp_elements = [
join_paths(fontrootdir, 'misc'),
join_paths(fontrootdir, 'TTF'),
join_paths(fontrootdir, 'OTF'),
join_paths(fontrootdir, 'Type1'),
join_paths(fontrootdir, '100dpi'),
join_paths(fontrootdir, '75dpi'),
- ])
+ ]
+ if host_machine.system() == 'darwin'
+ dfp_elements += [
+ '/Library/Fonts',
+ '/System/Library/Fonts',
+ ]
+ endif
+ default_font_path = ','.join(dfp_elements)
else
default_font_path = dfp
endif
@@ -149,7 +156,7 @@ hal_option = get_option('hal')
glamor_option = get_option('glamor')
build_udev = get_option('udev')
-if host_machine.system() == 'windows'
+if host_machine.system() == 'windows' or host_machine.system() == 'darwin'
build_udev = false
hal_option = 'false'
endif
@@ -227,8 +234,14 @@ else
build_xwin = get_option('xwin') == 'true'
endif
-# XXX: Finish these.
build_xquartz = false
+if get_option('xquartz') == 'auto'
+ if host_machine.system() == 'darwin'
+ build_xquartz = true
+ endif
+else
+ build_xquartz = get_option('xquartz') == 'true'
+endif
build_rootless = false
if build_xquartz
diff --git a/meson_options.txt b/meson_options.txt
index 3051932f7..7d3bbe535 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -16,6 +16,9 @@ option('xvfb', type: 'boolean', value: true,
description: 'Enable Xvfb X server')
option('xwin', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto',
description: 'Enable XWin X server')
+option('xquartz', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto',
+ description: 'Enable Xquartz X server')
+
option('builder_addr', type: 'string', description: 'Builder address', value: 'xorg at lists.freedesktop.org')
option('builder_string', type: 'string', description: 'Additional builder string')
@@ -104,3 +107,14 @@ option('agp', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto',
option('dri1', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto', description: 'Build DRI1 extension (default: auto)')
option('dri2', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto', description: 'Build DRI2 extension (default: auto)')
option('dri3', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto', description: 'Build DRI3 extension (default: auto)')
+
+option('apple-applications-dir', type: 'string', value: '/Applications/Utilities',
+ description: 'Applications directory')
+option('apple-application-name', type: 'string', value: 'X11',
+ description: 'Application name')
+option('bundle-id-prefix', type: 'string', value: 'org.x',
+ description: 'RDNS prefix for bundle identifier')
+option('sparkle-feed-url', type: 'string',
+ description: 'Feed URL for autoupdating with the Sparkle Framework (default: disabled)')
+option('xpbproxy', type: 'boolean', value: false,
+ description: 'Build a standalone X pasteboard proxy')
diff --git a/os/meson.build b/os/meson.build
index f6313807a..39440a7c3 100644
--- a/os/meson.build
+++ b/os/meson.build
@@ -62,7 +62,7 @@ if get_option('secure-rpc')
if not (rpc_dep.found() or cc.has_header('rpc/rpc.h'))
error('secure-rpc requested, but neither libtirpc or libc RPC support were found')
endif
-
+ # XXX: also check if RPC library provides xdr_opaque_auth, authdes_(sec)create ???
srcs_os += 'rpcauth.c'
endif
commit e5f4c7c80b3f15b1941c530e58fbded0fd06a97e
Author: Jon Turney <jon.turney at dronecode.org.uk>
Date: Fri Apr 19 14:03:58 2019 +0100
xquartz: Fix a typo in man page substitution
The typo fixed in d69460159 was still present for this setting when
added in ac439842.
meson warns that there is no substitution with this name.
diff --git a/hw/xquartz/man/Xquartz.man b/hw/xquartz/man/Xquartz.man
index df7ab25aa..6f19202d6 100644
--- a/hw/xquartz/man/Xquartz.man
+++ b/hw/xquartz/man/Xquartz.man
@@ -84,7 +84,7 @@ This option defaults to false and is provided only "for experts." It updates th
.B defaults write @bundle_id_prefix at .X11 enable_test_extensions -boolean true
This option defaults to false and is only accessible through the command line. Enable this option to turn on the DEC-XTRAP, RECORD, and XTEST extensions in the server.
.TP 8
-.B defaults write @laucnd_id_prefix at .X11 scroll_in_device_direction -boolean true
+.B defaults write @bundle_id_prefix at .X11 scroll_in_device_direction -boolean true
This option defaults to false. Enable this option to ensure that X11 scroll events are always in the direction of the device. This overrides the related option in the Mouse/Trackpad section of System Preferences.
.SH OPTIONS
.PP
commit ecf62b7ba6e7eba1a3f3a50d46eaf9f4f11550c4
Author: Jon Turney <jon.turney at dronecode.org.uk>
Date: Fri Apr 19 14:01:48 2019 +0100
meson: Build rootless extension
diff --git a/include/meson.build b/include/meson.build
index 09707cec5..8e400d05d 100644
--- a/include/meson.build
+++ b/include/meson.build
@@ -242,6 +242,12 @@ conf_data.set_quoted('__VENDORDWEBSUPPORT__', get_option('vendor_web'))
conf_data.set_quoted('BUILDERADDR', get_option('builder_addr'))
conf_data.set_quoted('BUILDERSTRING', get_option('builder_string'))
+if build_rootless
+ conf_data.set('ROOTLESS', build_rootless)
+ conf_data.set('ROOTLESS_WORKAROUND', 1)
+ conf_data.set('ROOTLESS_SAFEALPHA', 1)
+endif
+
#
# for xorg-server.h only
#
diff --git a/meson.build b/meson.build
index 75261f4b7..85c045ee3 100644
--- a/meson.build
+++ b/meson.build
@@ -230,6 +230,11 @@ endif
# XXX: Finish these.
build_xquartz = false
+build_rootless = false
+if build_xquartz
+ build_rootless = true
+endif
+
if get_option('ipv6') == 'auto'
build_ipv6 = cc.has_function('getaddrinfo')
else
@@ -590,6 +595,9 @@ subdir('dbe')
subdir('miext/damage')
subdir('miext/shadow')
subdir('miext/sync')
+if build_rootless
+ subdir('miext/rootless')
+endif
subdir('present')
if build_xwin or build_xquartz
subdir('pseudoramiX')
diff --git a/miext/rootless/meson.build b/miext/rootless/meson.build
new file mode 100644
index 000000000..66b9f06cf
--- /dev/null
+++ b/miext/rootless/meson.build
@@ -0,0 +1,13 @@
+srcs_miext_rootless = [
+ 'rootlessCommon.c',
+ 'rootlessGC.c',
+ 'rootlessScreen.c',
+ 'rootlessValTree.c',
+ 'rootlessWindow.c',
+]
+
+libxserver_miext_rootless = static_library('libxserver_miext_rootless',
+ srcs_miext_rootless,
+ include_directories: inc,
+ dependencies: common_dep,
+)
commit b4ed20c4f118031305f6ce76dda4e325950b2958
Author: Jon Turney <jon.turney at dronecode.org.uk>
Date: Sat Apr 20 12:45:11 2019 +0100
Promote file containing date & time build was configured to top-level
Promote the generated file containing the date & time build was
configured to top-level.
Rename it from xf86Build.h to buildDateTIme.h.
Use it as well in XQuartz, stringize BUILD_DATE when needed.
diff --git a/Makefile.am b/Makefile.am
index 19511f765..763a772df 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -142,7 +142,7 @@ EXTRA_DIST += \
include/xorg-config.h.meson.in \
include/xwin-config.h.meson.in \
hw/xfree86/loader/symbol-test.c \
- hw/xfree86/common/xf86Build.sh \
+ buildDateTime.sh \
composite/meson.build \
config/meson.build \
damageext/meson.build \
@@ -213,3 +213,5 @@ EXTRA_DIST += \
xfixes/meson.build \
Xi/meson.build \
xkb/meson.build
+
+DISTCLEANFILES = buildDateTime.h
diff --git a/hw/xfree86/common/xf86Build.h.in b/buildDateTime.h.in
similarity index 100%
rename from hw/xfree86/common/xf86Build.h.in
rename to buildDateTime.h.in
diff --git a/hw/xfree86/common/xf86Build.sh b/buildDateTime.sh
similarity index 100%
rename from hw/xfree86/common/xf86Build.sh
rename to buildDateTime.sh
diff --git a/configure.ac b/configure.ac
index 1107bd8b7..5055d271d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2407,6 +2407,7 @@ if test "x$CONFIG_HAL" = xno && test "x$CONFIG_UDEV" = xno; then
fi
AC_CONFIG_FILES([
+buildDateTime.h
Makefile
glx/Makefile
include/Makefile
@@ -2442,7 +2443,6 @@ hw/Makefile
hw/xfree86/Makefile
hw/xfree86/Xorg.sh
hw/xfree86/common/Makefile
-hw/xfree86/common/xf86Build.h
hw/xfree86/ddc/Makefile
hw/xfree86/dixmods/Makefile
hw/xfree86/doc/Makefile
diff --git a/hw/xfree86/common/Makefile.am b/hw/xfree86/common/Makefile.am
index 41758fd2e..5d344584d 100644
--- a/hw/xfree86/common/Makefile.am
+++ b/hw/xfree86/common/Makefile.am
@@ -45,14 +45,15 @@ libcommon_la_SOURCES = xf86Configure.c xf86Bus.c xf86Config.c \
xf86Mode.c xorgHelper.c xf86Extensions.h \
xf86Extensions.c $(XF86VMODESOURCES) \
$(XVSOURCES) $(BUSSOURCES) $(RANDRSOURCES)
-nodist_libcommon_la_SOURCES = xf86DefModeSet.c xf86Build.h
+nodist_libcommon_la_SOURCES = xf86DefModeSet.c
libcommon_la_LIBADD = $(top_builddir)/config/libconfig.la
AM_CPPFLAGS = $(XORG_INCS) -I$(srcdir)/../ddc -I$(srcdir)/../i2c \
-I$(srcdir)/../loader -I$(srcdir)/../parser \
-I$(srcdir)/../vbe -I$(srcdir)/../int10 \
-I$(srcdir)/../vgahw -I$(srcdir)/../dixmods/extmod \
- -I$(srcdir)/../modes -I$(srcdir)/../ramdac -I$(srcdir)/../dri2
+ -I$(srcdir)/../modes -I$(srcdir)/../ramdac -I$(srcdir)/../dri2 \
+ -I$(top_builddir)
sdk_HEADERS = compiler.h fourcc.h xf86.h xf86Module.h xf86Opt.h \
xf86PciInfo.h xf86Priv.h xf86Privstr.h \
@@ -62,7 +63,6 @@ sdk_HEADERS = compiler.h fourcc.h xf86.h xf86Module.h xf86Opt.h \
xf86platformBus.h xf86MatchDrivers.h \
xaarop.h
-DISTCLEANFILES = xf86Build.h
CLEANFILES = $(BUILT_SOURCES)
EXTRA_DIST = \
diff --git a/hw/xfree86/common/meson.build b/hw/xfree86/common/meson.build
index 3e617dc36..a59aeb98f 100644
--- a/hw/xfree86/common/meson.build
+++ b/hw/xfree86/common/meson.build
@@ -74,11 +74,6 @@ if get_option('pciaccess')
srcs_xorg_common += ['xf86pciBus.c', 'xf86VGAarbiter.c']
endif
-srcs_xorg_common += configure_file(
- output: 'xf86Build.h',
- command: ['sh', join_paths(meson.current_source_dir(), 'xf86Build.sh'), '@OUTPUT@'],
-)
-
srcs_xorg_common += custom_target(
'xf86DefModeSet.c',
output: 'xf86DefModeSet.c',
@@ -89,7 +84,7 @@ srcs_xorg_common += custom_target(
xorg_common = static_library('xorg_common',
srcs_xorg_common,
- include_directories: [inc, xorg_inc],
+ include_directories: [inc, xorg_inc, top_dir_inc],
dependencies: [
common_dep,
dbus_dep,
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index 7d53987cb..1a2520c2a 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -65,7 +65,7 @@
#include "xf86_OSlib.h"
#include "xf86cmap.h"
#include "xorgVersion.h"
-#include "xf86Build.h"
+#include "buildDateTime.h"
#include "mipointer.h"
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>
diff --git a/hw/xquartz/Makefile.am b/hw/xquartz/Makefile.am
index 4da896d76..65061ae8a 100644
--- a/hw/xquartz/Makefile.am
+++ b/hw/xquartz/Makefile.am
@@ -2,13 +2,13 @@ noinst_LTLIBRARIES = libXquartz.la
AM_CFLAGS = $(DIX_CFLAGS)
AM_OBJCFLAGS = $(DIX_CFLAGS)
AM_CPPFLAGS = \
- -DBUILD_DATE=\"$(BUILD_DATE)\" \
-DXSERVER_VERSION=\"$(VERSION)\" \
-DINXQUARTZ \
-DUSE_NEW_CLUT \
-DXFree86Server \
-I$(top_srcdir)/miext/rootless \
-I$(top_builddir)/pseudoramiX \
+ -I$(top_builddir) \
-DX11LIBDIR=\"$(libdir)\"
if GLX
diff --git a/hw/xquartz/darwin.c b/hw/xquartz/darwin.c
index ccfe5f963..5c7e96e87 100644
--- a/hw/xquartz/darwin.c
+++ b/hw/xquartz/darwin.c
@@ -34,6 +34,7 @@
#include <X11/X.h>
#include <X11/Xproto.h>
+#include "buildDateTime.h"
#include "os.h"
#include "servermd.h"
#include "inputstr.h"
@@ -168,7 +169,7 @@ DarwinPrintBanner(void)
{
ErrorF("Xquartz starting:\n");
ErrorF("X.Org X Server %s\n", XSERVER_VERSION);
- ErrorF("Build Date: %s\n", BUILD_DATE);
+ ErrorF("Build Date: %d\n", BUILD_DATE);
}
/*
diff --git a/hw/xquartz/mach-startup/Makefile.am b/hw/xquartz/mach-startup/Makefile.am
index b2c446af8..59696f8bb 100644
--- a/hw/xquartz/mach-startup/Makefile.am
+++ b/hw/xquartz/mach-startup/Makefile.am
@@ -1,6 +1,6 @@
AM_CPPFLAGS = \
-I$(srcdir)/.. \
- -DBUILD_DATE=\"$(BUILD_DATE)\" \
+ -I$(top_builddir) \
-DXSERVER_VERSION=\"$(VERSION)\" \
-DX11BINDIR=\"$(bindir)\"
diff --git a/hw/xquartz/mach-startup/bundle-main.c b/hw/xquartz/mach-startup/bundle-main.c
index b40366244..5a593e75f 100644
--- a/hw/xquartz/mach-startup/bundle-main.c
+++ b/hw/xquartz/mach-startup/bundle-main.c
@@ -62,6 +62,7 @@
#include "mach_startupServer.h"
#include "console_redirect.h"
+#include "buildDateTime.h"
/* From darwinEvents.c ... but don't want to pull in all the server cruft */
void
@@ -81,9 +82,9 @@ extern int noPanoramiXExtension;
#define DEFAULT_STARTX X11BINDIR "/startx -- " X11BINDIR "/Xquartz"
#define DEFAULT_SHELL "/bin/sh"
-#ifndef BUILD_DATE
-#define BUILD_DATE ""
-#endif
+#define _STRINGIZE(s) #s
+#define STRINGIZE(s) _STRINGIZE(s)
+
#ifndef XSERVER_VERSION
#define XSERVER_VERSION "?"
#endif
@@ -99,7 +100,7 @@ asm (".desc ___crashreporter_info__, 0x10");
#endif
static const char *__crashreporter_info__base =
- "X.Org X Server " XSERVER_VERSION " Build Date: " BUILD_DATE;
+ "X.Org X Server " XSERVER_VERSION " Build Date: " STRINGIZE(BUILD_DATE);
char *bundle_id_prefix = NULL;
static char *server_bootstrap_name = NULL;
diff --git a/hw/xwin/glx/meson.build b/hw/xwin/glx/meson.build
index 57cce039d..95f248953 100644
--- a/hw/xwin/glx/meson.build
+++ b/hw/xwin/glx/meson.build
@@ -72,7 +72,7 @@ xwin_glx = static_library(
srcs_windows_glx,
include_directories: [
inc,
- top_srcdir_inc,
+ top_dir_inc,
include_directories('../'),
],
dependencies: common_dep,
@@ -89,7 +89,7 @@ WGLthunk = shared_library(
srcs_wgl_thunk,
include_directories: [
inc,
- top_srcdir_inc,
+ top_dir_inc,
],
c_args: xwin_glx_c_args + [
'-Wno-unused-function',
diff --git a/hw/xwin/meson.build b/hw/xwin/meson.build
index 72e4fe3c2..3ec809fef 100644
--- a/hw/xwin/meson.build
+++ b/hw/xwin/meson.build
@@ -142,7 +142,7 @@ xwin_dep = [
executable(
server_name,
srcs_windows,
- include_directories: [inc, top_srcdir_inc],
+ include_directories: [inc, top_dir_inc],
dependencies: xwin_dep,
link_with: [
xwin_windowsdri,
diff --git a/meson.build b/meson.build
index e835e2d31..75261f4b7 100644
--- a/meson.build
+++ b/meson.build
@@ -531,7 +531,7 @@ endif
glx_inc = include_directories('glx')
-top_srcdir_inc = include_directories('.')
+top_dir_inc = include_directories('.')
serverconfigdir = join_paths(get_option('libdir'), 'xorg')
@@ -566,6 +566,12 @@ manpage_config.set('modulepath', module_dir)
manpage_config.set('suid_wrapper_dir', join_paths(get_option('prefix'), 'libexec'))
manpage_config.set('default_font_path', default_font_path)
+# generate header containing date & time build was configued
+build_date_time = configure_file(
+ output: 'buildDateTime.h',
+ command: ['sh', join_paths(meson.current_source_dir(), 'buildDateTime.sh'), '@OUTPUT@'],
+)
+
# Include must come first, as it sets up dix-config.h
subdir('include')
More information about the xorg-commit
mailing list