Hello, Hope this is the right please to sent patches for dpkg. I am currently trying to get the dpkg test suite to pass for our Alpine Linux dpkg package. While doing so I noticed a mistake in the test_command_exec() function from t-command.c, the function doesn't set arg0 correctly. This causes the test to fail as our busybox multicall binary (which provides /bin/true) is not capable of finding an applet for "arg 0". Other invocations of command_exec in dpkg explicitly set arg0 manually too. The patch is attached as a git-format-patch(1).
The only remaining test failing on Alpine is ./t/dpkg_buildpackage.t it fails with: ”error: Unmet build dependencies: build-essential:native“. I guess that's because we don't actually use dpkg and don't have a build-essential package? I disabled the test for now, if there is any way to make it pass please let me know. I am not subscribed to the list, please CC me. Greetings, Sören
>From d57373153f86770bda9298b69a2ada8ce676769c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+...@soeren-tempel.net> Date: Thu, 27 Aug 2020 21:43:40 +0200 Subject: [PATCH] t-command: Fix test_command_exec program invocation >From exec(3): The argument arg0 should point to a filename string that is associated with the process being started by one of the exec functions. Unfortunately, this test sets arg0 to the string "arg 0" this causes the busybox multicall binary on Alpine Linux to assume that the applet "arg 0" (instead of true) should be executed. However, as such an applet does not exist, the tests fails. This commit fixes the failing test by setting arg0 correctly (as other parts of the dpkg codebase using the command API do too). --- lib/dpkg/t/t-command.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/dpkg/t/t-command.c b/lib/dpkg/t/t-command.c index 099884560..aeed7a1f2 100644 --- a/lib/dpkg/t/t-command.c +++ b/lib/dpkg/t/t-command.c @@ -170,6 +170,7 @@ test_command_exec(void) command_init(&cmd, "true", "exec test"); + command_add_arg(&cmd, "true"); command_add_arg(&cmd, "arg 0"); command_add_arg(&cmd, "arg 1");