]> git.seodisparate.com - SimpleArchiver/log
SimpleArchiver
6 months agoUpdate Changelog.md
Stephen Seo [Mon, 21 Oct 2024 08:21:15 +0000 (17:21 +0900)]
Update Changelog.md

6 months agoImpl. safe-link checking for v1 file format
Stephen Seo [Mon, 21 Oct 2024 08:10:34 +0000 (17:10 +0900)]
Impl. safe-link checking for v1 file format

As mentioned in the previous commit, "safe links" is on by default,
meaning that any symlinks pointing to outside of archived files (or
invalid) will not be stored. To store such symlinks, "--no-safe-links"
must be specified.

This commit implements "safe links" for v1 of the file format.

6 months agoImpl. "safe links" by default for v0
Stephen Seo [Mon, 21 Oct 2024 07:55:39 +0000 (16:55 +0900)]
Impl. "safe links" by default for v0

By default, links that point to outside of archive (or possibly doesn't
point to anything) will be ignored. Use "--no-safe-links" to preserve
such symlinks.

Note this has only been implemented for v0 of the file format in this
commit, and not yet v1.

6 months agoVersion 1.3, update Changelog.md 1.3
Stephen Seo [Wed, 16 Oct 2024 04:56:37 +0000 (13:56 +0900)]
Version 1.3, update Changelog.md

6 months agoAvoid busy-wait by sleep 1ms on non-blocking io
Stephen Seo [Wed, 16 Oct 2024 04:54:29 +0000 (13:54 +0900)]
Avoid busy-wait by sleep 1ms on non-blocking io

6 months agoVersion 1.2 1.2
Stephen Seo [Fri, 11 Oct 2024 03:34:51 +0000 (12:34 +0900)]
Version 1.2

6 months agoUpdate Changelog.md
Stephen Seo [Thu, 10 Oct 2024 01:55:14 +0000 (10:55 +0900)]
Update Changelog.md

6 months agoHandle SIGINT (Ctrl+C)
Stephen Seo [Thu, 10 Oct 2024 01:54:28 +0000 (10:54 +0900)]
Handle SIGINT (Ctrl+C)

6 months agoUpdate Changelog.md, version 1.1 1.1
Stephen Seo [Tue, 8 Oct 2024 07:05:22 +0000 (16:05 +0900)]
Update Changelog.md, version 1.1

6 months agoUpdate Changelog.md
Stephen Seo [Tue, 8 Oct 2024 06:52:03 +0000 (15:52 +0900)]
Update Changelog.md

6 months agoUpdate Changelog.md
Stephen Seo [Tue, 8 Oct 2024 06:51:05 +0000 (15:51 +0900)]
Update Changelog.md

6 months agoUpdate README.md
Stephen Seo [Tue, 8 Oct 2024 06:49:51 +0000 (15:49 +0900)]
Update README.md

6 months agoFix failing unit tests
Stephen Seo [Tue, 8 Oct 2024 06:47:57 +0000 (15:47 +0900)]
Fix failing unit tests

6 months agoPre-sort files by default, setting to disable
Stephen Seo [Tue, 8 Oct 2024 06:45:25 +0000 (15:45 +0900)]
Pre-sort files by default, setting to disable

6 months agoAdd validation of files/symlinks count from files
Stephen Seo [Tue, 8 Oct 2024 06:31:40 +0000 (15:31 +0900)]
Add validation of files/symlinks count from files

6 months agoUpdate README.md
Stephen Seo [Tue, 8 Oct 2024 06:20:21 +0000 (15:20 +0900)]
Update README.md

6 months agoImpl. pre-sort files by size before put in chunks
Stephen Seo [Tue, 8 Oct 2024 06:12:44 +0000 (15:12 +0900)]
Impl. pre-sort files by size before put in chunks

6 months agoUpdate Changelog.md
Stephen Seo [Tue, 8 Oct 2024 05:47:32 +0000 (14:47 +0900)]
Update Changelog.md

6 months agoHandle SIGPIPE in v1 de/compress, minor fixes
Stephen Seo [Tue, 8 Oct 2024 05:46:56 +0000 (14:46 +0900)]
Handle SIGPIPE in v1 de/compress, minor fixes

