Today #procps 4.0.4 had it's first release candidate. This is mainly for final testing and translators. In about a week or two the actual release should happen.
This is a minor update with some improvements and resolving a very unlikely security bug.
So I found out what CVE-2023-4016 in ps #procps was about. There was a malloc(X * Y) where X is limited by ARG_MAX. Systems with very odd setups may make this large (standard is ~8M) overflow the multiplier and memory fun ensures.
The fix is probably just use calloc.
Came across an odd and old deficiency in #procps ps today. The only way to select by PGID is to use a negative PID, e.g. "ps -123". The bug report was the fact the ps man page doesn't document it that way but that it selects by pid.
I'll probably add a new option to ps for this selection type.
#procps 4.0.3 is released today.
The main fix is the translated manpages are installed correctly.
However there are some interesting enhancements and fixes:
* w can show pids of "best" processes with --pids
* pgrep with --terminal no longer ignores all other criteria
* ps c shows the command name, not the command line, again
* top can show E/P cores in summary
* watch will beep if the program beeps
https://gitlab.com/procps-ng/procps/-/releases/v4.0.3
#debian packages already uploaded.
#procps #debian #opensource #linux
#procps RC1 for 4.0.3 was uploaded today.
Files are at:
https://sourceforge.net/projects/procps-ng/files/Translators/
https://gitlab.com/procps-ng/procps/-/tags/v4.0.3_rc1
I uploaded intel-gpu-tools this morning into the #Debian archives.
Hang on, that's not one of my packages, right?
#procps is going through a library transition which means dependent projects, such as this one, need to be updated and the transition team gave it the hurry-up. The package should work the same, just with a new library.
#debian #procps #opensource #programming
What does the c (not -c) option do in #ps ? It's supposed to do two things.
Change ps to "BSD mode" and change the command line to the command name.
#procps 4.0.x up to 4.0.3 didn't do the second one, but now it does. That was a regression I've fixed.
The command line is the ARGV string of a process, the command name is the first 16 characters of the binary or whatever you used with prctl(PR_SET_NAME).
#ps #procps #linux #opensource
#procps 4.0.2 failed it's tests on the #s390x architecture.
The failed test simply got the pid using the library and resident memory size and checked for non-zero. Digging deeper the memory was zero but even the new ps that uses the library says it's not.
The test mistakenly uses u_int not ul_int. Passed on the amd64 but not s390x!
#procps 4.0.1 has two bugs we've already fixed.
The first is the Polish translation files for man pages is broken so builds fail. You'll hit that mainly if you got clone rather than use the tarball.
The second is for certian odd architectures some programs will think there is no proc filesystem due to not having a core_id field in /proc/cpuinfo
#procps v4.0.1rc2 has gone out to the translators, this is pretty significant.
Why? Because it means we are finally changing the procps library to what we call "newlib". This is a dramatically different and better API than libprocps which is based upon exposing a bunch of global variables.
I'll need to give the translators time, then its onto 4.0.1 release and making the API changes for dependent projects.
@dropbear
I wrote a blog post about #linux memory management, the ongoing saga of used and cached memory and how this impact tools like #procps free
Tonight I did the last of the changes for #procps to handle when the proc filesystem has the subset=PID flag which hides most of non PID files under /proc. The idea is for the library to flag the issue, generally with a -ENOENT and let the application decide what to do about it.
That doesn't mean all the programs work, for example free just complains it can't see meminfo but at least it's a sensible message.
#procps #linux #opensource #programming
In Linux and other unixes every device has a number. This can be split out into major and minor numbers which is generally how humans see them.
There are three different sizes: 16 32 and 64 bits and the major and minor numbers are jumbled across them.
For some unknown reason lost to time, #procps used its own definition but now it uses the glibc macro. For Linux systems this is no change but it helps with others such as cygwin
#procps #opensource #programming
#procps version 4.0.0 has been released today. This release includes the new library API allowing for more procfs items to be exported. It has been an ongoing effort since 2015 and we're glad to reach this milestone.
https://www.freelists.org/post/procps/Procpsng-400-released-with-newlib
#debian #procps package 3.3.17-7 was released today.
This should mean both the kfreebsd and hurd ports can build.
kill will once again correctly handle negative pids.
pidwait will work and not try to run like pgrep.
Not that it matters for most people, but the pre-install script from 2008 got removed too.
#debian #procps #opensource #foss
I think I finally cracked the alignment issue in free for non-english translations. It was a pretty simple fix in the end but really should have been avoided with printf() sucking less.
The watch program from the #procps package has a new trick. Someone asked if there was a way to truncate the output instead of line-wrapping.
Watch already detects the width of the screen because it uses ncurses to output the lines so it needs to know where on the screen the next character will go. It was just a matter of hooking into the "run out of width" part of the code and eat the input until we hit an end of line.
So soon if you want to chomp those lines, you can!
Apparently #procps had an old website I built, like, ten or more years ago. Today it, and the terrible logo I made, has rightly gone away.
#procps #opensource #freesoftware