Merge from master - 3.4.0

This commit is contained in:
Orion Poplawski 2011-05-18 19:44:46 -06:00
commit 6f1f7e3ce8
7 changed files with 334 additions and 25 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
octave-3.2.4.tar.bz2
/octave-3.4.0.tar.bz2

44
macros.octave Normal file
View File

@ -0,0 +1,44 @@
# Octave packaging macros
# Octave binary API provided
%octave_api %(octave-config -p API_VERSION || echo 0)}
# Octave Package Directories
%octshareprefix %{_datadir}/octave
%octprefix %{octshareprefix}/packages
%octarchprefix %{_libdir}/octave/packages
%octpkgdir %{octprefix}/%{octpkg}-%{version}
%octpkglibdir %{octarchprefix}/%{octpkg}-%{version}
# Run an octave command - quietly with no startup files
%octave_cmd() octave -H -q --no-site-file --eval "%*";
# Build Source0 into a package tar file in a temporary location
%octave_pkg_build %octave_cmd pkg build '-verbose' %{_tmppath}/%{name}-%{version}-%{release}.%{_arch} %{_builddir}/%{buildsubdir}
# Install a package. We use the octave pkg install command to install the
# built package into the buildroot. We also put a note to prevent the root
# user from removing the package with the octave pkg uninstall command
%octave_pkg_install \
mkdir -p %{buildroot}/%{octprefix} \
mkdir -p %{buildroot}/%{octarchprefix} \
%octave_cmd warning('off','all');pkg('prefix','%{buildroot}/%{octprefix}','%{buildroot}/%{octarchprefix}');pkg('global_list',fullfile('%{buildroot}/%{octshareprefix}','octave_packages'));pkg('local_list',fullfile('%{buildroot}/%{octshareprefix}','octave_packages'));pkg('install','-nodeps','-verbose','%{_tmppath}/%{name}-%{version}-%{release}.%{_arch}/%{octpkg}-%{version}.tar.gz');unlink(pkg('local_list'));unlink(pkg('global_list')); \
if [ -e %{buildroot}%{octpkgdir}/packinfo/on_uninstall.m ] \
then \
mv %{buildroot}%{octpkgdir}/packinfo/on_uninstall.m %{buildroot}%{octpkgdir}/packinfo/on_uninstall.m.orig \
fi \
echo "function on_uninstall (desc)" > %{buildroot}%{octpkgdir}/packinfo/on_uninstall.m \
echo " error ('Can not uninstall %s installed by the redhat package manager', desc.name);" >> %{buildroot}%{octpkgdir}/packinfo/on_uninstall.m \
echo "endfunction" >> %{buildroot}%{octpkgdir}/packinfo/on_uninstall.m \
%{nil}
# preun script - we need to remove our uninstall protection and perhaps
# run the package's own uninstall script.
%octave_pkg_preun \
rm %{octpkgdir}/packinfo/on_uninstall.m \
if [ -e %{octpkgdir}/packinfo/on_uninstall.m.orig ]; then \
mv %{octpkgdir}/packinfo/on_uninstall.m.orig %{octpkgdir}/packinfo/on_uninstall.m \
cd %{octpkgdir}/packinfo \
%octave_cmd l=pkg('list');on_uninstall(l{cellfun(@(x)strcmp(x.name,'%{octpkg}'),l)}); \
fi \
%{nil}

24
octave-3.4.0-gcc46.patch Normal file
View File

@ -0,0 +1,24 @@
diff -up octave-3.4.0/liboctave/oct-alloc.h.gcc46 octave-3.4.0/liboctave/oct-alloc.h
--- octave-3.4.0/liboctave/oct-alloc.h.gcc46 2011-02-08 03:00:51.000000000 -0700
+++ octave-3.4.0/liboctave/oct-alloc.h 2011-02-08 09:41:23.984081687 -0700
@@ -23,6 +23,8 @@ along with Octave; see the file COPYING.
#if !defined (octave_oct_alloc_h)
#define octave_oct_alloc_h 1
+#include <cstddef>
+
class
OCTAVE_API
octave_allocator
diff -up octave-3.4.0/src/pr-output.cc.gcc46 octave-3.4.0/src/pr-output.cc
--- octave-3.4.0/src/pr-output.cc.gcc46 2011-02-08 03:00:52.000000000 -0700
+++ octave-3.4.0/src/pr-output.cc 2011-02-08 09:55:16.149662744 -0700
@@ -3024,7 +3024,7 @@ abs (T x)
}
#define INSTANTIATE_ABS(T) \
- template /* static */ inline T abs (T)
+ template /* static */ T abs (T)
INSTANTIATE_ABS(signed char);
INSTANTIATE_ABS(short);

72
octave-3.4.0-libdir.patch Normal file
View File

@ -0,0 +1,72 @@
--- octave-3.4.0/configure.libdir 2011-02-08 03:03:31.000000000 -0700
+++ octave-3.4.0/configure 2011-03-18 10:35:25.014978076 -0600
@@ -6680,7 +6680,7 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: defining octetcdir to be $octetcdir" >&5
$as_echo "defining octetcdir to be $octetcdir" >&6; }
-: ${octlibdir='$(libdir)/octave-$(version)'}
+: ${octlibdir='$(libdir)/octave/$(version)'}
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: defining octlibdir to be $octlibdir" >&5
$as_echo "defining octlibdir to be $octlibdir" >&6; }
@@ -6700,19 +6700,19 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: defining localverarchlibdir to be $localverarchlibdir" >&5
$as_echo "defining localverarchlibdir to be $localverarchlibdir" >&6; }
-: ${octfiledir='$(libexecdir)/octave/$(version)/oct/$(canonical_host_type)'}
+: ${octfiledir='$(libdir)/octave/$(version)/oct'}
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: defining octfiledir to be $octfiledir" >&5
$as_echo "defining octfiledir to be $octfiledir" >&6; }
-: ${localoctfiledir='$(libexecdir)/octave/site/oct/$(canonical_host_type)'}
+: ${localoctfiledir='$(libdir)/octave/site/oct'}
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: defining localoctfiledir to be $localoctfiledir" >&5
$as_echo "defining localoctfiledir to be $localoctfiledir" >&6; }
-: ${localapioctfiledir='$(libexecdir)/octave/site/oct/$(api_version)/$(canonical_host_type)'}
+: ${localapioctfiledir='$(libdir)/octave/site/oct/$(api_version)'}
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: defining localapioctfiledir to be $localapioctfiledir" >&5
$as_echo "defining localapioctfiledir to be $localapioctfiledir" >&6; }
-: ${localveroctfiledir='$(libexecdir)/octave/$(version)/site/oct/$(canonical_host_type)'}
+: ${localveroctfiledir='$(libdir)/octave/$(version)/site/oct'}
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: defining localveroctfiledir to be $localveroctfiledir" >&5
$as_echo "defining localveroctfiledir to be $localveroctfiledir" >&6; }
--- octave-3.4.0/scripts/pkg/pkg.m.libdir 2011-03-18 09:34:11.258406127 -0600
+++ octave-3.4.0/scripts/pkg/pkg.m 2011-03-18 10:56:58.763177238 -0600
@@ -248,7 +248,7 @@
if (prefix == -1)
if (global_install)
prefix = fullfile (OCTAVE_HOME (), "share", "octave", "packages");
- archprefix = fullfile (octave_config_info ("libexecdir"),
+ archprefix = fullfile (octave_config_info ("libdir"),
"octave", "packages");
else
prefix = fullfile ("~", "octave");
@@ -293,7 +293,7 @@
global_install = true;
if (! user_prefix)
prefix = fullfile (OCTAVE_HOME (), "share", "octave", "packages");
- archprefix = fullfile (octave_config_info ("libexecdir"),
+ archprefix = fullfile (octave_config_info ("libdir"),
"octave", "packages");
endif
case available_actions
@@ -2211,14 +2211,13 @@
endfunction
function arch = getarch ()
- persistent _arch = cstrcat (octave_config_info("canonical_host_type"), ...
- "-", octave_config_info("api_version"));
+ persistent _arch = octave_config_info("api_version");
arch = _arch;
endfunction
function archprefix = getarchprefix (desc, global_install)
if ((nargin == 2 && global_install) || (nargin < 2 && issuperuser ()))
- archprefix = fullfile (octave_config_info ("libexecdir"), "octave",
+ archprefix = fullfile (octave_config_info ("libdir"), "octave",
"packages", cstrcat(desc.name, "-", desc.version));
else
archprefix = desc.dir;

View File

@ -0,0 +1,41 @@
--- octave-3.4.0/scripts/pkg/pkg.m.pkgbuilddir 2011-02-08 03:00:51.000000000 -0700
+++ octave-3.4.0/scripts/pkg/pkg.m 2011-03-18 09:31:24.670165643 -0600
@@ -644,7 +644,14 @@
for i = 1:length (files)
tgz = files{i};
- if (exist (tgz, "file"))
+ ## The filename pointed to an uncompressed package to begin with.
+ if (exist (tgz, "dir"))
+ if (tgz(1) == '/')
+ packdir = tgz;
+ else
+ packdir = fullfile (pwd(), tgz);
+ endif
+ elseif (exist (tgz, "file"))
## Create a temporary directory.
tmpdir = tmpnam ();
tmpdirs{end+1} = tmpdir;
@@ -671,20 +678,12 @@
if (length (dirlist) > 3)
error ("bundles of packages are not allowed");
endif
- endif
- ## The filename pointed to an uncompressed package to begin with.
- if (exist (tgz, "dir"))
- dirlist = {".", "..", tgz};
+ ## The two first entries of dirlist are "." and "..".
+ packdir = fullfile (tmpdir, dirlist{3});
endif
if (exist (tgz, "file") || exist (tgz, "dir"))
- ## The two first entries of dirlist are "." and "..".
- if (exist (tgz, "file"))
- packdir = fullfile (tmpdir, dirlist{3});
- else
- packdir = fullfile (pwd(), dirlist{3});
- endif
packdirs{end+1} = packdir;
## Make sure the package contains necessary files.

View File

@ -1,14 +1,22 @@
# From src/version.h:#define OCTAVE_API_VERSION
%global octave_api api-v37
%global octave_api api-v47+
Name: octave
Version: 3.2.4
Release: 3%{?dist}
Version: 3.4.0
Release: 6%{?dist}
Summary: A high-level language for numerical computations
Epoch: 6
Group: Applications/Engineering
License: GPLv3+
Source0: ftp://ftp.octave.org/pub/octave/octave-%{version}.tar.bz2
Source0: ftp://ftp.gnu.org/gnu/octave/octave-%{version}.tar.bz2
Source1: macros.octave
# Add missing cstddef for gcc 4.6
Patch0: octave-3.4.0-gcc46.patch
# Use libdir instead of libexecdir
Patch1: octave-3.4.0-libdir.patch
# https://savannah.gnu.org/bugs/index.php?32839
# Fix building packages from directories
Patch2: octave-3.4.0-pkgbuilddir.patch
URL: http://www.octave.org
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@ -65,6 +73,9 @@ This package contains documentation for Octave.
%prep
%setup -q
%patch0 -p1 -b .gcc46
%patch1 -p1 -b .libdir
%patch2 -p1 -b .pkgbuilddir
# Check that octave_api is set correctly
if ! grep -q '^#define OCTAVE_API_VERSION "%{octave_api}"' src/version.h
then
@ -77,15 +88,26 @@ find -name *.cc -exec chmod 644 {} \;
%build
%global enable64 no
<<<<<<< HEAD
export CPPFLAGS="-DH5_USE_16_API"
export F77=gfortran
=======
export F77=gfortran
# TODO: arpack (and others?) appear to be bundled in libcruft..
# --with-arpack is not an option anymore
# gl2ps.c is bundled. Anything else?
>>>>>>> master
%configure --enable-shared --disable-static --enable-64=%enable64 \
--with-blas="-L%{_libdir}/atlas -lf77blas -latlas" --with-qrupdate \
--with-lapack="-L%{_libdir}/atlas -llapack" \
--with-amd --with-umfpack --with-colamd --with-ccolamd --with-cholmod \
<<<<<<< HEAD
--with-cxsparse --with-arpack
# SMP make doesn't work in Octave 3.2.2
#make %{?_smp_mflags} OCTAVE_RELEASE="Fedora %{version}-%{release}"
=======
--with-cxsparse
>>>>>>> master
make OCTAVE_RELEASE="Fedora %{version}-%{release}"
%install
@ -95,44 +117,106 @@ rm -f %{buildroot}%{_infodir}/dir
# Make library links
mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d
<<<<<<< HEAD
echo "%{_libdir}/octave-%{version}" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/octave-%{_arch}.conf
=======
echo "%{_libdir}/octave/%{version}" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/octave-%{_arch}.conf
>>>>>>> master
# Remove RPM_BUILD_ROOT from ls-R files
perl -pi -e "s,%{buildroot},," %{buildroot}%{_libexecdir}/%{name}/ls-R
perl -pi -e "s,%{buildroot},," %{buildroot}%{_libdir}/%{name}/ls-R
perl -pi -e "s,%{buildroot},," %{buildroot}%{_datadir}/%{name}/ls-R
# Make sure ls-R exists
touch %{buildroot}%{_datadir}/%{name}/ls-R
# Clean doc directory
pushd doc
make distclean
rm -f *.in */*.in */*.cc refcard/*.tex
popd
# Create desktop file
rm %{buildroot}%{_datadir}/applications/www.octave.org-octave.desktop
desktop-file-install --vendor fedora --remove-category Development --add-category "Education" \
--add-category "DataVisualization" --add-category "NumericalAnalysis" --add-category "Engineering" --add-category "Physics" \
--dir %{buildroot}%{_datadir}/applications examples/octave.desktop
--dir %{buildroot}%{_datadir}/applications doc/icons/octave.desktop
# Create directories for add-on packages
HOST_TYPE=`%{buildroot}%{_bindir}/octave-config -p CANONICAL_HOST_TYPE`
mkdir -p %{buildroot}%{_libexecdir}/%{name}/site/oct/%{octave_api}/$HOST_TYPE
mkdir -p %{buildroot}%{_libexecdir}/%{name}/site/oct/$HOST_TYPE
mkdir -p %{buildroot}%{_libdir}/%{name}/site/oct/%{octave_api}/$HOST_TYPE
mkdir -p %{buildroot}%{_libdir}/%{name}/site/oct/$HOST_TYPE
mkdir -p %{buildroot}%{_datadir}/%{name}/packages
mkdir -p %{buildroot}%{_libdir}/%{name}/packages
touch %{buildroot}%{_datadir}/%{name}/octave_packages
# Create interpreter documentation directory
mkdir interpreter
cp -a doc/interpreter/*.pdf doc/interpreter/HTML/ interpreter/
# work-around broken pre-linking (bug 524493)
#install -d %{buildroot}%{_sysconfdir}/prelink.conf.d
#echo "-b %{_bindir}/octave-%{version}" > %{buildroot}%{_sysconfdir}/prelink.conf.d/octave.conf
# Fix multilib installs
for include in config defaults oct-conf
do
mv %{buildroot}%{_includedir}/%{name}-%{version}/%{name}/${include}.h \
%{buildroot}%{_includedir}/%{name}-%{version}/%{name}/${include}-%{__isa_bits}.h
cat > %{buildroot}%{_includedir}/%{name}-%{version}/%{name}/${include}.h <<EOF
#include <bits/wordsize.h>
#if __WORDSIZE == 32
#include "${include}-32.h"
#elif __WORDSIZE == 64
#include "${include}-64.h"
#else
#error "Unknown word size"
#endif
EOF
done
for script in octave-config-%{version} mkoctfile-%{version}
do
mv %{buildroot}%{_bindir}/${script} %{buildroot}%{_libdir}/%{name}/%{version}/${script}
cat > %{buildroot}%{_bindir}/${script} <<EOF
#!/bin/bash
ARCH=\$(uname -m)
case \$ARCH in
x86_64 | ia64 | s390x) LIB_DIR=/usr/lib64
SECONDARY_LIB_DIR=/usr/lib
;;
* )
LIB_DIR=/usr/lib
SECONDARY_LIB_DIR=/usr/lib64
;;
esac
if [ ! -x \$LIB_DIR/%{name}/%{version}/${script} ] ; then
if [ ! -x \$SECONDARY_LIB_DIR/%{name}/%{version}/${script} ] ; then
echo "Error: \$LIB_DIR/%{name}/%{version}/${script} not found"
if [ -d \$SECONDARY_LIB_DIR ] ; then
echo " and \$SECONDARY_LIB_DIR/%{name}/%{version}/${script} not found"
fi
exit 1
fi
LIB_DIR=\$SECONDARY_LIB_DIR
fi
exec \$LIB_DIR/%{name}/%{version}/${script} "\$@"
EOF
chmod +x %{buildroot}%{_bindir}/${script}
done
# remove timestamp from doc-cache
sed -i -e '/^# Created by Octave/d' %{buildroot}%{_datadir}/%{name}/%{version}/etc/doc-cache
# rpm macros
mkdir -p %{buildroot}%{_sysconfdir}/rpm
cp -p %SOURCE1 %{buildroot}%{_sysconfdir}/rpm/
<<<<<<< HEAD
# work-around broken pre-linking (bug 524493)
install -d %{buildroot}%{_sysconfdir}/prelink.conf.d
echo "-b %{_bindir}/octave-%{version}" > %{buildroot}%{_sysconfdir}/prelink.conf.d/octave.conf
#%%check
=======
# TODO - Fix this:
# src/DLD-FUNCTIONS/md5sum.cc ............................*** stack smashing detected ***: /builddir/build/BUILD/octave-3.3.54/src/.libs/lt-octave terminated
#%check
>>>>>>> master
#make check
%clean
rm -rf %{buildroot}
@ -150,15 +234,22 @@ fi
%files
%defattr(-,root,root,-)
%doc COPYING NEWS* PROJECTS README README.Linux README.kpathsea ROADMAP
%doc SENDING-PATCHES emacs/
%doc AUTHORS BUGS ChangeLog* COPYING NEWS* PROJECTS README README.Linux
%doc README.kpathsea
# FIXME: Create an -emacs package that has the emacs addon
<<<<<<< HEAD
%config %{_sysconfdir}/ld.so.conf.d/octave-*.conf
=======
%config(noreplace) %{_sysconfdir}/ld.so.conf.d/octave-*.conf
%config(noreplace) %{_sysconfdir}/rpm/macros.octave
>>>>>>> master
%{_bindir}/octave*
%{_libdir}/octave-%{version}/
%{_libdir}/octave/
%{_libexecdir}/octave/
%{_mandir}/man1/octave*.1.*
%{_infodir}/liboctave.info*
%{_infodir}/octave.info*
%{_infodir}/OctaveFAQ.info*
%{_datadir}/applications/fedora-octave.desktop
# octave_packages is %ghost, so need to list everything else separately
%dir %{_datadir}/octave
@ -167,7 +258,11 @@ fi
%ghost %{_datadir}/octave/octave_packages
%{_datadir}/octave/packages/
%{_datadir}/octave/site/
<<<<<<< HEAD
%{_sysconfdir}/prelink.conf.d/octave.conf
=======
#%{_sysconfdir}/prelink.conf.d/octave.conf
>>>>>>> master
%files devel
%defattr(-,root,root,-)
@ -178,12 +273,45 @@ fi
%files doc
%defattr(-,root,root,-)
%doc doc/liboctave/HTML/ doc/liboctave/liboctave.pdf
%doc doc/faq/Octave-FAQ.pdf doc/refcard/*.pdf
%doc examples/ interpreter
%doc doc/liboctave/liboctave.html doc/liboctave/liboctave.pdf
%doc doc/faq/OctaveFAQ.pdf doc/refcard/*.pdf
%doc examples/
%changelog
* Tue May 17 2011 Orion Poplawski <orion[AT]cora.nwra com> - 6:3.4.0-6
- Rebuild for hdf5 1.8.7
* Fri Mar 18 2011 Orion Poplawski <orion[AT]cora.nwra com> - 6:3.4.0-5
- Use libdir instead of libexecdir
- Rename octave_pkg_preun macro
- Fix multilib installs
- Re-enable prelinking, seems to work
- Add patch to enable building packages from directories
* Wed Feb 23 2011 Orion Poplawski <orion[AT]cora.nwra com> - 6:3.4.0-4
- Update rpm macros per FPC comments
* Mon Feb 14 2011 Orion Poplawski <orion[AT]cora.nwra com> - 6:3.4.0-3
- Add rpm macros
- Rebuild should pick up fixed suitesparse
- Disable parallel builds
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6:3.4.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Tue Feb 8 2011 Orion Poplawski <orion[AT]cora.nwra com> - 6:3.4.0-1
- Update to 3.4.0
- Drop run-octave patch fixed upstream
- Add patch to support gcc 4.6
* Thu Dec 16 2010 Orion Poplawski <orion[AT]cora.nwra com> - 6:3.3.54-1
- Update to 3.3.54
- Add patch to prevent run-octave from getting installed
- Drop -DH5_USE_16_API
- Enable parallel builds
- Cleanup doc instal
* Sun Feb 28 2010 Alex Lancaster <alexlan[AT]fedoraproject org> - 6:3.2.4-3
- Temporarily disable %%check to enable build to complete and ensure
upgrade path works. This works around a crash in the imread.m image test

View File

@ -1 +1 @@
608196657f4fa010420227b77333bb71 octave-3.2.4.tar.bz2
c8144cee1d37e645d3368a8e8a5f1856 octave-3.4.0.tar.bz2