mirror of
https://github.com/ckolivas/lrzip.git
synced 2025-12-06 07:12:00 +01:00
Merge branch 'master' into liblrzip
Conflicts: lrzip.c
This commit is contained in:
commit
18105bbf7c
1
AUTHORS
1
AUTHORS
|
|
@ -20,3 +20,4 @@ Michael Blumenkrantz for updated autotools
|
||||||
Serge Belyshev for encryption help and code
|
Serge Belyshev for encryption help and code
|
||||||
Ulrich Drepper for MD5 implementation
|
Ulrich Drepper for MD5 implementation
|
||||||
PolarSSL authors for sha512 + aes128 implementation
|
PolarSSL authors for sha512 + aes128 implementation
|
||||||
|
Fernando Auil for lrzip completion
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,13 @@
|
||||||
lrzip ChangeLog
|
lrzip ChangeLog
|
||||||
|
SEPTEMBER 2011, version 0.607 Con Kolivas
|
||||||
|
* Updated lzma library to version 920.
|
||||||
|
* Fixed a rare unable-to-decompress corner case.
|
||||||
|
* Added lrzip completion script.
|
||||||
|
* Updated makefile to more portable posix version.
|
||||||
|
* Hopefully fixed compilation on FreeBSD not supporting memopen.
|
||||||
|
* Added lots more debugging information about offsets in max verbose mode.
|
||||||
|
* Removed error and warning messages that are spammy or harmless.
|
||||||
|
|
||||||
MAY 2011, version 0.606 Con Kolivas
|
MAY 2011, version 0.606 Con Kolivas
|
||||||
* lrzuntar broke as lrzip doesn't automatically use stdout now, so use lrzcat
|
* lrzuntar broke as lrzip doesn't automatically use stdout now, so use lrzcat
|
||||||
in the lrztar script instead.
|
in the lrztar script instead.
|
||||||
|
|
|
||||||
|
|
@ -92,8 +92,12 @@ EXTRA_DIST = \
|
||||||
description-pak \
|
description-pak \
|
||||||
autogen.sh \
|
autogen.sh \
|
||||||
INSTALL \
|
INSTALL \
|
||||||
|
lrzip.completion \
|
||||||
$(dist_doc_DATA)
|
$(dist_doc_DATA)
|
||||||
|
|
||||||
|
install-data-hook:
|
||||||
|
test -d /etc/bash_completion.d && @INSTALL_DATA@ lrzip.completion /etc/bash_completion.d/lrzip
|
||||||
|
|
||||||
install-exec-hook:
|
install-exec-hook:
|
||||||
$(LN_S) -f lrzip$(EXEEXT) $(DESTDIR)@bindir@/lrunzip$(EXEEXT)
|
$(LN_S) -f lrzip$(EXEEXT) $(DESTDIR)@bindir@/lrunzip$(EXEEXT)
|
||||||
$(LN_S) -f lrzip$(EXEEXT) $(DESTDIR)@bindir@/lrzcat$(EXEEXT)
|
$(LN_S) -f lrzip$(EXEEXT) $(DESTDIR)@bindir@/lrzcat$(EXEEXT)
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,12 @@
|
||||||
|
lrzip-0.607
|
||||||
|
|
||||||
|
A rare case of not being able to decompress archives was fixed.
|
||||||
|
The lzma library was updated to version 920.
|
||||||
|
A bash completion script for lrzip was added.
|
||||||
|
More debugging info was added in maximum verbose mode.
|
||||||
|
Less messages occur without verbose mode.
|
||||||
|
FreeBSD and posix compilation fixes were committed.
|
||||||
|
|
||||||
lrzip-0.606
|
lrzip-0.606
|
||||||
|
|
||||||
lrzuntar, which broke last version leaving behind an untarred .tar file, is
|
lrzuntar, which broke last version leaving behind an untarred .tar file, is
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
|
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
|
||||||
m4_define([v_maj], [0])
|
m4_define([v_maj], [0])
|
||||||
m4_define([v_min], [6])
|
m4_define([v_min], [6])
|
||||||
m4_define([v_mic], [06])
|
m4_define([v_mic], [07])
|
||||||
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
|
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
|
||||||
m4_define([v_v], m4_join([], v_min, v_mic))
|
m4_define([v_v], m4_join([], v_min, v_mic))
|
||||||
m4_define([v_ver], [v_maj.v_v])
|
m4_define([v_ver], [v_maj.v_v])
|
||||||
|
|
|
||||||
5
lrzip.c
5
lrzip.c
|
|
@ -271,12 +271,11 @@ bool preserve_perms(rzip_control *control, int fd_in, int fd_out)
|
||||||
if (unlikely(fstat(fd_in, &st)))
|
if (unlikely(fstat(fd_in, &st)))
|
||||||
fatal_return(("Failed to fstat input file\n"), false);
|
fatal_return(("Failed to fstat input file\n"), false);
|
||||||
if (unlikely(fchmod(fd_out, (st.st_mode & 0666))))
|
if (unlikely(fchmod(fd_out, (st.st_mode & 0666))))
|
||||||
print_err("Warning, unable to set permissions on %s\n", control->outfile);
|
print_verbose("Warning, unable to set permissions on %s\n", control->outfile);
|
||||||
|
|
||||||
/* chown fail is not fatal_return(( */
|
/* chown fail is not fatal_return(( */
|
||||||
if (unlikely(fchown(fd_out, st.st_uid, st.st_gid)))
|
if (unlikely(fchown(fd_out, st.st_uid, st.st_gid)))
|
||||||
print_err("Warning, unable to set owner on %s\n", control->outfile);
|
print_verbose("Warning, unable to set owner on %s\n", control->outfile);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Open a temporary outputfile to emulate stdout */
|
/* Open a temporary outputfile to emulate stdout */
|
||||||
|
|
|
||||||
119
lrzip.completion
Normal file
119
lrzip.completion
Normal file
|
|
@ -0,0 +1,119 @@
|
||||||
|
#-*- mode: shell-script;-*-
|
||||||
|
# Inputs:
|
||||||
|
# $1 -- name of the command whose arguments are being completed
|
||||||
|
# $2 -- word being completed
|
||||||
|
# $3 -- word preceding the word being completed
|
||||||
|
# $COMP_LINE -- current command line
|
||||||
|
# $COMP_PONT -- cursor position
|
||||||
|
# $COMP_WORDS -- array containing individual words in the current
|
||||||
|
# command line
|
||||||
|
# $COMP_CWORD -- index into ${COMP_WORDS} of the word containing the
|
||||||
|
# current cursor position
|
||||||
|
# Output:
|
||||||
|
# COMPREPLY array variable contains possible completions
|
||||||
|
#
|
||||||
|
# Copyright (C) 2011 Fernando Auil <troesmix@gmail.com>
|
||||||
|
# Author: Fernando Auil <troesmix@gmail.com>
|
||||||
|
# Last revision: 25Jun2011
|
||||||
|
|
||||||
|
have lrzip &&
|
||||||
|
_lrzip()
|
||||||
|
{
|
||||||
|
local cpu_count win_size
|
||||||
|
local general_opts output_opts compress_opts level_opts options special special2
|
||||||
|
|
||||||
|
# Get the CPU count.
|
||||||
|
cpu_count=$(grep -c ^processor /proc/cpuinfo)
|
||||||
|
|
||||||
|
# This is aproximately the heuristical window size (in MB) for the
|
||||||
|
# non-STDIN case (which is more conservative?).
|
||||||
|
win_size=$(awk '/MemTotal/{print$2}' /proc/meminfo)
|
||||||
|
win_size=$((win_size >> 17))
|
||||||
|
|
||||||
|
general_opts='-c -d -e -h -? -H -i -q -t -v -vv -V'
|
||||||
|
output_opts='-D -f -k -o -O -S'
|
||||||
|
compress_opts='-b -g -l -n -z'
|
||||||
|
level_opts='-L -N -p -T -U -w'
|
||||||
|
|
||||||
|
COMPREPLY=()
|
||||||
|
cur=${COMP_WORDS[COMP_CWORD]}
|
||||||
|
prev=${COMP_WORDS[COMP_CWORD-1]}
|
||||||
|
|
||||||
|
for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do
|
||||||
|
if [[ ${COMP_WORDS[i]} == @(-b|-g|-l|-n|-z) ]]; then
|
||||||
|
special=${COMP_WORDS[i]}
|
||||||
|
elif [[ ${COMP_WORDS[i]} == @(-U) ]]; then
|
||||||
|
special2=${COMP_WORDS[i]}
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -n "$special" ]; then
|
||||||
|
unset compress_opts
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$special2" ]; then
|
||||||
|
level_opts='-L -N -p -T -U'
|
||||||
|
fi
|
||||||
|
|
||||||
|
options="$general_opts $output_opts $level_opts $compress_opts"
|
||||||
|
|
||||||
|
case "$prev" in
|
||||||
|
|
||||||
|
-L)
|
||||||
|
COMPREPLY=( $(compgen -W "$(seq 9)" -- $cur) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
-N)
|
||||||
|
COMPREPLY=( $(compgen -W "$(seq -20 19)" -- $cur) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
-S)
|
||||||
|
COMPREPLY=( $(compgen -W ".lrz" -- $cur) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
-p)
|
||||||
|
COMPREPLY=( $(compgen -W "$cpu_count" -- $cur) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
-w)
|
||||||
|
COMPREPLY=( $(compgen -W "$win_size" -- $cur) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
# Dirnames options.
|
||||||
|
-O)
|
||||||
|
_filedir -d
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
# Filenames options.
|
||||||
|
-o)
|
||||||
|
#_longopt $filenames
|
||||||
|
_filedir
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
# Exit options.
|
||||||
|
-h|-\?|-V)
|
||||||
|
COMPREPLY=()
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [[ "$cur" = -* ]]; then
|
||||||
|
COMPREPLY=( $(compgen -W "$options" -- $cur) )
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
_filedir
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
[ "$have" ] && complete -F _lrzip $filenames lrzip
|
||||||
|
|
||||||
|
:
|
||||||
2
stream.c
2
stream.c
|
|
@ -381,7 +381,7 @@ static int lzma_compress_buf(rzip_control *control, struct compress_thread *cthr
|
||||||
/* only 7 levels with lzma, scale them */
|
/* only 7 levels with lzma, scale them */
|
||||||
lzma_level = control->compression_level * 7 / 9 ? : 1;
|
lzma_level = control->compression_level * 7 / 9 ? : 1;
|
||||||
|
|
||||||
print_verbose("Starting lzma back end compression thread...\n");
|
print_maxverbose("Starting lzma back end compression thread...\n");
|
||||||
retry:
|
retry:
|
||||||
dlen = cthread->s_len;
|
dlen = cthread->s_len;
|
||||||
c_buf = malloc(dlen);
|
c_buf = malloc(dlen);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue