Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sysvipc message queues and fakeroot #2465

Closed
fpqc opened this issue Aug 31, 2017 · 13 comments
Closed

Sysvipc message queues and fakeroot #2465

fpqc opened this issue Aug 31, 2017 · 13 comments

Comments

@fpqc
Copy link

fpqc commented Aug 31, 2017

Build 16278

I figured I'd make an issue for this since there are no open issues mentioning it. I know the devs are aware.

The lack of Sysvipc message queues breaks fakeroot and therefore breaks Arch's makepkg unless fakeroot is recompiled to use tcp instead of sysvipc (and without a working makepkg, this means you either have to comment out the uid check in makepkg and compile fakeroot-tcp as root or alternatively compile fakeroot-tcp on a separate machine running Linux).

@therealkenc
Copy link
Collaborator

Same as #2013 which was closed (likely due to the choice of issue title), just to add the ref.

@fpqc
Copy link
Author

fpqc commented Sep 1, 2017

yep! that was the motivation

@slaadvak
Copy link

I'd be really interested in having this issue resolved, as I ran into this problem while trying to build buildroot on Ubuntu for Windows (Windows Subsystem for Linux) 20170711 - Ubuntu 16.04 LTS:

fakeroot, while creating message channels: Function not implemented
This may be due to a lack of SYSV IPC support.
fakeroot: error while starting the `faked' daemon.
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
fs/ext2/ext2.mk:45: recipe for target '/home/slaadvak/buildroot/buildroot-2017.02.5/output/images/rootfs.ext2' failed
make[1]: *** [/home/slaadvak/buildroot/buildroot-2017.02.5/output/images/rootfs.ext2] Error 1
Makefile:79: recipe for target '_all' failed
make: *** [_all] Error 2

@therealkenc
Copy link
Collaborator

There is a straightforward work-around: don't fake it. dpkg-buildpackage -rsudo.

@dlech
Copy link

dlech commented Sep 26, 2017

Related: #1443 (comment)

@yecril71pl
Copy link

yecril71pl commented Dec 6, 2017

-rsudo does not fly because that requires --add-depends=sudo, configuring transparent sudo in chroot because otherwise sudo does not work missing askpass. It is easier to say -r'fakeroot --faked faked-tcp', which is clumsy as can be but works with no additional preparations. Of course, this horrible syntax is Debian’s fault, not Microsoft’s.

@Zenexer
Copy link

Zenexer commented Feb 7, 2018

The command from @yecril71pl is missing a hyphen. It should be -r'fakeroot --faked faked-tcp'. Just in case anyone else runs into the same issue.

@therealkenc
Copy link
Collaborator

therealkenc commented Feb 19, 2018

Didn't realise Ben re-opened #1443 per dlech. This one was filed initially because it appeared all of the sysv mqueue issues were closed at the time. Affects fakeroot and anything else that uses them, natch.

@WayneD
Copy link

WayneD commented Mar 30, 2018

The easiest fix at the moment is to set the tcp alternative:
sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp

That way "fakeroot" works fine without options. I'm using Ubuntu 16.04.3 LTS (Xenial Xerus).

@teras
Copy link

teras commented Mar 27, 2019

So, the original bug report was about arch linux and fakeroot, the solutions here are only for Ubuntu.
Any workaround for arch linux package creation?

mackyle pushed a commit to mackyle/fakeroot that referenced this issue Sep 23, 2019
Update to add a configure test to build and install the TCP IPC version
when detecting SYSV IPC MsgQ support isn't available.

The issue was initially discovered on Windows Services for Linux
(WSL1.0). WSL does have some SysV IPC, but no message Q's, which is
required by fakeroot/faked by default.

Fixes:
microsoft/WSL#2465

Additional bug reports:
https://bugs.busybox.net/show_bug.cgi?id=11366

Signed-off-by: Jean-Francois Doyon <[email protected]>
Signed-off-by: Matthew Weber <[email protected]>
@dudeofawesome
Copy link

@teras If you're still having this issue on Arch, you might try these steps:

  1. Build fakeroot-tcp from here (latest .orig.tar.gz)
    1. ./bootstrap
    2. ./configure — prefix=/opt/fakeroot --libdir=/opt/fakeroot/libs --disable-static --with-ipc=tcp
    3. make
    4. sudo make install
  2. Add /opt/fakeroot/bin/ to your path
  3. Install yay
  4. Install fakeroot-tcp from the AUR.
    yay -Syu fakeroot-tcp

@meytin1337
Copy link

meytin1337 commented Aug 15, 2024

@teras If you're still having this issue on Arch, you might try these steps:

  1. Build fakeroot-tcp from here (latest .orig.tar.gz)

    1. ./bootstrap
    2. ./configure — prefix=/opt/fakeroot --libdir=/opt/fakeroot/libs --disable-static --with-ipc=tcp
    3. make
    4. sudo make install
  2. Add /opt/fakeroot/bin/ to your path

  3. Install yay

  4. Install fakeroot-tcp from the AUR.

    yay -Syu fakeroot-tcp

The solution did not work for me. The configure command gave the message
checking build system type... Invalid configuration '—': machine '—-unknown' not recognized.
Running ./configure without any options fixed the command for me.

@tbkj98
Copy link

tbkj98 commented Oct 18, 2024

Hi @meytin1337
The command you are using is wrong. Try

./configure --prefix=/opt/fakeroot --libdir=/opt/fakeroot/libs --disable-static --with-ipc=tcp

This works without any issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests