Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added a blog post re Tebako 0.6.0 release with Windows support #30

Merged
merged 3 commits into from
Apr 2, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 96 additions & 0 deletions _posts/2024-04-02-tebako-windows-release.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
---
layout: post
title: "Tebako Windows support at v0.6.0!"
date: 2024-04-02 00:00:00 +0800
categories:
- tebako
- packaging
- windows
author:
name: Maxim Samsonov
email: [email protected]
use_picture: assets
social_links:
- https://github.com/maxirmx
excerpt: >-
Tebako now officially supports Windows, including Windows 2019, Windows 2022
targets using MinGW ucrt64, at version 0.6.0 released today.
Now Tebako supports packaging for most major platforms: Linux, macOS and
Windows.
---

== Background

Tebako is an executable packager.

It packages a https://www.ruby-lang.org/[Ruby] solution with the key idea:

[quote]
____
one Ruby application => one Tebako image
____

== Windows support at v0.6.0

Prior to v0.6.0, Tebako supported packaging for the platforms:

* Linux platforms using https://www.gnu.org/software/libc/[`glibc`] (https://ubuntu.com[Ubuntu], etc)
* Linux platforms using https://www.musl-libc.org[`musl`] (https://www.alpinelinux.org[Alpine Linux])
* macOS platforms

From v0.6.0, Tebako now adds Windows 2019, Windows 2022 targets to the mix.

As of today, Tebako officially supports the following platforms:

* Linux platforms using https://www.gnu.org/software/libc/[`glibc`] (https://ubuntu.com[Ubuntu], etc)
* Linux platforms using https://www.musl-libc.org[`musl`] (https://www.alpinelinux.org[Alpine Linux])
* macOS platforms
* Windows 2019, Windows 2022 targets using MinGW `ucrt64` toolchain


== Trying out Tebako on Windows

The simplest approach to setup Tebako packaging environment on Windows is to use the Ruby development environment provided by https://rubyinstaller.org[RubyInstaller].

For example, https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.1.4-1/rubyinstaller-devkit-3.1.4-1-x64.exe[`Ruby+Devkit 3.1.4-1`].

Once it is installed, use the following commands to install additional packages
and Tebako in `cmd`:

[source,cmd]
----
ridk enable ucrt64

pacman -S git tar bison flex toolchain make cmake
boost diffutils libevent double-conversion
fmt glog dlfcn gtest autotools ncurses libyaml

gem install tebako
----

== Current limitations

There are several caveats with Windows support for now, and they will be
addressed in due time:

* Only Ruby 3.1.4 is supported on Windows.
* Gem with native extensions that use advanced or non-standard build systems are not supported yet.

Unsupported gems we know of include (not a complete list of course):

* https://github.com/davispuh/ruby-libmspack[libmspack]
* https://github.com/masamitsu-murase/seven_zip_ruby[seven_zip_ruby]

NOTE: The list of unsupported gems will be updated as we encounter them.

The Tebako team plans to address these limitations in the future releases.

We will soon publish a blog post for
link:/blog/2023-08-25-introducing-aibika-and-ocra/[Akiba users] on how to
migrate from Akiba to Tebako for Windows.

== Conclusion

Tebako now supports single-binary packaging for Ruby on all major platforms!

Pack away...
Loading