For the packages whose compilation fails with messages (in the config.log files)
warning _FORTIFY_SOURCE requires compiling with optimization
the addition of
in the Makefile that is at the top level in the directory of the package(for example for gcc13 : pkgsrc/lang/gcc13/Makefile) could work
Note that
replaced by
in the line 286 of mk.conf in pkgsrc/mk/defaults/ prevents the problem for all packages
According to https://developers.redhat.com/articles/ ... tifysource
FORTIFY_SOURCE is a feature available in the GNU C Library that provides runtime protection against certain types of security vulnerabilities. Specifically, FORTIFY_SOURCE detects and prevents buffer overflow and formats string vulnerabilities, which are two common types of vulnerabilities that attackers can exploit to take control of a system or steal sensitive data.
So the change of the option weakens the security but it's probably unimportant here (It is unlikely that a hacker would write an exploit for a home-compiled application)
There is probably a better solution.
Moreover,
to prevent the failure of package compilation with messages like this :
undefined reference to `__pthread_cond_timedwait64'
the command
Code: Select all
/usr/libexec/gcc/x86_64-poky-linux/13.2.0/install-tools/mkheaders
must be executed.
(See https://gcc.gnu.org/onlinedocs/gcc/Fixed-Headers.html)
EDIT :
Failure of the compilation of pkgsrc/fonts/harfbuzz (a dependency of qt5-qtbase) with the error :
Many web pages related but I did not found a solution
So I disabled the option doc from this package. To do it, you add a line
PKG_OPTIONS.harfbuzz= -doc
at the bottom of the file pkgsrc/mk/defaults/mk.conf
(See https://www.netbsd.org/docs/pkgsrc/conf ... ld-options)
EDIT2:
Failure with pkgsrc/lang/rust with messages
warning: rust-analyzer@0.0.0: Could not find `.git/HEAD` from manifest dir!
error: linking with `cc` failed: exit status: 1
undefined reference to `LLVMInitializeSystemZTargetInfo@LLVM_18.1'
EDIT3:
The compilation of rust uses the file libLLVM.so.18.1. As a such file is installed (via the devx) in Easy, this is the one that is used. But this file is not suitable with pkgsrc.
It must be hidden (by renaming it) so that the compilation uses the libLLVM.so.18.1 file that it itself compiled (This file is in /usr/pkg/lib)
Note : 16 GB of Ram is not enough to compile when EasyOS runs in ram (The size of the work directory for the rust compilation was more than 15 GB)
EDIT4:
Some packages demands the creation of users and groups
Example with net/avahi
The following groups need to be created for avahi-0.8nb7:
avahi
===========================================================================
===========================================================================
The following users need to be created for avahi-0.8nb7:
avahi: avahi, /nonexistent, /sbin/nologin
The commands
Code: Select all
addgroup avahi
adduser -G avahi -S -H -D -s /sbin/nologin
unlock the compilation.
Another example :
The following groups need to be created for polkit-126:
polkitd
===========================================================================
===========================================================================
The following users need to be created for polkit-126:
polkitd: polkitd, /var, /sbin/nologin
Used commands :
Code: Select all
addgroup polkitd
adduser -G polkitd -S -h /var -D -s /sbin/nologin polkitd
pulseaudio needs the groups pulseacc and pulsert
- kdsoap needs the acceptance of a license:
ERROR: This package has set PKG_FAIL_REASON:
ERROR: kdsoap-1.9.1nb16 has an unacceptable license condition:
ERROR: gnu-agpl-v3
ERROR: You can mark the license ``gnu-agpl-v3'' as acceptable by adding
ERROR: ACCEPTABLE_LICENSES+= gnu-agpl-v3
ERROR: to /usr/pkg/etc/mk.conf or by adding
ERROR: ACCEPTABLE_LICENSES= gnu-agpl-v3
ERROR: to /usr/pkg/etc/pkg_install.conf.
ERROR: The following command will show you the license text:
ERROR: /usr/pkg/bin/bmake show-license
- For samba :
utils/ntlm_auth.c:33:10: fatal error: iniparser.h: No such file or directory
33 | #include <iniparser.h>
See https://github.com/nikp123/xava/issues/10
The solution is to copy (or to make symlinks) iniparser.h and dictionnary.h from /usr/include/initparser in /usr/include
- Back to the docbook-xsl problem.
There is a reference to /usr/pkg/usr/share/xsl/docbook/catalog.xml in the docbook-xsl compiled in Easy, but this file does not exist. I created the /usr/pkg/usr directory and inside a symlink to /usr/pkg/share
-Another error : a file is in the work directory but not in PLIST
Execute
and then relaunch the compilation
EDIT5 (modified)
Problem with devel/tevent (dependency of samba4 and of dolphin).
The compilation fails and then geany fails to open .config.log. Leafpad was able to display the beginning of the file.
The last displayed lines was
#include <stdarg.h>
#include <string.h>
int main(void)
{
char buf[] = "This is some content";
memset(buf, '
These lines come from pkgsrc/devel/tevent/work/tevent-0.16.2/lib/replace/wscript
conf.CHECK_CODE('''
#include <string.h>
int main(void)
{
char buf[] = "This is some content";
memset(buf, '\0', sizeof(buf)); __asm__ volatile("" : : "g"(&buf) : "memory");
return 0;
}
I replaced '\0' by 0 hoping it works. The compilation still fails but config.log was completely readable.
There was the line
err: /usr/lib/gcc/x86_64-poky-linux/13.2.0/../../../../x86_64-poky-linux/bin/ld: cannot find -lintl: No such file or directory
I did not find file lintl nor intl anywhere but libintl.so exists in /usr/pkg/lib
I copied libintl.so.8.4.0, libintl.so.8 and libintl.so from /usr/pkg/lib in /usr/lib and the compilation succeeds.
For samba4, error message :
> Checking file-check results for samba-4.21.3
ERROR: ************************************************************
ERROR: The following files are in the PLIST but not in /pkgsrc/net/samba4/work/.destdir/usr/pkg:
ERROR: /pkgsrc/net/samba4/work/.destdir/usr/pkg/lib/libnss_winbind.so
ERROR: /pkgsrc/net/samba4/work/.destdir/usr/pkg/lib/libnss_wins.so
So I created these files as symbolik links of libnss_winbind.so.2 and libnss_wins.so.2 ( in /pkgsrc/net/samba4/work/.destdir/usr/pkg/lib/)
EDIT6:
The compilation of dolphin (with dolphin-plugins and breeze-icons) finally finished. But there are problems : no icons, no access to partitions (although udisks2 is nstalled in Easy) and no possibility of changing language.
So I tried to compile other KDE packages. Failure with x11/kdelibs4 : "undefined reference to jp2_encode"
jp2_encode is related to the jasper programm that is installed in EasyOS. I masked all the files that was installed with jasper (see content of the jasper archive(available with PKGget)), then recompiled jasper in pkgsrc but the error message is still here.
So I give up . Too much time, too much space, too much problems and the promise of separation from the main system does not seem to have been kept