{"id":103,"date":"2011-12-16T18:09:46","date_gmt":"2011-12-16T17:09:46","guid":{"rendered":"https:\/\/blogs.gentoo.org\/mgorny\/?p=103"},"modified":"2011-12-16T18:59:08","modified_gmt":"2011-12-16T17:59:08","slug":"why-theres-no-iusesystemd-logrotate-bash-completion","status":"publish","type":"post","link":"https:\/\/blogs.gentoo.org\/mgorny\/2011\/12\/16\/why-theres-no-iusesystemd-logrotate-bash-completion\/","title":{"rendered":"Why there&#8217;s no IUSE=systemd, logrotate, bash-completion\u2026"},"content":{"rendered":"<p>Next tides of users slowly notice that a\u00a0number of unneeded files is installed on their systems. They enumerate systemd unit files, logrotate files, take their pitchforks and\u00a0start their cruciates against Gentoo developers wasting their precious disk space.<\/p>\n<p>Let me tell you a\u00a0story. The story starts when Uncle Scarabeus wants to\u00a0add bash-completion support into\u00a0libreoffice ebuild. He considers this a\u00a0minor\u00a0addon, not worth the\u00a0half a\u00a0day necessary to\u00a0rebuild libreoffice, so he doesn&#8217;t revbump it. He simply assumes the\u00a0change will be propagated nicely when users upgrade to\u00a0the next version.<\/p>\n<p>Of course, some users will already come shouting here: <q>that&#8217;s against the\u00a0policy!<\/q> Yes, indeed it is. But is it worth the\u00a0hassle? Should all libreoffice users be forced to\u00a0rebuild that huge package just to\u00a0get a\u00a0single tiny file installed? He could wait and\u00a0add that along with the\u00a0next version. Well, if he wouldn&#8217;t forget about it.<\/p>\n<p>But that&#8217;s not really important part here. Because, to\u00a0his surprise, many users have actually noticed the\u00a0change. That&#8217;s because the\u00a0use of <code>bash-completion.eclass<\/code> has caused the\u00a0ebuild to\u00a0have <code>IUSE=bash-completion<\/code>; and\u00a0many of the\u00a0<code>--newuse<\/code> Portage option users have rebuilt the\u00a0package. A few others, like me, just stopped using that option.<\/p>\n<p>That&#8217;s when the\u00a0discussion started. We \u2014 the\u00a0few devs actually caring about discussing \u2014 decided that it is quite pointless to\u00a0control installing tiny files through USEflags. Of course, the\u00a0libreoffice is an\u00a0elephant-case here but so-called regular packages aren&#8217;t much better here. Is there really a\u00a0reason to\u00a0rebuild even 10 C files when the\u00a0only thing going to\u00a0change is a\u00a0single, tiny text file being installed or\u00a0not?<\/p>\n<p>Another solution is to\u00a0split those files into\u00a0separate ebuilds. But that&#8217;s usually inconvenient both for\u00a0users and\u00a0devs. Users have to\u00a0notice that they need to\u00a0emerge an\u00a0additional package to\u00a0get the\u00a0particular file installed, and\u00a0devs need to\u00a0maintain that additional package. That starts to\u00a0become really ridiculous with files like systemd units which are often generated during build-time and\u00a0store installation paths.<\/p>\n<p>So what to use? <code>INSTALL_MASK<\/code>, obviously. It&#8217;s an\u00a0ancient Portage magic which allows you to control which files will be punted from installed files. You can use <code>app-portage\/install-mask<\/code> to quickly set it for the\u00a0files you don&#8217;t want. It&#8217;s as simple as:<\/p>\n<pre><code># install-mask -a systemd logrotate<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Next tides of users slowly notice that a\u00a0number of unneeded files is installed on their systems. They enumerate systemd unit files, logrotate files, take their pitchforks and\u00a0start their cruciates against Gentoo developers wasting their precious disk space. Let me tell you a\u00a0story. The story starts when Uncle Scarabeus wants to\u00a0add bash-completion support into\u00a0libreoffice ebuild. He &hellip; <a href=\"https:\/\/blogs.gentoo.org\/mgorny\/2011\/12\/16\/why-theres-no-iusesystemd-logrotate-bash-completion\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Why there&#8217;s no IUSE=systemd, logrotate, bash-completion\u2026&#8221;<\/span><\/a><\/p>\n","protected":false},"author":137,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[3,5],"tags":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/posts\/103"}],"collection":[{"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/users\/137"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/comments?post=103"}],"version-history":[{"count":7,"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/posts\/103\/revisions"}],"predecessor-version":[{"id":111,"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/posts\/103\/revisions\/111"}],"wp:attachment":[{"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/media?parent=103"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/categories?post=103"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/tags?post=103"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}