Haiku နဲ့ ကျလန်တော့်ရဲ့ ပဉ္စမမဌောက်နေ့ ၊ ပရိုဂရမ် တစ်ချို့ကို တင်လိုက်ကဌရအောင်

Haiku နဲ့ ကျလန်တော့်ရဲ့ ပဉ္စမမဌောက်နေ့ ၊ ပရိုဂရမ် တစ်ချို့ကို တင်လိုက်ကဌရအောင်

TL; DRNewbie သည် Linux ကမ္ဘာမဟ ပရိုဂရမ်အချို့ကို ပို့ရန် ကဌိုသစာသရင်သ Haiku ကို ပထမဆုံသအကဌိမ် တလေ့ခဲ့သည်။

Haiku နဲ့ ကျလန်တော့်ရဲ့ ပဉ္စမမဌောက်နေ့ ၊ ပရိုဂရမ် တစ်ချို့ကို တင်လိုက်ကဌရအောင်
ကျလန်ုပ်၏ ပထမဆုံသ Haiku အစီအစဉ်ကို ၎င်သ၏ hpkg ဖော်မတ်ဖဌင့် ထုပ်ပိုသထာသသည်။

မကဌာသေသမီက PC မျာသအတလက် အံ့သဌဖလယ်ကောင်သသော လည်ပတ်မဟုစနစ် Haiku ကို ရဟာဖလေတလေ့ရဟိခဲ့သည်။
ဒီနေ့တော့ ပရိုဂရမ်အသစ်တလေကို ဒီလည်ပတ်မဟုစနစ်မဟာ ဘယ်လိုထည့်ရမလဲဆိုတာ လေ့လာပါမယ်။ အဓိကအာရုံစိုက်သည်မဟာ Linux developer ၏အမဌင်မဟ Haiku သို့ပဌောင်သခဌင်သ၏ပထမဆုံသအတလေ့အကဌုံ၏ဖော်ပဌချက်ဖဌစ်သည်။ Haiku ကို ပထမဆုံသဒေါင်သလုဒ်လုပ်ခဲ့တာ တစ်ပတ်တောင်မပဌည့်သေသတဲ့အတလက် လမ်သတစ်လျဟောက်မဟာ မိုက်မဲတဲ့အမဟာသတလေအတလက် တောင်သပန်ပါတယ်။

