LINUX.ORG.RU
ФорумJob

Помогу «опакетить» ПО


0

2

Здравствуйте. Мне так надоело, что когда идёшь на сайт скачивать программу, которой нет в репозитариях дистрибутивов, для Windows и Mac OS есть официальный бинарник, а для Linux - Source Code. И я предлагаю авторам открытого ПО свои услуги по опакечиванию ваших программ в универсальный RPM или DEB пакет, который запустится в любом дистрибутиве. Также я прошу выкладывать создателей программ SRC.RPM и DEB-SRC на страницу скачивания, потому как для открытого ПО исходный код - обычный способ установки программ, но RPM- и DEB-based дистрибутивы уходят от такого способа установки программ, и поэтому им надо вот такие пакеты, а не tar.bz2!

Универсальность, предложенная мной, достигается путём компиляции программы не с полным, а средним количеством зависимостей, а в случае если в зависимости входит системная библиотека, не входящая по-умолчанию в большинство дистрибутивов - включение её состав RPM или DEB-пакета. То есть способ упаковывания всех проприетарных программ. Для библиотек, которые всё-таки не включены в пакет, добавляется информация о зависимостях. Также помогу создать спецификацию для SRC.RPM или DEB-SRC. Но Slackware-скрипты или configure я писать не помогу - не умею. Тупо скомпилирую и упакую. Опыта кстати у меня тоже нет, щас вот учусь только, DEB уже получается, RPM не очень. Так что оплаты никакой не надо - да и откуда она у открытого ПО, с пожертвований что ли.

★★★★★

Последнее исправление: ZenitharChampion (всего исправлений: 1)

Универсальность, предложенная мной, достигается путём компиляции программы не с полным, а средним количеством зависимостей, а в случае если в зависимости входит системная библиотека, не входящая по-умолчанию в большинство дистрибутивов - включение её состав RPM или DEB-пакета.

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

Не занимайся ерундой, то, что ты предложил — не нужно, больше проблем будет у тех, кому «посчастливится» пакетик собранный тобой поставить.

adriano32 ★★★
()

Язабан.

Спорим что под слакой, гентой, арчем, палдо, пардусом, etc. 50% твоих deb, rpm, не будут работать?

Это дело мейнтейнеров дистрибутивов, а не автора программы, этих самых дистрибутивов уже развелось столько что начхать разработчик хотел на них.

bhfq ★★★★★
()
Ответ на: комментарий от adriano32

> а почему не сделать по-нормальному — собрать в среде базовых дистров? ... о, что ты предложил — не нужно, больше проблем будет у тех, кому «посчастливится» пакетик собранный тобой поставить.

А почему бы не заменить Source Code на src.rpm?

ZenitharChampion ★★★★★
() автор топика
Ответ на: комментарий от adriano32

В общем, жду предложений от кого-нибудь, а пока покопаюсь в этих RPM-ах... Максимум, что я освоил - это универсальный бинарник в tar.bz2, работает железно, а вот синтаксис spec-файлов бодаю и прорабатываю.

ZenitharChampion ★★★★★
() автор топика
Ответ на: комментарий от ZenitharChampion

ты неисправим, да на тебе пахать надо!.. Шёл бы вагоны разгружа^W^W ночные билды для тестинга делать на заво^W^W в какой-нибудь дистр

adriano32 ★★★
()

>Тупо скомпилирую и упакую. Опыта кстати у меня тоже нет, щас вот учусь только, DEB уже получается, RPM не очень.

Делать что-либо нужно уметь хорошо прежде чем предлагать услуги другим людям.

wbrer ★★★
()
Ответ на: комментарий от wbrer

>Делать что-либо нужно уметь хорошо прежде чем предлагать услуги другим людям.

Скажи это разработчикам СПО.

mopsene ★★★
()
Ответ на: комментарий от alpha

Ммм... Кстати да. Но вот только разработчик ufasoft miner (это для биткойнов) не стал мою сборку выносить в шапку темы форума, и там по-прежнему Source Code, а pcsx2 я не предлагал ещё.

ZenitharChampion ★★★★★
() автор топика

Эк тебя прёт-то. :-)

Я предлагаю всем разработчикам, которым лень собирать 100500 rpm и deb пакетов, использовать ZeroInstall. Пора уже выходить из этого средневековья с кучей форматов. Это в репозитории дистрибутива пакеты должны лежать в формате дистрибутива. А на сайтах разработчиком логично использовать 1 универсальный формат для всех GNU-систем.

Впрочем, я не копался в его кишках, возможно ZeroInstall еще сам по себе надо сильно напильником обрабатывать.

А по теме. ТС, не мог бы ты сделать доброе дело и опакетить мой lxpanelx под стабильный дебиан и свежую убунту? Я честно пытался этим заняться, но процесс сборки deb-пакетов вызывает у меня отвращение вплоть до рвоты. Задача простая, т.к. в хранилище lxpanel всё, что нужно для сборки пакета, уже засунуто, надо просто перенести в мой форк, ну и собственно, пакеты собрать.

geekless ★★
()
Ответ на: комментарий от geekless

Проблема: свежей Ubuntu у меня нет, а LXDE для Debian Lenny слишком старый. Я могу сделать пакет с распоследним lxpanel в нём, но не уверен, что у тебя он заработает.

ZenitharChampion ★★★★★
() автор топика
Ответ на: комментарий от ZenitharChampion

Я имел ввиду squeeze под стабильным, ну да ладно. Я не уверен, что в чистой Debian Lenny без обновлений он даже соберётся. Там кое-где были криво прописаны макросы детектироания некоторых версии GTK. Подправить у меня руки так и не дошли, т.к. это еще из оригинальной программы баг.

Проблема: свежей Ubuntu у меня нет

Можно дебутсрапом накатить. У меня вот такое добро с «чистыми» минимальными инсталляциями лежит на подобные случаи:

ls /media/chroots/
archlinux  debian-5-lenny  debian-6-squeeze  ubuntu-10.04-lucid  ubuntu-11.04-natty  ubuntu-8.04-hardy

Грепание истории говорит, что дебиан я ставил при помощи cdebootstrap:

cdebootstrap -f minimal lenny /media/chroots/debian-5-lenny/
cdebootstrap -f minimal squeeze /media/chroots/debian-6-squeeze/

А вот убунту уже при помощи старого debootstrap как-то так:

debootstrap --variant minbase lucid /media/chroots/ubuntu-10.04-lucid/ http://archive.ubuntu.com/ubuntu
debootstrap --variant minbase natty /media/chroots/ubuntu-11.04-natty/ http://archive.ubuntu.com/ubuntu

Раз уж у меня всё равно валяется debian 5 в чруте, сейчас проверю компиляцию lxpanelx в ней.

LXDE

От LXDE там нужна только либа menu-cache. Ну и текстовые файлики из lxmenu-data, чтобы категории в меню программ отображать.

geekless ★★
()

>Но Slackware-скрипты или configure я писать не помогу - не умею.

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

drBatty ★★
()

нужная вещь.
Есть два предложения:
1. Сделайте пожалуйста, deb для убунты 10.04 - 11.10 с glassfish v3.
Вот страница программы http://glassfish.java.net/downloads/3.1.1-final.html. Из зависимостей - только java-sun-6-jre. Вся инсталляция заключается в распаковке архива в /opt директорию или запуске .sh скрипта в silent режиме с файлом ответов. (в первом случае в поставке будут оба типа файлов - для вин и для линукс, во втором будет специализированные файлы только для линукс)
2. Аналогично с вот этим http://maven.apache.org/download.html . Версии 3.0 в убунте нет и не предвидится, вторая гвоздями прибита к OpenJDK, что категорически недопустимо. Зависимости те же, инсталляция - разархивирование в /opt + прописывание переменной M2_HOME в /etc/environment + добавление $M2_HOME/bin в PATH либо алиаса на $M2_HOME/bin/mvn в /usr/bin.
Я могу ошибаться относительно того, куда именно следует распаковывать, я просто описываю то, что регулярно делаю руками.

Если первое еще довольно специфично, то второе, если вы сделаете PPA - будет пользоваться немалой популярностью, так как maven - очень широко используемая тулза. https://launchpad.net/~twerner/ archive/maven - дохлое - последний апдейт 64 недели назад, а интернет полон вопросов как поставить мавен на убунту. См, например https://www.google.com/search?q=maven 3 ubuntu ppa . 10.04 нужен для инсталла на сервера, 11.10 - на компьютеры разработчиков.
Если это вас не заинтересует, киньте хотя бы ссылкой, как я сам могу это сделать. Поскольку в формировании deb пакетов я полный ноль.

JFreeM ★★★☆
()
Ответ на: комментарий от geekless

И я глянул, не компилится:

  CC     libbuiltin_plugins_a-launchbar.o
launchbar.c:35:24: error: menu-cache.h: No such file or directory
In file included from launchbar.c:41:
../../src/menu-policy.h:24: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
../../src/menu-policy.h:25: error: expected ‘)’ before ‘*’ token
launchbar.c: In function ‘launchbutton_drag_data_received_event’:
launchbar.c:167: error: ‘GtkSelectionData’ has no member named ‘lengh’
launchbar.c:180: error: ‘GtkSelectionData’ has no member named ‘lenght’
launchbar.c: In function ‘launchbar_configure_update_icons’:
launchbar.c:654: warning: passing argument 1 of ‘gtk_tree_model_iter_children’ from incompatible pointer type
launchbar.c:660: warning: passing argument 1 of ‘gtk_tree_model_get’ from incompatible pointer type
launchbar.c:663: warning: passing argument 1 of ‘gtk_tree_model_get’ from incompatible pointer type
launchbar.c:670: warning: passing argument 1 of ‘gtk_tree_model_iter_next’ from incompatible pointer type
launchbar.c: At top level:
launchbar.c:679: error: expected declaration specifiers or ‘...’ before ‘MenuCacheDir’
launchbar.c: In function ‘launchbar_configure_add_menu_recursive’:
launchbar.c:683: error: ‘menu_dir’ undeclared (first use in this function)
launchbar.c:683: error: (Each undeclared identifier is reported only once
launchbar.c:683: error: for each function it appears in.)
launchbar.c:683: warning: assignment makes pointer from integer without a cast
launchbar.c:686: error: ‘MenuCacheItem’ undeclared (first use in this function)
launchbar.c:686: error: ‘item’ undeclared (first use in this function)
launchbar.c:689: error: ‘MENU_CACHE_TYPE_NONE’ undeclared (first use in this function)
launchbar.c:690: error: ‘MENU_CACHE_TYPE_SEP’ undeclared (first use in this function)
launchbar.c:693: error: ‘MENU_CACHE_TYPE_APP’ undeclared (first use in this function)
launchbar.c:699: warning: assignment makes pointer from integer without a cast
launchbar.c:700: warning: passing argument 1 of ‘g_strdup’ makes pointer from integer without a cast
launchbar.c:701: warning: passing argument 1 of ‘g_strdup’ makes pointer from integer without a cast
launchbar.c:714: error: ‘MENU_CACHE_TYPE_DIR’ undeclared (first use in this function)
launchbar.c:723: error: too many arguments to function ‘launchbar_configure_add_menu_recursive’
launchbar.c: In function ‘destroy_menu_cache’:
launchbar.c:734: error: ‘MenuCache’ undeclared (first use in this function)
launchbar.c:734: error: ‘mc’ undeclared (first use in this function)
launchbar.c:734: error: expected expression before ‘)’ token
launchbar.c: At top level:
launchbar.c:741: error: expected ‘)’ before ‘*’ token
launchbar.c: In function ‘launchbar_configure_initialize_list’:
launchbar.c:775: error: ‘MenuCache’ undeclared (first use in this function)
launchbar.c:775: error: ‘menu_cache’ undeclared (first use in this function)
launchbar.c:781: error: ‘MenuCacheDir’ undeclared (first use in this function)
launchbar.c:781: error: ‘dir’ undeclared (first use in this function)
launchbar.c:782: error: ‘on_menu_cache_reload’ undeclared (first use in this function)
launchbar.c:782: warning: initialization makes pointer from integer without a cast
launchbar.c:785: error: too many arguments to function ‘launchbar_configure_add_menu_recursive’
launchbar.c:788: warning: passing argument 1 of ‘g_object_weak_ref’ from incompatible pointer type
make[4]: *** [libbuiltin_plugins_a-launchbar.o] Error 1
make[4]: Leaving directory `/home/kanotix/lxpanel/src/plugins'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/kanotix/lxpanel/src/plugins'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/kanotix/lxpanel/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/kanotix/lxpanel'
make: *** [all] Error 2
kanotix@Kanotix:~/lxpanel$
ZenitharChampion ★★★★★
() автор топика
Ответ на: комментарий от ZenitharChampion

Под Ленни еще и с версиями gtk проблемы будут так что забей. Пойду понекрофильствую и исправлю сборку на старых gtk и без menucache.

geekless ★★
()
Ответ на: комментарий от ugoday

rpm, deb и т.п. с одной стороны и ZeroInstall, Klik и т.п с другой стороны покрывают разные use cases. Так что картинка не в тему.

geekless ★★
()
Ответ на: комментарий от ZenitharChampion

Так.

menu-cache, который из гита: git clone git://lxde.git.sourceforge.net/gitroot/lxde/menu-cache — ./configure в хранилище нет, а ./autogen.sh не работает на automake 1.10, которая в Lenny. У себя я выполнил ./autogen.sh на основной системе, где automake версии 1.11. После этого menu-cache в Lenny нормально собирается и работает.

В lxpanelx исправлена сборка на gtk 2.12. (Знатная некрофилия, но зато теперь можно понтоваться совместимостью с половиной версий зоопарка gtk2, ага.)

В lxpanelx добавлена сборка без menu-cache, но так лучше не делать. Потому что без него не собираются апплеты menu и launchbar, и для пользователя сие печально.

geekless ★★
()
Ответ на: комментарий от geekless

Насчёт automake 10.1. Я сначала скачал deb-src для lenny и поменял него в automake1.10_1.10.1-3.diff.gz всё на 11.1 автозаменой, включая имена файлов, а также контрольные суммы в dsc. Хотя надо было просто взять новые файлы от нового Debian. Не собралось: хочет autoconf 4.61. autoconf нашёл в backports, а он требует новый m4 и dpkg. m4 в backports нашёл, а dpkg - нет! Взял исходник deb-src - ошибка при сборке. Ладно, скомпилил и установил без пакета autoconf и automake. Начал компилирть lxpanel.

autogen.sh возвращает ошибку, обновил libtool из исходников (ну а зачем теперь пытаться установить новый пакет?), всё начало компилироваться - ну и тут ошибка, та что выше. После установки menu-cache (и переноса его .h-файла в /usr/include из /usr/include/mnu-cache) ошибка новая. Вот собственно и всё, новый GTK нужен.

Кстати, о новом GTK... У меня есть старый комп с Mandrake 10. Запустил Quake III - работает. Запустил Unreal Tournament 2004 - работает. Решил запустить чего-нибудь посовременнее. Trine. Launcher ругается на GTK и авторы программы объясняют в ReadME!, что в старом GTK нет кое-каких инструкций, которые им сильно нужны и отказаться от них не могут. Так что запускайте без лаунчера. Больше проблем не было, запстилось. Правда потребовлся libstdc++.so.6 новый, и libc.so.6 статически скомпилированный.

ZenitharChampion ★★★★★
() автор топика
Ответ на: комментарий от ZenitharChampion

Забыл сказать: у меня LiveCD и поэтому поизвращаться можно.

ZenitharChampion ★★★★★
() автор топика
Ответ на: комментарий от ZenitharChampion

Ох нифига ты извращаться. Тебе надо для менюкеша просто autogen.sh выполнить, чтобы confugure сгенерировать. У тебя же вроде много систем на компе, неужели нет ни одной с новыми пакетами аутотулз?

Вообще я не понимаю разработчиков, которые confugure не ложат хранилище кода. Специально ведь придумали, чтобы сборщик не парился, а просто сказал ./configure и настроил сборку пакета. Предоставить configure — это обязанность разработчика, а не сборщика.

Вот собственно и всё, новый GTK нужен.

Да с чего ты взял. Не нужен там новый GTK. Вон во вторых иксах lxpanelx с поддержкой menu-cache на gtk2.12 крутится.

geekless ★★
()
Ответ на: комментарий от geekless

autogen захотел новый aotomake, тот ещё чего-то, и так далее. А configure, как я понял, не кладут только в GIT, в релизах он есть.

Про то, что нужен новый GTK, я узнал от тебя. Тогда я не понимаю в чём ошибка.

Дистрибутивов много, только я на работе и линукс только на LiveCD. Поэтому и извращаюсь, экспериментирую. Не собралось в общем. Сейчас делаю вот это: https://bitcointalk.org/index.php?topic=8180.0

ZenitharChampion ★★★★★
() автор топика
Ответ на: комментарий от ZenitharChampion

> Про то, что нужен новый GTK, я узнал от тебя.

Не, это я поправил сегодня уже. :)

Для сборки панели аутотулзы не нужны, т.к. я в хранилище держу актуальный configure. А menu-cache можно готовый взять — из lenny-backports ставим пакеты libmenu-cache-dev и lxmenu-data. По идее, этого достаточно для сборки. Но это по идее, т.к. вот я сейчас собрал панель с меню, а программ в меню всё равно нет. Буду щас разбираться, какого фига.

geekless ★★
()
Ответ на: комментарий от ZenitharChampion

> Да уж. Я про lxpanelx и не знал, их с lxpanel так легко перепутать. Я пытался собрать другое, lxpanel из GIT.

Круто. :) Бывает.

geekless ★★
()

> Опыта кстати у меня тоже нет, щас вот учусь только, DEB уже получается, RPM не очень.

Ну ты понял =]

neocrust ★★★★★
()
Ответ на: комментарий от Deleted

Пакетов там много... Что ж, попробую, а вообще в крайнем случае можно распаковать имеющиеся пакеты в /opt и пользоваться.

ZenitharChampion ★★★★★
() автор топика

Идея хорошая. Просто прекрасная. Если тебе хватит упорства вроде как продвинешь прогресс вперед ... Главное не впадать в фанатизм. :D

Покопайся тут http://www.autopackage.org/ ( http://en.wikipedia.org/wiki/Autopackage ) У них там полно полезных методик включая врапперы к gcc, сам же автопакет тебе не нужен скорее всего.

Покопайся в запускающий скриптах - как у мозиллы и фаерфокса. Научись делать инсталляции которые определяют установлены ли нужные библиотеки, и
если нет, линкуются те что пакет притащил с собой.

Покопайся как это делаю годные примеры коммерческого софта. У них обычно пакет для каждой группы дистрибутивов, плюс тарболл с бинарем для всех вообще.

Чруты с разными версиями дистрибутивов уже завел? :D

Когда что-то сделаешь, запилишь сайт со сборками. Возможно под брендом ЛОР. Туда еще можно будет накидать годных сборок от других авторов и будет нам всем счастье :D

В качестве основного направления надо брать софт типа инкскейпа ( хотя у них основная сборка годная ) или там типа блендера ( но у него тоже хорошая сборка своя). То есть нечто обладающее своей собственной самостоятельной ценностью, а не просто часть дистрибутива.

kernel ★★☆
()
Ответ на: комментарий от geekless

Что-то на странице проекта ни описания различий, ни ссылки на архив последней стабильной версии, ни скриншота, ни хоть какой-то инфы.

Если есть хоть какой-нибудь русский текст - могу помочь облагородить или перевести на всеобщий.

alpha ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.