]> git.seodisparate.com - SimpleArchiver/log
SimpleArchiver
8 weeks agoMinor fixes
Stephen Seo [Tue, 25 Feb 2025 04:12:33 +0000 (13:12 +0900)]
Minor fixes

Fix usage of "printf" functions due to a variable type changing from
"size_t" to "uint64_t".

8 weeks agoRemove platform specific #if blocks in archiver.c
Stephen Seo [Tue, 25 Feb 2025 03:00:57 +0000 (12:00 +0900)]
Remove platform specific #if blocks in archiver.c

8 weeks agoImpl. file format v 4 write
Stephen Seo [Tue, 25 Feb 2025 08:49:31 +0000 (17:49 +0900)]
Impl. file format v 4 write

This is actually part of an original commit that was broken into two
pieces due to weird git shennanigans (newly added code was not properly
"diff"ed by git).

8 weeks agoImpl. file format v 4 parsing
Stephen Seo [Tue, 25 Feb 2025 08:46:22 +0000 (17:46 +0900)]
Impl. file format v 4 parsing

This is actually part of an original commit that was broken into two
pieces due to weird git shennanigans (newly added code was not properly
"diff"ed by git).

8 weeks agoFixes for other file formats, v4 file prep.
Stephen Seo [Tue, 25 Feb 2025 02:50:12 +0000 (11:50 +0900)]
Fixes for other file formats, v4 file prep.

Linked-List count is now uint64_t instead of size_t.

8 weeks agoBump version to 1.17 1.17
Stephen Seo [Tue, 25 Feb 2025 01:57:42 +0000 (10:57 +0900)]
Bump version to 1.17

8 weeks agoFix whitelist begins-with/ends-with
Stephen Seo [Tue, 25 Feb 2025 01:55:07 +0000 (10:55 +0900)]
Fix whitelist begins-with/ends-with

8 weeks agoMerge branch 'dev', Version 1.16 1.16
Stephen Seo [Tue, 25 Feb 2025 01:23:09 +0000 (10:23 +0900)]
Merge branch 'dev', Version 1.16

8 weeks agoBump version to 1.16
Stephen Seo [Tue, 25 Feb 2025 01:22:22 +0000 (10:22 +0900)]
Bump version to 1.16

8 weeks agoUpdate Changelog.md
Stephen Seo [Tue, 25 Feb 2025 01:21:15 +0000 (10:21 +0900)]
Update Changelog.md

8 weeks agoRemove DEBUG output
Stephen Seo [Fri, 21 Feb 2025 07:40:28 +0000 (16:40 +0900)]
Remove DEBUG output

8 weeks agoUpdate README.md, usage text
Stephen Seo [Fri, 21 Feb 2025 07:35:52 +0000 (16:35 +0900)]
Update README.md, usage text

8 weeks agoUpdate Changelog.md
Stephen Seo [Fri, 21 Feb 2025 07:31:30 +0000 (16:31 +0900)]
Update Changelog.md

8 weeks agoFix/refactor created temp file when compressing
Stephen Seo [Fri, 21 Feb 2025 07:26:32 +0000 (16:26 +0900)]
Fix/refactor created temp file when compressing

Before this commit, archived files using compression would use a
temporary file in the current-working-directory (usually the same
directory specified by "-C <dir>") to store compressed files. This is
required by design as the file-size of the compressed file/chunk is
required before storing the data. In other words, the size is stored
before the data without seeking so that output can be streamable (in
case of "-f -" or "-f /dev/stdout" when compressing).

This commit changes the behavior of creating temporary files for
compression by placing them in the same directory as the output file
(specified by "-f <output_file>"), or using "tmpfile()" if that should
fail. Note that the `--temp-files-dir <dir>` option exists, and
"tmpfile()" is used as a fallback in case writing to
`--temp-files-dir <dir>` fails.

2 months agoFix lines longer than 80 characters in sources
Stephen Seo [Thu, 20 Feb 2025 06:45:49 +0000 (15:45 +0900)]
Fix lines longer than 80 characters in sources

2 months agoUpdate help text on `--chunk-min-size`, README.md
Stephen Seo [Thu, 20 Feb 2025 06:36:19 +0000 (15:36 +0900)]
Update help text on `--chunk-min-size`, README.md

2 months agoUpdate help text on `--chunk-min-size`, README.md
Stephen Seo [Thu, 20 Feb 2025 06:36:19 +0000 (15:36 +0900)]
Update help text on `--chunk-min-size`, README.md

2 months agoFix parser help text and README.md
Stephen Seo [Thu, 20 Feb 2025 02:13:16 +0000 (11:13 +0900)]
Fix parser help text and README.md

2 months agoFix parser help text and README.md
Stephen Seo [Thu, 20 Feb 2025 02:13:16 +0000 (11:13 +0900)]
Fix parser help text and README.md

2 months agoUpdate README.md
Stephen Seo [Tue, 18 Feb 2025 12:35:33 +0000 (21:35 +0900)]
Update README.md

2 months agoUpdate Changelog.md
Stephen Seo [Tue, 18 Feb 2025 05:07:44 +0000 (14:07 +0900)]
Update Changelog.md

2 months agoImpl white/black-listing for file format v 0
Stephen Seo [Tue, 18 Feb 2025 05:04:53 +0000 (14:04 +0900)]
Impl white/black-listing for file format v 0

This commit implements white/black-listing for create/test/extract for
file format version 0.

At this point, all file formats should have this feature enabled. Some
testing may be required.

2 months agoWIP white/black-list: change "contains" to any/all
Stephen Seo [Tue, 18 Feb 2025 04:24:39 +0000 (13:24 +0900)]
WIP white/black-list: change "contains" to any/all

Changed `--whitelist-contains` and `--blacklist-contains` into:

`--whitelist-contains-any`
`--whitelist-contains-all`
`--blacklist-contains-any`
`--blacklist-contains-all`

2 months agoRefactor white/black-list code
Stephen Seo [Tue, 18 Feb 2025 04:10:14 +0000 (13:10 +0900)]
Refactor white/black-list code

2 months agoUpdate info on `--blacklist-contains`
Stephen Seo [Tue, 18 Feb 2025 03:15:15 +0000 (12:15 +0900)]
Update info on `--blacklist-contains`

2 months agoWIP white/black-lists: Impl. for file v 1, 2
Stephen Seo [Tue, 18 Feb 2025 02:54:35 +0000 (11:54 +0900)]
WIP white/black-lists: Impl. for file v 1, 2

Implemented white/black-lists create/test/extract for file formats
versions 1 and 2.

TODO:
    - Impl. white/black-lists create/text/extract for file format 0

2 months agoAttempt to fix build when git-describe fails
Stephen Seo [Mon, 17 Feb 2025 11:44:21 +0000 (20:44 +0900)]
Attempt to fix build when git-describe fails

2 months agoAttempt to fix build when git-describe fails
Stephen Seo [Mon, 17 Feb 2025 11:44:21 +0000 (20:44 +0900)]
Attempt to fix build when git-describe fails

2 months agoAttempt to fix github actions build: cmake changes
Stephen Seo [Mon, 17 Feb 2025 08:02:39 +0000 (17:02 +0900)]
Attempt to fix github actions build: cmake changes

2 months agoAttempt to fix github actions build: cmake changes
Stephen Seo [Mon, 17 Feb 2025 08:02:39 +0000 (17:02 +0900)]
Attempt to fix github actions build: cmake changes

2 months agoImpl. setting version.h from CMake
Stephen Seo [Mon, 17 Feb 2025 07:52:34 +0000 (16:52 +0900)]
Impl. setting version.h from CMake

Previous implementation only updated the version if the CMakeLists.txt
file was updated. This now auto-generates the version into version.h in
every build.

2 months agoImpl. setting version.h from CMake
Stephen Seo [Mon, 17 Feb 2025 07:52:34 +0000 (16:52 +0900)]
Impl. setting version.h from CMake

Previous implementation only updated the version if the CMakeLists.txt
file was updated. This now auto-generates the version into version.h in
every build.

2 months agoWIP white/black-list: Update Changelog.md
Stephen Seo [Mon, 17 Feb 2025 06:42:32 +0000 (15:42 +0900)]
WIP white/black-list: Update Changelog.md

TODO:

    - white/black-lists for test/extract for file format version 1 and
      2.
    - white/black-lists for create/test/extract for file format version
      0.

