Мой пятый дСнь с Haiku: Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠΆΠΊΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

Мой пятый дСнь с Haiku: Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠΆΠΊΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

TL;DR: Новичок ΡƒΠ²ΠΈΠ΄Π΅Π» Haiku Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π·, ΠΏΡ€ΠΎΠ±ΡƒΠ΅Ρ‚ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· ΠΌΠΈΡ€Π° Linux.

Мой пятый дСнь с Haiku: Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠΆΠΊΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ
Моя пСрвая портированная для Haiku ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, упакованная Π² Π΅Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ hpkg

НСдавно я ΠΎΡ‚ΠΊΡ€Ρ‹Π» для сСбя Haiku, Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму для ПК.
БСгодня я Π±ΡƒΠ΄Ρƒ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° эту ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½ΠΊΡƒ. Основной ΡƒΠΏΠΎΡ€ β€” описаниС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΎΠΏΡ‹Ρ‚Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Haiku с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° для Linux. ΠŸΡ€ΠΎΡˆΡƒ прощСния Π·Π° Π³Π»ΡƒΠΏΡ‹Π΅ ошибки, ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Π΅ Π² процСссС, вСдь с Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΊΠ°ΠΊ я Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ» Haiku, Π½Π΅ ΠΏΡ€ΠΎΡˆΠ»ΠΎ ΠΈ Π½Π΅Π΄Π΅Π»ΠΈ.

Π― Ρ…ΠΎΡ‡Ρƒ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Ρ‚Ρ€Π΅Ρ… Ρ†Π΅Π»Π΅ΠΉ:

  • ΠŸΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ простоС CLI ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
  • ΠŸΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с GUI Π½Π° Qt
  • Π£ΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΌ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ hpkg (ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ я всС Π΅Ρ‰Π΅ Π΄ΡƒΠΌΠ°ΡŽ ΠΎΠ± Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ AppDir ΠΈ AppImage для Haiku…)

ΠŸΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΠΌ. Π’ Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… докумСнтация ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² wiki ΠΎΡ‚ HaikuPorts я нашСл Π½ΡƒΠΆΠ½ΠΎΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅. Π•ΡΡ‚ΡŒ Π΄Π°ΠΆΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΊΠ½ΠΈΠ³Π° PDF BeOS: ΠŸΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ прилоТСния Unix.
467 страниц β€” ΠΈ это с 1997 Π³ΠΎΠ΄Π°! Π—Π°Π³Π»ΡΠ΄Ρ‹Π²Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΡŒ ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎ, Π½ΠΎ надСюсь Π½Π° Π»ΡƒΡ‡ΡˆΠ΅Π΅. ΠžΠ±Π½Π°Π΄Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ слова Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°: «Π΄ΠΎΠ»Π³ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ BeOS Π½Π΅ Π±Ρ‹Π»Π° POSIX-совмСстимой», Π·Π°Ρ‚ΠΎ Haiku «ΠΏΠΎ большСй части» ΡƒΠΆΠ΅ такая.

ΠŸΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ простого прилоТСния CLI

ΠŸΠ΅Ρ€Π²ΠΎΠΉ ΠΌΡ‹ΡΠ»ΡŒΡŽ Π±Ρ‹Π»ΠΎ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ avrdude, Π½ΠΎ, ΠΊΠ°ΠΊ оказалось, это ΡƒΠΆΠ΅ сдСлали Π΄Π°Π²Π½Ρ‹ΠΌ-Π΄Π°Π²Π½ΠΎ.

ΠŸΠ΅Ρ€Π²Π°Ρ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°: Π½Π΅Ρ‡Π΅Π³ΠΎ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ

Π§Π΅Π³ΠΎ ΠΌΠ½Π΅ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‚Π°ΠΊ это Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ 10 Π»Π΅Ρ‚ прилоТСния ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ для Haiku β€” ΠΏΡ€ΠΈ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ самой ОБ Π΅Ρ‰Π΅ Π΄Π°ΠΆΠ΅ вСрсии 1.0 Π½Π΅Ρ‚.

