Ru-Board.club
← Вернуться в раздел «Программы»

» Inno Setup XDELTA Patch Maker

Автор: usermode
Дата сообщения: 13.08.2015 10:01
[Release 1.9.9.3]

- Fixed bug with compiling if option Forced Path is checked and unchecked during compilations.
- Fixed bug with engine cache parameters on startup.
- Fixed bug with storing previous existed script code if reset project settings to defaults.
- Improved Patch Maker Log.
- Improved Patch Log.
- Updated Inno Setup Runtimes to version 5.5.6.
- Updated xdelta engine to version 3.0.10 (this version contain fixed bug with incomplete patching from version 3.0.9).
- Minor tweaks, fixed some issues.

Ссылка в шапке обновлена.
Автор: usermode
Дата сообщения: 03.09.2015 14:02
[Release 1.9.9.4]

- Fixed bug with renaming original files to lowercase names while building and appling a patch.
- Small speed optimization.

Ссылка в шапке обновлена.
Автор: WiperX
Дата сообщения: 22.09.2015 10:08
usermode
Спасибо за патчер, шикарная работа. Вы не могли бы выложить пачку скинов?
Автор: usermode
Дата сообщения: 22.09.2015 13:05
WiperX, пожалуйста
имеется в виду - пачку скинов vcl и cjstyles? вы свободно можете найти самостоятельно, можно скачать оригинальный пакет vcl for inno отсюда:
https://dl.dropboxusercontent.com/u/12733424/Blog/VCL%20Styles%20InnoSetup/SetupVCLStylesInno.exe
а Codejock можно взять здесь:
http://isskin.codejock.com/visualstyles.asp
msstyles можно конвертировать без потерь в cjstyles, даже с меньшим размером, с помощью встроенного в пакет редактора и конвертера скинов
http://isskin.codejock.com/downloads/ISSkinExample.zip
также много разных скинов в этом пакете:
http://restools.hanzify.org/inno/ISSkinEx/ISSkinEx3.0.0.2_for_InnoSetup_and_NSIS.exe

В скором времени, возможно сегодня, будет очередной минорный апдейт программы до 1.9.9.5.
Автор: WiperX
Дата сообщения: 22.09.2015 16:12
Если есть такой скин http://f-picture.net/fp/37d06fb6467f4af08d5d11dcdb73a0dc поделитесь)
При создании патча с помощью xdelta выдает ошибку, а с jojodiff все норм.
[more]Скрин
http://rghost.ru/private/8bq4QjW9l/90bba76693ac926ed47cb45945df5e41
Лог
http://rghost.ru/private/8NfVWBZ4P/d57a790d6031a835a0036e39468e3085
[/more] И еще вопрос, для чего нужен keyfile и как его правильно создать или добавить?
Автор: usermode
Дата сообщения: 22.09.2015 17:19
WiperX
Цитата:
для чего нужен keyfile и как его правильно создать или добавить?
нужно просто выбрать любой файл из папки с обновляемыми файлами, который будет проверяться патчером при установке как ключевой.

Цитата:
При создании патча с помощью xdelta выдает ошибку, а с jojodiff все норм.
хм... похоже опять на баг новой версии xdelta, самая стабильная и провереная версия 3.0.8.

Это большие файлы?
--> Target file: "C:\!Silent Storm\game.db"
>> Modified file: "C:\Silent Storm\game.db"

если до пятисот мегабайт каждый, то залейте на megaupload.com

или лучше скопируйте xdelta 3.0.8-x64 отсюда в папку pdata и замените:
http://rghost.ru/88gmz2bfb
если ошибки не будет, значит всему виной новая версия xdelta.

а скин этот вроде Tiger
https://www.sendspace.com/file/n8u040
Автор: WiperX
Дата сообщения: 22.09.2015 17:56

Цитата:
Это большие файлы?
--> Target file: "C:\!Silent Storm\game.db"
>> Modified file: "C:\Silent Storm\game.db"

