Blog in development hell.
Ближайшее изменение – новый пост.

четверг, 15 апреля 2010 г.

Fennec для Android

Скомпилировано для Android 2.1. Скорее всего для 1.5 и 1.6 скомпилировать вообще невозможно, но... посмотрим.

Подробная инструкция по компиляции

В основе этого сообщения лежит инструкция немецкого энтузиаста.
Для компиляции вам понадобится Native Development Kit и SDK. Автором предполагается, что операции вы будете проводить в папке /usr/src. Качаем NDK, распаковываем, устанавливаем. Возвращаемся в /usr/src. Качаем SDK, распаковываем, запускаем.
cd /usr/src
wget http://dl.google.com/android/ndk/android-ndk-r3-linux-x86.zip
unzip android-ndk-r3-linux-x86.zip
cd android-ndk-r3/
build/host-setup.sh
cd ..
wget http://dl.google.com/android/android-sdk_r05-linux_86.tgz
tar -zxf android-sdk_r05-linux_86.tgz
android-sdk-linux_86/tools/android
Кликаем дальше Update All и выбираем необходимые среды. Так как у меня сейчас на телефоне 2.1, я выбрал android-7 без документации и примеров. Все оно скачивается (около 120МБ) и само устанавливается. Закрываем.
Далее для компиляции вам понадобится создать символьную ссылку на один файл (для простоты видимо):
ln -s /usr/src/android-sdk-linux_86/platforms/android-7/tools/aapt /usr/src/android-sdk-linux_86/tools/aapt
(заметьте: тут учитывается, что вы также выбрали android-7 среду)
Далее вам нужно установить все зависимости компиляции. У меня стоит гента, поэтому мне лишь понадобился subversion и mercurial. Что у вас, я не знаю, вот оригинальная цитата:
apt-get build-dep firefox
apt-get install mercurial libasound2-dev libcurl4-openssl-dev libnotify-dev libxt-dev libiw-dev mesa-common-dev autoconf2.13 libidl-dev sun-java6-bin sun-java6-fonts sun-java6-jdk sun-java6-jre hgsvn
Теперь начинаем вытягивать собственно исходники. Создаем директории и подготавливаем все и вся.
hg clone http://hg.mozilla.org/users/vladimir_mozilla.com/mozilla-droid fennec
cd fennec
hg update -C android2
hg clone http://hg.mozilla.org/mobile-browser mobile
В будущем для ускорения процесса можно будет использовать:
cd fennec
hg pull -u http://hg.mozilla.org/users/vladimir_mozilla.com/mozilla-droid
hg update -C android2
cd mobile
hg pull -u http://hg.mozilla.org/mobile-browser

Что ж теперь самая интересная часть. Конфиг компиляции (/usr/src/fennec/browser/config/mozconfig) и тут небольшая ремарка. Я изменял конфиг, поэтому дальнейшие инструкции будут отличать от приведенных в источнике.
# This file specifies the build flags for Firefox.  You can use it by adding:
#  . $topsrcdir/browser/config/mozconfig
# to the top of your mozconfig file.

# Uncomment these two lines to use objdir with client.mk
OBJDIR=objdir-android
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/$OBJDIR

#ac_add_options --enable-application=browser
# For Fennec use this instead:
ac_add_options --enable-application=mobile

# Global options
ac_add_options --disable-debug
ac_add_options --enable-optimize
# libxul is required
ac_add_options --enable-libxul

# android options
ac_add_options --target=arm-android-eabi

export C_F_P=/usr/src
ac_add_options --with-android-ndk="$C_F_P/android-ndk-r3"
ac_add_options --with-android-sdk="$C_F_P/android-sdk-linux_86/platforms/android-7"
ac_add_options --with-android-tools="$C_F_P/android-sdk-linux_86/tools"
ac_add_options --with-endian=little
ac_add_options --enable-tree-freetype
ac_add_options --enable-faststripe
ac_add_options --disable-ctypes

# ssltunnel can't build because the ndk doesn't have string, vector, or algorithm headers
ac_add_options --disable-tests
(я изменял конфиг согласно интуиции и инструкциям на оф.сайте мозиллы)
Что ж небольшое задание переменной и мы почти готовы.
export MOZCONFIG='/usr/src/fennec/browser/config/mozconfig'
Вперед!
make -f client.mk
(любые ошибки возникающие на этом шаге - ошибки компиляции. Смотрим вывод и принимаем необходимые действия (например, устанавливаем дополнительные необходимые программы, меняем флаги компиляции или отписываемся в форумы))
Автор заявляет 2-4 часа на компиляцию. Я уложился в 2 часа.

Далее проверьте директорию /usr/src/fennec/embedding/android на наличие файла Makefile.
Если он там есть, то выполните:
cd /usr/src/fennec/embedding/android
make
Скорее всего его там нет, поэтому проверьте директорию /usr/src/fennec/embedding на наличие файла Makefile.
Если он там есть, то выполните:
cd /usr/src/fennec/embedding
make
cd /usr/src/fennec/embedding/android
make
Скорее всего его там нет :D, поэтому выполните следующие команды в корне компиляции:
cd /usr/src/fennec
./configure
cd /usr/src/fennec/embedding
make
cd /usr/src/fennec/embedding/android
make
Вот в этом (cd /usr/src/fennec/embedding; make) месте вы вероятнее всего схватите ошибку, но это нормально, так как свое предназначение он выполнит - создаст Makefile в папке /usr/src/fennec/embedding/android.

Если вы использовали параметры:
OBJDIR=objdir-android
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/$OBJDIR
Вам придется исправить Makefile в той директории, где вы находитесь (/usr/src/fennec/embedding/android).
Ищем:
include $(DEPTH)/config/autoconf.mk
Сразу после него добавляем:
DIST = $(DEPTH)/objdir-android/dist
И наконец-то выполняем последнюю команду, которая теперь должна выполниться без ошибки:
make
Немецкий энтузиаст рекомендовал использовать gecko-unaligned.apk, но я буду выкладывать лишь fennec.apk или же firefox.apk, так как не вижу в них разницы (gecko-unaligned и fennec|firefox).

понедельник, 5 апреля 2010 г.

Windows - мой набор программ

Первым делом настраивается электропитание, потом меню, далее устанавливаются программы.

В один день я решил не использовать UAC и брандмауэр, а использовать нормальный антивирус. И проблемы с PunkBuster'ом на семерке испарились.

Для жизни:

  • Chrome - браузер. Но только dev-channel. Обновления появляются быстрее и...
  • CCleaner - очищает диск (кэш браузеров, временные файлы и т.д.), реестр, позволяет управлять автозапуском и установленными программами.
  • Update Checker - FileHippo Update Checker, название говорит за себя.
  • Defraggler - дефрагментирует разделы.
  • VLC - хороший видеопроигрыватель.
  • Avast - антивирус.
  • 7zip - свободный архиватор.
  • ICQ - официальный клиент (дабы не нарушать лицензию ICQ).
    Больше не пользуюсь. Только Gtalk, ICQ - максимум транспортом.
  • Skype - это Skype (видео-чат, если кратко).
  • uTorrent - торрент-клиент.
  • GIMP - растровый редактор изображений. Переучиться с Photoshop - легко.
Для работы:
  • Opera - браузер.
  • Firefox - браузер.
  • WinSCP - SFTP-клиент.
  • Notepad++ - редактор текстов с множеством функций (подсветка синтаксиса, например).

OEM English Vista vs. Russian User

Если во время установки указать ключ, в самом конце установки BSOD на 0x0000012A. Нет установленного необходимого MUI.
Если во время установки не указывать ключ, а указать его после загрузки - BSOD на 0x0000012A.

Решение было установить Russian MUI. Однако, как я помнил, они есть только на Ultimate версию. С моим же ноутбуком шла Home Basic.

Немного гугла и я понял что мне нужно. Vistalizator - да, он меня спас.
Скачал оттуда саму программу и MUI. Установил в Internal режиме. Перезагрузился.
Увидел русский интерфейс. Ввел ключ, активировался, перезагрузился и... BSODа не было. Теперь счастливо сижу на активированной висте.

P.S. Quake Live ужасно тормозил на x64 семерке и висте. На x86 - летает, я счастлив.