Сборка Roxterm

  • Ок.
    Собираю именно roxterm-3.2.1](https://sourceforge.net/projects/roxterm/files/roxterm/3.2.1/), т. к. при сборке самой последней версии возникают… дополнительные трудности)) Следую мануалу, который предлагает использовать для сборки и установки скрипт, идущий с исходниками (mscipt.py, по дефолту предполагается использование python3), и сборка и установка в …/local/bin проходят успешно, но пакета у меня естественно нет :slight_smile: Также автогенерируется спек-файл:
 # roxterm.spec#
# Copyright (c) 2004-2011 Tony Houghton h@realh.co.uk
#
%define name roxterm
%define version 3.2.1
%define release 1
%define manifest %{_builddir}/%{name}-%{version}-%{release}.manifest
%define debug_package %{nil}


# required items
Name: %{name}
Version: %{version}
Release: %{release}
License: GPL
Group: Application/Misc


# optional items
#Vendor: Tony Houghton
#Distribution:
#Icon:
#URL:
#Packager: Tony Houghton h@realh.co.uk


# source + patches
Source: %{name}-%{version}.tar.xz
#Source1:
#Patch:
#Patch1:


# RPM info
#Provides:
#Requires:
#Conflicts:
#Prereq:


#Prefix: /usr
BuildRoot: /var/tmp/%{name}-%{version}


Summary: GTK+ 3.0 terminal emulator with tabs


%description
GTK+ 3.0 terminal emulator with tabs
@configure_input@
ROXTerm is aimed at users who require more configurability and flexibility
than gnome-terminal provides.


%prep
%setup -q
#%patch0 -p1


%build
./mscript.py configure PREFIX=/usr
./mscript.py build
# Deprecated autoconf rules:
#%configure
#make


%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT
./mscript.py install DESTDIR=$RPM_BUILD_ROOT
# Deprecated autoconf:
#%makeinstall


# __os_install_post is implicitly expanded after the
# install section... do it now, and then disable it,
# so all work is done before building manifest.


%{?__os_install_post}
%define __os_install_post %{nil}


# build the file list automagically into %{manifest}


cd $RPM_BUILD_ROOT
rm -f %{manifest}
find . -type d \
        | sed '1,2d;s,^\.,\%attr(-\,root\,root) \%dir ,' >> %{manifest}
find . -type f \
        | sed 's,^\.,\%attr(-\,root\,root) ,' >> %{manifest}
find . -type l \
        | sed 's,^\.,\%attr(-\,root\,root) ,' >> %{manifest}


#%pre
#%post
#%preun
#%postun


%clean
rm -f %{manifest}
rm -rf $RPM_BUILD_ROOT


%files -f %{manifest}
%defattr(-,root,root)
#%doc README
#%docdir
#%config


%changelog

но rpmbuild -ba roxterm.spec завершается с одной и той же ошибкой:

  + ./configure --host=x86_64-suse-linux-gnu --build=x86_64-suse-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/lib --localstatedir=/var --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info --disable-dependency-tracking
/var/tmp/rpm-tmp.SRloWV: line 39: ./configure: No such file or directory
ошибка: Неверный код возврата из /var/tmp/rpm-tmp.SRloWV (%build)

Ошибки сборки пакетов:
    Неверный код возврата из /var/tmp/rpm-tmp.SRloWV (%build)

что под пользователем, что под рутом.

Раньше я собирал большинство пакетов с checkinstall, но тут его применить кажется не выйдет.

удалите 56-ю строку

#%configure

а чем эта сборка не устраивает?
https://build.opensuse.org/package/show?project=home%3AAndnoVember%3Atest&package=roxterm

Тем, что раньше ее не существовало :slight_smile: Ок, буду использовать ее вместо своей самоделки.

Все руки не доходили отписаться, оно собрано с какими-то странными зависимостями:

ошибка: Неудовлетворенные зависимости:    
libdbus-1.so.3(LIBDBUS_1_3)(64bit) нужен для roxterm-3.3.1-1.2.x86_64

и в Leap не ставиццо. Обновлять системные библиотеки на версии из Tumbleweed я естественно не собираюсь.

Ну и в порядке оффтопика:
не понимаю (!!) этого помешательства на роллинг-релизах и Tumbleweed в частности. Это было бы простительно “арчешкольникам”* (собирательный образ, ничего против Арча не имею), но тут-то… вам вообще нужна стабильная_система_для_работы или что? Ставить по 50 обновлений в неделю ради самих обновлений… это какое-то извращение или психологическая аномалия, ИМХО.

Все руки не доходили отписаться, оно собрано с какими-то странными зависимостями:

Вроде бы должна удовлетворять зависимости, если подключен репозиторий обновлений:
http://download.opensuse.org/update/leap/42.1/oss/

Хотя нет, пакет собран с этой зависимостью:
http://download.opensuse.org/distribution/leap/42.1/repo/oss/suse/
В любом случае, пакет собирается с учетом репозитория обновлений.

Щаз я попробую сосредоточится, хотя вечером воскресенья это уже не просто lol!

 zypper lr -U | grep -i update

7 | repo-update-non-oss | noss-upd | Да | (r ) Да | Нет | http://download.opensuse.org/update/leap/42.1/non-oss/                      
6 | repo-update  | update  | Да | (r ) Да | Да  | http://download.opensuse.org/update/leap/42.1/oss/ 


Ну…, пересоберите локально сами:

zypper in osc
mkdir ~/build
cd ~/build
osc checkout home:joneone
user: joneone
passwd: *********
osc meta prj -e

все вырезаете и заполняете следующим содержимым:

<project name="home:joneone">
  <title>Test Subproject</title>
  <description/>
  <person userid="joneone" role="maintainer"/>
  <build>
    <disable/>
    <disable arch="i586" repository="openSUSE_Leap_42.1"/>
  </build>
  <publish>
    <disable/>
  </publish>
  <repository name="openSUSE_Leap_42.1">
    <path project="openSUSE:Leap:42.1" repository="standard"/>
    <path project="openSUSE:Leap:42.1:Update" repository="standard"/>
    <arch>x86_64</arch>
  </repository>
</project>

Клонируете пакет:

osc branch home:AndnoVember:test/roxterm home:joneone/roxterm

Ну вот и все! Можете собрать пакет:

cd ~/build/home:joneone/roxterm
osc build openSUSE_Leap_42.1

Прям туториал. Спасибо, как-нибудь попробую - пора уже отказываться от порочной практики валить все в ~/bin/ и переходить к прогрессивным технологиям))

Не сработал у меня ваш рецепт. Но документацию я и не читал: лень. Тут же такое болотце)) Думаю кому нужно соберет и сам. Почему я не читал документацию? Элементарно! Меня интересуют довольно нетривиальные проекты, там нужно разбираться с основами- спеками и пр. Это не утилтку собрать! Доступных для новичка мануалов нет, а вики- не предлагать! Все *педии - это словари, и только. Пробуйте научиться английскому по словарю lol!

Пробуйте научиться английскому по словарю

Не думаю, что это удачный пример.
Здесь, скорее нужна не документация, а практика.
Как в детстве, если нужно починить велосипед берешь ключи и чинишь. И книжки никакой не надо - все схватываешь на лету.
Что же касается вики, то это скорее справочник. Надо собрать пакет, например на питоне, открыл: https://en.opensuse.org/openSUSE:Packaging_guidelines, да и посмотрел. А лучше заглядывать в другие спеки.
Но, а в целом, все это пустая трата времени, как и все, что связано со свободным движением. Здесь, выигрывают только программисты, получая бесценный опыт. Все остальные это альтруисты чистой воды.