nihui 发表于 2009-2-13 13:38:16

原帖由 haulm 于 2009-2-13 13:29 发表 http://www.linuxfans.org/bbs/images/common/back.gif

会不会因为是新的分包是错误的?mxd2本身没有什么特别依赖,就算用原来Qt4.3的组件也是能运行的。

给个 src.rpm ,在我这边重建一遍试试...

haulm 发表于 2009-2-13 13:48:23

http://ftp.magiclinux.org.cn/haulm/Source/mxd2-0.2-1mgc.src.rpm
源码应该没有问题,主要是Qt4.5的打包可能有问题,我没时间,要等到晚上12点才能看看,你帮我找出BUG直接改进我的目录中吧。

nihui 发表于 2009-2-13 15:30:54

原帖由 haulm 于 2009-2-13 13:48 发表 http://www.linuxfans.org/bbs/images/common/back.gif
http://ftp.magiclinux.org.cn/haulm/Source/mxd2-0.2-1mgc.src.rpm
源码应该没有问题,主要是Qt4.5的打包可能有问题,我没时间,要等到晚上12点才能看看,你帮我找出BUG直接改进我的目录中吧。 ...

我稍微改了一下....
已经可以运行了。


--- mxd.cpp.orig        2009-02-08 08:04:26.000000000 +0000
+++ mxd.cpp        2009-02-13 15:27:56.000000000 +0000
@@ -12,9 +12,11 @@
                }
         FILE *in=NULL;
        char sl;
+        const char *a="",*b="";
        in=fopen("/etc/ppp/pap-secrets","r");
        if(in==NULL){printf("can't open the /etc/ppp/pap-secrets");}       
-        const char *a="",*b="";
+        else
+        {                                                // read the config only when the file can be accessed.
        while(fgets(sl,128,in))
        {
                if(strstr(sl,"mxd_connect"))
@@ -40,6 +42,7 @@
         strcpy(sldns,strtok(sldns,"nameserver "));
         dns=sldns;
         fclose(getdns);                                        //读取用户及密码
+        }
        QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
         setMinimumSize(260,140);
        setMaximumSize(260,140);

nihui 发表于 2009-2-13 15:41:16

rpm 包更新
四个包全是用 gcc3 和旧版 glibc 编译的,能直接装在 2.1final 上~

qt4-core-4.5.0-0.rc1.4mgc.i686.rpm
qt4-gui-4.5.0-0.rc1.4mgc.i686.rpm
qt4-chinese-4.5.0-0.rc1.4mgc.i686.rpm
mxd2-0.2a-1mgc.i686.rpm

haulm 发表于 2009-2-14 05:19:53

谢谢nihui兄所做的努力,但是mxd2的确没有代码上的错误,主要是mxd2的打包存在一些个问题,首先看一下在初装MGC2.1-2046后直接安装mxd2的状况,的确出错,但已经给出错误判断can't find the file /etc/ppp/resolv.conf。

rpm -ivh qt4-chinese-4.5.0-rc1.3mgc.i686.rpm qt4-core-4.5.0-rc1.3mgc.i686.rpm qt4-gui-4.5.0-rc1.3mgc.i686.rpm
Preparing...                                                          ###########################################
   1:qt4-core                                                         ########################################### [ 33%]
   2:qt4-chinese                                                      ########################################### [ 67%]
   3:qt4-gui                                                          ###########################################
# /opt/mxd/mxd
can't find the file /etc/ppp/resolv.conf
# touch /etc/ppp/resolv.conf
# /opt/mxd/mxd
Deleting all exist defaultroute ....
. Connected!

所以你做出的补丁还是去掉吧,需要在mxd2的rpm打包的%post项增加一句脚本
if (! [ -f /etc/ppp/resolv.conf ]); thentouch /etc/ppp/resolv.conf; fi
mxd2已经重新打包,Qt4.5不准备使用GCC3编译的版本,因为mxd2是由我唯护的,我是不会继续在GCC3的环境下编译软件,也希望MGC3能尽早亮相。

haulm 发表于 2009-2-14 09:20:36

根据兄台们的建议,现在的mxd2自动拔号,只要一个mxd2实例退出就自动断开,问题是如果没有配置正确,比如第一次打开mxd2它会等待pppoe拔号失败后才能双击显示界面。我本来是想用参数调用来实现区分,但C函数getopt似乎无法在main()主函数中进行有效调用,所以还要查点资料,不知道se兄长期应用Qt3编程是否给点这方面的指导。

haulm 发表于 2009-2-14 23:01:13

我觉得自动拔号还是不错的,不过如果要实现自动拔号可能要增加新的配置文件来定义运行,一些配置也可以写入临时配置文件。我曾经尝试过struct myclass::sturctvar run(var);这样的反回结构数据的函数来实现多值返回,可是最后调试运行出错提示看不懂错在哪了,一时找不到解决之道。而用getoptC函数从参数判断进行的一些工作却无法直接在main()主函数中限制pppoestart()拔号函数,这方面的资料搜索网络没有现成的例子(指的是Qt4)。

haulm 发表于 2009-2-16 12:35:52

旧的没有了,新的给你吧,到我的空间的source目录中找找吧,新的mxd2实现了参数,如果执行mxd up则软件一打开就拔号了,你用kwrite以utf8编码方式打开修改/usr/share/applications/mxd.desktop增加参数up。

Categories=Application;Network;
Comment=MXD 拔号器
Comment=MXD 拔号器
Exec[$e]=/opt/mxd/mxd up
GenericName=MXD 拔号器
GenericName=MXD 拔号器
Icon=ktalkd
MimeType=
Name=mxd
Path[$e]=
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-DCOP-ServiceType=
X-KDE-SubstituteUID=false
X-KDE-Username=

haulm 发表于 2009-2-17 01:25:06

原帖由 atang520 于 2009-2-16 17:48 发表 http://www.linuxfans.org/bbs/images/common/back.gif


这不太方便。原来的mxd加参数比较好。
32367
还不是一样的。。。

haulm 发表于 2009-2-26 01:07:08

把软件界面中的几个界面文字改回英文,然后翻译成中文,结果捣腾了半天才知道程序中最好给出翻译资源的绝对路径,否则只有在./×××如此执行时方才加载得到。
页: 1 [2]
查看完整版本: 关于MXD2 拔号器,大家可以给点建议