%define dotests 1 Summary: A version control system Name: cvs Version: 1.11.23 Release: 2 License: GPL+ Group: Development/Tools Source0: ftp://ftp.gnu.org/non-gnu/cvs/source/stable/%{version}/%{name}-%{version}.tar.bz2 Source1: ftp://ftp.gnu.org/non-gnu/cvs/source/stable/%{version}/%{name}-%{version}.tar.bz2.sig Source2: cvs.sh Source3: cvs.csh URL: http://www.cvshome.org/ Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildRequires: autoconf >= 2.58 BuildRequires: automake >= 1.7.9 BuildRequires: libtool BuildRequires: zlib-devel BuildRequires: info Requires: zlib, info Requires: /sbin/install-info Requires: krb5-libs >= 1.16.1-2 Patch0: cvs-%{version}-cvspass.patch Patch1: cvs-%{version}-extzlib.patch Patch2: cvs-%{version}-netbsd-tag.patch Patch3: cvs-%{version}-abortabort.patch Patch4: cvs-%{version}-bs.patch Patch5: cvs-%{version}-proxy.patch Patch7: cvs-%{version}-logmsg.patch Patch8: cvs-%{version}-tagname.patch Patch9: cvs-%{version}-comp.patch Patch11: cvs-%{version}-tmp.patch Patch13: cvs-%{version}-diff.patch Patch14: cvs-%{version}-diff-kk.patch Patch15: cvs-%{version}-sort.patch Patch17: cvs-%{version}-ipv6-proxy.patch Patch19: cvs-%{version}-getline64.patch Patch20: cvs-%{version}-stdinargs.patch %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. %prep %setup -q export PATH=/opt/freeware/bin:$PATH %patch0 -p1 -b .cvspass %patch1 -p1 -b .extzlib %patch2 -p1 -b .netbsd-tag %patch3 -p1 -b .abortabort %patch4 -p1 -b .bs %patch5 -p1 -b .proxy %patch7 -p1 -b .log %patch8 -p1 %patch9 -p1 %patch11 -p1 -b .tmp %patch13 -p1 -b .diff %patch14 -p1 -b .diff-kk %patch15 -p1 -b .env %patch17 -p1 -b .ipv6 %patch19 -p1 -b getline64 %patch20 -p1 -b .stdinargs # Duplicate source for 32 & 64 bits rm -rf /tmp/%{name}-%{version}-32bit cp -pr . /tmp/%{name}-%{version}-32bit rm -fr * mv /tmp/%{name}-%{version}-32bit 32bit cp -pr 32bit 64bit # Apply a patch to the generated files, OR # run autoreconf and require autoconf >= 2.58, automake >= 1.7.9 %build # First build 64bit version cd 64bit export CC="gcc -maix64" export OBJECT_MODE=64 export CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE" export LDFLAGS="-L/opt/freeware/lib64 -L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib64:/opt/freeware/lib:/usr/lib:/lib" ./configure \ --prefix=%{_prefix} \ --localstatedir=/var \ --mandir=%{_mandir} \ --infodir=%{_infodir} make %{?_smp_mflags} if [ "%{dotests}" == 1 ] then ( gmake -k check || true ) /usr/sbin/slibclean fi #Now build 32bit cd ../32bit export CC="gcc -maix32 -D_LARGE_FILES" export OBJECT_MODE=32 export CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE" export LDFLAGS="-L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib:/usr/lib:/lib -Wl,-bmaxdata:0x80000000" ./configure \ --prefix=%{_prefix} \ --localstatedir=/var \ --mandir=%{_mandir} \ --infodir=%{_infodir} make %{?_smp_mflags} if [ "%{dotests}" == 1 ] then ( gmake -k check || true ) /usr/sbin/slibclean fi %install [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} cd 64bit export OBJECT_MODE_64 make install DESTDIR="$RPM_BUILD_ROOT" /usr/bin/strip ${RPM_BUILD_ROOT}%{_bindir}/* || : ( cd ${RPM_BUILD_ROOT}/%{_prefix}/bin for f in $(ls -1| grep -v -e _32 -e _64) do mv $f "$f"_64 done ) cd ../32bit export OBJECT_MODE=32 make install DESTDIR="$RPM_BUILD_ROOT" /usr/bin/strip ${RPM_BUILD_ROOT}%{_bindir}/* || : ( cd ${RPM_BUILD_ROOT}%{_prefix}/bin for f in $(ls -1| grep -v -e _32 -e _64) do mv $f "$f"_32 ln -sf "$f"_64 $f done ) gzip --best ${RPM_BUILD_ROOT}%{_infodir}/cvs* || true rm -f ${RPM_BUILD_ROOT}%{_infodir}/dir mkdir -p ${RPM_BUILD_ROOT}/var/%{name} mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d cp %{SOURCE2} ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d/cvs.sh cp %{SOURCE3} ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d/cvs.csh chmod 0644 ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d/cvs* # Don't let find provides to add csh to automatic requires chmod a-x ${RPM_BUILD_ROOT}%{_datadir}/%{name}/contrib/sccs2rcs ( cd ${RPM_BUILD_ROOT} for dir in bin do mkdir -p usr/${dir} cd usr/${dir} ln -sf ../../..%{_prefix}/${dir}/* . cd - done ) %post /sbin/install-info /%{_infodir}/%{name}.info.gz %{_infodir}/dir || : /sbin/install-info /%{_infodir}/cvsclient.info.gz %{_infodir}/dir || : %preun if [ $1 = 0 ]; then /sbin/install-info --delete %{_infodir}/%{name}.info.gz %{_infodir}/dir || : /sbin/install-info --delete %{_infodir}/cvsclient.info.gz %{_infodir}/dir || : fi %clean [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} %files %defattr(-,root,system) %doc 32bit/AUTHORS 32bit/BUGS 32bit/COPYING* 32bit/DEVEL-CVS 32bit/FAQ 32bit/HACKING 32bit/MINOR-BUGS 32bit/NEWS %doc 32bit/PROJECTS 32bit/TODO 32bit/README %{_bindir}/* %{_mandir}/man?/* %{_infodir}/*.info* %{_datadir}/%{name} %dir /var/%{name} %{_sysconfdir}/profile.d/* %changelog * Tue Sep 4 2018 Ravi Hirekurabar - 1.11.23-2 - Built with gcc - Built with krb5 rpm - Built 64bit * Tue Aug 9 2016 Ravi Hirekurabar - 1.11.23-1 - Initial Port.