Kent Fredric <kentfredric <at> gmail.com> writes: > Useflags have their perks for giving variations on behaviour, but having 3 > effective packages in one, governed by useflags, means you'll have 3 much > more tightly coupled packages, and the code will be much messier with > useflag conditionals to pull dependencies. > > If you imagine useflags like "if" statements, and ebuilds like independent > classes where "dependencies" are a kind of inheritance, you may find theres' > reasonable benefits for the maintenance side e.g.: people checking reverse > deps for QT don't have to worry about changes in QT breaking vim and gvim > because those packages are independent of QT interaction > > > Fixes that need to go in to make building vs QT mean only the qvim ebuild > gets updated and the rest are fine as-is. > > The only real downside is if you're building all 3 {q,g,}vim there's a > little compile time overhead as a result ( Though I'm not sure what the > difference is in real terms ) > > But by having them seperate, we enjoy a more robust installation, > especially for people who only want one of the 3, then they're not > needlessly burdened by logic to handle things they're not using, which > could break. > > Not to mention you have to deal with overheads introduced by having to > work out the equivalent of all three of the above having vastly different > useflags and making useflags conditional upon each other as a result to > codify the same behaviour, again, further raising the odds that a situtation > will arise where things break and the dependencies/use flags are a mess.
Kent, all your argumentations make sense, but actually only apply to vim-qt, which isn't in fact in the vim main tree. In other words: it's normal that vim and vim-qt are two different packages, but gvim is just vim with the GUI interface (neither an add-on nor a different project); playing with USE flags in /etc/portage/package.use should give easy access to all the possible options: - only vim ("-gtk"); - gvim ("gtk"); - qvim ("-gtk" for vim and vim-qt as package, having vim as dependency); - or even both ("gtk" for vim and vim-qt). What's wrong or complex (from a mantainer perspective) with this? Thanks for your comments