Подскажите пожалуйста, в какой теме можно разместить это(или создать новую):
www.nosgothica.org/showthread.php?t=423 - альтернативный OsZone'овскому движок для интеграции пакетов обновлений и удаления компонентов. В нём исправлены ошибки и реализовано подписывание файлов.
[more=Сравнение с Движком UpdatePack]*Структура аддонов и набор конфигурационных файлов остались теми же за исключением файла Upd (убран).
*Убрана возможность создания конфигурации для интеграции аддонов по списку (оный регулируется простым удалением аддонов из папки Addons) и тестирования списка аддонов (т.к. теперь нет особой разницы в тестировании одного аддона или нескольких - результат не изменится).
*Для использования движка не нужно выкачивать "в довесок" все обновления WinXP.
Нет анализа ранее интегрированных аддонов. Также не создаются подпапки Compressed в папках аддонов - файлы сжимаются непосредственно при копировании в дистрибутив.
*Код стал проще для просмотра и редактирования; движок не зависит от пачки внешних прог; в какой кодировке inf-файлы были, в такой они и остаются (а не преобразуются в ANSI левым скриптом).
*Сделана оптимизация чтения данных конфигурационных файлов движка в папках аддонов: оные просматриваются только 1 раз.
*Сдалана оптимизация удаления файлов из I386 - теперь этот процесс протекает куда быстрее.
*Добавлен "умный анализ" проверки нужности перепаковки cab-архивов: если в движке UpdatePack наличие хотя бы в одном аддоне непустой подпапки Files приводило к распаковке всех cab-архивов из I386, то в моем движке за пару секунд получается список файлов всех cab-архивов в I386, который сравнивается со списком файлов в DelDrv.lst и подпапках Files аддонов, в результате чего получается список cab-архивов для перепаковки (весь этот процесс занимает несколько секунд, - быстрее, чем вы прочитали этот пункт).
*Добавлен конфигурационный файл RunCmd - командный файл, запускаемый на T-13 после интеграции SVCPACK-аддонов; служит для удаления файлов/директорий и внесения настроек в реестр (это заместо кучи выпрыгивающих cmd-окошек, реализованных в пачке аддонов посредством sysoc).
*В движок зашит аналог скрипта для обработки Z-Del-аддонов (файлы Start, Finish, Finish.cmd в довесок к папке _Settings в каждом таком аддоне, - всё это дело заменено на 1 файл CleanInf.lst).
*Тестируется любой такой аддон запуском файла Test.cmd, который содержит только 1 строчку кода.
*По спискам DelOC.lst теперь очищаются не только файлы dosnet.inf, txtsetup.sif и sysoc.inf, но еще и файлы corelist.inf, defltwk.inf, hivesys.inf, iis.inf, syssetup.inf и wbemoc.inf; поэтому в некоторых Z-Del-аддонах нет даже CleanInf.lst, т.к. и без него всё прекрасно чистится.
*В силу добавления утилиты подписывания файлов, исчезла нужность в использовании аддона Z-Dll_Patcher для Z-Del-аддонов (оставлена только пара полезных патчей).
*В целях оптимизации обработки Z-Del-аддонов, а также устранения конфликтов между ними, был пересмотрен механизм их обработки: теперь создается единый список изменений по файлам CleanInf.lst всех аддонов и нужные inf-файлы правятся по общего списку за 1 проход.
*Ну еще в движок был добавлен функционал для финальной "чистки" правленых inf-файлов: в них объединяются секции + чистится секция [Strings] (т.е. не нужно отдельно прописывать в CleanInf.lst строки для удаления из этой секции - она сама очистится).[/more]
[more=Структура и назначение Папок/Файлов][BIN] (папка служебных файлов Движка)
[ADDONS] (папка аддонов)
--[Example] (папка конкретного аддона)
----[Files] (файлы из корня этой папки предназначены для замены файлов в I386 (т.е. если файла нет в I386, то он и не скопируется); если файл в I386 сжат, то при копировании он будет сжат в CAB-архив и приведен к виду file.ex_)
------[ForceCopy] (содержимое папки напрямую копируется в I386 без дополнительной обработки; новые файлы должны быть прописаны в конфигурационных файлах Txtsetup и Dosnet)
--------[SVCPACK] (содержимое копируется в I386/SVCPACK)
----Addon.nfo (файл с информацией об аддоне - чисто для справки)
----Conflict (список аддонов, с которыми несовместим данный аддон)
----CleanInf.lst (доп. очистка inf-файлов; его формат см. ниже; для тестирования запускаем Test.cmd)
----DelCAT (список каталогов для удаления из I386/SVCPACK)
----DelOC.lst (список файлов для удаления из I386; дублируется в KillWFP.lst; по спискам файлов в DelOC.lst чистятся Dosnet.inf, Txtsetup.sif и Sysoc.inf, а также corelist.inf, defltwk.inf, hivesys.inf, iis.inf, syssetup.inf и wbemoc.inf)
----DelDrv.lst (дублируется в DelOC.lst + по списку из DelDrv.lst чистятся CAB-файлы в I386)
----Dosnet (содержимое добавляется в Dosnet.inf в чистом виде)
----Finish (cmd-команды, выполняемые после интеграции всех компонентов)
----Hive (содержимое добавляется в чистом виде в Hivepck.inf, который добавляется к остальным hive*.inf в секцию [HiveInfs.Fresh] файла Txtsetup.sif и выполняется еще на текстовом этапе установки)
----KillWFP.lst (список файлов для выведения из списка защиты WinXP)
----Required (список аддонов, от которых зависит данный аддон)
----Run (содержимое добавляется в чистом виде в секцию [SetupHotfixesToRun] файла Svcpack.inf; файлы кидаются в папку SVCPACK. Например, если нужно на T-13 запустить файл setup.exe с ключом /s, то кидаем setup.exe в папку SVCPACK аддона и в его корне создаем файл Run с текстом setup.exe /s)
----RunCmd (cmd-команды, которые объединяются в единый файл 0_Run.cmd, добавляемый в папку I386\SVCPACK; этот файл запускается в конце T-13 из svcpack.inf)
----Sign.lst (файлы, которые нужно подписать; должны называться также, как и в дистрибутиве)
----SpecCase (cmd-команды для удаления мусора из дистрибутива; выполняется после Start)
----Start (cmd-команды, выполняемые до интеграции всех компонентов)
----Sysoc (содержимое добавляется в секцию [Components] файла Sysoc.inf)
----Test.cmd (служит для тестирования CleanInf.lst в связке с DelOC.lst; внутренности Test.cmd всегда одинаковы:
@..\..\__PATCH.CMD "%~p0")
----Txtsetup (содержимое добавляется в Txtsetup.sif в чистом виде)
__PATCH.CMD (файл запуска движка)
Distr.ini (здесь указываем путь к дистрибутиву)
Out.ini (здесь указываем размещение результата)
Замечания:
ВСЕ конфигурационные файлы ДОЛЖНЫ быть в кодировке ANSI!
Командным файлам Start, SpecCase и Finish передаются локальные переменные:
%Distr% - путь к папке изменяемого дистрибутива;
%I386% - путь к подпапке I386 папки изменяемого дистрибутива;
%~1 - путь к папке аддона, из которого запускается Test.cmd. [/more]