rpm készítés dilemma autogen.sh miatt

Fórumok

Kicsit elakadtam.
A jól ismert tvtime programot az írója már nem nagyon fejleszti, mivel 2005-ben adta ki az 1.0.2-es verziót, ami még az ALSA rendszert sem támogatja. Viszont a linuxtv oldalain van egy git fa, ahol már belefeccöltek jó pár munkaórát, és kiadták az 1.0.4-es változatot is.
http://git.linuxtv.org/mchehab/tvtime.git
Ez persze úgy néz ki hogy nem hivatalos, egy disztribútor sem vette még észre (?)

No de letöltöttem, és le is fordítottam, elkészült az rpm csomag. De mivel autogen.sh parancsot használ, így némely dologba nincs beleszólásom (egyelőre), és útvonal problémába botlottam.
Lecserélném ezt az autogen.sh-t a szabványos configure, make-ra de a forrásban nincs is configure.
A libtoolize, reconfigure meg elhasalt.

Nos az útvonal probléma amúgy az, hogy a tvtime az általa használt betűtípusokat egy saját mappában tárolja.
Nevezetesen az /usr/share/tvtime/ mappában. Nem is értem. Vagy lenne inkább a konfig fájljában egy sor erre.

Viszont az elkészült bináris nem itt keresi a betűket, hanem beteszi még a %tmp_path-ot is. Tehát valahol itt keresi a betűket:
/home/user/rpm/BUILDROOT/tvtime-1.0.4-0_csmga2.x86_64/usr/share/tvtime/tvtimeSansBold.ttf
És pont ez volna a %tmp_path: /home/user/rpm/BUILDROOT/tvtime-1.0.4-0_csmga2.x86_64/

Viszont ha a SPEC fájlban
%clean
# rm -rf %{buildroot}
Akkor megvan a betűtípus ott ahol keresi, a program működik, megy az hangerő csúszka OSS nélkül is. És nekem most pont ez a lényeg.
Néhány, és jobb képjavítási funkció miatt a képe is egy árnyalattal szebb.

Kinek volna ötlete hogy merre keresgéljek? Amit leszögeznék, hogy nem vagyok programozó. Műkedvelésből fordítgatok.
Vajon miért nem törli a %temp_path-ot?

Hozzászólások

Itt nem az autogen.sh a gondod, az csak egy wrapper a bootstrap es a configure kore, a neki adott parametereket configure-nak atadja.

Meg tudod mutatni a spec filet amit hasznalsz?

--
|8]

A lényeg ez:

%prep
%setup -q
%patch0 -p1 -b .osd (saját patch)
%patch1 -p1 -b .hu_lang (saját patch)

%build
sh autogen.sh

%install
rm -rf %{buildroot}
%makeinstall ROOT=%{name}-%{version}-%{release}

%find_lang %{name}

%clean
# rm -rf %{buildroot} - (Ha ezt engedélyezem akkor ugye kitörli a BUIDROOT mappát ahol ellenőrizhetem hogy miket fordított le)

%files -f %{name}.lang
%defattr(-,root,root)

# Docs
%doc AUTHORS ChangeLog NEWS README
%doc data/COPYING.FreeMonoBold data/COPYING.tvtimeSansBold docs/html

# Configfiles etc.
%dir %{_sysconfdir}/%{name}
%config(noreplace) %{_sysconfdir}/%{name}/tvtime.xml
%{_datadir}/%{name}

# Binaries
%{_bindir}/*

# manual pages
%{_mandir}/man?/*
%lang(de) %{_mandir}/de/man?/*
%lang(es) %{_mandir}/es/man?/*

# freedesktop stuff
%{_datadir}/applications/%{name}.desktop
%{_iconsdir}/hicolor/*/*/%{name}.png
%{_datadir}/pixmaps/%{name}.*

Ha a %install-ból ezt kihagyom:
%makeinstall ROOT=%{name}-%{version}-%{release}
akkor is lefordul, de nem talája a betűket.

Ha megváltoztatom a legoptimálisabbra:
%makeinstall ROOT=%{buildroot}
akkor is útvonal probléma van.

Szerintem %prep-be tegyel egy ./bootstrap hivast, %build-be pedig:


%build
%configure
%{__make} %{_smp_mflags}

A %configure es %{__make} szerintem megoldja, hogy jo helyen keresgeljen.

A te valtozatoddal ranezesre az a gond, hogy %build csak configure-ig jut el, utana a tenyleges forditast a %makeinstall csinalja, aminek ott a ROOT=, es az installnal tok jo, de forditasnal pont bezavar. Ha %build idoben futna a make, ROOT= nelkul, akkor megszunne a problema, szerintem.

--
|8]

Pont az autogen.sh-ban levő autoconf/automake/libtoolize csinálja meg a "szabványos" ./configure-t, és a Makefileokat.

Nekem volna otletem merre keresgelj: az autogen.sh -n belul. Ez egy shell script, nyugodtan nyisd meg egy editorban, es kezdd el bongeszni, hogy mit csinal - na azt kell neked is a SPEC fajlbol.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal