{"id":1034,"date":"2009-08-07T11:26:06","date_gmt":"2009-08-07T09:26:06","guid":{"rendered":"http:\/\/daniel.haxx.se\/blog\/?p=1034"},"modified":"2009-08-07T11:26:06","modified_gmt":"2009-08-07T09:26:06","slug":"libcurl-in-package-management","status":"publish","type":"post","link":"https:\/\/daniel.haxx.se\/blog\/2009\/08\/07\/libcurl-in-package-management\/","title":{"rendered":"libcurl in package management"},"content":{"rendered":"<p>A few days ago I noticed that the &#8220;<a href=\"http:\/\/urlgrabber.baseurl.org\/\">urlgrabber<\/a>&#8221; project now has switched to using <a href=\"http:\/\/pycurl.sf.net\/\">pycurl<\/a> (the python <a href=\"http:\/\/curl.haxx.se\/libcurl\/\">libcurl<\/a> binding) in their bleeding edge development. It means that projects using that, such well-known apps like <a href=\"http:\/\/fedoraproject.org\/wiki\/Tools\/yum\">yum<\/a> and <a href=\"http:\/\/fedoraproject.org\/wiki\/Anaconda\">anaconda<\/a> then use libcurl. Already since ages the Suse installer named <a href=\"http:\/\/en.opensuse.org\/YaST\">YaST<\/a> is using libcurl and a few months ago I learned that the <a href=\"http:\/\/www.opensolaris.org\/\">opensolaris<\/a> package management (<a href=\"http:\/\/opensolaris.org\/os\/project\/pkg\/\">pkg<\/a>) is also switching to become pycurl based.<\/p>\n<p>According to the lead man on the urlgrabber project, Seth Vidal, there are several reasons to switch from Python&#8217;s native <a href=\"http:\/\/docs.python.org\/library\/urllib2.html\">urllib<\/a> for (mostly) HTTP transport and he was friendly enough to <a href=\"http:\/\/curl.haxx.se\/mail\/curlpython-2009-08\/0002.html\">mention a few<\/a> to me. Clearly the two primary reasons are <a href=\"http:\/\/fedoraproject.org\/wiki\/FedoraCryptoConsolidation#FIPS_140\">FIPS certification<\/a> and urllib&#8217;s lacking HTTP proxy support. The FIPS certification is something the Fedora project has been pushing for a lot during recent time and thus they&#8217;ve worked hard on making libcurl support <a href=\"http:\/\/www.mozilla.org\/projects\/security\/pki\/nss\/\">NSS<\/a> for SSL\/TLS, and the lack of HTTP proxy support is supposedly hard to push into urllib itself due to its stagnant development etc.<\/p>\n<p>In Debian-esque worlds, libcurl and curl are already used by the package system in forms of <a href=\"http:\/\/packages.debian.org\/sid\/apt-transport-https\">apt-transport-https<\/a> and <a href=\"http:\/\/packages.debian.org\/sid\/apt-file\">apt-file<\/a>.<\/p>\n<p>It seems that when you run an open source operating system tomorrow, chances are that libcurl is in the back-end of the package system.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A few days ago I noticed that the &#8220;urlgrabber&#8221; project now has switched to using pycurl (the python libcurl binding) in their bleeding edge development. It means that projects using that, such well-known apps like yum and anaconda then use libcurl. Already since ages the Suse installer named YaST is using libcurl and a few &hellip; <a href=\"https:\/\/daniel.haxx.se\/blog\/2009\/08\/07\/libcurl-in-package-management\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">libcurl in package management<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,6],"tags":[33,19],"class_list":["post-1034","post","type-post","status-publish","format-standard","hentry","category-curl","category-floss","tag-curl-and-libcurl","tag-open-source"],"_links":{"self":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/1034","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/comments?post=1034"}],"version-history":[{"count":5,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/1034\/revisions"}],"predecessor-version":[{"id":1053,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/1034\/revisions\/1053"}],"wp:attachment":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/media?parent=1034"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/categories?post=1034"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/tags?post=1034"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}