On Thu, Feb 01, 2018 at 12:13:40 -0800, Mike Miller wrote:
> If this bug is still of interest, I think a useful first step would be
> for someone to adapt the octave source package and add the appropriate
> --without-X options. Once there are proof of concept binary packages
> built without any graphical dependencies, then a useful disk usage
> comparison can be done.

Here is an example of what I suggest interested parties can do quite
easily. Modify the source package as in the attached example patch. This
is not an example of a full solution, just a quick and dirty hack to
build octave with no graphical dependencies. Note that this will also be
a slightly crippled octave without any imread or imwrite capability.

With the resulting packages, I can compare the storage requirements in a
clean minbase installation:

    # apt install --no-install-recommends octave
    …
    0 upgraded, 181 newly installed, 0 to remove and 0 not upgraded.
    Need to get 88.3 MB of archives.
    After this operation, 450 MB of additional disk space will be used.

versus

    # apt install --no-install-recommends ./octave_4.2.1-6_amd64.deb \
                                          ./liboctave4_4.2.1-6_amd64.deb \
                                          ./octave-common_4.2.1-6_all.deb
    …
    0 upgraded, 69 newly installed, 0 to remove and 0 not upgraded.
    Need to get 29.9 MB/38.9 MB of archives.
    After this operation, 167 MB of additional disk space will be used.

So I have saved about 280 MB in storage by dropping all graphical
dependencies. That's about 5 MB in the octave binaries themselves and
the rest in the dropped dependencies. Octave will not have a GUI, will
not be able to plot anything, and will not be able to read or write
image file formats.

Is 0.25-0.3 GB on the order of the savings you are looking for? Is it
worth not being able to work with image files or plot anything, even
headless plotting?

-- 
mike
diff --git a/debian/control b/debian/control
index a98b3afee08d..fc2daca67cd0 100644
--- a/debian/control
+++ b/debian/control
@@ -22,31 +22,22 @@ Build-Depends: automake,
                less,
                libarpack2-dev,
                libblas-dev,
+               libbz2-dev,
                libcurl4-gnutls-dev,
                libfftw3-dev,
-               libfltk1.3-dev,
-               libfontconfig1-dev,
-               libgl2ps-dev,
                libglpk-dev,
-               libgraphicsmagick++1-dev,
                libhdf5-dev,
                liblapack-dev,
                libncurses5-dev,
-               libosmesa6-dev,
                libpcre3-dev,
                libqhull-dev,
                libqrupdate-dev,
-               libqscintilla2-qt5-dev,
-               libqt5opengl5-dev,
                libreadline-dev,
                librsvg2-bin,
                libsndfile1-dev,
                libsuitesparse-dev,
-               libxft-dev,
                portaudio19-dev,
                pstoedit,
-               qtbase5-dev,
-               qttools5-dev-tools,
                texinfo,
                texlive-generic-recommended,
                texlive-fonts-recommended,
diff --git a/debian/rules b/debian/rules
index 5c3161594258..7c16dbf09efe 100755
--- a/debian/rules
+++ b/debian/rules
@@ -49,7 +49,14 @@ endif
 override_dh_auto_configure:
 	# Enforce generic BLAS (in order to avoid tying the binary to OpenBLAS or ATLAS)
 	# Also pass OpenMP flag (#631831)
-	dh_auto_configure -- --with-blas=blas --enable-openmp $(WITH_JAVA_FLAGS) $(JIT_FLAG) $(HDF5_FLAGS) $(DOC_FLAG)
+	dh_auto_configure -- \
+				--without-fltk \
+				--without-magick \
+				--without-opengl \
+				--without-OSMesa \
+				--without-qt \
+				--without-x \
+				--with-blas=blas --enable-openmp $(WITH_JAVA_FLAGS) $(JIT_FLAG) $(HDF5_FLAGS) $(DOC_FLAG)
 
 # dh_auto_test tries to run "make test", so override it
 override_dh_auto_test:

Attachment: signature.asc
Description: PGP signature

Reply via email to