воскресенье, 9 марта 2008 г.

Многотерминальная система на базе 7.04

Создание мультитерминальной системы на базе Ubuntu 7.04.

1. Аппаратное обеспечение


1) Материнская плата на базе Nforce2, Встроенный Nvidia графический контроллер.
2) Видеокарта ATI Radeon 9200
3) USB мышь и клавиатура genius
4) PS/2 мышь и клавиатура
5) TV-tuner
6) Мониторы Phillips 190C и Samsung Syncmaster 765MB

2. Задачи
Два полноценных работающих рабочих места.
Должен работать:
1) Оконная среда GNOME или KDE
2) Русская и Украинская раскладки клавиатуры
3) Приложения X
4) TV-tuner, на одном из рабочих мест.

3. Пути реализации.


пятница, 29 февраля 2008 г.

GNOME сборка

Приплыли - приходиться пеерсобрать X-ы, та как количество ошибок связанных с низкой версией компонентов зашкаливает.
Вот так и следовало начинать

четверг, 28 февраля 2008 г.

Сборка GNOME из исходников

Сборка продолжается!

10) gnome-mag-0.14.10

Ошибка
checking for XCOMPOSITE... configure: error: Package requirements (xcomposite xrender xext) were not met:

устанавливаем http://xlibs.freedesktop.org/release/libXcomposite-1.0.1.tar.gz

Потребовало libX11... Во время сборки потребовало keysymdef.h
как ни странно - но ставим xproto :)

среда, 27 февраля 2008 г.

Установка продолжается.....

Установка продолжается - пока бех новых ошибок. Посмотрим в сравнении KDE vs GNOME оба являются официальными релизами - посмотрим на ощущения....
Пока в KDE меня напрягает больше всего отсутствие kate

Установка GNOME ошибки и их решения

7) bug-buddy
configure: error: libelf.h not found.
make[1]: *** [configure-work/main.d/bug-buddy-2.20.1/configure] Ошибка 1

Лечиться установкрй пакета libelf из сети. По ощущениям - сборка GNOME меня напрягает больше. Больше дорабатывать напильником - хотя навыки работы напильником при установке у KDE пока должен быть выше.

8) pwlib
In file included from vidinput_v4l2.cxx:153:
vidinput_v4l2.h:161: error: field `videoCapability' has incomplete type
field `videoCapability' has incomplete type
погуглил... не помогло...
лечиться добавлением заголовочного файла videodev2.h

9) ekiga
/opt/gnome/lib/libcairo.so: undefined reference to `FT_GlyphSlot_Embolden'
libfreetype - добавить в Makefile -lfreetype в двух-трех местах - там где -lcairo

10)gdm

verify-shadow.o(.text+0x2b9): In function `gdm_verify_user':
: undefined reference to `gdm_debug'
--- gdm-2.20.3/daemon/verify-crypt.c.orig 2008-01-07 19:39:37.000000000 +0000
+++ gdm-2.20.3/daemon/verify-crypt.c 2008-01-09 13:39:50.000000000 +0000

Патч

@@ -43,6 +43,7 @@
#include "gdm-common.h"
#include "gdm-daemon-config.h"
#include "gdm-socket-protocol.h"
+#include "gdm-log.h"

static char *selected_user = NULL;

--- gdm-2.20.3/daemon/verify-shadow.c.orig 2008-01-07 19:39:37.000000000 +0000
+++ gdm-2.20.3/daemon/verify-shadow.c 2008-01-09 13:39:43.000000000 +0000
@@ -44,6 +44,7 @@
#include "gdm-common.h"
#include "gdm-daemon-config.h"
#include "gdm-socket-protocol.h"
+#include "gdm-log.h"

static char *selected_user = NULL;

http://jaguarlinux.com/pub/DIY/source/gnome-2.20.3/gdm-2.20.3/misc/

Сборка GNOME из исходников

В качестве инструмента для сборки GNOME был выбран garnome. Все это делается на Slackware 11.
Последовательность децствий и подводные камни - пока приблизительно равно сборке KDE 4.0, нерешаемых проблем пока не встретилось

1) Первая серьезная проблема - сборка hal 0.5.9
Начиная с конфигурирования приходиться все время дорабатывать напильником

Приблизительный перечень файлов заголовка ядра, которые нужно дорабатывать напильником, а именно - менять местами, переименовывать - либо установать glibc-headers которые соответствуют вашему ядру - мне это не удалось.

fs.h
sg.h
input.h
hid.h
hiddev.h

В конце концов было найдено решение копировать их в папки с исходниками hal/hald/linux/probing и переписывать в иходниках ссылки на них. Либо непосредственная правка заголовочных файлов ядра... Короче весь процесс занял часа полтора.

В конце уже гугль не помогал - исключительно интуиция

2) Вторая бочина - avahi - not supported architecture
Причина как выяснилось
__NR_inotify_init' undeclared (first use in this function)
Причина
unistd.h

Потом не смогло найти environ - закоментить If !DEfined... т.е. определить

3) esound

Проблема с тем что не смогла скопировать HTML папку с доками - их там нет - пришлось создать файлик самому - все пошло как по маслу

4) checking for XML::Simple... configure: error: XML::Simple perl module is required for icon-naming-utils

Качаем и ставим...

5) gnome-keyring
libgcrypt was not found. You may want to get it from
*** ftp://ftp.gnupg.org/gcrypt/libgcrypt/
Не собирется.
спать
make[2]: *** [rijndael.lo] Ошибка 1
make[2]: Leaving directory `/usr/src/libgcrypt-1.4.0/cipher'
Ну кто бы мог подумать что причина этому -O2
6) Сборка firefox
Нет libXft
нет xproto
Качаем и ставим....

среда, 30 января 2008 г.

Как собрать kdepim в KDE 4.0 из trunk

Вот все таки решился собрать kdepim из trunk.
Не удалось, пришлось пересобрать kdepimlibs из trunk.
Не удалось, пришлось подправить руками kde_file.h.

Итак, алгоритм сборки kdepim на KDE 4.0

1.Скачать kdepimlibs и собрать
2.Скачать kdepim.
Зайти в $KDE_DIR/include найти файл kde_file.h и поменять там
64 битные функции для работы с файлами типа fseek64 на обычные типа fseek.

Вместо

#define KDE_stat ::stat64
#define KDE_lstat ::lstat64
#define KDE_fstat ::fstat64
.....
#define KDE_mkdir ::mkdir

Должно получиться

#define KDE_stat ::stat
#define KDE_lstat ::lstat
#define KDE_fstat ::fstat
#define KDE_open ::open
#define KDE_lseek ::lseek
#define KDE_fseek ::fseek
#define KDE_ftell ::ftell
#define KDE_fgetpos ::fgetpos
#define KDE_fsetpos ::fsetpos
#define KDE_readdir ::readdir
#define KDE_sendfile ::sendfile
#define KDE_struct_stat struct stat
#define KDE_struct_dirent struct dirent
#define KDE_rename ::rename
#define KDE_mkdir ::mkdir

3.Собираем kdepim

понедельник, 28 января 2008 г.

KDE 4.0 сборка

Вот чего пишут о KDE на OpenSuSe и я сними согласен:
"Пожалуйста обратите внимание, что несколько приложений, самые важные из которых KDEPIM (KAddressbook, KMail, KOrganizer, Kontact) и Quanta не были выпущены как часть KDE 4.0.

Много других приложений KDE3 также не были перенесены на KDE 4.0. Библиотеки также доступны в основном как непостоянные разрабатываемые версии. 4.0 является началом KDE 4 и нуждается в тестировании сообществом, именно поэтому и было выпущено, именно для этого Вы можете установить её.

Если это уже удовлетворяет вашим потребностям, радуйтесь. В противном случае теперь Вы знаете, что ожидать"

И от себя добавлю. Если Вы пользуетесь своим почтовым клиентом(не Kmail), OpenOffice для работы, и "красивости" Вам интересны, приятны и жить помогают - качайте KDE 4.0 Если же нет - подождите нормального релиза.

Хотя, опять повторюсь - выглядит это красиво.

KDE 4.0

Установлен! С виду ничего так, но есть некоторые непонятности.
Продолжаю сборку пакетов.
Устанавливаю kdepim - не хватает библиотеки libassuan
kdepim собрать не удалось.

KDE 4.0

А пока собирается kdepimlibs, скачиваю через svn kdepim из trunk'а.

svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepim

KDE 4.0 продолжение установки

Все собралось, дошел до kdepimlibs
kdepimlibs требует еще 2 библиотеки:
gpgme, libgpgerror.

Установка KDE4.0 из исходников

Мой антиспам завершен, и как оказалось, совместим не только с qmail, но и с другими почтовыми серверами.
Потому, пока есть время думаю, дай ка я поставлю себе KDE 4.0 - эту вершину opensourceвской програмерской мысли.
Операционная система у меня Linux Slackware. Мой fluxbox мне надоел, захотелось чего-то новенького.

Итак, читаем и качаем себе KDE 4.0
Мануал по установке
И исходники :
Сразу готов обрадовать ценителей kmail исходники пакета kdepim в официальном релизе отсутствуют. Т.е. конечно его можно скачать, и поставить , но видимо он еще не дозрел.

Еще удовольствия добавила библиотека boost.
www.boost.org - 17M исходников.

Итак, порядок работы:

1) Компилим все недостающие библиотеки для установки.
Список необходимых пакетов берем из мануала по установке - ссылка выше:
  • gcc и g++, предпочтительно версии 4.2 и выше
  • svn, клиет контроля за версиями (the subversion revision control client)
  • pkg-config
  • Заголовочные файлы и библиотеки для разработки X11, OpenGL (mesa-common-dev and libglu1-mesa-dev), libjpeg, libpng, libungif, libclucene, librdf, libxml2 и libxslt
  • Скрипт makeobj, являющийся частью kdesdk.
  • пакет shared-mime-info, используемый сейчас в KDE в качестве стандарта freedesktop MIME (the freedesktop MIME standard)
  • boost, требуется для kdebase;
2) После успешной установки библиотек этих библиотек - продолжаем установку дополнительных библиотек и программок, тоже необходимых.
D-Bus
Cmake
Qt
HAL
kdesupport. Что примечательно - kdesupport можно получить через svn.

суббота, 19 января 2008 г.

Регулярные выражения

Для "белого" и "черного" списка используются регулярные выражения preg.
Вначале было приняо решение использовать regexp posix, 
но они оказались недостаточно гибкими, потому прнинято решение испльзовать preg.

Проект антиспама


Проект антиспам системы.
Укрупненный алгоритм функционирования:

Непроверенное сообщение проходит через qmail-smtpd потом с использованием переменной окружения qmail-queue оно попадает на проверку по "белому" и "черному"  списку соответственно.
После этого если сообщение не было отнесено ни к одному из этих списков,
оно попадает в "серый" список, в базу данных MySQL.


Отмеченные на пересылку сообщения из серого списка или при помощи qmail-inject и демона, либо cron отсылаются. Данная система будет удобна для relay-серверов из сетей в мир. Проверка серого списка по базе данных позволяет ускорить операции выборки, по сравнению с операциями 
выборки по плоским файлам.




Окончательный вариант системы-антиспам

После непродолжительной дисскуссии с заказчиком, было принято решение остановиться на таком алгоритме:

  1. Проверка в "белом" списке
  2. Проверка в "черном" списке
  3. Серый поток сообщений ожидает "человеческой" обработки.

Такой подход на мой взгляд будет довольно напряжным для администратора, но с другой стороны  - минимальное количество неправильно обработанных писем. И они не потеряются