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. LOL LOL LOL

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. LOL LOL LOL

Meskipun tidak banyak yang dapat saya lakukan, setidaknya catatan ini sebagai dokumentasi tatkala diperlukan kemudian hari. Demikian, semoga bermanfaat.

~~DISQUS~~

  • linux/BlankOn/Catatan.Investigasi.Repo.Tambora
  • Terakhir diubah: 5 bulan yang lalu
  • (Perubahan eksternal)