OSDN Git Service

fix QTBUG-63108
[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   - zlib, zstd, OpenSSL, PCRE, Freetype, ICU, X11, libpng and SQLite are
16     required for building
17   - OpenSSL, D-Bus, CUPS and resolv 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   - updated bundled FFTW from upstream
22   - versioned and extended classes have been merged into the base class,
23     e.g. QIconEngineV2 into QIconEngine and QKeyEventEx into QKeyEvent
24   - QGuiPlatformPlugin class is public
25   - updated localizations data from Common Locale Data Repository v38
26   - SQLite driver uses UTF-8 encoding instead of UTF-16
27   - default text codec for C-strings is UTF-8
28   - OpenVG is no longer supported graphics output
29   - Blitter is no longer supported painting engine
30   - native graphics system is no more, rasterizer is just as fast as native
31   - QPicture, QPictureIO and plugins for it are no longer supported
32   - QML debugger and inspector have been removed, potentially dangerous
33   - no SIMD, zero performance impact with decent compiler
34   - state machine is no more
35   - removed non-open source DB2, OCI, TDS and InterBase database drivers
36   - removed 3rd party sources that are very common nowdays
37   - dropped non-open source and discontinued platforms support
38   - dropped dnotify filesystem watcher support
39   - dropped Glib2 event dispatcher support
40   - dropped support for a.out format
41   - dropped Motif Drag-And-Drop (DND) support
42   - dropped LPR support
43   - dropped static plugins support
44   - dropped MNG image format support
45   - dropped obscure (24-bit) image formats support
46   - dropped Valgrind support
47
48  - some additions have been made: 
49   - JSON classes and types
50   - standard directories handler
51   - building with OpenSSL v1.1+ is possible
52   - building with IODBC instead of unixODBC is possible
53   - building with LTO is possible and supported, if the toolchain can handle it
54   - building without resolv is possible
55   - alternative libc implementations support
56   - additional text codecs via ICU converter
57   - Unicode v5.0+ characters and partial scripts support
58   - support for AArch64 architecture
59   - support for PostgreSQL v9.1+
60   - support for locale aliases
61   - support for generating SHA-224, SHA-256, SHA-384, SHA-512 hash sums (SHA-2)
62   - support for generating CRC-32 checksums via qChecksum32() function
63   - verification section for plugins build with Clang
64   - faster alternatives to qCompress() and qUncompress()
65   - stack backtrace on assert or crash via execinfo
66   - brief manual pages for all command-line tools
67   - desktop files, Shell profile and dynamic linker/loader config
68   - automatic async D-Bus calls based on return type, no Q_NOREPLY needed
69   - more reliable qrand(), seeded per thread
70   - improved signal/slot template arguments handling
71   - improved OpenSSL default certificate and certificates directory detection
72   - improved namespaces support and introduced QT_NAMESPACE_COMPAT
73   - improved cross-compilation support
74   - improved POSIX, XSI, SUSv2, etc. requirements build checks
75   - improved Large File Support (LFS) requirements checks
76   - script component relies on PCRE instead of internal copy
77   - tests and benchmarks can be run without prior installation
78
79 Bugs fixed in Katie, some of which in Qt5 too:
80 QTBUG-23502, QTBUG-37115, QTBUG-15052, QTBUG-23522, QTBUG-6139, QTBUG-26889,
81 QTBUG-21548, QTBUG-6133, QTBUG-18188, QTBUG-36767, QTBUG-35387, QTBUG-37035,
82 QTBUG-28321, QTBUG-21993, QTBUG-26590, QTBUG-2124, QTBUG-20482, QTBUG-41361,
83 QTBUG-40153, QTBUG-35479, QTBUG-1628, QTBUG-42989, QTBUG-34861, QTBUG-46767,
84 QTBUG-25114, QTBUG-24672, QTBUG-23524 (WIP), QTBUG-56088, QTBUG-42189,
85 QTBUG-39285, QTBUG-18173, QTBUG-28968, QTBUG-34336, QTBUG-40974, QTBUG-44286,
86 QTBUG-12564, QTBUG-20028, QTBUG-71967, QTBUG-70956, QTBUG-71446, QTBUG-61307,
87 QTBUG-27287, QTBUG-25143, QTBUG-22833, QTBUG-57399, QTBUG-59159, QTBUG-15773,
88 QTBUG-70506, QTBUG-46054, QTBUG-11223, QTBUG-63108
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 behaviour.
96
97 Should you enouncter 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.