QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: 无双TM

最新的E17截图

[复制链接]
发表于 2006-4-20 10:46:18 | 显示全部楼层
不会吧,这也太夸张了,stdlib.h是系统的根啊

再说其他的都可以编译,就是这个不能编译



奇了怪了
回复

使用道具 举报

 楼主| 发表于 2006-4-21 11:35:31 | 显示全部楼层
我的脚本 你试试看
或是直接在 edje目录下直接运行 autogen.sh; make
看出错情况

你的这种错误基本上不会有吧 除非在autogen.sh里面出了什么问题或是make中前面已经出现了什么问题

[code:1]
#!/usr/bin/perl
#
use strict;
use FileHandle;

my  $autobuilddir   = 1;    #   if true,then auto build all directory
my  $autobuild       = 1;   #   if true,auto build all packages in a directory
my  $autocvs        = 0;    #   if true, auto download source code from CVS
my  $usedeb       = 0;            #   if true, will create deb and install deb package,else use "make install" to install
my @e17objs =(
                ['e17/libs','../..',
                'eet',
                'evas',
                'ecore',
                'embryo',
                'edje'
                ],
                ['e17/apps','../..',
                'e'
                ],
             );
my @eflobjs =(
                ['e17/libs','../..',
                'eet',
                'edb',
                'evas',
                'ecore',
                'embryo',
                'imlib2',
                'edje',
                'epeg',
                'epsilon',
                'esmart',
                'emotion',#        (note that you'll need to have xine-lib installed as emotion uses it)
                'engrave',#        (this is currently needed for e_utils only)
                'ewl',        #        (this is needed for some apps only)
                'etox'
                ],
                ['e17/proto','../..',
                'etk'         #        (this is needed for some apps only)
                ],
                ['e17/apps','../..',
                'e',
                'entice',        #         (image viewer)
                'entrance',#         (login manager)
                'eclair',        #         (media player)
                'elicit'         #         (color picker/screen magnifier)
                ],
                ['misc','..',
                'engage',        #         (standalone dockbar and E17 module)
                'erss',        #         (RSS feed application that does not work correctly in E17)
                'embrace' #         (mail checker and E17 module)
                ],
                ['misc','..',
                'entropy',#         (file manager)
                'exhibit'        #         (image viwer)
                ],
                );

my  $fd_build     = new FileHandle ">build.log";
my  $fd_screen  = new FileHandle ">screen.log";

check_debbuildenv();    # if you don't want to build deb package, comment this line
get_cvs()       if($autocvs);
do_install(@e17objs);

close($fd_build);
close($fd_screen);


sub do_install(){
        my @compileobjs = @_;
        log_screen("\n\nstart build debian packages\n\n");
        my $objs;
        foreach $objs (@compileobjs){
                my   @objarray   = @$objs;
                my   $dir       = shift(@objarray);
                my   $back_dir   = shift(@objarray);
                if( ! -d $dir ){
                        log_screen("dir:$dir not exist,will skip compile it\n");
                        next;
                }
                next if( (!$autobuilddir)
                                && (!choseact("are you want to build dir:$dir\n")) );

                log_screen("start parse:<<<<<   $dir  >>>>>: back:$back_dir\n");
                chdir $dir;
                system('rm -f *.deb *.dsc *.tar.gz *.changes');

                my   $subdir;
                foreach $subdir (@objarray){
                        if( !(-d $subdir) ){
                                log_screen("dir:$subdir not exist,skip compile it\n");
                                next;
                        }
                        chdir($subdir);
                        while( parsedir($subdir) ){}
                        $fd_build->autoflush(1);
                        log_screen("\n");
                        chdir("../");
                        system('rm -f *.dsc *.tar.gz *.changes');
                }
                chdir $back_dir;
        }
}




