An announcement for GNOME users in openSUSE: the repository GNOME:Contrib is now dead. This used to be the development branch of GNOME packages living in Contrib. Packages previously in this repository have all been pushed to Factory. If this is in the list of your subscribed repositories, please remove it now (using zypper rr <reponame> or from YaST, etc.), because the repository itself will be deleted from the download.opensuse.org server shortly.
Archive for June, 2012
[gsoc] osc2 client – summary of week 5
June 26th, 2012 by Marcus HüweHi,
here’s a small summary of the 5th (coding) week. Last week I spent
most of my time with working on the cpio module. Finally I ended
up with a complete rewrite of osc’s “old” cpio module. The
cpio implementation details are taken from the cpio 2.11 package.
Currently only the “new ascii” format is supported and we can
only handle regular files (this is sufficient for our needs). Here’s
a small example how to use it:
# cpio_open is just a convenience method for CpioArchive(filename=fname)
with cpio_open(fname) as archive:
for archive_file in archive:
# print filename
print archive_file.hdr.name
# print contents
print archive_file.read()
It’s also possible to pass a file-like object to a CpioArchive
instance (in this case we do not need to use the with statement).
Also it can be “easily” enhanced to support different cpio formats
(one just have to write the specific ArchiveReader and ArchiveWriter
classes:) ). The code is available at [1] and the testcases at [2].
Todo for this week:
* finish the build module
* start with working on the package fetching code
Marcus
[1] https://github.com/openSUSE/osc2/blob/master/osc/util/cpio.py
[2] https://github.com/openSUSE/osc2/blob/master/test/util/test_cpio.py
[gsoc] osc2 client – summary of week 3 and 4
June 19th, 2012 by Marcus HüweHi,
here’s a small summary of the 3rd and 4th (coding) week . First of all I
wasn’t able to do lots of work in week 3 and 4 so I’m still working on
the new build module for the osc2 library.
The initial plan was to copy/reuse some of the existing modules from the
(old) “osc” like the cpio [1] and packagequery modules. But I decided to
refactor/rewrite cpio module for the following reasons:
- “save” disc space:
In our scenario we retrieve a cpio archive from the api (which contains
binary packages for example). The old cpio module expects a filename
in order to “unpack” the archive – that is the file has to be stored on
disc first. Consequently approximately 2 * of free disc
space is needed.
The new idea is that we pass a file-like object (in our case an object
which inherits from “AbstractHTTPResponse”) to the cpio module and
unpack the archive “on the fly” (without storing the http response
on disc first). - have testcases:
The old cpio module has no testcases (because some time ago I didn’t
follow the TDD approach;) ). For nearly all modules in osc2 there exist
testcases (white-box tests) thus it would be nice if we have some
testcases for the cpio module, too (theoretically we could add some
black-box tests (the current methods aren’t really testable thus
white-box tests aren’t possible)). - have a nice pythonic interface:
The new interface will look like this:
from cpio import cpio_open
# let "f" be a file-like object (for instance a http response)
with cpio_open(fobj=f) as cpio_archive:
for a_file in cpio_archive:
# store file (with correct permissions etc.) in os.curdir
a_file.write(os.curdir)
# alternatively it's also possible to read some data (instead of
# writing it to disc) via a_file.read(len)
We will also support a plain filename in cpio_open.
Currently the cpio module will only support the “new ascii” (ascii SVR4
no CRC) format and regular files (that’s sufficient for our needs). But
it will be possible to simply pass in a class for a different format
(that is no code has to be altered in order to support a new format).
Finally this will be finished by the end of this week.
If you have any questions or suggestions please tell me:)
Marcus
[1] https://github.com/openSUSE/osc/blob/master/osc/util/cpio.py
New blog
June 7th, 2012 by Javier Llorente[gsoc] osc2 client – summary of week 1 and 2
June 4th, 2012 by Marcus HüweHi,
first of all I’m happy that I was accepted for GSoC again. The goal of this year’s project is to enhance
the existing osc2 library which was developed during last GSoC. Additionally I’m going to work on a new osc2 client. For the details have a look at the proposal (or just ask:) ).
Here’s a small summary of the first and second (coding) week. Unfortunately I was a bit busy with university (as usual…) and I just implemented the missing code for the “Request” class. Now it is possible to accept, decline etc. reviews and requests. Example
req = Request.find('123')
req.accept(comment='looks good')
# or accept the second review
req = Request.find('42')
review = req.review[1]
req.accept(comment='ok', review=review)
As usual the test driven development approach is used which worked quite good in the last year.
Todo for this week:
- add a build module to the osc2 library which can be used to build a package (basically a wrapper around the “build” script)
KDE3 gets Udisks2 backend
June 2nd, 2012 by Ilya ChernykhThanks to exceptional work by Serghei Amelian KDE3 has recently gained an Udisks2 backend (earlier than KDE4 did btw!). The Udisks2 backend is capable of operation autonomously or in conjunction with udisks-glue. Unfortunately the autonomous operation is still not perfect and requires altered polkit rules.
To switch the Udisks2 backend on and off, go to Peripherals->Storage Media->Advanced in KDE control center.