Build packages with EL10#12872
Conversation
|
Currently it installs a bunch of files in # ls /usr/lib/node_modules*
/usr/lib/node_modules:
@apollo argv-parse d3 intl patternfly-react react-ace react-redux unleash-proxy-client
@babel babel-loader dnd-core jed patternfly-react-extensions react-diff-view react-router webpack
@openshift babel-preset-env dotenv mini-css-extract-plugin performance-now react-dnd react-router-dom webpack-cli
@patternfly compression-webpack-plugin emotion nodemon prop-types react-dom sanitize-html yup
@reduxjs connected-react-router formik npm rc-input-number react-helmet sass
@theforeman css-loader history patternfly react react-intl style-loader
/usr/lib/node_modules_:
@babel ace-builds datatables.net-bs harmony-reflect lodash react-dnd-html5-backend regenerator-runtime unidiff
@module-federation axios datatables.net-dt humanize-duration lodash.debounce react-ellipsis-with-tooltip reselect urijs
@novnc base64-js deep-diff ieee754 loose-envify react-loading-skeleton sass-loader uuid
@patternfly bootstrap-sass diff ipaddr.js multiselect react-onclickoutside seamless-immutable webpack-stats-plugin
@scalprum buffer dsmorse-gridster jquery neo-async react-password-strength select2 zxcvbn
@spice-project c3 file-saver jquery-ujs number_helpers react-router-bootstrap sortabular
@theforeman classnames follow-redirects js-cookie os-browserify redux symbol-observable
@unleash core-js graphql js-tokens path-browserify redux-logger table-resolver
@webcomponents datatables.net graphql-tag jstz react-debounce-input redux-thunk tslib
/usr/lib/node_modules_22:
@apollo argv-parse d3 intl patternfly-react react-ace react-redux unleash-proxy-client
@babel babel-loader dnd-core jed patternfly-react-extensions react-diff-view react-router webpack
@openshift babel-preset-env dotenv mini-css-extract-plugin performance-now react-dnd react-router-dom webpack-cli
@patternfly compression-webpack-plugin emotion nodemon prop-types react-dom sanitize-html yup
@reduxjs connected-react-router formik npm rc-input-number react-helmet sass
@theforeman css-loader history patternfly react react-intl style-loaderIn It appears |
|
Filed Edit: it's really https://issues.redhat.com/browse/RHEL-137712 |
e5359c4 to
49f6672
Compare
|
Rebased to remove some PRs that were already merged. I also included explicit merge commits with PRs that are also included elsewhere. |
49f6672 to
b6af58b
Compare
|
Rebased now that @ogajduse merged many of the smaller PRs. Opened #13053. What it now includes:
Once that is cleaned up it'll be interesting to see if it actually runs. After that the various plugins need to be built as well. |
b6af58b to
1097dc2
Compare
|
I gave this a spin with theforeman/foreman-oci-images#17 and ran into a problem with the racc dependency. I've written and included #13113 but haven't built nor tested that yet. |
1097dc2 to
da029e2
Compare
|
I've now done basic testing and this can boot up Foreman. No further extensive testing done, just logged in and did some basic API calls. |
1e2fec1 to
822833e
Compare
|
It now fails to find Not sure why because when I inspect the package I don't see an obvious problem with it. |
822833e to
da029e2
Compare
|
I think that was just fallout from the COPR issues because it builds now. I also started to build the plugins in https://copr.fedorainfracloud.org/coprs/ekohl/plugins-nightly-staging/ and some observations while most are still building:
|
da029e2 to
5e83487
Compare
ff4e4cf to
8d69e15
Compare
8d69e15 to
58a0a73
Compare
58a0a73 to
ca9f36a
Compare
|
[test rpm] |
|
@ogajduse I think it would be best to regenerate all nodejs RPMs with the updated npm2rpm in a separate PR. Then I can drop a large part of this. Then there's also a safemode 2.0.0 release that we need to package up. Updating Faraday is probably another big task. |
Appreciate your input, but this was a scripted comment on all PRs with failed RPM check. |
|
For future reference: it doesn't need to only be that comment. Even now that you quote it you're triggering another run. So you can add a text to it to describe it's an automated bulk rebuild. That helps others to ignore it. |
The latest template in npm2rpm contains EL10 compatibility. It also
updates the vendored pacakges to have all the latest versions.
Created with:
awk '/%global npm_name/ { print $3 }' packages/*/nodejs-*/*.spec | xargs -n 1 -I{} ./add_npm_package.sh {} current
git diff --cached --name-only | grep spec | xargs -n 1 sed -i '0,/Update to/ s/Update to .\+/Regenerate spec file/'
ca9f36a to
f18e66f
Compare
This includes:
Currently known failing packages when building
ruby_core_packages_tier1:rubygem-safemodeincompatible with Ruby >= 3.2. This is maintained by Foreman and needs work (Ruby 3.4 compatibility safemode#54). Currently hacked aroundrubygem-sqlite3fails to compile on EL10. We're on 1.4.4 which is 3 years old. Might be sufficient to upgrade to 3.xCurrently known failing packages when building
ruby_core_packages_tier2:rubygem-rkerberosfails to compile on EL10 (config.c:155:53: error: passing argument 1 of ‘RB_INT2FIX’ makes integer from pointer rkerberos/rkerberos#27). This gem is unmaintained so needs attention. Currently patched out offoreman-proxyto allow skipping it.What does work:
rails_core_packageshammer_core_packagesother_core_packagesWhat doesn't work:
foreman_nodejs_packageshas various issues and I haven't tried to figure out why. Some need their cache rebuilt for NPM 6, others complain about missing filesforemanneeds at leastrubygem-safemodeand nodejs packagesforeman-installeris in the same group as its dependencies and needs to be split. It does build after you build all its dependencies.I've built everything in https://copr.fedorainfracloud.org/coprs/ekohl/foreman-nightly-staging/ so there's where you can also find the build logs.
More background: https://community.theforeman.org/t/bootstrapping-foreman-rpm-packaging/45290.