Skip to content

Commit c4ca352

Browse files
Merge pull request #102 from benoit-pierre/fixup_metadata
fixup metadata
2 parents 4fb4803 + 22a8e19 commit c4ca352

File tree

5 files changed

+439
-395
lines changed

5 files changed

+439
-395
lines changed

CHANGELOG.md

Lines changed: 389 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,389 @@
1+
NEWS for Python X Library
2+
3+
Version 0.21
4+
============
5+
6+
Bug Fixes
7+
---------
8+
9+
- fix use under Windows Subsystem for Linux: when DISPLAY does not
10+
specify a protocol, and the implicit Unix socket connection fails,
11+
fallback to TCP (mimicking XCB's behavior).
12+
13+
Misc
14+
----
15+
16+
- don't bundle a copy of texi2html to build the HTML documentation,
17+
but use the currently installed version instead.
18+
19+
---
20+
Version 0.20
21+
============
22+
23+
Bug Fixes
24+
---------
25+
26+
- fix unclosed file in Xauth implementation
27+
- fix support for `Window.set_wm_transient_for`
28+
- fix support for `Drawable.put_image` / `Drawable.get_image`
29+
- use ASCII for decoding strings in Python 3 (same as Python 2)
30+
- fix Python 3 warnings about `array.tostring()` (deprecated)
31+
32+
Misc
33+
----
34+
35+
Improve response processing performance: reduce the number of
36+
`socket.recv` calls needed to receive a full response.
37+
38+
---
39+
Version 0.19
40+
============
41+
42+
Bug Fixes
43+
---------
44+
45+
- don't throw an exception if `$XAUTHFILE` / `~/.Xauthority` is missing
46+
- fix authentication work-around for SSH forwarding under Python 3
47+
- improve `$DISPLAY` handling: support optional protocol prefix, and
48+
correctly handle `unix:0.0` as `:0.0`
49+
50+
---
51+
Version 0.18
52+
============
53+
54+
Bug Fixes
55+
---------
56+
57+
- fix Python 3 buffer abstraction
58+
- fix interrupted select handling for Python 3.3/3.4
59+
- fix Unix socket support when only an abstract address is available
60+
61+
---
62+
Version 0.17
63+
============
64+
65+
Bug Fixes
66+
---------
67+
68+
- fix Xauth handling when using Python 2 and DISPLAY contains a remote IP
69+
- fix String16 request field handling when using Python 3
70+
- fix RECORD extension and example when using Python 3
71+
- fix handling of properties: use byte strings for all X11 8-bits
72+
strings, as not all of them are text properties (the window
73+
getters/setters for `wm_name`, `wm_icon_name`, `wm_class`, and
74+
`wm_client_machine` still return/expect Unicode strings)
75+
76+
API Changes
77+
-----------
78+
79+
Core:
80+
81+
- new window getter/setter for text properties: `get_full_text_property`
82+
and `change_text_property`; with automatic conversion to/from Unicode
83+
when the property type encoding is supported (`STRING` and
84+
`UTF8_STRING`)
85+
86+
Composite extension:
87+
88+
- support for `GetOverlayWindow` request
89+
90+
---
91+
Version 0.16
92+
============
93+
94+
Licensing
95+
---------
96+
97+
The project is now licensed under the GNU Lesser General Public License
98+
v2.1 or later (see the LICENSE file for details).
99+
100+
Compatibility
101+
-------------
102+
103+
Support for Python versions older than 2.7 has been dropped. Support for
104+
Python 3 (3.3, 3.4 and 3.5) has been added. Note that Python-Xlib now
105+
depends on the six package (>=1.10) for combined Python 2 / 3 support.
106+
107+
API Changes
108+
-----------
109+
110+
With the change of license, and no way to contact the original author of
111+
the SHAPE extension, the code had to be rewritten from scratch. This
112+
resulted in a few minor API changes (see [examples/shapewin.py](examples/shapewin.py)).
113+
114+
Partial support for the SECURITY. XInput, and XFIXES extensions has been
115+
added.
116+
117+
Bug Fixes
118+
---------
119+
120+
- fix RECORD extension
121+
- fixed OS X socket path
122+
- fix handling of generic events
123+
- fix handling of KeymapNotify events
124+
- several fixes for the RandR extension
125+
126+
---
127+
Version 0.15rc1 - 14 Nov 2009
128+
=============================
129+
130+
Improved support for newer versions of Mac OS X, a couple of new
131+
extensions, and several bugfixes.
132+
133+
Composite extension
134+
-------------------
135+
136+
Support for the composite extension, used to implement a composition
137+
manager (added for plcm work in plwm).
138+
139+
By itself this extension is not very useful, it is intended to be used
140+
together with the DAMAGE and XFIXES extensions. Typically you would also
141+
need RENDER or glX or some similar method of creating fancy graphics.
142+
143+
XF86 special function keysyms
144+
-----------------------------
145+
146+
Keysym definitions for special function keys found on modern keyboards,
147+
e.g. raise and lower volume, start specific applications, etc. Have a
148+
look in [Xlib/keysymdef/xf86.py](Xlib/keysymdef/xf86.py) to see what
149+
there are and experiment with xev to see what your keyboard generates.
150+
These definitions aren't brought in by default, so you must do this
151+
after importing `Xlib.XK`:
152+
153+
```python
154+
Xlib.XK.load_keysym_group('xf86')
155+
```
156+
157+
RANDR extension
158+
---------------
159+
160+
The RANDR extension complements XINERAMA as a way of getting data about
161+
the physical screens making up a virtual screen in X. An example of
162+
usage can be found in [examples/xrandr.py](examples/xrandr.py).
163+
164+
---
165+
Version 0.14 - 1 Oct 2007 (trialed as 0.14rc1 on 10 Jun 2007)
166+
=============================================================
167+
168+
A couple of new extensions, a Python 2.5 fix and a couple of aliases
169+
(`Display.get_atom()` now uses the internal cache and added
170+
`Window.raise_window()`). Tabs converted to spaces (SF id: 1559082).
171+
172+
RECORD extension (SF id: 1538663)
173+
---------------------------------
174+
175+
Alex Badea contributed a RECORD extension module, allowing Python Xlib
176+
programs to capture mouse and keyboard events (or all other core or
177+
extension events) easily. A demo is in the examples directory. See
178+
<http://refspecs.freestandards.org/X11/recordlib.pdf> for more
179+
information.
180+
181+
XINERAMA extension
182+
------------------
183+
184+
Mike Meyer contributed a Xinerama extension module, allowing Python Xlib
185+
programs to interrogate the X server about positions and sizes of
186+
multiple screens. Specifications are a bit tricky to find -
187+
<http://sourceforge.net/projects/xinerama/> has some older specs and the
188+
source code of the xorg project (libs & server code) has "definitive"
189+
information.
190+
191+
Python 2.5 fix (SF id: 1623900)
192+
-------------------------------
193+
194+
Bugfix to correct handling of XAuthority file parsing under Python 2.5
195+
causing failed authentication.
196+
197+
---
198+
Version 0.13 - 6 Aug 2006 (trialed as 0.13pre1 on 22 Jul 2006)
199+
==============================================================
200+
201+
A small release to incorporate a number of minor corrections and bug
202+
fixes, including small changes to keysym handling, `.Xauthority`
203+
parsing, several fixes to sending/receiving/flushing data, addition of
204+
`WithdrawnState` to `WMHints`. petli completed documentation for
205+
`Display` objects.
206+
207+
---
208+
Version 0.12 - 29 Mar 2002
209+
==========================
210+
211+
SHAPE extension
212+
---------------
213+
214+
Jeffrey Boser contributed a SHAPE extension module, allowing Python Xlib
215+
programs to use shaped windows. Take a look at examples/shapewin.py for
216+
ideas on how to use it. For more information on shaped windows, see
217+
<http://ftp.x.org/pub/R6.6/xc/doc/hardcopy/Xext/shape.PS.gz>
218+
219+
Python 2.2 fix
220+
--------------
221+
222+
In Python 2.2 `FCNTL.FD_CLOEXEC` has disappeared and `FCNTL` on the whole
223+
is deprecated, so that had to be dealt with to make the Xlib work with
224+
that version.
225+
226+
---
227+
Version 0.11 - 23 Feb 2002
228+
==========================
229+
230+
Regression tests for the protocol definition
231+
--------------------------------------------
232+
233+
Regressions tests have been created for all requests, replies and
234+
events. The tests use PyUnit, and the old resource database test has
235+
been updated to use it too.
236+
237+
A lot of protocol bugfixes
238+
--------------------------
239+
240+
The bugs discovered by the regression tests have been fixed.
241+
Additionally, a subtle bug in the core engine which could cause a
242+
"can't happen"-error has also been found and fixed.
243+
244+
---
245+
Version 0.10 - 16 Dec 2001
246+
==========================
247+
248+
Event bugfix
249+
------------
250+
251+
The xlib failed to parse the type code of events sent from other clients
252+
using `SendEvent`. This has been fixed, adding the field `send_event' to
253+
all event objects.
254+
255+
Event documentation
256+
-------------------
257+
258+
The section "Event Types" in the manual has been written, detailing
259+
all event types in the core protocol. The manual is now ten pages
260+
thicker.
261+
262+
Basic support for GetImage/PutImage
263+
-----------------------------------
264+
265+
The Drawable methods `put_image()` and `get_image()` have been
266+
implemented, but handling image data is still up to the user. There is
267+
however, thanks to Ilpo Nyyssönen, a trivial method `put_pil_image()`
268+
that will work on some combinations of image and drawable depth. It's
269+
not perfect, but it's a start.
270+
271+
---
272+
Version 0.9 - 4 Dec 2001
273+
========================
274+
275+
Documentation improved
276+
----------------------
277+
278+
The documentation has been augmented with a chapter about event
279+
handling, and a chapter listing all X objects and their methods provided
280+
by the library. They are not described in any detail, though.
281+
282+
Keysym handling improved
283+
------------------------
284+
285+
The module `Xlib.XK`, which listed all keysyms, have been split up into
286+
several sub-modules providing different sets of keysyms. By importing
287+
`Xlib.XK` only the miscellany and latin1 sets are loaded, thus removing
288+
some unnecessary clutter.
289+
290+
`Xlib.display.Display` has two new methods (`lookup_string()` and
291+
`rebind_string()`) for translating keysyms into characters.
292+
293+
Small changes to library interface
294+
----------------------------------
295+
296+
The order of the `Xlib.display.Display` method `send_event()` parameters
297+
`event_mask` and propagate has changed.
298+
299+
Some of the class names in `Xlib.protocol.event` have changed, to have
300+
the same name as the corresponding event type constant.
301+
302+
A few bugfixes
303+
--------------
304+
305+
If a display has more than one screen, the default screen was always set
306+
to the highest numbered one, irrespective of what the user specified in
307+
`$DISPLAY`.
308+
309+
Some response attributes in `Xlib.protocol.request` accidentally included
310+
a comma.
311+
312+
---
313+
Version 0.8 - 12 Jan 2001
314+
=========================
315+
316+
Uses distutils
317+
--------------
318+
319+
Python Xlib now uses distutils to make installation and distribution
320+
building easier.
321+
322+
Tested with Python 2.0
323+
----------------------
324+
325+
A few incompatibilities with Python 2.0 has been fixed.
326+
327+
---
328+
Version 0.7 - 8 Jan 2001
329+
========================
330+
331+
Fixed the 64-bit platform fix.
332+
------------------------------
333+
334+
As it turns out, the attempted fix for 64-bit platforms in v0.6 didn't
335+
really work. Close study of structmodules.c gave the answer why, and now
336+
it really should work. Yeah.
337+
338+
Optimizations of core protocol engine
339+
-------------------------------------
340+
341+
Python Xlib is now at least 25% faster after the core of the protocol
342+
engine has been rewritten. This is some quite cute code: tailor-made
343+
methods are generated for all structures, resulting in a 650% speed-up
344+
in generating binary data, and a 75% speed-up in parsing binary data.
345+
346+
Interested Python hackers are recommended to take a look at the Struct
347+
class in `Xlib/protocol/rq.py`.
348+
349+
---
350+
Version 0.6 - 29 Dec 2000
351+
=========================
352+
353+
Fix to make python-xlib work on 64-bytes architectures.
354+
-------------------------------------------------------
355+
356+
The struct and array modules uses `sizeof(long)` to determine the number
357+
of bytes used when representing the type code 'l'. On Intel and VAX,
358+
this is 32 bits as expected. On Alpha, it's 64 bits. python-xlib now
359+
probes how large each type code is to avoid this problem.
360+
361+
---
362+
Version 0.5 - 28 Dec 2000
363+
=========================
364+
365+
- Functions implemented to get and set all ICCCM WM properties on Window
366+
objects.
367+
368+
- Keymap cache implemented, with external `Xlib.display.Display` methods
369+
`keycode_to_keysym`, `keysym_to_keycode`, `keysym_to_keycodes` and
370+
`refresh_keyboard_mapping`.
371+
372+
- Two utils for debugging X traffic implemented. `utils/tcpbug.py`
373+
forwards a TCP connection and outputs the communication between the
374+
client and the server. This output can then be fed into
375+
`utils/parsexbug.py`, which will output all requests, responses,
376+
errors and events in a readable format.
377+
378+
---
379+
Version 0.4 - 4 Oct 2000
380+
========================
381+
382+
- Thread support completed, but not really stress-tested yet.
383+
384+
- A framework for handling different platforms has been implemented,
385+
together with generic Unix code and some simple VMS code.
386+
387+
- Some documentation has been written.
388+
389+
- The usual bunch of bugfixes.

0 commit comments

Comments
 (0)