[Pkg-zsh-devel] Bug#776964: Headers installed by zsh-dev packages miss critical pieces
ZyX
kp-pav at yandex.ru
Wed Feb 4 04:49:35 UTC 2015
04.02.2015, 01:58, "Frank Terbeck" <ft at bewatermyfriend.org>:
> Hey there!
>
> ZyX wrote:
> [...]
>> To use zsh headers in some module at least `config.h` file is needed
>
> Finally, someone who actually wants to use zsh's facilities to load
> third party modules. Yay. ;)
>> in addition to those already present in the package. `config.h` files
>> contains defines guessed by ./configure script and including it prior
>> to `zsh.h` is the only sane variant to include `zsh.h` (insane variant
>> is using module’s own configure script which will create those
>> defines). Without `config.h` including `zsh.h` will fail due to
>> missing defines, and even if it was not failing it would make #include
>> <zsh.h> do the wrong thing because of the bits like
>
> [...]
>
> I agree.
>> (configure.h-driven definition of zlong and zulong which has the potential of breaking ABI compatibility in some cases).
>>
>> In addition to this file it is good to have a patched `zsh.mdh` file
>> which glues together all zsh includes and is a single entry point.
>> Patch needed to include this file in the distribution may be performed
>> with the following script:
>>
>> for file in Src/{zsh.mdh,*.h} ; do
>
> We'd probably want to do that in a POSIX compatible way, so we'd refrain
> from using brace expansion but that's just cosmetics.
>> sed -i 's@\.\./config\.h at config.h@' "$file"
>> sed -i 's@#\(\s*\)include "\([^"]\+\)"@#\1include <zsh/\2>@' "$file"
>
> Sed's -i option requires GNU sed. But then, I don't know if debian even
> ships another version of sed. ...I think it doesn't; but I also don't
> know about the policy with respect to non-POSIX features in packaging.
>> done
>>
>> . I am doing this in a Gentoo ebuild and the result works just fine.
>
> Yeah, I think this could work.
>
> Do you think it would make sense to include the other header files with
> zsh-dev as well? Like "zshterm.h" etc?
In my ebuild I am simply doins all *.h files from Src, passed throught these
filters, so zshterm.h gets caught as well. But I think that all of them are
#included by zsh.mdh, at least zshterm.h does (zsh.mdh includes zsh_system.h
and that includes zshterm.h). Did not know you do not do the same thing (I
mean, adding Src/*.h).
>
> Regards, Frank
More information about the Pkg-zsh-devel
mailing list