OSDN Git Service

README update
[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 and other non-essential
10   - Qt3Support, QtWebKit, QtHelp, QtXmlPatterns, QtOpenGL, ActiveQt, Phonon,
11     QtMultimedia and QtSql
12
13  - some things have changed:
14   - QMake build system replaced with CMake
15   - Jansson, OpenSSL, PCRE, Freetype, ICU, X11 and libpng are required for
16     building
17   - OpenSSL, D-Bus and CUPS must be linked to during build
18   - QtUiTools is build as shared library by default
19   - moc, uic, rcc, etc. are linked to components
20   - updated bundled Harfbuzz from upstream (not Harfbuzz-NG)
21   - versioned and extended classes have been merged into the base class,
22     e.g. QIconEngineV2 into QIconEngine and QKeyEventEx into QKeyEvent
23   - QGuiPlatformPlugin class is public
24   - updated localizations data from Common Locale Data Repository v40
25   - default text codec for C-strings is UTF-8
26   - QTranslator uses gettext for translations
27   - OpenVG is no longer supported graphics output
28   - Blitter is no longer supported painting engine
29   - native graphics system is no more, rasterizer is faster than native
30   - QPicture, QPictureIO and plugins for it are no longer supported
31   - QML debugger and inspector have been removed, potentially dangerous
32   - no SIMD, zero performance impact with decent compiler
33   - state machine is no more
34   - removed 3rd party sources that are very common nowdays
35   - dropped non-open source and discontinued platforms support
36   - dropped dnotify filesystem watcher support
37   - dropped Glib2 event dispatcher support
38   - dropped support for a.out format
39   - dropped Motif Drag-And-Drop (DND) support
40   - dropped LPR support
41   - dropped static plugins support
42   - dropped XBM, PGM, MNG, BMP, ICO, TGA, JPEG, TIFF and GIF image format support
43   - dropped obscure (24-bit) and indexed (8-bit) image formats support
44   - dropped Valgrind support
45   - dropped recursive mutex and lock support
46   - dropped wide character and string support
47   - dropped network interfaces management support
48   - dropped no-op touch devices support
49   - dropped bitmap fonts support
50   - dropped accessibility support
51
52  - some additions have been made: 
53   - JSON document handler
54   - standard directories handler
55   - building with OpenSSL v1.1+ is possible
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   - verification section for plugins build with Clang
64   - qCompress() and qUncompress() use libdeflate which is much faster
65   - stack backtrace on assert, crash or warning via execinfo
66   - brief manual pages for all command-line tools
67   - desktop files, Shell profile and dynamic linker/loader config
68   - more reliable qrand(), seeded per thread
69   - improved signal/slot template arguments handling
70   - improved OpenSSL default certificate and certificates directory detection
71   - improved namespaces support and introduced QT_NAMESPACE_COMPAT
72   - improved cross-compilation support
73   - improved POSIX, XSI, SUSv2, etc. requirements build checks
74   - script component relies on PCRE instead of internal copy
75   - tests and benchmarks can be run without prior installation
76
77 Bugs fixed in Katie, some of which in Qt5 too:
78 QTBUG-23502, QTBUG-37115, QTBUG-15052, QTBUG-23522, QTBUG-6139, QTBUG-26889,
79 QTBUG-21548, QTBUG-6133, QTBUG-18188, QTBUG-36767, QTBUG-35387, QTBUG-37035,
80 QTBUG-28321, QTBUG-21993, QTBUG-26590, QTBUG-2124, QTBUG-20482, QTBUG-41361,
81 QTBUG-40153, QTBUG-35479, QTBUG-1628, QTBUG-42989, QTBUG-34861, QTBUG-46767,
82 QTBUG-25114, QTBUG-24672, QTBUG-23524 (WIP), QTBUG-56088, QTBUG-42189,
83 QTBUG-39285, QTBUG-18173, QTBUG-28968, QTBUG-34336, QTBUG-40974, QTBUG-44286,
84 QTBUG-12564, QTBUG-20028, QTBUG-71967, QTBUG-70956, QTBUG-71446, QTBUG-61307,
85 QTBUG-27287, QTBUG-25143, QTBUG-22833, QTBUG-57399, QTBUG-59159, QTBUG-15773,
86 QTBUG-70506, QTBUG-46054, QTBUG-11223, QTBUG-63108, QTBUG-6932, QTBUG-42365,
87 QTBUG-83817, QTBUG-4341, QTBUG-36933, QTBUG-49113, QTBUG-69920, QTBUG-40015,
88 QTBUG-54942, QTBUG-91261, QTBUG-73445, QTBUG-21098, QTBUG-59966
89
90 Unless you use QMake and QDoc porting to Katie or even supporting it along with
91 Qt4 in the same codebase is trivial and requires only minor changes because
92 Katie is mostly source compatible with Qt 4.8.x, compatibility with releases
93 earlier than that is not a goal. Do note that using libraries that
94 are linked to Qt4 from applications linked to Katie will trigger undefined
95 behavior.
96
97 Should you encounter a problem please report it at
98 https://github.com/fluxer/katie/issues. For more information about changes,
99 how to handle them and general info please visit
100 https://github.com/fluxer/katie/wiki.