Name:           juicefs
Version:        1.2.2
Release:        1%{?dist}
Summary:        A distributed POSIX file system built on top of Redis and S3.

License:        Apache-2.0
URL:            https://juicefs.com
Source0:        https://github.com/juicedata/%{name}/archive/refs/tags/v%{version}.tar.gz

BuildRequires:  golang-bin
BuildRequires:  git

Requires:       fuse

%description
JuiceFS is a high-performance POSIX file system released under Apache License 2.0,
particularly designed for the cloud-native environment. The data, stored via JuiceFS,
will be persisted in object storage (e.g. Amazon S3), and the corresponding metadata
can be persisted in various database engines such as Redis, MySQL, and TiKV based on
the scenarios and requirements.

With JuiceFS, massive cloud storage can be directly connected to big data,
machine learning, artificial intelligence, and various application platforms in production
environments. Without modifying code, the massive cloud storage can be used as efficiently
as local storage.

 * Fully POSIX-compatible: Use as a local file system, seamlessly docking with existing
   applications without breaking business workflow.
 * Fully Hadoop-compatible: JuiceFS' Hadoop Java SDK is compatible with Hadoop 2.x and
   Hadoop 3.x as well as a variety of components in the Hadoop ecosystems.
 * S3-compatible: JuiceFS' S3 Gateway provides an S3-compatible interface.
 * Cloud Native: A Kubernetes CSI Driver is provided for easily using JuiceFS in Kubernetes.
 * Shareable: JuiceFS is a shared file storage that can be read and written by thousands
   of clients.
 * Strong Consistency: The confirmed modification will be immediately visible on all the
   servers mounted with the same file system.
 * Outstanding Performance: The latency can be as low as a few milliseconds, and the
   throughput can be expanded nearly unlimitedly (depending on the size of the object
   storage).
 * Data Encryption: Supports data encryption in transit and at rest.
 * Global File Locks: JuiceFS supports both BSD locks (flock) and POSIX record locks (fcntl).
 * Data Compression: JuiceFS supports LZ4 or Zstandard to compress all your data.


%global debug_package %{nil}

%prep
%autosetup

%build
make %{?_smp_mflags}

%install
mkdir -p %{buildroot}/%{_bindir}
install -m 0755 %{name} %{buildroot}/%{_bindir}/%{name}


%files
%{_bindir}/%{name}
%license LICENSE

%changelog
* Tue Dec 3 2024 Herald Yu <herald@juicedata.io> - 1.2.2-1
- build/go: support build with go1.23 (#5108)
- object/bos: support virtual-hosted-style endpoint (#5302)
- cmd/mount: fix windows IO error (#5126)
- cmd/sync: fix symlink copy by omitting permission copy (#5175)
- cmd/sync: fix multipart upload for various object stores (#5236, #5239)
- cmd/gc: fix delayed slices never deleted (#5189)
- cmd/gc: fix hash-prefixed keys never compacted (#5277)
- cmd/warmup: fix batch reset issue (#5295)
- cmd/gateway: fix content type to avoid NullPointerException in S3 Java SDK (#5275)
- cache: fix logging to avoid initialization errors and enhance clarity (#5191, #5200)
- meta: fix compaction skipping the first slice when duplicated (#5159)
- vfs: fix set xattr compatibility issue on macOS (#5197, #5329)
- hadoop: fix compatibility with Flink 1.7 (#5147)