Goodby Foresight

Little more than a year ago I posted about the bright future of foresight linux.
Well it looks like this won't happen any more.
Yesterday Michael announced our decision to bury (or at least it feels like this) foresight linux.
I've been involved in foresightlinux for ~ 10 years and it's hard when such a long period ends. I will miss foresight and the people that formed it.
Special Thanks to Ken Vandine who started that whole thing 10+ years ago.
Here is the announcement:

The Foresight Linux Council has determined that there has
been insufficient volunteer activity to sustain meaningful new
development of Foresight Linux. Faced with the need either to
update the project's physical infrastructure or cease operations,
we find no compelling reason to update the infrastructure.

Therefore, around the end of May, the following will be shut down:
* Software repositories (Foresight Linux and legacy rBuilder Online
  repositories)
* JIRA and Confluence servers
* Shared development infrastructure
* Mailing lists, including these lists

The foresightlinux.org domain will remain as an informal "alumni
association" for an indefinite amount of time, along with the
project IRC channels for as long as they are in use.

Volunteers to host read-only copies of the JIRA/Confluence
and/or mailing list archives should respond to
foresight-devel (at) lists.foresightlinux.org in the next few days,
while the lists are still operational.

Hosting the repositories in read-only mode would be non-trivial;
requiring approximately 2.5TB of storage; simply moving the data
would be a substantial task. Do not assume that the repository
contents will be retained.

The Foresight Linux Council would like to extend our thanks to the
Software Freedom Conservancy, our corporate home, for their support
of Foresight Linux and of software freedom generally. We would also
like to thank SAS Institute for providing physical infrastructure and
hosting for the past two and a half years, as well as for offering
to refresh the infrastructure. This decision to retire Foresight
Linux was entirely the council's.

To those of us who have been a part of this community for up
to ten years, this feels a little like a death. If you wish to
celebrate the life of this project, please discuss soon on the
foresight-devel (at) lists.foresightlinux.org list or on IRC on the
freenode.net #foresight-devel channel when and how to do so.

On behalf of the Foresight Linux Council,

Michael K Johnson

News from Xfce 4.12, part 3

A bunch of news from the development of Xfce 4.12 !
Since my previous post in november (read it !) , many things have happened.
First, the most awaited news ... wait for it... a date has been decided ! 4.12 will released by the last week end of February 2015 ! (yes, 1 week from now)

Now, I would like to draw your attention to a list of threads on the xfce4-dev mailist :

Core Apps :

xfce4-panel :

  • The intelligent panel hiding feature (see my previous post) has been released in 4.11.2 !

xfwm4 :

Oh wow, many commits, such features ! You can read the 4.11.3 announcement here

  • Add titleless maximization feature.
  • Client Side Decoration (CSD) support ! (Compositor need to be enabled). A screenshot with and without on gedit (an application that need CSD) CSD on xfwm4
  • Windows preview in alt+tab (Compositor need to be enabled too). Windows preview in alttab
  • Nice, right ? :)

xfce4-settings :

  • Release of 4.11.4
  • Add touchpad support with libinput (yes, already !)
  • Better monitor and multi monitor support
  • Add Gtk+ theme palettes in the appearance dialog (see screenshot)
  • Add previews for icon themes in appearance settings (see screenshot) Themes and icons preview

xfce4-session :

  • Bugfixes, bugfixes, bugfixes !
  • The "logind runtime detection to support suspend/hibernate" patch has been merged.
  • Release of 4.11.1

thunar :

  • Add support for the GTK 3 bookmarks file,
  • Bugfixes, support for binary file size units
  • Release of 1.6.4

gtk-xfce-engine :

xfce4-dev-tools :

  • Fixes, dependencies update etc
  • Release of 4.11.1

xfconf :

  • Not many exciting changes for this release, mostly translation updates, small fixes and code tweaks.. 4.11.0

Apps :

xfce4-screenshooter :

  • Support of imgur uploads ! Yes ! imgur upload
  • Release of 1.8.2 . Thank gaston !

