~alpine/users

1

What exatly is install_if in apk?

Details
Message ID
<HK77fEDK0F7eO58ZWa7rr1jw7DK7BzcEQpXfEdc1auMpOHEey1axW2B7PpJDvIhXyB5yi5feB-3aXvOjkO4_0ZbFIAofuMMJTTJkrUx-cvY=@proton.me>
DKIM signature
missing
Download raw message
I'm extremely sorry, I couldn't find any documentation on it.

In the alpine testing repo, there's a service management suite named 66.
I will be packaging frontends (analogous to openrc initscripts) for 66, for alpine.
They will be the name of the binary "$pkgnam" with "-66" suffix; Named "$pkgnam-66"

In order to make these packages install by themselves, similar to "$pkgnam-openrc" if "openrc" is installed, I understood that there is a feature known as "install_if".
But I am unable to find any info on how to use it, or even what exactly is it.

Help will be appreciated.

Regards, Pramod V U
Details
Message ID
<D9WXAA95HXB0.TEBZKNPOOPF3@pwned.life>
In-Reply-To
<HK77fEDK0F7eO58ZWa7rr1jw7DK7BzcEQpXfEdc1auMpOHEey1axW2B7PpJDvIhXyB5yi5feB-3aXvOjkO4_0ZbFIAofuMMJTTJkrUx-cvY=@proton.me> (view parent)
DKIM signature
missing
Download raw message
On Thu May 15, 2025 at 7:38 PM CEST, Pramod V U wrote:
> I'm extremely sorry, I couldn't find any documentation on it.

Yeah, documentation is a bit missing in this case.

>
> In the alpine testing repo, there's a service management suite named 66.
> I will be packaging frontends (analogous to openrc initscripts) for 66, for alpine.
> They will be the name of the binary "$pkgnam" with "-66" suffix; Named "$pkgnam-66"\

Note that Alpine for now won't add new subpackages for various init
systems. Alternative init systems are not really supported at the
moment.

>
> In order to make these packages install by themselves, similar to "$pkgnam-openrc" if "openrc" is installed, I understood that there is a feature known as "install_if".
> But I am unable to find any info on how to use it, or even what exactly is it.

It's defining a "optional dependency" to the referenced package. If
`test-66` has a install if on `test 66`, test-66 gets installed if
`test` and `66` is installed, if there is only one package referenced,
it gets installed if the single package is installed.

But install_if's are not strict dependencies, as the usual apk
dependencies. For example, in this case we can still run `apk add
!test-66` to remove the package.

Often install_ifs are combined with subpackages which contain files only
relevant to a related other package:
	
	pkgname=someservice
	pkgver=1
	pkgrel=0
	subpackages="$pkgname-somethingelse"
	...

	somethingelse() {
		depends="$pkgname=$pkgver-r$pkgrel somethingelse"
		install_if="$pkgname=$pkgver-r$pkgrel somethingelse"
		
		amove ...
	}

>
> Help will be appreciated.
>
> Regards, Pramod V U
Reply to thread Export thread (mbox)