%{!?dotests: %define dotests 1} %define _libdir64 %{_libdir}64 Name: harfbuzz Version: 7.1.0 Release: 1 Summary: Text shaping library License: MIT URL: https://github.com/harfbuzz/harfbuzz Source0: https://github.com/%{name}/%{name}/releases/download/%{version}/%{name}-%{version}.tar.xz Group: System Environment/Libraries #Patch0: harfbuzz-1.2.6-aix-configure.patch #Patch1: harfbuzz-1.2.6-aix-check-headers.patch #Patch0: harfbuzz-2.8.1-enable-hb_lean.patch BuildRequires: freetype2-devel >= 2.12.1 BuildRequires: cairo-devel >= 1.14.6 BuildRequires: glib2-devel >= 2.56.1 BuildRequires: pkg-config >= 0.29.2 BuildRequires: cairo >= 1.14.6 BuildRequires: gettext >= 0.21 Requires: libgcc >= 10.3.0 Requires: freetype2 >= 2.12.1 Requires: glib2 >= 2.56.1 Requires: cairo >= 1.14.6 Requires: gettext >= 0.21 %description HarfBuzz is an implementation of the OpenType Layout engine. The library is available as 32-bit and 64-bit. %package devel Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} Requires: libgcc >= 10.3.0 Requires: libstdc++ >= 10.3.0 Requires: glib2 >= 2.56.1 Requires: glib2-devel >= 2.56.1 Requires: cairo >= 1.14.6 Requires: freetype2 >= 2.12.1 Requires: freetype2-devel >= 2.12.1 Group: Development/Libraries %description devel The %{name}-devel package contains libraries and header files for developing applications that use %{name}. #%package icu #Summary: Harfbuzz ICU support library #Requires: %{name}%{?_isa} = %{version}-%{release} #%description icu #This package contains Harfbuzz ICU support library. %prep echo "AIXX11=%{AIXX11}" echo "DO_TESTS=%{dotests}" %setup -q #if [ ! -d /usr/icu4c/include/unicode/ ]; then # echo "Building HarfBuzz requires the ICU4C.adt fileset to be installed." # exit 1 #fi #%patch0 -p 1 -b .aix #%patch1 -p 1 -b .aix #%patch0 # Duplicate source for 32 & 64 bits rm -rf /tmp/%{name}-%{version}-32bit mkdir /tmp/%{name}-%{version}-32bit mv * /tmp/%{name}-%{version}-32bit mkdir 32bit mv /tmp/%{name}-%{version}-32bit/* 32bit rm -rf /tmp/%{name}-%{version}-32bit mkdir 64bit cp -rp 32bit/* 64bit/ %build export PKG_CONFIG_PATH=/opt/freeware/lib/pkgconfig export PATH=/opt/freeware/bin:/usr/bin:/usr/linux/bin:/usr/local/bin:/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:. export LIBPATH= export RM="/usr/bin/rm -f" export AR="/usr/bin/ar -X32_64" export NM="/usr/bin/nm -X32_64" export CONFIG_SHELL=/opt/freeware/bin/bash export CONFIG_ENV_ARGS=/opt/freeware/bin/bash export CFLAGS="-I/opt/freeware/include/cairo -I/opt/freeware/include/glib-2.0 -I/opt/freeware/include/freetype2 -I/usr/include -D_LINUX_SOURCE_COMPAT" export CXXFLAGS="" export CPPFLAGS="" #export ICU_CFLAGS="-I/usr/icu4c/include -I/usr/icu4c/icudt40b" #export ICU_LIBS="-L/usr/icu4c/lib" # first build the 64-bit version cd 64bit export CC="/opt/freeware/bin/gcc -O2 -maix64 -pthread" export CXX="/opt/freeware/bin/g++ -O2 -maix64 -pthread" export OBJECT_MODE=64 export LDFLAGS="-L%{_builddir}/%{name}-%{version}/64bit/src/.libs -L/opt/freeware/lib64 -L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib64:/opt/freeware/lib:/usr/lib:/lib " ./configure \ --prefix=%{_prefix} \ --mandir=%{_prefix}/man \ --sysconfdir=%{_sysconfdir} \ --libdir=%{_libdir64} \ --with-cairo=yes \ --with-glib=yes \ --with-freetype=yes \ --disable-silent-rules \ --enable-shared --disable-static # --with-icu=yes gmake %{?_smp_mflags} if [ "%{dotests}" == 1 ] then ( gmake -k check || true ) /usr/sbin/slibclean fi cd .. # now build the 32-bit version cd 32bit export CC="/opt/freeware/bin/gcc -O2 -maix32 -D_LARGE_FILES -pthread" export CXX="/opt/freeware/bin/g++ -O2 -maix32 -D_LARGE_FILES -pthread" export LDFLAGS="-L%{_builddir}/%{name}-%{version}/32bit/src/.libs -L/opt/freeware/lib -Wl,-bmaxdata:0x80000000 -Wl,-blibpath:/opt/freeware/lib:/usr/lib:/lib " export OBJECT_MODE=32 ./configure \ --prefix=%{_prefix} \ --mandir=%{_prefix}/man \ --sysconfdir=%{_sysconfdir} \ --libdir=%{_libdir} \ --with-cairo=yes \ --with-glib=yes \ --with-freetype=yes \ --disable-silent-rules \ --enable-shared --disable-static # --with-icu=yes gmake %{?_smp_mflags} if [ "%{dotests}" == 1 ] then ( gmake -k check || true ) /usr/sbin/slibclean fi cd .. %install [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT export RM="/usr/bin/rm -f" # setup environment for 32-bit and 64-bit builds export AR="/usr/bin/ar -X32_64" export NM="/usr/bin/nm -X32_64" # install 64-bit version export OBJECT_MODE=64 cd 64bit gmake DESTDIR=$RPM_BUILD_ROOT install cd .. LIBS="libharfbuzz-subset libharfbuzz" #libharfbuzz-icu" # Extract the 64 bit object from the lib cd ${RPM_BUILD_ROOT}%{_libdir64} for LIB in $LIBS; do /usr/bin/ar -X64 xv $LIB.a $LIB.so.0 done cd - # Rename executables for f in ${RPM_BUILD_ROOT}%{_bindir}/* ; do mv ${f} ${f}_64 done # install 32-bit version export OBJECT_MODE=32 cd 32bit gmake DESTDIR=$RPM_BUILD_ROOT install cd .. # add the 64-bit shared objects to the shared library containing already the # 32-bit shared objects and extract the 32 bit shared objects cd ${RPM_BUILD_ROOT}%{_libdir} for LIB in $LIBS; do /usr/bin/ar -q -X64 $LIB.a ${RPM_BUILD_ROOT}%{_libdir64}/$LIB.so.0 /usr/bin/ar -X32 xv $LIB.a $LIB.so.0 done cd - # Create some symbolic links cd ${RPM_BUILD_ROOT} mkdir -p usr/bin mkdir usr/lib mkdir -p usr/include/harfbuzz LINKS=`cd ${RPM_BUILD_ROOT}/opt/freeware ; ls -1 lib/libharfbuzz*.a bin/hb* lib/libharfbuzz*.la include/harfbuzz/*.h` for LINK in $LINKS; do if [ ! -e /usr/$LINK ] || [ x`ls -l /usr/$LINK | grep -v "/opt/freeware/$LINK"` == "x" ]; then ln -sf /opt/freeware/$LINK ${RPM_BUILD_ROOT}/usr/$LINK else echo "Warning: /usr/$LINK already exists and is not a link to /opt/freeware/$LINK" fi done %files %doc 32bit/COPYING 32bit/NEWS 32bit/AUTHORS 32bit/README 32bit/INSTALL 32bit/ChangeLog 32bit/*.md %{_libdir}/libharfbuzz*.a %files devel %doc %{_datadir}/gtk-doc/html/harfbuzz %{_bindir}/* %{_includedir}/harfbuzz/ %{_libdir}/pkgconfig/harfbuzz*.pc %{_libdir64}/pkgconfig/harfbuzz*.pc %changelog * Fri Apr 14 2023 Shubham Gupta-7.1.0-1 - Updated to 7.1.0 * Tue Sep 20 2022 Rakshitha N -5.2.0-1 - Updated to 5.2.0 * Wed Jul 20 2022 Rakshitha N -4.3.0-1 - Updated to 4.3.0 * Fri May 14 2021 Rishita Saha - 2.8.1-1 - Update to version 2.8.1 - No longer shipping files in /usr directory * Fri Apr 22 2016 Matthieu Sarter - 1.2.6-1 - Update to 1.2.6 - Initial port to AIX * Thu Oct 01 2015 Parag Nemade - 1.0.4-1 - Update to 1.0.4 * Tue Sep 01 2015 Kalev Lember - 1.0.3-1 - Update to 1.0.3 - Use license macro for COPYING * Mon Aug 24 2015 Parag Nemade - 1.0.2-1 - Update to 1.0.2 * Wed Jul 29 2015 Parag Nemade - 1.0.1-1 - Update to 1.0.1 * Fri Jun 19 2015 Parag Nemade - 0.9.41-1 - Update to 0.9.41 upstream release * Wed Jun 17 2015 Fedora Release Engineering - 0.9.40-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild * Sat May 02 2015 Kalev Lember - 0.9.40-2 - Rebuilt for GCC 5 C++11 ABI change * Sat Mar 21 2015 Parag Nemade - 0.9.40-1 - Update to 0.9.40 upstream release * Fri Mar 06 2015 Parag Nemade - 0.9.39-1 - Update to 0.9.39 upstream release * Sat Feb 21 2015 Till Maas - 0.9.38-4 - Rebuilt for Fedora 23 Change https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code * Wed Feb 04 2015 Petr Machata - 0.9.38-3 - Bump for rebuild. * Wed Feb 4 2015 Mikolaj Izdebski - 0.9.38-2 - Rebuild for libicu soname bump * Tue Jan 27 2015 Parag Nemade - 0.9.38-1 - Update to 0.9.38 upstream release * Mon Jan 26 2015 David Tardon - 0.9.37-2 - rebuild for ICU 54.1 * Tue Dec 23 2014 Parag Nemade - 0.9.37-1 - Update to 0.9.37 upstream release * Tue Nov 25 2014 Parag Nemade - 0.9.36-1 - Update to 0.9.36 upstream release * Tue Aug 26 2014 David Tardon - 0.9.35-3 - rebuild for ICU 53.1 * Mon Aug 18 2014 Parag Nemade - 0.9.35-1 - Update to 0.9.35 upstream release * Sat Aug 16 2014 Fedora Release Engineering - 0.9.34-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild * Wed Aug 06 2014 Parag Nemade - 0.9.34-1 - Update to 0.9.34 upstream release * Tue Jul 29 2014 Parag Nemade - 0.9.33-1 - Update to 0.9.33 upstream release * Fri Jul 18 2014 Parag Nemade - 0.9.32-1 - Update to 0.9.32 (have all the recent releases on koji) * Thu Jul 17 2014 Parag Nemade - 0.9.31-1 - Update to 0.9.31 (have all the recent releases on koji) * Fri Jul 11 2014 Parag Nemade - 0.9.30-1 - Update to 0.9.30 upstream release * Sat Jun 07 2014 Fedora Release Engineering - 0.9.29-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild * Mon Jun 02 2014 Parag Nemade - 0.9.29-1 - Update to 0.9.29 upstream release * Tue Apr 29 2014 Parag Nemade - 0.9.28-1 - Update to 0.9.28 upstream release * Thu Mar 20 2014 Parag Nemade - 0.9.27-1 - Update to 0.9.27 upstream release * Wed Feb 12 2014 Nils Philippsen - 0.9.26-3 - rebuild for new libicu * Wed Feb 12 2014 Dan Mashal - 0.9.26-2 - Rebuilding for icu soname bump. * Fri Jan 31 2014 Parag Nemade - 0.9.26-1 - Update to 0.9.26 upstream release * Thu Dec 05 2013 Parag Nemade - 0.9.25-1 - Update to 0.9.25 upstream release * Fri Nov 15 2013 Parag Nemade - 0.9.24-1 - Update to 0.9.24 upstream release * Wed Oct 30 2013 Parag Nemade - 0.9.23-1 - Update to 0.9.23 upstream release * Tue Oct 08 2013 Parag Nemade - 0.9.22-1 - Update to 0.9.22 upstream release * Tue Sep 17 2013 Parag Nemade - 0.9.21-1 - Update to 0.9.21 upstream release * Fri Aug 30 2013 Parag Nemade - 0.9.20-1 - Update to 0.9.20 upstream release * Sat Aug 03 2013 Fedora Release Engineering - 0.9.19-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild * Wed Jul 17 2013 Parag Nemade - 0.9.19-1 - Update to 0.9.19 upstream release * Fri Jun 21 2013 Matthias Clasen - 0.9.18-3 - Don't ship a (humongous) ChangeLog * Fri Jun 07 2013 Parag Nemade - 0.9.18-2 - Resolves:rh#971795:Merge -icu-devel subpackage into -devel subpackage * Wed Jun 05 2013 Parag Nemade - 0.9.18-1 - Update to 0.9.18 upstream release * Tue May 21 2013 Parag Nemade - 0.9.17-1 - Update to 0.9.17 upstream release * Sat Apr 20 2013 Parag Nemade - 0.9.16-1 - Update to 0.9.16 upstream release * Fri Mar 22 2013 Parag Nemade - 0.9.14-1 - Update to 0.9.14 upstream release * Tue Feb 26 2013 Parag Nemade - 0.9.13-1 - Update to 0.9.13 upstream release * Wed Jan 30 2013 Mamoru TASAKA - 0.9.12-6 - Kill icu-config hack and rebuild against new icu again * Tue Jan 29 2013 Parag Nemade - 0.9.12-5 - Resolves:rh#905334 - Please rebuild harfbuzz for new graphite-1.2.0 * Sun Jan 27 2013 Parag Nemade - 0.9.12-4 - Resolves:rh#904700-Enable additional shaper graphite2 * Sat Jan 26 2013 Mamoru TASAKA - 0.9.12-3 - Add "icu-config --cppflags" to compiler flags to fix build * Fri Jan 25 2013 Orion Poplawski - 0.9.12-2 - Rebuild for libicu 50 * Sun Jan 20 2013 Parag Nemade - 0.9.12-1 - Update to 0.9.12 upstream release * Fri Jan 11 2013 Parag Nemade - 0.9.11-1 - Update to 0.9.11 upstream release * Thu Jan 03 2013 Parag Nemade - 0.9.10-1 - Update to 0.9.10 upstream release * Thu Dec 06 2012 Parag Nemade - 0.9.9-1 - Update to 0.9.9 upstream release * Wed Dec 05 2012 Parag Nemade - 0.9.8-1 - Update to 0.9.8 upstream release * Wed Nov 21 2012 Parag Nemade - 0.9.7-1 - Update to 0.9.7 upstream release * Wed Nov 14 2012 Parag Nemade - 0.9.6-1 - Update to 0.9.6 upstream release * Mon Oct 15 2012 Parag Nemade - 0.9.5-1 - Update to 0.9.5 upstream release * Mon Sep 10 2012 Parag Nemade - 0.9.4-1 - Update to 0.9.4 upstream release * Sun Aug 19 2012 Parag Nemade - 0.9.3-1 - Update to 0.9.3 upstream release * Mon Aug 13 2012 Parag Nemade - 0.9.2-1 - Update to 0.9.2 upstream release * Thu Jul 19 2012 Fedora Release Engineering - 0.6.0-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild * Mon Apr 23 2012 Kalev Lember - 0.6.0-6 - Rebuilt for libicu 49 * Fri Jan 13 2012 Fedora Release Engineering - 0.6.0-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild * Tue Dec 06 2011 Adam Jackson - 0.6.0-4 - Rebuild for new libpng * Sat Sep 10 2011 Kalev Lember - 0.6.0-3 - Rebuilt for libicu 4.8 * Thu Jun 16 2011 Kalev Lember - 0.6.0-2 - Moved hb-view to -devel subpackage (#713126) * Tue Jun 14 2011 Kalev Lember - 0.6.0-1 - Initial RPM release