
$ gsettings set \ org.gnome.desktop.interface gtk-color-scheme ' os_chrome_fg_color:black; os_chrome_bg_color:#FED; os_chrome_selected_fg_color:black; os_chrome_selected_bg_color:#f5a089; selected_fg_color:white; selected_bg_color:#c50039; theme_selected_fg_color:black; theme_selected_bg_color:#c50039; tooltip_fg_color:black; tooltip_bg_color:#FFC; '
# Add a system group for Skype addgroup --system skype # Override permissions of skype (assuming Debian package!) dpkg-statoverride --update --add root skype 2755 `which skype`
iptables -I OUTPUT -p tcp -m owner --gid-owner skype \
-m multiport ! --dports 80,443 -j REJECT
iptables -I OUTPUT -p udp -m owner --gid-owner skype -j REJECT
They allow outgoing connections by Skype only on ports 80 and 443, which
supposedly do not trigger the firewall (in fact, this filter is recommended
by our network administration for Skype).which I've put just after the conntrack default module, as 05_skype.py""" Skype restriction to avoid firewall block. Raw iptables commands. """ iptables(Firewall.output, "-p tcp -m owner --gid-owner skype -m multiport ! --dports 80,443 -j %s" % Firewall.reject) iptables(Firewall.output, "-p udp -m owner --gid-owner skype -j %s" % Firewall.reject)
!?reverse-depends(~i) ~M !?essentialIt will display only packages with no direct dependency from another installed package and that are marked as automatically installed (so they must be kept installed because of a weaker dependency.
~i !~M ?reverse-depends(~i) !?essentialThis will catch "installed but not automatically installed packages, that another installed package depends on". Note that you should not blindly put all of these to "automatic" mode. For example "logrotate" depends on "cron | anacron | fcron". If you have both cron and anacron installed, aptitude will consider anacron to be unnecessary (it is - on a system with 24h uptime). So review this list, and see what happens when you set packages to "A", and reconsider your intentions. If it is a software you want for sure, leave it on manual.
from gi.repository import Gio
s = Gio.Settings.new("org.gnome.libgnomekbd.keyboard")
s.set_strv("layouts", ["de"])
There is a social issue with Debian that attacks OSS projects _because_ they use the GPL. Please do not follow these attacks without asking a lawyer.
Does anyone know how to setup a partial subversion mirror?
Essentially we have a source code tree, containing various subdirectories,
including doc, test, src/tld/domain and
src/experimentalcode/usernames.
We'd like to allow public access to the main source subtree, while not exposing
the various user directories to the web server (the master subversion is
separate anyway; since I want to use Trac I need a local SVN copy!)
I'm currently trying to setup "tailor" to do this, but it is not trivial: it seems easy at first to just ignore any change in a particular folder. But when you encounter "move" aka "rename" operations that rename a file from the non-exposed folder to the exposed folder, they will obviously fail on the "stripped" repository. So they need to be mapped to an "add" operation there!
Any hints? I might have it working using some hacks in tailor, but I'd like to know any simple solution, if there is any ...
Dear Gnome people. Is there a reliable way to right-attach panel applets? May laptop screen and my external monitor have different resolutions, and I havn't found a reliable way (except making two panels) of getting some of my applets to stick to the right. I usually keep my launchers on the left, while vairous system status icons on the right part. But when switching to a higher resolution, at most one will move to the right end of the panel at the new resolition, while the others just stay in place (i.e. left-attached at a given pixel position).
There are so many smart layout managers, GTK pretty much always uses flexible layout managers, why is the Gnome panel relying pixel offsets?
It has been suggested to me a couple of times that I could achieve this via gconf. However, since the gconf changes are not reflected at runtime but frequently overwritten I did not get this to work reliably even just for two applets.
Thank you. If you have any comments, please email me via erich () debian org.
On a side note, this is also the first true post to my new blog. :-)
I use the following python script to choose a random background on login:
#!/usr/bin/python
import os, os.path, random, gconf
startdir="PUT YOUR FOLDER HERE"
gkey="/desktop/gnome/background/picture_filename"
imgs=[]
for root, dirs, files in os.walk(startdir):
for file in files:
base, ext = os.path.splitext(file)
if ext.lower() in [".jpg", ".png", ".svg"]:
imgs.append(os.path.join(root, file))
img = random.choice(imgs)
gconf.client_get_default().set_string(gkey, img)
It's fairly simple, but shows the power of the python libraries. It "walks" the directory tree, collects all files of the given extensions, chooses one at random, then updates the gconf key for the Gnome background image.
P.S. Yes, I know a couple of ways to do that in a shell script, too. However, then one I used failed with whitespace in file names, so I decided to rewrite it in a much more sane language ... the random involved was also a hack.
The sysvinit version that hit unstable today has a grave bug if you have been running "startpar" or maybe "shell" style parallel booting. Read this bug report, if you have been using these (they were not enabled by default, so unless you've been giving parallel boot a try before, you should be ok.)
How to check if you are affected:
grep CONCURRENCY /etc/default/rcS
If this command says "startpar", then you ARE affected. If it says "shell" you MIGHT be affected. If you have not set CONCURRENCY or if it's "none" or "makefile", then you should be ok (according to the bug).
The workaround is as simple: just put either "none" or "makefile" in there, these are the only two values that are still distinct.
How to recover a broken system:
You should have a working system again.
I can only confirm that changing "startpar" to "none" helped me. I havn't tried "makefile" yet, and "none" seemed more likely to fix things.
Unless someone drops in as new maintainer, I'll file for removal of ModLogAn from Debian soon.
The software has been abandoned upstream for, well, a couple of years. It still works okayish (just the patterns need refreshing), and in fact I'm still running it. But there is plenty of software to replace it, and it seems as if many people go the Google Analytics way today.
Please speak up quickly if you care about ModLogAn, otherwise it's gone from Debian soon.
It seems that Sun doesn't care much about getting bugs fixed in Java.
This bug for example causes rendering artifacts in Apache Batik, and is very visible with many SVG files. It causes circles to be rendered as approximated diamonds. It has been reported 9 years ago (the first time, there duplicates).
I understand that there are both more important bugs, and that one must avoid introducing new bugs when fixing bugs. But there should be little dependencies on a broken circle rendering routine, so please just fix this cosmetic bug, too. One of the reports is even staged "Fix understood" ...
A more important issue with Sun Java (known since 2005) is this bug, which effectively breaks Java IPv4 networking on Debian unstable now (which recently changed the IPv6-to-IPv4 fallback behaviour). So far, Sun has rated this as "request for enhancement". WTF?
Sure, you can work around the bug easily - change /etc/sysctl.d/bindv6only.conf to use the value of 0 instead to re-enable IPv4 fallback - but after all, IPv4 networking is pretty much an essential Java feature.
is a great game, with a unique mixture of puzzles with mouse skills and action. If you know the discontinued game Oxyd originally on the Atari ST in the 90s (also on Amiga and one version on DOS), then you know the principle of Enigma. Except that it has tons of more levels and is Open Source.
Some weeks ago, I uploaded a 1.10 pre-release (approximately milestone 5) to Debian experimental. This is the soon-to-be-released new version, using a new level file format (with a much extended API to make level development even easier, ~50% less code per level now), new levels (of course), updated graphics (including support for new graphics modes), ...
Unstable still contains version 1.01; the reason is simple that I knew there would be another 1.01 maintainance release coming. However I believe it doesn't offer much against the current unstable version; it largely marks an upstream release containing patches already in the Debian package (since communication with upstream is really good).
So I have now two choices: refreshing the Debian unstable package to the "probably last" 1.01 release upstream, or going straight for the 1.10 milestones to give enigma some extra testing.
Somehow, I'm still lacking the optimal media player application. Many popular ones are totally overloaded (e.g. amarok). Others like totem seems to be just a minimalistic frontend for a particular backend.
My current choice:
However, there is one thing I'm really not satisfied with: when putting together a CD compilation for friends (say, as Christmas present), they are quite useless. A key issue here is the total playlist length. Guess what, I want to make sure it fits on a single CD. So I really need to know the total playlist length. Why do so many media players (e.g. totem, alsa-player-gtk, xfmedia4, vlc, mplayer, ...) not show you the total playlist length? They did read all the files to get artist and title. Many even have the individual song lengths, just not the total sum.
In the past I've been using old XMMS1 to check for the total length, or a CD burning application like K3B by repeatedly importing my current folder.
Right now, I'm using Quod Libet (since I like the tag-editing component exfalso a lot) to arrange the playlist. It also gives me the total length, albeit I belive I've had incorrect song lengths in it before (broken VBR files?), and it's not perfect, too: being database-driven it has really long startup times for occasional users (because of updating the database) and is much more heavyweight. I also believe I've lost some playlists because I had moved my files around once ... so I'm a bit sceptical.
Anyway, there are still hundreds of media players I havn't looked at. Don't bother me to send me an email about one I havn't mentioned!
But if you are developing a media player, please consider the use case of putting together a music CD for your friends. In particular, for users that do not use your player all day.
I'd like to make pyroman IPv6 capable. That is actually the one big thing before calling it a version "1.0".
I must admit that I havn't been very active on Pyroman (or Debian in general) the last years. This goes even so far as that "pyroman" was considered "abandoned" by Fedora or so. It is not; I use it on all my servers. It's still in use at the network I developed it for (after all there is not that much benefit for a workstation setup, where a 10 line iptables script will do the job just perfectly.).
Anyway, I'd like to get IPv6 support into pyroman, but there is one big issue here: I don't have any machine using IPv6, so I havn't used ip6tables myself yet, so I don't know about all the magic involved ...
So if you use IPv6, it would be very cool if someone would jump in to get full IPv6 support into pyroman. Madduck had already done some preliminary stuff, but I didn't get around to have a look at the integration or completeness yet.
The '--no-act' and '--print' modes of pyroman should even allow development without any IPv6 support or root permissions in the system.
Other things remaining on my pyroman wishlist:
These days, something happened to one of my external USB drives that I so far only knew from ReiserFS (which I since called ReisswolFS, German word play on "shredder" ...). But, it's not ext3 which I blame.
Short story what happened:
What I will do now:
As you can see, something was wrong with the system, not with the file system.
I have a strong suspect to have caused this. In case you wondered why I included "resumed from suspend" above: I've been having system stability issues with resume ever since upgrading to the Intel driver 2.9.0 and KMS (Debian unstable+testing) with kernels up to 2.6.31. In about 1 out of 5 resumes, I get a Xorg or system lockup after anything from 1 to 60 minutes. Sometimes I also experience video corruption after a few minutes, trashing some terminal emulation until the next redraw. Just before writing this email I had a typical lockup: when scrolling the terminal emulator. This has been a typical trigger for lockups. On contrast I havn't seen any such crashes (or screen corruption) on a fresh boot.
Freedesktop bug reporting the same issue closed as "not our bug, blame it on the kernel".
Note that 2.6.32 release candidate Changelog contain many changes for the intel DRI kernel driver. So the bug might already be fixed in the RC kernels.
Same report in Kernel Bugzilla is still 'NEW' though.
Related bug report in Debian, blaming it on KMS.
[Update: I've disabled KMS and upgraded to 2.6.32-rc8 and not had such a crash since. But I can't pinpoint it to one or the other yet.]
[Update: just tried another external harddisk ...
[305032.148616] EXT3-fs: mounted filesystem with ordered data mode. [305066.061708] usb 1-8.3.3: reset high speed USB device using ehci_hcd and address 27 [305081.132471] usb 1-8.3.3: device descriptor read/64, error -110 ... [305147.468857] sd 4:0:0:0: Device offlined - not ready after error recovery [305147.468880] sd 4:0:0:0: [sdb] Unhandled error code [305147.468886] sd 4:0:0:0: [sdb] Result: hostbyte=DID_ABORT driverbyte=DRIVER_OK ... [305147.473500] WARNING: at /build/buildd-linux-2.6_2.6.32~rc8-1~experimental.1-i386-g1b8iG/linux-2.6-2.6.32~rc8/debian/build/source_i386_none/fs/buffer.c:1159 mark_buffer_dirty+0x20/0x7a()
It seems as if the USB disk stack still doesn't really survive suspends? Let me try on a fresh boot later on.
Just a short reminder that the application phase for the Google Summer of Code 2009 is running.
So far, we have quite few applications. Deadline is April 3rd, 19:00 UTC. Usually applications arrive rather late, but still I have the impression that we have much less than the previous years. But less copy & paste, too.
If you are interested in doing a GSoC project at Debian:
I hope to see more applications - and good luck that we get enough slots for all of you!
P.S. as far as I can tell, current Debian Developers can be eligible as well, although it has also always been a goal of the project to get new contributors involved.

Congratulations to all developers (DDs or not, we have sponsored uploads, Debian contributors and such, too!) who contributed to the release of Debian GNU/Linux "lenny" 5.0. I must admit that I've been largely inactive recently, I just managed to keep the bugs on my remaining packages low. Funnily, just the day lenny was released I learned about a bug in Enigma on AMD64 that is probably worth fixing through proposed updates ...
... is almost as bad as ever before.
On my Core 1 Duo system (32 bit), official Adobe Flash crashes my browser when I close a tab which had a Flash plugin running. Going to a blank page then closing the tab usually helps, but it seems that sometimes Flash continues to run in the background (sound doesn't stop either) and then will still crash.
On my AMD64 system, the official Adobe plugin crashes my browser. There are reports at Adobe that link it to Gmail. So here, the Adobe flash is unusable. The 32 bit version via nspluginwrapper did not have sound for me, probably some issue with Pulseaudio.
So I'm now trying out Gnash. First thing I noticed: it has FlashBlock built in, all those stupid Flash things won't auto-run but I'll always have the nice play button to enable them when I want them to run. And while Gnash is working pretty well on most sites, every now and then something just does not work. Like some YouTube movies not playing (usually very short ones - maybe it will only start playing a video when the buffer was completely filled, and a video which is smaller than the buffer will thus not play?) etc.
Some wishlist items:
I know that the latter won't be easy, but isn't nspluginwrapper doing something like that?
Since it took me more than one hour to figure out (and the documentation wasn't too helpful), here's how to enumerate audio devices in GStreamer:
import gst
sink=gst.element_factory_make("pulsesink","mysink")
sink.probe_property_name("device")
devs = sink.probe_get_values_name("device")
Note that for some drivers (such as pulse) you explicitely need to call probe first, before you can get values. Also note that the ALSA module apparently only enumerates hardware devices, which probably is a bug in the module (according to Lennart's blog, you should use snd_device_name_hint which seems to be the only function to get all the ALSA devices, including software devices such as dmix or the pulse linking module).
Can anybody point me to a beginners tutorial for running PyGTK on OS X?
I've written this little BPM tap program in PyGTK, that gives you a speed plot and confidence interval, works well for me.
A friend of mine would like to use it, but is running OS X, and doesn't know much about computers. I know next to nothing about OS X. I know it already has Python2.5 installed, and that's about it.
So anyone got a tutorial that doesn't require previous knowlege about using fink, ports or whatever? Something that I can point a real novice user to?
Via email please, my blog intentionally doesn't have comments. Erich AT Debian DOT org.
[Update: so far, I've only had requests about my bpm toy and about the same kind of instructions, but no links to refer people to...]
Due to their implementation by erasure, they face certain limitations.
For example, the following constructor for a class with both compile time and runtime type checking:
class BagOf<T> {
BagOf(Class<T> restrictionClass);
}
is not satisfiable when T is a generic class itself (since there is no ArraySet<Double>.class syntax, for example). The best work-around I know is to drop the T subclassing restriction for restrictionClass:
class BagOf<T> {
BagOf(Class<?> restrictionClass);
}
The cost is low (obviously no difference at runtime) - you just don't assert that the developer using your class specifies a restriction class derived from the class T used in the generics. That won't prevent certain programming errors such as this anymore
BagOf<Integer> bar = BagOf<Integer>(Double.class)
but these shouldn't be too hard to find/fix anyway.
Before submitting too clever suggestions, please make sure you've tested them. For example "if (obj instanceof T)" is not valid java code: since generics are implemented by erasure, T cannot be referenced in runtime statements.
P.S. It would obviously be nice if the Java syntax would allow Foo<Bar>.class (which at runtime would be the same as Foo.class, and at complie time would have the result type Class<Foo<Bar>>), but currently it does not for all I know.
P.P.S. I'm not looking for "Class<? extends T>", that is a different situation. The difficult case is when T is a Generic itself, not a subclass.
Update: JM Ibanez pointed me to Neal Gafter's Super Type Tokens, which apparently are the same as TypeLiteral in Google Guice. Thanks!