# libgpg-error error :)

## blurrpp

Witam.

Z tego co się zorientowalem jest to jakis znany bug w tej bibliotece. Tzn prze kompilacji ( emerge libgpg-error ) otrzymuje błędy.

Na jednym z forów znalazłem podobny stary wątek i pomoc w postaci.

This is a common bug. You will find one possible fix (workaround) for example

in app-crypt/gnupg/gnupg-2.0.9.ebuild. Just edit the libgpg-error-1.6.ebuild

and change the src_compile() like this:

src_compile() {

    econf $(use_enable nls) CC_FOR_BUILD=$(tc-getBUILD_CC) || die

    emake || die

}

albo

CC_FOR_BUILD should not be empty.  if it is, your build env is screwing it up. 

so go fix your build env.

rzeczywiscie podczas instalowanie  systemu nie ustawiłem CC_FOR_BUILD.

Jestem jednak dosc nowy w gentoo ( wczoraj przenioslem sie z debiana ale dostrzegam walory gentoo ) dlatego nie wiele mi mowia te porady. Jedyny plik libgpg-error-1.6.ebuild znalazlem w katalogu /var/... ktory jest nadpisywany przy kazdym uzyciu emerge libgpg-error . Zmieniłem CC_FOR_BUILD=${CC} w /etc/make.config i nadal otrzymuje błędy.

Moze ktoś z was wie co powinienem zrobic ?

Pozdrawiam

----------

## dziadu

 *blurrpp wrote:*   

> Jedyny plik libgpg-error-1.6.ebuild znalazlem w katalogu /var/...

 

Chłopie, jak tyś się uchował na tym Gentoo-świecie i jak żeś zainstalował system nie wiedząc, gdzie znajduje się drzewo portage? A może znalazłeś w drzewie portage plik w wersji 1.7? Bo chyba ten chcesz zainstalować, bo innej wersji nie ma w drzewie. W takim razie czemu czytasz porady dotyczące innej wersji programu, podczas gdy w nowszej ten problem może być już naprawiony? Zamiast pisać bzdury takie jak powyżej, pokaż najpierw jaki masz błąd, a potem czekaj na porady. Puki co pokazałeś nam rozwiązanie a my mamy znaleźć chyba problem do tego.  :Smile: 

----------

## blurrpp

Dzięki  :Smile: . Oczywisce, mam na mysli 1.7 miałem to poprawic ale niestety...  :Wink: . Dlaczego mysle ze to bug ?  ponieważ jak do tej pory  ( oprócz driverów ATI nie wspolpracujacych z x-org ), CAŁY system, wszystke potrzebne programy, kompiluja sie bez zastrzeżeń. Jak wspomniałem mam gentoo od wczoraj wiec wybacz ale jeszczcze nie wchodzilem w zrodło portage  :Wink:  (co niebawem nastąpi ale oczywiście nie trzeba znac pythona aby uzywac i rozumiec portage, albo mozna go znac i nie wiedzieć wiele apropo budowy jego drzewa  :Wink: ) na razie poznaje system. Ogólnie wniosek plynacy z tego jest taki, że interface  jest na tyle przyjazny, że kompletny n00b daje sobie rade  :Smile: .

Wracając do meritum ... masz racje to moze nie byc znany bug i powinienem wpisać błąd zamiast zakładac, że jest to coś z czym, jak wywnioskowalem z forów, obeznani uzytkownicy Gentoo spotkali sie nie raz. Aby nie zaśmiecać, podsyłam ostatni kawałek build.log. Jezeli to nie wystarczy podeśle cały build.log i environment 

make: *** [all] Error 2

 * ERROR: dev-libs/libgpg-error-1.7 failed:

 *   emake failed

 * 

 * Call stack:

 *     ebuild.sh, line   54:  Called src_compile

 *   environment, line 2683:  Called _eapi2_src_compile

 *     ebuild.sh, line  646:  Called die

 * The specific snippet of code:

 *   		emake || die "emake failed"

 * 

 * If you need support, post the output of 'emerge --info =dev-libs/libgpg-error-1.7',

 * Use eselect news to read news items.

