对 pidgin-2.0.2 进行 fakeroot debian/rules binary 出现编译错误!

编译打包和其他
回复
头像
xport
帖子: 1277
注册时间: 2006-05-19 21:23
联系:

对 pidgin-2.0.2 进行 fakeroot debian/rules binary 出现编译错误!

#1

帖子 xport » 2007-06-17 10:25

dh_make 后进行 fakeroot debian/rules binary 报错,为了验证是否少了依赖的软件,重新解开 tarball 后进行 ./configure,然后 make 编译成功。

为什么直接 Debian 化后的 source code 不能编译通过呢?

我的相关的文件如下:

1. control 文件:

代码: 全选

Source: pidgin
Section: net
Priority: extra
Maintainer: xport <xport@localhost>
Build-Depends: debhelper (>= 5), autotools-dev
Standards-Version: 3.7.2

Package: pidgin
Architecture: i386
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: multi-protocol instant messaging client. 
 Pidgin is a multi-protocol Instant Messaging client that allows you to use all of your IM accounts at once.
2. rules 文件修改部分:

代码: 全选

CFLAGS = -Wall -g -march=pentium4 -O2 -pipe -fomit-frame-pointer
3. 依赖部分信息:

代码: 全选

pidgin 2.0.2

Build GTK+ 2.x UI............. : yes
Build console UI.............. : no

Protocols to build dynamically : gg irc jabber msn novell oscar qq simple yahoo zephyr
Protocols to link statically.. :

Build with GStreamer support.. : yes
Build with D-Bus support...... : no
Build with NetworkManager..... : no
SSL Library/Libraries......... : GnuTLS
Build with Cyrus SASL support. : no
Use kerberos 4 with zephyr.... : no
Use external libzephyr........ : no
Has you....................... : yes

Use XScreenSaver Extension.... : no
Use X Session Management...... : yes
Use startup notification...... : no
Build with GtkSpell support... : no

Build with plugin support..... : yes
Build with Mono support....... : no
Build with Perl support....... : no
Build with Tcl support........ : no
Build with Tk support......... : no

Print debugging messages...... : no
3. 错误信息:

代码: 全选

NOTICE: ../../po/th.po is not in UTF-8 but tis-620, converting...
Merging translations into purple.schemas.
make[5]: Leaving directory `/home/xport/Temp/deb-build/pidgin/pidgin-2.0.2/libpurple/gconf'
Making all in plugins
make[5]: Entering directory `/home/xport/Temp/deb-build/pidgin/pidgin-2.0.2/libpurple/plugins'
Making all in ssl
make[6]: Entering directory `/home/xport/Temp/deb-build/pidgin/pidgin-2.0.2/libpurple/plugins/ssl'
if /bin/bash ../../../libtool --silent --tag=CC --mode=compile i486-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../../..  -DDATADIR=\"/usr/share\" -DLIBDIR=\"/usr/lib/libpurple\" -I../../../libpurple -I../../../libpurple -Wall  -Waggregate-return -Wcast-align -Wdeclaration-after-statement -Wendif-labels -Werror-implicit-function-declaration -Wextra -Wno-sign-compare -Wno-unused-parameter -Winit-self -Wmissing-declarations -Wmissing-noreturn -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wundef -Wp,-D_FORTIFY_SOURCE=2 -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include      -g  -g -march=pentium4 -O2 -pipe -fomit-frame-pointer -O2 -MT ssl.lo -MD -MP -MF ".deps/ssl.Tpo" -c -o ssl.lo ssl.c; \
        then mv -f ".deps/ssl.Tpo" ".deps/ssl.Plo"; else rm -f ".deps/ssl.Tpo"; exit 1; fi
/bin/bash ../../../libtool --silent --tag=CC --mode=link i486-linux-gnu-gcc  -g  -g -march=pentium4 -O2 -pipe -fomit-frame-pointer -O2  -Wl,-z,defs -o ssl.la -rpath /usr/lib/purple-2 -module -avoid-version ssl.lo -Wl,--export-dynamic -pthread -lgobject-2.0 -lgmodule-2.0 -ldl -lgthread-2.0 -lrt -lglib-2.0   -lnsl -lresolv 
.libs/ssl.o: In function `purple_init_plugin':
/home/xport/Temp/deb-build/pidgin/pidgin-2.0.2/libpurple/plugins/ssl/ssl.c:124: undefined reference to `purple_plugin_register'
.libs/ssl.o: In function `plugin_unload':
/home/xport/Temp/deb-build/pidgin/pidgin-2.0.2/libpurple/plugins/ssl/ssl.c:71: undefined reference to `purple_plugins_get_loaded'
/home/xport/Temp/deb-build/pidgin/pidgin-2.0.2/libpurple/plugins/ssl/ssl.c:74: undefined reference to `purple_plugin_unload'
.libs/ssl.o: In function `probe_ssl_plugins':
/home/xport/Temp/deb-build/pidgin/pidgin-2.0.2/libpurple/plugins/ssl/ssl.c:40: undefined reference to `purple_plugins_get_all'
/home/xport/Temp/deb-build/pidgin/pidgin-2.0.2/libpurple/plugins/ssl/ssl.c:50: undefined reference to `purple_plugin_is_loaded'
/home/xport/Temp/deb-build/pidgin/pidgin-2.0.2/libpurple/plugins/ssl/ssl.c:50: undefined reference to `purple_plugin_load'
collect2: ld returned 1 exit status
make[6]: *** [ssl.la] Error 1
make[6]: Leaving directory `/home/xport/Temp/deb-build/pidgin/pidgin-2.0.2/libpurple/plugins/ssl'
make[5]: *** [all-recursive] Error 1
make[5]: Leaving directory `/home/xport/Temp/deb-build/pidgin/pidgin-2.0.2/libpurple/plugins'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/home/xport/Temp/deb-build/pidgin/pidgin-2.0.2/libpurple'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/home/xport/Temp/deb-build/pidgin/pidgin-2.0.2/libpurple'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/xport/Temp/deb-build/pidgin/pidgin-2.0.2'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/xport/Temp/deb-build/pidgin/pidgin-2.0.2'
make: *** [build-stamp] Error 2
上次由 xport 在 2007-06-17 16:24,总共编辑 1 次。
其实我是一个演员!-http://blog.csdn.net/xport/
头像
内存不足
论坛版主
帖子: 3277
注册时间: 2005-08-18 18:43
联系:

