Fedora JBoss Spin – GSOC 2012 update 3

This is the third weekly installment of my GSOC blog series. More info on the progress of the Fedora JBoss Spin can be found on the Fedora wiki.

As I mentioned last week, this week would see me inactive until later in the week. Unfortunately, I didn’t get back to normal until Friday morning, so here’s a short summary of what I’ve been doing since then.

Friday

When catching up with my emails, I got a message from rel-eng on the ticket I had submitted last week regarding the buildroot override: it’s now a self service procedure, so obviously wherever I read about it on the wiki is a little out of date! I created it, and then Mikolaj Izdebski helped me out a lot by reviewing the wsil4j package that I was waiting on. Again, this took a few iterations before it was in an acceptable state to be pass the review stage, and I learned more each time.

After that, I got started on making an initial version of the kickstart file for the spin, as this weekend is what was set for the alpha release. My first few attempts at this were unsuccessful, and I was getting not-altogether-helpful error messages.Everything would work fine, until I would add the Fedora Eclipse yum group. I had no real idea why it was failing here, as package groups are widely used in kickstart files. I didn’t get very far with this on Friday, as each try takes a significant amount of time and data!

 

Saturday

I continued with trying to get the eclipse group to work with the kickstart file, and eventually I made a breakthrough: I was referring to the package group the wrong way.With yum, there are two ways to install a package group. In the case of the Fedora Eclipse group, the most explicit way would be yum groups install Fedora\ Eclipse; with the alternative way being yum install @eclipse. In the kickstart file, I was trying a horrendous mix of the two: @Fedora Eclipse. I’m not exactly sure how to get the @name for package groups, usually I install by getting a list of all groups with yum groups list, but that doesn’t provide the short name. I’m not sure how I figured out @eclipse, it may have been a guess.

Since none of the JBoss Tools are ready yet, they obviously can’t be included in the spin, so for now it’s similar to the default Fedora live desktop spin with GNOME 3. The most notable differences are that it includes the Eclipse IDE, with the webtools packages that are packaged for Fedora thus far; and also JBoss AS 7. These are sizeable additions, so at around 1.3GB, the spin is already too large for a CD. The other changes that I’ve included are just to include some tools that I think could be helpful for a JBoss developer: git, svn, cvs, and mercurial, and xchat. I also modified the favourites menu, as can be seen in the screenshot below. I’ve put the kickstart file online here.

Sunday

Today I got back to trying to package the eclipse-wtp-jeetools that I had started. Thankfully, there are not as many patches needed for this as there were with eclipse-wtp-webservices! It mostly just needed some shuffling of the feature.xml file. There’s one plugin that is still proving problematic, so for the moment, it’s commented out, and not being built. I eventually got it to build anyway, and created a working spec file for the package. I won’t submit it for review yet until I communicate with some of the wise people of the Java SIG, and see if they have an solution to the issue regarding the plugin that refuses to build.

 

That’s all for this week, I’m sure the coming week will be a busy one!

Fedora JBoss Spin – GSOC 2012 update 2

This is the second weekly installment of my GSOC blog series. More info on the progress of the Fedora JBoss Spin can be found on the Fedora wiki.

This week was quite productive I think! There were of course points at which I was tearing my hair out, but the Fedora Java SIG were always able to shed a light on my problems. Here’s a day-to-day breakdown of what I’ve been doing since the last update.

Monday

On Monday, I drew up spec files for my first two packages! uddi4j and wsil4j, are both relatively small packages, but they are required for eclipse-wtp-webservices. Marek Goldmann, my mentor, reviewed the first one, and by Wednesday we had a package of sufficient quality for Fedora! wsil4j depends on uddi4j, so it was necessary to wait a while before getting a review for it. I actually thought that uddi4j would need to be in fedora stable repos before a review could be done on a package that depends on it, but apparently not always! I filed a buildroot request with rel-eng today, so hopefully I can get it reviewed soon.

Tuesday

I installed the packages that I made on Monday, locally through yum, and tried again to build eclipse-wtp-webservices. I found another dependency that seemingly wasn’t being satisfied, javax.activation. I found a library called geronimo-activation and drew up a quick spec file, and sent it in for review. I later found out that that was in vain, as javax.activation is now provided by the jvm. After that, I was getting some quite strange problems (this was one of the moments that I was tearing my hair out!), and I had no idea what was going wrong. I spoke with some of the experts in #fedora-java on freenode, and it got me thinking that it’s possible that some other packages in fedora might provide what I’m looking for, but have problems. I found one of those problems, fixed and made patches for it, and submitted the patch to bugzilla, here.

Wednesday

On Wednesday, I found another stumbling block with an already-packaged-in-fedora software that I needed, so I patched that, and submitted the patch here. Then I finally got eclipse-wtp-webservices to a stage where it got to the compilation stage of the build. I was far from out of the woods here though, as there were many compilation errors. I started looking into these, and creating patches for them. The reason for most of the compilation problems, was that some of the libraries that the plugins were depending on, were old versions, and we’ve only got the ‘latest-and-greatest’ in Fedora, which have lots of additional abstract methods that need to be implemented, but weren’t being, in the plugins in question.

Thursday

