# 1 to enable, 0 to disable, %{nil} for default %undefine force_std %if 0%{?rhel}%{?fedora} %if 0%{?rhel} %if 0%{?rhel} <= 7 #define force_std c++11 %endif %endif %endif %define devtoolset %{nil} %if 0%{?rhel} %if 0%{?rhel} <= 7 %define devtoolset 6 %endif %endif %define compiler_bin g++ %if 0%{?devtoolset} %define compiler_bin /opt/rh/devtoolset-%{devtoolset}/root%{_bindir}/g++ %endif Name: astyle Version: 3.0.1 Release: 6%{?dist} Summary: Source code formatter for C-like programming languages %global majorversion 3 %global soversion 3.0.1 Group: Development/Tools License: LGPLv3+ URL: https://astyle.sourceforge.net/ Source0: https://downloads.sourceforge.net/%{name}/%{name}_%{version}_linux.tar.gz BuildRequires: java-devel >= 1:1.8.0 %if 0%{?devtoolset} BuildRequires: devtoolset-%{devtoolset}-gcc BuildRequires: devtoolset-%{devtoolset}-gcc-c++ # Better safe than sorry... BuildRequires: devtoolset-%{devtoolset} BuildRequires: devtoolset-%{devtoolset}-build BuildRequires: devtoolset-%{devtoolset}-libstdc++-devel BuildRequires: devtoolset-%{devtoolset}-libasan-devel BuildRequires: devtoolset-%{devtoolset}-runtime %if %{?devtoolset} >= 6 BuildRequires: devtoolset-%{devtoolset}-make %endif #Requires: devtoolset-%{devtoolset}-gcc #Requires: devtoolset-%{devtoolset}-gcc-c++ Requires: devtoolset-%{devtoolset} #Requires: devtoolset-%{devtoolset}-build #Requires: devtoolset-%{devtoolset}-libstdc++-devel #Requires: devtoolset-%{devtoolset}-libasan-devel #Requires: devtoolset-%{devtoolset}-make Requires: devtoolset-%{devtoolset}-runtime %else BuildRequires: gcc-c++ %endif BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) # Make the astyle-lib usable for arduino Patch0: astyle-arduino.patch # Fix (hardcoded) path to html-help Patch1: astyle-html-help.patch %description Artistic Style is a source code indenter, source code formatter, and source code beautifier for the C, C++, C# and Java programming languages. %package devel Summary: Source code formatter for C-like programming languages Group: Development/Tools Requires: %{name}%{?_isa} = %{version}-%{release} %description devel Artistic Style is a source code indenter, source code formatter, and source code beautifier for the C, C++, C# and Java programming languages. This package contains the shared library. %prep %setup -q -n "%{name}" %patch0 -p1 %patch1 -p1 %build chmod a-x src/* chmod a-x doc/* %if 0%{?devtoolset} export CC=/opt/rh/devtoolset-%{devtoolset}/root%{_bindir}/gcc export CPP=/opt/rh/devtoolset-%{devtoolset}/root%{_bindir}/cpp export CXX=/opt/rh/devtoolset-%{devtoolset}/root%{_bindir}/c++ %endif pushd src # it's much easier to compile it here than trying to fix the Makefile %{compiler_bin} ${RPM_OPT_FLAGS} %{?force_std:-std=%{force_std}} -DASTYLE_LIB -DASTYLE_JNI -fPIC -I/usr/lib/jvm/java/include -I/usr/lib/jvm/java/include/linux -c ASBeautifier.cpp ASEnhancer.cpp ASFormatter.cpp ASResource.cpp astyle_main.cpp %{compiler_bin} %{?force_std:-std=%{force_std}} -shared -o libastyle.so.%{soversion} *.o -Wl,-soname,libastyle.so.%{majorversion} ln -s libastyle.so.%{soversion} libastyle.so %{compiler_bin} ${RPM_OPT_FLAGS} %{?force_std:-std=%{force_std}} -c ASLocalizer.cpp astyle_main.cpp %{compiler_bin} ${RPM_OPT_FLAGS} %{?force_std:-std=%{force_std}} -o astyle ASLocalizer.o astyle_main.o -L. -lastyle popd %install pushd src mkdir -p "${RPM_BUILD_ROOT}"{"%{_bindir}","%{_libdir}","%{_includedir}"} install -p -m 755 "astyle" "${RPM_BUILD_ROOT}%{_bindir}" install -p -m 755 "libastyle.so.%{soversion}" "${RPM_BUILD_ROOT}%{_libdir}" cp -P "libastyle.so" "${RPM_BUILD_ROOT}%{_libdir}" install -p -m 644 "astyle.h" "${RPM_BUILD_ROOT}%{_includedir}" popd %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %doc doc/*.html %{_bindir}/astyle %{_libdir}/libastyle.so.%{soversion} %files devel %{_libdir}/libastyle.so %{_includedir}/astyle.h %changelog * Sat Oct 21 2017 Tomasz Tomasik - 3.0.1-6 - Rebuilt for EL7 using Devtoolset 6 * Sat Oct 21 2017 Tomasz Tomasik - 3.0.1-5 - A few changes to the SPEC file - Add support for EL7 - Rebuilt for EL7 * Sun Sep 24 2017 Jens Lody - 3.0.1-4 - Fix #1493473 (astyle --html does not find documentation). * Wed Aug 02 2017 Fedora Release Engineering - 3.0.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild * Wed Jul 26 2017 Fedora Release Engineering - 3.0.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Wed May 31 2017 Jens Lody - 3.0.1-1 - Update to 3.0.1 * Sat Apr 29 2017 Jens Lody - 3.0-2 - Make the astyle-lib usable for arduino. * Mon Apr 10 2017 Jens Lody - 3.0-1 - Update to 3.0 * Sun Feb 12 2017 Jens Lody - 2.06-1 - update to 2.06 (#1411164) * Fri Feb 10 2017 Fedora Release Engineering - 2.05.1-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild * Wed Feb 03 2016 Fedora Release Engineering - 2.05.1-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild * Wed Jun 17 2015 Fedora Release Engineering - 2.05.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild * Sat May 02 2015 Kalev Lember - 2.05.1-2 - Rebuilt for GCC 5 C++11 ABI change * Wed Dec 17 2014 Thomas Spura - 2.05.1-1 - update to 2.05.1 (#1175136), but stay at same soversion for library * Thu Nov 20 2014 Thomas Spura - 2.05-1 - update to 2.05 (#1166336) * Fri Aug 15 2014 Fedora Release Engineering - 2.04-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild * Sat Jun 07 2014 Fedora Release Engineering - 2.04-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild * Thu Mar 20 2014 Dan HorĂ¡k - 2.04-3 - compile directly in %%build so the astyle binary links against our library - include public header file in devel subpackage - use full version info in soname as there is no API/ABI compatibility guaranteed * Fri Jan 17 2014 Thomas Spura - 2.04-2 - build shared library without SONAME (opened bug upstream to provide a SONAME in the next release, #1054422) - remove defattr - remove clean section * Tue Nov 5 2013 Thomas Spura - 2.04-1 - update to new version (fixes #1025982, #996008) * Tue Jul 30 2013 Thomas Spura - 2.03-1 - update to new version (fixes #990162) * Wed Feb 13 2013 Fedora Release Engineering - 2.02.1-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild * Wed Jul 18 2012 Fedora Release Engineering - 2.02.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild * Thu Jan 12 2012 Fedora Release Engineering - 2.02.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild * Sun Dec 4 2011 Thomas Spura - 2.02.1-1 - update to new version * Mon Feb 07 2011 Fedora Release Engineering - 2.01-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild * Wed Dec 1 2010 Thomas Spura - 2.01-1 - update to new version * Sat Jan 30 2010 Thomas Spura - 1.24-1 - update to new version - change license to LGPLv3+ (changed since 1.23, but missed there) * Tue Oct 13 2009 Thomas Spura - 1.23-1 - Update to new version - patch from Sep 24 2008 not needed anymore for gcc-4.4 * Fri Jul 24 2009 Fedora Release Engineering - 1.21-11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild * Mon Feb 23 2009 Fedora Release Engineering - 1.21-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild * Wed Sep 24 2008 Debarshi Ray - 1.21-9 - Fixed build failure with gcc-4.3. Closes Red Hat Bugzilla bug #433971. * Wed May 21 2008 Tom "spot" Callaway - 1.21-8 - fix license tag * Mon Feb 18 2008 Fedora Release Engineering - 1.21-7 - Autorebuild for GCC 4.3 * Tue Aug 28 2007 Fedora Release Engineering - 1.21-6 - Rebuild for selinux ppc32 issue. * Mon Jul 2 2007 Adam M. Dutko 1.21-5 - Fixed sourceforge Source0 link. - Updated to 1.21. * Tue Jun 19 2007 Adam M. Dutko 1.20.2-4 - Removed macros from changelog - Formatted changelog from 1.20.2-2 * Tue Jun 19 2007 Adam M. Dutko 1.20.2-3 - Changed licensing to LGPL from GPL - Removed execute bit from src/* - Used bindir/install instead of /usr/bin/install * Thu Jun 14 2007 Mary Ellen Foster 1.20.2-2 - Modifications from Ralf Corsepius (thanks!): - Eliminated use of build/Makefile; just compile and install directly - Use bindir rather than /usr/bin * Sat May 12 2007 Adam Monsen 1.20.2-1 - removed Makefile patch * Thu Sep 21 2006 Mary Ellen Foster 1.19-1 - Initial package