rpm(build) is a build tool, doens't deal with source distribution (but it generates srpms from the build sources).
There's a mild autodetection in rpmbuild when used in a restricted environment: it detects installed but unpackaged files under $RPM_BUILD_ROOT. It fails apart when used to build software under root. I still think that a flowchart wuold be beneficial in identify the usage scenarios better. Regards, Antonio On Mon, Apr 6, 2009 at 11:18 AM, Jeff Rush <[email protected]> wrote: > David Cournapeau wrote: >> >> No other distribution mechanism that I know of uses magic to detect >> which files to distribute. Neither debian tools, nor rpm tools, nor >> autotools. Not being explicit about files for distribution is a terrible >> idea; a packaging tool should be explicit, to avoid as much as possible >> to do something unexpected. > > While true that the rpm tools do not magically detect which files to > distribute, there are many that wish it did and have tried various > approaches to adding it. The following except from the RPM book speaks of > the various, failed approaches. Still it speaks of a essential need on the > part of developers to automate this aspect of packaging, even if the perfect > solution has not yet been found. > > If we're going to be explicit on what to include, I would argue we should > NOT allow wildcards, since in subsequent uses of sdist by another person, it > could cause files to be included that otherwise would not be there. The > only way to be sure precisely the same set of files is always included is to > explicitly list them one by one. A big pain. > > > --- cut here --- excerpt from Maximum RPM book > > How Do You Create the File List? > > Since RPM automates so many aspects of software installation, it's easy to > fall into the trap of assuming that RPM does everything for you. Not so! One > task that is still a manual process is creating the file list. While it may > seem at first glance, that it could be automated somehow, it's actually a > more difficult problem than it seems. > > Since the majority of an application's files are installed by its makefile, > RPM has no control over that part of the build process, and therefore, > cannot automatically determine which files should be part of the package. > Some people have attempted to use a modified version of install that logs > the name of every file it installs. But not every makefile uses install, or > if it does, uses it sporadically. > > Another approach tried was to obtain a list of every file on the build > system, immediately before and after a build, and use the differences as the > file list. While this approach will certainly find every file that the > application installed, it can also pick up extraneous files, such as system > logs, files in /tmp, and the like. The only way to begin to make this > approach workable would be to do nothing else on the build system, which is > highly inconvenient. This approach also precludes building more than one > package on the system at any given time. > > At present, the best way to create the file list is to read the makefile to > see what files it installs, verify this against the files installed on the > build system, and create the list. > > _______________________________________________ > Distutils-SIG maillist - [email protected] > http://mail.python.org/mailman/listinfo/distutils-sig > _______________________________________________ Distutils-SIG maillist - [email protected] http://mail.python.org/mailman/listinfo/distutils-sig
