Opened 4 years ago
Closed 3 years ago
#16737 closed bug (invalid)
Even minor devel package update breaks build of 3rd-party software
Reported by: | X512 | Owned by: | nobody |
---|---|---|---|
Priority: | normal | Milestone: | Unscheduled |
Component: | Kits/Package Kit | Version: | R1/Development |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Platform: | All |
Description (last modified by )
This is hrev54837.
When updating devel packages, WebKit build fails so reconfigure is needed. WebKit is a big project and rebuild takes a lot of time. Rebuild after each update should be avoided.
Error message:
ninja: error: '/packages/libxslt-1.1.34-1/.self/develop/lib/libxslt.so', needed by 'lib/libWebKitLegacy.so.1.7.0', missing and no known rule to make it
I am not sure what is wrong exactly: Package Kit, cmake or WebKit build system. Internal paths should be not used when building, /boot/system/develop/lib
should be used instead because it is more stable.
Change History (7)
comment:1 by , 4 years ago
Description: | modified (diff) |
---|
comment:2 by , 4 years ago
comment:4 by , 4 years ago
Cmake happens to use the real path in this case.
/packages/libxslt-1.1.34-1/.self/develop/lib/libxslt.so
is symlink to /boot/system/develop/lib/libxslt.so
-> /boot/system/lib/libxslt.so.1.1.34
. In this case why /packages
path is used?
comment:5 by , 4 years ago
Webkits build system uses ccache if available afaik, maybe this is a workaround that works for you.
comment:6 by , 4 years ago
For WebKit I usually manually replace the path in CMakeCache.txt to avoid a rebuild. But I agree it would be more convenient if the pkgconfig files did point to the main /boot/system/develop/ directory instead of explicitly to the specific version of the package. Especially as it does so incorrectly: it points to something in libxslt-1.1.34-1 instead of libxslt_devel-1.1.34-1, which means even if you want to use separate versions of the _devel package, you actually can't.
comment:7 by , 3 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
This is really a problem for HaikuPorts, not Haiku.
There is probably something we can do in fixPkgconfig in HaikuPorter here. However, we can't just replace /packages/.../ with /system/develop/ as that will break _devel package installation in ~.
Any build system tries to use timestamps to trigger rebuilds. Cmake happens to use the real path in this case. You can easily correct the path (replace -1 with -3).