Mailinglist Archive: opensuse-packaging (132 mails)

< Previous Next >
Re: [opensuse-packaging] What can cause this script to fail in Factory/Tumbleweed.
  • From: Brüns, Stefan <Stefan.Bruens@xxxxxxxxxxxxxx>
  • Date: Thu, 5 Jan 2017 15:16:35 +0000
  • Message-id: <2564423.FCsNt78Llp@sbruens-linux>
On Donnerstag, 5. Januar 2017 14:17:09 CET Dave Plater wrote:
I'm having a problem dvdisaster's bash-based-configure script where it
checks for make. It fails in Factory but passes in 42.2 downwards. This
is it:

# Check for tools
#

function REQUIRE_GMAKE()
{
if test -n "$cfg_help_mode"; then
return 0
fi

echo -n "Checking for gmake: "

if (gmake -v | grep "GNU Make") > /dev/null 2>&1 ;

(gmake -v | grep "GNU Make") > /dev/null ; echo $?
0

(gmake -v | grep "GNU Make") > /dev/null 2>&1 ; echo $?
2

The culprit seems to be a failing call to splice() in grep:

LANG=C strace -edup2,close,open,splice,read,write,execve,lseek -s 150 -f
bash -c '(/usr/bin/gmake -v | /usr/bin/grep "GNU Make") > /dev/null 2>&1'

[pid 3756] write(1, "GNU Make 4.2.1\n", 15) = 15
[pid 3757] <... read resumed> "GNU Make 4.2.1\n", 32768) = 15
[pid 3756] write(1, "Built for x86_64-suse-linux-gnu\n", 32 <unfinished ...>
[pid 3757] splice(0, NULL, 1, NULL, 32768, SPLICE_F_MOVE <unfinished ...>
[pid 3756] <... write resumed> ) = 32
[pid 3757] <... splice resumed> ) = -1 EINVAL (Invalid argument)
[pid 3756] write(1, "Copyright (C) 1988-2016 Free Software Foundation, Inc.
\n", 55) = 55
[pid 3757] write(2, "/usr/bin/grep: ", 15 <unfinished ...>
[pid 3756] write(1, "License GPLv3+: GNU GPL version 3 or later <http://
gnu.org/licenses/gpl.html>\n", 78 <unfinished ...>
[pid 3757] <... write resumed> ) = 15
[pid 3756] <... write resumed> ) = 78
[pid 3757] write(2, "(standard input)", 16 <unfinished ...>
[pid 3756] write(1, "This is free software: you are free to change and
redistribute it.\n", 67 <unfinished ...>
[pid 3757] <... write resumed> ) = 16
[pid 3756] <... write resumed> ) = 67
[pid 3757] write(2, ": Invalid argument", 18 <unfinished ...>
[pid 3756] write(1, "There is NO WARRANTY, to the extent permitted by law.
\n", 54 <unfinished ...>
[pid 3757] <... write resumed> ) = 18
[pid 3756] <... write resumed> ) = 54
[pid 3757] write(2, "\n", 1) = 1
[pid 3757] close(1) = 0
[pid 3757] close(2 <unfinished ...>
[pid 3756] close(1 <unfinished ...>
[pid 3757] <... close resumed> ) = 0
[pid 3756] <... close resumed> ) = 0
[pid 3757] +++ exited with 2 +++

3756 is gmake, 3757 is grep.

Can anyone test the above strace call with 42.2?

Kind regards,

Stefan

--
To unsubscribe, e-mail: opensuse-packaging+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-packaging+owner@xxxxxxxxxxxx

< Previous Next >
Follow Ups
References