Name:           juicefs
Version:        1.2.3
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 Jan 23 2025 Herald Yu <herald@juicedata.io> - 1.2.3-1
- mount: fix writeback_cache not working (#5369)
- cache: upload stage on link error to avoid read error (#5467)
- meta/kv: fix stat when unlinking an open file (#5488)
- meta/redis: remove unnecessary watch in doGetAttr and doGetFacl (#5518)
- fuse: fix copied bytes overflow for copy_file_range (#5565)
- cmd/sync: fix check-all in cluster mode (#5525)
- cmd/sync: fix memory allocation that could cause stalls (#5497)
- object/hdfs: retry close if ErrReplica is returned (#5342)
- object/gluster: use OpenDir for directories to avoid segmentation faults (#5345)