Archive for the ‘Mono’ Category

Using osc build to make a jail on openSUSE

Thursday, March 11th, 2010

Before I start let me say that there may be easier or more direct ways to do this.  This has the advantage of being pretty easy for me to do.  I’m not going to discuss why you might want to do this, or what a jail is, etc..

You can get the most recent osc and build tools from the openSUSE:Tools repository.  You will also need an account on the build service.

Create an empty directory
mkdir jail/

Go into that directory and create a dummy RPM .spec file
cd jail/
vim jail.spec

Name:           jail
Version:        0
Release:        0
Summary:        Jail
License:        Jail
Group:          Jail
BuildRequires:  vim gdb glib2-devel zypper
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description

%prep

%build

%install

%clean
rm -rf %{buildroot}

%files
%defattr(-,root,root)

%changelog

The BuildRequires: tag is where you specify which packages you want installed in your jail, what I have listed there is just an example.

Also create an empty .osc directory (this prevents an ugly bug where the jail tries to delete itself)
mkdir .osc/

You’ll need to be logged in to OBS if you aren’t already
osc ls
Enter your credentials at the prompts

If for some reason that didn’t work you may need to put your password into your .oscrc file
vim ~/.oscrc
Toward the bottom…

[https://api.opensuse.org]
user=<YOUR USERNAME>
pass=<YOUR PASSWORD>

If your password changed you may need to delete any lines that say passx=<GARBAGE>, or manipulate your GNOME Keyring.

Now you should be ready to build a jail

osc build --local-package --root=</path/to/new/jail> --alternative-project=openSUSE:<VERSION> <ARCH>

<VERSION> is, for example, 11.2
<ARCH> is only needed if you want a different arch (i586 on an x86_64 machine)
</path/to/new/jail> is where you want the tool to put your jail (not the directory you’re in!), I use /var/tmp/jail
You may be prompted for your root password
When the jail is built (assuming it worked) it will fail complaining about an empty package, ignore that and get on with your life: you only wanted a jail, not a package.

At this point you can chroot into your jail
sudo chroot /path/to/new/jail
or if you are changing architectures…
sudo linux32 chroot /path/to/new/jail

Yay, you’re done!

Mono Appliance for VirtualPC

Thursday, July 2nd, 2009

With the release of Mono 2.4.2 we are introducing an appliance image for Virtual PC. This makes a lot of sense for Mono as one of our favorite target user groups is .NET developers looking to get an application running on Linux. Many of these developers use Virtual PC.

All three of our appliance images (LiveCD, VMware, and now VirtualPC) contain exactly the same packages, etc. In fact our .vhd is actually just the .vmdk from the VMware appliance built in SUSE Studio and converted using qemu-img (requires a recent version, possibly unreleased). And actually the .vmdk we provide boots just fine under other VMs such as QEMU and VirtualBox. Linux can be nice that way.

We hope this will make Mono even easier for .NET developers to use but you may want to use VMware anyway.  The VirtualPC appliance has some problems:

  • There are no “VM Additions”.  They exist but they are not open source and IIRC the ones that exist don’t work on a recent Linux. So no handy stuff like drag-and-drop or mouse-in-mouse-out.
  • Things can be a bit slow / choppy at times.  This clears up after a while or maybe after a reboot.  Not sure what’s going on there.
  • We added some kernel parameters to make things run a little better: noreplace-paravirt i8042.noloop clock=pit. Joseph Hill dug these up on the Internet somewhere.
  • On the new Windows Virtual PC (the one for Windows 7) you don’t get a network device by default.  As far as I can tell we’re the only project shipping a .vmc configuration file with our .vhd anyway so the expectation seems to be that you will configure your own VM.

Find this and other fine Mono products at http://go-mono.com/mono-downloads/.

Mono 2.4 Appliance

Monday, March 30th, 2009

I am very pleased to announce the availability of the Mono 2.4 VMware Appliance and LiveCD. The new image is based on openSUSE 11.1 and every known appliance-specific bug has been fixed. There are many software updates as well:

  • Banshee 1.4.3
  • gbrainy 1.1
  • GNOME Do 0.8.1.3
  • MonoDevelop 2.0
  • Monsoon 0.20
  • Tasque 0.1.8
  • Tomboy 0.14.0

By some accounts this is definitely the best Mono Appliance release yet. Get if from the mono downloads page and report any bugs you find.

Screenshot

If you have a nice open source .NET (or ASP.NET) application you’d like to see added to the appliance please leave a comment.

Built with SUSE Studio

Sound in VMware with openSUSE 11.1

Thursday, February 26th, 2009

Solved: I noticed the other day that Scott Reeves, who works just down the hall from me, owned most of SUSE’s PulseAudio bugs. He gave me the answer to this perplexing problem. The cause is the new “glitch free” code in pulse (ironic? yes!) which can be disabled by adding tsched=0 to the load-module module-hal-detect line in /etc/pulse/default.pa.

load-module module-hal-detect tsched=0

I need help! For the Mono 2.4 VMware Appliance we have upgraded to openSUSE 11.1 but for some reason audio plays to fast. It seems to have something to do with PulseAudio. If we remove pulse then audio plays at a normal rate but then Moonlight doesn’t play audio at all. If we can’t get this all fixed before release we will have to revert to openSUSE 11.0.

Sound in Linux has never been great and it never will be if we don’t work through these problems and plunge forward. If you care about Mono or openSUSE or PulseAudio or VMware please help me fix this bug.

Mono 2.2 Appliance

Tuesday, January 13th, 2009

The Mono 2.2 LiveCD and VMware Appliance images have been released and contain a number of improvements over previous version.  Aside from the improvements in Mono itself the new appliance includes the following:

  • Moonlight 1.0 Beta 1 – the open source implementation of Microsoft’s Silverlight 1.0, installed in such a way that when 1.0 Final is released the update mechanisms in Firefox should allow you to update it.
  • MonoDevelop 2.0 Alpha 2 – including integration with the Mono debugger and many other new features.
  • Smuxi 0.6.3 – an excellent Mono-based IRC client, configured to log you into the #mono channel.
  • GNOME Do 0.6.1 – the super-slick launcher thing we love, already running on your desktop.

Mono-2.2 Appliance

The best thing about this version (for me mostly, but you enjoy some of the benefits) is that it was built using SUSE Studio.  Studio is a service that allows people like me to customize and build appliance images easily and inspiringly quickly.  It’s hard to put into words how much I love SUSE Studio.

SUSE Studio

Studio not only makes the process of building an appliance faster and easier, it makes things possible that weren’t possible before.  See, the development cycle for appliances is normally long and painful.  You have to make a change manually, modifying overlay files or writing first-boot scripts, then build the appliance image (which can take hours depending on how you are set up), test the change, and start all over again.  You can try to do a bunch of changes at once but you have to go through that whole cycle several times.  It can be very frustrating and costly so you end up choosing to not make the improvements you’d like to make. We made many of those choices in previous releases. But Studio is so fast and so easy that you can really just play! Try various approaches to solving your problem and see what works best.

Mono on SUSE Studio
Studio also facilitates customizing the appearance of your appliance.

How does Studio make building appliances so easy? Mainly, but not exclusively, through a feature called Testdrive. Testdrive allows you to test your changes immediately by running your appliance in a virtual machine, viewing the console in your web browser. You can also make changes inside Testdrive and then click on the Modified Files tab where you can see what what was changed and add it to the list of overlay files.

If you find a problem with the Mono 2.2 Appliance please file a bug and I will try to fix it. Thanks to SUSE Studio it won’t be so difficult to fix those bugs!

Mono 2.0 LiveCD… Now with Mono!

Wednesday, October 15th, 2008

Okay, it’s not quite that bad but that’s how I feel. It’s been a long and dusty road fixing the major bugs in the Mono 2.0 VMware Appliance and LiveCD.

Fixed in 2.0-1: mono-debugger was missing. This is a big deal because this is the first release where the debugger is released at the same time as, and with guaranteed* compatibility with, the mono release.

* no guarantees, implied or otherwise, unless you have some other agreement with Novell :)

