genunifont: fix ftell() error checking
[platform/upstream/kmscon.git] / NEWS
1 = KMSCON Release News =
2
3 CHANGES WITH 7:
4         * TSM, font and text subsystems have been extended to support
5           multi-width fonts (via wcwidth(3)). This allows using CJK characters
6           if your font provides the requested glyphs.
7
8         * COLORTERM is now set to "kmscon" to allow applications to detect
9           whether they run in kmscon.
10
11         * /bin/login is now called with -p by default to reset the environment.
12           This prevents kmscon from passing weird environment variables to the
13           clients but still allows to start KMSCON with a customized
14           environment.
15           The new --reset-env variable controls this behavior (default: on).
16
17         * Add kmsconvt@.service systemd template. This replaces the
18           kmscon@.service template and can now fully replace autovt@.service
19           which is provided by systemd-logind.
20
21         * The DRM3D backend now uses gbm-surfaces and now longer depends on the
22           custom EGL extensions. Everything is now handled inside of mesa so we
23           are safe if the extensions are changed in the future.
24
25         * Modularize kmscon. Most of the dependencies can now be loaded during
26           runtime and are no longer mandatory. This allows package-managers to
27           provide the kmscon binary as default package and all the backends in a
28           separate package to avoid huge dependencies.
29           Please note that this modularization still needs to be applied to
30           uterm so you shouldn't split the package yet, but instead wait for the
31           next release.
32
33         * Freetype2 backend is now deprecated. Use the built-in 8x16 backend,
34           the unifont backend or the fully-featured pango backend.
35
36         * bblit renderer is now built-in. You cannot deselect it, anymore.
37
38         * libuterm reads boot_vga values now via udev. libpciaccess is no longer
39           needed and was removed entirely.
40
41         * uterm video backends are now split into different modules. They still
42           need to be selected during compile-time, though. The next kmscon
43           release will finish this uterm split.
44           The dumb-video backend was renamed to drm2d. The drm-video backend was
45           renamed to drm3d.
46
47         * libeloop now supports ONESHOT idle sources
48
49         * Experimental cairo+pixman renderers. These should not be used in any
50           production systems! They are only provided for performance-testing and
51           to show how cairo/pixman modules can be included.
52
53         * unifont font backend is now enabled by default. The build was heavily
54           improved to avoid long compilation times.
55
56         * Symbol-versioning was added to all libraries. Library interfaces are
57           still not considered stable so don't package them separately! Feel
58           free to link them statically.
59
60         * An experimental unfinished version of the UVT library has been added.
61           Use it only for testing purposes. The next kmscon release will include
62           documentation and more.
63           UVT implements virtual terminals in user-space. It will soon replace
64           the cdev-sessions in kmscon.
65
66         * Lots of bug-fixes!
67
68 CHANGES WITH 6:
69         * Allow arbitrary paths with --vt (kmscon)
70
71         * xkbcommon is now mandatory. We need it to handle keyboard input
72           properly and since xkbcommon-0.2.0 is released, there is no reason to
73           not depend on it.
74           We also removed the plain-input backend with this change.
75
76         * Snap window to console/font-size on resize (wlterm)
77
78         * Adjust to new libwayland-1.0 (wlterm)
79
80         * Many new command-line options for wlterm including --term, --login,
81           --palette, --sb-size and many --grab-* options.
82
83         * fake-VTs no longer react on SIGUSR1/2. This was always broken and now
84           removed.
85
86         * --switchvt works again and is now enabled by default.
87
88         * --xkb-model was introduced. The other --xkb-<rmlvo> options also use
89           system-defaults instead of us-keymap as default value now.
90
91         * wlterm works properly in maximized and fullscreen mode now
92
93         * key-presses are now properly marked as "handled" so it is no longer
94           possible for two subsystems to handle the same key-press.
95
96         * wlterm can now zoom the font size with ctrl+Plus/Minus
97
98         * TSM now supports screen selections. wlterm is hooked up with this and
99           supports this, too. However, the VTE layer has not seen this yet so
100           everything is computed in the terminal for now. Next kmscon release
101           will include client-side mouse-protocol support.
102
103         * Copy/Paste now works with wlterm
104
105         * Key-repeat has been reworked and now allows adjusting repeat and delay
106           times.
107
108         * Session support allows for multiple terminals (sessions) inside of
109           each seat. You can switch between the sessions, kill them and create
110           new terminals via keyboard shortcuts. Also several other sessions than
111           terminal sessions were introduced. However, all of them are
112           experimental and shouldn't be used.
113
114         * TSM now supports alternate screen buffers. They're enabled by default.
115
116         * Configuration handling has been reworked. Multiple config-files can
117           now be parsed and each seat has its own configuration file in
118           /etc/kmscon/<seat>.seat.conf.
119
120         * The build-tools have been reworked. They should now work properly with
121           any option-combination imaginable.
122
123         * --login option can now be used in config-files.
124
125         * We print hints if keyboard-shortcut names are written with wrong
126           capitalization.
127
128         * Improve systemd integration
129
130         * CDev sessions emulate enough of the VT API to make X-Server run as
131           kmscon session. You can even run kmscon in default-mode as client in
132           another kmscon manager.
133
134         * Bold fonts are now supported.
135
136         * kmscon.1 manpage is available now.
137
138         * ... and a lot of bugfixes
139
140 CHANGES WITH 5:
141         * Idle sources are now faster registered and unregistered so they can
142           be used for any scheduling tasks
143
144         * eloop got pre- and post-dispatch hooks to integrate external
145           event-loops better
146
147         * Added pkg-config files for eloop, tsm and uterm
148
149         * Added xkbcommon-keysyms.h as fallback
150
151         * fakevt got removed. It is now integrated into kmscon core and is no
152           longer needed.
153
154         * Cleaned up unicode, console and vte layer. It is now a fully
155           independent library calles TSM.
156
157         * All helpers were prefixed with SHL_* and can be used in any project
158           inside of this repository. They are linked statically and mostly
159           inlined code.
160
161         * VTE layer now handles ALT key
162
163         * fbdev devices are automatically used if they are not run by DRM
164           drivers. Use --fbdev to force the use of fbdev devices only.
165
166         * --vt=<num> now selects the TTY to use by kmscon on seat0
167
168         * Added wlterm, a native terminal emulator for Wayland
169
170         * Lots of bugfixes! Thanks to all the bug-reporters!
171
172 CHANGES WITH 4:
173         * The "conf" subsystem was modularized so we can use it in other
174           binaries as well. It is also much easier to add new parameters now.
175
176         * Remove internal dependencies. Several subsystems will be split into
177           separate libraries (like eloop, uterm, vte+console) so we should avoid
178           any internal dependencies between these. This shouldn't affect
179           performance, though.
180
181         * New --seats argument which allows to specify what seats kmscon is
182           running on.
183
184         * The old vt.[ch] subsystem is now merged into uterm_vt.c and a fake VT
185           backend was added. This allows to activate/deactivate kmscon via
186           keyboard shortcuts. This is for debugging only, though.
187
188         * The VTE layer was extended a lot to support more advanced control
189           sequences and fix several bugs.
190
191         * --dumb now forces kmscon to use non-accelerated rendering
192
193         * The scrollback buffer now works. You can specify keyboard shortcuts
194           via --grab-* options. Default is: <Shift>Up/Down/Prior/Next
195
196         * GL_EXT_unpack_subimage is not required anymore.
197
198         * _Lots_ of speed improvements in the rendering path.
199
200         * The unifont font backend was added. This is similar to 8x16 but has a
201           lot more characters.
202
203         * ... and a lot of bugfixes
204
205 CHANGES WITH 3: (development release)
206         * VTE support has been improved greatly. vt220 should be supported fully
207           except for multi-line characters.
208
209         * glib dependency removed. Hashtables and unicode support is now
210           implemented in kmscon.
211
212         * Configfiles are now supported. /etc/kmscon.conf and ~/.kmscon.conf are
213           read by kmscon on startup. They can include the same options as the
214           command line options of kmscon. However, command-line options have
215           precedence.
216
217         * Multiple video objects are now supported per seat. That is, if you
218           have more than one graphics card per seat, all of them will be used by
219           kmscon. Multiple displays were supported from the beginning.
220
221         * Modularized input backend. The XKB backend is fully optional and can
222           be activated/deactivated during runtime. The Dumb backend has been
223           renamed to "plain".
224
225         * The eloop library is fully documented and should be API stable from
226           now on.
227
228         * The font renderer subsystem has been rewritten and replaced with a new
229           subsystem which can load different font-renderers during runtime.
230           Several backends including static 8x16 backend has been added. It is
231           possible to compile kmscon without freetype2/pango dependencies now.
232
233         * 2D blitting to framebuffers has been improved greatly. More devices
234           are supported now and blending is available, too. The 3D devices have
235           been updated to support these blitting operations via OpenGL. This may
236           be slow on older devices, though.
237
238         * New text renderer subsystem has been added. It can load multiple
239           different text-renderers during runtime. The default renderer (bblit)
240           uses 2D blitting operations to render text. However, the gltex
241           renderer is also available (optionally) which renders with OpenGL
242           textures. This can improve performance greatly on modern devices.
243
244         * Gcc optimizations are now enabled by default to improve rendering
245           performance.
246
247 CHANGES WITH 2: (development release)
248         * Build scripts were improved and simplified. They also allow much more
249           control about the build process now. The source was split into several
250           different libraries.
251
252         * Added llog.h helper for logging in libraries.
253
254         * Eloop was moved into separate library and supports more more
255           use-cases now. It can be used as a standalone project.
256
257         * Terminal emulator (vte.c) was improved a lot and can run vim now.
258
259         * Console layer was rewritten and is now much faster and much more
260           standards compliant.
261
262         * Uterm monitor was added. The monitor uses udev and systemd-logind to
263           watch the system for new seats and devices. This allows us to run on
264           multiple seats simultaneously and being hotplug-capable.
265
266         * Uterm vt layer was added. This simply wraps the older VT layer so we
267           can switch to different VT systems on-the-fly.
268
269         * New uterm video backends: The fbdev backend is now fully functional
270           kmscon can run on any fbdev device now. Furthermore, the dumb backend
271           was added which is simply an unaccelerated DRM backend that should
272           work even without EGL, GL, gbm, etc.
273
274         * New 2D rendering API. In case OpenGL is not available, we now allow
275           blitting images into the framebuffer. This is used for fbdev and dumb
276           video devices.
277
278         * Font renderer now depends on pango. This is is needed only until I get
279           the time to rewrite the freetype backend. But for now we depend on
280           pango so have full font support.
281
282         * lots of small fixes
283
284 CHANGES WITH 1: (development release)
285         * First kmscon release. For testing purposes only. Includes a rendering
286           pipeline and a very rudimentary terminal emulator.