{"id":158,"date":"2013-07-01T16:30:42","date_gmt":"2013-07-01T15:30:42","guid":{"rendered":"http:\/\/blogs.gentoo.org\/johu\/?p=158"},"modified":"2023-07-31T08:10:49","modified_gmt":"2023-07-31T07:10:49","slug":"deprecating-and-banning-old-eapis","status":"publish","type":"post","link":"https:\/\/blogs.gentoo.org\/johu\/2013\/07\/01\/deprecating-and-banning-old-eapis\/","title":{"rendered":"Deprecating and banning old EAPIs"},"content":{"rendered":"<p>Since portage version 2.1.12.2 (and 2.2.0_alpha177) there are two new options for the repository configuration to make repoman aware which EAPIs are deprecated and which are completely banned (<a href=\"https:\/\/bugs.gentoo.org\/show_bug.cgi?id=470670\" title=\"Gentoo Bug 470670 - repoman should warn about deprecated EAPIs\" target=\"_blank\" rel=\"noopener\">bug #470670<\/a>). <\/p>\n<p>The two configuration keys are <strong>eapis-deprecated<\/strong> and <strong>eapis-banned<\/strong> in layout.conf. The value for both keys is a space seperated list of selected EAPI numbers. This can be used in any portage ebuild repository, it works in a overlay and in the main portage tree as well.<\/p>\n<p>Lets assume you have an overlay and want to get rid of all old EAPIs with the goal to make the life for contributors easier to know only the latest and not the whole EAPI history. This means you have to mark all as deprecated except the latest.<\/p>\n<p>$overlay\/metadata\/layout.conf:<\/p>\n<pre>\r\n# indicate that ebuilds with the specified EAPIs are deprecated\r\neapis-deprecated = 0 1 2 3 4\r\n<\/pre>\n<p>And then let repoman in the overlay root directory run to check which ebuilds using old EAPI. <\/p>\n<pre>\r\n$overlay repoman full -d\r\n<\/pre>\n<p>In case repoman find relevant ebuilds, he will be print the ebuild names with the EAPI version as warning. Now comes the fun part, you can start to migrate your ebuilds to latest EAPI. And whenever you have killed a deprecated EAPI, move it from deprecated to banned in the configuration. This means repoman won&#8217;t allow you to commit those to the repo anymore. In this example we get rid of EAPI 0.<\/p>\n<p>$overlay\/metadata\/layout.conf:<\/p>\n<pre>\r\n# indicate that ebuilds with the specified EAPIs are banned\r\neapis-banned = 0\r\n# indicate that ebuilds with the specified EAPIs are deprecated\r\neapis-deprecated = 1 2 3 4\r\n<\/pre>\n<p>The current configuration for the main portage tree is that no EAPI is banned and EAPI 1 + 2 is deprecated. Since the last weekend in kde overlay all ebuilds are migrated to latest EAPI (5) and older are banned (0-4). Migration was quite easy, because we had just some ebuilds left with EAPI 4. Thanks to the portage team for this nice feature.<\/p>\n<p>Have fun!<\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon sd-sharing\"><h3 class=\"sd-title\">Share this:<\/h3><div class=\"sd-content\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-158\" class=\"share-facebook sd-button share-icon no-text\" href=\"https:\/\/blogs.gentoo.org\/johu\/2013\/07\/01\/deprecating-and-banning-old-eapis\/?share=facebook\" target=\"_blank\" title=\"Click to share on Facebook\" ><span><\/span><span class=\"sharing-screen-reader-text\">Click to share on Facebook (Opens in new window)<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-158\" class=\"share-twitter sd-button share-icon no-text\" href=\"https:\/\/blogs.gentoo.org\/johu\/2013\/07\/01\/deprecating-and-banning-old-eapis\/?share=twitter\" target=\"_blank\" title=\"Click to share on Twitter\" ><span><\/span><span class=\"sharing-screen-reader-text\">Click to share on Twitter (Opens in new window)<\/span><\/a><\/li><li class=\"share-reddit\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-reddit sd-button share-icon no-text\" href=\"https:\/\/blogs.gentoo.org\/johu\/2013\/07\/01\/deprecating-and-banning-old-eapis\/?share=reddit\" target=\"_blank\" title=\"Click to share on Reddit\" ><span><\/span><span class=\"sharing-screen-reader-text\">Click to share on Reddit (Opens in new window)<\/span><\/a><\/li><li class=\"share-email\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-email sd-button share-icon no-text\" href=\"mailto:?subject=%5BShared%20Post%5D%20Deprecating%20and%20banning%20old%20EAPIs&body=https%3A%2F%2Fblogs.gentoo.org%2Fjohu%2F2013%2F07%2F01%2Fdeprecating-and-banning-old-eapis%2F&share=email\" target=\"_blank\" title=\"Click to email a link to a friend\" data-email-share-error-title=\"Do you have email set up?\" data-email-share-error-text=\"If you&#039;re having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself.\" data-email-share-nonce=\"3d03b832b4\" data-email-share-track-url=\"https:\/\/blogs.gentoo.org\/johu\/2013\/07\/01\/deprecating-and-banning-old-eapis\/?share=email\"><span><\/span><span class=\"sharing-screen-reader-text\">Click to email a link to a friend (Opens in new window)<\/span><\/a><\/li><li class=\"share-print\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-print sd-button share-icon no-text\" href=\"https:\/\/blogs.gentoo.org\/johu\/2013\/07\/01\/deprecating-and-banning-old-eapis\/\" target=\"_blank\" title=\"Click to print\" ><span><\/span><span class=\"sharing-screen-reader-text\">Click to print (Opens in new window)<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Since portage version 2.1.12.2 (and 2.2.0_alpha177) there are two new options for the repository configuration to make repoman aware which EAPIs are deprecated and which are completely banned (bug #470670). The two configuration keys are eapis-deprecated and eapis-banned in layout.conf. The value for both keys is a space seperated list of selected EAPI numbers. This &hellip; <a href=\"https:\/\/blogs.gentoo.org\/johu\/2013\/07\/01\/deprecating-and-banning-old-eapis\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Deprecating and banning old EAPIs&#8221;<\/span><\/a><\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon sd-sharing\"><h3 class=\"sd-title\">Share this:<\/h3><div class=\"sd-content\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-158\" class=\"share-facebook sd-button share-icon no-text\" href=\"https:\/\/blogs.gentoo.org\/johu\/2013\/07\/01\/deprecating-and-banning-old-eapis\/?share=facebook\" target=\"_blank\" title=\"Click to share on Facebook\" ><span><\/span><span class=\"sharing-screen-reader-text\">Click to share on Facebook (Opens in new window)<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-158\" class=\"share-twitter sd-button share-icon no-text\" href=\"https:\/\/blogs.gentoo.org\/johu\/2013\/07\/01\/deprecating-and-banning-old-eapis\/?share=twitter\" target=\"_blank\" title=\"Click to share on Twitter\" ><span><\/span><span class=\"sharing-screen-reader-text\">Click to share on Twitter (Opens in new window)<\/span><\/a><\/li><li class=\"share-reddit\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-reddit sd-button share-icon no-text\" href=\"https:\/\/blogs.gentoo.org\/johu\/2013\/07\/01\/deprecating-and-banning-old-eapis\/?share=reddit\" target=\"_blank\" title=\"Click to share on Reddit\" ><span><\/span><span class=\"sharing-screen-reader-text\">Click to share on Reddit (Opens in new window)<\/span><\/a><\/li><li class=\"share-email\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-email sd-button share-icon no-text\" href=\"mailto:?subject=%5BShared%20Post%5D%20Deprecating%20and%20banning%20old%20EAPIs&body=https%3A%2F%2Fblogs.gentoo.org%2Fjohu%2F2013%2F07%2F01%2Fdeprecating-and-banning-old-eapis%2F&share=email\" target=\"_blank\" title=\"Click to email a link to a friend\" data-email-share-error-title=\"Do you have email set up?\" data-email-share-error-text=\"If you&#039;re having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself.\" data-email-share-nonce=\"3d03b832b4\" data-email-share-track-url=\"https:\/\/blogs.gentoo.org\/johu\/2013\/07\/01\/deprecating-and-banning-old-eapis\/?share=email\"><span><\/span><span class=\"sharing-screen-reader-text\">Click to email a link to a friend (Opens in new window)<\/span><\/a><\/li><li class=\"share-print\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-print sd-button share-icon no-text\" href=\"https:\/\/blogs.gentoo.org\/johu\/2013\/07\/01\/deprecating-and-banning-old-eapis\/\" target=\"_blank\" title=\"Click to print\" ><span><\/span><span class=\"sharing-screen-reader-text\">Click to print (Opens in new window)<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div>","protected":false},"author":138,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[3,15,7,6],"tags":[44,45,9,18,43],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2w1o9-2y","_links":{"self":[{"href":"https:\/\/blogs.gentoo.org\/johu\/wp-json\/wp\/v2\/posts\/158"}],"collection":[{"href":"https:\/\/blogs.gentoo.org\/johu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.gentoo.org\/johu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/johu\/wp-json\/wp\/v2\/users\/138"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/johu\/wp-json\/wp\/v2\/comments?post=158"}],"version-history":[{"count":18,"href":"https:\/\/blogs.gentoo.org\/johu\/wp-json\/wp\/v2\/posts\/158\/revisions"}],"predecessor-version":[{"id":242,"href":"https:\/\/blogs.gentoo.org\/johu\/wp-json\/wp\/v2\/posts\/158\/revisions\/242"}],"wp:attachment":[{"href":"https:\/\/blogs.gentoo.org\/johu\/wp-json\/wp\/v2\/media?parent=158"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.gentoo.org\/johu\/wp-json\/wp\/v2\/categories?post=158"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.gentoo.org\/johu\/wp-json\/wp\/v2\/tags?post=158"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}