tag:blogger.com,1999:blog-35113016490447448172024-02-08T04:15:37.539+01:00dummdidaDinge im Dunstkreis.fabiandhttp://www.blogger.com/profile/13674125182885954901noreply@blogger.comBlogger79125tag:blogger.com,1999:blog-3511301649044744817.post-43938869548138966272013-05-27T21:20:00.001+02:002013-05-27T21:21:24.861+02:00mv(dummdida.blogspot.com, dummdida.tumblr.com)$subject says it all. fabiandhttp://www.blogger.com/profile/13674125182885954901noreply@blogger.com0tag:blogger.com,1999:blog-3511301649044744817.post-12546874339949685892013-05-22T16:36:00.001+02:002013-05-22T16:36:26.978+02:00SimpleHTTPPutServer in pythonSometimes a small HTTP server which can be used with<br />
<pre>$ curl -T dafile dahost.local
</pre>
is handy. You can use it to upload small logfiles etc without any authentication, so something like tftp.<br />
<br />
Python's own SimpleHTTPServer is a simple webserver, but it only supports GET and HEAD requests.<br />
By simply deriving from that class you can create a small server supporting PUT.<br />
<script src="https://gist.github.com/fabiand/5628006.js"></script>fabiandhttp://www.blogger.com/profile/13674125182885954901noreply@blogger.com0tag:blogger.com,1999:blog-3511301649044744817.post-42087803834321837332013-05-05T13:37:00.000+02:002013-05-05T13:37:42.092+02:00Mozilla's rust in Fedora's PPA Copr<a href="http://fedoraproject.org/wiki/Category:Copr">Copr</a> is Fedora's answer to Ubuntu's PPA - IIUIC, so don't nail me on the definition.<br />
Slavek give's a <a href="http://bkabrda.wordpress.com/2013/02/08/introducing-copr-build-system/">nice introduction</a> into how Copr works and what it does.<br />
<br />
Now - <a href="http://copr-fe.cloud.fedoraproject.org/">Copr</a> can be used to create public repositories for 3rd-party packages like rust - which can not (yet) land in the official Fedora repos (in rusts's case because of the bundling other libs).<br />
I had to uploaded a source rpm of rust and point Copr to it, so Copr can pick it up and do a chroot build.<br />
Best is that Copr is also creating the appropriate repository and you only need the following repo file to install rust with dnf or yum.<br />
<br />
<pre># Add the following repo file
$ cat rust.repo
[fabiand-rust-unofficial]
name=Rust packages (unofficial)
baseurl=http://copr-be.cloud.fedoraproject.org/results/fabiand/rust/
enabled=1
metadata_expire=7d
gpgcheck=0
# And install it
$ sudo dnf install rust
</pre>
<br />
In general Copr seems to be nice - it's still abit rough around the edges, but that's expected. It can surely imagine that t's going to fit well into our existing infrastructure.<br />
<br />
[Update] The copr <a href="http://copr-fe.cloud.fedoraproject.org/coprs/detail/fabiand/rust/">landing page for rust</a> and the package <a href="http://copr-be.cloud.fedoraproject.org/results/fabiand/rust/fedora-18-x86_64/rust-0.6-2.fc18/rust-0.6-2.fc18.x86_64.rpm">rust-0.6-2.fc18.x86_64.rpm</a> link.fabiandhttp://www.blogger.com/profile/13674125182885954901noreply@blogger.com2tag:blogger.com,1999:blog-3511301649044744817.post-37556038249507550132013-05-05T12:21:00.000+02:002013-05-05T12:22:07.376+02:00ORBX.js - is no open codec<center>
<a href="http://www.flickr.com/photos/jimmyk49/5446495795/" title="Orb von jimmyk49 bei Flickr"><img alt="Orb" height="212" src="http://farm6.staticflickr.com/5096/5446495795_13f4ee4b32_n.jpg" width="320" /></a>
</center>
<br />
I'm by no way an expert, but until now <a href="http://www.otoy.com/130501_OTOY_release_FINAL.pdf">ORBX.js</a> is - to me - not much more than a tech demo and not "<a href="https://brendaneich.com/2013/05/today-i-saw-the-future/">the future</a>".<br />
<br />
ORBX seems to be a propietary video codec, which operates highly parallel - that there is ORBX.js - a javascript decoder for this codec - doesn't help the fact that it's proprietary. So I wonder what the <a href="http://tech.slashdot.org/story/13/05/04/2020235/orbxjs-1080p-drm-free-video-and-cloud-gaming-entirely-in-javascript">fuzz</a> is all about. As said: To me ORBX.js is currently not much more than a tech demo to illustrate JavaScript's (or more it's interpreters) capabilities. And currently I couldn't find any hint that ORBX - the codec - is going to be opened - which is also not as easy, as this would involve some sort of patent audit to sort out it's patent status.<br />
<br />
At last I at least like the fact that it's now shown that there can be highly parallel video codecs, which can utilize the GPU from a high level language.<br />
I wonder if this can be done with <a href="http://diracvideo.org/">Dirac</a>.fabiandhttp://www.blogger.com/profile/13674125182885954901noreply@blogger.com0tag:blogger.com,1999:blog-3511301649044744817.post-30165368577664319642013-05-02T20:33:00.001+02:002013-05-02T20:33:56.283+02:00Parallel static python checks with Makefiles<center>
<a href="http://www.flickr.com/photos/treborinato/3204599860/" title="Parallel Ripples von Robert Otani bei Flickr"><img alt="Parallel Ripples" height="240" src="http://farm4.staticflickr.com/3504/3204599860_190ecdfe34_m.jpg" width="240" /></a>
</center>
<br />
To make testing fun I looked at improving the speed of static syntax checks.<br />
The latest incarnation is now using make targets to represent a specific checks. The nice thing about this is, that you can use Make's <code>-j</code> switch to run those tests in parallel.<br />
<br />
So basically it looks like this:<br />
<br />
<pre>check-static-pep8: $(PYTHONSOURCES:%=%.pep8)
@echo Passed $@
%.pep8:
PYTHONPATH=. pep8 -r "$*"
</pre>
<br />
The complete makefile is <a href="https://gitorious.org/ovirt/igord/blobs/master/Makefile.check">here</a> and the numbers:
<br />
<br />
Simple:
<br />
<pre>...
---
Passed check-local
---
real 0m22.875s
user 0m20.466s
sys 0m2.158s
</pre>
<br />
<br />
And in parallel:
<br />
<pre>---
Passed check-local
---
real 0m11.459s
user 0m34.780s
sys 0m3.325s
</pre>
<br />
There is so much that can be done.fabiandhttp://www.blogger.com/profile/13674125182885954901noreply@blogger.com0tag:blogger.com,1999:blog-3511301649044744817.post-81691412618142335742013-04-28T13:27:00.000+02:002013-04-29T12:50:27.419+02:00Woot - Mozilla's Firefox Mobile Nigtly has WebRTC support<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.webrtc.org/_/rsrc/1318870658554/config/customLogo.gif?revision=8" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.webrtc.org/_/rsrc/1318870658554/config/customLogo.gif?revision=8" /></a></div>
<br />
Once and again I try the Nightly version of Mozilla Firefox.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://nightly.mozilla.org/img/nightly-header-bg.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="162" src="http://nightly.mozilla.org/img/nightly-header-bg.png" width="400" /></a></div>
<br />
<br />
Today I noticed that the Mobile version of Firefox has WebRTC support. Woot!?<br />
<br />
That means you can go into <code>about:config</code> and set<br />
<pre>media.peerconnection.enabled
</pre>
<br />
to true.<br />
If you've got a second mobile device or download the nightly desktop version (and enable peerconnection there too).<br />
Then you can visit the <a href="http://apprtc.appspot.com/">webrtc reference application</a> with the first device, and enter the given URL (at the bottom) on the second device to join the session.<br />
E voilà you've got a working WebRTC (with video and audio) connection between your two devices.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://conversat.io/conversatio.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="46" src="http://conversat.io/conversatio.png" width="320" /></a></div>
<br />
<br />
Or even <a href="http://conversat.io/">conversat.io</a> ! Yes - use conversat.io - looks promissing. Maybe even for team (ovirt) meetings?<br />
<br />
Enjoy and feed-back.fabiandhttp://www.blogger.com/profile/13674125182885954901noreply@blogger.com0tag:blogger.com,1999:blog-3511301649044744817.post-48768961723586474052013-04-25T16:47:00.001+02:002013-04-25T16:50:38.661+02:00Testing oVirt Node in 4min (video)<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCGo3Xvj_t1zJgQLa5XFJ5UeQcRbfhY8AsMEBv4VHPwu03ZKsoD91Sy6osvP78ce8U1QVC1FZQu2TCzNoadkexlbk7gTJ5iuTdwHpYOqQLVkjUDvEhlBLoSTbzrqVA403llEtiePhy_PU/s1600/favicon.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCGo3Xvj_t1zJgQLa5XFJ5UeQcRbfhY8AsMEBv4VHPwu03ZKsoD91Sy6osvP78ce8U1QVC1FZQu2TCzNoadkexlbk7gTJ5iuTdwHpYOqQLVkjUDvEhlBLoSTbzrqVA403llEtiePhy_PU/s1600/favicon.png" /></a></div>
<br />
My focus over the last year or so lay on bringing test automation to oVirt Node.<br />
It was challenging because <a href="http://www.ovirt.org/Node">oVirt Node</a> is based on a LiveCD - at boot and post-installtion. (The whole LiveCD is used as a r/o rootfs.)<br />
<br />
To allow an automated testing of oVirt Node, I've been working on <a href="https://gitorious.org/ovirt/igord">igor</a>. It allows us to test oVirt Node on real hardware an in VMs.<br />
<br />
When you throw all the new features (see below - libvirt-only, new igorc, new igor events service, junit-reports for jobs) together you can do a complete testsuite run on an oVirt Node ISO with one command.<br />
<br />
And this is how it looks (view it in fullscreen to see all the nifty details, but this will leave you without the <a href="http://fabiand.fedorapeople.org/igor/Bildschirmaufzeichnung%20von%2025.04.2013%2013:28:28.webm.srt">subtitles</a> explaining what's happening):<br /><br />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script src="http://v2v.cc/~j/jquery.srt/jquery.srt.js"></script>
<style type="text/css">
.srt {
padding: .5em;
font-family: sans-serif;
background: gray;
color: white;
display: auto;
}
</style>
<video controls="controls" id="video" preload="auto" style="width: 100%;">
<source src="http://fabiand.fedorapeople.org/igor/Bildschirmaufzeichnung%20von%2025.04.2013%2013:28:28.webm" type="video/ogg"></source>
<track kind="subtitle" label="English" src="http://fabiand.fedorapeople.org/igor/Bildschirmaufzeichnung%20von%2025.04.2013%2013:28:28.webm.srt" srclang="en-US"></track>
Your browser does not support HTML5 video.
</video>
<br />
<div class="srt" data-video="video">
0
00:00:00,000 --> 00:00:00,100
1
00:00:00,100 --> 00:00:03,000
Launching igorc
2
00:00:03,000 --> 00:00:12,000
igorc (left) extracts LiveCD, creates a profile and submits a new job
3
00:00:27,000 --> 00:00:32,000
igord created a VM (right) and boots it up (from a CD derived from the igord profile)
4
00:00:40,000 --> 00:01:00,000
VM (right) boots and the autoinstall is performed
5
00:01:36,000 --> 00:01:45,000
Installation finished (Ctrl-Alt-Del is sent to the VM to reboot [that's a known bug])
6
00:01:58,000 --> 00:02:05,000
The VM now boots from HD
7
00:02:20,000 --> 00:02:27,000
An igor-service is now started in the background (within the VM) to communicate with igord
8
00:02:34,000 --> 00:02:39,000
The igor-service tells igord about the ocmpletion of the first testcase, which is then picked up by igorc (left).
9
00:02:39,000 --> 00:02:45,000
A couple of more testcases were completed (left) and a reboot is initiated (by the igor-service within the VM)
10
00:02:48,000 --> 00:03:10,000
The VM (right) reboots
11
00:03:46,000 --> 00:03:59,000
All testcases passed and the VM is torn down by igord
</div>
<br />
This is a big step forward - even if there are still some issues outstanding to achieve the goal to make testcase development fun.<br />
<br />
Now that we've seen the fancy part some background and open issues.<br />
One pitfall - up to this week - was the hurdle to get igor up an
running. Igor used to require Cobbler - and cobbler is not easy to setup
on Fedora 18 (which I use to build an test oVirt Node - which itself is
based on Fedora 18 packages).<br />
<br />
Anyhow - long story
short - Igor has a "feature complete" "backend" for libvirt now, that
means, igor doesn't need cobbler anymore. Furthermore I've added a brand
new igor client (called igorc) which communicates with igord (the
daemon doing all the coordination work).<br />
This client has some
"advanced" features like pretty printing of junit results (Igor offers
the result of the testruns in junit's XML format).<br />
<br />
Some open issues:<br />
<ul>
<li>ovirt-node needs a target to build a testable ISO</li>
<li>igor needs a feature to upload testsuites from the client side </li>
</ul>
All of this is up in the igor repository. ovirt-node related patches (e.g. merging of the igor plugin are pending). Just follow the <a href="http://lists.ovirt.org/pipermail/node-devel/">node-devel ml</a> to see when is is ready for daily usage.<br />
That's it for now - thanks for watching. fabiandhttp://www.blogger.com/profile/13674125182885954901noreply@blogger.com0tag:blogger.com,1999:blog-3511301649044744817.post-60005487607822945742013-04-19T16:07:00.000+02:002013-04-19T16:07:35.327+02:00Rust 0.6 for Fedora<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.rust-lang.org/logos/rust-logo-128x128-blk.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.rust-lang.org/logos/rust-logo-128x128-blk.png" /></a></div>
<br />
The <a href="http://dummdida.blogspot.de/2013/03/a-package-for-rust-mozillas.html">previous</a> draft spec wasn't able to build rust with the official 0.6 sources. The spec file is now updated and you can build your own rust package using:<br />
<pre>$ curl -O https://raw.github.com/fabiand/rust-spec/master/rust.spec
$ nice ionice rpmbuild --noclean -ba -v rust.spec
</pre>
<br />
It is assumed that you've got a working fedora-package setup and an internet connection.<br />
<br />
Changes are mainly that <code>chrpath</code> is used to remove rpaths from files. Rust is still using it's own libuv and llvm.fabiandhttp://www.blogger.com/profile/13674125182885954901noreply@blogger.com0tag:blogger.com,1999:blog-3511301649044744817.post-57062196873793846712013-04-04T15:58:00.001+02:002013-04-08T15:49:11.597+02:00Getting EFI (OVMF) into libvirt<center>
<a href="http://www.flickr.com/photos/tamaleaver/6801803312/" title="OMG! von Tama Leaver bei Flickr"><img alt="OMG!" height="215" src="http://farm8.staticflickr.com/7190/6801803312_31808b8f4d_n.jpg" width="320" /></a>
</center>
<br />
Finally it's working like a charm - booting a VM with EFI (instead of a BIOS).<br />
<br />
lersek pointed me to a page describing <a href="https://fedoraproject.org/wiki/Testing_secureboot_with_KVM">how to test SecureBoot with Fedora</a> this implies the usage of EFI. And that page contains a link to an rpm carrying the EFI payload. Awesome.<br />
<br />
After installing the RPM you only need to tell libvirt to use that bootloader instead of the default one.<br />
<br />
All you need to do:<br />
<pre># Install a prerequirement
$ sudo <a href="http://dummdida.blogspot.de/2013/03/package-management-w-dnf-is-fast.html">dnf</a> install seavgabios-bin ipxe-roms ipxe-roms-qemu
# Install OVMF
$ sudo rpm -ivh http://fedorapeople.org/~crobinso/\
secureboot/edk2.manual-0-0.20130221.944c84a6.x86_64.rpm
# Create a VM pointing to OVMF
$ sudo virt-install --name f18-uefi \
--ram 2048 \
--boot loader=/usr/share/edk2.manual/\
ovmf-x64/OVMF-pure-efi.fd \
--disk f18-uefi.qcow,format=qcow2,size=10 \
--os-variant fedora18 \
--cdrom /path/to/Fedora-18-x86_64-DVD.iso
</pre>
<br />
That's it! I'm truly amazed.<br />
<br />
Btw.: oVirt Node can also be tested this way. Sadly it currently crashes under EFI.fabiandhttp://www.blogger.com/profile/13674125182885954901noreply@blogger.com0tag:blogger.com,1999:blog-3511301649044744817.post-38278194085502217562013-03-20T15:37:00.000+01:002013-03-20T15:37:35.873+01:00Package management w/ dnf is fastYum feels slow sometimes. That's not new. I was impressed by <a href="http://dummdida.blogspot.de/2012/03/package-management-using-zif.html">zif</a> and how much quicker it is. And now, once again I'm impressed how quick <a href="https://fedoraproject.org/wiki/Features/DNF">dnf</a> is.<br />
Besides beeing quick - dnf is also looking quite clean.<br />
So let's see when it get's into a prominent position, for now you can install it on Fedora 18 by using<br />
<pre>$ sudo yum install -y dnf
</pre>
The commandset is not yet as comprehensive as yums, but the basics are working.fabiandhttp://www.blogger.com/profile/13674125182885954901noreply@blogger.com3tag:blogger.com,1999:blog-3511301649044744817.post-57609596435639938492013-03-18T10:08:00.002+01:002013-03-18T10:08:42.964+01:00Debugging systemd<center>
<a href="http://www.flickr.com/photos/gwise90/6013198083/" title="Daemon Prince of Slaanesh (Front) von Gwise90 bei Flickr"><img alt="Daemon Prince of Slaanesh (Front)" height="240" src="http://farm7.staticflickr.com/6030/6013198083_dc74eb11db_n.jpg" width="320" /></a>
</center>
<br />
There was this issue where <a href="http://ovirt.org/wiki/Node">oVirt Node</a> wouldn't <a href="https://bugzilla.redhat.com/show_bug.cgi?id=920208">restart</a> after an auto-install. systemd got blocked by something. These <a href="http://freedesktop.org/wiki/Software/systemd/Debugging#Debug_Logging_to_a_Serial_Console">two</a> <a href="https://fedoraproject.org/wiki/How_to_debug_Systemd_problems">links</a> helped me debugging this issue.fabiandhttp://www.blogger.com/profile/13674125182885954901noreply@blogger.com0tag:blogger.com,1999:blog-3511301649044744817.post-29041431206288082352013-03-18T09:23:00.002+01:002013-03-18T09:23:46.045+01:00Upgrading from F16 to F18 - no need for a rolling release ...<div class="separator" style="text-align: center;">
<a href="https://fedoraproject.org/static/images/banners/f16release.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://fedoraproject.org/static/images/banners/f16release.png" /></a></div>
<br />
It was last week when a couple of issues summed up and forced me to think about how to update my working machine from Fedora 16 to Fedora 18.<br />
Basically I had the choice between running a fresh (after a decent backup) install or upgrading from Fedora 16, via 17, to 18.<br />
In general I really prefer doing fresh installs - as you get a clean
system and old cruft is removed, but this time I tried to avoid to
backup all the little pieces which somehow tangent my work environment.<br />
Those pieces ain't mission critical, it's just that re-creating them is boring.<br />
Long story short - I just went the upgrade path, with doing a fresh install being my fallback solution.<br />
<br />
<br />
<div class="separator" style="text-align: center;">
<a href="https://fedoraproject.org/static/images/banners/f17release.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://fedoraproject.org/static/images/banners/f17release.png" /></a></div>
<br />
I ran pre-upgrade on the Fedora 16, which initially failed (It got confused by the EFI setup), but this could be fixed by manually adding the grub entry for booting up pre-upgrade.<br />
It took a couple of hours until the upgrade was finished. But everything seemed to work. After trying a couple of applications, I installed fedup and - just waited. It felt a bit longer but also finally succeeded.<br />
I was a bit concerned right after the update, because I was confronted with a dracut rescue shell. But a reboot helped.<br />
It seems that there is a time out for lucks prompt, which drops you to the emergency shell in case you don't enter the password in time.<br />
<br />
<div class="separator" style="text-align: center;">
<a href="https://fedoraproject.org/static/images/banners/f18release.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://fedoraproject.org/static/images/banners/f18release.png" /></a></div>
<div style="clear: both;">
</div>
<br />
Now, two days later, everything is still working. Only the kerberos client UI is missing and I had to install realmd.<br />
The thing about this is, that I actually didn't expect this upgrade path to work. I expected more hassles.fabiandhttp://www.blogger.com/profile/13674125182885954901noreply@blogger.com0tag:blogger.com,1999:blog-3511301649044744817.post-19460193563373472092013-03-05T20:47:00.001+01:002013-03-06T10:49:31.170+01:00A package for rust - Mozilla's experimental language<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.rust-lang.org/logos/rust-logo-128x128-blk.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.rust-lang.org/logos/rust-logo-128x128-blk.png" /></a></div>
<br />
<a href="http://www.mozilla.org/">Mozilla</a> has picked up a language to address a couple of common issues in coding. The language they picked is <a href="http://www.rust-lang.org/">rust</a>.<br />
It doesn't fit into my current environment, but it has some nice features, like lightweight threads (green threads) and message passing support which make it interesting for me to play with. These are two features which I am missing in <a href="http://www.vala-project.org/">vala</a> - but they might just be a bit out of scope of vala's focus.<br />
<br />
I've only played with rust a little, but to ease Fedora users access to this language I've created an initial <a href="https://github.com/fabiand/rust-spec/blob/master/rust.spec">specfile</a> which can be used to build the package.<br />
<strike>For convenience I'm also providing an rpm.</strike><br />
<br />
Rust is currently not suitable for an official inclusion into Fedora's repositories as it builds it's own <a href="https://github.com/mozilla/rust/issues/4259">patched version of llvm</a>, does some stuff with <a href="https://github.com/mozilla/rust/issues/5219">rpaths</a>, …. There is work to upstream the patches, but that's still far in the future.<br />
<br />
So - <a href="https://github.com/fabiand/rust-spec">pick it up</a> and install it, look at the quite nice <a href="http://doc.rust-lang.org/doc/tutorial.html">tutorial</a> and get your hands dirty.<br />
<br />
<pre># Clone
git clone git://github.com/fabiand/rust-spec.git
# Build requirements
sudo yum install gcc gcc-c++ python perl curl fedora-packager
# Build it
cd rust-spec
rpmbuild -ba rust.spec
</pre>
<br />
Edit: It is assumed that your <a href="https://fedoraproject.org/wiki/How_to_create_an_RPM_package">env is set up for building packages</a>fabiandhttp://www.blogger.com/profile/13674125182885954901noreply@blogger.com6tag:blogger.com,1999:blog-3511301649044744817.post-25810887157467010712013-03-01T14:25:00.003+01:002013-03-01T14:25:53.791+01:00oVirt Node 2.6.1<center>
<a href="http://www.flickr.com/photos/catholicism/8517171998/" title="Pope Benedict XVI in Castel Gandolfo von Catholic Church (England and Wales) bei Flickr"><img alt="Pope Benedict XVI in Castel Gandolfo" height="211" src="http://farm9.staticflickr.com/8242/8517171998_dd0614e34f_n.jpg" width="320" /></a>
</center>
<br />
Node 2.6.1- a very slim firmware-like Fedora for oVirt Node - has been released.<br />
This minor release was necessary because our major TUI rework introduced a security hole. <a href="http://www.ovirt.org/Node#Current_Release">Get it here</a>.<br />
<br />
So whats new about Node 2.6.x?<br />
Well, we've got plugins and a new TUI (a new installer TUI will follow shortly).<br />
More can be found in the <a href="http://www.ovirt.org/Node_Release_Notes">release notes</a>.<br />
<br />
And whats coming up?<br />
It obvious that a "solid core" or this "firmware like" properties of Node are well suited for other projects as well (think of OpenStack, Gluster, ...)<br />
So a near term goal is to dro the oVirt specific bits (like vdsm) to make Node more general and easier to use for other projects.<br />
And the new installer shall also land.fabiandhttp://www.blogger.com/profile/13674125182885954901noreply@blogger.com0tag:blogger.com,1999:blog-3511301649044744817.post-62901878256407467672013-01-25T11:34:00.000+01:002013-01-25T11:34:59.023+01:00Nothing new, just GNOME 3GNOME 3 is my favorite DE. <br />
I really appreciate how much works has gone into GNOME. Into the UI and below the surface. Seen from my perspective GNOME - as on Fedora - turns into the best system-integrated DE. The control-center can actually be used to control system stuff - thanks to all the changes that happened below, within cups, systemd, pulseaudio, colord, ... To me Fedora feels more like one system, and not several layered components.<br />
Sure, the changes were disruptive and not every one is happy with the results - but that's just normal. And I wonder about all this ranting and bashing on changes.<br />
In the case of GNOME it's also nice and somewhat refreshing to see that there is a plan - a vision - of where to go and what to form.fabiandhttp://www.blogger.com/profile/13674125182885954901noreply@blogger.com0tag:blogger.com,1999:blog-3511301649044744817.post-58589788558319043792012-11-22T13:01:00.001+01:002012-11-22T13:04:43.503+01:00Igor - Testing an OS on real and virtual hardware<center>
<a href="http://www.flickr.com/photos/francescagallina/6511198217/" title="Igor Mitoraj nella Valle dei templi von Francesca Gallina bei Flickr"><img src="http://farm8.staticflickr.com/7152/6511198217_7708fd6ce2_m.jpg" width="240" height="160" alt="Igor Mitoraj nella Valle dei templi"></a>
</center>
<br />
Working on <a href="http://www.ovirt.org/">oVirt Node</a> is nice, this minimal, firmware like, rock-solid, (non-official) Fedora "spin", is oVirts "hypervisor".<br />
<br />
One challenge is to keep Node rock-solid. <br />
Typically you can add unit tests to your software to shield yourself from regressions (or at least discover them early) but adding tests to Node wasn't that easy as Node is a complete "operating system" and not just one component. It is currently composed of approximately 450 packages - all of these change independetly.<br />
<br />
We were looking for a way to automate <a href="http://wiki.ovirt.org/wiki/Node_Testing">some basic tests on development or released images</a>. But a requirement to run the tests is a running Node. This means testing requires an installation (and subsequent a removal or "freeing" of th eused host) on different hardware, including virtual machines.<br />
So we needed a tool that could control the whole life-cycle (provision, run tests, and freeing) of a machine (either real or virtual) and which is also monitoring the progress of a testsuite, to act accordingly (e.g. killing it if it times out).<br />
We did not find such a tool and came up with igor.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCGo3Xvj_t1zJgQLa5XFJ5UeQcRbfhY8AsMEBv4VHPwu03ZKsoD91Sy6osvP78ce8U1QVC1FZQu2TCzNoadkexlbk7gTJ5iuTdwHpYOqQLVkjUDvEhlBLoSTbzrqVA403llEtiePhy_PU/s1600/favicon.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCGo3Xvj_t1zJgQLa5XFJ5UeQcRbfhY8AsMEBv4VHPwu03ZKsoD91Sy6osvP78ce8U1QVC1FZQu2TCzNoadkexlbk7gTJ5iuTdwHpYOqQLVkjUDvEhlBLoSTbzrqVA403llEtiePhy_PU/s1600/favicon.png" /></a></div>
<br />
Igor expects a working PXE environment (so a lan with some DHCP and PXE server like Cobbler) and some hosts or a libvirtd instance. It is expected that all hosts (real and virtual) boot via PXE from the PXE server.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7KJ_v3IW4GWQMNpWzEV-ctf_K93xmDvsW0aTzg3F4MsqweNIOBh2whoMm20nYbVYD9SMvW5t_gFevWIWSrLSvdkmdM5QhCjsnkrRCMs1EkhOuVYOl3GzoF49UQgJmK_c3yoNU8dinHzw/s1600/topology.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7KJ_v3IW4GWQMNpWzEV-ctf_K93xmDvsW0aTzg3F4MsqweNIOBh2whoMm20nYbVYD9SMvW5t_gFevWIWSrLSvdkmdM5QhCjsnkrRCMs1EkhOuVYOl3GzoF49UQgJmK_c3yoNU8dinHzw/s1600/topology.png" /></a></div>
<br />
In such an environemtn Igor can control the PXE server to modify the configuration for existing hosts (or add configuration for short-living hosts like a VM) to install an oVirt Node image.<br />
After changing the PXE configuration and booting up the host Igor steps back and either waits for a controlled ending of the testsuite (signaled via a RESTlike API) or a timeout. When it receives such a signal it shuts down the host and restores the original PXE configuration.<br />
<br />
So that's a first build-block of how we automated the testing of oVirt Node. I haven't gone into detail how the testcases look like and how we are actually testing our TUI. Also I didn't mention the client which is running on (an edited) oVirt Node image tu actually run the tests.<br />
<br />
Igor can be found <a href="https://gitorious.org/ovirt/igord">here</a> and is intended to be used on a developers machine (or in conjuction with <a href="http://www.jenkins-ci.org/">jenkins</a>).<br />
<br />
p.s.: It is getting interesting when Igor is paired with a client using <a href="https://github.com/tuomasjjrasanen/python-uinput">python-uinput</a> to inject mouse and keyboard events.fabiandhttp://www.blogger.com/profile/13674125182885954901noreply@blogger.com0tag:blogger.com,1999:blog-3511301649044744817.post-59551438404133613752012-10-18T13:58:00.000+02:002012-10-18T13:58:08.364+02:00bobthegnome, gcalctool and vala<div class="separator" style="clear: both; text-align: center;">
<a href="http://git.gnome.org/browse/gnome-icon-theme/plain/src/accessories-calculator.svg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://git.gnome.org/browse/gnome-icon-theme/plain/src/accessories-calculator.svg" width="320" /></a></div>
<br />
<a href="http://git.gnome.org/browse/gcalctool">gcalctool</a> is the friendly calculater in <a href="http://www.gnome.org/">GNOME</a>. And now - after several others (at least cheese, zeitgeist, gnome-games)- it is ported to <a href="http://live.gnome.org/Vala">vala</a>! Wow.<br />
<br />
This didn't happen out of the blue, it was someone actually doing it - <a href="http://bobthegnome.blogspot.de/">bobthegnome</a> and PioneerAxon made this happen.<br />
What does this mean? gcalctool should be easier to maintain and maybe attract even more contributors, as you don't have to deal with the whole <a href="http://www.gtk.org/">boilerplate</a>. And - Vala is gaining momentum. Nice. Cheers.<br />
<br />fabiandhttp://www.blogger.com/profile/13674125182885954901noreply@blogger.com0tag:blogger.com,1999:blog-3511301649044744817.post-78422181899487935312012-09-13T11:49:00.000+02:002012-09-13T18:55:31.450+02:00Opus now/soon in gstreamer-plugins-bad-free<div class="separator" style="clear: both; text-align: center;">
<a href="http://upload.wikimedia.org/wikipedia/commons/thumb/0/02/Opus_logo2.svg/320px-Opus_logo2.svg.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="113" src="http://upload.wikimedia.org/wikipedia/commons/thumb/0/02/Opus_logo2.svg/320px-Opus_logo2.svg.png" width="200" /></a></div>
<br />
Opus is a new audio codec covering a wide range of use cases. You can read more about the codec (at least) <a href="http://en.wikipedia.org/wiki/Opus_%28audio_format%29">here</a> and <a href="http://www.xiph.org/press/2012/rfc-6716/">here</a>.<br />
<br />
If you want to get started with it, just try a <a href="https://admin.fedoraproject.org/updates/gstreamer-plugins-bad-free-0.10.23-8.fc17">freshly rebuild gstreamer-plugins-bad-free package</a> which packages the opus plugin. <br />
You will be able to use the en- and decoders in your normal gst pipeline.<br />
<br />
It should soon land as an update on Fedora near you.<br />
<br />
<b>[Update]</b><br />
The update has landed in updates testing:<br />
<pre class="bz_comment_text" id="comment_text_6">su -c 'yum update --enablerepo=updates-testing gstreamer-plugins-bad-free-0.10.23-11.fc18'</pre>
fabiandhttp://www.blogger.com/profile/13674125182885954901noreply@blogger.com0tag:blogger.com,1999:blog-3511301649044744817.post-90488052264461365912012-09-08T09:34:00.002+02:002012-09-10T10:51:15.808+02:00Easier streaming with presence-0.4.8<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipiQfVugYzTPb9QXJia_HNXQAmAkAwKCEMYjF1SC6NmyCtaelwIwrSOXuv5Qj6h7tlJyHSVo2AnTpJ6LRryEyCEMK4Pis0gcdmRXUxmjpqMWJ_ba2OefZ4pu8Wyad5xKeNWSAGq5dwFeM/s1600/Bildschirmfoto+am+2012-09-04+20:45:06.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipiQfVugYzTPb9QXJia_HNXQAmAkAwKCEMYjF1SC6NmyCtaelwIwrSOXuv5Qj6h7tlJyHSVo2AnTpJ6LRryEyCEMK4Pis0gcdmRXUxmjpqMWJ_ba2OefZ4pu8Wyad5xKeNWSAGq5dwFeM/s320/Bildschirmfoto+am+2012-09-04+20:45:06.png" width="320" /></a></div>
<span id="goog_407905214"></span><span id="goog_407905215"></span><br />
<a href="http://dummdida.blogspot.de/p/presence.html">Presence</a> is a small - but yet flexible - tool to do simple and high-quality streaming (using dirac+vorbis over RTP) in a local broadcast domain.<br />
When not using the MDNS feature this can also be endpoints on any routable network.<br />
Not shown on in the screen shot, but a feature, is picture-in-picture mode for secondary streams.<br />
<br />
Anyhow, this new release (0.4.8) contains an improvement related to publishing a stream. It's now done in two clicks with reasonable defaults, even for low-end machines.<br />
<br />
Install or update it now on Fedora 16/17/18:
<br />
<pre>$ sudo yum clean metadata
$ sudo yum install --enablerepo=updates-testing presence
# or
$ sudo yum update --enablerepo=updates-testing presence
</pre>
<br />
Or - hero-like -using <a href="https://admin.fedoraproject.org/pkgdb/applications/Presence">this one-click technology</a>.<br />
<br />
The release was motivated by my new <a href="http://www.logitech.com/de-de/webcam-communications/webcams/hd-pro-webcam-c920">Logitech HD Pro Webcam C920</a> which is working out of the box on Fedora - so YUV and MJPEG besides the (unsupported) h.264 support.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.logitech.com/assets/41864/2/hd-pro-webcam-c920-feature-image.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://www.logitech.com/assets/41864/2/hd-pro-webcam-c920-feature-image.png" width="291" /> </a></div>
<div class="separator" style="clear: both; text-align: left;">
When looking at the video quality of this camera and two built-in cameras of laptops, this is clearly a big step forward in image quality - So a decent camera is always a good way to improve a video conference.</div>
<div class="separator" style="clear: both; text-align: left;">
As said, the video quality is great - and using MJPEG it can deliver a 720p video with up to 24fps, so ideal for telepresence. </div>
fabiandhttp://www.blogger.com/profile/13674125182885954901noreply@blogger.com5tag:blogger.com,1999:blog-3511301649044744817.post-89495389189638968452012-09-03T16:12:00.002+02:002012-09-03T16:12:55.259+02:00Screenshotting /dev/vcsIf you ever wanted to know how to take a "screenshot" of a VCS (where your login prompt is displayed) you can use the following snippet:
<pre>
cat ../tests/igor/libs/common/vcs.py
#!/bin/env python
#
# bash only:
# su -c 'cat /dev/vcs3 | fold -w $(stty size | cut -d " " -f 2) > /tmp/term'
#
import Image, ImageDraw
import subprocess
import argparse
import sys
def execute(cmd):
proc = subprocess.Popen(cmd, shell=True, \
stdout=subprocess.PIPE, \
stderr=subprocess.STDOUT)
(stdout, stderr) = proc.communicate()
proc.wait()
return str(stdout)
def get_size_of_tty(n):
"""Return the number of rows and cols of tty n
"""
cmd = "stty -F /dev/tty%d size" % n
rows, cols = execute(cmd).split(" ")
return (int(rows), int(cols))
def capture_vcs(n, fold_at):
"""Return the contents of vcs n
Thsi can also be used with (bash) fold -w
"""
tty = "/dev/vcs%d" % n
cmd = "cat %s | fold -w %d" % (tty, fold_at)
return execute(cmd)
def image_from_vcs(n, stridex=6, stridey=12):
"""Create an image from vcs n
"""
height, width = get_size_of_tty(n)
im = Image.new(Image.MODES[6], (width * stridex, height * stridey))
draw = ImageDraw.Draw(im)
nl = 0
screen = capture_vcs(n, fold_at=width)
for line in screen.split("\n"):
draw.text((0, stridey * nl), line)
nl += 1
return im
def screenshot_from_vcs(n, filename, format="png"):
"""Create a screenshot of a vcs and write it to a file
"""
im = image_from_vcs(args.vcs)
im.save(open(filename, "wb"), format.upper())
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Create a screenshot from ' +
'a console.')
parser.add_argument('vcs', type=int,
help='The VCS/TTY to be captured')
parser.add_argument('--format', metavar='t', type=str,
choices=['png'], default="png",
help='The image format')
parser.add_argument('file', metavar='dst', type=str,
help='The destination file')
args = parser.parse_args()
screenshot_from_vcs(args.file, args.format.upper())
</pre>
The images can be used to create a screen capture of your console.fabiandhttp://www.blogger.com/profile/13674125182885954901noreply@blogger.com0tag:blogger.com,1999:blog-3511301649044744817.post-9533525913221345662012-07-05T13:28:00.000+02:002012-07-05T13:30:09.730+02:00Auto bash wrapper creation for python functions and oVirt Node CI testing<br />
<br />
<br />
<center>
<a href="http://www.flickr.com/photos/dippy_duck/3799193224/" title="Well Wrapped von Mr. Ducke bei Flickr"><img alt="Well Wrapped" height="240" src="http://farm3.staticflickr.com/2467/3799193224_93493f8eaa_n.jpg" width="320" /></a>
</center>
<br />
There is currently working going on on bringing <a href="http://ovirt.org/wiki/Node_Testing">CI testing to oVirt Node</a> - our smallish Fedora based "hypervisor".<br />
Enabling automated testing is quite a challenge, because <a href="http://ovirt.org/wiki/Node">Node</a> is not using anaconda/kickstart for installation, works with a read-only rootfs and uses a snack/newt based TUI. Many existing automated testing solutions have problems with some these aspects - because they rely on kickstart or on ATK.<br />
<br />
Anyhow, the <a href="http://gerrit.ovirt.org/gitweb?p=ovirt-node-tests.git;a=tree;f=tcs;hb=HEAD">testcases</a> which are run on Node are typically written in bash or python. There are a couple of common functions that are needed in both languages (e.g. to communicate with the testing server or providing a common logging function).<br />
It's quite error prone to have functions in both languages providing the same functionality, and that was the point where I looked for a method to automatically or "natively" call python functions from bash (not <a href="https://github.com/amoffat/pbs/">calling bash from python</a>).<br />
Searching didn't lead to any good alternative, therefor I've come up with the <a href="http://gerrit.ovirt.org/gitweb?p=ovirt-node-tests.git;a=blob;f=libs/common/common.sh;hb=HEAD">this bash snippet</a> which creates bash functions for all callables of a given python module.<br />
This might not be perfet, but it does the job in our case.<br />
<br />
The TUI testing - while we are at it - is now done using uinput.fabiandhttp://www.blogger.com/profile/13674125182885954901noreply@blogger.com0tag:blogger.com,1999:blog-3511301649044744817.post-7587734722653379002012-06-14T15:27:00.003+02:002012-08-31T12:42:24.665+02:00Doing PXE with libvirt / virt-manager<center>
</center>
<center>
</center>
<center>
<a href="http://www.flickr.com/photos/elijahporter/5308482163/" title="pxe_01 by Elijah Porter von _ElijahPorter bei Flickr"><img alt="pxe_01 by Elijah Porter" height="240" src="http://farm6.staticflickr.com/5203/5308482163_bd02197ee6_m.jpg" width="189" /></a>
</center>
<br />
<br />
Installing hosts using PXE is a well known thing.<br />
Why not do it within libvirt? Or: How do I do this in libvirt?<br />
Do I need to setup my own dhcp server to pass the bootp option? Nope.<br />
Just use libvirts default dnsmasq and add the bootp dhcp option.<br />
<br />
All you need to do is editing the default network configuration using virsh (no way o do it from virt-manager).<br />
<br />
<pre># virsh net-destroy default
# virsh net-edit
Now add "<bootp file='/pxelinux.0' server='$PXESERVERIP' />" under /network/ip/dhcp
# virsh net-start default
</pre>
<br />
All done.<br />
Just have a look at the definition <a href="http://libvirt.org/formatnetwork.html#elementsAddress">here</a> to read about more features.fabiandhttp://www.blogger.com/profile/13674125182885954901noreply@blogger.com4tag:blogger.com,1999:blog-3511301649044744817.post-28482272819102521202012-05-30T16:29:00.000+02:002012-05-30T16:37:48.726+02:00Using oVirt Node with virt-manager<br />
<center><a href="http://www.flickr.com/photos/sommerferientag/6412811223/" title="Untitled von Northern Quarter bei Flickr"><img alt="Untitled" height="212" src="http://farm8.staticflickr.com/7151/6412811223_f7c8698e69_n.jpg" width="320" /></a></center><br />
<br />
Virtualization is already an ubiquitous technique.<br />
Fedora provides packages for many of the Linux virtualization components through the yum virtualization group.<br />
<pre>$ sudo yum groupinstall virtualization
</pre>
<br />
Well, anyway - When doing virtualization you need a <i>host</i>, hosting your virtualized guests. If you don't want to do this on your local machine - because it hasn't got the capabilities, isn't beefy enough, ... - you can use <a href="http://www.ovirt.org/">oVirt</a> Node as a hypervisor on a second machine which you can easily manage from Fedora using virt-manager.<br />
This can be useful for a small working group or developers.<br />
<br />
oVirt Node is based on Fedora and optimized to quickly get a hypervisor up an running. You actually do not need to care about all the constraints - networking, services, storage, ... - you need to consider if you setup a hypervisor yourself (which can also be done with Fedora). It is also stripped down (~150MB) to preserve most of the RAM and storage space to the virtualized guests.<br />
<br />
Anyhow:<br />
<ol>
<li><a href="http://ovirt.org/releases/stable/binary/">Download</a> oVirt Node </li>
<li>Install it on a machine with a recent Intel or AMD processor</li>
<li>Log into the installed Node using admin and</li>
<ol>
<li>Configure a network interface </li>
<li>Press F2 to drop to the console and run</li>
<li><code>/usr/libexec/ovirt-config-password</code> </li>
<ol>
<li>set a root password</li>
<li>enable SSH access</li>
</ol>
</ol>
<li>Optional: <code>ssh-copy-id</code> your ssh key to node to allow a password-less login </li>
<li>User virt-manager to create a new connection (File -> New Connection) to the installed Node (IP can be found on the Node's Status page)<br />URI: <code>qemu+ssh://$OVIRTNODE/system</code></li>
</ol>
($OVIRTNODE needs to replaced accordingly)
<br />
Actually oVirt Node is intended to be used with oVirt Engine, which can manage from one up to a couple of hundreds (?) of Nodes.<br />
But the Engine setup itself is not as easy as just using virt-manager :)<br />
At least - Engine would be the next step to get used to the oVirt components.<br />
<br />
P.s.: You can use <code>virsh vol-upload</code> to get some data onto the node.fabiandhttp://www.blogger.com/profile/13674125182885954901noreply@blogger.com2tag:blogger.com,1999:blog-3511301649044744817.post-74924303993651631762012-05-29T10:51:00.000+02:002012-05-29T10:51:54.976+02:00Booting Fedora using Qemu and EFI<br />
<center>
<a href="http://www.flickr.com/photos/il_tommy/3320152510/" title="La Locura! von il_tommy bei Flickr"><img alt="La Locura!" height="160" src="http://farm4.staticflickr.com/3599/3320152510_5e57d34239_m.jpg" width="240" /></a>
</center>
Thanks <a href="http://www.harald-hoyer.de/personal/blog/debugging-dracut-on-your-live-system-with-qemu">Harald</a>.<br />
After reading accross Harald's blog post mentioned above, I tried to boot one of the recent Fedora 17 composes. Sadly Qemu refused to find the attached (emulated) CD drive, but passing my primary hda (as a snapshot) worked like a charm: Fedora 16 ran in qemu with an EFI bios (OVMF).fabiandhttp://www.blogger.com/profile/13674125182885954901noreply@blogger.com0tag:blogger.com,1999:blog-3511301649044744817.post-76787179513629079252012-05-15T11:19:00.000+02:002012-05-15T11:27:29.433+02:00Auto-Installing oVirt Node<br />
<center>
<a href="http://www.flickr.com/photos/davemorris/35690071/" title="technical support von Daveybot bei Flickr"><img alt="technical support" height="226" src="http://farm1.staticflickr.com/32/35690071_d108779e3d_n.jpg" width="320" /></a>
</center>
<a href="http://www.ovirt.org/">oVirt</a> - maybe you've heard about it. It's a project to create an open IaaS "virtualization management system" - So a bit like OpenStack, but different.
<br />
Fedora is the base for oVirt's hypervisor: "Node". Basicaly this is a stripped down Fedora, enriched with a couple of packages to prvide just enough to host some virtual guests and do some basic configuration.<br />
<br />
Personally I'd like to use Node in conjunction with Gnome Boxes or virt-manager. But this is currently not possible - but we might get closer to it when solving <a href="https://bugzilla.redhat.com/show_bug.cgi?id=810272">this bug</a>.<br />
Anyhow, to quickly <a href="http://www.ovirt.org/get-ovirt/">install oVirt</a> Node you just need to add two (or three) additional kernel arguments:<br />
<pre>BOOTIF=ethX storage_init
</pre>
You should/could also add
<br />
<pre>adminpw=$ADMINPW</pre>
<br/>
<code>ADMINPW=$(openssl passwd -salt SALT)</code> is a salted password, so you can log in (as <code>admin</code>) after the installation. Alternatively you can boot into single mode to reset the password.<br /><br/>
The parameters above install oVirt node without user intervention, setup networking on ethX and <i>erase all data on the disk</i> and create a defautl (lvm based) partitioning scheme.<br />
The next step would be adding Node to oVirt Engine - or wait until it can be managed by virt-manager, which is much quicker to set-up :)fabiandhttp://www.blogger.com/profile/13674125182885954901noreply@blogger.com2