File pnpm.spec of Package pnpm
%define base_name pnpm
# to avoid empty debugfiles error on some distros
%global debug_package %{nil}
# The internal dependency generator adds lots of unnecessary Requires:
# and strange Provides: own(foo) because it slurps in all package.json
%global __nodejs_provides %nil
%global __nodejs_requires %nil
Name: %{base_name}
Version: 8.4.0
Release: 0
License: MIT
Summary: Fast, disk space efficient package manager
URL: https://github.com/pnpm/pnpm
Group: Development/Languages/Other
Source: http://registry.npmjs.org/%{base_name}/-/%{base_name}-%{version}.tgz
BuildRequires: findutils
BuildRequires: fdupes
BuildRequires: nodejs-packaging
BuildRequires: nodejs
BuildRequires: -post-build-checks
Requires: nodejs-npm
# gyp depends on Python and shell, also exists in @zkochan/npm-lifecycle/node-gyp-bin
Requires: python
Requires: bash
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildArch: noarch
Provides: npm(%{base_name}) = %{version}
%description
pnpm is a NodeJS module.
Fast, disk space efficient package manager
%prep
%nodejs_prep
%build
# nothing to do
%install
%nodejs_mkdir
%nodejs_copy
%nodejs_build
%nodejs_install
# Patch hashbang in pnpm
sed -i -e 's|#!%{_bindir}/env node|#!%{_bindir}/node|' %{buildroot}%{nodejs_sitelib}/pnpm/bin/*
# Bad files
rm %{buildroot}%{nodejs_sitelib}/pnpm/dist/node_modules/console-control-strings/README.md~
# Hidden files
find %{buildroot}%{nodejs_sitelib}/pnpm/dist/node_modules -type f -name '.*' -exec rm \{\} \;
# Hidden directories
rm -rf %{buildroot}%{nodejs_sitelib}/pnpm/dist/node_modules/.pnpm
rm -rf %{buildroot}%{nodejs_sitelib}/pnpm/dist/node_modules/balanced-match/.github
rm -rf %{buildroot}%{nodejs_sitelib}/pnpm/dist/node_modules/cacache/node_modules/brace-expansion/.github
rm -rf %{buildroot}%{nodejs_sitelib}/pnpm/dist/node_modules/iconv-lite/.github
rm -rf %{buildroot}%{nodejs_sitelib}/pnpm/dist/node_modules/iconv-lite/.idea
rm -rf %{buildroot}%{nodejs_sitelib}/pnpm/dist/node_modules/node-gyp/.github
rm -rf %{buildroot}%{nodejs_sitelib}/pnpm/dist/node_modules/node-gyp/gyp/.github
# Non-executable scripts
find %{buildroot}%{nodejs_sitelib}/pnpm/dist/node_modules -type f -path '*/bin/*' -exec chmod 755 \{\} \;
%nodejs_filelist
# fix files.lst so /usr/bin is not owned
sed -i.bak '\#dir\s/usr/bin#d' %{_sourcedir}/files.lst
%fdupes %{buildroot}
%clean
rm -rf $RPM_BUILD_ROOT
%files -f %{_sourcedir}/files.lst
%defattr(-,root,root,-)
%dir %{nodejs_sitelib}
%changelog