Build notes for snaak
- October 21, 2017
- zziplib (0.13.62), syntax error in file
docs/Makedocs.py
(line 40) when interpreted by Python 3.4.5. Offending code line:
Resolved by using Python 2.7. Set theprint t_fileheader.get_filename(), t_fileheader.src_mainheader()
PYTHON
variable accordingly when running the./configure
script.
- October 29, 2017
- texlive (20170524), building custom binaries for PowerPC64.
Thetexlive-*-source.tar.xz
package is needed to build the custom binaries which will be used by the TeXLive installer later on. The TeXLive installer (install-tl
) copies the custom binaries in abin/custom/
directory. However, many of the binaries are symlinks to scripts in thetexmf-dist
tree. To prevent these symlinks from breaking, it's important to get the installation paths right when building the custom binaries.
For my TeXLive installation I use/opt/TeX
as the base installation directory while the custom binaries are installed under/opt/tl-powerpc64-bin
. When configuring the custom build (by means of the./configure
script) the following installation paths need to be set:-
--prefix=/opt/tl-powerpc64-bin
-
--bindir=/opt/tl-powerpc64-bin/bin/custom
-
--datarootdir=/opt/tl-powerpc64-bin
Note that the
datarootdir
does not contain theshare
sub-directory. This causes thetexmf-dist
tree (and some other directories) to be put in the base installation directory; this is also where the TeXLive installer puts thetexmf-dist
tree.After the custom build has been done and the files have been installed in their final place, you could add a symlink for
latex
:# cd <custom-build-dir>/bin/custom # ln -s pdftex latex
Now run the TeXLive installer and specify the location of your custom binaries. For example:
# ./install-tl -custom-bin=/opt/tl-powerpc64-bin/bin/custom
-
- November 19, 2017
- berkeley db (4.2.52), linking errors (multiple definition of
_init
and__dso_handle
). Updated to version 4.3.29. - apr-util (1.5.1), when specifying the source path to the
apr-iconv
package, the installedapu-1-config
script may refer to non-existing paths ofapr-iconv
. This may lead to a build error for theserf
package.
Specifically, theLIBS
andINCLUDES
setting ofapu-1-config
may need to be editted to point to the corrects paths.
- December 13, 2017
- qt (5.4.2), platform was not correctly detected by the
./configure
script, so used-platform
option to force platform (linux-g++-64
instead oflinux-g++
). The platform option refers to a sub-directory under./qtbase/mkspecs/
.For OpenGL support I needed to correct the search paths for the OpenGL header files and libraries as they were installed in a different location. Adjust config file
./qtbase/mkspecs/linux-g++-64/qmake.conf
as follows.Update variables:
QMAKE_LIBDIR_X11
QMAKE_LIBDIR_OPENGL
Add variable:
QMAKE_INCDIR_OPENGL
Note that a full build on
snaak
takes about 8 hours.
- December 14, 2017
- gdb (7.5, 7.7, 7.9.1), build error in GDB server component:
Likely the header filegdb/gdbserver/proc-service.c:138 conflicting types for 'ps_lgetfpregs' gdb/gdbserver/proc-service.c:148 conflicting types for 'ps_lsetfpregs'
/usr/include/proc_service.h
is used, which has different types for the function arguments. Simply match the offending function definitions inproc-service.c
to those in/usr/include/proc_service.h
(correcting only the third argument is sufficient). Alternatively, you could also try disabling the GDB server component (see./gdb/configure
).There may be a small problem with one of the Perl support scripts,
etc/texi2pod.pl
, which causes the man-page generation to fail. On line 314 of this script, the opening and closing brace need to be escaped:$column =~ s/^\@strong\{(.*)\}$/$1/;
- December 27, 2017
- hfsutils (3.2.6), the build has a number of issues:
- X11 paths for headers and libraries ignored by
./configure
- Usage of deprecated
result
member ofTcl_Interp
structure. - Test cases fail.
I resolved the first 2 issues as follows:
- Edit the main
Makefile
and add the appropriate path for the X11 header files to theINCLUDES
variable. For the X11 libraries, add the path to theTKLIBS
variable. - The
result
struct member originates from the main header file of TCL (tcl.h
), and is hidden by default. It can be exposed by setting the macroUSE_INTERP_RESULT
. Easiest is to add this macro to theconfig.h
file of the hfsutils package.
No resolution for the third issue. The test aborts due to an error in the
hfssh
command (free(): invalid size:
). It is triggered by the TCL code line:
See the procedurehfs format $path $partno $vname $badblocks
hformat
inhfs.tcl
and the 'C' functionhfs_format
inlibhfs/hfs.c
. - X11 paths for headers and libraries ignored by
- January 1, 2018
- ispell (3.4.00), in the Makefile for language "nederlands", commented
the build rule for generating the affix file (
$(AFFIXES)
); the Dutch affix file (dutch96.aff
) already appeared to be in 8 bit format.
- January 1, 2018
- linux (4.9.16), kernel module
radeonfb
seem to have been the cause of a black console screen after booting from OF. Keyboard input is working, so blind typing is an option. Didn't investigate thoroughly, but for now enabled DRM support, Radeon DRM support, framebuffer device support, and framebuffer device emulation (legacy), but not Radeon frame buffer device support.
- January 20, 2018
- yaboot (1.3.7), build error.
yaboot
must be built as a 32-bit ELF binary. This means some support libraries must also be available as 32-bit variants (libext2fs
ofe2fsprogs
andlibgcc
of GCC).snaak
does not has these libraries available. Sticking with original version ofyaboot
.
- January 23, 2018
- FSViewer (0.2.6), crash on opening Inspector panel. The inline
functions defined in
list.c
seemed to be the culprit. I think the use of the keywordinline
only allows calling the (inlined) functions from the same object file (list.c
). However, some of these functions are also called frommisc.c
. So, I've redefined theINLINE
macro inlist.h
toextern inline
, adding theextern
keyword.