Выпуск мультимедиа-пакета FFmpeg 4.0

После шести месяцев разработки доступен мультимедиа-пакет FFmpeg 4.0, включающий набор приложений и коллекцию библиотек для операций над различными мультимедиа-форматами (запись, преобразование и декодирование звуковых и видеоформатов). Пакет распространяется под лицензиями LGPL и GPL, разработка FFmpeg ведётся смежно с проектом MPlayer. Новый выпуск примечателен поддержкой видеокодека AV1, возможностью сборки с LibreSSL, реализацией порции новых фильтров и появлением декодировщиков и кодировщиков, использующих для ускорения NVIDIA NVDEC и AMD AMF.

Из изменений, добавленных в FFmpeg 4.0, можно выделить:

  • Добавлена поддержка видеокодека нового поколения AV1, который развивается альянсом Open Media, в который входят Google, Microsoft, Apple, Mozilla, Facebook, Amazon, Intel, AMD, ARM, NVIDIA, Netflix и Hulu;
  • Добавлена поддержка LibreSSL (через libtls);
  • Новые кодировщики и декодировщики:
    • Декодировщики H.264, HEVC, MJPEG, MPEG-1/2/4, VC1, VP8/9, использующие механизм аппаратного ускорения NVIDIA NVDEC;
    • Декодировщики MJPEG и VP8, реализованные на базе VAAPI;
    • Кодировщики H.264 и HEVC, использующие для ускорения AMD AMF (Advanced Media Framework);
    • Кодировщик MJPEG, использующий механизм аппаратного ускорения Intel QSV;
    • Кодировщик видео без потери качества MagicYUV;
    • Кодировщик и декодировщик для звуковых кодеков aptX и aptX HD от компании Qualcomm;
    • Кодировщик VideoToolbox HEVC и модуль для задействования аппаратного ускорения;
    • Кодировщик и декодировщик для звукового кодека SBC;
    • Кодировщик и декодировщик для голосового кодека codec2, реализованный на базе библиотеки libcodec2;
  • Добавлен распаковщик медиа-контейнеров (demuxer) в формате TiVo ty/ty+;
  • Новые фильтры:
    • Добавлены фильтры битового потока (bitstream) для редактирования на лету метаданных в потоках H.264, HEVC и MPEG-2;
    • Добавлен фильтр битового потока для извлечения кодированного звука E-AC-3;
    • Добавлен вариант фильтра наложения видео (overlay), реализованный с использованием механизма аппаратного ускорения Intel QSV;
    • Добавлен вариант фильтра наложения видео, ускоренный при помощи OpenCL;
    • Добавлены варианты фильтров настройки цветового баланса (ProcAmp), подавления шумов и повышения чёткости, ускоренные при помощи VAAPI;
    • mix — слияние нескольких видеопотоков в один;
    • normalizeнормализация RGB-видео (растяжение контраста и гистограмм);
    • fillborders — заполнение границ входного видео без изменения размеров видеопотока;
    • setrange — ограничение цветового диапазона видео;
    • vfrdet — определение видео с постоянной или переменной частотой кадров;
    • deconvolve — устранение искажений на видео при помощи 2D-деконволюции;
    • entropy — измерение энтропии уровня оттенков серого в гистограмме цветовых каналов видео;
    • lv2 — позволяет загрузить любой внешний плагин обработки звука в формате LV2 (LADSPA Version 2);
    • mcompand — расширение динамического диапазона звука;
    • acontrast — сужение или расширение динамического диапазона звука;
    • hilbert — генерирует коэффициенты для преобразования Гильберта;
    • aiir — применение к звуку произвольного фильтра с бесконечной импульсной характеристикой;
    • drmeter — измерение динамического диапазона звука;
    • hapqa_extract — извлекает из HAPQA-файлов информацию о цветах RGB или прозрачности без переупаковки файла;
    • filter_units — удаляет из потока юниты определённого типа;
  • Добавлено устройство ввода для камеры на платформе Android (android_camera);
  • Добавлена поддержка зависимых кадров E-AC-3;
  • Добавлена поддержка протокола потоковой передачи Haivision SRT (Secure Reliable Transport);
  • Прекращена поддержка сборки для Windows XP. В качестве минимальной версии Windows обозначен выпуск Windows Vista;
  • Из поставки удалены приложения ffserver, ffmenc и ffmdec.

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

Компания Oracle представила универсальную виртуальную машину GraalVM

Компания Oracle анонсировала первый релиз проекта GraalVM, в рамках которого развивается универсальная виртуальная машина для запуска приложений, написанных на JavaScript (Node.js), Python, Ruby, R, любых языках для JVM (Java, Scala, Clojure, Kotlin) и языках для которых может формироваться биткод LLVM (C, C++, Rust). Код проекта распространяется под лицензией GPLv2. Несмотря на анонс от Oracle, выпуск GraalVM 1.0 пока имеет статус кандидата в релизы.

GraalVM изначально развивалась как универсальная виртуальная машина, способная обеспечить высокопроизводительное выполнение кода на любых языках программирования и предоставляющая средства для организации взаимодействия между кодом на различных языках, дающая возможность создавать комбинированные приложения с компонентами на разных языках.

Вместо преобразования структур данных в подобных программах, GraalVM позволяет непосредственно обращаться к объектам и массивам из других языков, убирая изоляцию между языками и позволяя использовать общий runtime. Например, из JavaScript-кода для Node.js можно обращаться к библиотеке классов Java или из кода на Java вызывать функции обработки статистики на языке Python, или запускать код на языке R для создания сложных SVG-графиков. Используя GraalVM программист может сочетать в одном проекте разные языки, выбирая язык наиболее подходящий для каждого вида задач.

GraalVM может применяться как для создания обособленных исполняемых приложений, так и как часть платформ, подобных OpenJDK и Node.js, или даже встраиваясь как движок обработки данных в СУБД, такие как MySQL и Oracle. Для запуска приложений предлагается стандартизированное окружение для выполнения на базе HotSpot JVM. GraalVM предоставляет JIT-компилятор, который может на лету выполнять в JVM код любых скриптовых языков, включая JavaScript, Ruby, Python и R, а также даёт возможность запускать нативный код в JVM, преобразованный в биткод LLVM. Предоставляемый GraalVM инструментарий включает независимые от языков программирования отладчик, систему профилирования и анализатор распределения памяти.

