Bug#516625: pbuilder: pdebuild signs wrong .changes when building with --arch=i386 on amd64

Loïc Minier lool at dooz.org
Wed Dec 30 14:09:26 UTC 2009


On Sun, Nov 29, 2009, Junichi Uekawa wrote:
> I was thinking along the lines of running something inside the chroot
> as part of build process, and passing the output back to pdebuild, and
> using that to get the correct value.
> 
> However, that's a bit of work to implement, so I have so far deferred
> doing this.

 Yeah it's not trivial; especially since there are two code pathes in
 pdebuild (use-internal versus regular) and multiple builders.  Probably
 a nicer design would be to start some kind of pbuilder server in the
 build env and feed commands to it so that we could send a
 "get_architecture" command independently of running the build.

 In the mean time, I came up with this proof of concept code:
#!/bin/bash

run() {
    echo Regular output
    echo arch=somearch >&3
    echo More output
}

# fd 3 is used for IPC output from guest to host
exec 3>&1

# output goes to a copy of stdout by default and writes to fd 3 are captured by
# the backticks
ipc_output=`exec 4>&1- 1>&3- 3>&4-; run`

for var in $ipc_output; do
    case $var in
      arch=*)
        export $var
      ;;
    esac
done

echo arch=$arch

 (it's possible to have a similar construct for sending stuff to run
 over another fd)

 If we can find an unused fd which doesn't get closed by the builders, I
 think this should work, even if it's not too pretty.

 I'm attaching a more complete example, albeit I didn't yet find a way
 -- without two real FIFO files -- to send commands and process their
 results sequentially.

-- 
Loïc Minier
-------------- next part --------------
A non-text attachment was scrubbed...
Name: foo.sh
Type: application/x-sh
Size: 738 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pbuilder-maint/attachments/20091230/7bfe4c18/attachment.sh>


More information about the Pbuilder-maint mailing list