# Jak działa ebuild?

## RA6

Wiem jak korzystać z deklaracji od nagłówka po zależności. Nie rozumiem funkcji w ebuilidach i jak działają. Wstyd się przyznać, że nie znam bash'a więc i mam problemy z ogarnięciem podstaw działania każdego etapu. Słaba znajomość angielskiego powodują, że Gentoo Development Guide mi za dużo nie pomaga a Ebuild Howto opisuje tylko ogólne elementy. Proszę o przykładowy kod trzech operacji:

1. przejście do katalogu /nazwaprogramu/src

2. wykonanie tam polecenia make bez wykonania wcześniej ./configure

3. wykonanie instalacji pakietu

może być nawet gotowy przykład z portage bym mógł go postudiować.

----------

## sebas86

Bez znajomości angielskiego to trochę bez sensu. Chociażby z tego względu, że narzędzie ebuild jest cały czas rozwijane, kiedyś sam robiłem ebuildy, a teraz musiałbym na nowo usiąść do dokumentacji żeby cokolwiek sensownego zrobić bo się trochę rzeczy pozmieniało. Poza tym jak bez języka chcesz reagować na problemy, które prawie na pewno będą się pojawiać podczas budowania ze źródeł?

1, 2, 3 da się to zrobić na kilka różnych sposobów. Jeśli paczka jest w miarę ustandaryzowana (zdaje się, że wystarczy, że w głównym katalogu będą pliki automake) to praktycznie nic nie trzeba pisać, dodajesz ścieżki do źródeł, zależności i już, powinno po prostu działać.

----------

## RA6

Często stosuję niszowe biblioteki i rozszerzenia, które dopiero ktoś za kilka miesięcy przeportuje. Rozumiem to co czytam na tyle, że potrafię napisać potrzebne ebuilidy, to też rozwiążę, ale mi to zajmie więcej czasu niż mam. Obecnie posiłkuję się wirtualną maszyną z debianem.

Paczka w głównym katalogu nie trzyma plików automake tylko w /src. Nie ma potrzeby by coś zmieniać bo z palca wszystko się kompiluje. Lubię mieć porządek, więc piszę pod siebie i zmieniam istniejące ebuilidy. Przesadziłem z nie rozumieniem angielskiego i bash, podstawy jakieś mam tylko źle mi się myśli jak coś rozumiem tylko w małym procencie bo nie mam czasu go poświęcić na naukę i ćwiczenia. Jak tą część opracuję zostanie mi powiązanie bibliotek. 

Żebym wiedział czego szukam to bym po ebulidach z portage to zrobił, ale nie wiem która funkcja omija fazę ./configure i pracuje w katalogu /src wykonując make na plikach tego katalogu. Do tej pory sypie się na ścieżce dostępu czyli:

- zadeklarowałem katalog roboczy:

  S="${WORKDIR}/${MY_PN}"

- następnie skorzystałem z funkcji src_compile() która mi się wydaje logiczna dla tego problemu

  src_compile() {

        cd "${S}/src" && make || die "make failed"

----------

## lazy_bum

http://devmanual.gentoo.org/ebuild-writing/index.html

Warto też sprawdzić czy ktoś już nie napisał ebuilda do tego czego potrzebujesz (eix-remote albo http://gpo.zugaina.org/) oraz „posiłkować się” innymi ebuildami.

----------

## dziadu

Tak jak lazy_bum Ci podał adres strony, znajdziesz tam funkcję src_configure(), która m.in. uruchamia skrypt configure (albo cmake, albo coś innego, zależy które eclass włączysz w ebuild). Możesz ją przedefiniować, ale pamiętaj, że nie można zdefiniować pustej funkcji, czyli, musisz coś tam wrzucić, np.:

```

src_configure() {

    einfo "Skipping configure script"

}

```

Możesz wrzucić kod ebuildu, to rzucę okiem co tam masz, może coś podpowiem więcej.

Pzdr.

dziadu

----------

