[Distutils] Deprecate MANIFEST.in

Antonio Cavallo 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.


Regards,
Antonio


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
> http://mail.python.org/mailman/listinfo/distutils-sig
>


More information about the Distutils-SIG mailing list