Sunday, May 06, 2018

Bionic and LXC

This brand new Ubuntu LTS 18.04 surely had given me a big surprise. Major syntax change for LXC, because of upgrade from LXC v2 to v3. All my LXC VMs can't be started after this upgrade.Searching documentation about config syntax change was difficult. So I have resorted to reverse engineering: install new LXC VM, then compare its config to v2. Result is documented here.

Still need more info to run unprivileged LXC container.

Friday, March 30, 2018

Konferensi Lagi

23 Maret kemarin, saya mengisi acara workshop LibreOffice di PENS, Surabaya. Sebenarnya saat mengisi CFP, saya hanya mengusulkan topik yang menjadi sesi ke-2 workshop, yaitu kurang lebih menguji dan memperbaiki terjemahan, yang saya pikir cukup untuk mengisi satu sesi sekitar 60 menit. Tapi ternyata panitia menodong dan memperluas usulan CFP menjadi workshop sehari penuh. Apa boleh buat. Sudah lama tidak ngoceh di depan kelas :D

Kebetulan saya sering mem-build LibreOffice sekedar untuk menguji terjemahan UI. Tapi seringkali malah jadi iseng build tanpa sempat uji terjemahan, atau hanya menerjemahkan tanpa sempat menguji dengan menjalankan dan memeriksa tampilan secara visual. Berhubung sesi-1 workshop bertema mem-build LibreOffice, maka saya perlu menyiapkan lingkungan build yang dapat dipakai oleh semua peserta. Dihitung-hitung, kok VM build saya berukuran lebih dari 40 GB. Cukup berat untuk mengangkut 40 GB dan menyalin ke 30 PC peserta. Percobaan perampingan template build bisa menghasilkan image 10 GB. Lebih manusiawi untuk disedot dan disebarkan. Ada panitia lokal yang membantu saya menyedot image dan mencoba memasang pada mesin para peserta. VM sukses dijalankan. Saya pikir pekerjaan persiapan di sana beres. Tinggal menyelesaikan materi presentasi/panduan workshop. Tengah malam sebelum workshop akhirnya materi bisa beres, karena beberapa jam agak sore habis untuk makan-ngobrol-kopdar-curhat-foto-dsb bareng panitia.


Jumat pagi workshop dimulai. Mayoritas PC bisa menjalankan VM templat. Beberapa mesin bermasalah, tapi bisa dilupakan sejenak. Peserta yang mesinnya bermasalah terpaksa berbagi pakai dengan tetangganya. Tapi ternyata ketika proses build dicoba dijalankan, dan memerlukan mengunduh, akses internet yang mesti melalui proksi tidak berlangsung mulus. Saya saat itu tidak terpikir untuk mencoba mendefinisikan variabel lingkungan yang menggiring akses melalui proksi. Setelah mengeskalasi masalah, dilanjutkan dengan rekonfigurasi jaringan melalui jalur yang tidak perlu memakai proksi, pengunduhan lancar. Build dapat dilanjutkan.

Tentu saja muncul masalah-masalah lain. Misalnya, ada peserta yang terlanjur memakai user root saat mengeksekusi perintah build. Ketika kembali ke user normal, build gagal. Ini adalah tantangan mengajar, mesti berpikir cepat mengatasi masalah. Saat build sendiri, masalah ini tidak pernah muncul. Solusinya cukup berupa [1]:
$ find . -uid 0 -exec sudo chown 1000 {} \;
Masalah lain yang muncul adalah ketidakselarasan jam VM guest dengan host. Tidak sempat saya telusuri kenapa jam jadi maju, sehingga proses build loop, tidak pernah mencapai fase link. Hantam saja dengan perintah:
$ touch abcd; find . -newer abcd -exec touch {} \;
Beres. Waktu untuk sesi 1 habis. Break. Build yang masih berlangsung dibiarkan dengan harapan seusai istirahat telah komplit. Dan harapan ini terkabul, mayoritas build sukses saat kami kembali dari jeda untuk memulai sesi 2.

Saya senang melihat para peserta yang bersemangat mencoba build. Semoga setelah ini tetap mencoba build di tempat masing-masing, dan barangkali scratching-their-own-itch dan berlanjut dengan kontribusi patch/kode ke LibreOffice.


Catatan:
1. hati-hati menjalankan perintah ini. Mesti dilakukan di direktori build. Bila dijalankan di / atau direktori lain, bisa membuat seluruh sistem tidak berjalan normal.