mirror of https://codeberg.org/cage/tinmop/
- prevented stripping of directory for data and doc files;
- updated Changelog.
This commit is contained in:
parent
0c245ebc65
commit
3caed6b13b
74
ChangeLog
74
ChangeLog
|
@ -1,3 +1,77 @@
|
|||
2021-08-03 cage
|
||||
|
||||
* src/package.lisp,
|
||||
* src/ui-goodies.lisp,
|
||||
* etc/init.lisp:
|
||||
|
||||
- [gemini] added a procedure to import tls certificates.
|
||||
|
||||
2021-07-31 cage
|
||||
|
||||
* doc/tinmop.man,
|
||||
* src/command-window.lisp,
|
||||
* src/main.lisp,
|
||||
* src/open-message-link-window.lisp,
|
||||
* src/package.lisp,
|
||||
* src/program-events.lisp,
|
||||
* src/scheduled-events.lisp,
|
||||
* src/software-configuration.lisp,
|
||||
* src/ui-goodies.lisp,
|
||||
* doc/man.org,
|
||||
* etc/shared.conf,
|
||||
* etc/shared.conf,
|
||||
* src/line-oriented-window.lisp,
|
||||
* src/package.lisp,
|
||||
* src/program-events.lisp,
|
||||
* src/software-configuration.lisp,
|
||||
* src/tour-mode-parser.lisp:
|
||||
|
||||
- added a configuration directive to update subscription to gemlogs
|
||||
at starts;
|
||||
- added scheduled events when program starts;
|
||||
- made update to gemlog less blocking;
|
||||
- increased default history purging threshold;
|
||||
- prevented out of bound condition when scrolling message-window's
|
||||
contents (this was actually a regression);
|
||||
- added a configuration directive to close the link window after a
|
||||
link has been selected;
|
||||
- relaxed a bit the tour mode indices parser (allow multiple
|
||||
consecutive separator and comma as separator);
|
||||
- made less confusing complete command line.
|
||||
- fixed manpage.
|
||||
|
||||
2021-07-29 cage
|
||||
|
||||
* doc/man.org,
|
||||
* doc/tinmop.man:
|
||||
|
||||
- updated manpage, explained command line keys;
|
||||
- updated manpage in man format.
|
||||
|
||||
2021-07-26 cage
|
||||
|
||||
* ChangeLog,
|
||||
* src/constants.lisp,
|
||||
* src/line-oriented-window.lisp,
|
||||
* src/message-window.lisp,
|
||||
* src/package.lisp,
|
||||
* src/9p-client/client.lisp:
|
||||
|
||||
- wrapped function in '(eval-when..'. - updated/fixed Changelog.
|
||||
- added client.lisp
|
||||
- added adjust-strategy-last to show text in message-window;
|
||||
- removed call to 'adjust-selected-rows' when redrawing
|
||||
message-window;
|
||||
- fixed 'adjust-selected-rows', was never actually called.
|
||||
|
||||
2021-07-26 cage
|
||||
|
||||
|
||||
|
||||
2021-07-26 cage
|
||||
|
||||
|
||||
|
||||
2021-07-25 cage
|
||||
|
||||
* src/complete.lisp,
|
||||
|
|
16
Makefile.am
16
Makefile.am
|
@ -30,22 +30,22 @@ CONF_PATH_FILE_IN_IN = src/config.lisp.in.in
|
|||
BUILT_SOURCES = $(CONF_PATH_FILE)
|
||||
|
||||
EXTRA_DIST = config.rpath m4/ChangeLog tinmop.asd README.org src \
|
||||
LICENSES.org COPYING etc/shared.conf etc/default-theme.conf \
|
||||
etc/init.lisp compare_version.awk
|
||||
LICENSES.org COPYING etc/shared.conf etc/default-theme.conf \
|
||||
etc/init.lisp compare_version.awk
|
||||
|
||||
SUBDIRS = po
|
||||
|
||||
dist_doc_DATA = README.org README.txt LICENSES.org CONTRIBUTING.org \
|
||||
doc/man.org doc/send-toot.lisp NEWS.org ChangeLog AUTHORS
|
||||
nobase_dist_doc_DATA = README.org README.txt LICENSES.org CONTRIBUTING.org \
|
||||
doc/man.org doc/send-toot.lisp NEWS.org ChangeLog AUTHORS
|
||||
|
||||
confdir = $(sysconfdir)/$(PACKAGE)
|
||||
|
||||
dist_conf_DATA = etc/init.lisp etc/default-theme.conf etc/shared.conf
|
||||
|
||||
dist_pkgdata_DATA = scripts/welcome-bot.lisp \
|
||||
modules/next-previous-open.lisp \
|
||||
modules/share-gemini-link.lisp \
|
||||
modules/rewrite-message-urls.lisp
|
||||
nobase_dist_pkgdata_DATA = scripts/welcome-bot.lisp \
|
||||
modules/next-previous-open.lisp \
|
||||
modules/share-gemini-link.lisp \
|
||||
modules/rewrite-message-urls.lisp
|
||||
|
||||
dist_man1_MANS = doc/tinmop.man
|
||||
|
||||
|
|
99
Makefile.in
99
Makefile.in
|
@ -116,8 +116,9 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
|
|||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
|
||||
$(am__configure_deps) $(dist_conf_DATA) $(dist_doc_DATA) \
|
||||
$(dist_pkgdata_DATA) $(am__DIST_COMMON)
|
||||
$(am__configure_deps) $(dist_conf_DATA) \
|
||||
$(nobase_dist_doc_DATA) $(nobase_dist_pkgdata_DATA) \
|
||||
$(am__DIST_COMMON)
|
||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
configure.lineno config.status.lineno
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
|
@ -184,7 +185,8 @@ am__can_run_installinfo = \
|
|||
man1dir = $(mandir)/man1
|
||||
NROFF = nroff
|
||||
MANS = $(dist_man1_MANS)
|
||||
DATA = $(dist_conf_DATA) $(dist_doc_DATA) $(dist_pkgdata_DATA)
|
||||
DATA = $(dist_conf_DATA) $(nobase_dist_doc_DATA) \
|
||||
$(nobase_dist_pkgdata_DATA)
|
||||
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||
distclean-recursive maintainer-clean-recursive
|
||||
am__recursive_targets = \
|
||||
|
@ -392,19 +394,19 @@ CONF_PATH_FILE_IN = src/config.lisp.in
|
|||
CONF_PATH_FILE_IN_IN = src/config.lisp.in.in
|
||||
BUILT_SOURCES = $(CONF_PATH_FILE)
|
||||
EXTRA_DIST = config.rpath m4/ChangeLog tinmop.asd README.org src \
|
||||
LICENSES.org COPYING etc/shared.conf etc/default-theme.conf \
|
||||
etc/init.lisp compare_version.awk
|
||||
LICENSES.org COPYING etc/shared.conf etc/default-theme.conf \
|
||||
etc/init.lisp compare_version.awk
|
||||
|
||||
SUBDIRS = po
|
||||
dist_doc_DATA = README.org README.txt LICENSES.org CONTRIBUTING.org \
|
||||
doc/man.org doc/send-toot.lisp NEWS.org ChangeLog AUTHORS
|
||||
nobase_dist_doc_DATA = README.org README.txt LICENSES.org CONTRIBUTING.org \
|
||||
doc/man.org doc/send-toot.lisp NEWS.org ChangeLog AUTHORS
|
||||
|
||||
confdir = $(sysconfdir)/$(PACKAGE)
|
||||
dist_conf_DATA = etc/init.lisp etc/default-theme.conf etc/shared.conf
|
||||
dist_pkgdata_DATA = scripts/welcome-bot.lisp \
|
||||
modules/next-previous-open.lisp \
|
||||
modules/share-gemini-link.lisp \
|
||||
modules/rewrite-message-urls.lisp
|
||||
nobase_dist_pkgdata_DATA = scripts/welcome-bot.lisp \
|
||||
modules/next-previous-open.lisp \
|
||||
modules/share-gemini-link.lisp \
|
||||
modules/rewrite-message-urls.lisp
|
||||
|
||||
dist_man1_MANS = doc/tinmop.man
|
||||
all: $(BUILT_SOURCES)
|
||||
|
@ -545,47 +547,53 @@ uninstall-dist_confDATA:
|
|||
@list='$(dist_conf_DATA)'; test -n "$(confdir)" || list=; \
|
||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
dir='$(DESTDIR)$(confdir)'; $(am__uninstall_files_from_dir)
|
||||
install-dist_docDATA: $(dist_doc_DATA)
|
||||
install-nobase_dist_docDATA: $(nobase_dist_doc_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
@list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \
|
||||
@list='$(nobase_dist_doc_DATA)'; test -n "$(docdir)" || list=; \
|
||||
if test -n "$$list"; then \
|
||||
echo " $(MKDIR_P) '$(DESTDIR)$(docdir)'"; \
|
||||
$(MKDIR_P) "$(DESTDIR)$(docdir)" || exit 1; \
|
||||
fi; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; \
|
||||
done | $(am__base_list) | \
|
||||
while read files; do \
|
||||
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docdir)'"; \
|
||||
$(INSTALL_DATA) $$files "$(DESTDIR)$(docdir)" || exit $$?; \
|
||||
$(am__nobase_list) | while read dir files; do \
|
||||
xfiles=; for file in $$files; do \
|
||||
if test -f "$$file"; then xfiles="$$xfiles $$file"; \
|
||||
else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \
|
||||
test -z "$$xfiles" || { \
|
||||
test "x$$dir" = x. || { \
|
||||
echo " $(MKDIR_P) '$(DESTDIR)$(docdir)/$$dir'"; \
|
||||
$(MKDIR_P) "$(DESTDIR)$(docdir)/$$dir"; }; \
|
||||
echo " $(INSTALL_DATA) $$xfiles '$(DESTDIR)$(docdir)/$$dir'"; \
|
||||
$(INSTALL_DATA) $$xfiles "$(DESTDIR)$(docdir)/$$dir" || exit $$?; }; \
|
||||
done
|
||||
|
||||
uninstall-dist_docDATA:
|
||||
uninstall-nobase_dist_docDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \
|
||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
@list='$(nobase_dist_doc_DATA)'; test -n "$(docdir)" || list=; \
|
||||
$(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \
|
||||
dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir)
|
||||
install-dist_pkgdataDATA: $(dist_pkgdata_DATA)
|
||||
install-nobase_dist_pkgdataDATA: $(nobase_dist_pkgdata_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
@list='$(dist_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
|
||||
@list='$(nobase_dist_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
|
||||
if test -n "$$list"; then \
|
||||
echo " $(MKDIR_P) '$(DESTDIR)$(pkgdatadir)'"; \
|
||||
$(MKDIR_P) "$(DESTDIR)$(pkgdatadir)" || exit 1; \
|
||||
fi; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; \
|
||||
done | $(am__base_list) | \
|
||||
while read files; do \
|
||||
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgdatadir)'"; \
|
||||
$(INSTALL_DATA) $$files "$(DESTDIR)$(pkgdatadir)" || exit $$?; \
|
||||
$(am__nobase_list) | while read dir files; do \
|
||||
xfiles=; for file in $$files; do \
|
||||
if test -f "$$file"; then xfiles="$$xfiles $$file"; \
|
||||
else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \
|
||||
test -z "$$xfiles" || { \
|
||||
test "x$$dir" = x. || { \
|
||||
echo " $(MKDIR_P) '$(DESTDIR)$(pkgdatadir)/$$dir'"; \
|
||||
$(MKDIR_P) "$(DESTDIR)$(pkgdatadir)/$$dir"; }; \
|
||||
echo " $(INSTALL_DATA) $$xfiles '$(DESTDIR)$(pkgdatadir)/$$dir'"; \
|
||||
$(INSTALL_DATA) $$xfiles "$(DESTDIR)$(pkgdatadir)/$$dir" || exit $$?; }; \
|
||||
done
|
||||
|
||||
uninstall-dist_pkgdataDATA:
|
||||
uninstall-nobase_dist_pkgdataDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(dist_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
|
||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
@list='$(nobase_dist_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
|
||||
$(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \
|
||||
dir='$(DESTDIR)$(pkgdatadir)'; $(am__uninstall_files_from_dir)
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
|
@ -958,8 +966,8 @@ info: info-recursive
|
|||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-dist_confDATA install-dist_docDATA \
|
||||
install-dist_pkgdataDATA install-man
|
||||
install-data-am: install-dist_confDATA install-man \
|
||||
install-nobase_dist_docDATA install-nobase_dist_pkgdataDATA
|
||||
|
||||
install-dvi: install-dvi-recursive
|
||||
|
||||
|
@ -1006,8 +1014,8 @@ ps: ps-recursive
|
|||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-binSCRIPTS uninstall-dist_confDATA \
|
||||
uninstall-dist_docDATA uninstall-dist_pkgdataDATA \
|
||||
uninstall-man
|
||||
uninstall-man uninstall-nobase_dist_docDATA \
|
||||
uninstall-nobase_dist_pkgdataDATA
|
||||
|
||||
uninstall-man: uninstall-man1
|
||||
|
||||
|
@ -1022,17 +1030,18 @@ uninstall-man: uninstall-man1
|
|||
distclean-tags distcleancheck distdir distuninstallcheck dvi \
|
||||
dvi-am html html-am info info-am install install-am \
|
||||
install-binSCRIPTS install-data install-data-am \
|
||||
install-dist_confDATA install-dist_docDATA \
|
||||
install-dist_pkgdataDATA install-dvi install-dvi-am \
|
||||
install-exec install-exec-am install-html install-html-am \
|
||||
install-info install-info-am install-man install-man1 \
|
||||
install-dist_confDATA install-dvi install-dvi-am install-exec \
|
||||
install-exec-am install-html install-html-am install-info \
|
||||
install-info-am install-man install-man1 \
|
||||
install-nobase_dist_docDATA install-nobase_dist_pkgdataDATA \
|
||||
install-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
installdirs-am maintainer-clean maintainer-clean-generic \
|
||||
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
|
||||
tags-am uninstall uninstall-am uninstall-binSCRIPTS \
|
||||
uninstall-dist_confDATA uninstall-dist_docDATA \
|
||||
uninstall-dist_pkgdataDATA uninstall-man uninstall-man1
|
||||
uninstall-dist_confDATA uninstall-man uninstall-man1 \
|
||||
uninstall-nobase_dist_docDATA \
|
||||
uninstall-nobase_dist_pkgdataDATA
|
||||
|
||||
.PRECIOUS: Makefile
|
||||
|
||||
|
|
144
install-sh
144
install-sh
|
@ -1,7 +1,7 @@
|
|||
#!/bin/sh
|
||||
# install - install a program, script, or datafile
|
||||
|
||||
scriptversion=2018-03-11.20; # UTC
|
||||
scriptversion=2020-11-14.01; # UTC
|
||||
|
||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||
|
@ -69,6 +69,11 @@ posix_mkdir=
|
|||
# Desired mode of installed file.
|
||||
mode=0755
|
||||
|
||||
# Create dirs (including intermediate dirs) using mode 755.
|
||||
# This is like GNU 'install' as of coreutils 8.32 (2020).
|
||||
mkdir_umask=22
|
||||
|
||||
backupsuffix=
|
||||
chgrpcmd=
|
||||
chmodcmd=$chmodprog
|
||||
chowncmd=
|
||||
|
@ -99,18 +104,28 @@ Options:
|
|||
--version display version info and exit.
|
||||
|
||||
-c (ignored)
|
||||
-C install only if different (preserve the last data modification time)
|
||||
-C install only if different (preserve data modification time)
|
||||
-d create directories instead of installing files.
|
||||
-g GROUP $chgrpprog installed files to GROUP.
|
||||
-m MODE $chmodprog installed files to MODE.
|
||||
-o USER $chownprog installed files to USER.
|
||||
-p pass -p to $cpprog.
|
||||
-s $stripprog installed files.
|
||||
-S SUFFIX attempt to back up existing files, with suffix SUFFIX.
|
||||
-t DIRECTORY install into DIRECTORY.
|
||||
-T report an error if DSTFILE is a directory.
|
||||
|
||||
Environment variables override the default commands:
|
||||
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
|
||||
RMPROG STRIPPROG
|
||||
|
||||
By default, rm is invoked with -f; when overridden with RMPROG,
|
||||
it's up to you to specify -f if you want it.
|
||||
|
||||
If -S is not specified, no backups are attempted.
|
||||
|
||||
Email bug reports to bug-automake@gnu.org.
|
||||
Automake home page: https://www.gnu.org/software/automake/
|
||||
"
|
||||
|
||||
while test $# -ne 0; do
|
||||
|
@ -137,8 +152,13 @@ while test $# -ne 0; do
|
|||
-o) chowncmd="$chownprog $2"
|
||||
shift;;
|
||||
|
||||
-p) cpprog="$cpprog -p";;
|
||||
|
||||
-s) stripcmd=$stripprog;;
|
||||
|
||||
-S) backupsuffix="$2"
|
||||
shift;;
|
||||
|
||||
-t)
|
||||
is_target_a_directory=always
|
||||
dst_arg=$2
|
||||
|
@ -255,6 +275,10 @@ do
|
|||
dstdir=$dst
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
# Don't chown directories that already exist.
|
||||
if test $dstdir_status = 0; then
|
||||
chowncmd=""
|
||||
fi
|
||||
else
|
||||
|
||||
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
|
||||
|
@ -301,22 +325,6 @@ do
|
|||
if test $dstdir_status != 0; then
|
||||
case $posix_mkdir in
|
||||
'')
|
||||
# Create intermediate dirs using mode 755 as modified by the umask.
|
||||
# This is like FreeBSD 'install' as of 1997-10-28.
|
||||
umask=`umask`
|
||||
case $stripcmd.$umask in
|
||||
# Optimize common cases.
|
||||
*[2367][2367]) mkdir_umask=$umask;;
|
||||
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
|
||||
|
||||
*[0-7])
|
||||
mkdir_umask=`expr $umask + 22 \
|
||||
- $umask % 100 % 40 + $umask % 20 \
|
||||
- $umask % 10 % 4 + $umask % 2
|
||||
`;;
|
||||
*) mkdir_umask=$umask,go-w;;
|
||||
esac
|
||||
|
||||
# With -d, create the new directory with the user-specified mode.
|
||||
# Otherwise, rely on $mkdir_umask.
|
||||
if test -n "$dir_arg"; then
|
||||
|
@ -326,52 +334,49 @@ do
|
|||
fi
|
||||
|
||||
posix_mkdir=false
|
||||
case $umask in
|
||||
*[123567][0-7][0-7])
|
||||
# POSIX mkdir -p sets u+wx bits regardless of umask, which
|
||||
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
|
||||
;;
|
||||
*)
|
||||
# Note that $RANDOM variable is not portable (e.g. dash); Use it
|
||||
# here however when possible just to lower collision chance.
|
||||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||
# The $RANDOM variable is not portable (e.g., dash). Use it
|
||||
# here however when possible just to lower collision chance.
|
||||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||
|
||||
trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
|
||||
trap '
|
||||
ret=$?
|
||||
rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null
|
||||
exit $ret
|
||||
' 0
|
||||
|
||||
# Because "mkdir -p" follows existing symlinks and we likely work
|
||||
# directly in world-writeable /tmp, make sure that the '$tmpdir'
|
||||
# directory is successfully created first before we actually test
|
||||
# 'mkdir -p' feature.
|
||||
if (umask $mkdir_umask &&
|
||||
$mkdirprog $mkdir_mode "$tmpdir" &&
|
||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
|
||||
then
|
||||
if test -z "$dir_arg" || {
|
||||
# Check for POSIX incompatibilities with -m.
|
||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||
# other-writable bit of parent directory when it shouldn't.
|
||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||
test_tmpdir="$tmpdir/a"
|
||||
ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
|
||||
case $ls_ld_tmpdir in
|
||||
d????-?r-*) different_mode=700;;
|
||||
d????-?--*) different_mode=755;;
|
||||
*) false;;
|
||||
esac &&
|
||||
$mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
|
||||
ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
|
||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||
}
|
||||
}
|
||||
then posix_mkdir=:
|
||||
fi
|
||||
rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
|
||||
else
|
||||
# Remove any dirs left behind by ancient mkdir implementations.
|
||||
rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
|
||||
fi
|
||||
trap '' 0;;
|
||||
esac;;
|
||||
# Because "mkdir -p" follows existing symlinks and we likely work
|
||||
# directly in world-writeable /tmp, make sure that the '$tmpdir'
|
||||
# directory is successfully created first before we actually test
|
||||
# 'mkdir -p'.
|
||||
if (umask $mkdir_umask &&
|
||||
$mkdirprog $mkdir_mode "$tmpdir" &&
|
||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
|
||||
then
|
||||
if test -z "$dir_arg" || {
|
||||
# Check for POSIX incompatibilities with -m.
|
||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||
# other-writable bit of parent directory when it shouldn't.
|
||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||
test_tmpdir="$tmpdir/a"
|
||||
ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
|
||||
case $ls_ld_tmpdir in
|
||||
d????-?r-*) different_mode=700;;
|
||||
d????-?--*) different_mode=755;;
|
||||
*) false;;
|
||||
esac &&
|
||||
$mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
|
||||
ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
|
||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||
}
|
||||
}
|
||||
then posix_mkdir=:
|
||||
fi
|
||||
rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
|
||||
else
|
||||
# Remove any dirs left behind by ancient mkdir implementations.
|
||||
rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
|
||||
fi
|
||||
trap '' 0;;
|
||||
esac
|
||||
|
||||
if
|
||||
|
@ -382,7 +387,7 @@ do
|
|||
then :
|
||||
else
|
||||
|
||||
# The umask is ridiculous, or mkdir does not conform to POSIX,
|
||||
# mkdir does not conform to POSIX,
|
||||
# or it failed possibly due to a race condition. Create the
|
||||
# directory the slow way, step by step, checking for races as we go.
|
||||
|
||||
|
@ -411,7 +416,7 @@ do
|
|||
prefixes=
|
||||
else
|
||||
if $posix_mkdir; then
|
||||
(umask=$mkdir_umask &&
|
||||
(umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||
# Don't fail if two instances are running concurrently.
|
||||
test -d "$prefix" || exit 1
|
||||
|
@ -488,6 +493,13 @@ do
|
|||
then
|
||||
rm -f "$dsttmp"
|
||||
else
|
||||
# If $backupsuffix is set, and the file being installed
|
||||
# already exists, attempt a backup. Don't worry if it fails,
|
||||
# e.g., if mv doesn't support -f.
|
||||
if test -n "$backupsuffix" && test -f "$dst"; then
|
||||
$doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null
|
||||
fi
|
||||
|
||||
# Rename the file to the real destination.
|
||||
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
|
||||
|
||||
|
@ -502,9 +514,9 @@ do
|
|||
# file should still install successfully.
|
||||
{
|
||||
test ! -f "$dst" ||
|
||||
$doit $rmcmd -f "$dst" 2>/dev/null ||
|
||||
$doit $rmcmd "$dst" 2>/dev/null ||
|
||||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
||||
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
|
||||
{ $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
|
||||
} ||
|
||||
{ echo "$0: cannot unlink or rename $dst" >&2
|
||||
(exit 1); exit 1
|
||||
|
|
Loading…
Reference in New Issue