เชนเชพเชˆเช•เซ เชธเชพเชฅเซ‡ เชฎเชพเชฐเซ‹ เชชเชพเช‚เชšเชฎเซ‹ เชฆเชฟเชตเชธ: เชšเชพเชฒเซ‹ เช•เซ‡เชŸเชฒเชพเช• เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชชเซ‹เชฐเซเชŸ เช•เชฐเซ€เช

เชนเชพเชˆเช•เซ เชธเชพเชฅเซ‡ เชฎเชพเชฐเซ‹ เชชเชพเช‚เชšเชฎเซ‹ เชฆเชฟเชตเชธ: เชšเชพเชฒเซ‹ เช•เซ‡เชŸเชฒเชพเช• เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชชเซ‹เชฐเซเชŸ เช•เชฐเซ€เช

TL; DR: เชเช• เชจเชตเชœเชพเชคเซ‡ เชชเชนเซ‡เชฒเซ€เชตเชพเชฐ เชนเชพเช‡เช•เซ เชœเซ‹เชฏเซเช‚, เชœเซ‡ Linux เชตเชฟเชถเซเชตเชฎเชพเช‚เชฅเซ€ เช•เซ‡เชŸเชฒเชพเช• เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซเชธเชจเซ‡ เชชเซ‹เชฐเซเชŸ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€ เชฐเชนเซเชฏเซ‹ เชนเชคเซ‹.

เชนเชพเชˆเช•เซ เชธเชพเชฅเซ‡ เชฎเชพเชฐเซ‹ เชชเชพเช‚เชšเชฎเซ‹ เชฆเชฟเชตเชธ: เชšเชพเชฒเซ‹ เช•เซ‡เชŸเชฒเชพเช• เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชชเซ‹เชฐเซเชŸ เช•เชฐเซ€เช
เชฎเชพเชฐเซ‹ เชชเซเชฐเชฅเชฎ เชนเชพเชˆเช•เซ เชชเซ‹เชฐเซเชŸเซ‡เชก เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ, เชคเซ‡เชจเชพ hpkg เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฎเชพเช‚ เชชเซ‡เช•เซ‡เชœ เชฅเชฏเซ‡เชฒ เช›เซ‡

เชคเชพเชœเซ‡เชคเชฐเชฎเชพเช‚ เชฎเซ‡เช‚ เชนเชพเชˆเช•เซ เชถเซ‹เชงเซเชฏเซเช‚, เชชเซ€เชธเซ€ เชฎเชพเชŸเซ‡ เช†เชถเซเชšเชฐเซเชฏเชœเชจเช• เชฐเซ€เชคเซ‡ เชธเชพเชฐเซ€ เช“เชชเชฐเซ‡เชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎ.
เช†เชœเซ‡ เชนเซเช‚ เชถเซ€เช–เซ€เชถ เช•เซ‡ เช† เช“เชชเชฐเซ‡เชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚ เชจเชตเชพ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซเชธ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเซ‹เชฐเซเชŸ เช•เชฐเชตเชพ. เชฎเซเช–เซเชฏ เชงเซเชฏเชพเชจ เช Linux เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเชจเชพ เชฆเซƒเชทเซเชŸเชฟเช•เซ‹เชฃเชฅเซ€ เชนเชพเชˆเช•เซ เชชเชฐ เชธเซเชตเชฟเชš เช•เชฐเชตเชพเชจเชพ เชชเซเชฐเชฅเชฎ เช…เชจเซเชญเชตเชจเซเช‚ เชตเชฐเซเชฃเชจ เช›เซ‡. เชฐเชธเซเชคเชพเชฎเชพเช‚ เชฎเซ‡เช‚ เช•เชฐเซ‡เชฒเซ€ เช•เซ‹เชˆเชชเชฃ เชฎเซ‚เชฐเซเช– เชญเซ‚เชฒเซ‹ เชฎเชพเชŸเซ‡ เชนเซเช‚ เช•เซเชทเชฎเชพ เชšเชพเชนเซเช‚ เช›เซเช‚, เช•เชพเชฐเชฃ เช•เซ‡ เชฎเซ‡เช‚ เชชเชนเซ‡เชฒเซ€เชตเชพเชฐ เชนเชพเชˆเช•เซ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซเชฏเชพเชจเซ‡ เชเช• เช…เช เชตเชพเชกเชฟเชฏเซเช‚ เชชเชฃ เชจเชฅเซ€ เชฅเชฏเซเช‚.

เชนเซเช‚ เชคเซเชฐเชฃ เชฒเช•เซเชทเซเชฏเซ‹ เชนเชพเช‚เชธเชฒ เช•เชฐเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚:

  • เชเช• เชธเชฐเชณ CLI เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชชเซ‹เชฐเซเชŸ เช•เชฐเซ‹
  • GUI เชฅเซ€ Qt เชฎเชพเช‚ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชชเซ‹เชฐเซเชŸ เช•เชฐเซ‹
  • เชชเช›เซ€ เชคเซ‡เชฎเชจเซ‡ hpkg เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฎเชพเช‚ เชชเซ…เช•เซ‡เชœ เช•เชฐเซ‹ (เช•เชพเชฐเชฃ เช•เซ‡ เชนเซเช‚ เชนเชœเซ€ เชชเชฃ AppDir เช…เชจเซ‡ AppImageเชจเซ‡ เชนเชพเชˆเช•เซ เชฎเชพเชŸเซ‡ เช…เชจเซเช•เซ‚เชฒเชฟเชค เช•เชฐเชตเชพเชจเซเช‚ เชตเชฟเชšเชพเชฐเซ€ เชฐเชนเซเชฏเซ‹ เช›เซเช‚...)

เชšเชพเชฒเซ‹, เชถเชฐเซ เช•เชฐเซ€เช. เชตเชฟเชญเชพเช—เซ‹เชฎเชพเช‚ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ ะธ เชตเชฟเช•เชพเชธเชคเซ‡เชฎเชœ เชตเชฟเช•เซ€ เชนเชพเชˆเช•เซเชชเซ‹เชฐเซเชŸเซเชธเชฎเชพเช‚เชฅเซ€ เชฎเชจเซ‡ เชธเชพเชšเซ€ เชฆเชฟเชถเชพ เชฎเชณเซ€. เช“เชจเชฒเชพเชˆเชจ เชชเซ€เชกเซ€เชเชซ เชฌเซเช• เชชเชฃ เช›เซ‡ BeOS: เชฏเซเชจเชฟเช•เซเชธ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซเช‚ เชชเซ‹เชฐเซเชŸเซ€เช‚เช—.
467 เชชเซƒเชทเซเช  - เช…เชจเซ‡ เช† 1997 เชฅเซ€ เช›เซ‡! เช…เช‚เชฆเชฐ เชœเซ‹เชตเซเช‚ เชกเชฐเชพเชฎเชฃเซเช‚ เช›เซ‡, เชชเชฐเช‚เชคเซ เชนเซเช‚ เชถเซเชฐเซ‡เชทเซเช เชจเซ€ เช†เชถเชพ เชฐเชพเช–เซเช‚ เช›เซเช‚. เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเชจเชพ เชถเชฌเซเชฆเซ‹ เชชเซเชฐเซ‹เชคเซเชธเชพเชนเช• เช›เซ‡: "เชคเซ‡เชฎเชพเช‚ เช˜เชฃเซ‹ เชธเชฎเชฏ เชฒเชพเช—เซเชฏเซ‹ เช•เชพเชฐเชฃ เช•เซ‡ BeOS POSIX-เชธเซเชธเช‚เช—เชค เชจ เชนเชคเซเช‚," เชชเชฐเช‚เชคเซ เชนเชพเชˆเช•เซ "เชฎเซ‹เชŸเชพเชญเชพเช—เซ‡" เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชเชตเซเช‚ เช›เซ‡.

เชเช• เชธเชฐเชณ CLI เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชชเซ‹เชฐเซเชŸเซ€เช‚เช—

เชชเซเชฐเชฅเชฎ เชตเชฟเชšเชพเชฐ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‡ เชชเซ‹เชฐเซเชŸ เช•เชฐเชตเชพเชจเซ‹ เชนเชคเซ‹ avrdude, เชชเชฐเช‚เชคเซ, เชœเซ‡เชฎ เชคเซ‡ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚ เช›เซ‡, เช† เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช›เซ‡ เช•เชฐเซเชฏเซเช‚ เช›เซ‡ เช˜เชฃเชพเช‚ เชธเชฎเชฏ เชชเชนเซ‡เชฒเชพ.

เชชเซเชฐเชฅเชฎ เชชเซเชฐเชฏเชพเชธ: เชœเซ‹เชตเชพ เชฎเชพเชŸเซ‡ เช•เช‚เชˆ เชจเชฅเซ€

เชนเซเช‚ เชœเซ‡ เชธเชฎเชœเซ€ เชถเช•เชคเซ‹ เชจเชฅเซ€ เชคเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช›เซ‡ เชเชชเซเชธเชจเซ‡ 10 เชตเชฐเซเชทเชฅเซ€ เชนเชพเชˆเช•เซเชฎเชพเช‚ เชชเซ‹เชฐเซเชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡ - เช เชนเช•เซ€เช•เชค เชนเซ‹เชตเชพ เช›เชคเชพเช‚ เช•เซ‡ เช“เชเชธ เชชเซ‹เชคเซ‡ เชนเชœเซ€ เชธเซเชงเซ€ 1.0 เชธเช‚เชธเซเช•เชฐเชฃ เชจเชฅเซ€.

เชฌเซ€เชœเซ‹ เชชเซเชฐเชฏเชพเชธ: เชซเชฐเซ€เชฅเซ€ เชฒเช–เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡

เชคเซ‡เชฅเซ€ เชนเซเช‚ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชถ ptouch-770, เชญเชพเชˆ P-Touch 770 เชชเซเชฐเชฟเชจเซเชŸเชฐเชจเซ‡ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ CLI เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชนเซเช‚ เชฒเซ‡เชฌเชฒเซเชธ เช›เชพเชชเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเซเช‚ เช›เซเช‚.
เชนเซเช‚ เชคเซ‡เชจเชพ เชชเชฐ เชตเชฟเชตเชฟเชง เชฒเซ‡เชฌเชฒเซเชธ เช›เชพเชชเซเช‚ เช›เซเช‚, เช…เชจเซ‡ เชคเชฎเซ‡ เชคเซ‡ เช…เช—เชพเช‰เชจเชพ เชฒเซ‡เช–เชฎเชพเช‚ เชœเซ‹เชฏเซเช‚ เชนเชถเซ‡. เชฅเซ‹เชกเชพ เชธเชฎเชฏ เชชเชนเซ‡เชฒเชพ, เชฎเซ‡เช‚ เชชเชพเชฏเชฅเซ‹เชจเชฎเชพเช‚ เชเช• เชจเชพเชจเซ‹ GUI เชฐเซ‡เชชเชฐ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชฒเช–เซเชฏเซ‹ เชนเชคเซ‹ (เชคเซ‡ Gtk+ เชฎเชพเช‚ เชนเซ‹เชตเชพเชฅเซ€, เชคเซ‡เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชฒเช–เชตเซเช‚ เชชเชกเชถเซ‡, เช…เชจเซ‡ เช† เชถเซ€เช–เชตเชพเชจเซเช‚ เชเช• เชธเชพเชฐเซเช‚ เช•เชพเชฐเชฃ เช›เซ‡).

เชนเชพเชˆเช•เซ เชธเชพเชฅเซ‡ เชฎเชพเชฐเซ‹ เชชเชพเช‚เชšเชฎเซ‹ เชฆเชฟเชตเชธ: เชšเชพเชฒเซ‹ เช•เซ‡เชŸเชฒเชพเช• เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชชเซ‹เชฐเซเชŸ เช•เชฐเซ€เช
เชญเชพเชˆ เชชเซ€-เชŸเชš 770 เชฒเซ‡เชฌเชฒ เชชเซเชฐเชฟเชจเซเชŸเชฐ. เชถเซเช‚ เชคเซ‡ เชนเชพเชˆเช•เซ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชถเซ‡?

เชนเชพเชˆเช•เซ เชชเซ‡เช•เซ‡เชœ เชฎเซ‡เชจเซ‡เชœเชฐ เชฒเชพเชˆเชฌเซเชฐเซ‡เชฐเซ€เช“ เช…เชจเซ‡ เช†เชฆเซ‡เชถเซ‹ เชตเชฟเชถเซ‡ เชœเชพเชฃเซ‡ เช›เซ‡, เชคเซ‡เชฅเซ€ เชœเซ‹ เชฎเชจเซ‡ เชšเชพเชฒเชคเซ€ เชตเช–เชคเซ‡ "libintl เชถเซ‹เชงเซ€ เชถเช•เชคเชพ เชจเชฅเซ€" เชธเช‚เชฆเซ‡เชถ เชฎเชณเซ‡ เช›เซ‡ 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-เช†เชงเชพเชฐเชฟเชค เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชฅเซ€ เชนเชพเช‡เช•เซ เชฎเชพเชŸเซ‡ เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เชจเชฅเซ€. เชœเซ‡เชจเซ‹ เช…เชฐเซเชฅ เช›เซ‡ เช•เซ‡ เชนเซเช‚ เช•เชฎเซเชชเชพเชˆเชฒ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€ เชฐเชนเซเชฏเซ‹ เช›เซเช‚ เชคเซ‡ เชธเซเชฐเซ‹เชค เช•เซ‹เชกเชจเซ‡ เชฎเชพเชฐเซ‡ เชธเช‚เชชเชพเชฆเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.
เช…เชฐเซ‡, เชคเชฎเซ‡ เชคเชฎเชพเชฐเชพ เชฎเชพเชฅเชพ เชชเชฐ เช•เซ‚เชฆเซ€ เชถเช•เชคเชพ เชจเชฅเซ€, เช…เชจเซ‡ เชฎเชจเซ‡ เช•เซเชฏเชพเช‚เชฅเซ€ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชคเซ‡ เชชเชฃ เช–เชฌเชฐ เชจเชฅเซ€.

เชคเซเชฐเซ€เชœเซ‹ เชชเซเชฐเชฏเชพเชธ

เชคเซ‡ เชนเซ‹เชฏ เชธเชฐเชธ เชฐเชนเซ‡เชถเซ‡ tmate เชนเชพเชˆเช•เซ เชฎเชพเชŸเซ‡, เชคเซ‹ เชชเช›เซ€ เชนเซเช‚ เชนเชพเชˆเช•เซ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“เชจเซ‡ เชฎเชพเชฐเชพ เชŸเชฐเซเชฎเชฟเชจเชฒ เชธเชคเซเชฐ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชตเชพ เชฎเชพเชŸเซ‡ เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเซ€เชถ - เชœเซ‹ เช•เช‚เชˆเช• เช–เซ‹เชŸเซเช‚ เชฅเชพเชฏ. เชธเซ‚เชšเชจเชพเช“ เชเช•เชฆเชฎ เชธเชฐเชณ เช›เซ‡:

./autogen.sh
./configure
make
make install

เชธเชพเชฐเซเช‚ เชฒเชพเช—เซ‡ เช›เซ‡, เชคเซ‹ เชถเชพ เชฎเชพเชŸเซ‡ เชคเซ‡เชจเซ‡ เชนเชพเชˆเช•เซ เชชเชฐ เช…เชœเชฎเชพเชตเชถเซ‹ เชจเชนเซ€เช‚?

/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

เชซเชฐเซ€เชฅเซ€ เชนเซเช‚ เชนเชพเชˆเช•เซ เชกเซ‡เชชเซ‹เชฎเชพเช‚ เช—เชฏเซ‹, เช…เชจเซ‡, เช…เชฒเชฌเชคเซเชค, เชฎเชณเซเชฏเซ‹ 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

เช† เชชเช—เชฒเชพ เชชเชฐ, เชฎเชจเซ‡ เชธเชฎเชœเชพเชฏเซเช‚ เช•เซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชจเซ‡ เชนเชพเชˆเช•เซเชฎเชพเช‚ เชชเซ‹เชฐเซเชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเชฐเชณ เชชเซเชจเชƒเชจเชฟเชฐเซเชฎเชพเชฃ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€ เช•เชฐเชคเชพเช‚ เชตเชงเซ เชœเซเชžเชพเชจเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.
เชฎเซ‡เช‚ เชฎเซˆเชคเซเชฐเซ€เชชเซ‚เชฐเซเชฃ เชนเชพเชˆเช•เซ เชกเซ‡เชตเชฒเชชเชฐเซเชธ เชธเชพเชฅเซ‡ เชตเชพเชค เช•เชฐเซ€, เชคเซ‡ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚ เช•เซ‡ msgpackเชฎเชพเช‚ เชฌเช— เช›เซ‡, เช…เชจเซ‡ เชฅเซ‹เชกเซ€เชตเชพเชฐ เชชเช›เซ€ เชฎเชจเซ‡ เชนเชพเชˆเช•เซเชชเซ‹เชฐเซเชŸเซเชธเชฎเชพเช‚ เชชเซ‡เชš เชฆเซ‡เช–เชพเชฏ เช›เซ‡. เชนเซเช‚ เชฎเชพเชฐเซ€ เชชเซ‹เชคเชพเชจเซ€ เช†เช‚เช–เซ‹เชฅเซ€ เชœเซ‹เชˆ เชถเช•เซเช‚ เช›เซเช‚ เช•เซ‡ เชชเซ‡เช•เซ‡เชœ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชธเซเชงเชพเชฐเซ‡เชฒ เช›เซ‡ เช…เชนเซ€เช‚ เชœเชตเซเช‚ (เชฌเชฟเชฒเซเชกเชธเซเชฒเซ‡เชต - เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเซ‹).

เชนเชพเชˆเช•เซ เชธเชพเชฅเซ‡ เชฎเชพเชฐเซ‹ เชชเชพเช‚เชšเชฎเซ‹ เชฆเชฟเชตเชธ: เชšเชพเชฒเซ‹ เช•เซ‡เชŸเชฒเชพเช• เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชชเซ‹เชฐเซเชŸ เช•เชฐเซ€เช
เชฌเชฟเชฒเซเชกเชฎเชพเชธเซเชŸเชฐ เชชเชฐ เชธเซเชงเชพเชฐเซ‡เชฒ msgpack เชฌเชจเชพเชตเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช

เชตเชšเซเชšเซ‡เชจเชพ เชธเชฎเชฏเชฎเชพเช‚ เชนเซเช‚ เช…เชชเชธเซเชŸเซเชฐเซ€เชฎ เชชเชฐ เชชเซ‡เชš เชฎเซ‹เช•เชฒเซเช‚ เช›เซเช‚ msgpack เชฎเชพเช‚ เชนเชพเชˆเช•เซ เชธเชชเซ‹เชฐเซเชŸ เช‰เชฎเซ‡เชฐเชตเชพ เชฎเชพเชŸเซ‡.

เชชเชพเช‚เชš เชฎเชฟเชจเชฟเชŸ เชชเช›เซ€, เช…เชชเชกเซ‡เชŸเซ‡เชก msgpack เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชนเชพเชˆเช•เซเชฎเชพเช‚ เช‰เชชเชฒเชฌเซเชง เช›เซ‡:

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

เชคเซ‡เช“เช เชฎเชจเซ‡ เชธเชฎเชœเชพเชตเซเชฏเซเช‚ เช•เซ‡ เชฒเชฟเชฌเชจเซ‡เชŸเชตเชฐเซเช•เชฎเชพเช‚ เชนเชพเชˆเช•เซ เชชเชฐ เชฒเชฟเชฌเซเชฐเซ‡เชธเซ‹เชฒเซเชต เช‰เชชเชฐเชพเช‚เชค เชฌเซ€เชœเซเช‚ เช•เช‚เชˆเช• เช›เซ‡. เชฆเซ‡เช–เซ€เชคเซ€ เชฐเซ€เชคเซ‡ เช•เซ‹เชกเชจเซ‡ เชตเชงเซ เชธเช‚เชชเชพเชฆเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชตเชฟเชšเชพเชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡...

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 - เชชเซ‡เช•เซ‡เชœเซ‹ เชฌเชจเชพเชตเชตเชพเชจเซ€ เชจเชฟเชฎเซเชจ-เชธเซเชคเชฐเชจเซ€ เชฐเซ€เชค. "เชคเซ‡เชจเซ‡ เชฏเซ‹เช—เซเชฏ .hpkg เชชเซ‡เช•เซ‡เชœเชฎเชพเช‚ เชฌเชจเชพเชตเชตเซเช‚" เชตเชฟเชญเชพเช—เชฎเชพเช‚ เชตเชฐเซเชฃเชตเซเชฏเชพ เชฎเซเชœเชฌ, เชฎเซ‹เชŸเชพเชญเชพเช—เซ‡, PackageInfo เชคเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เชชเซ‚เชฐเชคเซ€ เช›เซ‡.
  • เชฎเชพเชฐเซ‡ เช•เช‚เชˆเช• เช•เชฐเชตเซเช‚ เช›เซ‡ เชœเซ‡เชฎ เช•เซ‡
  • เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ hpkg-เชธเชฐเซเชœเช• (เชคเซ‡ เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เช•เซเชฐเซ‡เชถ เชฅเชพเชฏ เช›เซ‡, เชญเซ‚เชฒเชจเซ€ เชœเชพเชฃ เช•เชฐเชตเซ€)

เชถเซเช‚ เช•เชฐเชตเซเช‚ เชคเซ‡ เชธเซเชชเชทเซเชŸ เชจเชฅเซ€. เชฎเชจเซ‡ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เชฎเชจเซ‡ เชนเซ‡เชฒเซ‹ เชตเชฐเซเชฒเซเชก เชถเซˆเชฒเซ€เชจเชพ เชถเชฟเช–เชพเช‰ เชฎเชพเชฃเชธเชจเซ€ เชฎเชพเชฐเซเช—เชฆเชฐเซเชถเชฟเช•เชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เช†เชฆเชฐเซเชถ เชฐเซ€เชคเซ‡ เชเช• เชตเชฟเชกเชฟเช“. เชนเชพเชˆเช•เซเชชเซ‹เชฐเซเชŸเชฐเชจเซ‹ เชชเชฃ เช…เชจเซเช•เซ‚เชณ เชชเชฐเชฟเชšเชฏ เชฎเชณเชตเซ‹ เชธเชฐเชธ เชฐเชนเซ‡เชถเซ‡, เชœเซ‡เชฎ เช•เซ‡ GNU เชนเซ‡เชฒเซ‹เชฎเชพเช‚ เชฅเชพเชฏ เช›เซ‡.

เชนเซเช‚ เชจเซ€เชšเซ‡เชจเซเช‚ เชตเชพเช‚เชšเซเช‚ เช›เซเช‚:

haikuporter เชนเชพเช‡เช•เซ เชฎเชพเชŸเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชชเซ‡เช•เซ‡เชœ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡เชจเซเช‚ เชเช• เชธเชพเชงเชจ เช›เซ‡. เชคเซ‡ เชฌเชงเชพ เชชเซ‡เช•เซ‡เชœเซ‹ เชฎเชพเชŸเซ‡ เช†เชงเชพเชฐ เชคเชฐเซ€เช•เซ‡ เชนเชพเชˆเช•เซเชชเซ‹เชฐเซเชŸเซเชธ เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡. เชนเชพเชˆเช•เซเชชเซ‹เชฐเซเชŸเชฐ เชฐเซ‡เชธเชฟเชชเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชชเซ‡เช•เซ‡เชœเซ‹ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชฅเชพเชฏ เช›เซ‡.

เชตเชงเซเชฎเชพเช‚, เชฎเชจเซ‡ เชœเชพเชฃเชตเชพ เชฎเชณเซเชฏเซเช‚ เช•เซ‡:

เชนเชพเชˆเช•เซเชชเซ‹เชฐเซเชŸ เชธเซเชŸเซ‹เชฐเซ‡เชœเชฎเชพเช‚ เชฐเซ‡เชธเชฟเชชเซ€ เชธเซเชŸเซ‹เชฐ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€. เชคเชฎเซ‡ เชฌเซ€เชœเซ€ เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€ เชฌเชจเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹, เชคเซ‡เชฎเชพเช‚ เชฐเซ‡เชธเชฟเชชเซ€ เชฎเซ‚เช•เซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เชชเช›เซ€ เชนเชพเชˆเช•เซเชชเซ‹เชฐเซเชŸเชฐเชจเซ‡ เชคเซ‡เชจเซ€ เชคเชฐเชซ เชจเชฟเชฐเซเชฆเซ‡เชถ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹.

เชฌเชธ เชฎเชจเซ‡ เชœเซ‡ เชœเซ‹เชˆเช เช›เซ‡ - เชœเซ‹ เชชเซ…เช•เซ‡เชœเชจเซ‡ เชธเชพเชฐเซเชตเชœเชจเชฟเช• เชฐเซ‚เชชเซ‡ เชฐเชฟเชฒเซ€เช เช•เชฐเชตเชพเชจเซ‹ เช•เซ‹เชˆ เชฐเชธเซเชคเซ‹ เชจเชฅเซ€ เชถเซ‹เชงเซ€ เชฐเชนเซเชฏเซ‹. เชชเชฐเช‚เชคเซ เช† เชฌเซ€เชœเซ€ เชชเซ‹เชธเซเชŸ เชฎเชพเชŸเซ‡เชจเซ‹ เชตเชฟเชทเชฏ เช›เซ‡.

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. เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€เชฎเชพเช‚ เชคเชฎเชพเชฎ เชชเซ‡เช•เซ‡เชœเซ‹ เชฎเชพเชŸเซ‡ เชจเชฟเชฐเซเชญเชฐเชคเชพเช“ เชšเช•เชพเชธเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชนเชพเชˆเช•เซเชชเซ‹เชฐเซเชŸเซเชธ, เชœเซ‡ เชฅเซ‹เชกเซ‹ เชธเชฎเชฏ เชฒเซ‡ เช›เซ‡. เชนเซเช‚ เชฅเซ‹เชกเซ€ เช•เซ‹เชซเซ€ เชฒเซ‡เชตเชพ เชœเชˆเชถ.

เชถเชพ เชฎเชพเชŸเซ‡ เชชเซƒเชฅเซเชตเซ€ เชชเชฐ เช† เชคเชชเชพเชธ เชฎเชพเชฐเชพ เชธเซเชฅเชพเชจเชฟเช• เชฎเชถเซ€เชจ เชชเชฐ เชฅเชตเซ€ เชœเซ‹เชˆเช, เช…เชจเซ‡ เชธเชฐเซเชตเชฐ เชชเชฐ เช•เซ‡เชจเซเชฆเซเชฐเชฟเชฏ เชฐเซ€เชคเซ‡ เชฆเชฐเซ‡เช• เชฎเชพเชŸเซ‡ เชเช•เชตเชพเชฐ เชจเชนเซ€เช‚?

เชฎเชฟเชธเซเชŸเชฐ เชฎเซเชœเชฌ. waddlesplash:

เช† เชฐเซ€เชคเซ‡ เชคเชฎเซ‡ เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€เชฎเชพเช‚ เช•เซ‹เชˆเชชเชฃ เชซเชพเช‡เชฒเชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชฒเช–เซ€ เชถเช•เซ‹ เช›เซ‹

~/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

เชคเซ‡ เชคเชพเชฐเชฃ เช†เชชเซ‡ เช›เซ‡ เช•เซ‡ เชคเชฎเชพเชฐเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‹ เชธเซเชฐเซ‹เชค เช•เซ‹เชก เชงเชฐเชพเชตเชคเซ€ เชจเชฟเชฏเชฎเชฟเชค เชฐเซ‡เชธเซ€เชชเซ€ เชซเชพเช‡เชฒ เชœเซ‡เชตเซ€ เช•เซ‹เชˆ เชตเชธเซเชคเซ เชจเชฅเซ€. เชคเชฎเชพเชฐเซ‡ เชคเซ‡เชจเซ‡ เชนเชพเชˆเช•เซเชชเซ‹เชฐเซเชŸ เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฎเชพเช‚ เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€เชฎเชพเช‚ เชฐเชพเช–เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

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

เช† เชนเช•เซ€เช•เชค เชเชธเซ‡เชฎเซเชฌเชฒเซ€เชจเซ‡ เชตเชงเซ เชฌเซ‹เชœเชพเชฐเซ‚เชช เชฌเชจเชพเชตเซ‡ เช›เซ‡. เชฎเชจเซ‡ เชคเซ‡ เช–เชพเชธ เช—เชฎเชคเซเช‚ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชฎเชจเซ‡ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เชคเซ‡ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡ เชœเซ‡เชฅเซ€ เช†เช–เชฐเซ‡ เชคเชฎเชพเชฎ เช“เชชเชจ เชธเซ‹เชฐเซเชธ เชธเซ‹เชซเซเชŸเชตเซ‡เชฐ เชนเชพเชˆเช•เซเชชเซ‹เชฐเซเชŸเซเชธเชฎเชพเช‚ เชฆเซ‡เช–เชพเชถเซ‡.

เชฎเชจเซ‡ เชจเซ€เชšเซ‡ เชฎเซเชœเชฌ เชฎเชณเซ‡ เช›เซ‡:

~/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_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

เชคเซ‡ เชถเซ เช•เชฐเซ€ เชฐเชนเซเชฏเซ‹ เช›เซ‡? เช›เซ‡เชตเชŸเซ‡, เช† เชเช• เช—เชฟเชŸ เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€ เช›เซ‡, เช•เซ‹เชก เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชธเซ€เชงเซ‹ เช›เซ‡, เช…เชจเชชเซ…เช• เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เช‚เชˆ เชจเชฅเซ€. เชฎเชพเชฐเชพ เชฆเซƒเชทเซเชŸเชฟเช•เซ‹เชฃเชฅเซ€, เชœเซ‹ เชคเซ‡ GitHub url เชจเซ€ เช‰เชชเชฐ เชนเซ‹เชฏ เชคเซ‹ เช…เชจเชชเซ‡เช•เชฐเชจเซ‡ เชจ เชœเซ‹เชตเชพ เชฎเชพเชŸเซ‡ เชŸเซ‚เชฒ เชเชŸเชฒเซเช‚ เชธเซเชฎเชพเชฐเซเชŸ เชนเซ‹เชตเซเช‚ เชœเซ‹เชˆเช.

เช•เชฆเชพเชš 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!

เชนเชฎเซเชฎ, เชถเชพ เชฎเชพเชŸเซ‡ เชฌเชงเซเช‚ เช†เชŸเชฒเซเช‚ เชœเชŸเชฟเชฒ เช›เซ‡, เชถเชพ เชฎเชพเชŸเซ‡ เชคเชฎเซ‡ "เชซเช•เซเชค เช•เชพเชฎ" เช•เชฐเซ€ เชถเช•เชคเชพ เชจเชฅเซ€? เช›เซ‡เชตเชŸเซ‡, เช—เชฟเชŸเชนเชฌเชฎเชพเช‚เชฅเซ€ เช•เช‚เชˆเช• เชฌเชจเชพเชตเชตเซเช‚ เชคเซ‡ เช…เชธเชพเชฎเชพเชจเซเชฏ เชจเชฅเซ€. เชชเช›เซ€ เชญเชฒเซ‡ เชคเซ‡ เชเชตเชพ เชธเชพเชงเชจเซ‹ เชนเซ‹เชฏ เช•เซ‡ เชœเซ‡ เชคเชฐเชค เชœ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡, เชธเซ‡เชŸเช…เชชเชจเซ€ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชค เชตเชฟเชจเชพ, เช…เชฅเชตเชพ เชนเซเช‚ เชคเซ‡เชจเซ‡ "เชซเชธเชฟเช‚เช—" เช•เชนเซเช‚ เช›เซเช‚.

เช•เชฆเชพเชš เชคเซ‡ เช†เชจเชพ เชœเซ‡เชตเซเช‚ เช•เชพเชฎ เช•เชฐเชถเซ‡:

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:

เชธเชพเชฐเซเช‚, เชนเชพ, เช•เชพเชฐเชฃ เชเชธเซ‡เชฎเซเชฌเชฒเซ€ เชฎเชพเชŸเซ‡ เชชเซเชฐเชพเชชเซเชค เชกเซ‡เชŸเชพเชจเซ€ เช…เช–เช‚เชกเชฟเชคเชคเชพ เชคเชชเชพเชธเชตเชพเชจเซ€ เช‡เชšเซเช›เชพ เชนเชคเซ€. เชตเชฟเช•เชฒเซเชชเซ‹เชฎเชพเช‚เชฅเซ€ เชเช• เช†เชฐเซเช•เชพเช‡เชตเชจเชพ เชšเซ‡เช•เชธเชฎเชจเซ‡ เชšเช•เชพเชธเชตเชพเชจเซ‹ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเชฎเซ‡, เช…เชฒเชฌเชคเซเชค, เชตเซเชฏเช•เซเชคเชฟเช—เชค เชซเชพเช‡เชฒเซ‹เชจเซ‡ เชนเซ‡เชถ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เชœเซ‡เชจเซ‹ เช…เชฎเชฒ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡ เชจเชนเซ€เช‚, เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ เช˜เชฃเซ‹ เชฒเชพเช‚เชฌเซ‹ เชธเชฎเชฏ เชฒเซ‡ เช›เซ‡. เช†เชจเซเช‚ เชชเชฐเชฟเชฃเชพเชฎ เช—เชฟเชŸ เช…เชจเซ‡ เช…เชจเซเชฏ เชตเซ€เชธเซ€เชเชธเชจเซ€ "เช…เชธเซเชฐเช•เซเชทเชพ" เช›เซ‡. เช† เชฎเซ‹เชŸเซ‡ เชญเชพเช—เซ‡ เชนเช‚เชฎเซ‡เชถเชพ เช•เซ‡เชธ เชนเชถเซ‡, เช•เชพเชฐเชฃ เช•เซ‡ GitHub เชชเชฐ เช†เชฐเซเช•เชพเช‡เชต เชฌเชจเชพเชตเชตเซเช‚ เชเช•เชฆเชฎ เชธเชฐเชณ เช…เชจเซ‡ เช˜เชฃเซ€ เชตเช–เชค เชเชกเชชเซ€ เช›เซ‡. เช เซ€เช• เช›เซ‡, เชญเชตเชฟเชทเซเชฏเชฎเชพเช‚, เช•เชฆเชพเชš เชญเซ‚เชฒ เชธเช‚เชฆเซ‡เชถเซ‹ เชเชŸเชฒเซ‹ เช†เช›เช•เชฒเซ‹ เชจเชนเซ€เช‚ เชนเซ‹เชฏ... (เช…เชฎเซ‡ เชนเชตเซ‡ เช†เชตเซ€ เชตเชพเชจเช—เซ€เช“เชจเซ‡ เชนเชพเชˆเช•เซเชชเซ‹เชฐเซเชŸเซเชธเชฎเชพเช‚ เชฎเชฐเซเชœ เช•เชฐเซ€เชถเซเช‚ เชจเชนเซ€เช‚).

