После обсуждения в списке рассылки pkg-kde-talk, разработчики Debian приняли решение о необходимости включения KDE-3.5.9 в следующий стабильный релиз Debian. Кроме того, в релиз войдет минимальный набор пакетов, необходимый для разработки новых программ для KDE-4.1.
X-сервер в Linux обычно работает с правами root, хотя достаточных технических оснований для этого нет и это не всегда так в других Unix-подобных системах. Поэтому Dave Airlie выпустил несколько патчей (всего около 300 строк) для X-сервера, ядра и драйвера Intel. В результате удалось добиться работы X-сервера с аппаратным ускорением с правами пользователя. Осуществлен запуск X-сервера с DRI2, сессии GNOME, Compiz, glxgears. Ядро вскоре после этого делает Oops, но, по мнению Dave Airlie, достигнутый результат показывает, что желаемое очень близко к действительности.
Патчи для X-сервера, ядра и драйвера Intel опубликованы в соответствующих системах управления версиями.
12 лет назад Linux стал поддерживать многопроцессорные системы. Тогда же для предотвращения "логических гонок" (race conditions) без существенного изменения драйверов и других частей ядра был введен Big Kernel Lock, как временная мера до появления более совершенных механизмов синхронизации. Однако с течением времени для уменьшения задержек (latency) реализация Big Kernel Lock усложнялась: например, было добавлено вытеснение (preemption).
Недавно Linus вернул реализацию Big Kernel Lock к старому варианту (spinlock), и тем самым потерялась возможность вытеснения. По его словам, единственным приемлемым способом избавиться от задержек является уничтожение Big Kernel Lock из всех 1300+ мест, в которых он используется. Однако, по оценкам Ingo Molnar, с текущими темпами этот процесс может занять порядка 10 лет. Причина: Big Kernel Lock слишком прозрачен. Теперь слишком легко, даже не подозревая об этом, добавить код, который захватывает BKL, и для большинства строк кода никто наверняка не знает, захвачен он в данной строке или нет. Кроме того, автоматическая проверка вложенности блокировок (lockdep) не знает о Big Kernel Lock, и поэтому слишком просто создать труднообнаружимый deadlock.
Для ускорения процесса удаления Big Kernel Lock Ingo Molnar создал git-дерево, в котором Big Kernel Lock стал более "видимым" (добавлены отладочные средства и поддержка lockdep), и его использование удалено из основного кода ядра.
Одна из серьезных проблем при разработке ядра - регрессии: старое ядро работает для конкретного пользователя, а новое ядро - компилируется, но не работает. Другая проблема - дать новичкам полезную задачу и таким образом дать поучаствовать в разработке. Одной из таких полезных задач является тестирование ядра на предмет регрессий.
Для координации этой деятельности создан список рассылки kernel-testers@vger.kernel.org, в котором планируется обсуждать ядра для тестирования, конкретные области с возможными ошибками и найденные ошибки.
Josh Triplett объявил о выпуске замены для libtool. Новый скрипт (Dolt) работает только в ОС Linux на процессорах семейств x86 и x86_64, но позволяет сократить время сборки больших проектов примерно вдвое. В других системах по-прежнему вызывается libtool.
Увеличение скорости сборки достигается за счет того, что логика переносится из скриптов, вызываемых командой make для компиляции каждого файла, в скрипт configure.
Использование Dolt требует всего двух шагов со стороны разработчика:
Добавить вызов макроса DOLT после LT_INIT, AC_PATH_LIBTOOL или
AM_PATH_LIBTOOL в файле configure.ac или configure.in.
Xiph.org выпустил новый экспериментальный кодек для сжатия звука. Кодек CELT по структуре близок к CELP, но выполняет все операции в частотном, а не временном, представлении. CELT призван заполнить нишу между Vorbis и Speex.
CELT позиционируется для кодирования как музыки, так и речи.
Очень низкая задержка при кодировании и декодировании, а также устойчивость к потере пакетов позволяет применять кодек для переговоров по сети.
Звук, подлежащий кодированию, должен иметь частоту дискретизации 32, 44.1 или 48 кГц и один или два канала.
Кодек предназначен для использования в режиме постоянного битового потока (от 32 до 128 kbit/s). Битовый поток является единственным доступным для настройки параметром.
Имеется опция скрипта ./configure, позволяющая собрать целочисленную версию кодека.
На данный момент не гарантируется стабильность API библиотеки и формата битового потока. Оптимизация кода не выполнена: при битовом потоке 128 kbps версии celtenc и celtdec, использующие операции с плавающей точкой, работают в 4 раза медленнее oggenc и oggdec.
Findutils — пакет, содержащий программы find и xargs, которые позволяют искать файлы в иерархии каталогов по различным критериям и передавать полученный список другим программам в командную строку. Также в пакете содержится программа locate, которая перечисляет файлы, подходящие под заданный шаблон, на основании базы данных, построенной ранее программой updatedb из того же пакета.
Новое в версии 4.4.0:
Поддержка формата базы данных, совместимого с slocate.
Поддержка баз данных locate, созданных на машинах с другим порядком байт в машинном слове.
Строятся две реализации команды find: find (использует функцию fts() для оптимизации поиска в больших деревьях каталогов) и oldfind (старая реализация, не использующая fts()).
Тесту "-perm /000" теперь удовлетворяют все файлы (раньше не удовлетворял ни один).
Тест "-prune" теперь всегда возвращает истину.
Поддержка времен создания или модификации файла, известных с точностью лучше, чем до секунды.
Появилось много новых тестов.
Исправлено множество ошибок (в том числе связанных с безопасностью), улучшено соответствие стандартам.
PlaneShift - многопользовательская трехмерная ролевая игра с открытыми (но зависящими от проприетарной библиотеки libCg от nVidia) исходниками движка, в которой игроки исследуют магический виртуальный мир, путешествуют, ведут торговлю и сражаются с монстрами. В связи с обновлением сервера старый клиент перестал работать и предлагается скачать новый.
Изменения:
Теперь персонажи не знают имен друг друга, пока не представятся друг другу. В старой версии достаточно было навести на другого игрока курсор мыши.
Появились книги, которые может редактировать кто угодно.
Появились новые монстры и несколько неисследованных территорий.
С карт убрана трава, которая в предыдущей версии приводила к «тормозам» при отрисовке.
Повышена реалистичность отображения обстановки за счет использования карт освещения (lightmaps) везде, где только можно.
Проектом Schrödinger выпущена новая версия библиотеки, реализующей алгоритм сжатия видео Dirac, основанный на вейвлетах. В цели проекта входит оптимизация кодека по скорости, стабильности, переносимости на различные платформы и легкости поддержки.
Основные новшества в версии 1.0 — стабилизация ABI и 100% соответствие спецификациям битовых потоков Dirac-1.0 и Dirac-2.1.
Stephen Rothwell объявил в LKML о своих планах создать git-дерево исходных текстов, которое содержит только изменения в подсистемах, планируемые разработчиками к включению в следующее ядро (точнее, в следующий интервал времени, когда Linus будет принимать патчи, не являющиеся мелкими исправлениями - т.е., на данный момент, в ядро 2.6.26). Это дерево будет склеиваться каждый день из git- и quilt-деревьев отдельных подсистем, таких как сетевой стек, USB и т.п. Деревья, вызывающие конфликты при склейке или проблемы при сборке, будут автоматически отбрасываться.
По замыслу, новое дерево привлечет больше тестеров, поскольку в экспериментальном -mm ядре присутствуют также «сырые» изменения, не предназначенные для скорого включения и часто делающие осмысленное тестирование невозможным.
LLVM -- это оптимизирующий компилятор из C, C++ и других языков в низкоуровневое представление, имеющее много общего с системой команд RISC-процессоров, а также трансляторы (статические и для преобразования "на лету") из этого промежуточного представления в команды обычных процессоров. LLVM поддерживает эффективную оптимизацию на этапах компиляции, компоновки (в том числе между процедурами) и выполнения, оставаясь "прозрачным" для разработчиков и сохраняя совместимость с существующими скриптами сборки.
Новое в версии 2.2:
генерация кода для процессоров Cell
экспериментальная поддержка преобразования Ada и FORTRAN через gcc-backend в промежуточное представление
поддержка типа long double на x86/x86_84 (80 бит) и Darwin PPC/PPC64 (128 бит)
Stefan Fritsch из команды безопасности Debian обнаружил, что многие скрипты-обертки (например, liferea) устанавливают переменную окружения LD_LIBRARY_PATH небезопасным образом:
Проблема заключается в том, что, если исходное значение LD_LIBRARY_PATH было пустым, то окончательное значение "/usr/lib/xulrunner:" интерпретируется как "/usr/lib/xulrunner, текущая директория, а уже затем /lib и /usr/lib".
Это не новая уязвимость, а CVE-2005-4790 и CVE-2005-4791, которые были первоначально (неправильно) опубликованы как ошибки, касающиеся только SuSE.
Безопасный способ установки LD_LIBRARY_PATH в скриптах:
В списках рассылки LKML и gcc была интересная дискуссия о не совсем корректной с точки зрения пользователей оптимизации, производимой gcc. Эта оптимизация (замена условной записи в память на чтение, условную модификацию и безусловную запись обратно) потенциально может нарушить семантику блокировок в многопоточных программах (потребовать для корректной работы программы блокировку в том месте, где данные в памяти, казалось бы, не изменяются), но формально не противоречит стандарту языка C.
Линус подумывает о переходе на другой компилятор, в связи со слишком частым повторением такой ситуации, когда разработчики gcc занимаются юридическими выкрутасами с языком (language-lawyering) вместо решения реальных проблем пользователей gcc.
Примечательно, что на возможность такого рода неприятностей с блокировками в связи с недостаточной определенностью стандартов на язык C было указано еще два года назад в статье "Threads Cannot Be Implemented As a Library" (автор: Hans Boehm).
Dann Frazier послал приглашение на IRC-встречу сразу в несколько списков рассылки проекта Debian. Встреча будет посвящена проекту по добавлению новых версий пакетов (в частности, ядра и драйверов X) в стабильном выпуске Etch для того, чтобы сделать Etch более полезным для пользователей со "слишком новым" оборудованием.
Вышла новая версия самого навороченного загрузчика для x86-совместимых компьютеров. Gujin запускается с небольшого раздела FAT и сам ищет ядра Linux и образы initrd на разделах FAT и EXT2/EXT3. Умеет также грузить Windows, CD-ROMы и их образы. Для сборки, по информации с официального сайта, требует gcc-4.2.1 и binutils-2.18, фактически собирается и с gcc-4.1.2 и binutils-2.17.
Changelog в архиве отсутствует. По информации с freshmeat.net, в этой версии исправлено сохранение параметров на загрузочное устройство (т.е. дискету или жесткий диск), добавлен новый шрифт 10x20 для видеорежимов с вертикальным разрешением 768 или выше, добавлена возможность загрузки файла bootsect.dos, улучшена работа флага разрешения записи в случае, если устройство загрузки доступно только для чтения. Кроме того, Windows XP теперь рассматривается так же, как Windows 98, и может быть загружена с расширенного раздела или с диска, отличного от первого.
На официальные установочные диски Debian Lenny (testing) после длительного тестирования на www.goodbye-microsoft.com добавлен в автозагрузку установщик Debian из Windows. Теперь установка Debian занимает всего несколько щелчков мышью, и при этом в Debian импортируются многие настройки Windows.
В SVN-репозитарии Linux From Scratch появилась ветка x86_64. В этой ветке содержатся инструкции по сборке чисто 64-битной системы (с 64-битными библиотеками в /lib, без 32-битных библиотек, с символической ссылкой lib64 -> lib) из исходников. В отличие от CLFS, для этого не применяется кросс-компиляция, поэтому необходимо наличие другой 64-битной системы (или LiveCD с 64-битным ядром и компилятором) на компьютере. Известная недоработка - отсутствие инструкций по установке загрузчика.
Кроме того, выпущен полностью 64-битный LiveCD (ftp://ftp.lfs-matrix.net/pub/lfs-live...). В отличие от старого LiveCD, на новом диске 64-битное не только ядро, но и userspace, а также присутствует адаптированная под x86_64 версия книги LFS.
Команда разработчиков просит читателей протестировать CD и инструкции по сборке.
Вышла новая версия используемого, например, на сайте http://pastebin.com/ движка GNU для подсветки синтаксиса. Изменения:
* Исправлено автоопределение типа log-файлов
* Добавлено определение языка скриптов, начинающихся с #!/usr/bin/env interpreter
* Убраны утечки памяти
* Улучшена система сборки и файлы определений языков