POV-Ray : Newsgroups : povray.unix : Some specific assistance needed for the Unix build process Server Time
12 Oct 2024 18:49:49 EDT (-0400)
  Some specific assistance needed for the Unix build process (Message 1 to 10 of 12)  
Goto Latest 10 Messages Next 2 Messages >>>
From: clipka
Subject: Some specific assistance needed for the Unix build process
Date: 13 Jan 2019 18:06:01
Message: <5c3bc459@news.povray.org>
Hi folks,

I've just created a branch of POV-Ray that makes use of the FreeType 
library:

https://github.com/POV-Ray/povray/tree/experimental/freetype/source/core

Integration into the Windows build process is complete, but now the Unix 
build process (most notably `unix/configure.ac`) has to be updated to 
compile against and link with the library as well.

I'm sure given enough time and effort I could hack /something/ together 
that would /happen/ to work on /my/ machine (Windows subsystem for 
Linux), but I'd feel much more comfortable if someone with a good deal 
more Unix build Fu could step up and help with this part of the job.


The task at hand is to make the configure script check the 
`--with-libfreetype=DIR` and `--without-libfreetype` options, test 
whether a modern enough version of FreeType is availebe (if applicable), 
and either set compiler and linker flags accordingly or define 
`LIBFREETYPE_MISSING`.

