Skip to content

Instantly share code, notes, and snippets.

@Trucido
Last active June 28, 2018 14:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Trucido/d3cfc97e14db84a2a957ce6e2b732a1d to your computer and use it in GitHub Desktop.
Save Trucido/d3cfc97e14db84a2a957ce6e2b732a1d to your computer and use it in GitHub Desktop.
rpm spec macros to do linux detection
%ifos Linux
%define is_suse_family %((test -e /etc/SUSE-brand || test -e /etc/SuSE-release) && echo 1 || echo 0)
%define is_sle_family %(grep -qi 'SUSE LINUX Enterprise' /etc/SuSE-release && echo 1 || echo 0)
%define is_sles %(grep -qi 'SUSE LINUX Enterprise Server' /etc/SuSE-release && echo 1 || echo 0)
%define is_sled %(grep -qi 'SUSE LINUX Enterprise Desktop' /etc/SuSE-release && echo 1 || echo 0)
%define is_opensuse %((grep -qi 'openSUSE' /etc/SUSE-brand || grep -qi 'openSuSE' /etc/SuSE-release) && echo 1 || echo 0)
%define is_redhat_family %(test -e /etc/redhat-release && echo 1 || echo 0)
# refer to http://fedoraproject.org/wiki/Packaging:DistTag
%define is_rhel %(grep -qi 'Red Hat Enterprise Linux Server' /etc/redhat-release && echo 1 || echo 0)
%define is_centos %(grep -qi CentOS /etc/redhat-release && echo 1 || echo 0)
%define is_fedora %(test -e /etc/fedora-release && echo 1 || echo 0)
%define is_slc %(grep -qi CERN /etc/redhat-release && echo 1 || echo 0)
%define is_sl %((grep -i Scientific /etc/redhat-release && grep -qv CERN) && echo 1 || echo 0)
%define is_alpine %(test -e /etc/alpine-releasev && echo 1 || echo 0)
%define is_amz %(grep -qi 'Amazon Linux' /etc/system-release && echo 1 || echo 0)
%define is_ascendos %(grep -qi Ascendos /etc/redhat-release && echo 1 || echo 0)
%define is_xenserver %(grep -qi XenServer /etc/redhat-release && echo 1 || echo 0)
%define is_xcp %(grep -qi XCP /etc/redhat-release && echo 1 || echo 0)
%define is_debian_family %(test -e /etc/debian_version && echo 1 || echo 0)
%define is_ubuntu %(grep -qi Ubuntu /etc/lsb-release && echo 1 || echo 0)
%define is_debian %(grep -qi Debian /etc/lsb-release && echo 1 || echo 0)
%define is_mint %(grep -qi Mint /etc/lsb-release && echo 1 || echo 0)
%define is_arch %(test -e /etc/arch-release && echo 1 || echo 0)
%define is_gentoo %(test -e /etc/gentoo-release && echo 1 || echo 0)
%define is_meego %(test -e /etc/meego-release && echo 1 || echo 0)
%define is_bluewhite64 %(test -e /etc/bluewhite64-version && echo 1 || echo 0)
%define is_mageia %(test -e /etc/mageia-release && echo 1 || echo 0)
%define is_mandrake %(test -e /etc/mandrake-release && echo 1 || echo 0)
%define is_mandriva %(test -e /etc/mandriva-release && echo 1 || echo 0)
%define is_psbm %(grep -i 'Parallels Server Bare Metal' /etc/redhat-release && echo 1 || echo 0)
%define is_slackware %(test -e /etc/slackware-version && echo 1 || echo 0)
%define is_slamd64 %(test -e /etc/slamd64-version && echo 1 || echo 0)
%define is_oracle_family %((test -e /etc/oracle-release || test -e /etc/enterprise-release || test -e /etc/ovs-release) && echo 1 || echo 0)
%define is_ovs %(test -e /etc/ovs-release && echo 1 || echo 0)
%define is_oel %((test -e /etc/enterprise-release && test ! -e /etc/ovs-release) && echo 1 || echo 0)
%define is_vmware %(test -e /etc/vmware-release && echo 1 || echo 0)
%endif
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment