From 3afc631a963a045b6863f2b3ceddcb0d969cac99 Mon Sep 17 00:00:00 2001 From: Adam Hughes <9903835+tri-adam@users.noreply.github.com> Date: Mon, 29 Aug 2022 15:56:17 +0000 Subject: [PATCH] feat: remove LZO support LZO support requires the github.com/rasky/go-lzo module, which is GPLv2 licensed and thus not suitable for inclusion in some projects. Signed-off-by: Adam Hughes <9903835+tri-adam@users.noreply.github.com> --- README.md | 13 +++++++++++++ cmd/go-unsquashfs/main.go | 2 +- extraction_options.go | 2 +- file.go | 8 ++++---- file_info.go | 4 ++-- fs.go | 4 ++-- go.mod | 3 +-- go.sum | 2 -- internal/decompress/lzo.go | 13 ------------- internal/metadata/reader.go | 2 +- low/data/fullreader.go | 4 ++-- low/data/reader.go | 2 +- low/directory.go | 8 ++++---- low/file_base.go | 10 +++++----- low/inode.go | 8 ++++---- low/reader.go | 10 ++++------ low/reader_test.go | 2 +- reader.go | 2 +- squashfs_test.go | 2 +- 19 files changed, 48 insertions(+), 53 deletions(-) delete mode 100644 internal/decompress/lzo.go diff --git a/README.md b/README.md index da5e660..7dfcbbc 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,19 @@ [![PkgGoDev](https://pkg.go.dev/badge/github.com/CalebQ42/squashfs)](https://pkg.go.dev/github.com/CalebQ42/squashfs) [![Go Report Card](https://goreportcard.com/badge/github.com/CalebQ42/squashfs)](https://goreportcard.com/report/github.com/CalebQ42/squashfs) +This is a fork of `CalebQ42/squashfs` for the purpose of maintaing a package that removes the lzo dependency, so that it does not contain GPL code. + +## Branches + +* `remove-lzo` - `main` from `CalebQ42/squashfs` with LZO support removed. +* `remove-lzo-vX.Y.Z` - `vX.Y.Z` from `CalebQ42/squashfs` with LZO support removed. + +## Tags + +* `vX.Y.Z` - `vX.Y.Z` from `CalebQ42/squashfs` with LZO support removed. + +----- + A PURE Go library to read squashfs. There is currently no plans to add archive creation support as it will almost always be better to just call `mksquashfs`. I could see some possible use cases, but probably won't spend time on it unless it's requested (open a discussion if you want this feature). The library has two parts with this `github.com/CalebQ42/squashfs` being easy to use as it implements `io/fs` interfaces and doesn't expose unnecessary information. 95% this is the library you want. If you need lower level access to the information, use `github.com/CalebQ42/squashfs/low` where far more information is exposed. diff --git a/cmd/go-unsquashfs/main.go b/cmd/go-unsquashfs/main.go index 75be53f..9837c2a 100644 --- a/cmd/go-unsquashfs/main.go +++ b/cmd/go-unsquashfs/main.go @@ -6,7 +6,7 @@ import ( "os" "time" - "github.com/CalebQ42/squashfs" + "github.com/sylabs/squashfs" ) func main() { diff --git a/extraction_options.go b/extraction_options.go index c55a5ec..db65e12 100644 --- a/extraction_options.go +++ b/extraction_options.go @@ -5,7 +5,7 @@ import ( "io/fs" "runtime" - "github.com/CalebQ42/squashfs/internal/routinemanager" + "github.com/sylabs/squashfs/internal/routinemanager" ) type ExtractionOptions struct { diff --git a/file.go b/file.go index 7b2fcdf..8bf1342 100644 --- a/file.go +++ b/file.go @@ -11,10 +11,10 @@ import ( "runtime" "strconv" - "github.com/CalebQ42/squashfs/internal/routinemanager" - squashfslow "github.com/CalebQ42/squashfs/low" - "github.com/CalebQ42/squashfs/low/data" - "github.com/CalebQ42/squashfs/low/inode" + "github.com/sylabs/squashfs/internal/routinemanager" + squashfslow "github.com/sylabs/squashfs/low" + "github.com/sylabs/squashfs/low/data" + "github.com/sylabs/squashfs/low/inode" ) // File represents a file inside a squashfs archive. diff --git a/file_info.go b/file_info.go index d7390a6..4c848b7 100644 --- a/file_info.go +++ b/file_info.go @@ -4,8 +4,8 @@ import ( "io/fs" "time" - "github.com/CalebQ42/squashfs/low/directory" - "github.com/CalebQ42/squashfs/low/inode" + "github.com/sylabs/squashfs/low/directory" + "github.com/sylabs/squashfs/low/inode" ) type fileInfo struct { diff --git a/fs.go b/fs.go index 43d9e1e..71ac52d 100644 --- a/fs.go +++ b/fs.go @@ -8,8 +8,8 @@ import ( "slices" "strings" - squashfslow "github.com/CalebQ42/squashfs/low" - "github.com/CalebQ42/squashfs/low/directory" + squashfslow "github.com/sylabs/squashfs/low" + "github.com/sylabs/squashfs/low/directory" ) // FS is a fs.FS representation of a squashfs directory. diff --git a/go.mod b/go.mod index 39a24a7..330f9b7 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/CalebQ42/squashfs +module github.com/sylabs/squashfs go 1.21.5 @@ -6,6 +6,5 @@ require ( github.com/pierrec/lz4/v4 v4.1.19 github.com/ulikunitz/xz v0.5.11 github.com/klauspost/compress v1.17.4 - github.com/rasky/go-lzo v0.0.0-20200203143853-96a758eda86e github.com/therootcompany/xz v1.0.1 ) diff --git a/go.sum b/go.sum index 894206e..cdabb57 100644 --- a/go.sum +++ b/go.sum @@ -2,8 +2,6 @@ github.com/klauspost/compress v1.17.4 h1:Ej5ixsIri7BrIjBkRZLTo6ghwrEtHFk7ijlczPW github.com/klauspost/compress v1.17.4/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= github.com/pierrec/lz4/v4 v4.1.19 h1:tYLzDnjDXh9qIxSTKHwXwOYmm9d887Y7Y1ZkyXYHAN4= github.com/pierrec/lz4/v4 v4.1.19/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= -github.com/rasky/go-lzo v0.0.0-20200203143853-96a758eda86e h1:dCWirM5F3wMY+cmRda/B1BiPsFtmzXqV9b0hLWtVBMs= -github.com/rasky/go-lzo v0.0.0-20200203143853-96a758eda86e/go.mod h1:9leZcVcItj6m9/CfHY5Em/iBrCz7js8LcRQGTKEEv2M= github.com/therootcompany/xz v1.0.1 h1:CmOtsn1CbtmyYiusbfmhmkpAAETj0wBIH6kCYaX+xzw= github.com/therootcompany/xz v1.0.1/go.mod h1:3K3UH1yCKgBneZYhuQUvJ9HPD19UEXEI0BWbMn8qNMY= github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= diff --git a/internal/decompress/lzo.go b/internal/decompress/lzo.go deleted file mode 100644 index f5783b4..0000000 --- a/internal/decompress/lzo.go +++ /dev/null @@ -1,13 +0,0 @@ -package decompress - -import ( - "bytes" - - "github.com/rasky/go-lzo" -) - -type Lzo struct{} - -func (l Lzo) Decompress(data []byte) ([]byte, error) { - return lzo.Decompress1X(bytes.NewReader(data), len(data), 0) -} diff --git a/internal/metadata/reader.go b/internal/metadata/reader.go index b20d63c..c05ab1e 100644 --- a/internal/metadata/reader.go +++ b/internal/metadata/reader.go @@ -4,7 +4,7 @@ import ( "encoding/binary" "io" - "github.com/CalebQ42/squashfs/internal/decompress" + "github.com/sylabs/squashfs/internal/decompress" ) type Reader struct { diff --git a/low/data/fullreader.go b/low/data/fullreader.go index d31853d..a841826 100644 --- a/low/data/fullreader.go +++ b/low/data/fullreader.go @@ -8,8 +8,8 @@ import ( "runtime" "sync" - "github.com/CalebQ42/squashfs/internal/decompress" - "github.com/CalebQ42/squashfs/internal/toreader" + "github.com/sylabs/squashfs/internal/decompress" + "github.com/sylabs/squashfs/internal/toreader" ) type FragReaderConstructor func() (io.Reader, error) diff --git a/low/data/reader.go b/low/data/reader.go index 922263d..d8fa64d 100644 --- a/low/data/reader.go +++ b/low/data/reader.go @@ -4,7 +4,7 @@ import ( "encoding/binary" "io" - "github.com/CalebQ42/squashfs/internal/decompress" + "github.com/sylabs/squashfs/internal/decompress" ) type Reader struct { diff --git a/low/directory.go b/low/directory.go index b219d77..138febb 100644 --- a/low/directory.go +++ b/low/directory.go @@ -7,10 +7,10 @@ import ( "slices" "strings" - "github.com/CalebQ42/squashfs/internal/metadata" - "github.com/CalebQ42/squashfs/internal/toreader" - "github.com/CalebQ42/squashfs/low/directory" - "github.com/CalebQ42/squashfs/low/inode" + "github.com/sylabs/squashfs/internal/metadata" + "github.com/sylabs/squashfs/internal/toreader" + "github.com/sylabs/squashfs/low/directory" + "github.com/sylabs/squashfs/low/inode" ) type Directory struct { diff --git a/low/file_base.go b/low/file_base.go index e87bc9e..6b77e57 100644 --- a/low/file_base.go +++ b/low/file_base.go @@ -4,11 +4,11 @@ import ( "errors" "io" - "github.com/CalebQ42/squashfs/internal/metadata" - "github.com/CalebQ42/squashfs/internal/toreader" - "github.com/CalebQ42/squashfs/low/data" - "github.com/CalebQ42/squashfs/low/directory" - "github.com/CalebQ42/squashfs/low/inode" + "github.com/sylabs/squashfs/internal/metadata" + "github.com/sylabs/squashfs/internal/toreader" + "github.com/sylabs/squashfs/low/data" + "github.com/sylabs/squashfs/low/directory" + "github.com/sylabs/squashfs/low/inode" ) type FileBase struct { diff --git a/low/inode.go b/low/inode.go index a10a2d1..d6ec312 100644 --- a/low/inode.go +++ b/low/inode.go @@ -1,10 +1,10 @@ package squashfslow import ( - "github.com/CalebQ42/squashfs/internal/metadata" - "github.com/CalebQ42/squashfs/internal/toreader" - "github.com/CalebQ42/squashfs/low/directory" - "github.com/CalebQ42/squashfs/low/inode" + "github.com/sylabs/squashfs/internal/metadata" + "github.com/sylabs/squashfs/internal/toreader" + "github.com/sylabs/squashfs/low/directory" + "github.com/sylabs/squashfs/low/inode" ) func (r *Reader) InodeFromRef(ref uint64) (*inode.Inode, error) { diff --git a/low/reader.go b/low/reader.go index d6d6bef..3755841 100644 --- a/low/reader.go +++ b/low/reader.go @@ -6,10 +6,10 @@ import ( "io" "math" - "github.com/CalebQ42/squashfs/internal/decompress" - "github.com/CalebQ42/squashfs/internal/metadata" - "github.com/CalebQ42/squashfs/internal/toreader" - "github.com/CalebQ42/squashfs/low/inode" + "github.com/sylabs/squashfs/internal/decompress" + "github.com/sylabs/squashfs/internal/metadata" + "github.com/sylabs/squashfs/internal/toreader" + "github.com/sylabs/squashfs/low/inode" ) // The types of compression supported by squashfs @@ -60,8 +60,6 @@ func NewReader(r io.ReaderAt) (rdr *Reader, err error) { rdr.d = decompress.Zlib{} case LZMACompression: rdr.d = decompress.Lzma{} - case LZOCompression: - rdr.d = decompress.Lzo{} case XZCompression: rdr.d = decompress.Xz{} case LZ4Compression: diff --git a/low/reader_test.go b/low/reader_test.go index 7fe237f..d4166da 100644 --- a/low/reader_test.go +++ b/low/reader_test.go @@ -9,7 +9,7 @@ import ( "path/filepath" "testing" - squashfslow "github.com/CalebQ42/squashfs/low" + squashfslow "github.com/sylabs/squashfs/low" ) const ( diff --git a/reader.go b/reader.go index ce499f8..f9943c6 100644 --- a/reader.go +++ b/reader.go @@ -4,7 +4,7 @@ import ( "io" "time" - squashfslow "github.com/CalebQ42/squashfs/low" + squashfslow "github.com/sylabs/squashfs/low" ) type Reader struct { diff --git a/squashfs_test.go b/squashfs_test.go index 0ae1658..8c26bd4 100644 --- a/squashfs_test.go +++ b/squashfs_test.go @@ -14,7 +14,7 @@ import ( "testing" "time" - "github.com/CalebQ42/squashfs" + "github.com/sylabs/squashfs" ) const (