DeaDBeeF-MPRIS-plugin编译安装成功, 各种出错的童鞋们可以进来看看, GDbus和Dbus一样坑爹

Totem,mplayer,sopcast,realplayer,bmp
回复
头像
.txt
帖子: 86
注册时间: 2012-04-30 17:16
系统: Archlinux

DeaDBeeF-MPRIS-plugin编译安装成功, 各种出错的童鞋们可以进来看看, GDbus和Dbus一样坑爹

#1

帖子 .txt » 2012-10-24 14:29

首先
git clone https://github.com/kernelhcy/DeaDBeeF-MPRIS-plugin.git
得到源码包
然后进入DeaDBeeF-MPRIS-plugin文件夹, 依次输入命令
autogen.sh
./configure
这一步应该都没有问题, 要是缺了依赖包的话按照提示去安装就行了
重点在make上
正常情况下会出现错误1:
mpris.c:19:31: fatal error: deadbeef/deadbeef.h: No such file or directory

原因:
缺少deadbeef.h这个文件

解决方法:
方法1:去http://sourceforge.net/projects/deadbee ... ecommended下载deadbeef源码包
如果之前没在root下装过插件的话, 将deadbeef源码包中的deadbeef.h复制到/usr/include/deadbeef/ (没有这个目录的话就新建)
如果之前已经在/usr/lib/deadbeef/下安装了插件的话那就复制到/usr/lib/deadbeef/即可.

方法2:安装deadbeef-devel包

继续make, 会出现错误2:
mpris.c: In function 'mpris_start':
mpris.c:58:9: error: 'g_thread_init' is deprecated (declared at /usr/include/glib-2.0/glib/deprecated/gthread.h:259) [-Werror=deprecated-declarations]
mpris.c:62:5: error: 'g_thread_create' is deprecated (declared at /usr/include/glib-2.0/glib/deprecated/gthread.h:100): Use 'g_thread_new' instead [-Werror=deprecated-declarations]

原因: 新的Glib中, g_thread_init, g_thread_create两个操作线程的指令均已废弃
解决方法:
在DeaDBeeF-MPRIS-plugin的目录下找到mpris.c并用文本编辑器打开, 搜索mpris_start, 然后修改为如下内容

代码: 全选

static gint mpris_start() 
{
    if(!g_thread_supported()){
        //g_thread_init(NULL);
        debug("Init the thread...");
    }
    //GError *err = NULL;
    server_thread_id = g_thread_new("MPRIS", server_thread, NULL);
    if(server_thread_id == NULL){
        //debug("Create MPRIS thread error. %d:%s", err -> code, err -> message);
        //g_error_free(err);
        return -1;
    }
    return 0;
}
保存,再make, make install
这次应该就会成功了

如果懒得自己修改的, 这里有patch:
https://build.opensuse.org/package/view ... fbe3d2bf7c

图片

