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

AIX port #584

Open
mmetts opened this issue Mar 29, 2021 · 18 comments
Open

AIX port #584

mmetts opened this issue Mar 29, 2021 · 18 comments
Labels
new feature Completely new feature wontfix This will not be worked on

Comments

@mmetts
Copy link

mmetts commented Mar 29, 2021

Is someone going to take up the branch in the old repo and finish getting htop working on AIX? Please advise. Thanks.

@BenBE BenBE added the needs-discussion 🤔 Changes need to be discussed and require consent label Mar 29, 2021
@natoscott
Copy link
Member

@mmetts which branch is that? I couldn't see one with anything AIX related in the name ... FWIW, I'd be happy to help some other developer working on AIX with keeping the platform up-to-date but I don't have access to an AIX machine myself.

@mmetts
Copy link
Author

mmetts commented Mar 29, 2021

Hi! this is the one I'm thinking about hishamhm/htop#832

@natoscott
Copy link
Member

Let's see if any of those folks are still around ... ping @NattyNarwhal @kadler @bmarwell ... are you interested in collaborating on an AIX version of htop?

@mmetts
Copy link
Author

mmetts commented Mar 29, 2021

Hi Nathan,
I would like to help but I don't think I have the skills. My abilities are probably limited to being a build test-dummy. I have a handful of AIX 7.1 and AIX 7.2 machines (all running on Power8) available to me, though. I'm the principal administrator of these machines so I have some discretion WRT build, install, and testing of packages. If there's a way for me to contribute that way I'd be happy to.
Thanks,
Mike

@BenBE
Copy link
Member

BenBE commented Mar 29, 2021

The largest chunk of work with this patchset will consist of mostly three tasks:

  1. Rebasing everything to current head of development
  2. Cleaning up its code style to follow our STYLEGUIDE (cf. docs)
  3. Adapt changes and code cleanups from work done in 3.0.x that changed how certain internals operate.

But before those tasks can be worked on I think it's important, as @natoscott said, to ger permission from the previous authors of that patchset, or even better: get them to help with that porting work.

Given that we have quite a list of tasks ahead even without this AIX port, we're dependent on any helping hand we can get to bring this port forward. We'll try to assist where possible, but the most part should be worked on with people knowing that platform and having a proper development environment for it.

@NattyNarwhal
Copy link

