Showing posts with label gentoo. Show all posts
Showing posts with label gentoo. Show all posts

Saturday, May 7, 2011

Layman-2.0 development testing

As reported in some earlier blog posts, I've recently taken over maintaining and developing layman. I have been working on replacing the high level api with one better suited for consumer apps use. I've also changed the cli to use the new api and that has resulted in about a 20-35% speed increase for the testing I've done.

I've also been extending the mid level api a little so that it is more flexible for use as a lib in other applications. It does not require an overlay definition be input via xml file only. It can now accept a python dictionary to define an overlay or for that matter any VCS be it a development checkout, etc.., also it's location can be anywhere in the filesytem. That is something portage/pkgcore or a layman gui might use, it is not intended for the cli interface.

Some notable changes:
    * New high level API
    * New cli connection to the new API
    * New add, sync, postsync config options for each repo type
    * repo xml definitions can now be placed in the /etc/layman/overlays/ dir and they will automatically be added to the available list without adding them to the config manually
    * New multiple config functions/classes allows for more flexible API use when using layman as a lib.
    * It now timestamps the remote list and only downloads a new list if there is a change since it was last downloaded.
    * New repo type g-common. The dep is not yet included in the ebuild as it is supplied via app-portage/g-cran from the science overlay. But if you use g-cran packages you probably already know this.
    * New Message class fully capable of re-directing output to the defined output passed in. Again mostly for guis or consumer apps use.
    * other code cleanups, small improvements.


So those that would like to help test:
Code:
echo 'app-portage/layman **' >> /etc/portage/package.keywords
# emerge =layman-9999


Please report any issues you have with it so I can get them fixed :)
I would like to try and stabilize the code for a release sometime in the near future.

gentoo forum thread

Sunday, May 1, 2011

Porthole 2011 GSOC project starting

Porthole has been chosen as one of this years GSOC projects. The project will encompass a complete re-structuring of porthole's backend so that it can make use of a new (soon to be stable) portage public API. Stable at this point means mostly a non changing interface for directly operating portage, getting information directly from portage while the backend code can change without fear of constant breakage for consumer apps like porthole.

The student doing the work is Cazou, the same person that worked to port kuroo to QT4 last year. This restructure is needed so that porthole can work even better with portage. It is also needed to be able to work properly with pkgcore which a backend for it will also be produced. That will give you more options as far as package managers are concerned.

More on this later...

Tuesday, April 19, 2011

All is not lost

Hey everyone. No I've not dropped off the edge of the earth.

I am gearing up for another season of mentoring for another gentoo gsoc project. This time it will be for porthole. This project is to finish to back-end re-structuring and create a new pkgcore back-end.

Other news, I am now the developer/maintainer for layman. I have implemented the new api I did last year. Extending and improving it some more. I have also moved the cli to use the new api. This has resulted in a 20-35% speed increase for the testing I've done. I've also started a porthole plug-in for it.

Even more porthole news:
Paul Varner has done some work and has helped me get porthole working in a prefix install. I am finishing up the changes, porting them from the dev branch into the master branch code. I'll push out a live ebuild and/or a -0.6.2_beta release hopefully soon. There has not been much in feature additions. mostly more code re-structure and cleanup so it should be easier to modify and maintain. some bugfixes...

Here is a screenshot of porthole running on fuzzyray's mac.

Wednesday, February 9, 2011

Getting Busy :)

Well, I know i haven't been very chatty here on my blog. Things have been getting quite busy.

I've been getting some work done on porthole:
  1. I've split up the mainwindow code into smaller managable chunks that all stack together.
  2. I've fixed the multi-selection for all commands like emerge, unmerge, update. Unfortunately I discovered a bad side effect of that. While selecting a bunch of dependencies I wanted to upgrade. I came across a pkg I emerged with --oneshot that I didn't want anymore. So clicked unmerge (old behavior would just unmerge the pkg selected), then continued selecting and then upgrade. To my surprise I discovered everything selected to upgrade failed due to wget failing. Then I discovered all the unmerge's which crippled my system. Fortunately I have --buildpkg enabled so was able to emerge a number of pkgs from the backups. My system is happily merging updates again. I still need to run revdep-rebuild after to catch any more missing deps from my unmerge stint.
I got to talking with Wizzleby (kportagetray developer) about the layman api I coded awhile back. That got us both going on some preliminary designs for collaborating on both a gtk and kde front-end to layman. Since I had not been getting any feedback about the new api from the main layman dev. I decided to start a fork to work on it more so that it can be released and ready for the guis front-ends. Well that lasted about a week, I made good progress on it, replaced the cli interface to use my new high level api. That resulted in a 20-35% speed increase. I am now the primary layman developer and maintainer. So now I have to port my changes back to layman's namespace. Anyway the new project's name is Overlord. I will keep it for the guis front-ends and possibly a few extras for layman. So give me some time and I'll have the changes in the Layman-9999 live ebuild ready for more testing.

I have been pushing to get the gentoo-guis mail list back in action again and discovered it hadn't been de-activated after all, but it was not listed either. So any of you interested in joining, it is gentoo-guis+subscribe@lists.gentoo.org. We welcome all
to join in.

We have started a new gentoo-guis overlay for our live ebuilds and development work. It is not yet listed in the main repositories list, but I do have a gentoo-guis repositories.xml file in the overlay you can download and configure layman to use to add it. Actually I made that easier to do in overlord. Those repo.xml definitions can be plugged in for automatic detection and inclusion. Yes, that will be ported to layman too :)

So, I am accepting volunteers for help with things on porthole, layman, overlord,...
:D

Sunday, April 25, 2010

Busy, busy, busy,...

Wow, April has been a very busy month. I meant to keep you updated to the goings on, but didn't seem to get to it. My daughter's softball season has been up and going, not to mention all the other activities that she needs to be brought to, etc.... I have been starting back to work also on a part time basis, but my knee doesn't seem to be handling more than a 4 hour shift. I have also become a gentoo mentor for the Google Summer Of Code program. That has taken up quite a bit of time as well reading/evaluating proposals. I believe the announcement for the GSOC will come out later today (this is still my night before). I have also been contacting the other portage gui front-end developers to begin discussing the upcoming merge into portage of a public API. Coding wise I have not been able to accomplish much, mostly fix some bugs in gentoolkit, and do a little more work to portage's emaint that I've been re-working so that all its modules are available as import-able modules for use by portage, other maintenance tools, or even possible gui front-ends or plug-ins.

Oh, and some great news!!!! I have put in a stabilization request for porthole. So far it has a ppc stable keyword, approval for x86 and sparc to go stable, I just need to get the ebuild updated. So if you use porthole on any of the arch's that aren't marked stable, get after the arch team to stabilize it. If you are using it on an arch that is not yet listed in the ebuild, speak up, open a bug to get your arch added to the list.

Anyway, I have a busy day ahead for me tomorrow, so I should head off to bed. I'll be in touch about the gsoc project I'll be mentoring after the official announcement has been made.

Monday, March 22, 2010

status update

I've been a little busy lately and haven't had much time for a new post. I have the eclean re-write working good and have several unit tests for it, but to test it all would mean having 10 times the code just to run the tests on the real code. You will be able to try out the re-write in the gentookit-0.3.0_rc10 release coming out soon. For cleaning the packages directory it now relies on emaint from portage to fix the Packages index file. For now it runs it in a sub-process from eclean, but I hope to get some changes approved to emaint, so that eclean will be able to use it directly. It will then not disrupt the output from eclean like it will for now. Gentoolkit is now going to be python-3 capable and will require a minimum of python-2.6 to work correctly. Also, for those not following the gentoo-soc mail list, an idea for a network enabled eclean version was brought up that would be useful for central NFS servers serving the distfiles or packages directories. With that i have been able to deduce that it will not take much more work to add shared disfiles and/or packages ecleaning ability. So perhaps look for that feature in the near future, perhaps in gentoolkit-0.3.1.



