OSDN Git Service

remove QGraphicsItem binary compat bits
[kde/Katie.git] / README
1 Katie is continuation of the Qt4 C++ toolkit with the goal to keep it alive,
2 clean it up, fix some bugs and backport some features from Qt5. It is based
3 on the latest Git revision of Qt v4.8.
4
5 There are several things you should be aware before considering Katie:
6
7  - some components and tools have been removed:
8   - QMake, Linguist, Assistant, checksdk, macdeployqt, pixeltool, qconfig,
9     qdoc, qev, qvfb, runonphone, designer and other non-essential
10   - Qt3Support, QtWebKit, QtHelp, QtXmlPatterns, QtOpenGL, ActiveQt, Phonon,
11     QtMultimedia, QtSql, QtDesigner, QtDesignerComponents and QtScriptTtools
12
13  - some things have changed:
14   - QMake build system replaced with CMake
15   - Jansson, Freetype, ICU, X11 and libpng are required for building
16   - D-Bus and CUPS must be linked to during build
17   - QtUiTools is build as shared library by default
18   - moc, uic, etc. are linked to components
19   - updated bundled Harfbuzz from upstream (not Harfbuzz-NG)
20   - versioned and extended classes have been merged into the base class,
21     e.g. QIconEngineV2 into QIconEngine and QKeyEventEx into QKeyEvent
22   - QGuiPlatformPlugin class is public
23   - updated localizations data from Common Locale Data Repository v42
24   - QTranslator uses gettext for translations
25   - OpenVG is no longer supported graphics output
26   - Blitter is no longer supported painting engine
27   - native graphics system is no more, rasterizer is faster than native
28   - QPicture, QPictureIO and plugins for it are no longer supported
29   - QML debugger and inspector have been removed, potentially dangerous
30   - no SIMD, zero performance impact with decent compiler
31   - state machine is no more
32   - removed 3rd party sources that are very common nowdays
33   - dropped non-open source and discontinued platforms support
34   - dropped dnotify filesystem watcher support
35   - dropped Glib2 event dispatcher support
36   - dropped support for a.out format
37   - dropped Motif Drag-And-Drop (DND) support
38   - dropped LPR support
39   - dropped static plugins support
40   - dropped XBM, PGM, MNG, BMP, ICO, TGA, JPEG, TIFF and GIF image format support
41   - dropped obscure (24-bit) and indexed (8-bit) image formats support
42   - dropped Valgrind support
43   - dropped recursive mutex and lock support
44   - dropped wide character and string support
45   - dropped network interfaces management support
46   - dropped no-op touch devices support
47   - dropped bitmap fonts support
48   - dropped accessibility support
49
50  - some additions have been made:
51   - custom image format
52   - custom translations format
53   - custom hash algorithm
54   - JSON document handler
55   - standard directories handler
56   - building with LTO is possible and supported, if the toolchain can handle it
57   - alternative libc implementations support
58   - additional text codecs via ICU converter
59   - Unicode v5.0+ characters and partial scripts support
60   - support for AArch64 architecture
61   - support for locale aliases
62   - support for generating SHA-256 and SHA-512 hash sums (SHA-2)
63   - qCompress() and qUncompress() use libdeflate which is much faster
64   - stack backtrace on assert, crash or warning via execinfo
65   - brief manual pages for all command-line tools
66   - desktop files, Shell profile and dynamic linker/loader config
67   - more reliable qrand(), seeded per thread
68   - improved signal/slot template arguments handling
69   - improved namespaces support and introduced QT_NAMESPACE_COMPAT
70   - improved cross-compilation support
71   - improved POSIX, XSI, SUSv2, etc. requirements build checks
72   - script component uses QRegExp instead of internal PCRE copy
73   - tests and benchmarks can be run without prior installation
74
75 Bugs fixed in Katie, some of which in Qt5 too:
76 QTBUG-23502, QTBUG-37115, QTBUG-15052, QTBUG-23522, QTBUG-6139, QTBUG-26889,
77 QTBUG-21548, QTBUG-6133, QTBUG-18188, QTBUG-36767, QTBUG-35387, QTBUG-37035,
78 QTBUG-28321, QTBUG-21993, QTBUG-26590, QTBUG-2124, QTBUG-20482, QTBUG-41361,
79 QTBUG-40153, QTBUG-35479, QTBUG-1628, QTBUG-42989, QTBUG-34861, QTBUG-46767,
80 QTBUG-25114, QTBUG-24672, QTBUG-23524 (WIP), QTBUG-56088, QTBUG-42189,
81 QTBUG-39285, QTBUG-18173, QTBUG-28968, QTBUG-34336, QTBUG-40974, QTBUG-44286,
82 QTBUG-12564, QTBUG-20028, QTBUG-71967, QTBUG-70956, QTBUG-71446, QTBUG-61307,
83 QTBUG-27287, QTBUG-25143, QTBUG-22833, QTBUG-57399, QTBUG-59159, QTBUG-15773,
84 QTBUG-70506, QTBUG-46054, QTBUG-11223, QTBUG-63108, QTBUG-6932, QTBUG-42365,
85 QTBUG-83817, QTBUG-4341, QTBUG-36933, QTBUG-49113, QTBUG-69920, QTBUG-40015,
86 QTBUG-54942, QTBUG-91261, QTBUG-73445, QTBUG-21098, QTBUG-59966, QTBUG-85520
87
88 Unless you use QMake and QDoc porting to Katie or even supporting it along with
89 Qt4 in the same codebase is trivial and requires only minor changes because
90 Katie is mostly source compatible with Qt 4.8.x, compatibility with releases
91 earlier than that is not a goal. Do note that using libraries that
92 are linked to Qt4 from applications linked to Katie will trigger undefined
93 behavior.