MobileRead Forums

MobileRead Forums (https://www.mobileread.com/forums/index.php)
-   Sigil (https://www.mobileread.com/forums/forumdisplay.php?f=203)
-   -   Building Sigil on Haiku (https://www.mobileread.com/forums/showthread.php?t=322767)

User_Z 09-05-2019 04:28 AM

Building Sigil on Haiku
 
Hi everyone.
Need building manual Sigil on Haiku.
Or your help.

P.S. Лучше на русском.

DiapDealer 09-05-2019 07:35 AM

If Haiku supports Qt5.9.x or higher, you should use the Linux build documentation and adjust accordingly. That's all assuming it's even possible if course. I've absolutely no experience with the OS in question, and the internet isn't very forthcoming about what's available in the way of packages for Haiku. All I know is that if you're running a 32-bit version that still uses a fork of gcc2, then you're very likely out of luck.

User_Z 09-27-2019 09:42 AM

2 Attachment(s)
Hello.

Unfortunately, QtWebEngine does not currently work on the Haiku system. Therefore, I leave the idea of building Sigil in this operating system until better times.

There is no particular desire to mess with version 0.9.14. And the assembly according to the instructions for Linux, which is called "on the fly", did not bring results.
Who cares about the log files with errors:

KevinH 09-27-2019 09:55 AM

Your libc seems to be missing the 64bit file functions.

The entire remainder of the log was just known warnings that do not matter.

Kevin

boot/system/develop/tools/bin/../lib/gcc/x86_64-unknown-haiku/8.3.0/../../../../x86_64-unknown-haiku/bin/ld: ../lib/libminizip.a(ioapi.c.o): in function `fseek64_file_func':
ioapi.c:(.text+0x11e): undefined reference to `fseeko64'
/boot/system/develop/tools/bin/../lib/gcc/x86_64-unknown-haiku/8.3.0/../../../../x86_64-unknown-haiku/bin/ld: ../lib/libminizip.a(ioapi.c.o): in function `ftell64_file_func':
ioapi.c:(.text+0x14a): undefined reference to `ftello64'
/boot/system/develop/tools/bin/../lib/gcc/x86_64-unknown-haiku/8.3.0/../../../../x86_64-unknown-haiku/bin/ld: ../lib/libminizip.a(ioapi.c.o): in function `fopen64_file_func':
ioapi.c:(.text+0x185): undefined reference to `fopen64'
collect2: error: ld returned 1 exit status
make[2]: *** [bin/sigil] Error 1
make[1]: *** [src/CMakeFiles/sigil.dir/all] Error 2

Quote:

Originally Posted by User_Z (Post 3895306)
Hello.

Unfortunately, QtWebEngine does not currently work on the Haiku system. Therefore, I leave the idea of building Sigil in this operating system until better times.

There is no particular desire to mess with version 0.9.14. And the assembly according to the instructions for Linux, which is called "on the fly", did not bring results.
Who cares about the log files with errors:


User_Z 09-27-2019 10:27 AM

I have installed Haiku x86_64 hrev53511. Everything there is 64-bit, there is no other.
I think this is a minizip error.

DiapDealer 09-27-2019 11:01 AM

You could try building with whatever 64-bit version of minizip that Haiku provides (and other 3rd-party libs included with Sigil). The CMAKE directives are explained in the Sigil build documentation:

Quote:

-DUSE_SYSTEM_LIBS=(0|1) Tells cmake to try and use the system libraries when building Sigil instead of the ones bundled with Sigil in the 3rdParty directory. If a system version of a 3rd-party can't be found, Sigil falls back on the bundled version -- unless -DSYSTEM_LIBS_REQUIRED=1 is also specified (default is 0).

-DSYSTEM_LIBS_REQUIRED=(0|1) When used in conjunction with -DUSE_SYSTEM_LIBS=1, the Sigil build process will fail if all the necessary libraries can't be located on the system, instead of falling back on the bundled versions (default is 0).
Of course, it would be up to you to makes sure those 3rd-party libraries are available.

Or alternatively; if it is the system version of minizip that is failing, consider using the versions bundled with Sigil.

EDIT: from your provided cmake log, it looks like you're using mostly system libraries for Sigil's third-party dependencies--with the exception of zlib. You're using the version that comes with Sigil for that. Try installing the 64-bit zlib and zlib_devel packages that Haiku provides and adding -DSYSTEM_LIBS_REQUIRED=1 to the Sigil cmake configuration command so that the build fails if the system versions of all the third-party libraries can't be found.

I don't think I'd recommend using our bundled version of zlib with Haiku's system version of minizip (which is what is happening by the looks of your log).

User_Z 09-27-2019 12:53 PM

DiapDealer

Are you planning to upgrade the libraries included in the 3rdparty?
They’re very, very old.

I understand that this will take a lot of time and require some changes. But still?
For example, Hunspell can only be updated to version 1.3.4. All of the above, without changing the code, no longer works. Or I'm wrong?

DiapDealer 09-27-2019 01:10 PM

Quote:

Originally Posted by User_Z (Post 3895394)
DiapDealer

Are you planning to upgrade the libraries included in the 3rdparty?
They’re very, very old.

I understand that this will take a lot of time and require some changes. But still?
For example, Hunspell can only be updated to version 1.3.4. All of the above, without changing the code, no longer works. Or I'm wrong?

Any version of hunspell 1.x.x should be able to work (unless they've broken the cardinal rule of no api-changes in minor version updates). Arch Linux, for instance builds Sigil with their system hunspell (which is at v1.7.0) without needing to patch Sigil's code.

But no, we've no plans to update the bundled libraries right now. Other things are taking priority. Especially with Linux's ability to already use their own updated system versions of the 3rd-party libraries.

KevinH 09-27-2019 03:08 PM

My guess is just adding support for Haiku on line 17 of minizip/ioapi.c to make it do what Apple does here would be enough:

https://github.com/Sigil-Ebook/Sigil...inizip/ioapi.c

DiapDealer 09-27-2019 03:41 PM

It's possible. If so, I'd guess there's a few places where if_defined(HAIKU) would need to be introduced for a successful build.

I messed around with BeOS a long time ago (which is apparently what Haiku is based/modeled after), but not enough to know the ins and outs.

User_Z 09-27-2019 04:10 PM

2 Attachment(s)
Switched libraries to system, except pcre.
In" 3rdparty " updated pcre to version 8.43
Code:

-- Trying to use System Libraries...
-- Found ZLIB: /boot/system/develop/lib/libz.so (found version "1.2.11")
-- Found PkgConfig: /bin/pkg-config (found version "0.29.2")
-- Found MiniZip: /boot/system/develop/lib/libminizip.so
-- Checking for module 'hunspell'
--  Found hunspell, version 1.7.0
-- Checking for module 'libpcre16'
--  No package 'libpcre16' found
-- Found PythonInterp: /bin/python3.7 (found suitable version "3.7.3", minimum required is "3.7")
-- Found PythonLibs: /boot/system/develop/lib/libpython3.7m.so (found suitable version "3.7.3", minimum required is "3.7")
-- Using System ZLIB
-- Using System MiniZip
-- Using System Hunspell
-- Using Bundled PCRE

After that, the make command completed successfully. True, multiple warnings remained.

However, when starting sigil, there are multiple errors.
In short, a great field for activity.

User_Z 09-27-2019 04:19 PM

I ask for your clarification:

There are such terms in the cmake logfile
Code:

-- Looking for windows.h
-- Looking for windows.h - not found
-- Looking for C++ include type_traits.h
-- Looking for C++ include type_traits.h - not found
-- Looking for C++ include bits/type_traits.h
-- Looking for C++ include bits/type_traits.h - not found
-- Looking for strtoq
-- Looking for strtoq - not found
-- Looking for _strtoi64
-- Looking for _strtoi64 - not found
-- Looking for stddef.h
-- Looking for stddef.h - found

On my computer, the file type_traits.h is located
/boot/system/develop/tools/lib/gcc/x86_64-unknown-haiku/8.3.0/include/c++/ext

Tell me where and how to register the paths to this and other files? Thanks!

DiapDealer 09-27-2019 04:52 PM

Quote:

Originally Posted by User_Z (Post 3895460)
However, when starting sigil, there are multiple errors.

Do you have the required python modules (lxml and six) installed for Python 3.7.3?

DiapDealer 09-27-2019 05:02 PM

Quote:

Originally Posted by User_Z (Post 3895468)
I ask for your clarification:

There are such terms in the cmake logfile
Code:

-- Looking for windows.h
-- Looking for windows.h - not found
-- Looking for C++ include type_traits.h
-- Looking for C++ include type_traits.h - not found
-- Looking for C++ include bits/type_traits.h
-- Looking for C++ include bits/type_traits.h - not found
-- Looking for strtoq
-- Looking for strtoq - not found
-- Looking for _strtoi64
-- Looking for _strtoi64 - not found
-- Looking for stddef.h
-- Looking for stddef.h - found

On my computer, the file type_traits.h is located
/boot/system/develop/tools/lib/gcc/x86_64-unknown-haiku/8.3.0/include/c++/ext

Tell me where and how to register the paths to this and other files? Thanks!

Our cmake file would likely have to be adjusted quite a bit to fully accommodate Haiku. You can't really add additional include directories on the command line with cmake. But, I wouldn't really worry about any of the cmake output unless it's actually an error. Don't make the mistake of chasing all the include files found/not found unless the cmake configuration bombs.

I think your previous attempt was very, very close. You were probably only missing a required Python module. I've seen the exact error messages you attached before, and missing Python modules was nearly always the culprit.

User_Z 09-28-2019 03:04 AM

Quote:

Originally Posted by DiapDealer (Post 3895482)
Our cmake file would like have to be adjusted quite a bit to fully accommodate Haiku.

Yes, it would be very good to remove everything superfluous from it.


All times are GMT -4. The time now is 06:23 PM.

Powered by: vBulletin
Copyright ©2000 - 3.8.5, Jelsoft Enterprises Ltd.
MobileRead.com is a privately owned, operated and funded community.