Нет, 33 mb. Вся проблема была в xdelta, после замены все гуд Как можно изменить/редактировать размер скина и окон (хочетса компактный размер), и можно ли реализовать поддержку скинов для dup2?
Автор: usermode
Дата сообщения: 22.09.2015 19:56
WiperX
если не сложно, залейте эти файлы, можно в личку.


Цитата:
Как можно изменить/редактировать размер скина и окон (хочетса компактный размер), и можно ли реализовать поддержку скинов для dup2?
для этого можно поправить координаты в скрипте Inno ISXP.iss в папке pdata. уж даже не знаю куда компактнее поддержки других скинов не будет, dup использует программный .rsrc формат, а патчер может Inno Setup технологии только юзать.

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

А тем временем, очередное обновление

[Release 1.9.9.5]

- Fixed bug with missed patching engine in Patch if it compiled with enabled "Use cache" option on Patch Maker startup.
- Turned to forward RollBack procedure for calling it from custom code checks.
- Minor tweaks.

Ссылка в шапке обновлена.

Старую стабильную xdelta 3.0.8-x86-x64 верну в следующем билде, т.к. данный билд был отправлен на softpedia с самого утра, поэтому пока если с xdelta что-то не выходит, используйте JojoDiff.
Автор: WiperX
Дата сообщения: 23.09.2015 03:22
usermode
http://rghost.ru/private/8nvSLV6k7/4627e0398a90d8856872dc622f7a3f3a
Автор: usermode
Дата сообщения: 23.09.2015 09:32
WiperX
странно... у меня на Win7x64 SP1 xdelta генерирует патч-файл без ошибки.
а какая у вас система, на которой эти файлы выдают ошибку генерации? установлен ли антивирус или hips? может быть он мешал нормальной генерации?
Автор: WiperX
Дата сообщения: 23.09.2015 10:06
usermode
Win7x32 sp1 антивируса нет хз, надо бы проверить. спасибо за наводку!
Автор: usermode
Дата сообщения: 23.09.2015 10:38
WiperX
проверю у себя на варе, но все равно странно, я вам давал версию xdelta 64 битную, она под 32 бит системой не должна вообще работать, а вы говорите что все с ней нормально.

добавлено
воспроизвел ошибку на Win7x86 SP1 - да, есть баг у xdelta! но это вина автора, он криво добавил определение разрядности OS, и модуль, содержащий в себе две разрядности xdelta, на 32 бит системе не срабатывает и запускает на ней 64 бит версию. Так что это не баг генерации!, а баг запуска модуля соответствующей разрядности.
это мое упущение, не добавил 32 бит xdelta.
Автор: WiperX
Дата сообщения: 23.09.2015 12:51

Цитата:
проверю у себя на варе, но все равно странно, я вам давал версию xdelta 64 битную, она под 32 бит системой не должна вообще работать, а вы говорите что все с ней нормально.

Я скачал с сайта разраба 32 битную версию Будем ждать фикса.
Автор: usermode
Дата сообщения: 23.09.2015 13:07
WiperX
Цитата:
Я скачал с сайта разраба 32 битную версию

я так и подумал. отрепортил автору xdelta, пусть исправляет.

ну вот, xdelta3-x86_64-3.0.10.exe оказывается только для x64 систем, а для x86 нужно качать отдельно файл xdelta3-i686-3.0.10.exe. небольшое заблуждение. так что это никакие не баги, а я сам виноват, в следующем билде добавлю 32 бит xdelta.

Но у меня все же вопрос: добавить две разрядности новой xdelta 3.0.10, что равняется 1Mb, т.к. две версии будет содержать патч, или откатить на версию 3.0.8? Обе версии которой занимают 620Kb. Сам я склоняюсь к новой, 400Kb думаю никому свободного места не сожрут при использовании xdelta

