Extract RPM package on macOS to access its contents, which is especially useful for some old source packages.
Download installation script for the missing package manager for macOS.
$ curl --silent --fail --location https://raw.githubusercontent.com/Homebrew/install/master/install -o brew-install
Execute and complete installation process.
$ ruby brew-install
Install rpm2cpio
utility.
$ brew install rpm2cpio
Updating Homebrew... ==> Auto-updated Homebrew! Updated 2 taps (caskroom/cask, homebrew/core). ==> New Formulae go-jira htslib jabba keystone ==> Updated Formulae awscli ✔ aces_container bmake docfx frugal ibex libphonenumber mdds node-build sbcl xctool faac ✔ angular-cli clojure doctl geckodriver icoutils libpqxx media-info nomad smali xrootd imagemagick ✔ apache-geode cockroach dub geoipupdate imagemagick@6 libtensorflow mercurial opencv sqlmap xtensor openssl ✔ apr-util codemod erlang gjs iperf3 libvirt mg osm2pgrouting statik yarn openssl@1.1 ✔ armadillo conan expat gnu-units ironcli libxml2 micropython pdfpc svgo pandoc ✔ at-spi2-atk conjure-up file-roller gomplate jena lwtools minimal-racket pipenv tfenv pyqt ✔ at-spi2-core consul-template firebase-cli gradle jfrog-cli-go mailutils mkdocs poco tippecanoe sip ✔ atlassian-cli crowdin flow gucharmap knot mairix mkvalidator prest vagrant-completion terminal-notifier ✔ bacula-fd dbus fluent-bit gutenberg kompose mariadb mongoose re2 vault-cli vim ✔ bash-preexec dcos-cli fonttools highlight libass mariadb@10.0 mvnvm redex vte3 abcmidi bibtexconv dmd freetds hyperscan libhttpseverywhere maxima node resty wireguard-tools ==> Installing dependencies for rpm2cpio: xz ==> Installing rpm2cpio dependency: xz ==> Downloading https://homebrew.bintray.com/bottles/xz-5.2.3.sierra.bottle.tar.gz ==> Downloading from https://akamai.bintray.com/25/2518e5105c2b290755cda0fd5cd7f71eea4cd4741b70c48250eed1750c3a6814 ######################################################################## 100.0% ==> Pouring xz-5.2.3.sierra.bottle.tar.gz /usr/local/Cellar/xz/5.2.3: 92 files, 1.4MB ==> Installing rpm2cpio ==> Downloading https://homebrew.bintray.com/bottles/rpm2cpio-1.3.sierra.bottle.tar.gz ######################################################################## 100.0% ==> Pouring rpm2cpio-1.3.sierra.bottle.tar.gz /usr/local/Cellar/rpm2cpio/1.3: 2 files, 3.7K
Extract RPM package.
$ rpm2cpio.pl freeswitch-1.6.17-7.mga6.src.rpm | cpio -idmv
check_fs.cfg check_fs_registered communicator_semi_6000_20080321.tar.gz freeswitch-1.2.12-dkms-skypopen.patch freeswitch-1.2.12-mod_skypopen.patch freeswitch-1.2.13-mod_shout-ltinfo.patch freeswitch-1.2.13-python.patch freeswitch-1.2.13-tinfo.patch freeswitch-1.2.13-writestring.patch freeswitch-1.2.3-ac_config.diff freeswitch-1.2.3-fix-str-fmt.patch freeswitch-1.2.3-link.patch freeswitch-1.2.3-mod_ha_cluster.patch freeswitch-1.4.14-mod_nibblebill-legb-hangup.diff freeswitch-1.4.15-openssl-1.0.2.patch freeswitch-1.4.4-gcc491-configure-lame.patch freeswitch-1.4.7-no-pedantic-perl.patch freeswitch-1.4.7-pgsql-build.diff freeswitch-1.6.17-armv7hl-abi.patch freeswitch-1.6.17.tar.xz freeswitch-1.6.8-mga-stop-downloading-sounds.patch freeswitch-contrib-master.tar.bz2 freeswitch-mod_ha_cluster-gcc48.patch freeswitch-tmpfiles.conf freeswitch.service freeswitch.spec perl-gcc-pedantic-define-working.diff pocketsphinx-0.8.tar.gz sphinxbase-0.8.tar.gz 186947 blocks
Done.