Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EAPI=7 support #6

Open
MageSlayer opened this issue Jul 10, 2018 · 25 comments
Open

EAPI=7 support #6

MageSlayer opened this issue Jul 10, 2018 · 25 comments

Comments

@MageSlayer
Copy link
Owner

Corresponding Gentoo bug https://bugs.gentoo.org/655976

@Bfgeshka
Copy link

Can this feature be expected anytime soon? It's probably the last thing that obstructs paludis usage.

Btw, I've rehosted your ebuild in my overlay (which is available in official listings), I hope you don't mind.

@MageSlayer
Copy link
Owner Author

Yes, I understand.
I had time to only investigate design for EAPI7 so far, unfortunately.

Sure, I don't mind.

@bodograumann
Copy link

The changes from EAPI 6 to EAPI 7 can be found in The ultimate guide to EAPI 7.
I think we only need partial support to make paludis completely usable again.

  • Banned commands and removed variables
    Can be ignored for now.

  • Improved cross-compilation support
    Not sure if there is any support currently in paludis.
    I think it would suffice to merge BDEPEND into DEPEND for now.

  • Version manipulation and comparison commands
    We need to implement the three new functions ver_cut, ver_rs and ver_test.
    The guide says there is eapi7-ver.eclass ”providing the reference implementation for previous EAPIs”.
    Maybe we can rely on that for now?

  • Other new features and commands

    • eqawarn needs to be defined, but need not do anything. Also there is a fallback implementation in eutils.eclass.
    • ENV_UNSET is needed. This should not be too hard to implement.
    • dostrip, if I understand it correctly, could be implemented simplified by still having it disabling stripping completely and ignoring dostrip -x.
    • We need to depend on >=patch-2.7.
  • Other behaviour changes

    • We need to remove the trailing slash of D, ED, ROOT and EROOT.
    • The output of einfo, elog, etc. must not go to stdout anymore.
    • die and assert need to be usable in subshells. Is this already the case?
    • nonfatal must be available as a shell function and as an external command. What do we currently have?
    • Make domo ignore the prefix, just like dodoc etc.
    • || () and ^^ () dependencies should count as not satisfied. I don’t think this is too important for now.
  • Profile changes

    • Directories in profiles are probably not widely used right now and still forbidden in the main gentoo repo. So this can be postponed.
    • Ignoring package.provided is also not that important.

So all in all it seems there are only a few changes necessary to get to a working state with basic EAPI 7 support.

Unfortunately I don’t think I can be of much help in implementing, as I’m completely unfamiliar with the codebase and I haven’t used c++ in years. If there is something to test though, I'll gladly try to do that.

@MageSlayer
Copy link
Owner Author

My own conclusions about EAPI7 are roughly the same.
I'll try to start doing some concrete steps.

MageSlayer added a commit that referenced this issue Sep 21, 2018
MageSlayer added a commit that referenced this issue Sep 22, 2018
Related to #6
MageSlayer added a commit that referenced this issue Sep 22, 2018
MageSlayer added a commit that referenced this issue Sep 23, 2018
Related to #6
MageSlayer added a commit that referenced this issue Sep 23, 2018
MageSlayer added a commit that referenced this issue Sep 23, 2018
MageSlayer added a commit that referenced this issue Sep 23, 2018
Related to #6
MageSlayer added a commit that referenced this issue Sep 23, 2018
@MageSlayer
Copy link
Owner Author

For those interested (read - those who are ready for testing/breakage).

I've pushed new ebuild changes in https://github.com/MageSlayer/paludis-gentoo-overlay with "eapi7" use flag to enable experimental EAPI7 Paludis build.

MageSlayer added a commit that referenced this issue Sep 30, 2018
Related to #6
@hlandgarten
Copy link

I am getting a lot of failures on EAPI 7 ebuilds like this one in xterm-337:
!!! ERROR in x11-terms/xterm-337::gentoo:
!!! In inherit at line 63
!!! Error finding eclass desktop

All the errors reference different eclasses but mostly: autotools, mulitlib, multili-minimal. and distutils-r1

All the failures occur in: /usr/libexec/paludis/0/eclass_functions.bash:63

@MageSlayer
Copy link
Owner Author

@hlandgarten
Yes, I am aware of it.
That's due to improper ECLASSDIR/ECLASSDIRS removal.
I'll fix it asap.

MageSlayer added a commit that referenced this issue Oct 2, 2018
@hlandgarten
Copy link

Most install now. Still have issue on some ebuilds. For example rdesktop:
!!! ERROR in net-misc/rdesktop-1.8.3-r3::gentoo:
!!! In has_version at line 2464
!!! /usr/libexec/paludis/ebuild.bash should take exactly one arg

All the ebuilds with this issue have multiple items in the inherit line.

@MageSlayer
Copy link
Owner Author

Ok. Thanks for testing.
New EAPI7 "has_version" support is yet to be implemented.

@hlandgarten
Copy link

I currently have 20 ebuilds failing because of has_version so it would be good to get it implemented. Gentoo added lots of EAPI7 ebuilds.

@MageSlayer
Copy link
Owner Author

Yes, I know.
I'll implement it as soon as I have some free time.

@kdudka
Copy link

kdudka commented Oct 5, 2018

I have also seen the has_version related error mentioned above:

!!! ERROR in dev-libs/libevdev-1.5.9-r1::gentoo:
!!! In has_version at line 2202
!!! /usr/libexec/paludis/ebuild.bash should take exactly one arg

