Previously Travis doesn't allow to install runit using apt (they have
custom whitelist of allowed packages), so I've used this snippet in
.travis.yml to compile&cache it manually:

    - /home/travis/runit

  - if [ ! -x "$HOME/runit/runsv" ]; then mkdir -p "$HOME/runit" && wget 
http://smarden.org/runit/runit-2.1.2.tar.gz -O /tmp/runit-2.1.2.tar.gz && tar 
-xzvf /tmp/runit-2.1.2.tar.gz -C "$HOME" && cd "$HOME/admin/runit-2.1.2/src/" 
&& echo 'gcc -s -static' > conf-ld && make && cp $(cat ../package/commands) 
"$HOME/runit/" && cd -; fi
  - export PATH="$HOME/runit:$PATH"

This works some time ago, but now build fail because of some
container-related restrictions. It may worth updating runit to work around
this issue. Below is relevant parts of travis log.

version: v2.5.0 
Description:    Ubuntu 12.04.5 LTS
gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
This job is running on container-based infrastructure, which does not allow use 
of 'sudo', setuid and setguid executables.
If you require sudo, add 'sudo: required' to your .travis.yml
See https://docs.travis-ci.com/user/workers/container-based-infrastructure/ for 
$ if [ ! -x "$HOME/runit/runsv" ]; then mkdir -p "$HOME/runit" && wget 
http://smarden.org/runit/runit-2.1.2.tar.gz -O /tmp/runit-2.1.2.tar.gz && tar 
-xzvf /tmp/runit-2.1.2.tar.gz -C "$HOME" && cd "$HOME/admin/runit-2.1.2/src/" 
&& echo 'gcc -s -static' > conf-ld && make && cp $(cat ../package/commands) 
"$HOME/runit/" && cd -; fi
--2017-02-22 15:40:45--  http://smarden.org/runit/runit-2.1.2.tar.gz
Resolving smarden.org (smarden.org)...
Connecting to smarden.org (smarden.org)||:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 110916 (108K) [application/octet-stream]
Saving to: `/tmp/runit-2.1.2.tar.gz'

 0% [                                       ] 0           --.-K/s              
33% [============>                          ] 37,497       178K/s              
100%[======================================>] 110,916      348K/s   in 0.3s    

2017-02-22 15:40:46 (348 KB/s) - `/tmp/runit-2.1.2.tar.gz' saved [110916/110916]

sh find-systype.sh > systype
rm -f compile
sh print-cc.sh > compile
chmod 555 compile
rm -f choose
cat warn-auto.sh choose.sh \
        > choose
chmod 555 choose
./choose c trydrent direntry.h1 direntry.h2 > direntry.h
rm -f load
sh print-ld.sh > load
chmod 555 load
./choose cl tryflock hasflock.h1 hasflock.h2 > hasflock.h
./choose cl trymkffo hasmkffo.h1 hasmkffo.h2 > hasmkffo.h
./choose cl trysgact hassgact.h1 hassgact.h2 > hassgact.h
./choose cl trysgprm hassgprm.h1 hassgprm.h2 > hassgprm.h
./compile chkshsgr.c
chkshsgr.c: In function тАШmainтАЩ:
chkshsgr.c:10:3: warning: passing argument 2 of тАШgetgroupsтАЩ from 
incompatible pointer type [enabled by default]
/usr/include/x86_64-linux-gnu/bits/unistd.h:266:1: note: expected тАШ__gid_t 
*тАЩ but argument is of type тАШshort int *тАЩ
chkshsgr.c:10:3: warning: implicit declaration of function тАШsetgroupsтАЩ 
./load chkshsgr 
./chkshsgr || ( cat warn-shsgr; exit 1 )
Oops. Your getgroups() returned 0, and setgroups() failed; this means
that I can't reliably do my shsgr test. Please either ``make'' as root
or ``make'' while you're in one or more supplementary groups.
make: *** [hasshsgr.h] Error 1

                        WBR, Alex.

Reply via email to