As for the version number I would prefer a test against the release 
(e.g. 2.6.1), but a test against either the "libtool number" (e.g. 
11.0.5) or the "shared obect number" (e.g. 6.5.0) would probably work as 
well (see `VERSIONS.TXT in the freetype `docs` directory), as long as 
the test is well-defined and reliable.


The only thing this POV-Ray branch currently does with FreeType is query 
the version number from the linked library, but I guess that should be 
sufficient to test the build process.


Post a reply to this message

From: clipka
Subject: Re: Some specific assistance needed for the Unix build process
Date: 16 Jan 2019 09:51:20
Message: <5c3f44e8$1@news.povray.org>
Am 14.01.2019 um 00:06 schrieb clipka:

> I'm sure given enough time and effort I could hack /something/ together 
> that would /happen/ to work on /my/ machine (Windows subsystem for 
> Linux), but I'd feel much more comfortable if someone with a good deal 
> more Unix build Fu could step up and help with this part of the job.

Never mind. I've just cobbled together something that I'm surprisingly 
happy with.


Post a reply to this message

From: Le Forgeron
Subject: Re: Some specific assistance needed for the Unix build process
Date: 16 Jan 2019 14:14:29
Message: <5c3f8295$1@news.povray.org>
Le 16/01/2019 à 15:51, clipka a écrit :
> Am 14.01.2019 um 00:06 schrieb clipka:
> 
>> I'm sure given enough time and effort I could hack /something/
>> together that would /happen/ to work on /my/ machine (Windows
>> subsystem for Linux), but I'd feel much more comfortable if someone
>> with a good deal more Unix build Fu could step up and help with this
>> part of the job.
> 
> Never mind. I've just cobbled together something that I'm surprisingly
> happy with.

So, no need to worry, and we can wait for the next move ?

Good, good !


Post a reply to this message

From: clipka
Subject: Re: Some specific assistance needed for the Unix build process
Date: 16 Jan 2019 14:56:31
Message: <5c3f8c6f$1@news.povray.org>
Am 16.01.2019 um 20:14 schrieb Le_Forgeron:
> Le 16/01/2019 à 15:51, clipka a écrit :
>> Am 14.01.2019 um 00:06 schrieb clipka:
>>
>>> I'm sure given enough time and effort I could hack /something/
>>> together that would /happen/ to work on /my/ machine (Windows
>>> subsystem for Linux), but I'd feel much more comfortable if someone
>>> with a good deal more Unix build Fu could step up and help with this
>>> part of the job.
>>
>> Never mind. I've just cobbled together something that I'm surprisingly
>> happy with.
> 
> So, no need to worry, and we can wait for the next move ?
> 
> Good, good !

I still need people to test it on real-life Unix systems.


Post a reply to this message

From: Le Forgeron
Subject: Re: Some specific assistance needed for the Unix build process
Date: 17 Jan 2019 12:29:03
Message: <5c40bb5f$1@news.povray.org>
Le 16/01/2019 à 20:56, clipka a écrit :
> Am 16.01.2019 um 20:14 schrieb Le_Forgeron:
>> So, no need to worry, and we can wait for the next move ?
>>
>> Good, good !
> 
> I still need people to test it on real-life Unix systems.

I built it (now automated for any further update).

Notice: I always disable io restrictions on my local built.


> checking whether to use the FreeType library... yes
> checking for pkg-config... (cached) pkg-config
> checking for FreeType's include path... -I/usr/include/freetype2
-I/usr/include/libpng16
> checking for library containing FT_Init_FreeType... -lfreetype
> checking ft2build.h usability... yes
> checking ft2build.h presence... yes
> checking for ft2build.h... yes
> checking for libfreetype version >= 2.4.0... 2.8.1, ok

but the --version does not report any information about freetype
> 
> POV-Ray 3.8.0-x.freetype.unofficial
> 
> This is an unofficial version compiled by:
>  Jérôme Grimbert <jgr### [at] freefr> Gitid:
eb30e2672525990675551ed76725d17565f8546e
>  The POV-Ray Team is not responsible for supporting this version.
> 
> Copyright 1991-2019 Persistence of Vision Raytracer Pty. Ltd.
> This is free software; see the source for copying conditions.  There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> 
> Built-in features:
>   I/O restrictions:          disabled
>   X Window display:          enabled (using SDL)
>   Supported image formats:   gif tga iff ppm pgm hdr png jpeg tiff openexr
>   Unsupported image formats: -
> 
> Compilation settings:
>   Build architecture:  x86_64-pc-linux-gnu
>   Built/Optimized for: x86_64-pc-linux-gnu (using -march=native)
>   Compiler vendor:     gnu
>   Compiler version:    g++ 7
>   Compiler flags:      -pipe -Wno-multichar -Wno-write-strings -fno-enforce-eh-specs
-Wno-non-template-friend -s -O3 -ffast-math -march=native -pthread


================

But at least the end of configure seems happy:


> ===============================================================================
> POV-Ray 3.8.0-x.freetype has been configured.
> 
> Built-in features:
>   I/O restrictions:          disabled
>   X Window display:          enabled (using SDL)
>   Text primitive:            enabled
>   Supported image formats:   gif tga iff ppm pgm hdr png jpeg tiff openexr
>   Unsupported image formats: -
> 
> Compilation settings:
>   Build architecture:  x86_64-pc-linux-gnu
>   Built/Optimized for: x86_64-pc-linux-gnu (using -march=native)
>   Compiler vendor:     gnu
>   Compiler version:    g++ 7
>   Compiler flags:      -pipe -Wno-multichar -Wno-write-strings -fno-enforce-eh-specs
-Wno-non-template-friend -s -O3 -ffast-math -march=native -pthread
>   Libraries:           -lSDL -L/usr/lib/x86_64-linux-gnu -lSDL -lXpm  -lSM -lICE
-lX11  -lfreetype -lIlmImf -lIlmImf -lImath -lHalf -lIex -lIexMath -lIlmThread
-lpthread -lIlmThread -ltiff -ljpeg -lpng -lz -lrt -lm -lboost_thread  -pthread 
-lboost_system
> 
> Type 'make check' to build the program and run a test render.
> Type 'make install' to install POV-Ray on your system.
> 
> The POV-Ray components will be installed in the following directories:
>   Program (executable):       /usr/local/bin
>   System configuration files: /usr/local/etc/povray/3.8
>   User configuration files:   /var/lib/jenkins/.povray/3.8
>   Standard include files:     /usr/local/share/povray-3.8/include
>   Standard INI files:         /usr/local/share/povray-3.8/ini
>   Standard demo scene files:  /usr/local/share/povray-3.8/scenes
>   Documentation (text, HTML): /usr/local/share/doc/povray-3.8
>   Unix man page:              /usr/local/share/man
> ===============================================================================


and the binary is asking for libfreetype (result of ldd on it):


> 	linux-vdso.so.1 (0x00007ffc09bd3000)
> 	libgtk3-nocsd.so.0 => /usr/lib/x86_64-linux-gnu/libgtk3-nocsd.so.0
(0x00007f6c0963c000)
> 	libSDL-1.2.so.0 => /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0 (0x00007f6c093a4000)
> 	libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f6c090f0000)
> 	libIlmImf-2_2.so.22 => /usr/lib/x86_64-linux-gnu/libIlmImf-2_2.so.22
(0x00007f6c08c2d000)
> 	libHalf.so.12 => /usr/lib/x86_64-linux-gnu/libHalf.so.12 (0x00007f6c089ea000)
> 	libIex-2_2.so.12 => /usr/lib/x86_64-linux-gnu/libIex-2_2.so.12 (0x00007f6c087cc000)
> 	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f6c085ad000)
> 	libtiff.so.5 => /usr/lib/x86_64-linux-gnu/libtiff.so.5 (0x00007f6c08336000)
> 	libjpeg.so.8 => /usr/lib/x86_64-linux-gnu/libjpeg.so.8 (0x00007f6c080ce000)
> 	libpng16.so.16 => /usr/lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f6c07e9c000)
> 	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f6c07c7f000)
> 	librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f6c07a77000)
> 	libboost_thread.so.1.65.1 => /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1
(0x00007f6c07852000)
> 	libboost_system.so.1.65.1 => /usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1
(0x00007f6c0764d000)
> 	libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f6c072c4000)
> 	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f6c06f26000)
> 	libmvec.so.1 => /lib/x86_64-linux-gnu/libmvec.so.1 (0x00007f6c06cfc000)
> 	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f6c06ae4000)
> 	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f6c066f3000)
> 	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f6c064ef000)
> 	libasound.so.2 => /usr/lib/x86_64-linux-gnu/libasound.so.2 (0x00007f6c061e9000)
> 	libpulse-simple.so.0 => /usr/lib/x86_64-linux-gnu/libpulse-simple.so.0
(0x00007f6c05fe4000)
> 	libpulse.so.0 => /usr/lib/x86_64-linux-gnu/libpulse.so.0 (0x00007f6c05d94000)
> 	libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f6c05a5c000)
> 	libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f6c0584a000)
> 	libcaca.so.0 => /usr/lib/x86_64-linux-gnu/libcaca.so.0 (0x00007f6c05581000)
> 	libIlmThread-2_2.so.12 => /usr/lib/x86_64-linux-gnu/libIlmThread-2_2.so.12
(0x00007f6c0537a000)
> 	/lib64/ld-linux-x86-64.so.2 (0x00007f6c09e64000)
> 	liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f6c05154000)
> 	libjbig.so.0 => /usr/lib/x86_64-linux-gnu/libjbig.so.0 (0x00007f6c04f46000)
> 	libpulsecommon-11.1.so =>
/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-11.1.so (0x00007f6c04cc8000)
> 	libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007f6c04a7b000)
> 	libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f6c04853000)
> 	libslang.so.2 => /lib/x86_64-linux-gnu/libslang.so.2 (0x00007f6c04371000)
> 	libncursesw.so.5 => /lib/x86_64-linux-gnu/libncursesw.so.5 (0x00007f6c04142000)
> 	libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f6c03f18000)
> 	libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007f6c03c94000)
> 	libwrap.so.0 => /lib/x86_64-linux-gnu/libwrap.so.0 (0x00007f6c03a8a000)
> 	libsndfile.so.1 => /usr/lib/x86_64-linux-gnu/libsndfile.so.1 (0x00007f6c03811000)
> 	libasyncns.so.0 => /usr/lib/x86_64-linux-gnu/libasyncns.so.0 (0x00007f6c0360b000)
> 	libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f6c03407000)
> 	libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f6c03201000)
> 	liblz4.so.1 => /usr/lib/x86_64-linux-gnu/liblz4.so.1 (0x00007f6c02fe5000)
> 	libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f6c02cca000)
> 	libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007f6c02ab0000)
> 	libFLAC.so.8 => /usr/lib/x86_64-linux-gnu/libFLAC.so.8 (0x00007f6c02839000)
> 	libogg.so.0 => /usr/lib/x86_64-linux-gnu/libogg.so.0 (0x00007f6c02630000)
> 	libvorbis.so.0 => /usr/lib/x86_64-linux-gnu/libvorbis.so.0 (0x00007f6c02405000)
> 	libvorbisenc.so.2 => /usr/lib/x86_64-linux-gnu/libvorbisenc.so.2
(0x00007f6c0215c000)
> 	libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f6c01f41000)
> 	libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f6c01d2c000)
> 	libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f6c01b17000)


Post a reply to this message

From: clipka
Subject: Re: Some specific assistance needed for the Unix build process
Date: 17 Jan 2019 13:19:23
Message: <5c40c72b$1@news.povray.org>
Am 17.01.2019 um 18:29 schrieb Le_Forgeron:
> Le 16/01/2019 à 20:56, clipka a écrit :
>> Am 16.01.2019 um 20:14 schrieb Le_Forgeron:
>>> So, no need to worry, and we can wait for the next move ?
>>>
>>> Good, good !
>>
>> I still need people to test it on real-life Unix systems.
> 
> I built it (now automated for any further update).

Just wondering, what flavour of Linux are you running?


> but the --version does not report any information about freetype

Fixing this right now.


Post a reply to this message

From: Le Forgeron
Subject: Re: Some specific assistance needed for the Unix build process
Date: 17 Jan 2019 13:29:55
Message: <5c40c9a3$1@news.povray.org>
Le 17/01/2019 à 19:19, clipka a écrit :
> Am 17.01.2019 um 18:29 schrieb Le_Forgeron:
>> Le 16/01/2019 à 20:56, clipka a écrit :
>>> Am 16.01.2019 um 20:14 schrieb Le_Forgeron:
>>>> So, no need to worry, and we can wait for the next move ?
>>>>
>>>> Good, good !
>>>
>>> I still need people to test it on real-life Unix systems.
>>
>> I built it (now automated for any further update).
> 
> Just wondering, what flavour of Linux are you running?
> 

Ubuntu , currently at 18.04 LTS (bionic), on 64 bits.
> 
>> but the --version does not report any information about freetype
> 
> Fixing this right now.

Thanks.


Post a reply to this message

From: Le Forgeron
Subject: Re: Some specific assistance needed for the Unix build process
Date: 18 Jan 2019 14:59:12
Message: <5c423010$1@news.povray.org>
Le 17/01/2019 à 19:29, Le_Forgeron a écrit :
> Le 17/01/2019 à 19:19, clipka a écrit :
>> Fixing this right now.
> 
> Thanks.
> 

Latest issue with today's code:


> ./parser/font.h:78:25: error: looser throw specifier for ‘virtual const char*
pov_parser::FontProcessingException::what() const’
>      virtual const char* what() const override;
>                          ^~~~
> In file included from /usr/include/c++/7/exception:38:0,
>                  from /usr/include/c++/7/new:40,
>                  from /usr/include/c++/7/bits/stl_construct.h:59,
>                  from /usr/include/c++/7/bits/stl_tempbuf.h:60,
>                  from /usr/include/c++/7/bits/stl_algo.h:62,
>                  from /usr/include/c++/7/algorithm:62,
>                  from ../unix/povconfig/syspovconfig.h:49,
>                  from ../unix/povconfig/syspovconfigbase.h:42,
>                  from ./base/configbase.h:41,
>                  from ./core/configcore.h:42,
>                  from ./parser/configparser.h:41,
>                  from ./parser/font.h:40,
>                  from parser/font.cpp:37:
> /usr/include/c++/7/bits/exception.h:69:5: error:   overriding ‘virtual const char*
std::exception::what() const noexcept’
>      what() const _GLIBCXX_TXN_SAFE_DYN _GLIBCXX_USE_NOEXCEPT;
>      ^~~~

Not sure there is a portable solution for gnu, clang and other compilers.


Post a reply to this message

From: clipka
Subject: Re: Some specific assistance needed for the Unix build process
Date: 18 Jan 2019 15:45:04
Message: <5c423ad0$1@news.povray.org>
Am 18.01.2019 um 20:59 schrieb Le_Forgeron:

>> ./parser/font.h:78:25: error: looser throw specifier for ‘virtual const char*
pov_parser::FontProcessingException::what() const’
>>       virtual const char* what() const override;
>>                           ^~~~
...

> Not sure there is a portable solution for gnu, clang and other compilers.

I /think/ changing it to

     virtual const char* what() const noexcept override;

should do the trick. Can you do a quick test with that?


Post a reply to this message

From: clipka
Subject: Re: Some specific assistance needed for the Unix build process
Date: 18 Jan 2019 22:35:50
Message: <5c429b16$1@news.povray.org>
Am 18.01.2019 um 21:45 schrieb clipka:

> should do the trick. Can you do a quick test with that?

Nevermind.


Post a reply to this message

Goto Latest 10 Messages Next 2 Messages >>>

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.