From 666b46e2e3260e85ca6af913a73e75df9a24ab27 Mon Sep 17 00:00:00 2001 From: Alex Smith Date: Mon, 30 Jul 2012 21:42:49 +0100 Subject: [PATCH] Added libbe, ICU and consoled to the image. The boot script now launches consoled instead if app_server does not exist, so there is now an interactive Bash prompt! libbe requires ICU, which is an optional package, so I've built the packages and they've been uploaded to haiku-files.org (thanks umccullough). --- build/jam/Haiku64Image | 19 +++++++++++++------ build/jam/OptionalBuildFeatures | 6 +++++- build/jam/OptionalPackages | 10 +++++++--- build/scripts/build_haiku_image | 3 +++ data/system/boot/Bootscript | 6 ++++++ 5 files changed, 34 insertions(+), 10 deletions(-) diff --git a/build/jam/Haiku64Image b/build/jam/Haiku64Image index bc7bc4ade7..cb0311c51e 100644 --- a/build/jam/Haiku64Image +++ b/build/jam/Haiku64Image @@ -22,10 +22,11 @@ if $(HAIKU_ATA_STACK) = 1 { SYSTEM_BIN = "[" base64 basename bash cat chgrp chmod chown chroot cksum comm cp split cut date dd dircolors dirname du echo env expand expr factor false fmt fold getlimits groups head hostname id install join kill link - link ln logname ls md5sum mkdir mkfifo mktemp mv nl nohup nproc od paste - pathchk pr printenv printf ptx pwd readlink rm rmdir safemode seq sha1sum - shred shuf sleep sort split stat stty su sum sync tac tail tee test timeout - touch tr true truncate tsort tty unexpand uname uniq unlink wc whoami yes + ln locale logname ls md5sum mkdir mkfifo mktemp mv nl nohup nproc od paste + pathchk pr printenv printf ps ptx pwd readlink rm rmdir safemode seq + sha1sum shred shuf sleep sort split stat stty su sum sync sysinfo tac tail + tee test timeout touch tr true truncate tsort tty unexpand uname uniq + unlink wc whoami yes ; SYSTEM_APPS = ; @@ -34,7 +35,9 @@ SYSTEM_PREFERENCES = ; SYSTEM_DEMOS = ; -SYSTEM_LIBS = libroot.so ; +SYSTEM_LIBS = libbe.so libroot.so libroot-addon-icu.so + $(HAIKU_SHARED_LIBSTDC++) $(HAIKU_SHARED_LIBSUPC++) +; PRIVATE_SYSTEM_LIBS = ; @@ -83,7 +86,7 @@ AddFilesToHaikuImage system servers : $(SYSTEM_SERVERS) ; # apps AddFilesToHaikuImage system : runtime_loader ; -AddFilesToHaikuImage system bin : $(SYSTEM_BIN) ; +AddFilesToHaikuImage system bin : $(SYSTEM_BIN) consoled ; AddFilesToHaikuImage system apps : $(SYSTEM_APPS) ; AddFilesToHaikuImage system preferences : $(SYSTEM_PREFERENCES) ; AddFilesToHaikuImage system demos : $(SYSTEM_DEMOS) ; @@ -343,6 +346,10 @@ if $(HOST_RM_ATTRS_TARGET) { } else { AddVariableToScript $(script) : rmAttrs : rm ; } +if $(optionalPackageDescriptions) { + AddTargetVariableToScript $(script) : $(optionalPackageDescriptions) + : optionalPackageDescriptions ; +} # create the other scripts diff --git a/build/jam/OptionalBuildFeatures b/build/jam/OptionalBuildFeatures index cdd17eb11f..a77f820e47 100644 --- a/build/jam/OptionalBuildFeatures +++ b/build/jam/OptionalBuildFeatures @@ -69,12 +69,16 @@ if $(HAIKU_BUILD_FEATURE_SSL) { HAIKU_ICU_GCC_2_PACKAGE = icu-4.8.1-x86-gcc2-2011-11-02a.zip ; HAIKU_ICU_GCC_4_PACKAGE = icu-4.8.1-x86-gcc4-2011-11-02.zip ; HAIKU_ICU_PPC_PACKAGE = icu-4.8.1-ppc-2011-08-20.zip ; +HAIKU_ICU_X86_64_PACKAGE = icu-4.8.1.1-x86_64-2012-07-30.zip ; -if $(TARGET_ARCH) = ppc || $(TARGET_ARCH) = x86 { +if $(TARGET_ARCH) = ppc || $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 { local icu_package ; if $(TARGET_ARCH) = ppc { icu_package = $(HAIKU_ICU_PPC_PACKAGE) ; HAIKU_ICU_DEVEL_PACKAGE = icu-devel-4.8.1-ppc-2011-12-19.zip ; + } else if $(TARGET_ARCH) = x86_64 { + icu_package = $(HAIKU_ICU_X86_64_PACKAGE) ; + HAIKU_ICU_DEVEL_PACKAGE = icu-devel-4.8.1.1-x86_64-2012-07-30.zip ; } else if $(HAIKU_GCC_VERSION[1]) = 2 { icu_package = $(HAIKU_ICU_GCC_2_PACKAGE) ; HAIKU_ICU_DEVEL_PACKAGE = icu-devel-4.8.1.1-x86-gcc2-2011-12-20.zip ; diff --git a/build/jam/OptionalPackages b/build/jam/OptionalPackages index 6f27127193..b09ac11de2 100644 --- a/build/jam/OptionalPackages +++ b/build/jam/OptionalPackages @@ -1073,9 +1073,7 @@ if [ IsOptionalHaikuImagePackageAdded HGrep ] { # ICU if [ IsOptionalHaikuImagePackageAdded ICU ] { - if $(TARGET_ARCH) != x86 { - Echo "No optional package ICU available for $(TARGET_ARCH)" ; - } else { + if $(TARGET_ARCH) = x86 { if $(HAIKU_GCC_VERSION[1]) = 2 { # unzip gcc2 InstallOptionalHaikuImagePackage $(HAIKU_ICU_GCC_2_PACKAGE) @@ -1099,6 +1097,12 @@ if [ IsOptionalHaikuImagePackageAdded ICU ] { : system lib gcc2 ; } } + } else if $(TARGET_ARCH) = x86_64 { + InstallOptionalHaikuImagePackage $(HAIKU_ICU_X86_64_PACKAGE) + : $(baseURL)/$(HAIKU_ICU_X86_64_PACKAGE) + : system lib ; + } else { + Echo "No optional package ICU available for $(TARGET_ARCH)" ; } } diff --git a/build/scripts/build_haiku_image b/build/scripts/build_haiku_image index d6001f9d19..69100d9f0d 100755 --- a/build/scripts/build_haiku_image +++ b/build/scripts/build_haiku_image @@ -329,6 +329,8 @@ fi # ! updateOnly # add the concatenated copyrights as an attribute to AboutSystem if [ ! $updateOnly ]; then +# TODO x86_64: temporary hack, AboutSystem doesn't exist yet. +if [ -f $outputDir/objects/haiku/*/*/apps/aboutsystem/AboutSystem ]; then if [ -f $copyrightsFile ]; then copyrightAttrs=$tmpDir/copyrightAttrs $rmAttrs -f $copyrightAttrs @@ -337,6 +339,7 @@ if [ ! $updateOnly ]; then $copyAttrs ${sPrefix}$copyrightAttrs ${tPrefix}system/apps/AboutSystem fi fi +fi if [ $isCD ]; then # generate the attribute stores diff --git a/data/system/boot/Bootscript b/data/system/boot/Bootscript index 04a73bf6e6..e30521baf0 100644 --- a/data/system/boot/Bootscript +++ b/data/system/boot/Bootscript @@ -93,6 +93,12 @@ fi # Launch servers +# If app_server doesn't exist, just run consoled. +if [ ! -f "/boot/$SERVERS/app_server" ]; then + /bin/consoled + exit +fi + # We must wait for the app_server and registrar to be ready launch $SERVERS/registrar _roster_thread_ # launch registrar