[Bug 2189083] Review Request: juicefs - a distributed POSIX file system built on top of Redis and S3.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.redhat.com/show_bug.cgi?id=2189083

Robert-André Mauchin 🐧 <zebob.m@xxxxxxxxx> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
              Flags|needinfo?(zebob.m@xxxxxxxxx |
                   |)                           |



--- Comment #11 from Robert-André Mauchin 🐧 <zebob.m@xxxxxxxxx> ---
Let's start from scratch.

First read the Golang guidelines:
https://docs.fedoraproject.org/en-US/packaging-guidelines/Golang/

Then use go2rpm to do the basic template
go2rpm -d --name juicefs github.com/juicedata/juicefs


Cleanup of the first draft, we'll need to add the licenses later becauseit is
statically compiled:

# Generated by go2rpm 1.9.0
%bcond_without check

# https://github.com/juicedata/juicefs
%global goipath         github.com/juicedata/juicefs
Version:                1.1.0

%gometa -f

%global goname juicefs

%global common_description %{expand:
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 golicenses      LICENSE
%global godocs          docs ADOPTERS.md ADOPTERS_CN.md CODE_OF_CONDUCT.md\\\
                        CONTRIBUTING.md README.md README_CN.md

Name:           juicefs
Release:        %autorelease
Summary:        Distributed POSIX file system built on top of Redis and S3

License:        Apache-2.0
URL:            %{gourl}
Source:         %{gosource}

%description %{common_description}

%gopkg

%prep
%goprep
%autopatch -p1

%generate_buildrequires
%go_generate_buildrequires

%build
export LDFLAGS="-X github.com/juicedata/juicefs/pkg/version.revision=%{version}
\
                -X github.com/juicedata/juicefs/pkg/version.revisionDate=$(date
+%%Y%%m%%d)"
export BUILDTAGS="ceph,fdb,gluster"                
%gobuild -o %{gobuilddir}/bin/juicefs %{goipath}

%install
%gopkginstall
install -m 0755 -vd                     %{buildroot}%{_bindir}
install -m 0755 -vp %{gobuilddir}/bin/* %{buildroot}%{_bindir}/

%if %{with check}
%check
%gocheck
%endif

%files
%license LICENSE
%doc docs ADOPTERS.md ADOPTERS_CN.md CODE_OF_CONDUCT.md
%doc CONTRIBUTING.md README.md README_CN.md
%{_bindir}/juicefs

%gopkgfiles

%changelog
%autochangelog


Let's try to build it:

spectool -g *.spec; rpmbuild -bs *.spec
Downloading:
https://github.com/juicedata/juicefs/archive/v1.1.0/juicefs-1.1.0.tar.gz
|  31.0 MiB Elapsed Time: 0:00:01                                               
Downloaded: juicefs-1.1.0.tar.gz
setting SOURCE_DATE_EPOCH=1698278400

fedpkg --release f40 mockbuild  -N


No matching package to install:
'golang(github.com/Arvintian/scs-go-sdk/pkg/client)'
No matching package to install: 'golang(github.com/Arvintian/scs-go-sdk/scs)'
No matching package to install: 'golang(github.com/DataDog/zstd)'
No matching package to install: 'golang(github.com/IBM/ibm-cos-sdk-go/aws)'
No matching package to install:
'golang(github.com/IBM/ibm-cos-sdk-go/aws/awserr)'
No matching package to install:
'golang(github.com/IBM/ibm-cos-sdk-go/aws/credentials/ibmiam)'
No matching package to install:
'golang(github.com/IBM/ibm-cos-sdk-go/aws/request)'
No matching package to install:
'golang(github.com/IBM/ibm-cos-sdk-go/aws/session)'
No matching package to install:
'golang(github.com/IBM/ibm-cos-sdk-go/service/s3)'
No matching package to install: 'golang(github.com/agiledragon/gomonkey/v2)'
No matching package to install: 'golang(github.com/baidubce/bce-sdk-go/bce)'
No matching package to install:
'golang(github.com/baidubce/bce-sdk-go/services/bos)'
No matching package to install:
'golang(github.com/baidubce/bce-sdk-go/services/bos/api)'
No matching package to install: 'golang(github.com/dgraph-io/badger/v3)'
No matching package to install: 'golang(github.com/erikdubbelboer/gspt)'
No matching package to install:
'golang(github.com/huaweicloud/huaweicloud-sdk-go-obs/obs)'
No matching package to install: 'golang(github.com/hungys/go-lz4)'
No matching package to install: 'golang(github.com/jackc/pgx/v5/pgconn)'
No matching package to install: 'golang(github.com/jackc/pgx/v5/stdlib)'
No matching package to install: 'golang(github.com/juicedata/godaemon)'
No matching package to install: 'golang(github.com/ks3sdklib/aws-sdk-go/aws)'
No matching package to install:
'golang(github.com/ks3sdklib/aws-sdk-go/aws/awserr)'
No matching package to install:
'golang(github.com/ks3sdklib/aws-sdk-go/aws/credentials)'
No matching package to install:
'golang(github.com/ks3sdklib/aws-sdk-go/service/s3)'
No matching package to install: 'golang(github.com/minio/cli)'
No matching package to install: 'golang(github.com/minio/minio/cmd)'
No matching package to install: 'golang(github.com/minio/minio/pkg/auth)'
No matching package to install: 'golang(github.com/oliverisaac/shellescape)'
No matching package to install: 'golang(github.com/pingcap/log)'
No matching package to install:
'golang(github.com/pyroscope-io/client/pyroscope)'
No matching package to install:
'golang(github.com/qingstor/qingstor-sdk-go/v4/config)'
No matching package to install:
'golang(github.com/qingstor/qingstor-sdk-go/v4/request/errors)'
No matching package to install:
'golang(github.com/qingstor/qingstor-sdk-go/v4/service)'
No matching package to install: 'golang(github.com/qiniu/go-sdk/v7/auth)'
No matching package to install: 'golang(github.com/qiniu/go-sdk/v7/storage)'
No matching package to install: 'golang(github.com/redis/go-redis/v9)'
No matching package to install: 'golang(github.com/studio-b12/gowebdav)'
No matching package to install: 'golang(github.com/tencentyun/cos-go-sdk-v5)'
No matching package to install: 'golang(github.com/tikv/client-go/v2/config)'
No matching package to install: 'golang(github.com/tikv/client-go/v2/error)'
No matching package to install: 'golang(github.com/tikv/client-go/v2/oracle)'
No matching package to install: 'golang(github.com/tikv/client-go/v2/rawkv)'
No matching package to install: 'golang(github.com/tikv/client-go/v2/tikv)'
No matching package to install: 'golang(github.com/tikv/client-go/v2/txnkv)'
No matching package to install:
'golang(github.com/tikv/client-go/v2/txnkv/txnutil)'
No matching package to install: 'golang(github.com/upyun/go-sdk/v3/upyun)'
No matching package to install: 'golang(github.com/vbauerster/mpb/v7)'
No matching package to install: 'golang(github.com/vbauerster/mpb/v7/decor)'
No matching package to install: 'golang(github.com/viki-org/dnscache)'
No matching package to install:
'golang(github.com/volcengine/ve-tos-golang-sdk/v2/tos)'
No matching package to install:
'golang(github.com/volcengine/ve-tos-golang-sdk/v2/tos/codes)'
No matching package to install:
'golang(github.com/volcengine/ve-tos-golang-sdk/v2/tos/enum)'
No matching package to install: 'golang(go.etcd.io/etcd/pkg/transport)'
No matching package to install: 'golang(gopkg.in/kothar/go-backblaze.v0)

Mow we have the list of new dependencies to package.


So:

github.com/Arvintian/scs-go-sdk
github.com/DataDog/zstd
github.com/IBM/ibm-cos-sdk-go
github.com/agiledragon/gomonkey/v2
github.com/baidubce/bce-sdk-go
github.com/dgraph-io/badger/v3
github.com/erikdubbelboer/gspt
github.com/huaweicloud/huaweicloud-sdk-go-obs
github.com/hungys/go-lz4
github.com/jackc/pgx/v5
github.com/juicedata/godaemon
github.com/ks3sdklib/aws-sdk-go
github.com/minio/cli
github.com/minio/minio
github.com/oliverisaac/shellescape
github.com/pingcap/log
github.com/pyroscope-io/client
github.com/qingstor/qingstor-sdk-go/v4
github.com/qiniu/go-sdk/v7
github.com/redis/go-redis/v9
github.com/studio-b12/gowebdav
github.com/tencentyun/cos-go-sdk-v5
github.com/tikv/client-go/v2
github.com/upyun/go-sdk/v3
github.com/vbauerster/mpb/v7
github.com/viki-org/dnscache
github.com/volcengine/ve-tos-golang-sdk/v2
gopkg.in/kothar/go-backblaze.v0

28 first level packages

I'll follow up later.


-- 
You are receiving this mail because:
You are always notified about changes to this product and component
You are on the CC list for the bug.
https://bugzilla.redhat.com/show_bug.cgi?id=2189083

Report this comment as SPAM: https://bugzilla.redhat.com/enter_bug.cgi?product=Bugzilla&format=report-spam&short_desc=Report%20of%20Bug%202189083%23c11
_______________________________________________
package-review mailing list -- package-review@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to package-review-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/package-review@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite Conditions]     [KDE Users]

  Powered by Linux