związek src_compile z nadesłaną przeze mnie poprzenią "odpowiedzią" może swiadczyć ze cos w niej jest na rzeczy. Z góry dzieki za pomoc.

----------

## blurrpp

wygląda na to, że działa. ebuild'em z digest  poprawilem .build plik i doinstalowalem cfortran, zalozylem ze jezeli pakiet jest od niego zalezny powinien automatycznie go doinstalowac. Prawdopodobnie nie jest to moja ostatnia wizyta na tym forum, dzieki za pomoc.

----------

## dziadu

 *blurrpp wrote:*   

> Dzięki . Oczywisce, mam na mysli 1.7 miałem to poprawic ale niestety... . Dlaczego mysle ze to bug ?  ponieważ jak do tej pory  ( oprócz driverów ATI nie wspolpracujacych z x-org ), CAŁY system, wszystke potrzebne programy, kompiluja sie bez zastrzeżeń. Jak wspomniałem mam gentoo od wczoraj wiec wybacz ale jeszczcze nie wchodzilem w zrodło portage  (co niebawem nastąpi ale oczywiście nie trzeba znac pythona aby uzywac i rozumiec portage, albo mozna go znac i nie wiedzieć wiele apropo budowy jego drzewa ) na razie poznaje system. Ogólnie wniosek plynacy z tego jest taki, że interface  jest na tyle przyjazny, że kompletny n00b daje sobie rade .
> 
> Wracając do meritum ... masz racje to moze nie byc znany bug i powinienem wpisać błąd zamiast zakładac, że jest to coś z czym, jak wywnioskowalem z forów, obeznani uzytkownicy Gentoo spotkali sie nie raz. Aby nie zaśmiecać, podsyłam ostatni kawałek build.log. Jezeli to nie wystarczy podeśle cały build.log i environment 
> 
> make: *** [all] Error 2
> ...

 

 *blurrpp wrote:*   

> wygląda na to, że działa. ebuild'em z digest poprawilem .build plik i doinstalowalem cfortran, zalozylem ze jezeli pakiet jest od niego zalezny powinien automatycznie go doinstalowac. Prawdopodobnie nie jest to moja ostatnia wizyta na tym forum, dzieki za pomoc.

 

No i przez takie właśnie kwiatki popełniłem ten tekst... Wybacz stary, ale to co napisałeś to bełkot, nic nie rozumiem. Do tego nie zapoznałeś się z regulaminem forum bo chyba złamałeś wszystkie jego punkty.

----------

## blurrpp

Niemam pojęcia czego nie rozumiesz?. Ok, powoli, po przeczytaniu dokumentacji ( rownież mi wybacz ale dopiero w weekend mam czas aby zaglądnac do niej głębiej ) i przeanalizowaniu wyjścia kompilacji wszystko ruszyło. Sama dokunmetacja i analiza w tym przypadku z poziomu mojej terażniejszej wiedzy nie jest wystarczająca. Bez pomocny wpisu z forum dotyczącego  src_compile  było by ciężej, a z racji tego, ze zależało mi na czasie i szybkim uruchomieniu libpgp którego z kolei wymaga aplikacja używana przezemnie zdecydowałem sie zadać pytanie na forum.

Abyśmy dalej nie bili mało konstruktywnej, pseudo "pouczajacej" piany, tylko zajeli sie problemem , wpis:

src_compile() {

econf $(use_enable nls) CC_FOR_BUILD=$(tc-getBUILD_CC) || die

emake || die

}

wydaje się być opowiązkowy ponieważ bez niego nie diała (a następnie oczywiscie emuild /path/to/libgpg-error*.build digest )

"Błąd" tkwił w:

In file included from code-from-errno.c:32:

code-from-errno.h:3: error: expected identifier or '(' before '}' token

code-from-errno.c: In function 'gpg_err_code_from_errno':

code-from-errno.c:68: error: expected expression before ')' token

code-from-errno.c:68: error: expected expression before ')' token

code-from-errno.c:79: error: 'err_code_from_index' undeclared (first use in this function)

code-from-errno.c:79: error: (Each undeclared identifier is reported only once

code-from-errno.c:79: error: for each function it appears in.)

code-from-errno.c: In function 'gpg_err_code_from_syserror':

code-from-errno.c:95: error: expected expression before ')' token

code-from-errno.c:95: error: expected expression before ')' token

code-from-errno.c:106: error: 'err_code_from_index' undeclared (first use in this function)

po edycji code-form-errno.h widać, że pełno tam "wiszących" nawiasów które pradwopodobnie nie są błędem programistów tylko specjalnie przygotownym plikiem dla np. awka podczas kompilacji. Nie mama jeszcze pojęcia jak wpis src_compile poprawia ten problem ( tutaj twoja wiedza mogła by być pomocna  :Wink:  )dlatego nie zaznacze jeszcze tego tematu jako [SOLVED], musze doczytać na temat econf i ogolnie .build.

----------

## dziadu

Nie wiem czemu chce mi się to komentować. Popatrz na moje posty, na swoje i porównaj sobie. Forum dostarcza wielu narzędzi do pisania postów, m.in. do cytowania i umieszczania fragmentów kodu. Kolorami posługujesz się już perfekcyjnie ale nie nadużywaj tego.

Poza tym, czy próbowałeś przed wysłaniem przeczytać swoje wypowiedzi? To, że znasz swoje myśli nie znaczy, że my możemy je zrozumieć na podstawie tego co piszesz. Twoje zdania są nieskładne, niepoprawne gramatycznie i merytorycznie. Pisz wolniej, przemyśl swoje wypowiedzi, i zadaj pytanie. Bo wciąż nie wiadomo o co dokładnie Ci chodzi. Masz problem, ale nie jestem pewien o Co chcesz nas spytać. Bo podajesz jakieś pytania a potem odpowiedzi.

Przede wszystkim nie przedstawiłeś raportu z błędu. Podesłałem Ci odnośnik do tekstu, gdzie opisałem jak zrobić to poprawnie (Twój przykład pokazuje, że wciąż dużo osób ma z tym problem). Nie wiem czy przeczytałeś czy nie, jeśli nie to znaczy, że chyba nie chcesz, aby Ci próbowano pomóc.

Nie potrafiłem zreprodukować Twojego błędu, u mnie wszystko idzie OK. Na pytanie co to jest $(tc-getBUILD_CC) odpowiedz znajdziesz w tym handbooku. W Twoim przypadku będzie to najprawdopodobniej x86_64-pc-linux-gnu-gcc.

Żeby dokładnie odpowiedzieć na pytanie, dlaczego u Ciebie jest źle, musiałbyś pokazać pełny log z kompilacji, włączając w to wynik wywołania skryptu ./configure

Plik code-form-errno.h jest generowany dynamicznie, być może brakuje Ci czegoś. Odpowiedź na to może być zawarta w tym, co zwraca ./configure. Co więcej, jeśli masz ustawione MAKEOPTS="--quiet" to wywal --quiet z opcji, gdyż one powodują zmniejszenie tego, co jest wyświetlane przez make i pewne informacje mogą umknąć. Potem z powrotem włączysz tą opcję.

Dodatkowo, być może nie musisz edytować ebuilda. Możesz wyeksportować zmienną środowiskową, np w ten sposób:

```
# export CC_FOR_BUILD=`which x86_64-pc-linux-gnu-gcc`

# emerge libgpg-error -i1

# unset CC_FOR_BUILD
```

----------

