Европарламент принял директиву об авторских правах в интернете с исключениями для открытого ПО

После трёхстороннего обсуждения с участием Европейской комиссии и Совета Европейского союза, Европарламент принял окончательный вариант директивы об авторских и смежных правах. За принятие директивы проголосовали 384 члена Европарламента, против — 274, воздержались — 36. После одобрения парламентом, директива передана в Европейский совет для формального утверждения. Ожидается, что директива будет утверждена до 9 апреля, после чего страны Евросоюза будут обязаны перенести её в свои национальные законодательства.

Голосование прошло на фоне митингов противников новых правил регулирования авторского права, в которых в эти выходные приняло участие около 150 тысяч демонстрантов. Online-петицию против принятия закона подписало более 5 млн человек.

Неприятие нового законодательства в области авторского права связано главным образом со статьёй 17 (до переименования — 13 статья), которая предписывает применение интернет-компаниями специальных фильтров для проверки потенциального нарушения авторских прав на этапе загрузки контента пользователем. Опасения противников директивы связаны с возможными ложными срабатываниями фильтров, в которых применяются автоматические алгоритмы и типовые шаблоны.

По мнению Юлии Реда, депутата Европарламента от Германии и члена Пиратской партии Германии, применяемые в фильтрах алгоритмы не смогут отличить реальные нарушения авторских прав от легального использование контента. В частности, под блокировку могут попасть пародии и мемы, в которых используются кадры из фильмов. Требование фильтрации контента неизбежно приведёт к учащению ошибочной блокировки легальных загрузок и усложнят жизнь небольшим провайдерам контента, которые не могут себе позволить покупку дорогостоящего фильтрующего ПО.

К счастью, в ходе обсуждения законопроекта удалось добиться внесения ряда поправок, смягчающих требования. Например, из под действия директивы выведено программное обеспечение и закон не будет распространяться на архивы ПО, репозитории и платформы совместной разработки свободного и открытого ПО. Финальный вариант директивы охватывает только платформы, на которые загружаются музыка или видео.

Много споров также породила 15 статья (до переименования — 11 статья), вводящая «отчисления за ссылки». Статья разрешает новостным изданиям требовать выплаты отчислений за размещение заголовков и отрывков новостей на сайтах агрегаторов контента. По сравнению с изначальным вариантом в финальном документе отражены поправки, выводящие из области действия статьи ссылки на источник — издатель не может потребовать получения лицензии на ссылку, если она используется для идентификации источника контента. Издатели также должны явно обозначить в публикации необходимость заключения лицензионного соглашения на выставление ссылки (по умолчанию заключение такого соглашения не требуется).

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

Компания Apple представила язык программирования Swift 5

После года разработки компания Apple опубликовала релиз языка программирования Swift 5. Официальные сборки подготовлены для Linux (Ubuntu 14.04, 16.04, 18.04) и macOS (Xcode). Исходные тексты распространяются под лицензией Apache 2.0.

В новой версии стабилизирован ABI для платформ macOS, iOS, tvOS и watchOS. Обеспечена возможность поставки новых версий библиотек без перекомпиляции приложений. В стандартной библиотеке внутреннее представление строк переведено на кодировку UTF-8. Улучшена поддержка raw-текста (со спецсимволами и переводами строк) в строковых литералах. Добавлены новый тип для обработчиков ошибок Result и векторный тип SIMD. Расширены возможности по интерполяции строк с типом String (выделение текста из произвольных данных). Увеличена производительность типов Dictionary и Set.

В runtime добавлены средства для организации эксклюзивного доступа к памяти (для проверки, что переменная не доступна через другие имена в момент изменения в функции), которые могут включаться как в отладочном режиме, так и для релизов. Реализована возможность создания динамически вызываемых типов (предложен атрибут «@dynamicCallable»), нацеленных на улучшение переносимости с языками с динамической типизацией, такими как Python, JavaScript и Ruby. Добавлена поддержка условного оператора «меньше чем» в выражениях управления ходом компиляции (например, «#if swift(‹4.2)»).

В пакетном менеджере представлена поддержка зеркалирования зависимостей, привязки параметров сборки к целевой платформе, генерации coverage-данных и определения собственных требований к поддерживаемым целевым платформам. В команду «swift run» добавлена возможность импорта библиотек в REPL без сборки в формате исполняемых файлов.

Напомним, что язык Swift наследует лучшие элементы языков C и Objective-C, и предоставляет объектную модель, совместимую с Objective-C (Swift-код может смешиваться с кодом на С и Objective-C), но отличается использованием средств автоматического распределения памяти и контроля переполнения переменных и массивов, что значительно увеличивает надёжность и безопасность кода. Swift также предлагает множество современных методов программирования, таких как замыкания, обобщенное программирование, лямбда-выражения, кортежи и словарные типы, быстрые операции над коллекциями, элементы функционального программирования. Версия для Linux не привязана к Objective-C Runtime, что позволяет использовать язык в окружениях, в которых отсутствует поддержка Objective-C.

Pеализация Swift построена с задействованием технологий свободного проекта LLVM. Для обеспечения высокой производительности Swift-программы компилируются в машинный код, выполняемый в тестах Apple на 30% быстрее кода на Objective-C. Вместо сборщика мусора в Swift используются средства подсчёта ссылок на объекты. В поставку входит пакетный менеджер Swift Package Manager, предоставляющий средства для распространения модулей и пакетов с библиотеками и приложениями на языке Swift, управления зависимостями, автоматизированной загрузки, сборки и связывания компонентов.

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

Релиз Chrome OS 73

Компания Google представила релиз операционной системы Chrome OS 73, основанной на ядре Linux, системном менеджере upstart, сборочном инструментарии ebuild/portage, открытых компонентах и web-браузере Chrome 73. Пользовательское окружение Chrome OS ограничивается web-браузером, а вместо стандартных программ задействованы web-приложения, тем не менее, Chrome OS включает в себя полноценный многооконный интерфейс, рабочий стол и панель задач. Сборка Chrome OS 73 доступна для большинства актуальных моделей Chromebook. Энтузиастами сформированы неофициальные сборки для обычных компьютеров с процессорами x86, x86_64 и ARM. Исходные тексты распространяются под свободной лицензией Apache 2.0.

Основные изменения в Chrome OS 73:

  • Обновлено приложение для работы с камерой, в котором появилась функция создания снимков по таймеру с задержкой в 3 и 10 секунд, возможность выравнивания снимков по сетке и кнопка для создания зеркально отражённых снимков (удобно при работе с электронными микроскопами и при создании снимков документов);
  • В видеопроигрывателе для управления воспроизведением теперь можно использовать специализированные мультимедийные кнопки на клавиатуре;
  • В файловом менеджере добавлена возможность создания произвольных каталогов в секции «My Files», в дополнение к изначально предлагаемым фиксированным каталогам, таким как «Downloads», «Linux Files» и «Play Files». Реализована навигация по привязанным к сервису Google Drive компьютерам (секция Drive->Computers);
  • Улучшена обработка ситуации нехватки памяти в системе (out-of-memory);
  • Добавлена поддержка отправки предупреждений перед предстоящим удалением контролируемых пользователей;
  • Обеспечена поддержка звукового фокуса, определяющего какое приложение в данный момент может выводить звук при попытке одновременного вывода звука разными приложениями Chrome, приложениями Android и сайтами в браузере (приглушаются приложения находящиеся в фоне);
  • Расширена функция совместного доступа к каталогам, позволяющая Linux-приложениям читать и записывать файлы в различных каталогах Chrome OS, не ограничиваясь каталогом «Linux files». В том числе обеспечен доступ Linux-приложений к Google Drive;
  • Для разработчиков реализована возможность сбора дополнительных метрик телеметрии;
  • Добавлен демонстрационный режим с возможностью автономной регистрации (в offline) и настройки функциональности. Например, в демонстрационном режиме предоставлена возможность изменения языка и раскладки клавиатуры;
  • Вместо сеансов для организации публичного доступа на предприятии (public session) для предложены управляемые гостевые сеансы, которые можно применять в ситуациях когда требуется предоставить возможность работы с системой без заведения учётной записи, например, в информационных киосках, демонстрационных компьютерах и системах совместного доступа. Ключевым отличием нового вида сеансов является возможность централизованного управления доступными полномочиями, устройствами, сертификатами и расширениями, без необходимости ручной настройки;
  • Предложена система голосового сопровождения на базе синтезатора речи eSpeak NG;
  • В инструменты централизованного удалённого администритрвания (Google Admin) добавлена возможность разрешения или запрещения использования виртуальных машин для запуска Linux-приложений, а также средства для настройки параметров черно-белой печати через CUPS. Убран лимит на 20 обслуживаемых принтеров.

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

Отчёт о развитии FreeBSD за четвёртый квартал 2018 года

Опубликован отчёт о развитии проекта FreeBSD с октября по декабрь 2018 года.

Основные достижения:

  • Общие и системные вопросы
    • Продолжено развитие инфраструктуры непрерывной интеграции, в которой проводится регулярное автоматизированное тестирование изменений и пересборка содержимого Subversion-репозитория проекта в Travis CI и Jenkins. За отчётный период была проведена работа по расширению окружения для выполнения тестов, расширению покрытия тестами кодовой базы и налаживанию сотрудничества по совместному тестированию с внешними проектами. Из планов отмечается добавление в CI сборки drm-портов в окружении ветки CURRENT, реализация автоматических тестов на невиртуализированном оборудовании (bare metal) и добавление тестов для отдельных веток, таких как clang800-import;
    • FreeBSD Core Team одобрил план по переводу драйверов для 10 и 100 мегабитных сетевых адаптеров Ethernet в разряд устаревших;
    • Размер собранных в прошлом году пожертвований превысил 1.3 млн долларов. Наиболее значительный вклад внесли компании Juniper, Netflix и Facebook, а также проект Handshake.org
    • Трудоустроенные в организации FreeBSD Foundation инженеры выполнили работу по выявлению и исправлению узких мест в ядре и системных библиотеках, обеспечению сборки системы и портов с использованием утилиты Poudriere, добавлению встроенного в ядро загрузчика микрокода для CPU Intel, расширению изоляции системных утилит при помощи фреймворка capsicum, улучшению поддержи NUMA, внесению исправлений, связанных с компоновщиком lld (от LLVM) и компонентами инструментария ELF, обновлением OpenSSL до версии 1.1.1 и добавлением защиты Retpoline от атак Spectre;
    • В дополнение к недавно добавленной в реализацию виртуальных терминалов поддержке установки цветовых схем (kern.vt.color.X.rgb tunables) пользователям предложена готовая коллекция из примерно 200 цветовых схем для различных терминалов. Для применения схем достаточно скопировать их параметры в /boot/loader.conf или /boot/loader.conf.local;
    • Для ядра i386 предложена опция PAE_PAGETABLES, включающая поддержку нового формата таблиц страниц памяти, который ранее был доступен только в режиме PAE. Новый формат необходим для реализации поддержки не исполняемых страниц памяти (бит noexec) и увеличения адресуемой памяти (до 24G). Его применение без PAE позволит сохранить прежними структуры vm_paddr_t и bus_addr_t, т.е. обеспечить неизменными интерфейсы ядра и избежать нарушения совместимости с драйверми. Чтобы не распространять несколько сборок ядра i386 поддержка страниц памяти вынесена в отдельные модули — два модуля pmap, один для PAE и один для поддержки старых двухуровневых таблиц страниц памяти;
  • Безопасность
    • Добавлена поддержка механизма ключей защиты памяти Usermode Protection Keys, позволяющего приложениям разбить используемую память на зоны, применив к каждой зоне дополнительные ограничения, например, можно установить права при которых код может быть запущен, но не может быть прочитан. Механизм предоставляется в процессорах Intel Xeon на базе микроархитектуры Skylake;
    • В гипервизор bhyve добавлена поддержка Live-миграции гостевых окружений с одного хоста на другой. Для управления переносом в bhyvectl добавлена опция «—migrate-live». В bhyve также реализована функциональность Save/Restore, позволяющая заморозить гостевую систему с сохранением состояния в файл, а затем возобновить выполнение. При сохранении в разные файлы записывается образ памяти, метаданные для восстановления, состояние CPU и устройств. Для заморозки гостевой системы в bhyvectl добавлена команда «—suspend state_file», а для восстановления опция «-r» (используется вместе с «—suspend»);
    • Внесены улучшения во фреймворк Capsicum, предоставляющий механизмы ограничения использования приложениями определённых системных функций. В Casper, фоновый процесс для организации доступа к привилегированным операциям из режима повышенной изоляции, добавлен сервис fileargs для обращения к частям ФС из sandbox-окружения. Использование fileargs позволяет изолировать такие приложения, как brandelf, wc, savecore, head и strings, а также добавить в bhyve поддержку доступа к звуковым устройствам, изолированным при помощи Capsicum. Кроме того, добавлен Casper-сервис private и реализована sandbox-изоляция процессов rtsold и rtsol , используемых для отправки сообщений ICMPv6 Router Solicitation;
    • Добавлена поддержка устройств TPM 2.0 (Trusted Platform Module) с отдельным чипом и памятью для безопасных вычислений, которые обычно применяются для верифицированной загрузки прошивок и загрузчика ОС. Во FreeBSD TPM также может использоваться для усиления безопасности Strongswan IPsec, SSH и TLS за счёт выполнения криптографических операций на отдельном чипе;
    • Для режима верифицированной загрузки UEFI Secure Boot реализована поддержка сертификатов X509. На базе библиотеки BearSSL для загрузчика EFI подготовлен код проверки цифровых подписей. Обеспечено извлечение списка разрешённых и запрещённых сертификатов из переменных окружения UEFI. Предоставленной функциональности достаточно для верифицированной загрузки ядра с использованием цифровой подписи на основе самостоятельно сгенерированного сертификата;
    • Проходит рецензирование код с реализацией системы контроля целостности исполняемых файлов Veriexec, который скорее всего будет интегрирован с кодом для поддержки UEFI Secure Boot;
    • Библиотека libvdsk оптимизирована для упрощения добавления поддержки новых форматов дисковых образов. Добавлена поддержка формата QCOW2. Из планов отмечается поддержка Copy-On-Write, средства для работы с несколькими снапшотами и интеграция с bhyve;
  • Сетевая подсистема
    • Проведена оптимизация производительности pfsync, системы для синхронизации таблиц отслеживания состояния соединений нескольких пакетных фильтров. Пакетный фильтр pf может обрабатывать одновременно несколько состояний на разных ядрах CPU, но pfsync был привязан к блокировке PFSYNC_LOCK, позволявшей единовременно использовать только одно ядро CPU. Для решения данной проблемы очереди pfsync теперь разбиты на несколько сегментов с разными идентификаторами состояния и собственными независимыми блокировками. Указанное изменение позволяет одновременно обрабатывать несколько состояний на разных ядрах CPU. Число сегментов настраивается (по умолчанию выбирается в два раза больше, чем число CPU). В зависимости конфигурации прирост производительности составляет от 30% до 100%;
  • Поддержка оборудования
    • Продолжается развитие компонентов графического стека. Проведена работа по стабилизации портированных из ядра Linux 4.16 графических драйверов drm-kmod (порт, обеспечивающий работу DRM-модулей amdgpu, i915 и radeon, используя фреймворк linuxkpi для совместимости с DRM API (Direct Rendering Manager) ядра Linux). Порты с DRM-драйверами переименованы для более явной привязки к веткам (graphics/drm-current-kmod для CURRENT и graphics/drm-fbsd12.0-kmod для релиза 12.0. Добавлен новый порт graphics/drm-kmod, устанавливающий корректный драйвер в зависимости от версии FreeBSD и аппаратной архитектуры.

      Старые драйверы, портированные из ядра 4.11 и используемые в выпуске FreeBSD 11.2, помещены в порт graphics/drm-legacy-kmod и также могут использоваться во FreeBSD 12.0 и CURRENT. Намечено удаление кода drm2 из базовой системы в пользу драйверов из портов, но часть компонентов drm2 останется из-за привязки к ARM-платам NVIDIA Tegra. Проводится альфа-тестирование поддержки архитектур i386 и PowerPC 64 в драйверах drm. Добавлена поддержка проброса GPU в окружения VMware. Обновлён стек для поддержки устройств ввода. Заголовочные файлы Evdev выделены из порта multimedia/v4l_compat в отдельный порт devel/evdev-proto;

    • В ядро добавлена новая подсистема для разработки PWM-драйверов. Для настройки предложена утилита pwm. В настоящее время совместимость с новой подсистемой обеспечена только в драйвере для ARM SoC Allwinner;
    • Представлена начальная поддержка 64-разрядных SoC на базе чипов Broadcom BCM5871X с процессорами ARMv8 Cortex-A57, нацеленными на использование в маршрутизаторах, шлюзах и сетевых хранилищах. В текущем виде уже поддерживаются iProc PCIe, BNXT Ethernet, OTP (One Time Programmable memory) и crypto-движок для IPsec. Для включения в ветку HEAD код будет готов приблизительно в третьем квартале;
    • Файлы DTS (Device Tree Sources) синхронизированы с ядром Linux 4.20 для ветки HEAD и 4.19 для 12-STABLE. Обеспечена компиляция DTS для некоторых плат arm64;
    • При участии компании Amazon подготовлена новая версия драйвера ena с поддержкой второго поколения сетевых адаптеров ENAv2 (Elastic Network Adapter), используемых в инфраструктуре Elastic Compute Cloud (EC2) для организации связи между узлами EC2 на скоростях до 25 Gb/s. Перед интеграцией в основную кодовую базу остаётся только провести рецензирование и проверку кода;
    • Улучшена поддержка FreeBSD на системах Power9 (ppc64): обеспечена возможность загрузки ядра, собранного при помощи LLVM, добавлена поддержка Rust, стабилизирована реализация Superpage, адаптирован графический драйвер radeonkms, улучшена обработка прерываний;
    • Продолжена работа по реализации поддержки архитектуры RISC-V. В текущем виде FreeBSD уже успешно загружается на плате SiFive Unleashed, но пока не может использовать более одного ядра CPU;
    • Добавлена поддержка загрузки FreeBSD на SoC Marvell 8K. Подготовлены драйверы для таймера, gpio, термодатчиков и sdcard/eMMC, в разработке находятся драйверы для SATA и USB;
    • Сформирован образ SD-карты для ноутбука Pinebook;
    • Добавлена начальная поддержка чипов RockChip RK3399, используемых в платах RockPro64. Реализована возможность сетевой загрузки, добавлена поддержка RK805 и RK808 PMIC (Power Management IC) для корректного управления питанием;
  • Приложения и система портов
    • В дереве портов включена по умолчанию сборка графических приложений с поддержкой Wayland;
    • Дерево портов FreeBSD преодолело рубеж в 32900 портов, число незакрытых PR держится на отметке в 2365, из которых 500 неразобраны. За отчётный период внесено 7333 изменений от 174 разработчиков. Права коммиттера получили два новых участника. Восемь участников лишились права коммита в порты из-за длительной неактивности.

      Среди значительных обновлений версий в портах отмечаются: PHP 7.2, Perl 5.28, Ruby 2.5, LLVM 7.0. Обеспечена параллельная установка портов PyQt. Прекращена поддержка KDE 4 и ветки FreeBSD 10, время жизни которых истекло. Для внешнего построения портов («:outsource») по умолчанию задействован флаг «USES=cmake».

    • Из портов удалено окружение KDE 4. Удаление Qt4 ожидается в конце марта. Рабочий стол KDE Plasma обновлён до версии 5.12. Задействованы актуальные выпуски KDE Frameworks и KDE Applications. Поддержка KDE синхронизирована с upstream. Библиотека Qt5 обновлена до выпуска 5.12. Реализация QtWebEngine пока остаётся на уровне 5.9.5, но в конце марта будет обновлена до Qt 5.12;
    • Продолжается развитие проекта ClonOS, развивающего специализированный дистрибутив для развёртывания инфраструктуры виртуальных серверов. По решаемым задачам ClonOS напоминает такие системы, как Proxmox, Triton (Joyent), OpenStack, OpenNebula и Amazon AWS, главным отличием от которых является использование FreeBSD и возможность управления, развертывания и управления Jail-контейнерами FreeBSD и виртуальными средами на базе гипервизоров Bhyve и Xen. Из планов на будущее отмечается добавление в web-интерфейс инструментов для live-миграции Bhyve и управления окружениями на базе Xen, поддержка CEPH/GlusterFS, iSCSI для виртуальных блочных устройств XEN и bhyve, средства для обеспечения высокой доступности (HA-cluster) и автоматической балансировки нагрузки между узлами, интеграция с системами мониторинга Prometheus/Grafana/Zabbix, система автоматического обновления узлов кластера, агрегирование сетевых интерфейсов, RestAPI, расширенная система разграничения доступа с интеграцией с Active Directory, RBAC и SSO.
    • Сформирован релиз HardenedBSD 12, форка FreeBSD 12, в который интегрированы дополнительные механизмы защиты и техники противодействия методам эксплуатации уязвимостей. В новом выпуске задействован механизм проверки целостности выполнения программ Non-Cross-DSO CFI (Control Flow Integrity), обеспечена дополнительная изоляция гипервизора bhyve, отключена по умолчанию технология одновременной многопоточности (SMT или Hyper-Threading), обеспечена сборка приложений с оптимизациями на этапе связывания (LTO, Link-Time Optimization);
    • Продолжена разработка системного менеджера nosh, предоставляющего инструменты инициализации, загрузки, ведения логов, управления фоновыми процессами и терминалами. Nosh позиционируется как замена BSD init и NetBSD rc.d, вобравшая в себя черты таких систем, как Solaris SMF, daemontools-encore, UCSPI и средств IBM AIX по раздельному управлению системой и сервисами. Предоставляется набор прослоек для использования команд, ставших привычных в других системах, импорта существующих конфигурационных файлов /etc/fstab, /etc/rc.conf, /etc/rc.local и /etc/ttys, а также настроек изолированных окружений Jail и PC-BSD Warden. В nosh предоставляются функции для определения порядка запуска сервисов, организации зависимостей между сервисами, обеспечения параллельного запуска сервисов, автоматической ротации логов, отслеживания работы сервисов и применения kevent для обеспечения событийно-ориентированного параллелизма.

      Из изменений в nosh с момента публикации прошлого отчёта отмечается добавление поддержки bcron, появление обвязок для OpenRC rc-update и rc-service, а также некоторых утилит из набора util-linux. Реализованы новые утилиты getuidgid, userenv-fromenv, setgid-fromenv, envgid, printenv, setlogin, console-decode-ecma48, console-control-sequence, console-flat-table-viewer, console-input-method и local-stream-socket-connect. Добавлены файлы для большого числа различных сервисов. Расширены средства настройки сервисов в привязке к пользователям. Для работающих в пространстве пользователя виртуальных терминалов добавлена поддержка методов ввода. Вместо NCurses для организации вывода на экран задействована новая библиотека TerminalCapabilities, предоставляющая поддержку управляющих последовательностей ECMA-48 и DEC VT.

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

Выпуск операционной системы Redox OS 0.5, написанной на языке Rust

После года разработки подготовлен выпуск операционной системы Redox 0.5, разработанной с использованием языка Rust и концепции микроядра. Наработки проекта распространяются под свободной лицензией MIT. Для тестирования в VirtualBox или QEMU предложены готовые загрузочные образы.

Пользовательское окружение в Redox построено на базе графической оболочки Orbital, работающей поверх Wayland. В качестве web-браузера применяется Netsurf. Операционная система использует концепцию микроядра, при котором на уровне ядра обеспечивается только взаимодействие между процессами и управление ресурсами, а вся остальная функциональность вынесена в библиотеки, которые могут использоваться как ядром, так и пользовательскими приложениями. Все драйверы выполняются в пространстве пользователя в изолированных sandbox-окружениях. Для совместимости с существующими приложениями предоставляется специальная POSIX-прослойка, позволяющая запускать многие программы без портирования.

Redox развивается в соответствии с философией Unix c заимствованием некоторых идей из SeL4, Minix и Plan 9. В системе применяется принцип «все есть URL». Например, для записи в лог может использоваться URL «log://», для взаимодействия между процессами «bus://», для сетевого взаимодействия «tcp://» и т.п. Модули, которые могут быть реализованы в форме драйверов, расширений ядра и пользовательских приложений, могут регистрировать свои обработчики URL, например, можно написать модуль обращения к портам ввода/вывода и привязать его к URL «port_io://», после чего можно использовать его для доступа к 60 порту через открытие URL «port_io://60».

Проектом также развивается собственный пакетный менеджер, набор стандартных утилит (binutils, coreutils, netutils, extrautils), командная оболочка ion, vim-подобный текстовый редактор sodium, сетевой стек и файловая система TFS, развиваемая на основе идей ZFS (модульный вариант ZFS на языке Rust). Конфигурация задаётся на языке Toml. Система поддерживает запуск на процессорах с архитектурой x86_64 c VBE-совместимой графической картой (nvidia, intel, amd), AHCI-дисками и сетевыми картами на базе чипов E1000 или RTL8168.

Из новшеств, добавленных в выпуске Redox 0.5, можно отметить:

  • Предложена собственная стандартная Си-библиотека Relibc, написанная на языке Rust. Relibc позиционируется как переносимая реализация стандартной библиотеки Си, соответствующая стандарту POSIX и способная работать не только в Redox, но и в дистрибутивах на базе ядра Linux. Ранее в Redox в качестве стандартной библиотеки применялся форк библиотеки newlib от проекта Сygwin, но он не устраивал разработчиков с точки зрения безопасности и кросс-платформенности. На текущей стадии развития Relibc уже намного превосходит newlib по функциональности;
  • Подготовлены новые загрузчики bootloader-coreboot и bootloader-efi для coreboot и EFI, на основе которых сформированы загрузочные образы. Написаны библиотеки для работы с EFI на языке Rust и загрузочный код (payload для coreboot) на Rust. Загрузчики могут применяться обособленно от Redox и в других проектах;
  • Система обработки событий переработана для предоставления корректной поддержки вызовов select и poll;
  • Реализована полноценная поддержка функций отображения в память (mmap);
  • Добавлена поддержка Pthreads и предложены дополнительные системные вызовы для обработки сигналов;
  • Улучшена совместимость с LLVM, что позволило обеспечить сборку rustc и Mesa (c llvmpipe);
  • Благодаря переходу на новую системную библиотеку удалось добиться поддержки многих новых приложений. Для установки в Redox подготовлены готовые пакеты с библитеками SDL2, ffmpeg, cairo, gstreamer, pcre, glib, pixman, libiconv, libsodium и gettext, набором компиляторов llvm, реализацией OpenGL/Vulkan Mesa, эмуляторами scummvm, dosbox и mgba, играми eduke32 (Duke Nukem 3D), openttd и FreeDoom. Всего добавлено 62 новых пакета.

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

Microsoft опубликовал Pyright, систему проверки типов для языка Python

Компания Microsoft открыла исходные тексты проекта Pyright, в рамках которого развивается система для применения статической типизации в приложениях на языке Python. Для разработчиков предлагается утилита командной строки для проверки типов и плагин для интегрированных сред разработки, поддерживающих протокол LSP (Language Server Protocol), таких как Visual Studio Code, Nuclide и Atom. Код написан на языке Typescript (диалект JavaScript со статической типизацией), использует Node.js и открыт под лицензией MIT.

Информация о типах может определяться в коде через добавление дополнительных аннотаций к переменным (PEP 526, например «# type: List[int]»), TypeVar-подсказок в стиле mypy (PEP 484, например «def greeting(name: str) -> str:») или применения структурных подтипов (PEP 544). Pyright поддерживает вывод типов для возвращаемых функциями значений, локальных переменных, переменных классов и глобальных переменных. Системой также применяются умные ограничители типов, учитывающие ветвления в коде с использованием операторов if/else.

Pyright работает примерно в пять раз быстрее mypy и других систем проверки типов, написанных на языке Python. Высокая производительность позволяет использовать Pyright для очень крупных кодовых баз, для работы в режиме непрерывного отслеживания при редактировании и для быстрого инкрементального обновления при изменении файлов. Для работы Pyright не требуется установка Python-окружения, но необходимо наличие Node.js.

Кроме инструментов для анализа и проверки кода в состав также входит подготовленный проектом Typeshed набор stub-файлов («.pyi»), содержащих информацию о типах для стандартных библиотек stdlib. Плагин для IDE поддерживает вывод всплывающих подсказок с информацией о типе, переход к позиции с определением переменной и обеспечение обратной связи во время редактирования.

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

Фонд СПО объявил обладателей ежегодной премии за вклад в развитие свободного ПО

Ричард Столлман объявил на конференции LibrePlanet 2019 лауреатов ежегодной премии «Free Software Awards 2018«, учрежденной Фондом свободного ПО (FSF) и присуждаемой людям, внесшим наиболее значительный вклад в развитие свободного ПО, а также социально значимым свободным проектам.

Премию за продвижение и развитие свободного ПО получила Дебора Николсон (Deborah Nicholson), директор по взаимодействию с сообществом в организации Software Freedom Conservancy, ведущая деятельность в областях, где технологии пересекаются с вопросами социальной справедливости, отстаиванием неограниченного доступа к информации, свободой слова и собраний, а также гражданскими свободами. Дебора присоединилась к движению СПО в 2006 году после нескольких лет организации локальных выступлений за свободу слова, женское равноправие и прозрачность политических процессов. Первое время Дебора работала в Фонде СПО, в котором курировала программы членства в организации, организовывала конференции и продвигала инициативы по вовлечению женщин в разработку СПО. Дебора также является одним из трёх первых разработчиков проекта GNU social (StatusNet) и позднее также принимала участие в разработке платформ GNU MediaGoblin и OpenHatch.

В номинации, вручаемой проектам, принесшим значительную пользу обществу и способствовавшим решению важных социальных задач, награда присуждена свободному проекту OpenStreetMap, нацеленному на создание общедоступной совместно редактируемой карты мира. От имени OpenStreetMap премию получила Кейт Чапман (Kate Chapman), занимающая пост председателя в организации OpenStreetMap Foundation и являющаяся сооснователем проекта HOT (Humanitarian OpenStreetMap Team).

Список прошлых победителей:

  • 2017 Карен Сэндлер (Karen Sandler), директор правозащитной организации Software Freedom Conservancy;
  • 2016 Александре Олива (Alexandre Oliva), бразильский популяризатор и разработчик свободного ПО, основатель Латиноамериканского Фонда СПО, автор проекта Linux-Libre (полностью свободный вариант ядра Linux);
  • 2015 Вернер Кох (Werner Koch), создатель и основной разработчик инструментария GnuPG (GNU Privacy Guard);
  • 2014 Себастьян Жодонь (Sébastien Jodogne), автор Orthanc, свободного DICOM-сервера для обеспечения доступа к данным компьютерной томографии;
  • 2013 Мэтью Гаррет (Matthew Garrett), один из разработчиков ядра Linux, входящий в технический совет организации Linux Foundation, внёсший значительный вклад в обеспечение загрузки Linux на системах с UEFI Secure Boot;
  • 2012 Фернандо Переc (Fernando Perez), автор IPython, интерактивной оболочки для языка Python;
  • 2011 Юкихиро Мацумото (Yukihiro Matsumoto), автору языка программирования Ruby. Юкихиро уже на протяжении 20 лет участвует в развитии проектов GNU, Ruby и других открытых проектов;
  • 2010 Роб Савуа (Rob Savoye), лидер проекта по созданию свободного Flash-плеера Gnash, участник разработки GCC, GDB, DejaGnu, Newlib, Libgloss, Cygwin, eCos, Expect, основатель компании Open Media Now;
  • 2009 Джон Гилмор (John Gilmore), один из основателей правозащитной организации Electronic Frontier Foundation, создатель легендарного списка рассылки Cypherpunks и иерархии Usenet-конференций alt.*. Учредитель компании Cygnus Solutions, первой начавшей оказывать коммерческую поддержку для решений на базе свободного ПО. Основатель свободных проектов Cygwin, GNU Radio, Gnash, GNU tar, GNU UUCP и FreeS/WAN;
  • 2008 Wietse Venema (известный эксперт в области компьютерной безопасности, создатель таких популярных проектов, как Postfix, TCP Wrapper, SATAN и The Coroner’s Toolkit);
  • 2007 Harald Welte (архитектор мобильной платформы OpenMoko, один из 5 основных разработчиков netfilter/iptables, мантейнер подсистемы пакетной фильтрации Linux ядра, активист движения свободного программного обеспечения, создатель сайта gpl-violations.org);
  • 2006 Theodore T’so (разработчик Kerberos v5, файловых систем ext2/ext3, известный хакер Linux ядра и участник группы, разработавшей спецификацию IPSEC);
  • 2005 Andrew Tridgell (создатель проектов samba и rsync);
  • 2004 Theo de Raadt (руководитель проекта OpenBSD);
  • 2003 Alan Cox (вклад в разработку Linux ядра);
  • 2002 Lawrence Lessig (популяризатор открытого ПО);
  • 2001 Guido van Rossum (автор языка Python);
  • 2000 Brian Paul (разработчик библиотеки Mesa 3D);
  • 1999 Miguel de Icaza (лидер проекта GNOME);
  • 1998 Larry Wall (создатель языка Perl).

Премию за развитие социально значимых свободных проектов получили организации и сообщества: Public Lab (2017), SecureDrop (2016), Library Freedom Project (2015), Reglue (2014), GNOME Outreach Program for Women (2013), OpenMRS (2012), GNU Health (2011), Tor Project (2010), Internet Archive (2009), Creative Commons (2008), Groklaw (2007), Sahana (2006) и Wikipedia (2005).

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

Выпуск свободного видеоредактора OpenShot 2.4.4

Представлен выпуск свободной системы нелинейного видеомонтажа OpenShot 2.4.4. Код проекта поставляется под лицензией GPLv3. Интерфейс написан на Python и PyQt5. Ядро обработки видео (libopenshot) реализовано на C++ и использует возможности пакета FFmpeg. Интерактивная шкала времени написана с использованием HTML5, JavaScript и AngularJS. Для пользователей Ubuntu пакеты с последним выпуском OpenShot доступны через специально подготовленный PPA-репозиторий, для остальных дистрибутивов сформирована самодостаточная сборка в формате AppImage. Имеются сборки для Windows и macOS.

Редактор отличается удобным и интуитивно понятным пользовательским интерфейсом, позволяющим редактировать видео даже начинающим пользователям. Программа поддерживает несколько десятков визуальных эффектов, даёт возможность работы с многотрековыми монтажными шкалами с возможностью перемещения мышью элементов между ними, позволяет масштабировать, кадрировать, осуществлять слияние блоков видео, обеспечивать плавное перетекание из одного ролика в другой, производить наложение полупрозрачных областей и т.п. Имеется возможность перекодирования видео с предварительным просмотром изменений на лету. Благодаря задействованию библиотек проекта FFmpeg OpenShot поддерживает огромное количество форматов видео, звука и изображений (включая полную поддержку SVG).

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

  • Представлен новый полноразмерный виджет для изменения свойств, отображаемый в левой или правой панели интерфейса. Новый виджет позволяет отобразить больше информации без необходимости прокрутки, что особенно полезно при редактировании видео или создании анимации;
  • Модернизирован процесс вставки нового трека, который стал значительно быстрее и проще, включая возможность отката изменения при необходимости. Во всех диалогах добавлена возможность произвольного наименования треков;
  • Обеспечена адаптация параметров ключевых кадров к изменению частоты кадров. Изменение позволяет решить проблемы, возникающие при переключении на другую частоту кадров, такие как запаздывание или слишком ранее применение ключевых кадров;
  • Внесены улучшения в реализацию шкалы времени, включая специальную обработку некоторых видов звуковых файлов для однокадровых видео, обновление фреймворка Angular, оптимизация производительности, улучшение кэширования изображений и устранение подвисаний при потере кадров;
  • Улучшена отрисовка изображений в формате SVG благодаря задействованию для отрисовки библиотеки resvg;
  • Улучшен установщик для Windows, в котором решены проблемы, связанные с конфликтующими DLL;
  • В файлах проектов (*.osp) теперь используются только относительные пути, что позволяет произвольно перемещать каталог с проектом на другие системы. При сохранении проектов текущие пути автоматически конвертируются в относительные, в том числе для записей в истории изменений;
  • Появилась возможность подключения созданных пользователем преднастроек экспорта. Файлы с преднастройками могут помещаться в каталог .openshot_qt/presets, после чего становятся доступными для применения через диалог Export;
  • Добавлена поддержка однопроходного сжатия видео в режиме CRF (Constant Rate Factor), который может использоваться в любых преднастройках экспорта и по умолчанию используется в преднастройках для фортмата VP9;
  • Добавлено меню Help->About OpenShot->Changelog со списком изменений.

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

Анализ утечек конфиденциальных данных через репозитории на GitHub

Группа исследователей из Университета штата Северная Каролина опубликовала результаты (PDF) анализа случайного попадания конфиденциальных данных в публично доступные репозитории на GitHub. Например, из-за недосмотра в репозитории временами попадают оставленные в рабочем каталоге или вшитые в код ключи доступа к облачным сервисам, пароли к СУБД, ключи к VPN и сертификаты для цифровых подписей.

В ходе проделанной работы был исследован как статических срез, включающий 13% репозиториев на GitHub (около 4 млн репозиториев), так и проанализирована динамика появления новых утечек, для чего на протяжении 6 месяцев отслеживались все новые коммиты на GitHub. Для анализа использовались срезы содержимого GitHub, предоставляемые через хранилище BigQuery, а также запросы через Google Search API. Проверка охватывала только типовые форматы закрытых ключей и токены доступа к наиболее популярным платформам, таким как Amazon Web Services (AWS), Azure, Twitter, Google Cloud, Slack, Stripe, Facebook, Mailchimp, MailGun, Twilio, Square, Braintree и Picatic.

В результате было выявлено более 100 тысяч репозиториев, содержащих токены доступа к API или криптографические ключи. Всего было получено 575456 ключей и токенов, из которых 201642 уникальны. Большая часть утечек связана с размещением токенов доступа к Google API и AWS, а также случайно попавшими в репозиторий закрытыми ключами. 93.58% всех утечек выявлены в репозиториях, принадлежащих одному лицу, а не совместным проектам.

Непрерывный мониторинг показал, что ежедневно на GitHub попадает несколько тысяч новых утечек конфиденциальных данных. 6% из выявленных в ходе динамического мониторинга утечек были сразу замечены разработчиками и удалены в течение часа. 12% забытых ключей оставались в открытом доступе не больше 24 часов, а 19% до 16 дней. 81% всех утечек остались незамеченными и продолжали оставаться в репозиториях спустя 16 дней.

Из наиболее заметных утечек отмечается попадание в репозиторий учётных данных к окружениям AWS, используемым одним из крупных сайтов, которым пользуются миллионы учащихся колледжей в США, а также к AWS-окружению сайта государственного учреждения одной из стран Восточной Европы. Кроме того, выявлено 564 ключа к Google API, которые использовались для копирования роликов YouTube на один из сайтов обмена видео в обход ограничений YouTube. В размещённых в репозиториях файлах конфигурации OpenVPN было выявлено 7280 оставленных RSA-ключей, позволяющих получить доступ к тысячам различных приватных сетей.

После передачи информации о выявленных утечках в GitHub, разработчики данного сервиса запустили в тестовом режиме систему автоматизированного сканирования в репозиториях типовых параметров подключения к внешним API. При выявлении утечек сервис-провайдерам направляются уведомления для отзыва скомпрометированных токенов.

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

Выпуск BIND 9.14.0, разрывающий совместимость с серверами, не отвечающими на запросы с EDNS

После более года разработки консорциум ISC представил первый стабильный релиз новой значительной ветки DNS-сервера BIND 9.14. Поддержка ветки 9.14 будет осуществляться до 2 квартала 2020 года в рамках штатного цикла сопровождения. В следующем году будет сформирован LTS релиз 9.16, который будет поддерживаться три года. Обновления для прошлой LTS-ветки 9.11 продолжат выпускаться до декабря 2021 года. Поддержка ветки 9.12 прекратиться в июне.

BIND 9.14.0 стал первым стабильный выпуском, сформированным в рамках новой схемы нумерации версий. Нечётные номера релизов теперь присваиваются экспериментальным веткам, в которых развивается функциональность для будущих стабильных веток, имеющих чётный номер выпуска. Формирование отдельных альфа- и бета-веток прекращено. Таким образом, ветка BIND 9.13 была экспериментальной и на её базе сформирован стабильный релиз BIND 9.14.

Ключевым изменением в BIND 9.14.0 стало отключение кода, позволявшего взаимодействовать с DNS-серверами, на которых используется старое ПО с некорректно реализованной обработкой запросов EDNS (расширенные флаги, которые кодируются в специальных RR-записях без нарушения обратной совместимости со старым протоколом). Изменение не повлияет работу серверов, не поддерживающих EDNS, но корректно обрабатывающих запросы с флагами EDNS.

Проблемы могут возникнуть только с серверами, которые вопреки стандарту не отправляют DNS-ответ в старом формате, отбрасывая флаги EDNS, а молча игнорируют подобные запросы, никак не реагируя на них и не отправляя ответный пакет. При этом авторитативные DNS-серверы могут, как и раньше, не поддерживать EDNS и ограничиваться старым классическим протоколом, но теперь они обязаны корректно реагировать на подобные запросы. В настоящее время все актуальные DNS-серверы корректно отвечают на запросы с EDNS, а проблемные системы, как правило на основе старых выпусков PowerDNS, и блокирующие EDNS межсетевые экраны были уведомлены в рамках проведённой в феврале инициативы DNS flag day.

Ранее для обеспечения взаимодействия с серверами, не отвечавшими на запросы с флагами EDNS, в BIND применялся «грязный хак» — если после отправки запроса с флагами EDNS через определённый промежуток времени не поступал ответ, DNS-сервер считал, что расширенные флаги не поддерживаются и отправлял повторный запрос без флагов EDNS. Наличие подобного кода приводило к увеличению задержек из-за повторной отправки пакетов, повышению нагрузки на сеть и неоднозначности при отсутствии ответа из-за сетевых сбоев, а также мешало внедрению основанных на EDNS возможностей, таких как применение DNS Cookies для защиты от DDoS-атак.

Другие изменения в BIND 9.14.0:

  • Прекращена возможность сборки без OpenSSL и сборки без поддержки DNSSEC. Задействован предоставляемый библиотекой OpenSSL генератор псевдослучайных чисел (CSPRNG), работающий в неблокирующем режиме;
  • Для работы в UNIX-подобных ОС теперь требуется поддержка многопоточности (POSIX threads), расширенных параметров сокетов для IPv6 (RFC 3542) и Си-компилятора с поддержкой атомарных операций. При сборке в Linux для настройки привилегий процесса теперь требуется библиотека libcap;
  • Прекращено тестирование работы на устаревших ОС, включая старые версии UnixWare, BSD/OS, AIX, Tru64, SunOS, TruCluster и IRIX. Также удалена поддержка некоторых устаревших систем;
  • Существенно изменён код для управления задачами и работой с сокетами — задачи теперь распределяются с использованием очередей, закреплённых за ядрами CPU, а в сетевом стеке реализовано несколько циклов обработки событий, запускаемых в привязанных к CPU разных потоках. Указанные изменения позволили существенно повысить производительность на крупных многоядерных системах, особенно при использовании сетевых карт с поддержкой нескольких очередей обработки пакетов;
  • Добавлен новый механизм подключения плагинов, позволяющий подключать дополнительные обработчики запросов, реализованные в форме внешних библиотек. Со временем, планируется выделить в плагины код для обработки необязательных расширений, таких как средства противостояния DDoS-атакам. Например, в плагин filter-aaaa.so заменил собой встроенную реализацию filter-aaaa;
  • В named.conf помимо неполиткорректных названий «master» и «slave» теперь в качестве типов зон можно указывать «primary» и «secondary»;
  • Включены по умолчанию в режиме «relaxed» наработки проекта QNAME Minimization (RFC-7816), нацеленные на сокращение передачи дополнительной информации в запросах с целью предотвращения утечек сведений о запрошенном домене и повышения приватности. В будущих выпусках планируется применить режим «strict». В указанном режиме резолвер не упоминает полное имя искомого хоста в своих запросах к вышестоящему серверу имён. Например, при определении адреса для хоста foo.bar.baz.com резолвер отправит авторитетному для зоны «.com» серверу запрос «QTYPE=NS,QNAME=baz.com», не упоминая «foo.bar»;
  • Добавлен режим зеркалирования зон, позволяющий named получать и работать с локальными копиями зон, но без функционирования в форме авторитетного сервера для данных зон. DNS-ответы для зеркалируемых зон не устанавливают бит AA («authoritative answer»), но выставляют бит AD («authenticated data»). Основным назначением указанной возможности является обработка локальных копий корневой зоны DNS;
  • Существенно повышена производительность работы с большим числом зон, обработки большого числа запросов и работы с корневой зоной. Расширено применение glue-cache, ускорена работа сетевых обработчиков за счёт исключения миграции между ядрами CPU. В проведённых тестах по сравнению с BIND 9.12 производительность обработки тысячи зон возросла на 20%, миллиона зон на 15%, выполнение миллиона операций делегирования на 10%, обработка миллиона RR-запросов на 12%, рекурсивная обработка запросов на 18% и обработка корневой зоны на 10%;
  • Добавлена настройка validate-except для определения списка доменов, для которых не нужно производить валидацию DNSSEC;
  • Добавлена опция «—enable-fips-mode» для включения FIPS-режима в OpenSSL;
  • Добавлены новые настройки min-cache-ttl и min-ncache-ttl для переопределения минимального TTL для полученных DNS записей (positive caching) и несуществующих записей (negative caching);
  • Добавлена поддержка сборки с библиотекой libidn2 для поддержки интернационализированных имён IDNA2008 (ранее поддерживалась только библиотека idnkit-1 и IDNA2003).

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

Релиз браузера Falkon 3.1.0, развиваемого проектом KDE

После почти года разработки состоялся релиз браузера Falkon 3.1.0, пришедшего на смену QupZilla после перехода проекта под крыло сообщества KDE и переноса разработки в инфраструктуру KDE. Ожидается, что разработка под эгидой KDE позволит привлечь к работе над браузером новых разработчиков и стимулировать развитие проекта. Код проекта распространяется под лицензией GPLv3.

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

  • Добавлена поддержка написания плагинов с использованием QML. Стабилизирована поддержка плагинов на языке Python;
  • Добавлен плагин MiddleClickLoader, вставляющий текст из буфера обмена при нажатии средней кнопки мыши;
  • Добавлен плагин для интеграции с KDE и обеспечения доступа к страницам из компонентов KDE Frameworks;
  • Добавлена начальная поддержка клиентских сертификатов (требуется QtWebEngine 5.12+);
  • Добавлена возможность регистрации собственных обработчиков протоколов (например, torrent://, sftp:// и т.п.)
  • Оформление панели поиска приведено к соответствию с оформлением приложений KDE;
  • Осуществлён переход на использование DBus вместо файлов блокировки и сокетов для взаимодействия с другими экземплярами приложения;
  • Cookie, помещённые в белый список, теперь не удаляются при вызове функции удаления всех Cookie;
  • В плагине VerticalTabs обеспечена возможность удаления групп свёрнутых вкладок кликом средней кнопкой мыши.
  • Устранены крахи в реализации AdBlock;
  • Улучшена совместимость с QtWebEngine 5.12 и обеспечена поддержка сборки с обособленными выпусками QtWebEngine.

Особенности Falkon:

  • Первостепенное внимание уделяется экономии потребления памяти, обеспечению высокого быстродействия и поддержанию отзывчивости интерфейса;
  • При построении интерфейса используется родной для каждого десктоп-окружения набор пиктограмм, виджетов и стилей, что позволяет обеспечить оформление, неотличимое от штатных программ для GNOME, KDE и Windows. В интерфейсе активно используются вкладки;
  • Интегрированная подсистема блокирования рекламы (AdBlock). Для блокирования можно использовать как внешние чёрные списки (EasyList от Adblock Plus), так и добавлять собственные правила блокирования рекламы. Поддержка быстрого блокирования Flash-роликов и наличие режима активации Flash-контента только после клика;
  • Панель быстрого запуска (Speed-dial), выводимая вместо пустых страниц и позволяющая организовать быстрый доступ к наиболее часто используемым сайтам;
  • Панель быстрого поиска, позволяющая мгновенно отправить запрос к определённым поисковым системам и сайтам;
  • Унифицированный интерфейс для работы с закладками, историей посещений и RSS-лентами, оформленный внутри одного окна;
  • Поддерживается возможность изменения оформления через подключение внешних визуальных тем. Гибкие возможности по настройке интерфейса;
  • Поддержка расширения функциональности через плагины;
  • Менеджер безопасных соединений (SSL Manager), позволяющий управлять локальными CA-сертификатами;
  • Режим приватной навигации, при котором данные об открытых страницах не оседают в кэше и истории посещений;
  • Управление закладками в стиле Chrome (через звёздочку в адресной строке). Реализация настроек также напоминает подход, принятый в Chrome;
  • Поддержка импорта закладок из браузеров Firefox и Chrome;
  • Интерфейс управления Cookie;
  • Поддержка написания дополнений для обработки содержимого web-страниц с использованием скриптов GreaseMonkey;
  • Поставка плагина PIM (Personal Information Manager) с реализацией системы управления персональной информацией, используемой для автоматизации заполнения персональных данных в web-формах (например, заполнение ФИО, email и т.п.);
  • Использование библиотеки Qt и модуля QtWebEngine, без привязки к библиотекам KDE и без добавления компонентов KDE в обязательные зависимости (интеграция с KDE реализована через плагин).

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

Доступен Wayland 1.17

Состоялся стабильный релиз протокола, механизма межпроцессного взаимодействия и библиотек Wayland 1.17. Ветка 1.17 обратно совместима на уровне API и ABI с выпусками 1.x, но дополнительно содержит порцию улучшений. Кроме устранения проблем и недоработок в Wayland 1.17 переработан код для вывода сведений о внутренних ошибках сервера, обновлён протокол wl_seat и обеспечено приоритетное использование wl_surface.damage_buffer.

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

Смена значительного номера версии Weston обусловлена изменениями ABI, нарушающими совместимость. В новой ветке Weston:

  • Добавлены сценарии сборки на базе системы meson (поддержка autotools сохранена, но требует указания флага «—enable-autotools» в configure).
  • Обеспечена поддержка стабильного протокола xdg-shell (интерфейс для создания и взаимодействия с поверхностями как с окнами).
  • В compositor-drm добавлена поддержка виртуального устройства вывода (настраивается в секции remote-output в weston.ini).
  • Добавлен плагин «remoting» для потоковой трансляции вывода на внешние хосты с использованием виртуального устройства вывода. Плагин запускается автоматически при наличии настроек виртуального вывода. Информация передаётся через отправку motion jpeg через RTP при помощи gstreamer. На удалённой стороне для просмотра достаточно любого RTP-клиента (на базе gstreamer также подготовлен скрипт remoting-client-receive.bash).
  • Добавлена реализация клиента simple-dmabuf-egl с поддержкой совместного использования нескольких видеокарт при помощи технологии DMABuff.
  • В libweston добавлен API для управления конфигурацией (weston_config), флаг для проверки прозрачности (is_opaque в weston_surface) и средства синхронизации на базе вызова sync_file (zwp_linux_explicit_synchronization_v1).
  • Добавлен API для отладки и специальный отладочный режим работы с выводом детальных логов (опция weston_debug).
  • Расширены возможности оболочки для автомобильных информационно-развлекательных систем (ivi-shell).
  • Добавлены дополнительные настройки ввода для libinput.
  • Улучшена поддержка буфера обмена в xwayland.
  • Обеспечена установка weston-screenshooter.
  • Добавлена настройка для включения отрисовки на базе библиотеки pixman.
  • В gl-renderer добавлена поддержка синхронизации GPU через fence sync fd.

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

  • В Firefox 65 включена штатная поддержка работы в графических окружениях на основе протокола Wayland. Для использования Wayland теперь достаточно запустить Firefox с переменной окружения GDK_BACKEND, выставленной в значение «wayland»;
  • В Fedora 30 решено поставлять по умолчанию сборку Firefox на базе Wayland;
  • В GTK+ 3.24 в бэкенд, обеспечивающий работу поверх дисплейного сервера Wayland, добавлена поддержка протоколов ввода gtk-text-input и text-input-unstable-v3, обеспечено масштабирование курсора, а также устранены многие проблемы;
  • Панель рабочего стола MATE 1.22 адаптирована для работы под управлением бэкенда на основе протокола Wayland;
  • В GNOME 3.32 для сеанса на базе Wayland реализована поддержка дробного масштабирования;
  • Компания BMW открыла систему распределённой отрисовки RAMSES, поддерживающую Wayland;
  • Доступен первый стабильный выпуск пользовательского окружения Sway 1.0, использующего Wayland;
  • Опубликован Cage, композитный сервер на базе Wayland для запуска отдельных приложений в режиме киоска;
  • В KDE 5.15 полностью реализованы протоколы XdgStable, XdgPopups и XdgDecoration. В окружениях на базе Wayland обеспечена поддержка виртуальных рабочих столов, в том числе добавлена возможность выборочного размещения окна на заданных виртуальных рабочих столах (при использовании X11 подобной возможности нет и окно можно поместить либо на один виртуальный рабочий стол, либо на все). Добавлена поддержка перемещения элементов в режиме drag&drop при помощи жеста на сенсорном экране или тачпаде;
  • В мультимедийном центре Kodi 18.0 представлена поддержка Wayland;
  • В бета-версии Red Hat Enterprise Linux 8 рабочий стол GNOME по умолчанию использует Wayland;
  • В дисплейном сервере Mir стабилизированы средства для запуска Wayland-приложений и использования Mir в качестве композитного сервера для Wayland;

  • Дистрибутив Lubuntu наметил переход на Wayland на 2020 год. Поддержку Wayland планируется реализовать через портирование оконного менеджера Openbox на использование дисплейного сервера Mir, применяемого в качестве композитного сервера для Wayland;
  • Развивается проект AsteroidOS, в рамках которого предложена открытая ОС для умных часов, использующая Qt5 и Wayland;
  • Обеспечена поддержка Wayland в панели Latte Dock;
  • В рамках подготовки будущего стабильного релиза GTK+ 4 ведётся работа по модернизации API в контексте поддержки Wayland. Реализована новая платформа методов ввода, базирующаяся на протоколе Wayland;
  • В openSUSE Leap 15 предложен опциональный сеанс KDE на базе Wayland. При выборе GNOME по умолчанию предлагается Wayland;
  • В SUSE Linux Enterprise 15 задействован рабочий стол GNOME 3.26, по умолчанию работающий поверх Wayland;
  • Подготовлен тестовый выпуск платформы Tizen 5.0, по умолчанию использующей Wayland.
  • Бэкенд Qt Wayland добавлен в состав базовых сборок Qt. Развиваемая проектом Qt платформа для автомобильных систем Qt Automotive Suite включает Qt Wayland Compositor, многопоточную систему отрисовки для встраиваемых устройств, использующую протокол Wayland;
  • Продолжается работа над выпуском пользовательского окружения LXQt 1.0.0, главной задачей при разработке которого является доведение до полной готовности возможности работы поверх Wayland;
  • Fedora 29 стал пятым выпуском, в котором по умолчанию предложен сеанс GNOME на базе Wayland;

  • В разрабатываемой компанией LG открытой платформе webOS Open Source Edition развивается новый композитный менеджер, основанный на протоколе Wayland;
  • Продолжатся работа по улучшению поддержки Wayland в Enlightenment;
  • В дисплейном сервере Mir развивается возможность работы клиентов Wayland, что позволяет организовать запуск Wayland-приложений в окружении Mir, используя Mir в качестве композитного сервера для Wayland;
  • Система вывода в механизме для запуска виртуальных машин с Linux в ChromeOS предоставляет встроенную поддержку Wayland-клиентов (virtio-wayland) с выполнением композитного сервера на стороне основного хоста и возможностью эффективного использования GPU из гостевых систем;
  • Для FreeBSD развиваются порты, необходимые для сборки KDE с поддержкой Wayland;
  • В ОС DragonFly BSD развивается порт с Wayland и Weston, имеется поддержка XWayland;
  • Использующие Wayland пользовательские окружения papyros-shell и Hawaii объединились в новый проект Liri. Liri базируется на Qt 5 (QML) и продвигает оформление в стиле Material Design;
  • Wayland задействован по умолчанию в мобильных платформах Plasma Mobile и Sailfish 2.
  • В панели Cairo-Dock предусмотрена возможность работы в окружении композитного сервера Weston.
  • Для тестирования работы GNOME, KDE и Enlightenment, Hawai и Orbital поверх Wayland выпускается специальный Live-дистрибутив Rebecca Black Linux.

Напомним, что 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 и может обрастать функциональностью через плагины и дополнения. Пользовательские оболочки и расширенные функций управления окнами предлагается реализовывать в форме внешних бэкендов к Weston.

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

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