Критическая уязвимость в OpenSSL 1.1.0a

В изменениях, внесённых в опубликованном на прошлой неделе обновлении криптографической библиотеки OpenSSL 1.1.0a, выявлена критическая уязвимость (CVE-2016-6309), которая потенциально может привести к выполнению кода злоумышленника при обработке отправленных им пакетов. Всем пользователям ветки OpenSSL 1.1.0 рекомендуется срочно обновить OpenSSL до версии 1.1.0b. Уязвимость выявлена сотрудниками Google при проведении fuzzing-тестирования нового выпуска инструментом honggfuzz.

Проблема присутствует в выпуске OpenSSL 1.1.0a в коде устранения уязвимости CVE-2016-6307 и проявляется при получении сообщения, размером больше 16 Кб, в ситуации перераспределения и перемещения буфера, отведённого для поступающих сообщений. Суть ошибки в том, что после перераспределения памяти остаётся висячий указатель на старое положение буфера и запись поступившего сообщения производится в ранее уже освобождённую область памяти. Наиболее вероятным результатом подобной записи будет крах, но разработчики не исключают нахождение векторов атаки, при которых возможно организовать выполнение кода атакующего.

Уязвимость помечена как неисправленная в Debian, но, вероятно, по ошибке, так как в Debian не используется выпуск OpenSSL 1.1.0. В RHEL/CentOS, Fedora и SUSE проблема не проявляется. Уязвимость затрагивает Gentoo и порт OpenSSL для FreeBSD.

Интересно, что это не единственная ошибка, допущенная в прошлых выпусках. В представленном 22 сентября обновлении прошлой ветки (OpenSSL 1.0.2i) всплыла менее опасная уязвимость (CVE-2016-7052), в результате которой при попытке использования CRLs возникал крах из-за разыменования нулевого указателя. Проблема устранена в выпуске OpenSSL 1.0.2j.

Источник: [ссылка]

UnGoogled Chromium, браузер, ориентированный на приватность

В рамках проекта UnGoogled Chromium развивается вариант web-браузера Chromium, избавленный от привязок к службам Google и изменённый с целью повышения защиты частных данных, предоставления расширенных средств управления и прозрачности работы. Изменения в том числе затрагивают процесс сборки Chromium, который завязан на специфичных скриптах Google, некоторые из которых загружают и используют в процессе сборки компоненты в форме готовых исполняемых файлов, предоставляемых Google.

В UnGoogled Chromium проведено отключение или удаление всех сервисов и возможностей, взаимодействующих с Google или негативно влияющих на приватность (например, Google Host Detector, Google URL Tracker, Google Cloud Messaging, Google Hotwording). Из дерева исходных текстов вычищены все предварительно подготовленные бинарные файлы (wow_helper.exe, swapimport.exe, yasm.exe, gperf, bison) и организована их обязательная сборка из исходных текстов или задействование замены из числа штатных компонентов системы. В состав включены патчи от проектов Debian, Inox и Iridium Browser.

Другие изменения:

  • В Omnibox добавлен поисковый провайдер «No Search», отключающий отправку поисковых запросов из адресной строки.
  • Отключено автоматическое форматирование URL в адресной строке (скрытие http:// и некоторых параметров).
  • В JavaScript запрещена обработка событий onbeforeunload для блокирования вызова обработчиков при закрытии страницы;
  • В меню «More tools» добавлена настройка для очистки кэша параметров аутентификации;
  • Упоминание любых доменных имён в коде заменены на фиктивные хосты.
  • Все всплывающие окна трансформируются во вкладки;
  • Отключен детектор внутренних редиректов, генерирующий лишние запросы к DNS;
  • Расширено число схем URL для которых допускается сохранение на диск;
  • Отключена ping-проверка адресов IPv6 при определении доступности IPv6;
  • При сборке пакетов для Debian и Ubuntu добавлен отдельный пакет chrome-sandbox, использующий SUID sandbox;
  • Отключен плагин Webstore. Возможность установки дополнений сохранена, но делать это придётся в ручном режиме или при помощи специального внешнего скрипта.

Источник: [ссылка]

Тестирование Firefox 50-beta и Firefox Developer Edition 51

Firefox 50 перешёл на стадию бета-тестирования, что ознаменовало прекращение формирования базовой функциональности и сосредоточение всего внимания на выявлении ошибок и контроле качества. Одновременно сформирован выпуск Firefox Developer Edition 51, который заменил собой aurora-ветку, в рамках которой проводится оценка готовности тех или иных новшеств для последующего бета-выпуска. Загрузить бета-выпуск можно на данной странице, а Firefox Developer Edition здесь. Релиз Firefox 50 намечен на 8 ноября, а Firefox 51 на 24 января.

Улучшения, представленные в бета-версии Firefox 50:

  • Поддержка горячего отображения результатов поиска на странице. Если сейчас поиск по Ctrl+F требует перехода от элемента к элементу, то в новой реализации все совпадения сразу подсвечиваются на странице по мере набора. Для управления поведением поиска в about:config добавлены настройки findbar.modalHighlight и findbar.highlightAll;
  • В системе поиска на странице добавлен режим поиска с совпадением только слов целиком;
  • Добавлена настройка, позволяющая использовать клавиатурную комбинацию Ctrl+Tab для цикличного обхода вкладок в порядке обращения к ним;
  • В режим читателя (Reader Mode) добавлена возможность вывода на печать. Для быстрого перехода в режим читателя добавлена горячая клавиша Alt+r;
  • В браузер встроен набор пиктограмм Emoji, который не требует наличия в системе специальных шрифтов и может применяться в Linux;
  • Многопроцессный режим будет включен для систем с проверенными дополнениями, а позднее активирован для систем с любыми дополнениями;
  • В состав войдут наработки инициативы по переносу из Tor Browser некоторых возможностей, который позволяют усилить защиту персональной информации и блокировать возможности, способствующие идентификации пользователя по косвенным признакам. В частности, будут добавлены средства для блокирования перебора плагинов и mime-типов, отключения вывода данных о параметрах экрана через API screen.orientation, удаления опции «open with» из диалога загрузки файлов. Для активации предложенных ограничений следует изменить значение параметров «privacy.resistFingerprinting» и «browser.download.forbid_open_with» в about:config;
  • В список доверительных корневых сертификатов добавлен сертификат контролируемого сообществом удостоверяющего центра Let’s Encrypt;
  • Продолжено усовершенствование API WebExtensions для разработки дополнений, совместимых с браузером Chrome. Из новых программных интерфейсов отмечается расширение API для работы с историей посещений, в webNavigation API добавлен фильтр событий, реализованы полноценные средства для отладки дополнений через интерфейс about:debugging;
  • Для обеспечения совместимости с завязанными на WebKit мобильными приложениями для тега input добавлена поддержка атрибута webkitdirectory и свойства HTMLInputElement.webkitDirectory, через которые можно установить флаг, разрешающий выбирать только директории;
  • Прекращена поддержка нестандартных псевдокласса «:-moz-full-screen-ancestor» и CSS-свойства «box-sizing: padding-box». Снят префикс «-moz-» с псевдокласса «https://developer.mozilla.org/en-US/docs/Web/CSS/:any-link :any-link»;
  • Реализовано JavaScript-свойство Symbol.hasInstance, определённое в спецификации ES2015;
  • Реализован JavaScript-метод Object.getOwnPropertyDescriptors(), определённый в спецификации ES2017;
  • Добавлено расширение WebGL EXT_shader_texture_lod;
  • В консоли для web-разработчиков появилась поддержка формата Source Map, позволяющего сопоставить объединённый в один файл JavaScript-код c оригинальным файлами из которых он был сформирован. Source Map в web-консоли пока отключен по умолчанию (включается через devtools.sourcemap.locations.enabled в about:config), но при включении каждое сообщение дополнительно снабжается ссылкой на файл-источник и строку кода;
  • В web-консоли включено отображение стека трассировки сетевых запросов;
  • Включён по умолчанию инструмент инспектирования потребления памяти, позволяющий создавать слепки распределения памяти в разные моменты работы web-приложения. Инструмент удобен для поиска и исправления утечек памяти;
  • В инструмент для мониторинга сетевой активности добавлен столбец «Cause», в котором приводится информация о том, как сетевой запрос был инициирован, его типе и трассировке стека предшествующих ему операций;
  • Обновлён интерфейс для просмотра данных в формате JSON (JSON Viewer). Пустые массивы теперь показываются как «[]» вместо «[0]» по аналогии с пустыми объектами («{}»), для свойств объектов добавлно отображение разделителей столбцов;
  • В интерфейсе инспектирования хранилища (Storage Inspector) добавлена возможность удаления элементов indexedDB из контекстного меню;
  • На странице about:debugging#workers, предоставляющей средства управления зарегистрированными Service Workers, добавлено отображение подписок на push-уведомления и возможность отправки тестовых уведомлений;
  • Обновлены пиктограммы в средствах для разработчиков;

    Было:

    Стало:

  • При отладке кода WebAssembly появилась подсветка синтаксиса;
  • В выпуске для платформы Android выполнено перемещение недавно закрытых вкладок в панель работы с историей посещений и добавлена возможность отображения потокового видео в формате HLS (HTTP Live Streaming);

Улучшения, ожидаемые в Firefox 51:

  • Добавлена встроенная поддержка звукового кодека FLAC (Free Lossless Audio Codec), развиваемого сообществом Xiph.Org и обеспечивающего уровень сжатия звукового потока в 50-60% без потери качества (lossless). FLAC поддерживается в контейнерах FLAC и Ogg;
  • Изменено оформление диалога сохранения паролей, добавлен флаг для показа пароля перед его сохранением;
  • В адресной строке, рядом с URL, обеспечен показ уровня масштабирования, если он отличается от заданного по умолчанию. При клике на индикатор, масштаб сбрасывается в значение по умолчанию;
  • Сокращена нагрузка на CPU при отображении видео и улучшено качество полноэкранного вывода на системах без поддержки ускорения средствами GPU;
  • Добавлена поддержка сохранения паролей для форм без событий отправки (submit);
  • Включение по умолчанию многопроцессного режима расширено на средства для людей с ограниченными возможностями, а также на системы Windows 10 с сенсорными экранами;
  • Если не возникнет непредвиденных проблем в релизе планируется включить по умолчанию API WebExtensions, предназначенный для разработки дополнений, совместимых с браузером Chrome. Для выполнения дополнений WebExtensions используется отдельный дочерний процесс, изолирующий дополнения от остальных частей браузера. Различия между API Chrome и WebExtensions можно отследить на данной странице. Время прекращения поддержки XUL пока не определено, поэтому XUL пока будет сосуществовать с WebExtensions;
  • Реализовано JavaScript-свойство Symbol.toStringTag, определённое в спецификации ES2015;
  • Выражения const и let приведены к полному соответствию со спецификацией ES2015;
  • Прекращено урезание интенсивности генерации событий таймеров Window.setInterval() и Window.setTimeout() для вкладок, в которых задействован Web Audio API AudioContext, даже если во вкладке в данный момент не воспроизводится звук. Подобное изменение позволит решить проблемы с работающими в фоне музыкальными web-плеерами;
  • На платформах Linux и Android для отображения контента задействована графическая библиотека Skia.

Источник: [ссылка]

Увидело свет десктоп-окружение LXQt 0.11

После одиннадцати месяцев разработки состоялся релиз пользовательского окружения LXQt 0.11 (Qt Lightweight Desktop Environment), развиваемого объединённой командой разработчиков проектов LXDE и Razor-qt. Интерфейс LXQt продолжает следовать идеям классической организации рабочего стола, привнося современное оформление и приёмы, увеличивающие удобство работы. LXQt позиционируется как легковесное, модульное, быстрое и удобное продолжение развития рабочих столов Razor-qt и LXDE, вобравшее лучшие черты обеих оболочек. Код размещён на GitHub и поставляется под лицензиями GPL 2.0+ и LGPL 2.1+. Появление готовых сборок ожидается для Ubuntu, Arch Linux, Fedora, openSUSE, Mageia, FreeBSD, ROSA и ALT Linux.

Особенности нового выпуска:

  • Проведена работа по оттачиванию интерфейса пользователя, устранено значительное число ошибок и недоработок;
  • Добавлен новый файл конфигурации ~/.config/openbox/lxqt-rc.xml, в который вынесены специфичные для LXQt настройки оконного менеджера Openbox;
  • В набор конфигураторов lxqt-config включён инструмент для настройки яркости экрана;
  • Панель lxqt-panel адаптирована для использования на системах с несколькими мониторами;
  • В основное меню добавлена функция поиска;
  • Внесена большая порция улучшений в файловый менеджер PCManFM-Qt, в том числе переработано размещение пиктограмм и добавлена возможность привязки отдельных настроек ко вкладкам;
  • В состав включён pavucontrol-Qt, порт на Qt инструмента для управления громкостью и микширования звуков через PulseAudio (pavucontrol изначально написан на GTK);
  • Файлы с переводами вынесены в отдельный репозиторий lxqt-l10n, в будущем планируется развернуть инфраструктуру для унификации работы с переводами, такую как Transifex или Pootle;
  • Инструменты настройки lxqt-admin теперь не зависят от System Tools Backends / liboobs, но остаются привязаны к systemd-timedated и некоторым скриптам из пакета shadow tools. Старый код оставлен и используется в качестве запасного варианта для систем без systemd.

Кроме функциональных изменений отмечается модернизация процесса подготовки релизов, которая приведёт в будущем к более частому формированию новых выпусков. Будет введена в практику подготовка промежуточных выпусков, в которые будут включаться важные исправления, бэкпортированные из основной ветки. Значительные релизы по-прежнему будут выпускаться по мере их готовности, без перехода на фиксированный график. Архивы с файлами релизов теперь заверяются цифровой подписью.

Источник: [ссылка]

Доступен язык TypeScript 2.0, продвигаемый Microsoft в качестве дополнения к JavaScript

Компания Microsoft опубликовала релиз TypeScript 2.0, языка для разработки web-приложений, расширяющего возможности JavaScript. Код компилятора, транслирующего код TypeScript в представление JavaScript, распространяется под лицензией Apache 2.0, разработка ведётся в публичном репозитории через сервис GitHub. Спецификации языка открыты и опубликованы в рамках соглашения Open Web Foundation Specification Agreement.

TypeScript расширяет возможности JavaScript, оставаясь полностью обратно совместимым, что сводит к минимуму затраты на адаптацию существующих приложений. Основной принцип языка — весь существующий код на JavaScript совместим с TypeScript, т.е. в программах на TypeScript можно использовать стандартные JavaScript-библиотеки и ранее созданные наработки. Более того, можно оставить существующие JavaScript-проекты в неизменном виде, а данные о типизации разместить в виде аннотаций, которые можно поместить в отдельные файлы, которые не будут мешать разработке и прямому использованию проекта (например, подобный подход удобен при разработке JavaScript-библиотек). Итоговое приложение на TypeScript компилируется в обычный JavaScript, который можно выполнить в любом современном web-браузере или использовать c Node.js.

От JavaScript новый язык отличается средствами для явного определения типов, поддержкой использования полноценных классов, а также поддержкой подключения модулей. Статическая типизация позволяет избежать многих ошибок в процессе разработки, даёт возможность задействовать дополнительные техники оптимизации, упрощает отладку и делает код более читаемым и простым для доработки и поддержки сторонними разработчиками. Кроме аннотаций данные о типах могут быть определены с использованием «generic», что позволяет вводить специальные дополнительные параметры типов, которые дают возможность выявлять ошибки в реализации классов, интерфейсов и методов без дополнительных аннотаций типов (например, генерик для функции map позволяет считать, что переменные создаваемые конструкциями в которых используется map можно рассматривать как числовые).

Основные новшества TypeScript 2.0:

  • Упрощена операция установки файлов «.d.ts» с информацией о типах для существующих библиотек. Например, для установки данных о типах библиотеки lodash теперь достаточно выполнить команду «npm install -s @types/lodash» и загруженные данные о типах будут автоматически использованы при импорте библиотеки lodash в любой части приложения без необходимости применения дополнительных инструментов для управления зависимостями;
  • Возможность определения типов, не допускающих пустые (null) и неопределённые значения (undefined), а также отдельные типы Null и Undefined, которые позволяют разработчику явно контролировать ситуации в которых допустимо использование значений null и undefined. Так как изменение в обработке null/undefined нарушает обратную совместимость для включения проверки добавлен отдельный режим «—strictNullChecks»;
  • Расширение средств для оценки применимости типов на основе анализа потока выполнения программы, позволяющих, например, выявлять ситуации использования неинициализированных значений из-за несрабатывания условного оператора, которые не определяются статическим анализатором и возникают в зависимости от хода выполнения программы;
  • Добавлен модификатор «readonly», позволяющий определять свойства, доступные только для чтения.

Источник: [ссылка]

Выпуск музыкального проигрывателя Audacious 3.8

Вышел релиз легковесного музыкального проигрывателя Audacious 3.8, ответвившегося в свое время от проекта Beep Media Player (BMP), являющегося форком классического плеера XMMS. Выпуск поставляется с двумя интерфейсами пользователя: на основе GTK+ и на основе Qt. Сборки подготовлены для различных дистрибутивов Linux и для Windows.

Основные новшества Audacious 3.8:

  • Возможность одновременного запуска нескольких экземпляров Audacious. Запуск дополнительных процессов осуществляется через указание номера в командной строке, например, «audacious -2» и «audacious -3», в дальнейшем этот номер можно использовать в утилите audtool («audtool -2», «audtool -3») для отправки команд заданному процессу, т.е. каждый экземпляр может иметь собственные настройки;
  • Улучшена поддержка платформы Windows: добавлен новый инсталлятор, обеспечена поддержка экранов с высоким разрешением (HiDPI), для высококачественного вывода звука реализована поддержка waveOut API;
  • В утилиту audtool добавлены команды для управления записью и активации плагинов с эффектами и визуализацией;
  • Улучшена поддержка объединённых файлов в формате Cue, добавлен фильтр дубликатов, исправлена серия недоработок;
  • Представлен новый плагин для просмотра музыкальной коллекции на сервере потокового вещания Ampache;
  • Добавлена возможность добавления папок для открытия сетевых ресурсов с использованием различных протоколов (ftp, mtp и т.п.), поддерживаемых во фреймворке GIO;
  • В режиме записи появилась возможность применения звуковых эффектов и эквалайзера;
  • Обеспечена поддержка интерфейса drag&drop для перемещения элементов из результатов поиска в список воспроизведения;
  • В настройках появилась опция для смены формата времени (MMM:SS вместо H:MM:SS);
  • Добавлена поддержка извлечения информации об альбомах из файлов FLAC и Vorbis;
  • Добавлена поддержка протокола уведомлений о запуске от проекта freedesktop.org;
  • Новшества интерфейса на Qt:
    • Диалог настройки Scrobbler;
    • Контекстные меню в списке воспроизведения;
    • Вставка и копирование элементов списка воспроизведения через буфер обмена;
    • Команда «Open Containing Folder»;
    • Вывод уведомлений на рабочий стол;
    • Полный доступ к опциям FileWriter.

Источник: [ссылка]

Выпуск графического тулкита GTK+ 3.22

С небольшим отставанием от GNOME 3.22 официально анонсирован выпуск новой ветки многоплатформенного тулкита для создания графического интерфейса пользователя — GTK+ 3.22.0. В новой версии представлено 989 изменений, из которых 55.4% подготовлены сотрудниками компании Red Hat, 9.8% — Endless, 0.6% — Collabora, 0.4% — Canonical и 0.1% — Centricular. Выпуск 3.22 является последним наращивающим функциональность релизом в ветке GTK+ 3.x В дальнейшем новые возможности будут развиваться в экспериментальных выпусках GTK+ 3.90.x, после которых будет сформирована новая стабильная ветка GTK+ 4. Корректирующие обновления для GTK+ 3.22, в которых будет сохранена совместимость на уровне API и ABI, планируется формировать как минимум три года.

Код GTK+ развивается в рамках проекта GNU и распространяется под лицензией LGPL, что позволяет использовать GTK+ не только для разработки свободного ПО, но и для создания проприетарных приложений, не требуя от производителей закрытых программ выплаты роялти или покупки специальной лицензии. В состав тулкита входит полный набор виджетов, позволяющих использовать GTK+ для проектов различного уровня и размера, например, GTK+ лежит в основе десктоп-окружений GNOME и Xfce, и используется в таких продуктах, как GIMP, Firefox и OpenOffice/LibreOffice.

GTK+ спроектирован для поддержки не только C/C++, но и других языков программирования, таких как Perl и Python, что в сочетании с использованием визуального построителя интерфейса Glade позволяет существенно упростить разработку и сократить время написания графических интерфейсов. Организация вывода в GTK+ абстрагирована от типа оконных систем, например, поставляется бэкенд, обеспечивающий возможность работы поверх дисплейного сервера Wayland, а также бэкенд, позволяющий отрисовывать вывод библиотеки GTK+ в окне web-браузера (запустив GTK-приложение на одной машине, можно открыть web-браузер на другой машине и получить доступ к интерфейсу данной программы).

Из добавленных в GTK+ 3.22.0 улучшений можно отметить:

  • В бэкенд, обеспечивающий работу поверх дисплейного сервера Wayland, добавлена поддержка графических планшетов Wacom в качестве устройств ввода. Для работы бэкенда теперь требуется как минимум шестая версия протокола xdg-shell;
  • Добавлен API GtkPadController для обработки жестов с планшетов;
  • В GdkMonitor добавлены программные интерфейсы для получения расширенной информации о подключенных устройствах вывода, недоступной через GdkScreen;
  • В GdkGLContext добавлена поддержка OpenGL ES. GtkGLArea теперь можно использовать как на стационарных системах с OpenGL, так и на мобильных платформах c OpenGL ES;
  • В GtkScrolledWindow добавлены новые свойства max-content-width и max-contentheight для ограничения максимального размера окна;
  • Добавлен новый виджет GtkShortcutLabel для отображения отдельных горячих клавиш в стиле GtkShortcutWindow;
  • Добавлена поддержка режимов смешивания CSS, позволяющих на лету трансформировать изображения при помощи CSS;
  • Интегрирована технология порталов Flatpak, предназначенных для организации контролируемого обращения к внешним ресурсам из изолированного контейнера с подтверждением операции по аналогии с динамическими межсетевыми экранами. Порталы позволяют приложению запросить доступ к таким операциям, как открытие внешнего файла, открытие URL, вывод на печать, создание скриншота, вывод уведомления, блокировка вызова хранителя экрана, получения данных о состояния сети и информации о прокси. Диалог с запросом о предоставлении доступа выводится пользвоателю автоматически при первом обращении к ограниченному ресурсу, решение о предоставлении доступа принимается пользователем. Обработчик порталов вызывается при обращении приложения к штатным функциям GTK, например, когда программа пытается выбрать файл через GtkFileChooserNative, вывести информацию на печать через GtkPrintOperation или открыть URL через gtk_show_uri.

Источник: [ссылка]

Релиз десктоп-окружения MATE 1.16, форка GNOME 2

Официально представлен релиз десктоп-окружения MATE 1.16, в рамках которого продолжено развитие кодовой базы GNOME 2.32 с сохранением классической концепции формирования рабочего стола. Выпуск сфокусирован на улучшении совместимости с GTK3+ и перевода различных компонентов MATE на новые библиотеки. Установочные пакеты с MATE 1.16 в ближайшее время будут подготовлены для Arch Linux, Linux Mint, Debian, Ubuntu, Fedora, Mageia, Slackware и openSUSE.

Основные новшества:

  • Улучшена поддержка GTK+3 в различных компонентах пользовательского окружения;
  • Добавлена поддержка GTK+ 3.22 в приложениях и темах оформления;
  • Для приложений Engrampa (форк File-roller), MATE Notification Daemon, MATE PolKit, MATE Session Manager и MATE Terminal обеспечена сборка только с GTK3+. Поддержка GTK+2 для данных программ прекращена;
  • Ряд приложений отвязаны от библиотеки libmate-desktop: Engrampa, MATE Applets, MATE Netbook, MATE Power Manager, MATE Terminal, Pluma;
  • Началось портирование на GApplcation приложений Engrampa, MATE Applets, MATE Netbook и MATE User Share;
  • Файловый менеджер Caja переведён с MateAboutDialog() на штатный GtkAboutDialog(), в панели обеспечен постоянный показ кнопки со стрелкой вправо, задействованы классы со стилями GTK+3;
  • В mate-settings-daemon для ЖК экранов по умолчанию включено субпиксельное сглаживание (rgba), изменён стиль всплывающих подсказок, для экранного OSD-индикатора задействована CSS-тема GTK+3;
  • В свойсвах панели задействованы диалоги на основе GtkColorButton/GtkColorChooser;
  • В mate-notification-daemon добавлена поддержка уведомлений GNotification;
  • В mate-control-center прекращена совместимость с dconf 0.10, изменён стиль подсказок, задействовано сглаживание RGBA, оформления вывода списка тем унифицировано для сборок с GTK+2 и GTK+3;
  • В программе для просмотра документов Atril (форк Evince) обновлён редактор панели, в число обязательных зависимостей добавлен poppler 0.18.0, добавлена возможность настройки двустраничного отображения (чётные или нечётные страницы слева), добавлены горячие клавиши Ctrl+Up/Down для перемещения по результатам поиска, добавлена поддержка caja-sendto для отправки документа по email и переноса на внешние устройства, задействованы стили GTK+3;
  • В менеджере для работы с архивами Engrampa (форк File-roller) задействован естественный порядок сортировки файлов, в команде «Open With» задействован штатный диалог выбора команд GTK+, добавлена поддержка p7zip-rar (для rar-файлов rar оставлен приоритетным);
  • В редактор меню Mozo добавлены кнопки удаления и редактирования свойств.

Источник: [ссылка]

Состоялся релиз пользовательского окружения GNOME 3.22

После шести месяцев разработки официально доступен выпуск десктоп-окружения GNOME 3.22. По сравнению с прошлым выпуском было внесено почти 23 тысячи изменений, в реализации которых приняли участие 775 разработчиков. Из наиболее значительных изменений в новой версии можно отметить интеграцию технологии самодостаточных контейнеров приложений Flatpak, функции массового переименования и сжатия файлов в GNOME Files, возможность обмена фотографиями, новый интерфейс настройки параметров клавиатуры, расширенную поддержку Wayland и значительно улучшенный интерфейс менеджера установки приложений. Для быстрой оценки возможностей GNOME 3.22 в ближайшее время будут подготовлены специализированные Live-сборки на основе Fedora и openSUSE.

Основные новшества:

  • Интеграция технологии Flatpak, предоставляющей средства для сборки самодостаточных пакетов графических приложений, которые не привязаны к конкретным дистрибутивам Linux и выполняются в специальном контейнере, изолирующем приложение от остальной системы. В интерфейс GNOME Software встроена возможность установки репозиториев Flatpak и пакетов в формате Flatpak. Для упрощения обновления и установки приложений Flatpak обеспечено отображение детальной информации о помещённых в пакет компонентах. Для разработчиков представлены средства для использования в своих программах механизмов изоляции, применяемых во Flatpak;
  • В файловый менеджер добавлена функция пакетного переименования группы файлов, позволяющая через определение шаблона или маски замены быстро изменить имена сразу для нескольких файлов; В шаблонах в том числе можно использовать такие сторонние параметры, как время создания файла и метаданные, такие как имя альбома, номер композиции и имя музыканта;

    В файловом менеджере также появилась поддержка прямой работы со сжатыми файлами (.zip, .tar.gz). Для извлечения данных из архива теперь достаточно два раза кликнуть на имени файла без необходимости вызова внешнего приложения для работы с архивами. Кроме работы с существующими архивами возможно и создание новых архивов в различных форматах. Кроме того, в интерфейсе файлового менеджера представлены новые кнопки управления сортировкой, а также возможность в один клик переключиться между отображением списка и карты пиктограмм. Всплывающая строка состояния теперь автоматически скрывается, когда в ней нет необходимости, и отображает дополнительную информацию о соединении с сервером, в том числе поддерживаемые протоколы;

  • В просмотрщик фотографий GNOME Photos добавлены новые функции редактирования и возможность обмена фотографиями с другими людьми, которая полностью интегрирована с менеджером внешних учётных записей (Online Accounts). Например, пользователь теперь может быстро отправить фотографию в сервисы Google, если в настройках добавлена его учётная запись в Google, или отправлена на произвольный адрес электронной почты. В будущих выпусках планируется добавить отправку фотографий в популярные социальные сети;
  • Переработан интерфейс GNOME Software, на основном экране в котором теперь отображается больше доступных для установки приложений, обеспечена удобная навигация по категориям программ, более заметно выделен рейтинг приложения и явно отмечено специальным значком свободное ПО;
  • Изменено оформление интерфейса для настройки параметров клавиатуры. Упрощена навигация по списку горячих клавиш. Решены проблемы, ранее вызывавшие недовольство пользователей. Новая функция поиска позволяет быстро найти нужную горячую клавишу;
  • Переработан редактор для просмотра и изменения настроек в dconf. Новый интерфейс существенно упрощён и использует строку определения пути в dconf как основной элемент навигации. Добавлен режим отложенного изменения, позволяющий разом применить изменённые параметры в конце сеанса работы с программой. Появилась поддержка рекурсивного сброса группы настроек;
  • Продолжено оттачивание работы под управлением Wayland. Начиная с прошлого выпуска сеанс на базе Wayland признан пригодным для использования обычными пользователями. В новой версии при работе GNOME под управлением Wayland появилась поддержка графических планшетов Wacom, возможность вращения экрана и поддержка экранной клавиатуры. Исправлено множество мелких проблем и недоработок;
  • Представлена концепция GNOME Сore Apps, в рамках которой сформированы рекомендации по поставке GNOME в дистрибутивах. Приложения GNOME разделены на три категории:
    • Сore — базовые приложения, рекомендуемые для установки по умолчанию в дистрибутивах с рабочим столом GNOME. Только при поставке данных программ дистрибутивы могут заявлять о предоставлении исходного (vanilla) окружения GNOME. Среди обязательных программ отмечаются браузер Epiphany, медиаплеер Totem, текстовый редактор gedit, просмотрщик изображений Eye of GNOME, GNOME Terminal, File Roller, Boxes, Evince, Nautilus, Maps, Photos, Software и т.п.
    • Extra — расширенные программы, которые не рассчитаны на поставку по умолчанию. Пример приложений: Builder, dconf Editor, Empathy, Evolution, Glade, To Do и т.п.
    • Incubator — приложения, развиваемые для категории Сore, но пока не готовые для повсеместного использования. Данные приложения не должны включаться по умолчанию. В настоящее время в списке Dictionary, Music, Notes (Bijiben) и менеджер паролей Seahorse.

Источник: [ссылка]

Выпуск Wayland 1.12

Увидел свет стабильный релиз протокола, механизма межпроцессного взаимодействия и библиотек Wayland 1.12, а также развиваемый параллельно композитный сервер Weston 1.12. Одновременно сформированы корректирующие выпуски Wayland 1.11.1 и Weston 1.11.1, в которых проведено бэкпортирование некоторых исправлений из ветки 1.12. Ветка 1.12 обратно совместима на уровне API и ABI с выпусками 1.x, но дополнительно содержит порцию улучшений, расширяющих возможности композитного сервера Weston. Следующий выпуск 1.13 запланирован на февраль 2017 года.

В Weston развиваются технологии, содействующие появлению полноценной поддержки протокола Wayland в Enlightenment, GNOME, KDE и других пользовательских окружениях. Разработка Weston нацелена на предоставление высококачественной кодовой базы и рабочих примеров для использования Wayland в десктоп-окружениях и встраиваемых решениях, таких как платформы для автомобильных информационно-развлекательных систем, смартфонов, телевизоров и прочих потребительских устройств.

Основные новшества Weston 1.12:

  • Внутренний код Weston вынесен в обособленную библиотеку libweston, что упрощает задействование функциональности Weston в других композитных серверах. В том числе новую библиотеку теперь использует и собственный композитный сервер Weston;
  • Представлена новая библиотека libweston-desktop, в которую по аналогии с libweston вынесены дополнительные возможности, востребованные при формировании окружения рабочего стола. API библиотеки построен вокруг программного интерфейса xdg_shell и предлагает такие возможности как средства для обработки состояний окна, всплывающие окна и взаимодействие с Xwayland. Библиотеки libweston и libweston-desktop пока позиционируются как нестабильные, что подразумевает возможное изменение API в следующих выпусках;
  • Реализована поддержка 6 версии протокола xdg_shell и весь клиентский код портирован на неё;
  • Добавлен API для захвата и ограничения перемещения указателя. Используя протокол wp_pointer_constraints клиенты могут определить области окна за пределы которых не сможет выйти указатель. Области могут иметь произвольную форму, не ограничивающуюся прямоугольником;
  • Добавлен протокол wl_relative_pointer, при помощи которого клиенты могут получать сведения о движении указателя в виде смещений относительно прошлой позиции, что позволяет продолжить получать сведения о движении даже при невозможности изменения абсолютной позиции, например, при достижении края экрана;
  • Прекращена поддержка бэкенда для устройств Raspberry Pi (rpi-backend), так как код был привязан к проприетарному стеку драйверов.

Улучшения, связанные с протоколом и API Wayland 1.12:

  • Проведена работа по чистке и уточнению документации. Добавлены описания для ранее не документированных областей протокола;
  • Добавлен API wl_display_add_protocol предоставляющий средства для интерактивной отладки запросов, а также API для изучения клиентов и их ресурсов. В отличие от режима WAYLAND_DEBUG=1, новый API позволяет анализировать логи на лету, в том числе наглядно визуализируя в пользовательском интерфейсе;
  • Внесены улучшения в метод идентификации версий в заголовочных файлах при сканировании XML-спецификаций проткола, что позволило более качественно выявлять и откатываться на другую версию в случаях, когла клиенты и композитные серверы поддерживают разные версии протокола.

Статус поддержки Wayland в окружениях рабочего стола и дистрибутивах:

  • В GNOME 3.22, который ожидается сегодня вечером, проведено оттачивание поддержки Wayland, которая в прошлом выпуске была объявлена пригодной для использования обычными пользователями. В том числе при работе GNOME поверх Wayland появилась поддержка планшетов Wacom, вращения экрана и экранной клавиатуры. Полноценная поддержка Wayland появилась в WebKitGTK+ 2.14;
  • Разработчики Fedora Linux в очередной раз утвердили план по переходу Fedora 25 на использование по умолчанию окружения рабочего стола GNOME на базе Wayland. Некоторые проблемы пока остаются нерешёнными, но до релиза Fedora 25 разработчики намерены успеть их устранить;
  • Экспериментальный сеанс рабочего стола GNOME на базе Wayland поставляется в Ubuntu GNOME (следует установить пакет gnome-session-wayland и выбрать на экране входа «GNOME on wayland»);
  • Наблюдается значиетельный прогресс поддержке Wayland в KDE. Принято решение по переходу по умолчанию на использование Wayland нестабильных выпусков Live-cборок KDE Neon (unstable-ветка Developer Edition), формируемых на основе срезов из Git-репозиториев KDE. KWayland принят в состав KDE Frameworks 5 в качестве фреймворка первого уровня, т.е. является функциональным дополнением к Qt и, кроме Qt, не требует дополнительных зависимостей. В находящемся в разработке выпуске KDE Plasma 5.8 продолжается работа по достижению паритета в функциональности при работе KDE поверх X11 и Wayland. В реализации пока остаются незначительные проблемы и не вся запланированная функциональность реализована, но окружение уже пригодно для оценки и тестирования широкой аудиторией;
  • В состав Qt 4.7 добавлен модуль Qt Wayland Compositor с многопоточной системой отрисовки для встраиваемых устройств, использующая протокол Wayland. Модуль может использоваться для создания собственных композитных серверов Wayland, применяя QML или C++ API. В состав также входит базовая реализация панели запуска программ и мозаичного оконного менеджера, написанных целиком на QML. Имеется поддержка стандарта XDG-Shell и возможность работы в системах с несколькими экранами. В выпуске Qt 5.8 будет проведена стабилизация модуля Wayland Compositor, с которого будет снят флаг экспериментальной разработки;
  • В Enlightenment 0.21 существенно улучшена поддержка Wayland, в том числе обеспечено восстановление сеанса после краха/перезапуска композитного сервера и добавлены реализуемые на стороне клиента эффекты, такие как трансформация окон;
  • В ОС DragonFly BSD развивается порт с Wayland и Weston. Обеспечена поддержка XWayland;

  • Wayland задействован по умолчанию в мобильных платформах Plasma Mobile, Sailfish 2 и Tizen 3.
  • В панели Cairo-Dock реализована возможность работы в окружении композитного сервера Weston.
  • Работа по добавлению поддержки Wayland ведётся для рабочих столов LXQt и MATE.
  • Развиваются новые десктоп-окружения, работающее только на базе технологий Wayland: papyros-shell, Hawaii и Orbital.
  • Для тестирования работы GNOME, KDE и Enlightenment, Hawai и Orbital поверх Wayland выпускается специальный Live-дистрибутив Rebecca Black Linux.
  • В проприетарном драйвере NVIDIA 364.x обеспечена официальная поддержка Wayland, включая все необходимые расширения EGL, библиотеку libnvidia-egl-wayland.so и KMS API.

Напомним, что Wayland представляет собой протокол взаимодействия композитного сервера и работающих с ним приложений. Клиенты самостоятельно выполняют отрисовку своих окон в отдельном буфере, передавая информацию об обновлениях композитному серверу, который комбинирует содержимое буферов отдельных приложений для формирования итогового вывода с учётом возможных нюансов, таких как перекрытие окон и прозрачность. Иными словами, композитный сервер не предоставляет API для отрисовки отдельных элементов, а оперирует только с уже сформированными окнами, что позволяет избавиться от двойной буферизации при использовании высокоуровневых библиотек, таких как GTK+ и Qt, берущих на себя работу по компоновке содержимого окон. В настоящее время поддержка прямой работы c Wayland уже реализована для библиотек GTK3+, Qt 5, SDL (начиная с выпуска 2.0.2), Clutter и EFL (Enlightenment Foundation Library). Начиная с Qt 5.4 в состав включён модуль QtWayland с реализацией компонентов для работы Qt-приложений в окружении композитного сервера Weston, развиваемого проектом Wayland.

Взаимодействие с аппаратным обеспечением в Wayland/Weston, например, проведение инициализации, переключение видеорежимов (drm modesetting) и управление памятью (GEM для i915 и TTM для radeon и nouveau) графических карт, может производиться напрямую через модуль, работающий на уровне ядра, что позволяет обойтись без привилегий суперпользователя. Композитный сервер Weston может работать не только с использованием DRM-модуля ядра Linux, но и поверх X11, другого композитного сервера Wayland, фреймбуфера и RDP. Кроме того, развиваются проекты по обеспечению работы поверх графического стека платформы Android.

В рамках проекта Weston развивается одна из реализаций композитного сервера. В роли композитного сервера также может выступать любой другой продукт, поддерживающий протокол Wayland. Например, в настоящее время ведётся работа по обеспечению поддержки Wayland в KWin. В текущем виде Weston уже вышел за рамки набора примеров для тестирования протокола Wayland и может обрастать функциональностью через плагины и дополнения. Пользовательские оболочки и расширенные функций управления окнами предлагается реализовывать в форме внешних бэкендов к Wayland.

Для обеспечения выполнения обычных X11-приложений в окружении на базе Wayland используется DDX-компонент XWayland (Device-Dependent X), похожий по организации работы на Xwin и Xquartz для платформ Win32 и OS X. Поддержку запуска X11-приложений планируется встроить непосредственно в композитный сервер Weston, который при попытке выполнения X11-приложения будет инициировать запуск X-сервера и связанных с ним компонентов XWayland. При таком подходе процесс запуска X11-приложений будет бесшовным и неотличимым для пользователя от запуска приложений, работающих напрямую с Wayland.

Источник: [ссылка]

Релиз среды разработки Android Studio 2.2

Компания Google выпустила релиз интегрированной среды разработки Android Studio 2.2, построенной на базе исходных текстов продукта IntelliJ IDEA Community Edition, созданного компанией JetBrains. Проект Android Studio развивается в рамках открытой модели разработки и распространяется под лицензией Apache 2.0. Бинарные сборки подготовлены для Linux, macOS и Windows. Предоставляется поддержка всех свежих версий Android и сервисов Google Play, в том числе API платформы Android 7.

Cреда содержит все необходимые элементы для разработки приложений для платформы Android, тестирования программ на совместимость с разными версиями платформы и проектирования приложений для устройств с различными разрешениями экрана (планшеты, смартфоны, ноутбуки, часы, автомобильные информационно-развлекательные системы, умные телевизоры). В состав входят редактор исходных текстов, визуальная среда проектирования интерфейса, инструменты для отладки и анализа кода, эмуляторы, а также унифицированная подсистема сборки, тестирования и развёртывания приложений, основанная на сборочном инструментарии Gradle и поддерживающая использование средств непрерывной интеграции.

Основные новшества:

  • Поддержка специфичных возможностей платформы Android 7, например, добавлена поддержка средств автодополнения кода для таких новшеств, как многооконный режим, Quick Settings API и обновлённая система уведомлений;
  • Новый Layout Editor, предоставляющий средства для визуального проектирования интерфейса пользователя. Макет интерфейса может формироваться через произвольное размещение виджетов при помощи мыши с последующей корректировкой параметров в специальной панели, без необходимости ручного редактирования XML-файлов с раскладкой элементов интерфейса;
  • Добавлен новый метод управления раскладками интерфейса Constraint Layout, позволяющий создавать сложные динамические интерфейсы без вложенных групп раскладок, используя только плоскую иерархию элементов;
  • Улучшены средства разработки на языке C++, в том числе внесены исправление в редактор кода и отладчик. Добавлена возможность использования CMake или ndk-build для сборки C++ проектов, а также бесшовной миграции проектов от систем сборки CMake на Android Studio.
  • Добавлен интерфейс Samples Browser для просмотра и поиска необходимых примеров кода;
  • Увеличена стабильность и надёжность работы функции мгновенного запуска, позволяющей оптимизировать цикл разработки (редактирование/сборка/запуск) за счёт сокращения времени, необходимого на сборку;
  • Добавлен интерфейс для анализа файлов APK, упрощающий инспектирование содержимого и оценку размера входящих в состав компонентов;
  • Экспериментальная поддержка сборочного кэша (Build cache), позволяющего сократить время полных и инкрементальных сборок за счёт сохранения и повторного использования файлов и директорий, созданных в процессе прошлой сборки, в том числе других проектов. Для включения следует активировать опцию Android.enableBuildCache=true в настройках gradle.properties.
  • В эмулятор Android Emulator добавлен новый набор виртуальных датчиков, включая акселерометр, датчик температуры и магнитометр, и новый интерфейс для управления их симуляцией;
  • Добавлена бета-версия компонента Espresso Test Recorder, позволяющего автоматически сформировать сценарий тестирования интерфейса через запись реального сеанса работы с приложением;
  • В состав включена бета-версия отладчика GPU (GPU Debugger), предоставляющего средства оценки состояния GPU, отладки графического вывода и захвата потока команд OpenGL ES на устройстве с целью их последующего анализа через повторное воспроизведение под управлением Android Studio;

Источник: [ссылка]

Выпуск документ-ориентированной БД Apache CouchDB 2.0

После нескольких лет разработки представлен релиз распределенной, документ-ориентированной базы данных Apache CouchDB 2.0.0, относящейся к классу NoSQL-систем. Выпуск 2.0 вобрал в себя улучшения, разработанные в рамках проекта BigCouch, который развивался компанией Cloudant и был передан Фонду Apache после поглощения компанией IBM. Исходные тексты проекта распространяются под лицензией Apache 2.0.

Запросы к CouchDB и индексация данных могут выполняться в соответствии с парадигмой MapReduce, используя для формирования логики выборки данных язык JavaScript. Ядро системы написано на языке Erlang, оптимизированного для создания обслуживающих множество параллельных запросов распределенных систем. View-сервер написан на языке Си и базируется на JavaScript-движке Mozilla Spidermonkey. Доступ к БД производится при помощи протокола HTTP с использованием RESTful JSON API, что позволяет обращаться к данным в том числе из выполняемых в браузере web-приложений.

В качестве единицы хранения данных выступает документ, имеющий уникальный идентификатор, версию и содержащий произвольный набор именованных полей в формате ключ/значение. Для организации псевдо-структурированного набора данных из произвольных документов (агрегирования и формирования выборок) применяется концепция формирования представлений (view), для определения которых используется язык JavaScript. На JavaScript также можно определять функции для проверки корректности данных при добавлении новых документов в рамках определенного представления.

CouchDB хранит данные в формате упорядоченного списка и позволяет производить частичную репликацию данных между несколькими БД в режиме «мастер-мастер» с одновременным обнаружением и разрешением конфликтных ситуаций. Каждый сервер хранит свой локальный набор данных, синхронизированный с другими серверами, которые могут переводиться в offline-режим и периодически реплицировать изменения. В частности, данная возможность делает CouchDB привлекательным решением для организации синхронизации настроек программ между разными компьютерами. Решения на базе CouchDB внедрены в таких компаниях как BBC, Apple и CERN.

Основные улучшения, добавленные в CouchDB 2.0:

  • Добавлена встроенная поддержка полноценных кластерных возможностей, позволяющих создавать системы высокой доступности и масштабировать CouchDB для создания очень больших хранилищ или распараллеливания запросов в высоконагруженных систмемах. Кластеризация реализована с использованием методов, применяемых в движке Amazon Dynamo, и позволяет развернуть на нескольких узлах единое хранилище CouchDB, выглядящее для клиентских систем как один большой сервер CouchDB;
  • Несмотря на значительные внутренние изменения удалось сохранить совместимость с прошлыми версиями для 99% вызовов API, что позволяет использовать CouchDB 2.0 с большинством старых приложений;
  • Представлен новый язык оформления запросов «Mango«, который значительно быстрее и проще ранее предлагаемой системы JavaScript-представлений. Запросы в Mango формируются с использованием JSON;
  • Значительная оптимизация производительности, особенно заметная при выполнения операций репликации и упаковки;
  • Полностью переписан интерфейс администратора, который обзавёлся современным внешним видом (используется React.js и Flux) и новыми возможностями. Например, добавлены средства для разрешения конфликтов между документами, создания и использования индексов, настройки кластера.

Источник: [ссылка]