erstes Debian Paket erstellen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Profbunny
Beiträge: 592
Registriert: 04.04.2004 11:12:29
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Bautzen

erstes Debian Paket erstellen

Beitrag von Profbunny » 12.07.2007 16:21:36

hi leute,

habe mal mit dem author von icqnd gesprochen, er hätte gern ein Debian paket. da ich jetzt etwas zeit habe habe ich mich mal dran versucht. eines vorweg:
die quellen von http://sourceforge.net/project/showfile ... _id=140417 geholt.
./configure --prefix=/usr --enable-gtkspell --enable-nls
make
make install
läuft ohne probleme funktionsfähig durch.


also http://www.debian.org/doc/manuals/maint ... ns.de.html geschnappt und losgelegt.
changelog control copyright rules angepasst.

die rules

Code: Alles auswählen

./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info CFLAGS="$(CFLAGS)" LDFLAGS="-Wl,-z,defs"  --enable-gtkspell  -enable-nls
beginnt zu bauen und steigt aus ziemlich am schluss siehe

Code: Alles auswählen

references to `SHARE_DIR' follow
.libs/statswindow.o: In function `StatisticsWindow::cb_resetButtonClicked(StatisticsWindow*)':
/home/profbunny/source/debs/icqnd-0.2-beta/src/statswindow.cpp:236: undefined reference to `CICQDaemon::ResetStats()'
.libs/infooverviewwindow.o: In function `InfoOverviewWindow::createContentBox()':
/home/profbunny/source/debs/icqnd-0.2-beta/src/infooverviewwindow.cpp:290: undefined reference to `gLanguages'
/home/profbunny/source/debs/icqnd-0.2-beta/src/infooverviewwindow.cpp:283: undefined reference to `gLanguages'
/home/profbunny/source/debs/icqnd-0.2-beta/src/infooverviewwindow.cpp:385: undefined reference to `gCountries'
/home/profbunny/source/debs/icqnd-0.2-beta/src/infooverviewwindow.cpp:234: undefined reference to `gCountries'
/home/profbunny/source/debs/icqnd-0.2-beta/src/infooverviewwindow.cpp:295: undefined reference to `gLanguages'
.libs/infooverviewwindow.o: In function `InfoOverviewWindow::createWindowContent()':
/home/profbunny/source/debs/icqnd-0.2-beta/src/infooverviewwindow.cpp:51: undefined reference to `SHARE_DIR'
collect2: ld returned 1 exit status
make[3]: *** [licq_icqnd.la] Fehler 1
make[3]: Leaving directory `/home/profbunny/source/debs/icqnd-0.2-beta/src'
make[2]: *** [all-recursive] Fehler 1
make[2]: Leaving directory `/home/profbunny/source/debs/icqnd-0.2-beta'
make[1]: *** [all] Fehler 2
make[1]: Leaving directory `/home/profbunny/source/debs/icqnd-0.2-beta'
make: *** [build-stamp] Fehler 2

so hm, laut anleitung kann es sein das verschiedene pfade fest sind. also erstmal grep in action versetzt

Code: Alles auswählen

  
grep -nr -e 'usr/local/lib' --include='*.[c|h]' .
grep -nr -e '/usr/local/bin'  .
grep -nr -e '/usr/' --include='*.[c|h]' .
find -regex ".*\.h$\|.*\.c$"|xargs grep -n usr/local| less
find -regex ".*\.h$\|.*\.c$"|xargs grep -n usr/local/lib | less
grep -R `SHARE_DIR' .
grep -R /usr/local .
ich hab diese hier und noch einige mehr durchprobiert, da die sourcen auf automake und autoconf setzen habe ich mir alle makefiles.am angeschaut. leider bin ich noch nicht ein stück in die richtige richtung gerückt.
wenn interesse besteht, kann ich icqnd_0.2-beta-1_i386.build nach nopaste laden, sind aber satte 167kb

ich hab ein bisschen libtool in verdacht mich zu ärgern, nur fand ich in dem man dazu nix passendes .kann mir jemannd einen schubs in die richtige richtung geben?

danke micha
Rechner / Server Debian sid

jhr-online
Beiträge: 2186
Registriert: 18.09.2005 15:52:02
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Beitrag von jhr-online » 12.07.2007 18:36:14

Mir fällt gerade nichts bestimmtes ein, außer dich in Richtung debian-mentors@lists.debian.org zu schubsen...

jhr
Desktop: Intel Core2Quad Q8300 2.5GHz, 256GB SSD + 1 TB HDD, 8 GB RAM, Debian Sid, Kernel 3.13

Benutzeravatar
Profbunny
Beiträge: 592
Registriert: 04.04.2004 11:12:29
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Bautzen

Beitrag von Profbunny » 18.07.2007 11:49:59

nur falls mal jemand ein ähnliches problem hat, der fehler lag an den von dh_make gesetzen flags in der rules datei.

CFLAGS="$(CFLAGS)" LDFLAGS="-Wl,-z,defs"

Code: Alles auswählen

CFLAGS = -Wall -g

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
        CFLAGS += -O0
else
        CFLAGS += -O2
endif
Rechner / Server Debian sid

ShadowPhönix
Beiträge: 5
Registriert: 24.07.2007 14:12:15
Kontaktdaten:

Beitrag von ShadowPhönix » 30.07.2007 20:59:57

Hi,

ich erstelle meine Debianpakete immer mit checkinstall [1].

Dann also:

./configure --prefix=/usr --enable-gtkspell --enable-nls

make

und als root:

checkinstall -D

Viele Grüße
ShadowPhönix

[1] http://asic-linux.com.mx/~izto/checkinstall/

Benutzeravatar
Linuxpeter
Beiträge: 236
Registriert: 26.04.2005 22:48:56
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Dresden

Beitrag von Linuxpeter » 30.07.2007 23:51:21

Mit checkinstall erstellte Pakete lösen aber bei der Installation keine Abhängigkeiten auf.

Antworten