Для языков на базе JVM имеется возможность создания скомпилированных нативных образов, которые можно выполнять напрямую с минимальным потреблением памяти. Для создания таких исполняемых образов применяется предварительный статический анализ для выявления всего кода, который охватывает выполнение основного Java-метода, после чего к этому коду применяется полноценная упреждающая компиляция (AOT, ahead-of-time). Функциональность управления памятью и потоками реализована через подключение специальной Substrate VM, которая может компилироваться в исполняемый код. В результате формируется исполняемый файл, включающий машинный код приложения, готовый к незамедлительному выполнению без громоздких прослоек, таких как HotSpot VM.

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

Компания Apple открыла код распределённой СУБД FoundationDB

Компания Apple перевела в разряд свободных проектов СУБД FoundationDB, относящуюся к классу NoSQL-систем, манипулирующих данными в формате ключ/значение. Особенностью FoundationDB является возможность создания больших распределённых хранилищ, в которых возможно использование полноценных транзакций, удовлетворяющих требованиям ACID (атомарность, согласованность, изолированность, надежность) для всех операций с данными. Код СУБД написан на языке С++ и поставляется под лицензией Apache 2.0.

Компания Apple поглотила FoundationDB в 2015 году и теперь намерена перейти к открытой модели разработки FoundationDB. Кроме публикации кода под открытой лицензии, началось становление сообщества и переход к открытой модели разработки, при которой все решения будут приниматься прозрачно и любой желающий сможет предложить свои изменения и улучшения. Наиболее активные разработчики из сообщества смогут принимать участие в принятии решений и

Разработчики заявляют, что FoundationDB является одной из самых хорошо протестированных и надёжных СУБД, что подтверждается активным применением данной системы в инфраструктуре Apple и некоторых других крупных компаний. FoundationDB позволяет создавать хранилища для обработки очень больших наборов структурированных данных, распределённых на узлах кластера из типовых серверов. Для обеспечения отказоустойчивости применяется репликация данных на несколько узлов.

Распределённое хранилище основано на архитектуре «shared-nothing«, в которой каждый узел является независимым и самодостаточным звеном, а вся система лишена единой точки отказа. Хранилище хорошо подходит к нагрузкам с большим числом операций чтение/запись, но также обеспечивает отличную производительность и в условиях, в которых преобладают операции записи. Взаимодействие с СУБД производится при помощи API и биндингов для различных языков программирования (C/C++, Python, Perl, Ruby, Java, Go, Node.js, PHP).

Важной особенностью FoundationDB также является предоставление очень эффективного низкоуровневого интерфейса, позволяющего любым другим системам, использовать FoundationDB для распределённого хранения информации в согласованном состоянии. Например, на базе FoundationDB могут быть подготовлены фронтэнды для более крупных универсальных СУБД, для хранения различных моделей данных, для применения различных языков формирования запросов (например, SQL и документо-ориентированные системы), для хранения метаданных в распределённых ФС, для организаци распределённых очередей задач и т.п.

На системе разработчика FoundationDB может быть запущен в одноузловом режиме (single-server), который затем может быть расширен до кластера (для добавления нового узла достаточно скопировать на новый узел файл fdb.cluster с уже работающего узла).

Основные возможности:

  • Мультимодельное хранилище, позволяющее сохранять любые типы данных в одной БД. Все данные надёжно сохраняются, распределяются и реплицируются в низкоуровневом представлении ключ/значение. Поддерживается упорядоченное сохранение ключей, что позволяет применять эффективные выборки по диапазонам значений;
  • Поддерживается два движка хранения: ssd — хранение данных на диске с использованием структуры B-tree (хранилище оптимизировано для SSD-накопителей), и memory — для хранения данных в памяти со сбросом лога транзакций на диск;
  • Устойчивость к сбоям и простота масштабирования. СУБД FoundationDB проста в установке, расширении хранилища и управлении. СУБД имеет распределённую архитектуру, позволяющую легко масштабироваться и на лету обрабатывать сбои, работая при этом как единая цельная транзакционная БД, соответствующая требованиям ACID;
  • В рамках транзакции может быть прочитано и записано произвольное число ключей, хранимых на любых узлах кластера, но время жизни транзакции не может превышать 5 секунд, а размер не должен превышать 10 Мб записываемых данных. Размер ключа не должен превышать 10 Кб, а размер данных 100 Кб.
  • Обеспечение очень высокой производительности на типовом оборудовании. СУБД FoundationDB способна справляться с очень жесткими нагрузками, требуя при этом минимальных затрат на оборудование;
  • Готовность к промышленному применению. FoundationDB уже многие годы применяется в крупных промышленных инфраструктурах. Для тестирования внедрена специальная система, основанная на движке детерминистической симуляции.

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

Выпуск KDE Applications 18.04