然后就是老套路了
mkdir ~/.local/lib/deadbeef/
sudo cp /usr/lib/deadbeef/* ~/.local/lib/deadbeef/

图片
图片
图片
祝各位使用愉快!
PS: 此插件使用的GDBus也不能保证进程安全, 在官方版本的GDbus上运行有相当大几率会导致deadbeef启动崩溃.这个只能等待更新,目前没有完美解决方案!


ubuntu 12.10
deadbeef 0.5.6
DeaDBeeF-MPRIS-plugin 2.1
测试通过 (本人的Gdbus是修改过的.....不具有参考价值)
上次由 .txt 在 2012-10-30 17:55,总共编辑 4 次。
Archlinux
Google Chrome
ZSH
fcitx
rtorrent
mpd
aria2c
mplayer
vim
头像
SilverZhao
帖子: 115
注册时间: 2010-10-09 23:37
来自: NJU

Re: DeaDBeeF-MPRIS-plugin编译安装成功, 各种出错的童鞋们可以进来看看

#2

帖子 SilverZhao » 2012-10-24 15:56

我这里一直可以编译成功的,但是运行会和 DeaDBeef 冲突,根本用不了,详见 https://code.google.com/p/deadbeef-mpri ... tail?id=11
妾发初覆额,折花门前剧。郎骑竹马来,绕床弄青梅。同居长干里,两小无嫌猜。
头像
.txt
帖子: 86
注册时间: 2012-04-30 17:16
系统: Archlinux

Re: DeaDBeeF-MPRIS-plugin编译安装成功, 各种出错的童鞋们可以进来看看

#3

帖子 .txt » 2012-10-24 17:04

SilverZhao 写了:我这里一直可以编译成功的,但是运行会和 DeaDBeef 冲突,根本用不了,详见 https://code.google.com/p/deadbeef-mpri ... tail?id=11
因为你强行用的老的glib库编译, 编译能成功没错
但是运行的时候两个旧的thread指令系统不认, 就给你弄崩溃了
按照我的方法用git版
并修改成新指令后就OK了, 我这里运行一切正常
Archlinux
Google Chrome
ZSH
fcitx
rtorrent
mpd
aria2c
mplayer
vim
mfk530
帖子: 7
注册时间: 2011-04-23 22:57

Re: DeaDBeeF-MPRIS-plugin编译安装成功, 各种出错的童鞋们可以进来看看

#4

帖子 mfk530 » 2012-10-24 18:03

按照楼主的方法可以编译,但是deadbeef打不开,cpu100%,楼主的deadbeef是deb还是自己编译安装的?
funicorn
帖子: 1318
注册时间: 2005-09-13 4:56
系统: Ubuntu Jammy Jellyfi

Re: DeaDBeeF-MPRIS-plugin编译安装成功, 各种出错的童鞋们可以进来看看

#5

帖子 funicorn » 2012-10-24 18:23

MPRIS Debug Info: MPRIS V1 Starting...
MPRIS Debug Info: MPRIS V2 Starting...
MPRIS Debug Info: name acquired: org.mpris.deadbeef
MPRIS Debug Info: name acquired: org.mpris.MediaPlayer2.deadbeef
MPRIS Debug Info: Get Volume: 46.428574
gtkui plugin compiled for gtk version: 2.16.0
Segmentation Fault
backtrace() returned 12 addresses
/opt/deadbeef/bin/deadbeef() [0x402b95]
/lib/x86_64-linux-gnu/libc.so.6(+0x364a0) [0x7f0600c344a0]
/usr/lib/x86_64-linux-gnu/libICE.so.6(+0x108e5) [0x7f05f08f08e5]
/usr/lib/x86_64-linux-gnu/libICE.so.6(IceProcessMessages+0x2a7) [0x7f05f08f1817]
/opt/deadbeef/lib/deadbeef/ddb_gui_GTK2.so(+0x57e92) [0x7f05f0f5de92]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x135) [0x7f05fe0afab5]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x47de8) [0x7f05fe0afde8]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_loop_run+0x72) [0x7f05fe0b01e2]
/opt/deadbeef/lib/deadbeef/mpris.so(+0x1fc2) [0x7f05f5493fc2]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x6b645) [0x7f05fe0d3645]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x7e9a) [0x7f0600fc4e9a]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7f0600cf1cbd]
funicorn
帖子: 1318
注册时间: 2005-09-13 4:56
系统: Ubuntu Jammy Jellyfi

Re: DeaDBeeF-MPRIS-plugin编译安装成功, 各种出错的童鞋们可以进来看看

#6

帖子 funicorn » 2012-10-24 18:31

你那里正常什么问题都说明不了,你的dbus版本是多少?
.txt 写了:
SilverZhao 写了:我这里一直可以编译成功的,但是运行会和 DeaDBeef 冲突,根本用不了,详见 https://code.google.com/p/deadbeef-mpri ... tail?id=11
因为你强行用的老的glib库编译, 编译能成功没错
但是运行的时候两个旧的thread指令系统不认, 就给你弄崩溃了
按照我的方法用git版
并修改成新指令后就OK了, 我这里运行一切正常
头像
.txt
帖子: 86
注册时间: 2012-04-30 17:16
系统: Archlinux

Re: DeaDBeeF-MPRIS-plugin编译安装成功, 各种出错的童鞋们可以进来看看

#7

帖子 .txt » 2012-10-25 1:03

mfk530 写了:按照楼主的方法可以编译,但是deadbeef打不开,cpu100%,楼主的deadbeef是deb还是自己编译安装的?
deb的, 看来LS说的有理, 和dbus的版本有关
Archlinux
Google Chrome
ZSH
fcitx
rtorrent
mpd
aria2c
mplayer
vim
头像
.txt
帖子: 86
注册时间: 2012-04-30 17:16
系统: Archlinux

Re: DeaDBeeF-MPRIS-plugin编译安装成功, 各种出错的童鞋们可以进来看看

#8

帖子 .txt » 2012-10-25 1:31

funicorn 写了:你那里正常什么问题都说明不了,你的dbus版本是多少?
.txt 写了:
SilverZhao 写了:我这里一直可以编译成功的,但是运行会和 DeaDBeef 冲突,根本用不了,详见 https://code.google.com/p/deadbeef-mpri ... tail?id=11
因为你强行用的老的glib库编译, 编译能成功没错
但是运行的时候两个旧的thread指令系统不认, 就给你弄崩溃了
按照我的方法用git版
并修改成新指令后就OK了, 我这里运行一切正常
你说的有道理, 还是继续等作者debug吧...唉
Archlinux
Google Chrome
ZSH
fcitx
rtorrent
mpd
aria2c
mplayer
vim
回复