Доброго времени суток!
Создал по мануалу https://developer.mozilla.org/en/Settin … ate_server update.xml
<?xml version="1.0"?> <updates> <update type="minor" version="3.0.10" extensionVersion="3.0.10" detailsURL="https://ipadress/fupdate/1.html"> <patch type="complete" URL="https://ipadress/fupdate/3/firefox-3.0.10.complete.mar" hashFunction="SHA1" hashValue="e55c4a5e4992e3c6459f482 <patch type="partial" URL="https://ipadress/fupdate/3/firefox-3.0.9-3.0.10.partial.mar" hashFunction="SHA1" hashValue="68f9247ad3a1589ecca </update> </updates>
Положил в /3 mar-файлы, сменил параметр app.update.url на https://ipadress/fupdate/update.xml а он все равно ломится на родные сервера обновлений(судя по фаерволу и логам апача)
Если прописать в параметр app.update.override https://ipadress/fupdate/update.xml то он ломится не на .../update.xml а на ..../update.xml?force=1
Уважаемые помогите пожалуйста а?
Отсутствует
У меня 400 компов по 30 филиалам области раскиданы и если все в инет полезут за обновлениями - мало того что около 3 гигов сожрут(у нас для юрлиц анлимов нормальных нет) так еще как канал грузанут, а так трафик будет внутриобластной и стоимость на порядок ниже и скорость там выше и инетканал не грузят.....я не говорю про центральный офис с 200 компами......
Отсутствует
Slot
А почему buildID не указан в update.xml?
Добавлено 27-05-2009 17:21:51
сменил параметр app.update.url на https://ipadress/fupdate/update.xml
Я так понял, SSL сертификат на https://ipadress самодельный? Это он вряд ли скушает, меняйте на http.
Do you feel lucky, punk?
Отсутствует
Я так понял, SSL сертификат на https://ipadress самодельный? Это он вряд ли скушает, меняйте на http.
На http менять пробовал - не помогает
Мне бы добится что бы на мой сервер обращался, а так в логах фаервола совсем другие IP - подскажите параметр в about:config - app.update.url не работает, а app.update.override дает шнягу описанную выше
А buildID по какому принципу создается? Или просто с родного слизать?
Отсутствует
Итак, я сегодня поднял этот сервер обновлений и у меня всё получилось.
В наличии имелся сервер с Debian Lenny. На него был поставлен apache2 и libapache2-mod-php5
В файле /etc/apache2/sites-available/default директива AllowOverride None была изменена на AllowOverride FileInfo
В каталоге /var/www был создан каталог /var/www/update/Firefox/3.0.10/win32/ru/release и туда положены файлы:
root@db-fw:/var/www/update/Firefox/3.0.10/win32/ru/release# ls -la total 12132 drwxr-xr-x 2 root root 4096 2009-05-28 11:57 . drwxr-xr-x 3 root root 4096 2009-05-28 11:18 .. -rw-r--r-- 1 root root 2188005 2009-05-28 11:22 firefox-3.0.10-3.0.11.ru.win32.partial.mar -rw-r--r-- 1 root root 10189913 2009-05-28 11:25 firefox-3.0.11.ru.win32.complete.mar -rw-r--r-- 1 root root 59 2009-05-28 10:12 .htaccess -rw-r--r-- 1 root root 658 2009-05-28 11:20 update -rw-r--r-- 1 root root 650 2009-05-28 12:12 update.xml
Файлы firefox-3.0.10-3.0.11.ru.win32.partial.mar и firefox-3.0.11.ru.win32.complete.mar были взяты с ftp://ftp.mozilla.org/pub/mozilla.org/f … es/build1/
Файлы .htaccess и update были взяты с https://developer.mozilla.org/en/Settin … ate_server без изменений:
.htaccess:
update:
<?php header("Content-type: text/xml"); $url_array=explode("/",$_SERVER["REQUEST_URI"]); $noidea=$url_array[2]; $product=$url_array[3]; $version=$url_array[4]; $build_id=$url_array[5]; $build_target=$url_array[6]; $locale=$url_array[7]; $channel=$url_array[8]; // filename is totally ignored $filename=$url_array[9]; $updatefile = "update.dir/$noidea/$product/$version/$build_id/$build_target/$locale/$channel/$filename"; if (file_exists($updatefile)) { $handle = fopen($updatefile, "r"); $contents = fread($handle, filesize($updatefile)); echo "$contents"; fclose($handle); } else { echo '<?xml version="1.0"?>'; ?> <updates></updates> <? } ?>
Потом я создал файл update.xml:
<?xml version="1.0"?> <updates> <update type="minor" version="3.0.11" extensionVersion="3.0.11" buildID="2009042316" detailsURL="http://192.168.0.1/ru/firefox/3.0.11/releasenotes/"> <patch type="complete" URL="http://192.168.0.1/update/Firefox/3.0.10/win32/ru/release/firefox-3.0.11.ru.win32.complete.mar" hashFunction="SHA1" hashValue="1a08be9c203da5fb20f632e970e23331bb21b995" size="10189913" /> <patch type="partial" URL="http://192.168.0.1/update/Firefox/3.0.10/win32/ru/release/firefox-3.0.10-3.0.11.ru.win32.partial.mar" hashFunction="SHA1" hashValue="67683707609194c20188459da2ecfe9853122de4" size="2188005" /> </update> </updates>
Хэш функции были вычислены с помощью sha1sum.
Потом я открыл русский Firefox 3.0.10 для Windows и создал строковый параметр app.update.url.override со значением http://192.168.0.1/update/Firefox/3.0.10/win32/ru/release/update.xml и проверил наличие обновлений. Firefox успешно нашёл обновление для 3.0.11 и успешно его применил.
Do you feel lucky, punk?
Отсутствует
Ааааааааа НАРОД!!! демоны - Вы чего - человек в шары второй день долбится - а Вы носом ткнуть не можете????!!!
Я вместо app.update.url.override писал app.update.override - поменял - все сразу заработало.
banbot СПАСИБО!!!
Отсутствует
Как создать сам файл .mar может кто в курсе?
Проще всего скачать его по ссылке типа этой.
Отредактировано luitzen (06-04-2010 22:37:21)
Отсутствует
Do you feel lucky, punk?
Отсутствует
Проще всего скачать его по ссылке типа этой.
А если я свою сборку хочу собрать в .mar файл зачем мне качать по этой ссылке?
Может быть по русски кто нибудь взялся бы описать как это сделать.
А то где не спрошу одни только ссылки. Я уже их выучил.
Отредактировано david141 (07-04-2010 22:33:21)
Отсутствует
А если я свою сборку хочу собрать в .mar файл зачем мне качать по этой ссылке?Может быть по русски кто нибудь взялся бы описать как это сделать.А то где не спрошу одни только ссылки. Я уже их выучил.
так у вас получилось сделать свой mar-файл?
вот если делать как предложено в вышеупомянутой ссылке, то вот тут вообще непонятно:
"will need mbsdiff.exe (source in mozilla/other-licenses/bsdiff) and mar.exe (source in mozilla/modules/libmar/tool) in your path "
и откуда брать эти mbsdiff.exe и mar.exe? по указанным путям их нет..
Отсутствует
Их надо компилировать, причём компиляция mbsdiff.exe — не совсем тривиальная задача; не уверен, что справился с ней хорошо: обновиться удалось один раз из десяти (но помню, что удалось). Вот zip-архив с двумя этими файлами.
Отредактировано luitzen (20-04-2010 11:44:19)
Отсутствует
Их надо компилировать, причём компиляция mbsdiff.exe — не совсем тривиальная задача; не уверен, что справился с ней хорошо: обновиться удалось один раз из десяти (но помню, что удалось). Вот zip-архив с двумя этими файлами.
спасибо
расскажите,пожалуйста, неучу как их самому скомпиллиорвать..
Отсутствует
как их самому скомпилировать
Не уверен, что у меня достанет квалификации ответить, как скомпилировать вот именно их. Давайте отталкиваться от этого.
Когда вы компилируете Firefox, mar.exe оказывается у вас в /c/mozilla-central/objdir-ff-release/dist/host/bin.
Здесь /c/mozilla-сentral — головная директирия исходного кода.
Чтобы там же оказался mbsdiff.exe, нужно добавить в mozconfig вот что:
Говорят, что нужно ещё немного магии, но у меня с ней не скомпилировалось, а без неё — нормально.
Отсутствует
Спасибо знатокам.
Но уже разобрался сам, на самом деле всё достаточно просто. файл .mar как разбирается так и собирается без проблем.
Проверил, обновление идёт с моего MAR файла на ура.
ВСЕМ СПАСИБО.
Отредактировано david141 (21-04-2010 11:15:24)
Отсутствует
david141, поделитесь с нами своим умением? Есть ли какие-то тонкости, выше не описанные? А то у меня по-прежнему обновляется один раз из десяти .
Отсутствует
Сборка полного MAR файла (complete.mar)
Пишу во сне сильно не пинать.
Не знаю как кто но я делал так:
Опыты проводились над 3.6.3
Скачал: MozillaBuildSetup.exe
Скачал: firefox-3.6.3.source.tar.bz2
Далее устанавливаем MozillaBuildSetup по умолчанию он просится на C:\mozilla-build соглашаемся.
Патом распаковываем firefox-3.6.3.source.tar.bz2 на диск C:\Mozilla-1.9.2 обзываем папку как mozilla-central должно получится так: C:\mozilla-central
Далее что нужно сделать, дабы небыло геморроя с прописыванием путей, поместить все файлы из папки C:\mozilla-build\msys\bin в папку C:\WINDOWS\system32. Эти файлы тоже
Заходим в папку C:\mozilla-central\tools\update-packaging в этой папке мы и будем работать.
РАСПАКОВКА:
Создадим папку к примеру: Unpacking в ней мы распакуем наш файл firefox-3.6.3.complete.mar
чтобы распаковать файл firefox-3.6.3.complete.mar создайте батник Unpacking.bat с таким содержимым:
C:\mozilla-build\msys\bin\sh.exe ../unwrap_full_update.sh firefox-3.6.3.complete.mar
Положите оба файла Unpacking.bat и firefox-3.6.3.complete.mar в папку Unpacking запустите Unpacking.bat начнётся распаковка файла.
Сделайте нужные изменения в файлах перед сборкой.
СБОРКА:
Зайдите в папку C:\mozilla-central\tools\update-packaging\test в ней мы видим примеры для разных версий.
В папке test создайте папку к примеру: buildmar перенесите все изменённые файлы из папки
C:\mozilla-central\tools\update-packaging\Unpacking в папку C:\mozilla-central\tools\update-packaging\test\buildmar
Откройте файл buildrefmars.sh в папке C:\mozilla-central\tools\update-packaging\test и добавьте строку:
Другие строки можно удалить дабы не создавать тестовые mar файлы.
Создайте в папке C:\mozilla-central\tools\update-packaging\test батник build.bat с таким содержимым:
запустите build.bat начнётся сборка нового файла firefox-3.6.3.complete.mar.
Проверено собранный MAR обновляется с сервера и с использованием этой процедуры. УДАЧИ!!!
Отредактировано david141 (24-04-2010 12:59:40)
Отсутствует
Спасибо, с полным обновлением понятно. А с partial.mar тоже не было проблем?
Отредактировано luitzen (Сегодня 13:11:08)
Не было.
А какие проблемы?
Пробовал и без partial.mar и с ним всё в норме.
Отредактировано david141 (21-04-2010 13:33:11)
Отсутствует
Мне, как писал, обновление с partial.mar удалось один раз из десяти. Вы, как мне кажется, его не предпринимали. Иначе бы наверняка упомянули, что make_incremental_update.sh вызывает diff, которого в MinGW нет .
Отредактировано luitzen (21-04-2010 13:35:35)
Отсутствует
Мне, как писал, обновление с partial.mar удалось один раз из десяти. Вы, как мне кажется, его не предпринимали. Иначе бы наверняка упомянули, что make_incremental_update.sh вызывает diff, которого в MinGW нет .
Сразу не понял вопроса.
Я сам не компилировал partial.mar а описал лишь способ сборки complete.mar
Отредактировано david141 (21-04-2010 14:24:19)
Отсутствует