Update variable pkgver PKGBUILD

SoftwareMalam ini saya iseng membuat PKGBUILD untuk AUR yang berasal dari kode sumber versi git. Selama ini ketika membangun sebuah paket dari kode sumber versi git saya mengubah variabel pkgver secara manual. Versi paket yang dipakai adalah tanggal saat membangun paket tersebut bukan revisi terakhir kode sumber.

Jika revisi kode sumber terakhir adalah 1 tahun yang lalu dan sekarang saya membangun paket maka hasilnya adalah nama_paket-20130916-1-x86_64.pkg.tar.xz. Kalau dilihat dari nama paketnya berarti versi software (kode sumbernya) dirilis pada tanggal 16 September 2013. Padahal pada kenyataannya kode sumber terakhir itu 16 September 2012. Ini tidak wangun sama sekali, dan terjadi 378 alias penipuan :-P. Sekarang dimisalkan saja, jika pengembang software tersebut sangat aktif dan dalam seminggu pengembang tersebut bisa commit beberapa kali apa ya wangun saya mengubah versi secara manual setiap membangun paket? Ya sebenarnya wangun-wangun saja sih, tapi tidak efisien.

Biar lebih efisien saat membangun paket perlu ditambahkan fungsi pkgver() pada PKGBUILD. Fungsi pkgver() ini berfungsi memperbarui nilai variabel pkgver secara otomatis saat membangun paket dengan makepkg. Fungsi ini akan dijalankan setelah kode sumber versi git di-pull/clone. Dengan fungsi ini proses membangun paket lebih efisien, karena tidak perlu mengubah nilai dari variable pkgver secara manual serta hasil paket yang dibangun lebih wangun dan tidak 378.

Saat membangun paket AUR malam ini saya menentukan versi berdasar tanggal terakhir revisi dan commit hash. Format versinya adalah <tanggal>_<commit hash>. Untuk mengambil tanggal commit terakhir saya gunakan perintah git log -1 --date=short --format="%cd" | tr -d '-'. Sedangkan untuk mengambil commit hash terakhir saya gunakan perintah git log -1 --format="%h". Fungsi pkgver() pada PKGBUILD secara lengkap adalah seperti berikut:

---
pkgver() {
        cd "${_gitname}"
        echo "$(git log -1 --format="%cd" --date=short | tr -d '-')_$(git log -1 --format="%h")"
}
---

Matur nuwun buat om @lynxluna yang sudah memberitahu saya mengenai perintah git log ini *sun klomoh*

Referensi: The pkgver() function.

=-=-=-=-=
Powered by Blogilo

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s