Rebuild webpack during RPM build

This is necessary to comply with Fedora's packaging policy:
https://docs.fedoraproject.org/en-US/packaging-guidelines/JavaScript/

Include the node cache in the source rpm, unpack it into the main source
dir, and force a webpack rebuild in `%build`.
This commit is contained in:
Martin Pitt 2021-09-03 09:39:04 +02:00 committed by Katerina Koukiou
parent 4ca75f143c
commit 9574611768
3 changed files with 18 additions and 5 deletions

View file

@ -100,7 +100,7 @@ $(NODE_CACHE): $(NODE_MODULES_TEST)
node-cache: $(NODE_CACHE)
srpm: $(TARFILE) cockpit-$(PACKAGE_NAME).spec
srpm: $(TARFILE) $(NODE_CACHE) cockpit-$(PACKAGE_NAME).spec
rpmbuild -bs \
--define "_sourcedir `pwd`" \
--define "_srcrpmdir `pwd`" \
@ -108,7 +108,7 @@ srpm: $(TARFILE) cockpit-$(PACKAGE_NAME).spec
rpm: $(RPMFILE)
$(RPMFILE): $(TARFILE) cockpit-$(PACKAGE_NAME).spec
$(RPMFILE): $(TARFILE) $(NODE_CACHE) cockpit-$(PACKAGE_NAME).spec
mkdir -p "`pwd`/output"
mkdir -p "`pwd`/rpmbuild"
rpmbuild -bb \

View file

@ -4,8 +4,10 @@ Release: 1%{?dist}
Summary: Cockpit Starter Kit Example Module
License: LGPLv2+
Source: cockpit-starter-kit-%{version}.tar.xz
Source0: https://github.com/cockpit-project/starter-kit/releases/download/%{version}/cockpit-starter-kit-%{version}.tar.xz
Source1: https://github.com/cockpit-project/starter-kit/releases/download/%{version}/cockpit-starter-kit-node-%{version}.tar.xz
BuildArch: noarch
BuildRequires: nodejs
BuildRequires: make
BuildRequires: libappstream-glib
@ -17,7 +19,13 @@ Requires: cockpit-system
Cockpit Starter Kit Example Module
%prep
%setup -n cockpit-starter-kit
%setup -q -n cockpit-starter-kit
%setup -q -a 1 -n cockpit-starter-kit
%build
# ignore pre-built webpack in release tarball and rebuild it
rm -rf dist
NODE_ENV=production make
%install
%make_install

View file

@ -4,7 +4,12 @@
specfile_path: cockpit-starter-kit.spec
actions:
post-upstream-clone: make cockpit-starter-kit.spec
post-upstream-clone:
post-upstream-clone:
- make cockpit-starter-kit.spec
# replace Source1 manually, as create-archive: can't handle multiple tarballs
- make node-cache
- sh -c 'sed -i "/^Source1:/ s/https:.*/$(ls *-node*.tar.xz)/" cockpit-*.spec'
# build in development mode; production mode uses too much memory for limited
# sandcastle containers; also reduce memory consumption of webpack
# https://github.com/packit/sandcastle/pull/92