ํ•˜์ด์ฟ ์™€ ํ•จ๊ป˜ํ•œ XNUMX์ผ์ฐจ: ๋ช‡ ๊ฐ€์ง€ ํ”„๋กœ๊ทธ๋žจ์„ ํฌํŒ…ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ•˜์ด์ฟ ์™€ ํ•จ๊ป˜ํ•œ XNUMX์ผ์ฐจ: ๋ช‡ ๊ฐ€์ง€ ํ”„๋กœ๊ทธ๋žจ์„ ํฌํŒ…ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

TL; DR: ์ดˆ๋ณด์ž๋Š” Linux ์„ธ๊ณ„์—์„œ ์ผ๋ถ€ ํ”„๋กœ๊ทธ๋žจ์„ ์ด์‹ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋ฉด์„œ ์ฒ˜์Œ์œผ๋กœ Haiku๋ฅผ ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

ํ•˜์ด์ฟ ์™€ ํ•จ๊ป˜ํ•œ XNUMX์ผ์ฐจ: ๋ช‡ ๊ฐ€์ง€ ํ”„๋กœ๊ทธ๋žจ์„ ํฌํŒ…ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
hpkg ํ˜•์‹์œผ๋กœ ํŒจํ‚ค์ง€๋œ ๋‚˜์˜ ์ฒซ ๋ฒˆ์งธ Haiku ํฌํŒ… ํ”„๋กœ๊ทธ๋žจ

์ตœ๊ทผ์— ์ €๋Š” ๋†€๋ผ์šธ ์ •๋„๋กœ ์ข‹์€ PC์šฉ ์šด์˜์ฒด์ œ์ธ ํ•˜์ด์ฟ (Haiku)๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.
์˜ค๋Š˜์€ ์ด ์šด์˜์ฒด์ œ์— ์ƒˆ๋กœ์šด ํ”„๋กœ๊ทธ๋žจ์„ ํฌํŒ…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›Œ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฃผ์š” ์ดˆ์ ์€ Linux ๊ฐœ๋ฐœ์ž์˜ ๊ด€์ ์—์„œ Haiku๋กœ ์ „ํ™˜ํ•œ ์ฒซ ๊ฒฝํ—˜์— ๋Œ€ํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค. ํ•˜์ด์ฟ ๋ฅผ ์ฒ˜์Œ ๋‹ค์šด๋กœ๋“œํ•œ ์ง€ ์•„์ง ์ผ์ฃผ์ผ๋„ ๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋™์•ˆ ์ œ๊ฐ€ ์ €์ง€๋ฅธ ์–ด๋ฆฌ์„์€ ์‹ค์ˆ˜์— ๋Œ€ํ•ด ์‚ฌ๊ณผ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ €๋Š” ์„ธ ๊ฐ€์ง€ ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

  • ๊ฐ„๋‹จํ•œ CLI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํฌํŒ…
  • GUI์—์„œ Qt๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํฌํŒ…
  • ๊ทธ๋Ÿฐ ๋‹ค์Œ hpkg ํ˜•์‹์œผ๋กœ ํŒจํ‚ค์ง•ํ•ฉ๋‹ˆ๋‹ค(์•„์ง AppDir ๋ฐ AppImage๋ฅผ Haiku์— ์ ์šฉํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—...)

์‹œ์ž‘ํ•˜์ž. ์„น์…˜์—์„œ ๋ฌธ์„œ ะธ ๊ฐœ๋ฐœ,๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์œ„ํ‚ค HaikuPorts์—์„œ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉํ–ฅ์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ์˜จ๋ผ์ธ PDF ์ฑ…๋„ ์žˆ์Šต๋‹ˆ๋‹ค BeOS: ์œ ๋‹‰์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํฌํŒ….
467ํŽ˜์ด์ง€ - ์ด๊ฒƒ์€ 1997๋…„์˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค! ์†์„ ๋“ค์—ฌ๋‹ค ๋ณด๋Š” ๊ฒƒ์€ ๋ฌด์„ญ์ง€๋งŒ ์ตœ์„ ์„ ๋‹คํ•˜๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. โ€œBeOS๊ฐ€ POSIX์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์•„ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ ธ๋‹คโ€๋Š” ๊ฐœ๋ฐœ์ž์˜ ๋ง์€ ๊ณ ๋ฌด์ ์ด์ง€๋งŒ, ํ•˜์ด์ฟ ๋Š” โ€œ๋Œ€๋ถ€๋ถ„โ€ ์ด๋ฏธ ๊ทธ๋ ‡๋‹ค.

๊ฐ„๋‹จํ•œ CLI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํฌํŒ…

๊ฐ€์žฅ ๋จผ์ € ์ƒ๊ฐํ•œ ๊ฒƒ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ด์‹ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทผ์›, ๊ทธ๋Ÿฌ๋‚˜ ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ด๊ฒƒ์€ ์ด๋ฏธ ๋๋ƒˆ๋‹ค. ์˜›๋‚ ์—.

์ฒซ ๋ฒˆ์งธ ์‹œ๋„: ์‹œ์ฒญํ•  ํ•ญ๋ชฉ ์—†์Œ

์ดํ•ดํ•  ์ˆ˜ ์—†๋Š” ๊ฑด ์ด๋ฏธ ์•ฑ์€ 10๋…„ ๋„˜๊ฒŒ Haiku๋กœ ํฌํŒ…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. - OS ์ž์ฒด๊ฐ€ ์•„์ง 1.0 ๋ฒ„์ „์ด ์•„๋‹˜์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ .

๋‘ ๋ฒˆ์งธ ์‹œ๋„: ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผ ํ•จ

๊ทธ๋ž˜์„œ ๋‚˜๋Š” ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค ptouch-770, ๋ผ๋ฒจ ์ธ์‡„์— ์‚ฌ์šฉํ•˜๋Š” Brother P-Touch 770 ํ”„๋ฆฐํ„ฐ๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•œ CLI์ž…๋‹ˆ๋‹ค.
๊ทธ ์œ„์— ๋‹ค์–‘ํ•œ ๋ผ๋ฒจ์„ ์ธ์‡„ํ–ˆ๋Š”๋ฐ, ์ด๋ฏธ ์ด์ „ ๊ธ€์—์„œ ๋ณด์…จ์„ ๊ฒ๋‹ˆ๋‹ค. ์กฐ๊ธˆ ์ „์— ์ €๋Š” Python์œผ๋กœ ์ž‘์€ GUI ๋ž˜ํผ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค(Gtk+์— ์žˆ์œผ๋ฏ€๋กœ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋ฉฐ ์ด๊ฒƒ์ด ๋ฐฐ์›Œ์•ผ ํ•  ์ข‹์€ ์ด์œ ์ž…๋‹ˆ๋‹ค).

ํ•˜์ด์ฟ ์™€ ํ•จ๊ป˜ํ•œ XNUMX์ผ์ฐจ: ๋ช‡ ๊ฐ€์ง€ ํ”„๋กœ๊ทธ๋žจ์„ ํฌํŒ…ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
๋ธŒ๋ผ๋” P-Touch 770 ๋ผ๋ฒจ ํ”„๋ฆฐํ„ฐ, ํ•˜์ด์ฟ ์™€ ํ˜ธํ™˜๋˜๋‚˜์š”?

Haiku ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋ช…๋ น์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์‹คํ–‰ ์‹œ "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 ๊ธฐ๋ฐ˜์ด๋ฏ€๋กœ Haiku์—๋Š” ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ปดํŒŒ์ผํ•˜๋ ค๋Š” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํŽธ์ง‘ํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
์–ด, ๋จธ๋ฆฌ ์œ„๋กœ ๋›ฐ์–ด ๋„˜์„ ์ˆ˜๋„์—†๊ณ  ์–ด๋””์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์•ผํ• ์ง€์กฐ์ฐจ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

์„ธ ๋ฒˆ์งธ ์‹œ๋„

์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์š” tmate Haiku์˜ ๊ฒฝ์šฐ, ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•ด Haiku ๊ฐœ๋ฐœ์ž๊ฐ€ ๋‚ด ํ„ฐ๋ฏธ๋„ ์„ธ์…˜์— ์—ฐ๊ฒฐํ•˜๋„๋ก ํ—ˆ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ง€์นจ์€ ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

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

๋‹ค์‹œ ๋‚˜๋Š” 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 ๊ฐœ๋ฐœ์ž๋“ค๊ณผ ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆด๋Š”๋ฐ msgpack์— ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ๋ฐํ˜€์กŒ๊ณ  ๋ช‡ ๋ถ„ ํ›„์— HaikuPorts์— ํŒจ์น˜๊ฐ€ ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜์ •๋œ ํŒจํ‚ค์ง€๊ฐ€ ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€ ๋‚ด ๋ˆˆ์œผ๋กœ ์ง์ ‘ ํ™•์ธ ๊ฐ€๋Šฅ ์—ฌ๊ธฐ๋กœ ๊ฐ€ (buildslave - ๊ฐ€์ƒ ๋จธ์‹ ).

ํ•˜์ด์ฟ ์™€ ํ•จ๊ป˜ํ•œ XNUMX์ผ์ฐจ: ๋ช‡ ๊ฐ€์ง€ ํ”„๋กœ๊ทธ๋žจ์„ ํฌํŒ…ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
buildmaster์—์„œ ์ˆ˜์ •๋œ msgpack ๋นŒ๋“œ

๊ทธ ์‚ฌ์ด์— ์—…์ŠคํŠธ๋ฆผ์œผ๋กœ ํŒจ์น˜๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค. msgpack์— Haiku ์ง€์›์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด.

XNUMX๋ถ„ ํ›„ ์—…๋ฐ์ดํŠธ๋œ 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.

์—ฌ๊ธฐ์— ๋‚ด๊ฐ€ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์„ฑ.๋กœ๊ทธ.

๊ทธ๋“ค์€ Haiku์˜ libresolv ์™ธ์—๋„ libnetwork์— ๋‹ค๋ฅธ ๊ฒƒ์ด ์žˆ๋‹ค๊ณ  ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€๋กœ ํŽธ์ง‘ํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ƒ๊ฐํ•ด๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋‹คโ€ฆ

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

์˜์›ํ•œ ์งˆ๋ฌธ: ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š” ๊ฑธ๊นŒ์š”?

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

ํ”„๋กœํ•„์—์„œ๋งŒ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ๊ตฌ๊ธ€๋งํ•˜๊ณ  ์ด๊ฒƒ์„ ์ฐพ์•˜๋‹ค. ์ถ”๊ฐ€ํ•˜๋ฉด -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-creator (๊ทธ๊ฒƒ์€ ๋‚˜์—๊ฒŒ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ๋ณด๊ณ )

๋ฌด์—‡์„ ํ•ด์•ผํ• ์ง€ ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Hello World ์Šคํƒ€์ผ ์ดˆ๋ณด์ž ๊ฐ€์ด๋“œ, ์ด์ƒ์ ์œผ๋กœ๋Š” ๋น„๋””์˜ค๊ฐ€ ํ•„์š”ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. GNU hello์—์„œ์ฒ˜๋Ÿผ HaikuPorter์— ๋Œ€ํ•œ ํŽธ๋ฆฌํ•œ ์†Œ๊ฐœ๋„ ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‹ค์Œ์„ ์ฝ๊ณ  ์žˆ๋‹ค:

haikuporter Haiku์šฉ ๊ณตํ†ต ํŒจํ‚ค์ง€ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. HaikuPorts ์ €์žฅ์†Œ๋ฅผ ๋ชจ๋“  ํŒจํ‚ค์ง€์˜ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Haikuporter ๋ ˆ์‹œํ”ผ๋Š” ํŒจํ‚ค์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ถ”๊ฐ€์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

