Сборщикам...

61 сообщение / 0 new
Последнее сообщение
Sheridan
Аватар пользователя Sheridan
Не в сети
Зарегистрирован: 20/09/2010
Сборщикам...

Думаю поможет тем кто собирает софт...
[link=http://sheridan.stavcom.ru/filez/install_script.tar.bz2]Тут[/link] выложил скриптик...
Короче облегчает он сборку-установку софта. Лог, подсветка и прочие радости.
Вот например
Кофигурация
[img]http://sheridan.stavcom.ru/filez/is0.png[/img]
сборка
[img]http://sheridan.stavcom.ru/filez/is1.png[/img]

Что непонятно - спрашивайте тут. На вопрос "А нафик надо?" отвечу сразу: [b]мне[/b] так удобно. Удобно ли будет так вам - решать не мне. Мое дело предложыть.

LepisDun (не проверено)

спасибо, очень удобно

Sheridan
Аватар пользователя Sheridan
Не в сети
Зарегистрирован: 20/09/2010

Ну хоть ктото интерес проявил :)

LepisDun (не проверено)

просто очень удобно наблюдать ща процессом сборки...

LepisDun (не проверено)

огромное спасибо за енту штукенцию... ооооооооооочень удобно... да и разнообразит... не так скучно смотреть на процесс компайла...

Thomas HaCKraft (не проверено)

На скринах выглядит красочно. Счас испробуем!...

Thomas HaCKraft (не проверено)

Если консоль с белым фоном, то иногда выглядит немного жутко. %-6

Хоть я и запускал "run" и видел непривычно разукрашенную "ls -al", но все-таки, я так и не понял как этим пользоваться.
Sheridan, насколько я понял, скрипт сделал ты. Может тогда для культуры хоть README положишь в архив? В крайнем случае, поясни здесь пожалуйста как этим пользоваться. ?!

Sheridan
Аватар пользователя Sheridan
Не в сети
Зарегистрирован: 20/09/2010

run --help хотя действительно реадми надобы. Дело тут в том что русский в utf8 консоли не работает с клавиатурв. както не нужен был...
Щас я это дело еще доработал. Забыл принести...

Ares (не проверено)

молодец, прикольно и удобно))) я никогда не занимался программированием в консоли, но сейчас приперло, а есть редактор с подсветкой синтаксиса сишного?

Sheridan
Аватар пользователя Sheridan
Не в сети
Зарегистрирован: 20/09/2010

vi
f4 в mc

Ares (не проверено)

mc - ну так и пользуемся))) думал мож налабал что нить свое... а вот с vi не разу не работал...да и не хоцца что-то лезть в эти дебри

Sheridan
Аватар пользователя Sheridan
Не в сети
Зарегистрирован: 20/09/2010

а вобще kdevelop под иксами рулит...

Ares (не проверено)

ну тож под иксы))))

Sheridan
Аватар пользователя Sheridan
Не в сети
Зарегистрирован: 20/09/2010

тогда точно vi, vim но тут я тебе уже не помошник. Хотя мне кажется что там просто с непривычки все трудно...

Ares (не проверено)

Ну ладно код я с горем пополам напишу в mc...но чую начальство захочет чтоб был графический интерфейс(у меня несколько процессов и каждый нужно контролировать). Насколько я помню есть 2 системы разработки Qt (KDE) и GTK++(Gnome) а есть что нибудь чтоб я не привязывался к конкретному окружению рабочего стола?

Sheridan
Аватар пользователя Sheridan
Не в сети
Зарегистрирован: 20/09/2010

qt пользуй ибо оно и под виннду может собратся и под линух. Опятьже и дизайнер нормальный имеет.
ftp.trolltech.com

Ares (не проверено)

qt под винду! щас посмотрю))) (Гы-гы потирая ладошеи, предвкушая глюки)

Sheridan
Аватар пользователя Sheridan
Не в сети
Зарегистрирован: 20/09/2010

Щас появица kalpa....

kalpa
Аватар пользователя kalpa
Не в сети
Зарегистрирован: 20/09/2010

Пригласили, Появился.
1) Ни Qt, ни gtk к среде не привязан. Среды привязаны к библиотеками.
2) Глюки говорите... В TrollTech такие профи сидят! Так что рекомендую сперва искать глюки в своем коде.

Ares (не проверено)

1) то и имелось в виду!
2) лучше посоветовал бы на чем писать, раз такой профи

Sheridan
Аватар пользователя Sheridan
Не в сети
Зарегистрирован: 20/09/2010

kdevelop + qt designer

kalpa
Аватар пользователя kalpa
Не в сети
Зарегистрирован: 20/09/2010

Уж и не знаю какой я "такой" профи, но пишу на Qt

Ares (не проверено)

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

kalpa
Аватар пользователя kalpa
Не в сети
Зарегистрирован: 20/09/2010

Есть еще несколько плюсов. :)
Уверяю.

Ares (не проверено)

ну завалите меня плюсами))))

kalpa
Аватар пользователя kalpa
Не в сети
Зарегистрирован: 20/09/2010

C++ (используется в Qt ) :)

Ares (не проверено)

)))) странно я то думал это Басик...

kalpa
Аватар пользователя kalpa
Не в сети
Зарегистрирован: 20/09/2010

Нуу. в Gtk плюсов нет ;)

Sheridan
Аватар пользователя Sheridan
Не в сети
Зарегистрирован: 20/09/2010

[quote=kalpa]Нуу. в Gtk плюсов нет ;)[/quote]
Ты меня прям ошарашыл... На простом С писано чтоли?

Ne01eX
Аватар пользователя Ne01eX
Не в сети
Зарегистрирован: 20/09/2010

--help This message & cat this $ configere help into configure.help
--no-log Do a work without logging
--beep Make beeps on every stage
--no-make Do not run make scripts (all,check,install,etc...) after configure
--no-install Make but no install project
--clean Clean src before work
--uninstall-first Uninstall project before install
--no-conf No configuration pass
--reinstall Uninstall and install only

Дока по прежнему не рулит :-). Пока не попробуешь, хрен че поймешь :-). Непонятно зачем вспомнил Сида Мейера - "Русские - самые сильные, Немцы - самые мудрые, Французы - самые красивые" =).

Sheridan
Аватар пользователя Sheridan
Не в сети
Зарегистрирован: 20/09/2010

доки попрежнему нету :)
Да и скрипты я вроде уже перебирал ище раз... или нет...
Чтонепонятно?
--help выводит этот хелп и $ configure --help в файл configure.help и на экран
--no-log Работать без логов
--beep Бикать бипером после завершения операций - те. configure - бикаем - make - бикаем ...
--no-make Не запускать сборку и установку - тоесть только конфигурируем...
--no-install Собираем, чекаем но не инсталлим
--clean делаем make clean distclean перед конфигурированием
--uninstall-first Первым делом делаем анинсталл а потом все остальное
--no-conf не конфигурить поновой
--reinstall Просто make uninstall и make install

Ne01eX
Аватар пользователя Ne01eX
Не в сети
Зарегистрирован: 20/09/2010

Да нет, я уже тоже в самом скрипте посмотрел. =)
Есть практический вопрос: как относишься включению данного сабжа в RTK Linux как часть, некого пакета?
Под поэтическим названием [b]rbuild[/b] (r - осталось от run, build - собственно то, что скрипт делает)?
<span class='smallblacktext'>[ Редактирование 30.09.2005 - 07:18:38 ]</span>

Sheridan
Аватар пользователя Sheridan
Не в сети
Зарегистрирован: 20/09/2010

Лехко :) Если есть желание - завтра принесу новую версию - я там упаковку исходников добавил после сборки и еще чтототам помелочам...

Ne01eX
Аватар пользователя Ne01eX
Не в сети
Зарегистрирован: 20/09/2010

Заметано.

Sheridan
Аватар пользователя Sheridan
Не в сети
Зарегистрирован: 20/09/2010

ой.. седняж пятница :)
Короче в понедельник будет, о чем тут и сообщу :)

Ne01eX
Аватар пользователя Ne01eX
Не в сети
Зарегистрирован: 20/09/2010

А собственно, какой именно понедельник имелся ввиду? ;)
Еще вопрос: отношение к распростанению под GNU GPL v2. от 2 июня 1991 года?
в принципе, никто никого никуда не торопит, просто я бы в выходные попробывал бы уже нарисовать ввиде конкретного пакета утилит...