!!! Call stack:
!!!    * has_version (/var/tmp/paludis/dev-libs-libevdev-1.5.9-r1/temp/loadsaveenv:2202)
!!!    * python_is_installed (/var/tmp/paludis/dev-libs-libevdev-1.5.9-r1/temp/loadsaveenv:3646)
!!!    * _python_EPYTHON_supported (/var/tmp/paludis/dev-libs-libevdev-1.5.9-r1/temp/loadsaveenv:670)
!!!    * python_setup (/var/tmp/paludis/dev-libs-libevdev-1.5.9-r1/temp/loadsaveenv:3793)
!!!    * python-any-r1_pkg_setup (/var/tmp/paludis/dev-libs-libevdev-1.5.9-r1/temp/loadsaveenv:3119)
!!!    * pkg_setup (/var/tmp/paludis/dev-libs-libevdev-1.5.9-r1/temp/loadsaveenv:3069)
!!!    * ebuild_f_setup (/usr/libexec/paludis/0/pkg_setup.bash:43)
!!!    * ebuild_main (/usr/libexec/paludis/ebuild.bash:675)
!!!    * main (/usr/libexec/paludis/ebuild.bash:698)

Besides that, it seems to work fine so far. Thank you for the progress on this!

@MageSlayer
Copy link
Owner Author

Glad someone else also appreciates this project.

l29ah added a commit to l29ah/paludis-gentoo-patches that referenced this issue Oct 21, 2018
it's safe until we're cross-compiling
related to MageSlayer#6
MageSlayer added a commit that referenced this issue Oct 22, 2018
Stub the EAPI7 {best,has}_version features.
Unit tests and proper support is still TODO 
Related to #6
@hlandgarten
Copy link

The new version is working great. All my ebuilds are now building. Thank you for bringing paludis back to life. Maybe we can get it back in the gentoo tree.

@MageSlayer
Copy link
Owner Author

@hlandgarten
Please beware, "best_version" and "has_version" are merely stubs doing nothing except pretending as working. Proper version is in progress.

negril pushed a commit to negril/paludis that referenced this issue Jul 24, 2023
it's safe until we're cross-compiling
related to MageSlayer#6
negril pushed a commit to negril/paludis that referenced this issue Jul 24, 2023
…es) into build_depend(encies)_target and build_depend(encies)_host.

Related to MageSlayer#6

Note that this implementation currently doesn't actually do any
architecture checks. Instead, both dependency lists are merged together.

It also breaks API (at least for the bindings), so a library version
bump would be in order.
negril pushed a commit to negril/paludis that referenced this issue Sep 13, 2023
negril pushed a commit to negril/paludis that referenced this issue Sep 13, 2023
negril pushed a commit to negril/paludis that referenced this issue Sep 13, 2023
negril pushed a commit to negril/paludis that referenced this issue Sep 13, 2023
negril pushed a commit to negril/paludis that referenced this issue Sep 13, 2023
negril pushed a commit to negril/paludis that referenced this issue Sep 13, 2023
negril pushed a commit to negril/paludis that referenced this issue Sep 13, 2023
negril pushed a commit to negril/paludis that referenced this issue Sep 13, 2023
negril pushed a commit to negril/paludis that referenced this issue Sep 13, 2023
negril pushed a commit to negril/paludis that referenced this issue Sep 13, 2023
negril pushed a commit to negril/paludis that referenced this issue Sep 13, 2023
negril pushed a commit to negril/paludis that referenced this issue Sep 13, 2023
negril pushed a commit to negril/paludis that referenced this issue Sep 13, 2023
it's safe until we're cross-compiling
related to MageSlayer#6
negril pushed a commit to negril/paludis that referenced this issue Sep 13, 2023
…es) into build_depend(encies)_target and build_depend(encies)_host.

Related to MageSlayer#6

Note that this implementation currently doesn't actually do any
architecture checks. Instead, both dependency lists are merged together.

It also breaks API (at least for the bindings), so a library version
bump would be in order.
negril pushed a commit to negril/paludis that referenced this issue Jan 10, 2025
negril pushed a commit to negril/paludis that referenced this issue Jan 10, 2025
negril pushed a commit to negril/paludis that referenced this issue Jan 10, 2025
negril pushed a commit to negril/paludis that referenced this issue Jan 10, 2025
negril pushed a commit to negril/paludis that referenced this issue Jan 10, 2025
negril pushed a commit to negril/paludis that referenced this issue Jan 10, 2025
negril pushed a commit to negril/paludis that referenced this issue Jan 10, 2025
negril pushed a commit to negril/paludis that referenced this issue Jan 10, 2025
negril pushed a commit to negril/paludis that referenced this issue Jan 10, 2025
negril pushed a commit to negril/paludis that referenced this issue Jan 10, 2025
negril pushed a commit to negril/paludis that referenced this issue Jan 10, 2025
negril pushed a commit to negril/paludis that referenced this issue Jan 10, 2025
negril pushed a commit to negril/paludis that referenced this issue Jan 10, 2025
it's safe until we're cross-compiling
related to MageSlayer#6
negril pushed a commit to negril/paludis that referenced this issue Jan 10, 2025
…es) into build_depend(encies)_target and build_depend(encies)_host.

Related to MageSlayer#6

Note that this implementation currently doesn't actually do any
architecture checks. Instead, both dependency lists are merged together.

It also breaks API (at least for the bindings), so a library version
bump would be in order.
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

No branches or pull requests

7 participants