HaikuPorts ์ €์žฅ์†Œ์— ๋ ˆ์‹œํ”ผ๋ฅผ ์ €์žฅํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค๊ณ  ์—ฌ๊ธฐ์— ๋ ˆ์‹œํ”ผ๋ฅผ ๋„ฃ์€ ๋‹ค์Œ 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. ์ €์žฅ์†Œ์˜ ๋ชจ๋“  ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ์ข…์†์„ฑ์„ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ด์ฟ ํฌํŠธ, ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ปคํ”ผ๋ฅผ ๋งˆ์‹œ๋Ÿฌ ๊ฐˆ ๊ฒƒ์ด๋‹ค.

๋„๋Œ€์ฒด ์™œ ์ด ๊ฒ€์‚ฌ๋ฅผ ๋ชจ๋“  ์‚ฌ๋žŒ์— ๋Œ€ํ•ด ์„œ๋ฒ„ ์ค‘์•™์—์„œ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๊ณ  ๋‚ด ๋กœ์ปฌ ์ปดํ“จํ„ฐ์—์„œ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

์”จ์— ๋”ฐ๋ฅด๋ฉด ๋’ค๋šฑ๋’ค๋šฑ:

์ด๋ฅผ ํ†ตํ•ด ์ €์žฅ์†Œ์˜ ๋ชจ๋“  ํŒŒ์ผ์„ ๋‹ค์‹œ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿ˜‰ ๋งˆ์ง€๋ง‰ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋งค์šฐ ๋“œ๋ฌผ๊ธฐ ๋•Œ๋ฌธ์— ํ•„์š”ํ•  ๋•Œ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ์ด๋ฅผ ์•ฝ๊ฐ„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

ํฅ๋ฏธ๋กœ์šด ์งˆ๋ฌธ์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. ๋ ˆ์‹œํ”ผ์— ์ฒดํฌ์„ฌ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์ง€์†์ ์ธ ํ†ตํ•ฉ์„ ์œ„ํ•œ ์ตœ์‹  git ์ปค๋ฐ‹๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๊นŒ? (๊ฐœ๋ฐœ์ž ํ™•์ธ: "์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ ˆ์‹œํ”ผ๋Š” ๋น„๊ต์  ์•ˆ์ •์ ์œผ๋กœ ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.")

์žฌ๋ฏธ๋กœ ๋ ˆ์‹œํ”ผ์— ์ถ”๊ฐ€ํ•ด๋ณด์„ธ์š”:

CHECKSUM_SHA256="cf906a65442748c95df16730c66307a46d02ab3a12137f89076ec7018d8ce18c"

์—ฌ์ „ํžˆ ๋งŒ์กฑ์Šค๋Ÿฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

๊ทธ๋Š” ๋ฌด์—‡์„ ํ•˜๊ณ  ์žˆ๋‚˜์š”? ๊ฒฐ๊ตญ ์ด๊ฒƒ์€ git ์ €์žฅ์†Œ์ด๊ณ  ์ฝ”๋“œ๋Š” ์ด๋ฏธ ์ง์ ‘ ์กด์žฌํ•˜๋ฏ€๋กœ ์••์ถ•์„ ํ’€ ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‚ด ๊ด€์ ์—์„œ ๋ณด๋ฉด ์ด ๋„๊ตฌ๋Š” 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

์กฐ๊ธˆ ๋” ๋‚˜์•„๊ฐ€๊ณ  ์žˆ๋Š”๋ฐ ์™œ ๋‚˜์—๊ฒŒ ์†Œ๋ฆฌ๋ฅผ ์ง€๋ฅด๋ฉฐ(GitHub๋Š” ์•ˆ์ „ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค!) ์—ฌ์ „ํžˆ ๋ญ”๊ฐ€๋ฅผ ํ’€๋ ค๊ณ  ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์— ๋”ฐ๋ฅด๋ฉด ์”จ. ๋’ค๋šฑ๋’ค๋šฑ:

๋„ค, ๊ทธ ์ด์œ ๋Š” ์กฐ๋ฆฝ์„ ์œ„ํ•ด ๋ฐ›์€ ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ํ™•์ธํ•˜๋ ค๋Š” ์š•๊ตฌ ๋•Œ๋ฌธ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜๋Š” ์•„์นด์ด๋ธŒ์˜ ์ฒดํฌ์„ฌ์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด์ง€๋งŒ, ๋ฌผ๋ก  ๊ฐœ๋ณ„ ํŒŒ์ผ์„ ํ•ด์‹œํ•  ์ˆ˜๋„ ์žˆ๋Š”๋ฐ, ์ด๋Š” ๊ตฌํ˜„๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ›จ์”ฌ ๋” ์˜ค๋ž˜ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ git ๋ฐ ๊ธฐํƒ€ 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 ๋„คํŠธ์›Œํฌ์˜ #haiku ์ฑ„๋„์— ๊ฐ€์„œ ์ข‹์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋ฌผ์–ด๋ด…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋“ค ์—†์ด๋Š” ๋‚ด๊ฐ€ ์–ด๋””์— ์žˆ๊ฒ ๋Š”๊ฐ€? ํžŒํŠธ๋ฅผ ๋ฐ›์€ ํ›„ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค.

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

์ข‹์•„, ๊ทธ๊ฒƒ์ด ๋ฌด์—‡์„ ํ•˜๋Š”์ง€ ๋ถ„๋ช…ํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ํŠน์ • ๊ฐœ์ •ํŒ์˜ ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ ์•„์นด์ด๋ธŒ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ๊ด€์ ์—์„œ๋Š” ์–ด๋ฆฌ์„์€ ์ผ์ด๊ณ  ์ •ํ™•ํžˆ ๋‚ด๊ฐ€ ์›ํ–ˆ๋˜ ๊ฒƒ๊ณผ๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ฆ‰, ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์—์„œ ์ตœ์‹  ๊ฐœ์ •ํŒ์„ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž ์ค‘ ํ•œ ์‚ฌ๋žŒ์€ ์ด๋ ‡๊ฒŒ ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ž์ฒด CI๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฏ€๋กœ haikuports ์ €์žฅ์†Œ์— ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ๋ชจ๋“  ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ํŒจํ‚ค์ง€ํ™”๋˜๋ฉฐ "์ตœ์‹  ๋ฒ„์ „ ์—…์ŠคํŠธ๋ฆผ์˜ ๋ชจ๋“  ๊ฒƒ"์„ ์ˆ˜์ง‘ํ•˜๊ณ  ์ œ๊ณตํ•˜๋Š” ์œ„ํ—˜์„ ๊ฐ์ˆ˜ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ดํ•ดํ–ˆ๋‹ค! ์–ด์จŒ๋“  ์ผ์–ด๋‚œ ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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 ๋ฐ ์ €์žฅ์†Œ ํ•˜์ด์ฟ ํฌํŠธ "๊ทธ๋ƒฅ ์ž‘๋™ํ•œ๋‹ค"๋Š” ๋Š๋‚Œ์€ ์—†์ง€๋งŒ ๊ฐœ๋ฐœ์ž๋กœ์„œ Haiku๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์ข‹์•„ํ•˜๋Š” ์ ์ด ๋ช‡ ๊ฐ€์ง€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ Linux ๋นŒ๋“œ๋ฅผ ๋นŒ๋“œํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ ์„ธํŠธ์ธ Open Build Service์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋งค์šฐ ๊ฐ•๋ ฅํ•˜๊ณ  ์ฒด๊ณ„์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹์„ ๊ฐ–์ถ”๊ณ  ์žˆ์ง€๋งŒ ์ž‘์€ "hello world" ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๋Š” ๊ณผ๋„ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์‹œ, ์”จ์— ๋”ฐ๋ฅด๋ฉด. ๋’ค๋šฑ๋’ค๋šฑ:

์‹ค์ œ๋กœ HaikuPorter๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋งค์šฐ ์—„๊ฒฉํ•˜์ง€๋งŒ(๋”์šฑ ์—„๊ฒฉํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” lint ๋ชจ๋“œ์™€ strict ๋ชจ๋“œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค!) ๋‹จ์ง€ ํŒจํ‚ค์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ž‘๋™ํ•  ํŒจํ‚ค์ง€๋ฅผ ๋งŒ๋“ค๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋Š” ์„ ์–ธ๋˜์ง€ ์•Š์€ ์ข…์†์„ฑ, ์ œ๋Œ€๋กœ ๊ฐ€์ ธ์˜ค์ง€ ์•Š์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์ž˜๋ชป๋œ ๋ฒ„์ „ ๋“ฑ์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•ฉ๋‹ˆ๋‹ค. ๋ชฉํ‘œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋ฌธ์ œ์— ๋Œ€ํ•ด ์•Œ๊ธฐ ์ „์— ํ–ฅํ›„ ๋ฌธ์ œ๋ฅผ ํฌํ•จํ•˜์—ฌ ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ข…์†์„ฑ์ด ์‹ค์ œ๋กœ ๋ ˆ์‹œํ”ผ์— ์ง€์ •๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— avrdude๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์—†๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋‹จ์ˆœํ•œ ๊ฐœ๋ณ„ ํŒจํ‚ค์ง€๋‚˜ ํŠน์ • SO ๋ฒ„์ „์ด ์•„๋‹™๋‹ˆ๋‹ค. HaikuPorter๋Š” ์‹คํ–‰ ์ค‘ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ด ๋ชจ๋“  ๊ฒƒ์ด ๋ ˆ์‹œํ”ผ ์ž์ฒด์—์„œ ๊ด€์ฐฐ๋˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์›์น™์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ์ˆ˜์ค€์˜ ์—„๊ฒฉํ•จ์€ ์šด์˜ ์ฒด์ œ๋ฅผ ๋งŒ๋“ค ๋•Œ ์ •๋‹นํ™”๋˜์ง€๋งŒ "hello world" ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ๋Š” ๋ถˆํ•„์š”ํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹ค๋ฅธ ๊ฒƒ์„ ์‹œ๋„ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

"package create" ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ hpkg ํ˜•์‹์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ•

์–ด์ฉŒ๋ฉด ์ด ๊ฐ„๋‹จํ•œ ์ง€์นจ์ด ๋‚˜์—๊ฒŒ ๋” ํšจ๊ณผ์ ์ผ๊นŒ์š”?

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

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

packager "probono"
vendor "probono"

copyrights "probono"
licenses "MIT"

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

์˜ˆ์ƒ์™ธ๋กœ ๋น ๋ฅด๊ณ , ์˜ˆ์ƒ์™ธ๋กœ ๊ฐ„๋‹จํ•˜๋ฉฐ, ์˜ˆ์ƒ์™ธ๋กœ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค. ์ •ํ™•ํžˆ ๋‚ด๊ฐ€ ๊ทธ๊ฒƒ์„ ์–ผ๋งˆ๋‚˜ ์ข‹์•„ํ•˜๋Š”์ง€, ๋†€๋ž์Šต๋‹ˆ๋‹ค!

์„ค์น˜ - ๋ฌด์—‡์„, ์–ด๋””์„œ?

QtQuickApp.hpkg ํŒŒ์ผ์„ ๋‹ค์Œ์œผ๋กœ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค. ~/config/packagesํŒŒ์ผ ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด QtQuickApp์ด ๋งˆ์ˆ ์ฒ˜๋Ÿผ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ~/config/apps.
๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ์˜ˆ์ƒ์™ธ๋กœ ๋น ๋ฅด๊ณ  ๊ฐ„๋‹จํ•˜๋ฉฐ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค. ๋†€๋ž๊ณ , ๋ฏฟ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค!

ํ•˜์ง€๋งŒ... (๊ทธ๋“ค์ด ์—†์—ˆ๋‹ค๋ฉด ์šฐ๋ฆฌ๋Š” ์–ด๋””์— ์žˆ์—ˆ๊ฒ ๋Š”๊ฐ€!)

์•ฑ ๋ฉ”๋‰ด ๋ชฉ๋ก๊ณผ QuickLaunch์— ์•ฑ์ด ์—ฌ์ „ํžˆ ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๋ฏธ ๊ทธ๊ฒƒ์„ ๊ณ ์น˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ๊ด€๋ฆฌ์ž์—์„œ QtQuickApp.hpkg๋ฅผ ~/config/packages์—์„œ /system/packages๋กœ ์ด๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

