LXQt — пользовательская среда, развиваемая совместно разработчиками LXDE и Razor-qt, которая призвана сочетать всё лучшее из этих двух проектов и позиционируется как легковесное, модульное и удобное для работы окружение с современным оформлением.
Команда разработчиков Rust рада представить релиз Rust 1.11.
Rust — это системный язык программирования, при разработке которого внимание сосредоточено на безопасности, скорости и параллелизме.
В фронтенде компилятора задействован новый более компактный формат экспортируемых данных,
что с более эффективной обработкой деклараций импортов
позволило значительно ускорить время компиляции и уменьшить размер исполняемых файлов на 20–30%.
Программы должны выполняться немного быстрее благодаря улучшениям в сборщике мусора и оптимизациям в стандартной библиотеке.
Доступна новая версия свободной неинтерактивной консольной программы для загрузки файлов по сети — GNU Wget 1.18.
Эта версия содержит исправление уязвимости (CVE-2016-4971), содержащейся во всех предыдущих версиях wget.
При редиректе с HTTP-ресурса на FTP, wget использовала URL, полученный от HTTP-сервера, для имени загружаемого файла.
Теперь, так же, как и при редиректе с HTTP на HTTP, имя берётся из оригинального URL.
Для того, чтобы получить старое поведение, используйте опцию --trust-server-names.
Другие изменения:
Запрещено использование доступных всем на запись HSTS-файлов.
Реализован парсинг атрибутов <img srcset> при рекурсивной загрузке.
Решена проблема со SNI-именами, имеющими завершающие точки.
Добавлены опции --bind-dns-address и --dns-servers.
При сборке с libiconv доступно автоматическое перекодирование имён файлов — для не-ASCII символов в URI используется кодировка текущей системной локали. Кодировку имён внешних файлов можно указать через опцию --remote-encoding (значение по умолчанию — UTF-8).
Синтаксис, похожий на Ruby (но совместимость с ним не является целью).
Статическая типизация (но без необходимости явного указания типов переменных и аргументов методов).
Вызов кода на Си с помощью биндингов, написанных на Crystal.
Исполнение и генерация кода во время компиляции (макросы).
Трансляция в эффективный нативный код.
Текущее состояние:
Проект находится в стадии alpha: язык и стандартная библиотека всё ещё подвергаются значительным изменениям.
Компилятор написан на Crystal.
Этот релиз содержит значительное изменение, ломающее обратную совместимость, о котором было объявлено несколько месяцев назад.
Также был внесён ряд других незначительных изменений и множество новых вкусностей.
Вышла очередная версия Mercurial — распределённой системы управления версиями, написанной на Python.
В числе основных изменений находится ряд усовершенствований, направленных на улучшение производительности.
fsmonitor
Добавлено расширение fsmonitor (ранее известное как «hgwatchman»), разработанное компанией Facebook.
Такие операции, как hg status, hg diff, hg commit
должны знать о том, какие файлы в репозитории были изменены.
В нормальной ситуации это требует обращения к каждому файлу для проверки изменений.
fsmonitor использует сервис watchman, чтобы получать уведомления об изменениях.
watchman в свою очередь, использует специфичные для платформы API, такие как inotify или FSevents,
чтобы получать уведомления от операционной системы всякий раз, когда файл в хранилище изменился.
Используя fsmonitor, команды hg status, hg diff и другие,
должны проверять только те файлы, которые на самом деле изменились, вместо того, чтобы обходить всё хранилище.
automv
Другим важным изменением является введение экспериментального расширения automv.
Обычно, люди перемещают файлы в своих репозиториях используя команды hg mv или hg cp.
Несмотря на это, вполне легко забыть об этих командах и использовать обычное перемещение, особенно при использовании IDE.
Расширение automv пытается определить похожие файлы при коммите и отмечает их как перемещённые/скопированные.
chg
Новый интегрированный chg клиент предоставляет альтернативный способ запуска Mercurial команд.
Причиной низкой производительности Mercurial с точки зрения скорости команд является то, что он написан на Python.
Это обычно не ограничивающий фактор, но запуск интерпретатора добавляет некоторые накладные расходы.
Chg решает эту проблему, используя клиент, реализованный на C, и сервер на Python.
Вместо того, чтобы запускать интерпретатор Python для каждой команды, вызов chg запускает простое C-приложение, которое общается с сервером команд.
2 апреля 2016 года стало известно о уязвимости, которая позволяет неавторизованным пользователям
заменить существующие .gem файлы при определённых обстоятельствах. Исправление было опубликовано в этот же день.
При дальнейшем рассмотрении был обнаружен похожий вектор атаки, исправление для которого было опубликовано уже 4 апреля.
В обоих векторах атаки, атакующий мог использовать специальную комбинацию имени и версии гема, чтобы заменить существуюший .gem файл.
Также известно, что .gem файлы загруженные с помощью этого метода не могут быть установлены через стандартную команду gem install.
Первая часть этой уязвимости была введена 11 июня 2014, а вторая присутствовала с самого начала.
Все .gem файлы, у которых есть контрольная сумма sha256, были проверены и ни один из них не пострадал.
Подсчёт контрольной суммы был введён 8 февраля 2015 года, таким образом файлы, загруженные до этой даты, не имеют контрольной суммы.
Так или иначе, если .gem файл был скомпрометирован ранее, нет способа выяснить это.
Файлы с дефисом в имени (например ‘blank-blank’) загруженные между 11 июня 2014 и 2 апреля 2016 были уязвимы.
Файлы загруженные между 8 февраля 2015 и 2 апреля 2016 были уже проверены.
Если у вас есть версия .gem файла, которая не была проверена, вы должны выполнить следующие действия:
Скачать ваш gem.
Запустить gem unpack file.gem.
Убедиться, что нет никаких неожиданных изменений.
Запустить gem spec file.gem.
Убедиться, что нет никаких неожиданных изменений в gemspec.
В случае, если gem был скомпрометирован, пожалуйста выполните gem yank для вашего файла,
и сообщите об этом команде по обеспечению безопасности как можно скорее, и пожалуйста отправьте ваш .gem файл.
Особая благодарность Eric Chapweske за выявление уязвимости и подробный отчёт.
David Radcliffe и Arthur Neves за работу на исправлениями и проверками.
Aaron Patterson, Nick Quaranto, André Arko, и Samuel Giddins за ревью и проверку.
Composer — это менеджер зависимостей, пришедший на замену PEAR, который произвел революцию в мире PHP.
Изначально он был разработан двумя программистами: Nils Adermann
и Jordi Boggiano.
При его создании авторы вхдохновлялись аналогичными проектами: npm для Node.js и Bundler для Ruby.
Composer распространяется под лицензией MIT и доступен на GitHub.
Днём рождения проекта считается 3 апреля 2011 года.
С того момента прошло очень много времени, но только в последние месяцы разработчики
решили несколько оставшихся критических проблем, что в конце концов позволило выпустить первый стабильный релиз.
Главным изменением является то, что по умолчанию установщик Composer
и команда composer self-update теперь устанавливают стабильные релизы по умолчанию.
Это позволит избежать неприятных сюрпризов, если вы запускаете self-update во время деплоя,
но это также означает, что цикл обратной связи для разработчиков станет более длинным.
Так или иначе разработчики очень надеются, что будет достаточно людей, использующих ранние версии и особенно снапшоты.
При деплое рекомендуется запускать регулярные обновления,
composer self-update --preview при запуске тестов
и composer self-update --snapshot при разработке.
Это будет гарантировать то, что разработчики заметили регрессии или ошибки как можно раньше,
и таким образом позволит избежать поломок в стабильных релизах.
30 марта в блоге QupZilla сообщили о выпуске одноимённого браузера версии 2.0.0.
QupZilla — это кроссплатформеный браузер, основанный на фреймворке Qt. В число поддерживаемых операционных систем входят Windows, Linux, OS X, OS/2 и Haiku. Разработчики браузера ставят перед собой цель создать легковесный браузер, использующий «родной» стиль элементов управления в каждой ОС.
Выпуск ознаменован переходом со старого и неподдерживаемого движка QtWebKit на QtWebEngine. QtWebEngine использует для рендеринга страниц Chromium, который обеспечивает более высокую совместимость с web-страницами, а также, благодаря многопроцессной архитектуре, великолепную стабильность.
Существуют большие изменения (как архитектурные, так и на стороне API) между QtWebKit и QtWebEngine, поэтому портирование QupZilla заняло некоторе время. Функциональность, ранее доступная в QtWebKit, ещё не была реализована в QtWebEngine полностью,
поэтому в этот выпуск не вошли некоторые возможности, доступные в предыдущих версиях. В последующих выпусках QupZilla и QtWebEngine это будет исправлено.
Чтобы использовать все возможности QtWebEngine, QupZilla теперь требует последнюю версию Qt (Qt 5.6).
Браузер доступен в репозиториях основных дистрибутивов, и с этого момента предоставление Linux-сборок будет прекращено. Это также означает, что новые версии больше не будут публиковаться в PPA.
KDE уже достаточно давно предоставляет компоненты пользовательского интерфейса за пределами основ, предложенных Qt.
С KDE Frameworks 5 они стали легко доступными для Qt-разрабочиков, не являющихся частью KDE.
Теперь, когда KDE расширяется за пределы десктопов и лаптопов в мобильный и встраиваемый сектор, этих компонентов больше недостаточно.
Для того, чтобы позволить разработчикам создавать приложения, основанные на Qt, способные запускаться на любой мобильной или десктопной операционной системе (включая Plasma Desktop и Plasma Mobile), был создан Kirigami UI.
Первым реальным приложением, реализованным с помощью Kirigami Components, является
Subsurface-mobile,
которое недавно было выпущено для Android. Версия для iOS в настоящее время находится в разработке. Круто здесь то, что эти версии разделяют большую часть кода!
Kirigami Components планируется выпустить как часть KDE Frameworks 5, но для начала это будет самостоятельный фреймворк, релиз которого намечен на конец апреля. Отмечается, что фреймворк не будет иметь зависимостей кроме Qt, поэтому не увеличит размер приложения больше, чем необходимо.
Команда разработчиков Git рада сообщить о релизе Git 2.8.0, в который вошло множество новых функций,
исправлений ошибок и других улучшений от более чем 70 контрибьюторов.
Команда разработчиков Rust рада представить первый в этом году релиз Rust — 1.6.
Rust — это системный язык программирования, при разработке которого внимание сосредоточено на безопасности, скорости и параллелизме.
Как обычно, вы можете установить Rust 1.6 с соответствующей страницы на официальном сайте,
а также посмотреть примечания к выпуску на GitHub.
Выпуск включает в себя около 1100 патчей и содержит ряд небольших улучшений, одно важное изменение, а также изменение на Crates.io.
Команда разработчиков PHP рада сообщить о релизе PHP 7.0.
Несмотря на тот факт, что этот релиз является мажорным, усилия были направлены на то,
чтобы сделать миграцию настолько безболезненной, насколько это возможно.
Удаление устаревшей функциональности и устранение несоответствий в языке — основные направления для этой версии.
Как и в предыдущих выпусках, почти каждый компонент имеет новую версию.
Особо следует отметить, что Fedora Workstation включает в себя окружение рабочего стола Gnome 3.18 и офисный пакет LibreOffice 5.0.
Отдельного упоминания заслуживает и то, что теперь по умолчанию используется Python 3.
Вторую версию всё так же можно установить из репозиториев.
Доступен новый спин с окружением рабочего стола Cinnamon 2.6.
Mono, свободный .NET-совместимый фреймворк, обновлён до версии 4.
SSL 3.0 и RC4 считаются небезопасными и уязвимыми для атак. Таким образом, они теперь отключены по умолчанию для всех компонентов, которые используют общесистемные политики шифрования. Это касается библиотек GnuTLS и OpenSSL, а также всех основанных на них приложений.
Улучшена обработка неанглоязычного текста в текстовом режиме установки.
В режиме восстановления теперь такой же интерфейс, как и в текстовом режиме установки.