<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.19019"></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=750171721-06042011><FONT color=#0000ff 
size=2>I also like the idea and I already created an emerge-target for 
libsdl-src (just because it was the first thing that came into my 
mind)</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=750171721-06042011><FONT color=#0000ff 
size=2>The patch is in the KDE reviewboard (which is down atm so I can't post a 
link), any comment on it would be welcome</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=750171721-06042011><FONT color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=750171721-06042011><FONT color=#0000ff 
size=2>-Michael</FONT></SPAN></DIV><BR>
<BLOCKQUOTE 
style="BORDER-LEFT: #0000ff 2px solid; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px" 
dir=ltr>
  <DIV dir=ltr lang=en-us class=OutlookMessageHeader align=left>
  <HR tabIndex=-1>
  <FONT size=2 face=Tahoma><B>From:</B> Andrius da Costa Ribas 
  [mailto:andriusmao@gmail.com] <BR><B>Sent:</B> Wednesday, April 06, 2011 4:32 
  AM<BR><B>To:</B> KDE on Windows<BR><B>Subject:</B> Re: Emerge as an open 
  package manager?<BR></FONT><BR></DIV>
  <DIV></DIV>
  <P>1+</P>
  <DIV class=gmail_quote>Em 05/04/2011 21:48, "Romain Pokrzywka" &lt;<A 
  href="mailto:romain.pokrzywka@kdab.com">romain.pokrzywka@kdab.com</A>&gt; 
  escreveu:<BR type="attribution">&gt; <BR>&gt; On Thursday 31 March 2011 
  09:30:11 Pau Garcia i Quiles wrote:<BR>&gt;&gt; Hello,<BR>&gt;&gt;<BR>&gt;&gt; 
  What do you think?<BR>&gt;&gt;<BR>&gt;&gt; <A 
  href="http://www.elpauer.org/?p=687">http://www.elpauer.org/?p=687</A><BR>&gt;&gt;<BR>&gt;&gt; 
  Copying and pasting for the sake of easier discussion:<BR>&gt;&gt;<BR>&gt;&gt; 
  --8&lt;----<BR>&gt;&gt;<BR>&gt;&gt; A while ago I said Koen from Emweb made an 
  interesting proposal at<BR>&gt;&gt; FOSDEM about emerge, the KDE Windows build 
  tool.<BR>&gt;&gt;<BR>&gt;&gt; Yesterday, Jarosław Staniek and I reaffirmed our 
  commitment to<BR>&gt;&gt; ‘emerge’. Today, I’d like to go a bit further: let’s 
  bring more<BR>&gt;&gt; developers to emerge by opening it up to other 
  projects. Keep reading!<BR>&gt;&gt;<BR>&gt;&gt; What is emerge, why is it 
  important and what was Koen’s proposal?<BR>&gt;&gt;<BR>&gt;&gt; Fact: 
  Microsoft Windows is very different to Unix in regards to<BR>&gt;&gt; 
  development.<BR>&gt;&gt;<BR>&gt;&gt; On Unix platforms -that includes Linux 
  and Mac OS X-, software<BR>&gt;&gt; isusually installed to /usr: applications 
  in /usr/bin and /usr/sbin,<BR>&gt;&gt; libraries in /usr/lib, headers in 
  /usr/include, common resources in<BR>&gt;&gt; /usr/share, etc. Also, 
  dependency management is usually something you<BR>&gt;&gt; can count on: when 
  you install kdelibs5-dev in Ubuntu, it will<BR>&gt;&gt; automatically install 
  libqt4-dev, kdelibs5-data, libfreetype<BR>&gt;&gt; (runtime), etc That makes 
  setting up a development environment a very<BR>&gt;&gt; easy task: look for 
  shared libraries, header files, etc in the common<BR>&gt;&gt; places and you 
  will probably find them.<BR>&gt;&gt;<BR>&gt;&gt; On Windows there is nothing 
  like that. When you want to compile an<BR>&gt;&gt; application, you need to 
  provide (build and install) all its<BR>&gt;&gt; dependencies, and you need to 
  tell Visual Studio where to find<BR>&gt;&gt; everything. Even CMake usually 
  needs some help in the form of a hint<BR>&gt;&gt; for CMAKE_PREFIX_PATH. As 
  you may imagine, building KDE, which has<BR>&gt;&gt; more than 200 third party 
  dependencies and tens of modules (and with<BR>&gt;&gt; the move + split to 
  git, many more) becomes an almost insurmountable<BR>&gt;&gt; 
  task.<BR>&gt;&gt;<BR>&gt;&gt; ‘Emerge’ to the rescue: inspired by Gentoo‘s 
  emerge, Ralf Habacker,<BR>&gt;&gt; Christian Ehrlicher, Patrick Spendrin and 
  others (yours faithfully<BR>&gt;&gt; included) developed a tool which 
  downloads the source, configures,<BR>&gt;&gt; builds, installs and packages 
  KDE and its dependencies. It makes a<BR>&gt;&gt; world of difference when 
  building KDE. Actually, it makes building KDE<BR>&gt;&gt; on Windows possible. 
  Once more: thank you very much guys, impressive<BR>&gt;&gt; 
  tool.<BR>&gt;&gt;<BR>&gt;&gt; There are two well-differentiated parts in 
  emerge, the ‘engine’ and<BR>&gt;&gt; the ‘recipes’.<BR>&gt;&gt;<BR>&gt;&gt; 
  The ‘engine‘ takes care of downloading the sources (tarballs,<BR>&gt;&gt; 
  checkouts from Subversion and git clones, etc) , configuring and<BR>&gt;&gt; 
  building for the usual build systems (QMake, CMake, NMake 
  makefiles,<BR>&gt;&gt; etc), installing, bundling packages together and much 
  more. All that<BR>&gt;&gt; for four compilers (MSVC2008, MSVC2010, MinGW32 and 
  MinGW-W64). It’s<BR>&gt;&gt; the equivalent to Gentoo‘s emerge, Debian‘s dpkg 
  +debhelper/cdbs or<BR>&gt;&gt; Homebrew and MacPorts for 
  Macintosh.<BR>&gt;&gt;<BR>&gt;&gt; The ‘recipes’ are the package-specific 
  “instructions” a particular<BR>&gt;&gt; piece of software needs to build: 
  what’s the name of the tarball? URL<BR>&gt;&gt; to download from? What 
  versions are available? What build system to<BR>&gt;&gt; use to configure and 
  build? Does it need any Windows-specific patch?<BR>&gt;&gt; They are written 
  in Python using some helper modules ‘emerge’ provides<BR>&gt;&gt; (the 
  debhelper-like part I mentioned above).<BR>&gt;&gt;<BR>&gt;&gt; Currently, 
  there are about 70 recipes in emerge, organized in our<BR>&gt;&gt; ‘portage 
  tree’ (bear in mind the names are taken from Gentoo but the<BR>&gt;&gt; 
  internals of the tool are completely different). With those 70<BR>&gt;&gt; 
  recipes, we are able to build most KDE modules. Problem is to 
  provide<BR>&gt;&gt; all the optional features, we are missing probably 200 to 
  250 more<BR>&gt;&gt; recipes. Given that KDE on Windows is quite short on 
  developers, we<BR>&gt;&gt; have to decide: either we fix bugs and improve the 
  integration of KDE<BR>&gt;&gt; on Windows, or we keep track of the 
  dependencies. I won’t lie: for KDE<BR>&gt;&gt; on Windows, I’d rather focus on 
  development than on packaging.<BR>&gt;&gt;<BR>&gt;&gt; Given that writing and 
  maintaining recipes does not strictly require<BR>&gt;&gt; programming skills 
  (although they help ), during my talk at FOSDEMI<BR>&gt;&gt; kept asking 
  people to join the KDE on Windows team as packagers, even<BR>&gt;&gt; if you 
  know little to nothing about software development. If you think<BR>&gt;&gt; 
  about it, that’s what we have in Linux distributions: there are<BR>&gt;&gt; 
  hundreds (thousands?) of packagers in Debian, Fedora, openSuse, 
  etc<BR>&gt;&gt; which take care of the ‘recipes’ to build software developed 
  by<BR>&gt;&gt; someone else (‘upstream’, in the parlance). What we have in KDE 
  on<BR>&gt;&gt; Windows, where we are the KDE packagers, the KDE developers 
  (upstream)<BR>&gt;&gt; and the emerge developers, is actually an 
  anomaly.<BR>&gt;&gt;<BR>&gt;&gt; Then Koen took the microphone and said: why 
  don’t you open emerge to<BR>&gt;&gt; other projects?<BR>&gt;&gt;<BR>&gt;&gt; 
  And I there I realized he was damn right<BR>&gt;&gt;<BR>&gt;&gt; We have 
  developed an awesome tool to download, configure, build,<BR>&gt;&gt; package 
  and install third party software on Windows, to manage<BR>&gt;&gt; 
  dependencies, to update, etc. For four compilers, no less. The<BR>&gt;&gt; 
  ‘engine’ of emerge is not really tied to KDE. We already have a lot 
  of<BR>&gt;&gt; recipes for software which is not KDE specific: openssl, Qt, 
  bzip2,<BR>&gt;&gt; libpng, mysql, etc.<BR>&gt;&gt;<BR>&gt;&gt; I see no actual 
  reason to disallow Gnome, GStreamer,OpenSceneGraph,<BR>&gt;&gt; LibreOffice 
  and many others in (assuming someone wants to take care of<BR>&gt;&gt; them, 
  of course – no, do not look at me! I don’t have time!).<BR>&gt;&gt; Currently, 
  the only ‘barrier’ preventing those recipes in is ‘emerge’<BR>&gt;&gt; is 
  developed in the KDE repository and you need a KDE developer<BR>&gt;&gt; 
  account to commit your recipes. That’s about it.<BR>&gt;&gt;<BR>&gt;&gt; There 
  is also a ‘perception’ problem: “if emerge is developed in KDE,<BR>&gt;&gt; 
  it’s because it’s a KDE-thingy, right?”. Well, no. One way to 
  avoid<BR>&gt;&gt; that would be to graduate emerge from KDE and make it an 
  independent<BR>&gt;&gt; project, one in which the current developers have 
  accounts, and new<BR>&gt;&gt; developers get an “emerge project” account 
  instead of a KDE account to<BR>&gt;&gt; commit recipes. Please note 
  “graduating” does not mean “expelling”,<BR>&gt;&gt; “firing” or anything 
  peyorative. It does not mean that ‘emerge<BR>&gt;&gt; developers’ (engine and 
  recipes) are worse than KDE developers, or<BR>&gt;&gt; less KDE developers 
  than our god David Faure: in KDE, we consider<BR>&gt;&gt; Debian, Fedora, 
  openSuse, etc KDE packagers as equals, they are also<BR>&gt;&gt; KDE 
  developers and many of them are in the KDE eV(funny thing is I am<BR>&gt;&gt; 
  not).<BR>&gt;&gt;<BR>&gt;&gt; My wish for today: think of one application or 
  library you’d like to<BR>&gt;&gt; see in Windows and become its maintainer in 
  emerge for Windows.<BR>&gt;&gt;<BR>&gt;&gt; For now, let’s do this in the 
  kde-windows mailing list and if this<BR>&gt;&gt; idea succeeds, then we’ll 
  talk about graduating. You could also try to<BR>&gt;&gt; add support for a new 
  compiler (OpenWatcom, Intel C++, etc) but that’s<BR>&gt;&gt; a lot more more 
  and it’s not a priority now.<BR>&gt;&gt;<BR>&gt;&gt; PS: Yes, I know about 
  CoApp, Microsoft‘s similar effort, with some<BR>&gt;&gt; magic involved. I’ve 
  been watching and trying it since day 1. I’m<BR>&gt;&gt; really interested. 
  It’s just not there yet and I do not have spare<BR>&gt;&gt; time to 
  helpGarrett (hey Microsoft, hire me and I’ll have all the time<BR>&gt;&gt; in 
  the world! )<BR>&gt;&gt;<BR>&gt;&gt; --8&lt;----<BR>&gt;&gt;<BR>&gt;&gt; 
  --<BR>&gt;&gt; Pau Garcia i Quiles<BR>&gt;&gt; <A 
  href="http://www.elpauer.org">http://www.elpauer.org</A><BR>&gt;&gt; (Due to 
  my workload, I may need 10 days to answer)<BR>&gt;&gt; 
  _______________________________________________<BR>&gt;&gt; Kde-windows 
  mailing list<BR>&gt;&gt; <A 
  href="mailto:Kde-windows@kde.org">Kde-windows@kde.org</A><BR>&gt;&gt; <A 
  href="https://mail.kde.org/mailman/listinfo/kde-windows">https://mail.kde.org/mailman/listinfo/kde-windows</A><BR>&gt; 
  <BR>&gt; I don't know if other people have commented on the blog page instead, 
  but as far as I'm concerned I find the idea to <BR>&gt; make complete sense 
  and be technically doable. <BR>&gt; <BR>&gt; Indeed a first good step towards 
  opening emerge to non-kde communities would be to move it to an independent 
  repository. <BR>&gt; The question is which one :)<BR>&gt; <BR>&gt; Anyway FWIW 
  I like the idea!<BR>&gt; Cheers<BR>&gt; <BR>&gt; -- <BR>&gt; Romain Pokrzywka 
  | <A href="mailto:romain.pokrzywka@kdab.com">romain.pokrzywka@kdab.com</A> | 
  Senior Qt Software Engineer &amp; Trainer<BR>&gt; Klarälvdalens Datakonsult 
  AB, a KDAB Group company<BR>&gt; Tel. Sweden (HQ) +46-563-540090, USA 
  +1-866-777-KDAB(5322)<BR>&gt; KDAB - Qt Experts - Platform-independent 
  software solutions<BR></DIV></BLOCKQUOTE></BODY></HTML>