For 1: I think it's good enough to have a machine-friendly version of the contents of XrdVersionPlugin.hh
. So, the snippet of the header looks like this:
#define XrdVERSIONPLUGINRULES \
XrdVERSIONPLUGIN_Rule(Required, 4, 0, XrdAccAuthorizeObject )\
XrdVERSIONPLUGIN_Rule(Optional, 4, 0, XrdBwmPolicyObject )\
XrdVERSIONPLUGIN_Rule(Required, 4, 0, XrdCksCalcInit )\
I think a corresponding output from the tool would be along the lines of:
XrdAccAuthorizeObject 4.0 Required
XrdBwmPolicyObject 4.0 Optional
XrdCksCalcInit 4.0 Required
The first column is the unmangled symbol name; the second is the minimum required Xrootd version the object must be built against to work with the current Xrootd; the third is whether the version info is required or optional.
This would be translated to RPM "Provides" (in the xrootd
RPM) of the form:
Provides: xrootd(XrdAccAuthorizeObject) = 4.0
Provides: xrootd(XrdBwmPolicyObject) = 4.0
Provides: xrootd(XrdCksCalcInit) = 4.0
For 2: For the Xrootd-HDFS RPM, we have:
XrdVERSIONINFO(XrdOssGetStorageSystem,"hdfs");
This creates two symbols in the output binary:
00000000000011c0 T XrdOssGetStorageSystem
00000000002020c0 D XrdOssGetStorageSystem_
I assume, in the latter symbol, we actually set the version info. Thus, for libXrdHdfs-4.so
, I'd like some output along the lines of:
XrdOssGetStorageSystem 4.9.1
where 4.9.1
was the version of the Xrootd headers the binary was built against. This would allow us to add the following to the xrootd-hdfs
package:
Requires: xrootd(XrdOssGetStorageSystem) <= 4.9.1
The logic indeed looks a bit backwards. I think of it as the xrootd RPM saying "I provide compatibility with the XrdOssGetStorageSystem ABI starting with 4.0.0" and the xrootd-hdfs RPM saying "I require a version of xrootd with the XrdOssGetStorageSystem ABI that supports at least 4.9.1".
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.
{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/xrootd/xrootd","title":"xrootd/xrootd","subtitle":"GitHub repository","main_image_url":"https://github.githubassets.com/images/email/message_cards/header.png","avatar_image_url":"https://github.githubassets.com/images/email/message_cards/avatar.png","action":{"name":"Open in GitHub","url":"https://github.com/xrootd/xrootd"}},"updates":{"snippets":[{"icon":"PERSON","message":"@bbockelm in #926: For 1: I think it's good enough to have a machine-friendly version of the contents of `XrdVersionPlugin.hh`. So, the snippet of the header looks like this:\r\n\r\n```\r\n#define XrdVERSIONPLUGINRULES \\\r\n XrdVERSIONPLUGIN_Rule(Required, 4, 0, XrdAccAuthorizeObject )\\\r\n XrdVERSIONPLUGIN_Rule(Optional, 4, 0, XrdBwmPolicyObject )\\\r\n XrdVERSIONPLUGIN_Rule(Required, 4, 0, XrdCksCalcInit )\\\r\n```\r\n\r\nI think a corresponding output from the tool would be along the lines of:\r\n\r\n```\r\nXrdAccAuthorizeObject 4.0 Required\r\nXrdBwmPolicyObject 4.0 Optional\r\nXrdCksCalcInit 4.0 Required\r\n```\r\n\r\nThe first column is the unmangled symbol name; the second is the minimum required Xrootd version the object must be built against to work with the current Xrootd; the third is whether the version info is required or optional.\r\n\r\nThis would be translated to RPM \"Provides\" (in the `xrootd` RPM) of the form:\r\n```\r\nProvides: xrootd(XrdAccAuthorizeObject) = 4.0\r\nProvides: xrootd(XrdBwmPolicyObject) = 4.0\r\nProvides: xrootd(XrdCksCalcInit) = 4.0\r\n```\r\n\r\nFor 2: For the Xrootd-HDFS RPM, we have:\r\n\r\n```\r\nXrdVERSIONINFO(XrdOssGetStorageSystem,\"hdfs\");\r\n```\r\n\r\nThis creates two symbols in the output binary:\r\n\r\n```\r\n00000000000011c0 T XrdOssGetStorageSystem\r\n00000000002020c0 D XrdOssGetStorageSystem_\r\n```\r\n\r\nI assume, in the latter symbol, we actually set the version info. Thus, for `libXrdHdfs-4.so`, I'd like some output along the lines of:\r\n\r\n```\r\nXrdOssGetStorageSystem 4.9.1\r\n```\r\n\r\nwhere `4.9.1` was the version of the Xrootd headers the binary was built against. This would allow us to add the following to the `xrootd-hdfs` package:\r\n\r\n```\r\nRequires: xrootd(XrdOssGetStorageSystem) \u003c= 4.9.1\r\n```\r\n\r\nThe logic indeed looks a bit backwards. I think of it as the xrootd RPM saying \"I provide compatibility with the XrdOssGetStorageSystem ABI starting with 4.0.0\" and the xrootd-hdfs RPM saying \"I require a version of xrootd with the XrdOssGetStorageSystem ABI that supports at least 4.9.1\"."}],"action":{"name":"View Issue","url":"https://github.com/xrootd/xrootd/issues/926#issuecomment-481352869"}}}
[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/xrootd/xrootd/issues/926#issuecomment-481352869",
"url": "https://github.com/xrootd/xrootd/issues/926#issuecomment-481352869",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]
Use REPLY-ALL to reply to list
To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1