* macro updates for ROD and SUSE * remove singlespec macros, unused * add gpgverify for RDO builds OBS-URL: https://build.opensuse.org/package/show/Cloud:OpenStack:Factory/openstack-macros?expand=0&rev=28
91 lines
3.4 KiB
Plaintext
91 lines
3.4 KiB
Plaintext
# Macros for building OpenStack RPMs.
|
|
#
|
|
# Copyright: (c) 2015 SUSE Linux GmbH
|
|
|
|
# python specific macros to be compatible with other distros to share OpenStack
|
|
# upstream packaging
|
|
%__python2 /usr/bin/python2
|
|
%python2_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")
|
|
%python2_sitearch %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")
|
|
# Make %license work like %doc for now - discussion started with openSUSE
|
|
%_defaultlicensedir %_defaultdocdir
|
|
|
|
%py_req_cleanup() \
|
|
sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg \
|
|
%nil
|
|
|
|
# Create given user with given group (to be used as %pre scriptlet for
|
|
# openstack related daemons). Also migrates away from openstack- prefixed
|
|
# users/group if it exists
|
|
# Optional:
|
|
# -u userid to pick
|
|
# -g groupid to pick
|
|
# -s shell to pick
|
|
# Example: openstack_pre_user_group_create keystone keystone
|
|
%openstack_pre_user_group_create(u:g:s:) \
|
|
# Migrate away from old openstack- prefix \
|
|
oldu=$(getent passwd openstack-%1 |cut -d: -f3) || : \
|
|
[ -n "$oldu" ] && { \
|
|
oldu="-o -u $oldu" \
|
|
userdel openstack-%1 \
|
|
} \
|
|
getent group %2 >/dev/null || { \
|
|
# Migrate away from old openstack- prefix \
|
|
oldg=$(getent group openstack-%2 |cut -d: -f3) || : \
|
|
[ -n "$oldg" ] && oldg="-o -g $oldg" \
|
|
[ -n "$oldg" ] && groupdel openstack-%2 || : \
|
|
[ -z "$oldg" ] && oldg="%{-g:-g %{-g*}}" \
|
|
groupadd -r %2 $oldg \
|
|
} \
|
|
[ -z "$oldu" ] && oldu="%{-u:-u %{-u*}}" \
|
|
getent passwd %1 >/dev/null || { \
|
|
useradd -r -g %2 $oldu -d %{_localstatedir}/lib/%1 %{-s:-s %{-s*}}%{!-s: -s /sbin/nologin} -c "OpenStack %1 Daemon" %1 \
|
|
} \
|
|
%nil
|
|
|
|
# Create a fake tempest plugin entry point which will
|
|
# resides under %{python2_sitelib}/%{service}_tests.egg-info.
|
|
# The prefix is %py2_entrypoint %{modulename} %{service}
|
|
# where service is the name of the openstack-service or the modulename
|
|
# It should used under %install section
|
|
# the generated %{python2_sitelib}/%{service}_tests.egg-info
|
|
# will go under %files section of tempest plugin subpackage
|
|
# Example: %py2_entrypoint %{modulename} %{service}
|
|
# In most of the cases %{service} is same as %{modulename}
|
|
# but in case of neutron plugins it is different
|
|
# like servicename is neutron-lbaas and modulename is neutron_lbass
|
|
%py2_entrypoint() \
|
|
egg_path=%{buildroot}%{python2_sitelib}/%{1}-*.egg-info \
|
|
tempest_egg_path=%{buildroot}%{python2_sitelib}/%{1}_tests.egg-info \
|
|
mkdir $tempest_egg_path \
|
|
echo %{1} >$tempest_egg_path/top_level.txt \
|
|
grep "tempest\\|Tempest" %{1}.egg-info/entry_points.txt >$tempest_egg_path/entry_points.txt \
|
|
sed -i "/tempest\\|Tempest/d" $egg_path/entry_points.txt \
|
|
cp -r $egg_path/PKG-INFO $tempest_egg_path \
|
|
sed -i "s/%{2}/%{1}_tests/g" $tempest_egg_path/PKG-INFO \
|
|
%nil
|
|
|
|
#
|
|
# Apache related macros
|
|
#
|
|
%apache_name apache2
|
|
%apache_site_dir %{_sysconfdir}/%{apache_name}/vhosts.d/
|
|
%apache_conf_dir %{_sysconfdir}/%{apache_name}/conf.d/
|
|
%apache_user wwwrun
|
|
%apache_group www
|
|
|
|
# Compatibility macro
|
|
# currently does nothing on Suse platforms
|
|
%__openstack_set_env %{nil}
|
|
|
|
%sphinx_build /usr/bin/sphinx-build
|
|
|
|
%http_dashboard_dir /srv/www/openstack-dashboard
|
|
|
|
# For compatibility with RDO gpgverify macro
|
|
# Not needed for Suse, source verification is done with no need of special macro
|
|
%gpgverify %{nil}
|
|
# For compatibility with RDO %pycached macro used in fedora
|
|
# Not used for Suse nor for any OpenStack package
|
|
%pycached %{nil}
|