Sheridan
Аватар пользователя Sheridan
Не в сети
Зарегистрирован: 20/09/2010

Извиняюс...
Память никчерту стала...
как раз сеня принес http://sheridan.stavcom.ru/filez/install_script.tar.bz2
Напиши только там - С подачи шеридана мол... и аську мою воткни 1887019 ато забыл...
...и как его там оформить под ГПЛ незнаю - неделал ниразу...

Sheridan
Аватар пользователя Sheridan
Не в сети
Зарегистрирован: 20/09/2010

Да, там глючек небольшой... Всвязи с тем что я подругому стал перехватывать вывод наблюдается интересная ситуация с вопросами...
Тоесть скажем конфигура кака-ть задает вопрос... Скажем пароль спрашивает... Так вот у меня вопрос отображается после введения ответа... Тоесть вывод какбы отстает на строку. Непонял как обойти...

Sheridan
Аватар пользователя Sheridan
Не в сети
Зарегистрирован: 20/09/2010

... и еще... Насколько плотно ты в RTK LinuxSecurity Team? Сервак нужен? Я если получится гдето зимой-весной поставлю свой сервачек в колокейшн. В принципе можно поговорить если еще нужна будет помощь... Денег врядли просить буду, развечто за траффик сами платить будете...

Ne01eX
Аватар пользователя Ne01eX
Не в сети
Зарегистрирован: 20/09/2010

>Тоесть скажем конфигура кака-ть задает вопрос... Скажем пароль спрашивает... Так вот у меня вопрос отображается после введения ответа... Тоесть вывод какбы отстает на строку. Непонял как обойти...

Подумаем...

> Напиши только там - С подачи шеридана мол...

Естественно, даже не сомневайся.

> и аську мою воткни 1887019 ато забыл...

Обязательно. И пагу откуда, только что скачал...

>..и как его там оформить под ГПЛ незнаю - неделал ниразу...

Оформим. И линк на результат напостим.

В принципе я пока смутно представляю конечную цель задумки, но пока она обрисовывается как утилита с dialog/Xdialog интерфейсом для продвинутой, "однокнопочной" сборки пакаджей под Slackware / RTK Linux. RPM пока никто не озадачивался, но дальше видно будет, чем черт не шутит... !bsd
Вообщем, как рожу готовый к использованию пакадж, напостю.

<span class='smallblacktext'>[ Редактирование 07.10.2005 - 09:33:58 ]</span>

Ne01eX
Аватар пользователя Ne01eX
Не в сети
Зарегистрирован: 20/09/2010

>.. и еще... Насколько плотно ты в RTK LinuxSecurity Team? Сервак нужен? Я если получится гдето зимой-весной поставлю свой сервачек в колокейшн. В принципе можно поговорить если еще нужна будет помощь... Денег врядли просить буду, развечто за траффик сами платить будете...

С недавних пор я там довольно плотно, всъерьез и надеюсь надолго - вроде президента, только наоборот - координатор проекта =)... Предложение по поводу серванта нужно обдумать, правда без подмоги извне нам не обойтись. Дело в том, что в данным момент обдумываем вариант стать полноценными вендорами, но не на что... =( Ладно мужики с kodsweb.ru помогли - пару гигов для начала есть, за что собственно им и спасибо.

Sheridan
Аватар пользователя Sheridan
Не в сети
Зарегистрирован: 20/09/2010

Можно поговорить... icq мое в профиле и в подписи, но повторяю - минимум через полгода у меня сервак будет...

Sheridan
Аватар пользователя Sheridan
Не в сети
Зарегистрирован: 20/09/2010

переписываю это дело на с++
Нужны будут помошники для документирования...
Ы?
[ Редактирование 28.10.2005 - 08:43:26 ]

Ne01eX
Аватар пользователя Ne01eX
Не в сети
Зарегистрирован: 20/09/2010

>переписываю это дело на с++

А зачем?

Sheridan
Аватар пользователя Sheridan
Не в сети
Зарегистрирован: 20/09/2010

[quote=Ne01eX]А зачем?[/quote]
Уууу...
[b]Уже[/b] поддерживает деревья сборок... эээ...
Короче идея такая:
Я делаю установщика (конфигуратора-сборщика...) [b]пакета[/b] софта...
Тоесть скажем appache+php+gd+firebird+libjpg+libpng+perl+....
Делаем дерево каталогов
[code]
www
--appache-2.0.55
--php
----gd
------gd-XX
------libpng-XX
------libjpeg-XX
----firebird-XX
----php-5.0.5
--mrtg-XX
[/code]
Далее, в каждой папке делаем файлик inst.conf в котором пишем конфигурацию, которая вдобавок наследуется от конфигурации вышестоящей директории (а также от конфикурации из /etc/inst.conf).
А в конфигах пишем так:
www/inst.conf
----------------------------------------
# Функция, подгрузка другого какого-ть конфига
load_config(/home/sheridan/prefs_inst.conf)
# $ - Переменные
$prefix=/opt/www
$both_prefixes
{
--prefix=$prefix
--bindir=$prefix/bin
--libdir=$prefix/lib
--mandir=/usr/man
--disable-debug
}
$optimisation_flags=-O2 -mtune=pentium3
# без $ - ключевое слово
cmpl_env
{
CC='gcc'
CXX='g++'
CFLAGS='$optimisation_flags'
CXXFLAGS='$optimisation_flags'
}
#комманды
configure_cmd=./configure
make_cmd=make
install_cmd=make install
clean_cmd=make clean distclean
# Директории в порядке просмотра / сборки. Можно писать просто [b]уникальную[/b] часть имени
# При наличии этой опции в текущей директории не пытается собирать но идет по указанным директориям в указанном порядке и читает конфиги оттуда
quee_directories
{
appache
php
mrtg
}
----------------------------------------
Для php можно уже написать просто
----------------------------------------
quee_directories
{
firebird
gd
php
}
----------------------------------------
Теперь про сборку и параметры... Например тот-же php
----------------------------------------
# флаги для конфигуры
configure_flags
{
# Наследование переменных - $both_prefixes и $prefix объявлены чертигде в самом верху...
$both_prefixes
--with-gd=$prefix
--with-interbase=$prefix
}
check_cmd=make check
----------------------------------------
Ну собственно и такдалее... Надеюсь идея ясна... Это [b]уже[/b] в принципе работает...

Сегодня буду опятьже прикручивать подсветку, логирование (скорее всего в /var/log/inst/имя софтины)...
Также прикручу возможность ответов на вопросы...
Тоесть кпримеру firebird после инсталла начинает спрашивать пароль дефолтный и еще чтото там... Сделаю по ключевым словам чтото типа
----------------------------------------
questions
{
enter password
yes for install
}
answers
{
sysbda
yes
}
----------------------------------------
Предложения / вопросы?

[b]PS[/b] Думус, поправь тег code - он белиберду выдает если в нем порусски

Sheridan
Аватар пользователя Sheridan
Не в сети
Зарегистрирован: 20/09/2010

Мыслим дальше.
Установка кде...
----------------------------------------
qtbased
--kde
----kdebase
----kdelibs
----software
------kdevelop
------k3b
--qt-XXX
--software
----something
----something_else
----------------------------------------
Тоесть одним запуском inst из рутовой для пакета директории при наличии проверенных конфигов мы ставим пакет одним махом.

Ne01eX
Аватар пользователя Ne01eX
Не в сети
Зарегистрирован: 20/09/2010

Ладно, чтобы как-нибудь повернуть мысль в правильную сторону... =)
Вот смотри, у нас есть обыкновенный сборочный файл от Slackware Linux/RTK Linux:

#!/bin/sh
TMP=${TMP:-/tmp}
if [ ! -d $TMP ]; then
mkdir -p $TMP
fi
CWD=`pwd`
PKG=$TMP/package-fluxbox-beta
rm -rf $PKG
mkdir -p $PKG

VERSION=0.9.14
ARCH=${ARCH:-i486}
BUILD=${BUILD:-rtk1}

