[Distutils] Deprecate MANIFEST.in
a.cavallo at acm.org
Mon Apr 6 12:53:34 CEST 2009
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.
On Mon, Apr 6, 2009 at 11:18 AM, Jeff Rush <jeff at taupro.com> 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 - Distutils-SIG at python.org
More information about the Distutils-SIG