informationtheory-oct stable port information

Info2: <<
Package: informationtheory-oct%type_pkg[oct]
Version: 0.1.8
Type: oct (3.0.5 3.2.4 3.4.3 3.6.0 3.6.1), forge (informationtheory)
Revision: 2
Maintainer: Alexander Hansen
# unfortunately, Homepage won't do types
Homepage: http://octave.sourceforge.net/informationtheory/index.html
Description: Information theory pakage for Octave
DescDetail: <<
Functions and routines for basic Information Theory definitions, and source
coding.

The package provides the following functions:
Information Theory:
binaryn
bscchannel
condentr_seq
conditionalentropy_XY
conditionalentropy_YX
entropy
grayenc
graydec
hartley_entropy
infoentr_seq
infogain_seq
jointentropy
kullback_leibler_distance
laverage
marginalc
marginalr
mutualinformation
mutualinfo_seq
narysource
redundancy
relativeentropy
renyi_entropy
shannon_entropy
Source Coding:
tunstallcode
unarydec
unaryenc
arithmetic_decode
arithmetic_encode
Example:
info-theory
<<

License: GPL2+

# All octave-forge packages have to have the following BuildDepends:
# octave%type_pkg[oct]-dev | octave%type_pkg[oct]-atlas-dev,
# fftw3,
# ( %type_pkg[oct] = 305 ) hdf5.7-oldapi,
# ( %type_pkg[oct] != 305 ) hdf5.7
#
# Packages which serve only Octave-3.0.5 or only Octave > 3.0.5 need
# not use the conditional, of course.

BuildDepends: <<
liboctave%type_pkg[oct]-dev,
fftw3,
( %type_pkg[oct] = 305 ) hdf5.7-oldapi,
( %type_pkg[oct] != 305 ) hdf5.7
<<
Depends: octave%type_pkg[oct]-interpreter
Conflicts: octave-forge

Source-MD5: 8948c888555cd4377edcc3cdc8611bee

DescPackaging: <<
Common for all octave-forge packages.

We read in postinst and prerm template scripts installed by octaveN and modify
them to use the name of this package because Octave's package manager can't
cope with non-literal arguments.

The Type: forge (pkgname) is used to minimize what needs to be changed when
using this .info file as a template.
<<

#### Insert required changes here ####

#@CHANGES@

######################################

# Do not change anything from this point down, unless absolutely necessary,
# since the foo-oct%type_pkg[oct] packages are designed to be built/installed
# in the same way.

Source: mirror:sourceforge:octave/%type_raw[forge]-%v.tar.gz

NoSetCPPFLAGS: true
NoSetLDFLAGS: true
SetLIBRARY_PATH: /usr/X11R6/lib:%p/lib
UseMaxBuildJobs: false
BuildAsNobody: false

CompileScript: <<
#!/bin/sh -ev
if [ $UID -ne 0 ]
then
echo "%n cannot be built with --build-as-nobody"
exit 1
fi
export OCTAVE=%p/bin/octave-%type_raw[oct]
# repack tarball, since octave-3.4.3 appears not to want to install
# from directories
if [ %type_pkg[oct] -ge 343 ]
then
cd ..
tar -cf %type_raw[forge]-%v.tar %type_raw[forge]-%v
cd %b
pkgsrc=%type_raw[forge]-%v.tar
else pkgsrc=%type_raw[forge]-%v
fi
%p/share/octave/%type_raw[oct]/scripts/octave-forge-compile.sh $pkgsrc
<<

InstallScript: <<
#!/bin/sh -ev
%p/share/octave/%type_raw[oct]/scripts/octave-forge-install.sh %type_raw[forge]-%v %i %b
mkdir -p %i/share/octave/%type_raw[oct]/%type_raw[forge]-%v
# copy template scripts
cp %p/share/octave/%type_raw[oct]/scripts/octave-forge-prerm %p/share/octave/%type_raw[oct]/scripts/octave-forge-postinst %i/share/octave/%type_raw[oct]/%type_raw[forge]-%v
cd %i/share/octave/%type_raw[oct]/%type_raw[forge]-%v
sed -i -e 's/@PKGNAME@/%type_raw[forge]-%v/' octave-forge-postinst
sed -i -e 's/@PKGNAME@/%type_raw[forge]/' octave-forge-prerm
chmod a+x octave-forge*
<<

PostInstScript: <<
if [ -s %p/var/octave/%type_raw[oct]/octave_packages ] && [ -f %p/var/octave/%type_raw[oct]/octave_packages ]
then
%p/share/octave/%type_raw[oct]/%type_raw[forge]-%v/octave-forge-postinst
else
mv %p/share/octave/%type_raw[oct]/packages/%type_raw[forge]-%v/octave_packages %p/var/octave/%type_raw[oct]/octave_packages
fi
<<

PreRmScript: %p/share/octave/%type_raw[oct]/%type_raw[forge]-%v/octave-forge-prerm
<<