# HG changeset patch # User John W. Eaton # Date 1530207585 14400 # Node ID a6b4355efbd6768accd1ca712ea98e26bd846e83 # Parent b84e8b43eb8fca734a9309e58f37043533341764 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. diff -r b84e8b43eb8f -r a6b4355efbd6 configure.ac --- 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], diff -r b84e8b43eb8f -r a6b4355efbd6 dist-files.mk --- 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 \ diff -r b84e8b43eb8f -r a6b4355efbd6 index.html --- 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 @@ default-octave - Octave + Default Octave devil @@ -2122,10 +2122,6 @@ Octave Forge zeromq package - stable-octave - Octave - - ogg OGG @@ -2318,6 +2314,10 @@ Readline + release-octave + Release Octave + + renderproto renderproto> @@ -2374,6 +2374,10 @@ SQLite + stable-octave + Stable Octave + + suitesparse SuiteSparse diff -r b84e8b43eb8f -r a6b4355efbd6 src/default-octave.mk --- 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 diff -r b84e8b43eb8f -r a6b4355efbd6 src/release-octave-1-gnulib.patch --- /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 diff -r b84e8b43eb8f -r a6b4355efbd6 src/release-octave-1-qt.patch --- /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 + #include + #include + #include diff -r b84e8b43eb8f -r a6b4355efbd6 src/release-octave.mk --- /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 diff -r b84e8b43eb8f -r a6b4355efbd6 src/stable-octave-1-qt.patch --- 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 - #include - #include - #include diff -r b84e8b43eb8f -r a6b4355efbd6 src/stable-octave.mk --- 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