Release Notes for XFree86® 4.5.0
: Summary of new features in 4.5.0.
Previous: Configuration: a Quick Synopsis
3. Summary of new features in 4.5.0.
This is a sampling of the new features in XFree86 4.5.0. A more
complete list of changes can be found in the CHANGELOG that is part of
the XFree86 source tree. It can also be viewed online at our CVSweb server.
3.1. Security Updates
The following security issues have been fixed in this release:
- xdm would listen on a random socket when the
DisplayManager.requestPort resource was set to
- Integer overflow in libICE/libSM.
- libXpm stack and integer overflow and other issues (CAN-2004-0687, CAN-2004-0688, CAN-2004-0914, CAN-2005-0605).
- Potential security issues related to wrap-around of memory allocation
requests in font handling and other areas.
3.2. Video Driver Enhancements
- In most drivers, fix a long-standing off-by-one error in the programming
of sync pulse start and end for video modes based on VGA or its extensions.
- Fix various bugs in the Mach64-based panel support.
- Re-instate atimisc's support for DGA on UltraSPARC platforms.
- Fix the stretching option and centering.
- Add support for the NEC PC-9821 with CLGD755x.
- Add support for memory size tweaking in the BIOS for 845G.
- Fix Xv flickering on the 830GM and later.
- Add support for the 915G/915GM chipsets.
- Add dual-head and clone support for the 915G, 855GM, 830GM chipsets.
- Add ARGB cursor support for all chipsets. This requires an updated
agpgart kernel driver.
- Add module lid status checking.
- Fix XVideo when high resolutions are used on local flat panels.
- Add PanelID identification.
- Detect monitor changes on VT switch (830GM and up).
- Support custom video modes in the video BIOS, when available.
- Fix some Xv bugs.
- Set the default monitor parameters to match the display size for
the 830GM and up when they are not available from another source, improving
the default video mode selection in these cases.
- Make the Mystique lockup workaround more selective, avoiding different
problems on cards that do not require the workaround.
- Fix segfaults that occur when the XaaNoSolidFillRect and/or
XaaNoMono8x8PatternFillRect options are used.
- Fix for Xv resolution loss problem.
- Add i2c and Maven support, providing DDC and DPMS support for the
second head on dual-head cards.
- PCI-Xpress support added.
- Add support for newer hardware.
- Workaround for Toshiba M30 laptop issue.
- Reject modes larger than the flat panel.
- DPMS support for DVI added.
- Cursor update for NV11 so that alpha blended cursors will work
in conjunction with dithering (laptop panels).
- Improve the handling of timeouts in R128CCEWaitForIdle()
- The DAC is turned off for DPMS modes, fixing a problem that can badly
affect some monitors.
- Add an option for avoid flickering and blank screen problems with
- Fix bad free() calls in the probe function.
- Add support for interlaced video modes.
- Remove cfb support.
- Correct the depth checking (32 is not a supported depth).
- Fix DAC probing.
- Add IBM RGB525 support.
- Fix a ScreenToScreenCopy bug that shows up with xtest.
- Fix a bug that shows up when mode restoration results in a switch
between colour and mono operation.
- Fix HW cursor state on VT switching.
- Disable the RANDR extension when using rotation.
- Turn off the back light on panels when DPMS "off" mode is activated.
- Allow black as an Xv colour key.
- Fix some modes for 1400x1050 and 1600x1200 panels.
- BIOS data layout-related fixes for 661/741/760.
- Xv fixes.
- Fix LCD support for ECS A90x and ECS A907.
- Add video blitter as a second Xv adaptor for the M650/651 and later.
- Add (display?) hot plug support.
- Add preliminary support for the SiS340.
- Fix bad external symbols in this driver module.
- Fix a segfault when acceleration is disabled.
- Do not attempt to set the palette format for depths greater than 8.
This fixes a problem on some platforms.
- Fix a substantial memory leak on server regeneration.
- Fix screen blanking for non-VGA compatible modes.
- Blank the screen at startup, so that the contents of the previous
session are not initially visible.
- Restructuring and acceleration cleanups.
- Fix some DRM-related problems.
- Cleanup the DDC/EDID retrieval.
- Various register state save/restore fixes.
- Fix host-cursor mode.
- Allow any reasonable depth if 8BIT_EMULATION is set, supporting non-host
- Set the "monitor" parameters to allow the default resolution to be
a little smaller than the host resolution rather than simply 640x480.
3.3. Input Driver Enhancements
- A bug in the application of the Linux
KDKBDREP ioctl has
been fixed, preventing unnecessary use of a fallback that directly programs
the keyboard hardware and produces warning message with recent Linux kernels.
- Differentiate between Alt+Ctrl+SPECIAL and Alt+Ctrl+Shift+SPECIAL
- Avoid various keycode conversions on NEC PC-98 platforms.
- Fix off-by-one problem for keys on FreeBSD/sparc64.
- Add a serial PNP entry for the Genius NetScroll+ mouse.
- Fix a problem with the wsmouse driver losing events on 64-bit
- Add/improve protocol and device auto-detection for FreeBSD, Linux,
NetBSD, OpenBSD, and SunOS/Solaris, eliminating the need to provide any
of this information in the config file in the majority of situations.
- Increase the maximum number of buttons supported from 12 to 24.
- Fix a multiple-free bug, that could lead to a crash.
- Fix problems where the driver gets out of sync under heavy loads.
- Add an
"AllowNoCntl" option, which allows the driver to be
used with some other protocols, like the SmartSet 2500s, which share the
same default protocol.
- Fix a problem with the cursor not correctly following the touch
in a dual-head configuration. This fix has also been applied to other
relevant input drivers.
- A new driver for ELO Graphics 2500U USB touch screens.
- Add support for the passive pen of the Stylistic 2400.
- Fix some driver bugs.
3.4. XKB updates
- Update the Hindi/Devanagari map.
- Add Sorbian map.
- Add German Dvorak map.
- Fix wrong brokenbar keysym in the de_CH map.
- Rename the microsoftprose keyboard model to microsoftprousb because it
is not Swedish-specific but a common USB variant.
- Add nodeadkeys variant to the gb map.
- Replace the comma keysym on the KPDL key in the Brazilian map with
- Add multi-layout compatible Hungarian, Azerbaijani, Canadian,
Mongolian, and Vietnamese maps.
- Update Serbian map with new variant.
- Add Genius KB-12e model to the inet map.
- Update ABNT2 geometry (including two variants) and change the
Brazilian map to avoid ABNT2 specific keycodes section.
- Add Classical Latin map.
- Replace the Latvian map with a new one.
- Fix some errors in the Dzongka/Tibetan map.
- Add ur_PK (Urdu) map.
- Fixes for the Bengali map.
- Add Sinhala (Sri Lanka) map.
- Add missing keycode to the "xfree86" keycodes files.
- Update the mapping for the Microsoft Natural Multimedia keyboard.
- Fixes for the Croatian map.
- Add a Polish variant to the French keyboard layout.
- Add a standard Kyrgyz map.
3.5. X Server and Extension Updates
- Mesa as used in the XFree86
"GLcore" module for indirect
GLX rendering has been updated to version 6.2.1.
- Fixed bugs in the Screen Saver extension that could cause an X server
- Fixed a bug in the X-Resource extension that could cause an X
server crash when the client host and server host have different
- Added support to the Xvfb server for specifying the screen origins
when Xinerama is enabled.
- Ensure that the Xvfb's root window depth and visuals are set
- Work around bug in Mac OS X 10.1's AppKit that causes rootless
XDarwin to lock up when creating windows
- Fix XDarwin's launch of X clients by double clicking in the Finder when
there is a space in the path.
- Allow XDarwin to interpret scroll wheel mouse events correctly when
the shift key is held down.
- Add initial XInput support for XDarwin.
- Add an option for XDarwin to always use Mac command key equivalents.
- Make XDarwin not default to StaticColor on ix86.
- Fix a bug that caused restacks to be optimized away in rootless mode.
- Add support for dynamic screen configuration changes in rootless
- Fix a problem with multiple glyphs in the RENDER extension's
RenderAddGlyphs that caused malloc corruption.
- Fix a segfault when XAA's overlay acceleration is invoked with
the XaaNoSolidFillRect option.
- Fix the disabling of individual DPMS states.
- Rework the XFree86 server's SBUS code so that SBUS adapters are properly
detected on SunOS.
- Auto-detect DPMS support based on EDID data.
- Fix DPMS enable/disable logic.
- Allow multiple probe phases when using automatic configuration, which
allows the driver search to continue after failures at the PreInit stage.
- Update the static XFree86 driver list to allow automatic configuration
to work with statically linked XFree86 servers.
- Add a '-autoconfig' command line option to the XFree86 server to
enable automatic configuration even when a configuration file is present.
- Integrate the TinyX servers into the standard XFree86 build.
- Fix a problem where a big request length of zero does not generate
a BadLength error.
- Add a Distributed Multihead X server (DMX) and related extension.
- Fix a segfault in the cfb module.
- Fixes for the MIT-SHM extension's Xineramafication.
- Fix detection of phantom PCI devices.
- Fix x86emu's handling of the 0xe8 and 0xe9 opcodes.
- Modify x86emu's handling of SHLD/SHRD instructions to allow shifts
greater than 15 for 16-bit operands. This undocumented behaviour is
expected by the BIOS in an SM722 controller.
- Avoid some references to unloaded data in the XFree86 server, which
can cause crashes in some situations.
- Change the DDC/EDID root window property data from signed to unsigned.
- Fix the XFree86-Misc extension's PassMessage function.
- Fix XFree86-DGA for multi-domain architectures.
- Extend the XF86Config format and parser/config to allow multiple Monitor
sections to be referenced from a Screen section.
- Allow multiple XFree86 configuration sources to be combined, and
add a -appendauto" command line option to allow automatic configuration data
to be appended to a partial static configuration.
- Extend the XF86Config format and parser/config to allow multiple
ServerFlags, Files, and Module sections in a config file.
- Use a more complete set of the probed EDID data in determining the
default monitor parameters.
- Add a "preferred" video mode type, which can be obtained from the
probed EDID information, or from the static configuration. This allows
the native video mode to be used by default for digital panels.
- Add tentative support for newer iterations of HP's zx1 chipsets.
- Fix xf86fbman's largest linear area offscreen computation.
- Print the XFree86 server's command line in the log file.
- Update getconfig to work with older versions of Perl, and to
detect when the version of Perl is too old and when Perl is not available.
- Extend automatic configuration and getconfig to work with SBUS video
devices in SPARC platforms.
- Update the ValidMode functions in most video drivers to return
more specific status values when a mode is rejected.
3.6. Client and Library Updates
3.6.1. Xlib and related libraries
- Fix an Xlib segfault that may occur when IPv6 XDM-AUTHORIZATION-1 data is
present in the .Xauthority file.
- Add WrapHelp.c and enable XdmAuth by default.
- Fix a null dereference in libSM when given a bad previous session ID.
The changes to xterm since XFree86 4.4 are:
- Change resource settings for color4 and color12, add some discussion
- Modify the criteria for disowning primary selection. Previously,
this happened anytime the cursor was moved before the end of the
selection. That would ensure that any insert/delete of char or
line, as well as scrolling, would disown the selection. The new
criteria change this to checking if the operations would modify
the data which is highlighted.
- Change default translations so a BtnDown which is not recognized
is simply ignored rather than emitting a bell. That makes it
less obtrusive when the user tries to use a mouse which provides
more capabilities than the X mouse driver supports, e.g., one
with a horizontal scroll wheel.
- Modify to allow turning UTF-8 mode via escape sequence even if
-wc option was not given at startup.
- Add menu items and corresponding actions for switching on/off the
UTF-8 mode and Xft (TrueType) support.
- Modify FreeType support to allow resizing the font, in the same
ways the window can be resized if fixed fonts are used. The
relative font sizes are derived from the fixed font sizes.
- Implement blinking text, using the timer for blinking cursor.
- Add translation to ASCII of commonly-used characters that groff
translates to Unicode, when the font in use does not provide the
- Modify constraints in form used to layout toolbar, to work with
newer Xaw in XFree86 4.x.
- Make active-icon work properly when TrueType fonts are used, as
well as when UTF-8 mode is used.
- Improve rendering for Xft, allow it to draw non-linedrawing
characters such as "pi", which were drawn from internal tables
with patch #180.
- Modify initialization of 256- and 88-colors so that colors beyond
16 are normally not X resources. This works around a hard-coded
limit in Xt which breaks xterm when 256-colors and luit are both
configured (report by Noah Friedman).
- Fix problem responding to session management events, e.g., which
would make logging out very slow.
- Enable utmpx support for NetBSD 1.6C and newer.
- Modify Help() to make "xterm -h" write to standard output rather
than standard error.
- Improve error-reporting for root user by checking if $DISPLAY is
set rather than using the useless message from X11 library.
- Improve $WINDOWID for configuration with toolbar by making it
refer to the top-level shell rather than the parent of the
current window. For that case, the parent is a form widget,
which does not have a name, which made the $WINDOWID not very
useful as a parameter for xwininfo.
- Improve pattern used in uxterm to check for UTF-8 locale, e.g.,
- Modify uxterm script to use locale program to verify if the
derived locale is installed.
- Add case to uxterm to accommodate locales ending with "@euro",
- For Linux, if IUTF8 is defined, e.g., on recent 2.6.x kernels,
set the corresponding flag for the slave pty, to enable UTF-8
interpretation of backspace in cooked mode.
- Modify faceSize resource to use a floating-point internal value.
- Modify XTerm.ad to set saveLines default to 1024.
- Change xterm version string to use __vendorversion__ where that
is available, and "XTerm" otherwise. Rather than reporting the
version of X that was current when xterm was modified, it reports
the version against which it was built.
New resource settings
- Add scoFunctionKeys resource, to match manpage.
- Add -fd option and resource faceNameDoublesize to specify
double-wide fonts with Xft.
- Add resource showMissingGlyphs to outline places on the screen
where a font lacks the corresponding glyph.
- Add resource showBlinkAsBold to control whether blinking text
should be shown as bold or actual blinking text.
- Add utmpDisplayId resource to allow users to control whether the
display identifier (display number and screen number) are
retained in the connection information recorded in utmp.
- Add bellOnReset resource to allow users to disable bell which
sounds on hard reset since patch #183 changes to DECSCL.
New configure script options
- Add --disable-setuid option to configure script.
- Add --disable-full-tgetent option to configure script, allowing
one to ignore a termcap library in favor of ncurses/curses.
Other new features
- Add mini-luit feature, which supports Latin9 directly rather than
via luit, provided that Unicode fonts are used.
- Add dynamic abbreviation support like Emacs.
- Add "erase2" and "eol2" keywords to ttyModes resource, for
Bug-fixes (see http://invisible-island.net/xterm/xterm.log.html for a
more complete list):
- Modify initialization and cleanup of utmp data to also compare
the ut_line member.
- Correct table entry for DEL in the ground state, which marked it
as a printable character from patch #171.
- Correct change from patch #157 which uses getlogin() to check for
an alias; the storage used for the related getpwuid() call was
overwritten by the data used for comparison.
- Correct case of SCS for character set 0 (line-drawing) to allow
it to be selected into GR.
- Modify creat_as() to only fork if xterm is actually running as
setuid and/or setgid. This works around a Cygwin bug which hangs
when logging is enabled and makes xterm a little faster for
systems using interfaces such as utempter.
- Modify Cleanup() to avoid operations such as X calls that might
use unsafe functions when it is called by a signal handler.
- Check for type of failure in xim_real_init() to avoid looping
when the problem is an unsupported input method rather than a
failure to connect to the XIM server. Problem was introduced in
- Add missing #undef OPT_SESSION_MGT to xtermcfg.hin to make the
configure script's --disable-session-mgt option work.
- Correct options parsing for -into option so it can be combined
- Make escape sequence reporting dynamic colors consistent with the
logic that sets it; choosing the opposite color when reverse
video is set.
- Fix a repainting bug introduced in patch #180: when using a font
lacking line-drawing characters, a repaint of the screen could
skip horizontally an extra amount after filling in the missing
- Modify terminfo to accommodate luit, which relies on G1 being
used via an ISO-2022 escape sequence. Note that this relies in
turn on bug fixes in ncurses after the 5.4 release.
- Fix a synchronization problem with luit's handling of tty settings.
- Extract information from the pty before forking rather than after,
to avoid conflicting with the child process's modifications to the line.
- Mesa and its DRI drivers have been updated to version 6.2.1, plus
some bug fixes.
- Add a 915G DRI driver.
- Fix a GLX multi-thread bug.
- Add support for XPM icons.
- Add IconMaxWidth and TitleIndent configuration parameters.
- Improve the operation of IPv6-enabled xdm when the platforms's
IPv6 support is disabled.
- Make use of Xlib's _XGetHostname rather than attempting to duplicate
- Fix sessreg for NetBSD.
- Update docs and config to handle authDir being in a non-default
- Fix log file opening with the '-user nobody' option.
3.7. I18n and Fonts
- FreeType has been updated to version 2.1.8.
- The FreeType-1.x based X-TrueType XFree86 server font backend has
been retired. The functionality it provides is now available in the
"FreeType" font backend. The old
"xtt" module is now a wrapper
that loads the
- A bug that prevented the
VeraIt.ttf font from being
installed has been fixed.
- Fix a problem that could cause apps using the zh_CN.UTF-8 locale
- Fix freetype module segfault with some Type1 fonts.
- Replace unicode keysyms in the en_US.UTF-8 Compose file with "traditional"
ones where such keysyms exist.
- Fix the ct_encoding sequence in the zh_CN.gbk locale.
- Update the 8859-7 unicode conversion data file to the current version.
- Update the gb3212.1980-0 encoding to handle fonts that do not have
a unicode table.
- Add encoding files for cns11643-1, cns11643-2, cns11643-3, and
- Add support for the si_LK.UTF-8 locale.
- Reinstate the original mkfontdir program, because its mkfontscale
equivalent does not handle creating encodings.dir files as well as is
- Fix for fstobdf generating corrupted BDF files.
- Update locale info for Kinyarwanda, the language of Rwanda.
- Add nine missing South African locales.
- Add extra fontset records into XLC_LOCALE, fixing problems with text
output by Xuft8 functions under non-Unicode locales.
- Add a Kyrgyz locale.
3.8. OS Support Updates
- Numerous fixes and enhancements for the Solaris/SPARC platform support,
including the ability to build 64-bit shared libraries.
- Support added for OpenBSD/amd64.
- Differentiate left and right modifier keys on Mac OS X 10.3.
- Fix some path-related issues on OS/2 with xman and xf86cfg.
- Update the transport layer to allow LOCAL SCO connection types to be
used for more than just X protocol connections.
- Cleanups for the SCO port.
- Fixes for FreeBSD/amd64 support.
- Add support for newer UltraSPARC variants to the SunOS/Solaris and
- Understand the PCI bus naming scheme found in Linux 2.6 kernels.
Release Notes for XFree86® 4.5.0
: Summary of new features in 4.5.0.
Previous: Configuration: a Quick Synopsis