a Windows shell you will love!

  Download now       Visit us on GitHub

04.04.2015 by Lukasz Pielak

After months of hard work a new version of Babun has been finally promoted to production!

This release features an important change in the auto-update behavior.

From now on babun update will also check and update the underlying Cygwin instance with all Cygwin packages that have been already installed, apart from updating babun itself.

The main reason for this change was to make sure that the packages installed with pact are compatible with the underlying Cygwin instance. Pact always fetches the newest available package from the Cygwin repository, but it does not update Cygwin’s internal DLLs', thus it was possible that a new version of given package like git, ruby, emacs etc. would not work on top of the older Cygwin version embedded in babun.

For this reason it is important to keep pact packages and Cygwin core libraries 'in sync'.

Babun will automatically check on startup if there is a newer Cygwin version available and prompt the user to update it. On Cygwin update babun will close itself, run the Cygwin installer in a separate cmd process and restart itself once the installation has been completed. If there is a newer version of Cygwin available pact will not allow the user to install new packages. Instead they will be prompted with the following message:

{ ~ }  ยป pact install arj                                                                       ~
CRITICAL: The underlying Cygwin version is outdated!
It's forbidden to install new packages as they may fail to work.
Execute 'babun update' and follow the instructions to update Cygwin.
If you know what you are doing add '--force' flag to proceed.

As you can see it is still possible to install packages using the --force option but it is not guaranteed that the downloaded package will work correctly.

Big thanks to @v-yadli for helping us designing and developing the concept of this feature.

The auto-update improvement is not the only change in 1.1.0. This release is shipped with other new features coded up during several hackergartens, hacking sessions and long coding nights. The most important features are:

  • 'pact update', so that you may update a package to a newer version

  • 'fake sudo', so that you can run scripts containg sudo

  • soft links to harddrives, like /c, /d, so that you may forget about /cygdrive/c

  • a lot of fixed bugs; all of them are listed here:

Many thanks to everybody who contributed to this release via pull requests, by helping other users, or even by fixing typos!

Also a big thank you to @almorelle, @vanushv, @tonilampela, @v-yadli, @harijoe, @airborn and @kubamarchwicki for taking time and effort of testing this version.

In case you have the previous version installed it’s important to invoke 'babun update' to stay up-to-date!

We really hope that you’ll like this release. If you do, tweet about it, star babun on github or just…​ enjoy it :)


P.S. If somebody is interested in the full list of issues that have been squashed in 1.1.0, just have a look:

  • MD5 sum did not patch, exiting #265

  • Package 'git' is broken after update #259

  • Cmake just returns to prompt without doing anything #252

  • Upgrading Git #242

  • versioning in pact, and pact upgrade & pact dist-upgrade (or the other way) #239

  • Updating git #232

  • Numpy not working after pact install #231

  • Command exits with 127 on Babun, but works on Cygwin #225

  • Unable to start X server after pact install xorg-server xinit #222

  • Emacs doesn’t run #210

  • g++ compilation doesn’t produce any resulting file #203

  • Upgrading with pact not available #199

  • shellshock: bash 4.1.10(4) and zsh 5.0.2 (i686-cygwin) vulnerablility #198

  • Pact Installer, Md5 checksum not matching…​ #257

  • Add "login" command to babun’s script #253

  • Rerun babun startup scripts after running 'babun update' #250

  • Duplicate call of babun.zsh in /etc/zshrc #249

  • Git plugin changes my gitconfig #247

  • Cannot update oh-my-zsh on start #211

  • etc/zprofile is being called twice causing CHERE_INVOKING to fail. #205

  • .bashrc running three times #166