6 months agoUpdate README.md
Stephen Seo [Tue, 8 Oct 2024 05:05:20 +0000 (14:05 +0900)]
Update README.md

6 months agoCleanup of example test files
Stephen Seo [Tue, 8 Oct 2024 05:04:36 +0000 (14:04 +0900)]
Cleanup of example test files

6 months agoUpdate README.md
Stephen Seo [Tue, 8 Oct 2024 04:31:26 +0000 (13:31 +0900)]
Update README.md

6 months agoAdd Changelog.md
Stephen Seo [Tue, 8 Oct 2024 04:23:52 +0000 (13:23 +0900)]
Add Changelog.md

6 months agoAdd action/workflow to build/release tags 1.0
Stephen Seo [Tue, 8 Oct 2024 03:56:05 +0000 (12:56 +0900)]
Add action/workflow to build/release tags

6 months agoMerge branch 'issue_18_improve_compression'
Stephen Seo [Tue, 8 Oct 2024 03:42:02 +0000 (12:42 +0900)]
Merge branch 'issue_18_improve_compression'

Resolves https://git.seodisparate.com/stephenseo/SimpleArchiver/issues/18

6 months agoUpdate README.md, usage text
Stephen Seo [Tue, 8 Oct 2024 01:55:24 +0000 (10:55 +0900)]
Update README.md, usage text

6 months agoMinor fix
Stephen Seo [Tue, 8 Oct 2024 01:39:21 +0000 (10:39 +0900)]
Minor fix

6 months agoBuffer size to 32KiB, fixes
Stephen Seo [Mon, 7 Oct 2024 06:16:05 +0000 (15:16 +0900)]
Buffer size to 32KiB, fixes

6 months agoMinor quality-of-life fixes
Stephen Seo [Mon, 7 Oct 2024 05:03:12 +0000 (14:03 +0900)]
Minor quality-of-life fixes

6 months agoFix errors de/compressing chunks
Stephen Seo [Mon, 7 Oct 2024 04:23:44 +0000 (13:23 +0900)]
Fix errors de/compressing chunks

6 months agoImpl. more robust compression
Stephen Seo [Mon, 7 Oct 2024 03:08:38 +0000 (12:08 +0900)]
Impl. more robust compression

6 months agoImpl. more robust decompression
Stephen Seo [Mon, 7 Oct 2024 02:23:10 +0000 (11:23 +0900)]
Impl. more robust decompression

6 months agoclang-format, ensure --no-abs-symlink works in v1
Stephen Seo [Fri, 4 Oct 2024 12:39:13 +0000 (21:39 +0900)]
clang-format, ensure --no-abs-symlink works in v1

6 months agoUpdate README.md
Stephen Seo [Fri, 4 Oct 2024 12:28:29 +0000 (21:28 +0900)]
Update README.md

6 months agoAdd filename validation for test/extracting
Stephen Seo [Fri, 4 Oct 2024 12:24:10 +0000 (21:24 +0900)]
Add filename validation for test/extracting

This should prevent creation of files/symlinks outside of
current-working-directory or user-set-cwd.

6 months agoFix release build compiler warnings
Stephen Seo [Fri, 4 Oct 2024 08:46:30 +0000 (17:46 +0900)]
Fix release build compiler warnings

6 months agoFix reordering of cleanup fns in archiver.c
Stephen Seo [Fri, 4 Oct 2024 08:35:12 +0000 (17:35 +0900)]
Fix reordering of cleanup fns in archiver.c

6 months agoReorder cleanup to proper location
Stephen Seo [Fri, 4 Oct 2024 08:32:14 +0000 (17:32 +0900)]
Reorder cleanup to proper location

6 months agoImpl. create archive with compression, fixes
Stephen Seo [Fri, 4 Oct 2024 08:20:01 +0000 (17:20 +0900)]
Impl. create archive with compression, fixes

6 months agoWIP Impl. archiving without compression
Stephen Seo [Fri, 4 Oct 2024 06:36:53 +0000 (15:36 +0900)]
WIP Impl. archiving without compression

TODO:
    archiving with compression

6 months agoUpdate file_format for v1
Stephen Seo [Fri, 4 Oct 2024 05:02:54 +0000 (14:02 +0900)]
Update file_format for v1

