Summary: A source code preprocessor for hep applications Name: patchy %define version 4.15 Version: %{version} Release: 12%{?dist}2a Source0: patchy-%{version}.tar.gz Patch0: patchy-%{version}-p4boot-macosx10.15.patch Patch1: patchy-%{version}-gfortran.patch Patch2: patchy-%{version}-i386.patch License: CERN Group: CERNLIB BuildRoot: %{_tmppath}/patchy-root BuildArch: fat %description Patchy is a family of programs for source code management, such as absorbing machine dependence through preprocessing, etc. The package is distributed as a part of CERNLIB and requires LICENSE agreement with CERN. %package symlinks Summary: symbolic links to /opt/cern/2006/bin Group: CERNLIB %description symlinks Symbolic links to use patchy programs as installed in the default CERNLIB command search path. Requires: patchy %prep %setup -q -c %{name}-%{version} mv %{name}-%{version} ARM64 pushd ARM64 %patch0 -p1 -b .p4boot %ifnos darwin if [ `which gfortran | grep -vc 'no gfortran'` -eq 1 ]; then %patch2 -p1 -b .i386 fi %endif %ifnarch ppc mv p4inceta-i386 p4inceta mv p4sub-i386.diff p4sub.diff mv rceta-i386.sh rceta.sh %else mv p4inceta-ppc p4inceta mv p4sub-ppc.diff p4sub.diff mv rceta-ppc.sh rceta.sh %endif if [ `which gfortran | grep -vc 'no gfortran'` -eq 1 ]; then cat $RPM_SOURCE_DIR/patchy-%{version}-gfortran.patch >> p4sub.diff mv p4boot.sh0 p4boot.sh0.orig set CLD = "f77" sed -e 's;-fno-globals;-fallow-argument-mismatch -fallow-invalid-boz;g' -e 's;-Wno-globals;;g' p4boot.sh0.orig > p4boot.sh0 mv rceta.sh rceta.sh.orig sed -e 's;-fno-globals;-fallow-argument-mismatch -fallow-invalid-boz;' -e 's;-Wno-globals;;g' -e 's;f77;gfortran;' -e's;^ rceta; ./rceta;' rceta.sh.orig > rceta.sh fi popd cp -a ARM64 X86_64 %build pushd ARM64 mkdir -p $RPM_BUILD_ROOT/ARM64/opt/cern/patchy/%{version}/bin mkdir -p $RPM_BUILD_ROOT/ARM64/opt/cern/2006/bin export CERN=$RPM_BUILD_ROOT/ARM64/opt/cern if [ `which gfortran | grep -vc 'no gfortran'` -eq 1 ]; then export FC=`which gfortran` export PATH=.:$PATH:`pwd`:$CERN/patchy/%{version}/src fi arch -arm64 \ csh -c "printenv CERN; printenv FC; setenv PATH $PATH\:.:$CERN/patchy/4.15/src; printenv PATH; ./make_patchy" cp -a $RPM_BUILD_ROOT/ARM64/opt . popd pushd X86_64 mkdir -p $RPM_BUILD_ROOT/X86_64/opt/cern/patchy/%{version}/bin mkdir -p $RPM_BUILD_ROOT/X86_64/opt/cern/2006/bin export CERN=$RPM_BUILD_ROOT/X86_64/opt/cern if [ `which gfortran | grep -vc 'no gfortran'` -eq 1 ]; then export FC=`which gfortran` export PATH=.:$PATH:`pwd`:$CERN/patchy/%{version}/src fi arch -x86_64 \ csh -c "printenv CERN; printenv FC; setenv PATH $PATH\:.:$CERN/patchy/4.15/src; printenv PATH; ./make_patchy" cp -a $RPM_BUILD_ROOT/X86_64/opt . popd %install rm -rf $RPM_BUILD_ROOT PWD=`pwd` rm -rf ARM64-root mkdir -p ARM64-root pushd ARM64 cp -a opt ../ARM64-root strip ../ARM64-root/opt/cern/patchy/%{version}/bin/* rm -rf ../ARM64-root/opt/cern/patchy/%{version}/src popd rm -rf X86_64-root mkdir -p X86_64-root pushd X86_64 cp -a opt ../X86_64-root strip ../X86_64-root/opt/cern/patchy/%{version}/bin/* rm -rf ../X86_64-root/opt/cern/patchy/%{version}/src popd ## Make Universal Binaries filelist=$(find ./ARM64-root -type f | xargs file | sed -e 's,^\./ARM64-root/,,g' | \ grep -E \(Mach-O\)\|\(ar\ archive\) |sed -e 's,:.*,,g' -e '/\for\ architecture/d') for i in $filelist do /usr/bin/lipo -create ARM64-root/$i X86_64-root/$i -output `basename $i` && \ (cp -f `basename $i` ARM64-root/$i) || : done # check header files for i in `find ARM64-root -name "*.h" -type f` do TARGET=`echo $i | sed -e "s,.*ARM64-root,,"` TEMP=`diff -u ARM64-root/$TARGET X86_64-root/$TARGET > /dev/null || echo different` if [ -n "$TEMP" ]; then mv X86_64-root/$TARGET ARM64-root/${TARGET%.*}-x86_64.h mv ARM64-root/$TARGET ARM64-root/${TARGET%.*}-arm64.h FILE=${TARGET##*/} FILE=${FILE%.*} cat < ARM64-root/$TARGET #if defined (__arm64__) #include "${FILE}-arm64.h" #elif defined( __x86_64__ ) #include "${FILE}-x86_64.h" #endif EOF fi done # install mkdir -p %{buildroot} tar cf - -C ARM64-root . | tar xpf - -C %{buildroot} # create symlinks cd %{buildroot}/opt/cern/2006/bin for i in ../../patchy/%{version}/bin/*; do if [ x"$i" != x"../../patchy/%{version}/bin/fcasplit" ]; then ln -s $i . fi done %clean rm -rf $RPM_BUILD_ROOT %files %doc README /opt/cern/patchy/%{version}/bin/* %files symlinks /opt/cern/2006/bin/* %changelog * Thu Jun 30 2022 Keisuke Fujii 4.15-12hepx2a - 2nd release on MacOS 12 - now provided as a fat binary - built with OSXWS 12 beta * Wed Jun 29 2022 Keisuke Fujii 4.15-12hepx1a - 1st release on MacOS 12 - added -fallow-argument-mismatch -fallow-invalid-boz - built with OSXWS 12 beta * Wed Jan 22 2020 Keisuke Fujii 4.15-10.15hepx1a - 1st release on MacOSX 10.15 - replaced p4sub patch to remove '-posix' flag from CFLAGS - built with OSXWS 10.15 * Thu Dec 19 2019 Keisuke Fujii 4.15-10.14hepx1b - 2nd release on MacOSX 10.14 - replaced p4sub patch to remove '-posix' flag from CFLAGS - built with OSXWS 10.14 * Mon Dec 24 2018 Keisuke Fujii 4.15-10.14hepx1a - 1st release on MacOSX 10.14 - replaced p4sub patch to remove '-posix' flag from CFLAGS - built with OSXWS 10.13 * Mon Apr 02 2018 Keisuke Fujii 4.15-10.13hepx1a - 2nd release on MacOSX 10.13 - built with OSXWS 10.13 * Mon Dec 26 2016 Keisuke Fujii 4.15-10.12hepx1b - 2nd release on MacOSX 10.12 - built with OSXWS 10.12 * Sun Dec 18 2016 Keisuke Fujii 4.15-10.12hepx1a - 1st release on MacOSX 10.12 - built with OSXWS 10.11 * Mon Feb 08 2016 Keisuke Fujii 4.15-10.11hepx1a - 1st release on MacOSX 10.11 * Mon Dec 22 2014 Keisuke Fujii 4.15-10.10hepx1a - 1st release on MacOSX 10.10 * Wed Aug 06 2014 Keisuke Fujii 4.15-10.9hepx1b - 2nd release on MacOSX 10.9 * Fri Nov 29 2013 Keisuke Fujii 4.15-10.9hepx1a - 1st release on MacOSX 10.9 * Wed May 02 2012 Keisuke Fujii 4.15-10.7hepx1a - 1st release on MacOSX 10.7 * Sun Mar 07 2010 Keisuke Fujii 4.15-10.6hepx1a - 1st release on MacOSX 10.6 * Thu Aug 14 2008 Keisuke Fujii 4.15-10.5hepx1b - 2nd release on MacOSX 10.5 - fcasplit removed from symlinks * Wed Mar 26 2008 Keisuke Fujii 4.15-10.5hepx1a - 1st release on MacOSX 10.5 for Intel Macs * Wed Apr 18 2007 Keisuke Fujii 4.15-4e - 2nd release on MacOSX for Intel Macs * Fri Oct 06 2006 Keisuke Fujii 4.15-4d - 1st release on MacOSX for Intel Macs * Fri Nov 25 2005 Keisuke Fujii 4.15-4c - 3rd release on MacOSX - 10.4 linked against libgfortran.1.dylib instead of libgfortran.0.dylib - reorganized gfortran patches so that they work also on linux * Mon Nov 14 2005 Keisuke Fujii 4.15-4b - 2nd release on MacOSX 10.4 - reorganized gfortran patches so that they work also on linux * Mon Oct 10 2005 Keisuke Fujii 4.15-4a - 1st release on MacOSX 10.4 * Mon Jan 12 2004 Keisuke Fujii 4.15-3d - 1st release on MacOSX 10.3 * Thu Oct 10 2002 Keisuke Fujii - 1st release built on MacOS X Release 10.2 * Thu Oct 11 2001 Keisuke Fujii - 1st release built on MacOS X Release 10.1 * Sat Apr 28 2001 Keisuke Fujii - 1st release built on MacOS X Release 10.0.01 * Fri Dec 3 1999 Keisuke Fujii - rebuilt with cernlib 2000.