Package: par2 Version: 0.6.11-1 Severity: normal Dear Maintainer,
Here is how to reproduce the problem: $ mkdir -p dir1/subdir $ echo My Precious >dir1/subdir/file $ par2create -R -r100 recovery dir1 [...] Done $ rm -rf dir1 # Whoops I lost my precious $ par2repair recovery.par2 [...] Target: "dir1/subdir/file" - missing. Scanning extra files: Repair is required. 1 file(s) are missing. You have 0 out of 3 data blocks available. You have 3 recovery blocks available. Repair is possible. 3 recovery blocks will be used to repair. Could not create: ./dir1/subdir/file I've checked this out and as far as I can tell DiskFile::Create() is getting called with './dir1/subdir/file' as the path and then calls mkdir('./dir1/subdir/', 0755) which fails. Obviously this mkdir() call would work much better if 'dir1' had been created first! So the fix is to modify the lines below in diskfile.cpp to create intermediate directories. if (! (stat(path.c_str(), &st) == 0 && S_ISDIR(st.st_mode))) { mkdir(path.c_str(), S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH); } And the workaround is to manually create intermediate directories before calling par2repair. -- System Information: Debian Release: 8.0 APT prefers testing APT policy: (990, 'testing'), (500, 'stable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 3.16.0-4-amd64 (SMP w/8 CPU cores) Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages par2 depends on: ii libc6 2.19-15 ii libgcc1 1:4.9.2-10 ii libstdc++6 4.9.2-10 par2 recommends no packages. par2 suggests no packages. -- no debconf information -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org