Description:
add numpy to installer and fix box64 to acknowldge more syscall
Commit status:
[Not Reviewed]
References:
Diff options:
Comments:
0 Commit comments
0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
r225:d275da5f0fc5 - - 2 files changed: 13 inserted, 1 deleted
@@ -1,66 +1,66 | |||
|
1 | 1 | #!/bin/sh |
|
2 | 2 | |
|
3 | 3 | echo "This script will install and configure Cafe grader." |
|
4 | 4 | |
|
5 | 5 | RUBY_VERSION=2.1.2 |
|
6 | 6 | echo "This will install Ruby $RUBY_VERSION under RVM" |
|
7 | 7 | |
|
8 | 8 | echo "Installing required apts" |
|
9 | 9 | |
|
10 | 10 | sudo apt-get update |
|
11 | 11 | sudo apt-get install mysql-server mysql-client \ |
|
12 | 12 | g++ gcc apache2 libmysqlclient20 build-essential \ |
|
13 | 13 | git-core openssl libreadline6 libreadline6-dev \ |
|
14 | 14 | zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev \ |
|
15 | 15 | sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev \ |
|
16 | 16 | ncurses-dev automake libtool bison subversion \ |
|
17 | 17 | pkg-config curl nodejs unzip pyflakes ruby default-jdk \ |
|
18 | - libmysqld-dev mercurial python-setuptools python-dev | |
|
18 | + libmysqld-dev mercurial python-setuptools python-dev python3-numpy | |
|
19 | 19 | |
|
20 | 20 | echo "Installing RVM" |
|
21 | 21 | curl -k -L https://get.rvm.io | bash -s stable |
|
22 | 22 | source ~/.rvm/scripts/rvm |
|
23 | 23 | |
|
24 | 24 | echo "Installing Ruby $RUBY_VERSION in RVM" |
|
25 | 25 | |
|
26 | 26 | rvm install $RUBY_VERSION |
|
27 | 27 | rvm use $RUBY_VERSION |
|
28 | 28 | |
|
29 | 29 | echo "Fetching Cafe Grader from Git repositories" |
|
30 | 30 | |
|
31 | 31 | echo "Fetching web interface" |
|
32 | 32 | |
|
33 | 33 | mkdir cafe_grader |
|
34 | 34 | cd cafe_grader |
|
35 | 35 | git clone -q git://github.com/jittat/cafe-grader-web.git web |
|
36 | 36 | |
|
37 | 37 | echo "Configuring rails app" |
|
38 | 38 | |
|
39 | 39 | cp web/config/application.rb.SAMPLE web/config/application.rb |
|
40 | 40 | cp web/config/initializers/cafe_grader_config.rb.SAMPLE web/config/initializers/cafe_grader_config.rb |
|
41 | 41 | |
|
42 | 42 | #replace UTC in application.rb with the system timezone |
|
43 | 43 | timezone='UTC' |
|
44 | 44 | if [ -f '/etc/timezone' ]; then |
|
45 | 45 | timezone=\"`cat /etc/timezone`\" |
|
46 | 46 | else |
|
47 | 47 | if [ -f '/etc/sysconfig/clock' ]; then |
|
48 | 48 | timezone=`grep -e '^TIMEZONE' /etc/sysconfig/clock | grep -o -e '\".*\"'` |
|
49 | 49 | fi |
|
50 | 50 | fi |
|
51 | 51 | replace="s!'UTC'!$timezone!g" |
|
52 | 52 | sed -i $replace web/config/application.rb |
|
53 | 53 | |
|
54 | 54 | echo "At this point we will need MySQL user and database." |
|
55 | 55 | echo "Have you created MySQL user and database for Cafe grader? (Y/N) " |
|
56 | 56 | read ch |
|
57 | 57 | |
|
58 | 58 | if [ "$ch" = "n" -o "$ch" = "N" ] |
|
59 | 59 | then |
|
60 | 60 | echo "Please open another terminal and create the user and database for Cafe grader." |
|
61 | 61 | echo "Don't forget to grant access to that database for the user." |
|
62 | 62 | echo "Please have username, password, and database name ready before continue." |
|
63 | 63 | echo |
|
64 | 64 | echo "The following are instructions:" |
|
65 | 65 | echo "1. Run mysql:" |
|
66 | 66 | echo |
@@ -558,96 +558,108 | |||
|
558 | 558 | /* 266 */ [ __NR_symlinkat ] = "symlinkat", |
|
559 | 559 | /* 267 */ [ __NR_readlinkat ] = "readlinkat", |
|
560 | 560 | /* 268 */ [ __NR_fchmodat ] = "fchmodat", |
|
561 | 561 | /* 269 */ [ __NR_faccessat ] = "faccessat", |
|
562 | 562 | /* 270 */ [ __NR_pselect6 ] = "pselect6", |
|
563 | 563 | /* 271 */ [ __NR_ppoll ] = "ppoll", |
|
564 | 564 | /* 272 */ [ __NR_unshare ] = "unshare", |
|
565 | 565 | /* 273 */ [ __NR_set_robust_list ] = "set_robust_list", |
|
566 | 566 | /* 274 */ [ __NR_get_robust_list ] = "get_robust_list", |
|
567 | 567 | /* 275 */ [ __NR_splice ] = "splice", |
|
568 | 568 | /* 276 */ [ __NR_tee ] = "tee", |
|
569 | 569 | /* 277 */ [ __NR_sync_file_range ] = "sync_file_range", |
|
570 | 570 | /* 278 */ [ __NR_vmsplice ] = "vmsplice", |
|
571 | 571 | /* 279 */ [ __NR_move_pages ] = "move_pages", |
|
572 | 572 | /* 280 */ [ __NR_utimensat ] = "utimensat", |
|
573 | 573 | /* 281 */ [ __NR_epoll_pwait ] = "epoll_pwait", |
|
574 | 574 | /* 282 */ [ __NR_signalfd ] = "signalfd", |
|
575 | 575 | /* 283 */ [ __NR_timerfd_create ] = "timerfd_create", |
|
576 | 576 | /* 284 */ [ __NR_eventfd ] = "eventfd", |
|
577 | 577 | /* 285 */ [ __NR_fallocate ] = "fallocate", |
|
578 | 578 | /* 286 */ [ __NR_timerfd_settime ] = "timerfd_settime", |
|
579 | 579 | /* 287 */ [ __NR_timerfd_gettime ] = "timerfd_gettime", |
|
580 | 580 | /* 288 */ [ __NR_accept4 ] = "accept4", |
|
581 | 581 | /* 289 */ [ __NR_signalfd4 ] = "signalfd4", |
|
582 | 582 | /* 290 */ [ __NR_eventfd2 ] = "eventfd2", |
|
583 | 583 | /* 291 */ [ __NR_epoll_create1 ] = "epoll_create1", |
|
584 | 584 | /* 292 */ [ __NR_dup3 ] = "dup3", |
|
585 | 585 | /* 293 */ [ __NR_pipe2 ] = "pipe2", |
|
586 | 586 | /* 294 */ [ __NR_inotify_init1 ] = "inotify_init1", |
|
587 | 587 | /* 295 */ [ __NR_preadv ] = "preadv", |
|
588 | 588 | /* 296 */ [ __NR_pwritev ] = "pwritev", |
|
589 | 589 | /* 297 */ [ __NR_rt_tgsigqueueinfo ] = "rt_tgsigqueueinfo", |
|
590 | 590 | /* 298 */ [ __NR_perf_event_open ] = "perf_event_open", |
|
591 | 591 | /* 299 */ [ __NR_recvmmsg ] = "recvmmsg", |
|
592 | 592 | /* 300 */ [ __NR_fanotify_init ] = "fanotify_init", |
|
593 | 593 | /* 301 */ [ __NR_fanotify_mark ] = "fanotify_mark", |
|
594 | 594 | /* 302 */ [ __NR_prlimit64 ] = "prlimit64", |
|
595 | 595 | /* 303 */ [ __NR_name_to_handle_at ] = "name_to_handle_at", |
|
596 | 596 | /* 304 */ [ __NR_open_by_handle_at ] = "open_by_handle_at", |
|
597 | 597 | /* 305 */ [ __NR_clock_adjtime ] = "clock_adjtime", |
|
598 | 598 | /* 306 */ [ __NR_syncfs ] = "syncfs", |
|
599 | 599 | /* 307 */ [ __NR_sendmmsg ] = "sendmmsg", |
|
600 | 600 | /* 308 */ [ __NR_setns ] = "setns", |
|
601 | 601 | /* 309 */ [ __NR_getcpu ] = "getcpu", |
|
602 | 602 | /* 310 */ [ __NR_process_vm_readv ] = "process_vm_readv", |
|
603 | 603 | /* 311 */ [ __NR_process_vm_writev ] = "process_vm_writev", |
|
604 | 604 | /* 312 */ [ __NR_kcmp ] = "kcmp", |
|
605 | 605 | /* 313 */ [ __NR_finit_module ] = "finit_module", |
|
606 | + /* 314 */ [ __NR_sched_setattr ] = "sched_setattr", | |
|
607 | + /* 315 */ [ __NR_sched_getattr ] = "sched_getattr", | |
|
608 | + /* 316 */ [ __NR_renameat2 ] = "renameat2", | |
|
609 | + /* 317 */ [ __NR_seccomp ] = "seccomp", | |
|
610 | + /* 318 */ [ __NR_getrandom ] = "getrandom", | |
|
611 | + /* 319 */ [ __NR_memfd_create ] = "memfd_create", | |
|
612 | + /* 320 */ [ __NR_kexec_file_load ] = "kexec_file_load", | |
|
613 | + /* 321 */ [ __NR_bpf ] = "bpf", | |
|
614 | + /* 322 */ [ __NR_execveat ] = "execveat", | |
|
615 | + /* 323 */ [ __NR_userfaultfd ] = "userfaultfd", | |
|
616 | + /* 324 */ [ __NR_membarrier ] = "membarrier", | |
|
617 | + /* 325 */ [ __NR_mlock2 ] = "mlock2", | |
|
606 | 618 | }; |
|
607 | 619 | #define NUM_SYSCALLS ARRAY_SIZE(syscall_names) |
|
608 | 620 | #define NUM_ACTIONS (NUM_SYSCALLS+64) |
|
609 | 621 | |
|
610 | 622 | enum action { |
|
611 | 623 | A_DEFAULT, // Use the default action |
|
612 | 624 | A_NO, // Always forbid |
|
613 | 625 | A_YES, // Always permit |
|
614 | 626 | A_FILENAME, // Permit if arg1 is a known filename |
|
615 | 627 | A_ACTION_MASK = 15, |
|
616 | 628 | A_NO_RETVAL = 32, // Does not return a value |
|
617 | 629 | A_SAMPLE_MEM = 64, // Sample memory usage before the syscall |
|
618 | 630 | A_LIBERAL = 128, // Valid only in liberal mode |
|
619 | 631 | // Must fit in a unsigned char |
|
620 | 632 | }; |
|
621 | 633 | |
|
622 | 634 | static unsigned char syscall_action[NUM_ACTIONS] = { |
|
623 | 635 | #define S(x) [__NR_##x] |
|
624 | 636 | |
|
625 | 637 | // Syscalls permitted for specific file names |
|
626 | 638 | S(open) = A_FILENAME, |
|
627 | 639 | S(creat) = A_FILENAME, |
|
628 | 640 | S(unlink) = A_FILENAME, |
|
629 | 641 | S(access) = A_FILENAME, |
|
630 | 642 | S(truncate) = A_FILENAME, |
|
631 | 643 | S(stat) = A_FILENAME, |
|
632 | 644 | S(lstat) = A_FILENAME, |
|
633 | 645 | S(readlink) = A_FILENAME, |
|
634 | 646 | #ifndef CONFIG_BOX_USER_AMD64 |
|
635 | 647 | S(oldstat) = A_FILENAME, |
|
636 | 648 | S(oldlstat) = A_FILENAME, |
|
637 | 649 | S(truncate64) = A_FILENAME, |
|
638 | 650 | S(stat64) = A_FILENAME, |
|
639 | 651 | S(lstat64) = A_FILENAME, |
|
640 | 652 | #endif |
|
641 | 653 | |
|
642 | 654 | // Syscalls permitted always |
|
643 | 655 | S(exit) = A_YES | A_SAMPLE_MEM, |
|
644 | 656 | S(read) = A_YES, |
|
645 | 657 | S(write) = A_YES, |
|
646 | 658 | S(close) = A_YES, |
|
647 | 659 | S(lseek) = A_YES, |
|
648 | 660 | S(getpid) = A_YES, |
|
649 | 661 | S(getuid) = A_YES, |
|
650 | 662 | S(dup) = A_YES, |
|
651 | 663 | S(brk) = A_YES, |
|
652 | 664 | S(getgid) = A_YES, |
|
653 | 665 | S(geteuid) = A_YES, |
You need to be logged in to leave comments.
Login now