OSDN Git Service

cleanup file engine, notably the Qt resource part
[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 and
11     QtMultimedia
12
13  - some things have changed:
14   - QMake build system replaced with CMake
15   - QStyleOption*V{2,3,4} classes have been merged
16   - QIconEngineV{2} classes have been merged
17   - QIconEnginePluginV{2} classes have been merged
18   - QIconEngineFactoryInterfaceV{2} classes and interfaces have been merged
19   - QKeyEventEx and QKeyEvent classes have been merged
20   - QMouseEventEx and QMouseEvent classes have been merged
21   - QGuiPlatformPlugin class is public
22   - zlib, zstd, OpenSSL, PCRE, Freetype, ICU and X11 are required for building
23   - OpenSSL, D-Bus, CUPS, resolv and NSL cannot be runtime dependencies, they
24     must be linked to during build
25   - QtUiTools is build as shared library by default
26   - moc, uic, rcc, lrelease, lupdate, etc. are linked to components
27   - updated bundled Harfbuzz from upstream (not Harfbuzz-NG)
28   - updated bundled FFTW and Valgrind from upstream
29   - updated localizations data from Common Locale Data Repository v36
30   - SQLite driver uses UTF-8 encoding instead of UTF-16
31   - default text codec for C-strings is UTF-8
32   - Symbian, QWS, QPA, Mac and Windows are no longer supported platforms
33   - OpenVG is no longer supported graphics output
34   - Blitter is no longer supported painting engine
35   - native graphics system is no more, rasterizer is just as fast as native
36   - QPicture, QPictureIO and plugins for it are no longer supported
37   - QML debugger and inspector have been removed, potentially dangerous
38   - no SIMD, zero performance impact with decent compiler
39   - state machine is no more
40   - removed non-open source DB2, OCI, TDS and InterBase database drivers
41   - removed 3rd party sources that are very common nowdays
42   - dropped dnotify filesystem watcher support
43   - dropped Glib2 event dispatcher support
44
45  - some additions have been made: 
46   - JSON classes and types
47   - command line parser
48   - standard directories handler
49   - building with OpenSSL v1.1+ is possible
50   - building with IODBC instead of unixODBC is possible
51   - building with LTO is possible and supported, if the toolchain can handle it
52   - building without resolv is possible
53   - alternative libc implementations support
54   - additional text codecs via ICU converter
55   - Unicode v5.0+ characters and partial scripts support
56   - support for locale aliases
57   - support for generating SHA-224, SHA-256, SHA-384, SHA-512 hash sums (SHA-2)
58   - verification section for plugins build with Clang
59   - faster alternatives to qCompress() and qUncompress()
60   - stack unwinding on assert via libunwind
61   - brief manual pages for all command-line tools
62   - desktop files, Shell profile and dynamic linker/loader config
63   - automatic async DBus calls based on return type, no Q_NOREPLY needed
64   - more reliable qrand(), seeded per thread
65   - improved signal/slot template arguments handling
66   - improved OpenSSL default certificate and certificates directory detection
67   - improved namespaces support and introduced QT_NAMESPACE_COMPAT
68   - improved cross-compilation support
69   - improved POSIX requirements build checks
70   - script component relies on PCRE instead of internal copy
71   - tests and benchmarks can be run without prior installation
72
73 Bugs fixed in Katie, some of which in Qt5 too:
74 QTBUG-23502, QTBUG-37115, QTBUG-15052, QTBUG-23522, QTBUG-6139, QTBUG-26889,
75 QTBUG-21548, QTBUG-6133, QTBUG-18188, QTBUG-36767, QTBUG-35387, QTBUG-37035,
76 QTBUG-28321, QTBUG-21993, QTBUG-26590, QTBUG-2124, QTBUG-20482, QTBUG-41361,
77 QTBUG-40153, QTBUG-35479, QTBUG-1628, QTBUG-42989, QTBUG-34861, QTBUG-46767,
78 QTBUG-25114, QTBUG-24672, QTBUG-23524 (WIP), QTBUG-56088, QTBUG-42189,
79 QTBUG-39285, QTBUG-18173, QTBUG-28968, QTBUG-34336, QTBUG-40974, QTBUG-44286,
80 QTBUG-12564, QTBUG-20028, QTBUG-71967, QTBUG-70956, QTBUG-71446, QTBUG-61307,
81 QTBUG-27287, QTBUG-25143, QTBUG-22833, QTBUG-57399, QTBUG-59159, QTBUG-15773,
82 QTBUG-70506, QTBUG-46054, QTBUG-11223
83
84 Unless you use QMake and QDoc porting to Katie or even supporting it along with
85 Qt4 in the same codebase is trivial and requires only minor changes because
86 Katie is mostly source compatible with Qt 4.8.x, compatibility with releases
87 earlier than that is not a goal. Do note that using libraries that
88 are linked to Qt4 from applications linked to Katie will trigger undefined
89 behaviour.
90
91 Should you enouncter a problem please report it at
92 https://github.com/fluxer/katie/issues. For more information about changes,
93 how to handle them and general info please visit
94 https://github.com/fluxer/katie/wiki.