Multiple errors for openindiana/slim_source on SPARC
The OI source is from 2018. Consequently, there may be a new version of the source, or some of the bugs may have already been fixed. Though the changes have been developed on SPARC hardware, they might correct bugs in some x86 packages. In any case, they should not damage other x86 packages.
During the build of openindiana/slim_source, I got the following errors:
In file included from welcome-screen.c:39: interface-globals.h:37:25: error: glade/glade.h: No such file or directory In file included from interface-globals.h:38, from welcome-screen.c:39: ... main.c:33:21: error: gtk/gtk.h: No such file or directory main.c:34:25: error: glade/glade.h: No such file or directory
It was trying to build subdirectories that require graphics. The solution was to build a text-only installer. The patch patches/cmd.patch accomplishes this change. You will need to create the patches directory manually. Next, I got this error during the build:
/usr/gcc/4.4.4/bin/gcc -xc99=%none -O -Wa,-xcg92 -c mkmsgs.c gcc: language c99=%none not recognized gcc: language c99=%none not recognized gcc: mkmsgs.c: linker input file unused because linking not done mcs: mkmsgs.o: cannot open file. No such file or directory *** Error code 1
It was using cc options with the gcc compiler. The solution is to correct Makefile.master with equivalent gcc options. The patch patches/flags.patch accomplishes this change. Note that this patch can be applied to oi-userland source without damage to x86 builds. Next, I got this error during the build:
ti_mg.c:284: warning: implicit declaration of function 'idm_create_disk_label' ti_mg.c:284: warning: implicit declaration of function 'idm_create_disk_label'
This error is caused by the function not being declared. The solution is to add the declaration to ti_dm.h . The patch patches/libti.patch accomplishes this change. Finally, I got a successful build. The publish step failed with this error:
dmake: Warning: Command failed for target `users-screen.o' Current working directory /dpool.../oi-userland-apr/components/openindiana/slim_source/slim_source/usr/src/cmd/gui-install/src ... dmake: Warning: Target `install-exec-am' not remade because of errors Current working directory /dpool.../oi-userland-apr/components/openindiana/slim_source/slim_source/usr/src/cmd/gui-install/src *** Error code 1
It was attempting to publish GUI packages, even though they were unwanted. The solution is to omit these manifests. The patch Makefile.diff accomplishes this change. Finally, I got a successful publish. The following error only shows up when the distro constructor is used to create an ISO file:
==== ba-config: Boot archive configuration ln: /mnt/misc/etc/certs/CA/T\xc3\x9c\x42\xC4\xB0TAK_UEKAE_K\xC3\xB6k_Sertifika_Hizmet_Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1_-_S\xC3\xBCr\xC3\xBCm_3.pem: cannot link to etc/certs/CA/T\xc3\x9c\x42\xC4\xB0TAK_UEKAE_K\xC3\xB6k_Sertifika_Hizmet_Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1_-_S\xC3\xBCr\xC3\xBCm_3.pem [File exists] ln: /mnt/misc/etc/certs/CA/AC_Ra\xC3\xADz_Certic\xC3\xA1mara_S.A..pem: cannot link to etc/certs/CA/AC_Ra\xC3\xADz_Certic\xC3\xA1mara_S.A..pem [File exists] ==== plat-setup: Platform specific setup ==== ba-arch: Boot archive archiving 342288 blocks fiocompress: cannot open ./etc/certs/CA/Txc3x9cx42xC4xB0TAK_UEKAE_KxC3xB6k_Sertifika_Hizmet_SaxC4x9Flayxc4xb1x63xc4xb1sxc4xb1_-_SxC3xBCrxC3xBCm_3.pem - No such file or directory /usr/share/distro_const/boot_archive_archive.py: error compressing file ./etc/certs/CA/T\xc3\x9c\x42\xC4\xB0TAK_UEKAE_K\xC3\xB6k_Sertifika_Hizmet_Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1_-_S\xC3\xBCr\xC3\xBCm_3.pem: Unknown error fiocompress: cannot open ./etc/certs/CA/AC_RaxC3xADz_CerticxC3xA1mara_S.A..pem - No such file or directory /usr/share/distro_const/boot_archive_archive.py: error compressing file ./etc/certs/CA/AC_Ra\xC3\xADz_Certic\xC3\xA1mara_S.A..pem: Unknown error sh: syntax error at line 1: `(' unexpected /usr/share/distro_const/boot_archive_archive.py: error compressing file ./etc/certs/CA/NetLock_Arany_(Class_Gold)_Főtanúsítvány.pem: No such process
What happens here is that the shell is confused by backslash and brackets. The solution is to modify boot_archive_archive.py and boot_archive_configure so that file names are used exactly as specified. The patches patches/ut-ba-archive.patch patches/ut-ba-configure.patch accomplish these changes. With these changes, I was able to create the ISO file. However, when I tried to install the operating system, the boot block was not installed. Instead, I got this error:
2019-10-16 13:20:19,600 - ERROR : install_utils.py:411 bootadm: invalid option or missing option argument: -M 2019-10-16 13:20:19,602 - ERROR : install_utils.py:411 USAGE: 2019-10-16 13:20:19,603 - ERROR : install_utils.py:411 bootadm update-archive [-vn] [-R altroot [-p platform]] 2019-10-16 13:20:19,603 - ERROR : install_utils.py:411 bootadm list-archive [-R altroot [-p platform]] 2019-10-16 13:20:19,604 - ERROR : install_utils.py:411 bootadm install-bootloader [-fv] [-R altroot] [-P pool] 2019-10-16 13:20:19,605 - ERROR : ti_install.py:163 Failed to execute bootadm install-bootloader 2019-10-16 13:20:20,376 - ERROR : ti_install.py:675 One or more ICTs failed. See previous log messages
The bootadm command complained about the -M option. Indeed, the SPARC version of the command does not accept this option. The solution was to modify ti_install.py so that it issued the bootadm command differently, for the x86 and SPARC architectures. The patch patches/oi-ti-ti_install.patch accomplishes this change. With this final change, the ISO correctly installed the boot block. The OS booted and ran correctly.