How To Permanently Blacklist a Package File

Blog post by Barrett on Sun, 2013-12-15 19:17

With the advent of package management and hrev46391, it has become possible to prevent a package from being extracted at boot time.From a suggestion of Matt, and with the contribution of Luroh (thanks!), i would like to explain you how to blacklist a package file in Haiku.

In Haiku's boot menu , there is a 'Blacklist entries' option available. This method will only let you disable system packages, and only until the next time you reboot.

You may know, since the package manager has been added to Haiku, some directories are read only, so unlike the past, isn't possible to just delete the driver. The Blacklist functionality addresses the issue that it may be necessary to remove a problematic file such as a library or a bugged driver, which would otherwise require editing the containing package file.

So let's go to the very simple steps to do that :

  1. Figure out which file in which package you want to blacklist, especially keep in mind if the file is contained in a system package or in a user one.
  2. The second step is to create a text file named 'packages' in /boot/system/settings or in /boot/home/config/settings/global, respectively the first directory is used to blacklist system packages the second is used for user packages.

The final step is to fill the packages file with something like that :

Package 'packagename' {
	EntryBlacklist {
		'entrypath'
		...
	}
}

'packagename' is the name of the package without version, for example 'haiku'.

'entrypath' is an installation location relative path, e.g. "add-ons/Translators/FooTranslator".

This way, blacklisted entries will be ignored by the package_fs. So that they won't appear in the file system.

Let me give a pratical example.

In my case i had the broadcom570x driver to blacklist, so i created the packages file under /boot/system/settings with this content :

Package haiku {
	EntryBlacklist {
		add-ons/kernel/drivers/bin/broadcom570x
	}
}

Then i saved it and rebooted. Once Haiku start the package is re-mounted and the file is ignored by the packagefs.

Hope it was interesting!

Comments

Re: How To Permanently Blacklist a Package File

Thank you, thank you, thank you, I really needed this feature to disable a wireless driver.

Re: How To Permanently Blacklist a Package File

Can we possible get a way to do this with a GUI?

Re: How To Permanently Blacklist a Package File

I think this is room for Haiku Depot, why not submit a ticket in the bugtracker? : )

Re: How To Permanently Blacklist a Package File

I don't think HaikuDepot is the right place for such a thing, as it's more of a system-level setting.

Re: How To Permanently Blacklist a Package File

For me it depends on how many the feature is supposed to be used by users.
So if users want a feature, going with an enhancement ticket is the only way to pose it under the attention of devs.