Skip to content

Cannot create zip archives with 7-Zip 23.01 installed #502

@NinjaCowboy

Description

@NinjaCowboy

Expected behaviour

Engrampa should be able to create zip files from Caja's context menu or the command-line.

Actual behaviour

Attempting to do so results in an error popup saying "An error occurred while adding files to the archive.".

Steps to reproduce the behaviour

  1. Install engrampa and 7-Zip 23.01 (other versions of 7-Zip may be affected, but this is the one I have installed).
  2. Create a simple text file called hello.txt
  3. Open a terminal in the same directory as hello.txt and run the following command: engrampa -a test.zip hello.txt
  4. Engrampa will be unable to create the archive and show an error.

MATE general version

1.26.1

Package version

engrampa-1.26.1_1

Linux Distribution

Void Linux

Link to bugreport of your Distribution (requirement)

Additional Information

This appears to be caused by engrampa passing an invalid -l switch to 7z. Running strace (strace -f -e trace=execve -s 200 engrampa -a test.zip hello.txt) reveals that engrampa passes the -l switch to 7z, which doesn't seem to be available (at least not in this version).

[pid  5736] execve("/usr/bin/7z", ["7z", "a", "-tzip", "-mem=AES128", "-bd", "-y", "-l", "-mx=7", "--", "/home/ninja/.fr-Y9V8HS/test.zip", "hello.txt"], 0x55e008297560 /* 45 vars */) = 0
[pid  5736] +++ exited with 7 +++

Running /usr/bin/7z a -tzip -mem=AES128 -bd -y -l -mx=7 -- /home/ninja/test.zip hello.txt gives an error.

Command Line Error:
Unknown switch:
-l

The output of 7z --help on my system does not mention the -l switch at all, but it is mentioned in some online manpages.

7-Zip (z) 23.01 (x64) : Copyright (c) 1999-2023 Igor Pavlov : 2023-06-20
 64-bit locale=en_US.UTF-8 Threads:4 OPEN_MAX:1024

Usage: 7zz <command> [<switches>...] <archive_name> [<file_names>...] [@listfile]

<Commands>
  a : Add files to archive
  b : Benchmark
  d : Delete files from archive
  e : Extract files from archive (without using directory names)
  h : Calculate hash values for files
  i : Show information about supported formats
  l : List contents of archive
  rn : Rename files in archive
  t : Test integrity of archive
  u : Update files to archive
  x : eXtract files with full paths

<Switches>
  -- : Stop switches and @listfile parsing
  -ai[r[-|0]]{@listfile|!wildcard} : Include archives
  -ax[r[-|0]]{@listfile|!wildcard} : eXclude archives
  -ao{a|s|t|u} : set Overwrite mode
  -an : disable archive_name field
  -bb[0-3] : set output log level
  -bd : disable progress indicator
  -bs{o|e|p}{0|1|2} : set output stream for output/error/progress line
  -bt : show execution time statistics
  -i[r[-|0]]{@listfile|!wildcard} : Include filenames
  -m{Parameters} : set compression Method
    -mmt[N] : set number of CPU threads
    -mx[N] : set compression level: -mx1 (fastest) ... -mx9 (ultra)
  -o{Directory} : set Output directory
  -p{Password} : set Password
  -r[-|0] : Recurse subdirectories for name search
  -sa{a|e|s} : set Archive name mode
  -scc{UTF-8|WIN|DOS} : set charset for console input/output
  -scs{UTF-8|UTF-16LE|UTF-16BE|WIN|DOS|{id}} : set charset for list files
  -scrc[CRC32|CRC64|SHA1|SHA256|*] : set hash function for x, e, h commands
  -sdel : delete files after compression
  -seml[.] : send archive by email
  -sfx[{name}] : Create SFX archive
  -si[{name}] : read data from stdin
  -slp : set Large Pages mode
  -slt : show technical information for l (List) command
  -snh : store hard links as links
  -snl : store symbolic links as links
  -sni : store NT security information
  -sns[-] : store NTFS alternate streams
  -so : write data to stdout
  -spd : disable wildcard matching for file names
  -spe : eliminate duplication of root folder for extract command
  -spf[2] : use fully qualified file paths
  -ssc[-] : set sensitive case mode
  -sse : stop archive creating, if it can't open some input file
  -ssp : do not change Last Access Time of source files while archiving
  -ssw : compress shared files
  -stl : set archive timestamp from the most recently modified file
  -stm{HexMask} : set CPU thread affinity mask (hexadecimal number)
  -stx{Type} : exclude archive type
  -t{Type} : Set type of archive
  -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName] : Update options
  -v{Size}[b|k|m|g] : Create volumes
  -w[{path}] : assign Work directory. Empty path means a temporary directory
  -x[r[-|0]]{@listfile|!wildcard} : eXclude filenames
  -y : assume Yes on all queries

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions