I'm happy to announce that our Ports QAT and redports.org are back in action. Both systems were taken offline due to the incident in November last year even though they were not directly affected. A security review and a reinstallation from scratch including some changes were performed to improve security. The resulting user visible changes are:
- All password hashes on redports.org were deleted so you need to use the "Password lost" functionality to get a new password via mail. Beware the email check is case sensitive and I have seen many people use "@FreeBSD.org" for their email addresses. If you have problems or forgotten your password please contact me.
- Please recover your account by 28th February because after that all non recovered accounts will be deleted. (cleanup)
- Registration on redports.org is temporary disabled. It will be reenabled in March.
- Ports QAT and redports.org are separate machines now. Ports QAT is available only via https on his own subdomain https://qat.redports.org/
- Beware that QAT mails are sent do ports@… mailinglist so they are now public.
- svn.redports.org is only available via https - http is gone.
- IPv6 is currently unavailable but should hopefully come back in a few weeks.
- IRC bot is gone. Not sure yet if we will be able to bring it back.
- Two additional backends from the Foundation are currently being prepared. They should go online pretty soon.
Thanks a lot to everyone involved in getting both systems back and especially to Brad Davis for all of his work behind the scenes! Sorry to all users that it took us 3 months to get back in action and thanks that you all were so patient while we sorted that out.
Since redports.org has quickly grown to a public service I have decided to move the redports development (Subversion Repository, a few Wiki Pages, Source Download) to Google Code.
That doesn't affect the Redports Ports Tree so there is no need to worry for regular redports.org users.
We used to have a FreeBSD Ports QAT machine that did automatically build all affected ports after a commit. Well that machine is down since quite some time now because of an hardware defect I think. In my plans for redports I started quite early to think about integrating the QAT service so I talked to itetcu at BSDDay in 2011 about the current implementation of the QAT system. It works by parsing the ports CVS mails to find out which ports are affected by the commit. Then it updates the CVS tree from one of the tier1 CVS mirrors and hopes to have a consistent portstree. After that it schedules new jobs in the Ports Tinderbox and sends out mails to the committer if building failed. That worked fine most of the time but it had quite some weak spots which required to constantly look after the machine to keep it going.
The most important thing that I learned from that was that we need to migrate our ports repository from CVS to something that allows a consistent checkout. Now that beat is working on the cvs to svn migration and has a testing repository I used that to implement QAT functionality into the redports infrastructure. Instead of parsing CVS mails I can use svn info to find new commits and consistent repository checkout is also guaranteed by subversion. After all it took me about one working day to fully integrate the QAT functionality and test the new stuff. It will be enabled once the migration to subversion has settled.
There are a few benefits for the upcoming QAT system now that it is a part of the regular redports infrastructure:
- access to all redports building machines (more power!)
- parallel builds on multiple boxes
- archived buildlogs
- run QAT jobs for multiple FreeBSD versions/architectures
- nice web frontend with RSS feeds and the usual modern stuff
- you still get mails of course
I have just added a new EXPERIMENTAL buildgroup that uses pkgng for its packages. You will not directly benefit from that but it helps bapt@ to test pkgng in a bigger environment so please use the EXPERIMENTAL buildgroup too and tell us if you see strange pkgng problems.
Another patch has been activated on all buildgroups to build all ports in a Jail. The patch was created by beat@ and tested for a few days so you shouldn't notice any big problems but it is a big security/isolation improvement for redports. Please tell us if you see strange jails related lines in the buildlogs and I will have a look at it.
I'm pleased to announce the release of redports 1.0.0 infrastructure code!
The code has started as a prototype and matured to a useable platform in less than half a year. More than 150 users helped testing redports which makes me confident that it is stable enough for everyday use. Thanks to everybody that helped to make that happen!
- Version bump to 1.0.0
- CLANG/i386 buildgroup added
- tmpfs on backend enabled again
- Add MD5 and SHA256 checksum files for "make release"
- Fix curl error handling
- Increase curl timeout values
- Add missing struct initialization
- New Trac theme
I'm pleased to announce the first release candidate of the redports infrastructure. All features for this first release have been implemented and I will concentrate on bugfixes from now on. If there are no major bugs I expect that this will also be the last release candidate.
A lot of work for this release went into the job dispatcher and a few new scripts for our PR database. Have a look at rpfetchpr/rpcommitpr which can probably help you with your daily work.
- Frontend moved to a new machine located at NYI (thanks to portmgr@)
- Fix for the tmpfs bug is available (thanks Gleb Kurtsou)
- Add a hard limit for jobs per user when we start to automatically use lowest priority
- Logging system improvements
- Rewrite portstree update code to minimize lock contention
- Use CURL timeout when talking to the backend
- Protect against SQL injection from the backend
- Fix a few nasty bugs that caused backendbuild failures
- Rewrite some steps to minimize lockwait
- Fix addBuild() to correctly verify if a subversion subdirectory exists at a specific revision
- Add highlight coloring for ports already building in Global buildqueue
- Report IGNORE/FORBIDDEN reason if a build went DUD
- Rewrite to make a good tool out of it
- This script can be used to commit FreeBSD port PRs to a redports repository. It will remove all ports in the repository first and probably doesn't work at all for some PRs.
- Script to periodic poll FreeBSD Ports PR list and call rpcommitpr to trigger builds.
The redports frontend is moving to a different server on Tuesday 6th of March. So expect around 3 hours of downtime. I will also update the main tinderbox backend to latest current and reenable tmpfs now that a fix for the tmpfs problem is available.
Update 12:40: It took a bit longer than expected but it's all working again now!
I'm pleased to announce the next beta version on the way to our first stable release. There will be at least one more beta because I need to rewrite some locking code in the dispatcher which requires a lot of testing. Except from that I am very pleased with the stability and progress so far. Thanks a lot to all testers and users of redports!
- Trac 0.12.3 update
- IRC buildbot is available in #redports-buildlog on freenode
- Support "Redports: Ignore" and "Redports: Urgent" tags in commit messages
- Add Administration interfaces (Backends, Backendbuilds, Buildgroups, Repository, Buildqueue)
- RSS feed for Archive and Archivedetails
- Add global buildqueue list
- Add build priority to GUI and allow users to choose priority
- Improve buildqueue deletion so that it can be deleted anytime
- Add links to User wiki page wherever the username is shown
- Add Icons for buildlog and workdir
- Improve build description formatting
- Implemented rpdd hook scripts
- Improve Step20 to gracefully handle failed locks
- Fix long standing bug in Step30 backend failure handling
There is still some work ahead for 1.0 but progress is good and the platform seems to be surprisingly stable.
Last week I had to disable tmpfs on the main tinderbox backend because of an bug in tmpfs that blocked unmounting and required me to reboot the machine every few days. Building is a bit slower now but it's stable. I will have a second look at that bug once I find time for it.
The GCC-4.5 buildgroup was replaced with an experimental GCC-4.6 buildgroup that isn't activated yet because it usually needs some hand holding every few days. I will finish that soon and activate it once it's ready.
Here is what the latest update includes:
- EMail notification
- User preferences for workdir download and email notification
- Archive improvements (pagination, user filter, queued builds)
- Trac: revision needs to be a valid number
- Trac: portname needs to be valid
- rpdd: reduce lock contention
It's about a week now since I publicly announced redports.org and feedback has been overwhelming! As expected I need more hardware for the cluster to get builds finished in a reasonable time. I am already in contact with the usual suspects and will shout it out loud once the hardware is ready.
In the meantime there were a few problems that caused auto generated mails to be classified as spam and some delays at delivering them. This should be gone now as SPF/SenderID tags have been added and all mails are DKIM signed.
For public discussions I have now also created a mailinglist on Google Groups and an IRC channel on Freenode. Feel free to use them!
Mailing list: https://groups.google.com/group/redports
Today I made the first update of redports.org to the latest code that was in development for a little bit less then a month. It includes quite a few improvements that were requested by early beta testers. Thanks a lot to all people that helped me testing redports and gave feedback.
New Features in 0.9.91:
- Security hardening (no root scripts and processes)
- Improved frontend for Teams
- Build Archive
- Archived logfiles with longer lifetime (48 days)
- Bulk building functionality
- Migrating builds to other backend on error
- Priority based scheduling for builds
- Multi Repository support
Over the next few weeks I will concentrate on testing and fixing bugs to get the code in a good shape for the 1.0 release.
I'm very proud to announce the first public release of the Redports infrastructure code! The idea was born at EuroBSDCon 2010 in Karlsruhe at a talk with Daniel Seuffert but then it took more than one year with over 3 months of hard work to get it where we are now.
This is the first public release so I consider this code as beta quality. Use at your own risk but feedback and patches are very welcome. It would not have been possible without the help of a lot of people and projects that redports is build on. Thanks to everyone involved but especially:
- my girlfriend!
- Ion-Mihai Tetcu
- Daniel Seuffert
- FreeBSD Ports Tinderbox
Redports.org is the prototype of a free service for FreeBSD port maintainers and
port committers to automatically buildtest your ports in ports Tinderboxes.
This project is currently in development stage.
Why not just use tinderbox?
In fact redports builds on top of multiple tinderboxes and can distribute build
jobs beyond them. The major problem with tinderbox is that you have to give
away full root and shell access to all people which does not scale well and is
unfeasible for random users.
- Subversion repository per user for your own ports
- Multiple Tinderbox backends (different architectures/FreeBSD versions/configurations)
- Automatic builds triggered by commit
- Cleanroom builds