# mein erstes ebuild kann mir da einer helfen

## daemonb

Also ich habe mich heute entschieden ein ebuild zu erstellen für prozilla gui, allerdings bekomme ich das nicht so ganz gebacken, beim kompilieren bricht er immer ab. Kann mir einer helfen was ich falsch mache? Wäre nett

```

S="${WORKDIR}/prozgui-2.0.4beta3"

DESCRIPTION="Gui for the Prozilla Downloadmanager"

SRC_URI="http://prozilla.genesys.ro/downloads/prozgui/tarballs/prozgui-2.0.4beta3.tar.gz

HOMEPAGE="http://prozilla.genesys.ro/"

KEYWORDS="x86"

SLOT="0"

LICENSE="GPL-2"

DEPEND="net-www/prozilla

   x11-libs/fltk"

src_compile() {

    ./configure --prefix=/usr \

      --infodir=/usr/share/info \

      --mandir=/usr/share/man \

      --host=${CHOST} \

      --sysconfdir=/etc || die

   emake || die

}

src_install () {

   make DESTDIR=${D} \

   sysconfdir=${D}/etc \

   install || die

   dodoc ANNOUNCE AUTHORS COPYING CREDITS ChangeLog FAQ NEWS README TODO

}

```

Danke schonmal 

DaemonB

----------

## nils

Warum bricht er ab? Ohne Fehler?

----------

## daemonb

hm kannst du es ma antesten?

----------

## Ravage

Ein paar Dinge sind falsch:

1) bei SRC_URI fehlt das abschließende " (Quote)

2) dein configure aufruf fürfte nicht funzen, da du in diesem moment wahrscheinlich in einem anderen Verzeichnis bist (bin mir aber nicht sicher). Nimm besser econf

Anmerkung:

 DESCRIPTION und HOMEPAGE sollten am Anfang stehen (nur formsache)

so könnte es eher klappen

```

S="${WORKDIR}/prozgui-2.0.4beta3" 

 DESCRIPTION="Gui for the Prozilla Downloadmanager" 

 SRC_URI="http://prozilla.genesys.ro/downloads/prozgui/tarballs/prozgui-2.0.4beta3.tar.gz"

 HOMEPAGE="http://prozilla.genesys.ro/" 

 KEYWORDS="x86" 

 SLOT="0" 

 LICENSE="GPL-2" 

 

 DEPEND="net-www/prozilla 

    x11-libs/fltk" 

 

 src_compile() { 

     econf \

       --prefix=/usr \ 

       --infodir=/usr/share/info \ 

       --mandir=/usr/share/man \ 

       --host=${CHOST} \ 

       --sysconfdir=/etc || die 

    emake || die 

 } 

 

 src_install () { 

    make DESTDIR=${D} \ 

    sysconfdir=${D}/etc \ 

    install || die 

    dodoc ANNOUNCE AUTHORS COPYING CREDITS ChangeLog FAQ NEWS README TODO 

 } 

 
```

habs aber nicht getestet  :Smile: 

good luck

Update:

Evtl. auch in src_install einfach nur einstall und dodoc aufrufen.Last edited by Ravage on Wed Jan 08, 2003 10:55 pm; edited 1 time in total

----------

## hash_

werden denn so die cflags aus der make.conf benutzt? oder muss man die per sed ins makefile packen?

----------

## Ravage

Einfach mit 

echo ${CFLAGS} 

relativ am Anfang des Ebuilds testen 

- und siehe da:  -march=Athlon ... etc.

Halt einfach in andere Ebuilds schauen: 

z.b. für sed im makefile bietet sich app-arch/zip an.

----------

## daemonb

jo danke, war zwar schon einige zeit her mit dem post, aber ich habe ma wieder reingeschaut. Danke an alle.....

----------

## Niko_K

Hi,

also das ebuild funzt bei mir nicht!

Ich habe schon längere Zeit gebraucht, bis ich die Datei hatte, denn irgendwas stimmt mit der Homepage im Moment nicht!

Gibt es denn das Projekt überhaupt noch?

Naja, egal. Hier die Fehlermeldung, die ich beim emergen erhalte:

```
ain.cpp:245: `fl_message' undeclared (first use this function)

main.cpp: At global scope:

main.cpp:290: `Fl_Button' was not declared in this scope

main.cpp:290: `button' was not declared in this scope

main.cpp:290: parse error before `*' token

main.cpp:296: `widget' was not declared in this scope

main.cpp:296: parse error before `*' token

main.cpp: In function `void cb_main_win(...)':

main.cpp:298: `widget' undeclared (first use this function)

main.cpp: At global scope:

main.cpp:306: parse error before `[' token

main.cpp: In function `void menu_download_stop()':

main.cpp:379: warning: unused variable `int select'

main.cpp: In function `void menu_download_remove()':

main.cpp:386: `menuitems' undeclared (first use this function)

main.cpp: At global scope:

main.cpp:391: `Fl_Widget' was not declared in this scope

main.cpp:391: `o' was not declared in this scope

main.cpp:391: parse error before `*' token

main.cpp: In function `void browser_cb(...)':

main.cpp:397: `Fl_Browser' undeclared (first use this function)

main.cpp:397: parse error before `)' token

main.cpp: In function `int main(int, char**)':

main.cpp:420: `FL_NORMAL_SIZE' undeclared (first use this function)

main.cpp:452: invalid use of undefined type `class Main_Window'

main.cpp:74: forward declaration of `class Main_Window'

main.cpp:455: `fl_open_display' undeclared (first use this function)

main.cpp:461: `fl_display' undeclared (first use this function)

main.cpp:463: invalid use of undefined type `class Main_Window'

main.cpp:74: forward declaration of `class Main_Window'

main.cpp:467: `Fl_Menu_Bar' undeclared (first use this function)

main.cpp:467: `menubar' undeclared (first use this function)

main.cpp:467: parse error before `(' token

main.cpp:468: `FL_TIMES' undeclared (first use this function)

main.cpp:477: parse error before `(' token

main.cpp:479: `load_savefile' cannot be used as a function

main.cpp:480: `struct runtime' has no member named `prefs_win'

main.cpp:480: `make_prefs_win' undeclared (first use this function)

main.cpp:481: `make_about_win' undeclared (first use this function)

main.cpp:482: `Fl_Callback' undeclared (first use this function)

main.cpp:482: parse error before `)' token

main.cpp:483: invalid use of undefined type `class Main_Window'

main.cpp:74: forward declaration of `class Main_Window'

main.cpp:485: `make_url_input_win' undeclared (first use this function)

main.cpp:506: parse error before `::' token

main.cpp:507: parse error before `::' token

make[2]: *** [main.o] Fehler 1

make[2]: Leaving directory `/var/tmp/portage/prozgui-2.0.4_beta3/work/prozgui-2.0.4beta3/src'

make[1]: *** [all-recursive] Fehler 1

make[1]: Leaving directory `/var/tmp/portage/prozgui-2.0.4_beta3/work/prozgui-2.0.4beta3'

make: *** [all-recursive-am] Fehler 2

!!! ERROR: net-www/prozgui-2.0.4_beta3 failed.

!!! Function src_compile, Line 19, Exitcode 2

!!! (no error message)
```

Ich würde mal sagen, dass die Fehler "nach oben offen" sind!

Ist vielleicht eine Abhängigkeit nicht erfüllt?

Im Moment brauche ich wirklich so einen grafischen Downloadmanager, aber kget gefällt mir nicht! Ich verwende noch prozgui2.0.4beta1 (denke ich, aber im "About-Dlg" steht nur Prozgui2.0.4beta)

Bitte helft mir,

Niko

----------

## Genone

Am besten auch mal http://cvs.gentoo.org/~liquidx/ebuildmistakes.html durchlesen falls du es mal in Bugzilla submitten willst.

----------

## Niko_K

Hi,

also ich konnte keinen Fehler im Ebuild finden!

Ich habe noch einen Header hinzugefügt und dann das selbe ebuild wie oben verwendet!

Kann da jemand einen Fehler finden?

Niko

----------

## JensZ

Die fehlermeldungen sind soweit ich das sehe auf unsauberen Sourcecode zurück zu führen, und am Ende steigt der Compiler wegen eines Fehlers aus, irgendwas stimmt auf Zeile 506 und 507 vor dem oder nicht, ich denke nicht das das an deinem EBuild liegt.

----------

## Niko_K

Hi,

na das kann doch (fast) nicht sein!

Ich habe das File nochmal neu downgeloaded, erhalte aber immer noch einen Fehler.

Es hat sich komischerweise die "Line" des Fehlers geändert, davor steht aber immer das selbe (liegt ja vielleicht am Header, den ich hinzugefügt habe, ...)

Naja, aber das Package ist jetzt von der Homepage von prozilla und da sollte das schon richtig sein, ...

Niko

----------

## Niko_K

So,

ich habe das ebuild jetzt mal an die neuere Version 2.0.5beta angepasst. Das ebuild schreibe ich mal hier rein:

```
/usr/local/portage/net-www/prozgui/prozgui-2.0.5_beta.ebuild

# Copyright 1999-2003 Gentoo Technologies, Inc.

# Distributed under the terms of the GNU General Public License v2

# $Header: $

DESCRIPTION="Gui for the Prozilla Downloadmanager"

HOMEPAGE="http://prozilla.genesys.ro/"

S="${WORKDIR}/prozgui-2.0.5beta"

SRC_URI="http://prozilla.genesys.ro/downloads/prozgui/tarballs/prozgui-2.0.5beta.tar.bz2

KEYWORDS="x86"

SLOT="0"

LICENSE="GPL-2"

IUSE=""

DEPEND="net-www/prozilla

        x11-libs/fltk"

src_compile() {

     econf \

       --prefix=/usr \

       --infodir=/usr/share/info \

       --mandir=/usr/share/man \

       --host=${CHOST} \

       --sysconfdir=/etc || die

     emake || die

}

src_install () {

    make DESTDIR=${D} \

    sysconfdir=${D}/etc \

    install || die

    dodoc ANNOUNCE AUTHORS COPYING CREDITS ChangeLog FAQ NEWS README TODO

}

```

Der genaue Fehler ist jetzt:

```
----------------cut------------------

main.cpp:74: forward declaration of `class Main_Window'

main.cpp:455: `fl_open_display' undeclared (first use this function)

main.cpp:461: `fl_display' undeclared (first use this function)

main.cpp:463: invalid use of undefined type `class Main_Window'

main.cpp:74: forward declaration of `class Main_Window'

main.cpp:467: `Fl_Menu_Bar' undeclared (first use this function)

main.cpp:467: `menubar' undeclared (first use this function)

main.cpp:467: parse error before `(' token

main.cpp:468: `FL_TIMES' undeclared (first use this function)

main.cpp:477: parse error before `(' token

main.cpp:479: `load_savefile' cannot be used as a function

main.cpp:480: `struct runtime' has no member named `prefs_win'

main.cpp:480: `make_prefs_win' undeclared (first use this function)

main.cpp:481: `make_about_win' undeclared (first use this function)

main.cpp:482: `Fl_Callback' undeclared (first use this function)

main.cpp:482: parse error before `)' token

main.cpp:483: invalid use of undefined type `class Main_Window'

main.cpp:74: forward declaration of `class Main_Window'

main.cpp:485: `make_url_input_win' undeclared (first use this function)

main.cpp:506: parse error before `::' token

main.cpp:507: parse error before `::' token

make[2]: *** [main.o] Fehler 1

make[2]: Leaving directory `/var/tmp/portage/prozgui-2.0.5_beta/work/prozgui-2.0.5beta/src'

make[1]: *** [all-recursive] Fehler 1

make[1]: Leaving directory `/var/tmp/portage/prozgui-2.0.5_beta/work/prozgui-2.0.5beta'

make: *** [all] Fehler 2

!!! ERROR: net-www/prozgui-2.0.5_beta failed.

!!! Function src_compile, Line 25, Exitcode 2

!!! (no error message)
```

Fehler bitte melden,

Niko (Sorry für den langen Post)

----------

## JensZ

hast du mal versucht das von hand zu übersetzen? configure && make, mal sehen ob das klappt, ich würd nämlich tippen das das mit der selben Fehlernmeldung abbricht.

----------

## Niko_K

Hi,

jawohl, da hast du nicht ganz unrecht.

Ich habe auf der Homepage gelesen, dass man ein älteres fltk nehmen soll, deshalb versuche ich das mal.

Aber wenn das auch nicht funzt, was mache ich denn dann?

Niko

EDIT: Hat leider nicht geholfen, ...

----------

## JensZ

den Fehler an die Entwickler melden und warten bis die ihn gfixt haben, oder du begibst dich selbst in die Tiefen des Sourcecodes und versuchst selber ihn zu fixen

----------

## Niko_K

Hi,

so also ich habe zumindest mal die passende Fehlermeldung gefunden:

```
main.cpp:26:19: FL/Fl.H: Datei oder Verzeichnis nicht gefunden

main.cpp:27:26: FL/Fl_Window.H: Datei oder Verzeichnis nicht gefunden

main.cpp:28:23: FL/Fl_Box.H: Datei oder Verzeichnis nicht gefunden

main.cpp:29:56: FL/Fl_Group.H: Datei oder Verzeichnis nicht gefunden

main.cpp:30:62: FL/fl_ask.H: Datei oder Verzeichnis nicht gefunden

main.cpp:31:28: FL/Fl_Menu_Bar.H: Datei oder Verzeichnis nicht gefunden

main.cpp:32:25: FL/Fl_Input.H: Datei oder Verzeichnis nicht gefunden

main.cpp:33:26: FL/Fl_Output.H: Datei oder Verzeichnis nicht gefunden

main.cpp:34:27: FL/Fl_Browser.H: Datei oder Verzeichnis nicht gefunden

main.cpp:35:24: FL/fl_draw.H: Datei oder Verzeichnis nicht gefunden

main.cpp:36:32: FL/Fl_Hold_Browser.H: Datei oder Verzeichnis nicht gefunden

main.cpp:37:18: FL/x.H: Datei oder Verzeichnis nicht gefunden
```

Das kann ja gar nicht funktionieren, wenn da die Abhängigkeit fehlt!

Wie kann ich denn das schon wieder fixen???

Also langsam wird das "ärgerlich",

Niko

EDIT: Die Dateien sind doch in /usr/include/fltk-1.0/FL/* (kann nach fltk Version varieiren)

----------

## JensZ

schau mal ob du über configure explizit den Pfad zu den includes von fltk angeben kannst.

----------

## Niko_K

Hi,

also eigentlich gibt es da ne Menge an Möglichkeiten!   :Laughing: 

Ne, ich denke mal, dass ich nur

```
  --with-fltk-libs        set directory for FLTK library

  --with-fltk-includes    set directory for FLTK includes
```

setzen muss!

Das Problem das ich dabei habe ist:

Wie setze ich denn das so, dass man das Programm mit "allen" Versionen von fltk übersetzen kann, denn da ändert sich ja der Pfad mit der zweiten Stelle der Version (1.0.11 verwendet Pfad 1.0, während neuere den Pfad 1.1 verwenden, ...)

Hast du da ne Idee, JensZ?

Niko

----------

## JensZ

ich würde erstmal prüfen ob compilieren überhaupt möglich ist, wenn du eine Konfiguration auf deinem Rechner erstellt hast, kann man versuchen ein EBuild zu schreiben das das auf anderen Rechnern tut, aber erstmal sollte das Programm bei dir übersetzbar sein

----------

## Niko_K

NEIN,

ich hasse solche Momente, ...

Ich denke, dass ich mir gerade mein /usr/include gelöscht habe.

Das Ganze kann also noch um einiges länger dauern!

Kann man denn das Verzeichniss wiederherstellen?

Niko

----------

## JensZ

kommt auf das Dateisystem an, mit ext geht's ganz gut, mit Reiser würd ich's nicht versuchen (damit hab ich mir mal ein ganzes Dateisystem zerschossen) und die anderen hab ich noch nicht ausprobiert

----------

## Niko_K

Hi,

ich verwende ReiserFS, also kann ich das wiederherstellen wohl vergessen.

Ich remerge jetzt mal glibc und gcc!

Was muss ich denn dann noch emergen um das volle Verzeichniss wieder zu haben (doch nicht alles, oder?)

Niko

----------

## MasterOfMagic

wenn du auf nummer sicher gehen willst und kein backup hast, dann wird kein weg dran vorbeiführen alles zu emergen.

mfg

masterofmagic

----------

## Niko_K

Hi,

also wenn ich das machen muss, dann kann ich auch gleich einen neue Installation vornehemen, ...

Naja, also wenn es jetzt nichts bringt, wenn ich gcc neu drauf hab (glibc wollte nicht emergen), dann müsst ihr leider bis zum Wochenende warten, denn dann kann ich mich daran machen, mein System neu zu installieren!

BTW: Wie erstellt man sich denn unter Gentoo am besten ein Backup?

Niko

----------

