Re: [Soc-coordination] GSoC begins, some important information

2011-06-03 Thread Ana Guerrero
On Fri, Jun 03, 2011 at 12:38:17AM -0500, Rudy Godoy Guillén wrote:
 Hello Ana, I'm sorry for being late on this. I'll write a report as soon as
 I can, I've also a pending blog update.
 
 quick status: we are doing fine, and this weekend I might get to some
 milestone.


¿Has leido los emails? No has respondido a nada de lo que he preguntado :)
Ana

 thanks!
 
 2011/6/1 Ana Guerrero a...@debian.org
 
 
  First, little reminder, we are in the second week of GSoC
  and your first report is expected this weekend, between Friday 2
  June and Monday 6 June.
 
 
  On Mon, May 23, 2011 at 10:47:21PM +0200, Ana Guerrero wrote:
   - Please, send me in a private email how to contact you in case
   we don't have news from you. At least a phone number (include
   all the needed prefixes for international calls!).
 
  Nathan, Rudy, I haven't hear from you yet.
 
 
   - If you haven't yet, please add your project proposal to
   the Debian wiki so everybody interested in the Debian community
   can know more about your project and maybe even help you with
   ideas and suggestions.
 
  I can see right now:
 
 
  * Automated Multi-Arch Cross-Building and Bootstrapping
  This was a late submission and it never made into the wiki. Add it please.
 
 
  APT/Dpkg Transaction Ordering for Safety and Performance
 
  http://wiki.debian.org/SummerOfCode2011/AptOrderingCodeImprovements/ChristopherBaines
 
 
  DebDelta APT Native Integration
 
  http://wiki.debian.org/SummerOfCode2011/AptDebdeltaIntegration/IshanJayawardena
 
 
  * Dpkg Declarative Diversions
  http://wiki.debian.org/SummerOfCode2011/DeclarativeDiversions/SamDunne
  *it this up-todate?*
 
 
  * Backend Tools and Infrastructure for DEX
  http://wiki.debian.org/SummerOfCode2011/DEX/NathanHandler
  *this project was asked to concrete more the deliverables in melange and it
  was never updated. Update please :)*
 
 
  Jigsaw Modularized Java in Debian
  http://wiki.debian.org/SummerOfCode2011/Jigsaw/GuillaumeMazoyer
 
  Python Multi-Build for Python Extensions Packaging
  http://wiki.debian.org/SummerOfCode2011/PythonMultibuild/mesutcankurt
 
  Debian Teams Activity Metrics
  http://wiki.debian.org/SummerOfCode2011/TeamFeatures/SukhbirS
 
 
  * Compute Clusters Integration for Debian Development and Building
  http://wiki.debian.org/SummerOfCode2011/BuildWithEucalyptus/RudyGodoy
  *it this up-todate?*
 
 
  If you project name starts with a * please, update/add it!
 
  Ana
 
 
 
 
 -- 
 Rudy Godoy
 
 Computer Science Student
 San Pablo Catholic University, Arequipa-Peru (http://www.ucsp.edu.pe)
 http://htu.pe - Internet Business Software

___
Soc-coordination mailing list
Soc-coordination@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/soc-coordination


Re: [Soc-coordination] GSoC begins, some important information

2011-06-03 Thread Ana Guerrero

And... the previous emails was meant only to Rudy =)
Ana

___
Soc-coordination mailing list
Soc-coordination@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/soc-coordination


[Soc-coordination] Debdelta APT Integration - Report 1

2011-06-03 Thread Ishan Jayawardena
Hi,

My project is integrating debdelta natively to APT. I added my project
proposal to the Debian wiki [1], and there is also a wiki page created
by my mentor in the Ubuntu wiki[2], Michael Vogt, which describes the
design and the implementation plan in detail.

