10
12
Fork
You've already forked wormhole
2

build requires the .la files which distributions normally do not ship #1

Closed
opened 2025年10月07日 20:05:57 +02:00 by darix · 7 comments

Started package can be found here https://build.opensuse.org/package/show/server:mail/dovecot24-plugin-wormhole

I will enable more distributions and architectures once it is building.

make[4]: *** No rule to make target '/usr/lib64/dovecot/modules/lib15_notify_plugin.la', needed by 'lib20_replication_plugin.la'.
 CCLD libreplication_settings.la

why do we need the libarchive files here?

Started package can be found here https://build.opensuse.org/package/show/server:mail/dovecot24-plugin-wormhole I will enable more distributions and architectures once it is building. ``` make[4]: *** No rule to make target '/usr/lib64/dovecot/modules/lib15_notify_plugin.la', needed by 'lib20_replication_plugin.la'. CCLD libreplication_settings.la ``` why do we need the libarchive files here?

OK, this is an error in the corresponding Makefile, that I did not realize on Debian: Debian's dovecot-dev package as well as the package from the CE DO contain the libarchive files. There are other dev packages in Debian that ship libarchive files, too. Obviously OpenSuSE does not include them. No judgement here who's right! ;-)

I will take care of that bug tomorrow.

Out of curiosity: As the dovecot source distribution installs those libarchive files as well, in which package are they included in the OpenSuSE packages?

OK, this is an error in the corresponding Makefile, that I did not realize on Debian: Debian's dovecot-dev package as well as the package from the CE **DO** contain the libarchive files. There are other dev packages in Debian that ship libarchive files, too. Obviously OpenSuSE does not include them. No judgement here who's right! ;-) I will take care of that bug tomorrow. Out of curiosity: As the dovecot source distribution installs those libarchive files as well, in which package are they included in the OpenSuSE packages?
Author
Copy link

well normally they are not needed at runtime not even at devel time for most things. so why should we ship them?

I have prepared a change locally to also ship them in our package. it just feels weird.

well normally they are not needed at runtime not even at devel time for most things. so why should we ship them? I have prepared a change locally to also ship them in our package. it just feels weird.

@darix wrote in #1 (comment):

well normally they are not needed at runtime not even at devel time for most things. so why should we ship them?

That's also my impression but I'm neither a C-dev nor packaging expert.

I have prepared a change locally to also ship them in our package. it just feels weird.

Please do not feel pushed to request changes in the Dovecot packages. I'm pretty sure that I will come to a fix to avoid the libarchive dependency in the next days.

@darix wrote in https://codeberg.org/errror/wormhole/issues/1#issuecomment-7589722: > well normally they are not needed at runtime not even at devel time for most things. so why should we ship them? That's also my impression but I'm neither a C-dev nor packaging expert. > I have prepared a change locally to also ship them in our package. it just feels weird. Please do not feel pushed to request changes in the Dovecot packages. I'm pretty sure that I will come to a fix to avoid the libarchive dependency in the next days.
Author
Copy link

i am comaintainer of the package too :)

i am comaintainer of the package too :)

Hi, you should not link against those plugins in the first place. Dovecot loads them in order, so the unresolved symbols get resolved.

Hi, you should not link against those plugins in the first place. Dovecot loads them in order, so the unresolved symbols get resolved.

@cmouse noted. Will check that.

But why do you link the plugins that are shipped with Dovecot like this then? For example:
https://github.com/dovecot/core/blob/main/src/plugins/push-notification/Makefile.am#L18

if DOVECOT_PLUGIN_DEPS
notify_deps = ../notify/lib15_notify_plugin.la
endif
lib20_push_notification_plugin_la_LIBADD = \
	$(notify_deps)

And what about Timo's explaination in github.com/dovecot/core@23fdad6c7e :

The dependencies can only be checked if the dlopen() can successfully open the module, so use (apparently) non-portable ltlibrary linking to force the libraries we depend on to load with us.

@cmouse noted. Will check that. But why do you link the plugins that are shipped with Dovecot like this then? For example: https://github.com/dovecot/core/blob/main/src/plugins/push-notification/Makefile.am#L18 ```makefile if DOVECOT_PLUGIN_DEPS notify_deps = ../notify/lib15_notify_plugin.la endif lib20_push_notification_plugin_la_LIBADD = \ $(notify_deps) ``` And what about Timo's explaination in https://github.com/dovecot/core/commit/23fdad6c7e2581921f511e24cd9371c9eaebcef9 : > The dependencies can only be checked if the dlopen() can successfully open the module, so use (apparently) non-portable ltlibrary linking to force the libraries we depend on to load with us.

The explanation is 16 years old. We are not doing this ourselves for external plugins, and should probably remove this as well.

The explanation is 16 years old. We are not doing this ourselves for external plugins, and should probably remove this as well.
Sign in to join this conversation.
main
v0.12
v0.11
v0.10.2
v0.10.1
v0.10
v0.9
v0.8
v0.7
v0.6
v0.5
v0.4
v0.3.2
v0.3.1
v0.3
v0.2.2
v0.2.1
v0.2
v0.1
Labels
Clear labels
No items
No labels
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
errror/wormhole#1
Reference in a new issue
errror/wormhole
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?