It also looks like my knee injury is nearly healed up and I may be returning to work soon. A good thing about that is it might help to shed the 20+lbs of weight I put on since the injury.

I also need to code some additional modules for the new analyse utility I started, along with a major backend re-structuring for porthole. I've been also asked to clarify some of the analyse descriptions, abilities that I posted about earlier. So look for that this week. That's it for now.

Tuesday, March 2, 2010

I finally got another porthole release out. I had been dragging my heels a little about it, but I also found a fixed a few more bugs. So this should hopefully be a release that makes it to a stable keyword. There was one potential bug in 0.6.0 that I found which could make an annoyance to fix for a user, not critical. So I did not push for it to go stable. (Although far buggier apps get stable keywords)

Porhole-0.6.1 has added a number of small features, like a highlighted eduild viewer which uses gtksourceview and the gentoo syntax highlighting rules. The Changelog has been completely re-vamped and now sports a new custom highlighting view. I so need to improve it slightly for dealing with overlays that do not have a changelog file so that it will look in the main tree for that one.

That covers most of the visible changes to porthole since the 0.6.0 release. I have been busy working on elclean code and have it ready for adding in an emaint binhost call to fix the packages index file. So on that note with the porthole release out the door I got busy splitting up the portage emaint program so that it's modules could be used directly by other python apps or portage front-ends (think porthole plug-in). So I'm hoping the powers that be like the emaint changes I've made, one of which is a modular plug-in system for emaint modules. It makes it easy to add or remove modules to the utility as changes are needed or additional functionality is created. Without the need to change the cli or gui front-end. So with that pretty much done I'm getting back to completing the eclean rewrite so it can be merged back into trunk for a release.

I have also done some more work on the new analyse utility, but will leave that for another post so I can better explain it.

Friday, February 19, 2010

New gentoolkit utility --- analyse

Well, I've gone and done it again, I haven't finished the eclean re-write and I've found something else to work on. It all started from a forum post. He wanted to fix his mistakes and it looked like the only way was the hard way.

Having been doing more gentoolkit coding I put together a quick and dirty python script to output some USE flag info about his installed pkgs. With that and me saying I could add some more code to spit out a package.use file populated with what is installed/what flags enabled/disabled. I have now been coding it up and have it now working for USE flag analysis and rebuild. I plan on adding more so it can analyse and repair keywords and mask files too.














I also would like to code up yet another /etc/portage/package.* cleaning tool. Since It'll have nearly/all the functions needed for gathering the info, may as well do that too. All the main functionality will also be importable for other apps to use as library functions/methods.

analyse rebuild -pv use


analyse analyse -uv use








left: showing the output of the report. Enabled USE flags are marked with a leading + and colored blue. Disabled USE flags are marked - and colored red. Unset USE flags are plain text.

It also indicates if the flag is a system default, the number of packages that have it enabled/disabled/unset and using the --verbose option lists the packages.


right: Part way down the report. notice that mplayer has faac faad flags enabled but ffmpeg does not. Something that I didn't notice before. Now I know to set them for ffmpeg too.




This last one shows the totals at the end of the analyse report.

Also if you can think of a good "e" name for it to go along with the other gentoolkit apps like eclean & equery. Post a comment.

some of the names so far:
  • erepair
  • esylana (analyse spelled backward)

Monday, January 25, 2010

Distractions

I've been distracted away form porthole code lately. Well not completely, I do have an ulterior motive. I am working on gentoolkit code again. Namely a modular rewrite of eclean.

eclean was an all in one python script that contained a number of unwieldy methods and functions which made it difficult to modify and nearly impossible to create test functions for. One of the primary reasons I started on it was to split the back-end functioning code from the output printing code similar to most of the newly redone equery modules. That way the code can be used by other applications. So, I began by separating the script into a python package containing 5 files and a nearly empty script that just loads and calls the main() .

Those 5 files being:
  1. cli.py to handle all command line interface argument parsing and start the requested action.
  2. search.py with all the search related methods and functions which determine the files to be cleaned.
  3. exclude.py containing the exclusion file parsing and handling code.
  4. output.py for the screen output and user interaction.
  5. clean.py to handle the actual cleaning process.
The end result should be one that has a number of automatic tests run on it to check that any code modifications are performing correctly as well as code that will be easier to maintain.
It will also then be possible for the code to be used in other apps such as a planned plug-in module for porthole. :)

Thursday, January 7, 2010

Translators Needed

I have porthole pretty much ready for another release. I have the translation files updated with any string changes and ready for a final edit.

  1. Polish language is fully updated (just need to commit it). Thank you, Arkadiusz Kowalski.
  2. German is nearly up to date, a few minor strings to check, Thank you, Timo Gurr.
  3. French, is in need of checking and/or fixing.
  4. Italian, is in need of updates.
  5. Russian, is in need of updates.
  6. Vietnamese, is in need of updates.
If you would like to see porthole translated into your language please leave a comment or email me. It is quite simple to do, just takes some time and knowledge of both English and the target language. There are tools like poedit to help.

Wednesday, January 6, 2010

And so Christmas came and the New Year begins

It's been the usual busy time of the year, with all the extra running around, preparing things. Getting the gifts for the people close to you. Trying to keep my wife from going overboard with the giving (again). It has been a good Christmas overall, lots of new toys, kids got some too (he he).

I had been hoping to get a release out for Christmas, but got a little too busy and lost concentration on what I was doing, so had a little break. The coding I was doing was centered more on su'ing porthole's processes that require root access while the majority of the code still runs as the user. I made a lot of progress, but came across a blocker in that gtk refused to do some things because of the detected su. It would run as all user or all root but not a mix. So I reverted most of the changes, (some were better even without su'ing). I believe I've come up with a better way without having to use policykit and the only python interface to it being through d-bus. Also due to the migration in python towards py-3k means using features of python-2.6 and greater. I am not about to do that for this release, but probably for the next major release of -0.7.0.

Porthole-0.7.0 I am hoping to have made all the changes needed to have multiple options for the backend package manager code it uses for data gathering as well as installing/syncing, etc..

So, I hope everyone had a wonderful Christmas and are starting the new year out right and happily so far.

Saturday, November 14, 2009

First Rambling's

Welcome to my blog.

Well, this is something new to me. It was suggested that I get a blog to help promote Porthole and to get more feedback, etc. So here goes, It seems that like most things, they change and evolve. I remember a time when the forums were buzzing with activity. Some of that activity seems to have been replaced by blogs. I have been reading a few of the Gentoo dev's blogs and find them informative, interesting and can be a good source of knowledge. I hope to do well in that respect and not blab on about nonsense or get too carried away into details few people will care about.

Anyway, I am currently the only developer/maintainer for Porthole, It is a graphical gui front-end for Gentoo's package management system "portage". I was not the original creator(s), They were Daniel G. Taylor and Fredrik Arnerup. I started in fairly early in it's development cycle and have continued with it. There have been others that have come and contributed some good advancements and features over the years, but I am currently alone in it's development.

I welcome feedback from users, both good and not so good as to how they use porthole and things they might like added or changed. As in nearly all things, that does not mean it shall be done, but it does help evolve things for the better. I will try to get things done in a timely manner, but it is something I do in my spare time for fun, relaxation and good mental exercise. A person has to keep those synapses firing :)

I have recently released porthole-0.6.0 final after several years of trying to get it finished. This last big update from -0.5.x was a major one, porthole's code was getting too large and unwieldy in many ways and was in need of a major slice and dice. This has sped things up significantly and reduced it's memory usage. Along the way I have been able to add more features and improve functionality of others. There is still far more that I want to achieve with the code and user interface, but that discussion will have to wait for other blog entries.

Take care...