## START: Set by rpmautospec ## (rpmautospec version 0.8.1) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 3; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec %global npm_name cssnano %global preset_name %{npm_name}-preset-advanced %global _description %{expand: Cssnano is a modern, modular compression tool written on top of the PostCSS ecosystem, which allows us to use a lot of powerful features in order to compact CSS appropriately. } Name: nodejs-%{npm_name} Version: 7.0.7 Release: %autorelease Summary: A modular minifier, built on top of the PostCSS ecosystem # The entire source code is MIT, and the rest is bundled licenses from node_modules License: BSD-2-Clause AND BSD-3-Clause AND CC0-1.0 AND CC-BY-4.0 AND ISC AND MIT URL: https://github.com/cssnano/%{npm_name} Source0: https://registry.npmjs.org/%{npm_name}/-/%{npm_name}-%{version}.tgz Source1: %{npm_name}-%{version}-nm-prod.tgz Source2: %{npm_name}-%{version}-nm-dev.tgz Source3: %{npm_name}-%{version}-bundled-licenses.txt # Sources for the 'advanced' preset subpackage, using its own dependency bundles Source4: https://registry.npmjs.org/%{preset_name}/-/%{preset_name}-%{version}.tgz Source5: %{preset_name}-%{version}-nm-prod.tgz Source6: %{preset_name}-%{version}-nm-dev.tgz Source7: %{preset_name}-%{version}-bundled-licenses.txt BuildArch: noarch ExclusiveArch: %{nodejs_arches} noarch BuildRequires: nodejs-devel Requires: nodejs %description %{_description} %package -n nodejs-%{preset_name} Summary: Advanced optimisations preset for cssnano License: MIT AND BSD-3-Clause AND CC-BY-4.0 AND ISC Requires: nodejs-%{npm_name} = %{version}-%{release} %description -n nodejs-%{preset_name} This package provides the "advanced" preset for cssnano, which enables more aggressive CSS optimizations. %prep # Unpack main source (Source0) to 'package' and preset source (Source4) to 'package-a4' %autosetup -n package -a 4 # Unpack dependency bundles into separate directories to keep them isolated tar -xzf %{SOURCE1} -C . mv node_modules node_modules_main_prod tar -xzf %{SOURCE5} -C . mv node_modules node_modules_preset_prod %build # nothing to build %install # 1. Install the main cssnano package with its own dependencies mkdir -p %{buildroot}%{nodejs_sitelib}/%{npm_name}/node_modules cp -pr package/package.json package/src %{buildroot}%{nodejs_sitelib}/%{npm_name}/ cp -pr node_modules_main_prod/* %{buildroot}%{nodejs_sitelib}/%{npm_name}/node_modules/ # 2. Install the preset package into its own directory with its own dependencies mkdir -p %{buildroot}%{nodejs_sitelib}/%{preset_name}/node_modules cp -pr package-a4/package.json package-a4/src %{buildroot}%{nodejs_sitelib}/%{preset_name}/ cp -pr node_modules_preset_prod/* %{buildroot}%{nodejs_sitelib}/%{preset_name}/node_modules/ # 3. CRITICAL STEP: Create a symlink so the main package can find the preset. # This makes the separate preset installation visible inside the main package's node_modules. ln -s %{nodejs_sitelib}/%{preset_name} %{buildroot}%{nodejs_sitelib}/%{npm_name}/node_modules/%{preset_name} %check # Create a test environment that mimics the final installation mkdir -p ./%{npm_name}/node_modules mkdir -p ./%{preset_name} # Copy installed files into the test environment cp -r %{buildroot}%{nodejs_sitelib}/%{npm_name}/* ./%{npm_name}/ cp -r %{buildroot}%{nodejs_sitelib}/%{preset_name}/* ./%{preset_name}/ # Set NODE_PATH to the current directory so 'require' finds both packages export NODE_PATH=. # Test that both modules can be required successfully %{__nodejs} -e 'require("cssnano")' %{__nodejs} -e 'require("cssnano-preset-advanced")' %files %license package/LICENSE-MIT %doc package/README.md %{nodejs_sitelib}/%{npm_name} %files -n nodejs-%{preset_name} %license package-a4/LICENSE-MIT %doc package-a4/README.md %{nodejs_sitelib}/%{preset_name} %changelog ## START: Generated by rpmautospec * Tue Aug 05 2025 Jiri Kyjovsky - 7.0.7-3 - Uncommitted changes * Thu Jul 24 2025 Fedora Release Engineering - 7.0.7-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild * Tue Jul 15 2025 Jiri Kyjovsky - 7.0.7-1 - Initial package ## END: Generated by rpmautospec