xfce4-taskmanager :

  • Big cleanup of UI, with new treeview mode, general UI/graph overhaul and lot of bugfixes) xfce4-taskmanager
  • Release of 1.1.0 with all theses changes. Thanks gaston, ochosi and Cavalier

xfce4-power-manager :

Panel Plugins :

Some love for panel plugins, from Harald Judt and Landry Breuil, mostly build/bugfixes and translations updates :

As you can see, xfce development is more active than ever !
So be prepared to be amazed by 4.12 in a few weeks !

Sources :

News from xfce 4.12, part 2 !

Update 19/02/2015 : A new post is available !

Following my first post about the Xfce development status 4 months ago (you can (re) read it here), let's go for a bunch of reviews of the last commits.

A little clarifications about comments on my 1st post : I'm NOT a core xfce dev, I'm just a small contributor, who try to help as much as I can.

Note: You can see lots of screenshots about all theses news features on the xfce forum, in the What's New in Xfce topic from ToZ.

xfce4-power-manager :

  • A new xfce4-power-manager release (compatible with xfce 4.10), thanks to Eric Koegell and Simon Steinbeiss
  • Provide a better support of systemd and upower
  • Brightness plugin has been merged into the battery indicator plugin so a new plugin is born, "Power Manager plugin"
  • Some design changes, see screenshots
  • The roadmap to 1.5 : https://wiki.xfce.org/design/power-manager

xfdesktop :

  • Add a --next option to force wallpaper changes
  • Add a move to trash menu option
  • Add an --enable-debug option added to xfdesktop-settings
  • Add optional blurring on shadow on text of icons, see Screenshots

xfce4-panel :

  • Implementation of a intelligent auto-hide functionality by Jannis Pohlmann !
  • Whenever the active window changes or whenever the geometry of an already active window changes, the algorithm checks whether the active window and the panel overlap. If this is the case, the panel is hidden. Otherwise, it is made or remains visible.
  • A quick demo (only available in git version for now)

xfce4-session :

  • Add logind runtime detection to support suspend/hibernate
  • Support for upower 0.99
  • Add DragonflyBSD to host check

xfce4-settings :

  • Reapply settings when external keyboard connects
  • New display settings dialog
  • Add support for upower 0.99

Thunar :

  • Default application not respected with glib >= 2.4
  • Check for thumbnails in the location
  • Add appdata file
  • Add pkexec policy. This way if the user of a desktop system wants to use thunar to modify files as root and has the proper credentials they can.

Apps / Plugins :

  • Mousepad and Parole have been ported to gtk3 !
  • Partial rewrite of squeeze (Archive manager)
  • Multiples releases/bugfixes of xfce4-netload-plugin, xfce4-weather-plugin, xfce4-equake-plugin

Development Releases of core components :

Maintenances/New Releases (for xfce 4.10 ) :

Others :

  • A side note about light-locker, a simple session-locker for lightdm, which work really great with xfce :). If you want a nice and modern locker, try it !
  • Debian Jessie will use xfce 4.10 (as 4.12 is not ready on 5th November, the date of Debian Freeze)
  • If you are an ArchLinux user, and want to test the devel version of xfce, you can use my [xfce411] repo. NO WARRANTY, support or whatever ! Use it at your own risks. Read the README ;)
  • Last minute : A reorganisation of the team is running, to list our current force, identify weak spots (where we urgently need new contributors), welcome new members etc. See https://mail.xfce.org/pipermail/xfce4-dev/2014-November/030946.html for more informations !

Sources :

  • Thanks to ToZ on the xfce forum
  • The #xfce-dev IRC chan on Freenode, the best way to be involved in Xfce development
  • Xfce4 dev list

News from Xfce !

Update 19/11/2014 : A new post is available !

Some news from Xfce, my favourite Desktop Environment, that I use since something like 2006.

The development is relatively slow (the last stable version, 4.10 was released in April 2012). There is not so many developers, 1 or 2 "core" devs, and less than 10 contributors (who are generally distributions maintainers, from debian, xubuntu, gentoo, arch, thanks to them !).

There was a roadmap for 4.12, where it was planned to release 4.12 mid-2013. But, hey, it's open source, it will be out when "it will be ready" :-).

