Letsatsi la ka la bohlano le Haiku: ha re beheng mananeo a mang

Letsatsi la ka la bohlano le Haiku: ha re beheng mananeo a mang

TL; DR: Motho e mocha o bone Haiku ka lekhetlo la pele, a leka ho kenya mananeo a mang a tsoang lefats'eng la Linux.

Letsatsi la ka la bohlano le Haiku: ha re beheng mananeo a mang
Lenaneo la ka la pele la Haiku ported, le phuthetsoe ka mokhoa oa lona oa hpkg

Haufinyane Ke ile ka fumana Haiku, e leng mokhoa o makatsang oa ho sebetsa oa li-PC.
Kajeno ke tla ithuta ho kenya mananeo a macha ho sistimi ena ea ts'ebetso. Sepheo se seholo ke tlhaloso ea phihlelo ea pele ea ho fetohela ho Haiku ho tloha ponong ea moqapi oa Linux. Ke kopa tšoarelo bakeng sa liphoso leha e le life tse hlokang kelello tseo ke li entseng tseleng, kaha ha e e-s'o ka e feta beke ho tloha ha ke qala ho kopitsa Haiku.

Ke batla ho fihlela lipheo tse tharo:

  • Kenya kopo e bonolo ea CLI
  • Kenya kopo ho tloha ho GUI ho ea Qt
  • Ebe u li kenya ka sebopeho sa hpkg (kaha ke ntse ke nahana ka ho ikamahanya le AppDir le AppImage bakeng sa Haiku...)

Ha re qaleng. Ka likarolo litokomane и ntshetsopelehammoho wiki ho tloha HaikuPorts ke fumane tsela e nepahetseng. Ho bile ho na le buka ea inthaneteng ea PDF BeOS: Ho tsamaisa Sesebelisoa sa Unix.
maqephe a 467 - 'me sena se tsoa 1997! Hoa tšosa ho sheba ka hare, empa ke tšepa hore lintho li tla loka. Mantsoe a moqapi aa khothatsa: "ho nkile nako e telele hobane BeOS e ne e sa lumellane le POSIX," empa Haiku "karolo e kholo" e se e ntse e le joalo.

Ho tsamaisa sesebelisoa se bonolo sa CLI

Mohopolo oa pele e bile ho kenya kopo sehla, empa, joalokaha ho ile ha fumaneha, sena se se se ntse se le teng etsoa kgalekgale.

Leka la pele: ha ho letho leo u ka le shebellang

Seo ke sa se utloisiseng ke hore se se ntse se le teng Lisebelisoa li 'nile tsa romelloa Haiku ka lilemo tse fetang 10 - leha e le taba ea hore OS ka boeona ha e so be mofuta oa 1.0 hajoale.

Teko ea bobeli: ho hlokahala ho ngola hape

Kahoo ke tla sebelisa ptouch-770, CLI bakeng sa ho laola khatiso ea Moena P-Touch 770 eo ke e sebelisang ho hatisa lileibole.
Ke hatisa lileibole tse sa tšoaneng ho eona, ’me e ka ’na eaba u se u e bone sehloohong se fetileng. Nakoana pejana, ke ngotse lenaneo le lenyenyane la GUI wrapper Python (kaha e le ho Gtk +, e tla tlameha ho ngoloa hape, mme lena ke lebaka le letle la ho ithuta).

Letsatsi la ka la bohlano le Haiku: ha re beheng mananeo a mang
Mohatisi oa label oa Moena P-Touch 770. Na e tla sebetsa le Haiku?

Mookameli oa sephutheloana sa Haiku o tseba ka lilaeborari le litaelo, kahoo haeba ke fumana molaetsa oa "ha ke fumane libintl" ha ke matha. configure - Ke qala feela pkgman install devel:libintl mme sephutheloana se hlokahalang se tla fumanoa. Ka ho tšoanang pkgman install cmd:rsync. Joale, joalo-joalo.

Ntle le ha sena se sa sebetse:

/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

Mohlomong udev e thehiloe haholo Linux mme ka hona ha e eo bakeng sa Haiku. Ho bolelang hore ke hloka ho hlophisa khoutu ea mohloli oo ke lekang ho o bokella.
Ee, ha o khone ho tlola hlooho ea hau, 'me ha ke tsebe le hore na ke qale hokae.

Teko ea boraro

Ho ka ba monate ho ba le tmate bakeng sa Haiku, ke ne ke tla lumella baetsi ba Haiku hore ba hokahane le setsi sa ka sa terminal - haeba ho na le ho hong ho sa tsamaeeng hantle. Litaelo li bonolo haholo:

./autogen.sh
./configure
make
make install

E shebahala hantle, joale ke hobane'ng ha u sa e leke ho 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

Ka mohato ona ke bula HaikuDepot mme ke batla curses.
Ho ile ha fumanoa ho hong ho ileng ha mpha temoso bakeng sa potso e nepahetseng haholoanyane:

/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

Ke ile ka boela ka ea HaikuDepot, 'me, ehlile, ka fumana devel:msgpack_c_cpp_devel. Mabitso aa a makatsang ke afe?

/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

Ka mohato ona, ke ile ka hlokomela hore ho tsamaisa lenaneo ho Haiku ho hloka tsebo e ngata ho feta e hlokahalang bakeng sa ho aha bocha.
Ke buile le baetsi ba Haiku ba botsoalle, ho ile ha fumaneha hore ho na le kokoanyana ho msgpack, 'me ka mor'a metsotso e seng mekae ke bona patch ho HaikuPorts. Ke bona ka mahlo a ka kamoo sephutheloana se lokisitsoeng kateng ho ea mona (buildslave - mechine ea sebele).

Letsatsi la ka la bohlano le Haiku: ha re beheng mananeo a mang
Ho aha msgpack e lokisitsoeng ho buildmaster

Har'a linako tse ling ke romela patch ho ea holimo ho kenya tšehetso ea Haiku ho msgpack.

Metsotso e mehlano hamorao, msgpack e nchafalitsoeng e se e fumaneha 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.

E ntle ka tsela e sa lebelloang. Na ke boletse joalo?!

Ke khutlela bothateng ba pele:

/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

Joale ho bonahala eka msgpack ha e na phoso. Ke fana ka maikutlo IMAXLABEL в tty.c kahoo:

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

Sephetho:

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.

Ho lokile, re ea hape ... Ka tsela:

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

Monghali. sephaphatha e u bolella moo u lokelang ho cheka:

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

Ke ile ka beha mona config.log.

Ba ile ba ntlhalosetsa hore ho na le ntho e 'ngoe ho libnetwork ho phaella ho libresolv ka Haiku. Ho hlakile hore khoutu e hloka ho hlophisoa ho feta. E tlameha ho nahana…

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

Potso e sa feleng: ho etsahalang?

/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

Ntho e tšoanang, feela ka profil. Googled le fumana sena. Haeba o eketsa -lssp "ka linako tse ling" e thusa, ke leka:

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

Joooh! E ea qala! Empa…

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

Ke tla leka ho lokisa bothata faele mona:

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

"Bad port ID" e se e tšoana le karete ea khoebo haiku. Mohlomong motho o na le maikutlo a hore na phoso ke efe le hore na a ka e lokisa joang? Haeba ho joalo, ke tla ntlafatsa sengoloa. Kopana le GitHub.

E tsamaisa sesebelisoa sa GUI ho Qt.

Ke khetha sesebelisoa se bonolo sa 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!

E bonolo haholo. Ka tlase ho motsotso!

Lisebelisoa tsa ho paka ka hpkg u sebelisa haikuporter le haikuports.

Ke qale ka eng? Ha ho na litokomane tse bonolo, ke ea seteisheneng sa #haiku ho irc.freenode.net 'me ke utloe:

  • sehlopha package - mokhoa o tlaase oa ho etsa liphutheloana. Ka kakaretso, PackageInfo e lekane bakeng sa hae, joalokaha ho hlalositsoe karolong "Ho e etsa hore e be sephutheloana se nepahetseng sa .hpkg"
  • Ke hloka ho etsa ho hong joalo ka
  • E ka sebelisa hpkg-moetsi (e nkhothatsa, tlaleho ea phoso)

Ha ho hlake hore na ho etsoe eng. Ke nahana hore ke hloka tataiso ea batho ba qalang setaele sa Hello World, e leng video. Ho ka ba monate ho ba le kenyelletso e bonolo ho HaikuPorter, joalo ka ha ho etsoa ho GNU hello.

Ke balile tse latelang:

haikuporter ke sesebelisoa sa ho theha merero e tloaelehileng ea liphutheloana bakeng sa Haiku. E sebelisa polokelo ea HaikuPorts e le motheo oa liphutheloana tsohle. Li-recipe tsa Haikuporter li sebelisetsoa ho etsa liphutheloana.

Ho feta moo, kea tseba hore:

Ha ho na tlhoko ea ho boloka litlolo sebakeng sa polokelo sa HaikuPorts. U ka etsa polokelo e 'ngoe, kenya diresepe ho eona, ebe u supa haikuporter ho eona.

Seo ke se hlokang feela - haeba ke sa batle mokhoa oa ho lokolla sephutheloana phatlalatsa. Empa sena ke sehlooho sa poso e 'ngoe.

Ho kenya haikuporter le 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

Ho ngola risepe

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
}

Ho kopanya recipe

Ke boloka faele tlas'a lebitso QtQuickApp-1.0.recipe, ka mor'a moo ke qala aikuporter -S ./QuickApp-1.0.recipe. Litšetleho li hlahlojoa bakeng sa liphutheloana tsohle tse sebakeng sa polokelo haikuports, e leng ho nka nako e itseng. Ke tla ea lata kofi.

Hobaneng lefatšeng cheke ee e lokela ho etsoa mochining oa heso, eseng bohareng ba seva hang bakeng sa motho e mong le e mong?

Ho latela Mong. waddlesplash:

Ka tsela eo u ka ngolang faele efe kapa efe sebakeng sa polokelo 😉 U ka ntlafatsa sena hanyane, u bala tlhaiso-leseling e hlokahalang ha ho hlokahala, hobane liphetoho tsa ho qetela tse entsoeng li fumaneha seoelo.

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

Hoa fumaneha hore ha ho na ntho e kang faele ea kamehla ea recipe e nang le khoutu ea mohloli oa kopo ea hau. U hloka ho e boloka sebakeng sa polokelo ka mokhoa oa HaikuPorts.

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

Taba ena e etsa hore kopano e be boima le ho feta. Ha ke e rate ka ho khetheha, empa ke nahana hore hoa hlokahala e le hore qetellong software eohle e bulehileng e tla hlaha HaikuPorts.

Ke fumana tse latelang:

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

Molato ke eng? Ka mor'a ho bala irc ke etsa:

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

Ho hlahile potso e thahasellisang. Haeba ke kenyelletsa cheke ho risepe - na e tla lumellana le boitlamo ba morao-rao ba git bakeng sa kopanyo e tsoelang pele? (Moetsi oa tiisa: "E ke ke ea sebetsa. Lipehelo li etselitsoe hore li tsitse.")

Ho ithabisa, eketsa ho risepe:

CHECKSUM_SHA256="cf906a65442748c95df16730c66307a46d02ab3a12137f89076ec7018d8ce18c"

E ntse e sa khotsofala:

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

O etsang? Ntle le moo, ena ke sebaka sa polokelo ea git, khoutu e se e ntse e le teng ka kotloloho, ha ho na letho le lokelang ho phutha. Ho ea ka pono ea ka, sesebelisoa se lokela ho ba bohlale ho lekana hore se se ke sa batla unpacker haeba se kaholimo ho url ea GitHub.

Mohlomong uri git:// e tla sebetsa

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

Joale e tletleba tjena:

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

Hmm, ke hobane'ng ha ntho e 'ngoe le e' ngoe e rarahane, ke hobane'ng ha u sa khone ho "sebetsa feela"? Ntle le moo, ha se ntho e sa tloaelehang ho aha ho hong ho tsoa ho GitHub. Hore na ke lisebelisoa tse sebetsang hang-hang, ntle le tlhoko ea ho seta, kapa joalo ka ha ke e bitsa "ho ferekanya".

Mohlomong e tla sebetsa tjena:

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

Che. Ke ntse ke fumana phoso ena e makatsang mme ke e etsa, joalo ka ha ho hlalositsoe mona

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

Ke ntse ke tsoela pele hanyane, empa ke hobane'ng ha e nkhoeletsa (GitHub ha e sireletsehe!) 'me e ntse e leka ho manolla ntho e itseng.

Ho ea ka Monghali. sephaphatha:

E, e, lebaka e ne e le takatso ea ho hlahloba botšepehi ba data e amohetsoeng bakeng sa kopano. E 'ngoe ea likhetho ke ho netefatsa checksum ea polokelo, empa u ka khona, ha e le hantle, hash lifaele ka bomong, tse ke keng tsa kenngoa ts'ebetsong, hobane ho nka nako e teletsana. Liphello tsa sena ke "ho se sireletsehe" ha git le VCS tse ling. Sena se tla lula se le joalo, kaha ho theha polokelo ea litaba ho GitHub ho bonolo ebile hangata ho potlakile. Hantle, nakong e tlang, mohlomong molaetsa oa phoso o ke ke oa e-ba o khanyang haholo ... (ha re sa kopanya litlolo tse joalo ho 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

Ka tloaelo ea khale, ke ea botsa batho ba lokileng ho #haiku channel ho irc.freenode.net network. Mme ke ne ke tla be ke le kae kantle ho tsona? Ka mor'a tlhahiso, ke ile ka hlokomela hore ke lokela ho sebelisa:

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

Ho lokile, ho ile ha hlaka hore na e etsa eng - e khoasolla polokelo ka khoutu ea mohloli oa ntlafatso e itseng. Ke booatla, ho ea ka pono ea ka, mme eseng hantle seo ke neng ke se batla, e leng, ho kopitsa phetolelo ea morao-rao ho tloha lekaleng le leholo.

E mong oa bahlahisi o e hlalositse ka tsela ena:

Re na le CI ea rona, kahoo ntho e 'ngoe le e' ngoe e behiloeng polokelong ea haikuports e tla phutheloa bakeng sa basebelisi bohle, 'me ha re batle ho ipeha kotsing ea ho bokella le ho fana ka "ntho e' ngoe le e 'ngoe e fumanehang ka holimo."

E utloisisoa! Leha ho le joalo, sena ke se ileng sa etsahala:

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
(...)

E pheta papatso ena infinitum. Kamoo ho bonahalang kateng ena ke phoso (na ho na le kopo? Ha kea e fumana).

С haikuporter le polokelo haikuports Ha e na "mesebetsi feela" ho eona, empa joalo ka moqapi, ho na le lintho tseo ke li ratang ka ho sebetsa le Haiku. Ka kakaretso, e tšoana le Open Build Service, sete ea lisebelisoa tsa ho haha ​​​​Linux e hahang: e matla haholo, e nang le mokhoa o hlophisitsoeng, empa e feta bakeng sa kopo ea ka e nyenyane ea "hello world".

Hape, ho latela Mong. waddlesplash:

Ehlile, HaikuPorter e thata ka ho sa feleng (hape ho na le mokhoa oa lint hammoho le mokhoa o thata oa ho e etsa hore e be thata le ho feta!), Empa hobane feela e theha liphutheloana tse tla sebetsa, ho fapana le ho theha liphutheloana feela. Ke ka lebaka leo a tletlebang ka litšepiso tse sa phatlalatsoang, lilaebrari tse sa rekoang kantle ho naha ka nepo, liphetolelo tse fosahetseng, jj. Sepheo ke ho tšoara mathata leha e le afe le ohle, ho kenyeletsa le nakong e tlang, pele mosebedisi a tseba ka eona (ke ka lebaka leo ho neng ho sa khonehe ho kenya avrdude, hobane ho itšetleha ho hlile ho boletsoe ho risepe). Lilaebrari ha se liphutheloana tsa motho ka mong kapa esita le mefuta e ikhethileng ea SO. HaikuPorter e etsa bonnete ba hore sena sohle se hlokomeloa ho diresepe ka botsona ho qoba liphoso nakong ea ho bolaoa.

Ha e le hantle, boemo bona ba ho tiea bo nepahetse ha ho etsoa mokhoa oa ho sebetsa, empa ho bonahala ho sa hlokahale ho 'na bakeng sa kopo ea "hello world". Ke ile ka etsa qeto ea ho leka ntho e ’ngoe hape.

Ho aha lits'ebetso ka sebopeho sa hpkg u sebelisa taelo ea "package create".

Mohlomong, sena Na litaelo tse bonolo li tla sebetsa hamolemo ho 'na?

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

Ka potlako e sa lebelloang, e bonolo ka mokhoa o sa lebelloang, e sebetsang ka mokhoa o sa lebelloang. Hantle-ntle ke e rata, e makatsang!

Ho kenya - eng le hokae?

E tsamaisitse faele ea QtQuickApp.hpkg ho ~/config/packagessebelisa mookameli oa faele, ka mor'a moo QtQuickApp e hlahile ka boselamose ho ~/config/apps.
Hape, ka potlako e sa lebelloang, e bonolo ebile e sebetsa. Hoa makatsa, hoa makatsa!

Empa ... (re ka be re le kae ntle le bona!)

Sesebelisoa se ntse se le sieo lenaneng la li-menu tsa lits'ebetso le QuickLaunch. Ke nahana hore ke se ke ntse ke tseba ho e lokisa. Ho mookameli oa faele ke tsamaisa QtQuickApp.hpkg ho tloha ~/config/packages ho ea ho /system/packages.

Che, e ntse e le sieo. Kamoo ho bonahalang kateng, ke (hantle, le litaelo) ke hlolohetsoe ho hong.

Kamora ho sheba "Contents" ho HaikuDepot bakeng sa lits'ebetso tse ling, ke bone hore ho na le lifaele tse kang /data/mimedb/application/x-vnd... se tsotehang le ho feta ke /data/deskbar/menu/Applications/….

Ho lokile, ke behe eng moo? Tloho...

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

Ke na le bonnete ba hore leqheka lena le tla sebetsa, empa lipotso li ntse li le teng: hobaneng sena se hlokahala, ke sa eng? Ke nahana hore sena se senya maikutlo a akaretsang a hore sistimi e rarahane haholo.

Joalokaha ho hlalositsoe ke Mong. waddlesplash:

Ka linako tse ling ho na le lits'ebetso tseo lits'ebetso tse ling li li hlokang empa ha li teng ho menu. Ka mohlala, LegacyPackageInstaller ho skrini sa hau, e sebetsa .pkg li-archives ka mokhoa oa BeOS. Ke kopa basebelisi ba li kenye, empa boteng ba tsona ho menu bo tla baka pherekano.

Ka lebaka le itseng ho bonahala ho 'na hore ho na le tharollo e bonolo, mohlala Hidden=true ka lifaele .desktop ho Linux. Ke hobane'ng ha u sa etse hore tlhahisoleseding "e patiloeng" e be mohloli le tšobotsi ea tsamaiso ea lifaele?

Ntho e sa hlakang haholo ke lebitso la (tse ling) ts'ebeliso e bonts'ang menyu, deskbar, e tlanngoe ka thata tseleng.

Monghali. waddlesplash e hlalosa sena:

"Deskbar" tabeng ena e lokela ho utloisisoa e le mofuta oa lentsoe le akaretsang (ka tsela e ts'oanang le "taskbar", e bolelang ts'ebeliso ea Windows le mohopolo o akaretsang). Be, ho tloha sena deskbar, eseng "Deskbar", sena se ka boela sa utloisisoa ka tsela e tšoanang.

Letsatsi la ka la bohlano le Haiku: ha re beheng mananeo a mang
2 "e batlang e ts'oana" e nang le lits'ebetso ho eona

Hobaneng ho na le li-directory tse 2 tse nang le lits'ebetso, hape ke hobaneng ha QtQuickApplication ea ka e le ho e 'ngoe, empa eseng ho e' ngoe? (Ka mor'a tsohle, sena ha se tsamaiso e le 'ngoe, empa ke mosebedisi oa bobeli, e leng ntho e ka utloisisoang ho' na ka boeena).
Ke ferekane haholo 'me ke nahana hore sena se lokela ho kopanngoa.

maikutlo a Mong. sephaphatha

Lenane la lisebelisoa le na le lits'ebetso tse sa hlokahaleng ho menu. Empa boemo bo nang le menu bo hlile bo hloka ho ntlafatsoa, ​​ho etsa hore e be bonolo haholoanyane.

Kopo, kapa e ke ke ea etsahala 😉

Ke ile ka ipotsa: na hoa hlokahala ho amohela likopo /system/apps, haeba basebelisi ba li bona moo, ha li ratehe. Mohlomong ho ka ba molemo ho li beha sebakeng se seng moo mosebelisi a ke keng a kopana le tsona? Joalo ka ha e etsoa ho Mac OS X, moo litaba tsa liphutheloana li leng teng .app, e sa lokelang ho bonahala ho mosebelisi ho /Applications, e ipatileng botebong ba /System/Library/…“`.

Ho thoe'ng ka batho ba itšetlehileng ka bona?

Ke nahana hore ho bohlokoa ho hlakisa litšepe ka tsela e itseng, ho joalo? Na Qt e ka nkuoa e le karolo e tlamang ea ho kenya Haiku ka ho sa feleng? Che! Qt ha e ea kengoa ka mokhoa oa kamehla. Na sehahi sa sephutheloana se ka khona ho bona litšepe ka ho sheba lifaele tsa ELF? Ke ile ka bolelloa hore HaikuPorter e hlile e etsa sena, empa package Che. Ke hobane ke "sehahi sa liphutheloana" se iketsetsang lifaele feela hpkg.

Na Haiku e lokela ho etsoa e rarahaneng ka ho eketsa leano la hore sephutheloana ha sea lokela ho itšetleha ka liphutheloana ka ntle ho Haiku? haikuports? (Nka rata, hobane leano le joalo le ka nolofatsa lintho haholo - sistimi e tla khona ho rarolla litšepe tsa sephutheloana se seng le se seng se jarollotsoeng kae kapa kae, ntle le ho senya ka mehloli e meng ea liphutheloana.)

Monghali. waddlesplash e hlalosa:

Re ke ke ra rata ho fokotsa tokoloho ea bahlahisi haholo, hobane ho hlakile hore haeba CompanyX e batla ho tšehetsa sete ea eona ea software ka litšepe (ka hona sebaka sa polokelo), e tla etsa joalo ka bolokolohi ka ho feletseng.

Boemong boo, ho ka ba molemo ho khothaletsa liphutheloana tsa motho oa boraro ho qoba ho its'etleha ho eng kapa eng e sa kenyelletsoeng ho haikuports ka ho paka tsohle tse hlokahalang ka kopo. Empa ke nahana hore ena ke sehlooho sa sehlooho se tlang letotong lena. [Na mongoli o lebile ho AppImage? - hoo e ka bang. mofetoleli]

E eketsa lets'oao la ts'ebeliso

Ho thoe'ng haeba ke batla ho kenyelletsa e 'ngoe ea litšoantšo tse hahelletsoeng ka makhethe ho lisebelisoa tsa sesebelisoa sa ka se sa tsoa etsoa? Hoa etsahala hore ena ke sehlooho se tsotehang, kahoo e tla ba motheo oa sehlooho se latelang.

Joang ho hlophisa meaho ea ts'ebeliso e tsoelang pele?

Nahana ka morero o kang oa Inkscape (e, kea tseba hore ha o so fumanehe Haiku, empa ho bonolo ho o hlahisa ho oona). Ba na le polokelo ea khoutu ea mohloli https://gitlab.com/inkscape/inkscape.
Nako le nako ha motho a etsa liphetoho sebakeng sa polokelo, liphaephe tsa ho haha ​​lia qalisoa, ka mor'a moo liphetoho li lekoa, li hahoa, 'me kopo e kenngoa ka har'a liphutheloana tse fapa-fapaneng, ho kenyeletsoa AppImage bakeng sa Linux (sephutheloana sa kopo se ikemetseng se ka khoasolloang bakeng sa tlhahlobo ea lehae ho sa tsotelehe. se ka kenngoa kapa se ke keng sa kenngoa tsamaisong [Ke tsebile! - hoo e ka bang. mofetoleli]). Ho etsahala se tšoanang ka kopo e 'ngoe le e' ngoe ea ho kopanya lekala, kahoo o ka khoasolla kopo e hahiloeng ho khoutu e hlahisitsoeng kopong ea ho kopanya pele o kopanya.

Letsatsi la ka la bohlano le Haiku: ha re beheng mananeo a mang
Kopanya likopo le maemo a ho aha le bokhoni ba ho khoasolla li-binaries tse hlophisitsoeng haeba moaho o atlehile (o tšoailoe ka botala)

Mohaho o sebetsa ka har'a lijana tsa Docker. GitLab e fana ka limathi tsa mahala ho Linux, 'me ke nahana hore ho ka khoneha ho kenyelletsa limathi tsa hau (ka tsela, ha ke bone hore na sena se ka sebetsa joang bakeng sa litsamaiso tse kang Haiku, tseo ke tsebang hore ha li na Docker kapa tse lekanang, empa hape bakeng sa FreeBSD ha ho na Docker, kahoo bothata bona ha bo ikhethang ho Haiku).

Ka nepo, lits'ebetso tsa Haiku li ka hahuoa ka har'a setshelo sa Docker bakeng sa Linux. Boemong bona, kopano ea Haiku e ka kenngoa liphaepheng tse teng. Ho na le li-cross compilers? Kapa na ke lokela ho etsisa Haiku kaofela ka har'a setshelo sa Docker ke sebelisa ntho e kang QEMU / KVM (ho nka hore e tla sebetsa ka tsela eo ka hare ho Docker)? Ka tsela, merero e mengata e sebelisa melao-motheo e tšoanang. Mohlala, Scribus o etsa sena - e se e fumaneha bakeng sa Haiku. Ka tsatsi le leng ke tla romela joalo Hula likopo ho merero e meng ho eketsa tšehetso ea Haiku.

E mong oa bahlahisi oa hlalosa:

Bakeng sa merero e meng e lakatsang ho iketsetsa liphutheloana, mokhoa o tloaelehileng oa CMake/CPack oa tšehetsoa. Litsamaiso tse ling tsa kaho li ka tšehetsoa ka ho letsetsa lenaneo la kaho ea sephutheloana ka kotloloho, ho lokile haeba batho ba e thahasella. Boiphihlelo bo bonts'a: ho fihlela joale ha ho so be le thahasello e ngata, kahoo haikuporter e sebelitse e le e loketseng bakeng sa rona, empa, qetellong, mekhoa ka bobeli e lokela ho sebetsa 'moho. Re lokela ho hlahisa sete ea lisebelisoa tsa software ea ho haha ​​​​li-cross ho tsoa Linux kapa sistimi efe kapa efe ea ts'ebetso ea seva (Haiku ha e etselitsoe ho sebetsa ho li-server).

Ke fana ka thoholetso e emeng. Basebelisi ba kamehla ba Linux ba jara mojaro ona o eketsehileng le thoto e eketsehileng (ts'ireletso, taolo e tiileng, joalo-joalo) e hlokahalang bakeng sa tsamaiso ea seva, empa eseng bakeng sa motho. Kahoo ke lumellana ka ho feletseng hore ho khona ho haha ​​lisebelisoa tsa Haiku Linux ke tsela ea ho ea.

fihlela qeto e

Ho tsamaisa lits'ebetso tsa POSIX ho Haiku hoa khoneha, empa ho ka ba theko e boima ho feta ho aha bocha. Ka sebele ke ne ke tla khomarela sena ka nako e telele haeba e ne e se ka thuso ea batho ba tsoang mocha oa #haiku ho marang-rang a irc.freenode.net. Empa le bona ha baa ka ba bona hang-hang hore na phoso ke efe.

Lisebelisoa tse ngotsoeng ka Qt li bonolo feela. Ke kopantse kopo e bonolo ea demo ntle le mathata.

Ho aha sephutheloana bakeng sa likopo tse bonolo ho boetse ho bonolo haholo, empa feela bakeng sa "tse lokollotsoeng ka moetlo", i.e. ho ba le mofuta oa li-archive tsa khoutu ea mohloli o reretsoeng ho ts'ehetsoa ho haikuports. Bakeng sa moaho o tsoelang pele (haha bakeng sa boitlamo bo bong le bo bong ba liphetoho) le GitHub, ntho e ngoe le e ngoe e bonahala e se bonolo joalo. Mona Haiku e ikutloa eka ke kabo ea Linux ho feta sephetho ho Mac, moo ha o tobetsa konopo ea "Build" ho XCode o fumana sephutheloana. .app, e loketse ho kenngoa setšoantšong sa disk .dmg, e lokiselitsoeng ho jarollwa webosaeteng ea ka.
Kaho e tsoelang pele ea lits'ebetso tse thehiloeng ho sistimi ea ts'ebetso ea "server", mohlala, Linux, e tla khonahala haholo haeba ho na le tlhoko e tsoang ho bahlahisi, empa hajoale projeke ea Haiku e na le mesebetsi e meng e hatellang haholoanyane.

E leke ka bouena! Ntle le moo, morero oa Haiku o fana ka litšoantšo tsa ho qala ho tsoa ho DVD kapa USB, e hlahisitsoeng Ежедневно. Ho kenya, feela khoasolla setšoantšo ebe u se chesa ho USB Flash drive u sebelisa Etcher

U na le lipotso? Re u memela ho batho ba buang Serussia mocha oa thelekramo.

Kakaretso ea phoso: Mokhoa oa ho ithunya leoto ka C le C ++. Pokello ea Recipe ea Haiku OS

ho tswa mongoli phetolelo: ena ke sehlooho sa bohlano letotong le buang ka Haiku.

Lethathamo la lingoliloeng: Ea pele Ea bobeli Ea boraro Ea bone

Source: www.habr.com

Eketsa ka tlhaloso