Skip to content

nodeenv-py version 1.9.1 new package to satisfy pre-requisite - #1228

Open
sth0 wants to merge 2 commits into
fink:masterfrom
sth0:sth-nodeenv-py
Open

nodeenv-py version 1.9.1 new package to satisfy pre-requisite#1228
sth0 wants to merge 2 commits into
fink:masterfrom
sth0:sth-nodeenv-py

Conversation

@sth0

@sth0 sth0 commented Apr 1, 2025

Copy link
Copy Markdown
Contributor

nodeenv is a pre-req for pre-commit. This version has the tests commented out since I think they need two more new packages and not sure how many more after that. Builds and installs with the -mv options in fink. See PR #1225
Uses modern bootstrap module so limited to python >= 3.8

@nieder nieder left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It builds. I enabled tests to see what happens, and two tests fail, looking for node and/or nodejs, which is not surprising since this is for creating node environments:

E           subprocess.CalledProcessError: Command '('coverage', 'run', '-p', '-m', 'nodeenv', '-n', 'system', '/private/tmp/pytest-of-fink-bld/pytest-0/test_smoke_n_system_special_ch0/nenv (production env)')' returned non-zero exit status 1.

/sw/lib/python3.8/subprocess.py:364: CalledProcessError
-------------------------------------------------------------------------------- Captured stderr call --------------------------------------------------------------------------------
Traceback (most recent call last):
  File "/sw/build.build/nodeenv-py38-1.9.1-1/nodeenv-1.9.1/nodeenv.py", line 1548, in <module>
    main()
  File "/sw/build.build/nodeenv-py38-1.9.1-1/nodeenv-1.9.1/nodeenv.py", line 1130, in main
    create_environment(env_dir, args)
  File "/sw/build.build/nodeenv-py38-1.9.1-1/nodeenv-1.9.1/nodeenv.py", line 1014, in create_environment
    install_activate(env_dir, args)
  File "/sw/build.build/nodeenv-py38-1.9.1-1/nodeenv-1.9.1/nodeenv.py", line 946, in install_activate
    assert shim_node, "Did not find nodejs or node system executable"
AssertionError: Did not find nodejs or node system executable

...
dyld: cannot load 'node' (load command 0x80000034 is unknown)
sh: line 1: 84409 Abort trap: 6           node --version

So node should be at least included as a TestDepends once you activate tests, and should also be a RuntimeDepends or Depends.

coverage-py also would need to be added to TestDepends once those are enabled.

@sth0

sth0 commented May 10, 2025

Copy link
Copy Markdown
Contributor Author

I left the testing turned off since the source for nodejs was not available. It searched several of the mirrors and the source but no luck. If the distfiles.finkmirrors gets fixed then I will revisit it. This just seemed like an endless chain of depends that was dragging me further from getting lftp fixed and used as part of duplicity which is my original goal.
"When you are up to your knees in alligators, it is hard to remember that your original intent was to drain the swamp"

@sth0

sth0 commented May 10, 2025

Copy link
Copy Markdown
Contributor Author

Also, if I do find the source code for nodejs, it doesn't build with an error. The nodejs is version 12 and current version is 24 and upstream is not interested in fixing it for a valid reason.
nodejs/node#54187

@dmacks

dmacks commented Jan 6, 2026

Copy link
Copy Markdown
Member

Upstream is 1.10.0 now. Changing this PR's .info to that (and updating SHA256), the package builds cleanly for all three variants. It would be useful to document why the testing is turned off (but the explanation is reasonable, and I support getting this thing pushed to enable work on other things as long as this here is sufficient for that work.

@nieder

nieder commented Feb 6, 2026

Copy link
Copy Markdown
Member

@sth0 ping.
some pytest plugins are starting to need pre-commit, so it would be nice to get this in to get pre-commit in to get those.

@sth0

sth0 commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

I have added pre-commit PR#1225 so then this can be merged? I am now having a dependency conflict. For some reason building nodeenv-py310 seems to want to install

The following 7 additional packages will be installed:
 gyp-py39 libnode72-shlibs nodejs openssl110-dev python39 python39-shlibs
 six-py39

Which are python 3.9 packages!! ? It also installed openssl110-dev which removes openssl300-dev which is also needed so the package doesn't build. I think nodejs requires python39 to build and openssl110-dev.

The following package will be installed or updated:
 nodejs
The following 6 additional packages will be installed:
 gyp-py39 libnode72-shlibs openssl110-dev python39 python39-shlibs six-py39

@sth0

sth0 commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

I think that installing nodejs it removes openssl300 first, installs openssl110 and then tries to build python39 which fails since it needs openssl300.

And even more confusing (at least to me) is the libnode72-shlibs replaces nodejs and for some reason it is trying to install both?

@sth0 sth0 self-assigned this Jul 17, 2026
@sth0

sth0 commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

Anyway, nodeenv is updated to version 1.10.0 here and completes all tests with python 3.10

@sth0
sth0 requested a review from nieder July 17, 2026 22:52
@sth0

sth0 commented Aug 12, 2026

Copy link
Copy Markdown
Contributor Author

Get these merged in soon? My local tree is growing! :-)

@dmacks

dmacks commented Aug 16, 2026

Copy link
Copy Markdown
Member

nodeenv-pyXX -> nodejs and nodejs -> *-py39. That latter seems to be for internal use, so it would be great to update nodejs to py310. However, @TheSin- our ancient nodejs doesn't build for me on arm/tahoe regardless, starting with:

In file included from ../deps/v8/src/api/api-arguments.cc:5:
In file included from ../deps/v8/src/api/api-arguments.h:8:
In file included from ../deps/v8/src/api/api.h:9:
In file included from ../deps/v8/src/execution/isolate.h:24:
In file included from ../deps/v8/src/execution/isolate-data.h:10:
In file included from ../deps/v8/src/codegen/external-reference-table.h:10:
In file included from ../deps/v8/src/builtins/accessors.h:10:
In file included from ../deps/v8/src/objects/property-details.h:12:
../deps/v8/src/utils/utils.h:333:22: error: constexpr variable 'kMax' must be initialized by a constant expression
  333 |   static constexpr T kMax = static_cast<T>(kNumValues - 1);
      |                      ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../deps/v8/src/objects/code.h:441:36: note: in instantiation of template class 'v8::internal::BitField<v8::internal::Code::Kind, 1, 5>' requested here
  441 |   static_assert(NUMBER_OF_KINDS <= KindField::kMax, "Code::KindField size");
      |                                    ^
../deps/v8/src/utils/utils.h:333:29: note: integer value 31 is outside the valid range of values [0, 15] for the enumeration type 'Kind'
  333 |   static constexpr T kMax = static_cast<T>(kNumValues - 1);
      |                             ^

and is also passing -mmacosx-version-min=10.9 (leading to a mile of warnings) even though I'm on 26.1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants