Skip to content

Commit

Permalink
feat: some clean up on the windows blog post
Browse files Browse the repository at this point in the history
  • Loading branch information
ronaldtse committed Apr 2, 2024
1 parent afbb871 commit 870ca47
Showing 1 changed file with 65 additions and 20 deletions.
85 changes: 65 additions & 20 deletions _posts/2024-04-02-tebako-windows-release.adoc
Original file line number Diff line number Diff line change
@@ -1,51 +1,96 @@
---
layout: post
title: "Tebako version 0.6.0 released"
title: "Tebako Windows support at v0.6.0!"
date: 2024-04-02 00:00:00 +0800
categories:
- tebako
- packaging
- Windows
- windows
author:
name: Maxim Samsonov
email: [email protected]
use_picture: assets
social_links:
- https://github.com/maxirmx
excerpt: >-
Tebako version 0.6.0 was released. This version adds support of Windows target to tebako packaging.
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.
---

= Tebako version 0.6.0 features
== Background

Tebako is an executable packager. It packages a https://www.ruby-lang.org/[Ruby]
solution with the key idea:
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
____

Prior to version 0.6.0 Tebako supported packaging for Linux Gnu (Ubuntu), Linux Musl (Alpine Linux) and MacOS platforms.
Recently released version 0.6.0 adds packaging for Windows 2019, Windows 2022 targets using MinGW ucrt64 toolchain.
== 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`].

The simplest approach to setup Tebako packaging environment on Windows is to use Ruby development environment provided by RubyInstaller, for example Ruby+Devkit 3.1.4-1.
Once it is installed use the following commands to install additional packages and Tebako:
Once it is installed, use the following commands to install additional packages
and Tebako in `cmd`:

[source, sh]
[source,cmd]
----
ridk enable ucrt64
ridk enable ucrt64
pacman -S git tar bison flex toolchain make cmake
boost diffutils libevent double-conversion
fmt glog dlfcn gtest autotools ncurses libyaml
pacman -S git tar bison flex toolchain make cmake
boost diffutils libevent double-conversion
fmt glog dlfcn gtest autotools ncurses libyaml
gem install tebako
gem install tebako
----

Tebako Windows support is released with several limitations:
* Only Ruby 3.1.4 is supported
== 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.
To our knowledge, unsupported gems include libmspack and seven_zip_ruby but most likely it is not the full list.

Tebako team plans to address these limitations in the future releases.
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...

0 comments on commit 870ca47

Please sign in to comment.