Skip to content

Commit

Permalink
Release version--nearly finished
Browse files Browse the repository at this point in the history
  • Loading branch information
akhansen committed Jan 17, 2012
1 parent 2f78285 commit 824adb7
Showing 1 changed file with 92 additions and 65 deletions.
157 changes: 92 additions & 65 deletions Octave/octave-3.6.0.info
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Info2: <<
Package: octave%type_pkg[-atlas]%type_pkg[-x11]
Type: -atlas (boolean), oct(3.6.0), gcc (4.6), -x11 (boolean), v (3.6.0-rc1)
Type: -atlas (boolean), oct(3.6.0), gcc (4.6), -x11 (boolean)
Version: 3.6.0
Revision: 0.rc1.1
Revision: 1
Maintainer: Alexander Hansen <alexkhansen@users.sourceforge.net>

BuildDepends: <<
Expand Down Expand Up @@ -60,9 +60,8 @@ Replaces: <<
%{Ni}3.0.2-atlas ( << 3.0.2-5)
<<

#Source: mirror:gnu:%{Ni}/%{Ni}-%v.tar.gz
Source-MD5: 92d7ec90289ebecb2a5a22fc3074740c
Source: ftp://alpha.gnu.org/gnu/octave/%{Ni}-%type_raw[v].tar.gz
Source: mirror:gnu:%{Ni}/%{Ni}-%v.tar.gz
Source-MD5: e1affdd948a558b7bd8bdd397bc2ad8d

