[PATCH] makepkg: Handle invalid files in strip

Xiretza xiretza+archml at xiretza.xyz
Sat Jan 1 18:45:33 UTC 2022


On 01/01/2022 18.51, Morten Linderud wrote:
> From: Morten Linderud <morten at linderud.pw>
>
> makepkg does a fairly naive pass on the DWARF files to generate source
> files. If this is done on things like Golang it will give strip a list
> of files that are truncated paths or completely invalid virtual paths
> for the runtime to interpret.
>
> We also explicitly only allow source files that contains the given debug
> source directory. We depend on this for file lookup and it would produce
> invalid packages with weird paths if they are not present.
>
> Signed-off-by: Morten Linderud <morten at linderud.pw>
> ---
>   scripts/libmakepkg/tidy/strip.sh.in | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/libmakepkg/tidy/strip.sh.in b/scripts/libmakepkg/tidy/strip.sh.in
> index 92a6fb15..d9eb8a95 100644
> --- a/scripts/libmakepkg/tidy/strip.sh.in
> +++ b/scripts/libmakepkg/tidy/strip.sh.in
> @@ -60,11 +60,11 @@ strip_file() {
>   		while IFS= read -r t; do
>   			file=${t/${dbgsrcdir}/"$srcdir"}
>   			dest="${dbgsrc/"$dbgsrcdir"/}$t"
> -			if ! [[ -f $dest ]]; then
> +			if [[ -f "$file" ]] && ! [[ -f $dest ]]; then
>   				mkdir -p "${dest%/*}"
>   				cp -- "$file" "$dest"
>   			fi
> -		done < <(source_files "$binary")
> +		done < <(source_files "$binary" | grep "$dbgsrcdir")
>   
>   		# copy debug symbols to debug directory
>   		mkdir -p "$dbgdir/${binary%/*}"

This also removes any warning in case -fdebug-prefix-map= fails to work (e.g. because of upstream build scripts overriding CFLAGS) and just results in a debug package without any source files. Maybe it would be better to unconditionally look at every source file path, and:

1) if it's rooted in $dbgsrcdir, do the copy
2) otherwise, if it's rooted in $srcdir (because the prefix mapping didn't work), warn/error
3) otherwise, skip (it's a mangled filename without any useful meaning)

-xiretza



More information about the pacman-dev mailing list