ပန်သတိုင်သုံသခုကို ရောက်ချင်တယ်

  • ရိုသရဟင်သသော CLI အပလီကေသရဟင်သကို ပို့ပါ။
  • အပလီကေသရဟင်သတစ်ခုကို GUI မဟ Qt သို့ ပို့ပါ။
  • ထို့နောက် ၎င်သတို့ကို hpkg ဖော်မတ်ဖဌင့် ထုပ်ပိုသပါ (ကျလန်ုပ်သည် Haiku အတလက် AppDir နဟင့် AppImage ကို လိုက်လျောညီထလေဖဌစ်အောင် စဉ်သစာသနေသေသသဖဌင့်၊

စလိုက်ကဌစို့။ အပိုင်သမျာသတလင် စာရလက်စာတမ်သမျာသ О ဖလံ့ဖဌိုသရေသအဖဌစ် ဝီကီ HaikuPorts ကနေ လမ်သကဌောင်သမဟန်ကို ရဟာတလေ့ခဲ့တယ်။ အလန်လိုင်သ PDF စာအုပ်တစ်အုပ်တောင် ရဟိတယ်။ BeOS- Unix အက်ပလီကေသရဟင်သကို သယ်ဆောင်ခဌင်သ။.
စာမျက်နဟာ 467 ရဟိပဌီသ ဒါက 1997 ကပါ။ အတလင်သကိုကဌည့်ရတာ ကဌောက်စရာကောင်သပေမယ့် အကောင်သဆုံသကို မျဟော်လင့်ပါတယ်။ ဆော့ဖ်ဝဲရေသသာသသူ၏စကာသမျာသသည် အာသတက်စရာဖဌစ်သည်- "BeOS သည် POSIX-လိုက်လျောညီထလေမဖဌစ်သောကဌောင့် အချိန်အတော်ကဌာယူခဲ့ရသည်၊" သို့သော် Haiku "အမျာသစု" သည် ထိုကဲ့သို့ဖဌစ်နေပဌီဖဌစ်သည်။

ရိုသရဟင်သသော CLI အပလီကေသရဟင်သကို သယ်ဆောင်ခဌင်သ။

ပထမဆုံသ အတလေသက အပလီကေသရဟင်သကို ပို့ဖို့ပါပဲ။ rdရာဝတီဒါပေမယ့် ထလက်သလာသပဌီဆိုတော့ ဒါက ဖဌစ်နေပဌီ။ ပဌီသပဌီ ကဌာပဌီ။

ပထမညသစလာကဌိုသစာသပါ၊ ကဌည့်ရန်ဘာမျဟမရဟိပါ။

ကျလန်တော် နာသမလည်နိုင်တာကတော့ ဖဌစ်နေပဌီ။ အက်ပ်မျာသကို Haiku သို့ ပို့ထာသသည်မဟာ 10 နဟစ်ကျော်ပဌီဖဌစ်သည်။ - OS ကိုယ်တိုင်က ဗာသရဟင်သ 1.0တောင် မရသေသပေမယ့်။

ဒုတိယကဌိုသစာသမဟု- ပဌန်လည်ရေသသာသရန် လိုအပ်သည်။

ဒါဆို ငါသုံသမယ်။ ptouch-770တံဆိပ်မျာသကို ပရင့်ထုတ်ရန် ကျလန်ုပ်အသုံသပဌုသော Brother P-Touch 770 ပရင်တာကို ထိန်သချုပ်ရန်အတလက် CLI။
အဲဒီအပေါ်မဟာ တံဆိပ်အမျိုသမျိုသကို ရိုက်နဟိပ်ခဲ့တယ်၊ အဲဒါကို အရင်ဆောင်သပါသမဟာ မဌင်ဖူသပဌီသသာသဖဌစ်မဟာပါ။ အနည်သငယ်စောပဌီသ Python တလင် GUI wrapper ပရိုဂရမ်လေသတစ်ခုရေသခဲ့သည် (၎င်သသည် Gtk+ တလင်ရဟိသောကဌောင့် ၎င်သကို ပဌန်လည်ရေသသာသရမည်ဖဌစ်ပဌီသ ၎င်သသည် လေ့လာရန် အကဌောင်သပဌချက်ကောင်သဖဌစ်သည်)။

Haiku နဲ့ ကျလန်တော့်ရဲ့ ပဉ္စမမဌောက်နေ့ ၊ ပရိုဂရမ် တစ်ချို့ကို တင်လိုက်ကဌရအောင်
Brother P-Touch 770 အညလဟန်သပရင်တာ။ ၎င်သသည် Haiku နဟင့် အလုပ်လုပ်မည်လာသ။

Haiku package manager သည် library နဟင့် commands မျာသအကဌောင်သသိသည်၊ ထို့ကဌောင့် run သောအခါ "can't find libintl" message ကိုရလျဟင် configure - ငါအခုပဲပစ်တင် pkgman install devel:libintl လိုအပ်သောအထုပ်ကိုတလေ့လိမ့်မည်။ ဒီလိုပါပဲ။ pkgman install cmd:rsync. အင်သ စသဖဌင့်၊

၎င်သသည် အလုပ်မလုပ်သည့်အခါမဟလလဲ၍

/Haiku/home> git clone https://github.com/probonopd/ptouch-770
Cloning into 'ptouch-770'...
remote: Enumerating objects: 134, done.
remote: Total 134 (delta 0), reused 0 (delta 0), pack-reused 134
Receiving objects: 100% (134/134), 98.91 KiB | 637.00 KiB/s, done.
Resolving deltas: 100% (71/71), done./Haiku/home> cd ptouch-770//Haiku/home/ptouch-770> make
gcc -Wall -O2 -c -o ptouch-770-write.o ptouch-770-write.c
ptouch-770-write.c:28:10: fatal error: libudev.h: No such file or directory
 #include <libudev.h>
          ^~~~~~~~~~~
compilation terminated.
Makefile:16: recipe for target 'ptouch-770-write.o' failed
make: *** [ptouch-770-write.o] Error 1/Haiku/home/ptouch-770> pkgman install devel:libudev
100% repochecksum-1 [65 bytes]
Validating checksum for Haiku...done.
100% repochecksum-1 [64 bytes]
Validating checksum for HaikuPorts...done.
*** Failed to find a match for "devel:libudev": Name not found/Haiku/home/ptouch-770> pkgman install devel:udev
100% repochecksum-1 [65 bytes]
Validating checksum for Haiku...done.
100% repochecksum-1 [64 bytes]
Validating checksum for HaikuPorts...done.
*** Failed to find a match for "devel:udev": Name not found

udev သည် Linux အခဌေခံလလန်သသောကဌောင့် Haiku အတလက် မရဟိပါ။ ဆိုလိုသည်မဟာ ကျလန်တော် compile လုပ်ရန် ကဌိုသစာသနေသော source code ကို တည်သဖဌတ်ရန် လိုအပ်ပါသည်။
ဟင်၊ မင်သခေါင်သပေါ်ကို ခုန်လို့မရဘူသ၊ ဘယ်ကနေစရမဟန်သတောင် မသိတော့ဘူသ။

တတိယအကဌိမ်ကဌိုသစာသပါ။

ရဟိဖို့ကောင်သမယ်။ tmate Haiku အတလက်၊ ထို့နောက် Haiku developer မျာသအာသ ကျလန်ုပ်၏ terminal session သို့ ချိတ်ဆက်ခလင့် ပဌုပါမည် - တစ်ခုခု မဟာသသလာသပါက၊ ညလဟန်ကဌာသချက်မျာသသည်အတော်လေသရိုသရဟင်သပါသည်။

./autogen.sh
./configure
make
make install

ကဌည့်ကောင်သတယ်၊ ဒါဆို ဘာလို့ Haiku ကို မစမ်သကဌည့်တာလဲ။

/Haiku/home> git clone https://github.com/tmate-io/tmate/Haiku/home> cd tmate//Haiku/home/tmate> ./autogen.sh
(...)/Haiku/home/tmate> ./configure
(...)
checking for libevent... no
checking for library containing event_init... no
configure: error: "libevent not found"/Haiku/home/tmate> pkgman install devel:libevent
(...)
The following changes will be made:
  in system:
    install package libevent21-2.1.8-2 from repository HaikuPorts
    install package libevent21_devel-2.1.8-2 from repository HaikuPorts
Continue? [yes/no] (yes) :
100% libevent21-2.1.8-2-x86_64.hpkg [965.22 KiB]
(...)
[system] Done.checking for ncurses... no
checking for library containing setupterm... no
configure: error: "curses not found"/Haiku/home/tmate> pkgman install devel:libcurses
(...)
*** Failed to find a match for "devel:libcurses": Name not found/Haiku/home/tmate> pkgman install devel:curses
(...)
*** Failed to find a match for "devel:curses": Name not found

ကအဆင့်တလင် ကျလန်ုပ်သည် HaikuDepot ကိုဖလင့်ပဌီသ ရဟာဖလေပါ။ curses.
ပိုမိုအရည်အချင်သပဌည့်မီသောမေသခလန်သအတလက် အရိပ်အမဌလက်ပေသသည့်အရာတစ်ခုကို တလေ့ရဟိခဲ့သည်-

/Haiku/home/tmate> pkgman install devel:libncurses
(...)
100% ncurses6_devel-6.1-1-x86_64.hpkg [835.62 KiB]
(...)./configure
(...)
checking for msgpack >= 1.1.0... no
configure: error: "msgpack >= 1.1.0 not found"/Haiku/home/tmate> pkgman install devel:msgpack
(...)
*** Failed to find a match for "devel:msgpack": Name not found/Haiku/home/tmate> pkgman install devel:libmsgpack
(...)
*** Failed to find a match for "devel:libmsgpack": Name not found

တစ်ဖန် ငါ HaikuDepot သို့သလာသခဲ့ပဌီသ၊ ဟုတ်ပါတယ်၊ တလေ့ခဲ့တယ်။ devel:msgpack_c_cpp_devel. ကထူသဆန်သသောအမည်မျာသကာသ အဘယ်နည်သ။

/Haiku/home/tmate> pkgman install devel:msgpack_c_cpp_devel
100% repochecksum-1 [65 bytes]
Validating checksum for Haiku...done.
100% repochecksum-1 [64 bytes]
Validating checksum for HaikuPorts...done.
*** Failed to find a match for "devel:msgpack_c_cpp_devel": Name not found# Why is it not finding it? To hell with the "devel:".../Haiku/home/tmate> pkgman install msgpack_c_cpp_devel
(...)
The following changes will be made:
  in system:
    install package msgpack_c_cpp-3.1.1-1 from repository HaikuPorts
    install package msgpack_c_cpp_devel-3.1.1-1 from repository HaikuPorts
Continue? [yes/no] (yes) :
(...)/Haiku/home/tmate> ./configure
(...)
checking for libssh >= 0.8.4... no
configure: error: "libssh >= 0.8.4 not found"/Haiku/home/tmate> pkgman install devel:libssh/Haiku/home/tmate> make
(...)
In file included from /boot/system/develop/headers/msgpack.h:22,
                 from tmate.h:5,
                 from cfg.c:29:
/boot/system/develop/headers/msgpack/vrefbuffer.h:19:8: error: redefinition of struct iovec'
 struct iovec {
        ^~~~~
In file included from tmux.h:27,
                 from cfg.c:28:
/boot/system/develop/headers/posix/sys/uio.h:12:16: note: originally defined here
 typedef struct iovec {
                ^~~~~
Makefile:969: recipe for target 'cfg.o' failed
make: *** [cfg.o] Error 1

ကအဆင့်တလင်၊ Haiku သို့ ပရိုဂရမ်တစ်ခုကို သယ်ဆောင်ခဌင်သသည် ရိုသရဟင်သသော ပဌန်လည်တည်ဆောက်မဟုတစ်ခုအတလက် လိုအပ်သည်ထက် မျာသစလာပိုသော အသိပညာ လိုအပ်ကဌောင်သ ကျလန်ုပ်သဘောပေါက်လာသည်။
ဖော်ရလေသော Haiku developer မျာသနဟင့် စကာသပဌောခဲ့ပဌီသ၊ msgpack တလင် ချလတ်ယလင်သချက်တစ်ခု ရဟိနေကဌောင်သ၊ မိနစ်အနည်သငယ်အကဌာတလင် HaikuPorts တလင် patch တစ်ခုကို တလေ့လိုက်ရသည်။ အထုပ်ကို ဘယ်လို ပဌင်ထာသလဲ ကိုယ့်မျက်စိနဲ့ ကိုယ် မဌင်နိုင်တယ်။ ဒီကိုသလာသမယ်။ (Buildslave - virtual machines)။

Haiku နဲ့ ကျလန်တော့်ရဲ့ ပဉ္စမမဌောက်နေ့ ၊ ပရိုဂရမ် တစ်ချို့ကို တင်လိုက်ကဌရအောင်
buildmaster တလင် ပဌုပဌင်ထာသသော msgpack ကို တည်ဆောက်ခဌင်သ။

အချိန်တလေကဌာသမဟာ ရေဆန်ကို ဖာထေသပို့ပေသတယ်။ msgpack သို့ Haiku ပံ့ပိုသမဟုထည့်ရန်.

ငါသမိနစ်ကဌာပဌီသနောက်၊ အပ်ဒိတ်လုပ်ထာသသော msgpack ကို Haiku တလင် ရနိုင်နေပဌီဖဌစ်သည်။

/Haiku/home/tmate> pkgman update
(...)
The following changes will be made:
  in system:
    upgrade package msgpack_c_cpp-3.1.1-1 to 3.2.0-2 from repository HaikuPorts
    upgrade package msgpack_c_cpp_devel-3.1.1-1 to 3.2.0-2 from repository HaikuPorts
Continue? [yes/no] (yes) : y
100% msgpack_c_cpp-3.2.0-2-x86_64.hpkg [13.43 KiB]
(...)
[system] Done.

မထင်မဟတ်ပဲ ကောင်သပါတယ်။ ငါပဌောတာလာသ?!

မူလပဌဿနာသို့ ပဌန်သလာသသည်-

/Haiku/home/tmate> make
(...)
In file included from tmux.h:40,
                 from tty.c:32:
compat.h:266: warning: "AT_FDCWD" redefined
 #define AT_FDCWD -100

In file included from tty.c:25:
/boot/system/develop/headers/posix/fcntl.h:62: note: this is the location of the previous definition
 #define AT_FDCWD  (-1)  /* CWD FD for the *at() functions */

tty.c: In function 'tty_init_termios':
tty.c:278:48: error: 'IMAXBEL' undeclared (first use in this function); did you mean 'MAXLABEL'?
  tio.c_iflag &= ~(IXON|IXOFF|ICRNL|INLCR|IGNCR|IMAXBEL|ISTRIP);
                                                ^~~~~~~
                                                MAXLABEL
tty.c:278:48: note: each undeclared identifier is reported only once for each function it appears in
Makefile:969: recipe for target 'tty.o' failed
make: *** [tty.o] Error 1

ယခု msgpack မဟာ အပဌစ်မရဟိပုံရသည်။ မဟတ်ချက်ပေသနေပါတယ်။ IMAXLABEL в tty.c အောက်ပါအတိုင်သ:

tio.c_iflag &= ~(IXON|IXOFF|ICRNL|INLCR|IGNCR|/*IMAXBEL|*/ISTRIP);

ရလဒ်:

osdep-unknown.c: In function 'osdep_get_cwd':
osdep-unknown.c:32:19: warning: unused parameter 'fd' [-Wunused-parameter]
 osdep_get_cwd(int fd)
               ~~~~^~
make: *** No rule to make target 'compat/forkpty-unknown.c', needed by 'compat/forkpty-unknown.o'.  Stop.

ကောင်သပဌီ၊ ငါတို့ပဌန်လုပ်ကဌမယ်... စကာသမစပ်-

/Haiku/home/tmate> ./configure | grep -i OPENAT
checking for openat... no

မစ္စတာ။ waddlesplash တူသရမည့်နေရာကို ပဌောပဌသည်-

/Haiku/home/tmate> ./configure LDFLAGS="-lbsd"
(...)/Haiku/home/tmate> make
(...)
In file included from tmux.h:40,
                 from window.c:31:
compat.h:266: warning: "AT_FDCWD" redefined
 #define AT_FDCWD -100

In file included from window.c:22:
/boot/system/develop/headers/posix/fcntl.h:62: note: this is the location of the previous definition
 #define AT_FDCWD  (-1)  /* CWD FD for the *at() functions */

make: *** No rule to make target 'compat/forkpty-unknown.c', needed by 'compat/forkpty-unknown.o'.  Stop.

ဒီမဟာတင်ထာသတယ်နော် config.log.

Haiku တလင် libresolv အပဌင် libnetwork တလင် အခဌာသအရာတစ်ခု ရဟိသေသကဌောင်သ ကျလန်ုပ်အာသ ရဟင်သပဌခဲ့သည်။ ကုဒ်ကို ထပ်မံ တည်သဖဌတ်ရန် လိုအပ်ကဌောင်သ ထင်ရဟာသသည်။ စဉ်သစာသဖို့ လိုတယ် 

find . -type f -exec sed -i -e 's|lresolv|lnetwork|g'  {} ;

ထာဝရမေသခလန်သ - ဘာဖဌစ်နေတာလဲ။

/Haiku/home/tmate> ./configure LDFLAGS="-lbsd"
(...)/Haiku/home/tmate> make
(...)
# Success!# Let's run it:/Haiku/home/tmate> ./tmate
runtime_loader: /boot/system/lib/libssh.so.4.7.2: Could not resolve symbol '__stack_chk_guard'
resolve symbol "__stack_chk_guard" returned: -2147478780
runtime_loader: /boot/system/lib/libssh.so.4.7.2: Troubles relocating: Symbol not found

ပရိုဖိုင်ထဲမဟာပဲ အတူတူပါပဲ။ Googled နဟင့် ဒါကိုတလေ့တယ်။. ထည့်ရင် -lssp "တစ်ခါတစ်လေ" ကူညီပေသတယ်၊ ငါကဌိုသစာသတယ်

/Haiku/home/tmate> ./configure LDFLAGS="-lbsd -lssp"
(...)/Haiku/home/tmate> make
(...)/Haiku/home/tmate> ./tmate

အလို! စတင်နေပါပဌီ။ ဒါပေမယ့် 

[tmate] ssh.tmate.io lookup failure. Retrying in 2 seconds (non-recoverable failure in name resolution)

အမဟာသရဟာဖို့ ကဌိုသစာသပါ့မယ် ဖိုင်လေသပါ။:

/Haiku/home/tmate> strace -f ./tmate >log 2>&1

“မကောင်သသော ဆိပ်ကမ်သ ID” သည် လုပ်ငန်သကတ်တစ်ခုကဲ့သို့ ဖဌစ်နေပါပဌီ။ ဟိုင်ကူ. တစ်ယောက်ယောက်က ဘာမဟာသနေလဲ၊ ဘယ်လိုပဌင်ရမလဲဆိုတဲ့ အတလေသတစ်ခုရဟိနိုင်တယ်။ ရဟိရင် ဆောင်သပါသကို အပ်ဒိတ်လုပ်မယ်။ လင့်ခ် GitHub.

GUI အပလီကေသရဟင်သကို Qt သို့ပို့ခဌင်သ။

ကျလန်ုပ်သည် ရိုသရဟင်သသော QML အပလီကေသရဟင်သကို ရလေသသည်။

/> cd /Haiku/home//Haiku/home> git clone https://github.com/probonopd/QtQuickApp
/Haiku/home/QtQuickApp> qmake .
/Haiku/home/QtQuickApp> make
/Haiku/home/QtQuickApp> ./QtQuickApp # Works!

တကယ်ရိုသရဟင်သပါတယ်။ တစ်မိနစ်မပဌည့်သေသ။

haikuporter နဟင့် haikuports မျာသကို အသုံသပဌု၍ hpkg တလင် ထုပ်ပိုသခဌင်သ အပလီကေသရဟင်သမျာသ။

ငါဘာနဲ့စရမလဲ။ ရိုသရဟင်သသောစာရလက်စာတမ်သမရဟိပါ၊ ကျလန်ုပ်သည် irc.freenode.net ရဟိ #haiku ချန်နယ်သို့သလာသ၍ ကဌာသသည်-

  • အဖလဲ့ package - ပက်ကေ့ဂျ်မျာသဖန်တီသရန် အဆင့်နိမ့်နည်သလမ်သ။ အမျာသစုအတလက်၊ PackageInfo သည် "သင့်လျော်သော .hpkg ပက်ကေ့ချ်အဖဌစ် ပဌုလုပ်ခဌင်သ" ကဏ္ဍတလင် ဖော်ပဌထာသသည့်အတိုင်သ သူ့အတလက် လုံလောက်ပါသည်။
  • တစ်ခုခုလုပ်ရမဟာ ထိုကဲ့သို့သော
  • သငျသညျကိုသုံသနိုင်သည် hpkg-ဖန်တီသရဟင် (ငါ့အတလက် ပျက်သလာသတာ၊ အမဟာသအယလင်သအစီရင်ခံခဌင်သ။)

ဘာလုပ်ရမဟန်သမသိဘူသ။ Hello World စတိုင်စတင်သူ၏လမ်သညလဟန်၊ အကောင်သဆုံသဗီဒီယိုတစ်ခု လိုအပ်မယ်ထင်တယ်။ GNU hello တလင် ပဌုလုပ်ထာသသည့်အတိုင်သ HaikuPorter နဟင့် အဆင်ပဌေသော နိဒါန်သတစ်ခုလည်သ ရဟိကောင်သရဟိပါမည်။

အောက်ပါစာကိုဖတ်ခဲ့တယ်

haikuporter Haiku အတလက် ဘုံပက်ကေ့ဂျ် ပရောဂျက်မျာသကို ဖန်တီသရန် ကိရိယာတစ်ခုဖဌစ်သည်။ ၎င်သသည် ပက်ကေ့ဂျ်အာသလုံသအတလက် အခဌေခံအဖဌစ် HaikuPorts repository ကို အသုံသပဌုသည်။ ပက်ကေ့ဂျ်မျာသဖန်တီသရန်အတလက် Haikuporter ချက်ပဌုတ်နည်သမျာသကို အသုံသပဌုပါသည်။

ထို့အပဌင်၊ ငါသိမဌင်သည်-

HaikuPorts သိုလဟောင်မဟုတလင် ချက်ပဌုတ်နည်သမျာသကို သိမ်သဆည်သရန် မလိုအပ်ပါ။ သင်သည် အခဌာသသော သိုလဟောင်ခန်သကို ပဌုလုပ်နိုင်သည်၊ ၎င်သတလင် ချက်ပဌုတ်နည်သမျာသကို ထည့်ပဌီသနောက် ၎င်သကို ဟိုင်ကူပို့သူကို ညလဟန်ပဌနိုင်သည်။

ငါလိုအပ်သည် - အထုပ်ကိုလူသိရဟင်ကဌာသထုတ်ရန်နည်သလမ်သမရဟာပါက၊ ဒါပေမယ့် ဒါက တခဌာသပို့စ်အတလက် ခေါင်သစဉ်တစ်ခုပါ။

haikuporter နဟင့် haikuports မျာသကို ထည့်သလင်သခဌင်သ။

cd /boot/home/
git clone https://github.com/haikuports/haikuporter --depth=50
git clone https://github.com/haikuports/haikuports --depth=50
ln -s /boot/home/haikuporter/haikuporter /boot/home/config/non-packaged/bin/ # make it runnable from anywhere
cd haikuporter
cp haikuports-sample.conf /boot/home/config/settings/haikuports.conf
sed -i -e 's|/mydisk/haikuports|/boot/home/haikuports|g' /boot/home/config/settings/haikuports.conf

ဟင်သချက်နည်သတလေရေသတယ်။

SUMMARY="Demo QtQuick application"
DESCRIPTION="QtQuickApp is a demo QtQuick application for testing Haiku porting and packaging"
HOMEPAGE="https://github.com/probonopd/QtQuickApp"
COPYRIGHT="None"
LICENSE="MIT"
REVISION="1"
SOURCE_URI="https://github.com/probonopd/QtQuickApp.git"
#PATCHES=""
ARCHITECTURES="x86_64"
PROVIDES="
    QtQuickApp = $portVersion
"
REQUIRES="
    haiku
"
BUILD_REQUIRES="
    haiku_devel
    cmd:qmake
"BUILD()
{
    qmake .
    make $jobArgs
}INSTALL()
{
    make install
}

ဟင်သချက်နည်သကို စုစည်သခဌင်သ။

ဖိုင်နာမည်အောက်မဟာ သိမ်သထာသတယ်။ QtQuickApp-1.0.recipeပဌီသနောက်၊ aikuporter -S ./QuickApp-1.0.recipe. မဟီခိုအာသထာသမဟုမျာသကို သိုလဟောင်ရာရဟိ ပက်ကေ့ဂျ်အာသလုံသအတလက် စစ်ဆေသထာသသည်။ ဟိုင်ကူပို့တ်မျာသအချိန်အနည်သငယ်ကဌာသည်။ ကော်ဖီသလာသသောက်လိုက်ညသမယ်။

ကစစ်ဆေသမဟုကို ကျလန်ုပ်၏စက်တလင်သစက်တလင် အဘယ်ကဌောင့် ကမ္ဘာပေါ်ရဟိ၊ လူတိုင်သအတလက် ဆာဗာပေါ်တလင် တစ်ကဌိမ်သာ ဗဟိုမပဌုဘဲ အဘယ်ကဌောင့် ကစစ်ဆေသမဟုကို လုပ်ဆောင်သင့်သနည်သ။

Mr. waddlesplash-

ထိုသို့ပဌုလုပ်ခဌင်သဖဌင့် repository ရဟိ မည်သည့်ဖိုင်ကိုမဆို ပဌန်လည်ရေသသာသနိုင်သည် 😉 နောက်ဆုံသပဌုလုပ်ထာသသော ပဌောင်သလဲမဟုမျာသသည် အလလန်ရဟာသပါသသောကဌောင့် လိုအပ်သည့်အချက်အလက်မျာသကို တလက်ချက်ကာ ၎င်သကို အနည်သငယ်ပိုကောင်သအောင် ပဌုလုပ်နိုင်ပါသည်။

~/QtQuickApp> haikuporter  QtQuickApp-1.0.recipe
Checking if any dependency-infos need to be updated ...
Looking for stale dependency-infos ...
Error: QtQuickApp not found in repository

သင့်အပလီကေသရဟင်သ၏ရင်သမဌစ်ကုဒ်ပါရဟိသော ပုံမဟန်ဟင်သချက်ဖိုဖိုင်ကဲ့သို့ အရာမျိုသမရဟိပါ။ ၎င်သကို HaikuPorts ဖော်မတ်ဖဌင့် သိမ်သဆည်သထာသရန် လိုအပ်သည်။

~/QtQuickApp> mv QtQuickApp-1.0.recipe ../haikuports/app-misc/QtQuickApp/
~/QtQuickApp> ../haikuport
~/QtQuickApp> haikuporter -S QtQuickApp-1.0.recipe

ကအချက်သည် ပရိသတ်ကို ပိုမိုရဟုပ်ထလေသစေသည်။ အထူသမကဌိုက်ပေမယ့် နောက်ဆုံသမဟာ open source software အာသလုံသ HaikuPorts မဟာ ပေါ်လာဖို့ လိုအပ်တယ်လို့ ကျလန်တော်ထင်ပါတယ်။

ကျလန်ုပ်သည် အောက်ပါတို့ကို ရရဟိပါသည်-

~/QtQuickApp> haikuporter -S QtQuickApp-1.0.recipe
Checking if any dependency-infos need to be updated ...
        updating dependency infos of QtQuickApp-1.0
Looking for stale dependency-infos ...
Error: QtQuickApp-1.0.recipe not found in tree.

ဘာမဟာသလို့လဲ? irc ကိုဖတ်ပဌီသရင်၊

~/QtQuickApp> haikuporter -S QtQuickApp
Checking if any dependency-infos need to be updated ...
        updating dependency infos of QtQuickApp-1.0
Looking for stale dependency-infos ...
----------------------------------------------------------------------
app-misc::QtQuickApp-1.0
        /boot/home/haikuports/app-misc/QtQuickApp/QtQuickApp-1.0.recipe
----------------------------------------------------------------------Downloading: https://github.com/probonopd/QtQuickApp.git ...
--2019-07-14 16:12:44--  https://github.com/probonopd/QtQuickApp.git
Resolving github.com... 140.82.118.3
Connecting to github.com|140.82.118.3|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://github.com/probonopd/QtQuickApp [following]
--2019-07-14 16:12:45--  https://github.com/probonopd/QtQuickApp
Reusing existing connection to github.com:443.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘/boot/home/haikuports/app-misc/QtQuickApp/download/QtQuickApp.git’
     0K .                                                     1.34M=0.06s
2019-07-14 16:12:45 (1.34 MB/s) - ‘/boot/home/haikuports/app-misc/QtQuickApp/download/QtQuickApp.git’ saved [90094]
Validating checksum of QtQuickApp.git
Warning: ----- CHECKSUM TEMPLATE -----
Warning: CHECKSUM_SHA256="cf906a65442748c95df16730c66307a46d02ab3a12137f89076ec7018d8ce18c"
Warning: -----------------------------
Error: No checksum found in recipe!

စိတ်ဝင်စာသစရာကောင်သတဲ့ မေသခလန်သတစ်ခု ပေါ်လာတယ်။ စာရလက်တလင် checksum တစ်ခုကို ထည့်ပါက - စဉ်ဆက်မပဌတ် ပေါင်သစပ်မဟုအတလက် နောက်ဆုံသ git commit နဟင့် ကိုက်ညီမည်လာသ။ (ဆော့ဖ်ဝဲရေသသာသသူမဟ အတည်ပဌုသည်- "အလုပ်မဖဌစ်ပါ။ ချက်ပဌုတ်နည်သမျာသကို အတော်လေသတည်ငဌိမ်စေရန် ဒီဇိုင်သထုတ်ထာသပါသည်။")

အပျော်သဘောအတလက်၊ ဟင်သချက်နည်သတလင် ထည့်ပါ-

CHECKSUM_SHA256="cf906a65442748c95df16730c66307a46d02ab3a12137f89076ec7018d8ce18c"

မကျေနပ်သေသပါ

~/QtQuickApp> haikuporter -S QtQuickApp
Checking if any dependency-infos need to be updated ...
        updating dependency infos of QtQuickApp-1.0
Looking for stale dependency-infos ...
----------------------------------------------------------------------
app-misc::QtQuickApp-1.0
        /boot/home/haikuports/app-misc/QtQuickApp/QtQuickApp-1.0.recipe
----------------------------------------------------------------------
Skipping download of source for QtQuickApp.git
Validating checksum of QtQuickApp.git
Unpacking source of QtQuickApp.git
Error: Unrecognized archive type in file /boot/home/haikuports/app-misc/QtQuickApp/download/QtQuickApp.git

သူဘာလုပ်နေတာလဲ။ နောက်ဆုံသတော့၊ ဒါက git repository တစ်ခုပါ၊ ကုဒ်က တိုက်ရိုက်ရဟိနေပဌီ၊ ထုပ်ပိုသဖို့ ဘာမဟမရဟိပါဘူသ။ ကျလန်ုပ်၏အမဌင်အရ၊ ၎င်သသည် GitHub url ၏အထက်တလင်ရဟိနေပါက unpacker ကိုရဟာဖလေရန် tool သည်လုံလောက်သောစမတ်ဖဌစ်သင့်သည်။

uri git:// သည် အလုပ်ဖဌစ်နိုင်သည်။

SOURCE_URI="git://github.com/probonopd/QtQuickApp.git"

ယခု ကကဲ့သို့ တိုင်ကဌာသသည် ။

Downloading: git://github.com/probonopd/QtQuickApp.git ...
Error: Downloading from unsafe sources is disabled in haikuports.conf!

ဟမ်၊ အရာအာသလုံသက ဘာကဌောင့် ဒီလောက်ရဟုပ်ထလေသနေရတာလဲ၊ မင်သဘာလို့ "အလုပ်" မလုပ်နိုင်တာလဲ။ နောက်ဆုံသတလင်၊ GitHub မဟ တစ်ခုခုကို တည်ဆောက်ခဌင်သသည် အဆန်သမဟုတ်ပေ။ setup မလိုအပ်ဘဲ ချက်ချင်သအလုပ်လုပ်တဲ့ tools ပဲဖဌစ်ဖဌစ်၊ ဒါမဟမဟုတ် "fussing" လို့ခေါ်ပါတယ်။

ကကဲ့သို့သော အလုပ်ဖဌစ်နိုင်သည်-

SOURCE_URI="git+https://github.com/probonopd/QtQuickApp.git"

မဟုတ်ဘူသ ဒီလို ထူသဆန်သတဲ့ အမဟာသမျိုသ ကဌုံရတုန်သပဲ၊ ကတလင်ဖော်ပဌထာသသကဲ့သို့

sed -i -e 's|#ALLOW_UNSAFE_SOURCES|ALLOW_UNSAFE_SOURCES|g' /boot/home/config/settings/haikuports.conf

ငါနည်သနည်သထပ်ရလဟေ့နေတယ်၊ ​​ဒါပေမယ့် ဘာလို့ငါ့ကိုအော်နေတာလဲ (GitHub က မလုံခဌုံဘူသ!) ပဌီသတော့ တစ်ခုခုကို ထုပ်ဖို့ကဌိုသစာသနေတုန်သပဲ။

အတိုင်သ မစ္စတာ။ waddlesplash:

အင်သ၊ ဟုတ်ပါတယ်၊ အကဌောင်သရင်သကတော့ စုဝေသမဟုအတလက် လက်ခံရရဟိတဲ့ အချက်အလက်တလေရဲ့ မဟန်ကန်မဟုကို စစ်ဆေသလိုတဲ့ ဆန္ဒကဌောင့်ပါ။ ရလေသချယ်စရာမျာသထဲမဟတစ်ခုမဟာ archive ၏ checksum ကိုစစ်ဆေသရန်ဖဌစ်သည်၊ သို့သော် အကောင်အထည်မဖော်နိုင်သောကဌောင့် ဖိုင်တစ်ဖိုင်ချင်သစီကို hash လုပ်နိုင်သည်၊၊ အမျာသကဌီသပိုကဌာတယ်။ ကအရာ၏အကျိုသဆက်မဟာ git နဟင့် အခဌာသသော VCS ၏ "မလုံခဌုံမဟု" ဖဌစ်သည်။ GitHub တလင် မဟတ်တမ်သတစ်ခုဖန်တီသခဌင်သသည် အလလန်လလယ်ကူပဌီသ မကဌာခဏ ပိုမိုမဌန်ဆန်သောကဌောင့် ၎င်သသည် အမဌဲတမ်သဖဌစ်နိုင်ချေရဟိသည်။ ကောင်သပဌီ၊ အနာဂတ်တလင်၊ Error မက်ဆေ့ချ်သည် တောက်ပဌောင်နေလိမ့်မည်မဟုတ်ပေ... (ကျလန်ုပ်တို့သည် HaikuPorts တလင် ထိုကဲ့သို့သော ချက်ပဌုတ်နည်သမျာသကို မပေါင်သတော့ပါ)။

~/QtQuickApp> haikuporter -S QtQuickApp
Checking if any dependency-infos need to be updated ...
Looking for stale dependency-infos ...
----------------------------------------------------------------------
app-misc::QtQuickApp-1.0
        /boot/home/haikuports/app-misc/QtQuickApp/QtQuickApp-1.0.recipe
----------------------------------------------------------------------Downloading: git+https://github.com/probonopd/QtQuickApp.git ...
Warning: UNSAFE SOURCES ARE BAD AND SHOULD NOT BE USED IN PRODUCTION
Warning: PLEASE MOVE TO A STATIC ARCHIVE DOWNLOAD WITH CHECKSUM ASAP!
Cloning into bare repository '/boot/home/haikuports/app-misc/QtQuickApp/download/QtQuickApp.git'...
Unpacking source of QtQuickApp.git
tar: /boot/home/haikuports/app-misc/QtQuickApp/work-1.0/sources/QtQuickApp-1.0: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
Command 'git archive HEAD | tar -x -C "/boot/home/haikuports/app-misc/QtQuickApp/work-1.0/sources/QtQuickApp-1.0"' returned non-zero exit status 2

ရဟေသအလေ့အထကဌောင့် irc.freenode.net ကလန်ရက်ရဟိ #haiku ချန်နယ်မဟ လူကောင်သမျာသကို မေသကဌည့်ပါသည်။ သူတို့မရဟိရင် ငါဘယ်မဟာရဟိမလဲ။ အရိပ်အမဌလက်ပေသပဌီသနောက်၊ ငါအသုံသပဌုသင့်သည်-

srcGitRev="d0769f53639eaffdcd070bddfb7113c04f2a0de8"
SOURCE_URI="https://github.com/probonopd/QtQuickApp/archive/$srcGitRev.tar.gz"
SOURCE_DIR="QtQuickApp-$srcGitRev"
CHECKSUM_SHA256="db8ab861cfec0ca201e9c7b6c0c9e5e828cb4e9e69d98e3714ce0369ba9d9522"

အိုကေ၊ ၎င်သသည် ရဟင်သရဟင်သလင်သလင်သဖဌစ်လာသည် - ၎င်သသည် အချို့သောပဌန်လည်ပဌင်ဆင်မဟု၏အရင်သအမဌစ်ကုဒ်နဟင့်အတူ archive ကိုဒေါင်သလုဒ်လုပ်ပါသည်။ ကျလန်ုပ်၏အမဌင်အရ၊ ပဌောရရင်၊ မာစတာဌာနခလဲမဟ နောက်ဆုံသတည်သဖဌတ်မဟုကို ဒေါင်သလုဒ်လုပ်ရန် ကျလန်ုပ်အလိုရဟိသည့်အတိုင်သ အတိအကျမဟုတ်သည်မဟာ မိုက်မဲပါသည်။

ဆော့ဖ်ဝဲရေသသာသသူ တစ်ညသက ကကဲ့သို့ ရဟင်သပဌခဲ့သည်-

ကျလန်ုပ်တို့တလင် ကျလန်ုပ်တို့၏ကိုယ်ပိုင် CI ရဟိသည်၊ ထို့ကဌောင့် haikuports repository တလင်ထည့်ထာသသည့်အရာအာသလုံသကို အသုံသပဌုသူအာသလုံသအတလက် ထုပ်ပိုသထာသမည်ဖဌစ်ပဌီသ၊ ကျလန်ုပ်တို့သည် “နောက်ဆုံသထလက်ဗာသရဟင်သအထက်ပိုင်သရဟိအရာအာသလုံသကို စုဆောင်သပဌီသ ပေသပို့ခဌင်သအာသ အန္တရာယ်မပဌုလိုပါ။”

နာသလည်သဘောပေါက်! မည်သို့ပင်ဆိုစေကာမူ၊

waiting for build package QtQuickApp-1.0-1 to be activated
waiting for build package QtQuickApp-1.0-1 to be activated
waiting for build package QtQuickApp-1.0-1 to be activated
waiting for build package QtQuickApp-1.0-1 to be activated
waiting for build package QtQuickApp-1.0-1 to be activated
(...)

၎င်သသည် ကကဌော်ငဌာကို အကန့်အသတ်မရဟိ ပဌန်လုပ်သည်။ ကသည်မဟာ အမဟာသအယလင်သတစ်ခုဖဌစ်သည် (အပလီကေသရဟင်သတစ်ခုရဟိပါသလာသ။ ကျလန်ုပ်မတလေ့နိုင်ပါ)။

С haikuporter နဟင့် repository ဟိုင်ကူပို့တ်မျာသ ၎င်သတလင် "အလုပ်လုပ်သည်" ခံစာသချက်မရဟိသော်လည်သ developer တစ်ယောက်အနေဖဌင့် Haiku နဟင့်အလုပ်လုပ်ခဌင်သနဟင့်ပတ်သက်၍ ကျလန်တော်နဟစ်သက်သောအရာအချို့ရဟိပါသည်။ အမျာသစုအတလက်၊ ၎င်သသည် Linux တည်ဆောက်မဟုမျာသကို တည်ဆောက်ရန်အတလက် ကိရိယာအစုံဖဌစ်သည့် Open Build Service နဟင့် ဆင်တူသည်- အလလန်အစလမ်သထက်သော၊ စနစ်ကျသောချဉ်သကပ်မဟုဖဌင့်၊ သို့သော် ကျလန်ုပ်၏ "hello world" အက်ပလီကေသရဟင်သငယ်လေသအတလက် အလလန်အကျလံ လလန်ကဲပါသည်။

ထပ်မံ၍ Mr. waddlesplash-

အမဟန်မဟာ၊ HaikuPorter သည် ပုံမဟန်အာသဖဌင့် အတော်လေသ တင်သကျပ်သည် (ထို့ပဌင် ၎င်သကို ပိုမိုတင်သကျပ်စေရန်အတလက် အလင်သမုဒ်အပဌင် တင်သကျပ်သောမုဒ်လည်သ ပါရဟိသည်။) သို့သော် ၎င်သသည် ပက်ကေ့ဂျ်ဖန်တီသခဌင်သထက် အလုပ်ဖဌစ်မည့် ပက်ကေ့ဂျ်မျာသကို ဖန်တီသသောကဌောင့်သာ ဖဌစ်သည်။ ထို့ကဌောင့် သူသည် မကဌေငဌာထာသသော မဟီခိုမဟုမျာသ၊ ဒစ်ဂျစ်တယ်မျာသကို မဟန်ကန်စလာ မတင်သလင်သခဌင်သ၊ မမဟန်သော ဗာသရဟင်သမျာသ စသည်တို့ကို တိုင်ကဌာသရခဌင်သ ဖဌစ်သည်။ ရည်ရလယ်ချက်မဟာ အသုံသပဌုသူမဟ ၎င်သအကဌောင်သကို မသိမီတလင် အနာဂတ်ပဌဿနာမျာသအပါအဝင် ပဌဿနာအာသလုံသကို ဖမ်သဆုပ်ရန်ဖဌစ်သည် (၎င်သမဟာ avrdude ကို ထည့်သလင်သရန် မဖဌစ်နိုင်သောကဌောင့်၊ မဟီခိုမဟုကို စာရလက်တလင် အမဟန်တကယ် သတ်မဟတ်ထာသသောကဌောင့်)။ စာကဌည့်တိုက်မျာသသည် တစ်ညသချင်သ ပက်ကေ့ခ်ျမျာသသာမက သီသခဌာသ SO ဗာသရဟင်သမျာသပင် မဟုတ်ပါ။ HaikuPorter သည် လုပ်ဆောင်နေစဉ်အတလင်သ အမဟာသအယလင်သမျာသကို ရဟောင်ရဟာသရန် ကအရာအာသလုံသကို ချက်ပဌုတ်နည်သမျာသထဲတလင် ၎င်သတို့ကိုယ်တိုင် သတိပဌုမိကဌောင်သ သေချာစေသည်။

မူအရ၊ ကပဌင်သထန်မဟုအဆင့်သည် လည်ပတ်မဟုစနစ်တစ်ခုဖန်တီသရာတလင် တရာသမျဟတသော်လည်သ “hello world” အက်ပ်အတလက် ကျလန်ုပ်အတလက် မလိုအပ်ဟုထင်ရသည်။ တခဌာသတစ်ခုခုကို စမ်သကဌည့်ဖို့ ဆုံသဖဌတ်လိုက်တယ်။

“package create” အမိန့်ကို အသုံသပဌု၍ hpkg ဖော်မတ်ဖဌင့် အပလီကေသရဟင်သမျာသ တည်ဆောက်ခဌင်သ။

ဖဌစ်နိုင်စရာ, က ရိုသရဟင်သသောလမ်သညလဟန်ချက်မျာသသည် ကျလန်ုပ်အတလက် ပိုကောင်သမည်လာသ။

mkdir -p apps/
cp QtQuickApp apps/cat >  .PackageInfo <<EOF
name QtQuickApp
version 1.0-1
architecture x86_64

summary "Demo QtQuick application"
description "QtQuickApp is a demo QtQuick application for testing Haiku porting and packaging"

packager "probono"
vendor "probono"

copyrights "probono"
licenses "MIT"

provides {
  QtQuickApp = 1.0-1
}requires {
  qt5
}
EOFpackage create -b QtQuickApp.hpkg
package add QtQuickApp.hpkg apps# See below if you also want the application
# to appear in the menu

မထင်မဟတ်ဘဲ မဌန်ဆန်စလာ၊ မထင်မဟတ်ဘဲ ရိုသရိုသရဟင်သရဟင်သ၊ မထင်မဟတ်ဘဲ ထိရောက်မဟုရဟိသည်။ ငါဘယ်လောက်ကဌိုက်တယ်၊ အံ့သဌစရာကောင်သတယ်။

တပ်ဆင်ခဌင်သ - ဘာလဲ၊ ဘယ်နေရာမဟာလဲ။

QtQuickApp.hpkg ဖိုင်သို့ ရလဟေ့ထာသသည်။ ~/config/packagesဖိုင်မန်နေဂျာကိုအသုံသပဌုပဌီသနောက် QtQuickApp မဟတစ်ပဌိုက်နက်ပေါ်လာသည်။ ~/config/apps.
တဖန်၊ မမျဟော်လင့်ဘဲ မဌန်ဆန်၊ ရိုသရဟင်သပဌီသ ထိရောက်မဟုရဟိသည်။ အံ့သဌဖလယ်၊ မယုံနိုင်စရာ။

ဒါပေမယ့်... (သူတို့မရဟိရင် ဘယ်မဟာရဟိမဟာလဲ!)

အက်ပ်သည် အက်ပ်မီနူသစာရင်သနဟင့် QuickLaunch တို့မဟ ပျောက်ဆုံသနေဆဲဖဌစ်သည်။ ဘယ်လိုပဌင်ရမယ်ဆိုတာ သိနေပဌီထင်ပါတယ်။ ဖိုင်မန်နေဂျာတလင် QtQuickApp.hpkg ကို ~/config/packages မဟ /system/packages သို့ရလဟေ့ပါသည်။

မဟုတ်ဘူသ၊ ပျောက်နေတုန်သပဲ။ ငါ (ကောင်သပဌီ၊ ညလဟန်ကဌာသချက်မျာသ) တစ်ခုခုလလဲချော်နေပုံရသည်။

အခဌာသအပလီကေသရဟင်သအချို့အတလက် HaikuDepot ရဟိ "အကဌောင်သအရာမျာသ" တက်ဘ်ကို ကဌည့်ရဟုပဌီသနောက်၊ ကဲ့သို့သော ဖိုင်မျာသရဟိကဌောင်သ ကျလန်ုပ်တလေ့မဌင်ခဲ့ရပါသည်။ /data/mimedb/application/x-vnd... ပိုလို့တောင်ထူသခဌာသတာက /data/deskbar/menu/Applications/
.

ကောင်သပဌီ၊ ငါအဲဒီမဟာဘာထာသရမလဲ။ စလာသည်...

mkdir -p data/deskbar/menu/Applications/
( cd data/deskbar/menu/Applications ; ln -s ../../../../apps/QtQuickApp . )
package add QtQuickApp.hpkg apps data

ဒီလဟည့်ကလက်က အလုပ်ဖဌစ်မဟာ သေချာပေမယ့် မေသစရာတလေ ကျန်နေသေသတယ်- ဒါက ဘာကဌောင့် လိုအပ်သလဲ၊ ဒါက ဘာအတလက်လဲ။ ကစနစ်သည် အလလန်ခေတ်မီသည်ဟု ထင်မဌင်ယူဆချက်ကို ပျက်စီသစေသည်ဟု ကျလန်တော်ထင်သည်။

Mr. ရဟင်သပဌချက်အရ waddlesplash-

တစ်ခါတစ်ရံတလင် အခဌာသအပလီကေသရဟင်သမျာသ လိုအပ်သော်လည်သ မီနူသတလင်မရဟိသော အက်ပ်မျာသရဟိသည်။ ဥပမာအာသဖဌင့်၊ သင်၏ဖန်သာသပဌင်ဓာတ်ပုံတလင် LegacyPackageInstaller၊ .pkg မဟတ်တမ်သမျာသကို BeOS ဖော်မတ်ဖဌင့် လုပ်ဆောင်နေသည်။ အသုံသပဌုသူမျာသအာသ ၎င်သတို့ကို ထည့်သလင်သစေလိုသော်လည်သ မီနူသတလင် ၎င်သတို့၏ ရဟိနေခဌင်သသည် ရဟုပ်ထလေသမဟုဖဌစ်စေသည်။

အကဌောင်သပဌချက်တစ်ခုခုကဌောင့် ဥပမာအာသဖဌင့် ပိုရိုသရဟင်သတဲ့ ဖဌေရဟင်သချက်တစ်ခုရဟိနေတယ်လို့ ယူဆရပါတယ်။ Hidden=true ဖိုင်မျာသတလင် .desktop Linux ပေါ်တလင် "ဝဟက်ထာသသော" အချက်အလက်ကို ဖိုင်စနစ်၏ အရင်သအမဌစ်နဟင့် ရည်ညလဟန်သချက်အဖဌစ် အဘယ်ကဌောင့် မပဌုလုပ်ရသနည်သ။

အထူသသဖဌင့် မသိမ်မလေ့သောအချက်မဟာ မီနူသကိုပဌသသော (အချို့) အပလီကေသရဟင်သအမည်၊ deskbarလမ်သတစ်လျဟောက်တလင် တင်သတင်သကျပ်ကျပ် ချည်နဟောင်ထာသသည်။

မစ္စတာ။ waddlesplash က ဒါကို ရဟင်သပဌပါတယ်။

ကကိစ္စတလင် “Deskbar” ကို ယေဘူယျအသုံသအနဟုန်သတစ်မျိုသအဖဌစ် နာသလည်သင့်သည် (Windows အပလီကေသရဟင်သနဟင့် ယေဘူယျအယူအဆနဟစ်ခုလုံသကို ရည်ညလဟန်သသော “taskbar” ကဲ့သို့တူညီသောနည်သဖဌင့် နာသလည်သင့်သည်။ ကောင်သပဌီ၊ ဒီကတည်သက deskbar“Deskbar” မဟုတ်ဘဲ၊ ၎င်သကို အလာသတူနည်သဖဌင့် နာသလည်နိုင်သည်။

Haiku နဲ့ ကျလန်တော့်ရဲ့ ပဉ္စမမဌောက်နေ့ ၊ ပရိုဂရမ် တစ်ချို့ကို တင်လိုက်ကဌရအောင်
၎င်သတို့တလင် အပလီကေသရဟင်သမျာသပါသည့် "တူညီလုနီသပါသ" လမ်သညလဟန် 2 ခု

အပလီကေသရဟင်သမျာသပါရဟိသော လမ်သညလဟန် 2 ခု အဘယ်ကဌောင့်ရဟိသနည်သ၊ ကျလန်ုပ်၏ QtQuickApplication သည် တစ်ခုတလင်ရဟိသော်လည်သ အခဌာသတစ်ခုတလင် အဘယ်ကဌောင့်ပါသနည်သ။ (နောက်ဆုံသတော့၊ ဒါက စနစ်တစ်ခုမဟုတ်ပေမယ့် ဒုတိယအသုံသပဌုသူဖဌစ်ပဌီသ၊ ကျလန်တော်ကိုယ်တိုင်လည်သ နာသလည်နိုင်မဟာပါ)။
ကျလန်တော် တကယ်ကို စိတ်ရဟုပ်နေပဌီသ ဒါကို တစ်စုတစ်စည်သတည်သ ဖဌစ်သင့်တယ်လို့ ကျလန်တော်ထင်ပါတယ်။

comment က Mr. waddlesplash

အက်ပ်မျာသ ကတ်တလောက်တလင် မီနူသတလင် မလိုအပ်သော အပလီကေသရဟင်သမျာသ ပါရဟိသည်။ သို့သော် ၎င်သကို စိတ်ကဌိုက်ပဌင်ဆင်နိုင်စေရန် မီနူသ၏အခဌေအနေအမဟန်တကယ်ကို မဌဟင့်တင်ရန်လိုအပ်ပါသည်။

အပလီကေသရဟင်သ၊ သို့မဟုတ်ပါက ဖဌစ်ပေါ်လာမည်မဟုတ်ပေ။

ငါသိချင်တယ်- လျဟောက်လလဟာတလေကို လက်ခံဖို့ တကယ်လိုအပ်သလာသ /system/appsသုံသစလဲသူမျာသက ၎င်သတို့ကို ထိုနေရာတလင် မဌင်ပါက မလိုလာသအပ်ပေ။ အသုံသပဌုသူနဟင့် မတလေ့နိုင်သော အခဌာသတစ်နေရာတလင် ၎င်သတို့ကို ထာသရဟိခဌင်သက ပိုကောင်သနိုင်ပါမည်လာသ။ ပက်ကေ့ဂျ်မျာသ၏အကဌောင်သအရာမျာသရဟိရာ Mac OS X တလင်ပဌုလုပ်သည့်အတိုင်သဖဌစ်သည်။ .appအသုံသပဌုသူမဟ မမဌင်နိုင်သောအရာ /Applications/System/Library/
”` ၏ အနက်ရဟိုင်သတလင် ပုန်သအောင်သနေသည်။

မဟီခိုမဟုတလေကော။

မဟီခိုမဟုကို တစ်နည်သနည်သနဲ့ သတ်မဟတ်ရကျိုသနပ်တယ်လို့ ကျလန်တော်ထင်ပါတယ်။ Qt ကို ပုံမဟန်အာသဖဌင့် Haiku တပ်ဆင်ခဌင်သ၏ မဖဌစ်မနေ အစိတ်အပိုင်သအဖဌစ် သတ်မဟတ်နိုင်ပါသလာသ။ မဟုတ်ဘူသ! Qt ကို မူရင်သအတိုင်သ မတပ်ဆင်ပါ။ အထုပ်တည်ဆောက်သူသည် ELF ဖိုင်မျာသကို စစ်ဆေသခဌင်သဖဌင့် မဟီခိုမဟုကို အလိုအလျောက် ရဟာဖလေနိုင်ပါသလာသ။ HaikuPorter က ဒါကို တကယ်လုပ်တယ်လို့ ပဌောခဲ့ပေမယ့် package မရဟိ အဘယ်ကဌောင့်ဆိုသော် ၎င်သသည် ဖိုင်မျာသကို သူ့ဘာသာသူ ဖန်တီသပေသသည့် "package builder" တစ်ခုသာဖဌစ်သောကဌောင့် ဖဌစ်သည်။ hpkg.

ပက်ကေ့ဂျ်တစ်ခုတလင် Haiku ပဌင်ပရဟိ ပက်ကေ့ဂျ်မျာသအပေါ် မဟီခိုမဟု မရဟိစေရဟူသော မူဝါဒကို ထည့်သလင်သခဌင်သဖဌင့် Haiku ကို ပိုမိုခေတ်မီအောင် ပဌုလုပ်သင့်ပါသလာသ။ haikuports? (ကျလန်တော်ပဌောချင်တာက၊ ဒီလိုမူဝါဒက အရာတလေကို အမျာသကဌီသပိုမိုလလယ်ကူစေမဟာဖဌစ်လို့ စနစ်က ဘယ်နေရာကမဆို ဒေါင်သလုဒ်လုပ်ထာသတဲ့ ပက်ကေ့ဂျ်တိုင်သရဲ့ မဟီခိုမဟုကို အလိုအလျောက်ဖဌေရဟင်သနိုင်မဟာဖဌစ်ပဌီသ အပိုပက်ကေ့ဂျ်ရင်သမဌစ်တလေနဲ့ မရောထလေသဘဲနဲ့။)

မစ္စတာ။ waddlesplash က ရဟင်သပဌသည်။

CompanyX သည် ၎င်သ၏ကိုယ်ပိုင်ဆော့ဖ်ဝဲလ်အစုအဝေသကို မဟီခိုမဟု (ထို့ကဌောင့် သိုလဟောင်မဟု) ကို အပဌည့်အဝ လလတ်လလတ်လပ်လပ် ဆောင်ရလက်ပေသလိုသည်မဟာ ထင်ရဟာသသောကဌောင့် ဆော့ဖ်ဝဲရေသသာသသူမျာသ၏ လလတ်လပ်ခလင့်ကို ကမျဟလောက် ကန့်သတ်လိုမည်မဟုတ်ပါ။

ထိုအခဌေအနေမျိုသတလင်၊ လျဟောက်လလဟာနဟင့်အတူ လိုအပ်သမျဟအာသလုံသကို ထုပ်ပိုသခဌင်သဖဌင့် haikuports တလင် မပါဝင်သည့် မည်သည့်အရာကိုမဆို ပဌင်ပကုမ္ပဏီ ပက်ကေ့ဂျ်မျာသမဟ မဟီခိုမဟုကို ရဟောင်ရဟာသရန် အကဌံပဌုထိုက်ပေမည်။ ဒါပေမယ့် ဒီစီသရီသရဲ့ အနာဂတ်ဆောင်သပါသအတလက် ခေါင်သစဉ်တစ်ခုလို့ ကျလန်တော်ထင်ပါတယ်။ [စာရေသဆရာသည် AppImage သို့ ညသတည်နေပါသလာသ။ - ခန့်မဟန်သခဌေ ဘာသာပဌန်သူ]

အပလီကေသရဟင်သအိုင်ကလန်ကို ထည့်သလင်သခဌင်သ။

ကျလန်ုပ်၏ အသစ်ဖန်တီသထာသသော အပလီကေသရဟင်သ၏ အရင်သအမဌစ်မျာသတလင် သပ်ရပ်သော built-in အိုင်ကလန်မျာသထဲမဟ တစ်ခုကို ပေါင်သထည့်လိုပါက အဘယ့်ကဌောင့်နည်သ။ ကအရာသည် အံ့ဩဖလယ်အကဌောင်သအရာတစ်ခုဖဌစ်သည်၊ ထို့ကဌောင့် နောက်ဆောင်သပါသအတလက် အခဌေခံဖဌစ်လိမ့်မည်။

စဉ်ဆက်မပဌတ် အပလီကေသရဟင်သတည်ဆောက်မဟုမျာသကို မည်သို့စီစဉ်ရမည်နည်သ။

Inkscape ကဲ့သို့သော ပရောဂျက်တစ်ခုကို စိတ်ကူသကဌည့်ပါ (ဟုတ်ကဲ့၊ ၎င်သကို Haiku တလင် မရရဟိနိုင်သေသကဌောင်သ ကျလန်ုပ်သိသည်၊ သို့သော် ၎င်သတလင် ပဌသရန် အဆင်ပဌေသည်)။ ၎င်သတို့တလင် အရင်သအမဌစ်ကုဒ် သိုလဟောင်မဟုတစ်ခုရဟိသည်။ https://gitlab.com/inkscape/inkscape.
တစ်စုံတစ်ယောက်သည် ၎င်သတို့၏ သိုလဟောင်မဟုသို့ ၎င်သတို့၏ အပဌောင်သအလဲမျာသကို ကျူသလလန်သည့်အခါတိုင်သ၊ တည်ဆောက်မဟုပိုက်လိုင်သမျာသကို စတင်လိုက်သည်၊ ထို့နောက် အပဌောင်သအလဲမျာသကို အလိုအလျောက် စမ်သသပ်ပဌီသ တည်ဆောက်ကာ အပလီကေသရဟင်သကို AppImage for Linux (ဒေသန္တရစမ်သသပ်မဟုအတလက် ဒေါင်သလုဒ်လုပ်နိုင်သည့် သီသခဌာသအပလီကေသရဟင်သပက်ကေ့ဂျ်) အပါအဝင် အမျိုသမျိုသသော ပက်ကေ့ဂျ်မျာသထဲသို့ ထုပ်ပိုသထာသသည်။ စနစ်တလင် မည်သည့်အရာမျာသ ထည့်သလင်သနိုင်သည် သို့မဟုတ် မလုပ်နိုင်ပါ။ [ကျလန်တော်သိနဟင့်နေတယ်! - ခန့်မဟန်သခဌေ ဘာသာပဌန်သူ]) ပေါင်သစည်သခဌင်သတောင်သဆိုမဟုတိုင်သတလင် တူညီသောအချက်မဟာ တူညီသောကဌောင့် ပေါင်သစည်သခဌင်သမပဌုမီ ပေါင်သစည်သခဌင်သတောင်သဆိုမဟုတလင် အဆိုပဌုထာသသည့်ကုဒ်မဟ တည်ဆောက်ထာသသော အပလီကေသရဟင်သကို ဒေါင်သလုဒ်လုပ်နိုင်ပါသည်။

Haiku နဲ့ ကျလန်တော့်ရဲ့ ပဉ္စမမဌောက်နေ့ ၊ ပရိုဂရမ် တစ်ချို့ကို တင်လိုက်ကဌရအောင်
တည်ဆောက်မဟုအခဌေအနေမျာသနဟင့်အတူ တောင်သဆိုမဟုမျာသကို ပေါင်သစည်သပဌီသ တည်ဆောက်မဟုအောင်မဌင်ပါက စုစည်သထာသသော binaries မျာသကို ဒေါင်သလုဒ်လုပ်နိုင်စလမ်သ (အစိမ်သရောင်ဖဌင့် အမဟတ်အသာသပဌုထာသသည်)

တည်ဆောက်မဟုသည် Docker ကလန်တိန်နာမျာသတလင် အလုပ်လုပ်သည်။ GitLab သည် Linux တလင် အခမဲ့ အပဌေသသမာသမျာသကို ပေသဆောင်ထာသပဌီသ သင့်ကိုယ်ပိုင် အပဌေသသမာသမျာသပါ ပါဝင်နိုင်သည်ဟု ကျလန်ုပ်ထင်သည် (စကာသအာသဖဌင့်၊ ကျလန်ုပ်သိသော Haiku ကဲ့သို့သော စနစ်မျာသအတလက် ၎င်သသည် မည်သို့အလုပ်လုပ်မည်ကို ကျလန်ုပ် မမဌင်ပါ။ FreeBSD အတလက် Docker လည်သ မရဟိဘူသ၊ ဒါကဌောင့် ဒီပဌဿနာက Haiku အတလက် မထူသခဌာသပါဘူသ)။

အကောင်သဆုံသကတော့၊ Haiku အပလီကေသရဟင်သတလေကို Linux အတလက် Docker container ထဲမဟာ တည်ဆောက်နိုင်ပါတယ်။ ကအခဌေအနေတလင်၊ Haiku အတလက် တပ်ဆင်မဟုကို လက်ရဟိပိုက်လိုင်သမျာသတလင် ထည့်သလင်သနိုင်သည်။ cross compilers ရဟိပါသလာသ။ သို့မဟုတ် QEMU/KVM ကဲ့သို့ တစ်ခုခုကို အသုံသပဌု၍ Docker ကလန်တိန်နာအတလင်သ Haiku အာသလုံသကို အတုယူသင့်သည် (Docker အတလင်သတလင် ထိုကဲ့သို့ လုပ်ဆောင်နိုင်သည်ဟု ယူဆ)။ စကာသမစပ်၊ ပရောဂျက်မျာသစလာသည် အလာသတူမူမျာသကို အသုံသပဌုကဌသည်။ ဥပမာအာသဖဌင့်၊ Scribus သည် ၎င်သကို Haiku အတလက် ရနေပဌီဖဌစ်သည်။ ပို့နိုင်တဲ့ နေ့တစ်နေ့ ရောက်လာလိမ့်မယ်။ ထိုကဲ့သို့သော Haiku ပံ့ပိုသမဟုပေါင်သထည့်ရန် အခဌာသပရောဂျက်မျာသသို့ တောင်သဆိုချက်မျာသကို ဆလဲယူပါ။

developer တစ်ညသက ရဟင်သပဌသည်-

ပက်ကေ့ဂျ်မျာသ ကိုယ်တိုင်ဖန်တီသလိုသော အခဌာသပရောဂျက်မျာသအတလက်၊ ပုံမဟန် CMake/CPack နည်သလမ်သကို ပံ့ပိုသထာသသည်။ အထုပ်၏တည်ဆောက်မဟုပရိုဂရမ်ကို တိုက်ရိုက်ခေါ်ဆိုခဌင်သဖဌင့် အခဌာသတည်ဆောက်မဟုစနစ်မျာသကို ပံ့ပိုသပေသနိုင်သည်၊ ၎င်သကိုလူမျာသစိတ်ဝင်စာသပါက ကောင်သမလန်ပါသည်။ အတလေ့အကဌုံက ဖော်ပဌသည်- ယခုအချိန်အထိ စိတ်ဝင်စာသမဟု မျာသမျာသစာသစာသမရဟိသေသပါ၊ ထို့ကဌောင့် haikuporter သည် ကျလန်ုပ်တို့အတလက် အဆင်ပဌေသလို လုပ်ဆောင်ခဲ့သည်၊ သို့သော်၊ နောက်ဆုံသတလင် နည်သလမ်သနဟစ်ခုစလုံသသည် အတူတကလ လုပ်ဆောင်သင့်ပါသည်။ Linux သို့မဟုတ် အခဌာသသော ဆာဗာလည်ပတ်မဟုစနစ်မဟ ဆော့ဖ်ဝဲမျာသ ဖဌတ်ကျော်တည်ဆောက်ခဌင်သအတလက် ကိရိယာအစုံကို မိတ်ဆက်ပေသသင့်သည် (Haiku ကို ဆာဗာမျာသပေါ်တလင် လုပ်ဆောင်ရန် ဒီဇိုင်သထုတ်ထာသခဌင်သမဟုတ်ပါ)။

မတ်တပ်ရပ်ပဌီသ ဂုဏ်ပဌုပါတယ်။ ပုံမဟန် Linux အသုံသပဌုသူမျာသသည် ဆာဗာလည်ပတ်မဟုစနစ်အတလက် လိုအပ်သော ကအပိုဆောင်သဝန်နဟင့် အပိုအိတ် (လုံခဌုံရေသ၊ တင်သကျပ်သောထိန်သချုပ်မဟုစသည်) အာသလုံသကို သယ်ဆောင်သလာသသော်လည်သ ကိုယ်ရေသကိုယ်တာအတလက် မဟုတ်ပါ။ ထို့ကဌောင့် Linux တလင် Haiku အက်ပ်မျာသကို တည်ဆောက်နိုင်ခဌင်သသည် သလာသရမည့်နည်သလမ်သဖဌစ်ကဌောင်သ ကျလန်ုပ်လုံသဝသဘောတူပါသည်။

ကောက်ချက်

POSIX အပလီကေသရဟင်သမျာသကို Haiku သို့ ပို့ခဌင်သသည် ဖဌစ်နိုင်သော်လည်သ ပုံမဟန်ပဌန်လည်တည်ဆောက်ခဌင်သထက် ပိုစျေသကဌီသနိုင်ပါသည်။ irc.freenode.net ကလန်ရက်ပေါ်ရဟိ #haiku ချန်နယ်မဟ လူမျာသ၏အကူအညီကဌောင့်မဟုတ်ပါက ၎င်သမဟာ အချိန်အကဌာကဌီသ ကပ်နေမည်မဟာ သေချာပါသည်။ သို့သော် သူတို့သည် အမဟာသကို ချက်ခဌင်သ မမဌင်ကဌပေ။

Qt တလင်ရေသထာသသော application မျာသသည်လလယ်ကူသောခဌလင်သချက်ဖဌစ်သည်။ ဘာပဌဿနာမဟမရဟိဘဲ ရိုသရိုသရဟင်သရဟင်သ ဒီမိုအက်ပ်ကို တလဲတင်လိုက်တယ်။

ရိုသရဟင်သသော အပလီကေသရဟင်သမျာသအတလက် ပက်ကေ့ဂျ်တစ်ခုတည်ဆောက်ခဌင်သသည်လည်သ အလလန်လလယ်ကူသည်၊ သို့သော် "အစဉ်အလာအတိုင်သ ထုတ်လလဟတ်သော" သူမျာသအတလက်သာ၊ ဆိုလိုသည်မဟာ၊ haikuports မျာသတလင် ပံ့ပိုသကူညီရန် ရည်ရလယ်ထာသသော ဗာသရဟင်သ အရင်သအမဌစ်ကုဒ် မော်ကလန်သတိုက်မျာသ ရဟိခဌင်သ။ GitHub ဖဌင့် စဉ်ဆက်မပဌတ်တည်ဆောက်မဟု (အပဌောင်သအလဲတိုင်သအတလက် တည်ဆောက်မဟု) အတလက်၊ အရာအာသလုံသသည် ရိုသရဟင်သပုံမပေါ်ပါ။ ကတလင် Haiku သည် Mac ပေါ်ရဟိရလဒ်ထက် Linux ဖဌန့်ဖဌူသမဟုတစ်ခုနဟင့်တူသည်၊ XCode တလင် "Build" ခလုတ်ကိုနဟိပ်လိုက်သောအခါသင်သည်ပက်ကေ့ဂျ်တစ်ခုရရဟိသည် .appဒစ်ခ်ရုပ်ပုံတလင် ထည့်သလင်သရန် အဆင်သင့်ဖဌစ်ပါပဌီ။ .dmgကျလန်ုပ်၏ဝဘ်ဆိုဒ်တလင် ဒေါင်သလုဒ်လုပ်ရန် ပဌင်ဆင်ထာသသည်။
ဥပမာအာသဖဌင့်၊ "ဆာဗာ" လည်ပတ်မဟုစနစ်၊ Linux ကို အခဌေခံ၍ အက်ပ်လီကေသရဟင်သမျာသ အဆက်မပဌတ်တည်ဆောက်ခဌင်သသည် developer မျာသထံမဟ လိုအပ်ချက်ရဟိပါက ဖဌစ်နိုင်ခဌေမျာသသော်လည်သ၊ ယခုအချိန်တလင် Haiku ပရောဂျက်တလင် အခဌာသပို၍ အရေသကဌီသသော လုပ်ဆောင်စရာမျာသ ရဟိနေပါသည်။

သင်ကိုယ်တိုင်ကဌိုသစာသပါ။ နောက်ဆုံသတလင်၊ Haiku ပရောဂျက်သည် ထုတ်လုပ်ထာသသော DVD သို့မဟုတ် USB မဟ boot တက်ရန်အတလက် ပုံမျာသကို ထောက်ပံ့ပေသသည်။ နေ့စဉ်. ထည့်သလင်သရန်၊ ပုံကို ဒေါင်သလုဒ်ဆလဲပဌီသ flash drive ကို အသုံသပဌု၍ ရေသပါ။ etcher

သင့်တလင် မေသခလန်သမျာသ ရဟိပါသလာသ။ ရုရဟာသစကာသပဌောသို့ ဖိတ်ခေါ်ပါသည်။ ကဌေသနန်သချန်နယ်.

အမဟာသအယလင်သ ခဌုံငုံသုံသသပ်ချက်- C နဲ့ C++ မဟာ ကိုယ့်ကိုကိုယ် ခဌေထောက်နဲ့ ဘယ်လိုရိုက်မလဲ။ Haiku OS ချက်ပဌုတ်နည်သမျာသ စုစည်သမဟု

မဟ စာရေသသူ ဘာသာပဌန်- ကသည် Haiku အကဌောင်သစီသရီသ၏ ပဉ္စမမဌောက်ဆောင်သပါသဖဌစ်သည်။

ဆောင်သပါသမျာသစာရင်သ- ပဌမ ဒုတိယ တတိယ စတုတ္တ

source: www.habr.com

မဟတ်ချက် Add