Some weeks ago, it was decided to establish a list of "critical bugs" to be eradicated in order to release xfce 4.12.
You can find the list here : https://wiki.xfce.org/releng/4.12/roadmap/critical-bugs.
Xfce 4.12 will still use gtk2, with some support of gtk3 for better integration.
Port to gtk3 will maybe be done for the next version.

What will be new in xfce 4.12 ?

All major components are already available in development version (4.11), here are a small list of what to expect :

xfwm4 :

xfwm4-tabwin-4.12

xfce4-settings :

xfdesktop :

xfce4-panel :

And lot of works on other components, like xfce4-power-manager (systemd support), xfburn, xfce4-mixer etc There is still some works/tests to be done on upower or systemd support for example.

Update : You can see lot of screenshots of new features on the Xfce forum, by ToZ : https://forum.xfce.org/viewtopic.php?id=8945

Buildbot

A new buildbot based on jenkins is available since few days on http://buildbot.xfce.org

Bountysource

It's easier to copy the mail from Simon Steinbeiß to explain this part :

To get to the point: we see bountysource[2] as an easy way to offer
the community with a way to financially support Xfce. There are two
avenues a backer can choose from.
1) Set a bounty on a specific bug (we've pulled in all the reports for
many components already, so you can easily find them on
bountysource.com)
2) Back the Xfce team

Update: More explanations about bountysource: https://mail.xfce.org/pipermail/xfce4-dev/2014-July/030807.html

So if you are interested yo help Xfce, go to the contribute wiki page !

The bright future of Foresight Linux

Refining Foresight

Why

Foresight is what I use for almost a decade now (and that means almost the whole time since it was created by Ken Vandine).
It was originally based on rPath Linux and Foresight 2.0 still is.
So rpath doesn't exist anymore (it was aquired by SAS a while ago) and our existing base is getting outdated to a point where maintenance is getting a burden.

How

There were several options to solve this issue.
1) build foresight 3 from scratch
2) rebuild an existing distribution from source and use it as a base
3) base on an existing (vital) distribution

Which one

Actually we discussed all these, but given our manpower we chose to base our new shiny Foresight on Fedora as is, so that we can focus again on providing a stable modern rolling binary distribution.

The Plan and Progress

So what we're doing is importing all! of Fedora20 into our own repositories using a tool called mirrorball
It will create Sourcepackages for conary containing the matching rpms and srpms and build conary packages from them.
I'm not going into the details here. You can look some up on our foresight-devel mailinglist
The initial import and built is already done and we're now in the process of creating conary groups from the information of the comps.xml
when that is done it should be possible already to adopt a fresh install of fedora20 for use with conary packagemanager.
Next step will be doing regular updates and imports of the fedora20 repository.
Then we will build foresight on top of this.
Creating groups like we want them, adding artwork and extras. Import rpmfusion repositories until we have a foresight that matches our needs.
And of course finding a way to easily install foresight and convert existing fedora installations.

Why not...

...just use fedora?
Well first we all got to love foresight as a distribution and a community.
And we love conary. Conary is pretty strict when it comes to dependency resolution. We already found packaging issues of fedora20 just by importing and rebuilding it with conary. foresight is a rolling distribution and we hope that with the adopting of fedora we can make it possible to just roll from fedora20 to fedora21 painlessly. Conary has rollbacks since it's beginning and it's a great packagemanager that helped us maintaining a rolling binary distribution for almost 10 years now.


Remote notifications

This post explains how to get notifications (libnotify) from a remote system. Typically this is useful with an IRC client accessible through SSH.

Prerequisites:
  • A notification daemon! (dunst, xfce4-notifyd, etc.)
  • socat
  • notify-send
apt-get install socat libnotify-bin

On the client, modify the SSH configuration to introduce two elements:
  • forward a TCP port,
  • execute a local command.

Example entry for ~/.ssh/config:
Host remote-host
Hostname remote-host.gandi.net
RemoteForward 12000 localhost:12000
PermitLocalCommand yes
LocalCommand socat -u tcp4-listen:12000,reuseaddr,fork,bind=127.0.0.1 exec:$HOME/.local/bin/notify-remote.sh 2>/dev/null &
The fowarded TCP port will be used to netcat notification messages to the local system.

socat is used to bind a port on the local system, it will take the notifcation messages, and write them to the executed shell script notify-remote.sh.

The shell script will then simply call notify-send to display a notification with the default notification daemon.

notify-remote.sh:
#!/bin/sh
delay="5000"

read line
summary="$line"
read line
msg="$line"
read line

if [ "$line" = "" ] && [ "$summary" != "" ]; then
[ -x "$(which notify-send)" ] && notify-send -u critical -t "$delay" -- "$summary" "$msg"
fi

Now it is possible to connect to the remote host and "write" notifications:
local$ ssh remote-host
remote-host$ echo -e 'Summary\nBody\n\n' | nc 127.0.0.1 12000

Integrate into irssi


Copy the irssi script available bellow to get notifications from hilights, and private messages.

Once the script is copied, execute /script load rnotify.pl inside irssi.

~/.irssi/scripts/autorun/rnotify.pl:

# shamelessly copied from http://git.esaurito.net/?p=godog/bin.git;a=blob;f=rnotify.pl
use strict;
use Irssi;
use HTML::Entities;
use vars qw($VERSION %IRSSI);

$VERSION = "0.01";

%IRSSI = (
authors => 'Luke Macken, Paul W. Frields',
contact => 'lewk@csh.rit.edu, stickster@gmail.com',
name => 'rnotify',
description => 'Use libnotify to alert user to hilighted messages',
license => 'GNU General Public License',
url => 'http://lewk.org/log/code/irssi-notify',
);

Irssi::settings_add_str('misc', $IRSSI{'name'} . '_port', '12000');
Irssi::settings_add_bool('misc', $IRSSI{'name'} . '_if_away', 0);

sub is_port_owner {
my ($port, $uid) = @_;
my $wanted = sprintf("0100007F:%04X", $port);

# XXX linux-specific
open HANDLE, "< /proc/net/tcp" || return 0;
while(<HANDLE>){
# sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
my @splitted = split /\s+/;
my $local = $splitted[2];
my $remote = $splitted[3];
my $uid = $splitted[8];

return 1 if $local eq $wanted and $uid == $<;
}
close HANDLE;
return 0;
}

sub notify {
my ($server, $summary, $message) = @_;

$message = HTML::Entities::encode($message);
$summary = HTML::Entities::encode($summary);

# echo \ escaping
$message =~ s/\\/\\\\/g;
$summary =~ s/\\/\\\\/g;

my $port = Irssi::settings_get_str($IRSSI{'name'} . '_port');

return if ! is_port_owner($port, $<);

# check for being away in every server?
return if $server->{usermode_away} &&
(Irssi::settings_get_bool($IRSSI{'name'} . '_if_away') == 0);

# XXX test for other means of doing TCP
#print("echo '$summary\n$message\n\n' | /bin/nc 127.0.0.1 $port");
system("echo '$summary\n$message\n\n' | /bin/nc 127.0.0.1 $port &");

#my $pid = open(FH, "|-");
#if( $pid ){
# print FH "$summary\n$message\n\n";
# close(FH) || warn "exited $?";
#}else{
# exec("/bin/nc 127.0.0.1 $port") || warn "can't exec $!";
#}
}

sub print_text_notify {
my ($dest, $text, $stripped) = @_;
my $server = $dest->{server};

return if (!$server || !($dest->{level} & MSGLEVEL_HILIGHT));
my $sender = $stripped;
$sender =~ s/^\<.([^\>]+)\>.+/\1/ ;
$stripped =~ s/^\<.[^\>]+\>.// ;
my $summary = "Message on $dest->{target}";
notify($server, $summary, $stripped);
}

sub message_private_notify {
my ($server, $msg, $nick, $address) = @_;

return if (!$server);
notify($server, "Private message from ".$nick, $msg);
}

sub dcc_request_notify {
my ($dcc, $sendaddr) = @_;
my $server = $dcc->{server};

return if (!$dcc);
notify($server, "DCC ".$dcc->{type}." request", $dcc->{nick});
}