~/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"

เช เซ€เช• เช›เซ‡, เชคเซ‡ เชธเซเชชเชทเซเชŸ เชฅเชˆ เช—เชฏเซเช‚ เช•เซ‡ เชคเซ‡ เชถเซเช‚ เช•เชฐเซ‡ เช›เซ‡ - เชคเซ‡ เชšเซ‹เช•เซเช•เชธ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชจเชจเชพ เชธเซเชคเซเชฐเซ‹เชค เช•เซ‹เชก เชธเชพเชฅเซ‡ เช†เชฐเซเช•เชพเช‡เชต เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ‡ เช›เซ‡. เชคเซ‡ เชฎเซ‚เชฐเซเช– เช›เซ‡, เชฎเชพเชฐเชพ เชฆเซƒเชทเซเชŸเชฟเช•เซ‹เชฃเชฅเซ€, เช…เชจเซ‡ เชนเซเช‚ เชœเซ‡ เช‡เชšเซเช›เชคเซ‹ เชนเชคเซ‹ เชคเซ‡ เชฌเชฐเชพเชฌเชฐ เชจเชฅเซ€, เชเชŸเชฒเซ‡ เช•เซ‡, เชฎเชพเชธเซเชŸเชฐ เชฌเซเชฐเชพเชจเซเชšเชฎเชพเช‚เชฅเซ€ เชจเชตเซ€เชจเชคเชฎ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชจ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเชตเซเช‚.

เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“เชฎเชพเช‚เชจเชพ เชเช•เซ‡ เชคเซ‡เชจเซ‡ เช† เชฐเซ€เชคเซ‡ เชธเชฎเชœเชพเชตเซเชฏเซเช‚:

เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช…เชฎเชพเชฐเซเช‚ เชชเซ‹เชคเชพเชจเซเช‚ CI เช›เซ‡, เชคเซ‡เชฅเซ€ เชนเชพเชˆเช•เซเชชเซ‹เชฐเซเชŸเซเชธ เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€เชฎเชพเช‚ เชœเซ‡ เชฌเชงเซเช‚ เชฎเซ‚เช•เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡ เชคเซ‡ เชฌเชงเชพ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชฎเชพเชŸเซ‡ เชชเซ‡เช• เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡, เช…เชจเซ‡ เช…เชฎเซ‡ "เชฌเชงเซเช‚ เชจเชตเซ€เชจเชคเชฎ เชธเช‚เชธเซเช•เชฐเชฃ เช…เชชเชธเซเชŸเซเชฐเซ€เชฎเชฎเชพเช‚" เชเช•เชคเซเชฐเชฟเชค เช•เชฐเชตเชพเชจเซเช‚ เช…เชจเซ‡ เชชเชนเซ‹เช‚เชšเชพเชกเชตเชพเชจเซเช‚ เชœเซ‹เช–เชฎ เชฒเซ‡เชตเชพ เชฎเชพเช‚เช—เชคเชพ เชจเชฅเซ€.

เชธเชฎเชœเชพเชฏเซเช‚! เช•เซ‹เชˆ เชชเชฃ เชธเช‚เชœเซ‹เช—เซ‹เชฎเชพเช‚, เช† เชถเซเช‚ เชฅเชฏเซเช‚ เช›เซ‡:

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 เช…เชจเซ‡ เชญเช‚เชกเชพเชฐ เชนเชพเชˆเช•เซเชชเซ‹เชฐเซเชŸเซเชธ เชคเซ‡เชฎเชพเช‚ "เชซเช•เซเชค เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡" เชเชตเซ‹ เช…เชนเซ‡เชธเชพเชธ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพ เชคเชฐเซ€เช•เซ‡, เชนเชพเชˆเช•เซ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพ เชตเชฟเชถเซ‡ เชฎเชจเซ‡ เช—เชฎเชคเซ€ เช•เซ‡เชŸเชฒเซ€เช• เชฌเชพเชฌเชคเซ‹ เช›เซ‡. เชฎเซ‹เชŸเซ‡เชญเชพเช—เซ‡, เชคเซ‡ เช“เชชเชจ เชฌเชฟเชฒเซเชก เชธเชฐเซเชตเชฟเชธ เชœเซ‡เชตเซเช‚ เชœ เช›เซ‡, เชœเซ‡ Linux เชฌเชฟเชฒเซเชก เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡เชจเชพ เชธเชพเชงเชจเซ‹เชจเซ‹ เชธเชฎเซ‚เชน เช›เซ‡: เช…เชคเซเชฏเช‚เชค เชถเช•เซเชคเชฟเชถเชพเชณเซ€, เชตเซเชฏเชตเชธเซเชฅเชฟเชค เช…เชญเชฟเช—เชฎ เชธเชพเชฅเซ‡, เชชเชฐเช‚เชคเซ เชฎเชพเชฐเซ€ เชจเชพเชจเซ€ "เชนเซ‡เชฒเซ‹ เชตเชฐเซเชฒเซเชก" เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฎเชพเชŸเซ‡ เช“เชตเชฐเช•เชฟเชฒ.

เชซเชฐเซ€เชฅเซ€, เชฎเชฟเชธเซเชŸเชฐ เช…เชจเซเชธเชพเชฐ. waddlesplash:

เช–เชฐเซ‡เช–เชฐ, เชนเชพเชˆเช•เซเชชเซ‹เชฐเซเชŸเชฐ เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡ เชเช•เชฆเชฎ เช•เชกเช• เช›เซ‡ (เชตเชคเซเชคเชพ เชคเซ‡เชจเซ‡ เชตเชงเซ เช•เชกเช• เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชฒเชฟเชจเซเชŸ เชฎเซ‹เชก เชคเซ‡เชฎเชœ เช•เชกเช• เชฎเซ‹เชก เชชเชฃ เช›เซ‡!), เชชเชฐเช‚เชคเซ เชฎเชพเชคเซเชฐ เชเชŸเชฒเชพ เชฎเชพเชŸเซ‡ เช•เซ‡ เชคเซ‡ เชชเซ‡เช•เซ‡เชœเซ‹ เชฌเชจเชพเชตเชตเชพเชจเซ‡ เชฌเชฆเชฒเซ‡ เช•เชพเชฎ เช•เชฐเชถเซ‡ เชคเซ‡เชตเชพ เชชเซ‡เช•เซ‡เชœเซ‹ เชฌเชจเชพเชตเซ‡ เช›เซ‡. เชคเซ‡เชฅเซ€ เชœ เชคเซ‡ เช…เช˜เซ‹เชทเชฟเชค เช…เชตเชฒเช‚เชฌเชจ, เชชเซเชธเซเชคเช•เชพเชฒเชฏเซ‹ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เช†เชฏเชพเชค เชจ เช•เชฐเชตเชพ, เช–เซ‹เชŸเซ€ เช†เชตเซƒเชคเซเชคเชฟเช“ เชตเช—เซ‡เชฐเซ‡ เชตเชฟเชถเซ‡ เชซเชฐเชฟเชฏเชพเชฆ เช•เชฐเซ‡ เช›เซ‡. เชงเซเชฏเซ‡เชฏ เช เช›เซ‡ เช•เซ‡ เช•เซ‹เชˆเชชเชฃ เช…เชจเซ‡ เชคเชฎเชพเชฎ เชธเชฎเชธเซเชฏเชพเช“, เชœเซ‡เชฎเชพเช‚ เชญเชตเชฟเชทเซเชฏเชจเซ€ เชธเชฎเชธเซเชฏเชพเช“เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡, เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชคเซ‡เชจเชพ เชตเชฟเชถเซ‡ เชœเชพเชฃเซ‡ เชคเซ‡ เชชเชนเซ‡เชฒเชพเช‚ เชœ เชคเซ‡เชจเซ‡ เชชเช•เชกเซ€ เชฒเซ‡ เช›เซ‡ (เช† เช•เชพเชฐเชฃเซ‡ เชœ avrdude เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเซเช‚ เชถเช•เซเชฏ เชจ เชนเชคเซเช‚, เช•เชพเชฐเชฃ เช•เซ‡ เชจเชฟเชฐเซเชญเชฐเชคเชพ เช–เชฐเซ‡เช–เชฐ เชฐเซ‡เชธเซ€เชชเซ€เชฎเชพเช‚ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เชนเชคเซ€). เชชเซเชธเซเชคเช•เชพเชฒเชฏเซ‹ เชฎเชพเชคเซเชฐ เชตเซเชฏเช•เซเชคเชฟเช—เชค เชชเซ‡เช•เซ‡เชœเซ‹ เช…เชฅเชตเชพ เชšเซ‹เช•เซเช•เชธ SO เชธเช‚เชธเซเช•เชฐเชฃเซ‹ เชจเชฅเซ€. เชนเชพเชˆเช•เซเชชเซ‹เชฐเซเชŸเชฐ เช–เชพเชคเชฐเซ€ เช•เชฐเซ‡ เช›เซ‡ เช•เซ‡ เช…เชฎเชฒ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชญเซ‚เชฒเซ‹ เชŸเชพเชณเชตเชพ เชฎเชพเชŸเซ‡ เช† เชฌเชงเซเช‚ เชฐเซ‡เชธเชฟเชชเซ€เชฎเชพเช‚ เชœ เชœเซ‹เชตเชพ เชฎเชณเซ‡ เช›เซ‡.

เชธเซˆเชฆเซเชงเชพเช‚เชคเชฟเช• เชฐเซ€เชคเซ‡, เช‘เชชเชฐเซ‡เชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎ เชฌเชจเชพเชตเชคเซ€ เชตเช–เชคเซ‡ เช† เช•เช เซ‹เชฐเชคเชพเชจเซเช‚ เชธเซเชคเชฐ เชตเชพเชœเชฌเซ€ เช›เซ‡, เชชเชฐเช‚เชคเซ "เชนเซ‡เชฒเซ‹ เชตเชฐเซเชฒเซเชก" เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฎเชพเชŸเซ‡ เชคเซ‡ เชฎเชจเซ‡ เชฌเชฟเชจเชœเชฐเซ‚เชฐเซ€ เชฒเชพเช—เซ‡ เช›เซ‡. เชฎเซ‡เช‚ เช•เช‚เชˆเช• เชฌเซ€เชœเซเช‚ เช…เชœเชฎเชพเชตเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚.

