scons/scons.spec

336 lines
16 KiB
RPMSpec
Raw Normal View History

#
# spec file for package scons (Version 1.2.0)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
Name: scons
Summary: Replacement for Make
Version: 1.2.0
Release: 1
%define fullversion %{version}.d20090113
Source0: %{name}-%{fullversion}.tar.bz2
Source1: scons-user.html
Patch0: %{name}-%{version}-fix-install.patch
Patch1: %{name}-%{version}-noenv.patch
License: X11/MIT
Group: Development/Tools/Building
Url: http://www.scons.org/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: python-devel
%{py_requires}
%description
SCons is a make replacement that provides a range of enhanced features,
such as automated dependency generation and built-in compilation cache
support. SCons rule sets are Python scripts, which means that SCons
provides itself as well as the features. SCons allows you to use the
full power of Python to control compilation.
Authors:
--------
Steven Knight <knight@baldmt.com>
Chad Austin
Charles Crain
Steve Leblanc
Gary Oberbrunner
Anthony Roach
Greg Spencer
Christoph Wiedemann
%prep
%setup -q -n %{name}-%{fullversion}
%patch0
%patch1
# fix libdir for qt
patch -p0 <<EOF
--- engine/SCons/Tool/qt.py
+++ engine/SCons/Tool/qt.py
@@ -247,1 +247,1 @@
- QT_LIBPATH = os.path.join('\$QTDIR', 'lib'),
+ QT_LIBPATH = os.path.join('\$QTDIR', '%_lib'),
EOF
# copy user guide
cp %{SOURCE1} .
%build
export CFLAGS="$RPM_OPT_FLAGS"
python setup.py build
%install
python setup.py install --prefix=%{_prefix} --root=$RPM_BUILD_ROOT --install-lib=%{py_sitedir} --record-rpm=INSTALLED_FILES
# fix duplicates in bindir
ln -sf scons $RPM_BUILD_ROOT%{_bindir}/scons-%{fullversion}
ln -sf scons-time $RPM_BUILD_ROOT%{_bindir}/scons-time-%{fullversion}
ln -sf sconsign $RPM_BUILD_ROOT%{_bindir}/sconsign-%{fullversion}
# fix manpages
for prg in scons scons-time sconsign; do
sed -i "s@%{_mandir}/man1/$prg.1@%{_mandir}/man1/$prg.1.gz@" INSTALLED_FILES
done
%clean
rm -rf $RPM_BUILD_ROOT
%files -f INSTALLED_FILES
%defattr(-,root,root)
%doc CHANGES.txt LICENSE.txt README.txt RELEASE.txt scons-user.html
%changelog
* Mon Jan 19 2009 prusnak@suse.cz
- updated to 1.2.0.d20090113
- Add support for batch compilation of Visual Studio C/C++ source
files, controlled by a new $MSVC_BATCH construction variable.
- Print the message, "scons: Build interrupted." on error output,
not standard output.
- Add a --warn=future-deprecated option for advance warnings about
deprecated features that still have warnings hidden by default.
- Fix use of $SOURCE and $SOURCES attributes when there are no
sources specified in the Builder call.
- Add support for new $CHANGED_SOURCES, $CHANGED_TARGETS,
$UNCHANGED_SOURCES and $UNCHANGED_TARGETS variables.
- Add general support for batch builds through new batch_key= and
targets= keywords to Action object creation.
- Make linker tools differentiate properly between SharedLibrary
and LoadableModule.
- Document TestCommon.shobj_prefix variable.
- Support $SWIGOUTDIR values with spaces.
- Don't automatically try to build .pdf graphics files for
.eps files in \includegraphics{} calls in TeX/LaTeX files
when building with the PDF builder (and thus using pdflatex).
- Allow AppendENVPath() and PrependENVPath() to interpret '#'
for paths relative to the top-level SConstruct directory.
- Use the Borland ilink -e option to specify the output file name.
- Document that the msvc Tool module uses $PCH, $PCHSTOP and $PDB.
- Allow WINDOWS_INSERT_DEF=0 to disable --output-def when linking
under MinGW.
- Fix typos in the User's Guide.
- Support implicit dependency scanning of files encoded in utf-8
and utf-16.
- Remove $CCFLAGS from the the default definitions of $CXXFLAGS for
Visual C/C++ and MIPSpro C++ on SGI so, they match other tools
and avoid flag duplication on C++ command lines.
- Handle quoted module names in SWIG source files.
- Copy file attributes so we identify, and can link a shared library
from, shared object files in a Repository.
- updated to 1.2.0
- Don't fail if can't import a _subprocess module on Windows.
- Add warnings for use of the deprecated Options object.
* Wed Dec 03 2008 prusnak@suse.cz
- updated to 1.1.0.d20081125
- Improve the robustness of GetBuildFailures() by refactoring
SCons exception handling (especially BuildError exceptions).
- Fix $FORTRANMODDIRPREFIX for the ifort (Intel Fortran) tool.
- Don't pre-generate an exception message (which will likely be
ignored anyway) when an EntryProxy re-raises an AttributeError.
- Handle Java inner classes declared within a method.
- Fix label placement by the "scons-time.py func" subcommand
when a profile value was close to (or equal to) 0.0.
- Fix env.Append() and env.Prepend()'s ability to add a string to
list-like variables like $CCFLAGS under Python 2.6.
- Other Python2.6 portability: don't use "as" (a Python 2.6 keyword).
Don't use the deprecated Exception.message attribute.
- Support using the -f option to search for a different top-level
file name when walking up with the -D, -U or -u options.
- Fix use of VariantDir when the -n option is used and doesn't,
therefore, actually create the variant directory.
- Fix a stack trace from the --debug=includes option when passed a
static or shared library as an argument.
- Speed up the internal find_file() function (used for searching
CPPPATH, LIBPATH, etc.).
- Add support for using the Python "in" keyword on construction
environments (for example, if "CPPPATH" in env: ...).
- Scan for TeX files in the paths specified in the $TEXINPUTS
construction variable and the $TEXINPUTS environment variable.
- Configure the PDF() and PostScript() Builders as single_source so
they know each source file generates a separate target file.
- Add $EPSTOPDF, $EPSTOPDFFLAGS and $EPSTOPDFCOM
- Add .tex as a valid extension for the PDF() builder.
- Add regular expressions to find \input, \include and
\includegraphics.
- Support generating a .pdf file from a .eps source.
- Recursive scan included input TeX files.
- Make the Action() function handle positional parameters consistently.
- Fix Glob() so an on-disk file or directory beginning with '#'
doesn't throw an exception.
- updated to 1.1.0
- Use the specified environment when checking for the GCC compiler
version.
- Fix Glob() polluting LIBPATH by returning copy of list
- Add CheckCC, CheckCXX, CheckSHCC and CheckSHCXX tests to
configuration contexts.
- Have the --profile= argument use the much faster cProfile module
(if it's available in the running Python version).
- Reorder MSVC compilation arguments so the /Fo is first.
- Add scanning Windows resource (.rc) files for implicit dependencies.
- When scanning for a #include file, don't use a directory that
has the same name as the file.
- Suppress error output when checking for the GCC compiler version.
- Fix VariantDir duplication of #included files in subdirectories.
- Reduce memory usage when a directory is used as a dependency of
another Node (such as an Alias) by returning a concatenation
of the children's signatures + names, not the children's contents,
as the directory contents.
- Raise AttributeError, not KeyError, when a Builder can't be found.
- Invalidate cached Node information (such as the contenst returned
by the get_contents() method) when calling actions with Execute().
- Avoid object reference cycles from frame objects.
- Reduce memory usage from Null Executor objects.
- Compute MD5 checksums of large files without reading the entire
file contents into memory. Add a new --md5-chunksize option to
control the size of each chunk read into memory.
- Fix the ability of the add_src_builder() method to add a new
source builder to any other builder.
- Avoid an infinite loop on non-Windows systems trying to find the
SCons library directory if the Python library directory does not
begin with the string "python".
- Search for the SCons library directory in "scons-local" (with
no version number) after "scons-local-{VERSION}".
- Fix the user's ability to interrupt the TeX build chain.
- Fix the TeX builder's allowing the user to specify the target name,
instead of always using its default output name based on the source.
- Iterate building TeX output files until all warning are gone
and the auxiliary files stop changing, or until we reach the
(configurable) maximum number of retries.
- Add TeX scanner support for: glossaries, nomenclatures, lists of
figures, lists of tables, hyperref and beamer.
- Use the $BIBINPUTS, $BSTINPUTS, $TEXINPUTS and $TEXPICTS construction
variables as search paths for the relevant types of input file.
- Fix building TeX with VariantDir(duplicate=0) in effect.
- Fix the LaTeX scanner to search for graphics on the TEXINPUTS path.
- Have the PDFLaTeX scanner search for .gif files as well.
- Fix typos and format bugs in the man page.
- Add a first draft of a wrapper module for Python's subprocess
module.
- Refactor use of the SCons.compat module so other modules don't
have to import it individually.
- Add .sx as a suffix for assembly language files that use the
C preprocessor.
- Make Glob() sort the returned list of Files or Nodes
to prevent spurious rebuilds.
- Add a delete_existing keyword argument to the AppendENVPath()
and PrependENVPath() Environment methods.
- Add ability to use "$SOURCE" when specifying a target to a builder
- Add a test case to verify that SConsignFile() files can be
created in previously non-existent subdirectories.
- Make the subdirectory in which the SConsignFile() file will
live, if the subdirectory doesn't already exist.
- Add a test to verify duplication of files in VariantDir subdirectories.
* Mon Sep 08 2008 prusnak@suse.cz
- updated to 1.0.1
* Add a FindFile() section to the User's Guide.
* Fix the FindFile() documentation in the man page.
* Fix formatting errors in the Package() description in the man page.
* Escape parentheses that appear within variable names when spawning
command lines using os.system().
- updated to 1.0.0.d20080826
* Clear the Node state when turning a generic Entry into a Dir.
* Fix sporadic output-order failures in test/GetBuildFailures/parallel.py.
* Document the ParseDepends() function in the User's Guide.
* Create a separate description and long_description for RPM packages.
* Document the GetLaunchDir() function in the User's Guide.
* Have the env.Execute() method print an error message if the
executed command fails.
* Add a script for creating a standard SCons development system on
Ubuntu Hardy. Rewrite subsidiary scripts for install Python and
SCons versions in Python (from shell).
* Handle yacc/bison on newer Mac OS X versions creating file.hpp,
not file.cpp.h.
* In RPCGEN tests, ignore stderr messages from older versions of
rpcgen on some versions of Mac OS X.
* Fix typos in man page descriptions of Tag() and Package(), and in
the scons-time man page.
* Fix documentation of SConf.CheckLibWithHeader and other SConf methods.
* Update documentation of SConscript(variant_dir) usage.
* Fix SWIG tests for (some versions of) Mac OS X.
* Print the warning about -j on Windows being potentially unreliable if
the pywin32 extensions are unavailable or lack file handle operations.
* Fix the env.WhereIs() method to expand construction variables.
* Enable building of shared libraries with the Bordand ilink32 linker.
- updated to 1.0.0
* Fix SCons man page indentation under Debian's man page macros.
* Clarify the man page description of the SConscript(src_dir) argument.
* Document MergeFlags(), ParseConfig(), ParseFlags() and SideEffect()
in the User's Guide.
* Document use of the GetBuildFailures() function in the User's Guide.
* Add man page text clarifying the behavior of AddPreAction() and
AddPostAction() when called with multiple targets.
* Fix incorrectly swapped man page descriptions of the --warn= options
for duplicate-environment and missing-sconscript.
* User's Guide updates
* Man page updates
- updated to 0.98.5
* Fix the Intel C++ compiler ABI specification for EMT64 processors.
* Issue a (suppressable) warning, not an error, when trying to link
C++ and Fortran object files into the same executable.
* Update the scons.bat file so that it returns the real exit status
from SCons, even though it uses setlocal + endlocal.
* Fix the --interactive post-build messages so it doesn't get stuck
mistakenly reporting failures after any individual build fails.
* Fix calling File() as a File object method in some circumstances.
* Fix setup.py installation on Mac OS X so SCons gets installed
under /usr/lcoal by default, not in the Mac OS X Python framework.
- updated to 0.98.4
* Fix calculation of signatures for Python function actions with
closures in Python versions before 2.5.
* Fix the initialization of $SHF77FLAGS so it includes $F77FLAGS.
* Fix a syntax error in the Intel C compiler support on Windows.
* Change how we represent Python Value Nodes when printing and when
stored in .sconsign files (to avoid blowing out memory by storing
huge strings in .sconsign files after multiple runs using Configure
contexts cause the Value strings to be re-escaped each time).
* Fix a regression in not executing configuration checks after failure
of any configuration check that used the same compiler or other tool.
* Handle multiple destinations in Visual Studio 8 settings for the
analogues to the INCLUDE, LIBRARY and PATH variables.
* Update man page text for VariantDir().
* Wed Apr 30 2008 prusnak@suse.cz
- updated to 0.98.3
* fix use of $CXXFLAGS when building C++ shared object files
* fix a regression when a Builder's source_scanner doesn't select
a more specific scanner for the suffix of a specified source file
* fix the Options object backwards compatibility so people can still
"import SCons.Options.{Bool,Enum,List,Package,Path}Option" submodules
* fix searching for implicit dependencies when an Entry Node shows up
in the search path list
* fix expansion of $FORTRANMODDIR in the default Fortran command line(s)
when it's set to something like ${TARGET.dir}
* Tue Apr 22 2008 prusnak@suse.cz
- updated to 0.98.2
* changes too numerous to list - see CHANGES.txt
* Mon Nov 12 2007 prusnak@suse.cz
- replaced /usr/bin/env in shebang by /usr/bin/python (noenv.patch)
- replaces duplicities in bindir by symlinks
* Wed May 30 2007 ltinkl@suse.cz
- update to stable release 0.97
- fix man installation patch
* Wed Mar 08 2006 ltinkl@suse.cz
- add more documentation (#154045)
* Tue Feb 28 2006 jmatejek@suse.cz
- updated to reflect python changes due to #149809
* Wed Jan 25 2006 mls@suse.de
- converted neededforbuild to BuildRequires
* Thu Nov 24 2005 sbrabec@suse.cz
- Bi-arch hack.
* Thu Nov 03 2005 dmueller@suse.de
- update to 0.96.91
* Tue Aug 24 2004 mcihar@suse.cz
- install man pages
* Tue Aug 24 2004 mcihar@suse.cz
- initial packaging