Compare commits
10 Commits
d0f5174c1d
...
789ddfada8
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
789ddfada8 | ||
|
|
7b07aa2fea | ||
|
|
1459930597 | ||
|
|
aa1a42882f | ||
|
|
c2752d2dfc | ||
|
|
520028ec30 | ||
|
|
56aa5cf948 | ||
|
|
9b94836ce4 | ||
|
|
eea97a51d4 | ||
|
|
0c9ff53b75 |
BIN
0.5.4.15.tar.gz
BIN
0.5.4.15.tar.gz
Binary file not shown.
BIN
0.5.4.20.tar.gz
Normal file
BIN
0.5.4.20.tar.gz
Normal file
Binary file not shown.
36
README.en.md
36
README.en.md
@ -1,36 +0,0 @@
|
|||||||
# xarchiver
|
|
||||||
|
|
||||||
#### Description
|
|
||||||
Archive manager for Xfce
|
|
||||||
|
|
||||||
#### Software Architecture
|
|
||||||
Software architecture description
|
|
||||||
|
|
||||||
#### Installation
|
|
||||||
|
|
||||||
1. xxxx
|
|
||||||
2. xxxx
|
|
||||||
3. xxxx
|
|
||||||
|
|
||||||
#### Instructions
|
|
||||||
|
|
||||||
1. xxxx
|
|
||||||
2. xxxx
|
|
||||||
3. xxxx
|
|
||||||
|
|
||||||
#### Contribution
|
|
||||||
|
|
||||||
1. Fork the repository
|
|
||||||
2. Create Feat_xxx branch
|
|
||||||
3. Commit your code
|
|
||||||
4. Create Pull Request
|
|
||||||
|
|
||||||
|
|
||||||
#### Gitee Feature
|
|
||||||
|
|
||||||
1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
|
|
||||||
2. Gitee blog [blog.gitee.com](https://blog.gitee.com)
|
|
||||||
3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
|
|
||||||
4. The most valuable open source project [GVP](https://gitee.com/gvp)
|
|
||||||
5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
|
|
||||||
6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
|
|
||||||
37
README.md
37
README.md
@ -1,37 +0,0 @@
|
|||||||
# xarchiver
|
|
||||||
|
|
||||||
#### 介绍
|
|
||||||
Archive manager for Xfce
|
|
||||||
|
|
||||||
#### 软件架构
|
|
||||||
软件架构说明
|
|
||||||
|
|
||||||
|
|
||||||
#### 安装教程
|
|
||||||
|
|
||||||
1. xxxx
|
|
||||||
2. xxxx
|
|
||||||
3. xxxx
|
|
||||||
|
|
||||||
#### 使用说明
|
|
||||||
|
|
||||||
1. xxxx
|
|
||||||
2. xxxx
|
|
||||||
3. xxxx
|
|
||||||
|
|
||||||
#### 参与贡献
|
|
||||||
|
|
||||||
1. Fork 本仓库
|
|
||||||
2. 新建 Feat_xxx 分支
|
|
||||||
3. 提交代码
|
|
||||||
4. 新建 Pull Request
|
|
||||||
|
|
||||||
|
|
||||||
#### 码云特技
|
|
||||||
|
|
||||||
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
|
|
||||||
2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com)
|
|
||||||
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目
|
|
||||||
4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目
|
|
||||||
5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
|
|
||||||
6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
|
|
||||||
@ -1,25 +0,0 @@
|
|||||||
From 080c9316350bc3a72efe3423e20a31a628e89524 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Ingo=20Br=C3=BCckl?= <ib@wupperonline.de>
|
|
||||||
Date: Tue, 2 Jun 2020 13:06:46 +0200
|
|
||||||
Subject: [PATCH] Handle multi-volume 7zip archives
|
|
||||||
|
|
||||||
Replace a sloppy data section detection with a more robust one.
|
|
||||||
|
|
||||||
This fixes github issue #92, reported by apoleon.
|
|
||||||
---
|
|
||||||
src/7zip.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/7zip.c b/src/7zip.c
|
|
||||||
index 091a19aa..1d5f2e59 100644
|
|
||||||
--- a/src/7zip.c
|
|
||||||
+++ b/src/7zip.c
|
|
||||||
@@ -213,7 +213,7 @@ static void xa_7zip_parse_output (gchar *line, XArchive *archive)
|
|
||||||
archive->has_password = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if ((line[0] == '-') && line[3])
|
|
||||||
+ if (strncmp(line, "-----", 5) == 0)
|
|
||||||
{
|
|
||||||
data_line = TRUE;
|
|
||||||
return;
|
|
||||||
@ -1,35 +0,0 @@
|
|||||||
From a357525312112491b2cefc144a6d5853db9f1a4e Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Ingo=20Br=C3=BCckl?= <ib@wupperonline.de>
|
|
||||||
Date: Wed, 17 Jun 2020 13:34:06 +0200
|
|
||||||
Subject: [PATCH] Add xa_7zip_seek_position()
|
|
||||||
|
|
||||||
This will allow going through volumes later on.
|
|
||||||
---
|
|
||||||
src/7zip.c | 7 ++++++-
|
|
||||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/7zip.c b/src/7zip.c
|
|
||||||
index 1d5f2e59..54ceb956 100644
|
|
||||||
--- a/src/7zip.c
|
|
||||||
+++ b/src/7zip.c
|
|
||||||
@@ -29,6 +29,11 @@
|
|
||||||
|
|
||||||
static gboolean data_line, encrypted, last_line;
|
|
||||||
|
|
||||||
+static void xa_7zip_seek_position (GIOChannel *file, gint64 offset, GSeekType type)
|
|
||||||
+{
|
|
||||||
+ g_io_channel_seek_position(file, offset, type, NULL);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static void xa_7zip_uint64_skip (GIOChannel *file)
|
|
||||||
{
|
|
||||||
gchar first, byte;
|
|
||||||
@@ -85,7 +90,7 @@ gboolean is7zip_mhe (const gchar *filename)
|
|
||||||
}
|
|
||||||
|
|
||||||
/* skip next header size and CRC32 */
|
|
||||||
- g_io_channel_seek_position(file, 12 + offset, G_SEEK_CUR, NULL);
|
|
||||||
+ xa_7zip_seek_position(file, 12 + offset, G_SEEK_CUR);
|
|
||||||
|
|
||||||
/* header info */
|
|
||||||
g_io_channel_read_chars(file, &byte, sizeof(byte), NULL, NULL);
|
|
||||||
@ -1,112 +0,0 @@
|
|||||||
From 62249180ee80494fc74ea3731af9bd52a78d1e02 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Ingo=20Br=C3=BCckl?= <ib@wupperonline.de>
|
|
||||||
Date: Wed, 17 Jun 2020 21:40:59 +0200
|
|
||||||
Subject: [PATCH] Handle header encrypted multi-volume 7zip archives
|
|
||||||
|
|
||||||
Keep skipping volumes until the offset is reached and proceed
|
|
||||||
with is7zip_mhe() to detect header encryption as before.
|
|
||||||
|
|
||||||
This fixes github issue #92, reported by Ski-lleR.
|
|
||||||
---
|
|
||||||
src/7zip.c | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++---
|
|
||||||
1 file changed, 63 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/7zip.c b/src/7zip.c
|
|
||||||
index 54ceb956..71bba0cd 100644
|
|
||||||
--- a/src/7zip.c
|
|
||||||
+++ b/src/7zip.c
|
|
||||||
@@ -17,6 +17,7 @@
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
+#include <glib/gstdio.h>
|
|
||||||
#include "7zip.h"
|
|
||||||
#include "gzip_et_al.h"
|
|
||||||
#include "interface.h"
|
|
||||||
@@ -29,9 +30,67 @@
|
|
||||||
|
|
||||||
static gboolean data_line, encrypted, last_line;
|
|
||||||
|
|
||||||
-static void xa_7zip_seek_position (GIOChannel *file, gint64 offset, GSeekType type)
|
|
||||||
+static void xa_7zip_seek_position (const gchar *filename, GIOChannel **file, gint64 offset, GSeekType type)
|
|
||||||
{
|
|
||||||
- g_io_channel_seek_position(file, offset, type, NULL);
|
|
||||||
+ gchar byte;
|
|
||||||
+
|
|
||||||
+ g_io_channel_seek_position(*file, offset, type, NULL);
|
|
||||||
+
|
|
||||||
+ /* check whether it's a volume. i.e. whether offset is beyond the end of the file */
|
|
||||||
+ if (g_io_channel_read_chars(*file, &byte, sizeof(byte), NULL, NULL) == G_IO_STATUS_NORMAL)
|
|
||||||
+ /* doesn't seem so - back to requested position */
|
|
||||||
+ g_io_channel_seek_position(*file, -(gint64) sizeof(byte), G_SEEK_CUR, NULL);
|
|
||||||
+ else /* find the volume the offset is pointing to */
|
|
||||||
+ {
|
|
||||||
+ guint64 position, volsizes = 0;
|
|
||||||
+ gchar *fvname;
|
|
||||||
+ size_t ext;
|
|
||||||
+ guint i;
|
|
||||||
+ GStatBuf st;
|
|
||||||
+ GIOChannel *fnew;
|
|
||||||
+
|
|
||||||
+ if (!g_str_has_suffix(filename, ".001"))
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ position = 12 + 8 + (guint64) offset; // absolute position
|
|
||||||
+
|
|
||||||
+ fvname = g_strdup(filename);
|
|
||||||
+ ext = strlen(fvname) - 4;
|
|
||||||
+
|
|
||||||
+ /* check volumes ... */
|
|
||||||
+ for (i = 1; i < 1000; i++)
|
|
||||||
+ {
|
|
||||||
+ fvname[ext] = 0;
|
|
||||||
+ sprintf(fvname, "%s.%03u", fvname, i);
|
|
||||||
+
|
|
||||||
+ if (!g_file_test(fvname, G_FILE_TEST_EXISTS) || (g_stat(fvname, &st) != 0))
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
+ volsizes += (guint64) st.st_size;
|
|
||||||
+
|
|
||||||
+ /* ... up to the one we're looking for */
|
|
||||||
+ if (volsizes > position)
|
|
||||||
+ {
|
|
||||||
+ fnew = g_io_channel_new_file(fvname, "r", NULL);
|
|
||||||
+
|
|
||||||
+ if (!fnew)
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
+ /* switch to volume */
|
|
||||||
+
|
|
||||||
+ g_io_channel_shutdown(*file, FALSE, NULL);
|
|
||||||
+
|
|
||||||
+ *file = fnew;
|
|
||||||
+
|
|
||||||
+ g_io_channel_set_encoding(*file, NULL, NULL);
|
|
||||||
+ g_io_channel_seek_position(*file, position - (volsizes - (guint64) st.st_size), G_SEEK_SET, NULL);
|
|
||||||
+
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ g_free(fvname);
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
static void xa_7zip_uint64_skip (GIOChannel *file)
|
|
||||||
@@ -78,6 +137,7 @@ gboolean is7zip_mhe (const gchar *filename)
|
|
||||||
if (file)
|
|
||||||
{
|
|
||||||
g_io_channel_set_encoding(file, NULL, NULL);
|
|
||||||
+ g_io_channel_set_buffered(file, FALSE);
|
|
||||||
|
|
||||||
/* skip signature, version and header CRC32 */
|
|
||||||
g_io_channel_seek_position(file, 12, G_SEEK_SET, NULL);
|
|
||||||
@@ -90,7 +150,7 @@ gboolean is7zip_mhe (const gchar *filename)
|
|
||||||
}
|
|
||||||
|
|
||||||
/* skip next header size and CRC32 */
|
|
||||||
- xa_7zip_seek_position(file, 12 + offset, G_SEEK_CUR);
|
|
||||||
+ xa_7zip_seek_position(filename, &file, 12 + offset, G_SEEK_CUR);
|
|
||||||
|
|
||||||
/* header info */
|
|
||||||
g_io_channel_read_chars(file, &byte, sizeof(byte), NULL, NULL);
|
|
||||||
@ -1,16 +1,12 @@
|
|||||||
Name: xarchiver
|
Name: xarchiver
|
||||||
Version: 0.5.4.15
|
Version: 0.5.4.20
|
||||||
Release: 1
|
Release: 1
|
||||||
Summary: Archive manager for Xfce
|
Summary: Archive manager for Xfce
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
#Group: Development/Libraries
|
|
||||||
URL: https://github.com/ib/xarchiver
|
URL: https://github.com/ib/xarchiver
|
||||||
Source0: https://github.com/ib/xarchiver/archive/%{version}.tar.gz
|
Source0: https://github.com/ib/xarchiver/archive/refs/tags/%{version}.tar.gz
|
||||||
Patch1: debian-bug-959914.patch
|
|
||||||
Patch2: debian-bug-959914_part2.patch
|
|
||||||
Patch3: debian-bug-959914_part3.patch
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
#BuildArch: noarch
|
|
||||||
BuildRequires: gtk2-devel, libxml2-devel, gettext, desktop-file-utils
|
BuildRequires: gtk2-devel, libxml2-devel, gettext, desktop-file-utils
|
||||||
BuildRequires: xfce4-dev-tools >= 4.3.90.2
|
BuildRequires: xfce4-dev-tools >= 4.3.90.2
|
||||||
BuildRequires: autoconf >= 2.69
|
BuildRequires: autoconf >= 2.69
|
||||||
@ -30,12 +26,10 @@ Xarchiver allows you to create archives and add, extract, and delete files
|
|||||||
from them. Password protected archives in the arj, 7z, rar, zip and lrzip
|
from them. Password protected archives in the arj, 7z, rar, zip and lrzip
|
||||||
formats are supported.
|
formats are supported.
|
||||||
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -p1
|
%autosetup
|
||||||
|
|
||||||
%build
|
%build
|
||||||
./autogen.sh
|
|
||||||
%configure
|
%configure
|
||||||
%make_build
|
%make_build
|
||||||
|
|
||||||
@ -60,5 +54,17 @@ rm %{buildroot}%{_docdir}/%{name}/{COPYING,ChangeLog,README}
|
|||||||
%{_mandir}/man1/%{name}.1*
|
%{_mandir}/man1/%{name}.1*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Jan 04 2023 misaka00251 <liuxin@iscas.ac.cn> - 0.5.4.20-1
|
||||||
|
- Update to 0.5.4.20
|
||||||
|
|
||||||
|
* Mon Jun 20 2022 zhanglin <lin.zhang@turbolinux.com.cn> - 0.5.4.18-1
|
||||||
|
- Update to 0.5.4.18
|
||||||
|
|
||||||
|
* Sat Feb 12 2022 zhanglin <lin.zhang@turbolinux.com.cn> - 0.5.4.17-2
|
||||||
|
- remove autogen.sh for rebuild
|
||||||
|
|
||||||
|
* Fri Jun 18 2021 zhanglin <lin.zhang@turbolinux.com.cn> - 0.5.4.17-1
|
||||||
|
- Update to 0.5.4.17
|
||||||
|
|
||||||
* Mon Jul 27 2020 Dillon Chen <dillon.chen@turbolinux.com.cn> - 0.5.4.15-1
|
* Mon Jul 27 2020 Dillon Chen <dillon.chen@turbolinux.com.cn> - 0.5.4.15-1
|
||||||
- Init package
|
- Init package
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
version_control: git
|
version_control: git
|
||||||
src_repo:
|
src_repo: https://github.com/ib/xarchiver.git
|
||||||
tag_prefix: "xarchiver-"
|
tag_prefix: "xarchiver-"
|
||||||
seperator: "."
|
seperator: "."
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user