"เชชเซ‡เช•เซ‡เชœ เชฌเชจเชพเชตเซ‹" เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ 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.
เชซเชฐเซ€เชฅเซ€, เช…เชจเชชเซ‡เช•เซเชทเชฟเชค เชฐเซ€เชคเซ‡ เชเชกเชชเซ€, เชธเชฐเชณ เช…เชจเซ‡ เช…เชธเชฐเช•เชพเชฐเช•. เช…เชฎเซ‡เชเชฟเช‚เช—, เช…เช•เชฒเซเชชเชจเซ€เชฏ!

เชชเชฃ... (เชคเซ‡เชฎเชจเชพ เชตเชฟเชจเชพ เช†เชชเชฃเซ‡ เช•เซเชฏเชพเช‚ เชนเซ‹เชˆเชถเซเช‚!)

เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฎเซ‡เชจเซ‚ เชธเซ‚เชšเชฟ เช…เชจเซ‡ เช•เซเชตเชฟเช•เชฒเซ‹เชจเซเชšเชฎเชพเช‚เชฅเซ€ เชนเชœเซ€ เชชเชฃ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช–เซ‚เชŸเซ‡ เช›เซ‡. เชฎเชจเซ‡ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เชนเซเช‚ เชคเซ‡เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช เซ€เช• เช•เชฐเชตเซเช‚ เชคเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชœเชพเชฃเซเช‚ เช›เซเช‚. เชซเชพเช‡เชฒ เชฎเซ‡เชจเซ‡เชœเชฐเชฎเชพเช‚ เชนเซเช‚ QtQuickApp.hpkg เชจเซ‡ ~/config/packages เชฎเชพเช‚เชฅเซ€ /system/packages เชชเชฐ เช–เชธเซ‡เชกเซเช‚ เช›เซเช‚.

เชจเชพ, เชนเชœเซ เชชเชฃ เช—เซเชฎ. เชฆเซ‡เช–เซ€เชคเซ€ เชฐเซ€เชคเซ‡, เชนเซเช‚ (เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡, เช…เชจเซ‡ เชธเซ‚เชšเชจเชพเช“) เช•เช‚เชˆเช• เชšเซ‚เช•เซ€ เช—เชฏเซ‹.

เช•เซ‡เชŸเชฒเซ€เช• เช…เชจเซเชฏ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‹ เชฎเชพเชŸเซ‡ เชนเชพเชˆเช•เซเชกเซ‡เชชเซ‹เชŸเชฎเชพเช‚ "เชธเชพเชฎเช—เซเชฐเซ€" เชŸเซ‡เชฌ เชœเซ‹เชฏเชพ เชชเช›เซ€, เชฎเซ‡เช‚ เชœเซ‹เชฏเซเช‚ เช•เซ‡ เชคเซเชฏเชพเช‚ เชซเชพเช‡เชฒเซ‹ เช›เซ‡ เชœเซ‡เชฎ เช•เซ‡ /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

เชฎเชจเซ‡ เช–เชพเชคเชฐเซ€ เช›เซ‡ เช•เซ‡ เช† เชฏเซเช•เซเชคเชฟ เช•เชพเชฎ เช•เชฐเชถเซ‡, เชชเชฐเช‚เชคเซ เชชเซเชฐเชถเซเชจเซ‹ เชฐเชนเซ‡ เช›เซ‡: เช† เชถเชพ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡, เชคเซ‡ เชถเชพ เชฎเชพเชŸเซ‡ เช›เซ‡? เชฎเชจเซ‡ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เช† เชเช•เช‚เชฆเชฐ เช›เชพเชชเชจเซ‡ เชฌเชฐเชฌเชพเชฆ เช•เชฐเซ‡ เช›เซ‡ เช•เซ‡ เชธเชฟเชธเซเชŸเชฎ เชเชŸเชฒเซ€ เช…เชคเซเชฏเชพเชงเซเชจเชฟเช• เช›เซ‡.

เชถเซเชฐเซ€ เชฆเซเชตเชพเชฐเชพ เชธเชฎเชœเชพเชตเซเชฏเชพ เชฎเซเชœเชฌ. waddlesplash:

เช•เซ‡เชŸเชฒเซ€เช•เชตเชพเชฐ เชเชตเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‹ เชนเซ‹เชฏ เช›เซ‡ เชœเซ‡เชจเซ€ เช…เชจเซเชฏ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‹เชจเซ‡ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ เช›เซ‡ เชชเชฐเช‚เชคเซ เชคเซ‡ เชฎเซ‡เชจเซ‚เชฎเชพเช‚ เชนเซ‹เชคเซ€ เชจเชฅเซ€. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชคเชฎเชพเชฐเชพ เชธเซเช•เซเชฐเซ€เชจเชถเซ‹เชŸเชฎเชพเช‚ LegacyPackageInstaller, BeOS เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฎเชพเช‚ .pkg เช†เชฐเซเช•เชพเช‡เชตเซเชธเชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡. เชนเซเช‚ เชˆเชšเซเช›เซเช‚ เช›เซเช‚ เช•เซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชคเซ‡เชฎเชจเซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‡, เชชเชฐเช‚เชคเซ เชฎเซ‡เชจเซ‚เชฎเชพเช‚ เชคเซ‡เชฎเชจเซ€ เชนเชพเชœเชฐเซ€ เชฎเซ‚เช‚เชเชตเชฃ เชคเชฐเชซ เชฆเซ‹เชฐเซ€ เชœเชถเซ‡.

เช•เซ‡เชŸเชฒเชพเช• เช•เชพเชฐเชฃเซ‹เชธเชฐ เชฎเชจเซ‡ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เชคเซเชฏเชพเช‚ เชเช• เชธเชฐเชณ เช‰เช•เซ‡เชฒ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ Hidden=true เชซเชพเช‡เชฒเซ‹เชฎเชพเช‚ .desktop Linux เชชเชฐ. เชถเชพ เชฎเชพเชŸเซ‡ "เช›เซเชชเชพเชฏเซ‡เชฒ" เชฎเชพเชนเชฟเชคเซ€เชจเซ‡ เชซเชพเช‡เชฒ เชธเชฟเชธเซเชŸเชฎเชจเซเช‚ เชธเช‚เชธเชพเชงเชจ เช…เชจเซ‡ เชตเชฟเชถเซ‡เชทเชคเชพ เชฌเชจเชพเชตเชถเซ‹ เชจเชนเซ€เช‚?

เชœเซ‡ เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เชธเซ‚เช•เซเชทเซเชฎ เชจเชฅเซ€ เชคเซ‡ (เช•เซ‡เชŸเชฒเซ€เช•) เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซเช‚ เชจเชพเชฎ เช›เซ‡ เชœเซ‡ เชฎเซ‡เชจเซ เชฌเชคเชพเชตเซ‡ เช›เซ‡, deskbar, เชฐเชธเซเชคเชพเชฎเชพเช‚ เชธเช–เชค เชฐเซ€เชคเซ‡ เชฌเช‚เชงเชพเชฏเซ‡เชฒ.

เชถเซเชฐเซ€เชฎเชพเชจ. waddlesplash เช† เชธเชฎเชœเชพเชตเซ‡ เช›เซ‡:

เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ "เชกเซ‡เชธเซเช•เชฌเชพเชฐ" เชจเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชถเชฌเซเชฆเชจเชพ เชเช• เชชเซเชฐเช•เชพเชฐ เชคเชฐเซ€เช•เซ‡ เชธเชฎเชœเชตเซเช‚ เชœเซ‹เชˆเช (เช–เซ‚เชฌ เช เชœ เชฐเซ€เชคเซ‡ "เชŸเชพเชธเซเช•เชฌเชพเชฐ" เชคเชฐเซ€เช•เซ‡, เชœเซ‡ Windows เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช…เชจเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เช–เซเชฏเชพเชฒ เชฌเช‚เชจเซ‡เชจเซ‹ เชธเช‚เชฆเชฐเซเชญ เช†เชชเซ‡ เช›เซ‡). เชตเซ‡เชฒ, เช† เชฅเซ€ deskbar, โ€œเชกเซ‡เชธเซเช•เชฌเชพเชฐโ€ เชจเชนเชฟ, เช† เชชเชฃ เช เชœ เชฐเซ€เชคเซ‡ เชธเชฎเชœเซ€ เชถเช•เชพเชฏ เช›เซ‡.

เชนเชพเชˆเช•เซ เชธเชพเชฅเซ‡ เชฎเชพเชฐเซ‹ เชชเชพเช‚เชšเชฎเซ‹ เชฆเชฟเชตเชธ: เชšเชพเชฒเซ‹ เช•เซ‡เชŸเชฒเชพเช• เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชชเซ‹เชฐเซเชŸ เช•เชฐเซ€เช
2 "เชฒเช—เชญเช— เชธเชฎเชพเชจ" เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เช“ เชœเซ‡เชฎเชพเช‚ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซเชธ เช›เซ‡

เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซเชธ เชธเชพเชฅเซ‡ 2 เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เช“ เชถเชพ เชฎเชพเชŸเซ‡ เช›เซ‡, เช…เชจเซ‡ เชถเชพ เชฎเชพเชŸเซ‡ เชฎเชพเชฐเซ€ QtQuickApplication เชเช•เชฎเชพเช‚ เช›เซ‡, เชชเชฐเช‚เชคเซ เชฌเซ€เชœเซ€เชฎเชพเช‚ เชจเชฅเซ€? (เช›เซ‡เชตเชŸเซ‡, เช† เชเช• เชธเชฟเชธเซเชŸเชฎ เชตเชจ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชฌเซ€เชœเซ‹ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เช›เซ‡, เชœเซ‡ เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชตเซเชฏเช•เซเชคเชฟเช—เชค เชฐเซ€เชคเซ‡ เชธเชฎเชœเซ€ เชถเช•เชพเชฏ เชคเซ‡เชตเซเช‚ เชนเชถเซ‡).
เชนเซเช‚ เช–เชฐเซ‡เช–เชฐ เชฎเซ‚เช‚เชเชตเชฃเชฎเชพเช‚ เช›เซเช‚ เช…เชจเซ‡ เชฎเชจเซ‡ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เช† เชเช•เซ€เช•เซƒเชค เชนเซ‹เชตเซเช‚ เชœเซ‹เชˆเช.

เชถเซเชฐเซ€ เชฆเซเชตเชพเชฐเชพ เชŸเชฟเชชเซเชชเชฃเซ€ waddlesplash

เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซเชธ เช•เซ‡เชŸเซ‡เชฒเซ‹เช—เชฎเชพเช‚ เชเชตเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‹ เชถเชพเชฎเซ‡เชฒ เช›เซ‡ เชœเซ‡เชจเซ€ เชฎเซ‡เชจเซ‚เชฎเชพเช‚ เชœเชฐเซ‚เชฐ เชจเชฅเซ€. เชชเชฐเช‚เชคเซ เชฎเซ‡เชจเซ‚ เชธเชพเชฅเซ‡เชจเซ€ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเชจเซ‡ เชตเชงเซ เชตเซˆเชตเชฟเชงเซเชฏเชชเซ‚เชฐเซเชฃ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช–เชฐเซ‡เช–เชฐ เชคเซ‡เชจเซ‡ เชธเซเชงเชพเชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ, เช…เชฅเชตเชพ เชคเซ‡ เชฅเชถเซ‡ เชจเชนเซ€เช‚ ๐Ÿ˜‰

