<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.26.0">
</HEAD>
<BODY>
On Wed, 2010-10-06 at 16:16 -0400, Trevor Woerner wrote:<BR>
<BLOCKQUOTE TYPE=CITE>
    <TT><FONT COLOR="#1a1a1a">I agree... but to be honest I think the more pertinent question is:</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">why would a user be trying to build unknown sub-projects? Shouldn't</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">all the projects be known to the build.sh script? Should the script</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">even support unknown projects? If a new project is being added to the</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">X.Org family, shouldn't it be patched into the build script the way</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">the others are already?</FONT></TT><BR>
    <BR>
    <TT><FONT COLOR="#737373">&gt; If it is not doable, we should have a way for users to quickly find out it's</FONT></TT><BR>
    <TT><FONT COLOR="#737373">&gt; the way it works so</FONT></TT><BR>
    <TT><FONT COLOR="#737373">&gt; he does not waste time debugging.</FONT></TT><BR>
    <BR>
    <TT><FONT COLOR="#1a1a1a">I'll think about ways to build unknown projects in whatever order</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">they're specified, but I really think projects that aren't known to</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">the script shouldn't be supported at all.</FONT></TT><BR>
    <BR>
    <TT><FONT COLOR="#1a1a1a">Let's say you're working on a new project to be added:</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">&quot;xf86-video-gaetan&quot;. I would hope that as part of your development you</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">would determine where in the sub-project list it should be built, add</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">it to the build.sh script, then submit it when you send in the patches</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">for the rest of your work. In other words, if you're working on</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">something locally that isn't yet available publicly, just patch your</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">build.sh to support your new project, then send it in when the rest of</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">your work gets accepted.</FONT></TT><BR>
    <BR>
    <TT><FONT COLOR="#1a1a1a">I was under the impression one of the most important things the</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">build.sh script provides for the user is the ability to build all the</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">sub-projects of X.Org in the correct order. So in that case no matter</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">how the user supplies the list of projects they want built, the script</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">should build them in the order it knows will work correctly. I think</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">that's important to retain; more important than supporting</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">sub-projects which aren't known to the script.</FONT></TT><BR>
    <BR>
</BLOCKQUOTE>
Exactly how I used to see things. But Xorg does not have finite boundaries. The list of modules<BR>
you see in build.sh has been crafted over several years, adding and removing some<BR>
around the time of a release. It is based on usage and if there is a maintainer.<BR>
Some modules gets dropped-off the list because there is no maintainer and the<BR>
module ceases to function or build. Some modules make a come back after a few years.<BR>
<BR>
Here is a concrete example of a module which is included in my distro, has been and will be<BR>
in use for quite some time: xf86-input-wacom a driver for Wacom tablets.<BR>
<BR>
This is the module description, which summarizes it all:
<BLOCKQUOTE>
<PRE>
Note that it is not a part of the X.Org distribution since X11R6: this driver
is from the linuxwacom project. See http://linuxwacom.sf.net for details.
</PRE>
</BLOCKQUOTE>
The radeonhd driver is in build.sh but has not yet been include in an Xorg release.<BR>
The mesa, xcb, pixman and xkeyboard-config are dependencies of xorg, but are separate projects.<BR>
They are included in build.sh to make it easy to have a complete build.<BR>
The build.sh script does not reflect the scope of the X.Org Project and does not reflect<BR>
the content of the current release either. Even the term &quot;release&quot; is too strict, we use &quot;katamari&quot;.<BR>
<BR>
Back to the feature in question. Assuming what I said makes sense and there is a reasonable use<BR>
for a custom list, it makes sense that I would add a driver alongside the other drivers and expect<BR>
it to be build where it is placed in the list.<BR>
<BR>
This is not a critical feature, should the implementation effort be unreasonable, I can certainly live<BR>
with the way it is today.<BR>
<BR>
To answer your question in the next post, a user supplied module name that is unknown to build.sh<BR>
is dealt with on a best effort basis. If there is a typo, it fails to build (or clone). It will be easier<BR>
to find out if it is processed in list order.<BR>
<BR>
The hard-coded module list in build.sh is probably why it is not as popular as it could be.<BR>
Nobody works on 240 modules at a time. Many don't ever build the apps, for example.<BR>
About half of them are deprecated and not included in a release. Many are only interested<BR>
in the server (and it's dependencies), while otehrs may be interested in a full release as<BR>
customized on their distros.<BR>
<BR>
I could be wrong, but I thought that having a custom list would go a long way in making build.sh<BR>
more useful. That's why I still don't think that sorting a list of modules to build them in order<BR>
in terribly useful. If this gets in the way of processing modules in the order supplied by the user,<BR>
I would drop this sorting feature.<BR>
<BR>
Gaetan<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
</BODY>
</HTML>