I spent the community boding period to learn the background knowledge
needed for the project. I have been updating Michael regularly and
he's guiding me through my work. First, I refreshed my knowledge about
debdelta by reading its new documentation[3]. Then, I started studying
the design and the internals of APT by reading and debugging its code.
My goal was to find out the functionality of apt when it executes a
download/update process and the classes/functions responsible for it
so that I can do the initial integration and test it. I concentrated
on the fetcher and the line based communication protocol from APT to
the helper methods such as http, file etc. Then I added the new
method/debdelta method and tested it with a simple shell script. The
shell script runs the debdelta method with a .deb and a .debdelta as
the input and verify the resulting deb. To get an idea about how to
write the debdelta method, I studied the existing rred implementation.
This work is related to the first stage mentioned in [2], and
currently I am writing the code to move the resulting deb after
patching from /var/cache/apt/archives/partial to
/var/cache/apt/archives.

Before I started the development, I set up my development environment.
I configured a separate directory as the root for my development
version of APT and created a local repository with sample .deb and
.debdelta files and added an entry for it in the sources.list file to
make APT work in a sandbox environment to keep my original system
intact. I looked into the test/integration/framework script to learn
how to set up a local archive for testing. My APT branch is available
at [4] and I am planning to update it each time I complete a
considerable milestone in the development.

My next plan is to write the required subclasses for pkgAcquire class
that can fetch/handle debdelta files and debdelta index files and
adding suitable functions(such as custom600Headers()) to them to work
with pkgAcquire::Worker::QueueItem() function. The classes that I am
planning to add are,
class pkgAcqDebdeltas : public pkgAcquire::Item {} for
fetching/handling the debdelta files.
class pkgAcqDebdeltaIndex : public pkgAcquire::Item {} for handling
the index file of the debdelta files.

[1] 
http://wiki.debian.org/SummerOfCode2011/AptDebdeltaIntegration/IshanJayawardena
[2] https://wiki.ubuntu.com/DebdeltaAptIntegration
[3] http://debdelta.debian.net/html/index.html
[4] https://code.launchpad.net/~udeshike/apt/apt-ishan
-- 
Regards,
Ishan Jayawardena.

___
Soc-coordination mailing list
Soc-coordination@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/soc-coordination


[Soc-coordination] Jigsaw - Report 1

2011-06-03 Thread Guillaume Mazoyer
The beginning of this Google Summer of Code has been busy and pretty
cool. Not a lot of code was produced but I did learn a lot of things.

During this GSoC I will work on the next generation JDK. This means that
I will (and I already have) compile the JDK. That's pretty awesome but
it requires a lot of power. That's why Tom Marble created me an account
on his 8 CPUs machine to help me.
Since I'm probably going to sign some packages, I created a new GPG key
with a 4096 RSA strength.
My old key was:

pub   1024D/F144A319 2008-10-18

And the new key is:

pub   4096R/EE2BBBC7 2011-05-03

I cross signed my keys using this great tutorial[1]

I read some documentation about Jigsaw[2] and watch Tom's talk at
DebConf 10[3]
I have spent a little more than on week to understand the current
OpenJDK packaging to be able to rebuild it. I have learnt from where do
the sources come from. The current packaging is a little hard to
understand. There are sources that come from IcedTea[4], OpenJDK[5], and
more[6].

After being able to rebuild the OpenJDK 6 package, I have downloaded the
source of the OpenJDK 8 and Jigsaw. I used the Mercurial forest to get
the sources.

For OpenJDK 8:
- hg clone http://hg.openjdk.java.net/jdk8/jdk8 jdk8
- cd jdk8  sh get_sources.sh

For Jigsaw:
- hg clone http://hg.openjdk.java.net/jigsaw/jigsaw jigsaw
- cd jigsaw  sh get_sources.sh

I have managed to build the sources of OpenJDK 8 and Jigsaw using the
same steps:
- cd jigsaw
- . jigbuild
- . jdk/make/jdk_generic_profile.sh
- export ALLOW_DOWNLOADS=true
- make sanity
- make all