Доступен релиз набора KDE Applications 18.04, включающего подборку пользовательских приложений, адаптированных для работы с KDE Frameworks 5. Набор KDE Applications пришёл на смену приложениям из состава KDE SC, которые теперь развиваются в рамках отдельного цикла разработки, не привязанного к веткам KDE, и выпускаются по новой схеме нумерации версий. Информацию о наличии Live-сборок с новым выпуском можно получить на данной странице.

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

  • Включены в состав набора KDE Applications и переведены с kdelibs4 на использование KDE Frameworks 5 новые приложения: программа для записи видео с web-камер Kamoso, инструмент резервного копирования KBackup и клиент для мгновенного обмена сообщениями Kopete;
  • Представлена достаточно большая порция улучшений в файловом менеджере Dolphin:
    • Реализована возможность скрытия отдельных секций в панели с избранными путями (Places), добавлена новая секция Network для сохранения ссылок на сетевые разделы.
    • Панель с терминалом (Terminal) теперь может быть прикреплена к любой стороне окна. Добавлена подсказка при попытке открытия панели с терминалом без установки Konsole.
    • Улучшена поддержка HiDPI в информационной панели.
    • Добавлен отдельный значок для пустой корзины.
    • Добавлена настройка ‘Show Target’ для упрощения определения файлов, на которые указывают символические ссылки.
    • Улучшена интеграция с Git — в контекстное меню, показываемое для каталогов с репозиториями Git, добавлены операции ‘git log’ и ‘git merge’.
    • Добавлена горячая клавиша «/» для быстрого вызова фильтра (Filter Bar).
    • Реализована поддержка сортировки и группировки фотографий по дате. Ускорено выполнение операций drag-and-drop с большим числом мелких файлов.
    • Добавлена поддержка отмены операции пакетного переименования файлов.

  • Заметно расширены возможности просмотрщика изображений Gwenview:
    • Добавлена поддержка удалённого управления с использованием протокола MPRIS, что позволяет применять контроллеры MPRIS для управления показом полноэкранных слайдшоу.
    • Появилась возможность отключения кнопок на миниатюрах изображений.
    • В инструменте кадрирования обеспечено сохранение параметров при переходе к другому изображению и добавлена возможность фиксации формы для кадрирования при удержании клавиши ‘Shift’ или ‘Ctrl’.
    • В полноэкранном режиме предусмотрена возможность выхода через нажатие клавиши ‘Escape’, при этом настройки будут запомнены и следующий сеанс будет запущен в полноэкранном режиме.
    • Улучшена читаемость файловых путей в списке недавно открытых каталогов (Recent Folders) и добавлены необходимые контекстные меню для записей в списке недавно открытых файлов (Recent Files).
    • Переключаться между режимами навигации и просмотра теперь можно через клик на каталог в боковой панели. Текущий режим просмотра запоминается при переходе к другим каталогам.
    • Функция ‘Fit Width’ заменена на более общую возможность ‘Fill’ для равномерного заполнения экранного пространства;
    • По аналогии с другими типами изображения для SVG включена возможность увеличения размера при активации опции ‘Image View / Enlarge Smaller Images’;
    • Обеспечена синхронизация миниатюр и содержимого предпросмотра после редактирования изображения;
    • При переименовании изображений расширение файла теперь не выделяется по умолчанию;
    • При вызове диалога ‘Move/Copy/Link’ по умолчанию отображается текущий каталог;
    • В настройки добавлены дополнительные опции для управления преобразованием цветов ICC;
    • Кнопка полноэкранного режима теперь приводит к непосредственному показу изображения вместо отображения содержимого каталога.
    • Проведена модернизация эмулятора терминала Konsole.
      • Обеспечена возможность загрузки цветовых схем через KNewStuff.
      • Полоса прокрутки оптимизирована для лучшего сочетания с активной цветовой схемой.
      • Панель вкладок теперь по умолчанию показывается только при необходимости.
      • Добавлена опция для работы в режиме только для чтения (запрещается вставка из буфера обмена).
      • Добавлена опция для копирования текста как HTML.
      • При запуске под управлением Wayland добавлена поддержка drag-and-drop.
      • Улучшена поддержка протокола ZMODEM.
      • Решены проблемы с прокруткой колесом мыши и запрещена цикличная прокрутка истории операций;

    • В музыкальный проигрыватель JuK добавлена поддержка Wayland и добавлены новые возможности интерфейса, такие как поддержка скрытия панели с меню и визуальный индикатор для воспроизводимого в данный момент трека. Устранены проблемы с автовоспроизведением после возврата из спящего режима;
    • В видеоредакторе Kdenlive улучшена поддержка HiDPI, устранены искажения при изменении размера клипа, исправлена ошибка, приводящая к краху при запуске. Повышены требования к версии MLT (требуется MLT 6.6.0 или более новый выпуск);
    • В просмотрщике документов Okular добавлена возможность отмены выполнения операций отрисовки PDF и извлечения текста (например, можно мгновенно отменить изменение масштаба, не дожидаясь окончания перерисовки). Улучшена поддержка JavaScript в PDF для форм AFSimple_Calculate;
    • В KMail расширены средства для сопровождения бронирования и заказа билетов по email, значительно улучшена поддержка бронирования билетов на поезда и задействована Wikidata БД аэропортов для отображения корректной информации о полётах. Добавлен новый обработчик для извлечения данных из писем с неструктурированной информацией о заказах билетов. Кроме того, в KMail возвращена поддержка показа структуры сообщения при помощи нового плагина ‘Expert’. В Sieve Editor добавлен плагин для выбора сообщений из базы Akonadi. Улучшен поиск текста в редакторе сообщений, добавлена поддержка регулярных выражений при поиске;
    • Улучшен интерфейс приложения для создания скриншотов. Переработана нижняя строка кнопок, добавлены кнопка перехода к настройкам, кнопка открытия каталога с последним скриншотом и кнопка для запуска программы записи скринкастов. Обеспечено запоминание последнего выбранного режима сохранения скриншотов. Эскизы скриншотов теперь формируются с учётом коэффициента соотношение сторон экрана. Упрощено окно с настройками. Реализовано автоматическое добавление заголовка окна к имени скриншота. Добавлены опция для выхода после операции сохранения или копирования скриншота;
    • В менеджер сертификатов Kleopatra добавлена возможность генерации ключей Curve 25519 EdDSA при помощи GnuPG. Добавлен режим просмотра ‘Notepad’ для создания/проверки цифровых подписей и шифрования/расшифровки текста непосредственно в приложении. В блок ‘Certificate details’ добавлена возможность экспорта сертификата;
    • В программе для работы с архивами Ark появилась возможность остановки сжатия или распаковки ZIP-архивов, при использовании бэкенда libzip.

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

Стабильный релиз СУБД MySQL 8.0

После двух с половиной лет разработки компания Oracle представила первый стабильный релиз СУБД MySQL 8.0. Версия 8.0 обусловлена сменой нумерации версий, релиз выпущен следом за 5.7 вместо версии 5.8. Сборки MySQL Community Server 8 сформированы для всех основных дистрибутивов Linux, FreeBSD, macOS и Windows.