2 months agoWIP white/black-list: Update Changelog.md
Stephen Seo [Mon, 17 Feb 2025 06:40:33 +0000 (15:40 +0900)]
WIP white/black-list: Update Changelog.md

TODO:

    - white/black-lists for test/extract for file format version 1 and
      2.
    - white/black-lists for create/test/extract for file format version
      0.

2 months agoWIP white/black-list: Fix b-contains behavior
Stephen Seo [Mon, 17 Feb 2025 06:29:18 +0000 (15:29 +0900)]
WIP white/black-list: Fix b-contains behavior

Up to this commit, --blacklist-contains would blacklist any entry that
matches any <text>.
This behavior has been changed to only blacklist any entry that contains
all <text> entries specified by multiple --blacklist-contains (or just 1
if there was only 1 flag).

TODO:
    - white/black-lists for test/extract for file format version 1 and
      2.
    - white/black-lists for create/test/extract for file format version
      0.

2 months agoWIP white/black-list: Impl. case-insensitive
Stephen Seo [Mon, 17 Feb 2025 06:23:44 +0000 (15:23 +0900)]
WIP white/black-list: Impl. case-insensitive

Impelment flag that makes white/black-list filtering be
case-insensitive.

TODO:
    - white/black-lists for test/extract for file format version 1 and
      2.
    - white/black-lists for create/text/extract for file format version
      0.

2 months agoWIP white/black-list: Impl. v 3 test/extract lists
Stephen Seo [Mon, 17 Feb 2025 05:59:34 +0000 (14:59 +0900)]
WIP white/black-list: Impl. v 3 test/extract lists

Implemented usage of white/black-lists for test/extract (`-t` and `-x`)
for file format version 3 archives.

TODO:
    - white/black-lists for test/extract for file format version 1 and
      2.
    - white/black-lists for create/test/extract for file format version
      0.

2 months agoWIP white/black-list: refactoring
Stephen Seo [Mon, 17 Feb 2025 04:53:27 +0000 (13:53 +0900)]
WIP white/black-list: refactoring

2 months agoWIP white/black-list: Update Changelog.md
Stephen Seo [Mon, 17 Feb 2025 04:37:33 +0000 (13:37 +0900)]
WIP white/black-list: Update Changelog.md

2 months agoWIP white/black-list: Update README.md
Stephen Seo [Mon, 17 Feb 2025 04:33:31 +0000 (13:33 +0900)]
WIP white/black-list: Update README.md

2 months agoWIP white/black-list: Impl. for create v 1,2,3
Stephen Seo [Mon, 17 Feb 2025 04:29:14 +0000 (13:29 +0900)]
WIP white/black-list: Impl. for create v 1,2,3

Implements white/black-listing files for archive creation for file
formats 1, 2, and 3.

TODO:
    - white/black-listing files for archive test and extract for file
      format versions 1, 2, and 3.
    - white/black-listing files for archive create, test, and extract
      for file format version 0.

2 months agoWIP white/black-list: Add helper fns and tests
Stephen Seo [Mon, 17 Feb 2025 04:13:20 +0000 (13:13 +0900)]
WIP white/black-list: Add helper fns and tests

2 months agoWIP white/black-list: Setup args in parser
Stephen Seo [Mon, 17 Feb 2025 03:33:43 +0000 (12:33 +0900)]
WIP white/black-list: Setup args in parser

2 months agoMerge branch 'dev', Version 1.15 1.15
Stephen Seo [Mon, 17 Feb 2025 02:56:04 +0000 (11:56 +0900)]
Merge branch 'dev', Version 1.15

2 months agoVersion 1.15
Stephen Seo [Mon, 17 Feb 2025 02:54:11 +0000 (11:54 +0900)]
Version 1.15

2 months agoAdd notice when forcing dir permissions
Stephen Seo [Mon, 17 Feb 2025 02:53:46 +0000 (11:53 +0900)]
Add notice when forcing dir permissions

2 months agoAdd newline before printed usage text
Stephen Seo [Mon, 17 Feb 2025 02:46:44 +0000 (11:46 +0900)]
Add newline before printed usage text

2 months agoUpdate Changelog.md
Stephen Seo [Thu, 13 Feb 2025 01:15:00 +0000 (10:15 +0900)]
Update Changelog.md