Size of bytes for files per chunk was changed from 2 bytes to 4 bytes.

6 months agoWIP Work on v1 create archive
Stephen Seo [Fri, 4 Oct 2024 03:27:46 +0000 (12:27 +0900)]
WIP Work on v1 create archive

Implemented file-format up to list of symlinks.

6 months agoRefactor function, add its declaration to header
Stephen Seo [Fri, 4 Oct 2024 02:19:57 +0000 (11:19 +0900)]
Refactor function, add its declaration to header

6 months agoRefactorings for v1 extract, other refactorings
Stephen Seo [Wed, 2 Oct 2024 06:10:22 +0000 (15:10 +0900)]
Refactorings for v1 extract, other refactorings

6 months agoSplit "rel-path-from-abs-paths" into function
Stephen Seo [Wed, 2 Oct 2024 04:15:30 +0000 (13:15 +0900)]
Split "rel-path-from-abs-paths" into function

6 months agoAdd support for writing multiple file formats
Stephen Seo [Wed, 2 Oct 2024 02:38:39 +0000 (11:38 +0900)]
Add support for writing multiple file formats

6 months agoTest/fix symlink test/extract in v1 file format
Stephen Seo [Mon, 30 Sep 2024 08:53:39 +0000 (17:53 +0900)]
Test/fix symlink test/extract in v1 file format

6 months agoFix v1 archive decompression
Stephen Seo [Mon, 30 Sep 2024 06:45:48 +0000 (15:45 +0900)]
Fix v1 archive decompression

Previous implementation sent too many bytes to decompressor if size was
less than 1024.

6 months agoRemove unnecessary printf used for testing
Stephen Seo [Mon, 30 Sep 2024 06:15:00 +0000 (15:15 +0900)]
Remove unnecessary printf used for testing

6 months agoImpl. extract with decompressor file format v1
Stephen Seo [Mon, 30 Sep 2024 05:54:01 +0000 (14:54 +0900)]
Impl. extract with decompressor file format v1

6 months agov1 extract skip non-specified args if exists
Stephen Seo [Mon, 30 Sep 2024 04:12:39 +0000 (13:12 +0900)]
v1 extract skip non-specified args if exists

6 months agoImpl. setting stored UID/GID if EUID 0
Stephen Seo [Fri, 27 Sep 2024 07:09:23 +0000 (16:09 +0900)]
Impl. setting stored UID/GID if EUID 0

6 months ago"Fix" Linux/Mac/Unix usage
Stephen Seo [Fri, 27 Sep 2024 06:46:54 +0000 (15:46 +0900)]
"Fix" Linux/Mac/Unix usage

6 months agoImpl. simple test/extract new file format (WIP)
Stephen Seo [Fri, 27 Sep 2024 06:40:11 +0000 (15:40 +0900)]
Impl. simple test/extract new file format (WIP)

TODO:
    Extract symlinks in new format (implemented but untested).
    Extract compressed files in new format.

6 months agoSplit up handling of archive file based on version
Stephen Seo [Fri, 27 Sep 2024 03:58:53 +0000 (12:58 +0900)]
Split up handling of archive file based on version

6 months agoFix typo
Stephen Seo [Tue, 24 Sep 2024 09:54:38 +0000 (18:54 +0900)]
Fix typo

6 months agoFix typo in file format specification version 1
Stephen Seo [Tue, 24 Sep 2024 09:48:15 +0000 (18:48 +0900)]
Fix typo in file format specification version 1

6 months agoCreate file format for format version 1
Stephen Seo [Tue, 24 Sep 2024 09:43:47 +0000 (18:43 +0900)]
Create file format for format version 1

This is in preparation of improving compression by concatenating files
together before compressing them to reduce the per-file overhead.

6 months agobackport: Fixes for v0-file-format extract fn
Stephen Seo [Wed, 2 Oct 2024 05:52:05 +0000 (14:52 +0900)]
backport: Fixes for v0-file-format extract fn

6 months agoError if "-C <dir>" where "dir" doesn't exist
Stephen Seo [Mon, 30 Sep 2024 10:16:29 +0000 (19:16 +0900)]
Error if "-C <dir>" where "dir" doesn't exist

