Split binary/xq install directories for modules
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Zorba |
Fix Released
|
High
|
Chris Hillery |
Bug Description
This is at the request of the Fedora package maintainer.
Currently Zorba installs the .xq (and .xsd) files for schemas and the .so/.dll files for module external functions into the same directory, by default share/zorba-
There is another problem with the above scheme: since this directory is where non-core modules will install themselves also (and the only place Zorba will look for them), they are implicitly tied to Zorba's version number even though they should have independent versioning.
The proposal is to split this into a total of four directories: platform-
CMAKE_INSTALL_
share/
modules/
2.1/
lib64/
modules/
2.1/
where "2.1" is the Zorba version.
The easy way to do this would be to simply put all of the above on the default module-path, and change the install process to put everything in the right places. One downside to this is that it means Zorba will look in many wrong places when doing any URI resolution and when loading .so files - it knows it is looking for (say) an .xq file, but it will look in the two lib/ directories as well because they're all on the same module path.
A better way to do this would be to separate the concepts inside Zorba as well, and have a "URI Path" for all URI resolution which is separate from the "module path" which is used for loading external function libraries. Zorba could do that for itself easily enough. The only issue is what would be the interpretation of --module-path (and the corresponding C++ API function) - would that be a backward-
Related branches
- Matthias Brantner: Approve
- Chris Hillery: Approve
-
Diff: 1712 lines (+730/-284)32 files modifiedCMakeLists.txt (+28/-6)
ChangeLog (+2/-0)
NOTICE.txt (+1/-1)
bin/CMakeLists.txt (+32/-2)
bin/path_util.cpp (+60/-45)
bin/path_util.h (+9/-24)
bin/zorbacmd.cpp (+3/-5)
bin/zorbacmdproperties.cpp (+14/-5)
bin/zorbacmdproperties.h (+7/-1)
bin/zorbacmdproperties.txt (+3/-1)
bin/zorbacmdproperties_base.h (+19/-3)
cmake_modules/ZorbaModule.cmake (+15/-12)
config/CMakeLists.txt (+5/-5)
config/ZorbaConfig.cmake.in (+7/-4)
doc/zorba/commandline.dox (+7/-1)
doc/zorba/external_functions.dox (+2/-2)
doc/zorba/modules_authoring.dox (+2/-3)
doc/zorba/modules_authoring_2.dox (+4/-3)
doc/zorba/modules_building_in.dox (+1/-1)
doc/zorba/uriresolvers.dox (+120/-38)
include/zorba/config.h.cmake (+4/-1)
include/zorba/static_context.h (+81/-0)
src/api/staticcontextimpl.cpp (+140/-42)
src/api/staticcontextimpl.h (+18/-0)
src/context/default_uri_mappers.cpp (+1/-1)
src/context/dynamic_loader.cpp (+6/-7)
src/context/root_static_context.cpp (+36/-20)
src/context/root_static_context.h (+5/-3)
src/context/root_static_context_init.cpp.in (+9/-2)
src/context/static_context.cpp (+72/-38)
src/context/static_context.h (+14/-7)
test/rbkt/testdriver_common.cpp (+3/-1)
Changed in zorba: | |
assignee: | nobody → Chris Hillery (ceejatec) |
importance: | Undecided → High |
Changed in zorba: | |
milestone: | none → 2.1 |
Changed in zorba: | |
status: | New → Fix Committed |
Changed in zorba: | |
status: | Fix Committed → Fix Released |