2 months agoForce empty-dir perms only on "force-empty" flag
Stephen Seo [Wed, 12 Feb 2025 10:05:46 +0000 (19:05 +0900)]
Force empty-dir perms only on "force-empty" flag

Previous behavior used the `--force-dir-permissions <octals>` flag to
set the archive-creation-empty-dirs permissions.

This commit changes this to check `--force-empty-dir-permissions
<octals>` instead.

Only applicable to file format versions 2 and 3.

2 months agoUpdate README.md
Stephen Seo [Wed, 12 Feb 2025 05:56:46 +0000 (14:56 +0900)]
Update README.md

2 months agoUpdate Changelog.md
Stephen Seo [Wed, 12 Feb 2025 05:53:54 +0000 (14:53 +0900)]
Update Changelog.md

2 months agoAdd flag to force-set permissions for empty dirs
Stephen Seo [Wed, 12 Feb 2025 05:52:47 +0000 (14:52 +0900)]
Add flag to force-set permissions for empty dirs

Note this only affects file format versions 2 and 3.

2 months agoRefactorings (handling some TODOs)
Stephen Seo [Mon, 10 Feb 2025 06:17:21 +0000 (15:17 +0900)]
Refactorings (handling some TODOs)

2 months agoMinor fix: remove unnecessary comment
Stephen Seo [Mon, 10 Feb 2025 06:09:02 +0000 (15:09 +0900)]
Minor fix: remove unnecessary comment

2 months agoAdd unit test for helper string-parts
Stephen Seo [Thu, 6 Feb 2025 05:09:07 +0000 (14:09 +0900)]
Add unit test for helper string-parts

2 months agoRefactoring
Stephen Seo [Thu, 6 Feb 2025 05:03:23 +0000 (14:03 +0900)]
Refactoring

Formalize "string_parts" into a helper struct/fns for use in archiver.c.

2 months agoVersion 1.14 1.14
Stephen Seo [Tue, 4 Feb 2025 07:18:09 +0000 (16:18 +0900)]
Version 1.14

2 months agoFix not setting dir permissions on extract
Stephen Seo [Tue, 4 Feb 2025 07:11:12 +0000 (16:11 +0900)]
Fix not setting dir permissions on extract

Expected behavior is for simplearchiver to set the directory permissions
after an empty directory is created.

Fixes the previous behavior where the default-permissions or
forced-permissions were used instead.

2 months agoUpdate Version 1.13 1.13
Stephen Seo [Mon, 3 Feb 2025 07:46:23 +0000 (16:46 +0900)]
Update Version 1.13

2 months agoStricter directory permissions on dir creation
Stephen Seo [Mon, 3 Feb 2025 07:43:33 +0000 (16:43 +0900)]
Stricter directory permissions on dir creation

Directory default permission settings changed (for on dir creation).

Previous impl used:    rwxrwxr-x
Current impl now uses: rwxr-xr-x

2 months agoCMakeLists.txt: Replace IS_EXECUTABLE with EXISTS
Stephen Seo [Tue, 28 Jan 2025 05:26:21 +0000 (14:26 +0900)]
CMakeLists.txt: Replace IS_EXECUTABLE with EXISTS

IS_EXECUTABLE does not exist in older versions of cmake.

2 months agoUpdate CMakeLists.txt to fix version when no .git
Stephen Seo [Tue, 28 Jan 2025 05:21:55 +0000 (14:21 +0900)]
Update CMakeLists.txt to fix version when no .git

If building from extracted archive instead of git clone, defer version
to builtin.

2 months agoMerge branch 'dev', Version 1.12 1.12
Stephen Seo [Tue, 28 Jan 2025 03:57:00 +0000 (12:57 +0900)]
Merge branch 'dev', Version 1.12

2 months agoVersion 1.12, Update Changelog.md
Stephen Seo [Tue, 28 Jan 2025 03:56:05 +0000 (12:56 +0900)]
Version 1.12, Update Changelog.md

2 months agoUpdate README.md
Stephen Seo [Tue, 28 Jan 2025 03:41:46 +0000 (12:41 +0900)]
Update README.md