#2

帖子 内存不足 » 2007-06-17 10:58

是不是你没在干净的源码包里运行 fakeroot debian/rules binary ?
如果你之前./configure 过,肯定出错。
໌→ iCookie Gtk Theme
໌→DropPlusBluetheme
กรัก กรัก`菠萝
头像
xport
帖子: 1277
注册时间: 2006-05-19 21:23
联系:

#3

帖子 xport » 2007-06-17 11:02

内存不足 写了:是不是你没在干净的源码包里运行 fakeroot debian/rules binary ?
如果你之前./configure 过,肯定出错。
是从干净的源代码来的,之前没有执行 ./configure
其实我是一个演员!-http://blog.csdn.net/xport/
antonym55
帖子: 353
注册时间: 2007-04-03 9:52
联系:

#4

帖子 antonym55 » 2007-06-17 11:57

问题似乎是出在 pidgin 的 libpurple/plugins/ssl 这里, 如果先单独把这个目录 make 一下,

再fakeroot debian/rules binary, 就什么问题都没了

曾试过在control 中的Build-Depends中加入libgnutls-dev,结果还是有上述问题
Build-Depends: debhelper (>= 5), autotools-dev,libgnutls-dev
目前是采用 迂回的方式生成deb包, 即:
先./configure 再make 然后 再fakeroot debian/rules binary 的方式生成 deb 包
chasye
帖子: 333
注册时间: 2007-05-13 15:20

#5

帖子 chasye » 2007-06-20 16:26

设置好debian目录后,直接在源码目录下
dpkg-buildpackage -rfakeroot -uc -b

如果设置没出问题,等安装就好了
antonym55
帖子: 353
注册时间: 2007-04-03 9:52
联系:

#6

帖子 antonym55 » 2007-06-20 19:04

chasye 写了:设置好debian目录后,直接在源码目录下
dpkg-buildpackage -rfakeroot -uc -b

如果设置没出问题,等安装就好了
我试了一下,还是不行,这么做和 fakeroot debian/rules binary 没什么区别

主要的问题是 libpurple/plugins/ssl 需要使用 libgnutls-dev 开发包里的功能,

而dpkg-buildpackage 工具似乎不能正确使用 libgnutls-dev,结果引发错误

不知在那里可以配置这个libgnutls-dev
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#7

帖子 BigSnake.NET » 2007-06-20 19:24

用getdeb上的源码包
附件
pidgin_2.0.2-1~getdeb1.diff.gz
(98 KiB) 已下载 162 次
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
antonym55
帖子: 353
注册时间: 2007-04-03 9:52
联系:

#8

帖子 antonym55 » 2007-06-20 19:33

BigSnake.NET 写了:用getdeb上的源码包
faint!!!

我们不是要安装包,而是要知道怎么制做

如果要安装包的话,先把libpurple/plugins/ssl 目录make 一下就可以生成安装包了

为了测试,我已经做了10多个安装包了

我们也不是什么升级狂人, 如果只是因为QQ的原因

只需要编译一下QQ的协议,然后再拷贝过去就OK了

更省时省力
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#9

帖子 BigSnake.NET » 2007-06-20 21:01

antonym55 写了:
BigSnake.NET 写了:用getdeb上的源码包
faint!!!

我们不是要安装包,而是要知道怎么制做

如果要安装包的话,先把libpurple/plugins/ssl 目录make 一下就可以生成安装包了

为了测试,我已经做了10多个安装包了

我们也不是什么升级狂人, 如果只是因为QQ的原因

只需要编译一下QQ的协议,然后再拷贝过去就OK了

更省时省力
参考一下人家的rule也是件好事..
我前日编译了一个..成功
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
laimama
帖子: 104
注册时间: 2006-12-10 12:35
来自: ChongQing China

#10

帖子 laimama » 2007-07-11 19:51

呵呵,我是这样做的:
先./configure 然后 sudo debian/rules binary

完全搞定。
回复