sub parsedir()
{
        my $pkg   = $_[0];
        log_screen("\n\nenter directory:".$pkg."\n");
        return 0 if((!$autobuild) && (!choseact("are you want to build:$pkg\n")) );
        my $curpwd   = qx(pwd);
        chomp($curpwd);

        $fd_build->autoflush(0);
        log_screen("\tcur dir is:\n\t$curpwd\n");
        log_screen("\trun:   dpkg-buildpackage -us -uc -rfakeroot 2>&1\n");

        chmod 755,'debian/rules' if(! -x 'debian/rules');
        chmod 755,'autogen.sh' if(! -x 'autogen.sh');
        system("make distclean >/dev/null 2>&1");

        if(!$usedeb){
#if you don't use deb,then you can call these line
                run_cmd('./autogen.sh --prefix=/usr');
                run_cmd('make');
                run_cmd('make uninstall');
                run_cmd('make install');
                return ;
        }

        system('cp debian/changelog.in debian/changelog >/dev/null 2>&1') if(! -f 'debian/changelog');

        open(MAKEFI,"dpkg-buildpackage -us -uc -rfakeroot 2>&1|") || die "exec fail\n";
        log_screen( 'dpkg-buildpackage -us -uc -rfakeroot 2>&1'."\n");

        my @pkgs;
        my $line;
        while($line=<MAKEFI>){
                my $notlog   = 1;
                if($line=~m/\berror\b/i){
                        if($line!~m/dpkg-genchanges:\s+error:\s+cannot\s+open\s+\.dsc/){
                                $notlog = 0;
                                log_screen($line);
                        }
                }
                log_build( $line) if($notlog);

                if($line=~m/\bUnmet\s+build\s+dependencies\b/i){
                        log_screen($line);
                        log_screen("are you want to install missing dependence then rebuild this package or skip build this package(default:skip)\n");
                        log_screen("press n to skip,else you press 'Y' after finish install missing packages\n");
                        return choseact("") ;
                }
                next if($line!~m/dpkg-deb:\s+building\s+package\s+\`([^']+)\'\s+in\s+\`([^']+)\'/);

                log_screen("\tpkg:[$1:\t$2]\n");
                push(@pkgs,$2);
        }
        close(MAKEFI);

        if($#pkgs < 0){
                log_screen("error no package found,build message is write to build.log file\n");
        }
        else{
                my $pkgfile = join(" ",@pkgs);
                log_screen( "\n>>>>>>>>>\n\tdpkg -i $pkgfile\n\n");
                run_cmd("dpkg -i $pkgfile");
        }
        log_screen("\n");
        return 0;
}





#
#   choose user select
#
sub choseact()
{
        log_screen( $_[0]."\nplease input yes or no [Y]\n");
        my $in=<STDIN>;
        if($in=~m/n/i){
                log_screen( "cancel\n");
                return 0;
        }
        log_screen( "\n");
        return 1;
}


#
#   downlaod E17 source code from CVS
#
sub get_cvs()
{
        print   "get CVS source code\n";
        print   "login CVS:,when need you input password,press return directly\n";
        print   'cvs -d:pserver:[email protected]:/cvsroot/enlightenment login'."\n";
        system('cvs -d:pserver:[email protected]:/cvsroot/enlightenment login');
        print   'chech out E17:'."\n";
        print   'cvs -z3 -d:pserver:[email protected]:/cvsroot/enlightenment co e17'."\n";
        system('cvs -z3 -d:pserver:[email protected]:/cvsroot/enlightenment co e17');
        print   'chech out Misc:'."\n";
        print   'cvs -z3 -d:pserver:[email protected]:/cvsroot/enlightenment co misc'."\n";
        system('cvs -z3 -d:pserver:[email protected]:/cvsroot/enlightenment co misc');
}

#
#   check debian build env
#
sub check_debbuildenv()
{
        my @pkglist = qx(dpkg --get-selections);
        my $lines   = join(':',@pkglist);

        check_pkg($lines,"autoconf",1);
        check_pkg($lines,"automake",1,"(version >=1.7)");
        check_pkg($lines,"libtool",1);
        check_pkg($lines,"pkg-config",1);

        if($usedeb){
                check_pkg($lines,"fakeroot",1);
                check_pkg($lines,"dpkg-dev",1);
        }

        check_pkg($lines,"libxcursor-dev",0,"(it may need by ecore,if link ecore fail, please install it)");

        log_screen("if you use xorg,then build script report xlibs-dev not install, you need to modify the {directory}/debian/control file, change xlibs-dev to libx11-dev\n");
}
sub check_pkg()
{
        my  ($pkglists,$pkgname,$exitmode,$version)=@_;
        my  $exit   = 0;
        $exit       = 1 if( $pkglists!~m/\b$pkgname[^:]*\s+install/);
        if( $exit ){
                log_screen("WARNNING: ") if(! $exitmode );
                log_screen("you don't install $pkgname, please use \n\tapt-get install $pkgname\n to install it.$version \n");
                die if( $exitmode );
        }
}



#
#   run a command,and log command output to screen.log
#
sub run_cmd()
{
        my $cmd   = $_[0];
        my $fd;
        open($fd,"$cmd 2>&1 |");
        if( ! $fd ){
                log_screen("exec $cmd fail,check if this command exist\n");
                die;
        }
        my $line;
        while($line=<$fd>){
                log_screen($line);
        }
}

#
#   log screen output
#
sub log_screen()
{
        print   @_;
        print   $fd_screen @_;
        log_build(@_);
}

#
#   log build result to build.log
#
sub log_build()
{
        print   $fd_build @_;
}
[/code:1]
回复

使用道具 举报

发表于 2006-4-21 14:23:16 | 显示全部楼层
我尝试直接emerge libc6

都可以报错,说是没有安装或者版本太低的gcc

cao!
回复

使用道具 举报

 楼主| 发表于 2006-4-21 16:56:32 | 显示全部楼层
不会吧  
不过现在gcc默认好像是要3.4的

3.3的可能不支持了
回复

使用道具 举报

发表于 2006-4-21 22:38:54 | 显示全部楼层
不想了,过段时间忙完了把系统重新装一次

有了上一次的经验

这一次可以少走很多弯路

再次告诫大家:不要安装太多不稳定的包
回复

使用道具 举报

 楼主| 发表于 2006-4-23 12:21:05 | 显示全部楼层
我一般是过一段时间后会重装一次系统 如内核或是其它重要的包修改的比较多的时候 或是觉得系统不够稳定了
反正系统里面没有什么重要的东西 常用的脚本和文件等都放在其它分区上
另外debian重装也方便 debootstrap一下就可以了

最新的E17 start模块放出来了 E17里面的基本模块是放在一个栏上面 这个栏会一直在最前 但是没有办法隐藏它
看来是还没有改好

另外修改了一下border的大小没有修改成功
回复

使用道具 举报

 楼主| 发表于 2006-4-23 13:48:56 | 显示全部楼层
最新版本的E17下面的停靠栏位置不可以改变 (难道是模仿最新的mac?? )
但是在其它程序全屏时这个停靠栏会在后面(运行了一下星际没问题,看来比fcitx好多了 )

恢复engage滚轮切换应用程序的方法
现在E17中滚轮时会切换桌面
而engage中也定义了在一个图标上滚轮时在这个程序的多个窗口间切换的功能
这两个事件只能用一个

如果你喜欢用enagage的事件处理 那可以这样操作
1得到当前滚轮事件的处理者
enlightenment_remote -binding-wheel-lenlightenment_remote -binding-wheel-list | grep CONTEXT=CONTAINER >wheel.sh
这时文件wheel.sh内容如下
REPLY <- BEGIN
REPLY: BINDING CONTEXT=CONTAINER DIRECTION=0 Z=-1 MODIFIERS=NONE ANY_MOD=1 ACTION="desk_linear_flip_by" PARAMS="-1"
REPLY: BINDING CONTEXT=CONTAINER DIRECTION=1 Z=-1 MODIFIERS=NONE ANY_MOD=1 ACTION="desk_linear_flip_by" PARAMS="-1"
REPLY: BINDING CONTEXT=CONTAINER DIRECTION=0 Z=1 MODIFIERS=NONE ANY_MOD=1 ACTION="desk_linear_flip_by" PARAMS="1"
REPLY: BINDING CONTEXT=CONTAINER DIRECTION=1 Z=1 MODIFIERS=NONE ANY_MOD=1 ACTION="desk_linear_flip_by" PARAMS="1"
REPLY: BINDING CONTEXT=CONTAINER DIRECTION=1 Z=-1 MODIFIERS=ALT ANY_MOD=0 ACTION="desk_linear_flip_by" PARAMS="-1"
REPLY: BINDING CONTEXT=CONTAINER DIRECTION=0 Z=1 MODIFIERS=ALT ANY_MOD=0 ACTION="desk_linear_flip_by" PARAMS="1"
REPLY: BINDING CONTEXT=CONTAINER DIRECTION=1 Z=1 MODIFIERS=ALT ANY_MOD=0 ACTION="desk_linear_flip_by" PARAMS="1"
REPLY <- END


2 编辑wheel.sh,删除这些事件
vi -g wheel.sh
先把REPLY->BEGIN与REPLY->end去掉  然后
:%s/\w\+=//genlightenment_remote -binding-wheel-del  CONTAINER 0 -1 NONE 1 "desk_linear_flip_by" "-1"
enlightenment_remote -binding-wheel-del  CONTAINER 0 1 NONE 1 "desk_linear_flip_by" "1"
enlightenment_remote -binding-wheel-del  CONTAINER 1 1 NONE 1 "desk_linear_flip_by" "1"
enlightenment_remote -binding-wheel-del  CONTAINER 0 -1 ALT 0 "desk_linear_flip_by" "-1"
enlightenment_remote -binding-wheel-del  CONTAINER 1 -1 ALT 0 "desk_linear_flip_by" "-1"
enlightenment_remote -binding-wheel-del  CONTAINER 0 1 ALT 0 "desk_linear_flip_by" "1"
enlightenment_remote -binding-wheel-del  CONTAINER 1 1 ALT 0 "desk_linear_flip_by" "1

执行一下就可以
sh wheel.sh
这时engage的滚轮功能应该就可以用了
:%s/^R.\{-1,}G/enlightenment_remote -binding-wheel-del  /g
这时文件内容应该如下
回复

使用道具 举报

发表于 2006-4-24 00:23:50 | 显示全部楼层
事件可以用erme设置,还是比较强大的。
啥时候把engage也提前就好了。
回复

使用道具 举报

 楼主| 发表于 2006-4-24 12:03:31 | 显示全部楼层
现在是只有放在那个面板里面的内容才可以提前
我也希望engage或是每个module都可以设置是不是要提前 这样就方便了
回复

使用道具 举报

发表于 2006-4-24 14:07:25 | 显示全部楼层
我更新了一下e17,还是没有systray的模块。
现在的systray怎么处理的?仍然用engage的?

也许能通过edc代码,把其它的模块swallow到那个面板里
有空看看它的edc是怎么写的
回复

使用道具 举报

 楼主| 发表于 2006-4-24 17:44:32 | 显示全部楼层
现在的theme好像改的比较多

systray的问题 你在module里面enable它了吗?

我因为使用engage的systray没试过systray模块 (这两个好像有冲突, 如果engage的tray功能使用后 systray捕不到图标 一个多月前试过是这样子 后面engage的tray功能改善了后就一直用engage的了)
回复

使用道具 举报

发表于 2006-4-24 22:59:01 | 显示全部楼层
现在有systray模块了?
我的怎么没有,属于哪个部分的?
回复

使用道具 举报

 楼主| 发表于 2006-4-25 12:52:18 | 显示全部楼层
engage里面的还是E里面的

E里面的叫itray
engage里面是有systray功能的
打开d4x或是gaim时会在engage的右方有个小图标
回复

使用道具 举报

发表于 2006-4-25 13:43:05 | 显示全部楼层
我说的是e里的itray,不是已经不再支持了么?
回复

使用道具 举报

发表于 2006-4-26 11:26:48 | 显示全部楼层
为什么我编译安装后,没有文件管理器
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-4-28 00:40 , Processed in 0.121306 second(s), 12 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表