fix which files belong to which rpm and their dependencies

This commit is contained in:
2024-03-25 09:49:37 +01:00
parent c5469efca1
commit d35c7fe5eb

View File

@ -28,6 +28,7 @@ Obsoletes: caRepeater = 1
%if %{defined rhel}
%global epics_host_arch RHEL%{rhel}-%{_host_cpu}
%endif
# else define epics_host_arch as suitable
%description
EPICS is a set of Open Source software tools, libraries and applications
@ -41,6 +42,8 @@ This RPM is a binary-only package.
%package host-devel
Requires: make >= 3.80
BuildRequires: make >= 3.80
BuildRequires: gfa-cross-compiler-links
BuildRequires: wine
Summary: Minimal stuff needed to build EPICS host apps
Requires: %{name} = %{version}-%{release}
@ -100,7 +103,6 @@ Contains EPICS binaries that run on other RHEL versions.
Summary: EPICS base %{EpicsVersion} for wine
Requires: %{name} = %{version}-%{release}
Requires: wine
BuildRequires: wine
%description wine
Allows to run EPICS in wine.
@ -123,7 +125,6 @@ This package can be relocated.
Summary: EPICS base %{EpicsVersion} for development environments
Requires: %{name} = %{version}-%{release}
Requires: %{name}-host-devel = %{version}-%{release}
Requires: %{name}-boot = %{version}-%{release}
Requires: gfa-cross-compiler-links
BuildArch: noarch
AutoReqProv: no
@ -170,7 +171,7 @@ The documentation of EPICS base %{EpicsVersion}.
# Our sources are locally in this directory
# and here we also build
# RPMS and SRPMS will be stored here, too
# RPMS will be stored here, too
%define _topdir %(pwd)
%define _sourcedir %{_topdir}
%define _builddir %{_topdir}
@ -180,25 +181,33 @@ The documentation of EPICS base %{EpicsVersion}.
%{__rm} -f modules/RELEASE.*.local
git submodule update --init --recursive modules
%{__mkdir_p} RPMS
%{__mkdir_p} SRPMS
%build
%if %{defined epics_host_arch}
export EPICS_HOST_ARCH=%{epics_host_arch}
%endif
%{__make} INSTALL_LOCATION=%{buildroot}/%{prog_folder} FINAL_LOCATION=%{prog_folder}
%{__make} INSTALL_LOCATION=%{buildroot}/%{prog_folder} copysrc
%{__make} INSTALL_LOCATION=%{buildroot}%{prog_folder} FINAL_LOCATION=%{prog_folder}
%{__make} INSTALL_LOCATION=%{buildroot}%{prog_folder} copysrc
# remove files we do not need
shopt -s extglob
%{__rm} -f %{buildroot}/%{prog_folder}/bin/{V,RTEMS}*/{*Harness,softIoc,softIocPVA}
%{__rm} -f %{buildroot}/%{prog_folder}/bin/RTEMS*/TEMP.*
%{__rm} -f %{buildroot}%{prog_folder}/bin/{V,RTEMS}*/{*Harness,softIoc,softIocPVA}
%{__rm} -f %{buildroot}%{prog_folder}/bin/RTEMS*/TEMP.*
# fix permissions of caRepeater.service
%{__chmod} 644 %{buildroot}/%{prog_folder}/bin/*/caRepeater.service
%{__chmod} 644 %{buildroot}%{prog_folder}/bin/*/caRepeater.service
# install the profile script
%{__install} epics-base.sh %{buildroot}/%{prog_folder}/bin
%{__install} epics-base.sh %{buildroot}%{prog_folder}/bin
# copy over old libraries for compatibility
%if %{?rhel} > 7
%{__cp} /opt/RHEL7/lib64/libreadline.so.6 %{buildroot}%{prog_folder}/lib/RHEL7-x86_64
%endif
%if %{?rhel} > 8
%{__cp} /opt/RHEL7/lib64/libtinfo.so.5 %{buildroot}%{prog_folder}/lib/RHEL7-x86_64
%{__cp} /opt/RHEL8/lib64/libreadline.so.7 %{buildroot}%{prog_folder}/lib/RHEL8-x86_64
%endif
# Do not use install section because build already installed
# and install will delete our buildroot!
@ -235,6 +244,9 @@ then
%{__rm} -f $SYSTEMD_DIR/caRepeater.service
%{__ln_s} "$(/usr/bin/ls -dvr1 /usr/local/epics/base-+([0-9]).+([0-9]).+([0-9])/bin/%{epics_host_arch}/caRepeater.service 2>/dev/null | /usr/bin/head -n1)" $SYSTEMD_DIR/ 2>/dev/null
systemctl daemon-reload
# Do not disable or restart caRepeater.service
# because EPICS clients cannot handle that.
# Next reboot will take care of this.
fi
%files
@ -251,36 +263,49 @@ fi
%{prog_folder}/db
%{prog_folder}/bin/epics-base.sh
%{prog_folder}/lib/perl/EpicsHostArch.pl
%{prog_folder}/lib/perl/CA.pm
%dir %{prog_folder}/lib/perl
%dir %{prog_folder}/lib/perl/*
%dir %{prog_folder}/lib/perl/*/*-linux-thread-multi
%{prog_folder}/lib/perl/*/*-linux-thread-multi/libCap5.so
# Install host binaries but avoid installing *.pl scripts
# and other development tools
%if %{defined rhel}
%dir %{prog_folder}/bin/RHEL%{rhel}*
%{prog_folder}/bin/RHEL%{rhel}*/[Scips]*[^.]??
%{prog_folder}/bin/RHEL%{rhel}*/p2p
%{prog_folder}/bin/RHEL%{rhel}*/msi
%dir %{prog_folder}/lib/RHEL%{rhel}*
%{prog_folder}/lib/RHEL%{rhel}*/*.so*
%endif
%dir %{prog_folder}/bin/%{epics_host_arch}*
%{prog_folder}/bin/%{epics_host_arch}*/[Scips]*[^.]??
%{prog_folder}/bin/%{epics_host_arch}*/p2p
%{prog_folder}/bin/%{epics_host_arch}*/msi
%dir %{prog_folder}/lib/%{epics_host_arch}*
%{prog_folder}/lib/%{epics_host_arch}*/*.so*
###########################################
%files compat
%if %{?rhel} > 7
%{prog_folder}/bin/RHEL7*
%dir %{prog_folder}/bin/RHEL7*
%{prog_folder}/bin/RHEL7*/[Scips]*[^.]??
%{prog_folder}/bin/RHEL7*/p2p
%{prog_folder}/bin/RHEL7*/msi
%dir %{prog_folder}/lib/RHEL7*
%{prog_folder}/lib/RHEL7*/*.so*
%endif
%if %{?rhel} > 8
%{prog_folder}/bin/RHEL8*
%dir %{prog_folder}/bin/RHEL8*
%{prog_folder}/bin/RHEL8*/[Scips]*[^.]??
%{prog_folder}/bin/RHEL8*/p2p
%{prog_folder}/bin/RHEL8*/msi
%dir %{prog_folder}/lib/RHEL8*
%{prog_folder}/lib/RHEL8*/*.so*
%endif
%if %{?rhel} > 9
%{prog_folder}/bin/RHEL9*
%dir %{prog_folder}/bin/RHEL9*
%{prog_folder}/bin/RHEL9*/[Scips]*[^.]??
%{prog_folder}/bin/RHEL9*/p2p
%{prog_folder}/bin/RHEL9*/msi
%dir %{prog_folder}/lib/RHEL9*
%{prog_folder}/lib/RHEL9*/*.so*
%endif
@ -294,6 +319,7 @@ fi
%files boot
%defattr(-,root,root,-)
%dir %{prog_folder}
%dir %{prog_folder}/configure
%{prog_folder}/configure/CONFIG_BASE_VERSION
@ -313,6 +339,7 @@ fi
%dir %{prog_folder}/bin/[a-z]*
%{prog_folder}/bin/[a-z]*/[Scips]*[^.]??
%{prog_folder}/bin/[a-z]*/msi*
%{prog_folder}/bin/[a-z]*/acctst*
%{prog_folder}/bin/[a-z]*/*.dll
# vxWorks and RTEMS
@ -326,29 +353,95 @@ fi
%files host-devel
%defattr(-,root,root,-)
%{prog_folder}/configure
%{prog_folder}/cfg
%{prog_folder}/include
%dir %{prog_folder}/include
%{prog_folder}/include/*.h
%{prog_folder}/include/compiler
%dir %{prog_folder}/include/os
%{prog_folder}/include/os/Linux/
%{prog_folder}/include/os/WIN32/
%{prog_folder}/include/pv/
%{prog_folder}/include/pva/
%{prog_folder}/include/valgrind/
%{prog_folder}/include/flex.skel.static
%{prog_folder}/templates
%if %{defined rhel}
%{prog_folder}/bin/RHEL%{rhel}*/[^Scips]*[^.]??
%{prog_folder}/bin/RHEL%{rhel}*/*.??
%endif
%{prog_folder}/lib/pkgconfig
%{prog_folder}/lib/perl
%{prog_folder}/lib/win*
%{prog_folder}/lib/RTEMS*
%dir %{prog_folder}/cfg
%{prog_folder}/cfg/CONFIG*
%{prog_folder}/cfg/TOOLCHAIN.%{epics_host_arch}*.%{epics_host_arch}*
%{prog_folder}/cfg/TOOLCHAIN.%{epics_host_arch}*.win*
%dir %{prog_folder}/configure
%{prog_folder}/configure/RELEASE
%{prog_folder}/configure/CONFIG*
%{prog_folder}/configure/RULES*
%dir %{prog_folder}/configure/os
%{prog_folder}/configure/os/CONFIG.Common.UnixCommon
%{prog_folder}/configure/os/CONFIG.Common.linuxCommon
%{prog_folder}/configure/os/CONFIG.Common.linux-clang
%{prog_folder}/configure/os/CONFIG.Common.linux-%{_host_cpu}*
%{prog_folder}/configure/os/CONFIG.Common.%{epics_host_arch}*
%{prog_folder}/configure/os/CONFIG.UnixCommon.Common
%{prog_folder}/configure/os/CONFIG.%{epics_host_arch}*.Common
%{prog_folder}/configure/os/CONFIG.%{epics_host_arch}*.%{epics_host_arch}*
%{prog_folder}/configure/os/CONFIG.linux-%{__isa_name}*.Common
%{prog_folder}/configure/os/CONFIG.linux-%{__isa_name}*.linux-%{__isa_name}*
%{prog_folder}/configure/os/CONFIG.linux-%{__isa_name}*.win*
%{prog_folder}/configure/os/CONFIG.Linux.win*
%{prog_folder}/configure/os/CONFIG.win*.win*
%{prog_folder}/configure/os/CONFIG_SITE.Common.linuxCommon
%{prog_folder}/configure/os/CONFIG_SITE.Common.linux-%{__isa_name}*
%{prog_folder}/configure/os/CONFIG_SITE.%{epics_host_arch}*.Common
%{prog_folder}/configure/os/CONFIG_SITE.linux-%{__isa_name}*.Common
%{prog_folder}/configure/os/CONFIG_SITE.linux-%{__isa_name}*.UnixCommon
%{prog_folder}/configure/os/CONFIG_SITE.linux-%{__isa_name}*.linux-%{__isa_name}*
%{prog_folder}/bin/%{epics_host_arch}*/[^Scips]*[^.]??
%{prog_folder}/bin/%{epics_host_arch}*/*.??
%dir %{prog_folder}/lib/pkgconfig
%{prog_folder}/lib/pkgconfig/epics-base.pc
%{prog_folder}/lib/pkgconfig/epics-base-%{epics_host_arch}*.pc
%{prog_folder}/lib/perl/EPICS
%{prog_folder}/lib/perl/DBD*
%{prog_folder}/dbd
###########################################
%files devel
%defattr(-,root,root,-)
%{prog_folder}/bin/[a-z]*/[^Scips]*[^.]??
%{prog_folder}/include/os/vxWorks/
%{prog_folder}/include/os/RTEMS/
%exclude %{prog_folder}/cfg/TOOLCHAIN.%{epics_host_arch}*.%{epics_host_arch}*
%exclude %{prog_folder}/cfg/TOOLCHAIN.%{epics_host_arch}*.win*
%{prog_folder}/cfg/TOOLCHAIN.*
%exclude %{prog_folder}/configure/os/CONFIG.Common.%{epics_host_arch}*
%exclude %{prog_folder}/configure/os/CONFIG.Common.UnixCommon
%exclude %{prog_folder}/configure/os/CONFIG.Common.linuxCommon
%exclude %{prog_folder}/configure/os/CONFIG.Common.linux-clang
%exclude %{prog_folder}/configure/os/CONFIG.Common.linux-%{_host_cpu}*
%exclude %{prog_folder}/configure/os/CONFIG.UnixCommon.Common
%exclude %{prog_folder}/configure/os/CONFIG.%{epics_host_arch}*.Common
%exclude %{prog_folder}/configure/os/CONFIG.%{epics_host_arch}*.%{epics_host_arch}*
%exclude %{prog_folder}/configure/os/CONFIG.linux-%{__isa_name}*.Common
%exclude %{prog_folder}/configure/os/CONFIG.linux-%{__isa_name}*.linux-%{__isa_name}*
%exclude %{prog_folder}/configure/os/CONFIG.linux-%{__isa_name}*.win*
%exclude %{prog_folder}/configure/os/CONFIG.Linux.win*
%exclude %{prog_folder}/configure/os/CONFIG.win*.win*
%exclude %{prog_folder}/configure/os/CONFIG_SITE.Common.linuxCommon
%exclude %{prog_folder}/configure/os/CONFIG_SITE.Common.linux-%{__isa_name}*
%exclude %{prog_folder}/configure/os/CONFIG_SITE.%{epics_host_arch}*.Common
%exclude %{prog_folder}/configure/os/CONFIG_SITE.linux-%{__isa_name}*.Common
%exclude %{prog_folder}/configure/os/CONFIG_SITE.linux-%{__isa_name}*.UnixCommon
%exclude %{prog_folder}/configure/os/CONFIG_SITE.linux-%{__isa_name}*.linux-%{__isa_name}*
%{prog_folder}/configure/os/
%exclude %{prog_folder}/lib/pkgconfig/epics-base.pc
%exclude %{prog_folder}/lib/pkgconfig/epics-base-%{epics_host_arch}*.pc
%{prog_folder}/lib/pkgconfig/
%exclude %{prog_folder}/bin/%{epics_host_arch}*/[^Scips]*[^.]??
%exclude %{prog_folder}/bin/%{epics_host_arch}*/*.??
%exclude %{prog_folder}/bin/*/[^Scips]*[^.]??
%exclude %{prog_folder}/bin/*/*.??
# VxWorks and RTEMS need static libs
%{prog_folder}/lib/V*
%{prog_folder}/lib/RTEMS*
%{prog_folder}/lib/win*
###########################################
@ -356,7 +449,9 @@ fi
%defattr(-,root,root,-)
# Install bulky static libs for Linux targets only on request
%dir %{prog_folder}/lib/RHEL*
%{prog_folder}/lib/RHEL*/*.a
%dir %{prog_folder}/lib/[a-z]*
%{prog_folder}/lib/[a-z]*/*.a
###########################################