А пока хочу спросить о реализации новой фичи:
"Create lecacy files list to delete" (ну или как-то так)

Если опция при генерации будет отмечена, то будет генерироваться список неиспользуемых в новой версии файлов, которые патч будет удалять (или резервировать/перемещать при бэкапе) как ненужные автоматически.
Я думаю просто добавить одну опцию в генератор, и, в зависимости отмечена она или нет, патч будет выполнять данное действие, если бэкап не отмечен - эти файлы будут удаляться, если отмечен, будут перемещены в папку с резервными файлами.
Автор: WiperX
Дата сообщения: 24.09.2015 18:48
Ниче так идейка, потихоньку приближаемся к универсальному конструтору
Поправил шапку.
Автор: usermode
Дата сообщения: 26.09.2015 17:54
WiperX
Цитата:
Поправил шапку.
спасибо
А тем временем в скором времени должно выйти критическое обновление (новая версия).

При обработке обновлений с большим количеством модифицированных файлов (несколько тысяч) процедура генерации не справляется и выбивает ошибку. Частично проблема устранена, остался еще один большой тест.
Автор: WiperX
Дата сообщения: 28.09.2015 15:20
usermode
Подскажите код для батника (для удаления измененных файлов с последующим восстановлением оригинальных файлов из папки Backup). По идее должно быть так, сначала удаляются все измененные файлы, затем восстанавливаются оригинальные файлы и удаляется папка Backup.
Автор: usermode
Дата сообщения: 28.09.2015 17:46
WiperX
я в батниках не силен, но восстановить бэкап очень просто: все содержимое папки с резервной копией можно переместить в папку с обновленной программой.
в батнике можно воспользоваться вызовом xcopy для копирования и del после завершения операции. нужен реальный пример?
Автор: WiperX
Дата сообщения: 28.09.2015 18:10

Цитата:
в батнике можно воспользоваться вызовом xcopy для копирования и del после завершения операции. нужен реальный пример?

Да, я хочу данный метод использовать при установке патча. Подскажите как правильно реализовать.
Автор: usermode
Дата сообщения: 28.09.2015 18:39
То есть откатить имеющийся бэкап перед применением нового обновления?

Если по простому для Inno Script в две строки.

Шаг - Before Patching
прописать строчку в Var: ResultCode: Integer;

Exec(ExpandConstant('{sys}') + '\xcopy.exe', '"'+ResultStr + '\Backup'+'" "'+ResultStr+'" /s /e /r /h /y /i', ExpandConstant('{sys}'), SW_HIDE, ewWaitUntilTerminated, ResultCode);

DelTree(ResultStr + '\Backup', True, True, True);

В результате перед применением обновления выполнится копирование всех файлов со структурой папок и подпапок в директорию с обновляемым приложением, а после выполнения выполнится полное удаление папки Backup.
Автор: WiperX
Дата сообщения: 28.09.2015 19:12

Цитата:
То есть откатить имеющийся бэкап перед применением нового обновления?

Не совсем так, сейчас опишу как нужно. Имеем игру (английская и русская версии), с помощью патчера сравниваем файлы и получаем разницу (русская версия). Устанавливаем английскую версию и накатываем патч, получается русская версия. Нужно что бы перед установкой патча создавался батник или задать команду в инно для удаления русской версии (какие файлы и папки удалить извесно, просто хочется автоматизировать процесс).
Автор: usermode
Дата сообщения: 28.09.2015 20:43
а при обновлении же бэкап создается с английской версией? зачем же тогда удалять файлы русификации, если можно перезаписать их английскими из бэкапа?
или файлы русификации это Included файлы? можно поподробнее расписать условия?
Автор: WiperX
Дата сообщения: 28.09.2015 21:12
При обновлении бэкап создается, но еще и остаются файлы и папки которые необходимо удалять вручную. Игру буду запускать с модами, но есть проблемы с русской версией. Поэтому хочу автоматизировать откат на английскую версию без лишних телодвижений. Нужно всего лишь добавить в Include батник который удалит полностью русские файлы и восстановит файлы из папки Backup c последующим ее удалением.
Автор: usermode
Дата сообщения: 28.09.2015 21:23
я приведу пример для Inno Script

