Mengatasi masalah barcode generator SLiMS di Mesin FreeBSD 9.1

Halo…

Ada yang pernah mengalami barcode generator SLiMS yang nge-blank di mesin FreeBSD ndak? Begini permasalahannya, pustakawan Fakultas Teknik meminta saya untuk mengatur masalah barcode yang nge-blank di mesin server dhemit alias FreeBSD. Jadi beliau pada saat mau generate barcode melalui menu System > Barcode Generator, SLiMS tidak menampilkan barcode sama sekali.

Pernah suatu waktu di tahun 2013 saya ubek-ubek forum SLiMS untuk mengatasi hal tersebut. Di thread ini katanya sih gara-gara masalah permissions. Namun, setelah saya chmod +x genbarcode ternyata malah muncul error seperti ini:

ELF binary type "0" not known.
./genbarcode: Exec format error. Binary file not executable.

Dalam benak saya waktu itu nggak mungkin bisa file biner Linux dijalankan di FreeBSD. Tanpa pikir panjang saya pun download kode sumber php-barcode kemudian ngompel dan berhasil jalan lewat command line:

$ ./genbarcode 123456 128
02112321122321311233311211321312331112
11:9:1 16.5:9:2 22:9:3 27.5:9:4 33:9:5 38.5:9:6 
code 128

Eh tapi ternyata saat saya coba masuk halaman admin SLiMS dan mencoba membuat barcode ternyata hasilnya blank. Fak bangetlah! Lha gimana nggak jengkel coba? Sudah mbulet pasang dependensi buat kompel kode di FreeBSD ternyata masih nge-blank. Saat itu kepikiran mau ganti OS dari FreeBSD ke Linux tapi kok ribet backup dan restore data yang sudah ada di server.

Baru tadi pagi agak siangan dikit saya ngobrol sama mas Arif dan mas Harun mengenai rencana ganti OS. Namun, mas Harun bilang kalau di FreeBSD bisa menjalankan file biner Linux dengan mengatur Linux® Binary Compatibility.

Setelah memasang hal yang diperlukan sekarang file biner lib/phpbarcode/bin/nix/genbarcode bisa dijalankan tanpa perlu kompel untuk FreeBSD. Sip deh! Masalahnya sudah beres, tinggal perlu mengubah file lib/phpbarcode/php-barcode.php biar barcode yang dibuat melalui menu System > Barcode Generator di mesin FreeBSD muncul.

Begini Langkahnya

  1. Load linux kernel
    # kldload linux
  2. Cek apakah modul sudah ok
    root@library:/root # kldstat 
    Id Refs Address            Size     Name
     1    6 0xffffffff80200000 1323408  kernel
     2    1 0xffffffff81612000 1f417    linux.ko
  3. Pasang emulators/linux-base-f10 melalui port
    root@library:/root # cd /usr/ports/emulators/linux_base-f10
    root@library:/usr/ports/emulators/linux_base-f10 # make install distclean
    => basesystem-10.0-1.noarch.rpm doesn't seem to exist in /usr/ports/distfiles/rpm/i386/fedora/10.
    => Attempting to fetch http://critical.ch/distfiles/rpm/i386/fedora/10/basesystem-10.0-1.noarch.rpm
    basesystem-10.0-1.noarch.rpm                  100% of 2915  B 7713 kBps
    => bash-3.2-30.fc10.i386.rpm doesn't seem to exist in /usr/ports/distfiles/rpm/i386/fedora/10.
    => Attempting to fetch http://critical.ch/distfiles/rpm/i386/fedora/10/bash-3.2-30.fc10.i386.rpm
    ....
    --- TUNGGU SAMPAI SELESAI ---
    ...
  4. Tambahkan baris berikut pada /etc/rc.conf biar modul aktif tiap boot:
    linux_enable="YES"
  5. Edit file lib/phpbarcode/php-barcode.php menjadi seperti berikut (baris 51):
    // genbarcode binary location
    if (stripos(PHP_OS, 'Darwin') !== false) {
        $genbarcode_loc = './bin/darwin/genbarcode';
    } else if (stripos(PHP_OS, 'Linux') !== false) {
        if (PHP_INT_SIZE == 4) {
            $genbarcode_loc = './bin/nix/genbarcode';
        } elseif (PHP_INT_SIZE == 8) {
            $genbarcode_loc = './bin/nix/genbarcode64';
        } else {
            $genbarcode_loc = './bin/nix/genbarcode';
        }
    } else if (stripos(PHP_OS, 'FreeBSD') !== false) {
    		$genbarcode_loc = './bin/nix/genbarcode';
    } else {
        $genbarcode_loc = '.binwingenbarcode.exe';
    }

Nah! Udah gitu aja…

Continue reading


Libil

Wahihihihi, kemarin buka notifikasi twitter ada om Didiet Noor nyebut nama saya terkait libil. Padahal libil kan artinya ngising. Ha mosok libil dihubungkan sama saya? Pancen kok, hih!

Tapi libil-nya om Didiet Noor ini bukan libil yang sebenarnya. Lib…

Continue reading


Libfakekey, dependensi baru kdeconnect?

Hae! Selamat hari raya senin! 🙂

Siang ini tugas saya di unit Registrasi agak selo dan saya bersemangat untuk membuat paket kdeconnect versi git yang baru. Nggak pake lama saya nyetater konsole buat narik kode sumbernya dan mencoba membuat paket dengan PKGBUILD buatan Kuba Serafinowski. Berhubung proses narik kode terbaru dan kompilasinya agak lama akibat koneksi di kantor Registrasi yang agak-agak ho oh jadi bisa ditinggal udud. Hhe…