PatchFile: %{ni}-glpk.patch
PatchFile-MD5: a4861a0803cfbbbb8892019cd5f217d2
Expand Down Expand Up @@ -92,16 +91,16 @@ PatchScript: <<
sed -e 's/@OCTVERSION@/%v/g' -e 's|@FINKPREFIX@|%p|g' %{PatchFile3} | patch -p1
# Put in the Fink tree.
sed -i.orig -e 's|@FINKPREFIX@|%p|g' %{Ni}-forge* %{Ni}rc doc/interpreter/*.1 src/mkoctfile*in
# Put compiler information without 'flag-sort' into oct-conf.h, which in
# Put OS-version-invariant links to compilers into oct-conf.h, which in
# turn gets harcoded into the Octave interpreter's 'octave_config_info'
# function, which is then used by some of the octave-forge packages at
# configure time. Also do this for mkoctfile.in.
sed -i.orig -e "s|%%OCTAVE_CONF_CC%%|\"`which gcc`\"|" \
-e "s|%%OCTAVE_CONF_CXXCPP%%|\"`which g++` -E\"|" \
-e "s|%%OCTAVE_CONF_CXX%%|\"`which g++`\"|" \
-e "s|%%OCTAVE_CONF_DL_LD%%|\"`which g++`\"|" \
-e "s|%%OCTAVE_CONF_LD_CXX%%|\"`which g++`\"|" \
-e "s|%%OCTAVE_CONF_SH_LD%%|\"`which g++`\"|" \
sed -i.orig -e "s|%%OCTAVE_CONF_CC%%|\"oct-cc\"|" \
-e "s|%%OCTAVE_CONF_CXXCPP%%|\"oct-cxx -E\"|" \
-e "s|%%OCTAVE_CONF_CXX%%|\"oct-cxx\"|" \
-e "s|%%OCTAVE_CONF_DL_LD%%|\"oct-cxx\"|" \
-e "s|%%OCTAVE_CONF_LD_CXX%%|\"oct-cxx\"|" \
-e "s|%%OCTAVE_CONF_SH_LD%%|\"oct-cxx\"|" \
src/oct-conf.h.in src/mkoctfile*in

# Make sure GraphicsMagick gets activated properly.
Expand All @@ -122,9 +121,12 @@ PatchScript: <<
fi
fi

# patching oct-qhull.h for qhull6
# fix lib name for qhull6 in configure
perl -pi.orig -e 's|(qhull/)|lib\1|g ; s|lqhull|lqhull6|' configure
perl -pi.orig -e ' s|(qhull/)|lib\1|g; s|lqhull|lqhull6|' configure
# fix macro for libqhull/liqhull.h in configure
perl -pi.bak -e 's,(.*HAVE_QHULL_LIBQHULL_H.*),\1 || defined (HAVE_LIBQHULL_LIBQHULL_H),g' \
configure
# patching oct-qhull.h for qhull6
patch -p1 < %{PatchFile6}

# more patching by fangism
Expand All @@ -147,20 +149,20 @@ GCC: 4.0
UseMaxBuildJobs: false
SetCC: flag-sort -r gcc
SetCXX: flag-sort -r g++
SetLDFLAGS: -L%p/lib/gcc%type_raw[gcc]/lib -lgfortran -Wl,-dead_strip_dylibs
SetCFLAGS: -O3
SetLDFLAGS: -Wl,-dead_strip_dylibs

ConfigureParams: <<
(%type_raw[-atlas] != -atlas) --with-lapack=-Wl,-framework,Accelerate \
(%type_raw[-atlas] != -atlas) --with-blas=-Wl,-framework,Accelerate \
(%type_raw[-atlas] = -atlas) --with-lapack="-llapack"
(%type_raw[-atlas] = -atlas) --with-blas="-lf77blas -lcblas"
(%type_raw[-atlas] = -atlas) --with-lapack="-llapack" \
(%type_raw[-atlas] = -atlas) --with-blas="-lf77blas -lcblas" \
(%type_raw[-x11] != -x11) --with-framework-carbon \
(%type_raw[-x11] = -x11) --without-framework-carbon \
--with-x \
--x-libraries=/usr/X11/lib \
--x-includes=/usr/X11/include \
--with-magick=GraphicsMagick \
--with-qhull-includedir=%p/include/libqhull \
--host=%m-apple-darwin \
--build=%m-apple-darwin \
--infodir='${prefix}/share/info' \
Expand All @@ -175,7 +177,11 @@ ConfigureParams: <<
CompileScript: <<
#!/bin/sh -ev
export FFLAGS='-O3'
export CXXFLAGS="-O1"
# avoid package installation failure
if [ "%m" = "i386" ]
then export CXXFLAGS="-O1"
else export CXXFLAGS="-O3"
fi
export F77=%p/bin/gfortran-fsf-%type_raw[gcc]
FLIBDIR="%p/lib/gcc%type_raw[gcc]/lib"
export FLIBS="-L${FLIBDIR} -lgfortran"
Expand Down Expand Up @@ -204,42 +210,36 @@ InstallScript: <<
cp doc/interpreter/*.info* %i/share/info
# Install Fink-specific octaverc which points at our oct-versioned
# package directory.
cp %{Ni}rc %i/share/%{Ni}/%type_raw[v]/m/startup
cp %{Ni}rc %i/share/%{Ni}/%v/m/startup
mkdir -p %i/var/%{Ni}/%v/
# install examples
mkdir -p %i/share/%{Ni}/%v/doc/examples
cp -R examples %i/share/%{Ni}/%v/doc/examples
# clear out hardcoded Fink sed.
pushd %i/bin
for file in mkoctfile-%v %{Ni}-config-%v
do
perl -pi -e 's|%p/bin/sed|/usr/bin/sed|g' $file
done
popd
# remove autogenerated freedesktop.org desktop file
rm -f %i/share/applications/www.%{Ni}.org-%{Ni}.desktop
mkdir -p %i/share/%{Ni}/%v/scripts
# install the octave-forge helper scripts
cp %{Ni}-forge* %i/share/%{Ni}/%v/scripts
chmod a+x %i/share/%{Ni}/%v/scripts/*

# make versions of executables without "rc"
pushd %i/bin
for file in mkoctfile octave-config octave
do cp $file-%type_raw[v] $file-%type_raw[oct]
# clear out hardcoded Fink sed.
pushd %i/bin
for file in mkoctfile-%v %{Ni}-config-%v
do
perl -pi -e 's|%p/bin/sed|/usr/bin/sed|g' $file
done

# generate Fink-gcc enabled mkoctfile
cp mkoctfile-%type_raw[oct] mkoctfile-%type_raw[oct]-gcc%type_raw[gcc]
perl -pi -e \
's,(CC).*(gcc),\1\="%p/bin/\2-fsf-%type_raw[gcc],g; \
s,(.*=\").*(g\+\+),\1%p/bin/\2-fsf-%type_raw[gcc],g' \
%i/bin/mkoctfile-%type_raw[oct]-gcc%type_raw[gcc]
's,oct\-cc,%p/bin/gcc-fsf-%type_raw[gcc],g; \
s,oct\-cxx,%p/bin/g++-fsf-%type_raw[gcc],g' \
mkoctfile-%type_raw[oct]-gcc%type_raw[gcc]
# create convenience symlink
ln -s mkoctfile-%type_raw[oct]-gcc%type_raw[gcc] mkoctfile-gcc%type_raw[gcc]
popd

# sanitize .la file
cd %i/lib/%{Ni}/%type_raw[v]/
cd %i/lib/%{Ni}/%v/
perl -pi -e 's/(\-framework)\s(\w+)/-Wl,$1,$2/g' liboctinterp.la
<<

Expand Down Expand Up @@ -282,7 +282,7 @@ SplitOff: <<
(%type_raw[-atlas] != -atlas) qrupdate-shlibs (>= 1.1.1-5)
<<
Provides: <<

liboctave%type_pkg[oct]-v2,
liboctave%type_pkg[oct],
(%type_raw[-atlas] = -atlas) liboctave%type_pkg[oct]-atlas,
(%type_raw[-atlas] != -atlas) liboctave%type_pkg[oct]-veclib,
Expand All @@ -291,12 +291,12 @@ SplitOff: <<
<<

Files: <<
lib/%{Ni}/%type_raw[v]/lib{cruft,%{Ni},octinterp}.1.dylib
lib/%{Ni}/%v/lib{cruft,%{Ni},octinterp}.1.dylib
<<
Shlibs: <<
%p/lib/%{Ni}/%type_raw[v]/libcruft.1.dylib 2.0.0 %n (>=3.6.0-1)
%p/lib/%{Ni}/%type_raw[v]/lib%{Ni}.1.dylib 2.0.0 %n (>=3.6.0-1)
%p/lib/%{Ni}/%type_raw[v]/liboctinterp.1.dylib 2.0.0 %n (>=3.6.0-1)
%p/lib/%{Ni}/%v/libcruft.1.dylib 2.0.0 %n (>=3.6.0-1)
%p/lib/%{Ni}/%v/lib%{Ni}.1.dylib 2.0.0 %n (>=3.6.0-1)
%p/lib/%{Ni}/%v/liboctinterp.1.dylib 2.0.0 %n (>=3.6.0-1)
<<
DescDetail: <<
This package contains shared libraries which are used by the Octave
Expand Down Expand Up @@ -328,6 +328,10 @@ SplitOff2: <<
%{Ni}324-atlas-dev,
%{Ni}324-x11-dev,
%{Ni}324-atlas-x11-dev,
%{Ni}343-dev,
%{Ni}343-atlas-dev,
%{Ni}343-x11-dev,
%{Ni}343-atlas-x11-dev,
(%type_raw[-atlas] = atlas) %{Ni} (<< 3.0.5-5),
(%type_raw[-atlas] != atlas) %{Ni}-atlas (<< 3.0.5-5),
%{Ni}3.0.2 ( << 3.0.2-5),
Expand All @@ -344,13 +348,17 @@ SplitOff2: <<
%{Ni}324-atlas-dev,
%{Ni}324-x11-dev,
%{Ni}324-atlas-x11-dev,
%{Ni}343-dev,
%{Ni}343-atlas-dev,
%{Ni}343-x11-dev,
%{Ni}343-atlas-x11-dev,
%{Ni} (<< 3.0.5-5),
%{Ni}-atlas (<< 3.0.5-5),
%{Ni}3.0.2 ( << 3.0.2-5),
%{Ni}3.0.2-atlas ( << 3.0.2-5)
<<
Provides: <<

liboctave%type_pkg[oct]-v2-dev,
liboctave%type_pkg[oct]-dev,
(%type_raw[-atlas] = -atlas) liboctave%type_pkg[oct]-atlas-dev,
(%type_raw[-atlas] != -atlas) liboctave%type_pkg[oct]-veclib-dev,
Expand All @@ -361,8 +369,8 @@ SplitOff2: <<
BuildDependsOnly: true

Files: <<
include/%{Ni}-%type_raw[v]
lib/%{Ni}/%type_raw[v]/*.la
include/%{Ni}-%v
lib/%{Ni}/%v/*.la
bin/mkoctfile*
bin/octave-config*
share/man/man1/mkoctfile*.1
Expand All @@ -371,7 +379,9 @@ SplitOff2: <<

DescDetail: <<
This package contains files needed to build against Octave, including
headers and the mkoctfile executable.
headers and the mkoctfile executable. It also contains symlinks to Fink's
compiler wrappers, which are set up at install time to be appropriate to
the current machine setup.
<<
DescUsage: <<
To use mkoctfile to build dynamically loadable modules, you will need
Expand All @@ -383,6 +393,31 @@ SplitOff2: <<
stuff which isn't included in Xcode.
<<
DocFiles: AUTHORS BUGS COPYING ChangeLog NEWS README
PostInstScript: <<
osversion=`uname -r | cut -d. -f1`
cd %p/bin
case $osversion in
11) ln -s %p/var/lib/fink/path-prefix-clang/cc oct-cc
ln -s %p/var/lib/fink/path-prefix-clang/c++ oct-cxx ;;
10) ln -s %p/var/lib/fink/path-prefix-10.6/cc oct-cc
ln -s %p/var/lib/fink/path-prefix-10.6/c++ oct-cxx ;;
9) if [ "%m" = "x86_64"]; then
ln -s /usr/bin/gcc-4.2 oct-cc
ln -s /usr/bin/g++-4.2 oct-cxx ;;
# fangism--feel free to update this
*) printf "You will need to generate your own %p/bin/oct-cc and %p/bin/oct-cxx symlinks.\n" ;;
esac
<<
PreRmScript: <<
if [ -h %p/bin/oct-cc ]
then rm %p/bin/oct-cc
else printf "%p/bin/oct-cc is not a symlink or is not present.\n"
fi
if [ -h %p/bin/oct-cxx ]
then rm %p/bin/oct-cxx
else printf "%p/bin/oct-cxx is not a symlink or is not present.\n"
fi
<<
<<

Splitoff3: <<
Expand Down Expand Up @@ -434,9 +469,9 @@ Splitoff3: <<
<<

Files: <<
share/%{Ni}/%type_raw[v]
lib/%{Ni}/%type_raw[v]
bin/*
share/%{Ni}/%v
lib/%{Ni}/%v
bin/%{Ni}-%v
var/%{Ni}/%v
share/man/man1/%{Ni}-%v.1
<<
Expand Down Expand Up @@ -530,6 +565,10 @@ run the following command in your script:
DescPort: <<
Thanks to Per Persson for most (if not all) of the work on the macos X port.

Apply fix from http://lukassen.wordpress.com/2010/01/18/taming-snow-leopard-cgdisplaybitsperpixel-deprication/ ,
with improvements from Peter O'Gorman and Daniel Macks, to display.cc to work around the lack of
CGDisplayBitsPerPixel on 10.7.

Cleanups from David Fang to get the package to build using clang.

The non-atlas variant is built with -ff2c in the FFLAGS,
Expand Down Expand Up @@ -568,14 +607,11 @@ package's name.
The -atlas variant depends on -atlas variants (only) of qrupdate and arpack.
The non-atlas variant depends on non-atlas variants (only) of these.

Patch oct-conf.h, and mkoctfile not to put "flag-sort -r" in the
name of the compiler used, and to use the full path of Fink's compiler wrappers.
Also, we add the BLAS C library to BLAS_LIBS in the -atlas variant. This makes
sure that anything that builds against Octave has the proper information when
installed manually as well as via Fink, and is critical for 10.6/i386 (and 10.5
/x86_64) users. Unfortunately, this requires a rebuild on OS upgrades, because
the information in oct-conf.h gets hardcoded into the Octave interpreter
executable, and some octave-forge packages get information from that.
Patch oct-conf.h, and mkoctfile to use compiler wrappers which are part of the
-dev package to avoid issues which would propagate as dependendencies, e.g.
encoding 'flag-sort' or a ccache-default compiler in the compiler name. These
are symlinks to Fink's compiler wrappers and are resolved in PostInstall so that
they point to the right place for the system.

Includes an additional mkoctfile which uses Fink's gcc46 compilers instead
of Xcode's.
Expand All @@ -587,15 +623,6 @@ GNU info file.

We use Provides in a new namespace and new projections to avoid
unwieldy | lists in the octave-forge packages.

As of revision 203:

Don't use METIS, because of its license.

As of revision 204:

Due to issues with qhull6, use qhull5 instead.
Clean up octave-forge build scripts.
<<
Homepage: http://www.octave.org/
License: GPL
Expand Down

0 comments on commit 824adb7

Please sign in to comment.