changeset 4748:a6b4355efbd6

new organization for release, stable, and default versions of Octave * release-octave-1-gnulib.patch, release-octave-1-qt.patch, release-octave.mk: Copied from stable-*. * release-octave.mk: Explain purpose of file in comment. Update package name. * stable-octave-1-qt.patch: Delete. * stable-octave.mk, default-octave.mk: Explain purpose of file in comment. Use invalid URL for sources. Set version to 4.4.0+ to distinguish from the octave-release package. * dist-files.mk: Update. * configure.ac: Accept --enable-octave=release option and make it the default. * index.html: Include a release-octave package in the list.
author John W. Eaton <jwe@octave.org>
date Thu, 28 Jun 2018 13:39:45 -0400
parents b84e8b43eb8f
children ad711297712a
files configure.ac dist-files.mk index.html src/default-octave.mk src/release-octave-1-gnulib.patch src/release-octave-1-qt.patch src/release-octave.mk src/stable-octave-1-qt.patch src/stable-octave.mk
diffstat 9 files changed, 294 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/configure.ac	Thu Jun 28 09:12:42 2018 -0400
+++ b/configure.ac	Thu Jun 28 13:39:45 2018 -0400
@@ -269,12 +269,13 @@
 
 AC_ARG_ENABLE([octave],
   [AS_HELP_STRING([--enable-octave=stable],
-    [Enable a specific build of Octave (stable, default)])],
+    [Enable a specific build of Octave (release, stable, default)])],
   [case $enableval in
+     release) ENABLE_OCTAVE="release-" ;;
      stable) ENABLE_OCTAVE="stable-" ;;
      default) ENABLE_OCTAVE="default-" ;;
      *) AC_MSG_ERROR([bad value "$enableval" for --enable-octave]) ;;
-   esac], [ENABLE_OCTAVE="stable-"])
+   esac], [ENABLE_OCTAVE="release-"])
 AC_SUBST(ENABLE_OCTAVE)
 
 AC_ARG_ENABLE([binary-packages],
--- a/dist-files.mk	Thu Jun 28 09:12:42 2018 -0400
+++ b/dist-files.mk	Thu Jun 28 13:39:45 2018 -0400
@@ -623,6 +623,9 @@
   readline-1-sigwinch.patch \
   readline-2-event-hook.patch \
   readline.mk \
+  release-octave-1-gnulib.patch \
+  release-octave-1-qt.patch \
+  release-octave.mk \
   renderproto.mk \
   s2tc.mk \
   sdl-test.c \
--- a/index.html	Thu Jun 28 09:12:42 2018 -0400
+++ b/index.html	Thu Jun 28 13:39:45 2018 -0400
@@ -1139,7 +1139,7 @@
     </tr>
     <tr>
         <td class="package">default-octave</td>
-        <td class="website"><a href="https://octave.org/">Octave</a></td>
+        <td class="website"><a href="https://octave.org/">Default Octave</a></td>
     </tr>
     <tr>
         <td class="package">devil</td>
@@ -2122,10 +2122,6 @@
         <td class="website"><a href="https://octave.sourceforge.io/">Octave Forge zeromq package</a></td>
     </tr>
     <tr>
-        <td class="package">stable-octave</td>
-        <td class="website"><a href="https://octave.org/">Octave</a></td>
-    </tr>
-    <tr>
         <td class="package">ogg</td>
         <td class="website"><a href="http://www.xiph.org/ogg/">OGG</a></td>
     </tr>
@@ -2318,6 +2314,10 @@
         <td class="website"><a href="http://tiswww.case.edu/php/chet/readline/rltop.html">Readline</a></td>
     </tr>
     <tr>
+        <td class="package">release-octave</td>
+        <td class="website"><a href="https://octave.org/">Release Octave</a></td>
+    </tr>
+    <tr>
         <td class="package">renderproto</td>
         <td class="website"><a href="http://xorg.freedesktop.org/">renderproto></a></td>
     </tr>
@@ -2374,6 +2374,10 @@
         <td class="website"><a href="http://www.sqlite.org/">SQLite</a></td>
     </tr>
     <tr>
+        <td class="package">stable-octave</td>
+        <td class="website"><a href="https://octave.org/">Stable Octave</a></td>
+    </tr>
+    <tr>
         <td class="package">suitesparse</td>
         <td class="website"><a href="http://www.cise.ufl.edu/research/sparse/SuiteSparse/">SuiteSparse</a></td>
     </tr>
--- a/src/default-octave.mk	Thu Jun 28 09:12:42 2018 -0400
+++ b/src/default-octave.mk	Thu Jun 28 13:39:45 2018 -0400
@@ -1,16 +1,23 @@
 # This file is part of MXE.
 # See index.html for further information.
 
+## This set of rules is intended for building the latest sources from
+## the default branch of the Octave hg archive.  The $(PKG)_URL is
+## intentionally set to an invalid value.  You must create a tar.lz
+## file from the default branch of the Octave hg archive separately
+## and place it in the directory where mxe-octave package sources are
+## found.
+
 ## We omit the package checksum so that we don't have to update it
-## each time the tarball changes on the hydra site.
+## each time the tarball changes.
 
 PKG             := default-octave
 $(PKG)_IGNORE   :=
 $(PKG)_VERSION  := 5.0.0
 $(PKG)_CHECKSUM := ## No checksum
 $(PKG)_SUBDIR   := octave-$($(PKG)_VERSION)
-$(PKG)_FILE     := octave-$($(PKG)_VERSION).tar.gz
-$(PKG)_URL      := https://hydra.nixos.org/job/gnu/octave-default/tarball/latest/download
+$(PKG)_FILE     := octave-$($(PKG)_VERSION).tar.lz
+$(PKG)_URL      := http://not.a.valid.url/$($(PKG)_FILE)
 ifeq ($(USE_SYSTEM_FONTCONFIG),no)
   $(PKG)_FONTCONFIG := fontconfig
 endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/release-octave-1-gnulib.patch	Thu Jun 28 13:39:45 2018 -0400
@@ -0,0 +1,12 @@
+diff -uNr a/libgnu/unistd.in.h b/libgnu/unistd.in.h
+--- a/libgnu/unistd.in.h	2016-06-18 18:47:32.000000000 -0400
++++ b/libgnu/unistd.in.h	2016-06-23 18:45:42.410781867 -0400
+@@ -734,7 +734,7 @@
+    Null terminate it if the name is shorter than LEN.
+    If the host name is longer than LEN, set errno = EINVAL and return -1.
+    Return 0 if successful, otherwise set errno and return -1.  */
+-# if @UNISTD_H_HAVE_WINSOCK2_H@
++# if !@HAVE_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@
+ #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+ #   undef gethostname
+ #   define gethostname rpl_gethostname
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/release-octave-1-qt.patch	Thu Jun 28 13:39:45 2018 -0400
@@ -0,0 +1,12 @@
+diff --git a/libgui/src/settings-dialog.cc b/libgui/src/settings-dialog.cc
+--- a/libgui/src/settings-dialog.cc
++++ b/libgui/src/settings-dialog.cc
+@@ -34,6 +34,8 @@ along with Octave; see the file COPYING.
+ #include "workspace-model.h"
+ #include "settings-dialog.h"
+ #include "ui-settings-dialog.h"
++
++#include <QButtonGroup>
+ #include <QDir>
+ #include <QFileInfo>
+ #include <QFileDialog>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/release-octave.mk	Thu Jun 28 13:39:45 2018 -0400
@@ -0,0 +1,234 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+## This set of rules is intended for building the latest released
+## version of Octave found on ftp.gnu.org using the current
+## packages found in the mxe-octave archive.  To reproduce the binary
+## builds for Windows that are distributed on ftp.gnu.org, you must
+## choose the revision of mxe-octave that matches the release you
+## wish to reproduce.  Those should be tagged in the mxe-octave archive
+## with tags like "octave-release-4.4.0".  The options used to build are
+##
+##   --enable-octave=release
+##   --enable-binary-packages
+##   --enable-devel-tools
+##   --enable-qt5
+##   --disable-system-opengl
+##
+## and one of the following
+##
+##   * 64-bit Windows build; 32-bit integers for Fortran
+##     (including BLAS and LAPACK libraries) which is the typical
+##     configuration for all Linux distributions:
+##
+##       --enable-windows-64 --enable-64 --disable-fortran-int64
+##
+##   * 64-bit Windows build; 64-bit integers for Fortran
+##     (including BLAS and LAPACK libraries):
+##
+##       --enable-windows-64 --enable-64 --enable-fortran-int64
+##
+##   * 32-bit Windows build:
+##
+##       --disable-windows-64 --disable-64 --disable-fortran-int64
+
+PKG             := release-octave
+$(PKG)_IGNORE   :=
+$(PKG)_VERSION  := 4.4.0
+$(PKG)_CHECKSUM := 2f682e2843d45d858ed7bf603f569d6b0acd2fb9
+$(PKG)_SUBDIR   := octave-$($(PKG)_VERSION)
+$(PKG)_FILE     := octave-$($(PKG)_VERSION).tar.lz
+$(PKG)_URL      := ftp://ftp.gnu.org/gnu/octave/$($(PKG)_FILE)
+ifeq ($(USE_SYSTEM_FONTCONFIG),no)
+  $(PKG)_FONTCONFIG := fontconfig
+endif
+$(PKG)_DEPS     := blas arpack curl epstool fftw fltk $($(PKG)_FONTCONFIG) ghostscript gl2ps glpk gnuplot graphicsmagick hdf5 lapack libsndfile mesa pcre portaudio pstoedit qhull qrupdate qscintilla readline sundials-ida suitesparse texinfo zlib
+
+ifeq ($(ENABLE_QT5),yes)
+    $(PKG)_DEPS += qt5
+else
+    $(PKG)_DEPS += qt
+endif
+
+ifeq ($(MXE_WINDOWS_BUILD),no)
+  ifeq ($(USE_SYSTEM_X11_LIBS),no)
+    $(PKG)_DEPS += x11 xext
+  endif
+endif
+
+ifeq ($(MXE_SYSTEM),mingw)
+  ifeq ($(USE_SYSTEM_GCC),no)
+    $(PKG)_DEPS     += libgomp
+  endif
+endif
+
+ifeq ($(ENABLE_JIT),yes)
+  $(PKG)_DEPS += llvm
+  $(PKG)_ENABLE_JIT_CONFIGURE_OPTIONS := --enable-jit
+else
+  $(PKG)_ENABLE_JIT_CONFIGURE_OPTIONS := --disable-jit
+endif
+
+ifeq ($(ENABLE_JAVA),no)
+  $(PKG)_ENABLE_JAVA_CONFIGURE_OPTIONS := --disable-java
+else
+  ifeq ($(MXE_SYSTEM),mingw)
+    ifeq ($(MXE_NATIVE_BUILD),no)
+      $(PKG)_ENABLE_JAVA_CONFIGURE_OPTIONS := \
+       --with-java-includedir="$(HOST_INCDIR)/java"
+     endif
+  endif
+endif
+
+## If we allow the system Qt libraries to be used, then these
+## won't make sense.
+$(PKG)_QT_CONFIGURE_OPTIONS := \
+  MOC_QTVER=$(MXE_MOC) \
+  UIC_QTVER=$(MXE_UIC) \
+  RCC_QTVER=$(MXE_RCC) \
+  LRELEASE_QTVER=$(MXE_LRELEASE)
+
+ifeq ($(ENABLE_QT5),yes)
+  #$(PKG)_PKG_CONFIG_PATH := "$(HOST_LIBDIR)/pkgconfig"
+  $(PKG)_PKG_CONFIG_PATH := "$(HOST_PREFIX)/qt5/lib/pkgconfig:$(HOST_LIBDIR)/pkgconfig"
+  $(PKG)_QTDIR := $(HOST_PREFIX)/qt5
+  $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt5"
+else
+  $(PKG)_PKG_CONFIG_PATH := "$(HOST_LIBDIR)/pkgconfig"
+  $(PKG)_QTDIR := $(HOST_PREFIX)
+  $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt4"
+endif
+
+
+ifneq ($(ENABLE_DOCS),yes)
+  $(PKG)_ENABLE_DOCS_CONFIGURE_OPTIONS := --disable-docs
+endif
+
+ifeq ($(MXE_NATIVE_BUILD),yes)
+  $(PKG)_CONFIGURE_ENV := LD_LIBRARY_PATH=$(LD_LIBRARY_PATH)
+  ifeq ($(ENABLE_64),yes)
+    $(PKG)_ENABLE_64_CONFIGURE_OPTIONS := --enable-64
+  else
+    $(PKG)_ENABLE_64_CONFIGURE_OPTIONS := --disable-64
+  endif
+else
+  ifeq ($(MXE_SYSTEM),mingw)
+    $(PKG)_CROSS_CONFIG_OPTIONS := \
+      FLTK_CONFIG='$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)fltk-config' \
+      gl_cv_func_gettimeofday_clobber=no \
+      gl_cv_func_tzset_clobber=no
+    ifeq ($(ENABLE_64),yes)
+      $(PKG)_ENABLE_64_CONFIGURE_OPTIONS := --enable-64
+    else
+      $(PKG)_ENABLE_64_CONFIGURE_OPTIONS := --disable-64
+    endif
+  endif
+endif
+
+ifeq ($(ENABLE_FORTRAN_INT64),yes)
+  $(PKG)_ENABLE_FORTRAN_INT64_CONFIGURE_OPTIONS := F77_INTEGER_8_FLAG=-fdefault-integer-8 ax_blas_f77_func_ok=yes ax_blas_integer_size=8 octave_cv_sizeof_fortran_integer=8
+else
+  $(PKG)_ENABLE_FORTRAN_INT64_CONFIGURE_OPTIONS := ax_blas_f77_func_ok=yes ax_blas_integer_size=4 octave_cv_sizeof_fortran_integer=4
+endif
+
+ifeq ($(MXE_SYSTEM),msvc)
+  $(PKG)_PREFIX := '$(HOST_PREFIX)/local/$($(PKG)_SUBDIR)'
+  # - Enable atomic refcount (required for QtHandles)
+  # - Skip configure test for pow and sqrt, MSVC fails to compile them
+  #   because it uses intrinsics (with -O2 flag) and bump on the fake
+  #   "char FUNC()" forward declaration.
+  # - Override CFLAGS and CXXFLAGS to disable some warnings.
+  $(PKG)_EXTRA_CONFIGURE_OPTIONS := \
+    --enable-atomic-refcount \
+    ac_cv_func_pow=yes ac_cv_func_sqrt=yes \
+    CFLAGS='-O2 -wd4244 -wd4003 -wd4005 -wd4068' \
+    CXXFLAGS='-O2 -wd4244 -wd4003 -wd4005 -wd4068'
+else
+  $(PKG)_PREFIX := '$(HOST_PREFIX)'
+  $(PKG)_EXTRA_CONFIGURE_OPTIONS := \
+    LDFLAGS='-Wl,-rpath-link,$(HOST_LIBDIR) -L$(HOST_LIBDIR) -L$($(PKG)_QTDIR)/lib'
+endif
+
+ifeq ($(MXE_SYSTEM),mingw)
+  $(PKG)_EXTRA_CONFIGURE_OPTIONS += --with-x=no
+endif
+
+ifeq ($(MXE_NATIVE_MINGW_BUILD),yes)
+  $(PKG)_EXTRA_CONFIGURE_OPTIONS += ac_cv_search_tputs=-ltermcap
+endif
+
+# if want binary packages and are cross compiling, then we need cross tools enabled
+ifeq ($(ENABLE_BINARY_PACKAGES),yes)
+  ifeq ($(MXE_NATIVE_BUILD),no)
+    $(PKG)_EXTRA_CONFIGURE_OPTIONS += --enable-cross-tools
+  endif
+endif
+
+define $(PKG)_UPDATE
+    echo 'Warning: Updates are temporarily disabled for package octave.' >&2;
+    echo $($(PKG)_VERSION)
+endef
+
+define $(PKG)_BUILD
+    # jni install
+    if [ "$(MXE_SYSTEM)" == "mingw" ] \
+      && [ "$(MXE_NATIVE_BUILD)" == "no" ] \
+      && [ "$(ENABLE_JAVA)" == "yes" ]; then \
+      if [ ! -f $(HOST_INCDIR)/java/jni.h ]; then \
+        mkdir -p '$(HOST_INCDIR)/java'; \
+        $(WGET) -N http://hg.openjdk.java.net/jdk7u/jdk7u/jdk/raw-file/tip/src/share/javavm/export/jni.h \
+          -O $(HOST_INCDIR)/java/jni.h; \
+      fi; \
+      if [ ! -f $(HOST_INCDIR)/java/win32/jni_md.h ]; then \
+        mkdir -p '$(HOST_INCDIR)/java/win32'; \
+        $(WGET) -N http://hg.openjdk.java.net/jdk7u/jdk7u/jdk/raw-file/tip/src/windows/javavm/export/jni_md.h \
+          -O $(HOST_INCDIR)/java/win32/jni_md.h; \
+      fi; \
+    fi
+
+    mkdir '$(1)/.build'
+    cd '$(1)/.build' && $($(PKG)_CONFIGURE_ENV) '$(1)/configure' \
+        $(CONFIGURE_CPPFLAGS) $(CONFIGURE_LDFLAGS) \
+        $(HOST_AND_BUILD_CONFIGURE_OPTIONS) \
+        --prefix='$($(PKG)_PREFIX)' \
+        --disable-silent-rules \
+        --enable-install-build-logs \
+        $($(PKG)_CROSS_CONFIG_OPTIONS) \
+        $($(PKG)_ENABLE_64_CONFIGURE_OPTIONS) \
+        $($(PKG)_ENABLE_FORTRAN_INT64_CONFIGURE_OPTIONS) \
+        $($(PKG)_ENABLE_JAVA_CONFIGURE_OPTIONS) \
+        $($(PKG)_ENABLE_JIT_CONFIGURE_OPTIONS) \
+        $($(PKG)_ENABLE_DOCS_CONFIGURE_OPTIONS) \
+        $($(PKG)_QT_CONFIGURE_OPTIONS) \
+        $($(PKG)_EXTRA_CONFIGURE_OPTIONS) \
+        PKG_CONFIG='$(MXE_PKG_CONFIG)' \
+        PKG_CONFIG_PATH=$($(PKG)_PKG_CONFIG_PATH) \
+        && $(CONFIGURE_POST_HOOK)
+
+    $(MAKE) -C '$(1)/.build/libgnu'
+
+    ## We want both of these install steps so that we install in the
+    ## location set by the configure --prefix option, and the other
+    ## in a directory tree that will have just Octave files.
+    $(MAKE) -C '$(1)/.build' -j '$(JOBS)' install DESTDIR='$(3)'
+
+    if [ "x$(MXE_SYSTEM)" == "xmingw" ]; then \
+      cp '$(1)/.build/src/.libs/octave-gui.exe' '$(3)$(HOST_BINDIR)'; \
+      if [ "x$(ENABLE_BINARY_PACKAGES)" == "xyes" ]; then \
+        mkdir -p '$(3)$(BUILD_TOOLS_PREFIX)/bin'; \
+        $(INSTALL) '$(1)/.build/src/$(MXE_TOOL_PREFIX)mkoctfile' '$(3)$(BUILD_TOOLS_PREFIX)/bin'; \
+        $(INSTALL) '$(1)/.build/src/$(MXE_TOOL_PREFIX)octave-config' '$(3)$(BUILD_TOOLS_PREFIX)/bin'; \
+      fi; \
+    fi
+
+    if [ "x$(ENABLE_DOCS)" == "xyes" ]; then \
+        $(MAKE) -C '$(1)/.build' -j '$(JOBS)' DESTDIR=$(3) install-pdf install-html; \
+    fi
+
+    if [ $(MXE_SYSTEM) != msvc ]; then \
+        $(MAKE) -C '$(1)/.build' -j '$(JOBS)' DESTDIR=$(TOP_BUILD_DIR)/octave install; \
+    fi
+
+    # create a file with latest installed octave rev in it
+    echo "$($(PKG)_VERSION)" > $(TOP_BUILD_DIR)/octave/octave-version
+endef
--- a/src/stable-octave-1-qt.patch	Thu Jun 28 09:12:42 2018 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-diff --git a/libgui/src/settings-dialog.cc b/libgui/src/settings-dialog.cc
---- a/libgui/src/settings-dialog.cc
-+++ b/libgui/src/settings-dialog.cc
-@@ -34,6 +34,8 @@ along with Octave; see the file COPYING.
- #include "workspace-model.h"
- #include "settings-dialog.h"
- #include "ui-settings-dialog.h"
-+
-+#include <QButtonGroup>
- #include <QDir>
- #include <QFileInfo>
- #include <QFileDialog>
--- a/src/stable-octave.mk	Thu Jun 28 09:12:42 2018 -0400
+++ b/src/stable-octave.mk	Thu Jun 28 13:39:45 2018 -0400
@@ -1,16 +1,23 @@
 # This file is part of MXE.
 # See index.html for further information.
 
+## This set of rules is intended for building the latest sources from
+## the stable branch of the Octave hg archive.  The $(PKG)_URL is
+## intentionally set to an invalid value.  You must create a tar.lz
+## file from the stable branch of the Octave hg archive separately
+## and place it in the directory where mxe-octave package sources
+## are found.
+
 ## We omit the package checksum so that we don't have to update it
-## each time the tarball changes on the hydra site.
+## each time the tarball changes.
 
 PKG             := stable-octave
 $(PKG)_IGNORE   :=
-$(PKG)_VERSION  := 4.4.0
-$(PKG)_CHECKSUM := 2f682e2843d45d858ed7bf603f569d6b0acd2fb9
+$(PKG)_VERSION  := 4.4.0+
+$(PKG)_CHECKSUM := ## No checksum
 $(PKG)_SUBDIR   := octave-$($(PKG)_VERSION)
 $(PKG)_FILE     := octave-$($(PKG)_VERSION).tar.lz
-$(PKG)_URL      := ftp://ftp.gnu.org/gnu/octave/$($(PKG)_FILE)
+$(PKG)_URL      := http://not.a.valid.url/$($(PKG)_FILE)
 ifeq ($(USE_SYSTEM_FONTCONFIG),no)
   $(PKG)_FONTCONFIG := fontconfig
 endif