Выход версии 5.6.1 задержался, так как за прошлые выходные я так и не смог исправить все найденные ошибки. Но я думаю, что наконец, исправил последнюю ошибку (всё ещё жду подтверждения от Paul из http://www.spookcentral.tk) и надеюсь, что текущая сборка 262 (SVN 601) будет выпущена сегодня или завтра. Мне просто нужно внести изменения в документацию (сценарии для установщика уже готовы).
Вот, наконец, новая стабильная версия Dragon UnPACKer: 5.6.0!
Основные новости:
- Теперь программа правильно работает под Windows Vista/7 с включённой UAC и без административных прав. Это вызывает пресловутую проблему "Всегда по-французски"... Извините, с этого момента я буду тестировать программу в системе с включённой UAC.
- Сокращение количества используемых не совместимых с Lazarus библиотек от третьих сторон.
- HypeRipper 5.6: плагины встроены в ядро (плагины больше не поддерживаются). Надеюсь, что это поможет мне в разработке многопоточной версии HyperRipper. Эта версия должна быть несколько надёжнее и быстрее, чем 5.5d.
- Исправлены многие ошибки и повышено удобство использования.
- Поддерживаются новые форматы файлов игр:
- Battleforge .PAK
- Dragon Age: Origins .ERF
- Sid Meier's Civilization V .FPK
См. журнал изменений, чтобы узнать обо всех нововведениях!
Новую версию можно загрузить отсюда: Dragon UnPACKer > Downloads.
Я начал писать код для ветки v6.x. Начал с нуля (как указывал 2 статьи назад) используя в качестве основы Lazarus/FPC. Таким образом, он максимально открыт (изначально исходный код ветки 5.x был закрыт, некоторые решения не имеют смысла, как, например, просматривать "скомпилированный" файл, содержащий значки).
Также, в доказательство концепции, я стараюсь двигаться в сторону объектно-ориентированных плагинов, похоже, это хорошо работает, поэтому я буду её придерживаться.
Исходный код нового Dragon UnPACKer'а может быть загружен из SVN с использованием имени модуля DragonUnPACKerLazarus вместо DragonUnPACKer. Обратите внимание, это далеко не пригодная к использованию точка, я реализовал основные элементы интерфейса и поддержку тем, плюс ультра базовый PoC объектно-ориентированных плагинов.
В ветке 5.x, нет ничего нового, но после сообщения об ошибке я заметил некоторые недостатки в Dragon Update Server и Duppi, поскольку после загрузки файлов с Sourceforge, они оказывались нерабочими (загруженные файлы были "повреждены"). Причиной было то, что на SourceForge пока не изменились адреса на загрузку и Duppi не получал нужные D5P файлы. Но я также решил внести некоторые изменения как в DUS, так и в Duppi.
В течение некоторого времени DUS содержит список доступных для загрузки серверов, но они не используются Duppi, который использует только первый доступный. Я изменил Duppi так, что он использует по порядку все серверы, пока загрузка не будет успешно завершена. Для этого в каждый D5P я добавил хэш SHA-1 для DUS и размера файла (в байтах). В SVN ревизии 505 Duppi уже делает такие обновления для Duppi, что не очень хорошо для использования на данный момент. Я изменю все доступные для загрузки рабочие файлы DUS v3.2.0 с изменениями живут более недели и Duppi v3.3.0 будет доступен на следующей неделе (если позволит время).
Коротко: я, наконец, смог добавить ночные сборки для Dragon UnPACKer.
Длиннее: я всегда хотел добавить автоматическое создание ночных сборок для Dragon UnPACKer, таким образом при каждом изменении мною кода CVS, бинарные версии будут автоматически доступны пользователям (если они когда-либо захотят проверить).
Проблема в том, что я хотел сделать на основе своей Debian (Linux) выделенный сервер, а Dragon UnPACKer использует Borland Delphi, среда разработки и компилятор которой работают только под Windows.
Я знал, что решением было использование компилятора командной строки (DCC32.EXE) из Borland Delphi 7 вместе с Wine (позволяет запускать Windows-приложения под Linux). Но использование компилятора командной строки (clc) сложнее, чем использование компилятора через среду разработки (IDE). Во всяком случае вчера я потратил несколько часов на настройку и вуаля!
С помощью cron, каждую ночь в 00:30 (GMT+1) CVS загружает исходный код из последней (HEAD) ветки. Написанная мной на PHP небольшая программа сравнивает дату изменения каждого файла с датой компиляции. Если были изменения, то выполняется сборка (исполняемого файла ядра, плагинов, duppi и dlngc собраны и скомпилированы, сгенерированы языковые файлы). После этого полученные файлы сжимаются с помощью p7zip (Linux-версия 7zip) и выгружаются (при этом создаётся файл журнала) на сервер загрузки, который зеркалируется каждые 30 минут двумя другими серверами).
Можете попробовать последнюю ночную сборку HyperRipper, обладающую более высокой скоростью работы и исправленными ошибками. Вчерашняя сборка (20100421) также должна быть очень стабильной (даже лучше последней нестабильной...). Я был бы рад получить ваш отзыв об этой версии, так как я в первый раз использую clc для Dragon UnPACKer.
Загрузить можно отсюда: Dragon UnPACKer Development > Nightly Builds.