Вторая ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°: Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ

Π˜Ρ‚Π°ΠΊ, я Π±ΡƒΠ΄Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ptouch-770, CLI для управлСния ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€ΠΎΠΌ Brother P-Touch 770, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ я ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΡŽ этикСтки.
Π― Π½Π° Π½Π΅ΠΌ ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ этикСтки, ΠΈ Π²Ρ‹ Π΅Π³ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅. Π§ΡƒΡ‚ΡŒ Ρ€Π°Π½Π΅Π΅ я написал Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΡƒ с GUI Π½Π° Python (ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° Π½Π° Gtk+ β€” придСтся ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ, Π° это Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΠΎΠ²ΠΎΠ΄ ΠΏΠΎΠ΄ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ).

Мой пятый дСнь с Haiku: Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠΆΠΊΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ
ΠŸΡ€ΠΈΠ½Ρ‚Π΅Ρ€ для этикСток Brother P-Touch 770. Π—Π°Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π»ΠΈ ΠΏΠΎΠ΄ Haiku?

ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Haiku Π·Π½Π°Π΅Ρ‚ ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ… ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ…, поэтому Ссли я ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ сообщСниС «can’t find 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 слишком линуксячий, поэтому Π½Π΅ сущСствуСт для 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, оказалось, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ошибка Π² msgpack, Π° Ρ‡Π΅Ρ€Π΅Π· нСсколько ΠΌΠΈΠ½ΡƒΡ‚ я Π²ΠΈΠΆΡƒ patch, Π² HaikuPorts. Π’ΠΎΠΎΡ‡ΠΈΡŽ наблюдаю, ΠΊΠ°ΠΊ исправлСнный ΠΏΠ°ΠΊΠ΅Ρ‚ собираСтся здСсь (buildslave β€” Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹).

Мой пятый дСнь с Haiku: Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠΆΠΊΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ
Π‘Π±ΠΎΡ€ΠΊΠ° исправлСнного msgpack Π½Π° buildmaster

ΠœΠ΅ΠΆΠ΄Ρƒ Π΄Π΅Π»ΠΎΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽ patch Π² upstream для добавлСния ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Haiku Π² msgpack.

ΠŸΡΡ‚ΡŒ ΠΌΠΈΠ½ΡƒΡ‚ спустя ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ 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

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

МнС пояснили, Ρ‡Ρ‚ΠΎ ΠΊ libresolv Π½Π° Haiku Π΅ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Π΅ Π² 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

«Bad port 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!

РСально просто. МСньшС ΠΌΠΈΠ½ΡƒΡ‚Ρ‹!

Π£ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² hpkg ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ haikuporter ΠΈ haikuports.

Π‘ Ρ‡Π΅Π³ΠΎ Π±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ? НСт ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, ΠΈΠ΄Ρƒ Π½Π° ΠΊΠ°Π½Π°Π» #haiku Π² irc.freenode.net ΠΈ ΡΠ»Ρ‹ΡˆΡƒ:

  • Команда package β€” Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ способ создания ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². По большСй части Π΅ΠΉ достаточно PackageInfo, ΠΊΠ°ΠΊ описано Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ «Making it into a proper .hpkg package»
  • МнС Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅
  • МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ hpkg-creator (Ρƒ мСня Π²Ρ‹Π»Π΅Ρ‚Π°Π΅Ρ‚, ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…)

НСпонятно, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ. Полагаю, ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ пособиС для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² Π² стилС «ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠœΠΈΡ€!», Π² ΠΈΠ΄Π΅Π°Π»Π΅ β€” Π²ΠΈΠ΄Π΅ΠΎ. Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ Π΅Ρ‰Π΅ ΠΎΠ±Π·Π°Π²Π΅ΡΡ‚ΠΈΡΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π² HaikuPorter, ΠΊΠ°ΠΊ сдСлано Π² GNU hello.

