Bismillah,...
Baru dapet lungsuran (baca: bekas) kamera digital dari kakak yang langsung saja saya gunakan untuk jeprat jepret. Tapi waktu mau menyalin gambar dari kamera ke komputer, eh,... ternyata isinya gak bisa dibaca secara langsung. Perangkat terdetek sebagai kamera, namun saat diakses, tidak satupun file yang ditampilkan.
Perangkat terdetek di Device Manager |
Seperti biasa, saya mencari cari software di Slackbuilds.Org yang dapat digunakan untuk mengakses memori kamera langsung menggunakan kabel data tanpa perlu melepas memorinya. Dari sekian hasil yang ditampilkan, saya putuskan untuk menggunakan Digikam (saat tulisan ini dibuat, versi Digikam yang tersedia adalah versi 4.2.0) karena saya menggunakan desktop KDE.
Pada halaman Slackbuilds, disitu tertulis bila Digikam membutuhkan pustaka liblqr, ffmpeg, lensfun, dan opencv. Karena sebelumnya, saya telah memasang pustaka ffmpeg dan opencv, maka saya hanya mengunduh dan memasang dua pustaka sisanya. Yaitu liblqr dan lensfun.
Instalasi berjalan seperti biasa tanpa masalah yang membuat saya dengan cepat untuk melanjutkan proses berikutnya. Yaitu meng-kompilasi dan meng-install paket Digikam. Dan,... saya menemukan ini saat proses kompilasi Digikam.
CMake Error at extra/libkface/CMakeLists.txt:118 (MESSAGE): LibKface cannot be compiled. -- Configuring incomplete, errors occurred! |
BOOM!!! Langsung saja keringat dingin saya keluar karena dengan susah payah saya men-download paket Digikam yang menurut saya berukuran sangat besar (saya ukur dengan kecepatan internet saya yang tidak cepat dan sering putus).
Dengan harap harap cemas, saya coba mempelajari kesalahan yang ditampilkan di layar. Kemudian saya coba untuk melihat isi file extra/libkface/CMakeLists.txt yang berada di /tmp/SBo/digikam-4.2.0/. Berikut isi file CMakeLists.txt:
Seperti kesalahan yang ditampilkan di layar terminal (CMake error at extra/libkface/CMakeLists.txt:118). Pada baris ke 118-119 juga berisi string dengan nilai "LibKface cannot be compiled.". Apa yang salah disini? Saya mencoba menelusuri kodenya secara perlahan.
String yang ditampilkan berada pada kata kunci ELSE(). Dari sini saya coba mencari kata kunci IF() yang seharusnya berada diatas baris ELSE(). Saya temukan. Kunci IF() berada di baris 50. Dan beberapa baris diatasnya saya melihat baris yang berisi DETECT_OPENCV(2.4.9 core highgui objdetect contrib).
Dari sini saya mengetahui bila ternyata libkface hanya membutuhkan pustaka QT dan OpenCV untuk kompilasi. Dan libkface pada Digikam 4.2.0 ini membutuhkan pustaka OpenCV v2.4.9. Kemudian saya coba bandingkan kebutuhan libkface terhadap pustaka OpenCV dengan pustaka yang ter-install di sistem saya dengan perintah # ls /var/log/packages/ | grep opencv.
String yang ditampilkan berada pada kata kunci ELSE(). Dari sini saya coba mencari kata kunci IF() yang seharusnya berada diatas baris ELSE(). Saya temukan. Kunci IF() berada di baris 50. Dan beberapa baris diatasnya saya melihat baris yang berisi DETECT_OPENCV(2.4.9 core highgui objdetect contrib).
Dari sini saya mengetahui bila ternyata libkface hanya membutuhkan pustaka QT dan OpenCV untuk kompilasi. Dan libkface pada Digikam 4.2.0 ini membutuhkan pustaka OpenCV v2.4.9. Kemudian saya coba bandingkan kebutuhan libkface terhadap pustaka OpenCV dengan pustaka yang ter-install di sistem saya dengan perintah # ls /var/log/packages/ | grep opencv.
Hasilnya, ternyata pada sistem saya yang terpasang adalah pustaka OpenCV v2.4.7. Karena malas untuk meng-upgrade (malas download dan kompilasi ulang karena ukuranya besar sekali. Sekitar 85.MB), saya putuskan untuk merubah versi yang berada pada file CMakeLists.txt dari 2.4.9 menjadi 2.4.7.
Dan saya juga sedikit merubah isi skrip file digikam.SlackBuild. Saya memberi tanda komentar pada beberapa baris perintah yang terdapat didalamnya. Berikut adalah baris yang saya rubah:
set -e rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf $PRGNAM-$VERSION tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 cd $PRGNAM-$VERSION chown -R root:root . |
Menjadi
set -e #rm -rf $PKG #mkdir -p $TMP $PKG $OUTPUT cd $TMP #rm -rf $PRGNAM-$VERSION #tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 cd $PRGNAM-$VERSION chown -R root:root . |
Maksud dari pemberian komentar diatas adalah agar skrip tidak melakukan apapun selain kompilasi kode pada direktori /tmp/SBo/digikam-4.2.0 yang berisi skrip CMakeLists.txt yang telah dimodifikasi tadi.
Kemudian jalankan skrip SlackBuild seperti biasa.
# ./digikam.SlackBuild |
Hasilnya, proses kompilasi ini berjalan normal kembali.
Dan saat digunakan, program juga berjalan tanpa masalah.
Catatan:
Sebaiknya, lakukan upgrade paket yang dibutuhkan untuk mendapatkan performa yang maksimal.
Sekian dan semoga bermanfaat, :-)