Opened 13 years ago
Closed 12 years ago
#3095 closed enhancement (fixed)
Procps-ng-3.3.6
Reported by: | Gilles Espinasse | Owned by: | |
---|---|---|---|
Priority: | normal | Milestone: | 7.3 |
Component: | Book | Version: | SVN |
Severity: | normal | Keywords: | |
Cc: |
Description
procps-ng is a fork that could be found on http://gitorious.org/procps used by Debian, Fedora, openSUSE.
the announce of v3.3.3 release is at http://www.freelists.org/post/procps/procps-333-released
What is better is a standard configure, compilation with less warnings, a test suite, some bugs fixed.
But the package is not distributed bootstrapped actually. The git tree with v3.3.3 tag could be downloaded from gitorious or you may wait to pick a bootstrapped copy of the package from a distrib that use it (Debian, Fedora, openSUSE)
Due to the non-boostrapped package, that's an issue for LFS build order as build before autoconf/automake. I was using debian package and patches with 3.3.2.
Test suite had many issues in 3.3.2 on my configuration. v3.3.3 now work for me with a 32-bits kernel and userspace but fail on a 64-bits kernel and a 32-bits userspace in one test where free -b give bad values for swaptotal.
Attachments (1)
Change History (21)
comment:1 by , 13 years ago
comment:2 by , 13 years ago
Priority: | normal → low |
---|---|
Summary: | Switch to procps-ng (3.3.3) → Switch to procps-ng (3.3.3) - placeholder - not ready yet |
Type: | task → enhancement |
comment:4 by , 12 years ago
probably Debian patches in it. stuff like that.
No. Debian patches are not applied on .orig.tar.xz package, they are inside debian.tar.gz. I haven't yet look (have been busy on other packages).
comment:5 by , 12 years ago
Milestone: | 7.2 → Future |
---|
comment:6 by , 12 years ago
3.3.4 has been released.
http://www.freelists.org/post/procps/procpsng-version-334-released
Test suite has been fixed, should now work on LFS build
(I didn't try yet the released package).
ABI has changed without bumping .so name. So 3.3.5 should follow soon to fix that.
As with 3.3.3, the package made on gitorious is not bootstrapped, so the alternative is to use a bootstrapped package used by one distro like debian (with the .orig). http://packages.debian.org/source/sid/procps
comment:7 by , 12 years ago
I had forgotten the hack I used to make the testsuite successfull. There is still 2 issues in the test suite:
- 2 files are missing in debian .orig files (reported today), required to run some tests,
- which is not build in LFS order, so exec which sleep fail, I used
sed -i 's|exec which sleep|exec echo /bin/sleep|' testsuite/config/unix.exp
comment:8 by , 12 years ago
Hm, their autotools system is weird. If you specify --prefix=/usr, you end up having /usr/usr/bin ...
Anyways, for anyone interested I used these commands to build procps:
./configure --prefix=/usr --sysconfdir=/etc --exec-prefix= --libdir=/usr/lib --docdir=/usr/share/doc/procps-3.3.5 --disable-static && make && make install && mv -v /usr/lib/libprocps.so.* /lib && ln -sfv ../../lib/libprocps.so.1.0.0 /usr/lib/libprocps.so
I've specified --libdir=/usr/lib because if it's not specified, we'd have /lib/pkgconfig which pkg-config doesn't include into search path. Another reason is easy way to move .la file from /lib which shouldn't be there and to avoid "file has been moved" warning. (I can't stand libtool, I always delete .la files).
I've put a working tarball on http://linuxfromscratch.org/~krejzi/procps-3.3.5.tar.xz with md5sum 22f1cdedfd892fb31a6d22880130e2e4
comment:9 by , 12 years ago
Summary: | Switch to procps-ng (3.3.3) - placeholder - not ready yet → Switch to procps-ng (3.3.6) - placeholder - not ready yet |
---|
3.3.6 is now out: http://www.freelists.org/post/procps/Procpsng-336-released. It looks like the packaging issue may be addressed shortly too: http://www.freelists.org/post/procps/Additional-infrastructure-for-procpsng.
comment:10 by , 12 years ago
Packages are now available from sourceforge http://sourceforge.net/projects/procps-ng/files/Production/
I am using
./configure --prefix=
There is still one minor issue in the test suite that need hacking as which is not available, so I use
sed -i "s|exec which sleep|exec echo /$(TOOLS_DIR)/bin/sleep|" testsuite/config/unix.exp
There is another small detail.
make check
work but the ouput is not very nice to read. I prefer using
(cd $(DIR_APP)/testsuite; make site.exp && DEJAGNU=global-conf.exp runtest)
I understand you may find that command too complicated, but I haven't found a way with make check to produce the same nice to read output.
comment:11 by , 12 years ago
I haven't tested the applications but the build works pretty well without the patches and sed. I note that snice is not there, but the current man page for snice/skill says:
"These tools are probably obsolete and unportable. The command syntax is poorly defined. Consider using the killall, pkill, and pgrep commands instead."
There is probably a minor error in the build because they have the option
--enable-skill build skill and snice
but they build skill by default.
Using --prefix= is not enough. We would need to use --mandir and --docdir. This seems to work for me:
./configure --prefix= --mandir=/usr/share/man --docdir=/usr/share/doc/procps-ng-3.3.6 --disable-skill
I'm in the middle of of a full build, but will test the executables when I'm done.
Matt, What do you think?
comment:12 by , 12 years ago
Inside chroot, the build is OK, but I get:
Running ./pmap.test/pmap.exp ... FAIL: pmap X with unreachable process FAIL: pmap XX with unreachable process === Summary === # of expected passes 98 # of unexpected failures 2 # of untested testcases 20
In a non-chroot environment and as a regular user, I get no failures:
# of expected passes 91 # of untested testcases 20 # of unsupported tests 2
In a full system, running as root gives the same numbers as chroot. Trying su -s /bin/bash -c "PATH=$PATH DEJAGNU=global-conf.exp runtest" gives 3 failures. The third in Running ./pgrep.test/pgrep.exp ... FAIL: pgrep matches on tty
I note that the old procps does not even come with a test suite. vmstat has a minor problem with formatting (when more than 1G free and size is K). top seems fine.
comment:13 by , 12 years ago
Hi Bruce. It'd be interesting to see what causes those test failures, but I'm happy enough to see this go in as-is with a warning to expect 2 test failures.
comment:14 by , 12 years ago
Milestone: | Future → 7.3 |
---|---|
Priority: | low → normal |
Summary: | Switch to procps-ng (3.3.6) - placeholder - not ready yet → Procps-ng-3.3.6 |
comment:15 by , 12 years ago
procps-ng-3.3.6 test suite fail only once in three build with :
FAIL: pmap extra extended output (footer) FAIL: pmap X with unreachable process FAIL: pmap XX with unreachable process
That procps build was while running with 2.6.32-5-686 debian stable kernel. The other two build against running kernel linux-3.4.24 (32 bits) show no error. You could retrieve which kernel was running in make test log looking for 'Running tests for GNU make on Linux'
by , 12 years ago
comment:17 by , 12 years ago
I think I've figured out the failures. The script has:
set pmap_initname "1:\\s+\\S+\[^\\r\]+\\s+" ... set test "pmap X with unreachable process" spawn $pmap -X 1 expect_pass $test "$pmap_initname\$"
where the expect_pass is a function defined in the unix.exp script:
proc expect_pass { testname reg } { expect { -re "$reg" { pass "$testname" } default { fail "$testname" } timeout { fail "$testname" } } }
The "$pmap_initname\$" maps to:
1: one or more spaces one or more non-spaces one or more anything except return, \r, character one or more spaces end-of-line
The spawn command is producing return characters, \r, as end-of-line, but I think the regex is expecting a line feed (unix newline, \n) at the end of the line.
Changing "$pmap_initname\$" to "$pmap_initname\r" makes the test pass. Just removing the \$ in this string also works.
sed -i -e 's/pmap_initname
\$/pmap_initname/' testsuite/pmap.test/pmap.exp
Yes, that's three backslashes,
\$.
Using the sed to remove 'which', I now get:
# DEJAGNU=global-conf.exp runtestWARNING: No tool specified Test Run By root on Sun Jan 20 00:05:18 2013 Native configuration is x86_64-unknown-linux-gnu === tests === Schedule of variations: unix Running target unix Using /tools/share/dejagnu/baseboards/unix.exp as board description file for target. Using /tools/share/dejagnu/config/unix.exp as generic interface file for target. Using ./config/unix.exp as tool-and-target-specific interface file. Running ./free.test/free.exp ... Running ./kill.test/kill.exp ... Running ./lib.test/fileutils.exp ... Running ./lib.test/strutils.exp ... Running ./pgrep.test/pgrep.exp ... Running ./pkill.test/pkill.exp ... Running ./pmap.test/pmap.exp ... Running ./ps.test/ps_output.exp ... Running ./ps.test/ps_personality.exp ... Running ./ps.test/ps_sched_batch.exp ... Running ./pwdx.test/pwdx.exp ... Running ./slabtop.test/slabtop.exp ... Running ./sysctl.test/sysctl_read.exp ... Running ./uptime.test/uptime.exp ... Running ./vmstat.test/vmstat.exp ... Running ./w.test/w.exp ... === Summary === # of expected passes 100 # of untested testcases 20
18 of the untested testcases are in pkill.exp and seem to be placeholders. The same for pgrep.exp. The untested case in ps seems to be wrong and is tested OK.
sed -i -e "s/untested/#untested/" testsuite/ps.test/ps_sched_batch.exp
comment:18 by , 12 years ago
Good detective work, Gilles & Bruce. As I said a couple of days ago, I'm happy to see this go in, with whatever seds are required to get the test suite as clean as possible. Would you mind passing those upstream too please, to see if we can get 3.3.7 to pass using a cmmi build? Ta.
comment:19 by , 12 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
I'll go ahead and add the package. There will be a couple of seds to make the tests pass, but otherwise it should be straight forward.
Interesting. I obviously don't want to take this package without them fixing their packaging bugs and/or complete lack of packaging. I also note that they're considering merging procps-ng and psmisc, which would be nice. I'm happy to leave this open to serve as a reminder to do this once upstream provide ready-to-build tarballs.