Π§ΠΈΡ‚Π°ΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

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. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ зависимости для всСх ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ haikuports, Ρ‡Ρ‚ΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя. ΠŸΠΎΠΉΠ΄Ρƒ-ΠΊΠ° ΠΊΠΎΡ„Π΅ΠΉΠΊΡƒ попью.

А с ΠΊΠ°ΠΊΠΎΠΉ стати эта ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π΄Π΅Π»Π°Ρ‚ΡŒΡΡ Π½Π° ΠΌΠΎΠ΅ΠΉ локальной машинС, Π° Π½Π΅ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ Π½Π° сСрвСрС 1 Ρ€Π°Π· для всСх?

Богласно mr. 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

ΠžΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ΡΡ, Π½Π΅ Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΅ΡΡ‚ΡŒ исходный ΠΊΠΎΠ΄ вашСго прилоТСния. НуТно Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ 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 commit для Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ? (Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚: «НичСго Π½Π΅ Π²Ρ‹ΠΉΠ΄Π΅Ρ‚. Π Π΅Ρ†Π΅ΠΏΡ‚Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ»).

Для ΠΏΡ€ΠΈΠΊΠΎΠ»Π° Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Π² Ρ€Π΅Ρ†Π΅ΠΏΡ‚:

CHECKSUM_SHA256="cf906a65442748c95df16730c66307a46d02ab3a12137f89076ec7018d8ce18c"

ВсС Π΅Ρ‰Π΅ Π½Π΅ устраиваСт:

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

Π§Π΅Π³ΠΎ это ΠΎΠ½? Π’Π΅Π΄ΡŒ это Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ git, ΠΊΠΎΠ΄ ΡƒΠΆΠ΅ Ρ‚Π°ΠΌ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π½Π΅Ρ‡Π΅Π³ΠΎ Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ. Π‘ ΠΌΠΎΠ΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния, инструмСнт Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ достаточно ΡƒΠΌΠ½Ρ‹ΠΌ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ распаковщик, Ссли Π΅ΠΌΡƒ Π½Π°Π΄ url с GitHub.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ сработаСт 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-Ρ‚ΠΎ Π½Π΅ бСзопасный!) ΠΈ всС Π΅Ρ‰Π΅ пытаСтся Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ.

Богласно mr. waddlesplash:

Ну Π΄Π°, ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ послуТило ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹Ρ… для сборки Π΄Π°Π½Π½Ρ‹Ρ…. Один ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² β€” свСрка ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ суммы Π°Ρ€Ρ…ΠΈΠ²Π°, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Ρ‡Ρ‚ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ, Ρ‚.ΠΊ. это Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. БлСдствиСм этого ΠΈ являСтся «Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ» 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

По старой ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΠ΅ ΠΈΠ΄Ρƒ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠ±Ρ€Ρ‹Ρ… людСй Π½Π° ΠΊΠ°Π½Π°Π»Π΅ #haiku Π² сСти irc.freenode.net. И ΠΊΡƒΠ΄Π° я Π±Π΅Π· Π½ΠΈΡ…? ПослС подсказки понял, Ρ‡Ρ‚ΠΎ Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

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

Π₯ΠΎΡ€ΠΎΡˆΠΎ, стало понятно Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ β€” ΠΊΠ°Ρ‡Π°Π΅Ρ‚ Π°Ρ€Ρ…ΠΈΠ² с исходниками ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ. Π“Π»ΡƒΠΏΠΎ, с ΠΌΠΎΠ΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния, ΠΈ Π½Π΅ совсСм Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ β€” ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ послСднюю Ρ€Π΅Π²ΠΈΠ·ΠΈΡŽ с мастСр-Π²Π΅Ρ‚ΠΊΠΈ.

Один ΠΈΠ· Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² пояснил это Ρ‚Π°ΠΊ:

Π£ нас Π΅ΡΡ‚ΡŒ свой CI, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ всС, Ρ‡Ρ‚ΠΎ помСщаСтся Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ haikuports, Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΠ°ΠΊΠ΅Ρ‡Π΅Π½ΠΎ для всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π° ΠΌΡ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ Ρ€ΠΈΡΠΊΠΎΠ²Π°Ρ‚ΡŒ собирая ΠΈ поставляя «Π²ΡΠ΅ послСднСй вСрсии Π² upstream».

Понял! Π’ΠΎ всяком случаС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Ρ‚Π°ΠΊΠΎΠ΅:

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 ΠΌΠ½Π΅ нравятся. По большСй части это ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° Open Build Service β€” Π½Π°Π±ΠΎΡ€ инструмСнтов для построСния сборок Linux: Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ, с систСмным ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ, Π½ΠΎ излишний для ΠΌΠΎΠ΅Π³ΠΎ ΠΌΠ΅Π»ΠΊΠΎΠ³ΠΎ прилоТСния уровня «hello world».

ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, согласно mr. waddlesplash:

Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, HaikuPorter вСсьма строгий ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (плюс ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Ρ€Π΅ΠΆΠΈΠΌ lint, Π° Ρ‚Π°ΠΊΠΆΠ΅ строгий Ρ€Π΅ΠΆΠΈΠΌ, Π΄Π΅Π»Π°ΡŽΡ‰ΠΈΠ΅ Π΅Π³ΠΎ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ строгим!), Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ создаСт ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π° Π½Π΅ просто ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΠ½ ΠΈ ругаСтся Π½Π° Π½Π΅ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Ρ… зависимостях, Π½Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ…, Π½Π΅Π²Π΅Ρ€Π½Ρ‹Ρ… вСрсиях ΠΈ Ρ‚.ΠΏ. ЦСль β€” ΠΎΡ‚Π»ΠΎΠ²ΠΈΡ‚ΡŒ всС Π±Π΅Π· ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠ΅, Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΎΠ± этом ΡƒΠ·Π½Π°Π΅Ρ‚ (поэтому Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ avrdude, вСдь Π² Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π΅ фактичСски Π±Ρ‹Π»Π° ΡƒΠΊΠ°Π·Π°Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ). Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π΅ просто ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ вСрсии SO. HaikuPorter слСдит Π·Π° соблюдСниСм всСго этого Π² самих Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π°Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок Π²ΠΎ врСмя выполнСния.

Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ Ρ‚Π°ΠΊΠΎΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ строгости ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ ΠΏΡ€ΠΈ создании ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, Π½ΠΎ ΠΌΠ½Π΅ ΠΎΠ½ каТСтся излишним для прилоТСния «hello world». Π― Ρ€Π΅ΡˆΠΈΠ» ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΅Ρ‰Π΅.

Π‘Π±ΠΎΡ€ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ hpkg, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ «package create»

ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, эта простая инструкция ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ ΠΌΠ½Π΅ Π»ΡƒΡ‡ΡˆΠ΅?

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.

НС-Π°, всС Π΅Ρ‰Π΅ отсутствуСт. По всСй видимости, я (Π½Ρƒ, ΠΈ инструкция) Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ пропустил.

ΠžΡΠΌΠΎΡ‚Ρ€Π΅Π² Π²ΠΊΠ»Π°Π΄ΠΊΡƒ «Contents» Π² HaikuDepot для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ я ΡƒΠ²ΠΈΠ΄Π΅Π», Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π²ΠΈΠ΄Π° /data/mimedb/application/x-vnd... Ρ‡Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π΅ΠΉ, /data/deskbar/menu/Applications/….

Ну, ΠΈ Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ Ρ‚ΡƒΠ΄Π° ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ? А Π½Ρƒ-ка…

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

Π’ΠΏΠΎΠ»Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ этот Ρ‚Ρ€ΡŽΠΊ ΠΏΡ€ΠΎΠΊΠ°Ρ‚ΠΈΡ‚, Π½ΠΎ ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ вопросы: Π·Π°Ρ‡Π΅ΠΌ это Π½ΡƒΠΆΠ½ΠΎ, для Ρ‡Π΅Π³ΠΎ это Π½ΡƒΠΆΠ½ΠΎ? По-ΠΌΠΎΠ΅ΠΌΡƒ это Ρ€Π°Π·Ρ€ΡƒΡˆΠ°Π΅Ρ‚ ΠΎΠ±Ρ‰Π΅Π΅ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ систСма β€” такая утончСнная.

