Patching gems for security vulnerabilities with gem-patch

gem-patch is a RubyGems plugin that helps you to patch gems. You can use it to apply security fixes or cherry-pick commits you want to apply to your .gem files. I use it to test whether the upstream commits containing vulnerability fixes apply cleanly on older gem releases so I can prepare fixed builds of those gems in Fedora. Here is how one can do that. Continue reading “Patching gems for security vulnerabilities with gem-patch”

Running Kubernetes on Fedora with Vagrant

Kubernetes is a Container Cluster Manager from Google which basically means that Kubernetes is an orchestration of many services running on plenty of Docker containers. Google actually supports a several ways how to run Kubernetes and luckily Vagrant is one of them. Continue reading “Running Kubernetes on Fedora with Vagrant”

Vagrant assistant for your DevAssistant

You have probably heard about Vagrant coming to Fedora and might have heard about DevAssistant too. DevAssistant can make your development easier by setting up your project’s basic structure, installing needed dependencies or tools. But if you wanted to use Vagrant for your project as well, you needed to install and configure it separately. Until now. Continue reading “Vagrant assistant for your DevAssistant”

gem-compare: Releasing a new gem version with confidence

What do you usually do when releasing a new version of gems? Running test suite? Something more? I like to use my tool on tracking changes in RubyGems gem-compare as it gives me a little bit more confidence on what am I actually releasing. Here’s how I do it. Continue reading “gem-compare: Releasing a new gem version with confidence”

Inception: running Vagrant inside Vagrant with KVM

Since I package and maintain Vagrant and vagrant-libvirt for Fedora, I have a need to test new builds. But since I run just one version of Fedora and I don’t really feel like testing it directly on my host system, I actually use Vagrant to test Vagrant. In other words I run Vagrant with KVM and inside I download the new builds and run Vagrant with KVM again. This is possible because KVM supports nested virtualization. In fact I already wrote about setting that up with virt-manager. But today I show you how to do it using Vagrant itself. Continue reading “Inception: running Vagrant inside Vagrant with KVM”

Safe code evaluation in Ruby with $SAFE

As you probably know, you can use eval() to evaluate Ruby code from Ruby. But evaluating things that come from the outside of the program like user inputs can be dangerous. Why they can be dangerous you ask? eval() evaluates anything as we would program it ourselves. Basically anything can happen. That’s why it’s best to avoid eval() for such inputs altogether. But we can evaluate Ruby in a safer manner too; with $SAFE. Continue reading “Safe code evaluation in Ruby with $SAFE”

Running test/unit suites with Minitest

Sometimes it happens that you want to run an old test suite, but you don’t have a correct version of the testing framework available. That happens a lot in Fedora
since tooling around RPM supports only one version of each component and new rubies does not come with test/unit anymore. As we still need to run the tests, we have two options. Either go ahead and update the whole test suite to a new version or just use Ruby’s dynamic nature to actually run it. Let’s look how the latter can look like. Continue reading “Running test/unit suites with Minitest”

Vagrant NFS exports on Fedora 21

If you are using Vagrant chances are you would like to use NFS instead of rsync to speed up shared folders and avoid annoying vagrant rsync-auto command. But what to do when Vagrant just hang on Mounting NFS shared folders in Fedora? Continue reading “Vagrant NFS exports on Fedora 21”