Calm Hill My Random Thoughts

Building iSync on MacOS

လွန်ခဲ့တဲ့ ၁ နှစ်လောက်က Google Workspace Refugee ဖြစ်သွားတဲ့နောက်ပိုင်း ဘယ် Service ကိုမှ မှီခိုမနေအောင်လို့ အတော်လေးဂရုစိုက်တယ်။ Email တွေနဲ့ပတ်သက်ပြီး ကိုယ်သုံးနေတဲ့ Email မှန်တယ်ဆိုရင် Web based တွေလည်း သုံးနေတယ်ဆိုပေမယ့် Offline သုံးလို့ရအောင်ရယ် ကိုယ့်လက်ထဲမှာလည်း Backup ရှိအောင်ရယ် ကိုယ်သုံးလေ့ရှိတဲ့ စက်တွေထဲကို iSync သုံးပြီး Sync လုပ်ထားလေ့ရှိတယ်။

iSync က ကိုယ့်ရဲ့ Linux တွေမှာ အရာအားလုံး အဆင်ပြေပါတယ်။ Mac ပေါ်မှာတော့ အစပိုင်းက အဆင်ပြေပေမယ့် နောက်ပိုင်းမှာ OpenSSL Library ကြောင့် Sync လုပ်ပြီးတိုင်း Error တခုပေါ်နေတယ် Error ကလည်း Google ပဲဖြစ်တာ တခြားဟာတွေတော့ မဖြစ်ပြန်ဘူး။ Functionality အရက ဘာမှမဖြစ်ဘူး ဒါပေမယ့် Sync တခါလုပ်ပြီးတိုင်း Error Message မြင်နေရတာ ကိုယ့်အတွက်က စိတ်ထဲမှာအဆင်မပြေဘူး။

Socket error: secure read from imap.gmail.com (74.125.200.108:993): error:0A000126:SSL routines::unexpected eof while reading

iSync ရဲ့ Repo ထဲမှာလိုက်ကြည့်တော့ Report လုပ်ထားတဲ့လူလည်းရှိသလို master branch မှာလည်း ပြင်ပြီးသားလို့ ပြောတဲ့လူကလည်း ပြောပြီးနေပါပြီ။ ဒါပေမယ့် Release လုပ်ထားတဲ့ Version 1.4 ထဲမှာမပါတော့ Mac အတွက် လုပ်ပေးထားတဲ့ Homebrew Formula က Release မလုပ်ထားတဲ့ Patch ကိုမပါလာသေးတာ။ အားနေရင် တခုမဟုတ်တခု လုပ်စရာရှာနေတဲ့လူဆိုတော့ ကိုယ့်ဟာကိုယ်ပဲ ပြင်ပြီးသားကို Build လုပ်မယ်ဆိုပြီး Build လုပ်လိုက်တယ်။

Repo Clone

git clone git://git.code.sf.net/p/isync/isync

Patch

git checkout -b 1.4 origin/1.4
git cherry-pick b6c36624

Build

./autogen.sh
./configure --prefix=$HOME/.local
make
make install

Build လုပ်ဖို့ Configure လုပ်တဲ့အခါမှာတော့ ကြုံရာနေရာတွေမှာ ရှုပ်မကုန်အောင်လို့ prefix ကို $HOME/.local လို့ပေးထားတော့ Install လုပ်တဲ့အခါ Home directory အောက်က ~/.local အောက်မှာ Install လုပ်သွားပါလိမ့်မယ်။ Binary file က ~/.local/bin/mbsync ဆိုပြီးတွေ့ပါလိမ့်မယ်။ ကိုယ်အတွက်က ~/.local/bin ထဲမှာ ကိုယ်တိုင် Build လုပ်တာတွေ ထည့်ထားလေ့ရှိတော့ PATH Env var ထဲမှာ ထည့်ပြီးသားဖြစ်နေတော့ ဘာမှထပ်လုပ်စရာမလိုတော့ဘူး။ အဲလိုမဟုတ်ဘူးဆိုရင်တော့ PATH ထဲမှာ ထည့်ပေးဖို့လိုပါလိမ့်မယ်။ Build လုပ် Install လုပ်တာပြီးသွားပြီဆိုရင်တော့ mbsync -a လို့ Run ကြည့်လိုက်ရင် Error မမြင်ရတော့ပါဘူး။