Как пояснил mr. waddlesplash:

Иногда Π΅ΡΡ‚ΡŒ прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠΌ прилоТСниям, Π½ΠΎ Π½Π΅ Π² мСню. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, LegacyPackageInstaller Π½Π° Π’Π°ΡˆΠ΅ΠΌ снимкС экрана, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π°Ρ€Ρ…ΠΈΠ²Ρ‹ .pkg Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ BeOS. Π₯очСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈΡ… ставили, Π½ΠΎ ΠΈΡ… Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π² мСню ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Π΅.

МнС ΠΏΠΎΡ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ каТСтся, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ простоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ Hidden=true Π² Ρ„Π°ΠΉΠ»Π°Ρ… .desktop Π½Π° Linux. ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ «ΡΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ» ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ рСсурсом ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы?

Π§Ρ‚ΠΎ особСнно Π½Π΅ ΡƒΡ‚ΠΎΠ½Ρ‡Π΅Π½Π½ΠΎ β€” Π½Π°Π·Π²Π°Π½ΠΈΠ΅ (Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ) прилоТСния, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ мСню, deskbar, ТСстко привязано Π² ΠΏΡƒΡ‚ΠΈ.

mr. waddlesplash ΠΏΠΎ этому ΠΏΠΎΠ²ΠΎΠ΄Ρƒ поясняСт:

«Deskbar» Π² Π΄Π°Π½Π½ΠΎΠΌ случаС слСдуСт ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΈΠΉ ΠΎΠ±Ρ‰ΠΈΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ (ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ «taskbar», относящийся ΠΊΠ°ΠΊ ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Windows, Ρ‚Π°ΠΊ ΠΈ ΠΊ ΠΎΠ±Ρ‰Π΅ΠΉ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ). Ну Π° ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это deskbar, Π° Π½Π΅ «Deskbar», это Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ схоТим ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Мой пятый дСнь с Haiku: Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠΆΠΊΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ
2 «ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹Ρ…» ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° с прилоТСниями Π² Π½ΠΈΡ…

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π΅ΡΡ‚ΡŒ 2 ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° с прилоТСниями, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠΎΠΉ QtQuickApplication Π΅ΡΡ‚ΡŒ, Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ β€” Π½Π΅Ρ‚? (Π’Π΅Π΄ΡŒ это Π½Π΅ ΠΎΠ΄ΠΈΠ½ систСмный, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ, Ρ‡Ρ‚ΠΎ Π»ΠΈΡ‡Π½ΠΎ ΠΌΠ½Π΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ понятно).
Π― Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ запутался ΠΈ Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Π½Π°Π΄ΠΎ Π±Ρ‹ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ это.

ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ mr. waddlesplash

Π’ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Apps Π΅ΡΡ‚ΡŒ прилоТСния, Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π² мСню. Но ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ с мСню Π² самом Π΄Π΅Π»Π΅ Π½Π°Π΄ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ настраиваСмым.

Заявка, ΠΈΠ»ΠΈ этого Π½Π΅ случится πŸ˜‰

