{"action":"created","issue":{"url":"https://api.github.com/repos/iqlusion-io/crates/issues/14","repository_url":"https://api.github.com/repos/iqlusion-io/crates","labels_url":"https://api.github.com/repos/iqlusion-io/crates/issues/14/labels{/name}","comments_url":"https://api.github.com/repos/iqlusion-io/crates/issues/14/comments","events_url":"https://api.github.com/repos/iqlusion-io/crates/issues/14/events","html_url":"https://github.com/iqlusion-io/crates/issues/14","id":312353528,"number":14,"title":"rpmlib: RPM reader API","user":{"login":"tony-iqlusion","id":37432020,"avatar_url":"https://avatars2.githubusercontent.com/u/37432020?v=4","gravatar_id":"","url":"https://api.github.com/users/tony-iqlusion","html_url":"https://github.com/tony-iqlusion","followers_url":"https://api.github.com/users/tony-iqlusion/followers","following_url":"https://api.github.com/users/tony-iqlusion/following{/other_user}","gists_url":"https://api.github.com/users/tony-iqlusion/gists{/gist_id}","starred_url":"https://api.github.com/users/tony-iqlusion/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tony-iqlusion/subscriptions","organizations_url":"https://api.github.com/users/tony-iqlusion/orgs","repos_url":"https://api.github.com/users/tony-iqlusion/repos","events_url":"https://api.github.com/users/tony-iqlusion/events{/privacy}","received_events_url":"https://api.github.com/users/tony-iqlusion/received_events","type":"User","site_admin":false},"labels":[{"id":875786283,"url":"https://api.github.com/repos/iqlusion-io/crates/labels/help%20wanted","name":"help wanted","color":"008672","default":true},{"id":894887888,"url":"https://api.github.com/repos/iqlusion-io/crates/labels/rpmlib","name":"rpmlib","color":"cc0001","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-04-08T23:44:46Z","updated_at":"2018-04-13T16:07:59Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"This issue tracks the ability to read RPM package files. Presently no support is available.\r\n\r\nSome reference information on the API is available here, courtesy the Fedora RPM Guide:\r\n\r\n* **C API**: TBD\r\n* **Python API**: https://docs.fedoraproject.org/ro/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch16s04.html\r\n\r\n~~~Like #13, the file reader API depends on transaction sets, a binding for which is presently missing from **rpmlib-sys** because the bindgen tests are failing. Moving forward on this API will first require producing a safe binding to `rpmts.h` (#11).~~~\r\n\r\n#11 is fixed, and #19 added transaction set support, so this is ready to work on for any interested takers."},"comment":{"url":"https://api.github.com/repos/iqlusion-io/crates/issues/comments/381184099","html_url":"https://github.com/iqlusion-io/crates/issues/14#issuecomment-381184099","issue_url":"https://api.github.com/repos/iqlusion-io/crates/issues/14","id":381184099,"user":{"login":"n3npq","id":643926,"avatar_url":"https://avatars3.githubusercontent.com/u/643926?v=4","gravatar_id":"","url":"https://api.github.com/users/n3npq","html_url":"https://github.com/n3npq","followers_url":"https://api.github.com/users/n3npq/followers","following_url":"https://api.github.com/users/n3npq/following{/other_user}","gists_url":"https://api.github.com/users/n3npq/gists{/gist_id}","starred_url":"https://api.github.com/users/n3npq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/n3npq/subscriptions","organizations_url":"https://api.github.com/users/n3npq/orgs","repos_url":"https://api.github.com/users/n3npq/repos","events_url":"https://api.github.com/users/n3npq/events{/privacy}","received_events_url":"https://api.github.com/users/n3npq/received_events","type":"User","site_admin":false},"created_at":"2018-04-13T16:07:59Z","updated_at":"2018-04-13T16:07:59Z","author_association":"NONE","body":"The easiest bindings are rpmInstall() and rpmErase() in lib/rpminstall.c, copying rust args into the needed structure. There are also similar interfaces for query/verify/sign available. All the tables for popt option processing are available for needed flags if you also bind libpopt.\r\n\r\nIf you want a lower level interface, use rpmReadPackageFile() which verifies package signatures.\r\n\r\nI would avoid doing similar to Python interfaces which were mis-designed to accomodate \"I don't want to verify signatures! I don't want to use a transaction!\" politics from a long time ago."}}
{"actor":{"display_login":"n3npq"}}