diff options
author | David Spencer <baildon.research@googlemail.com> | 2013-06-05 19:45:02 -0400 |
---|---|---|
committer | dsomero <xgizzmo@slackbuilds.org> | 2013-06-05 19:45:02 -0400 |
commit | 9997e177ee70904810fa5018a8996bfd4cd9aaec (patch) | |
tree | 1a22d0654fe63919eecca418a23d280211426a58 | |
parent | 4d63a819ae88abf224ef149b377da94caecf474b (diff) |
academic/grass: Fixed build with recent ffmpeg + other tweaks.
Signed-off-by: dsomero <xgizzmo@slackbuilds.org>
-rw-r--r-- | academic/grass/README | 12 | ||||
-rw-r--r-- | academic/grass/grass-6.4.1-libav-0.8.patch (renamed from academic/grass/gentoo392371b.patch) | 0 | ||||
-rw-r--r-- | academic/grass/grass-6.4.2-configure-slack.patch | 161 | ||||
-rw-r--r-- | academic/grass/grass-6.4.2-ffmpeg-1.patch | 79 | ||||
-rw-r--r-- | academic/grass/grass-6.4.2-libav-9.patch | 11 | ||||
-rw-r--r-- | academic/grass/grass.SlackBuild | 17 | ||||
-rw-r--r-- | academic/grass/grass.info | 2 | ||||
-rw-r--r-- | academic/grass/slack-desc | 10 |
8 files changed, 276 insertions, 16 deletions
diff --git a/academic/grass/README b/academic/grass/README index 1ffc0aa334d76..98a86beefb95f 100644 --- a/academic/grass/README +++ b/academic/grass/README @@ -5,12 +5,18 @@ and visualization. GRASS is an official project of the Open Source Geospatial Foundation. The following optional dependencies may be enabled: - blas lapack geos ffmpeg mysql postgresql sqlite + blas, lapack for the GRASS gmath library + ffmpeg for the GRASS ogsf library and nviz animation + mysql for mysql (or mariadb) database support + postgresql for postgresql database support + sqlite for sqlite database support The options you require must be specified by setting the variable ENABLE before running grass.SlackBuild, for example ENABLE="sqlite,ffmpeg" ./grass.SlackBuild -If you need to make grass libraries available on the system, do this: -echo /opt/grass/lib >> /etc/ld.so.conf && ldconfig +If you need to make grass libraries available to other applications (e.g. +qgis) do this: + + echo /opt/grass/lib >> /etc/ld.so.conf && ldconfig diff --git a/academic/grass/gentoo392371b.patch b/academic/grass/grass-6.4.1-libav-0.8.patch index 4864d88da7c80..4864d88da7c80 100644 --- a/academic/grass/gentoo392371b.patch +++ b/academic/grass/grass-6.4.1-libav-0.8.patch diff --git a/academic/grass/grass-6.4.2-configure-slack.patch b/academic/grass/grass-6.4.2-configure-slack.patch new file mode 100644 index 0000000000000..d3f37e97e12d5 --- /dev/null +++ b/academic/grass/grass-6.4.2-configure-slack.patch @@ -0,0 +1,161 @@ +diff -u -r grass-6.4.2.orig/configure grass-6.4.2.patched/configure +--- grass-6.4.2.orig/configure 2012-02-06 10:16:07.000000000 +0000 ++++ grass-6.4.2.patched/configure 2013-02-25 20:13:08.277158035 +0000 +@@ -10445,7 +10445,7 @@ + + ac_save_cppflags="$CPPFLAGS" + CPPFLAGS="$FFMPEGINCPATH $CPPFLAGS" +-for ac_hdr in avcodec.h ++for ac_hdr in libavcodec/avcodec.h + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +@@ -10489,7 +10489,7 @@ + + ac_save_cppflags="$CPPFLAGS" + CPPFLAGS="$FFMPEGINCPATH $CPPFLAGS" +-for ac_hdr in avformat.h ++for ac_hdr in libavformat/avformat.h + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +@@ -10533,7 +10533,7 @@ + + ac_save_cppflags="$CPPFLAGS" + CPPFLAGS="$FFMPEGINCPATH $CPPFLAGS" +-for ac_hdr in swscale.h ++for ac_hdr in libswscale/swscale.h + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +@@ -10712,9 +10712,9 @@ + + + +-echo $ac_n "checking for avcodec_init in -lavcodec""... $ac_c" 1>&6 +-echo "configure:10717: checking for avcodec_init in -lavcodec" >&5 +-ac_lib_var=`echo avcodec'_'avcodec_init | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for avcodec_open2 in -lavcodec""... $ac_c" 1>&6 ++echo "configure:10717: checking for avcodec_open2 in -lavcodec" >&5 ++ac_lib_var=`echo avcodec'_'avcodec_open2 | sed 'y%./+-%__p_%'` + + ac_save_LIBS="$LIBS" + LIBS="-lavcodec $FFMPEGLIB $LIBS" +@@ -10724,10 +10724,10 @@ + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +-char avcodec_init(); ++char avcodec_open2(); + + int main() { +-avcodec_init() ++avcodec_open2() + ; return 0; } + EOF + if { (eval echo configure:10734: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +@@ -10748,9 +10748,9 @@ + else + echo "$ac_t""no" 1>&6 + +-echo $ac_n "checking for avcodec_init in -lavcodec""... $ac_c" 1>&6 +-echo "configure:10753: checking for avcodec_init in -lavcodec" >&5 +-ac_lib_var=`echo avcodec'_'avcodec_init | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for avcodec_open2 in -lavcodec""... $ac_c" 1>&6 ++echo "configure:10753: checking for avcodec_open2 in -lavcodec" >&5 ++ac_lib_var=`echo avcodec'_'avcodec_open2 | sed 'y%./+-%__p_%'` + + ac_save_LIBS="$LIBS" + LIBS="-lavcodec $FFMPEGLIB $MATHLIB $LIBS" +@@ -10760,10 +10760,10 @@ + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +-char avcodec_init(); ++char avcodec_open2(); + + int main() { +-avcodec_init() ++avcodec_open2() + ; return 0; } + EOF + if { (eval echo configure:10770: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +@@ -10810,9 +10810,9 @@ + + + +-echo $ac_n "checking for av_set_parameters in -lavformat""... $ac_c" 1>&6 +-echo "configure:10815: checking for av_set_parameters in -lavformat" >&5 +-ac_lib_var=`echo avformat'_'av_set_parameters | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for av_write_frame in -lavformat""... $ac_c" 1>&6 ++echo "configure:10815: checking for av_write_frame in -lavformat" >&5 ++ac_lib_var=`echo avformat'_'av_write_frame | sed 'y%./+-%__p_%'` + + ac_save_LIBS="$LIBS" + LIBS="-lavformat $FFMPEGLIB $LIBS" +@@ -10822,10 +10822,10 @@ + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +-char av_set_parameters(); ++char av_write_frame(); + + int main() { +-av_set_parameters() ++av_write_frame() + ; return 0; } + EOF + if { (eval echo configure:10832: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +@@ -10846,9 +10846,9 @@ + else + echo "$ac_t""no" 1>&6 + +-echo $ac_n "checking for av_set_parameters in -lavformat""... $ac_c" 1>&6 +-echo "configure:10851: checking for av_set_parameters in -lavformat" >&5 +-ac_lib_var=`echo avformat'_'av_set_parameters | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for av_write_frame in -lavformat""... $ac_c" 1>&6 ++echo "configure:10851: checking for av_write_frame in -lavformat" >&5 ++ac_lib_var=`echo avformat'_'av_write_frame | sed 'y%./+-%__p_%'` + + ac_save_LIBS="$LIBS" + LIBS="-lavformat $FFMPEGLIB $MATHLIB $LIBS" +@@ -10858,10 +10858,10 @@ + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +-char av_set_parameters(); ++char av_write_frame(); + + int main() { +-av_set_parameters() ++av_write_frame() + ; return 0; } + EOF + if { (eval echo configure:10868: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +diff -u -r grass-6.4.2.orig/configure.in grass-6.4.2.patched/configure.in +--- grass-6.4.2.orig/configure.in 2012-02-06 10:16:07.000000000 +0000 ++++ grass-6.4.2.patched/configure.in 2013-02-25 20:45:48.025962482 +0000 +@@ -1110,9 +1110,9 @@ + + LOC_CHECK_INC_PATH(ffmpeg, FFMPEG, FFMPEGINCPATH) + +-LOC_CHECK_INCLUDES(avcodec.h,FFMPEG,$FFMPEGINCPATH) +-LOC_CHECK_INCLUDES(avformat.h,FFMPEG,$FFMPEGINCPATH) +-LOC_CHECK_INCLUDES(swscale.h,FFMPEG,$FFMPEGINCPATH) ++LOC_CHECK_INCLUDES(libavcodec/avcodec.h,FFMPEG,$FFMPEGINCPATH) ++LOC_CHECK_INCLUDES(libavformat/avformat.h,FFMPEG,$FFMPEGINCPATH) ++LOC_CHECK_INCLUDES(libswscale/swscale.h,FFMPEG,$FFMPEGINCPATH) + + AC_DEFINE(HAVE_FFMPEG) + +@@ -1125,8 +1125,8 @@ + LOC_CHECK_LIB_PATH(ffmpeg, FFMPEG, FFMPEGLIBPATH) + + LOC_CHECK_LIBS(avutil, av_free, FFMPEG, $FFMPEGLIBPATH, FFMPEGLIB,,,,$MATHLIB) +-LOC_CHECK_LIBS(avcodec, avcodec_init, FFMPEG, $FFMPEGLIBPATH, FFMPEGLIB, $FFMPEGLIB,,,$MATHLIB) +-LOC_CHECK_LIBS(avformat, av_set_parameters, FFMPEG, $FFMPEGLIBPATH, FFMPEGLIB, $FFMPEGLIB,,,$MATHLIB) ++LOC_CHECK_LIBS(avcodec, avcodec_open2, FFMPEG, $FFMPEGLIBPATH, FFMPEGLIB, $FFMPEGLIB,,,$MATHLIB) ++LOC_CHECK_LIBS(avformat, av_write_frame, FFMPEG, $FFMPEGLIBPATH, FFMPEGLIB, $FFMPEGLIB,,,$MATHLIB) + + fi # $USE_FFMPEG + diff --git a/academic/grass/grass-6.4.2-ffmpeg-1.patch b/academic/grass/grass-6.4.2-ffmpeg-1.patch new file mode 100644 index 0000000000000..ec26ae251529c --- /dev/null +++ b/academic/grass/grass-6.4.2-ffmpeg-1.patch @@ -0,0 +1,79 @@ +Fix build with ffmpeg-1. +Part of https://bugs.gentoo.org/show_bug.cgi?id=443264 + +Index: grass-6.4.2/lib/ogsf/gsd_img_mpeg.c +=================================================================== +--- grass-6.4.2.orig/lib/ogsf/gsd_img_mpeg.c ++++ grass-6.4.2/lib/ogsf/gsd_img_mpeg.c +@@ -26,7 +26,8 @@ + + /* FFMPEG stuff */ + #ifdef HAVE_FFMPEG +-#include <avformat.h> ++#include <libavformat/avformat.h> ++#include <libavformat/avio.h> + + /* 5 seconds stream duration */ + #define STREAM_DURATION 5.0 +@@ -58,7 +59,7 @@ static AVStream *add_video_stream(AVForm + AVCodecContext *c; + AVStream *st; + +- st = av_new_stream(oc, 0); ++ st = avformat_new_stream(oc, 0); + if (!st) { + G_warning(_("Unable to allocate stream")); + return NULL; +@@ -97,7 +98,7 @@ static AVStream *add_video_stream(AVForm + c->flags |= CODEC_FLAG_GLOBAL_HEADER; + + c->flags |= CODEC_FLAG_QSCALE; +- c->global_quality = st->quality = FF_QP2LAMBDA * 10; ++ c->global_quality = FF_QP2LAMBDA * 10; + + return st; + } +@@ -332,13 +333,7 @@ int gsd_init_mpeg(const char *filename) + add_video_stream(oc, fmt->video_codec, (r - l + 1), (t - b + 1)); + } + +- /* set the output parameters (must be done even if no parameters). */ +- if (av_set_parameters(oc, NULL) < 0) { +- G_warning(_("Invalid output format parameters")); +- return (-1); +- } +- +- dump_format(oc, 0, filename, 1); ++ av_dump_format(oc, 0, filename, 1); + + /* now that all the parameters are set, we can open the audio and + video codecs and allocate the necessary encode buffers */ +@@ -347,14 +342,17 @@ int gsd_init_mpeg(const char *filename) + + /* open the output file, if needed */ + if (!(fmt->flags & AVFMT_NOFILE)) { +- if (url_fopen(&oc->pb, filename, URL_WRONLY) < 0) { ++ if (avio_open(&oc->pb, filename, AVIO_FLAG_WRITE) < 0) { + G_warning(_("Unable to open <%s>"), filename); + return (-1); + } + } + + /* write the stream header, if any */ +- av_write_header(oc); ++ if (avformat_write_header(oc, NULL) < 0) { ++ G_warning(_("Failed to write header")); ++ return (-1); ++ } + + + #else +@@ -439,7 +437,7 @@ int gsd_close_mpeg(void) + #if (LIBAVFORMAT_VERSION_INT>>16) < 52 + url_fclose(&oc->pb); + #else +- url_fclose(oc->pb); ++ avio_close(oc->pb); + #endif + } + diff --git a/academic/grass/grass-6.4.2-libav-9.patch b/academic/grass/grass-6.4.2-libav-9.patch new file mode 100644 index 0000000000000..7fbe3254f4fdc --- /dev/null +++ b/academic/grass/grass-6.4.2-libav-9.patch @@ -0,0 +1,11 @@ +--- grass-6.4.2.orig/lib/ogsf/gsd_img_mpeg.c 2013-01-18 02:11:37.570025278 +0100 ++++ grass-6.4.2/lib/ogsf/gsd_img_mpeg.c 2013-01-18 02:13:01.663022218 +0100 +@@ -159,7 +159,7 @@ + } + + /* open the codec */ +- if (avcodec_open(c, codec) < 0) { ++ if (avcodec_open2(c, codec, NULL) < 0) { + G_warning(_("Unable to open codec")); + return; + } diff --git a/academic/grass/grass.SlackBuild b/academic/grass/grass.SlackBuild index 5e35f1565774b..fffbf3cbc5c3e 100644 --- a/academic/grass/grass.SlackBuild +++ b/academic/grass/grass.SlackBuild @@ -24,7 +24,7 @@ PRGNAM=grass VERSION=${VERSION:-6.4.2} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} TAG=${TAG:-_SBo} if [ -z "$ARCH" ]; then @@ -78,12 +78,11 @@ while [[ "$1" != "" ]]; do in blas | \ lapack | \ - geos | \ sqlite ) WITHLIST[$((withnum++))]="--with-$1" shift ;; - mysql ) + mysql | mariadb ) WITHLIST[$((withnum++))]="--with-mysql" WITHLIST[$((withnum++))]="--with-mysql-includes=/usr/include/mysql" shift @@ -111,12 +110,15 @@ else fi # gcc-4.7 patch from grass svn, see http://trac.osgeo.org/grass/ticket/1533 -sed -i 's/mm.cpp/mm.cc/' $CWD/changeset_r50130.diff patch -p3 < $CWD/changeset_r50130.diff -# ffmpeg-0.8 patch from Gentoo, see https://bugs.gentoo.org/show_bug.cgi?id=392371#c9 -# it's good for ffmpeg-0.10 too ;-) -patch -p1 < $CWD/gentoo392371b.patch +# ffmpeg-0.11 patches, snarfed from Gentoo (thanks!) +patch -p1 < $CWD/grass-6.4.2-configure-slack.patch +patch -p1 < $CWD/grass-6.4.1-libav-0.8.patch +patch -p1 < $CWD/grass-6.4.2-libav-9.patch +patch -p1 < $CWD/grass-6.4.2-ffmpeg-1.patch + +# geos now always enabled: it's an indirect hard dep (via gdal), and makes grass nicer :-) CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS -fpermissive" \ LDFLAGS="-ldl -lncurses" \ @@ -131,6 +133,7 @@ LDFLAGS="-ldl -lncurses" \ --with-proj-share=/usr/share/proj \ --with-cairo \ --with-wxwidgets \ + --with-geos \ --enable-largefile \ "${WITHLIST[@]}" \ $BITNESS \ diff --git a/academic/grass/grass.info b/academic/grass/grass.info index 316ac1f1f4efe..ce9b87295eca0 100644 --- a/academic/grass/grass.info +++ b/academic/grass/grass.info @@ -5,6 +5,6 @@ DOWNLOAD="http://grass.osgeo.org/grass64/source/grass-6.4.2.tar.gz" MD5SUM="d3398d6b1e3a2ef19cfb6e39a5ae9919" DOWNLOAD_x86_64="" MD5SUM_x86_64="" -REQUIRES="blas gdal numpy wxPython" +REQUIRES="gdal geos numpy proj wxPython %README%" MAINTAINER="David Spencer" EMAIL="baildon.research@googlemail.com" diff --git a/academic/grass/slack-desc b/academic/grass/slack-desc index 659b9400e661e..584194d0d7902 100644 --- a/academic/grass/slack-desc +++ b/academic/grass/slack-desc @@ -1,9 +1,9 @@ # HOW TO EDIT THIS FILE: -# The "handy ruler" below makes it easier to edit a package description. Line -# up the first '|' above the ':' following the base package name, and the '|' -# on the right side marks the last column you can put a character in. You must -# make exactly 11 lines for the formatting to be correct. It's also -# customary to leave one space after the ':'. +# The "handy ruler" below makes it easier to edit a package description. +# Line up the first '|' above the ':' following the base package name, and +# the '|' on the right side marks the last column you can put a character in. +# You must make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':' except on otherwise blank lines. |-----handy-ruler------------------------------------------------------| grass: grass (Geographic Resources Analysis Support System) |