Scratch 软件点击 sound 的控件就关闭软件

scratch 软件点击 sound 的控件就关闭软件。

scratch 在打开以后,如果点击一个“sound”里面的任何一个控件,然后双击,scratch 就会关闭

scratch 哪装的。

打开下面的链接,出现一个搜索框,在里面输入 scratch,有一键安装的位置。安装以后你可以验证是否有我发现的问题。
software.opensuse.org/123/en

home:scratchduino

这个人的个人源对吧。

这我就外行了,我搜到的 scratch 和安装如下


我装了一下,终端运行错误输出是这个:

scratch
Executing: /usr/lib64/squeak/4.0.3-2202/squeakvm -encoding UTF-8 -vm-display-x11 -xshm -plugins /usr/lib64/scratch/Plugins/:/usr/lib64/squeak/4.0.3-2202/ -vm-sound-pulse /usr/share/scratch/Scratch.image 
/usr/lib64/scratch/Plugins//so.UnicodePlugin: undefined symbol: pango_font_description_from_string

Segmentation fault

10557976 ] in SoundPlayer class>playLoop
10546776 Semaphore>critical:
10546684 SoundPlayer class>playLoop
10557672 ] in SoundPlayer class>startPlayerProcessBufferSize:rate:stereo:
10557764 ] in BlockContext>newProcess
[1]    13506 abort      scratch

搜了下 “scratch sound segment fault”,原因是因为 pluse audio 插件,也就是这个:-vm-sound-pulse

解决方案在这里:http://bugs.squeak.org/view.php?id=7701

已知故障修复于 2012-08-08。而这个软件包最后更新时间是 2013 年 1 月。所以按理已经包含了该修复。

由于它是 home 个人源,你要去发邮件问这个人:Home of scratchduino - openSUSE Build Service

看上去这就是官方开发者。因为用户名和项目名是一个。

另外你可以试试安装 Education 源里的版本:

download.opensuse.org/repositories/Education/openSUSE_12.3/

这样不成功就可以去 openSUSE 报 bug 让 openSUSE 维护者去管了。

我按照学姐的方式安装,运行不成功。我担心是原来安装的部分影响所致,所以卸载后在学姐给的源中下载重新安装。结果提示仍然如下

hu@linux-k5qc:~> scratch
find: `/usr/lib/squeak/': No such file or directory
Executing: /usr/lib/squeak//squeakvm -encoding UTF-8 -vm-display-x11 -xshm -plugins /usr/lib/scratch/Plugins/:/usr/lib/squeak// -vm-sound-pulse /usr/lib/scratch/Scratch.image 
/usr/bin/scratch: line 97: /usr/lib/squeak//squeakvm: No such file or directory

到/usr/lib下找,没有找到squeak。
我也不知道原来一键安装用的是哪个源,等我卸载以后,重新添加源,然后再重新安装吧

我重新下载并查看了我的1 click install的文件,找到了安装源,现在更新安装源。用yast安装以后得到的结果仍然是我前面的帖子的内容

hu@linux-k5qc:~> scratch
find: `/usr/lib/squeak/': No such file or directory
Executing: /usr/lib/squeak//squeakvm -encoding UTF-8 -vm-display-x11 -xshm -plugins /usr/lib/scratch/Plugins/:/usr/lib/squeak// -vm-sound-pulse /usr/lib/scratch/Scratch.image 
/usr/bin/scratch: line 97: /usr/lib/squeak//squeakvm: No such file or directory

software.opensuse.org/package/squeak-vm

用 X11:Sugar 源里的。

这个源里面没有 64 位的安装。很遗憾。

  1. 下 12.2 的,然后 sudo rpm -ivh --force *.rpm

  2. 下载 srpm,然后安装 build 软件包后自己 rpmbuild --rebuild *.srpm。学习下很简单。

  3. 还用你最初的那个个人源里提供的:

download.opensuse.org/repositories/home:/scratchduino/openSUSE_12.3/

只是 scratch 不用那里的。

scratch 编译时不依赖 squeak-vm,所以装一个就行。

但现在已经不是你问题的实质了。你问题的实质在于 scratchduino 源里为啥没有一个已修复 bug 的更新,返回去看 6 楼,我早就说过了,给那个人发邮件。因为对自己英文不自信就让别人回远超出一封邮件的内容,从最早想解决的事上越偏越远,换我会觉得这选择不太明智。不过按照你这个回帖频率我依然可以回你,但从为你考虑的角度我觉得这样的选择太没有效率。因为到最后即使你装上了 Education 源里的,想让该包的官方维护者帮你和上游开发者 (就是 scratchdunio 本人)沟通,在 bugzilla 里你依然要说英文的。

感谢 marguerite,在这里让我感受到开源社区的气氛。互助、无私、坦诚。而且我看来玛格学姐另一个回复(关于 email 客户端,建议 mutt)后,我更加感受到这样的气氛。我会尽快按照 marguerite 的建议写 mail 联系开发者。谢谢你的指点。

我已经发了邮件:
mikhirev@mezon.ru
Date: Tuesday 10:55:23 PM
hello Dmitry Mikhirev:

 Thank you for work in the building scratch. I installed scratch from yast 

into my opensuse 12.3(Acer aspire 4743ZG).

 I find a bug. when I open scratch from shell and click on the "Sound" -> 

“play sound meow”,the scratch will exit immediatly.

The following is the message when I open scratch from shell:

Executing: /usr/lib64/squeak/4.0.3-2202/squeakvm -encoding UTF-8 -vm-display-
x11 -xshm -plugins /usr/lib64/scratch/Plugins/:/usr/lib64/squeak/4.0.3-2202/ -
vm-sound-pulse /usr/share/scratch/Scratch.image
/usr/lib64/scratch/Plugins//so.UnicodePlugin: undefined symbol:
pango_font_description_from_string

The following is the message when I click “Sound” -> “play sound meow”:

Segmentation fault

10562092 ] in SoundPlayer class>playLoop
10550892 Semaphore>critical:
10550800 SoundPlayer class>playLoop
10561788 ] in SoundPlayer class>startPlayerProcessBufferSize:rate:stereo:
10561880 ] in BlockContext>newProcess
Aborted

Thank you for your attention. I hope the bug can be solved recently, and I can
introduce the great software to my little friend.

等待修改中。。。。。。

抱歉,我觉得他很可能不会回你。

因为你干了一件让人反感的事,就是往私人信箱里面报 bug,bug 永远属于 bugzilla。

我觉得我 6 楼里已经说明白了,然后 11 楼又强调了一遍,现在的问题不是有 bug,而是这 bug 修了但是为什么源里的版本没有,是个打包问题,也可能预兆着一个新 bug,但你没有 debug 的确凿证据证明它是 bug(即使有,bug 依然属于 bugzilla),那么你就要伪装成业余打包者以取经的态度去询问下他为什么你打的包没有捏,类似于打包者互相交流的邮件,这样比较容易得到回复,甚至引起他的不安,我槽是不是有 bug,他会反过来追问你。

信誓旦旦明目张胆的私信去说「喂,你这玩意有 bug」等同于说「你丫脑残吗」。那我心情好回 po 你一个我在这个帖子里 po 过的 bugzilla 链接告诉你「老子早解决了」,心情不好直接就 delete 了。

这是我的一些经验。你看你要不要续一封过去 clarify 一下吧。

内行的门道,谢谢。

我自己的新进展:

首先我从 http://www.soslug.org/wiki/installing_scratch_on_opensuse 里面按照提示,进行修改。结果发现这个帖子里面的参数 SCRATCH_SND_PLUGIN 已经不能用了。 但是从 /usr/bin/scratch 的文件里发现 /usr/lib/squeas 找不到,应该在 /usr/lib64 的文件里。我把 scratch 文件里的相关路径进行了修改,这样我就可以进入 scratch 了。

进入之后,我发现声音控件还是不能使用,只要一击就会退出。

从终端里的提示可以看出。问题还在 pulseaudio。我把 pulsedio 卸载了,不行。但是从 http://www.soslug.org/wiki/installing_scratch_on_opensuse 里面还有一个提示。不用 pulseaudio(多个网页提示不易修改的 bug),而是用 ALSA。改成了:
if pulseaudio --check 2>/dev/null ; then
VMOPTIONS="$VMOPTIONS -vm-sound-ALSA"
else
VMOPTIONS="$VMOPTIONS -vm-sound-pulse"
fi(判定条件倒过来了)

这个时候点击声音空间不再退出,但是也没有声音。
我觉得问题还在 http://www.soslug.org/wiki/installing_scratch_on_opensuse

在判定条件里面加上“SCRATCH_SND_PLUGIN=vm-sound-pulse”

if pulseaudio --check 2>/dev/null ; then
{VMOPTIONS="$VMOPTIONS -vm-sound-ALSA";SCRATCH_SND_PLUGIN=vm-sound-pulse}
else
VMOPTIONS="$VMOPTIONS -vm-sound-pulse"
fi

根据 http://blog.163.com/chfc2009@yeah/blog/static/13070563420108911235445/ 的提示,我增加了 modprobe snd-pcm-oss

到此为止,我可以听到 scratch 猫叫的声音,但是还不能录音。以后再说把。

搞不定 modprobe 的自动运行

在我自己的脚本目录里写了一个 huscratch 的文件

内容如下:
sudo /sbin/modprobe snd-pcm-oss
scratch

增加可执行属性后勉强能用。

至少比我之前是好了。

今天的年没有白过。

/etc/modprobe.d/99-local.conf。装闭源显卡驱动是去那里“禁止开源内核模块自动运行”,换位思考下。

/etc/modprobe.d/99-local.conf。装闭源显卡驱动是去那里“禁止开源内核模块自动运行”,换位思考下。

非常感谢 marguerite 新年的回复。你在新年里还在为大家答疑解难,辛苦了。

我按照你的提示,我进行了尝试,均以失败告终。

1、在 50-sound.conf 里面添加 modprobe snd-pcm-oss,不行。

2、在 99-local.conf 里面添加
(1) modprobe snd-pcm-oss 不行

(2) snd-pcm-oss 不行

(3)/sbin/modprobe snd-pcm-oss 不行

以上的选择均不能成功。或许我应该找一找 modprobe 的用法。今天告一段落。谢谢 marguerite。并祝所有的 opensuser 新年快乐!