Setelah beberapa saat saya cek di terminal ternyata paket kdeconnect gagal dibuat, ada error pas kompilasi. Pesan errornya seperti ini:

Scanning dependencies of target kdeconnect_share
/home/tiyok/Development/aur/kdeconnect-git/src/kdeconnect-git/plugins/mousepad/mousepadplugin.cpp:26:29: fatal error: fakekey/fakekey.h: No such file or directory
 #include <fakekey/fakekey.h>
                             ^
compilation terminated.
plugins/mousepad/CMakeFiles/kdeconnect_mousepad.dir/build.make:77: recipe for target 'plugins/mousepad/CMakeFiles/kdeconnect_mousepad.dir/mousepadplugin.o' failed
make[2]: *** [plugins/mousepad/CMakeFiles/kdeconnect_mousepad.dir/mousepadplugin.o] Error 1
CMakeFiles/Makefile2:1354: recipe for target 'plugins/mousepad/CMakeFiles/kdeconnect_mousepad.dir/all' failed
make[1]: *** [plugins/mousepad/CMakeFiles/kdeconnect_mousepad.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

Agak mumet juga baca pesan error seperti itu. Kalau dilihat-lihat sih kompilasinya gagal gara-gara nggak nemu fakekey/fakekey.h. Biar nggak error lagi PKGBUILD perlu di-edit, pada array depends=() perlu ditambahkan paket libfakekey jadi begini:

# Maintainer: Kuba Serafinowski <zizzfizzix(at)gmail(dot)com>
# https://github.com/zizzfizzix/pkgbuilds

##############################################################
#### The section below can be adjusted to suit your needs ####
##############################################################

# What type of build do you want?
# See http://techbase.kde.org/Development/CMake/Addons_for_KDE#Buildtypes to check what is supported.

_buildtype='RelWithDebInfo'

##############################################################

pkgname=kdeconnect-git
pkgver=515.ea5d9c8
pkgrel=1
pkgdesc='KDE Connect kded and kcm - development version'
url='https://albertvaka.wordpress.com/'
license=('GPL')
arch=('i686' 'x86_64')
depends=('kdelibs' 'qjson' 'qca-ossl' 'libfakekey')
makedepends=('automoc4' 'git' 'cmake')
optdepends=('sshfs: remote file browsing')
provides=('kdeconnect')
conflicts=('kdeconnect')
install=kdeconnect.install
source=("${pkgname}::git://anongit.kde.org/kdeconnect-kde")
md5sums=('SKIP')

if [[ ! ${_buildtype} == 'Release' ]] && [[ ! ${_buildtype} == 'release' ]]; then
  options=('debug')
fi

pkgver() {
  cd ${pkgname}
  echo $(git rev-list --count HEAD).$(git rev-parse --short HEAD)
}

prepare() {
  if [[ -e ${pkgname}-build ]]; then rm -rf ${pkgname}-build; fi
  mkdir ${pkgname}-build
}

build() {
  cd ${pkgname}-build

  cmake -DCMAKE_INSTALL_PREFIX=/usr 
        -DKDE4_BUILD_TESTS=OFF 
        -DCMAKE_BUILD_TYPE=${_buildtype} 
        ../${pkgname}
  make
}

package() {
  cd ${pkgname}-build
  make DESTDIR=${pkgdir} install
}

Yes! Setelah dicoba menjalankan makepkg dengan PKGBUILD yang udah diedit paket kdeconnect-git akhirnya jadi juga. o/

Continue reading


Perbaikan Nayanes

Sejak kemarin saya merasa ada yang aneh dengan hasil pencarian katalog dengan Nayanes pada pencarian di satu lokasi. Nayanes menampilkan semua hasil pencarian pada setiap lokasi (node) dengan mode pencarian semua lokasi (multiple node search).

Namun saat Nayanes melakukan pencarian katalog pada satu lokasi (single node search) tidak ada hasil yang ditampilkan. Padahal tidak ada pesan kesalahan, aneh to? :confused:

Pada mode multiple search node dengan kata kunci pencarian dan lokasi yang sama ada 574 rekaman yang ditampilkan.Nah piye jal? Saking frustasinya saya pun minta bantuan pak Aziz untuk membantu memperbaiki Nayanes.

Perubahan kode lib/contents/search.inc.php:

$('.no-result-list').append('<li>REQUEST TIMEOUT from <strong><?php echo $node_data['desc']; ?></strong></li>')

menjadi:

$('.no-result-list').append('<li>REQUEST TIMEOUT from <strong><?php echo $sysconf['node'][$nodeid]['desc']; ?></strong></li>')

Setelah diuji coba, akhirnya ada hasil pencarian yang ditampilkan. Memang pak Aziz, senior saya ini juara! Jios pokoke! :thumbsup:

Nayanes repository:

https://github.com/go2n/nayanes

Continue reading


Hello world!

Hae.. Hello world!

Jadi gini, go2n.github.io ini cuman tempat buat postang posting tulisan di github. Yaa.. kira-kira bisa dikatakan semacam buat nge-blog lah.

Sebetulnya saya sudah punya tempat buat nge-blog, ada yang Wordpress, Tumblr dan Ghost. Ta…

Continue reading