2 months agoSet version.h to have a default version string
Stephen Seo [Tue, 28 Jan 2025 03:39:00 +0000 (12:39 +0900)]
Set version.h to have a default version string

2 months agoUpdate LICENSE year in sources
Stephen Seo [Tue, 28 Jan 2025 03:24:02 +0000 (12:24 +0900)]
Update LICENSE year in sources

2 months agoUpdate LICENSE year in sources
Stephen Seo [Tue, 28 Jan 2025 03:24:02 +0000 (12:24 +0900)]
Update LICENSE year in sources

2 months agoUpdate Changelog.md
Stephen Seo [Tue, 28 Jan 2025 03:18:40 +0000 (12:18 +0900)]
Update Changelog.md

2 months agoUpdate Changelog.md
Stephen Seo [Tue, 28 Jan 2025 03:18:40 +0000 (12:18 +0900)]
Update Changelog.md

2 months agoImpl "--version"
Stephen Seo [Tue, 28 Jan 2025 03:18:06 +0000 (12:18 +0900)]
Impl "--version"

2 months agoUpdate Changelog.md
Stephen Seo [Mon, 27 Jan 2025 11:31:13 +0000 (20:31 +0900)]
Update Changelog.md

2 months agoFix file versions 2,3 creating dirs when only `-t`
Stephen Seo [Mon, 27 Jan 2025 11:10:14 +0000 (20:10 +0900)]
Fix file versions 2,3 creating dirs when only `-t`

The expected behavior is not to create anything when using the `-t`
flag.

2 months agoUpdate Changelog.md
Stephen Seo [Mon, 27 Jan 2025 11:17:24 +0000 (20:17 +0900)]
Update Changelog.md

2 months agoUpdate README.md, fix text about --prefix
Stephen Seo [Mon, 27 Jan 2025 11:14:14 +0000 (20:14 +0900)]
Update README.md, fix text about --prefix

2 months agoFix absolute symlinks when using extract --prefix
Stephen Seo [Mon, 27 Jan 2025 11:10:52 +0000 (20:10 +0900)]
Fix absolute symlinks when using extract --prefix

Previous behavior would prepend the <prefix> to an absolute link if it
pointed to a file outside of the archive (when using --no-safe-links),
breaking the link.

2 months agoFix file versions 2,3 creating dirs when only `-t`
Stephen Seo [Mon, 27 Jan 2025 11:10:14 +0000 (20:10 +0900)]
Fix file versions 2,3 creating dirs when only `-t`

The expected behavior is not to create anything when using the `-t`
flag.

2 months agoImpl --prefix extract for file fmt version 3
Stephen Seo [Mon, 27 Jan 2025 10:20:58 +0000 (19:20 +0900)]
Impl --prefix extract for file fmt version 3

TODO:
    Testing, cleanup, regression fixes.

2 months agoWIP --prefix: Impl --prefix archive file fmt ver 3
Stephen Seo [Mon, 27 Jan 2025 09:20:21 +0000 (18:20 +0900)]
WIP --prefix: Impl --prefix archive file fmt ver 3

TODO:
    Impl --prefix extract file format version 3

2 months agoWIP --prefix: Impl --prefix extract file fmt ver 2
Stephen Seo [Mon, 27 Jan 2025 08:49:11 +0000 (17:49 +0900)]
WIP --prefix: Impl --prefix extract file fmt ver 2

TODO:
    Impl --prefix archive/extract for file format version 3

2 months agoWIP --prefix: Impl --prefix archive file fmt ver 2
Stephen Seo [Mon, 27 Jan 2025 08:36:59 +0000 (17:36 +0900)]
WIP --prefix: Impl --prefix archive file fmt ver 2

TODO:
    Impl --prefix extract for file format version 2
    Impl --prefix archive/extract for file format version 3

2 months agoWIP --prefix: Impl --prefix extract file ver 1
Stephen Seo [Mon, 27 Jan 2025 06:08:29 +0000 (15:08 +0900)]
WIP --prefix: Impl --prefix extract file ver 1

TODO:
    Impl --prefix archive/extract for file format versions 2 and 3

2 months agoWIP --prefix: Impl --prefix for archive file ver 1
Stephen Seo [Mon, 27 Jan 2025 05:11:27 +0000 (14:11 +0900)]
WIP --prefix: Impl --prefix for archive file ver 1