Шаг - Before Patching
прописать строчку в Var: var ResultCode: Integer;

//полностью удалить папку со всеми файлами
DelTree(ResultStr + '\Rus', True, True, True);
либо
// Удалить только файлы с расширением .rus в указанной папке.
DelTree(ResultStr + '\Loc\*.rus', False, True, False);
либо
// Удалить только файлы с расширением .rus по всему каталогу.
DelTree(ResultStr + '\*.rus', False, True, True);
либо
// Удалить все файлы в ResultStr + '\Loc', но папку Loc не удалять
DelTree(ResultStr + '\Loc\*', False, True, True);

//также можно юзать удаление файла через
DeleteFile(ResultStr + '\Loc\Main_Rus.dat')

Exec(ExpandConstant('{sys}') + '\xcopy.exe', '"'+ResultStr + '\Backup'+'" "'+ResultStr+'" /s /e /r /h /y /i', ExpandConstant('{sys}'), SW_HIDE, ewWaitUntilTerminated, ResultCode);

DelTree(ResultStr + '\Backup', True, True, True);

Автор: WiperX
Дата сообщения: 28.09.2015 21:35
Спасибо, буду пробовать А можно добавить в патчер (опционально) пункт показать/скрыть окно лога, т.е после выбора папки установки и нажатия кнопки старт, окно было как в режиме SilentForm?
Автор: usermode
Дата сообщения: 28.09.2015 21:43

Цитата:
А можно добавить в патчер (опционально) пункт показать/скрыть окно лога, чтобы было как в режиме SilentForm?
это коснется опции SaveLog, т.к. сохраняется результат окна лога, но можно схитрить, найдите такие строчки в ISXP.iss

#ifndef PWP_SilentMode
pInfo.SendToBack;
pLog.BringToFront;
#endif

и замените на

#ifndef PWP_SilentMode
pInfo.BringToFront;
pLog.SendToBack;
#endif

лог не будет вырезан и по идее содержимое должно сохраниться при отмеченой опции Save Log. окно лога будет просто скрыто за окном Info.

Ну а если Вы имеете в виду полугибридное оформление окна патча, то парочку модификаций я буду добавлять уже ближе к окончательной версии, а пока идет фикс багов и реализация нового функционала, так что косметические рюши на заднем плане.
Автор: WiperX
Дата сообщения: 28.09.2015 21:54
Будем ждать. Видать Вы что то грандиозное задумали
Автор: usermode
Дата сообщения: 28.09.2015 22:19
WiperX, ничего грандиозного
Сейчас фиксится баг с длиной путей к файлам, превышающих 255 символов.
В планах сделать поддержку кумулятивных обновлений, но пока еще не знаю с какой-стороны подступиться, это не так просто, т.к. нужно многое учесть и чтоб все это работало
Это не коммерческий продукт, поэтому я пилю его под настроение и о каких-то сроках не может быть и речи Изначально он создавался для личного пользования, а потом народ начал подсказывать новые фичи и багрепортить. Сейчас он тоже еще не доработан, вот грядущая версия 1.9.9.7 уже приближена будет по багфиксам к отполированному продукту.


Цитата:
В любом случае успехов Вам
спасибо!
Автор: WiperX
Дата сообщения: 28.09.2015 22:48
В любом случае успехов Вам
Автор: WiperX
Дата сообщения: 30.09.2015 03:35
usermode
Если патч обычный/silentform создается на х32 системе с установкой по поиску ключа в реестре, сможет ли пользователь с системой х64 запустить/установить его?

Страницы: 123456

Предыдущая тема: Offtop


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.