Ключевые улучшения MySQL 8.0:

  • Добавлены оконные функции (window-функции или аналитические функции), позволяющие для каждой строки запроса выполнить вычисления, используя строки, связанные с текущей строкой. В отличие от агрегатных функций над сгруппированными строками, которые свёртывают сгруппированный набор строк в одну строку, оконные функции производят агрегирование для каждой строки в результирующем наборе. Реализованы как специальные оконные функции RANK, LAG, ROW_NUMBER, FIRST_VALUE, LEAD, LAG и NTILE, так как возможность применение некоторых агрегатных функций в форме оконных (например, COUNT, SUM, AVG, MIN, MAX);
  • Поддержка рекурсивных и не рекурсивных обобщённых табличных выражений (Common Table Expression), позволяющих использовать временные именованные результирующие наборы, задаваемые при помощи оператора WITH;
  • В InnoDB добавлена поддержка опций NOWAIT и SKIP LOCKED, которые можно использовать для управления поведением при наличии блокировок в момент выполнения выражений «SELECT … FOR SHARE» и «SELECT … FOR UPDATE». При указании NOWAIT управление будет возвращено сразу с выводом ошибки, если запрошенная строка заблокирована другой транзакцией, а при «SKIP LOCKED» заблокированные строки будут исключены из результирующего набора;
  • Поддержка невидимых индексов (Invisible Indexes), которые никогда не используются оптимизатором. Управление видимостью индекса производится при помощи ключевых слов VISIBLE и INVISIBLE. Обычный видимый индекс может быть превращён в невидимый и наоборот. Невидимые индексы можно использовать для тестирования влияния того или иного индекса на производительность, без физического удаления данного индекса (индекс можно перевести в режим невидимого, изучить изменение производительности и вернуть обратно);
  • Поддержка нисходящих индексов (descending indexes), позволяющих использовать оператор «DESC» при определении индекса для сохранения значений ключей в порядке убывания. В работе подобные индексы не требуют сканирования в обратном порядке, что значительно увеличивает эффективность работы с убывающими значениями;
  • Реализована функция GROUPING(), которая позволяет отделить NULL-значения, полученные в результате агрегирования строк при группировке GROUP BY с использованием таких расширений, как ROLLUP, от NULL-значений в обычных сгруппированных строках;
  • Добавлены новые подсказки для управления поведением оптимизатора (задаются внутри комментария /*+ */, указываемого сразу после ключевых слов SELECT, INSERT, REPLACE, UPDATE и DELETE): INDEX_MERGE и NO_INDEX_MERGE для управления поведением слияния индексов для отдельных запросов, JOIN_FIXED_ORDER, JOIN_ORDER, JOIN_PREFIX и JOIN_SUFFIX для управления порядком обработки таблиц при выполнении слияния, SET_VAR для установки системной переменной в контексте текущего выражения;
  • Добавлены новые функции для манипуляции данными в формате JSON:
    • Расширен синтаксис для определения диапазонов значений в JSON, например «SELECT JSON_EXTRACT(‘[1, 2, 3, 4, 5]’, ‘$[1 to 3]’);».
    • Добавлена поддержка табличных функций, позволяющих использовать SQL для данных JSON (при помощи функции JSON_TABLE() создаётся реляционного представление данных JSON).
    • Добавлены агрегатные функции JSON_ARRAYAGG() для генерации массивов JSON и JSON_OBJECTAGG() для генерации объектов JSON.
    • Добавлены функции слияния JSON_MERGE_PATCH() и JSON_MERGE_PRESERVE().
    • Добавлена функция JSON_PRETTY() для приведения блоков JSON к читаемому виду;
    • Добавлена функция JSON_STORAGE_SIZE() для вычисления размера, который занимает объект JSON;
    • От 1.2 до 18 раз увеличена производительность сортировки и группировки значений JSON;
  • Добавлен режим работы в качестве хранилища документов (Document Store), к которому можно обращаться с использованием методов NoSQL (коллекции JSON без предварительно определяемой схемы хранения). Функциональность реализована при помощи плагина mysqlxplugin;
  • Добавлена поддержка пространственных типов данных, индексов и функций, позволяющих работать с географическими координатами и картографическими данными;
  • По умолчанию задействована кодировка UTF8MB4 (ранее применялась кодировка latin1) и поддержка свойства локали «Collation», позволяющего задавать правила сортировки и методы сопоставления с учётом смысла символов. По сравнению с версией MySQL 5.7 существенно (до 20 раз) увеличена производительность сортировки данных в кодировке UTF8MB4;
  • Добавлены новые функции для использования регулярных выражений REGEXP_INSTR(), REGEXP_LIKE(), REGEXP_SUBSTR() и долгожданная функция замены при помощи регулярных выражений REGEXP_REPLACE(). Кроме того, в регулярных выражениях реализована корректная работа с многобайтовыми Unicode-символами;
  • Transactional Data Dictionary — новый механизм хранения системных данных, поддерживающий транзакции и реализованный в виде набора SQL-таблиц, хранимых в отдельном табличном пространстве InnoDB (хранение системных данных и метаданных в MyISAM прекращено);
  • Новая система ролей (именованных коллекций привилегий), позволяющая делегировать и блокировать полномочия для групп пользователей;
  • Добавлена возможность переименования столбцов (ALTER TABLE … RENAME COLUMN old_name TO new_name);
  • Задействован по умолчанию плагин аутентификации caching_sha2_password, использующий SHA-256 для хэширования паролей, но по сравнению с плагином sha256_password обеспечивающий более высокую производительность за счёт использования кэширования;
  • Добавлена защита от атак по подбору паролей. В случае нескольких неудачных попыток аутентификации теперь между следующими попытками добавляется задержка;
  • Добавлена команда «SET PERSIST«, позволяющая менять значения переменных конфигурации с сохранением их между перезапусками. Также добавлена команда RESTART, позволяющая удалённо перезапустить MySQL при наличии соответствующих полномочий;
  • В качестве библиотеки с реализацией TLS/SSL по умолчанию задействован OpenSSL;
  • Добавлена поддержка шифрования Undo- и Redo-логов;
  • Проведены различные оптимизации производительности, например, в тесте upto при 4 одновременно работающих клиентах достигнуто почти двухкратное ускорение — продемонстрирована производительность на уровне 1.8 млн запросов в секунду. Скорость запросов к таблицам Performance Schema возросла до 30 раз, а к таблицам Information Schema до 100 раз.

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

Проект Python представил новый каталог пакетов PyPI и пакетный менеджер Pip 10

Введён в строй новый каталог пактов PyPI для разработчиков на языке Python. Все web-запросы и обращения к API, включая «pip install», перенаправлены со старого pypi.python.org на новый сайт pypi.org. Старый сайт останется доступен до 30 апреля, после чего будет отключен. Новый PyPI полностью переписан и переведён на новый движок Warehouse с шаблонизатором Jinja2 и web-интерфейсом на базе JavaScript-фреймворков Stimulus и gulp.

Внешний вид переделан с нуля и отвечает современным требованиям к адаптивной вёрстке. Появилась поддержка отображения README-файлов с разметкой Markdown. Значительно улучшены средства поиска (задействован ElasticSearch), результаты которого теперь могу группироваться по релевантности и времени последнего обновления. Расширены возможности по классификации проектов в зависимости от тематики, используемых фреймворков, лицензии, статуса разработки, окружения, целевой аудитории и поддерживаемых языков. Из новшеств также можно отметить появление хронологической истории релизов проекта, журнал активности участников разработки и отображение аватаров мэйнтейнров.

Одновременно опубликован значительный релиз пакетного менеджера Pip 10. В новой версии:

  • Прекращена поддержка Python 2.6;
  • Добавлена новая команда «pip config«, предназначенная для управления локальной и глобальной конфигурацией;
  • Обеспечена начальная поддержка PEP 518, предоставляющего проектам возможность определения списка пакетов (сборочных зависимостей), необходимых для сборки из исходных текстов;
  • Изменена применяемая по умолчанию стратегия обновления. Рекурсивные обновления зависимостей теперь устанавливаются только при необходимости, когда текущая версия зависимости не удовлетворяет требованиям устанавливаемого пакета (задействован режим «only-if-needed» вместо ранее применяемого режима «eager», при котором зависимости обновлялись при любой возможности);
  • Cущественно улучшена обработка Unicode для не-ASCII локалей в Windows;
  • Проведена внутренняя реорганизация кода pip.

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

Доступен полностью свободный Linux-дистрибутив Trisquel 8.0

После трёх с половиной лет с момента прошлого значительного выпуска представлен релиз полностью свободного Linux-дистрибутива Trisquel 8.0, основанного на пакетной базе Ubuntu 16.04 LTS и ориентированного на использование в небольших предприятиях, в образовательных учреждениях и домашними пользователями. Trisquel лично одобрен Ричардом Столманом, официально признан Фондом Свободного ПО в качестве полностью свободного и помещен в список рекомендованных фондом дистрибутивов. Для загрузки доступен установочный образ, размером 940 Мб. Выпуск обновлений для дистрибутива будет осуществляться до 2021 года.

Дистрибутив примечателен исключением из поставки всех несвободных компонентов, таких как бинарные драйверы, firmware и элементы графического оформления, распространяемые под несвободной лицензией или использующие зарегистрированные торговые марки. Несмотря на полный отказ от проприетарных компонентов, Trisquel совместим с Java (OpenJDK) и Adobe Flash (Gnash), поддерживает большинство аудио- и видео-форматов, включая работу с защищенными DVD, задействуя при этом только полностью свободные реализации данных технологий.

В новом выпуске осуществлён переход с пакетной базы Ubuntu 14.04 на ветку Ubuntu 16.04 (уже началась разработка Trisquel 9.0 на базе Ubuntu 18.04). До версии 4.4 (в качестве опции доступна версия 4.13) обновлён полностью свободный вариант ядра Linux — Linux Libre, очищенный от проприетарных прошивок и драйверов, содержащих несвободные компоненты. Вместо рабочего стола GNOME в новом выпуске осуществлён переход на MATE 1.12.

Браузером по умолчанию является Abrowser 59, вариант Firefox, приведённый к соответствию требованиям к полностью свободным дистрибутивам и переработанный для предоставления дополнительных режимов обеспечения приватности пользователя. Для работы с электронной почтой предлагается новый выпуск почтового клиента IceDove (Thunderbird). Обновлены компоненты графического стека, LibreOffice 5.1.4, VLC 2.2.2. Дополнительно предлагаются две специализированные редакции дистрибутива: Trisquel-mini — минималистичная версия с окружением LXDE, браузером Midori, Abiword и GNOME-Mplayer, и Trisquel TOAST — версия на основе оболочки Sugar, предназначенная для детей в возрасте до 12 лет.

Основные требования к полностью свободным дистрибутивам:

  • Включение в состав дистрибутива ПО с одобренными FSF лицензиями;
  • Недопустимость поставки бинарных прошивок (firmware) и любых бинарных компонентов драйверов;
  • Непринятие неизменяемых функциональных компонентов, но возможность включения нефункциональных, при условии разрешения копировать и распространять их в коммерческих и некоммерческих целях (например, CC BY-ND-карты к GPL-игре);
  • Недопустимость использования торговых марок, условия использования которых мешают свободному копированию и распространению всего дистрибутива или его части;
  • Соблюдение лицензионной чистоты документации, недопустимость документации, рекомендующей установку проприетарного ПО для решения определённых задач.

В настоящее время в список полностью свободных дистрибутивов GNU/Linux включены следующие проекты:

  • gNewSense — основан на пакетной базе Debian GNU/Linux и развивается Фондом СПО при личном участии Ричарда Столлмана;
  • BLAG — свободная редакция Fedora Linux;
  • Dragora — независимый дистрибутив, пропагандирующий идею максимального упрощения;
  • ProteanOS — обособленный дистрибутив, развивающийся в направлении достижения как можно более компактного размера;
  • Dynebolic — специализированный дистрибутив для обработки видео и аудио данных;
  • Parabola GNU/Linux — дистрибутив, основанный на наработках проекта Arch Linux;
  • PureOS — основан на пакетной базе Debian и разрабатывается компанией Purism, развивающей смартфон Librem 5 и выпускающей ноутбуки, поставляемые с данным дистрибутивом и прошивкой на базе CoreBoot;
  • Musix GNU+Linux — основанный на Knoppix дистрибутив, предназначенный для создания и обработки звука;
  • Trisquel — основанный на Ubuntu специализированный дистрибутив для небольших предприятий, домашних пользователей и образовательных учреждений;
  • Ututo — GNU/Linux дистрибутив, построенный на базе Gentoo.
  • libreCMC (libre Concurrent Machine Cluster), специализированный дистрибутив, рассчитанный на использование во встраиваемых устройствах, таких как беспроводные маршрутизаторы.
  • GuixSD — основан на пакетном менеджере Guix и системе инициализации GNU Shepherd (ранее известной как GNU dmd), написанными на языке Guile (одна из реализаций языка Scheme), который также используется и для определения параметров запуска сервисов.

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

Выпуск платформы обмена сообщениями Zulip 1.8

Состоялся релиз серверной платформы Zulip 1.8, предназначенной для развёртывания корпоративных мессенджеров для организации общения сотрудников и групп разработчиков. Проект изначально был разработан компанией Zulip и открыт после её поглощения компанией Dropbox под лицензией Apache 2.0. Код серверной части написан на языке Python с использованием фреймворка Django. Клиентское ПО доступно для Linux, Windows, macOS, Android и iOS, также предоставляется встроенный web-интерфейс.

Система поддерживает как прямой обмен сообщениями между двумя людьми, так и проведение групповых обсуждений. Zulip можно сравнить с сервисом Slack и рассматривать как внутрикорпоративный аналог Twitter, применяемый для общения и обсуждений рабочих вопросов в больших группах сотрудников. Предоставляются средства для отслеживания состояния и участия одновременно в нескольких обсуждениях с использованием нитевидной модели отображения сообщений, которая является оптимальным компромиссом между привязкой к комнатам в Slack и единым публичным пространством Twitter. Одновременное нитевидное отображение всех обсуждений позволяет в одном месте охватить все группы, при этом сохранив логическое разделение между ними.

Из возможностей Zulip также можно отметить поддержку отправки сообщений пользователю в offline-режиме (сообщения будут доставлены после появления в online), сохранение полной истории обсуждений на сервере и средства для поиска в архиве, возможность отправки файлов в режиме Drag-and-drop, aвтоматическую подсветку синтаксиса для передаваемых в сообщениях блоков кода, встроенный язык разметки для быстрого оформления списков и форматирования текста, средства для групповой отправки уведомлений, возможность создания закрытых групп, интеграция с Trac, Nagios, Github, Jenkins, Git, Subversion, JIRA, Puppet, RSS, Twitter и другими сервисами, средства для привязки к сообщениям наглядных меток.

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

  • Существенно переработан инсталлятор серверной части, который позволяет за несколько минут развернуть рабочую конфигурацию Zulip. В том числе в новом инсталляторе обеспечена интеграция с certbot для упрощения получения SSL-сертификатов и исключены обязательные параметры конфигурации;
  • Добавлен тестовый инструмент миграции из Slack в Zulip, предоставляющий средства импорта ресурсов из Slack, включая перенос пользователей, аватаров, стримов, загруженных файлов и истории переписки;
  • Переписана документация по API, добавлены описания наиболее важных точек подключения обработчиков и предложены рабочие примеры;
  • Предложена новая тёмная тема оформления;
  • Добавлена возможность настройки групп пользователей, для обращения к ним по метке быстрого вызова. Например, можно создать группу с меткой @support, через которую можно сразу отправить сообщения всем работникам службы поддержки;
  • Интегрирована поддержка видеовызовов, для проведения которых задействована свободная система видеоконференций Jitsi Meet. В будущем ожидается добавление поддержки и других провайдеров видеосвязи (в том числе Google Hangouts);
  • Переработана система настройки, реализована функция автоматического сохранения изменений и добавлена большая порция новых опций для пользователей и организаций;
  • Представлен полностью новый набор переводов для русского языка.

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

Релиз web-браузера Chrome 66

Компания Google представила релиз web-браузера Chrome 66. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, возможностью загрузки модуля Flash по запросу, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента, системой автоматической установки обновлений и передачей при поиске RLZ-параметров.

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

  • Прекращено автоматическое воспроизведение видео со звуком не текущей вкладке. Автоматическое воспроизведение мультимедийного контента (свойство autoplay) теперь допустимо только если пользователь явно кликнул на странице или часто просматривает мультимедийный контент на этом сайте. Изменение позволит блокировать злоупотребления на некоторых сайтах, автоматически показывающих видеорекламу со звуком, которая создаёт неудобства и отвлекает пользователя при просмотре страниц;
  • Применение методов Material Design для горизонтальной прокрутки на сенсорных экранах. При совершении жестов листания вправо или влево от края страницы теперь высвечивается специальный анимированный индикатор, показывающий направление навигации. Для включения нового режима в «chrome://flags/#overscroll-history-navigation» следует установить значение «Simple»;
  • Экспериментальное новое оформление диалогов и всплывающих окон в стиле Material Design (тестирование началось в прошлом выпуске и пока не завершено). Включение производится через «chrome://flags#secondary-ui-md»;
  • Для пользователей, которые не могут просмотреть встроенные PDF, добавлена возможность клика на загруженный PDF и открытия его в любой внешней программе просмотра;
  • В версии для Android добавлена возможность экспорта сохранённых паролей ( Settings -> Overflow Menu -> Export Passwords). Перед началом экспорта требуется повторно пройти аутентификацию;
  • В версии для Android добавлена возможность отключения показа ссылок-рекомендаций на странице новой вкладки (отключается через новый переключатель в секции «Articles for you»);
  • Возможность поиска в списке сохранённых паролей (позволяет быстро находить сайты для которых ранее были сохранены пароли);
  • При просмотре web-контента (webview) в приложении при помощи Chrome в правом верхнем углу панели теперь показывается дополнительная кнопка вызова действий;
  • Для находящихся в режиме ожидания загрузок теперь выводится дополнительная информация с пояснением, почему загрузка ещё не стартовала;
  • Добавлена возможность использования объекта ImageBitmap для отрисовки изображения на «canvas», что позволяет обойтись без промежуточного создания тега «img» и без хранения нескольких копий изображения в памяти. Кроме повышения эффективности работы с памятью новый метод также позволяет организовать декодирование изображения перед выводом на «canvas» в асинхронном режиме, не блокируя работу других вычислений;
  • Добавлена поддержка типизированной объектной модели CSS (CSSOM — CSS Typed Object Model (OM) Level 1), позволяющей манипулировать значениями CSS не как строками, а как типизированными объектами JavaScript. При использовании CSSOM разработчику не нужно заботиться о конвертации типизированных значений в строки и наоборот. Помимо возможности манипулировать значениями, присвоенными свойствам CSS, типизированная объектная модель также позволяет писать более удобный для сопровождения и понятный код. Например, вместо «el.style.opacity = 0.3» можно указать ‘el.attributeStyleMap.set(«opacity», CSS.number(«0.3»))’;
  • Добавлен API для асинхронной работы с буфером обмена, позволяющий читать и записывать данные в буфер обмена с использованием механизма Promise. Новый API интегрируется с Permissions API для запроса полномочий и заметно проще ранее предлагаемого API execCommand(‘copy’). Например, для чтения из буфера обмена можно указать «const data = await navigator.clipboard.readText()», а для записи ‘await navigator.clipboard.writeText(«Hello, clipboard.»)’. В будущих выпусках ожидается поддержка копирования и вставки сложных типов данных, таких как изображения;
  • Добавлен новый объект AudioWorklet, который предоставляет новый синхронный контекст выполнения JavaScript, позволяющий программно контролировать параметры звука без внесения дополнительных задержек и не влияя на стабильность звукового вывода (ранее применяемый ScriptProcessorNode работал в асинхронном режиме и приводил к нарушению стабильности потока, в будущих выпусках он будет объявлен устаревшим);
  • В медиазапросах CSS (media queries) разрешено применение математических выраженийcalc(), min() и max();
  • В CSS-функциях rgb() и rgba() теперь допускается указание значений с плавающей запятой;
  • Попытка чтения несуществующего или некорректного URL через File API теперь приводил к выводу сетевой ошибки, вместо возврата кода 404;
  • В HTML-элементы textarea и select добавлена поддержка атрибута autocomplete, который позволяет управлять включением или выключением автозаполнения форм;
  • Изменяемый элемент checkbox теперь формируют три события: клик, ввода и изменение (click, input и change) вместо ранее формируемых событий click и change;
  • В интерфейс MediaStreamTrack добавлен вызов getCapabilities(), через который можно получить диапазон допустимых значений для каждого свойства;
  • JavaScript-функция Function.prototype.toString() теперь возвращает строку с кодом функции, полостью совпадающую с тем, как функция заданоа в исходных текстах (все отступы и даже комментарии сохраняются);
  • В JSON теперь является синтаксическим подмножеством ECMAScript, что позволяет использовать в строковых литералах символы разделения строк (U+2028) и разделения параграфов (U+2029);
  • Выражение «catch» в блоке «try» теперь может применяться без параметра;
  • Методы String.prototype.trimStart() и String.prototype.trimEnd() теперь могут применяться как стандартные способы вырезания лидирующих и оконечных пробелов из строк, в дополнение к ранее доступному методу String.prototype.trim(). Нестандартные методы trimLeft() и trimRight() оставлены как псевдонимы trimStart() и trimEnd() для сохранения совместимости;
  • Добавлен метод Array.prototype.values(), который возвращает объект итератора, содержащий вначения для каждого индекса в массиве;
  • Из свойств CSS gutter удалён префикс «grid», т.е. grid-gap теперь просто gap, grid-row-gap — row-gap, а grid-column-gap — column-gap;
  • Добавлен новый API, позволяющий получить информацию от доступных возможностях декодирования мультимедийного контента на стороне клиента. На основании выводимых данных можно оценить сможет ли клиент обеспечить плавное и энергоэффективного декодирование видео с разрешением, выбранным на основании параметров экрана и пропускной полосы;
  • В Fetch API для объекта Request реализовано свойство keepalive, позволяющее продолжить извлечение данных после закрытия вкладки. Также добавлены интерфейсы AbortSignal и AbortController для отмены извлечения данных;
  • Изменён подход к кэшированию скомпилированного варианта JavaScript-кода. Если раньше кэшировался код, сгенерированный сразу после первой компиляции основных функций (до запуска), то теперь в кэш попадает код, сформированный после первого запуска первичных скриптов, что позволяет охватить кэшированием функции которые не были учтены при начальной компиляции. В некоторых ситуациях новый подход позволяет на 20-60% снизить время компиляции и разбора при повторной загрузке страницы;
  • Реализована возможность выноса в отдельные фоновые потоки операций компиляции исходных текстов JavaScript в байткод, что позволило на 5-20% сократить время компиляции в основном потоке. Дополнительно исключена отдельная фаза нумерации AST, что сократило время компиляции ещё на 3-5%;
  • Проведена оптимизация производительности асинхронных операций и функций promises/async;
  • Более чем в 10 раз увеличена производительность операции Array#reduce для массивов с большим числом пустот или значений с плавающей запятой;