if [ "$ARCH" = "i386" ]; then
SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
elif [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mcpu=i686"
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2"
fi

cd $TMP
tar xjvf $CWD/fluxbox-$VERSION.tar.bz2
cd fluxbox-$VERSION
chown -R root.root .
find . -perm 664 -exec chmod 644 {} \;
find . -perm 600 -exec chmod 644 {} \;
find . -perm 444 -exec chmod 644 {} \;
find . -perm 400 -exec chmod 644 {} \;
find . -perm 440 -exec chmod 644 {} \;
find . -perm 777 -exec chmod 755 {} \;
find . -perm 775 -exec chmod 755 {} \;
find . -perm 511 -exec chmod 755 {} \;
find . -perm 711 -exec chmod 755 {} \;
find . -perm 555 -exec chmod 755 {} \;
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr/X11R6 \
--enable-xinerama \
--enable-shape \
--enable-slit \
--enable-interlace \
--enable-nls \
--enable-timed-cache \
$ARCH-rtk-linux
make -j3
make install DESTDIR=$PKG
chown -R root:bin $PKG/usr/X11R6/bin
gzip -9 $PKG/usr/X11R6/man/man?/*
( cd $PKG
find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
)
mkdir -p $PKG/etc/X11/xinit
zcat $CWD/xinitrc.fluxbox.gz > $PKG/etc/X11/xinit/xinitrc.fluxbox
chmod 755 $PKG/etc/X11/xinit/xinitrc.fluxbox
mkdir -p $PKG/usr/doc/fluxbox-$VERSION
cp -a \
AUTHORS COPYING INSTALL NEWS README TODO \
$PKG/usr/doc/fluxbox-$VERSION
chmod 644 $PKG/usr/doc/fluxbox-$VERSION/*
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc

cd $PKG
makepkg -l y -c n $TMP/fluxbox-$VERSION-$ARCH-$BUILD.tgz

Как видишь, он уже содержит и необходимые переменные и опции конигурирования и флаги. Даже команду для сборки пакаджа.
В принципе ничто не мешает, правильно составив цепочку зависимостей, написать единый скрипт, который бы собирал связку из нескольких файлов, вызывая скрипты по очереди. Естественно, если тебе не нужна сборка пакетов (а зря, теряется смысл сборки), то никто не мешает тебе закомментировать соответсвующую опцию. Однако, это и так наверное понятно, едем дальше.
Все выше указанное реализуется исключительно возможностями /bin/sh. Помимо простоты использования указанный выше вариант без проблем будет работать не только в Slackware-like ОС, но и в *BSD (во фряхе уж точно). А если вместо команды сборки пакаджа указать на другой файл, которых вообще-то всего 2 (для простоты), то скрипт будет уже собирать не только *.tgz пакеты, но и RPM. Для последних нужен еще и spec-файл, но это уже тонкости.
Теперь все дерево у нас выглядит в виде скриптов, которые вызывают другие скрипты, которые уже вызывают непосредственно сборочные скрипты. А управляет этой сборкой твой цветнокрасивый rbuild!
Как видишь - те же яйца, только в другой руке.
<span class='smallblacktext'>[ Редактирование 01.11.2005 - 06:58:11 ]</span>

Sheridan
Аватар пользователя Sheridan
Не в сети
Зарегистрирован: 20/09/2010

Обрати внимвние
-------------------------------------
configure_cmd=./configure
make_cmd=make
install_cmd=make install
clean_cmd=make clean distclean
--------------------------------------------
что мешает сделать "make_cmd=make rpm" какой-ть низнаю....
Почему я переделываю еще это дело в бинарник - потомучто в итоге быстрее получается... Меньше тратится времени на вызовы sed, date и прочих...
Короче сделаю - посмотри, мож тож понравица :) А там кто его знает, может у твоего дистра появица собственный аптгет :)

Ne01eX
Аватар пользователя Ne01eX
Не в сети
Зарегистрирован: 20/09/2010

=) будем надетця.

Sheridan
Аватар пользователя Sheridan
Не в сети
Зарегистрирован: 20/09/2010

Млин, хотел седня бетку выложить да кинулся - не то на флешку скоприовал...

Ne01eX
Аватар пользователя Ne01eX
Не в сети
Зарегистрирован: 20/09/2010

/me неожиданно для себя огорчился данному факту. =(

RSS-материал