Hello DigitalOcean!

While my old hosting with Laughing Squid was did its job, I was very limited in what I could do with it. Access only via sftp, 1GB of storage and I was breaking my monthly 25GB traffic limit fairly frequently… So it was time to look for something new.

For me, the primary consideration when choosing a provider is price. My website is not really worth any investment… A thread on reddit pointed me at DigitalOcean (which may or may not be spelled with a space…). It was cheap at $5 per month – in fact cheaper than what I was paying – and 20GB storage on SSD with 1TB transfer is more than enough for me. I also figure that one core and 512MB RAM is enough for my requirements. As a bonus, they provide Arch Linux images, which I am mildly familiar with administrating.

Time to create a “droplet” as they are called. I chose the 32bit Arch install given the low RAM available to me and selected the San Francisco data center given where I live. The DigitalOcean front page tells me this will take 55 seconds. It took 69 seconds but I think I will forgive that! I get an IP address and can ssh in. All good so far.

Checking out what packages are installed, it appears to be all of the base and base-devel groups and ssh. The base-devel group probably is not needed, so I start by removing a whole bunch of those packages including autotools, binutils and gcc. Also, the system is installed on a single ext4 partition, so I can get rid of all packages to deal with other file system types. There are probably other unnecessary packages installed too, but the install really does not take up that much space. And it is not as if Arch is designed to be super slim anyway.

Time to update. The image is from 2013.03, so should be straight forward. Hrmm…

warning: linux: ignoring package upgrade (3.8.4-1 => 3.9.3-1)
warning: linux-api-headers: ignoring package upgrade (3.7.3-1 => 3.8.4-1)

Lets peak in pacman.conf:

###############################################################################
# Please note: if you update the linux kernel via pacman and reboot, you will
# lose access to your droplet! Please don't remove 'linux linux-api-headers'
# from IgnorePkg.
###############################################################################
IgnorePkg = linux linux-api-headers

Well, that is not right, but quite a common mistake. The package linux-api-headers provides userspace headers for the toolchain, so its update is linked to updates in glibc, gcc etc and not that of the kernel. The linux-headers package provides kernel headers, but is not needed on a VPS. So I open a support ticket suggesting this is fixed. This is where I was impressed. I got an initial acknowledgment response within minutes (from what is potentially an actual person) and further responses before the end of the day from people high up the food chain.

Looking further into the install, it is using netcfg to connect to the network. I guess this will need to be upgraded to netctl one day, but given I have never used either of those, I think I will save that for later. The netcfg configuration file that appears to be automatically set-up during droplet creation looks a bit of a mess, but works.

That is all I could see that is changed from a vanilla Arch install, so overall everything is exactly as I would expect.

I suppose the only other thing to look at is the Digital Ocean control panel. It provides everything I would expect – console access, power cycling, backup facilities. Not sure about having a “root password reset” function though… From there you can update your kernel to a recent Arch one (3.9.2-1). This is something I don’t quite understand. It is the Arch packaged kernel (as demonstrated by the pacman -Qi output), so something is happening in the background on update that is not happening when doing it via the package manager. I wonder if they could do whatever that is via our packaging system and provide a repository allowing a direct update of the kernel.

I can not really conclude much from a couple of days testing, but all seems good and speeds are fine… I think I have my website completely transfered (with only a small redirection “https” + “www prefix” combination issue to fix), so let me know if anything is out of order.

Posted in WebSite on May 21st, 2013 by allan – 4 Comments

Death of the [allanbrokeit] repository

I have deleted the [allanbroke] repository. It was started mainly to test the PGP signing implementation in pacman, which is now well established. Also, I would delay any packaging of release candidates or beta releases for this repository until I had enough free time and often official releases were made before that happened.

The repository may return someday, perhaps with VCS builds of packages I use locally once I get around to automating their creation as that would require no extra work…

Posted in Arch Linux on May 12th, 2013 by allan – 1 Comment

Interesting Links – April 2013

What’s that? It is now May and it has been for a few days… Better do this post then!

News from the world of distributions:

  • This relatively unknown distro got a release…. (Raring Ringtail)
  • Although there might be a lack of co-operation between them and Debian
  • Fedora 19 was slightly delayed.
  • openSUSE is doing lots of ARM stuff.
  • Debian Wheezy should be released soon
  • Sabayon is rolling out systemd.
  • What is the best distro? If you can access Linux Format, you will see… (Arch was runner up in the power-distro section.
  • And here is how to choose a distro that suites you… I got Arch even without demanding pacman, but Qubes OS and Slakel were close runners up. Never heard of them!
  • DragonFly BSD 3.4 was released using GCC-4.7.
  • An interesting addition of the /extra hierarchy by Chakra.

Software releases and news of interest:

  • A remote desktop backend was merged into Wayland
  • Speaking of Wayland, it got updated.
  • Google forks Webkit in a Blink (was my pun better than the articles?)
  • R-3.0.0 was released. Grab it from the Arch [testing] repo.
  • Chakra released Alpha 2 of the Akabei package manager
  • A project to set-up a lightweight KDE desktop.
  • GDB 7.6 added AArch64 support.
  • The Open Build Service 2.4 was released with supports PKGBUILDs… although I’m sure I posted it did before in one of these.
  • A talk about Glibc development.
  • Another attempt as SELinux on Arch
  • Clang is C++11 complete when 3.3 gets released.

And some fun stuff to finish:

  • The value of case badges. My laptop has an Apple logo, so that must really boost speed given the price it adds.
  • A simple game of 22 vs 11.
  • The revenge of the game developer.
Posted in Links on May 3rd, 2013 by allan – 6 Comments

We Are Not That Malicious…

I will clarify this just because I have had several people ask me already. No, we did not remove the SyncFirst option in pacman to deliberately cause issues for Manjaro Linux. In fact, it was first discussed in Feburary 2012 and, as far as I can tell, Manjaro has only been around from late March 2012 (looking at the earliest commits in their git repository).

So lets keep the conspiracy theories to a minimum! (or at least come up with a better one…)

Posted in Pacman on April 5th, 2013 by allan – 55 Comments

Pacman-4.1 Released

I have just released pacman-4.1 and packages are now in the [testing] repo. This is the first time I have made a release for any software project, so I was glad to have released a 4.1RC a few weeks back to learn everything that needed to be done.

It has been over a year since the pacman-4.0 release and there have been a large number of contributions made:

$ git shortlog -n -s --no-merges v4.0.0..v4.1.0
   239 Allan McRae
   185 Dan McGee
   158 Dave Reisner
    52 Andrew Gregory
    23 Simon Gomizelj
    20 William Giokas
    19 Florian Pritz
    15 Daniel Wallace
    ...

I win this time! Apart from the usual three contributors, it was great to see other people regularly helping out, both in providing and reviewing patches. A particular thanks to Andrew Gregory who helped me figure out how to fix something on several occasions and has been actively commenting on patches sent to the mailing list. His patch count also puts him in the top ten contributors of all time. In total we have 45 people with patches accepted for this release. Also a big thank you to our translators – particularly because I was learning how the system worked and may have required additional strings to be translated on a couple of occasions…

Moving on to what has changed. There have been quite a number of features added to pacman and makepkg and a couple of new helper scripts in this release.

The major feature for the release is tight integration between the package manager and systemd. After much discussion about how best to perform updates on a rolling release system, we realized that it was essential to have updates preformed with minimal other processes running. Also, the security aspects of updates mean that it is essential that these get provided as soon as possible. We felt the best way to achieve this was to perform updates on shutdown. This is achieved through a new daemon, pacmand that monitors and downloads updates in the background. When updates are found, it schedules a reboot of the system (hence the need to integrate systemd). At the moment the timing of the reboots is not configurable, but a timer will pop-up to allow you to delay it for a preset amount of time. Configuration will likely be added in pacman-4.2, when pacmanctl will be ready for general use. Until that release is made, Arch Linux will minimize the impact by performing all updates in its [testing] repository and only push updates on a yet to be decided day and time of the week. A news post will be made when that is decided.

Of course, all this makes systemd a hard dependency of pacman. We felt this was acceptable given Arch Linux has officially switched to using systemd. As this release is not tested (and unlikely to work) on systems without systemd, Arch users or other distributions using pacman will be required to make the switch to systemd if they want to continue using pacman as their package manager. The integration with system will become tighter in pacman-4.2 where we plan to use the upcoming kdbus message passing interface – through libsystemd-bus – to allow other programs to interact with pacman, making the development of alternative front-ends easier.

In terms of output, there has been improvements in a couple of areas. First colour support was added. This had been floating around for a long time, but no-one had ever spent the time to create a patchset and submit it. I think the colours for a simple update look good, although those when searching are a bit… rainbow. This can be only configured on or off at the moment. Extra informational output has been added for optdepends, providing details about whether an optdepend is installed or not and giving a warning when removing a package that is an optdepend for another. This also provides the groundwork for more complete optdepend handling in future releases.

When building packages using makepkg from this release, information about all the files in the package is stored, including permissions, modification times, sizes and checksums (md5 and sha256), etc. These can be checked using “pacman -Qkk“, excluding checksums (which requires additional support to be added to libarchive in order to read them in). Other useful features include never overwriting .pacsave files, but instead giving them a number suffix as needed. We have also polished the package signature checking, improving key importing and allowing configuration on how to validate packages installed with “pacman -U“, both using local files and from remote sources.

There are a few improvements to package building too. I have covered support for VCS packaging in makepkg previously, with bzr, git, hg and svn packages just requiring an appropriate line in the source array. Also a pkgver() function can be added to automatically update the pkgver variable in the PKGBUILD. With these VCS source lines, or any other source that is volatile, the value “SKIP” can be used in the checksum array.

An optional prepare() function can now be used in a PKGBUILD for preparation of the sources, such as patching and sed alterations. This function is run after the extraction of the sources and not run when --noextract is used, allowing operations that should only ever been run once on the sources to be skipped. Finally, a new debug option is available that will result all the debug symbols that are stripped from binary files to be stored in a separate package, which can be installed to allow easier debugging (another feature that has had patches floating around for a while).

Finally, two new helper scripts have been added to the contrib section: checkupdates and updpkgsums. The checkupdates script allows you to safely check for package updates without altering the system pacman remote databases. The updpkgsums script will perform an in place update of the checksums in a PKGBUILD, although more complex PKGBUILDs (such as those with different sources for each architecture) will not likely work…

So a long post, but this is a big release! There are enough of running the git version that it should be completely bug free, but just in case I am wrong report any issues to the bug tracker.

Edit: Yes – some of this was April Fools… (moderated comments are now restored too).

Posted in Pacman on April 1st, 2013 by allan – 62 Comments

Interesting Links – March 2013

And we come to the end of another month. And not surprisingly, more stuff happened…

Software news first:

  • There was lots and lots and lots and lots of talk about Mir – Ubuntu’s new anti-Wayland.
  • And if that was not enough, here are more comments from people on the issue
  • Speaking of Wayland, here is a summary of its progress in Arch land…
  • And how its support in GTK and GNOME is progressing
  • Wayland/Weston also have a new fork – for some reason
  • gcc-4.8 was released (get it from the Arch [testing] repo) and now builds in C++
  • ZFS is ready for use
  • GTK+-3.8 was released, closely followed by GNOME-3.8
  • The math library performance in glibc is getting continuous improvements
  • A new startup manager for KDE is in the works and it looks like it will speed up your login
  • ownCloud 5 was released
  • A summary of plans for libsystemd-bus and kdbus
  • The security features of RPM – I thought installed file validation would be in there…
  • Ever wondered how often assembly is used in the software carried by a distribution?
  • Finally, if you use PostgreSQL, be prepared for the 4th of April…

Various distro news:

  • openSUSE released an ARM64 port (although there is no hardware…)
  • Ubuntu also looked at rolling releases, but decided not to
  • Instead, they halved the support time of non-LTS releases
  • It seems Arch Linux is the best multimedia distribution (WTF!?)
  • How Fedora manages building for multiple architectures

And finally…

  • Want to go to Mars – on a permanent trip? Probably do it with a company with more than a handful of employees…
Posted in Links on March 31st, 2013 by allan – Be the first to comment

Pacman 4.1.0rc1

For those that are mildly adventurous, you can try the pre-release of the upcoming pacman-4.1. There are a handful of us who constantly run pacman from git so it should be fairly safe. All bugs found are to be reported to the bug tracker. (Only one issue found so far – in the rarely used pkgdelta script).

Download: i686 x86_64

I’ll make a post about all the new features when the final 4.1.0 release is made – hopefully before the end of the month.

Posted in Pacman on March 10th, 2013 by allan – 11 Comments

My Arch Linux Talk at SINFO XX

I was recently invited to give a talk about Arch Linux at SINFO XX at IST in Lisbon, Portugal. It was a whirlwind tour of Europe, with the time I spent in transit almost exactly equal to the time I spent there.

Check out the video of my talk on their YouTube channel. I discuss what makes Arch different from other Linux distributions, what our strengths are as a distribution and briefly cover what future plans people have. I’m not going to watch it as it is never a good idea to dissect talks too much, so I’ll just assume I was awesome… It was also after midnight in my time zone, so I blame any mistakes on that.

Thanks to the organizers for inviting me over!

Edit: Quite a few people have asked for copies of me slides. Here they are (CC BY-SA): ODP PDF

Posted in Arch Linux on March 10th, 2013 by allan – 9 Comments

Interesting Links – February 2013

I’m a bit late with the links this month due to travel (more on that later…), but as is the case every month, it is entirely worth the wait!

How to split this up… Lets start with software related links:

  • More and more and more and more on secure boot
  • There was (and maybe still is) a bug to brick some Samsung laptops, although not Linux specific
  • GNOME has made JavaScript its default language for applications and apparently that is a good thing
  • Google provided some C++ containers that are faster and more memory efficient than the STL versions
  • Debian has been recompiled with Clang again
  • But why would you bother for a whole distribtion when gcc -O1 is equal to (or even a little bit better than) clang -O2 in performance and compile speed
  • Libreoffice is now one impressive user of make
  • Almost every piece of software will need an autoreconf to build for AArch64
  • It seems you can now use OpenRC on Arch Linux – because systemd is evil
  • Some magic involving the kernel and dbus
  • A groundbreaking revelation on how to install LibreOffice-4.0 in Arch Linux
  • This post on shared library permissions can out the same week I was reading up on it! Arch Linux still has no policy on these permissions…
  • A new XFCE release is always good, mainly due to its minimal change.
  • Tom did not read the Arch wiki when installing on his MacBook, so another way to remove the boot-up sound
  • No choice here – I enjoy a good rant
  • This is why all bug fixes should be accepted by upstream first
  • A report on what happened with Xorg in 2012
  • The Python trademark is having issues in Europe – with update

Various Linux distribution stuff:

  • The AArch64 (64bit ARM) Debian port can boot
  • Or is the distro called Debian/Ubuntu?
  • The GNU Hurd moves along slowly, slowly.
  • Arch Linux is crap and full of broken packages, but here is how to deal with it…
  • Bad statistics and wobbly lines
  • Another month, another Arch spinoff
  • Remember how last month it was concluded Ubuntu was not going rolling release? To clear that up, things may or may not have changed.
  • Debian Wheezy is getting closer. Here is what is new.

And some fun stuff:

  • I saw this post about needed punctuation marks and was reminded of this comedy sketch.
  • Type your address and watch this go…
  • Monopoly can be finished rather quickly
  • Google has some interesting issues in Australia!
  • And they should give me one of these… I would use it to increase my awesomeness
Posted in Links on March 7th, 2013 by allan – 5 Comments

Interesting Links – January 2013

End of January already! Not sure where that month went…

Lets start with some distro news:

Software related:

  • If you are using MoinMoin for a wiki, you better update… It is rather critical!
  • More software nearing python-3 ready. This time django is close
  • Given how much is still using libjpeg-6, I’m not sure I’d be compressing JPEGs using this yet…
  • Bye bye systemd myths – and here goes the prize for best comment.
  • Another post in the “autotools mythbuster” series – the main “book” is worth a read too

And some collected commentary:

  • How to get involved at Gentoo – most applies to Arch too..
  • A quite good summary of what it means to be a rolling release
  • What is the best MAKEFLAG for your number of processors?
  • I’m always impressed by the ability to brick things just by booting!
  • A fix for a timing issue in the “-ck” kernel, discovered by an Arch user tying to compile glibc
  • Hrmm… which one is supossed to be the bad guy here?
Posted in Links on January 31st, 2013 by allan – 4 Comments