yes, I'm around. i don't use AIX as much as I used to (since I got a box fast enough I didn't need to cross-compile anymore), but I'd be willing to put what I had upstreamed.

@BenBE
Copy link
Member

BenBE commented Mar 29, 2021

Pinging @LionNatsu:

Is it okay to use your commit hishamhm/htop@67e3689 in the porting work going forward?

@BenBE
Copy link
Member

BenBE commented Mar 29, 2021

@NattyNarwhal Could you try to work on the first two points on the list I posted? We'll likely get to the third one soon enough, but having especially the first one out of the picture should simplify going forward quite a bit.

One note regarding OS checks: please create a define HTOP_AIX via configure.ac as is done for all other platforms.

@bmarwell
Copy link

I got a working version, but I don't remember which branches I used and I am sadly not a C coder. But I can compile things on AIX and give feedback.

@BenBE BenBE added new feature Completely new feature wontfix This will not be worked on and removed needs-discussion 🤔 Changes need to be discussed and require consent labels Apr 16, 2021
@BenBE
Copy link
Member

BenBE commented Apr 16, 2021

Discussing this issue in our developer meeting we decided that AIX support is currently no priority as we are seriously lacking demand for it and also are much to short on resources to handle the work necessary to maintain that platform. Thus said, while we may reconsider the inclusion once a workable patch for integration of AIX support is presented, we'll as of now not go forward on its inclusion.

Once workable patches for such support are made we'll be glad to help with bringing them further. Considering our current list of open tasks we'll not be putting any effort into adding support for AIX.

@lm8
Copy link

lm8 commented Nov 6, 2021

I am a C programmer. I am interested in creating a usable patch. Was hoping someone could point me to what's already been done since there was some previous work on this and I can see what needs to be added from there to make it work with the current version. Thanks.

@fasterit
Copy link
Member

fasterit commented Nov 6, 2021

Hey, @lm8. Thank you very much for the offer!
In principle any platform is welcome as long as there is enough user demand and a team of developers that are willing to support it longer term.
So you'd need to get a (small) team together and demonstrate a bit of a user base for AIX to gain supported from the htop core team.

@bmarwell
Copy link

bmarwell commented Nov 6, 2021

I'd use it at work. 🙋🏻‍♂️

@fasterit
Copy link
Member

fasterit commented Nov 6, 2021

@bmarwell Where shall we send the invoices? Or did you ask for pity? 😁

@bmarwell
Copy link

bmarwell commented Nov 6, 2021

If you ever used AIX you knew there is only "topas". I guess that says it all. 😉

Being an OSS maintainer myself, I might drop a donation or two.

@lm8
Copy link

lm8 commented Nov 6, 2021

If you'd need a team to support it instead of one person, then I'll just fork from the current version add what patches I need to make it work and keep it for personal use. It'll at least be helpful at my workplace. Sorry to have bothered you. I typically like to send my patches upstream if they'll accept them.

@BenBE
Copy link
Member

BenBE commented Nov 7, 2021

While we usually welcome contributions to allow htop to run on additional platforms we are also kinda hesitant to include those additional platforms in the main release unless we see a few conditions met. Those are meant for a platform to not be added in one release only to be abandoned soon after. That's why we prefer to have at least two developers helping with the platform, so a reasonable bus factor and timely responses in case of urgent issues for that platform is ensured. So while we try to maintain the code related to each individual platform there are several platforms we cannot readily access and thus require the support of people using and programming for those platforms.

The second condition we have for including a platform is a minimum feature coverage that covers at a minimum all general (cross-platform) columns as well as similar columns from related platforms. Similar rules apply for available meters.

Furthermore there should be some serious user base for the platform that's not just a few enthusiasts or loosely linked to the original creators. With AIX the main impression on can get that having people "include support" for this platform is mainly an ad campaign to boost its relevancy without adding much value to htop for supporting this platform. For example: The user base for NetBSD might not really be large compared to FreeBSD or even Linux, but htop could be run on NetBSD even before we included explicit support for it, but the selling point for having htop run native on that platform was that several features could now be implemented properly while saving on resources and also improving performance. And the proposal was not like "I'll write up the necessary patches so it runs", but rather a mid-to-long term commitment from multiple people in the NetBSD community to help with maintaining the platform and support us when questions arose. So if you and (at least) someone else commit to put in similar efforts, go ahead.

Also you should be aware that we take code quality serious and in particular the initial PR for that platform will likely involve quite a bit of review discussion and refactoring to meet our quality standards. The rules laid out in our style guide document just the bare minimum of what we expect and while they aren't absolute they still give a reasonable guide to work with. It also helps to be around in our developer channel on IRC to allow for questions and strategic planning if necessary.

So, going forward I see the following things to do, if adding AIX platform support to htop was really a step to happen:

  1. Get at least two people committing to maintain that platform mid to long term
  2. Get a working patchset to implement AIX support based on the main development branch
  3. Bring that patchset to feature parity with other (non-Linux) platforms
  4. Survive the review process for that patchset

If you don't want to put this effort into it I'm afraid AIX is not a sustainable platform for htop to support officially. But even than we are still open to the occasional patch you write on your fork; just AIX won't be in the set of things we'd go about integrating …

@bmarwell
Copy link

bmarwell commented Nov 8, 2021

is a minimum feature coverage that covers at a minimum all general (cross-platform) columns

That works just fine, have used an old fork for a few years now.

some serious user base for the platform that's not just a few enthusiasts

AIX and enthussiasts? I am not sure AIX is used a lot on private computers.

we are also kinda hesitant to include those additional platforms in the main release

Bummer. Will continue using @lm8's fork.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new feature Completely new feature wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests

7 participants