Opened 11 years ago
Closed 10 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)
Change History (27)
Changed 11 years ago by liam.sharp@…
comment:1 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)
| Description: | modified (diff) |
|---|---|
| Owner: | changed from macports-tickets@… to florian@… |
| Summary: | fakeroot @1.19-2_0 build failure → fakeroot @1.19-2_0: error: conflicting types for 'openat' |
comment:2 Changed 11 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 11 years ago by mf2k (Frank Schima)
| Keywords: | haspatch maintainer added |
|---|
comment:4 follow-up: 5 Changed 11 years ago by liam.sharp@…
Hi florian - Happy to test, what do I need to do to test?
comment:5 Changed 11 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 11 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
comment:7 Changed 11 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 11 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 11 years ago by liam.sharp@…
| Attachment: | build_failure.txt added |
|---|
log of build failure after modifying permissions
comment:9 Changed 11 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 11 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 11 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 11 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$
comment:12 Changed 11 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.
comment:13 Changed 11 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 11 years ago by florian@…
| Attachment: | patch-message.h.diff added |
|---|
Changed 11 years ago by florian@…
| Attachment: | patch-wrapfunc.inp.diff added |
|---|
files/patch-wrapfunc.inp.diff
comment:14 Changed 11 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 11 years ago by florian@…
| Attachment: | patch-libfakeroot.c.diff added |
|---|
files/patch-libfakeroot.c.diff
comment:16 Changed 10 years ago by kurthindenburg (Kurt Hindenburg)
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
done r145153

main.log