Jigsaw specific:
- make modules-sanity
- make modules

Each build took several minutes. But they were successful. Tom helped me
a lot to build OpenJDK 8 and Jigsaw by giving me a solution. For
example, after getting the Mercurial forest, there were still missing
source files and the build failed. Tom told me that I needed to export a
environement variable: ALLOW_DOWNLOADS=true.
After building Jigsaw, I was able to see that the version string is not
legal in Debian and that is a real problem.
I have written some simple Hello World examples to compile and run with
Jigsaw. To modularize a program, it needs to contain a module-info.java
files. This file includes the modules needed to run the program and the
main class to run. For a classic hello world, the module-info.java files
looks like:

module test.hello @ 1 {
requires jdk.base @ 7-ea;
class test.hello.Main;
}

Tom gave me some packages to build: jtharness and jtreg. I succesfully
built jtharness using CDBS[7] and its Ant helper but I'll have to
repackage it to use javahelper instead of CDBS. I still don't try to
build jtreg because it requires javahelper to be built.

My next plan is to get jtharness and jtreg packaged with javahelper soon
and understand what modules does what in Jigsaw. Understaning modules
will help me to write some more complex examples. I hope to start
working on Jigsaw a little more soon (when I my internship will end
[next week]).

[1] http://people.debian.org/~anibal/ksp-dc10/ksp-dc10.html
[2] http://openjdk.java.net/projects/jigsaw/
[3] http://penta.debconf.org/dc10_schedule/events/558.en.html
[4] http://icedtea.classpath.org/download/source/
[5] http://download.java.net/openjdk/jdk6/
[6] http://cacaovm.org/
[7] http://roku.info9.net/~guillaume/jtharness/

--

Guillaume Mazoyer


signature.asc
Description: Digital signature
___
Soc-coordination mailing list
Soc-coordination@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/soc-coordination

[Soc-coordination] Declarative Diversions - Report 1

2011-06-03 Thread Sam Dunne
The following is the design spec so far for this project. It has to be
fleshed out a bit more but most of the basic structure is there. Anyone who
cares to give input is more than welcome.
A further update will be posted on Monday to my blog, planet debian, the
wiki page and to the dpkg mailing list.

DECLARATIVE DIVERSIONS
==

Introduction

A diversion is when it is possible to have dpkg not overwrite a file when
it
reinstalls the package it belongs to, and to have it put the file from the
package somewhere else instead.

Declarative diversions involves a new control file with a declarative
syntax which dpkg will parse and process directly as part of the package
unpack
and removal phases, eliminating the problems resulting from non-atomic
handling of diversions.


--
Topics
--
There are a number of topics involved in implementing this kind of project

 * What syntax do we use for the new control file?
 * What dpkg does with the control file
 * How do we handle diversions to a non-existant directory?
 * How do we order unpacking a new package which adds a diversion?
 * How do we order removing a package which had a diversion?
 * How do we handle errors?
 * What happens to dpkg-divert?


-
Details - Control File Syntax
-
It will conform to RFC2822 style with the following format:
 * Divert-From:
 * Divert-To:
 * Blank lines and lines beginning with '#' will be comments

'Divert-To' will be optional and if it is ommitted then files being
diverted
will have their filename changed to 'file.distrib'

The above style has it's advantages, one of the main ones being that there
is
no need to escape whitespace within filenames.


---
Details - Control File Handling
---
Within control.tar.gz the file should be named 'diversions'
This file is then copied to /var/lib/info/$package.diversions
This is ensuring we have a copy of the control file just in case it is
needed.
Any input on this subject would be appreciated.


-
Details - Handling Diversions to non-existant directories
-
Diverting files to directories that don't exist can cause a number of
problems.
If the package does not 'own' the directory it may be left orphaned on
removal of the package
The package is responsible for ensuring the availability of the target
directory in the unpack phase.


---
Details - Ordering Requirements
---
 =Unpacking a new package that adds a diversion
   *1. Unpack folders
   *2. Add diversions
   *3. Unpack files
   ==Notes==
   Performing diversions this way avoids trouble with creating folders and
   accidentally overwrtiting the wrong version of files.
   If we don't use this method the problems that can occur include creating
   folders before the package itself would create them which may cause
   permission errors.
   Another major problem would be extracting a new version of the file and
   overwriting the old one.
   This might cause the wrong version of the file to be diverted and the
   package to break.


 =Removing a package which had a diversion
   *1. Remove files
   *2. Remove diversions
   *3. Remove folders
   ==Notes==
   This ensures that all files, diversions and folders are removed correctly



Details - Error handling

Errors in diversions will have to handled with a great deal of care due to
the fact that if they are not the package could be broken.
This means that a great deal of checks must be done to ensure that all the
files
can be diverted properly before any actual diverting takes place. If they
can't
the package installation/update must be stopped and rolled back to avoid
the
package being installed incorrectly or broken.


---
Details - 'dpkg-divert'
---
When we impliment the new diversion method we should keep the current
dpkg-divert. This allows maintainers to catch up with the new method
without
breaking their packages. It also allows maintainers to perform some
operations
that aren't support by the new method.



Example Usage #1

The file to be diverted is '/usr/share/foo'
It needs to be moved to '/usr/share/bar'

The syntax of the control file would be:

#Start File
Divert-From: /usr/share/foo
Divert-To: /usr/share/bar
#End File



Example Usage #2

In this example the maintainer doesn't want to move the file to any specific
folder

The syntax of the control file would be:

#Start File
Divert-From: /usr/share/foo
#End File

This would divert the file to '/usr/share/foo.distrib'


-
Footnotes
-
RFC2822 Guide:
 * http://www.faqs.org/rfcs/rfc2822.html

First Email Thread on Declarative Diversions (First 

[Soc-coordination] Computer clusters integration for Debian development - report 01

2011-06-03 Thread Rudy Godoy Guillén
Hello, this is the official project report for the Debian GSoC admins and
everyone. It's been few days since the official coding phase started. Most
of the time I've been figuring out the details regarding integration of
non-x86 images to the Eucalyptus IaaS and working on the ARM image, as
you'll learn later. I'm also in the process of starting to design the set of
tools we'll be delivering as part of the project.

The project's goal is to be a useful resource for Debian developers and
porters. I've joined some porters list in order to learn what are the things
they are struggling with and how the project can help to address them. I'll
be starting a wiki page with such topics.

Bonding period:
Bonding period has been more fruitful than I expected. As mentioned in my
previous post, Steffen and I got in touch with the Eucalyptus team, since
they show their early interest on the project. We are coordinating
cooperation between our teams. Besides my mentor and I defined to start
working on the ARM image. Coordination went OK. We'll be having meetings
every two weeks.

Project Status:
Resuming Dominique's work I began working on the ARM image. Aurélien's
work[2] was a great resource. Currently I have a working and updated Debian
testing ARM image using the versatile kernel that can be used under
qemu-arm. I'm currently making tests and figuring out the next phase which
is cloudify it. Over this weekend I expect to finish on that side and then
began on the design and implementation of the tools that will be the
project's result.

Until now I haven't faced much issues, but the Eucalyptus part since the
docs are targeting x86 and amd_64 archs. However I think I can run qemu-arm
on top. I'll talk to them about the idea.

Future plans:

week 3:

- Finish tests with the ARM image.

- Design the base tool-set, thinking integration with dpkg-buildpackage and
qemubuilder[3].

week 4-8:

- Write the necessary code.

mid-term evaluation.


Other bits:

Latest days have been quite busy for me, since I'm still have to attend
class, my semester ends in five weeks. This week was quite overwhelming with
media, my University published an
articlehttp://www.ucsp.edu.pe/index.php/noticias/46-notas-de-prensa/1687-alumno-ucsp-desarrollara-proyecto-para-google.html(Spanish)
about me and the program. I'm the third student of the CS school
participating in GSoC, in the past we had Gentoo Project and KDE students.
Later, a local Cable TV program interview me on the same matter, it went
fine. I managed to talk about Debian and what we do (we get free Advertising
yay!) :) also about Google's Summer of Code program and invited students to
participate both in FLOSS projects and the program. Still don't know if they
have put it on air, I think it will be next week.

Resources:

1- http://wiki.debian.org/Cloud/CreateImage

2- http://www.aurel32.net/info/debian_arm_qemu.php
3- http://wiki.debian.org/qemubuilder

-- 
Rudy Godoy
http://stone-head.org
___
Soc-coordination mailing list
Soc-coordination@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/soc-coordination

[Soc-coordination] Backend Tools and Infrastructure for DEX - Report 1

2011-06-03 Thread Nathan Handler
Hello everyone,

Here is my first official Google Summer of Code report. As I still had
classes, the first week of coding was rather slow. However, after my
first phone call with my mentor, Matt Zimmerman, things started to
pick up. I spent most of my time working on a dashboard/portal for the
Debian Derivatives Exchange (DEX). We decided that the best approach
to this would be to store as little information ourselves as possible.
Instead, we will try to pull most of our information from other
sources, such as Debian's BTS. The main advantage to this is that
package maintainers do not need to change any of their workflows, but
they still get to benefit from DEX's work. Currently, I have a python
script that gets a list of usertags and bugs for
debian-derivati...@lists.debian.org from the BTS. This script will end
up getting run by cron. It stores the information it gets in static
HTML files. Finally, JQuery and Javascript are used to present the
final dashboard to the user. I created a mockup showing how this looks
[1]. I also have a functioning website that looks and acts like the
mockup, but the code is not publicly available yet (see below).

DEX uses Alioth to host its git branches and website. I have spent
some time trying to familiarize myself with the recent changes that
have taken place on Alioth, as well as trying to figure out the best
way to store and execute my script to generate the website. So far, it
looks like people are still deciding on the best way to handle having
websites that are updated from VCS hooks (due to things being split
between vasks and wagner). I will continue to look into this, and
might try using an alternate host until things settle down.

Next, I plan to work on updating the dashboard to provide a way to
edit, store, and display certain extra fields of information. This is
necessary for certain pieces of information that are not appropriate
for adding to bugs and in a few other cases. I will also be taking
some time to talk to a few people who were active contributors to the
last DEX project. This will allow me to learn more about their
experience, find out what changes they feel should be made to make
things run smoother, and get feedback on my current Summer of Code
work. Finally, although I have been posting updates on my Summer of
Code work to my blog [2][3], Matt thinks that having all of this
information in one place will be useful. As a result, I will be
creating another wiki page about the project that will contain all of
the information people need to know. This page will be updated as the
summer progresses. I am also hoping to have my code available in a
public VCS by the time of my next progress update so that people can
check it out and provide feedback.

In addition to the dashboard, I will be working on creating a few
other tools to assist with the creation and tracking of new DEX
projects. I will also be coming up with a way to generate graphs to
visually allow us to track our progress on projects versus time as
well as show the work done by people at the individual level. This
last task is part of a goal to get more people involved in the DEX
project.

While we may only be a few weeks into the actual Google Summer of
Code, I have already learned a lot of new things. I am looking forward
to working more with Matt and other members of the community over the
course of the summer.

Thanks,
Nathan Handler


[1] http://nhandler.files.wordpress.com/2011/05/dexdashboard.png
[2] http://nhandler.wordpress.com/2011/05/28/google-summer-of-code-update-1/
[3] http://nhandler.wordpress.com/2011/05/31/google-summer-of-code-update-2/

___
Soc-coordination mailing list
Soc-coordination@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/soc-coordination