# Generated by go2rpm 1.19.0 and customized for Fedora/Copr %bcond check 1 # Disable debugsource package since Go builds statically link and bundle symbols %global debug_package %{nil} # https://github.com/ipfs/kubo %global goipath github.com/ipfs/kubo Version: 0.43.1 %gometa -L -f Name: kubo Release: %autorelease Summary: IPFS implementation in Go: global peer-to-peer content-addressed filesystem # Generated by go-vendor-tools License: Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND CC0-1.0 AND ISC AND MIT AND MPL-2.0 AND (Apache-2.0 OR MIT) URL: %{gourl} Source0: %{gosource} # Generated by go-vendor-tools Source1: %{archivename}-vendor.tar.bz2 Source2: go-vendor-tools.toml # Systemd units & sysusers Source3: ipfs.service Source4: ipfs-user.service Source5: ipfs-sysusers.conf Provides: ipfs = %{version}-%{release} Provides: go-ipfs = %{version}-%{release} %if 0%{?fedora} BuildRequires: go-vendor-tools %else BuildRequires: compiler(go-compiler) %endif BuildRequires: help2man BuildRequires: systemd-rpm-macros %{?sysusers_requires_compat} %description Kubo is the reference implementation of the InterPlanetary File System (IPFS) in Go. IPFS is a peer-to-peer hypermedia distribution protocol designed to make the web faster, safer, and more open. It provides a CLI, content-addressed storage, an HTTP gateway, and an RPC API. %prep %goprep -p1 tar -xf %{S:1} %if 0%{?fedora} %generate_buildrequires %go_vendor_license_buildrequires -c %{S:2} %endif %build %global gomodulesmode GO111MODULE=on %gobuild -o %{gobuilddir}/bin/ipfs -ldflags="-s -w -X %{goipath}.CurrentCommit= -X %{goipath}.taggedRelease=v%{version}" %{goipath}/cmd/ipfs # Generate man page using help2man help2man -N -s 1 -n "Global p2p merkle-dag filesystem" %{gobuilddir}/bin/ipfs -o %{gobuilddir}/ipfs.1 %install %if 0%{?fedora} %go_vendor_license_install -c %{S:2} %endif # Binaries install -Dpm 0755 %{gobuilddir}/bin/ipfs %{buildroot}%{_bindir}/ipfs ln -s ipfs %{buildroot}%{_bindir}/kubo # Systemd units & sysusers install -Dpm 0644 %{SOURCE3} %{buildroot}%{_unitdir}/ipfs.service ln -s ipfs.service %{buildroot}%{_unitdir}/kubo.service install -Dpm 0644 %{SOURCE4} %{buildroot}%{_userunitdir}/ipfs.service ln -s ipfs.service %{buildroot}%{_userunitdir}/kubo.service install -Dpm 0644 %{SOURCE5} %{buildroot}%{_sysusersdir}/ipfs.conf # Shell autocompletions (dynamically generated by ipfs binary) install -d %{buildroot}%{_datadir}/bash-completion/completions %{gobuilddir}/bin/ipfs commands completion bash > %{buildroot}%{_datadir}/bash-completion/completions/ipfs ln -s ipfs %{buildroot}%{_datadir}/bash-completion/completions/kubo install -d %{buildroot}%{_datadir}/fish/vendor_completions.d %{gobuilddir}/bin/ipfs commands completion fish > %{buildroot}%{_datadir}/fish/vendor_completions.d/ipfs.fish ln -s ipfs.fish %{buildroot}%{_datadir}/fish/vendor_completions.d/kubo.fish install -d %{buildroot}%{_datadir}/zsh/site-functions %{gobuilddir}/bin/ipfs commands completion zsh > %{buildroot}%{_datadir}/zsh/site-functions/_ipfs ln -s _ipfs %{buildroot}%{_datadir}/zsh/site-functions/_kubo # Man page install -Dpm 0644 %{gobuilddir}/ipfs.1 %{buildroot}%{_mandir}/man1/ipfs.1 ln -s ipfs.1 %{buildroot}%{_mandir}/man1/kubo.1 # State directory for system daemon install -d -m 0750 %{buildroot}%{_sharedstatedir}/ipfs %pre %sysusers_create_compat %{SOURCE5} %post %systemd_post ipfs.service %preun %systemd_preun ipfs.service %postun %systemd_postun_with_restart ipfs.service %check %if 0%{?fedora} go_vendor_license -c %{S:2} report all -L --verify '%{license}' %endif %if %{with check} %{gobuilddir}/bin/ipfs version %{gobuilddir}/bin/ipfs commands %endif %if 0%{?fedora} %files -f %{go_vendor_license_filelist} %else %files %license LICENSE LICENSE-APACHE LICENSE-MIT %endif %doc README.md CHANGELOG.md %{_bindir}/ipfs %{_bindir}/kubo %{_unitdir}/ipfs.service %{_unitdir}/kubo.service %{_userunitdir}/ipfs.service %{_userunitdir}/kubo.service %{_sysusersdir}/ipfs.conf %{_datadir}/bash-completion/completions/ipfs %{_datadir}/bash-completion/completions/kubo %{_datadir}/fish/vendor_completions.d/ipfs.fish %{_datadir}/fish/vendor_completions.d/kubo.fish %{_datadir}/zsh/site-functions/_ipfs %{_datadir}/zsh/site-functions/_kubo %{_mandir}/man1/ipfs.1* %{_mandir}/man1/kubo.1* %attr(0750,ipfs,ipfs) %dir %{_sharedstatedir}/ipfs %changelog %autochangelog