[solved] Removal of essential package?

Hi.

Installed domoticz to give it a spin, decided I didn't quite like it and went about removing the packages it had installed, which are:

+boost - 1.71.0-6
+boost-atomic - 1.71.0-6
+boost-chrono - 1.71.0-6
+boost-date_time - 1.71.0-6
+boost-system - 1.71.0-6
+boost-thread - 1.71.0-6
+domoticz - 4.9700-3
+libcares - 1.15.0-4
+libmosquitto-ssl - 1.6.9-1
+libmosquittopp - 1.6.9-1
+libopenzwave - 1.4.164-2
+libsqlite3-0 - 3310100-1
+libstdcpp6 - 7.5.0-2

I could remove all of them but the last: it complains I'm trying to remove an essential package.
I thought it might have been a package in /rom which got upgraded in root, so I checked which files belong to the package:

Package libstdcpp6 (7.5.0-2) is installed on root and has the following files:
/usr/lib/libstdc++.so.6
/usr/lib/libstdc++.so.6.0.24
/usr/lib/libstdc++.so.6.0.24-gdb.py

Then I looked under /rom and found nothing like this, only /overlay has them (which is expected).

What gives?

It's the standard c++ library. There are potentially quite a few packages that depend on it. On my system, I have 12 other packages depending on it. Try opkg whatdepends libstdcpp6 to see what they are

Root set:
  libstdcpp6
What depends on root set

Hardly surprising, given that I did NOT have this library installed before trying out domoticz, not even baked in the standard image.

@trendy @hnyman any clues?
Is it normal to get such a warning even if no packages are actually needing this library right now?

Yes it is normal. The package flags set it to be so....

PKG_FLAGS:=hold essential nonshared

define Package/libstdcpp
$(call Package/gcc/Default)
  NAME:=libstdc++
  TITLE:=GNU Standard C++ Library v3
  ABI_VERSION:=6
endef
1 Like

So basically it is a warning and it's up to me to verify that no package is using it before removing?
It kind of defeats the purpose of a dependency system ;(

This is not a standard package. It's part of the toolchain and all packages in the toolchain Makefile get these package flags set.

This is not going to apply to the majority of packages, so it's not really defeating the purpose of the dependency system as there are only a few packages that get the flags set in this way.

Sorry mate, I am not an expert here.

@dl12345 It is breaking my expectation that I can remove a package, which I had just installed and therefore has no other usage. In this sense, the purpose is kind of defeated. Anyhow, forced the removal and all is well.

@trendy no problem :slight_smile:

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.