1 Star 0 Fork 2

brucezhang/cvs

forked from OpenCloudOS Stream/cvs 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
cvs.spec 8.90 KB
一键复制 编辑 原始数据 按行查看 历史
brucezhang 提交于 2025-04-30 15:42 +08:00 . Disable pdf, because texinfo-tex is not provided
%bcond_without cvs_enables_contrib
%bcond_with cvs_enables_extra_test
%bcond_without cvs_enables_kerberos
%bcond_without cvs_enables_pam
%bcond_with cvs_enables_pdf
%bcond_with cvs_enables_xinetd
Name: cvs
Version: 1.11.23
Release: 2%{?dist}
Summary: Concurrent Versions System
URL: https://cvs.nongnu.org/
License: GPL-2.0-or-later AND GPL-1.0-or-later AND Latex2e-translated-notice AND LicenseRef-Fedora-Public-Domain
Source0: https://ftp.gnu.org/non-gnu/cvs/source/stable/%{version}/cvs-%{version}.tar.bz2
Source1: https://ftp.gnu.org/non-gnu/cvs/source/stable/%{version}/cvs-%{version}.tar.bz2.sig
Source2: gpgkey-CB6A07CA90C54234E8A3C8D02C3D4E4C17F231A4.gpg
Source3: cvs.xinetd
Source4: cvs.pam
Source5: cvs.sh
Source6: cvs.csh
Source7: cvs@.service
Source8: cvs.socket
Source9: cvs.target
Source10: cvs.sh.5
Source11: cvs.csh.5
Patch0: cvs-1.11.23-cvspass.patch
Patch1: cvs-1.11.19-extzlib.patch
Patch2: cvs-1.11.19-netbsd-tag.patch
Patch3: cvs-1.11.19-abortabort.patch
Patch4: cvs-1.11.1p1-bs.patch
Patch5: cvs-1.11.21-proxy.patch
Patch7: cvs-1.11.19-logmsg.patch
Patch8: cvs-1.11.19-tagname.patch
Patch9: cvs-1.11.19-comp.patch
Patch11: cvs-1.11.19-tmp.patch
Patch12: cvs-1.11.21-pam.patch
Patch13: cvs-1.11.21-diff.patch
Patch14: cvs-1.11.21-diff-kk.patch
Patch15: cvs-1.11.21-sort.patch
Patch17: cvs-1.11.22-ipv6-proxy.patch
Patch19: cvs-1.11.23-getline64.patch
Patch20: cvs-1.11.22-stdinargs.patch
Patch21: cvs-1.11.23-cve-2010-3846.patch
Patch22: cvs-1.11.23-remove_undefined_date_from_cvs_1_header.patch
Patch23: cvs-1.11.23-sanity.patch
Patch24: cvs-1.11.23-make_make_check_sanity_testing_verbose.patch
Patch25: cvs-1.11.23-Set-PAM_TTY-and-PAM_RHOST-on-PAM-authentication.patch
Patch26: cvs-1.11.23-Back-port-KeywordExpand-configuration-keyword.patch
Patch27: cvs-1.11.23-Allow-CVS-server-to-use-any-Kerberos-key-with-cvs-se.patch
Patch28: cvs-1.11.23-Fix-proxy-response-parser.patch
Patch29: cvs-1.11.23-doc-Add-mandatory-argument-to-sp.patch
Patch30: cvs-1.11.23-crypt-2.diff
Patch31: cvs-1.11.23-Pass-compilation-with-Wformat-security.patch
Patch32: cvs-1.11.23-Fix-CVE-2017-12836.patch
Patch33: cvs-1.11.23-Close-a-configuration-file-on-a-syntax-error.patch
Patch34: cvs-1.11.23-Use-diff-label.patch
Patch35: cvs-1.11.23-c99.patch
Patch36: cvs-1.11.23-tests-Call-nonobsolete-grep-F.patch
BuildRequires: autoconf >= 2.58
BuildRequires: automake >= 1.7.9
BuildRequires: coreutils
BuildRequires: findutils
%if %{with cvs_enables_pdf}
BuildRequires: ghostscript
BuildRequires: groff
BuildRequires: texinfo-tex
%endif
BuildRequires: glibc-common
BuildRequires: gnupg2
BuildRequires: gzip
%if %{with cvs_enables_kerberos}
BuildRequires: krb5-devel
%endif
BuildRequires: libtool
BuildRequires: make
%if %{with cvs_enables_pam}
BuildRequires: pam-devel
%endif
%if %{with cvs_enables_contrib}
BuildRequires: perl-generators
%endif
BuildRequires: systemd
BuildRequires: texinfo
BuildRequires: vim-minimal
BuildRequires: zlib-devel
Requires: vim-minimal
%description
CVS (Concurrent Versions System) is a version control system that can
record the history of your files (usually, but not always, source
code). CVS only stores the differences between versions, instead of
every version of every file you have ever created. CVS also keeps a log
of who, when, and why changes occurred.
CVS is very helpful for managing releases and controlling the
concurrent editing of source files among multiple authors. Instead of
providing version control for a collection of files in a single
directory, CVS provides version control for a hierarchical collection
of directories consisting of revision controlled files. These
directories and files can then be combined together to form a software
release.
%if %{with cvs_enables_contrib}
%package contrib
Summary: Unsupported contributions collected by CVS developers
License: GPL-2.0-or-later AND check-cvs
BuildArch: noarch
Requires: %{name} = %{version}-%{release}
%description contrib
Scripts sent to CVS developers by contributors around the world. These
contributions are really unsupported.
%endif
%if %{with cvs_enables_xinetd}
%package inetd
Summary: CVS server configuration for xinetd
License: GPL-1.0-or-later
BuildArch: noarch
Requires: %{name} = %{version}-%{release}
Requires: xinetd
%description inetd
A CVS server can be run locally, via a remote shell or by an inetd server.
This package provides a configuration for xinetd, an inetd implementation.
%endif
%package doc
Summary: Additional documentation for Concurrent Versions System
License: GPL-1.0-or-later AND Latex2e-translated-notice
%if !%{with cvs_enables_pdf}
BuildArch: noarch
%endif
%description doc
FAQ, RCS format description, parallel development how-to, and Texinfo
pages in PDF.
%prep
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
%setup -q
%patch -p1 -P 0
%patch -p1 -P 1
%patch -p1 -P 2
%patch -p1 -P 3
%if !%{with cvs_enables_extra_test}
%patch -p1 -P 4
%endif
%patch -p1 -P 5
%patch -p1 -P 7
%patch -p1 -P 8
%patch -p1 -P 9
%patch -p1 -P 11
%if %{with cvs_enables_pam}
%patch -p1 -P 12
%endif
%patch -p1 -P 13
%patch -p1 -P 14
%patch -p1 -P 15
%patch -p1 -P 17
%patch -p1 -P 19
%patch -p1 -P 20
%patch -p1 -P 21
%patch -p1 -P 22
%patch -p1 -P 23
%patch -p1 -P 24
%patch -p1 -P 25
%patch -p1 -P 26
%patch -p1 -P 27
%patch -p1 -P 28
%patch -p1 -P 29
%patch -p1 -P 30
%patch -p1 -P 31
%patch -p1 -P 32
%patch -p1 -P 33
%patch -p1 -P 34
%patch -p1 -P 35
%patch -p1 -P 36
rm aclocal.m4 compile configure doc/mdate-sh doc/texinfo.tex \
install-sh mdate-sh missing mkinstalldirs ylwrap
rm {.,contrib,diff,doc,lib,man,src,tools,vms,windows-NT,windows-NT/SCC,zlib}/Makefile.in
rm -r zlib
find emx -type f \! -name Makefile.in -delete
find os2 -type f \! -name Makefile.in -delete
find vms -type f \! \( -name Makefile.am -o -name config.h.in \) -delete
find windows-NT -type f \! \( -name Makefile.am -o -name config.h.in -o -name fix-msvc-mak\* \) -delete
truncate --size=0 lib/fncase.c lib/fnmatch.c lib/fnmatch.h.in lib/gethostname.c \
lib/memmove.c lib/mkdir.c lib/rename.c lib/strerror.c
%if %{with cvs_enables_pdf}
rm doc/*.pdf
%endif
for F in FAQ; do
iconv -f ISO-8859-1 -t UTF-8 < "$F" > "${F}.UTF8"
touch -r "$F"{,.UTF8}
mv "$F"{.UTF8,}
done
%build
autoreconf --force --install
%if %{with cvs_enables_pam}
PAM_CONFIG="--enable-pam"
%endif
%if %{with cvs_enables_kerberos}
k5prefix=`krb5-config --prefix`
CPPFLAGS=-I${k5prefix}/include/kerberosIV; export CPPFLAGS
CFLAGS=-I${k5prefix}/include/kerberosIV; export CFLAGS
LIBS="-lk5crypto"; export LIBS
KRB_CONFIG="--with-gssapi --without-krb4 --enable-encryption"
%endif
%configure CFLAGS="$CFLAGS $RPM_OPT_FLAGS \
-D_FILE_OFFSET_BITS=64 %-D_LARGEFILE64_SOURCE" \
$PAM_CONFIG $KRB_CONFIG CSH=/bin/csh
%{make_build} all doc
%check
if [ $(id -u) -ne 0 ] ; then
make check
fi
%install
%{make_install}
gzip %{buildroot}/%{_infodir}/cvs* || true
rm -f %{buildroot}/%{_infodir}/dir
%if %{with cvs_enables_xinetd}
install -D -m 644 %{SOURCE3} %{buildroot}/%{_sysconfdir}/xinetd.d/%{name}
%endif
mkdir -p %{buildroot}%{_localstatedir}/%{name}
%if %{with cvs_enables_pam}
install -D -m 644 %{SOURCE4} %{buildroot}/%{_sysconfdir}/pam.d/cvs
%endif
install -D -m 644 %{SOURCE5} %{buildroot}/%{_sysconfdir}/profile.d/cvs.sh
install -D -m 644 %{SOURCE6} %{buildroot}/%{_sysconfdir}/profile.d/cvs.csh
install -p -m 644 -D %{SOURCE7} %{buildroot}%{_unitdir}/cvs\@.service
install -p -m 644 -D %{SOURCE8} %{buildroot}%{_unitdir}/cvs.socket
install -p -m 644 -D %{SOURCE9} %{buildroot}%{_unitdir}/cvs.target
install -D -m 644 %{SOURCE10} %{buildroot}/%{_mandir}/man5/cvs.sh.5
install -D -m 644 %{SOURCE11} %{buildroot}/%{_mandir}/man5/cvs.csh.5
%if !%{with cvs_enables_contrib}
rm -f %{buildroot}/%{_bindir}/rcs2log
rm -fr %{buildroot}/%{_datadir}/%{name}
%endif
%post
%systemd_post cvs.socket
exit 0
%preun
%systemd_preun cvs.socket
%systemd_preun cvs.target
exit 0
%postun
%systemd_postun_with_restart cvs.socket
%files
%license COPYING*
%doc AUTHORS BUGS DEVEL-CVS HACKING MINOR-BUGS NEWS PROJECTS TODO README
%{_bindir}/%{name}*
%{_mandir}/man1/%{name}.*
%{_mandir}/man5/%{name}.*
%{_mandir}/man8/cvsbug.*
%{_infodir}/{cvs,cvsclient}.info*
%dir %{_localstatedir}/%{name}
%if %{with cvs_enables_pam}
%config(noreplace) %{_sysconfdir}/pam.d/%{name}
%endif
%config(noreplace) %{_sysconfdir}/profile.d/%{name}.*
%{_unitdir}/%{name}*
%if %{with cvs_enables_contrib}
%files contrib
%{_bindir}/rcs2log
%{_datadir}/%{name}
%endif
%if %{with cvs_enables_xinetd}
%files inetd
%config(noreplace) %{_sysconfdir}/xinetd.d/%{name}
%endif
%files doc
%license COPYING
%doc FAQ doc/RCSFILES doc/*.pdf
%changelog
* Wed Apr 30 2025 bbrucezhang <bbrucezhang@tencent.com> - 1.11.23-2
- Disable pdf, because texinfo-tex is not provided
* Mon Jul 01 2024 OpenCloudOS Release Engineering <releng@opencloudos.tech> - 1.11.23-1
- initial build
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/bbrucezhang/cvs.git
git@gitee.com:bbrucezhang/cvs.git
bbrucezhang
cvs
cvs
master

搜索帮助