Ticket #4528 (closed defect: fixed)
Opened 4 years ago
Last modified 4 years ago
Changeset 15545 breaks Gentoo ebuilds
| Reported by: | Floppe | Owned by: | nigel |
|---|---|---|---|
| Priority: | minor | Milestone: | 0.21 |
| Component: | mythtv | Version: | head |
| Severity: | medium | Keywords: | Gentoo |
| Cc: | Ticket locked: | no |
Description
Get the following error when emerging
>>> Completed installing mythtv-0.21_pre15545 into /var/tmp/portage/media-tv/mythtv-0.21_pre15545/image/ --------------------------- ACCESS VIOLATION SUMMARY --------------------------- LOG FILE = "/var/log/sandbox/sandbox-media-tv_-_mythtv-0.21_pre15545-4399.log" rmdir: /usr/include/mythtv/libmyth symlink: /usr/include/mythtv/libmyth --------------------------------------------------------------------------------
I modified the ebuild and added a patch that reverts changeset 15545 and now I can emerge trunk rev 15585 with no problems.
Attachments
Change History
comment:1 Changed 4 years ago by kormoc
comment:2 Changed 4 years ago by nigel
I'm not sure I understand the error (maybe provide the file /var/log/sandbox/sandbox-media-tv_-_mythtv-0.21_pre15545-4399.log ?), but instead of reverting the whole change, what about:
Index: libmyth.pro
===================================================================
--- libmyth.pro (revision 15586)
+++ libmyth.pro (working copy)
@@ -68,9 +68,7 @@
# Allow both #include <blah.h> and #include <libmyth/blah.h>
inc2.path = $${PREFIX}/include/mythtv/libmyth
-unix:inc2.extra = rmdir $$inc2.path ; ln -s $$inc.path $$inc2.path
-# On Windows, we have to have two copies of the files
-!unix:inc2.files = $${inc.files}
+inc2.files = $${inc.files}
using_oss {
comment:3 Changed 4 years ago by nigel
- Owner changed from ijr to nigel
- Status changed from new to assigned
comment:4 Changed 4 years ago by Floppe
That should work I think. Testing the patch, brb.
comment:5 Changed 4 years ago by Floppe
It works!
comment:6 Changed 4 years ago by nigel
- Status changed from assigned to closed
- Resolution set to fixed
comment:7 Changed 4 years ago by Floppe
- Status changed from closed to new
- Resolution fixed deleted
Still not working, tested with rev 15604
>>> Completed installing mythtv-0.21_pre15604 into /var/tmp/portage/media-tv/mythtv-0.21_pre15604/image/ --------------------------- ACCESS VIOLATION SUMMARY --------------------------- LOG FILE = "/var/log/sandbox/sandbox-media-tv_-_mythtv-0.21_pre15604-17782.log" symlink: /usr/include/mythtv/libmyth -------------------------------------------------------------------------------- vdrbox ~ # cat /var/log/sandbox/sandbox-media-tv_-_mythtv-0.21_pre15604-17782.log symlink: /usr/include/mythtv/libmyth vdrbox ~ #
comment:8 Changed 4 years ago by nigel
OK, I have no idea what the problem is. It tells us that /usr/include/mythtv/libmyth is a symlink, but so what? It is meant to be a symlink. What the heck has been violated?
Is there a debug or verbose (-v) option for emerge? Does the symlink have bad permissions?
comment:9 Changed 4 years ago by kormoc
The issue is the install_root isn't being used.
Sandboxing is setting the install root to /var/tmp/portage/media-tv/mythtv-0.21_pre15604/image/ and so the package install all it's files into there as if that was /, and then it (portage/emerge in this case) copies it over into the real root directory, so it knows what packages own what files automagically.
You're messing with root directly, and it's kicking it back saying, we can't do that.
So it is telling us what info we need to change, so extra logging or the like isn't really needed.
comment:10 Changed 4 years ago by nigel
Thanks for the clarification. Looking into the generated makefile, qmake automatically uses INSTALL_ROOT in the dependencies, but I don't think we can force it in the rules, because qmake sometimes munges the paths to be relative.
comment:11 Changed 4 years ago by nigel
- Status changed from new to closed
- Resolution set to fixed

Aye, I can verify this bug.
Can we use $(INSTALL_ROOT)/$$(PREFIX) ?
That should fix it for the gentoo users (and other sandboxing users)