Skip to content
This repository was archived by the owner on Oct 9, 2020. It is now read-only.

Commit

Permalink
Prepare release of PRoot v4.0.0 (2/2).
Browse files Browse the repository at this point in the history
  • Loading branch information
cedric-vincent committed Jul 2, 2014
1 parent 4d92baa commit 437b488
Show file tree
Hide file tree
Showing 4 changed files with 138 additions and 79 deletions.
2 changes: 1 addition & 1 deletion doc/GNUmakefile
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ all: $(OUTPUTS)
%.h: %/stylesheets/cli.xsl %/manual-quoted.xml
xsltproc --output $@ $^

%.spec: stylesheets/rpm-spec.xsl %/manual.xml
%.spec: %/stylesheets/rpm-spec.xsl %/manual.xml
xsltproc --output $@ $^
echo "* $(shell date +'%a %b %d %Y') Cédric VINCENT <[email protected]>" >> $@
cat $*/changelog.txt >> $@
Expand Down
99 changes: 21 additions & 78 deletions doc/howto-release.txt
Original file line number Diff line number Diff line change
@@ -1,90 +1,33 @@
How to Make a Release of PRoot?
How to make a release of PRoot?
===============================

This document summarizes the required checks that shall be done before
releasing PRoot.
This document summarizes checks that must be performed before
releasing PRoot or CARE.

Sanity checks
-------------
Checks
------

* arm (`make -C test` on STLinux)
* sh4 (`make -C test` on STLinux)
* x86 (`make -C test` on *all* OBS distros)
* x86_64 (with *and* without seccomp):
- `make -C tests` on *all* OBS distros
- `make -C tests memcheck`
- `CFLAGS=-fsanitize=address LDFLAGS=-lasan`
- `make -C tests V=1 2>&1 | grep talloc`
+ Sanity checks:
* on ARM and *all* OBS distros (x86 and x86_64): `make -C test`
* on x86_64, with *and* without seccomp:
- `make -C tests` on *all* OBS distros
- `make -C tests memcheck`
- `CFLAGS=-fsanitize=address LDFLAGS=-lasan`
- `make -C tests V=1 2>&1 | grep talloc`

LTP
---
+ Fonctional checks: no regressions must appear with respect to
tests/validation.mk and to the configurations tested in the previous
release (`git show tags/...`).

The "syscalls" testsuite from the Linux Test Project (`./configure
--prefix=$PWD; make; make install; ./runltp -f syscalls`) shall suffer no
regression on (with *and* without seccomp):
+ Performance checks: the following command must not suffer from
unexpected performance regression::

- x86_64
- x86_64 with a x86_64 rootfs
- x86_64 with a x86 rootfs
- x86_64 & the "kompat" extension enabled
- x86_64 with a x86_64 rootfs & the "kompat" extension enabled
- x86_64 with a x86 rootfs & the "kompat" extension enabled
time proot -R / perl -e 'system("/usr/bin/true") for (1..10000)'

Libuv
-----
where "/usr/bin/true" is a symlink to "/bin/true".

The testsuite from the libuv package (`make test -j 4`) shall suffer
no regression on (with *and* without seccomp):

- x86_64
- x86_64 with a x86_64 rootfs
- x86_64 with a x86 rootfs
- x86_64 & the "kompat" extension enabled
- x86_64 with a x86_64 rootfs & the "kompat" extension enabled
- x86_64 with a x86 rootfs & the "kompat" extension enabled

CoreUtils
---------

The GNU CoreUtils package (`./configure; make; make check`) shall
suffer no regression on:

- x86_64
- x86_64 with the "kompat" extension enabled
- x86_64 with a ARM rootfs (QEMU)

Perl
----

The Perl package (`./configure.gnu; make; make check`) shall suffer no
regression on:

- x86_64
- x86_64 with the "kompat" extension enabled
- x86_64 with a x86 rootfs
- x86_64 with a x86 rootfs and the "kompat" extension enabled
- x86_64 with a ARM rootfs (QEMU)
- x86_64 with a ARM rootfs (QEMU) under a x86 rootfs (sub-reconf')

Open POSIX
----------

The Open POSIX Test Suite package (`make`) shall suffer no regression
on:

- x86_64
- x86_64 with the "kompat" extension enabled


Performance
-----------

The following command shall suffer no non-undestood performance
regression::

time proot -B perl -e 'system("/usr/bin/true") for (1..10000)'

where "/usr/bin/true" is a symlink to "/bin/true".
+ Static analysis: Coverity Scan and Clang Scan Build must not report
new issues.


Documentation Update
Expand Down
File renamed without changes.
116 changes: 116 additions & 0 deletions tests/validation.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
libuv-version = 0.10.27
coreutils-version = 8.21
perl-version = 5.18.1
ltp-version = 20140422
opt-version = 20140422
gdb-version = 7.6.1
proot-version = 3.2.2

libuv = libuv-$(libuv-version)
coreutils = coreutils-$(coreutils-version)
perl = perl-$(perl-version)
ltp = ltp-$(ltp-version)
opt = opt-$(opt-version)
gdb = gdb-$(gdb-version)
proot = PRoot-$(proot-version)

testsuites = $(libuv) $(perl) $(ltp) $(opt) $(gdb) $(proot) # $(coreutils) needs PRoot's loader
logs = $(testsuites:=.log)

logs: $(logs)

.PHONY: clean
clean:
rm -f $(logs)
rm -fr $(testsuites)

.PHONY: distclean
distclean: clean
rm -f $(testsuites:=.tar.*)

######################################################################

$(libuv).tar.gz:
wget https://github.com/joyent/libuv/archive/v$(libuv-version).tar.gz -O $@

$(libuv).log: $(libuv).tar.gz
rm -fr $(libuv)
tar -xf $<
$(MAKE) -C $(libuv)
($(MAKE) -C $(libuv) test 2>&1 || true) | tee $@

######################################################################

$(coreutils).tar.xz:
wget http://ftp.gnu.org/gnu/coreutils/$(coreutils).tar.xz

$(coreutils).log: $(coreutils).tar.xz
rm -fr $(coreutils)
tar -xf $<
cd $(coreutils) && ./configure
$(MAKE) -C $(coreutils)
($(MAKE) -C $(coreutils) check || true) | tee $@

######################################################################

$(perl).tar.gz:
wget http://www.cpan.org/src/5.0/$(perl).tar.gz

$(perl).log: $(perl).tar.gz
rm -fr $(perl)
tar -xf $<
cd $(perl) && ./configure.gnu
$(MAKE) -C $(perl)
($(MAKE) -C $(perl) check || true) | tee $@

######################################################################

$(ltp).tar.gz:
wget https://github.com/linux-test-project/ltp/archive/$(ltp-version).tar.gz -O $@

$(ltp).log: $(ltp).tar.gz
rm -fr $(ltp)
tar -xf $<
$(MAKE) -C $(ltp) autotools
cd $(ltp) && ./configure --prefix=$(PWD)/$(ltp)/install
$(MAKE) -C $(ltp)
$(MAKE) -C $(ltp) install
sed -i s/^msgctl10/#/ $(ltp)/install/runtest/syscalls # is too CPU intensive
sed -i s/^msgctl11/#/ $(ltp)/install/runtest/syscalls # is too CPU intensive
($(ltp)/install/runltp -f syscalls || true) | tee $@

######################################################################

$(opt).log: $(ltp).tar.gz
rm -fr $(opt)
mkdir $(opt)
tar -C $(opt) -xf $< $(ltp)/testcases/open_posix_testsuite
$(MAKE) -C $(opt)/$(ltp)/testcases/open_posix_testsuite -j 1 # has broken // build
($(MAKE) -C $(opt)/$(ltp)/testcases/open_posix_testsuite -j 1 test || true) | tee $@

######################################################################

$(gdb).tar.gz:
wget http://ftp.gnu.org/gnu/gdb/$(gdb).tar.gz

$(gdb).log: $(gdb).tar.gz
rm -fr $(gdb)
tar -xf $<
cd $(gdb) && ./configure
$(MAKE) -C $(gdb)
rm -f $(gdb)/gdb/testsuite/gdb.base/foll-fork.exp # makes PRoot stall
rm -f $(gdb)/gdb/testsuite/gdb.base/foll-vfork.exp # makes PRoot stall
rm -f $(gdb)/gdb/testsuite/gdb.base/watch_thread_num.exp # makes PRoot stall
rm -f $(gdb)/gdb/testsuite/gdb.base/attach-twice.exp # kills PRoot explicitly
($(MAKE) -C $(gdb)/gdb/testsuite check-gdb.base1 check-gdb.base2 check-gdb.server || true) | tee $@

######################################################################

$(proot).tar.gz:
wget https://github.com/cedric-vincent/proot/archive/v$(proot-version).tar.gz -O $@

$(proot).log: $(proot).tar.gz
rm -fr $(proot)
tar -xf $<
$(MAKE) -C $(proot)/src
($(MAKE) -C $(proot)/tests || true) | tee $@

0 comments on commit 437b488

Please sign in to comment.