Π― задумался: Ρ‚Π°ΠΊ Π»ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ прилоТСния Π² /system/apps, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈΡ… Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΌ β€” Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. ΠœΠΎΠΆΠ΅Ρ‚, Π»ΡƒΡ‡ΡˆΠ΅ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΈΡ… Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС, Π³Π΄Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ с Π½ΠΈΠΌΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ? Π’Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ это сдСлано Π² Mac OS X, Π³Π΄Π΅ содСрТимоС ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² .app, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π²ΠΈΠ΄Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π² /Applications, прячСтся Π² Π½Π΅Π΄Ρ€Π°Ρ… /System/Library/…«`.

Π§Ρ‚ΠΎ насчСт зависимостСй?

Π”ΡƒΠΌΠ°ΡŽ, стоит ΠΊΠ°ΠΊ-Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ зависимости, вСдь Ρ‚Π°ΠΊ? МоТно Π»ΠΈ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Qt ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ установки Haiku ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ? НСа! Qt ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π΅ установлСн. ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сборки ΠΏΠ°ΠΊΠ΅Ρ‚Π° автоматичСски ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ зависимости ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ² Ρ„Π°ΠΉΠ»Ρ‹ ELF? МнС сказали, Ρ‡Ρ‚ΠΎ HaikuPorter Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Π°ΠΊ ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚, Π° Π²ΠΎΡ‚ package Π½Π΅Ρ‚. ВсС ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ просто «ΡΠ±ΠΎΡ€Ρ‰ΠΈΠΊ ΠΏΠ°ΠΊΠ΅Ρ‚Π°», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сам ΠΏΠΎ сСбС просто создаСт Ρ„Π°ΠΉΠ»Ρ‹ hpkg.

Π‘Ρ‚ΠΎΠΈΡ‚ Π»ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ Haiku ΡƒΡ‚ΠΎΠ½Ρ‡Π΅Π½Π½Π΅Π΅, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ, согласно ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρƒ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ зависимостСй ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π½Π΅ входящих Π² haikuports? (МнС Π±Ρ‹ Ρ‚Π°ΠΊ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ подобная ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Ρƒ β€” систСма смогла Π±Ρ‹ автоматичСски Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ зависимости ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΡ‚ΠΊΡƒΠ΄Π° ΡƒΠ³ΠΎΠ΄Π½ΠΎ, Π±Π΅Π· Π²ΠΎΠ·Π½ΠΈ с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ источниками ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²).

mr. waddlesplash поясняСт:

Нам Π½Π΅ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ свободу Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Ρ‚Π°ΠΊ сильно, вСдь ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ссли КомпанияΠ₯ Π·Π°Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ свой собствСнный Π½Π°Π±ΠΎΡ€ ПО с зависимостями (Π° ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ) β€” ΠΎΠ½Π° ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ свободно сдСлаСт это.

Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ стоило Π±Ρ‹ ΠΏΠΎΡ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ сторонним ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌ зависимостСй ΠΎΡ‚ Ρ‡Π΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ, Π½Π΅ входящСго Π² haikuports, ΠΏΡƒΡ‚Π΅ΠΌ ΠΏΠΎΠ»Π½ΠΎΠΉ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ всСго Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Но, я Π΄ΡƒΠΌΠ°ΡŽ, это Ρ‚Π΅ΠΌΠ° для Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ Π² этой сСрии. [Автор ΠΊΠ»ΠΎΠ½ΠΈΡ‚ ΠΊ AppImage? β€” ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°]

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠΊΠΎΠ½ΠΊΠΈ прилоТСния

А Ρ‡Ρ‚ΠΎ Ссли я Ρ…ΠΎΡ‡Ρƒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² рСсурсы ΠΌΠΎΠ΅Π³ΠΎ свСТСсозданного прилоТСния ΠΎΠ΄Π½Ρƒ ΠΈΠ· Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½Π΅Π½ΡŒΠΊΠΈΡ… встроСнных ΠΈΠΊΠΎΠ½ΠΎΠΊ? ΠžΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ΡΡ, это ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‚Π΅ΠΌΠ°, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° станСт основной для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ.

Как ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΡƒΡŽ сборку ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ?

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ сСбС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Inkscape (Π΄Π°, я Π² курсС, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅Ρ‚ Π² Haiku, Π½ΠΎ Π½Π° Π½Π΅ΠΌ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ). Π£ Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ исходного ΠΊΠΎΠ΄Π° https://gitlab.com/inkscape/inkscape.
ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΊΡ‚ΠΎ-Ρ‚ΠΎ фиксируСт свои измСнСния Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρ‹ сборки, послС Ρ‡Π΅Π³ΠΎ ΠΏΡ€Π°Π²ΠΊΠΈ автоматичСски Ρ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ, ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ΡΡ, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ упаковываСтся Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ AppImage для Linux (Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ для локального тСстирования нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚, ΠΈΠ»ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ установлСно Π² систСмС [я Ρ‚Π°ΠΊ ΠΈ Π·Π½Π°Π»! β€” ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°]). Аналогично всС происходит ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запросС Π½Π° слияниС Π²Π΅Ρ‚ΠΎΠΊ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, собранноС ΠΈΠ· ΠΊΠΎΠ΄Π°, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π² запросС Π½Π° слияниС, Π΅Ρ‰Π΅ Π΄ΠΎ слияния.

Мой пятый дСнь с Haiku: Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠΆΠΊΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ
Запросы Π½Π° слияниС со статусами сборки ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ собранныС Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊΠΈ Π² случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ сборки (ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π° Π·Π΅Π»Π΅Π½Ρ‹ΠΌ)

Π‘Π±ΠΎΡ€ΠΊΠ° запускаСтся Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ… Docker. GitLab ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ бСсплатныС runners Π½Π° Linux, ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ я Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ собствСнныС runners (кстати, я Π½Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽ, ΠΊΠ°ΠΊ это Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ для систСм Π²Ρ€ΠΎΠ΄Π΅ Haiku, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, ΠΊΠ°ΠΊ я знаю, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Docker ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³Π°, Π½ΠΎ для FreeBSD Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅Ρ‚ Docker, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Π° для Haiku).

Π’ идСальном случаС сборка ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Haiku ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Docker для Linux. ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ раскладС сборка для Haiku ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π½Π΅Π΄Ρ€Π΅Π½Π° Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρ‹. Π•ΡΡ‚ΡŒ кросскомпиляторы? Или Π½Π°Π΄ΠΎ ΡΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всю Haiku Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Docker, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Ρ‚ΠΈΠΏΠ° QEMU/KVM (ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ Docker)? ΠšΡΡ‚Π°Ρ‚ΠΈ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ схоТиС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹. НапримСр, Scribus Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚Π°ΠΊ β€” ΠΎΠ½ ΡƒΠΆΠ΅ доступСн для Haiku. ΠžΠ΄Π½Π°ΠΆΠ΄Ρ‹ наступит дСнь, ΠΊΠΎΠ³Π΄Π° я смогу ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ запросы Π½Π° слияниС Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π½ΠΈΡ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Haiku.

Один ΠΈΠ· Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² поясняСт:

Для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΡ… ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, поддСрТиваСтся ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ CMake/CPack. Π”Ρ€ΡƒΠ³ΠΈΠ΅ систСмы сборки ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½Ρ‹, Ссли Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ сборки ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Ссли люди Π±ΡƒΠ΄ΡƒΡ‚ Π² этом заинтСрСсованы. ΠžΠΏΡ‹Ρ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚: Π΄ΠΎ сих ΠΏΠΎΡ€ особого интСрСса Π½Π΅ Π±Ρ‹Π»ΠΎ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ haikuporter Ρ€Π°Π±ΠΎΡ‚Π°Π» ΠΊΠ°ΠΊ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π½Π°ΠΌ, Π½ΠΎ, Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅, ΠΎΠ±Π° способа Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ совмСстно. Нам слСдуСт ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ инструмСнтов для пСрСкрСстной сборки ПО ΠΈΠ· Linux ΠΈΠ»ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ сСрвСрной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы (Haiku Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° сСрвСрах).

ΠΠΏΠ»ΠΎΠ΄ΠΈΡ€ΡƒΡŽ стоя. ΠžΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Linux Ρ‚Π°Ρ‰Π°Ρ‚ всю эту Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π±Π°Π³Π°ΠΆ (Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ, строгий ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ ΠΈ Ρ‚.ΠΏ.), Π½ΡƒΠΆΠ½Ρ‹ΠΉ сСрвСрной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½ΠΊΠ΅, Π½ΠΎ Π½Π΅ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ я ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ согласСн, Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ прилоТСния для Haiku Π½Π° Linux β€” ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠŸΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ POSIX Π½Π° Haiku Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ большС Π·Π°Ρ‚Ρ€Π°Ρ‚, Ρ‡Π΅ΠΌ обычная пСрСсборка. Π― Π±Ρ‹ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ завяз с этим Π½Π°Π΄ΠΎΠ»Π³ΠΎ, Ссли Π±Ρ‹ Π½Π΅ ΠΏΠΎΠΌΠΎΡ‰ΡŒ людСй с ΠΊΠ°Π½Π°Π»Π° #haiku Π² сСти irc.freenode.net. Но Π΄Π°ΠΆΠ΅ ΠΎΠ½ΠΈ Π½Π΅ всСгда сразу Π²ΠΈΠ΄Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, написанныС Π½Π° Qt, β€” Π»Π΅Π³ΠΊΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Π― собрал ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅Π΅ дСмонстрационноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Π΅Π· особых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Π‘Π±ΠΎΡ€ΠΊΠ° ΠΏΠ°ΠΊΠ΅Ρ‚Π° для простых ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ‚Π°ΠΊΠΆΠ΅ достаточно лСгкая, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для «Π²Ρ‹ΠΏΡƒΡΠΊΠ°Π΅ΠΌΡ‹Ρ… Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ способом», Ρ‚.Π΅. ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… вСрсионированныС Π°Ρ€Ρ…ΠΈΠ²Ρ‹ исходного ΠΊΠΎΠ΄Π°, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² haikuports. Для Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ сборки (сборка Π½Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ) с GitHub всС Π²Ρ€ΠΎΠ΄Π΅ Π½Π΅ Ρ‚Π°ΠΊ просто. Π’ΡƒΡ‚ Haiku большС чувствуСтся Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ дистрибутиву Linux, Ρ‡Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ Π½Π° MΠ°c, Π³Π΄Π΅ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π‘ΠΎΠ±Ρ€Π°Ρ‚ΡŒ» Π² XCode получаСтся ΠΏΠ°ΠΊΠ΅Ρ‚ .app, Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊ вставкС Π² ΠΎΠ±Ρ€Π°Π· диска .dmg, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π½Π° ΠΌΠΎΠ΅ΠΌ сайтС.
НСпрСрывная сборка ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° основС «ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΠΎΠΉ» ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½ΠΊΠΈ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Linux, скорСС всСго станСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ, Ссли Π±ΡƒΠ΄Π΅Ρ‚ спрос со стороны Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Π½ΠΎ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Haiku Π΅ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, Π±ΠΎΠ»Π΅Π΅ насущныС Π·Π°Π΄Π°Ρ‡ΠΈ.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ сами! Π’Π΅Π΄ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Haiku прСдоставляСт ΠΎΠ±Ρ€Π°Π·Ρ‹ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ с DVD ΠΈΠ»ΠΈ USB, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ. Для установки достаточно ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π· ΠΈ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π° Ρ„Π»Π΅ΡˆΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Etcher

Появились вопросы? ΠŸΡ€ΠΈΠ³Π»Π°ΡˆΠ°Π΅ΠΌ вас Π² русскоязычный telegram-ΠΊΠ°Π½Π°Π».

ΠžΠ±Π·ΠΎΡ€ ошибок: Как Π²Ρ‹ΡΡ‚Ρ€Π΅Π»ΠΈΡ‚ΡŒ сСбС Π² Π½ΠΎΠ³Ρƒ Π² C ΠΈ C++. Π‘Π±ΠΎΡ€Π½ΠΈΠΊ Ρ€Π΅Ρ†Π΅ΠΏΡ‚ΠΎΠ² Haiku OS

ΠžΡ‚ Π°Π²Ρ‚ΠΎΡ€Π° ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°: это пятая ΡΡ‚Π°Ρ‚ΡŒΡ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° ΠΏΡ€ΠΎ Haiku.

Бписок статСй: ΠŸΠ΅Ρ€Π²Π°Ρ Вторая Π’Ρ€Π΅Ρ‚ΡŒΡ ЧСтвСртая

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com