เชฎเชจเซ‡ เช†เชถเซเชšเชฐเซเชฏ เชฅเชฏเซเช‚: เชถเซเช‚ เช–เชฐเซ‡เช–เชฐ เชเชชเซเชฒเซ€เช•เซ‡เชถเชจ เชนเซ‹เชธเซเชŸ เช•เชฐเชตเซ€ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡ /system/apps, เชœเซ‹ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชคเซ‡เชฎเชจเซ‡ เชคเซเชฏเชพเช‚ เชœเซเช เช›เซ‡, เชคเซ‹ เชคเซ‡ เช…เชจเชฟเชšเซเช›เชจเซ€เชฏ เช›เซ‡. เช•เชฆเชพเชš เชคเซ‡เชฎเชจเซ‡ เชฌเซ€เชœเซ€ เชœเช—เซเชฏเชพเช เชฎเซ‚เช•เชตเซเช‚ เชตเชงเซ เชธเชพเชฐเซเช‚ เชฐเชนเซ‡เชถเซ‡ เชœเซเชฏเชพเช‚ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชคเซ‡เชฎเชจเซ‹ เชธเชพเชฎเชจเซ‹ เช•เชฐเชถเซ‡ เชจเชนเซ€เช‚? เชœเซ‡เชฎ เช•เซ‡ เชคเซ‡ Mac OS X เชฎเชพเช‚ เชฅเชพเชฏ เช›เซ‡, เชœเซเชฏเชพเช‚ เชชเซ‡เช•เซ‡เชœเซ‹เชจเซ€ เชธเชพเชฎเช—เซเชฐเซ€ .app, เชœเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเซ‡ เชคเซ‡เชฎเชพเช‚ เชฆเซ‡เช–เชพเชคเซเช‚ เชจ เชนเซ‹เชตเซเช‚ เชœเซ‹เชˆเช /Applications, /System/Library/โ€ฆโ€œ`เชจเซ€ เชŠเช‚เชกเชพเชˆเชฎเชพเช‚ เช›เซเชชเชพเชˆเชจเซ‡.

เช…เชตเชฒเช‚เชฌเชจ เชตเชฟเชถเซ‡ เชถเซเช‚?

เชฎเชจเซ‡ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เช•เซ‹เชˆเช• เชฐเซ€เชคเซ‡ เช…เชตเชฒเช‚เชฌเชจเชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเชตเซ‹ เชฏเซ‹เช—เซเชฏ เช›เซ‡, เชฌเชฐเชพเชฌเชฐ? เชถเซเช‚ Qt เชจเซ‡ เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡ เชนเชพเชˆเช•เซ เชธเซเชฅเชพเชชเชจเชจเซ‹ เชซเชฐเชœเชฟเชฏเชพเชค เชญเชพเช— เช—เชฃเซ€ เชถเช•เชพเชฏ? เชจเชพ! Qt เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‡เชฒ เชจเชฅเซ€. เชถเซเช‚ เชชเซ‡เช•เซ‡เชœ เชฌเชฟเชฒเซเชกเชฐ ELF เชซเชพเช‡เชฒเซ‹ เชคเชชเชพเชธเซ€เชจเซ‡ เช†เชชเชฎเซ‡เชณเซ‡ เชจเชฟเชฐเซเชญเชฐเชคเชพเชจเซ‡ เชถเซ‹เชงเซ€ เชถเช•เซ‡ เช›เซ‡? เชฎเชจเซ‡ เช•เชนเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚ เช•เซ‡ เชนเชพเชˆเช•เซเชชเซ‹เชฐเซเชŸเชฐ เช–เชฐเซ‡เช–เชฐ เช† เช•เชฐเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ package เชจเชพ. เชคเซ‡ เชเชŸเชฒเชพ เชฎเชพเชŸเซ‡ เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ เชฎเชพเชคเซเชฐ เชเช• "เชชเซ‡เช•เซ‡เชœ เชฌเชฟเชฒเซเชกเชฐ" เช›เซ‡ เชœเซ‡ เชซเช•เซเชค เชคเซ‡เชจเชพ เชชเซ‹เชคเชพเชจเชพ เชชเชฐ เชซเชพเช‡เชฒเซ‹ เชฌเชจเชพเชตเซ‡ เช›เซ‡ hpkg.

เชชเซ…เช•เซ‡เชœเชจเซ‡ เชนเชพเชˆเช•เซเชจเซ€ เชฌเชนเชพเชฐเชจเชพ เชชเซ…เช•เซ‡เชœ เชชเชฐ เชจเชฟเชฐเซเชญเชฐเชคเชพ เชจ เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช เชเชตเซ€ เชจเซ€เชคเชฟ เช‰เชฎเซ‡เชฐเซ€เชจเซ‡ เชนเชพเชˆเช•เซเชจเซ‡ เชตเชงเซ เช…เชคเซเชฏเชพเชงเซเชจเชฟเช• เชฌเชจเชพเชตเชตเซเช‚ เชœเซ‹เชˆเช? haikuports? (เชนเซเช‚ เชˆเชšเซเช›เซเช‚ เช›เซเช‚, เช•เชพเชฐเชฃ เช•เซ‡ เช†เชตเซ€ เชจเซ€เชคเชฟ เชตเชธเซเชคเซเช“เชจเซ‡ เช˜เชฃเซ€ เชธเชฐเชณ เชฌเชจเชพเชตเชถเซ‡ - เชธเชฟเชธเซเชŸเชฎ เชตเชงเชพเชฐเชพเชจเชพ เชชเซ‡เช•เซ‡เชœ เชธเซเชคเซเชฐเซ‹เชคเซ‹ เชธเชพเชฅเซ‡ เช—เชกเชฌเชก เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ, เช—เชฎเซ‡ เชคเซเชฏเชพเช‚เชฅเซ€ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ‡เชฒเชพ เชฆเชฐเซ‡เช• เชชเซ‡เช•เซ‡เชœเชจเซ€ เชจเชฟเชฐเซเชญเชฐเชคเชพเชจเซ‡ เช†เชชเชฎเซ‡เชณเซ‡ เช‰เช•เซ‡เชฒเชตเชพเชฎเชพเช‚ เชธเช•เซเชทเชฎ เชนเชถเซ‡.)

เชถเซเชฐเซ€เชฎเชพเชจ. waddlesplash เชธเชฎเชœเชพเชตเซ‡ เช›เซ‡:

เช…เชฎเซ‡ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“เชจเซ€ เชธเซเชตเชคเช‚เชคเซเชฐเชคเชพเชจเซ‡ เช†เชŸเชฒเซ€ เชฎเชฐเซเชฏเชพเชฆเชพเชฎเชพเช‚ เชฐเชพเช–เชตเชพ เชฎเชพเช‚เช—เชคเชพ เชจเชฅเซ€, เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ เชธเซเชชเชทเซเชŸ เช›เซ‡ เช•เซ‡ เชœเซ‹ CompanyX เชคเซ‡เชจเชพ เชชเซ‹เชคเชพเชจเชพ เชธเซ‰เชซเซเชŸเชตเซ‡เชฐเชจเชพ เชธเซ‡เชŸเชจเซ‡ เชจเชฟเชฐเซเชญเชฐเชคเชพ (เช…เชจเซ‡ เชคเซ‡เชฅเซ€ เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€) เชธเชพเชฅเซ‡ เชธเชฎเชฐเซเชฅเชจ เช†เชชเชตเชพ เชฎเชพเช‚เช—เซ‡ เช›เซ‡, เชคเซ‹ เชคเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชฎเซเช•เซเชคเชชเชฃเซ‡ เช•เชฐเชถเซ‡.

เชคเซ‡ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชคเซ‡ เชญเชฒเชพเชฎเชฃ เช•เชฐเชตเชพ เชฏเซ‹เช—เซเชฏ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡ เช•เซ‡ เชคเซƒเชคเซ€เชฏ-เชชเช•เซเชท เชชเซ‡เช•เซ‡เชœเซ‹ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชธเชพเชฅเซ‡ เชœเชฐเซ‚เชฐเซ€ เชฆเชฐเซ‡เช• เชตเชธเซเชคเซเชจเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชชเซ‡เช•เซ‡เชœ เช•เชฐเซ€เชจเซ‡ เชนเชพเชˆเช•เซเชชเซ‹เชฐเซเชŸเซเชธเชฎเชพเช‚ เชถเชพเชฎเซ‡เชฒ เชจ เชนเซ‹เชฏ เชคเซ‡เชตเซ€ เช•เซ‹เชˆเชชเชฃ เชตเชธเซเชคเซ เชชเชฐ เชจเชฟเชฐเซเชญเชฐเชคเชพเชจเซ‡ เชŸเชพเชณเซ‡ เช›เซ‡. เชชเชฐเช‚เชคเซ เชฎเชจเซ‡ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เช† เชถเซเชฐเซ‡เชฃเซ€เชจเชพ เชญเชพเชตเชฟ เชฒเซ‡เช– เชฎเชพเชŸเซ‡ เช† เชเช• เชตเชฟเชทเชฏ เช›เซ‡. [เชถเซเช‚ เชฒเซ‡เช–เช• AppImage เชคเชฐเชซ เชœเชˆ เชฐเชนเซเชฏเชพ เช›เซ‡? - เช†เชถเชฐเซ‡ เช…เชจเซเชตเชพเชฆเช•]

เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช†เชฏเช•เชจ เช‰เชฎเซ‡เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช

เชœเซ‹ เชนเซเช‚ เชฎเชพเชฐเซ€ เชจเชตเซ€ เชฌเชจเชพเชตเซ‡เชฒเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเชพ เชธเช‚เชธเชพเชงเชจเซ‹เชฎเชพเช‚ เชเช• เชธเซเช˜เชก เชฌเชฟเชฒเซเชŸ-เช‡เชจ เช†เช‡เช•เซ‹เชจ เช‰เชฎเซ‡เชฐเชตเชพ เชฎเชพเช‚เช—เซเช‚ เชคเซ‹ เชถเซเช‚? เชคเซ‡ เชคเชพเชฐเชฃ เช†เชชเซ‡ เช›เซ‡ เช•เซ‡ เช† เชเช• เช…เชฆเซเชญเซเชค เชตเชฟเชทเชฏ เช›เซ‡, เชคเซ‡เชฅเซ€ เชคเซ‡ เช†เช—เชพเชฎเซ€ เชฒเซ‡เช– เชฎเชพเชŸเซ‡เชจเซ‹ เช†เชงเชพเชฐ เชนเชถเซ‡.

เชธเชคเชค เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฌเชฟเชฒเซเชก เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช—เซ‹เช เชตเชตเชพ?

เช‡เช‚เช•เชธเซเช•เซ‡เชช เชœเซ‡เชตเชพ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ€ เช•เชฒเซเชชเชจเชพ เช•เชฐเซ‹ (เชนเชพ, เชนเซเช‚ เชœเชพเชฃเซเช‚ เช›เซเช‚ เช•เซ‡ เชคเซ‡ เชนเชœเซ€ เชนเชพเช‡เช•เซเชฎเชพเช‚ เช‰เชชเชฒเชฌเซเชง เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชคเซ‡เชจเชพ เชชเชฐ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เช•เชฐเชตเซเช‚ เช…เชจเซเช•เซ‚เชณ เช›เซ‡). เชคเซ‡เชฎเชจเซ€ เชชเชพเชธเซ‡ เชธเซเชคเซเชฐเซ‹เชค เช•เซ‹เชก เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€ เช›เซ‡ https://gitlab.com/inkscape/inkscape.
เชฆเชฐ เชตเช–เชคเซ‡ เชœเซเชฏเชพเชฐเซ‡ เช•เซ‹เชˆ เชตเซเชฏเช•เซเชคเชฟ เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€เชฎเชพเช‚ เชคเซ‡เชฎเชจเชพ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เช•เชฐเซ‡ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชฌเชฟเชฒเซเชก เชชเชพเช‡เชชเชฒเชพเช‡เชจเซเชธ เชฒเซ‹เช‚เชš เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซเชฏเชพเชฐเชฌเชพเชฆ เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเซเช‚ เช†เชชเชฎเซ‡เชณเซ‡ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‡ เชตเชฟเชตเชฟเชง เชชเซ‡เช•เซ‡เชœเซ‹เชฎเชพเช‚ เชชเซ‡เช• เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซ‡เชฎเชพเช‚ Linux เชฎเชพเชŸเซ‡ AppImage (เชเช• เชธเซเชตเชคเช‚เชคเซเชฐ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชชเซ‡เช•เซ‡เชœ เช•เซ‡ เชœเซ‡ เชธเซเชฅเชพเชจเชฟเช• เชชเชฐเซ€เช•เซเชทเชฃ เชฎเชพเชŸเซ‡ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡. เชธเชฟเชธเซเชŸเชฎ เชชเชฐ เชถเซเช‚ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡ เช…เชฅเชตเชพ เชจ เชชเชฃ เชนเซ‹เชˆ เชถเช•เซ‡ [เชนเซเช‚ เชœเชพเชฃเชคเซ‹ เชนเชคเซ‹! - เช†เชถเชฐเซ‡ เช…เชจเซเชตเชพเชฆเช•]). เชฆเชฐเซ‡เช• เชฌเซเชฐเชพเชจเซเชš เชฎเชฐเซเชœ เชตเชฟเชจเช‚เชคเซ€ เชธเชพเชฅเซ‡ เช† เชœ เชตเชธเซเชคเซ เชฅเชพเชฏ เช›เซ‡, เชคเซ‡เชฅเซ€ เชคเชฎเซ‡ เชฎเชฐเซเชœ เช•เชฐเชคเชพ เชชเชนเซ‡เชฒเชพ เชฎเชฐเซเชœ เชตเชฟเชจเช‚เชคเซ€เชฎเชพเช‚ เชธเซ‚เชšเชฟเชค เช•เซ‹เชกเชฎเชพเช‚เชฅเซ€ เชฌเชจเซ‡เชฒ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹.

เชนเชพเชˆเช•เซ เชธเชพเชฅเซ‡ เชฎเชพเชฐเซ‹ เชชเชพเช‚เชšเชฎเซ‹ เชฆเชฟเชตเชธ: เชšเชพเชฒเซ‹ เช•เซ‡เชŸเชฒเชพเช• เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชชเซ‹เชฐเซเชŸ เช•เชฐเซ€เช
เชฌเชฟเชฒเซเชก เชธเซเชŸเซ‡เชŸเชธ เชธเชพเชฅเซ‡ เชตเชฟเชจเช‚เชคเซ€เช“เชจเซ‡ เชฎเชฐเซเชœ เช•เชฐเซ‹ เช…เชจเซ‡ เชœเซ‹ เชฌเชฟเชฒเซเชก เชธเชซเชณ เชฅเชพเชฏ เชคเซ‹ เชธเช‚เช•เชฒเชฟเชค เชฌเชพเชˆเชจเชฐเซ€ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ (เชฒเซ€เชฒเชพเชฎเชพเช‚ เชšเชฟเชนเซเชจเชฟเชค)

เชฌเชฟเชฒเซเชก เชกเซ‹เช•เชฐ เช•เชจเซเชŸเซ‡เชจเชฐเชฎเชพเช‚ เชšเชพเชฒเซ‡ เช›เซ‡. GitLab Linux เชชเชฐ เชฎเชซเชค เชฆเซ‹เชกเชตเซ€เชฐเซ‹ เช“เชซเชฐ เช•เชฐเซ‡ เช›เซ‡, เช…เชจเซ‡ เชฎเชจเซ‡ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เชคเชฎเชพเชฐเชพ เชชเซ‹เชคเชพเชจเชพ เชฆเซ‹เชกเชตเซ€เชฐเซ‹เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เช•เชฐเชตเซ‹ เชถเช•เซเชฏ เช›เซ‡ (เชฎเชพเชฐเซเช— เชฆเซเชตเชพเชฐเชพ, เชนเซเช‚ เชœเซ‹เชคเซ‹ เชจเชฅเซ€ เช•เซ‡ เช† เชนเชพเช‡เช•เซ เชœเซ‡เชตเซ€ เชธเชฟเชธเซเชŸเชฎ เชฎเชพเชŸเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเชถเซ‡, เชœเซ‡ เชฎเชจเซ‡ เช–เชฌเชฐ เช›เซ‡ เช•เซ‡ เชคเซ‡เชจเซ€ เชชเชพเชธเซ‡ เชกเซ‹เช•เชฐ เช…เชฅเชตเชพ เชธเชฎเช•เช•เซเชท เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชซเซเชฐเซ€เชฌเซ€เชเชธเชกเซ€ เชฎเชพเชŸเซ‡ เชชเชฃ เช•เซ‹เชˆ เชกเซ‹เช•เชฐ เชจเชฅเซ€, เชคเซ‡เชฅเซ€ เช† เชธเชฎเชธเซเชฏเชพ เชนเชพเชˆเช•เซ เชฎเชพเชŸเซ‡ เช…เชจเชจเซเชฏ เชจเชฅเซ€).

เช†เชฆเชฐเซเชถเชฐเซ€เชคเซ‡, เชนเชพเช‡เช•เซ เชเชชเซเชฒเซ€เช•เซ‡เชถเชจเซ‹ Linux เชฎเชพเชŸเซ‡ เชกเซ‹เช•เชฐ เช•เชจเซเชŸเซ‡เชจเชฐเชจเซ€ เช…เช‚เชฆเชฐ เชฌเชจเชพเชตเซ€ เชถเช•เชพเชฏ เช›เซ‡. เช† เชธเซเชฅเชฟเชคเชฟเชฎเชพเช‚, เชนเชพเชˆเช•เซ เชฎเชพเชŸเซ‡เชจเซ€ เชเชธเซ‡เชฎเซเชฌเชฒเซ€ เชนเชพเชฒเชจเซ€ เชชเชพเช‡เชชเชฒเชพเช‡เชจเซเชธเชฎเชพเช‚ เชฆเชพเช–เชฒ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡. เชถเซเช‚ เชคเซเชฏเชพเช‚ เช•เซเชฐเซ‹เชธ เช•เชฎเซเชชเชพเช‡เชฒเชฐเซเชธ เช›เซ‡? เช…เชฅเชตเชพ เชฎเชพเชฐเซ‡ QEMU/KVM เชœเซ‡เชตเซ€ เชตเชธเซเชคเซเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชกเซ‹เช•เชฐ เช•เชจเซเชŸเซ‡เชจเชฐเชจเซ€ เช…เช‚เชฆเชฐเชจเชพ เชฌเชงเชพ เชนเชพเชˆเช•เซเชจเซเช‚ เช…เชจเซเช•เชฐเชฃ เช•เชฐเชตเซเช‚ เชœเซ‹เชˆเช (เชงเชพเชฐเซ€ เชฒเชˆเช เช•เซ‡ เชคเซ‡ เชกเซ‹เช•เชฐเชจเซ€ เช…เช‚เชฆเชฐ เชคเซ‡ เชฐเซ€เชคเซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเชถเซ‡)? เชฎเชพเชฐเซเช— เชฆเซเชตเชพเชฐเชพ, เช˜เชฃเชพ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธ เชธเชฎเชพเชจ เชธเชฟเชฆเซเชงเชพเช‚เชคเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชธเซเช•เซเชฐเชฟเชฌเชธ เช† เช•เชฐเซ‡ เช›เซ‡ - เชคเซ‡ เชนเชพเชˆเช•เซ เชฎเชพเชŸเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช‰เชชเชฒเชฌเซเชง เช›เซ‡. เชเช• เชฆเชฟเชตเชธ เชเชตเซ‹ เช†เชตเชถเซ‡ เชœเซเชฏเชพเชฐเซ‡ เชนเซเช‚ เชฎเซ‹เช•เชฒเซ€ เชถเช•เซ€เชถ เช†เชตเชพ เชนเชพเชˆเช•เซ เชธเชชเซ‹เชฐเซเชŸ เช‰เชฎเซ‡เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช…เชจเซเชฏ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธเชจเซ€ เชตเชฟเชจเช‚เชคเซ€เช“ เช–เซ‡เช‚เชšเซ‹.

เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“เชฎเชพเช‚เชจเชพ เชเช• เชธเชฎเชœเชพเชตเซ‡ เช›เซ‡:

เช…เชจเซเชฏ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธ เชฎเชพเชŸเซ‡ เช•เซ‡ เชœเซ‡เช“ เชชเซ‹เชคเซ‡ เชชเซ‡เช•เซ‡เชœเซ‹ เชฌเชจเชพเชตเชตเชพ เชˆเชšเซเช›เซ‡ เช›เซ‡, เชจเชฟเชฏเชฎเชฟเชค CMake/CPack เชชเชฆเซเชงเชคเชฟ เชธเชชเซ‹เชฐเซเชŸเซ‡เชก เช›เซ‡. เช…เชจเซเชฏ เชฌเชฟเชฒเซเชก เชธเชฟเชธเซเชŸเชฎเซเชธเชจเซ‡ เชชเซ‡เช•เซ‡เชœเชจเชพ เชฌเชฟเชฒเซเชก เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชจเซ‡ เชธเซ€เชงเซ‹ เช•เซ‰เชฒ เช•เชฐเซ€เชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡, เชœเซ‹ เชฒเซ‹เช•เซ‹เชจเซ‡ เชคเซ‡เชฎเชพเช‚ เชฐเชธ เชนเซ‹เชฏ เชคเซ‹ เชคเซ‡ เชธเชพเชฐเซเช‚ เช›เซ‡. เช…เชจเซเชญเชต เชฌเชคเชพเชตเซ‡ เช›เซ‡: เช…เชคเซเชฏเชพเชฐ เชธเซเชงเซ€ เชคเซ‡เชฎเชพเช‚ เชตเชงเซ เชฐเชธ เชจเชฅเซ€, เชคเซ‡เชฅเซ€ เชนเชพเชˆเช•เซเชชเซ‹เชฐเซเชŸเชฐเซ‡ เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เช…เชจเซเช•เซ‚เชณ เชคเชฐเซ€เช•เซ‡ เช•เชพเชฎ เช•เชฐเซเชฏเซเช‚, เชชเชฐเช‚เชคเซ, เช†เช–เชฐเซ‡, เชฌเช‚เชจเซ‡ เชชเชฆเซเชงเชคเชฟเช“ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเซเช‚ เชœเซ‹เชˆเช. เช†เชชเชฃเซ‡ Linux เช…เชฅเชตเชพ เช…เชจเซเชฏ เช•เซ‹เชˆเชชเชฃ เชธเชฐเซเชตเชฐ เช“เชชเชฐเซ‡เชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚เชฅเซ€ เช•เซเชฐเซ‹เชธ-เชฌเชฟเชฒเซเชกเชฟเช‚เช— เชธเซ‹เชซเซเชŸเชตเซ‡เชฐ เชฎเชพเชŸเซ‡ เชŸเซ‚เชฒเซเชธเชจเซ‹ เชธเชฎเซ‚เชน เชฐเชœเซ‚ เช•เชฐเชตเซ‹ เชœเซ‹เชˆเช (เชนเชพเชˆเช•เซ เชธเชฐเซเชตเชฐเซเชธ เชชเชฐ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชฐเชšเชพเชฏเซ‡เชฒ เชจเชฅเซ€).

เชนเซเช‚ เชธเซเชŸเซ‡เชจเซเชกเชฟเช‚เช— เช“เชตเซ‡เชถเชจ เช†เชชเซเช‚ เช›เซเช‚. เชจเชฟเชฏเชฎเชฟเชค Linux เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เช† เชคเชฎเชพเชฎ เชตเชงเชพเชฐเชพเชจเซ‹ เชญเชพเชฐ เช…เชจเซ‡ เชตเชงเชพเชฐเชพเชจเซ‹ เชธเชพเชฎเชพเชจ (เชธเซเชฐเช•เซเชทเชพ, เช•เชกเช• เชจเชฟเชฏเช‚เชคเซเชฐเชฃ, เชตเช—เซ‡เชฐเซ‡) เชตเชนเชจ เช•เชฐเซ‡ เช›เซ‡ เชœเซ‡ เชธเชฐเซเชตเชฐ เช“เชชเชฐเซ‡เชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡, เชชเชฐเช‚เชคเซ เชตเซเชฏเช•เซเชคเชฟเช—เชค เชฎเชพเชŸเซ‡ เชจเชนเซ€เช‚. เชคเซ‡เชฅเซ€ เชนเซเช‚ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชธเช‚เชฎเชค เช›เซเช‚ เช•เซ‡ เชฒเชฟเชจเช•เซเชธ เชชเชฐ เชนเชพเชˆเช•เซ เชเชชเซเชธ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชธเช•เซเชทเชฎ เชฌเชจเชตเซเช‚ เช เชœเชตเชพเชจเซ‹ เชฎเชพเชฐเซเช— เช›เซ‡.

เชจเชฟเชทเซเช•เชฐเซเชท

เชชเซ‹เชธเชฟเช•เซเชธ เชเชชเซเชฒเซ€เช•เซ‡เชถเชจเชจเซ‡ เชนเชพเชˆเช•เซเชฎเชพเช‚ เชชเซ‹เชฐเซเชŸเซ€เช‚เช— เช•เชฐเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡, เชชเชฐเช‚เชคเซ เชธเชพเชฎเชพเชจเซเชฏ เชชเซเชจเชƒเชจเชฟเชฐเซเชฎเชพเชฃ เช•เชฐเชคเชพเช‚ เชตเชงเซ เช–เชฐเซเชšเชพเชณ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡. เชœเซ‹ irc.freenode.net เชจเซ‡เชŸเชตเชฐเซเช• เชชเชฐ #haiku เชšเซ‡เชจเชฒเชจเชพ เชฒเซ‹เช•เซ‹เชจเซ€ เชฎเชฆเชฆ เชจ เชนเซ‹เชค เชคเซ‹ เชนเซเช‚ เชšเซ‹เช•เซเช•เชธเชชเชฃเซ‡ เช†เชฎเชพเช‚ เชฒเชพเช‚เชฌเชพ เชธเชฎเชฏ เชธเซเชงเซ€ เช…เชŸเชตเชพเชˆ เชœเชคเซ‹. เชชเชฃ เชคเซ‡เช“ เชนเช‚เชฎเซ‡เชถเชพ เชคเชฐเชค เชœ เชœเซ‹เชคเชพ เชจ เชนเชคเชพ เช•เซ‡ เชถเซเช‚ เช–เซ‹เชŸเซเช‚ เชนเชคเซเช‚.

Qt เชฎเชพเช‚ เชฒเช–เชพเชฏเซ‡เชฒ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‹ เชเช• เชธเชฐเชณ เช…เชชเชตเชพเชฆ เช›เซ‡. เชฎเซ‡เช‚ เช•เซ‹เชˆเชชเชฃ เชธเชฎเชธเซเชฏเชพ เชตเชฟเชจเชพ เชเช• เชธเชฐเชณ เชกเซ‡เชฎเซ‹ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฎเซ‚เช•เซ€ เช›เซ‡.

เชธเชฐเชณ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซเชธ เชฎเชพเชŸเซ‡ เชชเซ‡เช•เซ‡เชœ เชฌเชจเชพเชตเชตเซเช‚ เชชเชฃ เชเช•เชฆเชฎ เชธเชฐเชณ เช›เซ‡, เชชเชฐเช‚เชคเซ เชซเช•เซเชค "เชชเชฐเช‚เชชเชฐเชพเช—เชค เชฐเซ€เชคเซ‡ เชชเซเชฐเช•เชพเชถเชฟเชค" เชฎเชพเชŸเซ‡, เชเชŸเชฒเซ‡ เช•เซ‡. เชนเชพเช‡เช•เซเชชเซ‹เชฐเซเชŸเซเชธเชฎเชพเช‚ เชธเชชเซ‹เชฐเซเชŸ เชฎเชพเชŸเซ‡ เชฌเชจเชพเชตเชพเชฏเซ‡เชฒ เชตเชฐเซเชเชจเซ‡เชก เชธเซ‹เชฐเซเชธ เช•เซ‹เชก เช†เชฐเซเช•เชพเช‡เชตเซเชธ เชงเชฐเชพเชตเซ‡ เช›เซ‡. GitHub เชธเชพเชฅเซ‡ เชธเชคเชค เชฌเชฟเชฒเซเชก (เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเซ€ เชฆเชฐเซ‡เช• เชชเซเชฐเชคเชฟเชฌเชฆเซเชงเชคเชพ เชฎเชพเชŸเซ‡ เชฌเชฟเชฒเซเชก) เชฎเชพเชŸเซ‡, เชเชตเซเช‚ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เชฌเชงเซเช‚ เชเชŸเชฒเซเช‚ เชธเชฐเชณ เชจเชฅเซ€. เช…เชนเซ€เช‚ เชนเชพเชˆเช•เซ เช Mac เชชเชฐเชจเชพ เชชเชฐเชฟเชฃเชพเชฎ เช•เชฐเชคเชพเช‚ Linux เชตเชฟเชคเชฐเชฃ เชœเซ‡เชตเซเช‚ เชฒเชพเช—เซ‡ เช›เซ‡, เชœเซเชฏเชพเช‚ เชคเชฎเซ‡ XCodeเชฎเชพเช‚ "เชฌเชฟเชฒเซเชก" เชฌเชŸเชจเชจเซ‡ เช•เซเชฒเชฟเช• เช•เชฐเซ‹ เชคเซเชฏเชพเชฐเซ‡ เชคเชฎเชจเซ‡ เชเช• เชชเซ‡เช•เซ‡เชœ เชฎเชณเซ‡ เช›เซ‡. .app, เชกเชฟเชธเซเช• เชˆเชฎเซ‡เชœเชฎเชพเช‚ เชฆเชพเช–เชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเซˆเชฏเชพเชฐ เช›เซ‡ .dmg, เชฎเชพเชฐเซ€ เชตเซ‡เชฌเชธเชพเช‡เชŸ เชชเชฐ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเซˆเชฏเชพเชฐ.
"เชธเชฐเซเชตเชฐ" เช“เชชเชฐเซ‡เชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎ เชชเชฐ เช†เชงเชพเชฐเชฟเชค เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซเชธเชจเซเช‚ เชธเชคเชค เชจเชฟเชฐเซเชฎเชพเชฃ, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, Linux, เชœเซ‹ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“ เชคเชฐเชซเชฅเซ€ เชฎเชพเช‚เช— เชนเซ‹เชฏ เชคเซ‹ เชฎเซ‹เชŸเชพเชญเชพเช—เซ‡ เชถเช•เซเชฏ เชฌเชจเชถเซ‡, เชชเชฐเช‚เชคเซ เช† เช•เซเชทเชฃเซ‡ เชนเชพเชˆเช•เซ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชฎเชพเช‚ เช…เชจเซเชฏ, เชตเชงเซ เชฆเชฌเชพเชฃเชฏเซเช•เซเชค เช•เชพเชฐเซเชฏเซ‹ เช›เซ‡.

เชคเซ‡เชจเซ‡ เชœเชพเชคเซ‡ เช…เชœเชฎเชพเชตเซ€ เชœเซเช“! เช›เซ‡เชตเชŸเซ‡, เชนเชพเชˆเช•เซ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชกเซ€เชตเซ€เชกเซ€ เช…เชฅเชตเชพ เชฏเซเชเชธเชฌเซ€ เชฎเชพเช‚เชฅเซ€ เชฌเซเชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชˆเชฎเซ‡เชœเซ‹ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡, เชœเซ‡ เชœเชจเชฐเซ‡เชŸ เชฅเชพเชฏ เช›เซ‡ เชฆเซˆเชจเชฟเช•. เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชซเช•เซเชค เช‡เชฎเซ‡เชœ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ‹ เช…เชจเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชซเซเชฒเซ‡เชถ เชกเซเชฐเชพเช‡เชต เชชเชฐ เชฒเช–เซ‹ Etcher

เชถเซเช‚ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช•เซ‹เชˆ เชชเซเชฐเชถเซเชจเซ‹ เช›เซ‡? เช…เชฎเซ‡ เชคเชฎเชจเซ‡ เชฐเชถเชฟเชฏเชจ เชฌเซ‹เชฒเชคเชพ เชฎเชพเชŸเซ‡ เช†เชฎเช‚เชคเซเชฐเชฟเชค เช•เชฐเซ€เช เช›เซ€เช เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชšเซ‡เชจเชฒ.

เชญเซ‚เชฒ เชตเชฟเชนเช‚เช—เชพเชตเชฒเซ‹เช•เชจ: C เช…เชจเซ‡ C++ เชฎเชพเช‚ เชชเช—เชฎเชพเช‚ เชคเชฎเชพเชฐเซ€ เชœเชพเชคเชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฎเชพเชฐเชตเซ€. เชนเชพเชˆเช•เซ เช“เชเชธ เชฐเซ‡เชธเซ€เชชเซ€ เชธเช‚เช—เซเชฐเชน

เชฅเซ€ เชฒเซ‡เช–เช• เช…เชจเซเชตเชพเชฆ: เชนเชพเชˆเช•เซ เชตเชฟเชถเซ‡เชจเซ€ เชถเซเชฐเซ‡เชฃเซ€เชจเซ‹ เช† เชชเชพเช‚เชšเชฎเซ‹ เชฒเซ‡เช– เช›เซ‡.

เชฒเซ‡เช–เซ‹เชจเซ€ เชธเซ‚เชšเชฟ: เชชเซเชฐเชฅเชฎ เชฌเซ€เชœเซ‹ เชคเซเชฐเซ€เชœเซ‹ เชšเซ‹เชฅเซเช‚

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