ืžื™ื™ึทืŸ ืคื™ื ืคื˜ ื˜ืึธื’ ืžื™ื˜ ื”ืึทื™ืงื•: ืœืึธืžื™ืจ ืคึผืึธืจื˜ ืขื˜ืœืขื›ืข ืžื’ื™ืœื”

ืžื™ื™ึทืŸ ืคื™ื ืคื˜ ื˜ืึธื’ ืžื™ื˜ ื”ืึทื™ืงื•: ืœืึธืžื™ืจ ืคึผืึธืจื˜ ืขื˜ืœืขื›ืข ืžื’ื™ืœื”

ื˜ืœ; ื“ืจ: ื ื ืขื•ื•ื‘ื™ืข ื’ืขื–ืขืŸ Haiku ืคึฟืึทืจ ื“ื™ ืขืจืฉื˜ืขืจ ืžืึธืœ, ื˜ืจื™ื™ื ื’ ืฆื• ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืขื˜ืœืขื›ืข ืžื’ื™ืœื” ืคื•ืŸ ื“ื™ ืœื™ื ื•ืงืก ื•ื•ืขืœื˜.

ืžื™ื™ึทืŸ ืคื™ื ืคื˜ ื˜ืึธื’ ืžื™ื˜ ื”ืึทื™ืงื•: ืœืึธืžื™ืจ ืคึผืึธืจื˜ ืขื˜ืœืขื›ืข ืžื’ื™ืœื”
ืžื™ื™ึทืŸ ืขืจืฉื˜ืขืจ Haiku ืคึผืึธืจื˜ื™ื“ ืคึผืจืึธื’ืจืึทื, ืคึผืึทืงื™ื“ื–ืฉื“ ืื™ืŸ ื–ื™ื™ืŸ ื”ืคึผืงื’ ืคึฟืึธืจืžืึทื˜

ืœืขืฆื˜ื ืก ืื™ืš ื“ื™ืกืงืึทื•ื•ืขืจื“ Haiku, ืึท ืกืึทืคึผืจื™ื™ื–ื™ื ื’ืœื™ ื’ื•ื˜ ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื ืคึฟืึทืจ ืคึผื™ืกื™.
ื”ื™ื™ึทื ื˜ ืื™ืš ื•ื•ืขื˜ ืœืขืจื ืขืŸ ื•ื•ื™ ืฆื• ืึทืจื™ื‘ืขืจืคื™ืจืŸ ื ื™ื™ึทืข ืžื’ื™ืœื” ืฆื• ื“ืขื ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื. ื“ืขืจ ื”ื•ื™ืคึผื˜ ืคืึธืงื•ืก ืื™ื– ืึท ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืคื•ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ื“ืขืจืคืึทืจื•ื ื’ ืคื•ืŸ ืกื•ื•ื™ื˜ืฉื™ื ื’ ืฆื• Haiku ืคึฟื•ืŸ ื“ื™ ืคื•ื ื˜ ืคื•ืŸ ืžื™ื™ื ื•ื ื’ ืคื•ืŸ ืึท ืœื™ื ื•ืงืก ื“ืขื•ื•ืขืœืึธืคึผืขืจ. ืื™ืš ื‘ื™ืŸ ืื ื˜ืฉื•ืœื“ื™ื’ ืคืืจ ืกื™ื™ ื•ื•ืขืœื›ืข ื ืืจื™ืฉืข ื˜ืขื•ืชื™ื ื•ื•ืืก ืื™ืš ื”ืื‘ ื’ืขืžืื›ื˜ ืื•ื™ืคืŸ ื•ื•ืขื’, ื•ื•ื™ื™ืœ ืขืก ืื™ื– ืืคื™ืœื• ื ื™ืฉื˜ ื“ื•ืจื›ื’ืขื’ืื ื’ืขืŸ ื ื•ื•ืืš ื–ื™ื ื˜ ืื™ืš ื”ืื‘ ื“ืืก ืขืจืฉื˜ืข ืžืืœ ืืจืืคื’ืขืœืื–ื˜ ื”ื™ื™ืงื•.

ืื™ืš ื•ื•ื™ืœืŸ ืฆื• ื“ืขืจื’ืจื™ื™ื›ืŸ ื“ืจื™ื™ ืฆื™ืœืŸ:

  • ืคึผืึธืจื˜ ืึท ืคึผืฉื•ื˜ CLI ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ
  • ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืึท ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืคึฟื•ืŸ GUI ืฆื• Qt
  • ื“ืขืจื ืึธืš ืคึผืขืงืœ ื–ื™ื™ ืื™ืŸ hpkg ืคึฟืึธืจืžืึทื˜ (ื–ื™ื ื˜ ืื™ืš ื ืึธืš ื˜ืจืึทื›ื˜ืŸ ื•ื•ืขื’ืŸ ืึทื“ืึทืคึผื˜ื™ื ื’ ืึทืคึผืคึผื“ื™ืจ ืื•ืŸ ืึทืคึผืคึผื™ืžืึทื’ืข ืคึฟืึทืจ ื”ืึทื™ืงื• ...)

ืœืืžื™ืจ ืื ื”ื™ื™ื‘ืขืŸ. ืื™ืŸ ืกืขืงืฉืึทื ื– ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ะธ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืื™ืŸ ื•ื•ื™ืงื™ ืคึฟื•ืŸ HaikuPorts ืื™ืš ื’ืขืคึฟื•ื ืขืŸ ื“ื™ ืจืขื›ื˜ ืจื™ื›ื˜ื•ื ื’. ืขืก ืื™ื– ืืคื™ืœื• ืึทืŸ ืึธื ืœื™ื™ืŸ ืคึผื“ืฃ ื‘ื•ืš BeOS: ืคึผืึธืจื˜ื™ื ื’ ืึท ื™ื•ื ื™ืงืก ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ.
467 ื‘ืœืขื˜ืขืจ - ืื•ืŸ ื“ืึธืก ืื™ื– ืคึฟื•ืŸ 1997! ืขืก ืื™ื– ืกืงืขืจื™ ืฆื• ืงื•ืงืŸ ืื™ื ืขื•ื•ื™ื™ื ื™ืง, ืึธื‘ืขืจ ืื™ืš ื”ืึธืคึฟืŸ ืคึฟืึทืจ ื“ื™ ื‘ืขืกื˜ืขืจ. ื“ื™ ื•ื•ืขืจื˜ืขืจ ืคื•ืŸ ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ื–ืขื ืขืŸ ื™ื ืงืขืจืึทื“ื–ืฉื™ื ื’: "ืขืก ื”ืึธื˜ ื’ืขื“ื•ื™ืขืจื˜ ืึท ืœืึทื ื’ ืฆื™ื™ึทื˜ ื•ื•ื™ื™ึทืœ BeOS ืื™ื– ื ื™ืฉื˜ POSIX-ื’ืขื”ืึธืจื›ื™ืง," ืึธื‘ืขืจ Haiku "ืคึฟืึทืจ ื“ื™ ืจื•ื‘ึฟ ื˜ื™ื™ืœ" ืื™ื– ืฉื•ื™ืŸ ืึทื–ื•ื™.

ืคึผืึธืจื˜ื™ื ื’ ืึท ืคึผืฉื•ื˜ CLI ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ

ื“ืขืจ ืขืจืฉื˜ืขืจ ื’ืขื“ืึทื ืง ืื™ื– ื’ืขื•ื•ืขืŸ ืฆื• ืึทืจื™ื‘ืขืจืคื™ืจืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ avrdude, ืื‘ืขืจ , ื•ื•ื™ ืขืก ื”ืื˜ ื–ื™ืš ืืจื•ื™ืกื’ืขื•ื•ื™ื–ืŸ , ืื™ื– ื“ืืก ืฉื•ื™ืŸ ื”ืึธื‘ืŸ ื’ืขื˜ืืŸ ืึท ืœืึทื ื’ืข ืฆื™ื™ื˜ ืฆื•ืจื™ืง.

ืขืจืฉื˜ืขืจ ืคึผืจื•ื‘ื™ืจืŸ: ื’ืึธืจื ื™ืฉื˜ ืฆื• ื”ื™ื˜ืŸ

ื•ื•ืึธืก ืื™ืš ืงืขืŸ ื ื™ืฉื˜ ืคึฟืึทืจืฉื˜ื™ื™ืŸ ืื™ื– ืึทื– ืฉื•ื™ืŸ ืึทืคึผืคึผืก ื”ืึธื‘ืŸ ืฉื•ื™ืŸ ืคึผืึธืจื˜ื™ื“ ืฆื• Haiku ืคึฟืึทืจ ืื™ื‘ืขืจ 10 ื™ืึธืจ - ื˜ืจืึธืฅ ื“ืขื ืคืึทืงื˜ ืึทื– ื“ื™ ืึทืก ื–ื™ืš ืื™ื– ื ื™ืฉื˜ ืืคื™ืœื• ื•ื•ืขืจืกื™ืข 1.0 ื ืึธืš.

ืฆื•ื•ื™ื™ื˜ืข ืคึผืจื•ื•ื•ืŸ: ื“ืึทืจืคึฟืŸ ืฆื• ืจื™ืจื™ื™ื˜

ืึทื–ื•ื™ ืื™ืš ื•ื•ืขื˜ ื ื•ืฆืŸ ptouch-770, CLI ืคึฟืึทืจ ืงืึทื ื˜ืจืึธื•ืœื™ื ื’ ื“ื™ Brother P-Touch 770 ื“ืจื•ืงืขืจ ื•ื•ืึธืก ืื™ืš ื ื•ืฆืŸ ืฆื• ื“ืจื•ืงืŸ ืœืึทื‘ืขืœืก.
ืื™ืš ื“ืจื•ืง ืื•ื™ืฃ ืขืก ืคืึทืจืฉื™ื“ืŸ ืœืึทื‘ืขืœืก, ืื•ืŸ ืื™ืจ ืงืขืŸ ื”ืึธื‘ืŸ ืฉื•ื™ืŸ ื’ืขื–ืขืŸ ืขืก ืื™ืŸ ื“ื™ ืคืจื™ืขืจื“ื™ืงืข ืึทืจื˜ื™ืงืœ. ื ื‘ื™ืกืœ ืคืจื™ืขืจ, ืื™ืš ื’ืขืฉืจื™ื‘ืŸ ืึท ืงืœื™ื™ืŸ GUI ืจืึทืคึผืขืจ ืคึผืจืึธื’ืจืึทื ืื™ืŸ ืคึผื™ื˜ื”ืึธืŸ (ื•ื•ื™ื™ึทืœ ืขืก ืื™ื– ืื™ืŸ Gtk +, ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืจื™ืจื™ื™ื˜, ืื•ืŸ ื“ืึธืก ืื™ื– ืึท ื’ื•ื˜ืข ืกื™ื‘ื” ืฆื• ืœืขืจื ืขืŸ).