6 months agoFix potential NULL-ptr dereference
Stephen Seo [Sat, 28 Sep 2024 10:07:12 +0000 (19:07 +0900)]
Fix potential NULL-ptr dereference

6 months agoAdd compiler hardening flags
Stephen Seo [Thu, 26 Sep 2024 08:31:06 +0000 (17:31 +0900)]
Add compiler hardening flags

7 months agoImpl. way to set custom hasher for hash_map
Stephen Seo [Sat, 21 Sep 2024 09:43:23 +0000 (18:43 +0900)]
Impl. way to set custom hasher for hash_map

7 months agoConvert "unsigned long long" to "uint64_t"
Stephen Seo [Sat, 21 Sep 2024 02:55:26 +0000 (11:55 +0900)]
Convert "unsigned long long" to "uint64_t"

Missed during previous changes using stdint.h .

7 months ago`clang-format`
Stephen Seo [Sat, 21 Sep 2024 02:43:25 +0000 (11:43 +0900)]
`clang-format`

7 months agoUse stdint.h types instead of "int", "long", etc.
Stephen Seo [Fri, 20 Sep 2024 12:40:35 +0000 (21:40 +0900)]
Use stdint.h types instead of "int", "long", etc.

7 months agoAdd single-ptr variants data structures' free fns
Stephen Seo [Fri, 13 Sep 2024 03:51:09 +0000 (12:51 +0900)]
Add single-ptr variants data structures' free fns

7 months agoRefactor priority-heap insert fn
Stephen Seo [Fri, 13 Sep 2024 02:33:15 +0000 (11:33 +0900)]
Refactor priority-heap insert fn

priority-heap insert now takes a pointer to a priority-heap instead of a
double pointer.

7 months agoRefactor data_structures/hash_map rehash fn
Stephen Seo [Wed, 11 Sep 2024 03:46:27 +0000 (12:46 +0900)]
Refactor data_structures/hash_map rehash fn

7 months agoCleanup related to change of hash-map insert fn
Stephen Seo [Mon, 9 Sep 2024 08:10:17 +0000 (17:10 +0900)]
Cleanup related to change of hash-map insert fn

7 months agoRefactor hash_map insert to use single ptr
Stephen Seo [Mon, 9 Sep 2024 02:25:00 +0000 (11:25 +0900)]
Refactor hash_map insert to use single ptr

Previous implementation used a double ptr for inserting into a hash map.
This refactoring allows for only needing to use a single ptr.

Fixes https://git.seodisparate.com/stephenseo/SimpleArchiver/issues/17 .

7 months agoFixes related to compiler warnings
Stephen Seo [Fri, 6 Sep 2024 05:23:27 +0000 (14:23 +0900)]
Fixes related to compiler warnings

Fix integer mismatch usages/comparisons.

Use "size_t" instead of "unsigned int" for data structures.

7 months agohash_map: Use const where applicable
Stephen Seo [Wed, 4 Sep 2024 06:30:37 +0000 (15:30 +0900)]
hash_map: Use const where applicable

7 months agohash_map iter fn: const key-value, update unittest
Stephen Seo [Sun, 1 Sep 2024 06:40:17 +0000 (15:40 +0900)]
hash_map iter fn: const key-value, update unittest

7 months agoImpl. hash_map iter, clang-format
Stephen Seo [Sun, 1 Sep 2024 06:11:57 +0000 (15:11 +0900)]
Impl. hash_map iter, clang-format

7 months agoSwitch to ISC License
Stephen Seo [Fri, 30 Aug 2024 02:35:17 +0000 (11:35 +0900)]
Switch to ISC License

8 months agoCleanup/refactorings
Stephen Seo [Mon, 29 Jul 2024 07:31:10 +0000 (16:31 +0900)]
Cleanup/refactorings

Moved common functions to helpers.h, and similar cleanup/refactorings.

8 months agoAdd NULL check when printing cwd on temp file fail
Stephen Seo [Fri, 26 Jul 2024 07:25:02 +0000 (16:25 +0900)]
Add NULL check when printing cwd on temp file fail