The aforementioned uddi4j package from  Monday was now in a condition that it could be submitted to the fedora repositories, so Marek helped me with all of the stages in getting it there. After that, I continued patching up the eclipse-wtp-webservices stuff. As this was different from just patching a spec file, or OSGi manifest for a fedora package, I decided to ask the fedora-devel mailing list for advice. I wasn’t really sure what to do, since after I would fix a number of errors, and try to rebuild, an even higher number of errors would appear this time (another one of the hair-tearing-out-of moments), and the number of patches was growing steadily. Having heavily patched stuff doesn’t seem to align very well with the Fedora way, of sticking closely to upstream. As it’s really my first time patching anything to this degree, I was unsure as to what to do. Maybe upstream were sticking to older versions of dependencies for good reasons? Maybe I was causing a lot of additional problems with my patches? The fact that I’m doing this as part of GSOC, where I’ve got some time constraints, I was also unsure whether I could wait for upstream to implement my patches so that I could make a fedora rpm. Thanks to Aleksandar Kurtakov (who is always very helpful), who replied quickly and put my mind at ease.

Friday

I found a bug in the OSGi manifest of the uddi4j package, so I fixed that and submitted it as an update. This again was a first, updating a package, and not having to submit it for review! I also eventually got to the end of the compilation errors in eclipse-wtp-webservices. I was quite surprised, I didn’t expect it to build. When I saw BUILD SUCCESSFUL, my first reaction was “This error message is different to the others”; then I thought that I must have done something wrong (which I guess is still entirely possible!

Saturday

I spent most of Saturday drawing up the spec file for eclipse-wtp-webservices. It was the largest one that I’ve done to date, with the most patches, so it took a while. I found it very useful to get ideas from the other eclipse-wtp-* packages that we already have in Fedora. By the end of the day, I had one that I was happy with. It was quite late though, so I thought it best to sleep, and have a quick look over it in the morning with fresher eyes.

Sunday

Today I fixed a couple of tidbits in the spec file from yesterday that I got from rpmlint. I submitted it for review, and I also installed it locally, so I could get on to the next step. I started looking at eclipse-wtp-jeetools, which is the reason I needed webservices in the first place. I’ve made a couple of changes, and I’m at the stage of compilation errors already (we seem to have all of the dependencies here in this case I think). I got a little panicky the first time it failed at compilation stage, because there were just shy of 3000 errors. I’ve managed to play around with the feature.xml, and now there are only 100 errors. Of course, it’s possible that once the 100 errors that are sitting on top of the previous 3000, and are just preventing them from happening yet. I wouldn’t be surprised if I saw those again, but I may cry.

Wow, this wasn’t supposed to be this long, but I guess it was a productive week, and I learned a lot. Next week’s report will be significantly shorter, I imagine, as I will be away for some of the week. I do hope to get an alpha kickstart file for the Fedora JBoss Spin though, to stick to the schedule! I’m aiming to have jboss-as and eclipse in the alpha release, I’m not sure how much else yet though!

Fedora JBoss Spin – GSOC 2012 update 1

Google Summer of Code 2012 started last Monday, so this post is the first in a series of weekly updates that I will be posting here.

As I missed out on most of the earlier ‘get familiar with everything phase’ (university exams, and then a viral infection), I’ve been doing my best to get on track this week. At the suggestion of my great mentor Marek, I’ve created a wiki page on the fedora wiki to track progress of what is done and what is yet to do. For the moment, the focus is on packaging JBoss Tools. As expected, this will require additional dependencies to be packaged, and the dependencies may have their own dependencies that need to be packaged. What we know so far is listed on the wiki page.

The first thing I did then, was to create an initial spec file for what will be the eclipse-jbosstools package. Each plugin requires the parent and target platform to be built, so I managed to get that much done at least. It required some patching because of some dependencies that we don’t yet have in fedora, but it builds, so that’s good. As it was my first time creating a spec file, I got some feedback from Marek on it, and there were a few things to fix!

Next I tried to build the ‘common’ component, which I think will be a subpackage of eclipse-jbosstools, eclipse-jbosstools-common. This is the first major hurdle, as it needs eclipse-wtp-jeetools, which needs eclipse-wtp-webservices. Since Friday, I’ve been trying to build these, and I think I’m very close to getting eclipse-wtp-webservices working (just getting some compile errors now). The biggest problem here I think is that in Fedora 17, we’ve got Eclipse 4.2 which isn’t released yet. Anyway, hopefully tomorrow I can get some help with fixing that, get it packaged, and get it in for review.

This week I’ve learned to use some new tools and gotten more experience with tools I didn’t have much with; including eclipse-pdebuild, maven, and even svn and cvs . I also learned a lot about rpm spec files, mainly from downloading srpms, and seeing how other people have done stuff. I’ve also gotten quite frustrated a few times: A couple of times I spent time trying to figure out dependencies for different parts of the eclipse-wtp stuff that we need, then taking a wrong turn somewhere, and spending ages going into a dependency hole that wasn’t even necessary. Taking a break solved the problem a few times, I guess by forcing me to take a step back and see my mistake when I get back to it. Another frustration I’ve had is slow connection speeds when downloading some stuff from svn and cvs, but hopefully I won’t have that problem too often!

That’s all for this week, hopefully I’ll have even more to share next week!

Google Summer of Code 2012 – Fedora JBoss Spin

So yesterday I found out that I got accepted into the Google Summer of Code program. It’s really exciting news for me, being enthusiastic about free software and open source, and also because I’ll be getting money to contribute to a project that I’ve been hoping to get more involved with anyway.  I’ll be working with the Fedora project, to help with the packaging of JBoss software, and eventually I’ll create a JBoss spin, which will include JBoss Application Server 7, JBoss Tools for Eclipse, and JBoss Forge. I’m currently doing exams in university, so my activity on this will be limited until they’re finished. Then the hard work begins! I look forward to learning from all of the talented people who are already involved in the Fedora community. For more info on what I’ll be doing, the proposal is available on the wiki. I’ll update here with any interesting progress!

Follow

Get every new post delivered to your Inbox

Join other followers: