{"action":"created","issue":{"url":"https://api.github.com/repos/htacg/tidy-html5/issues/743","repository_url":"https://api.github.com/repos/htacg/tidy-html5","labels_url":"https://api.github.com/repos/htacg/tidy-html5/issues/743/labels{/name}","comments_url":"https://api.github.com/repos/htacg/tidy-html5/issues/743/comments","events_url":"https://api.github.com/repos/htacg/tidy-html5/issues/743/events","html_url":"https://github.com/htacg/tidy-html5/issues/743","id":339121167,"node_id":"MDU6SXNzdWUzMzkxMjExNjc=","number":743,"title":"libtidy.so.5 has removed symbols between 5.2.0 and 5.6.0, but kept SONAME","user":{"login":"oerdnj","id":130731,"node_id":"MDQ6VXNlcjEzMDczMQ==","avatar_url":"https://avatars0.githubusercontent.com/u/130731?v=4","gravatar_id":"","url":"https://api.github.com/users/oerdnj","html_url":"https://github.com/oerdnj","followers_url":"https://api.github.com/users/oerdnj/followers","following_url":"https://api.github.com/users/oerdnj/following{/other_user}","gists_url":"https://api.github.com/users/oerdnj/gists{/gist_id}","starred_url":"https://api.github.com/users/oerdnj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oerdnj/subscriptions","organizations_url":"https://api.github.com/users/oerdnj/orgs","repos_url":"https://api.github.com/users/oerdnj/repos","events_url":"https://api.github.com/users/oerdnj/events{/privacy}","received_events_url":"https://api.github.com/users/oerdnj/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":9,"created_at":"2018-07-07T06:16:55Z","updated_at":"2018-10-19T23:42:49Z","closed_at":null,"author_association":"NONE","body":"When (exported) symbols are removed from the library it's important for library to bump the SONAME for programs not to break. This hasn't happened and it needs to be done.\r\n\r\nI would rather bump the version in a coordinated manner than do that only in Debian.\r\n\r\nExcerpts:\r\n```\r\n+#MISSING: 1:5.6.0-0.1# prvTidyDisplayHTMLTableAlgorithm@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# prvTidyNeedsAuthorIntervention@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# prvTidyReportAccessWarning@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# prvTidyReportError@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# prvTidyReportFatal@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# prvTidytidyErrorCodeListSize@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# prvTidytidyInstalledLanguageListSize@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# prvTidytidyLanguageListSize@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# prvTidytidyStringKeyListSize@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetABBR@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetALINK@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetALT@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetBGCOLOR@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetCHECKED@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetCOLSPAN@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetCONTENT@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetDATAFLD@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetFOR@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetHEIGHT@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetHREF@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetHTTP_EQUIV@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetID@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetISMAP@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetLANG@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetLANGUAGE@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetLINK@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetLONGDESC@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetNAME@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetOnBLUR@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetOnCLICK@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetOnFOCUS@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetOnKEYDOWN@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetOnKEYPRESS@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetOnKEYUP@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetOnMOUSEDOWN@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetOnMOUSEMOVE@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetOnMOUSEOUT@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetOnMOUSEOVER@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetOnMOUSEUP@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetREL@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetROWSPAN@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetSELECTED@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetSRC@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetSTYLE@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetSUMMARY@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetTARGET@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetTEXT@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetTITLE@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetTYPE@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetUSEMAP@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetVALUE@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetVLINK@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetWIDTH@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrGetXMLNS@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsABBR@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsALINK@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsALT@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsBGCOLOR@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsCHECKED@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsCOLSPAN@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsCONTENT@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsDATAFLD@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsFOR@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsHEIGHT@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsHREF@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsHTTP_EQUIV@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsID@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsISMAP@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsLANG@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsLANGUAGE@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsLINK@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsLONGDESC@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsNAME@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsOnBLUR@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsOnCLICK@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsOnFOCUS@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsOnKEYDOWN@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsOnKEYPRESS@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsOnKEYUP@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsOnMOUSEDOWN@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsOnMOUSEMOVE@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsOnMOUSEOUT@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsOnMOUSEOVER@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsOnMOUSEUP@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsProp@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsREL@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsROWSPAN@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsSELECTED@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsSRC@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsSTYLE@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsSUMMARY@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsTARGET@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsTEXT@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsTITLE@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsTYPE@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsUSEMAP@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsVALUE@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsVLINK@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsWIDTH@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyAttrIsXMLNS@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsA@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsADDRESS@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsAPPLET@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsAREA@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsB@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsBASE@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsBASEFONT@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsBIG@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsBLINK@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsBLOCKQUOTE@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsBODY@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsBR@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsCAPTION@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsCENTER@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsCOL@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsCOLGROUP@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsDATALIST@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsDD@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsDIR@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsDIV@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsDL@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsDT@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsEM@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsEMBED@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsFONT@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsFORM@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsFRAME@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsFRAMESET@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsH1@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsH2@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsH3@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsH4@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsH5@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsH6@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsHEAD@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsHR@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsHTML@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsI@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsIFRAME@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsIMG@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsINPUT@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsISINDEX@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsLABEL@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsLAYER@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsLI@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsLINK@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsLISTING@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsMAP@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsMARQUEE@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsMENU@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsMETA@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsNOBR@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsNOFRAMES@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsNOSCRIPT@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsOBJECT@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsOL@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsOPTGROUP@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsOPTION@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsP@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsPARAM@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsPRE@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsU@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsUL@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsWBR@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidyNodeIsXMP@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidySetReportFilter2@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidySetReportFilter3@Base 5.2.0\r\n+#MISSING: 1:5.6.0-0.1# tidySystemLocale@Base 5.2.0\r\n```\r\n\r\nAlso if `prvTidy` means private symbols, you need to use symbol visibility. If the symbol is out there (e.g. exported) it doesn't matter what name you pick: https://gcc.gnu.org/wiki/Visibility (the page says C++, but it should be used for C). In your case it would be easier to use LD Version Script: https://www.gnu.org/software/gnulib/manual/html_node/LD-Version-Scripts.html"},"comment":{"url":"https://api.github.com/repos/htacg/tidy-html5/issues/comments/431528182","html_url":"https://github.com/htacg/tidy-html5/issues/743#issuecomment-431528182","issue_url":"https://api.github.com/repos/htacg/tidy-html5/issues/743","id":431528182,"node_id":"MDEyOklzc3VlQ29tbWVudDQzMTUyODE4Mg==","user":{"login":"hosiet","id":8443926,"node_id":"MDQ6VXNlcjg0NDM5MjY=","avatar_url":"https://avatars3.githubusercontent.com/u/8443926?v=4","gravatar_id":"","url":"https://api.github.com/users/hosiet","html_url":"https://github.com/hosiet","followers_url":"https://api.github.com/users/hosiet/followers","following_url":"https://api.github.com/users/hosiet/following{/other_user}","gists_url":"https://api.github.com/users/hosiet/gists{/gist_id}","starred_url":"https://api.github.com/users/hosiet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hosiet/subscriptions","organizations_url":"https://api.github.com/users/hosiet/orgs","repos_url":"https://api.github.com/users/hosiet/repos","events_url":"https://api.github.com/users/hosiet/events{/privacy}","received_events_url":"https://api.github.com/users/hosiet/received_events","type":"User","site_admin":false},"created_at":"2018-10-19T23:42:49Z","updated_at":"2018-10-19T23:42:49Z","author_association":"NONE","body":"In fact SONAME can only be an (rising) integer, from 0 to 1, 2, 3, ... On Unix-like systems, the programs that are looking for dynamic libraries will only search for something like `libfoobar.so.SONAME` where SONAME is an integer.\r\n\r\nSo your proposal is not valid :-/ It's really okay to make the project version and SONAME different and there's already countless examples all around."}}
{"actor":{"display_login":"hosiet"}}