System: Haiku

This tutorial deals with a bug in haiku that causes a black screen to appear for several minutes before the boot icons appear.

The problem is due to a well-intentioned system property of the package management system which records the activity of installing and uninstalling packages. This system allows an older version of the system to be started via the boot menu to allow a correction of a faulty installation.

However, if the number of recordings exceeds a certain value, the system takes longer and longer to check these entries. This is then noticeable by the long waiting time at system startup before the boot icons are displayed.

The recordings are stored under /boot/system/packages/administrative. If you delete this folder, the boot process will take place again in the usual normal speed. The problem is that then the restoration of an older system version is no longer possible.

Since Haiku does not have a solution to this problem, here's a way to use a script to remove entries older than 3 days:



Go to /boot/home/config/settings/boot/launch and create a new text file named check_backup_packageactivity.sh (this name is just an example).

Write the following lines in the text file:

#!/bin/sh 

cd /boot/system/packages/administrative 

statinfo=$(find ./stat* -type d | wc -l) 
if [ $statinfo -gt 20 ] ; then 
if [ "$(alert "In the /boot/system/packages/administrative directory your package installation and uninstallation activities are stored. If the number of items above a certain level, it can happen that during system startup before the Bootikons shown hang your system for several minutes remains.


These archived messages are used when you want to run an older system state from the boot menu.


The Archives now has more than 20 entries. Do you want to delete all entries that are older than three days?" "yes" "no")" == "yes" ];then
find -type d -mtime +3 -exec rm -rf {} \;

fi

fi



To run the script at system startup, it must be changed to self-executable.

To do this, right-click on the script and select File Info from the context menu.

Mark execute to make the file executable.

Now the script is executed at every system start.



If the number of recordings exceeds 20, this is indicated by an info window. If you confirm with yes, all entries from the /boot/system/packages/administrative directory older than 3 days will be removed.

If you want to change the number of days, change the number at +3 

find -type d -mtime +3 -exec rm -rf {} \;

to the desired value.

 

Translation by Lelldorin November 2017 Tutorial by Lelldorin and Humdinger December 2015
Made available by BeSly, the BeOS, Haiku and Zeta knowledge base.