# directories %_infodir %{_prefix}/share/info %_mandir %{_prefix}/share/man %_sysconfdir /etc %_localstatedir /var %_defaultdocdir %{_usr}/share/doc/packages %_unitdir_user /usr/lib/systemd/user %_unitdir /usr/lib/systemd/system # package build macros # %make_install make install DESTDIR=%{?buildroot} # %makeinstall make DESTDIR=%{?buildroot:%{buildroot}} install %rb_arch %(echo %{_host_cpu}-linux | sed -e "s/i686/i586/" -e "s/armv5tel/armv4l/" -e "s/hppa2.0/hppa/") %rb_ver %(/usr/bin/ruby -e 'puts VERSION.sub(/\\\.\\\d$/, "")') # external kernel module helper macro(s) %kernel_devel_uname_r %(/bin/rpm -q --provides $(/bin/rpm -q --whatprovides kernel-devel-uname-r) | sed -ne 's,kernel-devel-uname-r = ,, p') %kernel_release %(/bin/rpm -q --queryformat '%{RPMTAG_VERSION}-%{RPMTAG_RELEASE}' $(/bin/rpm -q --whatprovides kernel)) %kernel_name %(/bin/rpm -q --queryformat '%{RPMTAG_NAME}' $(/bin/rpm -q --whatprovides kernel)) # this script calls all scripts in /usr/lib/rpm/brp-tizen.d %__os_install_post \ /usr/lib/rpm/brp-compress \ /usr/lib/rpm/brp-tizen \ %{!?disable_docs_package:/usr/lib/rpm/tizen/find-docs.sh %{buildroot}} \ %{nil} # macro: %configure_kernel_source # # %configure_kernel_source() \ if test -d /usr/src/linux ; then \ pushd /usr/src/linux \ test -f .config || cp arch/%_arch/defconfig.default .config \ yes "" | make oldconfig \ make dep \ popd \ fi \ %nil %install_info(:-:) \ ALL_ARGS=(%{**}) \ NUM_ARGS=${#ALL_ARGS[@]} \ if test -x /sbin/install-info ; then \ if test -e "${ALL_ARGS[$((NUM_ARGS-1))]}" ; then \ /sbin/install-info "${ALL_ARGS[@]}" \ fi \ fi ; %install_info_delete(:-:) \ ALL_ARGS=(%{**}) \ NUM_ARGS=${#ALL_ARGS[@]} \ if test -x /sbin/install-info ; then \ if ! test -e "${ALL_ARGS[$((NUM_ARGS-1))]}" ; then \ /sbin/install-info --quiet --delete "${ALL_ARGS[@]}" \ fi ; \ fi ; # find-supplements.ksyms parses this macro directly out of the spec file: %supplements_kernel_module() \ %{expand:%(if ! rpm -q kernel-syms > /dev/null; then echo "%fail Please add the kernel-syms package to BuildRequires"; fi)} %do_profiling 1 %cflags_profile_generate -fprofile-generate %cflags_profile_feedback -fprofile-use # Tizen # %configure \ CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; \ CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ; \ FFLAGS="${FFLAGS:-%optflags -I%_fmoddir}" ; export FFLAGS ; \ ./configure --build=%{_build} --host=%{_host} \\\ --program-prefix=%{?_program_prefix} \\\ --prefix=%{_prefix} \\\ --exec-prefix=%{_exec_prefix} \\\ --bindir=%{_bindir} \\\ --sbindir=%{_sbindir} \\\ --sysconfdir=%{_sysconfdir} \\\ --datadir=%{_datadir} \\\ --includedir=%{_includedir} \\\ --libdir=%{_libdir} \\\ --libexecdir=%{_libexecdir} \\\ --localstatedir=%{_localstatedir} \\\ --sharedstatedir=%{_sharedstatedir} \\\ --mandir=%{_mandir} \\\ --infodir=%{_infodir} %reconfigure \ CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; \ CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ; \ FFLAGS="${FFLAGS:-%optflags -I%_fmoddir}" ; export FFLAGS ; \ autoreconf -v --install --force || exit 1 \ ./configure --build=%{_build} --host=%{_host} \\\ --program-prefix=%{?_program_prefix} \\\ --prefix=%{_prefix} \\\ --exec-prefix=%{_exec_prefix} \\\ --bindir=%{_bindir} \\\ --sbindir=%{_sbindir} \\\ --sysconfdir=%{_sysconfdir} \\\ --datadir=%{_datadir} \\\ --includedir=%{_includedir} \\\ --libdir=%{_libdir} \\\ --libexecdir=%{_libexecdir} \\\ --localstatedir=%{_localstatedir} \\\ --sharedstatedir=%{_sharedstatedir} \\\ --mandir=%{_mandir} \\\ --infodir=%{_infodir} %autogen \ CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; \ CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ; \ FFLAGS="${FFLAGS:-%optflags -I%_fmoddir}" ; export FFLAGS ; \ ./autogen.sh --build=%{_build} --host=%{_host} \\\ --program-prefix=%{?_program_prefix} \\\ --prefix=%{_prefix} \\\ --exec-prefix=%{_exec_prefix} \\\ --bindir=%{_bindir} \\\ --sbindir=%{_sbindir} \\\ --sysconfdir=%{_sysconfdir} \\\ --datadir=%{_datadir} \\\ --includedir=%{_includedir} \\\ --libdir=%{_libdir} \\\ --libexecdir=%{_libexecdir} \\\ --localstatedir=%{_localstatedir} \\\ --sharedstatedir=%{_sharedstatedir} \\\ --mandir=%{_mandir} \\\ --infodir=%{_infodir} %makeinstall \ %{__make} \\\ prefix=%{?buildroot:%{buildroot}}%{_prefix} \\\ exec_prefix=%{?buildroot:%{buildroot}}%{_exec_prefix} \\\ bindir=%{?buildroot:%{buildroot}}%{_bindir} \\\ sbindir=%{?buildroot:%{buildroot}}%{_sbindir} \\\ sysconfdir=%{?buildroot:%{buildroot}}%{_sysconfdir} \\\ datadir=%{?buildroot:%{buildroot}}%{_datadir} \\\ includedir=%{?buildroot:%{buildroot}}%{_includedir} \\\ libdir=%{?buildroot:%{buildroot}}%{_libdir} \\\ libexecdir=%{?buildroot:%{buildroot}}%{_libexecdir} \\\ localstatedir=%{?buildroot:%{buildroot}}%{_localstatedir} \\\ sharedstatedir=%{?buildroot:%{buildroot}}%{_sharedstatedir} \\\ mandir=%{?buildroot:%{buildroot}}%{_mandir} \\\ infodir=%{?buildroot:%{buildroot}}%{_infodir} \\\ install %make_install \ %{__make} \\\ DESTDIR=%{?buildroot:%{buildroot}} \\\ INSTALL_ROOT=%{?buildroot:%{buildroot}} \\\ install \ rm -f %{?buildroot:%{buildroot}}%{_infodir}/dir \ find %{?buildroot:%{buildroot}} -regex ".*\\.la$" | xargs rm -f -- \ %{!?keepstatic:find %{?buildroot:%{buildroot}} -regex ".*\\.a$" | xargs rm -f --} %_smp_mflags %([ -z "$RPM_BUILD_NCPUS" ] \\\ && RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"; \\\ [ "$RPM_BUILD_NCPUS" -gt 1 ] && echo "-j$RPM_BUILD_NCPUS") %lang_package(n:f:) \ %package %{-n:-n %{-n*}-}locale \ Summary: Translations and Locale for package %{name}\ Group: System/Localization\ Requires: %{-n:%{-n*}}%{!-n:%{name}} = %{version} \ Provides: %{-n:%{-n*}}%{!-n:%{name}}-lang-all = %{version} \ BuildArch: noarch \ %description %{-n:-n %{-n*}-}locale\ This package provides translations for package %{name}.\ %files %{-n:-n %{-n*}-}locale -f %{-f:%{-f*}.lang} %{!-f:%{name}.lang}\ %defattr(-,root,root,-)\ %{nil} %docs_package \ %package docs \ Summary: Documentation for package %{name}\ Group: Documentation\ AutoReqProv: 0\ %description docs\ This package provides documentation for package %{name}.\ %files docs -f documentation.list\ %defattr(-,root,root,-)\ %{nil} # Bad hack to set $LANG to C during all RPM builds %prep \ %%prep\ LANG=C\ export LANG\ unset DISPLAY\ %{nil} %build %%build\ LANG=C\ export LANG\ unset DISPLAY\ CFLAGS="%optflags" ; export CFLAGS ; \ CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ; \ FFLAGS="${FFLAGS:-%optflags -I%_fmoddir}" ; export FFLAGS ; \ LD_AS_NEEDED=1; export LD_AS_NEEDED ; \ %{nil} %install %{?_enable_debug_packages:%{?buildsubdir:%{debug_package}}}\ %%install\ LANG=C\ export LANG\ unset DISPLAY\ rm -rf %{?buildroot:%{buildroot}} \ mkdir -p %{?buildroot:%{buildroot}} \ %{nil} %clean %%clean\ rm -rf %{?buildroot:%{buildroot}} \ %{nil} %find_lang /usr/lib/rpm/find-lang.sh %{buildroot} %find_docs /usr/lib/rpm/tizen/find-docs.sh %{buildroot} #============================================================================== # ---- default .desktop directories per the desktop-entry freedesktop.org spec %_desktopdir %{_datadir}/applications #============================================================================== # ---- Generic auto req/prov filtering macros # # http://fedoraproject.org/wiki/PackagingDrafts/AutoProvidesAndRequiresFiltering # prevent anything matching from being scanned for provides %filter_provides_in(P) %{expand: \ %global __filter_prov_cmd %{?__filter_prov_cmd} %{__grep} -v %{-P} '%*' | \ } # prevent anything matching from being scanned for requires %filter_requires_in(P) %{expand: \ %global __filter_req_cmd %{?__filter_req_cmd} %{__grep} -v %{-P} '%*' | \ } # filter anything matching out of the provides stream %filter_from_provides() %{expand: \ %global __filter_from_prov %{?__filter_from_prov} | %{__sed} -e '%*' \ } # filter anything matching out of the requires stream %filter_from_requires() %{expand: \ %global __filter_from_req %{?__filter_from_req} | %{__sed} -e '%*' \ } # actually set up the filtering bits %filter_setup %{expand: \ %global _use_internal_dependency_generator 0 \ %global __deploop() while read FILE; do /usr/lib/rpm/rpmdeps -%{1} ${FILE}; done | /bin/sort -u \ %global __find_provides /bin/sh -c "%{?__filter_prov_cmd} %{__deploop P} %{?__filter_from_prov}" \ %global __find_requires /bin/sh -c "%{?__filter_req_cmd} %{__deploop R} %{?__filter_from_req}" \ } %remove_docs \ rm -rf %{?buildroot:%{buildroot}}%{_infodir} \ rm -rf %{?buildroot:%{buildroot}}%{_defaultdocdir} \ rm -rf %{?buildroot:%{buildroot}}%{_datadir}/doc/%{name} \ rm -rf %{?buildroot:%{buildroot}}%{_datadir}/doc/%{name}-%{version} \ rm -rf %{?buildroot:%{buildroot}}%{_datadir}/gtk-doc \ rm -rf %{?buildroot:%{buildroot}}%{_datadir}/doc \ rm -rf %{?buildroot:%{buildroot}}%{_datadir}/man \ find %{?buildroot:%{buildroot}} -regex ".*/man/man./.*\.[0-9]" | xargs rm -f -- \ find %{?buildroot:%{buildroot}} -regex ".*/man/../man./.*\.[0-9]" | xargs rm -f -- \ find %{?buildroot:%{buildroot}} -regex ".*/man/man./.*\.[0-9]pm" | xargs rm -f -- %install_service() \ mkdir -p %{buildroot}/%{_unitdir}/%{1} \ ln -s ../%{2} %{buildroot}/%{_unitdir}/%{1}/%{2} \ %{nil} %_fontsdir %{_usr}/share/fonts %_ttfontsdir %{_fontsdir}/truetype %_miscfontsdir %{_fontsdir}/misc %_fontsconfdir %{_sysconfdir}/fonts %_fontsconfddir %{_fontsconfdir}/conf.d %_fontsconfavaildir %{_datadir}/%{name}/conf.avail %devel_package \ %package devel \ Summary: Development files for package %{name}\ Group: Development\ %description devel\ This package provides header files and other developer releated files for package %{name}.\ %files devel \ %{_includedir}/*\ %{_libdir}/pkgconfig/*.pc\ %{_libdir}/*.so\ %{nil} %devel_desc This package contains all necessary include files and libraries needed \ to develop applications that require %{name}.\ %{nil}