{"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":[{"id":176427299,"node_id":"MDU6TGFiZWwxNzY0MjcyOTk=","url":"https://api.github.com/repos/htacg/tidy-html5/labels/Technical%20Discussion","name":"Technical Discussion","color":"d4c5f9","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":21,"created_at":"2018-07-07T06:16:55Z","updated_at":"2018-10-29T23:48:36Z","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/434121824","html_url":"https://github.com/htacg/tidy-html5/issues/743#issuecomment-434121824","issue_url":"https://api.github.com/repos/htacg/tidy-html5/issues/743","id":434121824,"node_id":"MDEyOklzc3VlQ29tbWVudDQzNDEyMTgyNA==","user":{"login":"tehnick","id":441190,"node_id":"MDQ6VXNlcjQ0MTE5MA==","avatar_url":"https://avatars3.githubusercontent.com/u/441190?v=4","gravatar_id":"","url":"https://api.github.com/users/tehnick","html_url":"https://github.com/tehnick","followers_url":"https://api.github.com/users/tehnick/followers","following_url":"https://api.github.com/users/tehnick/following{/other_user}","gists_url":"https://api.github.com/users/tehnick/gists{/gist_id}","starred_url":"https://api.github.com/users/tehnick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tehnick/subscriptions","organizations_url":"https://api.github.com/users/tehnick/orgs","repos_url":"https://api.github.com/users/tehnick/repos","events_url":"https://api.github.com/users/tehnick/events{/privacy}","received_events_url":"https://api.github.com/users/tehnick/received_events","type":"User","site_admin":false},"created_at":"2018-10-29T23:48:36Z","updated_at":"2018-10-29T23:48:36Z","author_association":"NONE","body":"@ler762 @oerdnj and @hosiet  are official maintainers of `tidy-html5` package in Debian. So almost all decisions will be done by them.\r\n\r\nI am just a side observer here. I found this issue only due to current library transition for package `tidy-html5` which is now preventing automatic migration of my package `psi-plus` from Debian unstable to Debian testing (and as a result it also prevents backporting of `psi-plus` into Debian stable).\r\n\r\n> [2018-10-11] Accepted tidy-html5 1:5.6.0-0.1~exp1 (source amd64) into experimental, experimental (Boyuan Yang)\r\n\r\nThis is note about uploading package to Debian experimental branch. Probably you do not know, but this is something like a \"play ground\" in Debian. In this branch package maintainers may decide to break any parts of packages for testing and debugging purpose.\r\n\r\nThe most critical part of Debian maintainers work is uploading of packages into Debian unstable branch. Ideally on this step there are no new issues should happen during  upgrade of end-user system. (Many people use Debian unstable branch as a \"true\" rolling release even nowdays.)\r\n\r\nSo when you are looking at [debian/changelog](https://salsa.debian.org/debian/tidy-html5/blob/master/debian/changelog) pay more attention to timestamps in blocks with uploads to Debian unstable. Uploads to Debian experimental may be interesting as well, but they are not so important..."}}
{"actor":{"display_login":"tehnick"}}