Irssi::signal_add('print text', 'print_text_notify');
Irssi::signal_add('message private', 'message_private_notify');
Irssi::signal_add('dcc request', 'dcc_request_notify');

# vim: et

Xfce – Xfwm4 zoom mode in 4.12

Xfce is my main desktop environment since more than 6 years, and I really like it. I try to make some patch from time to time, and if you search a project to contribute, it's here ;-)

The core team is really small (2 or 3 people), so development evolves rather slowly, and the 4.12 will be released when it is ready.

One of the latest feature is the implementation of a compositor zoom, like the compiz ezoom plugin, from an external developper ( see this thread).

Here a little video with latest git version ( from http://git.xfce.org/xfce/xfwm4/ ). You just need to press ALT and scroll up/down to zoom in/out.

(yeah, it's an excuse to test the html5

I will try to make some blog posts about new features in xfce world for the upcoming 4.12 (in 2014 I hope!), stay tuned !

archbang

i pulled the slow magnetic hdd running gentoo from my thinkpad r61i; swapped it with a 2009-era 32GB ssd running archbang, a variant of arch linux.

it’s been several years since i last tried arch, and i wanted a desktop environment installed & preconfigured. archbang offers a minimal openbox desktop with a few basic programs: web browser, terminal, text editor, file manager, etc.

arch is fast. from cold boot to logged-in at the desktop: 5.5 seconds. that’s on an old supertalent ssd, artificially limited to SATA-I speeds by the thinkpad’s BIOS; the hardware is capable of running at SATA-II. even topped out at 150MB/sec read/write, this system is screaming fast. apps execute instantly, queries and searches complete as soon as i hit Enter, and even heavyweight firefox only takes a second or so to load. my experience is vastly improved over the same environment on gentoo, on the magnetic hdd.

gentoo didn’t run this fast on this drive when it was installed in my now-defunct desktop. i switched to a more useful xfce desktop, which didn’t affect boot/login times at all; still under 6 seconds.

so, why arch, and not gentoo? apparently, my music-making environment went through too many upgrades and changes between 2011 and now. i probably should have left it as-is once i got a working setup for live performances and studio production. it mostly doesn’t work anymore. kernel changes, upstream audio package changes, lots of factors. it’s impossible to diagnose, so i’m temporarily without a gentoo system, at least until i swap disks.

the upstream developer of my primary audio software runs arch, so i figured i may get better support & overall user experience by running the same OS and environment. i haven’t yet configured my desktop for realtime/low-latency audio work besides install the ck kernel. arch has most of my usual music stack available as binary packages, so i’ll only have to compile a few apps from the AUR.

i really like installing binary packages, rather than having to spend a whole day building them on this slow 2007-era CPU. and, since this is an exceptionally light flavor of arch, i don’t have the bloat and slowdown i experienced when using ubuntu for music production.

i’m not sure if i’ll keep arch installed or not, but this has been an interesting trip so far.

Xfce translations moved

For quite some time Xfce used a private installation of Transifex because this “old” version was capable of pushing to git directly and the tools provided by transifex.com were not extremely suitable at the time. But time went by and transifex.com improved to a nice platform, while our installation started to struggle more and more.

So it was about time we moved and since yesterday all translations moved to the Xfce hub project! There are separate projects for the core modules because there we work more active with different branches, and there are “collection” projects for the various goodies, like panel plugins, thunar extensions and applications outside Xfce core.

The platform is (imho) a huge improvement for translators; the interface is very nice, a way better online editor and a translation memory across the components to translate similar string more quickly and consistently. On the developers since everything is still automated since a cron script will pull the translations and submit them to git (if they reached a minimum percentage of 50% and passed all checks).

During the migration a lot of files were removed from git because they did not pass msgfmt –check, so at the same time this was a nice cleanup of broken translations in the repositories.

There are still some things to do; cron script needs some more testing and also more pot files need to be removed from the repositories to avoid broken or incomplete translations, but the largest step is taken.

So in case you were translating Xfce or want to, sign up at transifex.com and joint a translation team in the Xfce project!