Fixed in 2.0-2: No sound support. This took a while to fix. Why is hal-resmgr not required by any package or pattern?

Fixed in 2.0-3: Absolutely no scalable (truetype) fonts installed. You wouldn’t have noticed probably but it breaks Moonlight which, though not included (until the 1.0 release probably), we definitely want to work properly.

Those of you who had problems with ftp.novell.com should find that it’s working much better now. Please use the torrents.

Since I’m not at all confident that nothing else will go wrong I’m not going to link directly to anything this time. Find the LiveCD or VMware Appliance at the Mono download page. Bonus points to whoever finds the next bug serious enough that I have to fix it and re-release… again.

Coming soon for Mono 2.2…

Mono on SUSE Studio

Mono 2.0 LiveCD

Monday, October 6th, 2008

The Mono 2.0 LiveCD was delayed a bit from the Mono 2.0 release but it is available now. The delay was cause by me culling unneeded packages too aggressively. On the upside we’re down to only 562MB!

Help your neighbor and join the torrent or grab it from ftp.novell.com.

The content is very nearly the same as the VMware appliance released this morning, including:

Update: New images have been uploaded, now with sound! It turns out you couldn’t do sound of any kind. The missing package (aside from alsa)? hal-resmgr, which sets ACLs on sound devices amongst other things.