lmi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lmi-commits] [lmi] valyuta/002 d6d461f: Merge branch 'master' into valy


From: Greg Chicares
Subject: [lmi-commits] [lmi] valyuta/002 d6d461f: Merge branch 'master' into valyuta/002
Date: Sun, 4 Oct 2020 05:30:36 -0400 (EDT)

branch: valyuta/002
commit d6d461f3dcb1a51d6e1159674fe289805dae94a0
Merge: c02861a 4425d8a
Author: Gregory W. Chicares <gchicares@sbcglobal.net>
Commit: Gregory W. Chicares <gchicares@sbcglobal.net>

    Merge branch 'master' into valyuta/002
---
 .github/workflows/ci.yml     |   6 +-
 .gitmodules                  |   8 ++
 GNUmakefile                  |   5 +-
 gwc/develop1.txt             |   9 ++
 install_libxml2_libxslt.make | 244 -------------------------------------------
 install_libxml2_libxslt.sh   | 197 ++++++++++++++++++++++++++++++++++
 install_msw.sh               |  15 ++-
 third_party/libxml2          |   1 +
 third_party/libxslt          |   1 +
 9 files changed, 234 insertions(+), 252 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index ee39d98..8327ec3 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -20,6 +20,8 @@ jobs:
     steps:
       - name: Checkout
         uses: actions/checkout@v2
+        with:
+          submodules: 'recursive'
 
       - name: Install required packages
         run: |
@@ -71,11 +73,11 @@ jobs:
             /opt/lmi/local/${{ env.LMI_COMPILER }}_${{ env.LMI_TRIPLET }}
             /opt/lmi/local/include
             /opt/lmi/local/share
-          key: build-${{ env.LMI_COMPILER }}-${{ env.gcc_version }}-${{ 
env.LMI_TRIPLET }}-${{ hashFiles('install_libxml2_libxslt.make', 
'install_wx.sh', 'install_wxpdfdoc.sh') }}
+          key: build-${{ env.LMI_COMPILER }}-${{ env.gcc_version }}-${{ 
env.LMI_TRIPLET }}-${{ hashFiles('install_libxml2_libxslt.sh', 'install_wx.sh', 
'install_wxpdfdoc.sh') }}
 
       - name: Build libxml2
         if: steps.cache-local.outputs.cache-hit != 'true'
-        run: make $coefficiency --output-sync=recurse -f 
install_libxml2_libxslt.make
+        run: ./install_libxml2_libxslt.sh
 
       - name: Build wxWidgets
         if: steps.cache-local.outputs.cache-hit != 'true'
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..e0378ac
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,8 @@
+[submodule "third_party/libxml2"]
+       path = third_party/libxml2
+       url = https://github.com/let-me-illustrate/libxml2.git
+       branch = lmi
+[submodule "third_party/libxslt"]
+       path = third_party/libxslt
+       url = https://github.com/let-me-illustrate/libxslt.git
+       branch = lmi
diff --git a/GNUmakefile b/GNUmakefile
index 8e08325..e905135 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -470,7 +470,10 @@ check_concinnity: source_clean custom_tools
          -not -name 'pre-commit' \
          -not -name 'post-checkout' \
          | $(SED) -e's/^/Improperly executable: /'
-       @find $(prefascicle_dir) -executable -type f -print0 \
+       @find $(prefascicle_dir) \
+         -not \( -path $(prefascicle_dir)/third_party -prune \) \
+         -not \( -path $(prefascicle_dir)/.git/modules -prune \) \
+         -executable -type f -print0 \
          | xargs --null --max-args=1 --max-procs="$(shell nproc)" 
./check_script.sh
        @$(ECHO) "  Problems detected by xmllint:"
        @for z in $(xml_files); \
diff --git a/gwc/develop1.txt b/gwc/develop1.txt
index db93fbd..2980f6e 100644
--- a/gwc/develop1.txt
+++ b/gwc/develop1.txt
@@ -50,6 +50,10 @@ git mv lmi.rc lmi_msw_res.rc
 
 git commit --edit --file=.git/COMMIT_EDITMSG -- [files]
 
+  # Regex for conflict markers
+
+^[<=>]\{7\}\( \|$\)
+
   # Make a patch against repository from local tree
 
 git diff file0.cpp file1.cpp >some_new_file
@@ -169,6 +173,11 @@ git pull --rebase
 git add --chmod=+x some-file-name
 git add --chmod=-x some-file-name
 
