ফায়ারফক্স ওএস ডেস্কটপ ক্লায়েন্ট (যা B2G ডেস্কটপ ক্লায়েন্ট নামেও পরিচিত) আপনাকে গেকো ভিত্তিক বা মূল ডিভাইসের মত পরিবেশে গায়া এবং ওয়েব অ্যাপস রান করার সুযোগ দেয় । এটি ডিভাইস হার্ডওয়্যারকে এমুলেট করে না, তাই এটি ডিভাইস এপিআই পরীক্ষার জন্য যথাযথ নয় । তাছাড়া, এটি মূল হার্ডওয়্যারে পরীক্ষার বিকল্পও নয় । তবে, এতে কন্ট্যাক্টস এবং সেটিংস এপিআই এর মত কিছু এপিআই চালু আছে, যা ফায়ারফক্সে নেই । ফলে, এটা আপনার অ্যাপ্লিকেশন ডেভেলপমেন্ট অথবা গায়া ইউজার ইন্টারফেসে কাজ করার ক্ষেত্রে সহায়ক হবে । এই লেখাটিতে কীভাবে ফায়ারফক্স ওএস ডাউনলোড অথবা তৈরি করতে হয় ; একইসাথে কীভাবে ব্যবহার করতে হয়, তা দেখানো হবে ।
দ্রষ্টব্য: ফায়ারফক্স ওএস ডেস্কটপ ক্লায়েন্ট ব্যবহারের সহজতম পন্থা হল ফায়ারফক্স ওএস সিমুলেটর । এর জন্য আপনাকে আলাদাভাবে ডেস্কটপ ক্লায়েন্ট তৈরি করা লাগবে না ।
সর্বশেষতম নির্মাণ ডাউনলোড
ফায়ারফক্স নাইটলিজ এর মতই ফায়ারফক্স ওএস ডেস্কটপ ক্লায়েন্ট প্রতিদিনই সর্বশেষ সোর্স কোড থেকে স্বয়ংক্রিয়ভাবে তৈরি হয় । সর্বশেষটি পাবেন মজিলা এফটিপি সার্ভারে । আপনার অপারেটিং সিস্টেমের জন্য সর্বশেষ সংস্করণ ও উপযুক্ত আর্কাইভ নির্বাচন করতে ভুলবেন না । ফলে আপনি এটি আলাদাভাবে তৈরির ব্যপারটি উপেক্ষা করতে পারবেন । তাছাড়া, এতে আপনাকে গায়াও ডাউনলোড করতে হবে না ।
আপনি এখন সরাসরি ডেস্কটপ ক্লায়েন্ট রান করায় (Running the desktop client) চলে যেতে পারেন, যদি না আপনি এটি নিজ থেকে তৈরি করতে চান । কোডবেস-এ পরিবর্তন আনতে ও তা পরীক্ষা করতে চাইলে এটি দরকার ।
ডেস্কটপ ক্লায়েন্ট তৈরি
আপনাকে প্রথমেই একটি প্রমাণ মজিলা নির্মাণ পরিবেশ তৈরি করে নিতে হবে । কাজটি হয়ে গেলে আপনি প্রয়োজনমত কোড নিয়ে ও পরিবর্তন করে ফায়ারফক্স ওএস ডেস্কটপ ক্লায়েন্ট তৈরি করতে পারবেন ।
প্রথমবার কোড ডাউনলোড
যে ডিরেক্টরিতে সোর্স কোডটি পাঠাতে চান, সেটিতে সকল গেকো সমৃদ্ধ mozilla-central
রিপোজিটরি ক্লোন করুন :
hg clone https://hg.mozilla.org/mozilla-central
একই কোড আপনি গিটহাব থেকেও নামাতে পারেন :
git clone https://github.com/mozilla/gecko-dev
কোড নবায়ন
ক্রম-নির্মাণের ক্ষেত্রে আপনার সর্বশেষ পরিবর্তনগুলো আনা উচিত :
cd mozilla-central hg pull -u
অথবা,
cd gecko-dev git pull
mozconfig তৈরি
এরপর, ফায়ারফক্সের বদলে গেকো ক্লায়েন্টে বুট তৈরি করার সিস্টেম কনফিগার করতে mozilla-central
ডিরেক্টরিতে mozconfig
নামের একটি ফাইল তৈরি করুন । ফাইলটিতে যা থাকবে :
. "$topsrcdir/b2g/config/mozconfigs/common" mk_add_options MOZ_OBJDIR=../build mk_add_options MOZ_MAKE_FLAGS="-j9 -s" ac_add_options --enable-application=b2g ac_add_options --disable-libjpeg-turbo # This option is required if you want to be able to run Gaia's tests ac_add_options --enable-tests # turn on mozTelephony/mozSms interfaces # Only turn this line on if you actually have a dev phone # you want to forward to. If you get crashes at startup, # make sure this line is commented. #ac_add_options --enable-b2g-ril
B2G ডেস্কটপ ক্লায়েন্টে Mochitests (হয় mochitest-b2g-desktop
নাহলে mochitest-plain
) অথবা গায়া ইউনিট টেস্টস রান করাতে আপনাকে ENABLE_MARIONETTE=1
যুক্ত করতে হবে ।
প্রস্তুতকরণ
এখন আপনি নিচের কমান্ডটি দিয়ে ডেস্কটপ ক্লায়েন্ট তৈরি করতে পারেন (এটিকে mozilla-central ডিরেক্টরি থেকে রান করান) :
./mach build
এই তৈরিকৃত ক্লায়েন্টটি ../build/dist ডিরেক্টরিতে থাকবে (এটি নির্ভর করবে mozconfig ফাইলের MOZ_OBJDIR তে আপনি যে মানটি উল্লেখ করেছেন, তার উপর) ।
দ্রষ্টব্য : কোন সমস্যা হলে প্রথমেই এখানে আপনার ডিপেন্ডেন্সিস পরীক্ষা করুন ।
গায়া ডাউনলোড
ডেস্কটপ ক্লায়েন্টটি স্বাভাবিকভাবেই একটি খালি স্ক্রিন দেখায় । কারণ এটি কোন ওয়েব অ্যাপটি স্বয়ংক্রিয়ভাবে ইন্সটল করা লাগবে, তা জানে না । এজন্য গায়া ডাউনলোড করতে হবে, যা ফায়ারফক্স ওএসের সাথে আসা সিস্টেম অ্যাপস ও ডিফল্ট অ্যাপসের সংগ্রহ ।
প্রথমবার গায়া ডাউনলোডের সময় সোর্সকোড রিপজিটরি-টি গিটহাবে ক্লোন করুন :
git clone https://github.com/mozilla-b2g/gaia cd gaia
ইতিমধ্যে থাকা গায়া ক্লোনটি নবায়ন করতে আপনি গিটহাব থেকে সর্বশেষ পরিবর্তনগুলো আনতে পারেন :
cd gaia git pull
একটি custom-settings.json তৈরি
আপনি যদি জেনে থাকেন যে আপনি কি করছেন এবং বিভিন্ন config অপশান তৈরি করতে চান, তাহলে gaia/build/config/custom-settings.json ফাইলটি তৈরি করুন এবং সেখানে অপশানগুলো যুক্ত করুন । উদাহরণস্বরূপ :
{
"lockscreen.enabled": false,
"lockscreen.locked": false,
"devtools.debugger.remote-enabled": true
}
উদাহরণটি লকস্ক্রিনটি বাইপাস করতে কাজ দেয়, যেটি অন্য কোনভাবে ডেস্কটপে বাইপাস করা অসম্ভব, কারণ এটি মাউস বা ট্র্যাকপ্যাড দ্বারা আনলক করা যায় না ।
একটি প্রোফাইল তৈরি
এখন আমাদের ডেস্কটপ ক্লায়েন্টটির জন্য গায়ার অ্যাপগুলো সেটআপ করা লাগবে । ঠিক যেভাবে গায়া অ্যাপগুলো ডিভাইসে ইন্সটল করার কথা, সেভাবে প্যাকেজ করা, একইসাথে অগ্রাধিকারপ্রাপ্ত সিস্টেম অ্যাপগুলোর জন্য অনুমতি সেটআপ করা এর অন্তর্ভুক্ত । একটি প্রোফাইল তৈরির মাধ্যমে আমরা কাজগুলো করি । নিচের কমান্ডটিই (ডাউনলোড করা gaia
ডিরেক্টরিতে রান করান ) এর জন্য যথেষ্ট :
DESKTOP_SHIMS=1 NOFTU=1 DEBUG=1 make
এটি gaia ডিরেক্টরির নিচে profile-debug
নামে একটি ডিরেক্টরি তৈরি করবে । এই নতুন প্রোফাইলে B2G ঠিকমত রান করানোর জন্য প্রয়োজনীয় একটি কাস্টমাইজড এক্সটেনশন এবং অন্যান্য কনফিগারেশন ডিটেলস যুক্ত আছে ।
ডেস্কটপ ক্লায়েন্টটি রান করানো
একবার যদি আপনি ক্লায়েন্টটি তৈরি করে থাকেন (অথবা নাইটলি ডেস্কটপ অ্যাপলিকেশনটি ডাউনলোড এবং ইন্সটল করে থাকেন) এবং গায়া ডাউনলোড করে থাকেন, তাহলে আপনি ফায়ারফক্স ওএস ডেস্কটপ ক্লায়েন্ট চালু করার জন্য তৈরি ।
লিনাক্সে রান করানো
এমবেডেড গায়া প্রোফাইল ব্যবহার করে ডেস্কটপ ক্লায়েন্টটি লিনাক্সে রান করানোর জন্য স্রেফ b2g
এক্সিকিউটেবলটি রান করান । যদি আপনি একটি ভিন্ন গায়া প্রোফাইল উল্লেখ করতে চান (যেমন উপরেরটি ব্যতীত পৃথকভাবে ডাউনলোডকৃত গায়া), আপনাকে b2g
র্যাপার প্রোগ্রামটি বাইপাস করতে হবে এবং b2g-bin
বাইনারিটি রান করাতে হবে । বাইনারিটি আপনার ডাউনলোডকৃত আর্কাইভে অথবা, আপনার তৈরি করা ক্লায়েন্ট হলে ../build/dist/bin
ডিরেক্টরিতে আছে ।
.../b2g-bin -profile gaia/profile-debug
আপনি বিরক্তিকর রেন্ডারিং সমস্যার সম্মুখীন হতে পারেন । এটি উপেক্ষা করতে নিচের লাইনটি আপনার gaia/profile/user.js
ফাইলে যুক্ত করুন :
user_pref("layers.acceleration.disabled", true);
ম্যাকে রান করানো
আপনি যদি নাইটলি বিল্ড ডাউনলোড করে থাকেন, আপনি বরাবরের মতই ফাইন্ডার থেকে খুব সহজেই এটি চালু করতে পারেন । ম্যাকের সাথে যুক্ত প্রমাণ কন্সোল ইউটিলিটি প্রোগ্রাম রান করলেই যেকোন কন্সোল আউটপুট দৃশ্যমান হয় ।
যদি আপনি একটি ভিন্ন গায়া প্রোফাইল উল্লেখ করতে চান (যেমন উপরেরটি ব্যতীত পৃথকভাবে ডাউনলোডকৃত গায়া), আপনাকে b2g
র্যাপার প্রোগ্রামটি বাইপাস করতে হবে এবং b2g-bin
বাইনারিটি রান করাতে হবে । b2g-bin
বাইনারিটির লোকেশনের কারণে এবং প্রোফাইল ডিরেক্টরি নির্দেশের সময় নিখুঁত পথনির্দেশের প্রয়োজনে কমান্ড লাইনটি একটু বেশি জটিল :
.../B2G.app/Contents/MacOS/b2g-bin -profile /full/path/to/gaia/profile-debug
উইন্ডোজে রান করানো
উইন্ডোজে নাইটলি বিল্ড রান করানো b2g.exe চালু করার মতই সহজ ।
আপনি চাইলে এক্সিকিউটেবল b2g-bin.exe
রান করিয়ে এক্সিকিউশনটি কাস্টমাইজ করতে পারেন; এটি স্বয়ংক্রিয়ভাবে বান্ডেলকৃত গায়া ব্যবহারকারি র্যাপার প্রোগ্রামটি বাইপাস করে দেয় ।
কমান্ড লাইন বিকল্প
ডেস্কটপ ক্লায়েন্ট ব্যবহারের সময় পছন্দমত রানটাইম অভিজ্ঞতা পাল্টাতে আপনি কিছু কমান্ড লাইন বিকল্প ব্যবহার করতে পারেন । -help
অপশান ব্যবহার করে আপনি একটি লিস্ট পেতে পারেন । নিচে তাদের মধ্যে আকর্ষণীয় কিছুর উল্লেখ আছে ।
স্ক্রিন সাইজ উল্লেখকরণ
আপনি --screen অপশান ব্যবহার করে যে ডিভাইসটি সিমুলেট করতে চান, তার স্ক্রিন সাইজ উল্লেখ করতে পারেন :
b2g --screen=<width>x<height>@<dpi>
এখানে <width>, <height>, এবং <dpi> মূলত নিজ নাম অনুযায়ী প্যারামিটার: এখানে ডিভাইস স্ক্রিনের দৈর্ঘ্য ও প্রস্থ হল পিক্সেল এককে এবং ডিভাইস রেজ্যুলেশন হল DPI এককে । কিছু বাস্তব উদাহরণ :
b2g --screen=320x480 b2g --screen=320x480@160
বিকল্প হিসাবে কিছু ডিভাইসের নাম উল্লেখ করে আপনি তাদের স্ক্রিন সাইজ এবং রেজ্যুলেশন সিমুলেট করতে পারবেন :
iphone
ipad
nexus_s
galaxy_nexus
galaxy_tab
wildfire
tattoo
salsa
chacha
জাভাস্ক্রিপ্ট কন্সোল খোলা
কমান্ড লাইন থেকে -jsconsole ব্যবহার করে আপনি B2G ক্লায়েন্ট চালু করার সময় জাভাস্ক্রিপ্ট কন্সোল খুলতে পারবেন । তৈরির পর স্রেফ নিচের কাজ করুন :
.../b2g -jsconsole -profile /path/to/your/profile
আপনি ম্যাকে নাইটলি বিল্ড ইন্সটল করে থাকলে নিচের কাজ করতে পারেন :
/Applications/B2G.app/Contents/MacOS/b2g-bin -jsconsole -profile /path/to/your/profile-debug
দ্রষ্টব্য : উৎপাদন নির্মাণের সময় আগে থেকেই কন্সোল লগিং (যেমন console.log()
) বন্ধ করা থাকে । এটি চালু করতে, ডেভেলপার সেটিংসে গিয়ে Console Enabled preference চালু করে দিন ।
B2G আরম্ভ হওয়ার সময় নির্দিষ্ট অ্যাপলিকেশন চালু করা
ডেস্কটপ ক্লায়েন্টে B2G আরম্ভ হওয়ার সময় স্বয়ংক্রিয়ভাবে চালু হওয়ার জন্য আপনি একটি অ্যাপলিকেশন উল্লেখ করতে পারেন । বাকি সিস্টেম লোড হওয়ার সাথে সাথেই কাজটা হয়ে যাবে । এটি করতে, স্রেফ --runapp
অপশনটি ব্যবহার করুন, যেটি চালু করার জন্য একটি অ্যাপলিকেশনের নামকে প্যারামিটার হিসেবে নেয় । উদাহরণস্বরূপ :
.../b2g-bin -profile /path/to/your/gaia/profile-debug --runapp email
দ্রষ্টব্য : উল্লেখিত নামটিকে ছোট হাতের অক্ষরে পরিবর্তিত করে এবং সকল ড্যাশ ও স্পেস মুছে দিয়ে স্বাভাবিক করা হয় । এরপর এই স্বাভাবিককৃত নামটিকে প্রাপ্ত অ্যাপগুলোর manifestগুলোর সাথে তুলনা করা হয় । যেমন, ইমেইল অ্যাপটির বর্তমান নাম "E-mail", কিন্তু --runapp email
কাজ করবে এই স্বাভাবিককরণের কারণে ।
আপনি যদি কোনো আর্গুমেন্ট ছাড়া অথবা একটি শূন্য আর্গুমেন্ট নিয়ে --runapp
অপশানটি উল্লেখ করেন, b2g ক্লায়েন্ট আপনার টার্মিনালে একটি জানা অ্যাপলিকেশনের লিস্ট দেখাবে, সংক্ষিপ্ত ব্যবহারবিধিসহ ।
দ্রষ্টব্য : --runapp
অপশনটি পার্শ্বপ্রতিক্রিয়া হিসেবে লকস্ক্রিন বন্ধ করে দেয় এবং পুনরায় চালু করে না । এটি ধরে নেয়া হয় যে, আপনি লকস্ক্রিন পরীক্ষার সময় একই প্রোফাইলে, এই কমান্ডটি ব্যবহার করবেন না, অথবা Settings > Screen Lock এ গিয়ে আপনি ম্যানুয়ালি এটিকে পুনরায় চালু করবেন । এটি যদি একটি সমস্যা হয়, নিঃসংকোচে এই আচরণ পরিবর্তনের জন্য একটি প্যাচ দান করুন ।
ব্যবহারের জন্য টিপস
এই ধাপটি B2G ডেস্কটপ ক্লায়েন্ট ব্যবহারে জন্য কিছু গুরুত্বপূর্ণ টিপস দিচ্ছে ।
- Esc চাবিটি "back" বোতামের মতই কাজ করে ।
- Home চাবিটি "home" বোতামের মতই কাজ করে; আপনি যদি ম্যাকে থাকেন, Home চাবিটি Fn + ← (Fn + Left Arrow) এ পাবেন ।
- End চাবিটি ঠিক "power" বোতামের মতই কাজ করে; আপনি যদি ম্যাকে থাকেন , End চাবিটি Fn + → (Fn + Right Arrow) এ পাবেন ।
- Page Up এবং Page Down চাবিগুলো যথাক্রমে "Volume Up" এবং "Volume Down" বোতামের মত কাজ করে; আপনি যদি ম্যাকে হন, Page Up চাবিটি Fn + ↑ (Fn + Up Arrow) এ এবং Page Down চাবিটি Fn + ↓ (Fn + Down Arrow) এ পাবেন ।
- লম্বা সময় ধরে Home চাবি চেপে রাখলে "Card View" খোলে; আপনি ম্যাকে থাকলে, Cmd + Fn + ← (Cmd + Fn + Left Arrow) ই "Card View" খুলবে ।
ট্রাবলশ্যুটিং: B2G ডেস্কটপ চালুর সময় ফাঁকা স্ক্রিন
b2g -profile gaia/profile ব্যবহার করে b2g চালুর সময়
"Cannot reach app://system.gaiamobile.org" এরর সহ একটি ফাঁকা স্ক্রিন দেখা যেতে পারে । এটি ঠিক করার জন্য কিছু জিনিস পরীক্ষা করে দেখতে পারেন :
গায়া ডিরেক্টরিতে DEBUG=1 make
প্রোফাইল ব্যবহার করে পুনরায় গায়া প্রোফাইলটি তৈরি করুন ।- b2g আবারও রান করান ।
- যদি এতে সমাধান না হয়, 8080 পোর্টে আর কোনো কাজ চলছে কিনা দেখুন । গায়ার ডিফল্ট প্রোফাইল শুরু হয়
httpd.js দিয়ে
, যেটি 8080 পোর্টে কাজ করে । একটি ডিবাগ প্রোফাইল রান হওয়ার সময়, B2G localhost:8080 তে সংযুক্ত হয় । যদি 8080 পোর্টে অন্য কাজ চলতে থাকে, b2g গায়ার হোমস্ক্রিন দেখাতে ব্যর্থ হবে ।- এটিই সেই সমস্যা কিনা বুঝতে
httpd.js এ লগইন চালু করুন ।
প্রোফাইলের মধ্যেhttpd.js থাকে
gaia/profile/extensions/httpd/content/httpd.js লোকেশনে ।
সংশোধনের জন্য ফাইলটি খুলুন । -
var DEBUG=false;
লাইনটি মুছেvar DEBUG=true; লিখুন ।
- ফাইলটি সেভ করে B2G বন্ধ করে পুনরায় চালু করুন । এখন আপনি কন্সোলে httpd এর লগ দেখতে পাবেন ।
- এটিই সেই সমস্যা কিনা বুঝতে
পরবর্তী ধাপগুলো
এখন আপনার গেকো রান করানোর জন্য বুটের একটি ডেস্কটপ বিল্ড আছে, আপনি এখন এটিতে পরীক্ষা, উন্নয়ন এবং অন্যান্য কাজ করতে পারেন ।