8 months agoMore verbose log when failing to create temp file
Stephen Seo [Fri, 26 Jul 2024 07:23:50 +0000 (16:23 +0900)]
More verbose log when failing to create temp file

8 months agoImprove file-count logs
Stephen Seo [Fri, 26 Jul 2024 07:18:07 +0000 (16:18 +0900)]
Improve file-count logs

8 months agoAdd check if file(s) are readable when archiving
Stephen Seo [Fri, 26 Jul 2024 07:01:39 +0000 (16:01 +0900)]
Add check if file(s) are readable when archiving

Also some minor changes like more error logs and refactorings.

8 months ago"Fix" windows build
Stephen Seo [Fri, 26 Jul 2024 04:23:51 +0000 (13:23 +0900)]
"Fix" windows build

TODO:
    Native Windows implementation.

8 months agoFix "-C <dir>" usage
Stephen Seo [Fri, 26 Jul 2024 04:17:11 +0000 (13:17 +0900)]
Fix "-C <dir>" usage

TODO:
    Merge re-used functions into "helpers".

8 months agoUpdate README.md
Stephen Seo [Fri, 26 Jul 2024 03:42:43 +0000 (12:42 +0900)]
Update README.md

8 months agoImpl. "-C <dir>", refactorings
Stephen Seo [Fri, 26 Jul 2024 03:39:56 +0000 (12:39 +0900)]
Impl. "-C <dir>", refactorings

8 months agoUpdate README.md
Stephen Seo [Thu, 25 Jul 2024 01:46:00 +0000 (10:46 +0900)]
Update README.md

8 months agoImpl. being able to set dir for temporary files
Stephen Seo [Thu, 25 Jul 2024 01:42:31 +0000 (10:42 +0900)]
Impl. being able to set dir for temporary files

8 months agoRefactor parser, setup for different temp dir
Stephen Seo [Thu, 25 Jul 2024 01:26:34 +0000 (10:26 +0900)]
Refactor parser, setup for different temp dir

8 months agoMinor help-text/doc fix
Stephen Seo [Wed, 24 Jul 2024 06:27:05 +0000 (15:27 +0900)]
Minor help-text/doc fix

8 months agoUpdate README.md
Stephen Seo [Wed, 24 Jul 2024 06:24:44 +0000 (15:24 +0900)]
Update README.md

8 months agoUpdate README.md
Stephen Seo [Wed, 24 Jul 2024 06:22:39 +0000 (15:22 +0900)]
Update README.md

8 months agoUpdate README.md
Stephen Seo [Wed, 24 Jul 2024 06:21:04 +0000 (15:21 +0900)]
Update README.md

8 months agoComment out debug print
Stephen Seo [Wed, 24 Jul 2024 06:05:01 +0000 (15:05 +0900)]
Comment out debug print

8 months ago"Fix" windows build
Stephen Seo [Wed, 24 Jul 2024 06:03:34 +0000 (15:03 +0900)]
"Fix" windows build

8 months agoImpl. link extracting
Stephen Seo [Wed, 24 Jul 2024 05:52:35 +0000 (14:52 +0900)]
Impl. link extracting

8 months agoAdd abs_path check when referring out of archive
Stephen Seo [Wed, 24 Jul 2024 05:31:38 +0000 (14:31 +0900)]
Add abs_path check when referring out of archive

If absolute paths are enabled, and a link points to something outside of
the archive, a flag is set on the symlink entry to prefer absolute
paths.

8 months agoCreate "set" of filenames for use when archiving
Stephen Seo [Wed, 24 Jul 2024 05:05:05 +0000 (14:05 +0900)]
Create "set" of filenames for use when archiving

8 months agoSplit off code into internal helper function
Stephen Seo [Wed, 24 Jul 2024 05:04:19 +0000 (14:04 +0900)]
Split off code into internal helper function

Function gets absolute path to given filename.

8 months agoMinor tweak to includes in archiver
Stephen Seo [Wed, 24 Jul 2024 05:03:03 +0000 (14:03 +0900)]
Minor tweak to includes in archiver

8 months agoUpdate file_format.md
Stephen Seo [Wed, 24 Jul 2024 04:33:46 +0000 (13:33 +0900)]
Update file_format.md