አምስተኛ ቀኔ ከሀይኩ ጋር፡ አንዳንድ ፕሮግራሞችን ወደብ እናድርግ

አምስተኛ ቀኔ ከሀይኩ ጋር፡ አንዳንድ ፕሮግራሞችን ወደብ እናድርግ

TL; DRአንዳንድ ፕሮግራሞችን ከሊኑክስ አለም ለማውረድ ሲሞክር አንድ አዲስ ሰው ሃይኩን ለመጀመሪያ ጊዜ አይቶታል።

አምስተኛ ቀኔ ከሀይኩ ጋር፡ አንዳንድ ፕሮግራሞችን ወደብ እናድርግ
የእኔ የመጀመሪያ የሃይኩ ወደብ የተደረገው ፕሮግራም፣ በHpkg ቅርፀቱ የታሸገ

በቅርቡ ለፒሲዎች በሚገርም ሁኔታ ጥሩ የሆነ ኦፕሬቲንግ ሲስተም የሆነውን ሃይኩን አገኘሁት።
ዛሬ አዲስ ፕሮግራሞችን ወደዚህ ኦፕሬቲንግ ሲስተም እንዴት መላክ እንደሚቻል እማራለሁ. ዋናው ትኩረት ከሊኑክስ ገንቢ እይታ አንጻር ወደ ሃይኩ የመቀየር የመጀመሪያ ልምድ መግለጫ ነው. ሀይኩን ካወረድኩ አንድ ሳምንት እንኳን ስላልሆነ እግረ መንገዴን ለሰራሁት የሞኝ ስህተት ይቅርታ እጠይቃለሁ።

ሶስት ግቦችን ማሳካት እፈልጋለሁ:

  • ቀላል CLI መተግበሪያ ወደብ
  • መተግበሪያን ከGUI ወደ Qt ​​ያውርዱ
  • ከዚያም በ hpkg ቅርጸት ያሽጉዋቸው (አሁንም AppDir እና AppImage ለሀይኩ ስለማላመድ እያሰብኩ ነውና...)

እንጀምር. በክፍሎች ሰነድ и ልማትእንዲሁም wiki ከ HaikuPorts ትክክለኛውን አቅጣጫ አገኘሁ። የመስመር ላይ ፒዲኤፍ መጽሐፍ እንኳን አለ። ቤኦኤስ፡ የዩኒክስ መተግበሪያን ማስተላለፍ.
467 ገጾች - እና ይህ ከ 1997 ነው! ወደ ውስጥ ማየት ያስፈራል ነገር ግን ለበጎ ነገር ተስፋ አደርጋለሁ። የገንቢው ቃላቶች አበረታች ናቸው: "BeOS POSIX-compliant ስላልነበረው ረጅም ጊዜ ወስዷል" ነገር ግን ሃይኩ "በአብዛኛው" ቀድሞውኑ እንደዚህ ነው.

ቀላል የCLI መተግበሪያን በማስተላለፍ ላይ

የመጀመሪያው ሐሳብ ማመልከቻውን ወደብ መላክ ነበር አዋርደ, ግን, እንደ ተለወጠ, ይህ ቀድሞውኑ ነው ጨርሰዋል ከረዥም ጊዜ በፊት.

መጀመሪያ ሞክር፡ ምንም የሚታይ ነገር የለም።

ሊገባኝ የማልችለው ነገር ቀድሞውኑ ነው። መተግበሪያዎች ከ10 ዓመታት በላይ ወደ ሃይኩ ተልከዋል። - ምንም እንኳን የስርዓተ ክወናው እራሱ ገና ስሪት 1.0 ባይሆንም.

ሁለተኛ ሙከራ፡ እንደገና መፃፍ ያስፈልጋል

ስለዚህ እጠቀማለሁ ንክኪ-770መለያዎችን ለማተም የምጠቀምበትን ወንድም P-Touch 770 ማተሚያን ለመቆጣጠር CLI።
በእሱ ላይ የተለያዩ መለያዎችን አትምቻለሁ, እና እርስዎ ቀደም ባለው ጽሁፍ ውስጥ አይተውት ይሆናል. ትንሽ ቀደም ብሎ አንድ ትንሽ የ GUI መጠቅለያ ፕሮግራም በፓይዘን ጻፍኩ (በ Gtk + ውስጥ ስለሆነ እንደገና መፃፍ አለበት እና ይህ ለመማር ጥሩ ምክንያት ነው)።

አምስተኛ ቀኔ ከሀይኩ ጋር፡ አንዳንድ ፕሮግራሞችን ወደብ እናድርግ
ወንድም ፒ-ንክኪ 770 መለያ አታሚ ከሀይኩ ጋር ይሰራል?

የሃይኩ ፓኬጅ አስተዳዳሪ ስለ ቤተ-መጻሕፍት እና ትዕዛዞች ያውቃል፣ ስለዚህ በምሄድበት ጊዜ "ሊቢንትል ማግኘት አልቻልኩም" የሚል መልእክት ከደረሰኝ 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 በሊኑክስ ላይ የተመሰረተ ስለሆነ ለሀይኩ የለም። ይህም ማለት ለማጠናቀር የሞከርኩትን የምንጭ ኮድ ማርትዕ አለብኝ ማለት ነው።
ኧረ በራስህ ላይ መዝለል አትችልም እና የት እንደምጀምር እንኳ አላውቅም።

ሶስተኛ ሙከራ

ቢኖረን ጥሩ ነበር። tmate ለሀይኩ፣ ከዚያ የሃይኩ ገንቢዎች ከእኔ ተርሚናል ክፍለ ጊዜ ጋር እንዲገናኙ እፈቅዳለሁ - የሆነ ችግር ከተፈጠረ። መመሪያዎቹ በጣም ቀላል ናቸው-

./autogen.sh
./configure
make
make install

ጥሩ ይመስላል፣ ታዲያ ለምን በሃይኩ ላይ አትሞክሩት?

/Haiku/home> git clone https://github.com/tmate-io/tmate/Haiku/home> cd tmate//Haiku/home/tmate> ./autogen.sh
(...)/Haiku/home/tmate> ./configure
(...)
checking for libevent... no
checking for library containing event_init... no
configure: error: "libevent not found"/Haiku/home/tmate> pkgman install devel:libevent
(...)
The following changes will be made:
  in system:
    install package libevent21-2.1.8-2 from repository HaikuPorts
    install package libevent21_devel-2.1.8-2 from repository HaikuPorts
Continue? [yes/no] (yes) :
100% libevent21-2.1.8-2-x86_64.hpkg [965.22 KiB]
(...)
[system] Done.checking for ncurses... no
checking for library containing setupterm... no
configure: error: "curses not found"/Haiku/home/tmate> pkgman install devel:libcurses
(...)
*** Failed to find a match for "devel:libcurses": Name not found/Haiku/home/tmate> pkgman install devel:curses
(...)
*** Failed to find a match for "devel:curses": Name not found

በዚህ ደረጃ HaikuDepot ን ከፍቼ ፈልግ curses.
የሆነ ነገር ተገኘ፣ ይህም የበለጠ ብቃት ላለው መጠይቅ ፍንጭ ሰጠኝ፡-

/Haiku/home/tmate> pkgman install devel:libncurses
(...)
100% ncurses6_devel-6.1-1-x86_64.hpkg [835.62 KiB]
(...)./configure
(...)
checking for msgpack >= 1.1.0... no
configure: error: "msgpack >= 1.1.0 not found"/Haiku/home/tmate> pkgman install devel:msgpack
(...)
*** Failed to find a match for "devel:msgpack": Name not found/Haiku/home/tmate> pkgman install devel:libmsgpack
(...)
*** Failed to find a match for "devel:libmsgpack": Name not found

እንደገና ወደ 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

በዚህ ደረጃ፣ ፕሮግራምን ወደ ሃይኩ ማስተላለፍ ለቀላል መልሶ ግንባታ ከሚያስፈልገው በላይ ብዙ እውቀት እንደሚፈልግ ተገነዘብኩ።
ከሀይኩ ገንቢዎች ጋር ተነጋገርኩ፣ በ msgpack ውስጥ ስህተት እንዳለ ታወቀ፣ እና ከጥቂት ደቂቃዎች በኋላ በHaikuPorts ውስጥ አንድ ንጣፍ አየሁ። የተስተካከለው ጥቅል እንዴት እንደሆነ በራሴ አይቻለሁ ወደዚህ መሄድ (የግንባታ ባሪያ - ምናባዊ ማሽኖች).

አምስተኛ ቀኔ ከሀይኩ ጋር፡ አንዳንድ ፕሮግራሞችን ወደብ እናድርግ
የተስተካከለውን msgpack በBuildmaster ላይ መገንባት

በጊዜዎች መካከል አንድ ንጣፍ ወደ ላይኛው ዥረት እልካለሁ። የHaiku ድጋፍን ወደ msgpack ለመጨመር.

ከአምስት ደቂቃ በኋላ፣ የዘመነው msgpack አስቀድሞ በሃይኩ ይገኛል፡

/Haiku/home/tmate> pkgman update
(...)
The following changes will be made:
  in system:
    upgrade package msgpack_c_cpp-3.1.1-1 to 3.2.0-2 from repository HaikuPorts
    upgrade package msgpack_c_cpp_devel-3.1.1-1 to 3.2.0-2 from repository HaikuPorts
Continue? [yes/no] (yes) : y
100% msgpack_c_cpp-3.2.0-2-x86_64.hpkg [13.43 KiB]
(...)
[system] Done.

ሳይታሰብ ጥሩ። አልኩ እንዴ?!

ወደ መጀመሪያው ችግር እመለሳለሁ፡-

/Haiku/home/tmate> make
(...)
In file included from tmux.h:40,
                 from tty.c:32:
compat.h:266: warning: "AT_FDCWD" redefined
 #define AT_FDCWD -100

In file included from tty.c:25:
/boot/system/develop/headers/posix/fcntl.h:62: note: this is the location of the previous definition
 #define AT_FDCWD  (-1)  /* CWD FD for the *at() functions */

tty.c: In function 'tty_init_termios':
tty.c:278:48: error: 'IMAXBEL' undeclared (first use in this function); did you mean 'MAXLABEL'?
  tio.c_iflag &= ~(IXON|IXOFF|ICRNL|INLCR|IGNCR|IMAXBEL|ISTRIP);
                                                ^~~~~~~
                                                MAXLABEL
tty.c:278:48: note: each undeclared identifier is reported only once for each function it appears in
Makefile:969: recipe for target 'tty.o' failed
make: *** [tty.o] Error 1

አሁን msgpack ስህተት ያልሆነ ይመስላል። አስተያየት እየሰጠሁ ነው። IMAXLABEL в tty.c እንደዚህ

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

ውጤት:

osdep-unknown.c: In function 'osdep_get_cwd':
osdep-unknown.c:32:19: warning: unused parameter 'fd' [-Wunused-parameter]
 osdep_get_cwd(int fd)
               ~~~~^~
make: *** No rule to make target 'compat/forkpty-unknown.c', needed by 'compat/forkpty-unknown.o'.  Stop.

ደህና፣ እዚህ እንደገና እንሄዳለን... በነገራችን ላይ፡-

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

ለ አቶ. waddlesplash የት መቆፈር እንዳለብዎት ይነግርዎታል-

/Haiku/home/tmate> ./configure LDFLAGS="-lbsd"
(...)/Haiku/home/tmate> make
(...)
In file included from tmux.h:40,
                 from window.c:31:
compat.h:266: warning: "AT_FDCWD" redefined
 #define AT_FDCWD -100

In file included from window.c:22:
/boot/system/develop/headers/posix/fcntl.h:62: note: this is the location of the previous definition
 #define AT_FDCWD  (-1)  /* CWD FD for the *at() functions */

make: *** No rule to make target 'compat/forkpty-unknown.c', needed by 'compat/forkpty-unknown.o'.  Stop.

እዚህ ለጥፌያለሁ config.log.

በሀይኩ ላይ ከሊብሬሶልቭ በተጨማሪ በ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

"መጥፎ ወደብ መታወቂያ" ቀድሞውኑ እንደ የንግድ ካርድ ነው። ሃይኩ. ምናልባት አንድ ሰው ምን ችግር እንዳለበት እና እንዴት ማስተካከል እንዳለበት ሀሳብ ሊኖረው ይችላል? ከሆነ ጽሑፉን አሻሽላለሁ። አገናኝ ወደ የፊልሙ.

የ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 - ጥቅሎችን ለመፍጠር ዝቅተኛ-ደረጃ። በአብዛኛው, PackageInfo ለእሷ በቂ ነው, በክፍል ውስጥ እንደተገለጸው "ትክክለኛውን የ .hpkg ጥቅል ማድረግ"
  • አንድ ነገር ማድረግ አለብኝ እንደዚህ
  • መጠቀም ይችላል hpkg-ፈጣሪ (ለኔ ይበላሻል፣ ስህተት ሪፖርት ማድረግ)

ምን ማድረግ እንዳለበት ግልጽ አይደለም. የሄሎ አለም ስታይል ጀማሪ መመሪያ ያስፈልገኛል ብዬ እገምታለሁ ፣በተለይ ቪዲዮ። በጂኤንዩ ሰላም እንደሚደረገው ለHaikuPorter ምቹ መግቢያ ቢኖረን ጥሩ ነው።

የሚከተለውን እያነበብኩ ነው።

haikuporter ለሃይኩ የጋራ ጥቅል ፕሮጀክቶችን ለመፍጠር መሳሪያ ነው. ለሁሉም ፓኬጆች መሰረት ሆኖ የ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, ይህም የተወሰነ ጊዜ ይወስዳል. ቡና ላመጣ እሄዳለሁ።

ለምንድነው በምድር ላይ ይህ ቼክ በየአካባቢዬ ማሽን ላይ መደረግ ያለበት፣ እና ለአንድ ጊዜ በአገልጋዩ ላይ ማእከላዊ አይደለም?

እንደ ሚስተር. 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.

ምንድነው ችግሩ? ኢርክ ካነበብኩ በኋላ አደርገዋለሁ-

~/QtQuickApp> haikuporter -S QtQuickApp
Checking if any dependency-infos need to be updated ...
        updating dependency infos of QtQuickApp-1.0
Looking for stale dependency-infos ...
----------------------------------------------------------------------
app-misc::QtQuickApp-1.0
        /boot/home/haikuports/app-misc/QtQuickApp/QtQuickApp-1.0.recipe
----------------------------------------------------------------------Downloading: https://github.com/probonopd/QtQuickApp.git ...
--2019-07-14 16:12:44--  https://github.com/probonopd/QtQuickApp.git
Resolving github.com... 140.82.118.3
Connecting to github.com|140.82.118.3|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://github.com/probonopd/QtQuickApp [following]
--2019-07-14 16:12:45--  https://github.com/probonopd/QtQuickApp
Reusing existing connection to github.com:443.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘/boot/home/haikuports/app-misc/QtQuickApp/download/QtQuickApp.git’
     0K .                                                     1.34M=0.06s
2019-07-14 16:12:45 (1.34 MB/s) - ‘/boot/home/haikuports/app-misc/QtQuickApp/download/QtQuickApp.git’ saved [90094]
Validating checksum of QtQuickApp.git
Warning: ----- CHECKSUM TEMPLATE -----
Warning: CHECKSUM_SHA256="cf906a65442748c95df16730c66307a46d02ab3a12137f89076ec7018d8ce18c"
Warning: -----------------------------
Error: No checksum found in recipe!

አንድ አስገራሚ ጥያቄ ተነስቷል። ወደ የምግብ አዘገጃጀቱ አንድ ቼክ ከጨመርኩ - ለቀጣይ ውህደት ከቅርቡ የጂት ቃል ጋር ይዛመዳል? (ገንቢው አረጋግጧል: "አይሰራም. የምግብ አዘገጃጀቱ በአንፃራዊነት የተረጋጋ እንዲሆን ነው.")

ለመዝናናት ወደ የምግብ አዘገጃጀቱ ያክሉት:

CHECKSUM_SHA256="cf906a65442748c95df16730c66307a46d02ab3a12137f89076ec7018d8ce18c"

አሁንም አልረኩም፡-

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

ምን እያደረገ ነው? ከሁሉም በላይ, ይህ የጂት ማከማቻ ነው, ኮዱ በቀጥታ አለ, ምንም የሚፈታው ነገር የለም. በእኔ እይታ መሳሪያው ከ GitHub ዩአርኤል በላይ ከሆነ ማራገፊያ ላለመፈለግ ብልህ መሆን አለበት።

ምናልባት 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 ደህንነቱ የተጠበቀ አይደለም!) እና አሁንም የሆነ ነገር ለመክፈት እየሞከረ ነው።

እንደ ለ አቶ. waddlesplash:

ደህና ፣ አዎ ፣ ምክንያቱ ለስብሰባ የተቀበለውን መረጃ ትክክለኛነት የመፈተሽ ፍላጎት ነበር። ከአማራጮች አንዱ የማህደሩን ቼክ ድምር ማረጋገጥ ነው፣ ነገር ግን በእርግጥ የግለሰብ ፋይሎችን ሃሽ ማድረግ ይችላሉ፣ ይህም ተግባራዊ አይሆንም፣ ምክንያቱም በጣም ረጅም ጊዜ ይወስዳል. የዚህ መዘዝ የ git እና የሌላ ቪሲኤስ "አለመተማመን" ነው። በ 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 እና ማከማቻ haikuports እሱ “ልክ ይሰራል” የሚል ስሜት የለውም፣ ነገር ግን እንደ ገንቢ፣ ከሀይኩ ጋር ለመስራት የምወዳቸው ነገሮች አሉ። ለአብዛኛው ክፍል፣ ከ Open Build Service ጋር ተመሳሳይ ነው፣ ሊኑክስን ለመገንባት የመሳሪያዎች ስብስብ፡ እጅግ በጣም ኃይለኛ፣ ስልታዊ አቀራረብ ያለው፣ ነገር ግን ለትንሽ "ሄሎ አለም" መተግበሪያዬ ከመጠን ያለፈ።

በድጋሚ, እንደ ሚስተር. waddlesplash:

በእርግጥ HaikuPorter በነባሪነት በጣም ጥብቅ ነው (በተጨማሪም የሊንት ሞድ አለ እንዲሁም የበለጠ ጥብቅ ለማድረግ ጥብቅ ሁነታ አለ!) ግን ፓኬጆችን ከመፍጠር ይልቅ የሚሰሩ ፓኬጆችን ስለሚፈጥር ብቻ ነው። ለዚህም ነው ያልታወጁ ጥገኝነቶች፣ ቤተ-መጻሕፍት በአግባቡ ያልተገቡ፣ የተሳሳቱ ሥሪቶች፣ ወዘተ. ግቡ ተጠቃሚው ስለእሱ ከማወቁ በፊት የወደፊቱን ጨምሮ ማንኛውንም እና ሁሉንም ችግሮች ለመያዝ ነው (ለዚህም ነው avrdude ን መጫን ያልቻለው ፣ ምክንያቱም ጥገኝነቱ በእውነቱ በምግብ አዘገጃጀት ውስጥ ስለተገለጸ)። ቤተ-መጻሕፍት የግለሰብ ጥቅሎች ወይም የተወሰኑ የ SO ስሪቶች ብቻ አይደሉም። HaikuPorter በአፈፃፀም ወቅት ስህተቶችን ለማስወገድ ይህ ሁሉ በራሳቸው የምግብ አዘገጃጀት ውስጥ መከበራቸውን ያረጋግጣል.

በመርህ ደረጃ, ይህ የጥብቅነት ደረጃ ስርዓተ ክወና ሲፈጠር ትክክለኛ ነው, ነገር ግን ለ "ሄሎ ዓለም" መተግበሪያ ለእኔ አላስፈላጊ ይመስላል. ሌላ ነገር ለመሞከር ወሰንኩ.

"ጥቅል ፍጠር" የሚለውን ትዕዛዝ በመጠቀም መተግበሪያዎችን በ 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 ውስጥ ያለውን የ"ይዘት" ትርን ለተወሰኑ ሌሎች አፕሊኬሽኖች ከተመለከትኩ በኋላ እንደዚህ ያሉ ፋይሎች እንዳሉ አይቻለሁ። /data/mimedb/application/x-vnd... ይበልጥ የሚያስደንቀው ግን /data/deskbar/menu/Applications/….

ደህና, እዚያ ምን ማስቀመጥ አለብኝ? በል እንጂ...

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

ይህ ዘዴ እንደሚሰራ እርግጠኛ ነኝ ፣ ግን ጥያቄዎቹ ይቀራሉ-ለምን ይህ ለምን አስፈለገ ፣ ለምንድነው? ይህ ስርዓቱ በጣም የተራቀቀ ነው የሚለውን አጠቃላይ ግንዛቤ የሚያበላሽ ይመስለኛል።

አቶ እንዳብራሩት. waddlesplash:

አንዳንድ ጊዜ ሌሎች መተግበሪያዎች የሚያስፈልጋቸው ነገር ግን በምናሌው ውስጥ የሌሉ አፕሊኬሽኖች አሉ። ለምሳሌ፣ LegacyPackageInstaller በእርስዎ ቅጽበታዊ ገጽ እይታ፣ .pkg ማህደሮችን በBeOS ቅርጸት በማስኬድ ላይ። ተጠቃሚዎች እንዲጭኗቸው እፈልጋለሁ, ነገር ግን በምናሌው ውስጥ መገኘታቸው ግራ መጋባትን ያመጣል.

በሆነ ምክንያት ለምሳሌ ቀላል መፍትሄ ያለ ይመስለኛል Hidden=true በፋይሎች ውስጥ .desktop በሊኑክስ ላይ. ለምን "የተደበቀውን" መረጃ የፋይል ስርዓቱ ግብአት እና ባህሪ አታደርገውም?

በተለይ ስውር ያልሆነው ምናሌውን የሚያሳይ (የአንዳንድ) መተግበሪያ ስም ነው ፣ deskbar፣ በመንገዱ ላይ በጥብቅ የታሰረ።

ለ አቶ. waddlesplash ይህን ያብራራል፡-

በዚህ ጉዳይ ላይ "የጠረጴዛ አሞሌ" እንደ አጠቃላይ ቃል አይነት (በተመሳሳይ መልኩ እንደ "የተግባር አሞሌ" ተመሳሳይ ነው, እሱም ሁለቱንም የዊንዶው ትግበራ እና አጠቃላይ ጽንሰ-ሐሳብን ያመለክታል). ደህና, ከዚህ ጀምሮ deskbar, "ዴስክባር" አይደለም, ይህ ደግሞ በተመሳሳይ መንገድ መረዳት ይቻላል.

አምስተኛ ቀኔ ከሀይኩ ጋር፡ አንዳንድ ፕሮግራሞችን ወደብ እናድርግ
2 "ከሞላ ጎደል ተመሳሳይ" ማውጫዎች ከመተግበሪያዎች ጋር

ለምንድነው 2 ማውጫዎች ከመተግበሪያዎች ጋር ፣ እና ደግሞ ለምን የእኔ QtQuickApplication በአንድ ነው ፣ ግን በሌላ ውስጥ አይደለም? (ከሁሉም በኋላ, ይህ አንድ ስርዓት አይደለም, ነገር ግን ሁለተኛ ተጠቃሚ ነው, ይህም ለእኔ በግል ሊረዳኝ ይችላል).
እኔ የምር ግራ ገባኝ እና ይህ አንድ መሆን ያለበት ይመስለኛል።

አስተያየት በ Mr. waddlesplash

የመተግበሪያዎች ካታሎግ በምናሌው ውስጥ የማይፈለጉ መተግበሪያዎችን ይዟል። ነገር ግን ከምናሌው ጋር ያለው ሁኔታ በትክክል መሻሻል አለበት, የበለጠ ሊበጅ ይችላል.

መተግበሪያ፣ አለዚያ አይከሰትም።

ገረመኝ፡ መተግበሪያዎችን ማስተናገድ በእርግጥ አስፈላጊ ነውን? /system/apps, ተጠቃሚዎች እዚያ ካዩዋቸው, የማይፈለግ ነው. ምናልባት ተጠቃሚው በማይገናኝበት ሌላ ቦታ ላይ ማስቀመጥ የተሻለ ሊሆን ይችላል? ልክ እንደ ማክ ኦኤስ ኤክስ፣ የጥቅሎች ይዘቶች ባሉበት .appለተጠቃሚው መታየት የሌለበት /Applications፣ በ /ስርዓት/ቤተ-መጽሐፍት/ ጥልቀት ውስጥ መደበቅ…“`።

ስለ ጥገኞችስ?

ጥገኞቹን በሆነ መንገድ መግለጽ ተገቢ ይመስለኛል፣ አይደል? Qt በነባሪ የሃይኩ ጭነት አስገዳጅ አካል ተደርጎ ሊወሰድ ይችላል? አይደለም! Qt በነባሪ አልተጫነም። የጥቅል ገንቢ የELF ፋይሎችን በመፈተሽ ጥገኞችን በራስ ሰር ማወቅ ይችላል? HaikuPorter በትክክል ይህን እንደሚያደርግ ተነግሮኛል፣ ግን package አይ. በራሱ ፋይሎችን የሚፈጥር "ጥቅል ገንቢ" ብቻ ስለሆነ ነው። hpkg.

ፓኬጁ ከሀይኩ ውጭ ባሉ ፓኬጆች ላይ ጥገኛ መሆን የለበትም የሚል ፖሊሲ በመጨመር ሃይኩን የበለጠ ውስብስብ ማድረግ አለበት? haikuports? (እኔ እፈልጋለሁ ፣ ምክንያቱም እንዲህ ዓይነቱ ፖሊሲ ነገሮችን የበለጠ ቀላል ያደርገዋል - ስርዓቱ ከየትኛውም ቦታ የወረዱትን እሽጎች ከተጨማሪ የጥቅል ምንጮች ጋር ሳያበላሹ በራስ-ሰር መፍታት ይችላል።)

ለ አቶ. waddlesplash ያብራራል፡-

የገንቢዎችን ነፃነት በጣም ለመገደብ አንፈልግም, ምክንያቱም ካምፓኒክስ የራሱን የሶፍትዌር ስብስብ ከጥገኛዎች (እና ስለዚህ ማከማቻ) መደገፍ ከፈለገ ሙሉ በሙሉ በነጻነት እንደሚሠራ ግልጽ ነው.

እንደዚያ ከሆነ፣ የሶስተኛ ወገን ፓኬጆች ከመተግበሪያው ጋር ሙሉ በሙሉ በማሸግ በ haikuports ውስጥ ባልተካተቱት ነገሮች ላይ ጥገኛ እንዳይሆኑ መምከሩ ጠቃሚ ሊሆን ይችላል። ግን ይህ በዚህ ተከታታይ ርዕስ ውስጥ ለወደፊቱ መጣጥፍ ርዕስ ነው ብዬ አስባለሁ። [ደራሲው ወደ AppImage እያመራ ነው? - በግምት. ተርጓሚ]

የመተግበሪያ አዶ ማከል

ከጥሩ አብሮ የተሰሩ አዶዎችን ወደ አዲስ የፈጠርኩት መተግበሪያ ሃብቶች ማከል ብፈልግስ? ይህ አስደናቂ ርዕስ ነው, ስለዚህ ለሚቀጥለው ርዕስ መሠረት ይሆናል.

ቀጣይነት ያለው የመተግበሪያ ግንባታዎችን እንዴት ማደራጀት ይቻላል?

እንደ ኢንክስካፔ ያለ ፕሮጀክት በዓይነ ሕሊናህ ይታይህ (አዎ፣ በሃይኩ ውስጥ እስካሁን እንደማይገኝ አውቃለሁ፣ ነገር ግን በእሱ ላይ ለማሳየት ምቹ ነው)። ምንጭ ኮድ ማከማቻ አላቸው። https://gitlab.com/inkscape/inkscape.
አንድ ሰው በማከማቻው ላይ ለውጦቹን ባደረገ ቁጥር የቧንቧ መስመር ዝርጋታ ይጀምራል፣ ከዚያ በኋላ ለውጦቹ በራስ-ሰር ይሞከራሉ፣ ይገነባሉ እና አፕሊኬሽኑ ወደ ተለያዩ ፓኬጆች ይጠቀለላል፣ AppImage for Linux ን ጨምሮ (ለአገር ውስጥ ሙከራ ምንም ይሁን ምን ማውረድ የሚችል ራሱን የቻለ የመተግበሪያ ጥቅል። በስርዓቱ ላይ ምን ሊጫን ወይም ላይጫን ይችላል [አውቀው ነበር! - በግምት. ተርጓሚ]). በእያንዳንዱ የቅርንጫፍ የውህደት ጥያቄ ላይ ተመሳሳይ ነገር ይከሰታል፣ ስለዚህ ከመዋሃድዎ በፊት የተሰራውን መተግበሪያ በማዋሃድ ጥያቄ ውስጥ ከቀረበው ኮድ ማውረድ ይችላሉ።

አምስተኛ ቀኔ ከሀይኩ ጋር፡ አንዳንድ ፕሮግራሞችን ወደብ እናድርግ
ጥያቄዎችን ከግንባታ ሁኔታዎች ጋር ያዋህዱ እና ግንባታው ከተሳካ የተጠናቀረውን ሁለትዮሽ የማውረድ ችሎታ (በአረንጓዴ ምልክት የተደረገበት)

ግንባታው በዶከር ኮንቴይነሮች ውስጥ ይሠራል. GitLab በሊኑክስ ላይ ነፃ ሯጮችን ያቀርባል እና የእራስዎን ሯጮች ማካተት ይቻል ይሆናል ብዬ አስባለሁ (በነገራችን ላይ ይህ እንደ ሃይኩ ላሉት ስርዓቶች እንዴት እንደሚሰራ አላየሁም ፣ ይህም ዶከር ወይም ተመጣጣኝ እንደሌለው አውቃለሁ ፣ ግን እንዲሁም ለ FreeBSD ዶከር የለም፣ ስለዚህ ይህ ችግር ለሀይኩ ብቻ አይደለም)።

በሐሳብ ደረጃ፣ የሃይኩ አፕሊኬሽኖች በዶከር ኮንቴነር ውስጥ ለሊኑክስ ሊገነቡ ይችላሉ። በዚህ ሁኔታ, ለሃይኩ መሰብሰብ አሁን ባለው የቧንቧ መስመሮች ውስጥ ሊገባ ይችላል. መስቀል ማጠናከሪያዎች አሉ? ወይም እንደ QEMU/KVM (በዶከር ውስጥ በዚያ መንገድ ይሰራል ብዬ በማሰብ) ሁሉንም ሃይኩን በ Docker ዕቃ ውስጥ መኮረጅ አለብኝ? በነገራችን ላይ ብዙ ፕሮጀክቶች ተመሳሳይ መርሆችን ይጠቀማሉ. ለምሳሌ፣ Scribus ይህን ያደርጋል - አስቀድሞ ለሃይኩ ይገኛል። አንድ ቀን የምልክበት ቀን ይመጣል እንደዚህ የሃይኩ ድጋፍን ለመጨመር ጥያቄዎችን ወደ ሌሎች ፕሮጀክቶች ይጎትቱ።

ከገንቢዎቹ አንዱ ያብራራል-

ፓኬጆችን ራሳቸው ለመፍጠር ለሚፈልጉ ሌሎች ፕሮጀክቶች መደበኛው የCMake/CPack ዘዴ ይደገፋል። ሌሎች የግንባታ ስርዓቶች የጥቅሉን ግንባታ ፕሮግራም በቀጥታ በመደወል ሊደገፉ ይችላሉ፣ ይህም ሰዎች ፍላጎት ካላቸው ጥሩ ነው። ልምድ እንደሚያሳየው እስካሁን ድረስ ብዙ ፍላጎት አልነበረውም, ስለዚህ haikuporter ለእኛ ምቹ ሆኖ ሰርቷል, ነገር ግን በመጨረሻ, ሁለቱም ዘዴዎች አንድ ላይ ሊሠሩ ይገባል. ከሊኑክስ ወይም ከማንኛውም ሌላ የአገልጋይ ኦፕሬቲንግ ሲስተም (ሃይኩ በአገልጋይ ላይ እንዲሠራ አልተነደፈም) ለግንባታ ግንባታ ሶፍትዌሮች የሚሆኑ መሳሪያዎችን ማስተዋወቅ አለብን።

በቁም ጭብጨባ እሰጣለሁ። መደበኛ የሊኑክስ ተጠቃሚዎች ይህንን ሁሉ ተጨማሪ ጭነት እና ተጨማሪ ሻንጣ (ደህንነት ፣ ጥብቅ ቁጥጥር ፣ ወዘተ) ለአገልጋይ ኦፕሬቲንግ ሲስተም አስፈላጊ ነው ፣ ግን ለግል አይደለም ። ስለዚህ ሃይኩ አፕሊኬሽን በሊኑክስ ላይ መገንባት የሚቻልበት መንገድ እንደሆነ ሙሉ በሙሉ እስማማለሁ።

መደምደሚያ

የPOSIX መተግበሪያዎችን ወደ ሃይኩ ማስተላለፍ ይቻላል፣ ነገር ግን ከተለመደው መልሶ ግንባታ የበለጠ ውድ ሊሆን ይችላል። በ irc.freenode.net አውታረመረብ ላይ ከ#haiku ቻናል የመጡ ሰዎች ባይረዱ ኖሮ በእርግጠኝነት ከዚህ ጋር ለረጅም ጊዜ እቆያለሁ። ነገር ግን እነሱ እንኳን ሁልጊዜ ስህተት የሆነውን ነገር ወዲያውኑ አይመለከቱም ነበር።

በQt የተፃፉ መተግበሪያዎች ቀላል የማይካተቱ ናቸው። ያለ ምንም ችግር ቀላል የማሳያ መተግበሪያ አዘጋጅቻለሁ።

ለቀላል አፕሊኬሽኖች ጥቅል መገንባትም በጣም ቀላል ነው, ግን "በተለምዶ የተለቀቁ" ብቻ, ማለትም. በ haikuports ውስጥ ለድጋፍ የታቀዱ የተሻሻሉ የምንጭ ኮድ ማህደሮች ያሉት። በ GitHub ቀጣይነት ላለው ግንባታ (ለእያንዳንዱ የለውጦች ቃል ግንባታ) ሁሉም ነገር ቀላል አይመስልም። እዚህ ሃይኩ በ Mac ላይ ካለው ውጤት ይልቅ እንደ ሊኑክስ ስርጭት ይሰማዋል፣ በ XCode ውስጥ ያለውን “ግንባት” ቁልፍ ሲጫኑ ጥቅል ያገኛሉ .app, ወደ ዲስክ ምስል ለማስገባት ዝግጁ ነው .dmg, በድር ጣቢያዬ ላይ ለማውረድ ተዘጋጅቷል.
በ “አገልጋይ” ኦፕሬቲንግ ሲስተም ላይ የተመሰረቱ አፕሊኬሽኖች ቀጣይነት ያለው ግንባታ ፣ለምሳሌ ፣ ሊኑክስ ፣ የገንቢዎች ፍላጎት ካለ ምናልባት የሚቻል ሊሆን ይችላል ፣ ግን በአሁኑ ጊዜ የሃይኩ ፕሮጄክት ሌላ ፣ የበለጠ አንገብጋቢ ተግባራት አሉት ።

እራስዎ ይሞክሩት! ከሁሉም በላይ የሃይኩ ፕሮጀክት ከዲቪዲ ወይም ከዩኤስቢ ለመነሳት ምስሎችን ያቀርባል, የተፈጠረ ежедневно. ለመጫን ምስሉን ብቻ አውርደው ወደ ዩኤስቢ ፍላሽ አንፃፊ በመጠቀም ያቃጥሉት Etcher

ማንኛውም ጥያቄ አለህ? ወደ ሩሲያኛ ተናጋሪ እንጋብዝሃለን። የቴሌግራም ሰርጥ.

የስህተት አጠቃላይ እይታ፡- በ C እና C ++ ውስጥ እራስዎን በእግር ውስጥ እንዴት እንደሚተኩሱ። የHaiku OS የምግብ አሰራር ስብስብ

ከ ደራሲ ትርጉም፡ ይህ በተከታታይ ስለ ሃይኩ አምስተኛው መጣጥፍ ነው።

የጽሁፎች ዝርዝር፡- የመጀመሪያው ሁለተኛው ሦስተኛው አራተኛ

ምንጭ: hab.com

አስተያየት ያክሉ