diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' libiconv-1.16/autogen.sh libiconv_eidt/autogen.sh *** libiconv-1.16/autogen.sh 1970-01-01 08:00:00.000000000 +0800 --- libiconv_eidt/autogen.sh 2022-08-26 16:24:43.056000000 +0800 *************** *** 0 **** --- 1,83 ---- + #!/bin/sh + # Convenience script for regenerating all autogeneratable files that are + # omitted from the version control repository. In particular, this script + # also regenerates all aclocal.m4, config.h.in, Makefile.in, configure files + # with new versions of autoconf or automake. + # + # This script requires autoconf-2.63..2.69 and automake-1.11..1.16 in the PATH. + # If not used from a released tarball, it also requires either + # - the GNULIB_SRCDIR environment variable pointing to a gnulib checkout, or + # - a preceding invocation of './gitsub.sh pull'. + # It also requires + # - the gperf program. + + # Copyright (C) 2003-2012, 2016, 2018-2019 Free Software Foundation, Inc. + # + # This program is free software: you can redistribute it and/or modify + # it under the terms of the GNU General Public License as published by + # the Free Software Foundation; either version 3 of the License, or + # (at your option) any later version. + # + # 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, see . + + # Usage: ./autogen.sh [--skip-gnulib] + + skip_gnulib=false + while :; do + case "$1" in + --skip-gnulib) skip_gnulib=true; shift;; + *) break ;; + esac + done + + if test $skip_gnulib = false; then + if test -n "$GNULIB_SRCDIR"; then + test -d "$GNULIB_SRCDIR" || { + echo "*** GNULIB_SRCDIR is set but does not point to an existing directory." 1>&2 + exit 1 + } + else + GNULIB_SRCDIR=`pwd`/gnulib + test -d "$GNULIB_SRCDIR" || { + echo "*** Subdirectory 'gnulib' does not yet exist. Use './gitsub.sh pull' to create it, or set the environment variable GNULIB_SRCDIR." 1>&2 + exit 1 + } + fi + # Now it should contain a gnulib-tool. + GNULIB_TOOL="$GNULIB_SRCDIR/gnulib-tool" + test -f "$GNULIB_TOOL" || { + echo "*** gnulib-tool not found." 1>&2 + exit 1 + } + $GNULIB_TOOL --copy-file build-aux/ar-lib || exit $? + chmod a+x build-aux/ar-lib || exit $? + make -f Makefile.devel \ + gnulib-clean srclib/Makefile.gnulib gnulib-imported-files \ + GNULIB_TOOL="$GNULIB_TOOL" + fi + + make -f Makefile.devel totally-clean all || exit $? + + # Copy files into the libcharset subpackage, so that libcharset/autogen.sh + # does not need to invoke gnulib-tool nor automake. + for file in INSTALL.generic; do + cp -p $file libcharset/$file || exit $? + done + for file in config.guess config.libpath config.sub install-sh libtool-reloc mkinstalldirs; do + cp -p build-aux/$file libcharset/build-aux/$file || exit $? + done + for file in codeset.m4 fcntl-o.m4 glibc21.m4 lib-ld.m4 relocatable.m4 relocatable-lib.m4 visibility.m4; do + cp -p srcm4/$file libcharset/m4/$file || exit $? + done + + (cd libcharset + ./autogen.sh || exit $? + ) + + echo "$0: done. Now you can run './configure'." diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' libiconv-1.16/.gitattributes libiconv_eidt/.gitattributes *** libiconv-1.16/.gitattributes 1970-01-01 08:00:00.000000000 +0800 --- libiconv_eidt/.gitattributes 2022-08-26 16:24:43.052000000 +0800 *************** *** 0 **** --- 1 ---- + ChangeLog merge=merge-changelog diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' libiconv-1.16/.gitignore libiconv_eidt/.gitignore *** libiconv-1.16/.gitignore 1970-01-01 08:00:00.000000000 +0800 --- libiconv_eidt/.gitignore 2022-08-26 16:24:43.052000000 +0800 *************** *** 0 **** --- 1,492 ---- + ## This file specifies the files and directories that can usually occur in a + ## developer build of this Git repository. + ## + ## Reference: https://git-scm.com/docs/gitignore + ## + ## When we say, "files", it actually means files and directories. By + ## convention, directories are marked through a trailing first and listed + ## first in each category. + + # Files brought in by gnulib-tool: + /build-aux/config.libpath + /build-aux/config.rpath + /build-aux/install-reloc + /build-aux/libtool-reloc + /build-aux/reloc-ldflags + /doc/relocatable.texi + /libcharset/INSTALL.generic + /libcharset/build-aux/config.libpath + /libcharset/build-aux/libtool-reloc + /libcharset/m4/codeset.m4 + /libcharset/m4/fcntl-o.m4 + /libcharset/m4/glibc21.m4 + /libcharset/m4/lib-ld.m4 + /libcharset/m4/relocatable-lib.m4 + /libcharset/m4/relocatable.m4 + /libcharset/m4/visibility.m4 + /srclib/_Noreturn.h + /srclib/Makefile.gnulib + /srclib/alloca.in.h + /srclib/allocator.c + /srclib/allocator.h + /srclib/areadlink.c + /srclib/areadlink.h + /srclib/basename-lgpl.c + /srclib/binary-io.c + /srclib/binary-io.h + /srclib/c-ctype.c + /srclib/c-ctype.h + /srclib/canonicalize-lgpl.c + /srclib/careadlinkat.c + /srclib/careadlinkat.h + /srclib/dirname-lgpl.c + /srclib/dirname.h + /srclib/dosname.h + /srclib/errno.in.h + /srclib/error.c + /srclib/error.h + /srclib/fcntl.in.h + /srclib/filename.h + /srclib/getprogname.c + /srclib/getprogname.h + /srclib/gettext.h + /srclib/intprops.h + /srclib/limits.in.h + /srclib/localcharset.h + /srclib/lstat.c + /srclib/malloc.c + /srclib/malloca.c + /srclib/malloca.h + /srclib/msvc-inval.c + /srclib/msvc-inval.h + /srclib/msvc-nothrow.c + /srclib/msvc-nothrow.h + /srclib/pathmax.h + /srclib/progname.c + /srclib/progname.h + /srclib/progreloc.c + /srclib/raise.c + /srclib/read.c + /srclib/readlink.c + /srclib/relocatable.c + /srclib/relocatable.h + /srclib/relocwrapper.c + /srclib/safe-read.c + /srclib/safe-read.h + /srclib/setenv.c + /srclib/signal.in.h + /srclib/sigprocmask.c + /srclib/stat.c + /srclib/stat-time.c + /srclib/stat-time.h + /srclib/stat-w32.c + /srclib/stat-w32.h + /srclib/stdbool.in.h + /srclib/stddef.in.h + /srclib/stdint.in.h + /srclib/stdio-write.c + /srclib/stdio.in.h + /srclib/stdlib.in.h + /srclib/streq.h + /srclib/strerror-override.c + /srclib/strerror-override.h + /srclib/strerror.c + /srclib/string.in.h + /srclib/stripslash.c + /srclib/sys-limits.h + /srclib/sys_stat.in.h + /srclib/sys_types.in.h + /srclib/time.in.h + /srclib/unistd.c + /srclib/unistd.in.h + /srclib/unitypes.in.h + /srclib/uniwidth.in.h + /srclib/unlocked-io.h + /srclib/verify.h + /srclib/xalloc-oversized.h + /srclib/xalloc.h + /srclib/xmalloc.c + /srclib/xreadlink.c + /srclib/xreadlink.h + /srclib/xstrdup.c + /srclib/uniwidth/cjk.h + /srclib/uniwidth/width.c + /srcm4/00gnulib.m4 + /srcm4/absolute-header.m4 + /srcm4/alloca.m4 + /srcm4/asm-underscore.m4 + /srcm4/canonicalize.m4 + /srcm4/codeset.m4 + /srcm4/dirname.m4 + /srcm4/double-slash-root.m4 + /srcm4/eealloc.m4 + /srcm4/environ.m4 + /srcm4/errno_h.m4 + /srcm4/error.m4 + /srcm4/extensions.m4 + /srcm4/extern-inline.m4 + /srcm4/fcntl-o.m4 + /srcm4/fcntl_h.m4 + /srcm4/getprogname.m4 + /srcm4/gettext.m4 + /srcm4/glibc2.m4 + /srcm4/glibc21.m4 + /srcm4/gnulib-common.m4 + /srcm4/gnulib-comp.m4 + /srcm4/gnulib-tool.m4 + /srcm4/host-cpu-c-abi.m4 + /srcm4/iconv.m4 + /srcm4/include_next.m4 + /srcm4/intdiv0.m4 + /srcm4/intl-thread-locale.m4 + /srcm4/intl.m4 + /srcm4/intldir.m4 + /srcm4/intlmacosx.m4 + /srcm4/intmax.m4 + /srcm4/inttypes-pri.m4 + /srcm4/inttypes_h.m4 + /srcm4/largefile.m4 + /srcm4/lcmessage.m4 + /srcm4/lib-ld.m4 + /srcm4/lib-link.m4 + /srcm4/lib-prefix.m4 + /srcm4/libunistring-base.m4 + /srcm4/limits-h.m4 + /srcm4/lock.m4 + /srcm4/longlong.m4 + /srcm4/lstat.m4 + /srcm4/malloc.m4 + /srcm4/malloca.m4 + /srcm4/mbstate_t.m4 + /srcm4/msvc-inval.m4 + /srcm4/msvc-nothrow.m4 + /srcm4/multiarch.m4 + /srcm4/nls.m4 + /srcm4/nocrash.m4 + /srcm4/off_t.m4 + /srcm4/pathmax.m4 + /srcm4/po.m4 + /srcm4/printf-posix.m4 + /srcm4/progtest.m4 + /srcm4/raise.m4 + /srcm4/read.m4 + /srcm4/readlink.m4 + /srcm4/relocatable-lib.m4 + /srcm4/relocatable.m4 + /srcm4/safe-read.m4 + /srcm4/setenv.m4 + /srcm4/signal_h.m4 + /srcm4/signalblocking.m4 + /srcm4/sigpipe.m4 + /srcm4/size_max.m4 + /srcm4/ssize_t.m4 + /srcm4/stat-time.m4 + /srcm4/stat.m4 + /srcm4/stdbool.m4 + /srcm4/stddef_h.m4 + /srcm4/stdint.m4 + /srcm4/stdint_h.m4 + /srcm4/stdio_h.m4 + /srcm4/stdlib_h.m4 + /srcm4/strerror.m4 + /srcm4/string_h.m4 + /srcm4/sys_socket_h.m4 + /srcm4/sys_stat_h.m4 + /srcm4/sys_types_h.m4 + /srcm4/threadlib.m4 + /srcm4/time_h.m4 + /srcm4/uintmax_t.m4 + /srcm4/unistd_h.m4 + /srcm4/unlocked-io.m4 + /srcm4/visibility.m4 + /srcm4/warn-on-use.m4 + /srcm4/wchar_t.m4 + /srcm4/wint_t.m4 + /srcm4/xsize.m4 + # Cached parameters of gnulib-tool: + /srcm4/gnulib-cache.m4 + + # Files brought in by "automake --add-missing --copy": + /build-aux/ar-lib + /build-aux/compile + /build-aux/install-sh + /build-aux/missing + /libcharset/build-aux/install-sh + /libcharset/build-aux/mkinstalldirs + + # Other files brought in by autogen.sh: + /build-aux/config.guess + /build-aux/config.sub + /libcharset/build-aux/config.guess + /libcharset/build-aux/config.sub + + # ---------- "make -f Makefile.devel totally-clean" gets you here ---------- + + # Files generated by the autotools: + # Built by Makefile.devel. + /aclocal.m4 + /configure + /config.h.in + /srclib/Makefile.in + # Built by libcharset/Makefile.devel. + /libcharset/autoconf/aclocal.m4 + /libcharset/configure + /libcharset/config.h.in + + # Files generated by "make -f Makefile.devel" and even kept by "make maintainer-clean": + # Built by Makefile.devel. + /srclib/Makefile.gnulib + /srclib/Makefile.in + /include/iconv.h.build.in + /lib/aliases.gperf + /lib/aliases_sysaix.gperf + /lib/aliases_syshpux.gperf + /lib/aliases_sysosf1.gperf + /lib/aliases_syssolaris.gperf + /lib/aliases.h + /lib/aliases_sysaix.h + /lib/aliases_syshpux.h + /lib/aliases_sysosf1.h + /lib/aliases_syssolaris.h + /lib/aliases_aix.h + /lib/aliases_aix_sysaix.h + /lib/aliases_osf1.h + /lib/aliases_osf1_sysosf1.h + /lib/aliases_dos.h + /lib/aliases_extra.h + /lib/canonical.h + /lib/canonical_sysaix.h + /lib/canonical_syshpux.h + /lib/canonical_sysosf1.h + /lib/canonical_syssolaris.h + /lib/canonical_aix.h + /lib/canonical_aix_sysaix.h + /lib/canonical_osf1.h + /lib/canonical_osf1_sysosf1.h + /lib/canonical_dos.h + /lib/canonical_extra.h + /lib/canonical_local.h + /lib/canonical_local_sysaix.h + /lib/canonical_local_syshpux.h + /lib/canonical_local_sysosf1.h + /lib/canonical_local_syssolaris.h + /lib/flags.h + /lib/translit.h + /man/iconv.1.html + /man/iconv.3.html + /man/iconv_close.3.html + /man/iconv_open.3.html + /man/iconvctl.3.html + /man/iconv_open_into.3.html + # Built by libcharset/Makefile.devel. + /libcharset/include/localcharset.h.build.in + + # ---------- "make maintainerclean" gets you here ---------- + + # Files generated by "make" and distributed + # (i.e. kept by "make distclean") + # (see MAINTAINERCLEANFILES in Makefile.am and, if present, Makefile.gnulib): + # Files generated by "make", using msgfmt. + /po/??.gmo + /po/pt_??.gmo + /po/zh_??.gmo + /po/??@*.gmo + po/stamp-po + + # ---------- "make distclean" ought to get you here ---------- + + # Directories generated by "make" and mistakenly distributed + # (i.e. mistakenly kept by "make distclean"): + autom4te.cache/ + + # ---------- "make distclean" gets you here ---------- + + # Files generated by "configure" and not distributed + # (i.e. erased by "make distclean"): + # Erased by Makefile. + /config.status + /config.log + /config.cache + /Makefile + /libtool + /config.h + /stamp-h1 + /lib/stamp-h2 + /include/iconv.h + /include/iconv.h.inst + # Erased by libcharset/Makefile. + /libcharset/config.status + /libcharset/config.log + /libcharset/config.cache + /libcharset/Makefile + /libcharset/config.h + /libcharset/libtool + /libcharset/include/localcharset.h + /libcharset/include/localcharset.h.inst + # Erased by libcharset/lib/Makefile. + /libcharset/lib/Makefile + # Erased by lib/Makefile. + /lib/Makefile + /lib/config.h + # Erased by srclib/Makefile. + /srclib/Makefile + # Erased by src/Makefile. + /src/Makefile + # Erased by po/Makefile. + /po/Makefile.in + /po/Makefile + /po/POTFILES + # Erased by man/Makefile. + /man/Makefile + # Erased by tests/Makefile. + /tests/Makefile + + # Files generated by "make" and not distributed + # (i.e. erased by "make distclean"). + .dirstamp + # Erased by libcharset/Makefile. + /libcharset/include/libcharset.h + + # ---------- "make clean" gets you here ---------- + + # Files generated by "make" and erased by "make clean" + # (see CLEANFILES in Makefile.am and, if present, Makefile.gnulib): + /srclib/libicrt.a + + # ---------- "make mostlyclean" gets you here ---------- + + # Directories generated by "make all check" and erased by "make mostlyclean": + /libcharset/lib/.libs/ + /libcharset/lib/_libs/ + /lib/.libs/ + /lib/_libs/ + /src/.libs/ + /src/_libs/ + /tests/.libs/ + /tests/_libs/ + + # Files generated by "make all check" and erased by "make mostlyclean" + # (see MOSTLYCLEANFILES in Makefile.am and, if present, Makefile.gnulib): + # Erased by Makefile. + /lib/libcharset.h + /lib/libcharset.so* + /lib/localcharset.h + # Erased by libcharset/Makefile. + # Erased by libcharset/lib/Makefile. + /libcharset/lib/*.o + /libcharset/lib/*.lo + /libcharset/lib/*.a + /libcharset/lib/*.la + /libcharset/lib/*.o.lock + /libcharset/lib/core + /libcharset/lib/*.stackdump + # Erased by lib/Makefile. + /lib/*.o + /lib/*.lo + /lib/*.a + /lib/*.la + /lib/core + /lib/*.stackdump + /lib/so_locations + # Erased by srclib/Makefile. + /srclib/**/*.o + /srclib/core + /srclib/*.stackdump + /srclib/alloca.h + /srclib/alloca.h-t + /srclib/errno.h + /srclib/errno.h-t + /srclib/fcntl.h + /srclib/fcntl.h-t + /srclib/limits.h + /srclib/limits.h-t + /srclib/signal.h + /srclib/signal.h-t + /srclib/arg-nonnull.h + /srclib/arg-nonnull.h-t + /srclib/c++defs.h + /srclib/c++defs.h-t + /srclib/warn-on-use.h + /srclib/warn-on-use.h-t + /srclib/stdbool.h + /srclib/stdbool.h-t + /srclib/stddef.h + /srclib/stddef.h-t + /srclib/stdint.h + /srclib/stdint.h-t + /srclib/stdio.h + /srclib/stdio.h-t + /srclib/stdlib.h + /srclib/stdlib.h-t + /srclib/string.h + /srclib/string.h-t + /srclib/sys/stat.h + /srclib/sys/stat.h-t + /srclib/sys/time.h + /srclib/sys/time.h-t + /srclib/sys/types.h + /srclib/sys/types.h-t + /srclib/time.h + /srclib/time.h-t + /srclib/unistd.h + /srclib/unistd.h-t + /srclib/unitypes.h + /srclib/unitypes.h-t + /srclib/uniwidth.h + /srclib/uniwidth.h-t + # Erased by src/Makefile. + /src/*.o + /src/*.lo + /src/iconv.res + /src/iconv_no_i18n + /src/iconv_no_i18n.exe + /src/iconv + /src/iconv.exe + /src/core + /src/*.stackdump + # Erased by po/Makefile. + /po/*.mo + /po/remove-potcdate.sed + /po/stamp-poT + /po/core + /po/core.* + /po/libiconv.po + /po/libiconv.1po + /po/libiconv.2po + /po/*.new.po + /po/*.o + # Erased by man/Makefile. + # Erased by tests/Makefile. + /tests/*.o + /tests/*.lo + /tests/table-from + /tests/table-from.exe + /tests/table-to + /tests/table-to.exe + /tests/test-shiftseq + /tests/test-shiftseq.exe + /tests/test-to-wchar + /tests/test-to-wchar.exe + /tests/tmp-* + /tests/genutf8 + /tests/genutf8.exe + /tests/UTF-8.TXT + /tests/gengb18030z + /tests/gengb18030z.exe + /tests/GB18030.TXT + /tests/core + /tests/*.stackdump + + # Files generated by "make dist" and erased by "make mostlyclean" + # (see MOSTLYCLEANFILES in Makefile.am): + + # ---------- "make all check" gets you here ---------- + + # Patterns for all subdirectories: all kinds of automatic backup files. + *.orig + *.rej + *~ + *.kate-swp + .#* + \#*# + diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' libiconv-1.16/.gitmodules libiconv_eidt/.gitmodules *** libiconv-1.16/.gitmodules 1970-01-01 08:00:00.000000000 +0800 --- libiconv_eidt/.gitmodules 2022-08-26 16:24:43.052000000 +0800 *************** *** 0 **** --- 1,3 ---- + [subcheckout "gnulib"] + url = git://git.savannah.gnu.org/gnulib.git + path = gnulib diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' libiconv-1.16/gitsub.sh libiconv_eidt/gitsub.sh *** libiconv-1.16/gitsub.sh 1970-01-01 08:00:00.000000000 +0800 --- libiconv_eidt/gitsub.sh 2022-08-26 16:24:43.064000000 +0800 *************** *** 0 **** --- 1,483 ---- + #! /bin/sh + # + # Copyright (C) 2019 Free Software Foundation, Inc. + # Written by Bruno Haible , 2019. + # + # This program is free software: you can redistribute it and/or modify + # it under the terms of the GNU General Public License as published by + # the Free Software Foundation; either version 3 of the License, or + # (at your option) any later version. + # + # 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, see . + + # Program that manages the subdirectories of a git checkout of a package + # that come from other packages (called "dependency packages"). + # + # This program is similar in spirit to 'git submodule', with three + # essential differences: + # + # 1) Its options are easy to remember, and do not require knowledge of + # 'git submodule'. + # + # 2) The developer may choose to work on a different checkout for each + # dependency package. This is important when the developer is + # preparing simultaneous changes to the package and the dependency + # package, or is using the dependency package in several packages. + # + # The developer indicates this different checkout by setting the + # environment variable _SRCDIR (e.g. GNULIB_SRCDIR) to point to it. + # + # 3) The package maintainer may choose to use or not use git submodules. + # + # The advantages of management through a git submodule are: + # - Changes to the dependency package cannot suddenly break your package. + # In other words, when there is an incompatible change that will cause + # a breakage, you can fix things at your pace; you are not forced to + # cope with such breakages in an emergency. + # - When you need to make a change as a response to a change in the + # dependency package, your co-developers cannot accidentally mix things + # up (for example, use a combination of your newest change with an + # older version of the dependency package). + # + # The advantages of management without a git submodule (just as a plain + # subdirectory, let's call it a "subcheckout") are: + # - The simplicity: you are conceptually always using the newest revision + # of the dependency package. + # - You don't have to remember to periodially upgrade the dependency. + # Upgrading the dependency is an implicit operation. + + # This program is meant to be copied to the top-level directory of the package, + # together with a configuration file. The configuration is supposed to be + # named '.gitmodules' and to define: + # * The git submodules, as described in "man 5 gitmodules" or + # . For example: + # + # [submodule "gnulib"] + # url = git://git.savannah.gnu.org/gnulib.git + # path = gnulib + # + # You don't add this piece of configuration to .gitmodules manually. Instead, + # you would invoke + # $ git submodule add --name "gnulib" -- git://git.savannah.gnu.org/gnulib.git gnulib + # + # * The subdirectories that are not git submodules, in a similar syntax. For + # example: + # + # [subcheckout "gnulib"] + # url = git://git.savannah.gnu.org/gnulib.git + # path = gnulib + # + # Here the URL is the one used for anonymous checkouts of the dependency + # package. If the developer needs a checkout with write access, they can + # either set the GNULIB_SRCDIR environment variable to point to that checkout + # or modify the gnulib/.git/config file to enter a different URL. + + scriptname="$0" + scriptversion='2019-04-01' + nl=' + ' + IFS=" "" $nl" + + # func_usage + # outputs to stdout the --help usage message. + func_usage () + { + echo "\ + Usage: gitsub.sh pull [SUBDIR] + gitsub.sh upgrade [SUBDIR] + gitsub.sh checkout SUBDIR REVISION + + Operations: + + gitsub.sh pull [SUBDIR] + You should perform this operation after 'git clone ...' and after + every 'git pull'. + It brings your checkout in sync with what the other developers of + your package have committed and pushed. + If an environment variable _SRCDIR is set, with a non-empty + value, nothing is done for this SUBDIR. + If no SUBDIR is specified, the operation applies to all dependencies. + + gitsub.sh upgrade [SUBDIR] + You should perform this operation periodically, to ensure currency + of the dependency package revisions that you use. + This operation pulls and checks out the changes that the developers + of the dependency package have committed and pushed. + If an environment variable _SRCDIR is set, with a non-empty + value, nothing is done for this SUBDIR. + If no SUBDIR is specified, the operation applies to all dependencies. + + gitsub.sh checkout SUBDIR REVISION + Checks out a specific revision for a dependency package. + If an environment variable _SRCDIR is set, with a non-empty + value, this operation fails. + + This script requires the git program in the PATH and an internet connection. + " + } + + # func_version + # outputs to stdout the --version message. + func_version () + { + year=`echo "$scriptversion" | sed -e 's/^\(....\)-.*/\1/'` + echo "\ + gitsub.sh (GNU gnulib) $scriptversion + Copyright (C) 2019-$year Free Software Foundation, Inc. + License GPLv3+: GNU GPL version 3 or later + This is free software: you are free to change and redistribute it. + There is NO WARRANTY, to the extent permitted by law. + " + printf "Written by %s.\n" "Bruno Haible" + } + + # func_fatal_error message + # outputs to stderr a fatal error message, and terminates the program. + # Input: + # - scriptname name of this program + func_fatal_error () + { + echo "$scriptname: *** $1" 1>&2 + echo "$scriptname: *** Stop." 1>&2 + exit 1 + } + + # func_warning message + # Outputs to stderr a warning message, + func_warning () + { + echo "gitsub.sh: warning: $1" 1>&2 + } + + # func_note message + # Outputs to stdout a note message, + func_note () + { + echo "gitsub.sh: note: $1" + } + + # Unset CDPATH. Otherwise, output from 'cd dir' can surprise callers. + (unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + # Command-line option processing. + mode= + while test $# -gt 0; do + case "$1" in + --help | --hel | --he | --h ) + func_usage + exit $? ;; + --version | --versio | --versi | --vers | --ver | --ve | --v ) + func_version + exit $? ;; + -- ) + # Stop option processing + shift + break ;; + -* ) + echo "gitsub.sh: unknown option $1" 1>&2 + echo "Try 'gitsub.sh --help' for more information." 1>&2 + exit 1 ;; + * ) + break ;; + esac + done + if test $# = 0; then + echo "gitsub.sh: missing operation argument" 1>&2 + echo "Try 'gitsub.sh --help' for more information." 1>&2 + exit 1 + fi + case "$1" in + pull | upgrade | checkout ) + mode="$1" + shift ;; + *) + echo "gitsub.sh: unknown operation '$1'" 1>&2 + echo "Try 'gitsub.sh --help' for more information." 1>&2 + exit 1 ;; + esac + if test $# = 2 && test $mode != checkout || test $# -gt 2; then + echo "gitsub.sh: too many arguments in '$mode' mode" 1>&2 + echo "Try 'gitsub.sh --help' for more information." 1>&2 + exit 1 + fi + if test $# = 0 && test $mode = checkout; then + echo "gitsub.sh: too few arguments in '$mode' mode" 1>&2 + echo "Try 'gitsub.sh --help' for more information." 1>&2 + exit 1 + fi + + # Read the configuration. + # Output: + # - subcheckout_names space-separated list of subcheckout names + # - submodule_names space-separated list of submodule names + if test -f .gitmodules; then + subcheckout_names=`git config --file .gitmodules --get-regexp --name-only 'subcheckout\..*\.url' | sed -e 's/^subcheckout\.//' -e 's/\.url$//' | tr -d '\r' | tr '\n' ' '` + submodule_names=`git config --file .gitmodules --get-regexp --name-only 'submodule\..*\.url' | sed -e 's/^submodule\.//' -e 's/\.url$//' | tr -d '\r' | tr '\n' ' '` + else + subcheckout_names= + submodule_names= + fi + + # func_validate SUBDIR + # Verifies that the state on the file system is in sync with the declarations + # in the configuration file. + # Input: + # - subcheckout_names space-separated list of subcheckout names + # - submodule_names space-separated list of submodule names + # Output: + # - srcdirvar Environment that the user can set + # - srcdir Value of the environment variable + # - path if $srcdir = "": relative path of the subdirectory + # - needs_init if $srcdir = "" and $path is not yet initialized: + # true + # - url if $srcdir = "" and $path is not yet initialized: + # the repository URL + func_validate () + { + srcdirvar=`echo "$1" | LC_ALL=C sed -e 's/[^a-zA-Z0-9]/_/g' | LC_ALL=C tr '[a-z]' '[A-Z]'`"_SRCDIR" + eval 'srcdir=$'"$srcdirvar" + path= + url= + if test -n "$srcdir"; then + func_note "Ignoring '$1' because $srcdirvar is set." + else + found=false + needs_init= + case " $subcheckout_names " in *" $1 "*) + found=true + # It ought to be a subcheckout. + path=`git config --file .gitmodules "subcheckout.$1.path"` + if test -z "$path"; then + path="$1" + fi + if test -d "$path"; then + if test -d "$path/.git"; then + # It's a plain checkout. + : + else + if test -f "$path/.git"; then + # It's a submodule. + func_fatal_error "Subdirectory '$path' is supposed to be a plain checkout, but it is a submodule." + else + func_warning "Ignoring '$path' because it exists but is not a git checkout." + fi + fi + else + # The subdir does not yet exist. + needs_init=true + url=`git config --file .gitmodules "subcheckout.$1.url"` + if test -z "$url"; then + func_fatal_error "Property subcheckout.$1.url is not defined in .gitmodules" + fi + fi + ;; + esac + case " $submodule_names " in *" $1 "*) + found=true + # It ought to be a submodule. + path=`git config --file .gitmodules "submodule.$1.path"` + if test -z "$path"; then + path="$1" + fi + if test -d "$path"; then + if test -d "$path/.git" || test -f "$path/.git"; then + # It's likely a submodule. + : + else + path_if_empty=`find "$path" -prune -empty 2>/dev/null` + if test -n "$path_if_empty"; then + # The subdir is empty. + needs_init=true + else + # The subdir is not empty. + # It is important to report an error, because we don't want to erase + # the user's files and 'git submodule update gnulib' sometimes reports + # "fatal: destination path '$path' already exists and is not an empty directory." + # but sometimes does not. + func_fatal_error "Subdir '$path' exists but is not a git checkout." + fi + fi + else + # The subdir does not yet exist. + needs_init=true + fi + # Another way to determine needs_init could be: + # if git submodule status "$path" | grep '^-' > /dev/null; then + # needs_init=true + # fi + if test -n "$needs_init"; then + url=`git config --file .gitmodules "submodule.$1.url"` + if test -z "$url"; then + func_fatal_error "Property submodule.$1.url is not defined in .gitmodules" + fi + fi + ;; + esac + if ! $found; then + func_fatal_error "Subdir '$1' is not configured as a subcheckout or a submodule in .gitmodules" + fi + fi + } + + # func_cleanup_current_git_clone + # Cleans up the current 'git clone' operation. + # Input: + # - path + func_cleanup_current_git_clone () + { + rm -rf "$path" + func_fatal_error "git clone failed" + } + + # func_pull SUBDIR + # Implements the 'pull' operation. + func_pull () + { + func_validate "$1" + if test -z "$srcdir"; then + case " $subcheckout_names " in *" $1 "*) + # It's a subcheckout. + if test -d "$path"; then + if test -d "$path/.git"; then + (cd "$path" && git pull) || func_fatal_error "git operation failed" + fi + else + # The subdir does not yet exist. Create a plain checkout. + trap func_cleanup_current_git_clone 1 2 13 15 + git clone "$url" "$path" || func_cleanup_current_git_clone + trap - 1 2 13 15 + fi + ;; + esac + case " $submodule_names " in *" $1 "*) + # It's a submodule. + if test -n "$needs_init"; then + # Create a submodule checkout. + git submodule init -- "$path" && git submodule update -- "$path" || func_fatal_error "git operation failed" + else + # See https://stackoverflow.com/questions/1030169/easy-way-to-pull-latest-of-all-git-submodules + # https://stackoverflow.com/questions/4611512/is-there-a-way-to-make-git-pull-automatically-update-submodules + git submodule update "$path" || func_fatal_error "git operation failed" + fi + ;; + esac + fi + } + + # func_upgrade SUBDIR + # Implements the 'upgrade' operation. + func_upgrade () + { + func_validate "$1" + if test -z "$srcdir"; then + if test -d "$path"; then + case " $subcheckout_names " in *" $1 "*) + # It's a subcheckout. + if test -d "$path/.git"; then + (cd "$path" && git pull) || func_fatal_error "git operation failed" + fi + ;; + esac + case " $submodule_names " in *" $1 "*) + # It's a submodule. + if test -z "$needs_init"; then + (cd "$path" && git fetch && git merge origin/master) || func_fatal_error "git operation failed" + fi + ;; + esac + else + # The subdir does not yet exist. + func_fatal_error "Subdirectory '$path' does not exist yet. Use 'gitsub.sh pull' to create it." + fi + fi + } + + # func_checkout SUBDIR REVISION + # Implements the 'checkout' operation. + func_checkout () + { + func_validate "$1" + if test -z "$srcdir"; then + if test -d "$path"; then + case " $subcheckout_names " in *" $1 "*) + # It's a subcheckout. + if test -d "$path/.git"; then + (cd "$path" && git checkout "$2") || func_fatal_error "git operation failed" + fi + ;; + esac + case " $submodule_names " in *" $1 "*) + # It's a submodule. + if test -z "$needs_init"; then + (cd "$path" && git checkout "$2") || func_fatal_error "git operation failed" + fi + ;; + esac + else + # The subdir does not yet exist. + func_fatal_error "Subdirectory '$path' does not exist yet. Use 'gitsub.sh pull' to create it." + fi + fi + } + + case "$mode" in + pull ) + if test $# = 0; then + for sub in $subcheckout_names $submodule_names; do + func_pull "$sub" + done + else + valid=false + for sub in $subcheckout_names $submodule_names; do + if test "$sub" = "$1"; then + valid=true + fi + done + if $valid; then + func_pull "$1" + else + func_fatal_error "Subdir '$1' is not configured as a subcheckout or a submodule in .gitmodules" + fi + fi + ;; + + upgrade ) + if test $# = 0; then + for sub in $subcheckout_names $submodule_names; do + func_upgrade "$sub" + done + else + valid=false + for sub in $subcheckout_names $submodule_names; do + if test "$sub" = "$1"; then + valid=true + fi + done + if $valid; then + func_upgrade "$1" + else + func_fatal_error "Subdir '$1' is not configured as a subcheckout or a submodule in .gitmodules" + fi + fi + ;; + + checkout ) + valid=false + for sub in $subcheckout_names $submodule_names; do + if test "$sub" = "$1"; then + valid=true + fi + done + if $valid; then + func_checkout "$1" "$2" + else + func_fatal_error "Subdir '$1' is not configured as a subcheckout or a submodule in .gitmodules" + fi + ;; + esac diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' libiconv-1.16/libcharset/autogen.sh libiconv_eidt/libcharset/autogen.sh *** libiconv-1.16/libcharset/autogen.sh 1970-01-01 08:00:00.000000000 +0800 --- libiconv_eidt/libcharset/autogen.sh 2022-08-26 16:24:43.104000000 +0800 *************** *** 0 **** --- 1,24 ---- + #!/bin/sh + # Convenience script for regenerating all aclocal.m4, config.h.in, Makefile.in, + # configure files with new versions of autoconf or automake. + # + # This script requires autoconf-2.63..2.69 and automake-1.11..1.15 in the PATH. + + # Copyright (C) 2003-2007, 2009-2010, 2016 Free Software Foundation, Inc. + # + # This program is free software: you can redistribute it and/or modify + # it under the terms of the GNU General Public License as published by + # the Free Software Foundation; either version 3 of the License, or + # (at your option) any later version. + # + # 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, see . + + # Usage: ./autogen.sh + + make -f Makefile.devel totally-clean all