TODO:
    --prefix for extracting file format version 1
    --prefix for archiving/extracting file format versions 2 and 3

2 months agoFix specified type for vars from strlen(...)
Stephen Seo [Mon, 27 Jan 2025 04:53:23 +0000 (13:53 +0900)]
Fix specified type for vars from strlen(...)

2 months agoWIP --prefix: Impl --prefix for file v0 extracting
Stephen Seo [Fri, 24 Jan 2025 09:07:18 +0000 (18:07 +0900)]
WIP --prefix: Impl --prefix for file v0 extracting

Minor fixes to helper code.

TODO:
    - file v1, v2, and v3 archiving and extracting with "--prefix"

2 months agoWIP --prefix: Impl --prefix for file v0 archiving
Stephen Seo [Thu, 23 Jan 2025 07:36:09 +0000 (16:36 +0900)]
WIP --prefix: Impl --prefix for file v0 archiving

TODO:
    - file v0 extraction "--prefix"
    - file v1, v2, and v3 archiving and extraction "--prefix"

2 months agoWIP --prefix: Parser and Helper code setup
Stephen Seo [Wed, 22 Jan 2025 08:53:35 +0000 (17:53 +0900)]
WIP --prefix: Parser and Helper code setup

Added "--prefix <prefix>" to parser to specify a prefix to prepend to
files/dirs/symlinks when archiving or extracting.

Added some helper functions to facilitate the creation of this feature
and some unit tests to test them.

3 months agoUpdate cmake conf: omit flags for cross compiling
Stephen Seo [Wed, 15 Jan 2025 11:01:42 +0000 (20:01 +0900)]
Update cmake conf: omit flags for cross compiling

3 months agoUpdate LICENSE year
Stephen Seo [Wed, 15 Jan 2025 04:09:45 +0000 (13:09 +0900)]
Update LICENSE year

3 months agoMerge branch 'dev', Version 1.11 1.11
Stephen Seo [Tue, 14 Jan 2025 05:26:23 +0000 (14:26 +0900)]
Merge branch 'dev', Version 1.11

3 months agoVersion 1.11, update Changelog.md
Stephen Seo [Tue, 14 Jan 2025 05:25:23 +0000 (14:25 +0900)]
Version 1.11, update Changelog.md

3 months agoUpdate README.md
Stephen Seo [Mon, 13 Jan 2025 04:10:57 +0000 (13:10 +0900)]
Update README.md

3 months agoImpl extract UID/GID remapping format ver 1 & 2
Stephen Seo [Fri, 10 Jan 2025 07:44:31 +0000 (16:44 +0900)]
Impl extract UID/GID remapping format ver 1 & 2

3 months agoFix typo
Stephen Seo [Thu, 9 Jan 2025 07:17:33 +0000 (16:17 +0900)]
Fix typo

3 months agoUpdate README.md, add notice about perms/ownership
Stephen Seo [Thu, 9 Jan 2025 07:14:32 +0000 (16:14 +0900)]
Update README.md, add notice about perms/ownership

3 months agoImpl UID/GID remap for extract file format v3
Stephen Seo [Thu, 9 Jan 2025 07:09:22 +0000 (16:09 +0900)]
Impl UID/GID remap for extract file format v3

TODO: Impl remap for previous file format versions.

3 months agoImpl remapping for symlinks on extract (file v3)
Stephen Seo [Thu, 9 Jan 2025 05:54:47 +0000 (14:54 +0900)]
Impl remapping for symlinks on extract (file v3)

TODO: Remapping for rest of extracting file v3, and remapping for
extracting other file versions.

3 months agoPrint file format version on start of parsing
Stephen Seo [Wed, 8 Jan 2025 07:15:47 +0000 (16:15 +0900)]
Print file format version on start of parsing

3 months agoImpl UID/GID remap for file format v1
Stephen Seo [Wed, 8 Jan 2025 06:58:38 +0000 (15:58 +0900)]
Impl UID/GID remap for file format v1

TODO: Remap on extract.

3 months agoImpl UID/GID remap for file v2
Stephen Seo [Wed, 8 Jan 2025 06:52:13 +0000 (15:52 +0900)]
Impl UID/GID remap for file v2

TODO: Remapping on extract.