+  # Show branch topology (last 200 commits, e.g.)
+
+git log -200 --graph --oneline --all --full-history
+git log -200 --graph --oneline --all --simplify-by-decoration
+
   # Second screen: only for updating local shadow copy of repository
   #
   # I use the last line repeatedly to keep my local shadow copy current
diff --git a/install_libxml2_libxslt.make b/install_libxml2_libxslt.make
deleted file mode 100644
index 8923adc..0000000
--- a/install_libxml2_libxslt.make
+++ /dev/null
@@ -1,244 +0,0 @@
-# Install libxml2 and libxslt with options suitable for lmi.
-#
-# Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 
2016, 2017, 2018, 2019, 2020 Gregory W. Chicares.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
-#
-# https://savannah.nongnu.org/projects/lmi
-# email: <gchicares@sbcglobal.net>
-# snail: Chicares, 186 Belle Woods Drive, Glastonbury CT 06033, USA
-
-# Configurable settings 
########################################################
-
-# Archives and their md5sums
-
-libxml2_version := libxml2-2.9.4
-libxslt_version := libxslt-1.1.29
-
-libxml2-2.9.4.tar.gz-md5  := ae249165c173b1ff386ee8ad676815f5
-libxslt-1.1.29.tar.gz-md5 := a129d3c44c022de3b9dcf6d6f288d72e
-
-# Libraries are ordered by dependency, rather than alphabetically.
-libraries := $(libxml2_version) $(libxslt_version)
-
-source_archives := $(addsuffix .tar.gz, $(libraries))
-
-# 'ftp://xmlsoft.org' has 'libxml2/' and 'libxslt/' subdirectories,
-# but they seem to be identical: the latter is apparently a link to
-# the former, so only the former is used here.
-
-host          := ftp://xmlsoft.org
-host_path     := libxml2
-
-mingw_dir     := /opt/lmi/${LMI_COMPILER}_${LMI_TRIPLET}/gcc_msw
-
-prefix        := /opt/lmi/local
-exec_prefix   := $(prefix)/$(LMI_COMPILER)_$(LMI_TRIPLET)
-
-cache_dir     := /srv/cache_for_lmi/downloads
-
-build_dir     := $(exec_prefix)/xml-ad_hoc
-
-# Variables that normally should be left alone 
#################################
-
-mingw_bin_dir :=
-
-lmi_build_type := $(shell /usr/share/libtool/build-aux/config.guess)
-
-ifeq (cygwin,$(findstring cygwin,$(lmi_build_type)))
-  mingw_bin_dir := $(mingw_dir)/bin/
-endif
-
-# For 'host' and 'build' configure options, see:
-#   https://cygwin.com/ml/cygwin/2002-01/msg00837.html
-# Do not use '-fno-omit-frame-pointer' because of an ICE:
-#   https://lists.nongnu.org/archive/html/lmi/2019-06/msg00018.html
-
-# '--disable-dependency-tracking' is required with the MinGW toolchain
-# in a Cygwin shell, to prevent a catastrophic dependency-tracking
-# failure. Apparently the problem is colons in header paths, e.g.:
-#   c:/MinGW-20050827/bin/../lib/gcc/mingw32/3.4.4/include/stddef.h:
-# which elicit fatal errors such as this:
-#   .deps/DOCBparser.Plo:1: *** multiple target patterns.  Stop.
-
-xmlsoft_common_cflags := \
-  -fno-ms-extensions \
-  -frounding-math \
-  -Wno-cpp \
-  -Wno-discarded-qualifiers \
-  -Wno-format \
-  -Wno-format-extra-args \
-  -Wno-implicit-fallthrough \
-  -Wno-implicit-function-declaration \
-  -Wno-maybe-uninitialized \
-  -Wno-misleading-indentation \
-  -Wno-missing-format-attribute \
-  -Wno-missing-prototypes \
-  -Wno-nested-externs \
-  -Wno-pedantic \
-  -Wno-pointer-sign \
-  -Wno-sign-compare \
-  -Wno-strict-prototypes \
-  -Wno-suggest-attribute=format \
-  -Wno-unused-but-set-variable \
-  -Wno-unused-function \
-  -Wno-unused-parameter \
-  -Wno-unused-variable \
-
-xmlsoft_common_options := \
-  --disable-dependency-tracking \
-  --disable-static \
-  --enable-shared \
-  --with-debug \
-  --without-python \
-  LDFLAGS='-lws2_32' \
-  CPPFLAGS="-w" \
-  CFLAGS="-g -O2 $(xmlsoft_common_cflags)" \
-
-$(libxml2_version)_options := \
-  --prefix=$(prefix) \
-  --exec-prefix=$(exec_prefix) \
-  --build=`$(build_dir)/$(libxml2_version)/config.guess` \
-  --host=$(LMI_TRIPLET) \
-  $(xmlsoft_common_options) \
-  --without-lzma \
-  --with-schemas \
-  --without-iconv \
-  --without-modules \
-  --without-schematron \
-  --without-zlib \
-
-# The '--with-libxml-prefix' option is documented thus:
-#   "Specify location of libxml config"
-# and libxml2 installs 'xml2-config' under its own $exec_prefix if
-# that differs from its own $prefix. It would seem clearer if this
-# libxslt option were named '--with-libxml-exec-prefix'.
-
-$(libxslt_version)_options := \
-  --prefix=$(prefix) \
-  --exec-prefix=$(exec_prefix) \
-  --build=`$(build_dir)/$(libxslt_version)/config.guess` \
-  --host=$(LMI_TRIPLET) \
-  $(xmlsoft_common_options) \
-  --with-libxml-prefix=$(exec_prefix) \
-  --without-crypto \
-
-# Utilities 
####################################################################
-
-CHMOD  := chmod
-ECHO   := echo
-GREP   := grep
-MD5SUM := md5sum
-MKDIR  := mkdir
-PATCH  := patch
-RM     := rm
-TAR    := tar
-WGET   := wget
-
-# Targets 
######################################################################
-
-.PHONY: all
-all: clobber_exec_prefix_only $(source_archives) $(libraries)
-
-# Order-only prerequisites.
-
-$(libxslt_version):| $(libxml2_version)
-$(libraries)      :| $(source_archives)
-$(source_archives):| initial_setup
-initial_setup     :| clobber_exec_prefix_only
-
-.PHONY: initial_setup
-initial_setup:
-       [ -n "$$LMI_COMPILER" ] || { printf '%s\n' "no LMI_COMPILER" && false; }
-       [ -n "$$LMI_TRIPLET"  ] || { printf '%s\n' "no LMI_TRIPLET"  && false; }
-       $(MKDIR) --parents $(prefix)
-       $(MKDIR) --parents $(exec_prefix)
-       $(MKDIR) --parents $(cache_dir)
-       $(MKDIR) --parents $(build_dir)
-
-# $(WGETFLAGS) and $(wget_whence) must be recursively expanded because
-# $(host) and $(host_path) have target-specific values.
-
-WGETFLAGS = \
-  --cut-dirs=$(words $(subst /, ,$(host_path))) \
-  --force-directories \
-  --no-host-directories \
-  --no-verbose \
-
-wget_whence = $(host)/$(host_path)
-
-TARFLAGS := --keep-old-files
-%.tar.bz2: TARFLAGS += --bzip2
-%.tar.gz:  TARFLAGS += --gzip
-
-.PHONY: %.tar.bz2 %.tar.gz
-%.tar.bz2 %.tar.gz:
-       cd $(cache_dir) && [ -e $@ ] || $(WGET) $(WGETFLAGS) $(wget_whence)/$@
-       cd $(cache_dir)/$(dir $@) && \
-         $(ECHO) "$($@-md5) *$@" | $(MD5SUM) --check
-       $(TAR) --extract $(TARFLAGS) --directory=$(build_dir) 
--file=$(cache_dir)/$@
-
-# autotools: 'make install' doesn't respect group permissions--see:
-#   https://lists.gnu.org/archive/html/automake/2019-01/msg00000.html
-# After the 'chmod' calls, the 'find' command should find nothing.
-#
-# Someday it may be necessary to add a line like this to the recipe:
-#   export lt_cv_to_tool_file_cmd=func_convert_file_cygwin_to_w32
-# but that's not necessary for now. See:
-#   https://lists.nongnu.org/archive/html/lmi/2011-06/msg00025.html
-
-.PHONY: $(libraries)
-$(libraries):
-       -[ -e $@-lmi.patch ] && $(PATCH) --directory=$(build_dir) --strip=1 
<$@-lmi.patch
-       cd $(build_dir)/$@ \
-         && export PATH="$(mingw_bin_dir):${PATH}" \
-         && PKG_CONFIG_PATH="$(exec_prefix)/lib/pkgconfig" \
-           $($@_overrides) ./configure $($@_options) \
-         && $(MAKE) && $(MAKE) install
-       -$(CHMOD) -R g=u $(build_dir)
-       -$(CHMOD) -R g=u $(prefix)/include/libexslt
-       -$(CHMOD) -R g=u $(prefix)/include/libxml2
-       -$(CHMOD) -R g=u $(prefix)/include/libxslt
-       -$(CHMOD) -R g=u $(prefix)/share/doc/libxml2-*
-       -$(CHMOD) -R g=u $(prefix)/share/doc/libxslt-*
-       -$(CHMOD) -R g=u $(prefix)/share/gtk-doc/html/libxml2
-       -$(CHMOD) -R g=u $(exec_prefix)/bin
-       -$(CHMOD) -R g=u $(exec_prefix)/lib
-       -$(CHMOD) -R g=u $(prefix)/share/aclocal
-       -$(CHMOD) -R g=u $(prefix)/share/man
-       find $(prefix) -perm -200 -not -perm -020
-
-# Nonchalantly remove pkgconfig and cmake subdirectories, even though
-# other libraries might someday write files in them, because lmi never
-# uses them outside of this makefile.
-#
-# It would probably be much better to use an 'uninstall' target in
-# each package's makefile.
-
-.PHONY: clobber_exec_prefix_only
-clobber_exec_prefix_only:
-       [ -n "$$LMI_COMPILER" ] || { printf '%s\n' "no LMI_COMPILER" && false; }
-       [ -n "$$LMI_TRIPLET"  ] || { printf '%s\n' "no LMI_TRIPLET"  && false; }
-       -$(RM) --force --recursive $(exec_prefix)/bin/*xml2*
-       -$(RM) --force --recursive $(exec_prefix)/bin/*xslt*
-       -$(RM) --force --recursive $(exec_prefix)/bin/xmllint*
-       -$(RM) --force --recursive $(exec_prefix)/bin/xmlcatalog*
-       -$(RM) --force --recursive $(exec_prefix)/include/libxml2
-       -$(RM) --force --recursive $(exec_prefix)/include/libxslt
-       -$(RM) --force --recursive $(exec_prefix)/include/libexslt
-       -$(RM) --force --recursive $(exec_prefix)/lib/*xml2*
-       -$(RM) --force --recursive $(exec_prefix)/lib/*xslt*
-       -$(RM) --force --recursive $(exec_prefix)/lib/cmake
-       -$(RM) --force --recursive $(exec_prefix)/lib/pkgconfig
-       -$(RM) --force --recursive $(build_dir)
diff --git a/install_libxml2_libxslt.sh b/install_libxml2_libxslt.sh
new file mode 100755
index 0000000..dcb2746
--- /dev/null
+++ b/install_libxml2_libxslt.sh
@@ -0,0 +1,197 @@
+#!/bin/sh
+
+# Install libxml2 and libxslt with options suitable for lmi.
+#
+# Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 
2016, 2017, 2018, 2019, 2020 Gregory W. Chicares.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+#
+# https://savannah.nongnu.org/projects/lmi
+# email: <gchicares@sbcglobal.net>
+# snail: Chicares, 186 Belle Woods Drive, Glastonbury CT 06033, USA
+
+set -vxe
+
+[ -n "$LMI_COMPILER" ] || { printf '%s\n' "no LMI_COMPILER" && exit 1; }
+[ -n "$LMI_TRIPLET"  ] || { printf '%s\n' "no LMI_TRIPLET"  && exit 2; }
+
+# Configurable settings 
########################################################
+
+coefficiency=${coefficiency:-"--jobs=$(nproc)"}
+
+MAKE=${MAKE:-"make $coefficiency"}
+
+# Note that we forcibly add local to the prefix, even if a non-default value
+# is specified, because this is currently hard-coded in localxxxdir values.
+prefix=${prefix:-/opt/lmi}/local
+exec_prefix="${exec_prefix:-$prefix/${LMI_COMPILER}_${LMI_TRIPLET}}"
+
+xml_skip_clean="${xml_skip_clean:-0}"
+
+# Variables that normally should be left alone 
#################################
+
+srcdir=$(dirname "$(readlink --canonicalize "$0")")
+
+build_dir="${exec_prefix}/xml-ad_hoc"
+
+build_type=$(/usr/share/libtool/build-aux/config.guess)
+
+case "$build_type" in
+    (*-*-cygwin*)
+        export 
PATH="/opt/lmi/${LMI_COMPILER}_${LMI_TRIPLET}/gcc_msw/bin:${PATH}"
+        ;;
+esac
+
+export PKG_CONFIG_PATH="$exec_prefix/lib/pkgconfig"
+
+# For 'host' and 'build' configure options, see:
+#   https://cygwin.com/ml/cygwin/2002-01/msg00837.html
+# Do not use '-fno-omit-frame-pointer' because of an ICE:
+#   https://lists.nongnu.org/archive/html/lmi/2019-06/msg00018.html
+
+# '--disable-dependency-tracking' is required with the MinGW toolchain
+# in a Cygwin shell, to prevent a catastrophic dependency-tracking
+# failure. Apparently the problem is colons in header paths, e.g.:
+#   c:/MinGW-20050827/bin/../lib/gcc/mingw32/3.4.4/include/stddef.h:
+# which elicit fatal errors such as this:
+#   .deps/DOCBparser.Plo:1: *** multiple target patterns.  Stop.
+
+# We can't have new lines in the CFLAGS, so get rid of them explicitly.
+xmlsoft_common_cflags=$(echo '
+  -fno-ms-extensions
+  -frounding-math
+  -Wno-cpp
+  -Wno-discarded-qualifiers
+  -Wno-format
+  -Wno-format-extra-args
+  -Wno-implicit-fallthrough
+  -Wno-implicit-function-declaration
+  -Wno-maybe-uninitialized
+  -Wno-misleading-indentation
+  -Wno-missing-format-attribute
+  -Wno-missing-prototypes
+  -Wno-nested-externs
+  -Wno-pedantic
+  -Wno-pointer-sign
+  -Wno-sign-compare
+  -Wno-strict-prototypes
+  -Wno-suggest-attribute=format
+  -Wno-unused-but-set-variable
+  -Wno-unused-function
+  -Wno-unused-parameter
+  -Wno-unused-variable
+' | tr '\n' ' ' | tr -s ' ' )
+
+xmlsoft_common_options="
+  --prefix=$prefix
+  --exec-prefix=$exec_prefix
+  --build=$build_type
+  --host=$LMI_TRIPLET
+  --disable-dependency-tracking
+  --disable-static
+  --enable-shared
+  --with-debug
+  --without-python
+"
+
+# This variable is used inside eval, which is beyond spellcheck's ken.
+# shellcheck disable=SC2034
+libxml2_options="
+  $xmlsoft_common_options
+  --without-lzma
+  --with-schemas
+  --without-iconv
+  --without-modules
+  --without-schematron
+  --without-zlib
+"
+
+# The '--with-libxml-prefix' option is documented thus:
+#   "Specify location of libxml config"
+# and libxml2 installs 'xml2-config' under its own $exec_prefix if
+# that differs from its own $prefix. It would seem clearer if this
+# libxslt option were named '--with-libxml-exec-prefix'.
+
+# As above.
+# shellcheck disable=SC2034
+libxslt_options="
+  $xmlsoft_common_options
+  --with-libxml-prefix=$exec_prefix
+  --without-crypto
+"
+
+# Actually build ##############################################################
+
+# Nonchalantly remove pkgconfig and cmake subdirectories, even though
+# other libraries might someday write files in them, because lmi never
+# uses them outside of this makefile.
+#
+# It would probably be much better to use an 'uninstall' target in
+# each package's makefile.
+if [ "$xml_skip_clean" != 1 ]; then
+    rm --force --recursive "$exec_prefix"/bin/*xml2*
+    rm --force --recursive "$exec_prefix"/bin/*xslt*
+    rm --force --recursive "$exec_prefix"/bin/xmllint*
+    rm --force --recursive "$exec_prefix"/bin/xmlcatalog*
+    rm --force --recursive "$exec_prefix"/include/libxml2
+    rm --force --recursive "$exec_prefix"/include/libxslt
+    rm --force --recursive "$exec_prefix"/include/libexslt
+    rm --force --recursive "$exec_prefix"/lib/*xml2*
+    rm --force --recursive "$exec_prefix"/lib/*xslt*
+    rm --force --recursive "$exec_prefix"/lib/cmake
+    rm --force --recursive "$exec_prefix"/lib/pkgconfig
+    rm --force --recursive "$build_dir"
+fi
+
+for lib in libxml2 libxslt; do
+    libdir="$srcdir/third_party/$lib"
+    if [ ! -x "$libdir/configure" ]; then
+        cd "$libdir"
+        NOCONFIGURE=1 ./autogen.sh
+    fi
+    mkdir --parents "$build_dir/$lib"
+    cd "$build_dir/$lib"
+    # 'configure' options must not be double-quoted
+    # shellcheck disable=SC2046
+    "$libdir/configure" \
+        LDFLAGS='-lws2_32' \
+        CPPFLAGS='-w' \
+        CFLAGS="-g -O2 $xmlsoft_common_cflags" \
+        $(eval "echo \$${lib}_options")
+    $MAKE install
+done
+
+# autotools: 'make install' doesn't respect group permissions--see:
+#   https://lists.gnu.org/archive/html/automake/2019-01/msg00000.html
+# After the 'chmod' calls, the 'find' command should find nothing.
+#
+# Someday it may be necessary to add a line like this to the recipe:
+#   export lt_cv_to_tool_file_cmd=func_convert_file_cygwin_to_w32
+# but that's not necessary for now. See:
+#   https://lists.nongnu.org/archive/html/lmi/2011-06/msg00025.html
+
+chmod -R g=u "$build_dir"
+chmod -R g=u "$prefix"/include/libexslt
+chmod -R g=u "$prefix"/include/libxml2
+chmod -R g=u "$prefix"/include/libxslt
+chmod -R g=u "$prefix"/share/doc/libxml2-*
+chmod -R g=u "$prefix"/share/doc/libxslt-*
+chmod -R g=u "$prefix"/share/gtk-doc/html/libxml2
+chmod -R g=u "$exec_prefix"/bin
+chmod -R g=u "$exec_prefix"/lib
+chmod -R g=u "$prefix"/share/aclocal
+chmod -R g=u "$prefix"/share/man
+find "$prefix" -perm -200 -not -perm -020
+
+exit 0
diff --git a/install_msw.sh b/install_msw.sh
index cbf8cb0..a5fd87f 100755
--- a/install_msw.sh
+++ b/install_msw.sh
@@ -205,16 +205,21 @@ then
     # by a corporate firewall, fall back on https. In case a firewall
     # inexplicably blocks the gnu.org domain, try Vadim's github clone
     # as a last resort.
-
-    git clone git://git.savannah.nongnu.org/lmi.git \
-      || git clone https://git.savannah.nongnu.org/r/lmi.git \
-      || git clone https://github.com/vadz/lmi.git
+    clone_opts="$coefficiency --recurse-submodules"
+    # 'git clone' options must not be double-quoted
+    # shellcheck disable=SC2086
+    git clone      $clone_opts git://git.savannah.nongnu.org/lmi.git \
+      || git clone $clone_opts https://git.savannah.nongnu.org/r/lmi.git \
+      || git clone $clone_opts https://github.com/vadz/lmi.git
 fi
 
 cd /opt/lmi/src/lmi || printf 'Cannot cd\n'
 
 ./check_git_setup.sh
 
+# Get any new submodules that may have been added, even if nested.
+git submodule update "$coefficiency" --recursive --init
+
 if [ "Cygwin" = "$platform" ]
 then
     # A "Replacing former [...] mount:" message probably means that this
@@ -269,7 +274,7 @@ do
       printf 'No MinGW compiler for this triplet.\n'
     fi
 
-    make "$coefficiency" --output-sync=recurse -f install_libxml2_libxslt.make
+    ./install_libxml2_libxslt.sh
 
     ./install_wx.sh
     ./install_wxpdfdoc.sh
diff --git a/third_party/libxml2 b/third_party/libxml2
new file mode 160000
index 0000000..bdec218
--- /dev/null
+++ b/third_party/libxml2
@@ -0,0 +1 @@
+Subproject commit bdec2183f34b37ee89ae1d330c6ad2bb4d76605f
diff --git a/third_party/libxslt b/third_party/libxslt
new file mode 160000
index 0000000..6a46106
--- /dev/null
+++ b/third_party/libxslt
@@ -0,0 +1 @@
+Subproject commit 6a46106dca44e9253a2e3b04485a4b8a637cb625



reply via email to

[Prev in Thread] Current Thread [Next in Thread]