Opened 8 years ago

Closed 8 years ago

#49858 closed defect (fixed)

fakeroot @1.19-2_0: error: conflicting types for 'openat'

Reported by: liam.sharp@… Owned by: florian@…
Priority: Normal Milestone:
Component: ports Version: 2.3.4
Keywords: haspatch maintainer Cc: kurthindenburg (Kurt Hindenburg)
Port: fakeroot

Description (last modified by ryandesign (Ryan Carsten Schmidt))

I'm using OS X 10.10.5 with XCode 7.1.1 (7B1005) and I'm unable to install fakeroot.

sudo port clean fakeroot
Password:
--->  Cleaning fakeroot
sudo port install fakeroot
--->  Computing dependencies for fakeroot
--->  Fetching archive for fakeroot
--->  Attempting to fetch fakeroot-1.19-2_0+universal.darwin_14.i386-x86_64.tbz2 from http://mse.uk.packages.macports.org/sites/packages.macports.org/fakeroot
--->  Attempting to fetch fakeroot-1.19-2_0+universal.darwin_14.i386-x86_64.tbz2 from http://lil.fr.packages.macports.org/fakeroot
--->  Attempting to fetch fakeroot-1.19-2_0+universal.darwin_14.i386-x86_64.tbz2 from http://nue.de.packages.macports.org/macports/packages/fakeroot
--->  Fetching distfiles for fakeroot
--->  Verifying checksums for fakeroot
--->  Extracting fakeroot
--->  Configuring fakeroot
Error: org.macports.build for port fakeroot returned: command execution failed
Please see the log file for port fakeroot for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_sysutils_fakeroot/fakeroot/main.log
To report a bug, follow the instructions in the guide:
    http://guide.macports.org/#project.tickets
Error: Processing of port fakeroot failed

Compilation error from log file is:

 ./wraptmpf.h:571:12: error: conflicting types for 'openat'

I'll attach the log file.

Attachments (11)

main.log (50.9 KB) - added by liam.sharp@… 8 years ago.
main.log
Portfile (2.5 KB) - added by florian@… 8 years ago.
Portfile
main.2.log (14.5 KB) - added by liam.sharp@… 8 years ago.
main.log
build_failure.txt (30.9 KB) - added by liam.sharp@… 8 years ago.
log of build failure after modifying permissions
build_failure2.txt (46.5 KB) - added by liam.sharp@… 8 years ago.
Build failure with new patch (I cleaned after the initial build failed to see the new patch get applied)
build_success.txt (91.3 KB) - added by liam.sharp@… 8 years ago.
Success build log
build_success1.txt (92.1 KB) - added by liam.sharp@… 8 years ago.
Success log
patch-message.h.diff (383 bytes) - added by florian@… 8 years ago.
patch-wrapfunc.inp.diff (1.1 KB) - added by florian@… 8 years ago.
files/patch-wrapfunc.inp.diff
patch-libfakeroot.c.diff (1.5 KB) - added by florian@… 8 years ago.
files/patch-libfakeroot.c.diff
Portfile.diff (2.2 KB) - added by florian@… 8 years ago.
Portfile patch

Download all attachments as: .zip

Change History (27)

Changed 8 years ago by liam.sharp@…

Attachment: main.log added

main.log

comment:1 Changed 8 years ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)
Owner: changed from macports-tickets@… to florian@…
Summary: fakeroot @1.19-2_0 build failurefakeroot @1.19-2_0: error: conflicting types for 'openat'

Changed 8 years ago by florian@…

Attachment: Portfile added

Portfile

comment:2 Changed 8 years ago by florian@…

I uploaded a new Portfile and two patches. I don't have 10.10 so I need you to test this for me. Thanks.

comment:3 Changed 8 years ago by mf2k (Frank Schima)

Keywords: haspatch maintainer added

comment:4 Changed 8 years ago by liam.sharp@…

Hi florian - Happy to test, what do I need to do to test?

comment:5 in reply to:  4 Changed 8 years ago by florian@…

Hi, you have to update the ports tree, replace the fakeroot Portfile, and add the two patchefiles. Then you can test building fakeroot. Assuming you have downloaded the files to your ${HOME}/Downloads folder, in the terminal you would have to do:

sudo port selfupdate
fakeroot_portdir=$(port dir fakeroot)
sudo cp ~/Downloads/Portfile $fakeroot_portdir
sudo mkdir ${fakeroot_portdir}/files
sudo cp ~/Downloads/{patch-libfakeroot.c.diff,patch-wrapfunc.inp.diff} ${fakeroot_portdir}/files

Then build fakeroot and if that succeeds test and install:

port -v build fakeroot
port -v test fakeroot
sudo port -v install fakeroot

comment:6 Changed 8 years ago by liam.sharp@…

Thanks for the info, much appreciated.

Failed at the build step, tried with sudo but failed again - will attach log.

Liams-MacBook-Pro:~ liamsharp$ sudo port selfupdate
Password:
--->  Updating MacPorts base sources using rsync
MacPorts base version 2.3.4 installed,
MacPorts base version 2.3.4 downloaded.
--->  Updating the ports tree
--->  MacPorts base is already the latest version

The ports tree has been updated. To upgrade your installed ports, you should run
  port upgrade outdated
Liams-MacBook-Pro:~ liamsharp$ fakeroot_portdir=$(port dir fakeroot)
Liams-MacBook-Pro:~ liamsharp$ sudo cp ~/Downloads/Portfile $fakeroot_portdir
Liams-MacBook-Pro:~ liamsharp$ sudo mkdir ${fakeroot_portdir}/files
Liams-MacBook-Pro:~ liamsharp$ sudo cp ~/Downloads/{patch-libfakeroot.c.diff,patch-wrapfunc.inp.diff} ${fakeroot_portdir}/files
Liams-MacBook-Pro:~ liamsharp$ port -v build fakeroot
Warning: MacPorts running without privileges. You may be unable to complete certain actions (e.g. install).
Error: Unable to execute port: error copying "/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/sysutils/fakeroot/files" to "/Users/liamsharp/.macports/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/sysutils/fakeroot/files": "/Users/liamsharp/.macports/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/sysutils/fakeroot/files/patch-libfakeroot.c.diff": permission denied
Liams-MacBook-Pro:~ liamsharp$ sudo port -v build fakeroot
Portfile changed since last build; discarding previous state.
--->  Computing dependencies for fakeroot.
--->  Fetching distfiles for fakeroot
--->  fakeroot_1.20.2.orig.tar.bz2 doesn't seem to exist in /opt/local/var/macports/distfiles/fakeroot
--->  Attempting to fetch fakeroot_1.20.2.orig.tar.bz2 from http://lil.fr.distfiles.macports.org/fakeroot
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0--->  Attempting to fetch fakeroot_1.20.2.orig.tar.bz2 from http://mse.uk.distfiles.macports.org/sites/distfiles.macports.org/fakeroot
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   279  100   279    0     0    495      0 --:--:-- --:--:-- --:--:--   495
--->  Attempting to fetch fakeroot_1.20.2.orig.tar.bz2 from http://ftp.nl.debian.org/debian/pool/main/f/fakeroot
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  319k  100  319k    0     0   394k      0 --:--:-- --:--:-- --:--:--  394k
--->  Verifying checksums for fakeroot
--->  Checksumming fakeroot_1.20.2.orig.tar.bz2
--->  Extracting fakeroot
--->  Extracting fakeroot_1.20.2.orig.tar.bz2
--->  Applying patches to fakeroot
--->  Applying patch-libfakeroot.c.diff
sh: /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/sysutils/fakeroot/files/patch-libfakeroot.c.diff: Permission denied
Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_sysutils_fakeroot/fakeroot/work/fakeroot-1.20.2" && /usr/bin/patch -p0 < '/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/sysutils/fakeroot/files/patch-libfakeroot.c.diff'
Exit code: 1
Error: org.macports.patch for port fakeroot returned: command execution failed
Warning: targets not executed for fakeroot: org.macports.build org.macports.patch org.macports.configure
Please see the log file for port fakeroot for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_sysutils_fakeroot/fakeroot/main.log
To report a bug, follow the instructions in the guide:
    http://guide.macports.org/#project.tickets
Error: Processing of port fakeroot failed

Changed 8 years ago by liam.sharp@…

Attachment: main.2.log added

main.log

comment:7 Changed 8 years ago by florian@…

Permission problem. Either build as root or:

chmod a+rx /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/sysutils/fakeroot/files
chmod a+r /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/sysutils/fakeroot/files/*

comment:8 Changed 8 years ago by liam.sharp@…

I built using sudo before, so modified permissions as suggested. I'll attach a log of the build failure.

Changed 8 years ago by liam.sharp@…

Attachment: build_failure.txt added

log of build failure after modifying permissions

comment:9 Changed 8 years ago by florian@…

I uploaded a new patch-wrapfunc.inp.diff. Please download that file and replace the one on your disk in /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/sysutils/fakeroot/files/ and try again.

Changed 8 years ago by liam.sharp@…

Attachment: build_failure2.txt added

Build failure with new patch (I cleaned after the initial build failed to see the new patch get applied)

comment:10 Changed 8 years ago by florian@…

Yes the patch was not applied. Your current build failure is the same as the first one. With the current patch applied, wraptmpf.h should look like this

576 #ifdef HAVE_OPENAT
577 extern int openat (int dir_fd, const char *pathname, int flags, ...);
578
579 #endif /* HAVE_OPENAT */

after the configure phase.

You need to port clean --all fakeroot or wipe the entire build directory before rebuilding.

comment:11 Changed 8 years ago by liam.sharp@…

Excellent, thanks. Build succeeded, but seems to have a symbol issue when run. I'll attach the success build logs for reference.

Liams-MacBook-Pro:main liamsharp$ fakeroot dpkg-deb --build /tmp/my-package
dpkg-deb: building package 'my-package' in '/tmp/my-package'.
dyld: lazy symbol binding failed: Symbol not found: _next_openat
  Referenced from: /opt/local/lib/libfakeroot.dylib
  Expected in: flat namespace

dyld: Symbol not found: _next_openat
  Referenced from: /opt/local/lib/libfakeroot.dylib
  Expected in: flat namespace

dpkg-deb: error: subprocess tar -cf was killed by signal (Trace/BPT trap: 5)
Liams-MacBook-Pro:main liamsharp$

Changed 8 years ago by liam.sharp@…

Attachment: build_success.txt added

Success build log

comment:12 Changed 8 years ago by florian@…

Sorry, I forgot to edit patch-libfakeroot.c.diff. Please replace that file too. Then clean and uninstall fakeroot and test rebuilding again.

Changed 8 years ago by liam.sharp@…

Attachment: build_success1.txt added

Success log

comment:13 Changed 8 years ago by liam.sharp@…

I get the same issue when trying to run it, I've attached the log so you can double check my steps.

Changed 8 years ago by florian@…

Attachment: patch-message.h.diff added

Changed 8 years ago by florian@…

Attachment: patch-wrapfunc.inp.diff added

files/patch-wrapfunc.inp.diff

comment:14 Changed 8 years ago by florian@…

I updated the patches for upgrading fakeroot to the most recent version. It builds and runs successfully on OSX <10.10. Fakeroot also builds on more recent OSX versions but it does not function anymore. The tests fail and the installed binary runs but is dysfunctional. I have no clue why and I don't have time to further investigate.

Someone with commit rights please commit the relevant files: Portfile.diff, patch-libfakeroot.c.diff, patch-message.h.diff, patch-wrapfunc.inp.diff.

A note for those who may want to try and make it work: I tested pseudo (http://git.yoctoproject.org/cgit/cgit.cgi/pseudo/) as well. Same result: compiles but only works on OSX <10.10. We can conclude that some underlying functionality of the base system changed and that the hack does not work anymore.

The Homebrew guys did not succeed either (comment 2, https://github.com/Homebrew/homebrew/issues/46927#issuecomment-164103551). They fixed the build issue but fakeroot is dysfunctional as of OSX 10.10. I suggest we do the same and close this issue.

Changed 8 years ago by florian@…

Attachment: patch-libfakeroot.c.diff added

files/patch-libfakeroot.c.diff

Changed 8 years ago by florian@…

Attachment: Portfile.diff added

Portfile patch

comment:15 Changed 8 years ago by kurthindenburg (Kurt Hindenburg)

Cc: khindenburg@… added

Cc Me!

comment:16 Changed 8 years ago by kurthindenburg (Kurt Hindenburg)

Resolution: fixed
Status: newclosed

done r145153

Note: See TracTickets for help on using tickets.