1 |
#global gitdate 20151027 |
2 |
# temporary build fix: |
3 |
%define _python_bytecompile_build 0 |
4 |
|
5 |
%bcond_with debug |
6 |
%define enable_builddocs 0 |
7 |
|
8 |
# Need this for shared objects that reference X Server, or other modules symbols |
9 |
%define _disable_ld_no_undefined 1 |
10 |
|
11 |
# Alternatives priority for standard libglx.so and mesa libs |
12 |
%define priority 500 |
13 |
|
14 |
%define rel 9 |
15 |
|
16 |
%global __provides_exclude_from %{_datadir}/%{name}-source |
17 |
%global __requires_exclude_from %{_datadir}/%{name}-source |
18 |
|
19 |
# Released ABI versions. Have to keep these manually in sync with the |
20 |
# source because rpm is a terrible language. |
21 |
%global ansic_major 0 |
22 |
%global ansic_minor 4 |
23 |
%global videodrv_major 24 |
24 |
%global videodrv_minor 1 |
25 |
%global xinput_major 24 |
26 |
%global xinput_minor 1 |
27 |
%global extension_major 10 |
28 |
%global extension_minor 0 |
29 |
|
30 |
%global pkgname xorg-server |
31 |
|
32 |
Name: x11-server |
33 |
Version: 1.20.9 |
34 |
Release: %mkrel %rel%{?gitdate:.%{gitdate}} |
35 |
Summary: X11 servers |
36 |
Group: System/X11 |
37 |
URL: https://xorg.freedesktop.org |
38 |
%if 0%{?gitdate} |
39 |
Source0: xorg-server-%{gitdate}.tar.xz |
40 |
%else |
41 |
Source0: http://www.x.org/pub/individual/xserver/%{pkgname}-%{version}.tar.bz2 |
42 |
Source1: gitignore |
43 |
%endif |
44 |
Source4: 10-quirks.conf |
45 |
Source5: mageia-setup-keyboard-udev |
46 |
Source6: 61-x11-input.rules |
47 |
Source10: xserver.pamd |
48 |
# from RH/FC: |
49 |
# "useful" xvfb-run script |
50 |
Source20: https://svn.exactcode.de/t2/trunk/package/xorg/xorg-server/xvfb-run.sh |
51 |
Source21: https://svn.exactcode.de/t2/trunk/package/xorg/xorg-server/xvfb-run.1 |
52 |
# for requires generation in drivers |
53 |
Source30: xserver-sdk-abi-requires.release |
54 |
# for finding & loading nvidia and flgrx drivers: |
55 |
Source90: 00-modules.conf |
56 |
License: GPLv2+ and MIT |
57 |
|
58 |
# Instructions to setup your repository clone |
59 |
# git://anongit.freedesktop.org/git/xorg/xserver |
60 |
# git checkout origin/server-1.7-branch |
61 |
# git checkout -b mdv-1.7-cherry-picks |
62 |
# git am ../03??-*.patch |
63 |
# git checkout -b mdv-1.7-redhat |
64 |
# git am ../04??-*.patch |
65 |
# git checkout -b mdv-1.7-patches |
66 |
# git am ../09??-*.patch |
67 |
|
68 |
# Sync with server-1.20-branch |
69 |
# git format-patch --start-number 100 xorg-server-1.20.3..server-1.20-branch |
70 |
|
71 |
# xorg server master branch from 200 |
72 |
Patch200: 0200-xfree86-modes-Add-NoOutputInitialSize-option.patch |
73 |
Patch203: 0203-Revert-systemd-logind-Monitor-systemd-logind-going-a.patch |
74 |
Patch204: 0204-dri2-Set-fallback-driver-names-for-Intel-and-AMD-chi.patch |
75 |
|
76 |
# Fedora Patches |
77 |
|
78 |
# XXX needs rebase, but also va_gl should probably just be the default |
79 |
# Patch3: 0001-xf86-dri2-Use-va_gl-as-vdpau_driver-for-Intel-i965-G.patch |
80 |
|
81 |
# Submitted upstream, but not going anywhere |
82 |
Patch5: 0001-autobind-GPUs-to-the-screen.patch |
83 |
|
84 |
# because the display-managers are not ready yet, do not upstream |
85 |
Patch6: 0001-Fedora-hack-Make-the-suid-root-wrapper-always-start-.patch |
86 |
|
87 |
# Backports from current stable "server-1.20-branch": |
88 |
Patch101: 0001-Revert-linux-Fix-platform-device-probe-for-DT-based-.patch |
89 |
Patch102: 0002-Revert-linux-Fix-platform-device-PCI-detection-for-c.patch |
90 |
Patch103: 0003-Revert-linux-Make-platform-device-probe-less-fragile.patch |
91 |
Patch104: 0004-include-Increase-the-number-of-max.-input-devices-to.patch |
92 |
Patch105: 0005-glamor-Fix-glamor_poly_fill_rect_gl-xRectangle-width.patch |
93 |
Patch106: 0006-xfree86-Take-second-reference-for-SavedCursor-in-xf8.patch |
94 |
Patch107: 0007-present-wnmd-Can-t-use-page-flipping-for-windows-cli.patch |
95 |
Patch108: 0008-xwayland-Check-window-pixmap-in-xwl_present_check_fl.patch |
96 |
Patch109: 0009-present-wnmd-Remove-dead-check-from-present_wnmd_che.patch |
97 |
Patch110: 0010-xwayland-Do-not-discard-frame-callbacks-on-allow-com.patch |
98 |
Patch111: 0011-xwayland-use-drmGetNodeTypeFromFd-for-checking-if-a-.patch |
99 |
Patch112: 0012-xwayland-Remove-pending-stream-reference-when-freein.patch |
100 |
Patch113: 0013-present-Move-flip-target_msc-adjustment-out-of-prese.patch |
101 |
Patch114: 0014-present-Add-present_vblank-exec_msc-field.patch |
102 |
Patch115: 0015-present-wnmd-Move-up-present_wnmd_queue_vblank.patch |
103 |
Patch116: 0016-present-wnmd-Execute-copies-at-target_msc-1-already.patch |
104 |
|
105 |
# Backports from "master" upstream: |
106 |
|
107 |
# Backported Xwayland randr resolution change emulation support |
108 |
Patch501: 0001-dix-Add-GetCurrentClient-helper.patch |
109 |
Patch502: 0002-xwayland-Add-wp_viewport-wayland-extension-support.patch |
110 |
Patch503: 0003-xwayland-Use-buffer_damage-instead-of-surface-damage.patch |
111 |
Patch504: 0004-xwayland-Add-fake-output-modes-to-xrandr-output-mode.patch |
112 |
Patch505: 0005-xwayland-Use-RandR-1.2-interface-rev-2.patch |
113 |
Patch506: 0006-xwayland-Add-per-client-private-data.patch |
114 |
Patch507: 0007-xwayland-Add-support-for-storing-per-client-per-outp.patch |
115 |
Patch508: 0008-xwayland-Add-support-for-randr-resolution-change-emu.patch |
116 |
Patch509: 0009-xwayland-Add-xwlRRModeToDisplayMode-helper-function.patch |
117 |
Patch510: 0010-xwayland-Add-xwlVidModeGetCurrentRRMode-helper-to-th.patch |
118 |
Patch511: 0011-xwayland-Add-vidmode-mode-changing-emulation-support.patch |
119 |
Patch512: 0012-xwayland-xwl_window_should_enable_viewport-Add-extra.patch |
120 |
Patch513: 0013-xwayland-Set-_XWAYLAND_RANDR_EMU_MONITOR_RECTS-prope.patch |
121 |
Patch514: 0014-xwayland-Cache-client-id-for-the-window-manager-clie.patch |
122 |
Patch515: 0015-xwayland-Reuse-viewport-instead-of-recreating.patch |
123 |
Patch516: 0016-xwayland-Recurse-on-finding-the-none-wm-owner.patch |
124 |
Patch517: 0017-xwayland-Make-window_get_none_wm_owner-return-a-Wind.patch |
125 |
Patch518: 0018-xwayland-Check-emulation-on-client-toplevel-resize.patch |
126 |
Patch519: 0019-xwayland-Also-check-resolution-change-emulation-when.patch |
127 |
Patch520: 0020-xwayland-Also-hook-screen-s-MoveWindow-method.patch |
128 |
Patch521: 0021-xwayland-Fix-emulated-modes-not-being-removed-when-s.patch |
129 |
Patch522: 0022-xwayland-Call-xwl_window_check_resolution_change_emu.patch |
130 |
Patch523: 0023-xwayland-Fix-setting-of-_XWAYLAND_RANDR_EMU_MONITOR_.patch |
131 |
Patch524: 0024-xwayland-Remove-unnecessary-xwl_window_is_toplevel-c.patch |
132 |
|
133 |
# Mageia patches |
134 |
# git format-patch --start-number 900 mdv-1.6.4-redhat..mdv-1.6.4-patches |
135 |
Patch900: 0900-Use-a-X-wrapper-that-uses-pam-and-consolehelper-to-g.patch |
136 |
Patch901: 0901-Don-t-print-information-about-X-Server-being-a-pre-r.patch |
137 |
Patch902: 0902-Take-width-into-account-when-choosing-default-mode.patch |
138 |
Patch903: 0903-LED-behavior-fixes.patch |
139 |
Patch906: 0906-xfree86-need-to-press-Ctrl-Alt-Bksp-twice-to-termina.patch |
140 |
|
141 |
# Candidates for dropping: |
142 |
# 902: by pixel, so that X11 choose the best resolution with a better algorithm |
143 |
# 903: Input subsystem has changed *a lot* since this patch was written... I |
144 |
# fear it might break things now |
145 |
# 906: All this patch does is force users to hit ctrl+alt+bksp twice (with |
146 |
# an annoying sound) IF the hotkey is enabled. If the user chooses to |
147 |
# enable ctrk+alt+bksp, why force him to hit twice? OTOH, the sound is |
148 |
# annoying, and it should teach users to not use ctrl+alt+bksp =D |
149 |
|
150 |
# Do not crash if Xv is not initialized (patch from xorg-devel ML) |
151 |
# The crash happened when v4l was loaded and xv was not registered, |
152 |
# for example on RV610 with radeon driver |
153 |
Patch4001: 1001-do-not-crash-if-xv-not-initialized.patch |
154 |
|
155 |
# (cg) Point the user at the journal rather than a logfile at /dev/null |
156 |
Patch5001: point-user-at-journal-rather-than-dev-null.patch |
157 |
|
158 |
# from Suse |
159 |
Patch5009: N_Disable-HW-Cursor-for-cirrus-and-mgag200-kernel-modules.patch |
160 |
Source5010: u_os-connections-Check-for-stale-FDs.patch |
161 |
|
162 |
# Security fixes |
163 |
|
164 |
Requires: %{name}-xorg |
165 |
Requires: %{name}-xdmx |
166 |
Requires: %{name}-xnest |
167 |
Requires: %{name}-xvfb |
168 |
|
169 |
# This should be removed when any of the vnc packages provide x11-server-xvnc: |
170 |
Obsoletes: %{name}-xvnc < %{version}-%{release} |
171 |
|
172 |
Obsoletes: %{name}-xfake < %{version}-%{release} |
173 |
|
174 |
# temp force new gcc |
175 |
BuildRequires: gcc >= 10.1.0-1 |
176 |
BuildRequires: binutils >= 1:2.34-10 |
177 |
# temp force new glibc |
178 |
BuildRequires: glibc >= 6:2.31-8 |
179 |
# nsl bits gone in glibc 2.32, add separate libnsl dep |
180 |
BuildRequires: pkgconfig(libnsl) |
181 |
# rpc bits gone in glibc 2.32, add separate libtirpc dep |
182 |
BuildRequires: pkgconfig(libtirpc) |
183 |
|
184 |
BuildRequires: systemtap-sdt-devel |
185 |
BuildRequires: git-core |
186 |
BuildRequires: libpam-devel |
187 |
BuildRequires: pkgconfig(egl) |
188 |
BuildRequires: pkgconfig(fontutil) >= 1.1 |
189 |
BuildRequires: pkgconfig(gbm) |
190 |
BuildRequires: pkgconfig(dri) |
191 |
BuildRequires: pkgconfig(gl) |
192 |
BuildRequires: pkgconfig(libudev) |
193 |
BuildRequires: pkgconfig(pciaccess) |
194 |
BuildRequires: pkgconfig(pixman-1) >= 0.9.5 |
195 |
BuildRequires: pkgconfig(systemd) |
196 |
BuildRequires: pkgconfig(xau) >= 1.0.0 |
197 |
BuildRequires: pkgconfig(xaw7) >= 1.0.1 |
198 |
BuildRequires: pkgconfig(xdmcp) >= 1.0.0 |
199 |
BuildRequires: pkgconfig(xext) >= 1.1 |
200 |
BuildRequires: pkgconfig(xfixes) |
201 |
BuildRequires: pkgconfig(xfont2) |
202 |
BuildRequires: pkgconfig(xi) >= 1.1.3 |
203 |
BuildRequires: pkgconfig(xkbfile) >= 1.0.4 |
204 |
BuildRequires: pkgconfig(xmu) >= 1.0.0 |
205 |
BuildRequires: pkgconfig(xorg-macros) >= 1.10 |
206 |
BuildRequires: pkgconfig(xpm) >= 3.5.4.2 |
207 |
BuildRequires: pkgconfig(xrender) >= 0.9.4 |
208 |
BuildRequires: pkgconfig(xres) >= 1.0.0 |
209 |
BuildRequires: pkgconfig(xtrans) >= 1.3.5 |
210 |
BuildRequires: pkgconfig(xv) |
211 |
BuildRequires: x11-proto-devel >= 7.7-11 |
212 |
|
213 |
# for ./hw/xwin/glx/gen_gl_wrappers.py: |
214 |
%define _python_bytecompile_errors_terminate_build 0 |
215 |
|
216 |
# Probably only needed if we change .l or .y files, but let's have them anyway: |
217 |
BuildRequires: byacc |
218 |
BuildRequires: flex |
219 |
|
220 |
# for xkbcomp patch |
221 |
BuildRequires: pkgconfig(libcrypto) |
222 |
|
223 |
|
224 |
BuildRequires: pkgconfig(dbus-1) |
225 |
|
226 |
BuildRequires: pkgconfig(dmx) |
227 |
BuildRequires: pkgconfig(xtst) >= 1.1 |
228 |
|
229 |
BuildRequires: pkgconfig(wayland-client) >= 1.3.0 |
230 |
BuildRequires: pkgconfig(wayland-eglstream-protocols) |
231 |
BuildRequires: pkgconfig(wayland-protocols) |
232 |
BuildRequires: pkgconfig(epoxy) |
233 |
BuildRequires: pkgconfig(xshmfence) >= 1.1 |
234 |
|
235 |
BuildRequires: pkgconfig(libunwind) |
236 |
|
237 |
BuildRequires: pkgconfig(xcb-aux) pkgconfig(xcb-image) pkgconfig(xcb-icccm) |
238 |
BuildRequires: pkgconfig(xcb-keysyms) pkgconfig(xcb-renderutil) |
239 |
|
240 |
%if %{enable_builddocs} |
241 |
BuildRequires: doxygen |
242 |
BuildRequires: fop |
243 |
BuildRequires: xmlto |
244 |
BuildRequires: pkgconfig(xorg-sgml-doctools) |
245 |
%endif |
246 |
|
247 |
%description |
248 |
X.Org X11 X server |
249 |
|
250 |
|
251 |
%package common |
252 |
Summary: Xorg server common files |
253 |
Group: System/X11 |
254 |
License: MIT |
255 |
Provides: XFree86 = 7.0.0 |
256 |
Requires: rgb |
257 |
# for 'fixed' and 'cursor' fonts |
258 |
Requires: x11-font-misc-misc |
259 |
Requires: x11-font-cursor-misc |
260 |
Requires: x11-font-alias |
261 |
Requires: x11-data-xkbdata |
262 |
Requires: xkbcomp |
263 |
Requires: udev |
264 |
# else modesetting fails on minimal install: |
265 |
Requires: %{mklibname mesaegl 1} |
266 |
Requires(post): update-alternatives |
267 |
Requires(postun): update-alternatives |
268 |
# nvidia-71xx does not support X.org server >= 1.5 |
269 |
Conflicts: x11-driver-video-nvidia71xx < 71.86.09-2 |
270 |
# old fglrx does not support X.org server >= 1.7 |
271 |
Conflicts: x11-driver-video-fglrx < 8.720 |
272 |
# Fix: missing conflicts to allow upgrade from 2008.0 to cooker |
273 |
# http://qa.mandriva.com/show_bug.cgi?id=36651 |
274 |
Conflicts: x11-driver-video-nvidia-current <= 100.14.19 |
275 |
|
276 |
|
277 |
Provides: xserver-abi(ansic-%{ansic_major}) = %{ansic_minor} |
278 |
Provides: xserver-abi(videodrv-%{videodrv_major}) = %{videodrv_minor} |
279 |
Provides: xserver-abi(xinput-%{xinput_major}) = %{xinput_minor} |
280 |
Provides: xserver-abi(extension-%{extension_major}) = %{extension_minor} |
281 |
# For proprietary drivers that can support multiple videodrv versions: |
282 |
Provides: xserver-abi(videodrv) = %{videodrv_major}.%{videodrv_minor} |
283 |
|
284 |
%description common |
285 |
X server common files |
286 |
|
287 |
%package xorg |
288 |
Summary: Xorg X server |
289 |
Group: System/X11 |
290 |
License: MIT |
291 |
Requires: x11-server-common = %{version}-%{release} |
292 |
Requires: x11-data-xkbdata > 1.3-5 |
293 |
Requires: x11-font-alias |
294 |
Requires: libx11-common |
295 |
Requires: x11-driver-input-libinput |
296 |
|
297 |
# minimum libxfont needed for xserver-1.9: |
298 |
Requires: libxfont >= 1.4.2 |
299 |
|
300 |
%rename glamor |
301 |
%rename x11-driver-video-modesetting |
302 |
|
303 |
%description xorg |
304 |
X.org X11 is an open source implementation of the X Window System. It |
305 |
provides the basic low level functionality which full fledged |
306 |
graphical user interfaces (GUIs) such as GNOME and KDE are designed |
307 |
upon. |
308 |
|
309 |
|
310 |
%package xnest |
311 |
Summary: A nested server |
312 |
Group: System/X11 |
313 |
License: MIT |
314 |
Requires: x11-server-common = %{version}-%{release} |
315 |
|
316 |
%description xnest |
317 |
Xnest is an X server which has been implemented as an ordinary |
318 |
X application. It runs in a window just like other X applications, |
319 |
but it is an X server itself in which you can run other software. It |
320 |
is a very useful tool for developers who wish to test their |
321 |
applications without running them on their real X server. |
322 |
|
323 |
|
324 |
%package xdmx |
325 |
Summary: Distributed Multihead X Server and utilities |
326 |
Group: System/X11 |
327 |
License: MIT |
328 |
Requires: x11-server-common = %{version}-%{release} |
329 |
|
330 |
%description xdmx |
331 |
Xdmx is a proxy X server that provides multi-head support for multiple displays |
332 |
attached to different machines (each of which is running a typical X server). |
333 |
When Xinerama is used with Xdmx, the multiple displays on multiple machines |
334 |
are presented to the user as a single unified screen. A simple application |
335 |
for Xdmx would be to provide multi-head support using two desktop machines, |
336 |
each of which has a single display device attached to it. A complex |
337 |
application for Xdmx would be to unify a 4 by 4 grid of 1280x1024 displays |
338 |
(each attached to one of 16 computers) into a unified 5120x4096 display. |
339 |
|
340 |
|
341 |
%package xvfb |
342 |
Summary: A X Windows System virtual framebuffer X server |
343 |
Group: System/X11 |
344 |
# xvfb-run is GPLv2, rest is MIT |
345 |
License: MIT and GPLv2 |
346 |
Requires: x11-server-common = %{version}-%{release} |
347 |
Requires: xauth |
348 |
|
349 |
|
350 |
%description xvfb |
351 |
Xvfb (X Virtual Frame Buffer) is an X server that is able to run on |
352 |
machines with no display hardware and no physical input devices. |
353 |
Xvfb simulates a dumb framebuffer using virtual memory. Xvfb does |
354 |
not open any devices, but behaves otherwise as an X display. Xvfb |
355 |
is normally used for testing servers. |
356 |
|
357 |
|
358 |
%package xephyr |
359 |
Summary: A nested server |
360 |
Group: System/X11 |
361 |
License: MIT |
362 |
Requires: x11-server-common = %{version}-%{release} |
363 |
|
364 |
%description xephyr |
365 |
Xephyr is an X server which has been implemented as an ordinary |
366 |
X application. It runs in a window just like other X applications, |
367 |
but it is an X server itself in which you can run other software. It |
368 |
is a very useful tool for developers who wish to test their |
369 |
applications without running them on their real X server. Unlike |
370 |
Xnest, Xephyr renders to an X image rather than relaying the |
371 |
X protocol, and therefore supports the newer X extensions like |
372 |
Render and Composite. |
373 |
|
374 |
|
375 |
%package xwayland |
376 |
Summary: Wayland X Server |
377 |
Group: System/X11 |
378 |
License: MIT |
379 |
Requires: x11-server-common = %{version}-%{release} |
380 |
|
381 |
%description xwayland |
382 |
Xwayland is an X server for running X clients under Wayland. |
383 |
|
384 |
%package devel |
385 |
Summary: SDK for X server driver module development |
386 |
Group: Development/X11 |
387 |
License: MIT |
388 |
|
389 |
%define oldxorgnamedevel %mklibname xorg-x11 |
390 |
Requires: libpixman-1-devel |
391 |
Requires: libpciaccess-devel |
392 |
Requires: libxkbfile-devel |
393 |
Requires: libxext-devel >= 1.1 |
394 |
Requires: pkgconfig(xfont2) |
395 |
# pkgconfig file needs dri.pc: |
396 |
Requires: GL-devel |
397 |
|
398 |
%description devel |
399 |
The SDK package provides the developmental files which are necessary for |
400 |
developing X server driver modules, and for compiling driver modules |
401 |
outside of the standard X11 source code tree. Developers writing video |
402 |
drivers, input drivers, or other X modules should install this package. |
403 |
|
404 |
|
405 |
%package source |
406 |
Summary: Xserver source code required to build VNC server (Xvnc) |
407 |
Group: Development/X11 |
408 |
License: MIT |
409 |
BuildArch: noarch |
410 |
|
411 |
%description source |
412 |
Xserver source code needed to build VNC server (Xvnc) |
413 |
|
414 |
|
415 |
%prep |
416 |
%autosetup -N -n %{pkgname}-%{?gitdate:%{gitdate}}%{!?gitdate:%{version}} |
417 |
rm -rf .git |
418 |
cp %{SOURCE1} .gitignore |
419 |
# ick |
420 |
%global __scm git |
421 |
%{expand:%__scm_setup_git -q} |
422 |
%autopatch |
423 |
|
424 |
# check the ABI in the source against what we expect. |
425 |
getmajor() { |
426 |
grep -i ^#define.ABI.$1_VERSION hw/xfree86/common/xf86Module.h | |
427 |
tr '(),' ' ' | awk '{ print $4 }' |
428 |
} |
429 |
|
430 |
getminor() { |
431 |
grep -i ^#define.ABI.$1_VERSION hw/xfree86/common/xf86Module.h | |
432 |
tr '(),' ' ' | awk '{ print $5 }' |
433 |
} |
434 |
|
435 |
test `getmajor ansic` == %{ansic_major} |
436 |
test `getminor ansic` == %{ansic_minor} |
437 |
test `getmajor videodrv` == %{videodrv_major} |
438 |
test `getminor videodrv` == %{videodrv_minor} |
439 |
test `getmajor xinput` == %{xinput_major} |
440 |
test `getminor xinput` == %{xinput_minor} |
441 |
test `getmajor extension` == %{extension_major} |
442 |
test `getminor extension` == %{extension_minor} |
443 |
|
444 |
|
445 |
%build |
446 |
|
447 |
%ifnarch %{ix86} x86_64 |
448 |
%global no_int10 --disable-vbe --disable-int10-module |
449 |
%endif |
450 |
%global kdrive --enable-kdrive --enable-xephyr |
451 |
%global xservers --enable-xvfb --enable-xnest %{kdrive} --enable-xorg |
452 |
%global default_font_path "catalogue:/etc/X11/fontpath.d,built-ins" |
453 |
%global dri_flags --enable-dri2 --enable-dri3 --enable-suid-wrapper --enable-glamor |
454 |
%global bodhi_flags --with-vendor-name="%_vendor" |
455 |
|
456 |
%if %with debug |
457 |
CFLAGS='-DBUILDDEBUG -O0 -g3' \ |
458 |
%endif |
459 |
autoreconf -f -v --install || exit 1 |
460 |
%configure %{xservers} \ |
461 |
--with-log-dir=%{_logdir} \ |
462 |
--enable-dependency-tracking \ |
463 |
--enable-xwayland-eglstream \ |
464 |
%{?no_int10} --with-int10=x86emu \ |
465 |
--with-default-font-path=%{default_font_path} \ |
466 |
--with-module-dir=%{_libdir}/xorg/modules \ |
467 |
--with-vendor-web="https://bugs.mageia.org" \ |
468 |
%if %{with debug} |
469 |
--enable-debug \ |
470 |
%else |
471 |
--disable-debug \ |
472 |
%endif |
473 |
--with-builderstring="Build ID: %{name} %{version}-%{release}" \ |
474 |
--with-os-name="$(hostname -s) $(uname -r)" \ |
475 |
--without-dtrace \ |
476 |
--disable-xselinux --enable-record --enable-present \ |
477 |
--enable-xcsecurity \ |
478 |
--enable-config-udev \ |
479 |
--disable-strict-compilation \ |
480 |
--enable-dpms \ |
481 |
--disable-install-setuid \ |
482 |
--enable-secure-rpc \ |
483 |
--enable-pam \ |
484 |
--enable-dmx \ |
485 |
--enable-xwayland \ |
486 |
%{dri_flags} %{?bodhi_flags} \ |
487 |
--with-sha1=libcrypto \ |
488 |
|
489 |
pushd include && make xorg-server.h dix-config.h xorg-config.h && popd |
490 |
%make_build |
491 |
|
492 |
%install |
493 |
%make_install |
494 |
|
495 |
mkdir -p $RPM_BUILD_ROOT%{_libdir}/xorg/modules/{drivers,input} |
496 |
|
497 |
mkdir -p %{buildroot}%{_sysconfdir}/X11/ |
498 |
ln -s %{_bindir}/Xorg %{buildroot}%{_sysconfdir}/X11/X |
499 |
ln -sf %{_libexecdir}/Xorg.wrap %{buildroot}%{_bindir}/X |
500 |
|
501 |
mkdir -p %{buildroot}%{_sysconfdir}/pam.d |
502 |
install -m 644 %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/xserver |
503 |
mkdir -p %{buildroot}%{_sysconfdir}/security/console.apps |
504 |
touch %{buildroot}%{_sysconfdir}/security/console.apps/xserver |
505 |
|
506 |
mkdir -p $RPM_BUILD_ROOT%{_datadir}/X11/xorg.conf.d |
507 |
install -m 644 %{SOURCE4} $RPM_BUILD_ROOT%{_datadir}/X11/xorg.conf.d |
508 |
|
509 |
# make sure the (empty) /etc/X11/xorg.conf.d is there, system-setup-keyboard |
510 |
# relies on it more or less. |
511 |
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/X11/xorg.conf.d |
512 |
|
513 |
mkdir -p %{buildroot}%{_sysconfdir}/X11/app-defaults |
514 |
mkdir -p %{buildroot}%{_sysconfdir}/X11/fontpath.d |
515 |
|
516 |
# move README.compiled outside compiled/ dir, so there won't be any problem with x11-data-xkbdata |
517 |
mv -f %{buildroot}%{_datadir}/X11/xkb/compiled/README.compiled %{buildroot}%{_datadir}/X11/xkb/ |
518 |
|
519 |
# (anssi) manage proprietary drivers |
520 |
install -d -m755 %{buildroot}%{_sysconfdir}/ld.so.conf.d/GL |
521 |
cat > %{buildroot}%{_sysconfdir}/ld.so.conf.d/GL/standard.conf << EOF |
522 |
# This file is knowingly empty since the libraries are in standard search |
523 |
# path. Please do not remove this file. |
524 |
EOF |
525 |
touch %{buildroot}%{_sysconfdir}/ld.so.conf.d/GL.conf |
526 |
|
527 |
mkdir -p %{buildroot}/sbin |
528 |
mkdir -p %{buildroot}/lib/udev/rules.d/ |
529 |
install -m 0755 %{SOURCE5} %{buildroot}/sbin/mageia-setup-keyboard |
530 |
install -m 0644 %{SOURCE6} %{buildroot}/lib/udev/rules.d |
531 |
|
532 |
install -m 755 %{SOURCE30} $RPM_BUILD_ROOT%{_bindir}/xserver-sdk-abi-requires |
533 |
|
534 |
install -m 0755 %{SOURCE20} $RPM_BUILD_ROOT%{_bindir}/xvfb-run |
535 |
|
536 |
# Make the source package |
537 |
%global xserver_source_dir %{_datadir}/x11-server-source |
538 |
%global inst_srcdir %{buildroot}/%{xserver_source_dir} |
539 |
mkdir -p %{inst_srcdir}/{Xext,xkb,GL,hw/{xquartz/bundle,xfree86/common}} |
540 |
mkdir -p %{inst_srcdir}/{hw/dmx/doc,man,doc,hw/dmx/doxygen} |
541 |
cp {,%{inst_srcdir}/}hw/xquartz/bundle/cpprules.in |
542 |
cp {,%{inst_srcdir}/}man/Xserver.man |
543 |
cp {,%{inst_srcdir}/}doc/smartsched |
544 |
cp {,%{inst_srcdir}/}hw/dmx/doxygen/doxygen.conf.in |
545 |
cp {,%{inst_srcdir}/}xserver.ent.in |
546 |
cp {,%{inst_srcdir}/}hw/xfree86/Xorg.sh.in |
547 |
cp xkb/README.compiled %{inst_srcdir}/xkb |
548 |
cp hw/xfree86/xorgconf.cpp %{inst_srcdir}/hw/xfree86 |
549 |
|
550 |
install -m 0755 %{SOURCE21} $RPM_BUILD_ROOT%{_mandir}/man1/xvfb-run.1 |
551 |
install -m 0644 %{SOURCE90} $RPM_BUILD_ROOT/usr/share/X11/xorg.conf.d/ |
552 |
|
553 |
find . -type f | egrep '.*\.(c|h|am|ac|inc|m4|h.in|pc.in|man.pre|pl|txt)$' | |
554 |
xargs tar cf - | (cd %{inst_srcdir} && tar xf -) |
555 |
find %{inst_srcdir}/hw/xfree86 -name \*.c -delete |
556 |
|
557 |
# Remove unwanted files/dirs |
558 |
{ |
559 |
find $RPM_BUILD_ROOT -type f -name '*.la' | xargs rm -f -- || : |
560 |
# wtf |
561 |
%ifnarch %{ix86} x86_64 |
562 |
rm -f $RPM_BUILD_ROOT%{_libdir}/xorg/modules/lib{int10,vbe}.so |
563 |
%endif |
564 |
} |
565 |
|
566 |
%post common |
567 |
%{_sbindir}/update-alternatives \ |
568 |
--install %{_sysconfdir}/ld.so.conf.d/GL.conf gl_conf %{_sysconfdir}/ld.so.conf.d/GL/standard.conf %{priority} |
569 |
|
570 |
# (anssi) |
571 |
%triggerun common -- %{name}-common < 1.3.0.0-17 |
572 |
[ $1 -eq 2 ] || exit 0 # do not run if downgrading |
573 |
current_glconf="$(readlink -e %{_sysconfdir}/ld.so.conf.d/GL.conf)" |
574 |
if [ "${current_glconf#*mesa}" == "gl1.conf" ]; then |
575 |
# This an upgrade of a system with no proprietary drivers enabled, update |
576 |
# the link to point to the new standard.conf instead of libmesagl1.conf (2008.0 change). |
577 |
%{_sbindir}/update-alternatives --set gl_conf %{_sysconfdir}/ld.so.conf.d/GL/standard.conf |
578 |
else |
579 |
# XFdrake did not set symlink to manual mode before 2008.0, so we ensure it here. |
580 |
%{_sbindir}/update-alternatives --set gl_conf "${current_glconf}" |
581 |
fi |
582 |
true |
583 |
|
584 |
%postun common |
585 |
if [ ! -f %{_sysconfdir}/ld.so.conf.d/GL/standard.conf ]; then |
586 |
/usr/sbin/update-alternatives --remove gl_conf %{_sysconfdir}/ld.so.conf.d/GL/standard.conf |
587 |
fi |
588 |
|
589 |
%files |
590 |
|
591 |
%files common |
592 |
%dir %{_libdir}/xorg/modules |
593 |
%dir %{_sysconfdir}/X11 |
594 |
%dir %{_sysconfdir}/X11/app-defaults |
595 |
%dir %{_sysconfdir}/X11/fontpath.d |
596 |
%dir %{_sysconfdir}/ld.so.conf.d/GL |
597 |
%dir %{_sysconfdir}/X11/xorg.conf.d |
598 |
%ghost %{_sysconfdir}/ld.so.conf.d/GL.conf |
599 |
%{_sysconfdir}/ld.so.conf.d/GL/standard.conf |
600 |
%{_bindir}/gtf |
601 |
%{_bindir}/cvt |
602 |
/sbin/mageia-setup-keyboard |
603 |
/lib/udev/rules.d/61-x11-input.rules |
604 |
%{_bindir}/vdltodmx |
605 |
%{_libdir}/xorg/modules/* |
606 |
%{_libdir}/xorg/protocol.txt |
607 |
%{_datadir}/X11/xkb/README.compiled |
608 |
%{_mandir}/man1/gtf.* |
609 |
%{_mandir}/man1/cvt.* |
610 |
%{_mandir}/man1/vdltodmx.* |
611 |
%{_mandir}/man4/* |
612 |
|
613 |
%global Xorgperms %attr(4755, root, root) |
614 |
|
615 |
%files xorg |
616 |
%{_bindir}/X |
617 |
%{_bindir}/Xorg |
618 |
%{_libexecdir}/Xorg |
619 |
%{Xorgperms} %{_libexecdir}/Xorg.wrap |
620 |
%attr(4755,root,root)%{_bindir}/Xwrapper |
621 |
%{_sysconfdir}/X11/X |
622 |
%{_sysconfdir}/pam.d/xserver |
623 |
%{_sysconfdir}/security/console.apps/xserver |
624 |
%{_mandir}/man1/Xorg.1* |
625 |
%{_mandir}/man1/Xorg.wrap.1* |
626 |
%{_mandir}/man1/Xserver.1* |
627 |
%{_mandir}/man5/Xwrapper.config.5* |
628 |
%{_mandir}/man5/xorg.conf.5* |
629 |
%{_mandir}/man5/xorg.conf.d.5* |
630 |
%{_datadir}/X11/xorg.conf.d/00-modules.conf |
631 |
%{_datadir}/X11/xorg.conf.d/10-quirks.conf |
632 |
|
633 |
%files xnest |
634 |
%{_bindir}/Xnest |
635 |
%{_mandir}/man1/Xnest.1* |
636 |
|
637 |
%files xdmx |
638 |
%{_bindir}/Xdmx |
639 |
%{_bindir}/dmx* |
640 |
%{_bindir}/xdmx* |
641 |
%{_mandir}/man1/Xdmx.1* |
642 |
%{_mandir}/man1/dmxtodmx.1* |
643 |
%{_mandir}/man1/xdmxconfig.1* |
644 |
|
645 |
%files xvfb |
646 |
%{_bindir}/Xvfb |
647 |
%{_bindir}/xvfb-run |
648 |
%{_mandir}/man1/Xvfb.1* |
649 |
%{_mandir}/man1/xvfb-run.1* |
650 |
|
651 |
%files xephyr |
652 |
%{_bindir}/Xephyr |
653 |
%{_mandir}/man1/Xephyr.1* |
654 |
|
655 |
%files xwayland |
656 |
%{_bindir}/Xwayland |
657 |
|
658 |
%files devel |
659 |
%{_bindir}/xserver-sdk-abi-requires |
660 |
%{_libdir}/pkgconfig/xorg-server.pc |
661 |
%dir %{_includedir}/xorg |
662 |
%{_includedir}/xorg/*.h |
663 |
%{_datadir}/aclocal/xorg-server.m4 |
664 |
|
665 |
%files source |
666 |
%{xserver_source_dir} |