Projects
Eulaceura:Factory
lizardfs
_service:obs_scm:lizardfs.spec
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:obs_scm:lizardfs.spec of Package lizardfs
%define __cmake_in_source_build 1 Name: lizardfs Summary: Distributed, fault tolerant file system Version: 3.12.0 Release: 1 # LizardFS is under GPLv3 while crcutil is under ASL 2.0 and there's one header, # src/common/coroutine.h, under the Boost license License: GPL-3.0 and Apache-2.0 and BSL-1.0 URL: http://www.lizardfs.org/ Source: https://github.com/lizardfs/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz Source1: pam-lizardfs Source2: 95-lizardfs.conf # Use spdlog system library if available Patch0: Put-customized-spdlog-in-source-so-we-don-t-download.patch # Fix for building with GCC 8 # See https://github.com/lizardfs/lizardfs/pull/677 Patch1: Add-missing-header.patch # Use python 3 rather than python 2 for cgi server Patch2: lizardfs-3.12-cgi-py3.patch # Fix building with GCC13 Patch3: gcc-13-missing-includes.patch BuildRequires: asciidoc BuildRequires: cmake BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: make BuildRequires: pkgconfig BuildRequires: systemd BuildRequires: boost-devel BuildRequires: fuse-devel BuildRequires: Judy-devel BuildRequires: libdb-devel BuildRequires: pam-devel BuildRequires: systemd-devel BuildRequires: zlib-devel BuildRequires: libselinux >= 3.3-1 # libcrcutil is basically a copylib with a dead upstream # https://code.google.com/archive/p/crcutil/ Provides: bundled(libcrcutil) = 1.0 # spdlog is a copylib that lizardfs changes, so we can't use the system version Provides: bundled(spdlib) = 0.14.0 %global liz_project mfs %global liz_group %{liz_project} %global liz_user %{liz_project} %global liz_datadir %{_localstatedir}/lib/%{liz_project} %global liz_confdir %{_sysconfdir}/%{liz_project} %description LizardFS is an Open Source, easy to deploy and maintain, distributed, fault tolerant file system for POSIX compliant OSes. LizardFS is a fork of MooseFS. For more information please visit http://lizardfs.com # Packages ############################################################ %package master Summary: LizardFS master server Requires: pam %{?systemd_requires} %description master LizardFS master (metadata) server together with metadata restore utility. %package metalogger Summary: LizardFS metalogger server %{?systemd_requires} %description metalogger LizardFS metalogger (metadata replication) server. %package chunkserver Summary: LizardFS data server %{?systemd_requires} %description chunkserver LizardFS data server. %package client Summary: LizardFS client Requires: fuse %description client LizardFS client: mfsmount and lizardfs. %package cgi Summary: LizardFS CGI Monitor Requires: python3 %description cgi LizardFS CGI Monitor. %package cgiserv Summary: Simple CGI-capable HTTP server to run LizardFS CGI Monitor Requires: %{name}-cgi = %{version}-%{release} %{?systemd_requires} %description cgiserv Simple CGI-capable HTTP server to run LizardFS CGI Monitor. %package adm Summary: LizardFS administration utility %description adm LizardFS command line administration utility. # Scriptlets - master ############################################################ %pre master getent group %{liz_group} >/dev/null || groupadd -r %{liz_group} getent passwd %{liz_user} >/dev/null || \ useradd -r -g %{liz_group} -d %{liz_datadir} -s /sbin/nologin \ -c "LizardFS System Account" %{liz_user} exit 0 %post master %systemd_post lizardfs-master.service %preun master %systemd_preun lizardfs-master.service %postun master %systemd_postun_with_restart lizardfs-master.service # Scriptlets - metalogger ############################################################ %pre metalogger getent group %{liz_group} >/dev/null || groupadd -r %{liz_group} getent passwd %{liz_user} >/dev/null || \ useradd -r -g %{liz_group} -d %{liz_datadir} -s /sbin/nologin \ -c "LizardFS System Account" %{liz_user} exit 0 %post metalogger %systemd_post lizardfs-metalogger.service %preun metalogger %systemd_preun lizardfs-metalogger.service %postun metalogger %systemd_postun_with_restart lizardfs-metalogger.service # Scriptlets - chunkserver ############################################################ %pre chunkserver getent group %{liz_group} >/dev/null || groupadd -r %{liz_group} getent passwd %{liz_user} >/dev/null || \ useradd -r -g %{liz_group} -d %{liz_datadir} -s /sbin/nologin \ -c "LizardFS System Account" %{liz_user} exit 0 %post chunkserver %systemd_post lizardfs-chunkserver.service %preun chunkserver %systemd_preun lizardfs-chunkserver.service %postun chunkserver %systemd_postun_with_restart lizardfs-chunkserver.service # Scriptlets - CGI server ############################################################ %post cgiserv %systemd_post lizardfs-cgiserv.service %preun cgiserv %systemd_preun lizardfs-cgiserv.service %postun cgiserv %systemd_postun_with_restart lizardfs-cgiserv.service # Prep, build, install, files... ############################################################ %prep %autosetup -p1 # Remove /usr/bin/env from bash scripts for i in src/tools/mfstools.sh src/master/mfsrestoremaster.in \ src/common/serialization_macros_generate.sh src/data/postinst.in \ utils/coverage.sh utils/cpp-interpreter.sh utils/wireshark/plugins/lizardfs/generate.sh; do sed -i 's@#!/usr/bin/env bash@#!/bin/bash@' $i done # Remove /usr/bin/env from python3 scripts for i in src/cgi/cgiserv.py.in src/cgi/chart.cgi.in src/cgi/lizardfs-cgiserver.py.in src/cgi/mfs.cgi.in utils/wireshark/plugins/lizardfs/make_dissector.py; do sed -i 's@#!/usr/bin/env python3@#!/usr/bin/python3@' $i done %build # Build code taken almost completely ./configure, but with some changes to use # Fedora's build flags rm -rf build-pack mkdir -p build-pack cd build-pack # Shared libraries need to be off because we call some functions that # are hidden which aren't accessible in DSOs %cmake .. \ -DBUILD_SHARED_LIBS:BOOL=OFF \ -DCMAKE_BUILD_TYPE=Release \ -DENABLE_TESTS=NO \ -DCMAKE_INSTALL_PREFIX=/ \ -DENABLE_DEBIAN_PATHS=YES \ -DENABLE_DOCS=YES cat >../Makefile <<END all: make -C build-pack all clean: make -C build-pack clean install: make -C build-pack install distclean: rm -rf build-pack rm -rf external/gtest* rm -f Makefile END make VERBOSE=1 %{?_smp_mflags} %install make install DESTDIR=%{buildroot} install -d -m755 %{buildroot}%{_unitdir} for f in rpm/service-files/*.service ; do install -m644 "$f" %{buildroot}%{_unitdir}/$(basename "$f") done mkdir -p %{buildroot}%{_sysconfdir}/pam.d install -m644 %{SOURCE1} %{buildroot}%{_sysconfdir}/pam.d/lizardfs mkdir -p %{buildroot}%{_sysconfdir}/security/limits.d install -m644 %{SOURCE2} %{buildroot}%{_sysconfdir}/security/limits.d/95-lizardfs.conf %files master %doc NEWS README.md UPGRADE %license COPYING %{_sbindir}/mfsmaster %{_sbindir}/mfsrestoremaster %{_sbindir}/mfsmetadump %{_sbindir}/mfsmetarestore %{_mandir}/man5/mfsexports.cfg.5* %{_mandir}/man5/mfstopology.cfg.5* %{_mandir}/man5/mfsgoals.cfg.5* %{_mandir}/man5/mfsmaster.cfg.5* %{_mandir}/man5/globaliolimits.cfg.5* %{_mandir}/man7/mfs.7* %{_mandir}/man7/moosefs.7* %{_mandir}/man7/lizardfs.7* %{_mandir}/man8/mfsmaster.8* %{_mandir}/man8/mfsmetadump.8* %{_mandir}/man8/mfsmetarestore.8* %{_mandir}/man8/mfsrestoremaster.8* %{_unitdir}/lizardfs-master.service %attr(-,%{liz_user},%{liz_group}) %dir %{liz_datadir} %attr(-,%{liz_user},%{liz_group}) %{liz_datadir}/metadata.mfs.empty # Upstream documentation expects default config files to be stored in /etc/mfs %dir %{liz_confdir} %config %{liz_confdir}/mfsexports.cfg.dist %config %{liz_confdir}/mfstopology.cfg.dist %config %{liz_confdir}/mfsgoals.cfg.dist %config %{liz_confdir}/mfsmaster.cfg.dist %config %{liz_confdir}/globaliolimits.cfg.dist %config(noreplace) %{_sysconfdir}/pam.d/lizardfs %config(noreplace) %{_sysconfdir}/security/limits.d/95-lizardfs.conf %files metalogger %doc NEWS README.md UPGRADE %license COPYING %{_sbindir}/mfsmetalogger %{_mandir}/man5/mfsmetalogger.cfg.5* %{_mandir}/man8/mfsmetalogger.8* %{_unitdir}/lizardfs-metalogger.service %attr(-,%{liz_user},%{liz_group}) %dir %{liz_datadir} %dir %{liz_confdir} %config %{liz_confdir}/mfsmetalogger.cfg.dist %files chunkserver %doc NEWS README.md UPGRADE %license COPYING %{_sbindir}/mfschunkserver %{_mandir}/man5/mfschunkserver.cfg.5* %{_mandir}/man5/mfshdd.cfg.5* %{_mandir}/man8/mfschunkserver.8* %{_unitdir}/lizardfs-chunkserver.service %attr(-,%{liz_user},%{liz_group}) %dir %{liz_datadir} %dir %{liz_confdir} %config %{liz_confdir}/mfschunkserver.cfg.dist %config %{liz_confdir}/mfshdd.cfg.dist %config(noreplace) %{_sysconfdir}/pam.d/lizardfs %config(noreplace) %{_sysconfdir}/security/limits.d/95-lizardfs.conf %files client %doc NEWS README.md UPGRADE %license COPYING %{_bindir}/lizardfs %{_bindir}/mfstools.sh %{_bindir}/mfsmount %{_bindir}/mfsappendchunks %{_bindir}/mfscheckfile %{_bindir}/mfsdeleattr %{_bindir}/mfsdirinfo %{_bindir}/mfsfileinfo %{_bindir}/mfsfilerepair %{_bindir}/mfsgeteattr %{_bindir}/mfsgetgoal %{_bindir}/mfsgettrashtime %{_bindir}/mfsmakesnapshot %{_bindir}/mfsrepquota %{_bindir}/mfsrgetgoal %{_bindir}/mfsrgettrashtime %{_bindir}/mfsrsetgoal %{_bindir}/mfsrsettrashtime %{_bindir}/mfsseteattr %{_bindir}/mfssetgoal %{_bindir}/mfssetquota %{_bindir}/mfssettrashtime %{_mandir}/man1/lizardfs-appendchunks.1* %{_mandir}/man1/lizardfs-checkfile.1* %{_mandir}/man1/lizardfs-deleattr.1* %{_mandir}/man1/lizardfs-dirinfo.1* %{_mandir}/man1/lizardfs-fileinfo.1* %{_mandir}/man1/lizardfs-filerepair.1* %{_mandir}/man1/lizardfs-geteattr.1* %{_mandir}/man1/lizardfs-getgoal.1* %{_mandir}/man1/lizardfs-gettrashtime.1* %{_mandir}/man1/lizardfs-makesnapshot.1* %{_mandir}/man1/lizardfs-repquota.1* %{_mandir}/man1/lizardfs-rgetgoal.1* %{_mandir}/man1/lizardfs-rgettrashtime.1* %{_mandir}/man1/lizardfs-rremove.1* %{_mandir}/man1/lizardfs-rsetgoal.1* %{_mandir}/man1/lizardfs-rsettrashtime.1* %{_mandir}/man1/lizardfs-seteattr.1* %{_mandir}/man1/lizardfs-setgoal.1* %{_mandir}/man1/lizardfs-setquota.1* %{_mandir}/man1/lizardfs-settrashtime.1* %{_mandir}/man1/lizardfs.1* %{_mandir}/man5/iolimits.cfg.5* %{_mandir}/man5/mfsmount.cfg.5* %{_mandir}/man7/mfs.7* %{_mandir}/man7/moosefs.7* %{_mandir}/man7/lizardfs.7* %{_mandir}/man1/mfsmount.1* %{_sysconfdir}/bash_completion.d/lizardfs %dir %{liz_confdir} %config %{liz_confdir}/mfsmount.cfg.dist %config %{liz_confdir}/iolimits.cfg.dist %files cgi %doc NEWS README.md UPGRADE %license COPYING %dir %{_datadir}/mfscgi %{_datadir}/mfscgi/err.gif %{_datadir}/mfscgi/favicon.ico %{_datadir}/mfscgi/index.html %{_datadir}/mfscgi/logomini.png %{_datadir}/mfscgi/mfs.css %{_datadir}/mfscgi/mfs.cgi %{_datadir}/mfscgi/chart.cgi %files cgiserv %doc NEWS README.md UPGRADE %license COPYING %{_sbindir}/lizardfs-cgiserver %{_sbindir}/mfscgiserv %{_mandir}/man8/lizardfs-cgiserver.8* %{_mandir}/man8/mfscgiserv.8* %{_unitdir}/lizardfs-cgiserv.service %files adm %doc NEWS README.md UPGRADE %license COPYING %{_bindir}/lizardfs-admin %{_mandir}/man8/lizardfs-admin.8* %{_bindir}/lizardfs-probe %{_mandir}/man8/lizardfs-probe.8* %changelog * Tue Jul 25 2023 yongle lin <kjpioo2006@gmail.com> - 3.12.0-1 - init package. for previous changelog, refer to https://src.fedoraproject.org/rpms/lizardfs.git commit 4b4b4d1 and previous.
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2