Catatan Investigasi Repo Tambora
Ini hanya catatan ringkas, bukan sebagai catatan lengkap investigasi tragedi repository BlankOn Tambora. Catatan lengkap diterbitkan oleh tim Humas dapat dibaca di sini.
Saya sempat menempel sedikit dari yang saya lakukan, dapat dibaca di http://tempel.blankon.in/3998524. Meskipun ternyata ini salah.
Perintah berikut disampaikan oleh pak @herpiko melalui grup telegram pengembang :
Pekerjaannya bisa jadi 4, paralel
1. Cari snapshot terdekat. Perlu 2-3 orang.
2. Siapin reprepro di ananda, lengkap dengan kunci gpgnya
3. Tarik daftar paket di irgsh, yang riia tambora, finished build, dan versi paling anyar. Hasilnya nanti buat kumpulin paket2 di static build irgsh. Perlu paham sql (postgres)
Nah, saya kebagian nomor 1., berikut langkah yang dapat dilakukan berdasarkan instruksi dari pak @herpiko.
Unduh berkas yang dijadikan patokan :
wget -c -t 0 http://cdimage.blankonlinux.or.id/blankon/rilis/tambora/BlankOn-10.0-desktop-amd64.list
Gunakan skrip yang dibuat oleh pak Piko berikut :
- pkgdiff.sh
#!/bin/bash TIMESTAMP=$1 SCORE=0 mkdir -p tmp rm -rf tmp/* echo Fetching snapshot $1 / main ... wget -c -t 0 -O tmp/main-packages.gz http://snapshot.debian.org/archive/debian/$1/dists/sid/main/binary-amd64/Packages.gz gunzip -c tmp/main-packages.gz > tmp/main-packages.txt rm -rf tmp/main-packages.gz echo Fetching snapshot $1 / contrib ... wget -c -t 0 -O tmp/contrib-packages.gz http://snapshot.debian.org/archive/debian/$1/dists/sid/contrib/binary-amd64/Packages.gz gunzip -c tmp/contrib-packages.gz > tmp/contrib-packages.txt rm -rf tmp/contrib-packages.gz echo Fetching snapshot $1 / non-free ... wget -c -t 0 -O tmp/non-free-packages.gz http://snapshot.debian.org/archive/debian/$1/dists/sid/non-free/binary-amd64/Packages.gz gunzip -c tmp/non-free-packages.gz > tmp/non-free-packages.txt rm -rf tmp/non-free-packages.gz cat tmp/main-packages.txt tmp/contrib-packages.txt tmp/non-free-packages.txt | sed -n -e '/Package:\|Version:/p' | sed ':a;N;$!ba;s/\nVersion://g' | sed 's/Package: //g' > tmp/all-packages.txt if [ "$(wc -l tmp/all-packages.txt | cut -d' ' -f1)" -lt 1 ];then echo "Packages log is empty. Please try another timestamp." exit 1; fi while read str; do read -ra arr <<< "$str" #arr=($str) PKG=${arr[0]} TAMBORA_VER=${arr[1]} SID_PKG=$(cat tmp/all-packages.txt | grep "^$PKG " | cut -d' ' -f1) SID_VER=$(cat tmp/all-packages.txt | grep "^$PKG " | cut -d' ' -f2) echo -n "compare for $PKG $TAMBORA_VER vs $SID_PKG $SID_VER" if [ "x$SID_PKG" == "x$PKG" ];then if [ "x$SID_VER" == "x$TAMBORA_VER" ];then SCORE=$((SCORE+1)) echo " MATCHED" else echo " MEH" fi fi done <$2 rm -rf *-$1.result touch $SCORE-$1.result echo "" echo "Score for $1 : $SCORE of $(wc -l $2 | cut -d' ' -f1)" >> score.txt cat score.txt exit 0
Ada sedikit modifikasi yang saya lakukan pada bagian akhir, yaitu tentang penyimpanan hasil dalam sebuah berkas score.txt
. Berikut beberapa hasil yang telah saya coba :
reprepro@docker:~/blankon$ ls 0-20161006T042931Z.result 640-20161005T163847Z.result 647-20161003T223321Z.result 653-20161001T164341Z.result time-list 2-20161002T171141Z.result 644-20161004T164406Z.result 649-20161002T222517Z.result BlankOn-10.0-desktop-amd64.list tmp 2-20161004T222937Z.result 646-20161004T043031Z.result 649-20161003T043906Z.result pkgdiff.sh 639-20161005T222159Z.result 646-20161004T101755Z.result 650-20161002T102608Z.result score.txt 640-20161005T102332Z.result 647-20161003T170012Z.result 653-20161001T105447Z.result tambora reprepro@docker:~/blankon$ cat score.txt Score : 2 of 1652 Score for 20161004T164406Z : 644 f 1652 Score for 20161004T101755Z : 646 of 1652 Score for 20161004T043031Z : 646 of 1652 Score for 20161003T223321Z : 647 of 1652 Score for 20161003T170012Z : 2 of 1652 Score for 20161003T170012Z : 647 of 1652 Score for 20161003T043906Z : 649 of 1652 Score for 20161002T222517Z : 649 of 1652 Score for 20161002T171141Z : 2 of 1652 Score for 20161002T102608Z : 650 of 1652 Score for 20161001T164341Z : 653 of 1652 Score for 20161001T105447Z : 653 of 1652
Belum mendapatkan hasil yang maksimal, karena kebetulan pada Rabu, 26 April 2017 kemarin terjadi pemadaman listrik di lingkungan sekolah dan sekitarnya sampai sore hari. Bahkan skrip yang saya jalankan di VPS pun tidak mendapatkan hasil yang memuaskan. Yah, karena bukan pemuas sih.
Meskipun tidak banyak yang dapat saya lakukan, setidaknya catatan ini sebagai dokumentasi tatkala diperlukan kemudian hari. Demikian, semoga bermanfaat.
~~DISQUS~~