Кроме нововведений и исправления ошибок в новой версии устранены 62 уязвимости. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе, за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 34 премии на сумму 34.5 тысячи долларов США (по одной премии в $7500, $5000, $4500, $4000 и $3000, две премии $2000, две премии $1000 и девять премий $500). Размер 16 вознаграждений пока не определён.

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

Второй бета-выпуск Oracle Solaris 11.4

Компания Oracle сформировала второй бета-выпуск операционной системы Solaris 11.4. Для загрузки подготовлены установочные образы для архитектур x86_64 и SPARC, а также срез репозитория пакетов. Отмечается, что в Oracle Solaris 11.4 будет обеспечена поддержка всех серверверных систем Oracle SPARC и x86, выпущенных после 2011 года. В отличие от выпуска 11.3 будет прекращена поддержка систем на базе процессоров SPARC T1, T2 и T3, а также SPARC64 VII+ и систем Sun4u, таких как SPARC Enterprise M4000.

Представители Oracle также рассказали о новой модели разработки Solaris, основанной на стратегии непрерывной доставки релизов. Новые выпуски Solaris 11 теперь будут выпускаться раз в год, летом. Новые возможности будут предлагаться по мере их готовности и доставляться через ближайший канал доставки, например, могут быть включены в сервисные обновления (SRU), CPU (critical patch update) или релиз. Релизы Oracle Solaris 11 будут включать как все новшества, раннее доставленные в обновлениях SRU, так и ранее недоступные новшества, которые признаны готовыми к моменту формирования релиза. В релизах также будут доставляться обновления версий сторонних открытых компонентов, входящих в состав Solaris.

По сравнению с выпущенным в январе первым бета выпуском в обновлённой тестовой версии устранено около 280 ошибок и внесено несколько улучшений:

  • Возможность использования команды «zpool remove» для удаления из пула первичных устройств хранения ZFS. Данные из удаляемого устройства автоматически будут перенесены на устройства, остающиеся в пуле. Прогресс переноса данных перед удалением можно оценить при помощи команды «zpool status»;
  • Режим проверки (Scrub) ZFS-пула по расписанию. По умолчанию процесс фоновой проверки целостности пула теперь запускается раз в 30 дней и автоматически корректирует приоритет выполнения данной операции, в зависимости от нагрузки в системе. Посмотреть время последней проверки можно командой «zpool status»;
  • Поддержка протокола SMB 3.1.1, в котором появилась возможность прозрачного переключения клиента на резервный хост в случае сбоя (Transparent Failover) и режим многоканальной передачи данных с использованием нескольких разных сетевых соединений;
  • В команду compliance добавлена поддержка Oracle Solaris Cluster;
  • Добавлен пакет ssh-ldap-getpubkey для организации аутентификации в SSH с хранением публичных ключей в LDAP;
  • Добавлена защита от первого варианта атаки Spectre в Firefox, драйвере NVIDIA и ядре Solaris;
  • Обновлены версии программ, включая gcc 7.3, libidn2, qpdf 7.0.0.

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

Релиз nginx 1.14.0

После года разработки представлена новая стабильная ветка высокопроизводительного HTTP-сервера и многопротокольного прокси-сервера nginx 1.14.0, которая вобрала в себя изменения, накопленные в рамках основной ветки 1.13.x. В дальнейшем все изменения в стабильной ветке 1.14 будут связаны с устранением серьёзных ошибок и уязвимостей. В скором времени будет сформирована основная ветка nginx 1.15, в рамках которой будет продолжено развитие новых возможностей. Для обычных пользователей, у которых нет задачи обеспечить совместимость со сторонними модулями, рекомендуется использовать основную ветку, на базе которой раз в три месяца формируются выпуски коммерческого продукта Nginx Plus.

В соответствии с мартовским отчетом компании Netcraft nginx используется на 23.76% (год назад 19.55%, два года назад 16.81%) всех активных сайтов, что соответствует второму месту по популярности в данной категории (доля Apache соответствует 43.03%, Google — 7.71%, а Microsoft IIS — 6.75%). Доля nginx среди всех сайтов составляет 23.11% (год назад 19.91%, два года назад 13.23%), среди миллиона самых посещаемых сайтов в мире — 23.76% (год назад 25.64%, два года назад 21.43%). В настоящее время под управлением nginx работает около 409 млн сайтов (год назад 350 млн). По данным W3Techs 38.0% из миллиона самых посещаемых сайтов в мире используют nginx, в апреле прошлого года этот показатель составлял 33.3%, позапрошлого — 29.8%. Доля Apache за год снизилась с 50% до 46.7%, а доля Microsoft IIS с 11.3% до 9.9%. В России nginx используется на 78.9% самых посещаемых сайтов (год назад — 76.9%).