์•„๋‹ˆ์š”, ์•„์ง ์‹ค์ข… ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ ๋‚˜๋Š” โ€‹โ€‹(์Œ, ๊ทธ๋ฆฌ๊ณ  ์ง€์นจ๋„) ๋ญ”๊ฐ€๋ฅผ ๋†“์ณค์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•ด HaikuDepot์˜ "Contents" ํƒญ์„ ์‚ดํŽด๋ณธ ๊ฒฐ๊ณผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŒŒ์ผ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. /data/mimedb/application/x-vnd... ๋”์šฑ ๋†€๋ผ์šด ๊ฒƒ์€ /data/deskbar/menu/Applications/โ€ฆ.

๊ทธ๋Ÿผ ๊ฑฐ๊ธฐ์— ๋ฌด์—‡์„ ๋„ฃ์–ด์•ผ ํ• ๊นŒ์š”? ์–ด์„œ ํ•ด๋ด์š”...

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

๋‚˜๋Š” ์ด ํŠธ๋ฆญ์ด ์„ฑ๊ณตํ•  ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ์งˆ๋ฌธ์ด ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์™œ ํ•„์š”ํ•œ์ง€, ๋ฌด์—‡์„ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๊นŒ? ์‹œ์Šคํ…œ์ด ๋„ˆ๋ฌด ์ •๊ตํ•˜๋‹ค๋Š” ์ „์ฒด์ ์ธ ์ธ์ƒ์„ ๋ง์น˜๋Š” ๊ฒƒ ๊ฐ™์•„์š”.

Mr.๋‹˜์ด ์„ค๋ช…ํ•ด์ฃผ์‹ ๋Œ€๋กœ ๋’ค๋šฑ๋’ค๋šฑ:

๋•Œ๋กœ๋Š” ๋‹ค๋ฅธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ํ•„์š”ํ•˜์ง€๋งŒ ๋ฉ”๋‰ด์— ์—†๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์Šคํฌ๋ฆฐ์ƒท์˜ LegacyPackageInstaller๋Š” BeOS ํ˜•์‹์˜ .pkg ์•„์นด์ด๋ธŒ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋“ค์ด ์„ค์น˜ํ•ด์คฌ์œผ๋ฉด ์ข‹๊ฒ ์ง€๋งŒ, ๋ฉ”๋‰ด์— ์กด์žฌํ•˜๋ฉด ํ˜ผ๋ž€์„ ์ดˆ๋ž˜ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์–ด๋–ค ์ด์œ ์—์„œ๋“  ๋” ๊ฐ„๋‹จํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. Hidden=true ํŒŒ์ผ์—์„œ .desktop ๋ฆฌ๋ˆ…์Šค์—์„œ. "์ˆจ๊ฒจ์ง„" ์ •๋ณด๋ฅผ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๋ฆฌ์†Œ์Šค์™€ ์†์„ฑ์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์–ด๋–จ๊นŒ์š”?

ํŠนํžˆ ๋ฏธ๋ฌ˜ํ•˜์ง€ ์•Š์€ ๊ฒƒ์€ ๋ฉ”๋‰ด๋ฅผ ํ‘œ์‹œํ•˜๋Š” (์ผ๋ถ€) ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ด๋ฆ„์ด๋ฉฐ, deskbar, ๊ธธ์„ ๋”ฐ๋ผ ๋‹จ๋‹จํžˆ ๋ฌถ์—ฌ ์žˆ์Šต๋‹ˆ๋‹ค.

์”จ. waddlesplash๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ "๋ฐ์Šคํฌ๋ฐ”"๋Š” ์ผ์ข…์˜ ์ผ๋ฐ˜ ์šฉ์–ด๋กœ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(Windows ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ ์ผ๋ฐ˜ ๊ฐœ๋…์„ ๋ชจ๋‘ ๊ฐ€๋ฆฌํ‚ค๋Š” "์ž‘์—… ํ‘œ์‹œ์ค„"๊ณผ ๊ฑฐ์˜ ๊ฐ™์€ ๋ฐฉ์‹). ๋ญ, ์ด๊ฒƒ๋ถ€ํ„ฐ deskbar, "Deskbar"๊ฐ€ ์•„๋‹ˆ๋ผ, ์ด๊ฒƒ๋„ ๋น„์Šทํ•œ ๋ฐฉ์‹์œผ๋กœ ์ดํ•ด๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ด์ฟ ์™€ ํ•จ๊ป˜ํ•œ XNUMX์ผ์ฐจ: ๋ช‡ ๊ฐ€์ง€ ํ”„๋กœ๊ทธ๋žจ์„ ํฌํŒ…ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํฌํ•จ๋œ "๊ฑฐ์˜ ๋™์ผํ•œ" ๋””๋ ‰ํ„ฐ๋ฆฌ 2๊ฐœ

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํฌํ•จ๋œ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ 2๊ฐœ ์žˆ๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ด๋ฉฐ QtQuickApplication์ด ํ•˜๋‚˜์—๋Š” ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ๋””๋ ‰ํ† ๋ฆฌ์—๋Š” ์—†๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? (๊ฒฐ๊ตญ ์ด๊ฒƒ์€ ํ•˜๋‚˜์˜ ์‹œ์Šคํ…œ์ด ์•„๋‹ˆ๋ผ ๊ฐœ์ธ์ ์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜์žˆ๋Š” ๋‘ ๋ฒˆ์งธ ์‚ฌ์šฉ์ž ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.)
์ •๋ง ํ˜ผ๋ž€์Šค๋Ÿฝ๊ณ  ํ†ต์ผ๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

Mr.์˜ ์ฝ”๋ฉ˜ํŠธ ๋’ค๋šฑ๋’ค๋šฑ

์•ฑ ์นดํƒˆ๋กœ๊ทธ์—๋Š” ๋ฉ”๋‰ด์— ํ•„์š”ํ•˜์ง€ ์•Š์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฉ”๋‰ด์˜ ์ƒํ™ฉ์€ ์ •๋ง ๊ฐœ์„ ๋˜์–ด ์‚ฌ์šฉ์ž ์ •์˜๊ฐ€ ๊ฐ€๋Šฅํ•ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‹ ์ฒญํ•˜์ง€ ์•Š์œผ๋ฉด ์ผ์–ด๋‚˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค ๐Ÿ˜‰

์ €๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์งˆ๋ฌธ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ๊ฒƒ์ด ์ •๋ง ํ•„์š”ํ•œ๊ฐ€์š”? /system/apps, ์‚ฌ์šฉ์ž๊ฐ€ ๊ฑฐ๊ธฐ์—์„œ ๋ณธ๋‹ค๋ฉด ๋ฐ”๋žŒ์งํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์–ด์ฉŒ๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘ํ•˜์ง€ ์•Š๋Š” ๋‹ค๋ฅธ ์žฅ์†Œ์— ๋ฐฐ์น˜ํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚ซ์ง€ ์•Š์„๊นŒ์š”? Mac OS X์—์„œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํŒจํ‚ค์ง€์˜ ๋‚ด์šฉ์ด .app, ์ด๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œ๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. /Applications, /System/Library/โ€ฆโ€œ`์˜ ๊นŠ์ด์— ์ˆจ์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ข…์†์„ฑ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ?

์–ด๋–ป๊ฒŒ๋“  ์ข…์†์„ฑ์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ฃ ? Qt๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ Haiku ์„ค์น˜์˜ ํ•„์ˆ˜ ๋ถ€๋ถ„์œผ๋กœ ๊ฐ„์ฃผ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ์š”! Qt๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ค์น˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€ ๋นŒ๋”๊ฐ€ ELF ํŒŒ์ผ์„ ํ™•์ธํ•˜์—ฌ ์ข…์†์„ฑ์„ ์ž๋™์œผ๋กœ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? HaikuPorter๊ฐ€ ์‹ค์ œ๋กœ ์ด๋Ÿฐ ์ผ์„ ํ•œ๋‹ค๊ณ  ๋“ค์—ˆ๋Š”๋ฐ, package ์•„๋‹ˆ์š”. ๊ทธ ์ด์œ ๋Š” ๋‹จ์ง€ ์Šค์Šค๋กœ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋Š” "ํŒจํ‚ค์ง€ ๋นŒ๋”"์ผ ๋ฟ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. hpkg.

ํŒจํ‚ค์ง€๊ฐ€ Haiku ์™ธ๋ถ€ ํŒจํ‚ค์ง€์— ์ข…์†๋˜์–ด์„œ๋Š” ์•ˆ ๋œ๋‹ค๋Š” ์ •์ฑ…์„ ์ถ”๊ฐ€ํ•˜์—ฌ Haiku๋ฅผ ๋”์šฑ ์ •๊ตํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? haikuports? (์ €๋Š” ๊ทธ๋Ÿฐ ์ •์ฑ…์„ ์‚ฌ์šฉํ•˜๋ฉด ์ž‘์—…์ด ํ›จ์”ฌ ์‰ฌ์›Œ์ง€๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ ‡๊ฒŒ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์€ ์ถ”๊ฐ€ ํŒจํ‚ค์ง€ ์†Œ์Šค๋ฅผ ์กฐ์ž‘ํ•˜์ง€ ์•Š๊ณ ๋„ ์–ด๋””์„œ๋‚˜ ๋‹ค์šด๋กœ๋“œํ•œ ๋ชจ๋“  ํŒจํ‚ค์ง€์˜ ์ข…์†์„ฑ์„ ์ž๋™์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

์”จ. Waddlesplash๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๊ฐœ๋ฐœ์ž์˜ ์ž์œ ๋ฅผ ๊ทธ๋‹ค์ง€ ์ œํ•œํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. CompanyX๊ฐ€ ์ข…์†์„ฑ์ด ์žˆ๋Š” ์ž์ฒด ์†Œํ”„ํŠธ์›จ์–ด ์„ธํŠธ(๋”ฐ๋ผ์„œ ์ €์žฅ์†Œ)๋ฅผ ์ง€์›ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์™„์ „ํžˆ ์ž์œ ๋กญ๊ฒŒ ์ง€์›ํ•  ๊ฒƒ์ด ๋ถ„๋ช…ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ์™„์ „ํžˆ ํŒจํ‚ค์ง•ํ•˜์—ฌ ํƒ€์‚ฌ ํŒจํ‚ค์ง€๊ฐ€ haikuports์— ํฌํ•จ๋˜์ง€ ์•Š์€ ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ข…์†์„ฑ์„ ํ”ผํ•˜๋„๋ก ๊ถŒ์žฅํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ์ด๊ฒƒ์ด ์ด ์‹œ๋ฆฌ์ฆˆ์˜ ํ–ฅํ›„ ๊ธฐ์‚ฌ์˜ ์ฃผ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. [์ €์ž๋Š” AppImage์ชฝ์œผ๋กœ ํ–ฅํ•˜๊ณ  ์žˆ๋‚˜์š”? โ€” ๋Œ€๋žต. ์—ญ์ž]

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„์ด์ฝ˜ ์ถ”๊ฐ€

์ƒˆ๋กœ ์ƒ์„ฑ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฆฌ์†Œ์Šค์— ๊น”๋”ํ•œ ๊ธฐ๋ณธ ์ œ๊ณต ์•„์ด์ฝ˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ์ด๊ฒƒ์€ ๋†€๋ผ์šด ์ฃผ์ œ์ž„์ด ๋ฐํ˜€์ ธ ๋‹ค์Œ ๊ธฐ์‚ฌ์˜ ๊ธฐ์ดˆ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ง€์†์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋นŒ๋“œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

Inkscape์™€ ๊ฐ™์€ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์ƒํ•ด ๋ณด์„ธ์š”(์˜ˆ, ์•„์ง Haiku์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ด ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค). ๊ทธ๋“ค์€ ์†Œ์Šค ์ฝ”๋“œ ์ €์žฅ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค https://gitlab.com/inkscape/inkscape.
๋ˆ„๊ตฐ๊ฐ€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ปค๋ฐ‹ํ•  ๋•Œ๋งˆ๋‹ค ๋นŒ๋“œ ํŒŒ์ดํ”„๋ผ์ธ์ด ์‹œ์ž‘๋œ ํ›„ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ž๋™์œผ๋กœ ํ…Œ์ŠคํŠธ๋˜๊ณ  ๋นŒ๋“œ๋˜๋ฉฐ Linux์šฉ AppImage(๋กœ์ปฌ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š” ๋…๋ฆฝ ์‹คํ–‰ํ˜• ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํŒจํ‚ค์ง€)๋ฅผ ๋น„๋กฏํ•œ ๋‹ค์–‘ํ•œ ํŒจํ‚ค์ง€๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํŒจํ‚ค์ง•๋ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์— ์„ค์น˜๋  ์ˆ˜๋„ ์žˆ๊ณ  ์„ค์น˜๋˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋Š” ๊ฒƒ [์•Œ๊ณ  ์žˆ์—ˆ์–ด! โ€” ๋Œ€๋žต. ์—ญ์ž]). ๋ชจ๋“  ๋ธŒ๋žœ์น˜ ๋ณ‘ํ•ฉ ์š”์ฒญ์—์„œ๋„ ๋™์ผํ•œ ์ผ์ด ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ๋ณ‘ํ•ฉํ•˜๊ธฐ ์ „์— ๋ณ‘ํ•ฉ ์š”์ฒญ์— ์ œ์•ˆ๋œ ์ฝ”๋“œ์—์„œ ๋นŒ๋“œ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ด์ฟ ์™€ ํ•จ๊ป˜ํ•œ XNUMX์ผ์ฐจ: ๋ช‡ ๊ฐ€์ง€ ํ”„๋กœ๊ทธ๋žจ์„ ํฌํŒ…ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
๋นŒ๋“œ ์ƒํƒœ๊ฐ€ ํฌํ•จ๋œ ์š”์ฒญ ๋ณ‘ํ•ฉ ๋ฐ ๋นŒ๋“œ๊ฐ€ ์„ฑ๊ณตํ•œ ๊ฒฝ์šฐ ์ปดํŒŒ์ผ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ(๋…น์ƒ‰์œผ๋กœ ํ‘œ์‹œ)

๋นŒ๋“œ๋Š” Docker ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. GitLab์€ Linux์—์„œ ๋ฌด๋ฃŒ ๋Ÿฌ๋„ˆ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ ์ž์‹ ๋งŒ์˜ ๋Ÿฌ๋„ˆ๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•  ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. (๊ทธ๋Ÿฐ๋ฐ Docker๋‚˜ ์ด์— ์ƒ์‘ํ•˜๋Š” ๊ฒƒ์ด ์—†๋Š” Haiku์™€ ๊ฐ™์€ ์‹œ์Šคํ…œ์—์„œ ์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ• ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋˜ํ•œ FreeBSD์—๋Š” Docker๊ฐ€ ์—†์œผ๋ฏ€๋กœ ์ด ๋ฌธ์ œ๋Š” Haiku์—๋งŒ ๊ตญํ•œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด์ƒ์ ์œผ๋กœ Haiku ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ Linux์šฉ Docker ์ปจํ…Œ์ด๋„ˆ ๋‚ด์— ๊ตฌ์ถ•๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ๋Š” Haiku์šฉ ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ๊ธฐ์กด ํŒŒ์ดํ”„๋ผ์ธ์— ๋„์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํฌ๋กœ์Šค ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์žˆ๋‚˜์š”? ์•„๋‹ˆ๋ฉด QEMU/KVM๊ณผ ๊ฐ™์€ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์—ฌ Docker ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ๋ชจ๋“  Haiku๋ฅผ ์—๋ฎฌ๋ ˆ์ด์…˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ(Docker ๋‚ด์—์„œ ๊ทธ๋ ‡๊ฒŒ ์ž‘๋™ํ•œ๋‹ค๊ณ  ๊ฐ€์ •)? ๊ทธ๋Ÿฐ๋ฐ ๋งŽ์€ ํ”„๋กœ์ ํŠธ์—์„œ ๋น„์Šทํ•œ ์›์น™์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Scribus๋Š” ์ด๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ด๋ฏธ Haiku์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ธ์  ๊ฐ€ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๋‚ ์ด ์˜ค๊ฒ ์ฃ  ์ด๋Ÿฌํ•œ Haiku ์ง€์›์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์— ์š”์ฒญ์„ ๊ฐ€์ ธ์˜ค์„ธ์š”.

๊ฐœ๋ฐœ์ž ์ค‘ ํ•œ ๋ช…์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

ํŒจํ‚ค์ง€ ์ž์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ ์ผ๋ฐ˜ CMake/CPack ๋ฐฉ๋ฒ•์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋นŒ๋“œ ์‹œ์Šคํ…œ์€ ํŒจํ‚ค์ง€์˜ ๋นŒ๋“œ ํ”„๋กœ๊ทธ๋žจ์„ ์ง์ ‘ ํ˜ธ์ถœํ•˜์—ฌ ์ง€์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ๊ฒฝํ—˜์ƒ: ์ง€๊ธˆ๊นŒ์ง€๋Š” ๋ณ„๋กœ ๊ด€์‹ฌ์ด ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— haikuporter๋Š” ์šฐ๋ฆฌ์—๊ฒŒ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ž‘๋™ํ–ˆ์ง€๋งŒ ๊ถ๊ทน์ ์œผ๋กœ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ํ•จ๊ป˜ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” Linux๋‚˜ ๋‹ค๋ฅธ ์„œ๋ฒ„ ์šด์˜ ์ฒด์ œ์—์„œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ต์ฐจ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ ์„ธํŠธ๋ฅผ ๋„์ž…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(Haiku๋Š” ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋˜๋„๋ก ์„ค๊ณ„๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค).

๋‚˜๋Š” ๊ธฐ๋ฆฝ๋ฐ•์ˆ˜๋ฅผ ๋ณด๋‚ธ๋‹ค. ์ผ๋ฐ˜ Linux ์‚ฌ์šฉ์ž๋Š” ์„œ๋ฒ„ ์šด์˜ ์ฒด์ œ์— ํ•„์š”ํ•œ ๋ชจ๋“  ์ถ”๊ฐ€ ๋กœ๋“œ์™€ ์ถ”๊ฐ€ ์ˆ˜ํ•˜๋ฌผ(๋ณด์•ˆ, ์—„๊ฒฉํ•œ ์ œ์–ด ๋“ฑ)์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ ๊ฐœ์ธ ์šด์˜ ์ฒด์ œ์—๋Š” ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ €๋Š” Linux์—์„œ Haiku ์•ฑ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์ตœ์„ ์ด๋ผ๋Š” ์ ์— ์ „์ ์œผ๋กœ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

POSIX ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ Haiku๋กœ ํฌํŒ…ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์ผ๋ฐ˜์ ์ธ ์žฌ๊ตฌ์ถ•๋ณด๋‹ค ๋น„์šฉ์ด ๋” ๋งŽ์ด ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. irc.freenode.net ๋„คํŠธ์›Œํฌ์˜ #haiku ์ฑ„๋„ ์‚ฌ๋žŒ๋“ค์˜ ๋„์›€์ด ์•„๋‹ˆ์—ˆ๋‹ค๋ฉด ์ €๋Š” ์ด ๋ฌธ์ œ๋ฅผ ์˜ค๋žซ๋™์•ˆ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋“ค์กฐ์ฐจ๋„ ํ•ญ์ƒ ๋ฌด์—‡์ด ์ž˜๋ชป๋˜์—ˆ๋Š”์ง€ ์ฆ‰์‹œ ์•Œ์•„์ฐจ๋ฆฌ์ง€๋Š” ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

Qt๋กœ ์ž‘์„ฑ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์‰ฌ์šด ์˜ˆ์™ธ์ž…๋‹ˆ๋‹ค. ์•„๋ฌด ๋ฌธ์ œ ์—†์ด ๊ฐ„๋‹จํ•œ ๋ฐ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ํŒจํ‚ค์ง€๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ๋„ ๋งค์šฐ ์‰ฝ์ง€๋งŒ "์ „ํ†ต์ ์œผ๋กœ ์ถœ์‹œ๋œ" ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๋งŒ ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค. haikuports์—์„œ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ ๋ฒ„์ „์ด ์ง€์ •๋œ ์†Œ์Šค ์ฝ”๋“œ ์•„์นด์ด๋ธŒ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. GitHub๋ฅผ ์‚ฌ์šฉํ•œ ์ง€์†์ ์ธ ๋นŒ๋“œ(๋ชจ๋“  ๋ณ€๊ฒฝ ์ปค๋ฐ‹์— ๋Œ€ํ•œ ๋นŒ๋“œ)์˜ ๊ฒฝ์šฐ ๋ชจ๋“  ๊ฒƒ์ด ๊ทธ๋ ‡๊ฒŒ ๊ฐ„๋‹จํ•˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ Haiku๋Š” XCode์—์„œ "๋นŒ๋“œ" ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ํŒจํ‚ค์ง€๋ฅผ ์–ป๋Š” Mac์—์„œ์˜ ๊ฒฐ๊ณผ๋ณด๋‹ค Linux ๋ฐฐํฌํŒ์— ๋” ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. .app, ๋””์Šคํฌ ์ด๋ฏธ์ง€์— ์‚ฝ์ž…ํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. .dmg, ๋‚ด ์›น์‚ฌ์ดํŠธ์—์„œ ๋‹ค์šด๋กœ๋“œํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด Linux์™€ ๊ฐ™์€ "์„œ๋ฒ„" ์šด์˜ ์ฒด์ œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ง€์†์ ์ธ ๊ตฌ์ถ•์€ ๊ฐœ๋ฐœ์ž์˜ ์š”๊ตฌ๊ฐ€ ์žˆ์œผ๋ฉด ๊ฐ€๋Šฅํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์ง€๋งŒ ํ˜„์žฌ Haiku ํ”„๋กœ์ ํŠธ์—๋Š” ๋” ์‹œ๊ธ‰ํ•œ ๋‹ค๋ฅธ ์ž‘์—…์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ง์ ‘ ์‹œ๋„ํ•ด ๋ณด์„ธ์š”! ๊ฒฐ๊ตญ Haiku ํ”„๋กœ์ ํŠธ๋Š” DVD ๋˜๋Š” USB์—์„œ ๋ถ€ํŒ…ํ•˜๊ธฐ ์œ„ํ•œ ์ด๋ฏธ์ง€๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋งค์ผ. ์„ค์น˜ํ•˜๋ ค๋ฉด ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”Œ๋ž˜์‹œ ๋“œ๋ผ์ด๋ธŒ์— ์“ฐ์‹ญ์‹œ์˜ค. ๋™ํŒ ํ™”๊ณต

์งˆ๋ฌธ์žˆ์œผ์„ธ์š”? ๋Ÿฌ์‹œ์•„์–ด๋กœ ์—ฌ๋Ÿฌ๋ถ„์„ ์ดˆ๋Œ€ํ•ฉ๋‹ˆ๋‹ค ์ „๋ณด ์ฑ„๋„.

์˜ค๋ฅ˜ ๊ฐœ์š”: C ๋ฐ C++๋กœ ๋ฐœ์— ์ด์„ ์˜๋Š” ๋ฐฉ๋ฒ•. Haiku OS ๋ ˆ์‹œํ”ผ ๋ชจ์Œ

๋ถ€ํ„ฐ ์ €์ž ๋ฒˆ์—ญ: ์ด๊ฒƒ์€ ํ•˜์ด์ฟ ์— ๊ด€ํ•œ ์‹œ๋ฆฌ์ฆˆ์˜ ๋‹ค์„ฏ ๋ฒˆ์งธ ๊ธฐ์‚ฌ์ž…๋‹ˆ๋‹ค.

๊ธฐ์‚ฌ ๋ชฉ๋ก: ์ฒ˜์Œ์œผ๋กœ ์ดˆ ์„ธ ๋ฒˆ์งธ ๋„ท์งธ

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€