From a6a4786114d4ea091bb56ce3a62a56b010a3e9c3 Mon Sep 17 00:00:00 2001 From: Honza Horak Date: Tue, 16 May 2023 21:18:33 +0200 Subject: [PATCH] Replace whole repo with latest content from branch stream-rhel-8.0-rhel-8.8.0 Content corresponds with RHEL dist-git commit 5b899d1 --- .gitignore | 15 +++- README.md | 218 ----------------------------------------------------- sources | 2 +- 3 files changed, 15 insertions(+), 220 deletions(-) delete mode 100644 README.md diff --git a/.gitignore b/.gitignore index eb538dd..f69a8f6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,15 @@ -SOURCES/nodejs-packaging-fedora-17.tar.xz +/nodejs-packaging-fedora-2.tar.xz +/nodejs-packaging-fedora-3.tar.xz +/nodejs-packaging-fedora-4.tar.xz +/nodejs-packaging-fedora-6.tar.xz +/nodejs-packaging-fedora-7.tar.xz +/nodejs-packaging-fedora-8.tar.xz +/nodejs-packaging-fedora-9.tar.xz +/nodejs-packaging-fedora-10.tar.xz +/nodejs-packaging-fedora-11.tar.xz +/nodejs-packaging-fedora-12.tar.xz +/nodejs-packaging-fedora-13.tar.xz +/nodejs-packaging-fedora-14.tar.xz +/nodejs-packaging-fedora-15.tar.xz +/nodejs-packaging-fedora-16.tar.xz /nodejs-packaging-fedora-17.tar.xz diff --git a/README.md b/README.md deleted file mode 100644 index cbad903..0000000 --- a/README.md +++ /dev/null @@ -1,218 +0,0 @@ -# How to update Node.js in Fedora - -## Determine the Node.js version -Monitor the [Node.js Blog](https://nodejs.org/en/blog/) to be notified of -available updates. - -For simplicity and copy-and-paste of instructions below, set some variables -here: - -``` -NODEJS_MAJOR=12 -NODEJS_VERSION=12.9.0 -``` - -## Clone the Fedora package repository -These steps assume that you are a comaintainer of Node.js or a provenpackager -in Fedora. - -``` -fedpkg clone nodejs nodejs-fedora -``` - -Next, switch to the major version branch you are going to update. We'll use -Node.js 12.9.0 in this document. Adjust the versions appropriately for the -version you are working on. - -``` -pushd nodejs-fedora -fedpkg switch-branch $NODEJS_MAJOR -popd -``` - - -## Clone the Fedora Module repository - -``` -fedpkg clone modules/nodejs nodejs-fedora-module -``` - - -## Clone the upstream Node.js repository -``` -git clone -o upstream git://github.com/nodejs/node.git nodejs-upstream -``` - - -## Rebase the Fedora patches atop the latest release - -``` -pushd nodejs-upstream -git checkout -b fedora-v$NODEJS_VERSION v$NODEJS_VERSION -git am -3 ../nodejs-fedora/*.patch -``` - -If the patches do not apply cleanly, resolve the merges appropriately. Once -they have all been applied, output them again: - -``` -git format-patch -M --patience --full-index -o ../nodejs-fedora v$NODEJS_VERSION..HEAD -popd -``` - - -## Update the Node.js tarball and specfile - -``` -pushd nodejs-fedora -./nodejs-tarball.sh $NODEJS_VERSION -``` - -Note that this command will also output all of the versions for the software -bundled with Node.js. You will need to edit `nodejs.spec` and update the -%global values near the top of that file to include the appropriate values -matching the dependencies. Make sure to also update the Node.js versions too! - -Note that if libuv is updated, you need to ensure that the libuv in each -buildroot is of a sufficient version. If not, you may need to update that -package first and submit a buildroot override. - -Update the RPM spec %changelog appropriately. - - -## (Preferred) Perform a scratch-build on at least one architecture - -``` -fedpkg scratch-build [--arch x86_64] --srpm -``` - -Verify that it built successfully. - - -## Push the changes up to Fedora -``` -fedpkg commit -cs -fedpkg push -popd -``` - - -## (Optional) Build for Fedora releases - -If this major version is the default for one or more Fedora releases, build it -for them. (Note: this step will go away in the future, once module default -streams are available in the non-modular buildroot.) - -In the case of Node.js 12.x, this is the default version for Fedora 31 and 32. - -``` -pushd nodejs-fedora -fedpkg switch-branch [master|31] -git merge $NODEJS_MAJOR -fedpkg push -fedpkg build -popd -``` - -## Build module stream - -``` -pushd nodejs-fedora-module -fedpkg switch-branch $NODEJS_MAJOR -``` - -If the module has changed any package dependencies (such as added a dep on a -new shared library), you may need to modify nodejs.yaml here. If not, you can -simply run: - -``` -git commit --allow-empty -sm "Update to $NODEJS_VERSION" -fedpkg push -fedpkg module-build -popd -``` - -## Submit built packages to Bodhi -Follow the usual processes for stable/branched releases to submit builds for -testing. - - -# How to bundle nodejs libraries in Fedora - -The upstream Node.js stance on -[global library packages](https://nodejs.org/en/blog/npm/npm-1-0-global-vs-local-installation/) -is that they are ".. best avoided if not needed." In Fedora, we take the same -stance with our nodejs packages. You can provide a package that uses nodejs, -but you should bundle all the nodejs libraries that are needed. - -We are providing a sample spec file and bundling script here. -For more detailed packaging information go to the -[Fedora Node.js Packaging Guildelines](https://docs.fedoraproject.org/en-US/packaging-guidelines/Node.js/) - -## Bundling Script - -``` -nodejs-packaging-bundler [version] -``` - -nodejs-packaging-bundler is it's own package, nodejs-packaging-bundler and must be installed before use. -nodejs-packaging-bundler gets the latest npm version available, if no version is given. -It produces four files and puts them in ${HOME}/rpmbuild/SOURCES - - * -.tgz - This is the tarball from npm.org - * --nm-prod.tgz - This is the tarball that contains all the bundled nodejs modules needs to run - * --nm-dev.tgz - This is the tarball that contains all the bundled nodejs modules needs to test - * --bundled-licenses.txt - This lists the bundled licenses in --nm-prod.tgz - -## Sample Spec File - -``` -%global npm_name my_nodejs_application -... -License: and and -... -Source0: http://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 -... -BuildRequires: nodejs-devel -... -%prep -%setup -q -n package -cp %{SOURCE3} . -... -%build -# Setup bundled node modules -tar xfz %{SOURCE1} -mkdir -p node_modules -pushd node_modules -ln -s ../node_modules_prod/* . -ln -s ../node_modules_prod/.bin . -popd -... -%install -mkdir -p %{buildroot}%{nodejs_sitelib}/%{npm_name} -cp -pr index.js lib package.json %{buildroot}%{nodejs_sitelib}/%{npm_name} -# Copy over bundled nodejs modules -cp -pr node_modules node_modules_prod %{buildroot}%{nodejs_sitelib}/%{npm_name} -... -%check -%nodejs_symlink_deps --check -# Setup bundled dev node_modules for testing -tar xfz %{SOURCE2} -pushd node_modules -ln -s ../node_modules_dev/* . -popd -pushd node_modules/.bin -ln -s ../../node_modules_dev/.bin/* . -popd -# Example test run using the binary in ./node_modules/.bin/ -./node_modules/.bin/vows --spec --isolate -... -%files -%doc HISTORY.md -%license LICENSE.md %{npm_name}-%{version}-bundled-licenses.txt -%{nodejs_sitelib}/%{npm_name} -``` - diff --git a/sources b/sources index d71f42c..cb2abb7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nodejs-packaging-fedora-17.tar.xz) = ed87ddb2bbaaabcc8842d875e3f2453809becdde231f961d6a369ab1ef85b192b72271697952c69fe5e55d3516a5e73dc52a938d3525c5957c0f5ea2a7e0ddc4 +4f11cb5238262185f55f64e21191733e nodejs-packaging-fedora-17.tar.xz