Subject: Re: bug#75903: 29.4; compat 30.0.2.0 build failure on Emacs 28.2

From: Daniel Mendler <[email-masked]>
Date: Tue, 28 Jan 2025 18:23:02 +0100

Xiyue Deng <[email-masked]> writes:

> Hi Daniel,
>
> Daniel Mendler <[email-masked]> writes:
>
>> Daniel Mendler <[email-masked]> writes:
>>
>>> Eli Zaretskii <[email-masked]> writes:
>>>
>>>>> From: Xiyue Deng <[email-masked]>
>>>>> Date: Mon, 27 Jan 2025 15:22:47 -0800
>>>>> 
>>>>> When trying to build compat 30.0.2.0 using Emacs 28.2 from Debian
>>>>> Bookworm (the current stable release), the build process throws the
>>>>> following error:
>>>>> 
>>>>> ,----
>>>>> | ...
>>>>> | dh binary --with elpa
>>>>> |    dh_update_autotools_config
>>>>> |    dh_autoreconf
>>>>> |    dh_auto_configure
>>>>> |    dh_auto_build
>>>>> |         make -j2 "INSTALL=install --strip-program=true"
>>>>> | make[1]: Entering directory '/build/reproducible-path/compat-el-30.0.2.0+dfsg'
>>>>> | Compiling compat-25.el
>>>>> | Compiling compat-26.el
>>>>> | Compiling compat-27.el
>>>>> | Compiling compat-28.el
>>>>> | Compiling compat-29.el
>>>>> | Compiling compat-30.el
>>>>> | 
>>>>> | In toplevel form:
>>>>> | compat-30.el:28:1: Error: untrusted-content already defined
>>>>> | make[1]: *** [Makefile:81: compat-30.elc] Error 1
>>>>> | make[1]: *** Waiting for unfinished jobs....
>>>>> | make[1]: Leaving directory '/build/reproducible-path/compat-el-30.0.2.0+dfsg'
>>>>> | dh_auto_build: error: make -j2 "INSTALL=install --strip-program=true" returned exit code 2
>>>>> | make: *** [debian/rules:4: binary] Error 25
>>>>> | dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
>>>>> | --------------------------------------------------------------------------------
>>>>> | Build finished at 2025-01-27T23:09:47Z
>>>>> `----
>>>>> 
>>>>> This doesn't happen when building using Emacs 29.4 from Debian Trixie
>>>>> (current testing).
>>>>
>>>> Daniel, could you please look into this?
>>>
>>> You can build Compat with (setq compat-strict nil). Compat has strict
>>> checks in place which check that the defined symbols match the reported
>>> Emacs version. These checks are for the purpose of Compat development. I
>>> suspect that Debian has security patches applied which turn Emacs 28.2
>>> into an Emacs 28/29 mix. See also the report at
>>> https://github.com/emacs-compat/compat/issues/60.
>>
>> I have pushed a fix. See Compat commit
>> bfc0a46098be2dcaad0518ec200ff5a2be5cc9bb.
>>
>
> This worked.  Thanks for the quick fix!

Thanks for checking. But let me note that the Makefile is meant for
development - it is part of the internals of the package, similar to
compat-macs.el or the compat--* functions. It is not meant to build the
package. Emacs packages like Compat can be build as usual, like any
other Emacs package which does not provide a Makefile.

>> Daniel