ืžื™ื™ึทืŸ ืคื™ื ืคื˜ ื˜ืึธื’ ืžื™ื˜ ื”ืึทื™ืงื•: ืœืึธืžื™ืจ ืคึผืึธืจื˜ ืขื˜ืœืขื›ืข ืžื’ื™ืœื”
ื‘ืจื•ื“ืขืจ P-Touch 770 ืคื™ืจืžืข ื“ืจื•ืงืขืจ ื•ื•ืขื˜ ืขืก ืึทืจื‘ืขื˜ ืžื™ื˜ Haiku?

ื“ืขืจ Haiku ืคึผืขืงืœ ืคืึทืจื•ื•ืึทืœื˜ืขืจ ื•ื•ื™ื™ืกื˜ ื•ื•ืขื’ืŸ ืœื™ื™ื‘ืจืขืจื™ื– ืื•ืŸ ืงืึทืžืึทื ื“ื–, ืึทื–ื•ื™ ืื•ื™ื‘ ืื™ืš ื‘ืึทืงื•ืžืขืŸ ืึท "ืงืขื ืขืŸ ื ื™ื˜ ื’ืขืคึฟื™ื ืขืŸ ืœื™ื‘ื™ื ื˜ืœ" ืึธื ื–ืึธื’ ื•ื•ืขืŸ ืคืœื™ืกื ื“ื™ืง 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 ืื™ื– ืื•ื™ืš ืœื™ื ื•ืงืก-ื‘ืื–ื™ืจื˜ ืื•ืŸ ื“ืขืจืคึฟืึทืจ ืงืขืŸ ื ื™ืฉื˜ ืขืงืกื™ืกื˜ื™ืจืŸ ืคึฟืึทืจ Haiku. ื•ื•ืึธืก ืžื™ื˜ืœ ืื™ืš ื“ืึทืจืคึฟืŸ ืฆื• ืจืขื“ืึทื’ื™ืจืŸ ื“ื™ ืžืงื•ืจ ืงืึธื“ ืื™ืš ื‘ื™ืŸ ื˜ืจื™ื™ื ื’ ืฆื• ื–ืึทืžืœืขืŸ.
ื”ืึท, ืื™ืจ ืงืขื ืขืŸ ื ื™ืฉื˜ ืฉืคึผืจื™ื ื’ืขืŸ ืื™ื‘ืขืจ ื“ื™ื™ืŸ ืงืึธืคึผ, ืื•ืŸ ืื™ืš ื˜ืึธืŸ ื ื™ื˜ ืืคื™ืœื• ื•ื•ื™ืกืŸ ื•ื•ื• ืฆื• ืึธื ื”ื™ื™ื‘ืŸ.

ื“ืจื™ื˜ืข ืคึผืจื•ึผื•ื•ื˜

ืขืก ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ืคื™ื™ึทืŸ ืฆื• ื”ืึธื‘ืŸ tmate ืคึฟืึทืจ Haiku, ืื™ืš ื•ื•ืึธืœื˜ ืœืึธื–ืŸ ื“ื™ Haiku ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ืฆื• ืžื™ื™ืŸ ื•ื•ืึธืงื–ืึทืœ ืกืขืกื™ืข - ืื™ืŸ ืคืึทืœ ืขืคึผืขืก ื’ื™ื™ื˜ ืคืึทืœืฉ. ื“ื™ ื™ื ืกื˜ืจืึทืงืฉืึทื ื– ื–ืขื ืขืŸ ื’ืึทื ืฅ ืคึผืฉื•ื˜:

./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 ื“ืขื•ื•ืขืœืึธืคึผืขืจืก, ืขืก ื˜ื•ืจื ืก ืื•ื™ืก ืึทื– ืขืก ืื™ื– ืึท ื–ืฉื•ืง ืื™ืŸ ืžืกื’ืคึผืึทืงืง, ืื•ืŸ ื ืึธืš ืึท ื‘ื™ืกืœ ืžื™ื ื•ื˜ ืื™ืš ื–ืขืŸ ืึท ืœืึทื˜ืข ืื™ืŸ HaikuPorts. ืื™ืš ืงืขื ืขืŸ ื–ืขืŸ ืžื™ื˜ ืžื™ื™ืŸ ืื™ื™ื’ืŸ ืื•ื™ื’ืŸ ื•ื•ื™ ื“ื™ ืงืขืจืขืงื˜ืึทื“ ืคึผืขืงืœ ื’ื™ื™ ืื”ืขืจ (buildslave - ื•ื•ื™ืจื˜ื•ืึทืœ ืžืืฉื™ื ืขืŸ).

ืžื™ื™ึทืŸ ืคื™ื ืคื˜ ื˜ืึธื’ ืžื™ื˜ ื”ืึทื™ืงื•: ืœืึธืžื™ืจ ืคึผืึธืจื˜ ืขื˜ืœืขื›ืข ืžื’ื™ืœื”
ื‘ื•ื™ืขืŸ ื“ื™ ืงืขืจืขืงื˜ืึทื“ ืžืกื’ืคึผืึทืง ืื•ื™ืฃ buildmaster

ืื™ืŸ ืฆื•ื•ื™ืฉืŸ ืžืืœ ืื™ืš ืฉื™ืงืŸ ืึท ืœืึทื˜ืข ืฆื• ืึทืคึผืกื˜ืจื™ื ืฆื• ืœื™ื™ื’ืŸ 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

ื”ืขืจ. ื•ื•ืึทื“ื“ืœืขืกืคึผืœืึทืฉ ื“ืขืจืฆื™ื™ืœื˜ ืื™ืจ ื•ื•ื• ืฆื• ื’ืจืึธื‘ืŸ:

/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. ืœื›ืื•ืจื” ื“ืืจืฃ ืžืขืŸ ื•ื•ื™ื™ื˜ืขืจ ืจืขื“ืืงื˜ื™ืจืŸ ื“ื™ ืงืื•ื“. ื“ืึทืจืคึฟืŸ ืฆื• ื˜ืจืึทื›ื˜ืŸ ...

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

ื“ื™ ื–ืขืœื‘ืข ื–ืึทืš, ื ืึธืจ ืื™ืŸ ืคึผืจืึธืคื™ืœ. ื’ื•ื’ืœ ืื•ืŸ ื’ืขืคื•ื ืขืŸ ื“ืขื. ืื•ื™ื‘ ืื™ืจ ืœื™ื™ื’ืŸ -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

"ืฉืœืขื›ื˜ ืคึผืึธืจื˜ ืฉื™ื™ึทืŸ" ืื™ื– ืฉื•ื™ืŸ ื•ื•ื™ ืึท ื’ืขืฉืขืคื˜ ืงืึธืจื˜ haiku. ืืคึฟืฉืจ ืขืžืขืฆืขืจ ื”ืื˜ ืึท ื’ืขื“ืึทื ืง ื•ื•ืึธืก ืื™ื– ืคืึทืœืฉ ืื•ืŸ ื•ื•ื™ ืฆื• ืคืึทืจืจื™ื›ื˜ืŸ ืขืก? ืื•ื™ื‘ ืึทื–ื•ื™, ืื™ืš ื•ื•ืขื˜ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื“ืขื ืึทืจื˜ื™ืงืœ. ืœื™ื ืง ืฆื• ื’ื™ื˜ื”ื•ื‘.

ืคึผืึธืจื˜ื™ื ื’ ื“ื™ 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!

ื˜ืึทืงืข ืคึผืฉื•ื˜. ื•ื•ื™ื™ื ื™ืงืขืจ ื•ื•ื™ ืึท ืžื™ื ื•ื˜!

ืคึผืึทืงืงืึทื’ื™ื ื’ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืื™ืŸ hpkg ื ื™ืฆืŸ haikuporter ืื•ืŸ haikuports.

ืžื™ื˜ ื•ื•ืึธืก ื–ืึธืœ ืื™ืš ืึธื ื”ื™ื™ื‘ืŸ? ืขืก ืื™ื– ืงื™ื™ืŸ ืคึผืฉื•ื˜ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ, ืื™ืš ื’ื™ื™ืŸ ืฆื• ื“ื™ #ื”ืึทื™ืงื• ืงืึทื ืึทืœ ืื•ื™ืฃ irc.freenode.net ืื•ืŸ ื”ืขืจืŸ:

  • ืงืึธืœืขืงื˜ื™ื•ื• package - ืึท ื ื™ื“ืขืจื™ืง-ืžื“ืจื’ื” ื•ื•ืขื’ ืฆื• ืฉืึทืคึฟืŸ ืคึผืึทืงืึทื“ื–ืฉืึทื–. ืคึฟืึทืจ ื“ื™ ืจื•ื‘ึฟ ื˜ื™ื™ืœ, PackageInfo ืื™ื– ื’ืขื ื•ื’ ืคึฟืึทืจ ืื™ืจ, ื•ื•ื™ ื“ื™ืกืงืจื™ื™ื‘ื“ ืื™ืŸ ื“ื™ ืึธืคึผื˜ื™ื™ืœื•ื ื’ "ืžืึทื›ืŸ ืขืก ืื™ืŸ ืึท ื’ืขื”ืขืจื™ืง .ื”ืคึผืงื’ ืคึผืขืงืœ"
  • ืื™ืš ื“ืึทืจืฃ ืขืคึผืขืก ื˜ืึธืŸ ืึทื–ืึท
  • ืงืขื ืขืŸ ื ื•ืฆืŸ hpkg-creator (ืขืก ืงืจืึทืฉื™ื– ืคึฟืึทืจ ืžื™ืจ, ื˜ืขื•ืช ืจื™ืคึผืึธืจื˜ื™ื ื’)

ืขืก ืื™ื– ื ื™ืฉื˜ ืงืœืึธืจ ื•ื•ืึธืก ืฆื• ื˜ืึธืŸ. ืื™ืš ื˜ืจืขืคืŸ ืื™ืš ื“ืึทืจืคึฟืŸ ืึท ื”ืขืœื ื•ื•ืขืœื˜ ื ื•ืกื— ื‘ื™ื’ื™ื ืขืจื– ืคื™ืจืขืจ, ื™ื™ื“ื™ืœื™ ืึท ื•ื•ื™ื“ืขื. ืขืก ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ืคื™ื™ึทืŸ ืฆื• ืื•ื™ืš ื”ืึธื‘ืŸ ืึท ื‘ืึทืงื•ื•ืขื ื”ืงื“ืžื” ืฆื• HaikuPorter, ื•ื•ื™ ืื™ื– ื’ืขืฉืขืŸ ืื™ืŸ GNU ื”ืขืœื.

ืื™ืš ืœื™ื™ืขื ืขืŸ ื“ื™ ืคืืœื’ืขื ื“ืข:

haikuporter ืื™ื– ืึท ื’ืขืฆื™ื™ึทื’ ืคึฟืึทืจ ืงืจื™ื™ื™ื˜ื™ื ื’ ืคึผืจืึธืกื˜ ืคึผืขืงืœ ืคึผืจืึทื“ื–ืฉืขืงืก ืคึฟืึทืจ Haiku. ืขืก ื ื™ืฆื˜ ื“ื™ HaikuPorts ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ื•ื•ื™ ืึท ื‘ืึทื–ืข ืคึฟืึทืจ ืึทืœืข ืคึผืึทืงืึทื“ื–ืฉืึทื–. ื”ืึทื™ืงื•ืคึผืึธืจื˜ืขืจ ืจืขืกืึทืคึผื™ื– ื–ืขื ืขืŸ ื’ืขื ื™ืฆื˜ ืฆื• ืžืึทื›ืŸ ืคึผืึทืงืึทื“ื–ืฉืึทื–.

ืื™ืŸ ื“ืขืจืฆื•, ืื™ืš ื’ืขืคึฟื™ื ืขืŸ ื–ื™ืš ืึทื–:

ืขืก ืื™ื– ื ื™ื˜ ื“ืึทืจืคึฟืŸ ืฆื• ืงืจืึธื ืจืขืกืึทืคึผื™ื– ืื™ืŸ 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. ื“ื™ืคึผืขื ื“ืึทื ืกื™ื– ื–ืขื ืขืŸ ืึธืคึผื’ืขืฉื˜ืขืœื˜ ืคึฟืึทืจ ืึทืœืข ืคึผืึทืงืึทื“ื–ืฉืึทื– ืื™ืŸ ื“ื™ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ haikuports, ื•ื•ืึธืก ื ืขืžื˜ ืขื˜ืœืขื›ืข ืžืึธืœ. ืื™ืš ื•ื•ืขืœ ื’ื™ื™ืŸ ื ืขืžืขืŸ ืงืึทื•ื•ืข.

ืคืืจื•ื•ืืก ืื•ื™ืฃ ืขืจื“ ื–ืึธืœ ื“ืขื ื˜ืฉืขืง ื–ื™ื™ืŸ ื’ืขื˜ืืŸ ืื•ื™ืฃ ืžื™ื™ืŸ ื”ื™ื’ืข ืžืึทืฉื™ืŸ, ืื•ืŸ ื ื™ืฉื˜ ืกืขื ื˜ืจืึทืœื™ ืื•ื™ืฃ ื“ื™ ืกืขืจื•ื•ืขืจ ืึทืžืึธืœ ืคึฟืึทืจ ืึทืœืขืžืขืŸ?

ืœื•ื™ื˜ ืžืจ. ื•ื•ืึทื“ืœืคึผืœืึทืฉ:

ืžื™ื˜ ืึทื–ืึท ืึทื– ืื™ืจ ืงืขื ืขืŸ ืจื™ืจื™ื™ื˜ ืงื™ื™ืŸ ื˜ืขืงืข ืื™ืŸ ื“ื™ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ๐Ÿ˜‰ ืื™ืจ ืงืขื ืขืŸ ืึทืคึผื˜ืึทืžื™ื™ื– ื“ืขื ืึท ื‘ื™ืกืœ, ืงืึทืœืงื™ืึทืœื™ื™ื˜ื™ื ื’ ื“ื™ ื ื™ื™ื˜ื™ืง ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขืŸ ื“ืืจืฃ, ื•ื•ื™ื™ึทืœ ื“ื™ ืœืขืฆื˜ืข ืขื ื“ืขืจื•ื ื’ืขืŸ ื–ืขื ืขืŸ ื’ืึทื ืฅ ื–ืขืœื˜ืŸ.

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

ื“ืขื ืคืึทืงื˜ ืžืื›ื˜ ื“ื™ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ืžืขืจ ืงืึทืžื‘ืขืจืกืึทื. ืื™ืš ื˜ืึธืŸ ื ื™ื˜ ื“ืขืจ ื”ื•ื™ืคึผื˜ ื•ื•ื™ ืขืก, ืึธื‘ืขืจ ืื™ืš ื˜ืจืึทื›ื˜ืŸ ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืึทื–ื•ื™ ืึทื– ื™ื•ื•ืขื ื˜ืฉืึทื•ื•ืึทืœื™ ืึทืœืข ืึธืคึฟืŸ ืžืงื•ืจ ื•ื•ื™ื™ื›ื•ื•ืืจื’ ื•ื•ืขื˜ ื“ืขืจืฉื™ื™ึทื ืขืŸ ืื™ืŸ 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_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!

ื”ืžืž, ื•ื•ืึธืก ืื™ื– ืึทืœืฅ ืึทื–ื•ื™ ืงืึธืžืคึผืœื™ืฆื™ืจื˜, ื•ื•ืึธืก ืงืขื ืขืŸ ืื™ืจ ื ื™ืฉื˜ "ื ืึธืจ ืึทืจื‘ืขื˜"? ื ืึธืš ืึทืœืข, ืขืก ืื™ื– ื ื™ืฉื˜ ืึทื–ื•ื™ ื•ืžื’ืขื•ื•ื™ื™ื ื˜ืœืขืš ืฆื• ื‘ื•ื™ืขืŸ ืขืคึผืขืก ืคึฟื•ืŸ GitHub. ืฆื™ ืขืก ื–ืขื ืขืŸ ืžื›ืฉื™ืจื™ื ื•ื•ืึธืก ืึทืจื‘ืขื˜ ื’ืœื™ื™ืš, ืึธืŸ ื“ื™ ื ื•ื™ื˜ ืคึฟืึทืจ ืกืขื˜ืึทืคึผ, ืึธื“ืขืจ ื•ื•ื™ ืื™ืš ืจื•ืคืŸ ืขืก "ืคืึทืกื™ื ื’".

ืืคึฟืฉืจ ืขืก ื•ื•ืขื˜ ืึทืจื‘ืขื˜ืŸ ื•ื•ื™ ื“ืึธืก:

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

ืื™ืš ืžืึทืš ืึท ื‘ื™ืกืœ ื•ื•ื™ื™ื˜ืขืจ, ืึธื‘ืขืจ ื•ื•ืึธืก ืฉืจื™ื™ื˜ ืขืก ืื•ื™ืฃ ืžื™ืจ (ื’ื™ื˜ื”ื•ื‘ ืื™ื– ื ื™ืฉื˜ ื–ื™ื›ืขืจ!) ืื•ืŸ ื ืึธืš ื˜ืจื™ื™ื ื’ ืฆื• ืึทื ืคึผืึทืง ืขืคึผืขืก.

ืœื•ื™ื˜ ื”ืขืจ. ื•ื•ืึทื“ื“ืœืขืกืคึผืœืึทืฉ:

ื ื•, ื™ืึธ, ื“ื™ ืกื™ื‘ื” ืื™ื– ื’ืขื•ื•ืขืŸ ื“ืขืจ ืคืึทืจืœืึทื ื’ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ืึธืจื ื˜ืœืขื›ืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ื“ืึทื˜ืŸ ื‘ืืงื•ืžืขืŸ ืคึฟืึทืจ ืคึฟืึทืจื–ืึทืžืœื•ื ื’. ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืึธืคึผืฆื™ืขืก ืื™ื– ืฆื• ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื“ื™ ื˜ืฉืขืงืกื•ื ืคื•ืŸ ื“ื™ ืึทืจืงื™ื™ื•ื•, ืึธื‘ืขืจ ืื™ืจ ืงืขื ืขืŸ, ืคื•ืŸ ืงื•ืจืก, ื”ืึทืฉ ื™ื—ื™ื“ ื˜ืขืงืขืก, ื•ื•ืึธืก ื•ื•ืขื˜ ื ื™ืฉื˜ ื–ื™ื™ืŸ ื™ืžืคึผืœืึทืžืขื ืึทื“ ื•ื•ื™ื™ึทืœ ืขืก ื ืขืžื˜ ืคื™ืœ ืžืขืจ. ื“ื™ ืงืึทื ืกืึทืงื•ื•ืึทื ืก ืคื•ืŸ ื“ืขื ืื™ื– ื“ื™ "ื™ื ืกื™ืงื™ื•ืจื™ื˜ื™" ืคื•ืŸ ื’ื™ื˜ ืื•ืŸ ืื ื“ืขืจืข VCS. ื“ืึธืก ื•ื•ืขื˜ ืจื•ื‘ึฟ ืžืกืชึผืžื ืฉื˜ืขื ื“ื™ืง ื–ื™ื™ืŸ ื“ืขืจ ืคืึทืœ, ื•ื•ื™ื™ึทืœ ืฉืึทืคึฟืŸ ืึทืŸ ืึทืจืงื™ื™ื•ื• ืื•ื™ืฃ GitHub ืื™ื– ื’ืึทื ืฅ ื’ืจื™ื ื’ ืื•ืŸ ืึธืคื˜ ืคืึทืกื˜ืขืจ. ื ื•, ืื™ืŸ ื“ืขืจ ืฆื•ืงื•ื ืคึฟื˜, ื˜ืึธืžืขืจ ื“ื™ ื˜ืขื•ืช ืึธื ื–ืึธื’ ื•ื•ืขื˜ ื ื™ืฉื˜ ื–ื™ื™ืŸ ืึทื–ื•ื™ ื‘ืœืขื ื“ื™ืง ... (ืžื™ืจ ื ื™ื˜ ืžืขืจ ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ืึทื–ืึท ืจืขืกืึทืคึผื™ื– ืื™ืŸ 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 ื ืขืฅ. ืื•ืŸ ืฐื•ึผ ืฐืึธืœื˜ ืื™ืš ื’ืขืฐืขืŸ ืึธืŸ ื–ืฒ? ื ืึธืš ื“ืขื ืึธื ืฆื•ื”ืขืจืขื ื™ืฉ, ืื™ืš ืื™ื™ื ื’ืขื–ืขืŸ ืึทื– ืื™ืš ื–ืึธืœ ื ื•ืฆืŸ:

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

ืึธื•ืงื™ื™, ืขืก ืื™ื– ื’ืขื•ื•ืืจืŸ ืงืœืึธืจ ื•ื•ืึธืก ืขืก ื˜ื•ื˜ - ืขืก ื“ืึทื•ื ืœืึธื•ื“ื– ืึทืŸ ืึทืจืงื™ื™ื•ื• ืžื™ื˜ ื“ื™ ืžืงื•ืจ ืงืึธื“ ืคื•ืŸ ืึท ื–ื™ื›ืขืจ ืจืขื•ื•ื™ื–ื™ืข. ืขืก ืื™ื– ื ืึทืจื™ืฉ, ืคึฟื•ืŸ ืžื™ื™ืŸ ืคื•ื ื˜ ืคื•ืŸ ืžื™ื™ื ื•ื ื’, ืื•ืŸ ื ื™ื˜ ืคึผื•ื ืงื˜ ื•ื•ืึธืก ืื™ืš ื’ืขื•ื•ืืœื˜, ื ื™ื™ืžืœื™, ืฆื• ืึธืคึผืœืึธื“ื™ืจืŸ ื“ื™ ืœืขืฆื˜ืข ืจืขื•ื•ื™ื–ื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ื‘ืขืœ ืฆื•ื•ื™ื™ึทื’.

ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ื”ืื˜ ื“ืขืจืงืœืขืจื˜ ื“ืขื ื•ื•ืขื’:

ืžื™ืจ ื”ืึธื‘ืŸ ืื•ื ื“ื–ืขืจ ืื™ื™ื’ืขื ืข ืกื™, ืึทื–ื•ื™ ืึทืœืฅ ื•ื•ืึธืก ืื™ื– ื’ืขืฉื˜ืขืœื˜ ืื™ืŸ ื“ื™ ื”ืึทื™ืงื•ืคึผืึธืจื˜ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคึผืึทืงื™ื“ื–ืฉื“ ืคึฟืึทืจ ืึทืœืข ื™ื•ื–ืขืจื–, ืื•ืŸ ืžื™ืจ ื˜ืึธืŸ ื ื™ืฉื˜ ื•ื•ืขืœืŸ ืฆื• ืจื™ื–ื™ืงื™ืจืŸ ืงืึทืœืขืงื˜ื™ื ื’ ืื•ืŸ ื“ืขืœื™ื•ื•ืขืจื™ื ื’ "ืึทืœืฅ ืื™ืŸ ื“ื™ ืœืขืฆื˜ืข ื•ื•ืขืจืกื™ืข ืึทืคึผืกื˜ืจื™ื."

ืคืืจืฉื˜ืื ืขืŸ! ืื™ืŸ ืงื™ื™ืŸ ืคืึทืœ, ื“ืึธืก ืื™ื– ื•ื•ืึธืก ื’ืขื˜ืจืืคืŸ:

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 ืื•ืŸ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ haikuports ืขืก ื˜ื•ื˜ ื ื™ืฉื˜ ื”ืึธื‘ืŸ ืึท "ื ืึธืจ ืึทืจื‘ืขื˜" ืคื™ืœืŸ ืฆื• ืขืก, ืึธื‘ืขืจ ื•ื•ื™ ืึท ื“ืขื•ื•ืขืœืึธืคึผืขืจ, ืขืก ื–ืขื ืขืŸ ืขื˜ืœืขื›ืข ื˜ื™ื ื’ื– ื•ื•ืึธืก ืื™ืš ื•ื•ื™ ื•ื•ืขื’ืŸ ืืจื‘ืขื˜ืŸ ืžื™ื˜ Haiku. ืคึฟืึทืจ ื“ื™ ืจื•ื‘ึฟ ื˜ื™ื™ืœ, ืขืก ืื™ื– ืขื ืœืขืš ืฆื• ื“ื™ ืขืคึฟืŸ ื‘ื™ืœื“ ืกืขืจื•ื•ื™ืก, ืึท ื’ืึทื ื’ ืคื•ืŸ ืžื›ืฉื™ืจื™ื ืคึฟืึทืจ ื‘ื ื™ืŸ ืœื™ื ื•ืงืก ื‘ื•ื™ืขืŸ: ื’ืึธืจ ืฉื˜ืึทืจืง, ืžื™ื˜ ืึท ืกื™ืกื˜ืขืžืึทื˜ื™ืฉ ืฆื•ื’ืึทื ื’, ืึธื‘ืขืจ ืึธื•ื•ื•ืขืจืงื™ืœ ืคึฟืึทืจ ืžื™ื™ืŸ ืงืœื™ื™ืŸ "ื”ืขืœื ื•ื•ืขืœื˜" ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ.

ื•ื•ื™ื“ืขืจ, ืœื•ื™ื˜ ืžืจ. ื•ื•ืึทื“ืœืคึผืœืึทืฉ:

ื˜ืึทืงืข, HaikuPorter ืื™ื– ื’ืึทื ืฅ ืฉื˜ืจืขื ื’ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜ (ืคึผืœื•ืก ืขืก ืื™ื– ืึท ืœื™ื ื˜ ืžืึธื“ืข ืื•ืŸ ืึท ืฉื˜ืจืขื ื’ ืžืึธื“ืข ืฆื• ืžืึทื›ืŸ ืขืก ืืคื™ืœื• ืžืขืจ ืฉื˜ืจืขื ื’!), ืึธื‘ืขืจ ื‘ืœื•ื™ื– ื•ื•ื™ื™ึทืœ ืขืก ืงืจื™ื™ื™ืฅ ืคึผืึทืงื™ื“ื–ืฉื™ื– ื•ื•ืึธืก ื•ื•ืขื˜ ืึทืจื‘ืขื˜ืŸ, ืืœื ื•ื•ื™ ื ืึธืจ ืงืจื™ื™ื™ื˜ื™ื ื’ ืคึผืึทืงืึทื“ื–ืฉืึทื–. ื“ืขืจืคึฟืึทืจ ื‘ืึทืงืœืึธื’ื˜ ืขืจ ื–ื™ืš ืื•ื™ืฃ ื ื™ืฉื˜ึพื“ืขืจืงืœืขืจื˜ืข ืึธืคึผื”ืขื ื’ื™ืงื™ื™ื˜ืŸ, ื‘ื™ื‘ืœื™ืึธื˜ืขืงืŸ ื•ื•ืึธืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ืจื™ื›ื˜ื™ื’ ืื™ืžืคึผืึธืจื˜ื™ืจื˜, ืื•ืžืจืขื›ื˜ ื•ื•ืขืจืกื™ืขืก ื.ื.ื•ื•. ื“ืขืจ ืฆื™ืœ ืื™ื– ืฆื• ื›ืึทืคึผืŸ ืงื™ื™ืŸ ืื•ืŸ ืึทืœืข ืคึผืจืึธื‘ืœืขืžืก, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืฆื•ืงื•ื ืคึฟื˜ ืึธื ืขืก, ืื™ื™ื“ืขืจ ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ื•ื•ื™ื™ืกื˜ ื•ื•ืขื’ืŸ ืื™ื (ื“ืึธืก ืื™ื– ื•ื•ืึธืก ืขืก ืื™ื– ื ื™ื˜ ืžืขื’ืœืขืš ืฆื• ื™ื ืกื˜ืึทืœื™ืจืŸ ืึทื•ื•ืจื“ื•ื“ืข, ื•ื•ื™ื™ึทืœ ื“ื™ ื“ืขืคึผืขื ื“ืขื ืกื™ ืื™ื– ื’ืขื•ื•ืขืŸ ืึทืงืฉืœื™ ืกืคึผืขืกื™ืคื™ืขื“ ืื™ืŸ ื“ืขื ืจืขืฆืขืคึผื˜). ืœื™ื‘ืจืึทืจื™ืขืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ื‘ืœื•ื™ื– ื™ื—ื™ื“ ืคึผืึทืงืึทื“ื–ืฉืึทื– ืึธื“ืขืจ ืืคื™ืœื• ืกืคึผืขืฆื™ืคื™ืฉ SO ื•ื•ืขืจืกื™ืขืก. HaikuPorter ื™ื ืฉื•ืจื– ืึทื– ืึทืœืข ื“ืขื ืื™ื– ื‘ืืžืขืจืงื˜ ืื™ืŸ ื“ื™ ืจืขืกืึทืคึผื™ื– ื–ื™ืš ืฆื• ื•ื™ืกืžื™ื™ื“ืŸ ืขืจืจืึธืจืก ื‘ืขืฉืึทืก ื“ื•ืจื›ืคื™ืจื•ื ื’.

ืื™ืŸ ืคึผืจื™ื ืฆื™ืคึผ, ื“ืขื ืžื“ืจื’ื” ืคื•ืŸ ืฉื˜ืจืขื ื’ืงื™ื™ึทื˜ ืื™ื– ื’ืขืจืขื›ื˜ืคืืจื˜ื™ืงื˜ ื•ื•ืขืŸ ืงืจื™ื™ื™ื˜ื™ื ื’ ืึทืŸ ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื, ืึธื‘ืขืจ ืขืก ืžื™ื™ื ื˜ ื•ืžื ื™ื™ื˜ื™ืง ืฆื• ืžื™ืจ ืคึฟืึทืจ ืึท "ื”ืขืœื ื•ื•ืขืœื˜" ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ. ืื™ืš ื‘ืึทืฉืœืึธืกืŸ ืฆื• ืคึผืจื•ื‘ื™ืจืŸ ืขืคึผืขืก ืึทื ื“ืขืจืฉ.

ื‘ื•ื™ืขืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืื™ืŸ ื”ืคึผืงื’ ืคึฟืึธืจืžืึทื˜ ืžื™ื˜ ื“ื™ ื‘ืึทืคึฟืขืœ "ืคึผืขืงืœ ืฉืึทืคึฟืŸ".

ื–ืืœ ื–ื™ื™ืŸ, ื“ืขื ื•ื•ืขื˜ ืคึผืฉื•ื˜ ื™ื ืกื˜ืจืึทืงืฉืึทื ื– ืึทืจื‘ืขื˜ ื‘ืขืกืขืจ ืคึฟืึทืจ ืžื™ืจ?

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

ืื™ืš ื‘ื™ืŸ ื’ืึทื ืฅ ื–ื™ื›ืขืจ ืึทื– ื“ืขื ื˜ืจื™ืง ื•ื•ืขื˜ ืึทืจื‘ืขื˜ืŸ, ืึธื‘ืขืจ ื“ื™ ืคึฟืจืื’ืŸ ื‘ืœื™ื™ื‘ืŸ: ื•ื•ืึธืก ืื™ื– ื“ืึธืก ื ื™ื™ื˜ื™ืง, ืคึฟืึทืจ ื•ื•ืึธืก? ืื™ืš ื˜ืจืึทื›ื˜ืŸ ื“ืึธืก ืจื•ื™ื ืก ื“ื™ ืงื•ื™ืœืขืœื“ื™ืง ืจื•ืฉื ืึทื– ื“ื™ ืกื™ืกื˜ืขื ืื™ื– ืึทื–ื•ื™ ืกืึทืคื™ืกื˜ืึทืงื™ื™ื˜ื™ื“.

ื•ื•ื™ ื“ืขืจืงืœืขืจื˜ ื“ื•ืจืš ืžืจ. ื•ื•ืึทื“ืœืคึผืœืึทืฉ:

ืžืืœ ืขืก ื–ืขื ืขืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื•ื•ืึธืก ืื ื“ืขืจืข ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื“ืึทืจืคึฟืŸ ืึธื‘ืขืจ ื–ืขื ืขืŸ ื ื™ืฉื˜ ืื™ืŸ ื“ื™ ืžืขื ื™ื•. ืœืžืฉืœ, LegacyPackageInstaller ืื™ืŸ ื“ื™ื™ืŸ ืกืงืจืขืขื ืฉืึธื˜, ืคึผืจืึทืกืขืกื™ื ื’ .pkg ืึทืจืงื™ื™ื•ื•ื– ืื™ืŸ ื‘ืขืึธืก ืคึฟืึธืจืžืึทื˜. ืื™ืš ื•ื•ืึธืœื˜ ื•ื•ื™ ืฆื• ื™ื ืกื˜ืึทืœื™ืจืŸ ื–ื™ื™, ืึธื‘ืขืจ ื–ื™ื™ืขืจ ื‘ื™ื™ึทื–ื™ื™ึทืŸ ืื™ืŸ ื“ื™ ืžืขื ื™ื• ื•ื•ืขื˜ ืคื™ืจืŸ ืฆื• ืฆืขืžื™ืฉื•ื ื’.

ืคึฟืึทืจ ืขื˜ืœืขื›ืข ืกื™ื‘ื” ืขืก ืžื™ื™ื ื˜ ืฆื• ืžื™ืจ ืึทื– ืขืก ืื™ื– ืึท ืกื™ืžืคึผืœืขืจ ืœื™ื™ื–ื•ื ื’, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ Hidden=true ืื™ืŸ ื˜ืขืงืขืก .desktop ืื•ื™ืฃ ืœื™ื ื•ืงืก. ืคืืจื•ื•ืืก ื ื™ืฉื˜ ืžืึทื›ืŸ ื“ื™ "ืคืึทืจื‘ืึธืจื’ืŸ" ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืึท ืžื™ื˜ืœ ืื•ืŸ ืึทื˜ืจื™ื‘ื™ื•ื˜ ืคื•ืŸ ื“ื™ ื˜ืขืงืข ืกื™ืกื˜ืขื?

ื•ื•ืึธืก ืื™ื– ืกืคึผืขืฆื™ืขืœ ื ื™ืฉื˜ ืกืึทื˜ืึทืœ ืื™ื– ื“ื™ ื ืึธืžืขืŸ ืคื•ืŸ (ืขื˜ืœืขื›ืข) ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื•ื•ืึธืก ื•ื•ื™ื™ึทื–ืŸ ื“ื™ ืžืขื ื™ื•, deskbar, ืฉื˜ืจืขื ื’ ื’ืขื‘ื•ื ื“ืŸ ืฆื•ื–ืืžืขืŸ ื“ืขื ื•ื•ืขื’.

ื”ืขืจ. ื•ื•ืึทื“ื“ืœืขืกืคึผืœืึทืฉ ื“ืขืจืงืœืขืจื˜ ื“ืขื:

"ื“ืขืกืงื‘ืึทืจ" ืื™ืŸ ื“ืขื ืคืึทืœ ื–ืึธืœ ื–ื™ื™ืŸ ืคืืจืฉื˜ืื ืขืŸ ื•ื•ื™ ืึท ืžื™ืŸ ืคื•ืŸ ืึทืœื’ืขืžื™ื™ืŸ ื˜ืขืจืžื™ืŸ (ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื•ื•ืขื’ ื•ื•ื™ "ื˜ืึทืกืงื‘ืึทืจ", ื•ื•ืึธืก ืจืขืคืขืจืก ืฆื• ื‘ื™ื™ื“ืข ื“ื™ Windows ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื•ืŸ ื“ื™ ืึทืœื’ืขืžื™ื™ื ืข ื‘ืึทื’ืจื™ืฃ). ื ื•, ื–ื™ื ื˜ ื“ืขื deskbar, ื ื™ืฉื˜ "ื“ืขืกืงื‘ืึทืจ", ื“ืึธืก ืงืขืŸ ืื•ื™ืš ื–ื™ื™ืŸ ืคืืจืฉื˜ืื ืขืŸ ืื™ืŸ ืึท ืขื ืœืขืš ื•ื•ืขื’.

ืžื™ื™ึทืŸ ืคื™ื ืคื˜ ื˜ืึธื’ ืžื™ื˜ ื”ืึทื™ืงื•: ืœืึธืžื™ืจ ืคึผืึธืจื˜ ืขื˜ืœืขื›ืข ืžื’ื™ืœื”
2 "ื›ึผืžืขื˜ ื™ื™ื“ืขื ื™ืงืึทืœ" ื“ื™ืจืขืงื˜ืขืจื™ื– ืžื™ื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืื™ืŸ ื–ื™ื™

ืคืืจื•ื•ืืก ื–ืขื ืขืŸ ืขืก 2 ื“ื™ื™ืจืขืงื˜ืขืจื™ื– ืžื™ื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–, ืื•ืŸ ืื•ื™ืš ื•ื•ืึธืก ืื™ื– ืžื™ื™ืŸ QtQuick ืึทืคึผืคึผืœื™ืงืึทื˜ื™ืึธืŸ ืื™ืŸ ืื™ื™ืŸ, ืึธื‘ืขืจ ื ื™ืฉื˜ ืื™ืŸ ื“ื™ ืื ื“ืขืจืข? (ื“ืขื ืื™ื– ื“ืืš ื ื™ืฉื˜ ืื™ื™ืŸ ืกื™ืกื˜ืขื ืื™ื™ื ืก, ื ืืจ ื ืฆื•ื•ื™ื™ื˜ืขืจ ื‘ืื ื•ืฆืขืจ, ื•ื•ืืก ื•ื•ืืœื˜ ืžื™ืจ ืคืขืจื–ืขื ืœื™ืš ืคืืจืฉื˜ืขื ื“ืœื™ืš ื’ืขื•ื•ืขืŸ).
ืื™ืš ื‘ื™ืŸ ื˜ืึทืงืข ืฆืขืžื™ืฉื˜ ืื•ืŸ ืื™ืš ื˜ืจืึทื›ื˜ืŸ ื“ืึธืก ื–ืึธืœ ื–ื™ื™ืŸ ื™ื•ื ืึทืคื™ื™ื“.

ื‘ืึทืžืขืจืงื•ื ื’ ื“ื•ืจืš ืžืจ. ื•ื•ืึทื“ื“ืœืขืกืคึผืœืึทืฉ

ื“ื™ ืึทืคึผืคึผืก ืงืึทื˜ืึทืœืึธื’ ื›ึผื•ืœืœ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื•ื•ืึธืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ื“ืืจืฃ ืื™ืŸ ื“ื™ ืžืขื ื™ื•. ืึธื‘ืขืจ ื“ื™ ืกื™ื˜ื•ืึทืฆื™ืข ืžื™ื˜ ื“ื™ ืžืขื ื™ื• ื˜ืึทืงืข ื“ืึทืจืฃ ื–ื™ื™ืŸ ื™ืžืคึผืจื•ื•ื•ื“, ืฆื• ืžืึทื›ืŸ ืขืก ืžืขืจ ืงื•ืกื˜ืึธืžื™ื–ืึทื‘ืœืข.

ืึทืคึผืคึผืœื™ืงืึทื˜ื™ืึธืŸ, ืึธื“ืขืจ ืขืก ื•ื•ืขื˜ ื ื™ืฉื˜ ืคึผืึทืกื™ืจืŸ ๐Ÿ˜‰

ืื™ืš ื’ืขื—ื™ื“ื•ืฉื˜: ืื™ื– ืขืก ื˜ืึทืงืข ื ื™ื™ื˜ื™ืง ืฆื• ื‘ืึทืœืขื‘ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืื™ืŸ /system/apps, ืื•ื™ื‘ ื™ื•ื–ืขืจื– ื–ืขืŸ ื–ื™ื™ ื“ืึธืจื˜, ืขืก ืื™ื– ืึทื ื“ื™ื–ื™ื™ืจืึทื‘ืึทืœ. ืืคึฟืฉืจ ืขืก ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ื‘ืขืกืขืจ ืฆื• ืฉื˜ืขืœืŸ ื–ื™ื™ ืื™ืŸ ืืŸ ืื ื“ืขืจ ืึธืจื˜ ื•ื•ื• ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ื•ื•ืขื˜ ื ื™ืฉื˜ ื˜ืจืขืคืŸ ื–ื™ื™? ืคึผื•ื ืงื˜ ื•ื•ื™ ืขืก ืื™ื– ื’ืขืฉืขืŸ ืื™ืŸ ืžืขืง ืึทืก ืจืขื ื˜ื’ืขื , ื•ื•ื• ื“ื™ ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ืคึผืึทืงืึทื“ื–ืฉืึทื– .app, ื•ื•ืึธืก ื–ืึธืœ ื ื™ื˜ ื–ื™ื™ืŸ ืงืขื ื˜ื™ืง ืฆื• ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ืื™ืŸ /Applications, ื›ื™ื™ื“ื™ื ื’ ืื™ืŸ ื“ื™ ื˜ื™ืคืขื ื™ืฉืŸ ืคื•ืŸ /ืกื™ืกื˜ืขื/ื‘ื™ื‘ืœื™ืึธื˜ืขืง/...โ€œ`.

ื•ื•ืึธืก ื•ื•ืขื’ืŸ ื“ื™ืคึผืขื ื“ืึทื ืกื™ื–?

ืื™ืš ื˜ืจืึทื›ื˜ืŸ ืขืก ืื™ื– ื•ื•ืขืจื˜ ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ื“ื™ ื“ื™ืคึผืขื ื“ืึทื ืกื™ื– ืขืคืขืก, ืจืขื›ื˜? ืงืขื ืขืŸ Qt ื–ื™ื™ืŸ ืงืึทื ืกื™ื“ืขืจื“ ื•ื•ื™ ืึท ืžืึทื ื“ืึทื˜ืึธืจื™ ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ Haiku ื™ื ืกื˜ืึทืœื™ืจื•ื ื’ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜? ื ื™ื™ืŸ! Qt ืื™ื– ื ื™ืฉื˜ ืื™ื ืกื˜ืึทืœื™ืจืŸ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜. ืงืขื ืขืŸ ืึท ืคึผืขืงืœ ื‘ื™ืœื“ืขืจ ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ื“ืขื˜ืขืงื˜ ื“ื™ืคึผืขื ื“ืึทื ืกื™ื– ื“ื•ืจืš ืงืึธื ื˜ืจืึธืœื™ืจื•ื ื’ ELF ื˜ืขืงืขืก? ืื™ืš ืื™ื– ื’ืขื•ื•ืขืŸ ื“ืขืจืฆื™ื™ืœื˜ ืึทื– HaikuPorter ืึทืงืฉืœื™ ื˜ื•ื˜ ื“ืึธืก, ืึธื‘ืขืจ package ื ื™ื™ืŸ. ื“ืึธืก ืื™ื– ื•ื•ื™ื™ึทืœ ืขืก ืื™ื– ื ืึธืจ ืึท "ืคึผืขืงืœ ื‘ื™ืœื“ืขืจ" ื•ื•ืึธืก ื ืึธืจ ืงืจื™ื™ื™ืฅ ื˜ืขืงืขืก ืื•ื™ืฃ ื–ื™ืš hpkg.

ื–ืึธืœ ื”ืึทื™ืงื• ื•ื•ืขืจืŸ ืžืขืจ ืกืึทืคื™ืกื˜ืึทืงื™ื™ื˜ื™ื“ ื“ื•ืจืš ืฆื•ื’ืขื‘ืŸ ืึท ืคึผืึธืœื™ื˜ื™ืง ืึทื– ืึท ืคึผืขืงืœ ื–ืึธืœ ื ื™ืฉื˜ ื”ืึธื‘ืŸ ื“ื™ืคึผืขื ื“ืึทื ืกื™ื– ืื•ื™ืฃ ืคึผืึทืงืึทื“ื–ืฉืึทื– ืึทืจื•ื™ืก ืคื•ืŸ ื”ืึทื™ืงื•? haikuports? (ืื™ืš ื•ื•ืึธืœื˜ ื•ื•ื™, ื•ื•ื™ื™ึทืœ ืึทื–ืึท ืึท ืคึผืึธืœื™ื˜ื™ืง ื•ื•ืึธืœื˜ ืžืึทื›ืŸ ื“ื™ ื˜ื™ื ื’ื– ืคื™ืœ ื’ืจื™ื ื’ืขืจ - ื“ื™ ืกื™ืกื˜ืขื ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ื‘ื™ื›ื•ืœืช ืฆื• ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ื”ืึทืœื˜ืŸ ื“ื™ ื“ื™ืคึผืขื ื“ืึทื ืกื™ื– ืคื•ืŸ ื™ืขื“ืขืจ ืคึผืขืงืœ ื“ืึทื•ื ืœืึธื•ื“ื™ื“ ืคื•ืŸ ืขืจื’ืขืฅ, ืึธืŸ ืžืขืกื˜ืŸ ืžื™ื˜ ื ืึธืš ืคึผืขืงืœ ืงื•ื•ืืœืŸ.)

ื”ืขืจ. ื•ื•ืึทื“ื“ืœืขืกืคึผืœืึทืฉ ื“ืขืจืงืœืขืจื˜:

ืžื™ืจ ื•ื•ืึธืœื˜ ื ื™ืฉื˜ ื•ื•ื™ ืฆื• ื‘ืึทื’ืจืขื ืขืฆืŸ ื“ื™ ืคืจื™ื™ื”ื™ื™ื˜ ืคื•ืŸ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ืึทื–ื•ื™ ืคื™ืœ, ื•ื•ื™ื™ึทืœ ืขืก ืื™ื– ืงืœืึธืจ ื•ื•ื™ ื“ืขืจ ื˜ืึธื’ ืึทื– ืื•ื™ื‘ CompanyX ื•ื•ื™ืœ ืฆื• ืฉื˜ื™ืฆืŸ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ื’ืึทื ื’ ืคื•ืŸ ื•ื•ื™ื™ื›ื•ื•ืืจื’ ืžื™ื˜ ื“ื™ืคึผืขื ื“ืึทื ืกื™ื– (ืื•ืŸ ื“ืขืจื™ื‘ืขืจ ืึท ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™), ืขืก ื•ื•ืขื˜ ื˜ืึธืŸ ื“ืึธืก ื’ืึธืจ ืคืจื™ื™.

ืื™ืŸ ื“ืขื ืคืึทืœ, ืขืก ืงืขืŸ ื–ื™ื™ืŸ ื•ื•ืขืจื˜ ืจืขืงืึทืžืขื ื“ื™ื“ ืึทื– ื“ืจื™ื˜-ืคึผืึทืจื˜ื™ื™ ืคึผืึทืงืึทื“ื–ืฉืึทื– ื•ื™ืกืžื™ื™ื“ืŸ ื“ื™ืคึผืขื ื“ืึทื ืกื™ื– ืื•ื™ืฃ ืขืคึผืขืก ื•ื•ืึธืก ืื™ื– ื ื™ืฉื˜ ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืื™ืŸ ื”ืึทื™ืงื•ืคึผืึธืจืฅ ื“ื•ืจืš ื’ืึธืจ ืคึผืึทืงืงืึทื’ื™ื ื’ ืึทืœืฅ ืื™ืจ ื“ืึทืจืคึฟืŸ ืžื™ื˜ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ. ืึธื‘ืขืจ ืื™ืš ื˜ืจืึทื›ื˜ืŸ ื“ืึธืก ืื™ื– ืึท ื˜ืขืžืข ืคึฟืึทืจ ืึท ืฆื•ืงื•ื ืคึฟื˜ ืึทืจื˜ื™ืงืœ ืื™ืŸ ื“ืขื ืกืขืจื™ืข. [ืื™ื– ื“ืขืจ ืžื—ื‘ืจ ื’ืขื’ืื ื’ืขืŸ ืฆื• AppImage? โ€” ื‘ืขืขืจืขืš. ืื™ื‘ืขืจื–ืขืฆืขืจ]

ืึทื“ื™ื ื’ ืึท ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื™ื™ืงืึทืŸ

ื•ื•ืึธืก ืื•ื™ื‘ ืื™ืš ื•ื•ื™ืœืŸ ืฆื• ืœื™ื™ื’ืŸ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืฆื™ื›ื˜ื™ืง ื’ืขื‘ื•ื™ื˜-ืื™ืŸ ื™ื™ืงืึทื ื– ืฆื• ื“ื™ ืจืขืกื•ืจืกืŸ ืคื•ืŸ ืžื™ื™ืŸ ื ื™ื™ ื‘ืืฉืืคืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ? ืขืก ื˜ื•ืจื ืก ืื•ื™ืก ืึทื– ื“ืึธืก ืื™ื– ืึทืŸ ืึทืžื™ื™ื–ื™ื ื’ ื˜ืขืžืข, ืึทื–ื•ื™ ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ื™ ื™ืงืขืจ ืคึฟืึทืจ ื“ื™ ื•ื•ื™ื™ึทื˜ืขืจ ืึทืจื˜ื™ืงืœ.

ื•ื•ื™ ืฆื• ืึธืจื’ืึทื ื™ื–ื™ืจืŸ ืงืขืกื™ื™ื“ืขืจื“ื™ืง ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื‘ื•ื™ืขืŸ?

ื™ืžืึทื“ื–ืฉืึทืŸ ืึท ืคึผืจื•ื™ืขืงื˜ ื•ื•ื™ ื™ื ืงืกืงืึทืคึผืข (ื™ืึธ, ืื™ืš ื‘ื™ืŸ ืึทื•ื•ืขืจ ืึทื– ืขืก ืื™ื– ื ืึธืš ื ื™ืฉื˜ ื‘ื ื™ืžืฆื ืื™ืŸ Haiku, ืึธื‘ืขืจ ืขืก ืื™ื– ื‘ืึทืงื•ื•ืขื ืฆื• ื•ื•ื™ื™ึทื–ืŸ ืขืก). ื–ื™ื™ ื”ืึธื‘ืŸ ืึท ืžืงื•ืจ ืงืึธื“ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ https://gitlab.com/inkscape/inkscape.
ื™ืขื“ืขืจ ืžืึธืœ ื•ื•ืขืŸ ืขืžืขืฆืขืจ ืงืึทืžื™ืฅ ื–ื™ื™ืขืจ ืขื ื“ืขืจื•ื ื’ืขืŸ ืฆื• ื“ื™ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™, ื‘ื•ื™ืขืŸ ืคึผื™ื™ืคึผืœื™ื™ื ื– ื–ืขื ืขืŸ ืœืึธื ื˜ืฉื˜, ื ืึธืš ื•ื•ืึธืก ื“ื™ ืขื ื“ืขืจื•ื ื’ืขืŸ ื–ืขื ืขืŸ ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ื˜ืขืกื˜ืขื“, ื’ืขื‘ื•ื™ื˜, ืื•ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืคึผืึทืงื™ื“ื–ืฉื“ ืื™ืŸ ืคืึทืจืฉื™ื“ืŸ ืคึผืึทืงืึทื“ื–ืฉืึทื–, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ AppImage ืคึฟืึทืจ ืœื™ื ื•ืงืก (ืึท ืกื˜ืึทื ื“ืึทืœืึธื ืข ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืคึผืขืงืœ ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื“ืึทื•ื ืœืึธื•ื“ื™ื“ ืคึฟืึทืจ ื”ื™ื’ืข ื˜ืขืกื˜ื™ื ื’ ืจืึทื’ืึทืจื“ืœืึทืก. ื•ื•ืึธืก ืงืขืŸ ืึธื“ืขืจ ืงืขืŸ ื ื™ืฉื˜ ื–ื™ื™ืŸ ืื™ื ืกื˜ืึทืœื™ืจืŸ ืื•ื™ืฃ ื“ื™ ืกื™ืกื˜ืขื [ืื™ืš ื”ืื‘ ื’ืขื•ื•ื™ืกื˜! โ€” ื‘ืขืขืจืขืš. ืื™ื‘ืขืจื–ืขืฆืขืจ]). ื“ื™ ื–ืขืœื‘ืข ื–ืึทืš ื›ืึทืคึผืึทื ื– ืžื™ื˜ ื™ืขื“ืขืจ ืฆื•ื•ื™ื™ึทื’ ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ื‘ืขื˜ืŸ, ืึทื–ื•ื™ ืื™ืจ ืงืขื ืขืŸ ืืจืืคืงืืคื™ืข ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื’ืขื‘ื•ื™ื˜ ืคื•ืŸ ื“ื™ ืงืึธื“ ืคืืจื’ืขืœื™ื™ื’ื˜ ืื™ืŸ ื“ื™ ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ื‘ืขื˜ืŸ ืื™ื™ื“ืขืจ ืžืขืจื“ื–ืฉื™ื ื’.

ืžื™ื™ึทืŸ ืคื™ื ืคื˜ ื˜ืึธื’ ืžื™ื˜ ื”ืึทื™ืงื•: ืœืึธืžื™ืจ ืคึผืึธืจื˜ ืขื˜ืœืขื›ืข ืžื’ื™ืœื”
ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ืจื™ืงื•ื•ืขืก ืžื™ื˜ ื‘ื•ื™ืขืŸ ืกื˜ืึทื˜ื•ืกืขืก ืื•ืŸ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืึธืคึผืœืึธื“ื™ืจืŸ ื“ื™ ืงืึทืžืคึผื™ื™ืœื“ ื‘ื™ื ืึทืจื™ืขืก ืื•ื™ื‘ ื“ื™ ื‘ื•ื™ืขืŸ ืื™ื– ื’ืขืจืึธื˜ืŸ (ื’ืขืฆื™ื™ื›ื ื˜ ืื™ืŸ ื’ืจื™ืŸ)

ื“ื™ ื‘ื•ื™ืขืŸ ืœื•ื™ืคื˜ ืื™ืŸ ื“ืึธืงืงืขืจ ืงืึทื ื˜ื™ื™ื ืขืจื–. GitLab ืึธืคืคืขืจืก ืคืจื™ื™ ืจืึทื ืขืจื– ืื•ื™ืฃ ืœื™ื ื•ืงืก, ืื•ืŸ ืื™ืš ื˜ืจืึทื›ื˜ืŸ ืขืก ืงืขืŸ ื–ื™ื™ืŸ ืžืขื’ืœืขืš ืฆื• ืึทืจื™ื™ึทื ื ืขืžืขืŸ ื“ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืจืึทื ืขืจื– (ืื’ื‘, ืื™ืš ื˜ืึธืŸ ื ื™ื˜ ื–ืขืŸ ื•ื•ื™ ื“ืึธืก ื•ื•ืึธืœื˜ ืึทืจื‘ืขื˜ ืคึฟืึทืจ ืกื™ืกื˜ืขืžืขืŸ ื•ื•ื™ Haiku, ื•ื•ืึธืก ืื™ืš ื•ื•ื™ืกืŸ ื˜ืึธืŸ ื ื™ื˜ ื”ืึธื‘ืŸ ื“ืึธืงืขืจ ืึธื“ืขืจ ืขืงื•ื•ื™ื•ื•ืึทืœืขื ื˜, ืึธื‘ืขืจ ืื•ื™ืš ืคึฟืึทืจ FreeBSD ืขืก ืื™ื– ืงื™ื™ืŸ ื“ืึธืงืงืขืจ, ืึทื–ื•ื™ ื“ืขื ืคึผืจืึธื‘ืœืขื ืื™ื– ื ื™ืฉื˜ ื™ื™ื ืฆื™ืง ืฆื• Haiku).

ื™ื“ืขืึทืœืœื™, Haiku ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื‘ื•ื™ื˜ ืื™ืŸ ืึท ื“ืึธืงืงืขืจ ืงืึทื ื˜ื™ื™ื ืขืจ ืคึฟืึทืจ ืœื™ื ื•ืงืก. ืื™ืŸ ื“ืขื ืกื™ื˜ื•ืึทืฆื™ืข, ื“ื™ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ืคึฟืึทืจ ื”ืึทื™ืงื• ืงืขื ืขืŸ ื–ื™ื™ืŸ ื‘ืึทืงืขื ืขื  ืื™ืŸ ื™ื’ื–ื™ืกื˜ื™ื ื’ ืคึผื™ื™ืคึผืœื™ื™ื ื–. ื–ืขื ืขืŸ ื“ืึธืจื˜ ืงืจื™ื™ึทื– ืงืึธืžืคึผื™ืœืขืจืก? ืึธื“ืขืจ ื–ืึธืœ ืื™ืš ืขืžื™ืึทืœื™ื™ื˜ ืึทืœืข ื”ืึทื™ืงื• ืื™ืŸ ืึท ื“ืึธืงืงืขืจ ืงืึทื ื˜ื™ื™ื ืขืจ ืžื™ื˜ ืขืคึผืขืก ื•ื•ื™ QEMU / KVM (ืึทืกื•ืžื™ื ื’ ืขืก ื•ื•ืขื˜ ืึทืจื‘ืขื˜ืŸ ืึทื–ื•ื™ ืื™ืŸ ื“ืึธืงืงืขืจ)? ื“ื•ืจืš ื“ืขื ื•ื•ืขื’, ืคื™ืœืข ืคึผืจืึทื“ื–ืฉืขืงืก ื ื•ืฆืŸ ืขื ืœืขืš ืคึผืจื™ื ืฆื™ืคึผืŸ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, Scribus ื˜ื•ื˜ ื“ืึธืก - ืขืก ืื™ื– ืฉื•ื™ืŸ ื‘ื ื™ืžืฆื ืคึฟืึทืจ Haiku. ืื™ื™ืŸ ื˜ืึธื’ ื•ื•ืขื˜ ืงื•ืžืขืŸ ื“ืขืจ ื˜ืึธื’ ื•ื•ืขืŸ ืื™ืš ืงืขื ืขืŸ ืฉื™ืงืŸ ืึทื–ืึท ืฆื™ืขืŸ ืจื™ืงื•ื•ืขืก ืฆื• ืื ื“ืขืจืข ืคึผืจืึทื“ื–ืฉืขืงืก ืฆื• ืœื™ื™ื’ืŸ Haiku ืฉื˜ื™ืฆืŸ.

ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ื“ืขืจืงืœืขืจื˜:

ืคึฟืึทืจ ืื ื“ืขืจืข ืคึผืจืึทื“ื–ืฉืขืงืก ื•ื•ืึธืก ื•ื•ื™ืœืŸ ืฆื• ืฉืึทืคึฟืŸ ืคึผืึทืงืึทื“ื–ืฉืึทื– ื–ื™ืš, ื“ื™ ืจืขื’ื•ืœืขืจ CMake / CPack ืื•ืคึฟืŸ ืื™ื– ื’ืขืฉื˜ื™ืฆื˜. ืื ื“ืขืจืข ื‘ื•ื™ืขืŸ ืกื™ืกื˜ืขืžืขืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืฉื˜ื™ืฆื˜ ื“ื•ืจืš ืจื•ืคืŸ ื“ื™ ืคึผืขืงืœ ืก ื‘ื•ื™ืขืŸ ืคึผืจืึธื’ืจืึทื ื’ืœื™ื™ึทืš, ื•ื•ืึธืก ืื™ื– ืคื™ื™ึทืŸ ืื•ื™ื‘ ืžืขื ื˜ืฉืŸ ื–ืขื ืขืŸ ืื™ื ื˜ืขืจืขืกื™ืจื˜ ืื™ืŸ ืขืก. ื“ืขืจืคืึทืจื•ื ื’ ื•ื•ื™ื™ื–ื˜: ื‘ื™ื– ืื™ืฆื˜ ืขืก ืื™ื– ื ื™ืฉื˜ ื’ืขื•ื•ืขืŸ ืคื™ืœ ืื™ื ื˜ืขืจืขืก, ืึทื–ื•ื™ ื”ืื™ืงื•ืคึผืึธืจื˜ืขืจ ื’ืขืืจื‘ืขื˜ ื•ื•ื™ ื‘ืึทืงื•ื•ืขื ืคึฟืึทืจ ืื•ื ื“ื–, ืึธื‘ืขืจ, ืœืขืกืึธืฃ, ื‘ื™ื™ื“ืข ืžืขื˜ื”ืึธื“ืก ื–ืึธืœ ืึทืจื‘ืขื˜ืŸ ืฆื•ื–ืึทืžืขืŸ. ืžื™ืจ ื–ืึธืœ ื‘ืึทืงืขื ืขืŸ ืึท ื’ืึทื ื’ ืคื•ืŸ ืžื›ืฉื™ืจื™ื ืคึฟืึทืจ ืงืจื™ื™ึทื–-ื‘ื ื™ืŸ ื•ื•ื™ื™ื›ื•ื•ืืจื’ ืคึฟื•ืŸ ืœื™ื ื•ืงืก ืึธื“ืขืจ ืงื™ื™ืŸ ืื ื“ืขืจืข ืกืขืจื•ื•ืขืจ ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื (ื”ืึทื™ืงื• ืื™ื– ื ื™ืฉื˜ ื“ื™ื–ื™ื™ื ื“ ืฆื• ืœื•ื™ืคืŸ ืื•ื™ืฃ ืกืขืจื•ื•ืขืจืก).

ืื™ืš ื’ืขื‘ืŸ ืึท ืฉื˜ื™ื™ืขื ื“ื™ืง ืึธื•ื•ืึทืฆื™ืข. ืจืขื’ื•ืœืขืจ ืœื™ื ื•ืงืก ื™ื•ื–ืขืจื– ืคื™ืจืŸ ืึทืœืข ื“ืขื ื ืึธืš ืžืึทืกืข ืื•ืŸ ื ืึธืš ื‘ืึทื’ืึทื–ืฉ (ื–ื™ื›ืขืจื”ื™ื™ื˜, ืฉื˜ืจืขื ื’ ืงืึธื ื˜ืจืึธืœ, ืืื–"ื• ื•) ื•ื•ืึธืก ืื™ื– ื ื™ื™ื˜ื™ืง ืคึฟืึทืจ ืึท ืกืขืจื•ื•ืขืจ ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื, ืึธื‘ืขืจ ื ื™ืฉื˜ ืคึฟืึทืจ ืึท ืคืขืจื–ืขื ืœืขื›ืข. ืึทื–ื•ื™ ืื™ืš ื’ืึธืจ ืฉื˜ื™ืžืขืŸ ืึทื– ืงืขื ืขืŸ ืฆื• ื‘ื•ื™ืขืŸ Haiku ืึทืคึผืคึผืก ืื•ื™ืฃ ืœื™ื ื•ืงืก ืื™ื– ื“ืขืจ ื•ื•ืขื’ ืฆื• ื’ื™ื™ืŸ.

ืกืึธืฃ

ืคึผืึธืจื˜ื™ื ื’ POSIX ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืฆื• Haiku ืื™ื– ืžืขื’ืœืขืš, ืึธื‘ืขืจ ืงืขืŸ ื–ื™ื™ืŸ ืžืขืจ ื˜ื™ื™ึทืขืจ ื•ื•ื™ ืึท ื˜ื™ืคึผื™ืฉ ืจื™ื‘ื™ืœื“. ืื™ืš ื•ื•ืึธืœื˜ ื‘ืืฉื˜ื™ืžื˜ ื–ื™ื™ืŸ ืกื˜ืึทืง ืžื™ื˜ ื“ืขื ืคึฟืึทืจ ืึท ืœืึทื ื’ ืฆื™ื™ึทื˜ ืื•ื™ื‘ ืขืก ืื™ื– ื ื™ืฉื˜ ืคึฟืึทืจ ื“ื™ ื”ื™ืœืฃ ืคื•ืŸ ืžืขื ื˜ืฉืŸ ืคื•ืŸ ื“ื™ #ื”ืึทื™ืงื• ืงืึทื ืึทืœ ืื•ื™ืฃ ื“ื™ irc.freenode.net ื ืขืฅ. ืื‘ืขืจ ืืคื™ืœื• ื–ื™ื™ ื”ืื‘ืŸ ื ื™ืฉื˜ ืฉื˜ืขื ื“ื™ืง ืžื™ื“ ื’ืขื–ืขืŸ ื•ื•ืึธืก ืื™ื– ืคืึทืœืฉ.

ืึทืคึผืคึผืœื™ืงืึทื˜ื™ืึธื ืก ื’ืขืฉืจื™ื‘ืŸ ืื™ืŸ Qt ื–ืขื ืขืŸ ืึทืŸ ื’ืจื™ื ื’ ื•ื™ืกื ืขื. ืื™ืš ืฉื˜ืขืœืŸ ืฆื•ื–ืึทืžืขืŸ ืึท ืคึผืฉื•ื˜ ื“ืขืžืึธ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืึธืŸ ืงื™ื™ืŸ ืคืจืื‘ืœืขืžืขืŸ.

ื‘ื•ื™ืขืŸ ืึท ืคึผืขืงืœ ืคึฟืึทืจ ืคึผืฉื•ื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืื™ื– ืื•ื™ืš ื’ืึทื ืฅ ื’ืจื™ื ื’, ืึธื‘ืขืจ ื‘ืœื•ื™ื– ืคึฟืึทืจ "ื˜ืจืึทื“ื™ืฉืึทื ืึทืœื™ ืจืขืœืขืึทืกืขื“" ืึธื ืขืก, ื“.ื”. ื•ื•ื™ื™ืœ ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ ืžืงื•ืจ ืงืึธื“ ืึทืจืงื™ื™ื•ื•ื– ื‘ื“ืขื” ืคึฟืึทืจ ืฉื˜ื™ืฆืŸ ืื™ืŸ ื”ื™ื™ืงื•ืคึผืึธืจืฅ. ืคึฟืึทืจ ืึท ืงืขืกื™ื™ื“ืขืจื“ื™ืง ื‘ื•ื™ืขืŸ (ื‘ื•ื™ืขืŸ ืคึฟืึทืจ ื™ืขื“ืขืจ ื™ื‘ืขืจื’ืขื‘ืŸ ืคื•ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ) ืžื™ื˜ GitHub, ืึทืœืฅ ืžื™ื™ื ื˜ ืฆื• ื–ื™ื™ืŸ ื ื™ืฉื˜ ืึทื–ื•ื™ ืคึผืฉื•ื˜. ื“ืึธ Haiku ืคื™ืœื– ืžืขืจ ื•ื•ื™ ืึท ืœื™ื ื•ืงืก ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’ ื•ื•ื™ ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ืื•ื™ืฃ ืึท ืžืขืง, ื•ื•ืขืŸ ืื™ืจ ื’ื™ื˜ ื“ื™ "ื‘ื•ื™ืขืŸ" ืงื ืขืคึผืœ ืื™ืŸ XCode ืื™ืจ ื‘ืึทืงื•ืžืขืŸ ืึท ืคึผืขืงืœ .app, ื’ืจื™ื™ื˜ ืฆื• ื–ื™ื™ืŸ ื™ื ืกืขืจื˜ืึทื“ ืื™ืŸ ืึท ื“ื™ืกืง ื‘ื™ืœื“ .dmg, ืฆื•ื’ืขื’ืจื™ื™ื˜ ืคึฟืึทืจ ืืจืืคืงืืคื™ืข ืื•ื™ืฃ ืžื™ื™ืŸ ื•ื•ืขื‘ื–ื™ื™ื˜ืœ.
ืงืขืกื™ื™ื“ืขืจื“ื™ืง ื‘ื•ื™ืขืŸ ืคื•ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืึท "ืกืขืจื•ื•ืขืจ" ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื, ืœืžืฉืœ, ืœื™ื ื•ืงืก, ื•ื•ืขื˜ ืจื•ื‘ึฟ ืžืกืชึผืžื ื•ื•ืขืจืŸ ืžืขื’ืœืขืš ืื•ื™ื‘ ืขืก ืื™ื– ืึท ืคืึธื“ืขืจื•ื ื’ ืคื•ืŸ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก, ืึธื‘ืขืจ ืื™ืŸ ื“ืขื ืžืึธืžืขื ื˜ ื“ื™ Haiku ืคึผืจื•ื™ืขืงื˜ ื”ืื˜ ืื ื“ืขืจืข, ืžืขืจ ื“ืจื™ื ื’ืœืขืš ื˜ืึทืกืงืก.

ืคึผืจื•ึผื•ื•ื˜ ืขืก ื–ื™ืš! ื ืึธืš ืึทืœืข, ื“ื™ Haiku ืคึผืจื•ื™ืขืงื˜ ื’ื™ื˜ ื‘ื™ืœื“ืขืจ ืคึฟืึทืจ ื‘ื•ื˜ื™ื ื’ ืคึฟื•ืŸ DVD ืึธื“ืขืจ ื•ืกื‘, ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ื˜ืขื’ืœืขืš. ืฆื• ื™ื ืกื˜ืึทืœื™ืจืŸ, ื ืึธืจ ืืจืืคืงืืคื™ืข ื“ื™ ื‘ื™ืœื“ ืื•ืŸ ืฉืจื™ื™ึทื‘ืŸ ืขืก ืฆื• ืึท ื‘ืœื™ืฅ ืคืึธืจ ื ื™ืฆืŸ ืขื˜ื˜ืฉืขืจ

ืฆื™ ืื™ืจ ื”ืึธื‘ืŸ ืงื™ื™ืŸ ืคืจืื’ืขืก? ืžื™ืจ ืœืึทื“ืŸ ืื™ืจ ืฆื• ื“ืขืจ ืจื•ืกื™ืฉ-ื’ืขืจืขื“ื˜ ื˜ืขืœืขื’ืจืึทื ืงืึทื ืึทืœ.

ื˜ืขื•ืช ืื™ื‘ืขืจื‘ืœื™ืง: ื•ื•ื™ ืฆื• ื“ืจื™ื™ืขืŸ ื–ื™ืš ืื™ืŸ ื“ื™ ืคึฟื™ืก ืื™ืŸ C ืื•ืŸ C ++. ื”ืึทื™ืงื• ืึทืก ืจืขืฆืขืคึผื˜ ื–ืึทืžืœื•ื ื’

ืคื•ืŸ ื“ืขืจ ืžื—ื‘ืจ ืื™ื‘ืขืจื–ืขืฆื•ื ื’: ื“ืึธืก ืื™ื– ื“ืขืจ ืคื™ื ืคื˜ืขืจ ืึทืจื˜ื™ืงืœ ืื™ืŸ ื“ืขืจ ืกืขืจื™ืข ื•ื•ืขื’ืŸ ื”ืื™ืงื•.

ืจืฉื™ืžื” ืคื•ืŸ ืึทืจื˜ื™ืงืœืขืŸ: ืขืจืฉื˜ืขืจ ื“ื™ ืจื’ืข ื“ืจื™ื˜ ืคืขืจื˜

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’