Из ключевых улучшений nginx 1.14.0 отмечается модуль mirror, поддержка протокола TLSv1.3, поддержка HTTP/2 push и модуль с реализацией gRPC-прокси. Наиболее заметные улучшения, добавленные в процессе формирования основной ветки 1.13.x:

  • Реализован механизм Server Push для протокола HTTP/2, который предоставляет возможность отправки ресурсов от сервера к клиенту, не дожидаясь их явного запроса (например, подобным образом можно передавать файлы CSS, скрипты и изображения, которые необходимы для отрисовки страницы).Для отправки push-запросов используется уже установленное клиентом сое динение. Т.е. клиент подключается и запрашивает определённую страницу, после этого сервер на основании своих настроек или содержимого переданного клиентом заголовка Link сам инициирует передачу определённых ресурсов через уже установленное соединение HTTP/2, не дожидаясь запроса этих ресурсов от клиента;
  • Добавлена поддержка протокола TLSv1.3. Для включения в директиве «ssl_protocols» следует указать параметр «TLSv1.3». Протокол поддерживается только в предстоящей версии OpenSSL 1.1.1;
  • Для соединений с бэкендами разрешено повторное согласование SSL-соединения;
  • Новые модули:
    • ngx_http_grpc_module с реализацией прокси для протокола gRPC, позволяющего организовать работу микросервисов на различных языках программирования, которые взаимодействуют между собой при помощи универсального API. Сетевое взаимодействие в gRPC реализовано поверх протокола HTTP/2 и базируется на применении Protocol Buffers для сериализации данных. Модуль даёт возможность управлять потоками gRPC, выделяя отдельные сервисы и методы. Например, появляется возможность маршрутизировать gRPC по разным бэкендам, в зависимости от запрошенной операции, блокировать или ограничивать интенсивность определённых вызовов, инспектировать трафик gRPC или организовывать балансировку нагрузки;
    • ngx_http_mirror_module, позволяющий зеркалировать поступающие запросы на другие серверы. Клиенту возвращается результат обработки запроса от основного обработчика, а результаты, возвращённые зеркалируемыми бэкендами, игнорируются. При помощи зеркалирования можно достаточно просто организовать работу синхронно обновляемого резервного сервера для таких сайтов, как web-форумы;
  • Изменения в директивах:
    • Через параметр proxy_protocol в директиве listen теперь можно включить вторую версию протокола PROXY;
    • В реализацию SSI-директивы «include» добавлена возможность использования параметра «set» для сохранения в переменную содержимого произвольных ответов. Максимальный размер ответа ограничивается значением директивы «subrequest_output_buffer_size»;
    • В директиву «log_format» добавлен параметр «escape=none» для отключения экранирования символов при записи в лог;
    • В директиву set_real_ip_from в качестве параметра добавлена возможность указывать имя хоста;
    • Добавлена поддержка использования директив return и error_page для возврата перенаправлений для запросов с HTTP кодом 308;
  • Изменения в модулях:
    • В модуле ngx_stream_ssl_preread_module реализована переменная $ssl_preread_alpn_protocols;
    • В модуле ngx_http_headers реализована директива «add_trailer«, через которую можно определить дополнительное поле, которое будет добавлено в конец ответа, если код ответа равен 200, 201, 206, 301, 302, 303, 307 или 308;
    • В модулях mail_proxy и stream в директиве «listen» появились поддержка параметров «rcvbuf» и «sndbuf», позволяющих настроить размер буфера приёма (параметр SO_RCVBUF) и передачи (параметр SO_SNDBUF);
  • Разное:
    • Представлена переменная $ssl_client_escaped_cert, в которой сохраняется SSL-сертификат в экранированном однострочном представлении URL-encoded, что позволяет сразу использовать данный сертификат в параметрах HTTP-запросов и в заголовках;
    • Улучшено определение размера кэша процессора;
    • Внесены исправления в обработку дат до 1970 года и после 10000 года;
    • Улучшена поддержка платформы Windows: налажена работа чистки кэша в соответствии с лимитом, заданным через параметр «max_size», решены проблемы с выделением разделяемой памяти, обеспечена работа директивы «ssl_session_ticket_key» и параметра «include» директивы «geo»;
    • При отражении в логе сигналов в лог теперь записывается и PID процесса, отправившего сигнал.

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

Проект postmarketOS приступил к созданию загрузчика и прошивки модема для смартфонов

Разработчики postmarketOS, дистрибутива для устаревших смартфонов, базирующегося на Alpine Linux, Musl и BusyBox, представили инициативу postmarketOS-lowlevel, в рамках которой началась работа по созданию проектов открытого загрузчика и прошивки для беспроводных модемов. На текущем этапе работа сосредоточена только на разработке для устройств на базе SoC MediaTek.

Проект по созданию открытого загрузчика для SoC MediaTek MT6735P возник из-за поставки многих смартфонов на базе данного SoC с проприетарным загрузчиком, который не позволяет запустить на устройстве произвольное ядро. При этом в качестве основы для загрузчика использован открытый проект LK (Little Kernel), распространяемый под лицензией MIT, допускающей создание закрытых производных продуктов, чем и пользуются производители оборудования.

Имеется возможность бинарно пропатчить загрузчик и перезаписать изменённую версию через SP Flash Tool, но это грязный хак, который не решает сути проблемы. В качестве выхода разработчики postmarketOS решили самостоятельно портировать LK на SoC MediaTek MT6735P и подготовить свой вариант загрузчика, уже полностью открытого. Постепенно планируется добавлять в порт поддержку других моделей SoC MediaTek, что позволит охватить достаточно большой класс смартфонов, в которых используются чипы MediaTek, например, hTC, Huawei, Lenovo, LG, Moto, Sony.

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

Как вариант решения проблемы проекты Librem 5 и Neo900 реализуют возможность дополнительной изоляции baseband-процессора или создание переключателя, физически разрывающего цепи, но для postmarketOS такие методы кажутся неприемлимыми. Вместо этого, разработчики postmarketOS намерены создать свою открытую прошивку, портировав для применяемого в SoC MT6260 baseband-процессора Fernvale наработки проекта OsmocomBB, создающего полностью открытый GSM-стек и прошивку GSM-модуля. Некоторые энтузиасты уже занимаются портированием OsmocomBB для Fernvale, для которого также развивается открытая исследовательская ОС Fernly и доступен порт открытой RTOS NuttX.

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