Kuliax

GNU/Linux untuk Kampus

Alat Pengguna

Alat Situs


devel:policy

Standar Pengembangan Kuliax

Standar pengembangan Kuliax secara umum menggunakan Debian Policy, dengan perbedaan dan penambahan yang akan dijelaskan pada halaman ini.

Tujuan: pengaturan standar dan kemudahan pemeliharaan dalam jangka panjang.

Kebutuhan Perangkat Keras

Rekomendasi spesifikasi mesin untuk pemaket adalah:

  • prosesor ber-clock 1.6 GHz, akan lebih baik jika punya dua inti/dual core
  • RAM 512 GB, Swap 512 MB
  • tersedia ruang kosong yang cukup untuk menyimpan kode sumber, proses pemaketan, dan hasilnya.

Kebutuhan Perangkat Lunak

Perangkat lunak yang harus ada di mesin pengembang adalah:

  1. Kuliax versi pengembangan terkini
  2. akses ke repositori Debian stable (termasuk main/{debian-installer, installer-i386), backports, dan Kuliax terdekat. Jika pengembang memiliki repo lokal buat symlink dari direktori root apache
    sudo ln -s /media/repo/debian /var/www/debian
    sudo ln -s /media/repo/backports /var/www/backports
    sudo ln -s /media/repo/kuliax /var/www/kuliax

    dan pasang server jejaring apache2

    sudo apt-get install apache2

    Jika pengembang sudah memasang apache2 sebelumnya, jalankan. Untuk mencerminkan repo ke lokal gunakan

    debmirror

    Jika diperlukan

    cd /media/repo/debian/dists/
    ln -s stable lenny
  3. Repo mercurial Kuliax
  4. Paket-paket:
    Pemaket program
    cdebootstrap, debhelper, devscripts, dh-make, fakeroot, gnupg, live-helper, pbuilder, libparse-debcontrol-perl (opsional)

    Opsional, tergantung program

    cdbs, diffstat, dpatch, patchutils, quilt
  5. Pemaket kernel
    kernel-package, libncurses5-dev, zlib1g-dev, xmlto

    Pengembang sistem

    debmirror kbuild live-helper module-assistant virtualbox-ose virtualbox-ose-qt virtualbox-ose-source vrms
  6. Sistem pembangun d-i dan CD
    genisoimage kernel-wedge
  7. Paket-paket lain yang dibutuhkan saat pemaketan, khususnya saat membangun paket sumber
    pkg-config

Pemilihan Paket

Pemilihan paket program yang akan disertakan di Kuliax harus sesuai dengan sasaran atau target proyek ini. Berikut sebagian hal-hal yang dapat dipertimbangkan ketika memilih paket-paket program untuk Kuliax.

  1. Paket-paket untuk kebutuhan umum yang akan disertakan sebaiknya sudah menjadi standar defacto di sistem berbasis Linux, misal OpenOffice.org untuk aplikasi perkantoran
  2. Paket-paket untuk kebutuhan khusus atau target Kuliax lebih baik dilakukan survei terlebih dahulu melalui:
    • Internet seperti: situs pengembangan dan mata kuliah di beberapa universitas termasuk silabusnya
    • melalui wawancara formal dan non formal pada masyarakat pendidikan tinggi di Indonesia
    • pengalaman pemaket bahwa suatu program telah banyak digunakan, hal ini dapat didiskusikan dengan tim
    • pertimbangan orientasi pembelajaran dan pengembangan serta potensi program ini di masa sekarang dan yang akan datang.
  3. Sedapat mungkin program-program yang disertakan mempunyai fitur dan kebutuhan ruang yang pas atau sesuai dengan analisa tim pengembang
  4. Sebagai pembanding ketika memilih dua atau lebih program yang mempunyai fungsi mirip lihat diskusi atau perbandingan yang dilakukan orang-orang dalam komunitas, pasang dan jalankan sendiri, dan juga apakah tersedia dokumentasi
  5. Program program yang merupakan rekomendasi dari proses-proses di atas disusun berdasarkan prioritas ketika dimasukkan ke cakram #1 dan #2
  6. Pada setiap rilis Kuliax program-program yang akan disertakan perlu dilakukan pertimbangan ulang berdasarkan kondisi saat itu dan masukan dari para pengguna dan pemerhati Kuliax.

Paket tak bebas: minimal ada ijin distribusi untuk paket-paket tak bebas yang terpaksa disertakan karena memang dukungan bebasnya belum ada. Lihat berkas copyright.

Pemaketan

  • Kuliax menggunakan format .deb dan pengatur paket APT dari Debian.
  • Dalam melakukan pemaketan di Kuliax, jika paket berasal dari:
    1. Debian, maka versi paketnya adalah VERSIPROGRAM-XkuliaxY. X adalah revisi paket dari Debian dan Y adalah revisi paket dari Kuliax. Misal program ktechlab di Debian mempunyai versi 0.3.7-3, maka untuk pemaketan pertama kali pada Kuliax versinya menjadi 0.3.7-3kuliax1
    2. upstream1), maka versi paketnya adalah sama dengan poin di atas, hanya saja X bernilai 0 jika paket tersebut belum ada di Debian
    3. Kuliax dan ada pertimbangan bahwa paket tidak mungkin dimasukkan ke repo Debian suatu saat nanti, versi paketnya adalah seperti standar Debian yaitu VERSIPROGRAM-Y, untuk versi paket pertama aplikasi 1.0 adalah aplikasi_1.0-1. Contoh paket dalam kategori ini adalah kuliax-base-files
  • Kasus khusus: jika ada paket menggunakan versi dengan revisi Debian yang tergabung di dalamnya misal gdebi 0.5.9debian2, maka versi paket tersebut mendapatkan tambahan +kuliaxY, sehingga menjadi gdebi 0.5.9debian2+kuliax1
  • Jika paket selanjutnya dimodifikasi maka versi bertambah pada revisi Kuliax yaitu nilai Y-nya: kuliax1, kuliax2, dst.
  • Jika paket yang dihasilkan adalah berbasis paket Debian atau yang lain, biarkan debian/changelog yang ada, jangan dihapus!
  • Jika versi proyek upstream tidak ada atau hanya tanggal rilis saja, maka gunakan format versi TAHUNBULANTANGGAL. Misal sumber program yang dirilis tanggal 25 Januari 2009 maka versinya adalah 20090125. Jika digabung dengan nama program menjadi program-20090125
  • Gunakan opsi –createorig pada penggunaan dh_make, jika belum ada arsip sumber untuk paket
  • Isi direktori debian/
    1. changelog:
      • periksa nama distribusi adalah nama kode Kuliax
      • catat semua perubahan yang dilakukan!
    2. compat: set kompatibilitas debhelper, nilai sebelum 5 dinyatakan sudah ditinggalkan (deprecated). Baca manual debhelper untuk mendapatkan informasi perubahan setiap kompatibilitas
    3. control
      • periksa Debian Policy untuk isi dari Section
      • set Priority ke optional
      • set Architecture ke all jika paket bukan berupa hasil kompilasi/biner
      • set Depends dan tambahkan Replaces atau Provides jika diperlukan
      • isi Description dengan Bahasa Inggris, agar lebih universal diterima oleh pengguna di seluruh dunia dan juga kemungkinan masuk ke repo Debian
    4. copyright
    5. (*)install: berikan baris kosong di akhir berkas
    6. (skrip) pre* dan post*
      • Ketika membuat skrip shell, gunakan /bin/sh setelah hashbang (#!) dan tidak menggunakan spesifik shell misal /bin/bash. Contoh yang benar
        #!/bin/sh
        #
        # ini adalah informasi fungsi skrip shell ini
        
        isi dengan operasi skrip shell
      • berikan tag #DEBHELPER# sebelum “exit 0”. Tag ini akan diisi oleh debhelper secara otomatis untuk fungsi manajemen paket
      • exit 1 pada skrip shell digunakan untuk mengembalikan nilai saat terjadi kesalahan, sedang exit 0 pada kondisi sebaliknya
      • kroscek logika skrip dan selalu ujicoba hasil pemaketan untuk memastikannya berjalan sesuai dengan rencana
    7. rules:
      • dh_installchangelogs pada debian/rules digunakan untuk memasang changelog di data paket debian dan dh_installdocs digunakan untuk memasang dokumen termasuk berkas copyright
      • tukar binary-arch dan binary-indep jika berkas yang dipaketkan adalah bukan berbentuk hasil kompilasi, misal karya seni, konfigurasi
      • bersih berkas rules dari komentar-komentar dan perintah yang tidak diperlukan
      • gunakan .PHONY untuk memasukkan “perintah”(?) yang sebenarnya tidak digunakan pemaket tapi dibutuhkan sistem build, misal build
  • Gunakan packages.debian.org untuk mencari informasi paket dan isinya, misal pemaket ingin melihat dependensi
  • Lihat baik-baik pesan kesalahan (E) dan peringatan (W) pada saat lintian dijalankan oleh debuild, perbaiki paket, kecuali yang memang dianggap salah oleh lintian padahal sudah sesuai, misal “bad-distribution-in-changes-file lumpia”. Informasi lebih rinci tentang lintian dapat dilihat di manualnya
  • Bacalah README atau dokumen mengenai kompilasi dan instalasi program. Lakukan eksperimen terlebih dahulu dengan mencoba melakukan proses kompilasi dan masukan informasi yang diperlukan ke pemaketan, misal info dependensi program untuk Build-Depends
  • Jika pemaket menemukan pesan kesalahan seperti “dpkg-shlibdeps: warning: dependency on libbla.so.6 could be avoided if “debian/usr/bin/blabla”, cari tahu permasalahan sehingga kita punya alasan kenapa kita mengabaikan pesan tersebut
  • Jika berkas dalam paket berbentuk biner dan ada pemutakhiran, maka paket source .orig.tar.gz perlu dipaket ulang, contoh stardict-kbbi
  • Gunakan cdebootstrap untuk kinerja pembangunan yang sedikit lebih baik dan agresif
    apt-get install cdebootstrap
  • Jika ada pesan kesalahan ketika membuat paket sumber debian yaitu [program].make, pasang [program] dan sesuaikan dengan versi program yang memiliki [program].make, karena beberapa paket tidak memiliki *.make di versi stabil
  • Jika ada pesan kesalahan saat proses pembangunan, cari solusinya dengan melihat pesan tersebut dan jika tidak mengerti cari solusinya di Internet. Umumnya untuk kasus-kasus yang umum sudah ada solusinya baik dari forum, milis, bugtracker, atau yang lain.
  • Gunakan perintah
    grep -r "teks" *|less

    untuk mencari kata “teks” pada berkas-berkas di direktori kerja dan semua yang ada di bawahnya

  • Agar berkas orig.tar.gz disertakan di dalam berkas .changes, pengembang perlu melewatkan parameter ”–debbuildopts -sa“ ke pbuilder
  • Untuk memeriksa apakah sebuah versi paket memiliki perubahan tertentu yang diperlukan, misal memiliki perbaikan atas kutu yang ditemukan, lihat berkas changelog di packages.debian.org
  • Gunakan perintah
    dpkg -S [berkas]

    untuk mencari paket apa yang memilikinya

  • MIME
  • dpkg-query -W -f='${Package}\n'|grep xorg > xorg.pkgs
  • Sertakan opsi ”-sa“ jika pengembang mempaketkan ulang orig.tar.gz
  • Jika pemaketan menutup kutu yang ada, tambahkan ”(Closes: #N)“ pada changelog, N adalah nomor kutu di bugtracker.

Lisensi

Kuliax mengacu pada Debian Free Software Guidelines (DFSG) untuk paket-paket pada bagian utama (main) distribusi, termasuk hasil karya yang dipaketkan dengan lisensi Creative Common Attribution-Share Alike atau CC-BY-SA 3.0.

1) pengarang program aslinya
devel/policy.txt · Terakhir diubah: 2010/07/26 16:53 oleh stwn