Субота, 10 жовтня 2015
Сьогодні KDE оголошено про випуск KDE Frameworks 5.15.0.
KDE Frameworks складається з 60 додаткових бібліотек, які розширюють можливості Qt і реалізують багато широковживаних функціональних можливостей, є зрілими, належним чином рецензованими та добре перевіреними, а також надаються за дотримання розробниками достатньо дружніх щодо них умов. Вступні зауваження щодо цих бібліотек можна знайти у оголошенні щодо випуску KDE.
Цей випуск є частиною запланованої послідовності щомісячних випусків, яка надасть змогу розробникам використовувати поліпшення у бібліотеках швидко і без проблем.
Нове у поточній версії
Baloo
- Виправлено обробку обмежень та відступів у SearchStore::exec
- Виправлено повторне створення покажчика baloo
- Налаштування balooctl: додано параметри для встановлення і перегляду onlyBasicIndexing
- Портування перевірки balooctl на нову архітектуру (вада 353011)
- FileContentIndexer: виправлено подвійне поширення filePath
- UnindexedFileIterator: mtime належить до типу quint32, а не quint64
- Transaction: виправлено ще одну друкарську помилку у Dbi
- Transaction: виправлено використання помилкових каналів Dbi у documentMTime() і documentCTime().
- Transaction::checkPostingDbInTermsDb: оптимізовано код
- Виправлено попередження щодо D-Bus
- Balooctl: додано команду checkDb
- Налаштування balooctl: додано можливість фільтра виключення
- KF5Baloo: забезпечено створення інтерфейсів D-Bus до їхнього використання (вада 353308)
- Усунено використання QByteArray::fromRawData
- Вилучено baloo-monitor з baloo
- TagListJob: реалізовано надсилання повідомлення про помилку, якщо не вдалося відкрити базу даних
- Система більше не ігнорує підтерміни, якщо їх не знайдено
- Поліпшено код для помилки у Baloo::File::load(), якщо не вдається відкрити базу даних.
- Реалізовано використання у balooctl IndexerConfig замість безпосередніх дій з baloofilerc
- Поліпшено локалізацію у balooshow
- Реалізовано штатне завершення роботи balooshow, якщо не вдалося відкрити базу даних
- Реалізовано коректне завершення роботи Baloo::File::load(), якщо базу даних не відкрито (вада 353049)
- IndexerConfig: додано метод refresh()
- inotify: скасовано імітацію події closedWrite після пересування без куки
- ExtractorProcess: вилучено зайве \n наприкінці filePath
- baloo_file_extractor: реалізовано виклик QProcess::close до знищення QProcess
- baloomonitorplugin/balooctl: уможливлено локалізацію стані засобу індексування
- BalooCtl: додано параметр «config»
- Поліпшено вигляд baloosearch
- Вилучено порожні файли EventMonitor
- BalooShow: реалізовано показ докладнішої інформації, якщо ідентифікатори не збігаються
- BalooShow: реалізовано підтримку перевірки чинності ідентифікатора, якщо у виклику передається ідентифікатор
- Додано клас FileInfo
- Додано перевірку на помилки у різних даних так, щоб Baloo не завершувала роботу, якщо систему вимкнено (вада 352454)
- Виправлено ігнорування Baloo параметра налаштування «лише базове індексування»
- Монітор: реалізовано отримання часу, який залишився до завершення завдання, під час запуску
- Реалізовано використання справжніх викликів методів у MainAdaptor замість QMetaObject::invokeMethod
- Додано інтерфейс org.kde.baloo кореневого об'єкта для зворотної сумісності
- Виправлено рядок дати, показаний на панелі адреси, завдяки портуванню на QDate
- Додано затримку після кожного файла замість кожного пакета
- Вилучено залежність від Qt::Widgets у baloo_file
- Вилучено невикористаний код з baloo_file_extractor
- Додано монітор baloo або експериментальний додаток мовою qml
- Потік виконання «опитування щодо часу до завершення роботи» зроблено безпечним
- kioslaves: додано пропущене перевизначення віртуальних функцій
- Засіб видобування: встановлено applicationData після побудови програми
- Запит: реалізовано підтримку «offset»
- Balooctl: додано параметри --version і --help (вада 351645)
- Вилучено підтримку KAuth для збільшення максимальної кількості спостережень inotify, якщо ця кількість є надто малою (вада 351602)
BluezQt
- Виправлено аварійне завершення fakebluez у obexmanagertest з ASAN
- Реалізовано попереднє оголошення усіх експортованих класів у types.h
- ObexTransfer: встановлено помилку, якщо сеанс перенесення вилучено
- Utils: реалізовано утримування вказівників на екземпляри засобів керування
- ObexTransfer: встановлено помилку, якщо org.bluez.obex завершує роботу у аварійному режимі
Додаткові модулі CMake
- Реалізовано оновлення кешу піктограм GTK після встановлення піктограм
- Вилучено обхідну процедуру для затримки виконання у Android
- ECMEnableSanitizers: реалізовано підтримку невизначеного санітаризатора у gcc 4.9
- Вимкнено виявлення X11, XCB тощо у OS X
- Реалізовано пошук файлів у каталогах префікса встановлення, а не у всіх шляхах префікса
- Реалізовано використання Qt5 для визначення префікса встановлення Qt5
- Додано визначення ANDROID у qsystemdetection.h
Інтеграція бібліотек
- Виправлено неможливість показу випадкового діалогового вікна роботи з файлами (вада 350758)
KActivities
- Реалізовано використання нетипової функції встановлення відповідності замість запитів sqlite (вада 352574)
- Виправлено проблему з додаванням нового ресурсу до моделі
KCodecs
- Виправлено аварійне завершення у UnicodeGroupProber::HandleData, пов'язано із короткими рядками
KConfig
- Позначено kconfig-compiler як інструмент без графічного інтерфейсу
KCoreAddons
- KShell::splitArgs: роздільником є лише пробіл ASCII, а не пробіл unicode U+3000 (вада 345140)
- KDirWatch: виправлено аварійне завершення, якщо загальний статичний деструктор використовує KDirWatch::self() (вада 353080)
- Виправлено аварійне завершення, якщо KDirWatch використовується у Q_GLOBAL_STATIC.
- KDirWatch: виправлено безпечність потоків виконання
- Прояснено спосіб встановлення параметрів конструктора KAboutData
KCrash
- KCrash: виправлено передавання cwd до kdeinit, якщо програма автоматично перезапускається за допомогою kdeinit (вада 337760)
- Додано KCrash::initialize(), щоб програми та додатки платформи могли явним чином вмикати KCrash
- Реалізовано вимикання ASAN, якщо увімкнено
KDeclarative
- Незначні поліпшення у ColumnProxyModel
- Уможливлено визначення програмами шляху до homeDir
- EventForge пересунуто до контейнера стільниці
- Надано властивість enabled для QIconItem
KDED
- kded: спрощено логіку навколо sycoca; достатньо викликати ensureCacheValid
Підтримка KDELibs 4
- Реалізовано виклик newInstance з дочірнього процесу при першому виклику
- Використано визначення kdewin
- Вимкнено спроби пошуку X11 у WIN32
- cmake: виправлено перевірку версії taglib у FindTaglib.cmake.
KDesignerPlugin
- Qt moc не може обробляти макроси (QT_VERSION_CHECK)
KDESU
- kWarning -> qWarning
KFileMetaData
- Реалізовано usermetadata вікон
Додатки графічного інтерфейсу KDE
- Вимкнено пошук X11/XCB і у WIN32
KHTML
- std::auto_ptr замінено на std::unique_ptr
- khtml-filter: відкинуто правила, що містять спеціальні можливості блокування реклами, які ще не обробляються
- khtml-filter: перевпорядковування коду без функціональних змін
- khtml-filter: формальні вирази із параметрами ігнорується, оскільки їхню підтримку не реалізовано
- khtml-filter: виправлення виявлення роздільників параметрів блокування реклами
- khtml-filter: код очищено від зайвих пробілів наприкінці рядка
- khtml-filter: скасовано відкидання рядків, що починаються з «&», оскільки цей символ не є спеціальним символом у блокуванні реклами
KI18n
- Вилучено строгі ітератори для msvc з метою уможливнення збирання ki18n
KIO
- KFileWidget: реалізовано типове нульове значення для батьківського параметра, подібно до інших віджетів
- Забезпечено належну розмірність масиву байтів, дамп якого створюється у структурі, до обчислення targetInfo, інакше програма намагається отримати доступ до пам'яті, яка не належить програмі
- Виправлено використання Qurl, якщо викликається QFileDialog::getExistingDirectory()
- Реалізовано оновлення списку пристроїв Solid до надсилання запитів до kio_trash
- Уможливлено виклик у рядку адреси для listDir, окрім trash:/ (виклики listRoot) (вада 353181)
- KProtocolManager: виправлено жорстке блокування при використанні EnvVarProxy. (bug 350890)
- Вимкнено спроби пошуку X11 у WIN32
- KBuildSycocaProgressDialog: використано вбудований індикатор зайнятості Qt (вада 158672)
- KBuildSycocaProgressDialog: реалізовано запуск kbuildsycoca5 за допомогою QProcess
- KPropertiesDialog: виправлено роботу у ситуації, коли ~/.local є символічним посиланням, порівнюємо канонічні шляхи
- Додано підтримку спільних ресурсів мережі у kio_trash (вада 177023)
- Реалізовано встановлення з'єднання з сигналами QDialogButtonBox, а не QDialog (вада 352770)
- KCM для кук: реалізовано оновлення назв D-Bus для kded5
- Реалізовано використання файлів JSON безпосередньо, замість kcoreaddons_desktop_to_json()
KNotification
- Виправлено подвійне надсилання сигналу щодо оновлення сповіщення
- Реалізовано повторну обробку налаштувань сповіщень, якщо до них внесено зміни
- Вимкнено спроби пошуку X11 у WIN32
KNotifyConfig
- Змінено метод для завантаження типових значень
- Реалізовано надсилання назви програми, налаштування якої оновлення, разом із сигналом D-Bus
- Додано метод для повернення kconfigwidget до типових значень
- Скасовано кратну синхронізацію налаштувань під час збереження
KService
- Реалізовано використання найбільшого значення часової позначки серед підкаталогів як часової позначки каталогу ресурсів
- KSycoca: реалізовано збереження mtime для кожного з каталогів джерела для виявлення змін (вада 353036)
- KServiceTypeProfile: вилучено непотрібне створення factory (вада 353360)
- Спрощено і пришвидшено KServiceTest::initTestCase
- Назву файла для встановлення applications.menu зроблено кешованою змінною cmake
- KSycoca: ensureCacheValid() тепер створює базу даних, якщо її не існує
- KSycoca: уможливлено роботу загальної бази даних після виконання коду перевірки найсвіжіших часових позначок
- KSycoca: змінено назву файла бази даних так, щоб вона включала дані щодо мови і sha1 каталогів, на основі яких її побудовано
- KSycoca: ensureCacheValid() зроблено частиною відкритого програмного інтерфейсу (API)
- KSycoca: додано q-вказівник для вилучення додаткових використань одноелементника
- KSycoca: вилучено усі self() для factory, замість цього вони зберігаються у KSycoca
- KBuildSycoca: вилучено код запису файла ksycoca5stamp
- KBuildSycoca: реалізовано використання qCWarning замість fprintf(stderr, ...) або qWarning
- KSycoca: реалізовано перебудову ksycoca у процесі, замість виконання kbuildsycoca5
- KSycoca: увесь код kbuildsycoca пересунуто до бібліотеки, окрім main().
- Оптимізація KSycoca: реалізовано ведення спостереження за файлом, лише якщо програму з'єднано з databaseChanged()
- Виправлено витоки пам'яті у класі KBuildSycoca
- KSycoca: сповіщення D-Bus замінено спостереженням за файлами за допомогою KDirWatch.
- kbuildsycoca: параметр --nosignal тепер є застарілим
- KBuildSycoca: замінено засноване на D-Bus блокування файлом блокування
- Виправлено аварійне завершення у відповідь на некоректні дані додатка.
- Файли заголовків перейменовано за схемою _p.h у приготування до перенесення їх до бібліотеки kservice
- Пересунуто checkGlobalHeader() у KBuildSycoca::recreate()
- Вилучено код для параметрів --checkstamps і --nocheckfiles
KTextEditor
- Реалізовано перевірку ширшого діапазону формальних виразів
- Виправлено обробку формальних виразів у файлах HL (вада 352662)
- Синхронізовано ocaml HL із станом коду у https://code.google.com/p/vincent-hugot-projects/, перш ніж google code буде закрито. Деякі незначні виправлення вад.
- Додано розриви між словами (вада 352258)
- Реалізовано перевірку рядка до виклику підпрограми перенесення рядків (вада 339894)
- Виправлено вади підпрограми обчислення кількості слів у Kate, тепер використовується DocumentPrivate замість Document (вада 353258)
- Оновлено підсвічування синтаксису Kconfig: додано нові оператори з Linux 4.2
- Виконано синхронізацію з гілкою розробки KDE/4.14 kate
- Мінікарта: виправлено ваду, пов'язану з тим, що елемент керування смужки гортання не показується, якщо позначки гортання вимкнено (вада 352641)
- Синтаксис: додано параметр git-user для kdesrc-buildrc
Бібліотека KWallet
- Виправлено автоматичне закриття після останнього використання
KWidgetsAddons
- Виправлено код, що викликав попередження C4138 (MSVC): '*/' found outside of comment
KWindowSystem
- Виконано глибинне копіювання QByteArray get_stringlist_reply
- Уможливлено взаємодію із декількома серверами X у класах NETWM
- [xcb] mod-и у KKeyServer вважаються тепер ініціалізованими на платформах, відмінних від x11
- KKeyserver (x11) перемкнуто на категоризоване ведення журналу
KXMLGUI
- Уможливлено імпортування або експортування схем клавіатурних скорочень симетрично
NetworkManagerQt
- Виправлено інтроспекції, LastSeen мало бути у AccessPoint, а не у ActiveConnection
Бібліотеки Plasma
- Реалізовано приховування діалогового вікна підказки, якщо вказівник потрапляє до неактивної області ToolTipArea
- Реалізовано використання відповідного файла, якщо у файлі desktop вказано Icon=/foo.svgz
- У пакунках додано тип файлів «screenshot»
- У devicepixelration реалізовано використання окремої смужки гортання
- Усунено ефект наведення на апаратних платформах із сенсорним екраном
- Реалізовано використання полів svg lineedit у обчисленнях sizeHint
- Усунено згасання зображення піктограми анімації у підказках Плазми
- Виправлено текст на кнопці типових параметрів
- Контекстні меню аплетів на панелі більше не перекриваються із самими аплетами
- Спрощено отримання списку пов'язаних програм у AssociatedApplicationManager
Sonnet
- Виправлено ідентифікатор додатка hunspell для належного завантаження
- Реалізовано підтримку статичного збирання у windows, додано шлях до словників перевірки правопису hunspell для libreoffice у windows
- Усунено припущення щодо кодування UTF-8 в усіх словниках Hunspell (вада 353133)
- Виправлено роботу Highlighter::setCurrentLanguage(), якщо попередня мова у списку виявилася некоректною (вада 349151)
- Реалізовано підтримку розташування словників у /usr/share/hunspell
- Додаток перевірки правопису на основі NSSpellChecker
Обговорити цей випуск та поділитися ідеями можна у розділі коментарів до статті з новиною.
Встановлення бінарних пакунків
У Linux рекомендованим шляхом встановлення KDE Frameworks є пакунки вашого улюбленого дистрибутива. Настанови щодо встановлення програмного забезпечення KDE у вашому дистрибутиві Linux.
Збирання з початкових кодів
Увесь початковий код програм KDE Frameworks 5.15.0 можна отримати безкоштовно. Настанови щодо збирання та встановлення доступні на інформаційній сторінці програми KDE Frameworks 5.15.0.
Бібліотеки також можна зібрати з початкових кодів за допомогою базової системи команд cmake .; make; make install. Цей спосіб є найпростішим, якщо вам потрібні лише окремі бібліотеки шару 1. Зацікавленим в удосконаленні бібліотек та стеженні за розробкою загального набору варто скористатися скриптом kdesrc-build. Для роботи Frameworks 5.15.0 потрібна версія Qt
Із докладним списком усіх бібліотек Frameworks можна ознайомитися на api.kde.org.
Приєднатися до команди
Ті, кому цікаво стежити за розробкою Frameworks і взяти участь у його розробці, можуть ознайомитися із вмістом сховищ git і стежити за обговореннями у списку листування розробників KDE Frameworks. Правила і поточний стан проєкту і плани наведено у вікі Frameworks. Інтерактивні обговорення проводять на каналі IRC #kde-devel у Libera Chat.
Підтримка KDE
KDE — спільнота з розробки вільного програмного забезпечення, яка розвивається лише завдяки допомозі багатьох добровольців, які працюють у вільний від інших занять час. KDE завжди шукає нових учасників, які можуть допомогти розробці, виправленні і сповіщенні про вади, створенні документації, перекладі, просуванні, фінансуванні тощо. Будь-який внесок буде з вдячністю сприйнято спільнотою. Будь ласка, ознайомтеся зі сторінкою підтримки KDE, щоб дізнатися більше, або станьте спонсором KDE e.V. за допомогою нашої ініціативи Join the Game.