diff --git a/epics-base.spec b/epics-base.spec index 144b496bf..bbf564122 100644 --- a/epics-base.spec +++ b/epics-base.spec @@ -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 ###########################################