├── config ├── boot │ └── cmdline.txt ├── etc │ ├── fstab.rpi │ ├── hosts.allow │ ├── issue │ ├── modprobe.d │ │ ├── modprobe.conf │ │ └── snd-soc-pcm512x.conf │ ├── motd │ ├── mpd.conf │ ├── mpdscribble.conf │ ├── netconfig │ ├── netctl │ │ ├── eth0-dhcp │ │ ├── eth0-static │ │ ├── wlan0-wpa_supplicant-multissid-dhcp │ │ └── wlan0-wpa_supplicant-multissid-static │ ├── nginx │ │ ├── nginx-dev.conf │ │ └── nginx-prod.conf │ ├── php │ │ ├── conf.d │ │ │ └── opcache.ini │ │ ├── fpm.d │ │ │ ├── command.conf │ │ │ ├── db.conf │ │ │ └── display.conf │ │ ├── php-fpm.conf │ │ ├── php-fpm.conf.default │ │ └── php.ini │ ├── profile.d │ │ └── proxy.sh.inactive │ ├── rc.local │ ├── redis.conf │ ├── resolvconf.conf │ ├── samba │ │ ├── smb-dev.conf │ │ ├── smb-prod.conf │ │ └── smb.conf │ ├── security │ │ └── limits.conf │ ├── sysctl.d │ │ ├── 20-quiet-printk.conf │ │ └── raspberrypi.conf │ ├── systemd │ │ └── journald.conf │ ├── tmpfiles.d │ │ └── samba.conf │ ├── udev │ │ └── rules.d │ │ │ ├── 60-schedulers.rules │ │ │ ├── rune_usb-audio.rules │ │ │ └── rune_usb-stor.rules │ ├── udevil │ │ └── udevil.conf │ └── wpa_supplicant │ │ └── wpa_supplicant.conf └── usr │ └── lib │ └── systemd │ └── system │ ├── mpdscribble.service │ ├── nmbd.service │ ├── rc-local.service │ ├── redis.service │ ├── rune_PL_wrk.service │ ├── rune_SY_wrk.service │ ├── rune_shutdown.service │ ├── shairport.service │ ├── smbd.service │ ├── udevil.service │ └── wpa_supplicant@.service ├── packages ├── ffmpeg-rune │ ├── PKGBUILD │ ├── ffmpeg-rune-2.7-1-armv7h.pkg.tar.xz │ └── ffmpeg-rune-2.8-1-x86_64.pkg.tar.xz ├── hfsprogs-rune │ ├── PKGBUILD │ ├── hfsprogs-rune-332.25-10-x86_64.pkg.tar.xz │ ├── license │ └── makefile.patch ├── hfsutils-rune │ ├── Makefile-install.patch │ ├── PKGBUILD │ ├── hfsutils-rune-3.2.6-4-armv7h.pkg.tar.xz │ └── hfsutils-rune.install ├── libspotify │ ├── PKGBUILD │ ├── libspotify-12.1.103-3-armv6h.pkg.tar.xz │ ├── libspotify-12.1.51-3-armv7h.pkg.tar.xz │ └── libspotify-12.1.51-3-x86_64.pkg.tar.xz ├── libupnpp-rune │ ├── PKGBUILD │ ├── libupnpp-rune-20150719-1-armv7h.pkg.tar.xz │ └── libupnpp-rune-20150925-1-x86_64.pkg.tar.xz ├── linux-rune │ ├── linux-arch-rpi_3.12.26-1-ARCH.tar.bz2 │ ├── linux-rune-rpi_3.12.13-rt21_wosa.tar.bz2 │ ├── linux-rune-rpi_3.12.19-2-ARCH.tbz │ └── linux-rune-rpi_3.6.11-18-ARCH+.tar.bz2 ├── mpd-rune │ ├── 0001-Add-native-DSD-support-to-MPD-0.19.10.patch │ ├── PKGBUILD │ ├── PKGBUILD.0.18 │ ├── PKGBUILD.0.19 │ ├── install │ ├── mpd-rune-0.19.10-1-armv7h.pkg.tar.xz │ ├── mpd-rune-0.19.10-1-x86_64.pkg.tar.xz │ ├── mpd.conf │ └── tmpfiles.d ├── mpdscribble-rune │ ├── PKGBUILD │ ├── mpdscribble-rune-0.22-6-armv6h.pkg.tar.xz │ ├── mpdscribble-rune-0.22-6-armv7h.pkg.tar.xz │ ├── mpdscribble-rune-0.22-6-x86_64.pkg.tar.xz │ ├── mpdscribble.changelog │ ├── mpdscribble.install │ └── mpdscribble.service ├── nginx-rune │ ├── PKGBUILD │ ├── nginx-rune-1.4.7-3-armv7h.pkg.tar.xz │ ├── nginx-rune-1.4.7-3-x86_64.pkg.tar.xz │ ├── nginx.logrotate │ └── service ├── php-libevent │ ├── PKGBUILD │ ├── libevent.ini │ ├── php-libevent-0.1.0-2-armv7h.pkg.tar.xz │ └── php-libevent-0.1.0-2-x86_64.pkg.tar.xz ├── php-pthreads │ ├── PKGBUILD │ ├── php-pthreads-2.0.11-1-armv7h.pkg.tar.xz │ └── php-pthreads-2.0.11-1-x86_64.pkg.tar.xz ├── php-rune │ ├── PKGBUILD │ ├── logrotate.d.php-fpm │ ├── php-fpm.conf.in.patch │ ├── php-fpm.install │ ├── php-fpm.service │ ├── php-fpm.tmpfiles │ ├── php-rune-5.5.27-1-armv7h.pkg.tar.xz │ ├── php-rune-5.5.29-1-x86_64.pkg.tar.xz │ ├── php-rune-config │ │ ├── conf.d │ │ │ └── opcache.ini │ │ ├── fpm.d │ │ │ ├── command.conf │ │ │ ├── db.conf │ │ │ └── display.conf │ │ ├── php-fpm.conf │ │ ├── php-fpm.conf.default │ │ └── php.ini │ └── php.ini.patch ├── phpiredis-rune │ ├── PKGBUILD │ ├── phpiredis-rune-1.0.0-2-armv7h.pkg.tar.xz │ └── phpiredis-rune-1.0.0-3-x86_64.pkg.tar.xz ├── phpredis-rune │ ├── PKGBUILD │ └── phpredis-rune-2.2.7-1-armv7h.pkg.tar.xz ├── samba-rune │ ├── PKGBUILD │ ├── install │ ├── samba-rune-2.2.12-1-armv6h.pkg.tar.xz │ ├── samba-rune-2.2.12-3-x86_64.pkg.tar.xz │ ├── smb-dev.conf │ ├── smb-prod.conf │ └── tmpfiles.d ├── shairport-rune │ ├── PKGBUILD │ ├── player.c.runeaudio.patch │ ├── shairport-rune-1.1.1-1-armv7h.pkg.tar.xz │ ├── shairport-rune-1.1.1-1-x86_64.pkg.tar.xz │ └── shairport.service ├── spop-rune │ ├── PKGBUILD │ ├── spop-rune-0.0.3-1-armv7h.pkg.tar.xz │ ├── spop-rune-0.0.3-1-x86_64.pkg.tar.xz │ └── spopd.conf └── upmpdcli-rune │ ├── PKGBUILD │ ├── install │ ├── runeaudio.png │ ├── upmpdcli-rune-0.11-1-armv7h.pkg.tar.xz │ ├── upmpdcli-rune-0.12-1-x86_64.pkg.tar.xz │ ├── upmpdcli.conf │ ├── upmpdcli.install │ └── upmpdcli.service └── scripts ├── cookbook_dev_OLD.txt └── cookbook_prod_OLD.txt /config/boot/cmdline.txt: -------------------------------------------------------------------------------- 1 | #force_turbo=1 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p3 elevator=noop rootfstype=ext4 rootflags=data=writeback,journal_async_commit,discard,commit=120 rootwait smsc95xx.turbo_mode=N 2 | #force_turbo=1 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p3 elevator=noop rootfstype=ext4 rootwait smsc95xx.turbo_mode=N 3 | #ipv6.disable=1 selinux=0 plymouth.enable=0 smsc95xx.turbo_mode=N dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p5 rootfstype=ext4 elevator=noop modprobe.blacklist=snd_soc_bcm2708,snd_soc_bcm2708_i2s,bcm2708_dmaengine,snd_soc_pcm5102a,snd_soc_hifiberry_dac rootwait smsc95xx.turbo_mode=N 4 | ipv6.disable=1 selinux=0 plymouth.enable=0 smsc95xx.turbo_mode=N dwc_otg.lpm_enable=0 dwc_otg.fiq_split_enable=0 dwc_otg.fiq_fix_enable=0 console=tty1 root=/dev/mmcblk0p5 rootfstype=ext4 elevator=noop usbcore.old_scheme_first=1 rootwait 5 | #ipv6.disable=1 selinux=0 plymouth.enable=0 smsc95xx.turbo_mode=N dwc_otg.lpm_enable=0 dwc_otg.fiq_enable=1 dwc_otg.fiq_fsm_enable=1 dwc_otg.fiq_fsm_mask=0x3 console=tty1 root=/dev/mmcblk0p5 rootfstype=ext4 elevator=noop rootwait 6 | -------------------------------------------------------------------------------- /config/etc/fstab.rpi: -------------------------------------------------------------------------------- 1 | # /etc/fstab: static file system information. 2 | # 3 | #/dev/mmcblk0p3 /               ext4    noatime,discard,data=writeback,journal_async_commit,nouser_xattr,barrier=0,errors=remount-ro 0       1 4 | /dev/mmcblk0p3 / ext4 noatime,nouser_xattr,errors=remount-ro 0 1 5 | /dev/mmcblk0p1 /boot vfat utf8 0 0 6 | Ramdisk /run/shm tmpfs defaults,size=256M,noexec,nodev,nosuid 0 0 7 | logs /var/log tmpfs nodev,nosuid,noatime,mode=1777,size=5M 0 0 8 | rune-logs /var/log/runeaudio tmpfs nodev,nosuid,noatime,mode=1777,size=20M 0 0 -------------------------------------------------------------------------------- /config/etc/hosts.allow: -------------------------------------------------------------------------------- 1 | # 2 | # /etc/hosts.allow 3 | # 4 | mpd:ALL 5 | 6 | # End of file 7 | 8 | -------------------------------------------------------------------------------- /config/etc/issue: -------------------------------------------------------------------------------- 1 | --------------------------------------------------------- 2 | Copyright (C) 2013-2014 RuneAudio Team 3 | Andrea Coiutti & Simone De Gregori & Carmelo San Giovanni 4 | --------------------------------------------------------- 5 | 6 | -------------------------------------------------------------------------------- /config/etc/modprobe.d/modprobe.conf: -------------------------------------------------------------------------------- 1 | options snd-usb-audio nrpacks=8 -------------------------------------------------------------------------------- /config/etc/modprobe.d/snd-soc-pcm512x.conf: -------------------------------------------------------------------------------- 1 | blacklist snd-soc-pcm512x 2 | -------------------------------------------------------------------------------- /config/etc/motd: -------------------------------------------------------------------------------- 1 | =============== RuneOS distribution =============== 2 | ____ _ _ _ 3 | | _ \ _ _ _ __ ___ / \ _ _ __| (_) ___ 4 | | |_) | | | | '_ \ / _ \ / _ \| | | |/ _` | |/ _ \ 5 | | _ <| |_| | | | | __// ___ \ |_| | (_| | | (_) | 6 | |_| \_\\__,_|_| |_|\___/_/ \_\__,_|\__,_|_|\___/ 7 | 8 | ================ www.runeaudio.com ================ 9 | RuneOs: 0.3-alpha-dev (build 20140718) 10 | RuneUI: 1.3-alpha 11 | Hw-env: RaspberryPi 12 | 13 | -------------------------------------------------------------------------------- /config/etc/mpd.conf: -------------------------------------------------------------------------------- 1 | ################################### 2 | # Auto generated mpd.conf file 3 | # please DO NOT edit it manually! 4 | # Use RuneUI MPD config section 5 | ################################### 6 | 7 | zeroconf_enabled "yes" 8 | zeroconf_name "runeaudio" 9 | log_level "verbose" 10 | bind_to_address "/run/mpd.sock" 11 | bind_to_address "any" 12 | port "6600" 13 | max_connections "20" 14 | user "mpd" 15 | group "audio" 16 | db_file "/var/lib/mpd/mpd.db" 17 | sticker_file "/var/lib/mpd/sticker.sql" 18 | log_file "/var/log/runeaudio/mpd.log" 19 | pid_file "/var/run/mpd/pid" 20 | music_directory "/mnt/MPD" 21 | playlist_directory "/var/lib/mpd/playlists" 22 | state_file "/var/lib/mpd/mpdstate" 23 | follow_outside_symlinks "yes" 24 | follow_inside_symlinks "yes" 25 | auto_update "no" 26 | filesystem_charset "UTF-8" 27 | id3v1_encoding "UTF-8" 28 | volume_normalization "no" 29 | audio_buffer_size "2048" 30 | buffer_before_play "10%" 31 | gapless_mp3_playback "yes" 32 | mixer_type "disabled" 33 | 34 | input { 35 | plugin "curl" 36 | } 37 | 38 | decoder { 39 | plugin "ffmpeg" 40 | enabled "yes" 41 | } 42 | 43 | audio_output { 44 | name "bcm2835 ALSA" 45 | type "alsa" 46 | device "hw:0,0" 47 | auto_resample "no" 48 | auto_format "no" 49 | } 50 | 51 | -------------------------------------------------------------------------------- /config/etc/mpdscribble.conf: -------------------------------------------------------------------------------- 1 | ## mpdscribble - an audioscrobbler for the Music Player Daemon. 2 | ## http://mpd.wikia.com/wiki/Client:mpdscribble 3 | 4 | # HTTP proxy URL. 5 | #proxy = http://the.proxy.server:3128 6 | 7 | # The location of the pid file. mpdscribble saves its process id there. 8 | pidfile = /run/mpdscribble.pid 9 | 10 | # Change to this system user after daemonization. 11 | #daemon_user = mpdscribble 12 | 13 | # The location of the mpdscribble log file. The special value 14 | # "syslog" makes mpdscribble use the local syslog daemon. On most 15 | # systems, log messages will appear in /var/log/daemon.log then. 16 | # "-" means log to stderr (the current terminal). 17 | #log = syslog 18 | log = /var/log/runeaudio/mpdscribble.log 19 | 20 | # How verbose mpdscribble's logging should be. Default is 1. 21 | verbose = 2 22 | 23 | # How often should mpdscribble save the journal file? [seconds] 24 | #journal_interval = 600 25 | 26 | # The host running MPD, possibly protected by a password 27 | # ([PASSWORD@]HOSTNAME). Defaults to $MPD_HOST or localhost. 28 | host = localhost 29 | 30 | # The port that the MPD listens on and mpdscribble should try to 31 | # connect to. Defaults to $MPD_PORT or 6600. 32 | port = 6600 33 | 34 | [last.fm] 35 | url = http://post.audioscrobbler.com/ 36 | username = userid 37 | password = password 38 | # The file where mpdscribble should store its Last.fm journal in case 39 | # you do not have a connection to the Last.fm server. 40 | #journal = /run/mpdscribble/lastfm.journal 41 | 42 | #[libre.fm] 43 | #url = http://turtle.libre.fm/ 44 | #username = 45 | #password = my_password 46 | #journal = /run/mpdscribble/librefm.journal 47 | 48 | #[jamendo] 49 | #url = http://postaudioscrobbler.jamendo.com/ 50 | #username = 51 | #password = my_password 52 | #journal = /run/mpdscribble/jamendo.journal 53 | 54 | #[file] 55 | #file = /run/mpdscribble/log 56 | -------------------------------------------------------------------------------- /config/etc/netconfig: -------------------------------------------------------------------------------- 1 | # 2 | # The network configuration file. This file is currently only used in 3 | # conjunction with the TI-RPC code in the libtirpc library. 4 | # 5 | # Entries consist of: 6 | # 7 | # \ 8 | # 9 | # 10 | # The and fields are always empty in this 11 | # implementation. 12 | # 13 | udp tpi_clts v inet udp - - 14 | tcp tpi_cots_ord v inet tcp - - 15 | #udp6 tpi_clts v inet6 udp - - 16 | #tcp6 tpi_cots_ord v inet6 tcp - - 17 | rawip tpi_raw - inet - - - 18 | local tpi_cots_ord - loopback - - - 19 | unix tpi_cots_ord - loopback - - - 20 | -------------------------------------------------------------------------------- /config/etc/netctl/eth0-dhcp: -------------------------------------------------------------------------------- 1 | Description='dhcp ethernet connection' 2 | Interface=eth0 3 | Connection=ethernet 4 | AutoWired=yes 5 | IP=dhcp 6 | DHCPReleaseOnStop=yes 7 | ExecUpPost='/usr/bin/ntpd -gq || true' 8 | -------------------------------------------------------------------------------- /config/etc/netctl/eth0-static: -------------------------------------------------------------------------------- 1 | Description='static ethernet connection' 2 | Interface=eth0 3 | Connection=ethernet 4 | AutoWired=yes 5 | IP=static 6 | Address=('192.168.1.123/24') 7 | Gateway='192.168.1.1' 8 | DNS=('8.8.8.8' '8.8.4.4') 9 | -------------------------------------------------------------------------------- /config/etc/netctl/wlan0-wpa_supplicant-multissid-dhcp: -------------------------------------------------------------------------------- 1 | Description='encrypted wireless connection' 2 | Interface=wlan0 3 | Connection=wireless 4 | Security=wpa-config 5 | WPAConfigFile='/etc/wpa_supplicant/wpa_supplicant.conf' 6 | IP=dhcp -------------------------------------------------------------------------------- /config/etc/netctl/wlan0-wpa_supplicant-multissid-static: -------------------------------------------------------------------------------- 1 | Description='A simple WPA encrypted wireless connection' 2 | Interface=wlan0 3 | Connection=wireless 4 | ForceConnect=yes 5 | SkipNoCarrier=yes 6 | Security=wpa-config 7 | WPAConfigFile='/etc/wpa_supplicant/wpa_supplicant.conf' 8 | IP=static 9 | Address=('172.31.2.108/24') 10 | Gateway='172.31.2.254' 11 | DNS=('8.8.8.8' '8.8.4.4') 12 | -------------------------------------------------------------------------------- /config/etc/nginx/nginx-dev.conf: -------------------------------------------------------------------------------- 1 | user root users; 2 | worker_processes 1; 3 | 4 | #error_log /var/log/runeaudio/runeui.log; 5 | error_log /var/log/runeaudio/runeui.log debug; 6 | #error_log /var/log/runeaudio/runeui.log info; 7 | 8 | 9 | events { 10 | worker_connections 1024; 11 | use epoll; 12 | } 13 | 14 | 15 | http { 16 | include mime.types; 17 | #default_type application/octet-stream; 18 | #access_log /var/log/runeaudio/runeui.log main; 19 | sendfile on; 20 | keepalive_timeout 0; 21 | gzip off; 22 | proxy_buffering off; 23 | fastcgi_keep_conn on; 24 | fastcgi_buffers 8 16k; 25 | fastcgi_buffer_size 32k; 26 | 27 | # push directives 28 | push_stream_shared_memory_size 16M; 29 | #push_stream_channel_inactivity_time 0; 30 | push_stream_channel_info_on_publish off; 31 | #push_stream_timeout_with_body on; 32 | 33 | # DISPLAY section [/] 34 | server { 35 | listen 80 deferred; 36 | add_header X-UA-Compatible "IE=Edge,chrome=1"; 37 | access_log /var/log/runeaudio/runeui_access.log; 38 | 39 | location / { 40 | root /var/www; 41 | index index.php index.html index.htm; 42 | try_files $uri /index.php; 43 | } 44 | 45 | location ~* (.+)\.(?:\d+)\.(js|css|png|jpg|jpeg|gif|ico)$ { 46 | try_files $uri $1.$2; 47 | } 48 | 49 | location /pub { 50 | # activate publisher (admin) mode for this location 51 | push_stream_publisher admin; 52 | # query string based channel id 53 | push_stream_channels_path $arg_id; 54 | } 55 | 56 | location ~ /lp/(.*) { 57 | # activate subscriber (long-polling) 58 | push_stream_subscriber long-polling; 59 | # positional channel path 60 | push_stream_channels_path $1; 61 | # message template 62 | push_stream_message_template "{\"id\":~id~,\"channel\":\"~channel~\",\"text\":[~text~],\"tag\":~tag~,\"time\":\"~time~\"}"; 63 | #push_stream_last_received_message_tag $arg_tag; 64 | #push_stream_last_received_message_time $arg_time; 65 | # connection timeout 66 | #push_stream_longpolling_connection_ttl 60s; 67 | #push_stream_ping_message_interval 30s; 68 | } 69 | 70 | location ~ /ws/(.*) { 71 | # activate subscriber (websocket) 72 | push_stream_subscriber websocket; 73 | # positional channel path 74 | push_stream_channels_path $1; 75 | # message template 76 | push_stream_message_template "{\"id\":~id~,\"channel\":\"~channel~\",\"text\":[~text~]}"; 77 | #push_stream_websocket_allow_publish on; 78 | # ping frequency 79 | push_stream_ping_message_interval 10s; 80 | } 81 | 82 | location /stats { 83 | # activate channels statistics 84 | push_stream_channels_statistics; 85 | push_stream_channels_path $1; 86 | # query string based channel id 87 | set $push_stream_channel_id $arg_id; 88 | } 89 | 90 | # proxy RUELS 91 | location /db { 92 | proxy_pass http://localhost:81/; 93 | } 94 | 95 | location /command { 96 | proxy_pass http://localhost:82/; 97 | } 98 | 99 | location /test { 100 | try_files $uri /test/index.php; 101 | } 102 | 103 | location /clear { 104 | try_files $uri /command/cachectl.php?action=reset; 105 | } 106 | 107 | # rewrite RULES 108 | rewrite /css/(.*) /assets/css/$1 break; 109 | rewrite /less/(.*) /assets/less/$1 break; 110 | rewrite /js/(.*) /assets/js/$1 break; 111 | rewrite /img/(.*) /assets/img/$1 break; 112 | rewrite /fonts/(.*) /assets/fonts/$1 break; 113 | 114 | # redirect server error pages to the static page /50x.html 115 | error_page 500 502 503 504 /50x.html; 116 | location = /50x.html { 117 | root html; 118 | } 119 | # php5-fpm 120 | location ~ \.php$ { 121 | proxy_buffer_size 128k; 122 | proxy_buffers 4 256k; 123 | proxy_busy_buffers_size 256k; 124 | root /var/www; 125 | fastcgi_pass unix:/var/run/php-display.sock; 126 | fastcgi_index index.php; 127 | include fastcgi_params; 128 | fastcgi_param SCRIPT_FILENAME $request_filename; 129 | fastcgi_read_timeout 3600; 130 | } 131 | 132 | } # end DISPLAY section [/] 133 | 134 | # DB section [/db] 135 | server { 136 | listen 81 deferred; 137 | access_log /var/log/runeaudio/runeui.log; 138 | location / { 139 | root /var/www/db; 140 | index index.php; 141 | } 142 | # php5-fpm 143 | location ~ \.php$ { 144 | root /var/www/db; 145 | #proxy_buffer_size 128k; 146 | #proxy_buffers 4 256k; 147 | #proxy_busy_buffers_size 256k; 148 | fastcgi_pass unix:/var/run/php-db.sock; 149 | fastcgi_index index.php; 150 | include fastcgi_params; 151 | fastcgi_param SCRIPT_FILENAME $request_filename; 152 | fastcgi_read_timeout 3600; 153 | } 154 | } # end DB section [/db] 155 | 156 | # 157 | server { 158 | listen 82 deferred; 159 | access_log /var/log/runeaudio/runeui.log; 160 | location / { 161 | root /var/www/command; 162 | index index.php; 163 | } 164 | # php5-fpm 165 | location ~ \.php$ { 166 | root /var/www/command; 167 | proxy_buffer_size 128k; 168 | proxy_buffers 4 256k; 169 | proxy_busy_buffers_size 256k; 170 | fastcgi_pass unix:/var/run/php-command.sock; 171 | fastcgi_index index.php; 172 | include fastcgi_params; 173 | fastcgi_param SCRIPT_FILENAME $request_filename; 174 | fastcgi_read_timeout 3600; 175 | } 176 | } # end COMMAND section [/command] 177 | 178 | } # end http block 179 | 180 | -------------------------------------------------------------------------------- /config/etc/nginx/nginx-prod.conf: -------------------------------------------------------------------------------- 1 | user root users; 2 | worker_processes 1; 3 | 4 | #error_log /var/log/runeaudio/runeui.log; 5 | ##error_log /var/log/runeaudio/runeui.log debug; 6 | #error_log /var/log/runeaudio/runeui.log info; 7 | 8 | 9 | events { 10 | worker_connections 1024; 11 | use epoll; 12 | } 13 | 14 | 15 | http { 16 | include mime.types; 17 | #default_type application/octet-stream; 18 | #access_log /var/log/runeaudio/runeui.log main; 19 | sendfile on; 20 | keepalive_timeout 0; 21 | #gzip off; 22 | proxy_buffering off; 23 | fastcgi_keep_conn on; 24 | fastcgi_buffers 8 16k; 25 | fastcgi_buffer_size 32k; 26 | 27 | # push directives 28 | push_stream_shared_memory_size 16M; 29 | #push_stream_channel_inactivity_time 0; 30 | push_stream_channel_info_on_publish off; 31 | #push_stream_timeout_with_body on; 32 | 33 | # DISPLAY section [/] 34 | server { 35 | listen 80 deferred; 36 | add_header X-UA-Compatible "IE=Edge,chrome=1"; 37 | #access_log /var/log/runeaudio/runeui_access.log; 38 | 39 | location / { 40 | root /var/www; 41 | index index.php index.html index.htm; 42 | try_files $uri /index.php; 43 | } 44 | 45 | location ~* (.+)\.(?:\d+)\.(js|css|png|jpg|jpeg|gif|ico)$ { 46 | try_files $uri $1.$2; 47 | } 48 | 49 | location /pub { 50 | # activate publisher (admin) mode for this location 51 | push_stream_publisher admin; 52 | # query string based channel id 53 | push_stream_channels_path $arg_id; 54 | } 55 | 56 | location ~ /lp/(.*) { 57 | # activate subscriber (long-polling) 58 | push_stream_subscriber long-polling; 59 | # positional channel path 60 | push_stream_channels_path $1; 61 | # message template 62 | push_stream_message_template "{\"id\":~id~,\"channel\":\"~channel~\",\"text\":[~text~],\"tag\":~tag~,\"time\":\"~time~\"}"; 63 | #push_stream_last_received_message_tag $arg_tag; 64 | #push_stream_last_received_message_time $arg_time; 65 | # connection timeout 66 | #push_stream_longpolling_connection_ttl 60s; 67 | #push_stream_ping_message_interval 30s; 68 | } 69 | 70 | location ~ /ws/(.*) { 71 | # activate subscriber (websocket) 72 | push_stream_subscriber websocket; 73 | # positional channel path 74 | push_stream_channels_path $1; 75 | # message template 76 | push_stream_message_template "{\"id\":~id~,\"channel\":\"~channel~\",\"text\":[~text~]}"; 77 | #push_stream_websocket_allow_publish on; 78 | # ping frequency 79 | push_stream_ping_message_interval 10s; 80 | } 81 | 82 | location ~ /pl_lp/(.*) { 83 | # activate subscriber (long-polling) 84 | push_stream_subscriber long-polling; 85 | # positional channel path 86 | push_stream_channels_path $1; 87 | # message template 88 | push_stream_message_template "{\"id\":~id~,\"channel\":\"~channel~\",\"text\":\"~text~\",\"tag\":~tag~,\"time\":\"~time~\"}"; 89 | #push_stream_last_received_message_tag $arg_tag; 90 | #push_stream_last_received_message_time $arg_time; 91 | # connection timeout 92 | #push_stream_longpolling_connection_ttl 60s; 93 | #push_stream_ping_message_interval 30s; 94 | } 95 | 96 | location ~ /pl_ws/(.*) { 97 | # activate subscriber (websocket) 98 | push_stream_subscriber websocket; 99 | # positional channel path 100 | push_stream_channels_path $1; 101 | # message template 102 | push_stream_message_template "{\"id\":~id~,\"channel\":\"~channel~\",\"text\":\"~text~\"}"; 103 | #push_stream_websocket_allow_publish on; 104 | # ping frequency 105 | push_stream_ping_message_interval 10s; 106 | } 107 | 108 | location /stats { 109 | # activate channels statistics 110 | push_stream_channels_statistics; 111 | push_stream_channels_path $1; 112 | # query string based channel id 113 | set $push_stream_channel_id $arg_id; 114 | } 115 | 116 | # proxy RUELS 117 | location /db { 118 | proxy_pass http://localhost:81/; 119 | } 120 | 121 | location /command { 122 | proxy_pass http://localhost:82/; 123 | } 124 | 125 | location /test { 126 | try_files $uri /test/index.php; 127 | } 128 | 129 | location /clear { 130 | try_files $uri /command/cachectl.php?action=reset; 131 | } 132 | 133 | # rewrite RULES 134 | rewrite /css/(.*) /assets/css/$1 break; 135 | rewrite /less/(.*) /assets/less/$1 break; 136 | rewrite /js/(.*) /assets/js/$1 break; 137 | rewrite /img/(.*) /assets/img/$1 break; 138 | rewrite /fonts/(.*) /assets/fonts/$1 break; 139 | 140 | # redirect server error pages to the static page /50x.html 141 | error_page 500 502 503 504 /50x.html; 142 | location = /50x.html { 143 | root html; 144 | } 145 | # php5-fpm 146 | location ~ \.php$ { 147 | proxy_buffer_size 128k; 148 | proxy_buffers 4 256k; 149 | proxy_busy_buffers_size 256k; 150 | root /var/www; 151 | fastcgi_pass unix:/var/run/php-display.sock; 152 | fastcgi_index index.php; 153 | include fastcgi_params; 154 | fastcgi_param SCRIPT_FILENAME $request_filename; 155 | fastcgi_read_timeout 3600; 156 | } 157 | 158 | } # end DISPLAY section [/] 159 | 160 | # DB section [/db] 161 | server { 162 | listen 81 deferred; 163 | #access_log /var/log/runeaudio/runeui.log; 164 | location / { 165 | root /var/www/db; 166 | index index.php; 167 | } 168 | # php5-fpm 169 | location ~ \.php$ { 170 | root /var/www/db; 171 | #proxy_buffer_size 128k; 172 | #proxy_buffers 4 256k; 173 | #proxy_busy_buffers_size 256k; 174 | fastcgi_pass unix:/var/run/php-db.sock; 175 | fastcgi_index index.php; 176 | include fastcgi_params; 177 | fastcgi_param SCRIPT_FILENAME $request_filename; 178 | fastcgi_read_timeout 3600; 179 | } 180 | } # end DB section [/db] 181 | 182 | # 183 | server { 184 | listen 82 deferred; 185 | #access_log /var/log/runeaudio/runeui.log; 186 | location / { 187 | root /var/www/command; 188 | index index.php; 189 | } 190 | # php5-fpm 191 | location ~ \.php$ { 192 | root /var/www/command; 193 | proxy_buffer_size 128k; 194 | proxy_buffers 4 256k; 195 | proxy_busy_buffers_size 256k; 196 | fastcgi_pass unix:/var/run/php-command.sock; 197 | fastcgi_index index.php; 198 | include fastcgi_params; 199 | fastcgi_param SCRIPT_FILENAME $request_filename; 200 | fastcgi_read_timeout 3600; 201 | } 202 | } # end COMMAND section [/command] 203 | 204 | } # end http block 205 | 206 | -------------------------------------------------------------------------------- /config/etc/php/conf.d/opcache.ini: -------------------------------------------------------------------------------- 1 | zend_extension=/usr/lib/php/modules/opcache.so 2 | opcache.enable=1 3 | opcache.validate_timestamps=0 4 | opcache.consistency_checks=0 5 | opcache.revalidate_freq=86400 6 | opcache.use_cwd=0 7 | opcache.memory_consumption=12 8 | opcache.interned_strings_buffer=8 9 | opcache.max_accelerated_files=400 10 | opcache.fast_shutdown=1 11 | opcache.enable_cli=1 12 | opcache.save_comments=0 13 | opcache.load_comments=0 14 | ;opcache.error_log=/var/log/runeaudio/php-opcache.log 15 | ;opcache.log_verbosity_level=4 16 | 17 | -------------------------------------------------------------------------------- /config/etc/php/fpm.d/command.conf: -------------------------------------------------------------------------------- 1 | [command] 2 | user = http 3 | group = http 4 | listen = /var/run/php-command.sock 5 | ;listen = 127.0.0.1:9002 6 | pm = static 7 | pm.start_servers = 1 8 | pm.max_children = 1 9 | chdir = / 10 | -------------------------------------------------------------------------------- /config/etc/php/fpm.d/db.conf: -------------------------------------------------------------------------------- 1 | [db] 2 | user = http 3 | group = http 4 | listen = /var/run/php-db.sock 5 | ;listen = 127.0.0.1:9001 6 | pm = static 7 | pm.start_servers = 1 8 | pm.max_children = 1 9 | chdir = / 10 | -------------------------------------------------------------------------------- /config/etc/php/fpm.d/display.conf: -------------------------------------------------------------------------------- 1 | [display] 2 | user = http 3 | group = http 4 | listen = /var/run/php-display.sock 5 | pm = static 6 | pm.max_children = 1 7 | pm.start_servers = 1 8 | chdir = / 9 | ;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com 10 | ;php_flag[display_errors] = off 11 | ;php_admin_value[error_log] = /var/log/fpm-php.www.log 12 | ;php_admin_flag[log_errors] = on 13 | ;php_admin_value[memory_limit] = 32M 14 | 15 | -------------------------------------------------------------------------------- /config/etc/php/php-fpm.conf: -------------------------------------------------------------------------------- 1 | ;;;;;;;;;;;;;;;;;;;;; 2 | ; FPM Configuration ; 3 | ;;;;;;;;;;;;;;;;;;;;; 4 | 5 | ; All relative paths in this configuration file are relative to PHP's install 6 | ; prefix (/usr). This prefix can be dynamically changed by using the 7 | ; '-p' argument from the command line. 8 | 9 | ; Include one or more files. If glob(3) exists, it is used to include a bunch of 10 | ; files from a glob(3) pattern. This directive can be used everywhere in the 11 | ; file. 12 | ; Relative path can also be used. They will be prefixed by: 13 | ; - the global prefix if it's been set (-p argument) 14 | ; - /usr otherwise 15 | include=/etc/php/fpm.d/*.conf 16 | 17 | ;;;;;;;;;;;;;;;;;; 18 | ; Global Options ; 19 | ;;;;;;;;;;;;;;;;;; 20 | 21 | [global] 22 | ; Pid file 23 | ; Note: the default prefix is /var 24 | ; Default Value: none 25 | pid = /run/php-fpm/php-fpm.pid 26 | 27 | ; Error log file 28 | ; If it's set to "syslog", log is sent to syslogd instead of being written 29 | ; in a local file. 30 | ; Note: the default prefix is /var 31 | ; Default Value: log/php-fpm.log 32 | ;error_log = log/php-fpm.log 33 | 34 | ; syslog_facility is used to specify what type of program is logging the 35 | ; message. This lets syslogd specify that messages from different facilities 36 | ; will be handled differently. 37 | ; See syslog(3) for possible values (ex daemon equiv LOG_DAEMON) 38 | ; Default Value: daemon 39 | ;syslog.facility = daemon 40 | 41 | ; syslog_ident is prepended to every message. If you have multiple FPM 42 | ; instances running on the same server, you can change the default value 43 | ; which must suit common needs. 44 | ; Default Value: php-fpm 45 | ;syslog.ident = php-fpm 46 | 47 | ; Log level 48 | ; Possible Values: alert, error, warning, notice, debug 49 | ; Default Value: notice 50 | ;log_level = notice 51 | 52 | ; If this number of child processes exit with SIGSEGV or SIGBUS within the time 53 | ; interval set by emergency_restart_interval then FPM will restart. A value 54 | ; of '0' means 'Off'. 55 | ; Default Value: 0 56 | ;emergency_restart_threshold = 0 57 | 58 | ; Interval of time used by emergency_restart_interval to determine when 59 | ; a graceful restart will be initiated. This can be useful to work around 60 | ; accidental corruptions in an accelerator's shared memory. 61 | ; Available Units: s(econds), m(inutes), h(ours), or d(ays) 62 | ; Default Unit: seconds 63 | ; Default Value: 0 64 | ;emergency_restart_interval = 0 65 | 66 | ; Time limit for child processes to wait for a reaction on signals from master. 67 | ; Available units: s(econds), m(inutes), h(ours), or d(ays) 68 | ; Default Unit: seconds 69 | ; Default Value: 0 70 | ;process_control_timeout = 0 71 | 72 | ; The maximum number of processes FPM will fork. This has been design to control 73 | ; the global number of processes when using dynamic PM within a lot of pools. 74 | ; Use it with caution. 75 | ; Note: A value of 0 indicates no limit 76 | ; Default Value: 0 77 | ; process.max = 128 78 | 79 | ; Specify the nice(2) priority to apply to the master process (only if set) 80 | ; The value can vary from -19 (highest priority) to 20 (lower priority) 81 | ; Note: - It will only work if the FPM master process is launched as root 82 | ; - The pool process will inherit the master process priority 83 | ; unless it specified otherwise 84 | ; Default Value: no set 85 | ; process.priority = -19 86 | 87 | ; Send FPM to background. Set to 'no' to keep FPM in foreground for debugging. 88 | ; Default Value: yes 89 | ;daemonize = yes 90 | 91 | ; Set open file descriptor rlimit for the master process. 92 | ; Default Value: system defined value 93 | ;rlimit_files = 1024 94 | 95 | ; Set max core size rlimit for the master process. 96 | ; Possible Values: 'unlimited' or an integer greater or equal to 0 97 | ; Default Value: system defined value 98 | ;rlimit_core = 0 99 | 100 | ; Specify the event mechanism FPM will use. The following is available: 101 | ; - select (any POSIX os) 102 | ; - poll (any POSIX os) 103 | ; - epoll (linux >= 2.5.44) 104 | ; - kqueue (FreeBSD >= 4.1, OpenBSD >= 2.9, NetBSD >= 2.0) 105 | ; - /dev/poll (Solaris >= 7) 106 | ; - port (Solaris >= 10) 107 | ; Default Value: not set (auto detection) 108 | ;events.mechanism = epoll 109 | 110 | ; When FPM is build with systemd integration, specify the interval, 111 | ; in second, between health report notification to systemd. 112 | ; Set to 0 to disable. 113 | ; Available Units: s(econds), m(inutes), h(ours) 114 | ; Default Unit: seconds 115 | ; Default value: 10 116 | ;systemd_interval = 10 117 | 118 | -------------------------------------------------------------------------------- /config/etc/php/php-fpm.conf.default: -------------------------------------------------------------------------------- 1 | ;;;;;;;;;;;;;;;;;;;;; 2 | ; FPM Configuration ; 3 | ;;;;;;;;;;;;;;;;;;;;; 4 | 5 | ; All relative paths in this configuration file are relative to PHP's install 6 | ; prefix (/usr). This prefix can be dynamically changed by using the 7 | ; '-p' argument from the command line. 8 | 9 | ; Include one or more files. If glob(3) exists, it is used to include a bunch of 10 | ; files from a glob(3) pattern. This directive can be used everywhere in the 11 | ; file. 12 | ; Relative path can also be used. They will be prefixed by: 13 | ; - the global prefix if it's been set (-p argument) 14 | ; - /usr otherwise 15 | ;include=/etc/php/fpm.d/*.conf 16 | 17 | ;;;;;;;;;;;;;;;;;; 18 | ; Global Options ; 19 | ;;;;;;;;;;;;;;;;;; 20 | 21 | [global] 22 | ; Pid file 23 | ; Note: the default prefix is /var 24 | ; Default Value: none 25 | pid = /run/php-fpm/php-fpm.pid 26 | 27 | ; Error log file 28 | ; If it's set to "syslog", log is sent to syslogd instead of being written 29 | ; in a local file. 30 | ; Note: the default prefix is /var 31 | ; Default Value: log/php-fpm.log 32 | ;error_log = log/php-fpm.log 33 | 34 | ; syslog_facility is used to specify what type of program is logging the 35 | ; message. This lets syslogd specify that messages from different facilities 36 | ; will be handled differently. 37 | ; See syslog(3) for possible values (ex daemon equiv LOG_DAEMON) 38 | ; Default Value: daemon 39 | ;syslog.facility = daemon 40 | 41 | ; syslog_ident is prepended to every message. If you have multiple FPM 42 | ; instances running on the same server, you can change the default value 43 | ; which must suit common needs. 44 | ; Default Value: php-fpm 45 | ;syslog.ident = php-fpm 46 | 47 | ; Log level 48 | ; Possible Values: alert, error, warning, notice, debug 49 | ; Default Value: notice 50 | ;log_level = notice 51 | 52 | ; If this number of child processes exit with SIGSEGV or SIGBUS within the time 53 | ; interval set by emergency_restart_interval then FPM will restart. A value 54 | ; of '0' means 'Off'. 55 | ; Default Value: 0 56 | ;emergency_restart_threshold = 0 57 | 58 | ; Interval of time used by emergency_restart_interval to determine when 59 | ; a graceful restart will be initiated. This can be useful to work around 60 | ; accidental corruptions in an accelerator's shared memory. 61 | ; Available Units: s(econds), m(inutes), h(ours), or d(ays) 62 | ; Default Unit: seconds 63 | ; Default Value: 0 64 | ;emergency_restart_interval = 0 65 | 66 | ; Time limit for child processes to wait for a reaction on signals from master. 67 | ; Available units: s(econds), m(inutes), h(ours), or d(ays) 68 | ; Default Unit: seconds 69 | ; Default Value: 0 70 | ;process_control_timeout = 0 71 | 72 | ; The maximum number of processes FPM will fork. This has been design to control 73 | ; the global number of processes when using dynamic PM within a lot of pools. 74 | ; Use it with caution. 75 | ; Note: A value of 0 indicates no limit 76 | ; Default Value: 0 77 | ; process.max = 128 78 | 79 | ; Specify the nice(2) priority to apply to the master process (only if set) 80 | ; The value can vary from -19 (highest priority) to 20 (lower priority) 81 | ; Note: - It will only work if the FPM master process is launched as root 82 | ; - The pool process will inherit the master process priority 83 | ; unless it specified otherwise 84 | ; Default Value: no set 85 | ; process.priority = -19 86 | 87 | ; Send FPM to background. Set to 'no' to keep FPM in foreground for debugging. 88 | ; Default Value: yes 89 | ;daemonize = yes 90 | 91 | ; Set open file descriptor rlimit for the master process. 92 | ; Default Value: system defined value 93 | ;rlimit_files = 1024 94 | 95 | ; Set max core size rlimit for the master process. 96 | ; Possible Values: 'unlimited' or an integer greater or equal to 0 97 | ; Default Value: system defined value 98 | ;rlimit_core = 0 99 | 100 | ; Specify the event mechanism FPM will use. The following is available: 101 | ; - select (any POSIX os) 102 | ; - poll (any POSIX os) 103 | ; - epoll (linux >= 2.5.44) 104 | ; - kqueue (FreeBSD >= 4.1, OpenBSD >= 2.9, NetBSD >= 2.0) 105 | ; - /dev/poll (Solaris >= 7) 106 | ; - port (Solaris >= 10) 107 | ; Default Value: not set (auto detection) 108 | ;events.mechanism = epoll 109 | 110 | ; When FPM is build with systemd integration, specify the interval, 111 | ; in second, between health report notification to systemd. 112 | ; Set to 0 to disable. 113 | ; Available Units: s(econds), m(inutes), h(ours) 114 | ; Default Unit: seconds 115 | ; Default value: 10 116 | ;systemd_interval = 10 117 | 118 | ;;;;;;;;;;;;;;;;;;;; 119 | ; Pool Definitions ; 120 | ;;;;;;;;;;;;;;;;;;;; 121 | 122 | ; Multiple pools of child processes may be started with different listening 123 | ; ports and different management options. The name of the pool will be 124 | ; used in logs and stats. There is no limitation on the number of pools which 125 | ; FPM can handle. Your system will tell you anyway :) 126 | 127 | ; Start a new pool named 'www'. 128 | ; the variable $pool can we used in any directive and will be replaced by the 129 | ; pool name ('www' here) 130 | [www] 131 | 132 | ; Per pool prefix 133 | ; It only applies on the following directives: 134 | ; - 'slowlog' 135 | ; - 'listen' (unixsocket) 136 | ; - 'chroot' 137 | ; - 'chdir' 138 | ; - 'php_values' 139 | ; - 'php_admin_values' 140 | ; When not set, the global prefix (or /usr) applies instead. 141 | ; Note: This directive can also be relative to the global prefix. 142 | ; Default Value: none 143 | ;prefix = /path/to/pools/$pool 144 | 145 | ; Unix user/group of processes 146 | ; Note: The user is mandatory. If the group is not set, the default user's group 147 | ; will be used. 148 | user = http 149 | group = http 150 | 151 | ; The address on which to accept FastCGI requests. 152 | ; Valid syntaxes are: 153 | ; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific address on 154 | ; a specific port; 155 | ; 'port' - to listen on a TCP socket to all addresses on a 156 | ; specific port; 157 | ; '/path/to/unix/socket' - to listen on a unix socket. 158 | ; Note: This value is mandatory. 159 | ;listen = 127.0.0.1:9000 160 | listen = /run/php-fpm/php-fpm.sock 161 | 162 | ; Set listen(2) backlog. 163 | ; Default Value: 65535 (-1 on FreeBSD and OpenBSD) 164 | ;listen.backlog = 65535 165 | 166 | ; Set permissions for unix socket, if one is used. In Linux, read/write 167 | ; permissions must be set in order to allow connections from a web server. Many 168 | ; BSD-derived systems allow connections regardless of permissions. 169 | ; Default Values: user and group are set as the running user 170 | ; mode is set to 0666 171 | listen.owner = http 172 | listen.group = http 173 | listen.mode = 0660 174 | 175 | ; List of ipv4 addresses of FastCGI clients which are allowed to connect. 176 | ; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original 177 | ; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address 178 | ; must be separated by a comma. If this value is left blank, connections will be 179 | ; accepted from any ip address. 180 | ; Default Value: any 181 | ;listen.allowed_clients = 127.0.0.1 182 | 183 | ; Specify the nice(2) priority to apply to the pool processes (only if set) 184 | ; The value can vary from -19 (highest priority) to 20 (lower priority) 185 | ; Note: - It will only work if the FPM master process is launched as root 186 | ; - The pool processes will inherit the master process priority 187 | ; unless it specified otherwise 188 | ; Default Value: no set 189 | ; priority = -19 190 | 191 | ; Choose how the process manager will control the number of child processes. 192 | ; Possible Values: 193 | ; static - a fixed number (pm.max_children) of child processes; 194 | ; dynamic - the number of child processes are set dynamically based on the 195 | ; following directives. With this process management, there will be 196 | ; always at least 1 children. 197 | ; pm.max_children - the maximum number of children that can 198 | ; be alive at the same time. 199 | ; pm.start_servers - the number of children created on startup. 200 | ; pm.min_spare_servers - the minimum number of children in 'idle' 201 | ; state (waiting to process). If the number 202 | ; of 'idle' processes is less than this 203 | ; number then some children will be created. 204 | ; pm.max_spare_servers - the maximum number of children in 'idle' 205 | ; state (waiting to process). If the number 206 | ; of 'idle' processes is greater than this 207 | ; number then some children will be killed. 208 | ; ondemand - no children are created at startup. Children will be forked when 209 | ; new requests will connect. The following parameter are used: 210 | ; pm.max_children - the maximum number of children that 211 | ; can be alive at the same time. 212 | ; pm.process_idle_timeout - The number of seconds after which 213 | ; an idle process will be killed. 214 | ; Note: This value is mandatory. 215 | pm = dynamic 216 | 217 | ; The number of child processes to be created when pm is set to 'static' and the 218 | ; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. 219 | ; This value sets the limit on the number of simultaneous requests that will be 220 | ; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. 221 | ; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP 222 | ; CGI. The below defaults are based on a server without much resources. Don't 223 | ; forget to tweak pm.* to fit your needs. 224 | ; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' 225 | ; Note: This value is mandatory. 226 | pm.max_children = 5 227 | 228 | ; The number of child processes created on startup. 229 | ; Note: Used only when pm is set to 'dynamic' 230 | ; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 231 | pm.start_servers = 2 232 | 233 | ; The desired minimum number of idle server processes. 234 | ; Note: Used only when pm is set to 'dynamic' 235 | ; Note: Mandatory when pm is set to 'dynamic' 236 | pm.min_spare_servers = 1 237 | 238 | ; The desired maximum number of idle server processes. 239 | ; Note: Used only when pm is set to 'dynamic' 240 | ; Note: Mandatory when pm is set to 'dynamic' 241 | pm.max_spare_servers = 3 242 | 243 | ; The number of seconds after which an idle process will be killed. 244 | ; Note: Used only when pm is set to 'ondemand' 245 | ; Default Value: 10s 246 | ;pm.process_idle_timeout = 10s; 247 | 248 | ; The number of requests each child process should execute before respawning. 249 | ; This can be useful to work around memory leaks in 3rd party libraries. For 250 | ; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. 251 | ; Default Value: 0 252 | ;pm.max_requests = 500 253 | 254 | ; The URI to view the FPM status page. If this value is not set, no URI will be 255 | ; recognized as a status page. It shows the following informations: 256 | ; pool - the name of the pool; 257 | ; process manager - static, dynamic or ondemand; 258 | ; start time - the date and time FPM has started; 259 | ; start since - number of seconds since FPM has started; 260 | ; accepted conn - the number of request accepted by the pool; 261 | ; listen queue - the number of request in the queue of pending 262 | ; connections (see backlog in listen(2)); 263 | ; max listen queue - the maximum number of requests in the queue 264 | ; of pending connections since FPM has started; 265 | ; listen queue len - the size of the socket queue of pending connections; 266 | ; idle processes - the number of idle processes; 267 | ; active processes - the number of active processes; 268 | ; total processes - the number of idle + active processes; 269 | ; max active processes - the maximum number of active processes since FPM 270 | ; has started; 271 | ; max children reached - number of times, the process limit has been reached, 272 | ; when pm tries to start more children (works only for 273 | ; pm 'dynamic' and 'ondemand'); 274 | ; Value are updated in real time. 275 | ; Example output: 276 | ; pool: www 277 | ; process manager: static 278 | ; start time: 01/Jul/2011:17:53:49 +0200 279 | ; start since: 62636 280 | ; accepted conn: 190460 281 | ; listen queue: 0 282 | ; max listen queue: 1 283 | ; listen queue len: 42 284 | ; idle processes: 4 285 | ; active processes: 11 286 | ; total processes: 15 287 | ; max active processes: 12 288 | ; max children reached: 0 289 | ; 290 | ; By default the status page output is formatted as text/plain. Passing either 291 | ; 'html', 'xml' or 'json' in the query string will return the corresponding 292 | ; output syntax. Example: 293 | ; http://www.foo.bar/status 294 | ; http://www.foo.bar/status?json 295 | ; http://www.foo.bar/status?html 296 | ; http://www.foo.bar/status?xml 297 | ; 298 | ; By default the status page only outputs short status. Passing 'full' in the 299 | ; query string will also return status for each pool process. 300 | ; Example: 301 | ; http://www.foo.bar/status?full 302 | ; http://www.foo.bar/status?json&full 303 | ; http://www.foo.bar/status?html&full 304 | ; http://www.foo.bar/status?xml&full 305 | ; The Full status returns for each process: 306 | ; pid - the PID of the process; 307 | ; state - the state of the process (Idle, Running, ...); 308 | ; start time - the date and time the process has started; 309 | ; start since - the number of seconds since the process has started; 310 | ; requests - the number of requests the process has served; 311 | ; request duration - the duration in µs of the requests; 312 | ; request method - the request method (GET, POST, ...); 313 | ; request URI - the request URI with the query string; 314 | ; content length - the content length of the request (only with POST); 315 | ; user - the user (PHP_AUTH_USER) (or '-' if not set); 316 | ; script - the main script called (or '-' if not set); 317 | ; last request cpu - the %cpu the last request consumed 318 | ; it's always 0 if the process is not in Idle state 319 | ; because CPU calculation is done when the request 320 | ; processing has terminated; 321 | ; last request memory - the max amount of memory the last request consumed 322 | ; it's always 0 if the process is not in Idle state 323 | ; because memory calculation is done when the request 324 | ; processing has terminated; 325 | ; If the process is in Idle state, then informations are related to the 326 | ; last request the process has served. Otherwise informations are related to 327 | ; the current request being served. 328 | ; Example output: 329 | ; ************************ 330 | ; pid: 31330 331 | ; state: Running 332 | ; start time: 01/Jul/2011:17:53:49 +0200 333 | ; start since: 63087 334 | ; requests: 12808 335 | ; request duration: 1250261 336 | ; request method: GET 337 | ; request URI: /test_mem.php?N=10000 338 | ; content length: 0 339 | ; user: - 340 | ; script: /home/fat/web/docs/php/test_mem.php 341 | ; last request cpu: 0.00 342 | ; last request memory: 0 343 | ; 344 | ; Note: There is a real-time FPM status monitoring sample web page available 345 | ; It's available in: ${prefix}/share/fpm/status.html 346 | ; 347 | ; Note: The value must start with a leading slash (/). The value can be 348 | ; anything, but it may not be a good idea to use the .php extension or it 349 | ; may conflict with a real PHP file. 350 | ; Default Value: not set 351 | ;pm.status_path = /status 352 | 353 | ; The ping URI to call the monitoring page of FPM. If this value is not set, no 354 | ; URI will be recognized as a ping page. This could be used to test from outside 355 | ; that FPM is alive and responding, or to 356 | ; - create a graph of FPM availability (rrd or such); 357 | ; - remove a server from a group if it is not responding (load balancing); 358 | ; - trigger alerts for the operating team (24/7). 359 | ; Note: The value must start with a leading slash (/). The value can be 360 | ; anything, but it may not be a good idea to use the .php extension or it 361 | ; may conflict with a real PHP file. 362 | ; Default Value: not set 363 | ;ping.path = /ping 364 | 365 | ; This directive may be used to customize the response of a ping request. The 366 | ; response is formatted as text/plain with a 200 response code. 367 | ; Default Value: pong 368 | ;ping.response = pong 369 | 370 | ; The access log file 371 | ; Default: not set 372 | ;access.log = log/$pool.access.log 373 | 374 | ; The access log format. 375 | ; The following syntax is allowed 376 | ; %%: the '%' character 377 | ; %C: %CPU used by the request 378 | ; it can accept the following format: 379 | ; - %{user}C for user CPU only 380 | ; - %{system}C for system CPU only 381 | ; - %{total}C for user + system CPU (default) 382 | ; %d: time taken to serve the request 383 | ; it can accept the following format: 384 | ; - %{seconds}d (default) 385 | ; - %{miliseconds}d 386 | ; - %{mili}d 387 | ; - %{microseconds}d 388 | ; - %{micro}d 389 | ; %e: an environment variable (same as $_ENV or $_SERVER) 390 | ; it must be associated with embraces to specify the name of the env 391 | ; variable. Some exemples: 392 | ; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e 393 | ; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e 394 | ; %f: script filename 395 | ; %l: content-length of the request (for POST request only) 396 | ; %m: request method 397 | ; %M: peak of memory allocated by PHP 398 | ; it can accept the following format: 399 | ; - %{bytes}M (default) 400 | ; - %{kilobytes}M 401 | ; - %{kilo}M 402 | ; - %{megabytes}M 403 | ; - %{mega}M 404 | ; %n: pool name 405 | ; %o: output header 406 | ; it must be associated with embraces to specify the name of the header: 407 | ; - %{Content-Type}o 408 | ; - %{X-Powered-By}o 409 | ; - %{Transfert-Encoding}o 410 | ; - .... 411 | ; %p: PID of the child that serviced the request 412 | ; %P: PID of the parent of the child that serviced the request 413 | ; %q: the query string 414 | ; %Q: the '?' character if query string exists 415 | ; %r: the request URI (without the query string, see %q and %Q) 416 | ; %R: remote IP address 417 | ; %s: status (response code) 418 | ; %t: server time the request was received 419 | ; it can accept a strftime(3) format: 420 | ; %d/%b/%Y:%H:%M:%S %z (default) 421 | ; %T: time the log has been written (the request has finished) 422 | ; it can accept a strftime(3) format: 423 | ; %d/%b/%Y:%H:%M:%S %z (default) 424 | ; %u: remote user 425 | ; 426 | ; Default: "%R - %u %t \"%m %r\" %s" 427 | ;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" 428 | 429 | ; The log file for slow requests 430 | ; Default Value: not set 431 | ; Note: slowlog is mandatory if request_slowlog_timeout is set 432 | ;slowlog = log/$pool.log.slow 433 | 434 | ; The timeout for serving a single request after which a PHP backtrace will be 435 | ; dumped to the 'slowlog' file. A value of '0s' means 'off'. 436 | ; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) 437 | ; Default Value: 0 438 | ;request_slowlog_timeout = 0 439 | 440 | ; The timeout for serving a single request after which the worker process will 441 | ; be killed. This option should be used when the 'max_execution_time' ini option 442 | ; does not stop script execution for some reason. A value of '0' means 'off'. 443 | ; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) 444 | ; Default Value: 0 445 | ;request_terminate_timeout = 0 446 | 447 | ; Set open file descriptor rlimit. 448 | ; Default Value: system defined value 449 | ;rlimit_files = 1024 450 | 451 | ; Set max core size rlimit. 452 | ; Possible Values: 'unlimited' or an integer greater or equal to 0 453 | ; Default Value: system defined value 454 | ;rlimit_core = 0 455 | 456 | ; Chroot to this directory at the start. This value must be defined as an 457 | ; absolute path. When this value is not set, chroot is not used. 458 | ; Note: you can prefix with '$prefix' to chroot to the pool prefix or one 459 | ; of its subdirectories. If the pool prefix is not set, the global prefix 460 | ; will be used instead. 461 | ; Note: chrooting is a great security feature and should be used whenever 462 | ; possible. However, all PHP paths will be relative to the chroot 463 | ; (error_log, sessions.save_path, ...). 464 | ; Default Value: not set 465 | ;chroot = 466 | 467 | ; Chdir to this directory at the start. 468 | ; Note: relative path can be used. 469 | ; Default Value: current directory or / when chroot 470 | ;chdir = /srv/http 471 | 472 | ; Redirect worker stdout and stderr into main error log. If not set, stdout and 473 | ; stderr will be redirected to /dev/null according to FastCGI specs. 474 | ; Note: on highloaded environement, this can cause some delay in the page 475 | ; process time (several ms). 476 | ; Default Value: no 477 | ;catch_workers_output = yes 478 | 479 | ; Limits the extensions of the main script FPM will allow to parse. This can 480 | ; prevent configuration mistakes on the web server side. You should only limit 481 | ; FPM to .php extensions to prevent malicious users to use other extensions to 482 | ; exectute php code. 483 | ; Note: set an empty value to allow all extensions. 484 | ; Default Value: .php 485 | ;security.limit_extensions = .php .php3 .php4 .php5 486 | 487 | ; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from 488 | ; the current environment. 489 | ; Default Value: clean env 490 | ;env[HOSTNAME] = $HOSTNAME 491 | ;env[PATH] = /usr/local/bin:/usr/bin:/bin 492 | ;env[TMP] = /tmp 493 | ;env[TMPDIR] = /tmp 494 | ;env[TEMP] = /tmp 495 | 496 | ; Additional php.ini defines, specific to this pool of workers. These settings 497 | ; overwrite the values previously defined in the php.ini. The directives are the 498 | ; same as the PHP SAPI: 499 | ; php_value/php_flag - you can set classic ini defines which can 500 | ; be overwritten from PHP call 'ini_set'. 501 | ; php_admin_value/php_admin_flag - these directives won't be overwritten by 502 | ; PHP call 'ini_set' 503 | ; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. 504 | 505 | ; Defining 'extension' will load the corresponding shared extension from 506 | ; extension_dir. Defining 'disable_functions' or 'disable_classes' will not 507 | ; overwrite previously defined php.ini values, but will append the new value 508 | ; instead. 509 | 510 | ; Note: path INI options can be relative and will be expanded with the prefix 511 | ; (pool, global or /usr) 512 | 513 | ; Default Value: nothing is defined by default except the values in php.ini and 514 | ; specified at startup with the -d argument 515 | ;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com 516 | ;php_flag[display_errors] = off 517 | ;php_admin_value[error_log] = /var/log/fpm-php.www.log 518 | ;php_admin_flag[log_errors] = on 519 | ;php_admin_value[memory_limit] = 32M 520 | -------------------------------------------------------------------------------- /config/etc/php/php.ini: -------------------------------------------------------------------------------- 1 | [PHP] 2 | 3 | engine = On 4 | short_open_tag = Off 5 | asp_tags = Off 6 | precision = 14 7 | output_buffering = 4096 8 | date.timezone = "UTC" 9 | zlib.output_compression = Off 10 | implicit_flush = Off 11 | unserialize_callback_func = 12 | serialize_precision = 17 13 | disable_functions = 14 | disable_classes = 15 | zend.enable_gc = On 16 | expose_php = On 17 | max_execution_time = 30 18 | max_input_time = 60 19 | memory_limit = 128M 20 | display_startup_errors = On 21 | log_errors_max_len = 1024 22 | ignore_repeated_errors = Off 23 | ignore_repeated_source = Off 24 | report_memleaks = On 25 | track_errors = Off 26 | html_errors = Off 27 | variables_order = "GPCS" 28 | request_order = "GP" 29 | register_argc_argv = Off 30 | auto_globals_jit = On 31 | post_max_size = 8M 32 | auto_prepend_file = 33 | auto_append_file = 34 | default_mimetype = "text/html" 35 | include_path = ".:/usr/share/pear" 36 | doc_root = 37 | user_dir = 38 | extension_dir = "/usr/lib/php/modules/" 39 | enable_dl = Off 40 | file_uploads = On 41 | upload_max_filesize = 2M 42 | max_file_uploads = 20 43 | allow_url_fopen = On 44 | allow_url_include = Off 45 | default_socket_timeout = 60 46 | ;extension=pthreads.so 47 | ;required for composer 48 | ;extension=phar.so 49 | ;extension=openssl.so 50 | ;extension=zip.so 51 | ;cli_server.color = On 52 | 53 | [bcmath] 54 | ; Number of decimal digits for all bcmath functions. 55 | ; http://php.net/bcmath.scale 56 | bcmath.scale = 0 57 | 58 | [Session] 59 | ; Handler used to store/retrieve data. 60 | ; http://php.net/session.save-handler 61 | session.save_handler = redis 62 | session.save_path = "tcp://localhost:6379?weight=1" 63 | session.serialize_handler = php_binary 64 | ;session.save_handler = file 65 | ;session.save_path = "/run" 66 | ;session.serialize_handler = php 67 | session.use_strict_mode = 0 68 | session.use_cookies = 1 69 | session.use_only_cookies = 1 70 | session.name = PHPSESSID 71 | session.auto_start = 0 72 | session.cookie_lifetime = 0 73 | session.cookie_path = / 74 | session.cookie_domain = 75 | session.cookie_httponly = 76 | session.gc_probability = 1 77 | session.gc_divisor = 1000 78 | session.gc_maxlifetime = 1440 79 | session.bug_compat_42 = Off 80 | session.bug_compat_warn = Off 81 | session.referer_check = 82 | session.cache_limiter = nocache 83 | session.cache_expire = 180 84 | session.use_trans_sid = 0 85 | session.hash_function = 0 86 | session.hash_bits_per_character = 5 87 | url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry" 88 | 89 | 90 | -------------------------------------------------------------------------------- /config/etc/profile.d/proxy.sh.inactive: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | export http_proxy=http://user:pass@server:port/ 4 | export https_proxy=$http_proxy 5 | export ftp_proxy=$http_proxy 6 | export rsync_proxy=$http_proxy 7 | export no_proxy="localhost,127.0.0.1,localaddress,runeaudio.local" 8 | -------------------------------------------------------------------------------- /config/etc/rc.local: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | # 3 | # rc.local 4 | # 5 | # This script is executed at the end of each multiuser runlevel. 6 | # Make sure that the script will "exit 0" on success or any other 7 | # value on error. 8 | # 9 | # In order to enable or disable this script just change the execution 10 | # bits. 11 | # 12 | # By default this script does nothing. 13 | 14 | exit 0 15 | 16 | -------------------------------------------------------------------------------- /config/etc/redis.conf: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # RuneAudio Redis configuration 3 | ############################################################################### 4 | 5 | ################################ GENERAL ##################################### 6 | daemonize no 7 | pidfile /run/redis/redis.pid 8 | port 6379 9 | #port 0 10 | tcp-backlog 511 11 | bind 127.0.0.1 12 | unixsocket /tmp/redis.sock 13 | unixsocketperm 777 14 | timeout 0 15 | tcp-keepalive 0 16 | loglevel warning 17 | logfile "/var/log/runeaudio/redis.log" 18 | #logfile "" 19 | databases 1 20 | # Save the DB on disk: 21 | save 900 1 22 | save 300 10 23 | stop-writes-on-bgsave-error yes 24 | rdbcompression no 25 | rdbchecksum no 26 | dbfilename rune.rdb 27 | dir /var/lib/redis/ 28 | 29 | ################################# REPLICATION ################################# 30 | slave-serve-stale-data yes 31 | slave-read-only yes 32 | repl-disable-tcp-nodelay no 33 | slave-priority 100 34 | 35 | ################################### LIMITS #################################### 36 | maxclients 100 37 | maxmemory 16M 38 | 39 | ############################## APPEND ONLY MODE ############################### 40 | 41 | appendonly no 42 | appendfilename "appendonly.aof" 43 | appendfsync no 44 | no-appendfsync-on-rewrite no 45 | auto-aof-rewrite-percentage 100 46 | auto-aof-rewrite-min-size 64mb 47 | 48 | ################################ LUA SCRIPTING ############################### 49 | lua-time-limit 5000 50 | 51 | ################################## SLOW LOG ################################### 52 | slowlog-log-slower-than 10000 53 | slowlog-max-len 128 54 | 55 | ################################ LATENCY MONITOR ############################## 56 | latency-monitor-threshold 0 57 | 58 | ############################# Event notification ############################## 59 | notify-keyspace-events "" 60 | 61 | ############################### ADVANCED CONFIG ############################### 62 | hash-max-ziplist-entries 512 63 | hash-max-ziplist-value 64 64 | list-max-ziplist-entries 512 65 | list-max-ziplist-value 64 66 | set-max-intset-entries 512 67 | zset-max-ziplist-entries 128 68 | zset-max-ziplist-value 64 69 | hll-sparse-max-bytes 3000 70 | activerehashing no 71 | client-output-buffer-limit normal 0 0 0 72 | client-output-buffer-limit slave 256mb 64mb 60 73 | client-output-buffer-limit pubsub 32mb 8mb 60 74 | hz 5 75 | aof-rewrite-incremental-fsync yes 76 | 77 | -------------------------------------------------------------------------------- /config/etc/resolvconf.conf: -------------------------------------------------------------------------------- 1 | # Configuration for resolvconf(8) 2 | # See resolvconf.conf(5) for details 3 | 4 | resolv_conf=/etc/resolv.conf 5 | # If you run a local name server, you should uncomment the below line and 6 | # configure your subscribers configuration files below. 7 | #name_servers=127.0.0.1 8 | 9 | resolv_conf_options=('timeout:0.3 attempts:1') 10 | -------------------------------------------------------------------------------- /config/etc/samba/smb-dev.conf: -------------------------------------------------------------------------------- 1 | #======================= Global Settings ======================= 2 | 3 | [global] 4 | 5 | workgroup = RUNENET 6 | server string = RuneAudio Player 7 | dns proxy = no 8 | log level = 0 9 | syslog = 0 10 | security = share 11 | guest account = root 12 | map to guest = bad user 13 | load printers = no 14 | domain master = no 15 | local master = no 16 | preferred master = no 17 | 18 | 19 | #======================= Share Definitions ======================= 20 | 21 | directory mask = 0775 22 | create mask = 0775 23 | 24 | [music_store] 25 | comment = Music Datastore root (/mnt/MPD) 26 | path = /mnt/MPD/ 27 | read only = no 28 | public = yes 29 | follow symlinks = yes 30 | wide links = yes 31 | 32 | [mpd] 33 | comment = MPD directory (/var/lib/mpd/) 34 | path = /var/lib/mpd/ 35 | read only = no 36 | public = yes 37 | follow symlinks = yes 38 | wide links = yes 39 | 40 | [www] 41 | comment = RuneAudio webroot (/var/www/) 42 | path = /var/www/ 43 | read only = no 44 | public = yes 45 | follow symlinks = yes 46 | wide links = yes 47 | 48 | [etc] 49 | comment = RuneAudio sys config dir (/etc) 50 | path = /etc/ 51 | read only = no 52 | public = yes 53 | follow symlinks = yes 54 | wide links = yes 55 | -------------------------------------------------------------------------------- /config/etc/samba/smb-prod.conf: -------------------------------------------------------------------------------- 1 | #======================= Global Settings ======================= 2 | 3 | [global] 4 | 5 | workgroup = RUNENET 6 | server string = RuneAudio Player 7 | dns proxy = no 8 | log level = 0 9 | syslog = 0 10 | security = share 11 | guest account = root 12 | map to guest = bad user 13 | #map untrusted to domain = yes 14 | load printers = no 15 | domain master = no 16 | local master = no 17 | preferred master = no 18 | 19 | 20 | #======================= Share Definitions ======================= 21 | 22 | directory mask = 0775 23 | create mask = 0775 24 | 25 | [MPD] 26 | comment = MPD root (/mnt/MPD) 27 | path = /mnt/MPD/ 28 | read only = no 29 | public = yes 30 | follow symlinks = yes 31 | wide links = yes 32 | -------------------------------------------------------------------------------- /config/etc/samba/smb.conf: -------------------------------------------------------------------------------- 1 | #======================= Global Settings ======================= 2 | 3 | [global] 4 | 5 | workgroup = RUNENET 6 | server string = RuneAudio Player 7 | dns proxy = no 8 | log level = 0 9 | syslog = 0 10 | security = share 11 | guest account = root 12 | map to guest = bad user 13 | load printers = no 14 | domain master = no 15 | local master = no 16 | preferred master = no 17 | 18 | 19 | #======================= Share Definitions ======================= 20 | 21 | directory mask = 0775 22 | create mask = 0775 23 | 24 | [mounts] 25 | comment = mount root (/mnt/) 26 | path = /mnt/ 27 | read only = no 28 | public = yes 29 | follow symlinks = yes 30 | wide links = yes 31 | 32 | [mpd] 33 | comment = MPD directory (/var/lib/mpd/) 34 | path = /var/lib/mpd/ 35 | read only = no 36 | public = yes 37 | follow symlinks = yes 38 | wide links = yes 39 | 40 | [www] 41 | comment = RuneAudio webroot (/var/www/) 42 | path = /var/www/ 43 | read only = no 44 | public = yes 45 | follow symlinks = yes 46 | wide links = yes 47 | 48 | [etc] 49 | comment = RuneAudio sys config dir (/etc) 50 | path = /etc/ 51 | read only = no 52 | public = yes 53 | follow symlinks = yes 54 | wide links = yes 55 | -------------------------------------------------------------------------------- /config/etc/security/limits.conf: -------------------------------------------------------------------------------- 1 | # /etc/security/limits.conf 2 | # 3 | #Each line describes a limit for a user in the form: 4 | # 5 | # 6 | # 7 | #Where: 8 | # can be: 9 | # - a user name 10 | # - a group name, with @group syntax 11 | # - the wildcard *, for default entry 12 | # - the wildcard %, can be also used with %group syntax, 13 | # for maxlogin limit 14 | # 15 | # can have the two values: 16 | # - "soft" for enforcing the soft limits 17 | # - "hard" for enforcing hard limits 18 | # 19 | # can be one of the following: 20 | # - core - limits the core file size (KB) 21 | # - data - max data size (KB) 22 | # - fsize - maximum filesize (KB) 23 | # - memlock - max locked-in-memory address space (KB) 24 | # - nofile - max number of open files 25 | # - rss - max resident set size (KB) 26 | # - stack - max stack size (KB) 27 | # - cpu - max CPU time (MIN) 28 | # - nproc - max number of processes 29 | # - as - address space limit (KB) 30 | # - maxlogins - max number of logins for this user 31 | # - maxsyslogins - max number of logins on the system 32 | # - priority - the priority to run user process with 33 | # - locks - max number of file locks the user can hold 34 | # - sigpending - max number of pending signals 35 | # - msgqueue - max memory used by POSIX message queues (bytes) 36 | # - nice - max nice priority allowed to raise to values: [-20, 19] 37 | # - rtprio - max realtime priority 38 | # 39 | # 40 | # 41 | 42 | #* soft core 0 43 | #* hard rss 10000 44 | #@student hard nproc 20 45 | #@faculty soft nproc 20 46 | #@faculty hard nproc 50 47 | #ftp hard nproc 0 48 | #@student - maxlogins 4 49 | 50 | 51 | * - rtprio 0 52 | * - nice 0 53 | #@audio - rtprio 65 54 | @audio - rtprio 99 55 | @audio - nice -10 56 | #@audio - memlock 40000 57 | @audio - memlock unlimited -------------------------------------------------------------------------------- /config/etc/sysctl.d/20-quiet-printk.conf: -------------------------------------------------------------------------------- 1 | kernel.printk = 3 3 3 3 2 | -------------------------------------------------------------------------------- /config/etc/sysctl.d/raspberrypi.conf: -------------------------------------------------------------------------------- 1 | vm.min_free_kbytes=32768 2 | vm.vfs_cache_pressure = 300 3 | net.core.rmem_max=12582912 4 | net.core.wmem_max=12582912 5 | net.ipv4.tcp_rmem= 10240 87380 12582912 6 | net.ipv4.tcp_wmem= 10240 87380 12582912 7 | net.ipv4.tcp_timestamps = 0 8 | net.ipv4.tcp_window_scaling = 1 9 | net.ipv4.tcp_sack = 0 10 | net.ipv4.tcp_no_metrics_save = 1 11 | net.core.netdev_max_backlog = 5000 12 | vm.overcommit_memory = 2 13 | vm.overcommit_ratio = 100 14 | -------------------------------------------------------------------------------- /config/etc/systemd/journald.conf: -------------------------------------------------------------------------------- 1 | # This file is part of systemd. 2 | # 3 | # systemd is free software; you can redistribute it and/or modify it 4 | # under the terms of the GNU Lesser General Public License as published by 5 | # the Free Software Foundation; either version 2.1 of the License, or 6 | # (at your option) any later version. 7 | # 8 | # See journald.conf(5) for details 9 | 10 | [Journal] 11 | Storage=none 12 | #Compress=yes 13 | #Seal=yes 14 | #SplitMode=uid 15 | #SyncIntervalSec=5m 16 | #RateLimitInterval=30s 17 | #RateLimitBurst=1000 18 | #SystemMaxUse= 19 | #SystemKeepFree= 20 | #SystemMaxFileSize= 21 | #RuntimeMaxUse= 22 | #RuntimeKeepFree= 23 | #RuntimeMaxFileSize= 24 | #MaxRetentionSec= 25 | #MaxFileSec=1month 26 | #ForwardToSyslog=yes 27 | #ForwardToKMsg=no 28 | #ForwardToConsole=no 29 | #ForwardToWall=yes 30 | #TTYPath=/dev/console 31 | #MaxLevelStore=debug 32 | #MaxLevelSyslog=debug 33 | #MaxLevelKMsg=notice 34 | #MaxLevelConsole=info 35 | #MaxLevelWall=emerg 36 | -------------------------------------------------------------------------------- /config/etc/tmpfiles.d/samba.conf: -------------------------------------------------------------------------------- 1 | D /tmp/samba 0755 root root 2 | D /tmp/samba/private 0755 root root 3 | 4 | -------------------------------------------------------------------------------- /config/etc/udev/rules.d/60-schedulers.rules: -------------------------------------------------------------------------------- 1 | # set deadline scheduler for non-rotating disks 2 | ACTION=="add|change", KERNEL=="mmcblk[0-9]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="noop" 3 | -------------------------------------------------------------------------------- /config/etc/udev/rules.d/rune_usb-audio.rules: -------------------------------------------------------------------------------- 1 | #KERNEL=="card*", DRIVER=="snd-usb-audio", RUN+="/var/www/command/refresh_ao" 2 | KERNEL=="card*", SUBSYSTEM=="sound", RUN+="/var/www/command/refresh_ao" 3 | -------------------------------------------------------------------------------- /config/etc/udev/rules.d/rune_usb-stor.rules: -------------------------------------------------------------------------------- 1 | #KERNEL=="sd*", SUBSYSTEM="usb", RUN+="/var/www/command/ui_notify.php 'Usb Storage' event simplemessage" 2 | KERNEL=="sd?1", ACTION=="add", RUN+="/var/www/command/ui_notify.php 'Usb Storage' connected simplemessage" 3 | KERNEL=="sd?1", ACTION=="remove", RUN+="/var/www/command/ui_notify.php 'Usb Storage' disconnected simplemessage" 4 | -------------------------------------------------------------------------------- /config/etc/udevil/udevil.conf: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # 3 | # udevil configuration file /etc/udevil/udevil.conf 4 | # 5 | # This file controls what devices, networks, and files users may mount and 6 | # unmount via udevil (set suid). 7 | # 8 | # IMPORTANT: IT IS POSSIBLE TO CREATE SERIOUS SECURITY PROBLEMS IF THIS FILE 9 | # IS MISCONFIGURED - EDIT WITH CARE 10 | # 11 | # Note: For greater control for specific users, including root, copy this 12 | # file to /etc/udevil/udevil-user-USERNAME.conf replacing USERNAME with the 13 | # desired username (eg /etc/udevil/udevil-user-jim.conf). 14 | # 15 | # Format: 16 | # OPTION = VALUE[, VALUE, ...] 17 | # 18 | # DO NOT USE QUOTES except literally 19 | # Lines beginning with # are ignored 20 | # 21 | ############################################################################## 22 | 23 | 24 | # To log all uses of udevil, set log_file to a file path: 25 | # log_file = /var/log/udevil.log 26 | 27 | # Approximate number of days to retain log entries (0=forever, max=60): 28 | log_keep_days = 1 29 | 30 | 31 | # allowed_types determines what fstypes can be passed by a user to the u/mount 32 | # program, what device filesystems may be un/mounted implicitly, and what 33 | # network filesystems may be un/mounted. 34 | # It may also include the 'file' keyword, indicating that the user is allowed 35 | # to mount files (eg an ISO file). The $KNOWN_FILESYSTEMS variable may 36 | # be included to include common local filesystems as well as those listed in 37 | # /etc/filesystems and /proc/filesystems. 38 | # allowed_types_USERNAME, if present, is used to override allowed_types for 39 | # the specific user 'USERNAME'. For example, to allow user 'jim' to mount 40 | # only vfat filesystems, add: 41 | # allowed_types_jim = vfat 42 | # Setting allowed_types = * does NOT allow all types, as this is a security 43 | # risk, but does allow all recognized types. 44 | # allowed_types = $KNOWN_FILESYSTEMS, file, cifs, smbfs, nfs, curlftpfs, ftpfs, sshfs, davfs, tmpfs, ramfs 45 | allowed_types = $KNOWN_FILESYSTEMS, file, hfsplus 46 | 47 | 48 | # allowed_users is a list of users permitted to mount and unmount with udevil. 49 | # Wildcards (* or ?) may be used in the usernames. To allow all users, 50 | # specify "allowed_users=*". UIDs may be included using the form UID=1000. 51 | # For example: allowed_users = carl, UID=1000, pre* 52 | # Also note that permission to execute udevil may be limited to users belonging 53 | # to the group that owns /usr/bin/udevil, such as 'plugdev' or 'storage', 54 | # depending on installation. 55 | # allowed_users_FSTYPE, if present, is used to override allowed_users when 56 | # mounting or unmounting a specific fstype (eg nfs, ext3, file). 57 | # Note that when mounting a file, fstype will always be 'file' regardless of 58 | # the internal fstype of the file. 59 | # For example, to allow only user 'bob' to mount nfs shares, add: 60 | # allowed_users_nfs = bob 61 | # The root user is NOT automatically allowed to use udevil in some cases unless 62 | # listed here (except for unmounting anything or mounting fstab devices). 63 | allowed_users = * 64 | 65 | 66 | # allowed_groups is a list of groups permitted to mount and unmount with 67 | # udevil. The user MUST belong to at least one of these groups. Wildcards 68 | # or GIDs may NOT be used in group names, but a single * may be used to allow 69 | # all groups. 70 | # Also note that permission to execute udevil may be limited to users belonging 71 | # to the group that owns /usr/bin/udevil, such as 'plugdev' or 'storage', 72 | # depending on installation. 73 | # allowed_groups_FSTYPE, if present, is used to override allowed_groups when 74 | # mounting or unmounting a specific fstype (eg nfs, ext3, file). For example, 75 | # to allow only members of the 'network' group to mount smb and nfs shares, 76 | # use both of these lines: 77 | # allowed_groups_smbfs = network 78 | # allowed_groups_nfs = network 79 | # The root user is NOT automatically allowed to use udevil in some cases unless 80 | # listed here (except for unmounting anything or mounting fstab devices). 81 | allowed_groups = * 82 | 83 | 84 | # allowed_media_dirs specifies the media directories in which user mount points 85 | # may be located. The first directory which exists and does not contain a 86 | # wildcard will be used as the default media directory (normally /media or 87 | # /run/media/$USER). 88 | # The $USER variable, if included, will be replaced with the username of the 89 | # user running udevil. Wildcards may also be used in any directory EXCEPT the 90 | # default. Wildcards will not match a / 91 | # allowed_media_dirs_FSTYPE, if present, is used to override allowed_media_dirs 92 | # when mounting or unmounting a specific fstype (eg ext2, nfs). For example, 93 | # to cause /media/network to be used as the default media directory for 94 | # nfs and ftpfs mounts, use these two lines: 95 | # allowed_media_dirs_nfs = /media/network, /media, /run/media/$USER 96 | # allowed_media_dirs_ftpfs = /media/network, /media, /run/media/$USER 97 | # NOTE: If you want only the user who mounted a device to have access to it 98 | # and be allowed to unmount it, specify /run/media/$USER as the first 99 | # allowed media directory. 100 | # IMPORTANT: If an allowed file is mounted to a media directory, the user may 101 | # be permitted to unmount its associated loop device even though internal. 102 | # INCLUDING /MNT HERE IS NOT RECOMMENDED. ALL ALLOWED MEDIA DIRECTORIES 103 | # SHOULD BE OWNED AND WRITABLE ONLY BY ROOT. 104 | allowed_media_dirs = /mnt/MPD/USB 105 | 106 | 107 | # allowed_devices is the first criteria for what block devices users may mount 108 | # or unmount. If a device is not listed in allowed_devices, it cannot be 109 | # un/mounted (unless in fstab). However, even if a device is listed, other 110 | # factors may prevent its use. For example, access to system internal devices 111 | # will be denied to normal users even if they are included in allowed_devices. 112 | # allowed_devices_FSTYPE, if present, is used to override allowed_devices when 113 | # mounting or unmounting a specific fstype (eg ext3, ntfs). For example, to 114 | # prevent all block devices containing an ext4 filesystem from being 115 | # un/mounted use: 116 | # allowed_devices_ext4 = 117 | # Note: Wildcards may be used, but a wildcard will never match a /, except 118 | # for "allowed_devices=*" which allows any device. The recommended setting is 119 | # allowed_devices = /dev/* 120 | # WARNING: ALLOWING USERS TO MOUNT DEVICES OUTSIDE OF /dev CAN CAUSE SERIOUS 121 | # SECURITY PROBLEMS. DO NOT ALLOW DEVICES IN /dev/shm 122 | allowed_devices = /dev/* 123 | 124 | 125 | # allowed_internal_devices causes udevil to treat any listed block devices as 126 | # removable, thus allowing normal users to un/mount them (providing they are 127 | # also listed in allowed_devices). 128 | # allowed_internal_devices_FSTYPE, if present, is used to override 129 | # allowed_internal_devices when mounting or unmounting a specific fstype 130 | # (eg ext3, ntfs). For example, to allow block devices containing a vfat 131 | # filesystem to be un/mounted even if they are system internal devices, use: 132 | # allowed_internal_devices_vfat = /dev/sdb* 133 | # Some removable esata drives look like internal drives to udevil. To avoid 134 | # this problem, they can be treated as removable with this setting. 135 | # WARNING: SETTING A SYSTEM DEVICE HERE CAN CAUSE SERIOUS SECURITY PROBLEMS. 136 | # allowed_internal_devices = 137 | 138 | 139 | # allowed_internal_uuids and allowed_internal_uuids_FSTYPE work similarly to 140 | # allowed_internal_devices, except that UUIDs are specified instead of devices. 141 | # For example, to allow un/mounting of an internal filesystem based on UUID: 142 | # allowed_internal_uuids = cc0c4489-8def-1e5b-a304-ab87c3cb626c0 143 | # WARNING: SETTING A SYSTEM DEVICE HERE CAN CAUSE SERIOUS SECURITY PROBLEMS. 144 | # allowed_internal_uuids = 145 | 146 | 147 | # forbidden_devices is used to prevent block devices from being un/mounted 148 | # even if other settings would allow them (except devices in fstab). 149 | # forbidden_devices_FSTYPE, if present, is used to override 150 | # forbidden_devices when mounting or unmounting a specific fstype 151 | # (eg ext3, ntfs). For example, to prevent device /dev/sdd1 from being 152 | # mounted when it contains an ntfs filesystem, use: 153 | # forbidden_devices_ntfs = /dev/sdd1 154 | # NOTE: device node paths are canonicalized before being tested, so forbidding 155 | # a link to a device will have no effect. 156 | forbidden_devices = 157 | 158 | # allowed_networks determines what hosts may be un/mounted by udevil users when 159 | # using nfs, cifs, smbfs, curlftpfs, ftpfs, or sshfs. Hosts may be specified 160 | # using a hostname (eg myserver.com) or IP address (192.168.1.100). 161 | # Wildcards may be used in hostnames and IP addresses, but CIDR notation 162 | # (192.168.1.0/16) is NOT supported. IP v6 is supported. For example: 163 | # allowed_networks = 127.0.0.1, 192.168.1.*, 10.0.0.*, localmachine, *.okay.com 164 | # Or, to prevent un/mounting of any network shares, set: 165 | # allowed_networks = 166 | # allowed_networks_FSTYPE, if present, is used to override allowed_networks 167 | # when mounting or unmounting a specific network fstype (eg nfs, cifs, sshfs, 168 | # curlftpfs). For example, to limit nfs and samba shares to only local 169 | # networks, use these two lines: 170 | # allowed_networks_nfs = 192.168.1.*, 10.0.0.* 171 | # allowed_networks_cifs = 192.168.1.*, 10.0.0.* 172 | #allowed_networks = * 173 | 174 | 175 | # forbidden_networks and forbidden_networks_FSTYPE are used to specify networks 176 | # that are never allowed, even if other settings allow them (except fstab). 177 | # NO REVERSE LOOKUP IS PERFORMED, so including bad.com will only have an effect 178 | # if the user uses that hostname. IP lookup is always performed, so forbidding 179 | # an IP address will also forbid all corresponding hostnames. 180 | forbidden_networks = * 181 | 182 | 183 | # allowed_files is used to determine what files in what directories may be 184 | # un/mounted. A user must also have read permission on a file to mount it. 185 | # Note: Wildcards may be used, but a wildcard will never match a /, except 186 | # for "allowed_files=*" which allows any file. For example, to allow only 187 | # files in the /share directory to be mounted, use: 188 | # allowed_files = /share/* 189 | # NOTE: Specifying allowed_files_FSTYPE will NOT work because the fstype of 190 | # files is always 'file'. 191 | allowed_files = * 192 | 193 | 194 | # forbidden_files is used to specify files that are never allowed, even if 195 | # other settings allow them (except fstab). Specify a full path. 196 | # Note: Wildcards may be used, but a wildcard will never match a /, except 197 | # for "forbidden_files = *". 198 | # NOTE: file paths are canonicalized before being tested, so forbidding 199 | # a link to a file will have no effect. 200 | forbidden_files = 201 | 202 | 203 | # default_options specifies what options are always included when performing 204 | # a mount, in addition to any options the user may specify. 205 | # Note: When a device is present in /etc/fstab, and the user does not specify 206 | # a mount point, the device is mounted with normal user permissions using 207 | # the fstab entry, without these options. 208 | # default_options_FSTYPE, if present, is used to override default_options 209 | # when mounting a specific fstype (eg ext2, nfs). 210 | # The variables $USER, $UID, and $GID are changed to the user's username, UID, 211 | # and GID. 212 | # FOR GOOD SECURITY, default_options SHOULD ALWAYS INCLUDE: nosuid,noexec,nodev 213 | # WARNING: OPTIONS PRESENT OR MISSING CAN CAUSE SERIOUS SECURITY PROBLEMS. 214 | default_options = nosuid, noexec, nodev, noatime 215 | default_options_file = nosuid, noexec, nodev, noatime, uid=$UID, gid=$GID, ro 216 | # mount iso9660 with 'ro' to prevent mount read-only warning 217 | default_options_iso9660 = nosuid, noexec, nodev, noatime, uid=$UID, gid=$GID, ro, utf8 218 | default_options_udf = nosuid, noexec, nodev, noatime, uid=$UID, gid=$GID 219 | default_options_vfat = ro, iocharset=utf8, noatime, uid=$UID, gid=$GID 220 | default_options_exfat = ro, nonempty, uid=$UID, gid=$GID 221 | default_options_hfsplus = ro, uid=$UID, gid=$GID 222 | default_options_msdos = nosuid, noexec, nodev, noatime, fmask=0133, dmask=0022, uid=$UID, gid=$GID 223 | default_options_umsdos = nosuid, noexec, nodev, noatime, fmask=0133, dmask=0022, uid=$UID, gid=$GID 224 | default_options_ntfs = nosuid, noexec, nodev, noatime, fmask=0133, uid=$UID, gid=$GID, utf8 225 | default_options_cifs = nosuid, noexec, nodev, uid=$UID, gid=$GID 226 | default_options_smbfs = nosuid, noexec, nodev, uid=$UID, gid=$GID 227 | default_options_sshfs = nosuid, noexec, nodev, noatime, uid=$UID, gid=$GID, nonempty, allow_other 228 | default_options_curlftpfs = nosuid, noexec, nodev, noatime, uid=$UID, gid=$GID, nonempty, allow_other 229 | default_options_ftpfs = nosuid, noexec, nodev, noatime, uid=$UID, gid=$GID 230 | default_options_davfs = nosuid, noexec, nodev, uid=$UID, gid=$GID 231 | default_options_tmpfs = nosuid, noexec, nodev, noatime, uid=$UID, gid=$GID 232 | default_options_ramfs = nosuid, noexec, nodev, noatime, uid=$UID, gid=$GID 233 | 234 | 235 | # allowed_options determines all options that a user may specify when mounting. 236 | # All the options used in default_options above must be included here too, or 237 | # they will be rejected. If the user attempts to use an option not included 238 | # here, an error will result. Wildcards may be used. 239 | # allowed_options_FSTYPE, if present, is used to override allowed_options 240 | # when mounting a specific fstype (eg ext2, nfs). 241 | # The variables $USER, $UID, and $GID are changed to the user's username, UID, 242 | # and GID. 243 | # If you want to forbid remounts, remove 'remount' from here. 244 | # WARNING: OPTIONS HERE CAN CAUSE SERIOUS SECURITY PROBLEMS - CHOOSE CAREFULLY 245 | allowed_options = nosuid, noexec, nodev, noatime, fmask=0133, dmask=0022, uid=$UID, gid=$GID, ro, rw, sync, flush, iocharset=*, utf8, remount, nonempty 246 | allowed_options_nfs = nosuid, noexec, nodev, noatime, ro, rw, sync, remount, port=*, rsize=*, wsize=*, hard, proto=*, timeo=*, retrans=* 247 | allowed_options_cifs = nosuid, noexec, nodev, ro, rw, remount, port=*, user=*, username=*, pass=*, password=*, guest, domain=*, uid=$UID, gid=$GID, credentials=* 248 | allowed_options_smbfs = nosuid, noexec, nodev, ro, rw, remount, port=*, user=*, username=*, pass=*, password=*, guest, domain=*, uid=$UID, gid=$GID, credentials=* 249 | allowed_options_sshfs = nosuid, noexec, nodev, noatime, ro, rw, uid=$UID, gid=$GID, nonempty, allow_other, idmap=user, BatchMode=yes, port=* 250 | allowed_options_curlftpfs = nosuid, noexec, nodev, noatime, ro, rw, uid=$UID, gid=$GID, nonempty, allow_other, user=* 251 | allowed_options_ftpfs = nosuid, noexec, nodev, noatime, ro, rw, port=*, user=*, pass=*, ip=*, root=*, uid=$UID, gid=$GID 252 | 253 | 254 | # mount_point_mode, if present and set to a non-empty value, will cause udevil 255 | # to set the mode (permissions) on the moint point after mounting If not 256 | # specified or if left empty, the mode is not changed. Mode must be octal 257 | # starting with a zero (0755). 258 | # mount_point_mode_FSTYPE, if present, is used to override mount_point_mode 259 | # when mounting a specific fstype (eg ext2, nfs). 260 | # NOT SETTING A MODE CAN HAVE SECURITY IMPLICATIONS FOR SOME FSTYPES 261 | mount_point_mode = 0777 262 | # don't set a mode for some types: 263 | mount_point_mode_sshfs = 264 | mount_point_mode_curlftpfs = 265 | mount_point_mode_ftpfs = 266 | 267 | 268 | # Use the settings below to change the default locations of programs used by 269 | # udevil, or (advanced topic) to redirect commands to your scripts. 270 | # When substituting scripts, make sure they are root-owned and accept the 271 | # options used by udevil (for example, the mount_program must accept --fake, 272 | # -o, -v, and other options valid to mount.) 273 | # Be sure to specify the full path and include NO OPTIONS or other arguments. 274 | # These programs may also be specified as configure options when building 275 | # udevil. 276 | # THESE PROGRAMS ARE RUN AS ROOT 277 | # mount_program = /bin/mount 278 | # umount_program = /bin/umount 279 | # losetup_program = /sbin/losetup 280 | # setfacl_program = /usr/bin/setfacl 281 | 282 | 283 | # validate_exec specifies a program or script which provides additional 284 | # validation of a mount or unmount command, beyond the checks performed by 285 | # udevil. The program is run as a normal user (if root runs udevil, 286 | # validate_exec will NOT be run). The program is NOT run if the user is 287 | # mounting a device without root priviledges (a device in fstab). 288 | # The program is passed the username, a printable description of what is 289 | # happening, and the entire udevil command line as the first three arguments. 290 | # The program must return an exit status of 0 to allow the mount or unmount 291 | # to proceed. If it returns non-zero, the user will be denied permission. 292 | # For example, validate_exec might specify a script which notifies you 293 | # of the command being run, or performs additional steps to authenticate the 294 | # user. 295 | # Specify a full path to the program, with NO options or arguments. 296 | # validate_exec = 297 | 298 | 299 | # validate_rootexec works similarly to validate_exec, except that the program 300 | # is run as root. validate_rootexec will also be run if the root user runs 301 | # udevil. If both validate_exec and validate_rootexec are specified, 302 | # validate_rootexec will run first, followed by validate_exec. 303 | # The program must return an exit status of 0 to allow the mount or unmount 304 | # to proceed. If it returns non-zero, the user will be denied permission. 305 | # Unless you are familiar with writing root scripts, it is recommended that 306 | # rootexec settings NOT be used, as it is easy to inadvertently open exploits. 307 | # THIS PROGRAM IS ALWAYS RUN AS ROOT, even if the user running udevil is not. 308 | # validate_rootexec = 309 | 310 | 311 | # success_exec is run after a successful mount, remount, or unmount. The 312 | # program is run as a normal user (if root runs udevil, success_exec 313 | # will NOT be run). 314 | # The program is passed the username, a printable description of what action 315 | # was taken, and the entire udevil command line as the first three arguments. 316 | # The program's exit status is ignored. 317 | # For example, success_exec might run a script which informs you of what action 318 | # was taken, and might perform further actions. 319 | # Specify a full path to the program, with NO options or arguments. 320 | success_exec = 321 | 322 | 323 | # success_rootexec works similarly to success_exec, except that the program is 324 | # run as root. success_rootexec will also be run if the root user runs udevil. 325 | # If both success_exec and success_rootexec are specified, success_rootexec 326 | # will run first, followed by success_exec. 327 | # Unless you are familiar with writing root scripts, it is recommended that 328 | # rootexec settings NOT be used, as it is easy to inadvertently open exploits. 329 | # THIS PROGRAM IS ALWAYS RUN AS ROOT, even if the user running udevil is not. 330 | success_rootexec = /var/www/command/usbmount 331 | 332 | -------------------------------------------------------------------------------- /config/etc/wpa_supplicant/wpa_supplicant.conf: -------------------------------------------------------------------------------- 1 | ctrl_interface=/var/run/wpa_supplicant 2 | update_config=1 3 | -------------------------------------------------------------------------------- /config/usr/lib/systemd/system/mpdscribble.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=MPD Scribble 3 | After=sound.target 4 | Requires=mpd.service 5 | After=mpd.service 6 | 7 | [Service] 8 | ExecStart=/usr/local/bin/mpdscribble -D 9 | Restart=always 10 | 11 | [Install] 12 | WantedBy=multi-user.target 13 | -------------------------------------------------------------------------------- /config/usr/lib/systemd/system/nmbd.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Samba NetBIOS name server 3 | After=network.target 4 | 5 | [Service] 6 | Type=forking 7 | PIDFile=/var/run/nmbd.pid 8 | ExecStart=/usr/sbin/nmbd -D 9 | ExecReload=/bin/kill -HUP $MAINPID 10 | 11 | [Install] 12 | WantedBy=multi-user.target 13 | 14 | -------------------------------------------------------------------------------- /config/usr/lib/systemd/system/rc-local.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=/etc/rc.local 3 | Requires=dhcpcd@eth0.service 4 | After=dhcpcd@eth0.service 5 | 6 | [Service] 7 | Type=forking 8 | ExecStart=/etc/rc.local 9 | TimeoutSec=0 10 | 11 | [Install] 12 | WantedBy=multi-user.target 13 | -------------------------------------------------------------------------------- /config/usr/lib/systemd/system/redis.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Advanced key-value store 3 | After=network.target 4 | 5 | [Service] 6 | #Type=forking 7 | User=redis 8 | PIDFile=/run/redis/redis.pid 9 | ExecStartPre=/bin/mkdir -p /var/lib/redis 10 | ExecStart=/usr/bin/redis-server /etc/redis.conf 11 | ExecStop=/usr/bin/redis-cli shutdown 12 | Restart=always 13 | 14 | [Install] 15 | WantedBy=multi-user.target 16 | -------------------------------------------------------------------------------- /config/usr/lib/systemd/system/rune_PL_wrk.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=RuneAudio Playback Worker 3 | After=network.target 4 | 5 | [Service] 6 | ExecStart=/var/www/command/rune_PL_wrk 7 | TimeoutSec=0 8 | Restart=always 9 | 10 | [Install] 11 | WantedBy=multi-user.target 12 | -------------------------------------------------------------------------------- /config/usr/lib/systemd/system/rune_SY_wrk.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=RuneAudio System Worker 3 | After=network.target 4 | 5 | [Service] 6 | ExecStart=/var/www/command/rune_SY_wrk 7 | TimeoutSec=0 8 | Restart=always 9 | 10 | [Install] 11 | WantedBy=multi-user.target 12 | -------------------------------------------------------------------------------- /config/usr/lib/systemd/system/rune_shutdown.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=RuneAudio shutdown script 3 | ConditionFileIsExecutable=/var/www/command/rune_shutdown 4 | DefaultDependencies=no 5 | Before=shutdown.target reboot.target halt.target 6 | 7 | [Service] 8 | Type=oneshot 9 | ExecStop=/var/www/command/rune_shutdown 10 | 11 | [Install] 12 | WantedBy=multi-user.target -------------------------------------------------------------------------------- /config/usr/lib/systemd/system/shairport.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Shairport AirTunes receiver 3 | After=sound.target 4 | Requires=avahi-daemon.service 5 | After=avahi-daemon.service 6 | 7 | [Service] 8 | ExecStart=/usr/local/bin/shairport -w --on-start=/var/www/command/airplay.sh --on-stop=/var/www/command/airplay.sh 9 | Restart=always 10 | 11 | [Install] 12 | WantedBy=multi-user.target 13 | -------------------------------------------------------------------------------- /config/usr/lib/systemd/system/smbd.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Samba SMB/CIFS server 3 | After=network.target nmbd.service 4 | 5 | [Service] 6 | Type=forking 7 | PIDFile=/var/run/smbd.pid 8 | ExecStart=/usr/sbin/smbd -D 9 | ExecReload=/bin/kill -HUP $MAINPID 10 | 11 | [Install] 12 | WantedBy=multi-user.target 13 | 14 | -------------------------------------------------------------------------------- /config/usr/lib/systemd/system/udevil.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Usb Automount (udevil) 3 | After=sound.target 4 | #Requires=mpd.service 5 | #After=mpd.service 6 | 7 | [Service] 8 | User=mpd 9 | Group=mpd 10 | ExecStart=/usr/bin/devmon 11 | Restart=always 12 | Timeout=0 13 | 14 | [Install] 15 | WantedBy=multi-user.target 16 | -------------------------------------------------------------------------------- /config/usr/lib/systemd/system/wpa_supplicant@.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=WPA supplicant daemon (interface-specific version) 3 | Requires=sys-subsystem-net-devices-%i.device 4 | After=sys-subsystem-net-devices-%i.device 5 | 6 | # NetworkManager users will probably want the dbus version instead. 7 | 8 | [Service] 9 | Type=simple 10 | ExecStart=/usr/bin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant.conf -i%I 11 | 12 | [Install] 13 | Alias=multi-user.target.wants/wpa_supplicant@%i.service 14 | -------------------------------------------------------------------------------- /packages/ffmpeg-rune/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: Simone De Gregori 2 | # Based on original work of: DrZaius 3 | 4 | pkgname=ffmpeg-rune 5 | pkgver=2.8 6 | pkgrel=1 7 | pkgdesc="Universal multimedia toolkit" 8 | arch=('i686' 'x86_64' 'armv6h' 'armv7h') 9 | license=('GPL') 10 | url="http://ffmpeg.org/" 11 | license=('GPL') 12 | #depends=('alsa-lib' 'bzip2' 'freetype2' 'lame' 'libass' 'libfdk-aac-git' 'libtheora' 'libva' 'libvdpau' 'libvorbis' 'libvpx-git' 'opus' 'sdl' 'texi2html' 'x264-git' 'x265-hg' 'zlib') 13 | makedepends=('git' 'yasm' 'libvdpau') 14 | conflicts=('ffmpeg') 15 | provides=("ffmpeg=$pkgver") 16 | #source=("$pkgname"::'git://source.ffmpeg.org/ffmpeg.git') 17 | source=(http://ffmpeg.org/releases/ffmpeg-$pkgver.tar.bz2) 18 | md5sums=('SKIP') 19 | 20 | #pkgver() { 21 | # cd "$srcdir/$pkgname" 22 | # printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" 23 | #} 24 | 25 | build() { 26 | 27 | cd "$srcdir/ffmpeg-$pkgver" 28 | ./configure --prefix=/usr \ 29 | --enable-memalign-hack \ 30 | --enable-shared \ 31 | --enable-ffmpeg \ 32 | --disable-static \ 33 | --disable-debug \ 34 | --disable-avdevice \ 35 | --disable-avfilter \ 36 | --disable-swscale \ 37 | --disable-ffplay \ 38 | --disable-ffserver \ 39 | --disable-network \ 40 | --disable-muxers \ 41 | --disable-demuxers \ 42 | --enable-rdft \ 43 | --enable-demuxer=aac \ 44 | --enable-demuxer=ac3 \ 45 | --enable-demuxer=ape \ 46 | --enable-demuxer=asf \ 47 | --enable-demuxer=flac \ 48 | --enable-demuxer=mp3 \ 49 | --enable-demuxer=mpc \ 50 | --enable-demuxer=mov \ 51 | --enable-demuxer=mpc8 \ 52 | --enable-demuxer=ogg \ 53 | --enable-demuxer=tta \ 54 | --enable-demuxer=wav \ 55 | --enable-demuxer=wv \ 56 | --disable-bsfs \ 57 | --disable-filters \ 58 | --disable-parsers \ 59 | --enable-parser=aac \ 60 | --enable-parser=ac3 \ 61 | --enable-parser=mpegaudio \ 62 | --disable-protocols \ 63 | --enable-protocol=file \ 64 | --disable-indevs \ 65 | --disable-outdevs \ 66 | --disable-encoders \ 67 | --disable-decoders \ 68 | --enable-decoder=aac \ 69 | --enable-decoder=ac3 \ 70 | --enable-decoder=alac \ 71 | --enable-decoder=ape \ 72 | --enable-decoder=flac \ 73 | --enable-decoder=mp1 \ 74 | --enable-decoder=mp2 \ 75 | --enable-decoder=mp3 \ 76 | --enable-decoder=mpc7 \ 77 | --enable-decoder=mpc8 \ 78 | --enable-decoder=tta \ 79 | --enable-decoder=vorbis \ 80 | --enable-decoder=wavpack \ 81 | --enable-decoder=wmav1 \ 82 | --enable-decoder=wmav2 \ 83 | --enable-decoder=pcm_alaw \ 84 | --enable-decoder=pcm_dvd \ 85 | --enable-decoder=pcm_f32be \ 86 | --enable-decoder=pcm_f32le \ 87 | --enable-decoder=pcm_f64be \ 88 | --enable-decoder=pcm_f64le \ 89 | --enable-decoder=pcm_s16be \ 90 | --enable-decoder=pcm_s16le \ 91 | --enable-decoder=pcm_s16le_planar \ 92 | --enable-decoder=pcm_s24be \ 93 | --enable-decoder=pcm_s24le \ 94 | --enable-decoder=pcm_s32be \ 95 | --enable-decoder=pcm_s32le \ 96 | --enable-decoder=pcm_s8 \ 97 | --enable-decoder=pcm_u16be \ 98 | --enable-decoder=pcm_u16le \ 99 | --enable-decoder=pcm_u24be \ 100 | --enable-decoder=pcm_u24le 101 | 102 | make 103 | 104 | } 105 | 106 | package() { 107 | cd "$srcdir/ffmpeg-$pkgver" 108 | make DESTDIR="$pkgdir" install 109 | } 110 | -------------------------------------------------------------------------------- /packages/ffmpeg-rune/ffmpeg-rune-2.7-1-armv7h.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/ffmpeg-rune/ffmpeg-rune-2.7-1-armv7h.pkg.tar.xz -------------------------------------------------------------------------------- /packages/ffmpeg-rune/ffmpeg-rune-2.8-1-x86_64.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/ffmpeg-rune/ffmpeg-rune-2.8-1-x86_64.pkg.tar.xz -------------------------------------------------------------------------------- /packages/hfsprogs-rune/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: Simone De Gregori 2 | # Based on original work of: Rustam Tsurik 3 | # Previous Maintainers: 4 | # Prashant Vaibhav 5 | # Alessio 'mOLOk' Bolognino 6 | # Contributor: Rubin Simons 7 | 8 | pkgname=hfsprogs-rune 9 | pkgver=332.25 10 | pkgrel=10 11 | pkgdesc="HFS/HFS+ user space utils" 12 | arch=('i686' 'x86_64' 'armv6h' 'armv7h') 13 | depends=('libbsd' 'openssl') 14 | license=('custom:APSL') 15 | url="http://www.opensource.apple.com/" 16 | source=(http://ftp.de.debian.org/debian/pool/main/h/hfsprogs/hfsprogs_332.25.orig.tar.gz \ 17 | http://ftp.de.debian.org/debian/pool/main/h/hfsprogs/hfsprogs_332.25-11.debian.tar.gz \ 18 | license 19 | makefile.patch) 20 | sha256sums=('74c9aeca899ed7f4bf155c65fc45bf0f250c0f6d57360ea953b1d536d9aa45e6' 21 | '62d9b8599c66ebffbc57ce5d776e20b41341130d9b27341d63bda08460ebde7c' 22 | '3bce072b604e0e9baa2151bff91b40915253bfb6d9d9e37445080f526ad486e2' 23 | 'faaf8c08c6020fe7347354b85c57d43a00d6cd547075139c466fb0a787411fc7') 24 | build() { 25 | cd $srcdir/diskdev_cmds-${pkgver} 26 | patch -Np1 -i $srcdir/debian/patches/0001-Create-short-Makefiles-for-Debian.patch 27 | patch -Np1 -i $srcdir/debian/patches/0002-Add-exclude-Darwin-specific-code.patch 28 | patch -Np1 -i $srcdir/debian/patches/0003-Add-helper-include-files-absent-from-the-upstream-pa.patch 29 | patch -Np1 -i $srcdir/debian/patches/0004-Fix-compilation-on-64-bit-arches.patch 30 | patch -Np1 -i $srcdir/debian/patches/0005-Remove-Apple-specific-p-from-strings.patch 31 | patch -Np1 -i $srcdir/debian/patches/0006-Adjust-types-for-printing.patch 32 | patch -Np1 -i $srcdir/debian/patches/0007-Fix-path-for-HFS-wrapper-block.patch 33 | patch -Np1 -i $srcdir/debian/patches/0008-Provide-command-line-option-a.patch 34 | patch -Np1 -i $srcdir/debian/patches/0009-Rename-dprintf-to-dbg_printf.patch 35 | patch -Np1 -i $srcdir/debian/patches/0010-Rename-custom-macro-nil-with-NULL.patch 36 | patch -Np1 -i $srcdir/debian/patches/0011-Fix-types.patch 37 | patch -Np1 -i $srcdir/debian/patches/0012-Fix-mkfs-not-creating-UUIDs-for-new-filesystems.patch 38 | patch -Np1 -i $srcdir/debian/patches/0013-Fix-manpages.patch 39 | patch -Np0 -i "${srcdir}/makefile.patch" || return 1 40 | make -f Makefile.lnx 41 | } 42 | 43 | package() { 44 | cd $srcdir/diskdev_cmds-${pkgver} 45 | install -d -m 755 "$pkgdir/usr/share/hfsprogs" 46 | install -m 644 newfs_hfs.tproj/hfsbootdata.img "$pkgdir/usr/share/hfsprogs/hfsbootdata" 47 | install -D -m755 newfs_hfs.tproj/newfs_hfs "$pkgdir/usr/bin/mkfs.hfsplus" 48 | install -D -m755 fsck_hfs.tproj/fsck_hfs "$pkgdir/usr/bin/fsck.hfsplus" 49 | install -D -m644 "$srcdir/license" "$pkgdir/usr/share/licenses/hfsprogs/APSL" 50 | #install -d -m 755 "$pkgdir/usr/share/man/man8/" 51 | #install -m 644 newfs_hfs.tproj/newfs_hfs.8 "$pkgdir/usr/share/man/man8/mkfs.hfsplus.8" 52 | #install -m 644 fsck_hfs.tproj/fsck_hfs.8 "$pkgdir/usr/share/man/man8/fsck.hfsplus.8" 53 | # clean up the src dir, so it allows to re-build the package; 54 | cd $srcdir/; rm -rf diskdev_cmds-${pkgver} 55 | } 56 | -------------------------------------------------------------------------------- /packages/hfsprogs-rune/hfsprogs-rune-332.25-10-x86_64.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/hfsprogs-rune/hfsprogs-rune-332.25-10-x86_64.pkg.tar.xz -------------------------------------------------------------------------------- /packages/hfsprogs-rune/license: -------------------------------------------------------------------------------- 1 | Apple Public Source License 2 | 3 | Version 2.0 - August 6, 2003 4 | 5 | Please read this License carefully before downloading this software. By 6 | downloading or using this software, you are agreeing to be bound by the 7 | terms of this License. If you do not or cannot agree to the terms of 8 | this License, please do not download or use the software. 9 | 10 | 1. General; Definitions. This License applies to any program or other 11 | work which Apple Computer, Inc. ("Apple") makes publicly available and 12 | which contains a notice placed by Apple identifying such program or work 13 | as "Original Code" and stating that it is subject to the terms of this 14 | Apple Public Source License version 2.0 ("License"). As used in this 15 | License: 16 | 17 | 1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the 18 | grantor of rights, (i) claims of patents that are now or hereafter 19 | acquired, owned by or assigned to Apple and (ii) that cover subject 20 | matter contained in the Original Code, but only to the extent necessary 21 | to use, reproduce and/or distribute the Original Code without 22 | infringement; and (b) in the case where You are the grantor of rights, 23 | (i) claims of patents that are now or hereafter acquired, owned by or 24 | assigned to You and (ii) that cover subject matter in Your 25 | Modifications, taken alone or in combination with Original Code. 26 | 27 | 1.2 "Contributor" means any person or entity that creates or contributes 28 | to the creation of Modifications. 29 | 30 | 1.3 "Covered Code" means the Original Code, Modifications, the 31 | combination of Original Code and any Modifications, and/or any 32 | respective portions thereof. 33 | 34 | 1.4 "Externally Deploy" means: (a) to sublicense, distribute or 35 | otherwise make Covered Code available, directly or indirectly, to anyone 36 | other than You; and/or (b) to use Covered Code, alone or as part of a 37 | Larger Work, in any way to provide a service, including but not limited 38 | to delivery of content, through electronic communication with a client 39 | other than You. 40 | 41 | 1.5 "Larger Work" means a work which combines Covered Code or portions 42 | thereof with code not governed by the terms of this License. 43 | 44 | 1.6 "Modifications" mean any addition to, deletion from, and/or change 45 | to, the substance and/or structure of the Original Code, any previous 46 | Modifications, the combination of Original Code and any previous 47 | Modifications, and/or any respective portions thereof. When code is 48 | released as a series of files, a Modification is: (a) any addition to or 49 | deletion from the contents of a file containing Covered Code; and/or (b) 50 | any new file or other representation of computer program statements that 51 | contains any part of Covered Code. 52 | 53 | 1.7 "Original Code" means (a) the Source Code of a program or other work 54 | as originally made available by Apple under this License, including the 55 | Source Code of any updates or upgrades to such programs or works made 56 | available by Apple under this License, and that has been expressly 57 | identified by Apple as such in the header file(s) of such work; and (b) 58 | the object code compiled from such Source Code and originally made 59 | available by Apple under this License 60 | 61 | 1.8 "Source Code" means the human readable form of a program or other 62 | work that is suitable for making modifications to it, including all 63 | modules it contains, plus any associated interface definition files, 64 | scripts used to control compilation and installation of an executable 65 | (object code). 66 | 67 | 1.9 "You" or "Your" means an individual or a legal entity exercising 68 | rights under this License. For legal entities, "You" or "Your" includes 69 | any entity which controls, is controlled by, or is under common control 70 | with, You, where "control" means (a) the power, direct or indirect, to 71 | cause the direction or management of such entity, whether by contract or 72 | otherwise, or (b) ownership of fifty percent (50%) or more of the 73 | outstanding shares or beneficial ownership of such entity. 74 | 75 | 2. Permitted Uses; Conditions & Restrictions. Subject to the terms and 76 | conditions of this License, Apple hereby grants You, effective on the 77 | date You accept this License and download the Original Code, a 78 | world-wide, royalty-free, non-exclusive license, to the extent of 79 | Apple's Applicable Patent Rights and copyrights covering the Original 80 | Code, to do the following: 81 | 82 | 2.1 Unmodified Code. You may use, reproduce, display, perform, 83 | internally distribute within Your organization, and Externally Deploy 84 | verbatim, unmodified copies of the Original Code, for commercial or 85 | non-commercial purposes, provided that in each instance: 86 | 87 | (a) You must retain and reproduce in all copies of Original Code the 88 | copyright and other proprietary notices and disclaimers of Apple as they 89 | appear in the Original Code, and keep intact all notices in the Original 90 | Code that refer to this License; and 91 | 92 | (b) You must include a copy of this License with every copy of Source 93 | Code of Covered Code and documentation You distribute or Externally 94 | Deploy, and You may not offer or impose any terms on such Source Code 95 | that alter or restrict this License or the recipients' rights hereunder, 96 | except as permitted under Section 6. 97 | 98 | 2.2 Modified Code. You may modify Covered Code and use, reproduce, 99 | display, perform, internally distribute within Your organization, and 100 | Externally Deploy Your Modifications and Covered Code, for commercial or 101 | non-commercial purposes, provided that in each instance You also meet 102 | all of these conditions: 103 | 104 | (a) You must satisfy all the conditions of Section 2.1 with respect to 105 | the Source Code of the Covered Code; 106 | 107 | (b) You must duplicate, to the extent it does not already exist, the 108 | notice in Exhibit A in each file of the Source Code of all Your 109 | Modifications, and cause the modified files to carry prominent notices 110 | stating that You changed the files and the date of any change; and 111 | 112 | (c) If You Externally Deploy Your Modifications, You must make Source 113 | Code of all Your Externally Deployed Modifications either available to 114 | those to whom You have Externally Deployed Your Modifications, or 115 | publicly available. Source Code of Your Externally Deployed 116 | Modifications must be released under the terms set forth in this 117 | License, including the license grants set forth in Section 3 below, for 118 | as long as you Externally Deploy the Covered Code or twelve (12) months 119 | from the date of initial External Deployment, whichever is longer. You 120 | should preferably distribute the Source Code of Your Externally Deployed 121 | Modifications electronically (e.g. download from a web site). 122 | 123 | 2.3 Distribution of Executable Versions. In addition, if You Externally 124 | Deploy Covered Code (Original Code and/or Modifications) in object code, 125 | executable form only, You must include a prominent notice, in the code 126 | itself as well as in related documentatble under the terms of this 127 | License with information on how and where to obtain such Source Code. 128 | 129 | 2.4 Third Party Rights. You expressly acknowledge and agree that 130 | although Apple and each Contributor grants the licenses to their 131 | respective portions of the Covered Code set forth herein, no assurances 132 | are provided by Apple or any Contributor that the Covered Code does not 133 | infringe the patent or other intellectual property rights of any other 134 | entity. Apple and each Contributor disclaim any liability to You for 135 | claims brought by any other entity based on infringement of intellectual 136 | property rights or otherwise. As a condition to exercising the rights 137 | and licenses granted hereunder, You hereby assume sole responsibility to 138 | secure any other intellectual property rights needed, if any. For 139 | example, if a third party patent license is required to allow You to 140 | distribute the Covered Code, it is Your responsibility to acquire that 141 | license before distributing the Covered Code. 142 | 143 | 3. Your Grants. In consideration of, and as a condition to, the licenses 144 | granted to You under this License, You hereby grant to any person or 145 | entity receiving or distributing Covered Code under this License a 146 | non-exclusive, royalty-free, perpetual, irrevocable license, under Your 147 | Applicable Patent Rights and other intellectual property rights (other 148 | than patent) owned or controlled by You, to use, reproduce, display, 149 | perform, modify, sublicense, distribute and Externally Deploy Your 150 | Modifications of the same scope and extent as Apple's licenses under 151 | Sections 2.1 and 2.2 above. 152 | 153 | 4. Larger Works. You may create a Larger Work by combining Covered Code 154 | with other code not governed by the terms of this License and distribute 155 | the Larger Work as a single product. In each such instance, You must 156 | make sure the requirements of this License are fulfilled for the Covered 157 | Code or any portion thereof. 158 | 159 | 5. Limitations on Patent License. Except as expressly stated in Section 160 | 2, no other patent rights, express or implied, are granted by Apple 161 | herein. Modifications and/or Larger Works may require additional patent 162 | licensesrms") to one or more recipients of Covered Code. However, You 163 | may do so only on Your own behalf and as Your sole responsibility, and 164 | not on behalf of Apple or any Contributor. You must obtain the 165 | recipient's agreement that any such Additional Terms are offered by You 166 | alone, and You hereby agree to indemnify, defend and hold Apple and 167 | every Contributor harmless for any liability incurred by or claims 168 | asserted against Apple or such Contributor by reason of any such 169 | Additional Terms. 170 | 171 | 7. Versions of the License. Apple may publish revised and/or new 172 | versions of this License from time to time. Each version will be given a 173 | distinguishing version number. Once Original Code has been published 174 | under a particular version of this License, You may continue to use it 175 | under the terms of that version. You may also choose to use such 176 | Original Code under the terms of any subsequent version of this License 177 | published by Apple. No one other than Apple has the right to modify the 178 | terms applicable to Covered Code created under this License. 179 | 180 | 8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in 181 | part pre-release, untested, or not fully tested works. The Covered Code 182 | may contain errors that could cause failures or loss of data, and may be 183 | incomplete or contain inaccuracies. You expressly acknowledge and agree 184 | that use of the Covered Code, or any portion thereof, is at Your sole 185 | and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND WITHOUT 186 | WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND APPLE'S 187 | LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE PURPOSES OF 188 | SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM ALL WARRANTIES 189 | AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 190 | THE IMPLIED WARRANTIES AND/OR CONDITIONS OF MERCHANTABILITY, OF 191 | SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR PURPOSE, OF ACCURACY, 192 | OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. APPLE AND 193 | EACH CONTRIBUTOR DOES NOT WARRANT AGAINST INTERFERENCE WITH YOUR 194 | ENJOYMENT OF THE COVERED CODE, THAT THE FUNCTIONS CONTAINED IN THE 195 | COVERED CODE WILL MEET YOUR REQUIREMENTS, THAT THE OPERATION OF THE 196 | COVERED CODE WILL BE UNINTERRUPTED OR ERROR-FREE, OR THAT DEFECTS IN THE 197 | COVERED CODE WILL BE CORRECTED. NO ORAL OR WRITTEN INFORMATION OR ADVICE 198 | GIVEN BY APPLE, AN APPLE AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR 199 | SHALL CREATE A WARRANTY. You acknowledge that the Covered Code is not 200 | intended for use in the operation of nuclear facilities, aircraft 201 | navigation, communication systems, or air traffic control machines in 202 | which case the failure of the Covered Code could lead to death, personal 203 | injury, or severe physical or environmental damage. 204 | 205 | 9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO 206 | EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL, 207 | SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO 208 | THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR ANY 209 | PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY, TORT 210 | (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF APPLE 211 | OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES 212 | AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY REMEDY. SOME 213 | JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF INCIDENTAL OR 214 | CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY TO YOU. In no 215 | event shall Apple's total liability to You for all damages (other than 216 | as may be required by applicable law) under this License exceed the 217 | amount of fifty dollars ($50.00). 218 | 219 | 10. Trademarks. This License does not grant any rights to use the 220 | trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS", 221 | "QuickTime", "QuickTime Streaming Server" or any other trademarks, 222 | service marks, logos or trade names belonging to Apple (collectively 223 | "Apple Marks") or to any trademark, service mark, logo or trade name 224 | belonging to any Contributor. You agree not to use any Apple Marks in or 225 | as part of the name of products derived from the Original Code or to 226 | endorse or promote products derived from the Original Code other than as 227 | expressly permitted by and in strict compliance at all times with 228 | Apple's third party trademark usage guidelines which are posted at 229 | http://www.apple.com/legal/guidelinesfor3rdparties.html. 230 | 231 | 11. Ownership. Subject to the licenses granted under this License, each 232 | Contributor retains all rights, title and interest in and to any 233 | Modifications made by such Contributor. Apple retains all rights, title 234 | and interest in and to the Original Code and any Modifications made by 235 | or on behalf of Apple ("Apple Modifications"), and such Apple 236 | Modifications will not be automatically subject to this License. Apple 237 | may, at its sole discretion, choose to license such Apple Modifications 238 | under this License, or on different terms from those contained in this 239 | License or may choose not to license them at all. 240 | 241 | 12. Termination. 242 | 243 | 12.1 Termination. This License and the rights granted hereunder will 244 | terminate: 245 | 246 | (a) automatically without notice from Apple if You fail to comply with 247 | any term(s) of this License and fail to cure such breach within 30 days 248 | of becoming aware of such breach; 249 | 250 | (b) immediately in the event of the circumstances described in Section 251 | 13.5(b); or 252 | 253 | (c) automatically without notice from Apple if You, at any time during 254 | the term of this License, commence an action for patent infringement 255 | against Apple; provided that Apple did not first commence an action for 256 | patent infringement against You in that instance. 257 | 258 | 12.2 Effect of Termination. Upon termination, You agree to immediately 259 | stop any further use, reproduction, modification, sublicensing and 260 | distribution of the Covered Code. All sublicenses to the Covered Code 261 | which have been properly granted prior to termination shall survive any 262 | termination of this License. Provisions which, by their nature, should 263 | remain in effect beyond the termination of this License shall survive, 264 | including but not limited to Sections 3, 5, 8, 9, 10, 11, 12.2 and 13. 265 | No party will be liable to any other for compensation, indemnity or 266 | damages of any sort solely as a result of terminating this License in 267 | accordance with its terms, and termination of this License will be 268 | without prejudice to any other right or remedy of any party. 269 | 270 | 13. Miscellaneous. 271 | 272 | 13.1 Government End Users. The Covered Code is a "commercial item" as 273 | defined in FAR 2.101. Government software and technical data rights in 274 | the Covered Code include only those rights customarily provided to the 275 | public as defined in this License. This customary commercial license in 276 | technical data and software is provided in accordance with FAR 12.211 277 | (Technical Data) and 12.212 (Computer Software) and, for Department of 278 | Defense purchases, DFAR 252.227-7015 (Technical Data -- Commercial 279 | Items) and 227.7202-3 (Rights in Commercial Computer Software or 280 | Computer Software Documentation). Accordingly, all U.S. Government End 281 | Users acquire Covered Code with only those rights set forth herein. 282 | 283 | 13.2 Relationship of Parties. This License will not be construed as 284 | creating an agency, partnership, joint venture or any other form of 285 | legal association between or among You, Apple or any Contributor, and 286 | You will not represent to the contrary, whether expressly, by 287 | implication, appearance or otherwise. 288 | 289 | 13.3 Independent Development. Nothing in this License will impair 290 | Apple's right to acquire, license, develop, have others develop for it, 291 | market and/or distribute technology or products that perform the same or 292 | similar functions as, or otherwise compete with, Modifications, Larger 293 | Works, technology or products that You may develop, produce, market or 294 | distribute. 295 | 296 | 13.4 Waiver; Construction. Failure by Apple or any Contributor to 297 | enforce any provision of this License will not be deemed a waiver of 298 | future enforcement of that or any other provision. Any law or regulation 299 | which provides that the language of a contract shall be construed 300 | against the drafter will not apply to this License. 301 | 302 | 13.5 Severability. (a) If for any reason a court of competent 303 | jurisdiction finds any provision of this License, or portion thereof, to 304 | be unenforceable, that provision of the License will be enforced to the 305 | maximum extent permissible so as to effect the economic benefits and 306 | intent of the parties, and the remainder of this License will continue 307 | in full force and effect. (b) Notwithstanding the foregoing, if 308 | applicable law prohibits or restricts You from fully and/or specifically 309 | complying with Sections 2 and/or 3 or prevents the enforceability of 310 | either of those Sections, this License will immediately terminate and 311 | You must immediately discontinue any use of the Covered Code and destroy 312 | all copies of it that are in your possession or control. 313 | 314 | 13.6 Dispute Resolution. Any litigation or other dispute resolution 315 | between You and Apple relating to this License shall take place in the 316 | Northern District of California, and You and Apple hereby consent to the 317 | personal jurisdiction of, and venue in, the state and federal courts 318 | within that District with respect to this License. The application of 319 | the United Nations Convention on Contracts for the International Sale of 320 | Goods isce of Quebec, Canada, the following clause applies: The parties 321 | hereby confirm that they have requested that this License and all 322 | related documents be drafted in English. Les parties ont exigé que le 323 | présent contrat et tous les documents connexes soient rédigés en 324 | anglais. 325 | 326 | EXHIBIT A. 327 | 328 | "Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights 329 | Reserved. 330 | 331 | This file contains Original Code and/or Modifications of Original Code 332 | as defined in and that are subject to the Apple Public Source License 333 | Version 2.0 (the 'License'). You may not use this file except in 334 | compliance with the License. Please obtain a copy of the License at 335 | http://www.opensource.apple.com/apsl/ and read it before using this 336 | file. 337 | 338 | The Original Code and all software distributed under the License are 339 | distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 340 | EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 341 | INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 342 | FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. Please 343 | see the License for the specific language governing rights and 344 | limitations under the License." 345 | 346 | Please read the terms of this license carefully. By clicking on the 347 | "Yes, I Accept" button below you are accepting and agreeing to the terms 348 | of this license with Apple Computer, Inc. If you are agreeing to this 349 | license on behalf of a company, you represent that you are authorized to 350 | bind the company to such a license. If you do not meet this criterion or 351 | you do not agree to any of the terms of this license, please click on 352 | the "No, I Reject" button below or use your browser's Back button to 353 | exit this page. 354 | -------------------------------------------------------------------------------- /packages/hfsprogs-rune/makefile.patch: -------------------------------------------------------------------------------- 1 | *** Makefile.lnx.orig 2011-01-24 14:09:57.000000000 +1000 2 | --- Makefile.lnx 2011-01-24 14:10:41.000000000 +1000 3 | *************** 4 | *** 1,5 **** 5 | CC := gcc 6 | ! CFLAGS += -I$(PWD)/include -DDEBUG_BUILD=0 -D_FILE_OFFSET_BITS=64 -D LINUX=1 -D BSD=1 7 | SUBDIRS := newfs_hfs.tproj fsck_hfs.tproj 8 | 9 | all clean: 10 | --- 1,5 ---- 11 | CC := gcc 12 | ! CFLAGS += `pkg-config --cflags libbsd` -I$(PWD)/include -DDEBUG_BUILD=0 -D_FILE_OFFSET_BITS=64 -D LINUX=1 -D BSD=1 13 | SUBDIRS := newfs_hfs.tproj fsck_hfs.tproj 14 | 15 | all clean: 16 | -------------------------------------------------------------------------------- /packages/hfsutils-rune/Makefile-install.patch: -------------------------------------------------------------------------------- 1 | *** Makefile.in.orig 2013-05-05 16:48:26.065525171 +0100 2 | --- Makefile.in 2013-05-05 16:53:14.065321352 +0100 3 | *************** INCDEST = @includedir@ 4 | *** 36,42 **** 5 | 6 | MANEXT = 1 7 | 8 | ! INSTALL = @INSTALL@ 9 | BININSTALL = @INSTALL_PROGRAM@ -m 755 10 | LIBINSTALL = @INSTALL_DATA@ 11 | HARDLINK = ln -f 12 | --- 36,42 ---- 13 | 14 | MANEXT = 1 15 | 16 | ! INSTALL = @INSTALL@ -D 17 | BININSTALL = @INSTALL_PROGRAM@ -m 755 18 | LIBINSTALL = @INSTALL_DATA@ 19 | HARDLINK = ln -f 20 | *************** check :: all 21 | *** 111,117 **** 22 | install :: @INSTALL_TARGETS@ 23 | 24 | install_cli :: all_cli 25 | ! $(BININSTALL) $(HFSUTIL) "$(BINDEST)/." 26 | 27 | for file in $(CLITARGETS); do \ 28 | $(HARDLINK) "$(BINDEST)/$(HFSUTIL)" "$(BINDEST)/$$file"; \ 29 | --- 111,117 ---- 30 | install :: @INSTALL_TARGETS@ 31 | 32 | install_cli :: all_cli 33 | ! $(BININSTALL) $(HFSUTIL) "$(BINDEST)/$(HFSUTIL)" 34 | 35 | for file in $(CLITARGETS); do \ 36 | $(HARDLINK) "$(BINDEST)/$(HFSUTIL)" "$(BINDEST)/$$file"; \ 37 | *************** install_cli :: all_cli 38 | *** 126,132 **** 39 | 40 | install_tcl :: all_tcl 41 | for file in $(TCLTARGETS); do \ 42 | ! $(BININSTALL) $$file "$(BINDEST)/."; \ 43 | done 44 | 45 | if [ -f "$(BINDEST)/hfs" ]; then \ 46 | --- 126,132 ---- 47 | 48 | install_tcl :: all_tcl 49 | for file in $(TCLTARGETS); do \ 50 | ! $(BININSTALL) $$file "$(BINDEST)/$$file"; \ 51 | done 52 | 53 | if [ -f "$(BINDEST)/hfs" ]; then \ 54 | *************** install_tcl :: all_tcl 55 | *** 142,148 **** 56 | 57 | install_tk :: all_tk 58 | for file in $(TKTARGETS); do \ 59 | ! $(BININSTALL) $$file "$(BINDEST)/."; \ 60 | done 61 | 62 | for file in $(TKDOCS); do \ 63 | --- 142,148 ---- 64 | 65 | install_tk :: all_tk 66 | for file in $(TKTARGETS); do \ 67 | ! $(BININSTALL) $$file "$(BINDEST)/$(TKTARGETS)"; \ 68 | done 69 | 70 | for file in $(TKDOCS); do \ 71 | -------------------------------------------------------------------------------- /packages/hfsutils-rune/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: Simone De Gregori 2 | # based on original work of: Pablo Lezaeta 3 | 4 | pkgname=hfsutils-rune 5 | pkglabel=hfsutils 6 | pkgver=3.2.6 7 | pkgrel=4 8 | pkgdesc="A HFS driver for linux whit read/write support" 9 | arch=('i686' 'x86_64' 'armv6h' 'armv7h') 10 | url="http://www.mars.org/home/rob/proj/hfs/" 11 | license=('GPL2') 12 | install="${pkgname}.install" 13 | source=("ftp://ftp.mars.org/pub/hfs/$pkglabel-$pkgver.tar.gz" 14 | "Makefile-install.patch") 15 | sha256sums=('bc9d22d6d252b920ec9cdf18e00b7655a6189b3f34f42e58d5bb152957289840' 16 | 'a8728889de0ff78edc0d30a7de34504060856b02bae19a595799ed4b861aef6e') 17 | sha512sums=('0db3050e5969c4e4e6c6ddb10cbc221a5837eb1e12f9331e7129511d31a4ec8d38420ed0b948dadc85ed990f3b1085e930eb7f0c37b3883866d963e47cbbb173' 18 | 'af0fd70a225927950823467c3f0e768a1ad74d146effb974f358d696642393165a8849ef045274dd5dc96ed787919199026104ad954ae04fe7055325b3b1a479') 19 | 20 | 21 | build() { 22 | unset CPPFLAGS 23 | # If thee have problems pleas try uncomments those unset:es 24 | # unset CFLAGS 25 | # unset CXXFLAGS 26 | # unset LDFLAGS 27 | cd "$srcdir/$pkglabel-$pkgver" 28 | patch -Np0 -i "${srcdir}/Makefile-install.patch" || return 1 29 | ./configure --prefix=/usr --mandir=/usr/share/man --without-tcl --without-tk 30 | make 31 | } 32 | 33 | #check() { 34 | # cd "$srcdir/$pkglabel-$pkgver" 35 | # make -k check 36 | #} 37 | 38 | package() { 39 | cd "$srcdir/$pkglabel-$pkgver" 40 | msg "Installing to ${pkgdir}" 41 | make prefix="$pkgdir/usr" MANDEST="$pkgdir/usr/share/man" install 42 | } 43 | 44 | 45 | # vim:set ts=2 sw=2 et: 46 | -------------------------------------------------------------------------------- /packages/hfsutils-rune/hfsutils-rune-3.2.6-4-armv7h.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/hfsutils-rune/hfsutils-rune-3.2.6-4-armv7h.pkg.tar.xz -------------------------------------------------------------------------------- /packages/hfsutils-rune/hfsutils-rune.install: -------------------------------------------------------------------------------- 1 | post_install() 2 | { 3 | # remove man pages 4 | rm /usr/share/man/hattrib.1.gz 5 | rm /usr/share/man/hcd.1.gz 6 | rm /usr/share/man/hcopy.1.gz 7 | rm /usr/share/man/hdel.1.gz 8 | rm /usr/share/man/hdir.1.gz 9 | rm /usr/share/man/hformat.1.gz 10 | rm /usr/share/man/hfsutils.1.gz 11 | rm /usr/share/man/hls.1.gz 12 | rm /usr/share/man/hmkdir.1.gz 13 | rm /usr/share/man/hmount.1.gz 14 | rm /usr/share/man/hpwd.1.gz 15 | rm /usr/share/man/hrename.1.gz 16 | rm /usr/share/man/hrmdir.1.gz 17 | rm /usr/share/man/humount.1.gz 18 | rm /usr/share/man/hvol.1.gz 19 | } 20 | -------------------------------------------------------------------------------- /packages/libspotify/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: Simone De Gregori 2 | # Based on original work of: Benjamin Hedrich 3 | # Contributor: Thomas Jost 4 | # Contributor: Tomas Strand 5 | 6 | pkgname=libspotify 7 | pkgver=12.1.51 8 | pkgrel=3 9 | pkgdesc="C API package allowing third-party developers to write applications that utilize the Spotify music streaming service" 10 | arch=(i686 x86_64 armv7h armv6h) 11 | url="https://developer.spotify.com/technologies/libspotify/" 12 | license=('custom') 13 | depends=('glibc') 14 | 15 | if [ "$CARCH" == "armv6h" ]; then 16 | pkgver=12.1.103 17 | SPOTIFY_ARCH="armv6-bcm2708hardfp" 18 | md5sums=('bf9afc8c7b966841735734b248f9c7a7') 19 | sha256sums=('d658e6c1978fb46cf33376eb8367a51d024f4014f21beac1dd264532bcc54b24') 20 | fi 21 | 22 | if [ "$CARCH" == "armv7h" ]; then 23 | SPOTIFY_ARCH="armv7" 24 | md5sums=('eb7e98849b3bb6d364fa74034602afbf') 25 | sha256sums=('ad27b6c5aee5382b66b39bfea3b1752076b7abcc445979ce25c1ec9d7ff3aeda') 26 | fi 27 | 28 | if [ "$CARCH" == "x86_64" ]; then 29 | SPOTIFY_ARCH="x86_64" 30 | md5sums=('83efddcc195d6ff12b24c97c767a5e45') 31 | sha256sums=('43a14e0732ba6ae30078fac105d0e2998d04d5f5c396a4968386bc4e22491058') 32 | fi 33 | 34 | if [ "$CARCH" == "i686" ]; then 35 | SPOTIFY_ARCH="i686" 36 | md5sums=('04735b890da0b1fc7f1f14e68a5293de') 37 | sha256sums=('941ab4ba10bcd6ec4e96127afd095a39e11bc955de0882734c97e4f588b155ae') 38 | 39 | fi 40 | 41 | source=(http://developer.spotify.com/download/libspotify/libspotify-${pkgver}-Linux-${SPOTIFY_ARCH}-release.tar.gz) 42 | 43 | build() { 44 | cd "$srcdir/$pkgname-$pkgver-Linux-${SPOTIFY_ARCH}-release" 45 | 46 | # Don't do stupid things from a Makefile 47 | msg2 "Patching Makefile..." 48 | sed -i 's/ldconfig//' Makefile 49 | } 50 | 51 | package() { 52 | cd "$srcdir/$pkgname-$pkgver-Linux-${SPOTIFY_ARCH}-release" 53 | 54 | make prefix="$pkgdir/usr" install 55 | 56 | # Install documentation 57 | cp -R share "$pkgdir"/usr/share 58 | mkdir -p "$pkgdir"/usr/share/man 59 | mv "$pkgdir"/usr/share/man3 "$pkgdir"/usr/share/man/man3 60 | 61 | # Correct pkgconfig file 62 | sed -e s:PKG_PREFIX:/usr:g \ 63 | < lib/pkgconfig/libspotify.pc \ 64 | > "$pkgdir"/usr/lib/pkgconfig/libspotify.pc 65 | 66 | # Custom license 67 | install -Dm644 LICENSE licenses.xhtml "$pkgdir"/usr/share/doc/libspotify 68 | mkdir -p "$pkgdir"/usr/share/licenses/libspotify 69 | ln -s ../../doc/libspotify/LICENSE "$pkgdir"/usr/share/licenses/libspotify/LICENSE 70 | } 71 | -------------------------------------------------------------------------------- /packages/libspotify/libspotify-12.1.103-3-armv6h.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/libspotify/libspotify-12.1.103-3-armv6h.pkg.tar.xz -------------------------------------------------------------------------------- /packages/libspotify/libspotify-12.1.51-3-armv7h.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/libspotify/libspotify-12.1.51-3-armv7h.pkg.tar.xz -------------------------------------------------------------------------------- /packages/libspotify/libspotify-12.1.51-3-x86_64.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/libspotify/libspotify-12.1.51-3-x86_64.pkg.tar.xz -------------------------------------------------------------------------------- /packages/libupnpp-rune/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: Simone De Gregori 2 | # Based on libupnpp-git from AUR 3 | 4 | pkgname=libupnpp-rune 5 | _pkgname=libupnpp 6 | pkgver=20150925 7 | pkgrel=1 8 | pkgdesc="a C++ wrapper for libupnp - used with upmpdcli or upplay" 9 | url="https://github.com/medoc92/libupnpp" 10 | license="GPL" 11 | depends=('libupnp') 12 | makedepends=('git' 'autoconf') 13 | arch=('i686' 'x86_64' 'armv6h' 'armv7h') 14 | 15 | source=("git://github.com/medoc92/libupnpp.git") 16 | md5sums=('SKIP') 17 | 18 | build() { 19 | 20 | cd ${srcdir}/${_pkgname} 21 | ./autogen.sh 22 | ./configure --prefix=/usr 23 | make 24 | } 25 | 26 | package() { 27 | cd ${srcdir}/${_pkgname} 28 | make DESTDIR="${pkgdir}/" install 29 | } 30 | -------------------------------------------------------------------------------- /packages/libupnpp-rune/libupnpp-rune-20150719-1-armv7h.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/libupnpp-rune/libupnpp-rune-20150719-1-armv7h.pkg.tar.xz -------------------------------------------------------------------------------- /packages/libupnpp-rune/libupnpp-rune-20150925-1-x86_64.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/libupnpp-rune/libupnpp-rune-20150925-1-x86_64.pkg.tar.xz -------------------------------------------------------------------------------- /packages/linux-rune/linux-arch-rpi_3.12.26-1-ARCH.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/linux-rune/linux-arch-rpi_3.12.26-1-ARCH.tar.bz2 -------------------------------------------------------------------------------- /packages/linux-rune/linux-rune-rpi_3.12.13-rt21_wosa.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/linux-rune/linux-rune-rpi_3.12.13-rt21_wosa.tar.bz2 -------------------------------------------------------------------------------- /packages/linux-rune/linux-rune-rpi_3.12.19-2-ARCH.tbz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/linux-rune/linux-rune-rpi_3.12.19-2-ARCH.tbz -------------------------------------------------------------------------------- /packages/linux-rune/linux-rune-rpi_3.6.11-18-ARCH+.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/linux-rune/linux-rune-rpi_3.6.11-18-ARCH+.tar.bz2 -------------------------------------------------------------------------------- /packages/mpd-rune/PKGBUILD: -------------------------------------------------------------------------------- 1 | PKGBUILD.0.19 -------------------------------------------------------------------------------- /packages/mpd-rune/PKGBUILD.0.18: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # Maintainer: Simone De Gregori 3 | 4 | pkgname=mpd-rune 5 | pkgver=0.18.20 6 | pkgrel=1 7 | pkgdesc='RuneAudio MPD optimized version' 8 | url='http://www.musicpd.org/' 9 | license=('GPL') 10 | arch=('i686' 'x86_64' 'armv6h' 'armv7h') 11 | depends=('audiofile' 'mpg123' 'curl' 'faad2' 'sqlite' 'libmms' 'libid3tag' 'libmpdclient') 12 | #makedepends=('doxygen') 13 | provides=("mpd=$pkgver") 14 | conflicts=('mpd') 15 | replaces=('mpd') 16 | source=("http://www.musicpd.org/download/mpd/${pkgver%.*}/mpd-${pkgver}.tar.xz" 17 | 'tmpfiles.d' 18 | 'mpd.conf') 19 | sha1sums=('75c0ee5ac6c0e252c33c638100e9ff780e4dfc85' 20 | 'f4d5922abb69abb739542d8e93f4dfd748acdad7' 21 | 'e75a826590a38e3a18ba6b755a005eb63e650b4c') 22 | backup=('etc/mpd.conf') 23 | #install=install 24 | 25 | build() { 26 | cd "${srcdir}/mpd-${pkgver}" 27 | ./configure \ 28 | --prefix=/usr \ 29 | --sysconfdir=/etc \ 30 | --disable-ao \ 31 | --disable-pulse \ 32 | --disable-shout \ 33 | --disable-sidplay \ 34 | --disable-modplug \ 35 | --disable-soundcloud \ 36 | --disable-wavpack \ 37 | --disable-opus \ 38 | --disable-lame-encoder \ 39 | --disable-ipv6 \ 40 | --disable-recorder-output \ 41 | --disable-iso9660 \ 42 | --disable-zzip \ 43 | --disable-wildmidi \ 44 | --disable-oss \ 45 | --disable-fluidsynth \ 46 | --disable-bzip2 \ 47 | --disable-gme \ 48 | --disable-mpg123 \ 49 | --enable-mad=yes \ 50 | --enable-libmpdclient \ 51 | --enable-jack \ 52 | --with-zeroconf=avahi \ 53 | --with-systemdsystemunitdir=/usr/lib/systemd/system 54 | make 55 | } 56 | 57 | package() { 58 | cd "${srcdir}/mpd-${pkgver}" 59 | make DESTDIR="${pkgdir}" install 60 | install -Dm644 ../mpd.conf "${pkgdir}"/etc/mpd.conf 61 | install -Dm644 ../tmpfiles.d "${pkgdir}"/usr/lib/tmpfiles.d/mpd.conf 62 | install -d -g 45 -o 45 "${pkgdir}"/var/lib/mpd/playlists 63 | 64 | install -Dm644 "${pkgdir}"/usr/lib/systemd/{system,user}/mpd.service 65 | sed '/WantedBy=/c WantedBy=default.target' -i "${pkgdir}"/usr/lib/systemd/user/mpd.service 66 | } 67 | -------------------------------------------------------------------------------- /packages/mpd-rune/PKGBUILD.0.19: -------------------------------------------------------------------------------- 1 | # Maintainer: Simone De Gregori 2 | 3 | pkgname=mpd-rune 4 | pkgver=0.19.10 5 | pkgrel=1 6 | pkgdesc='RuneAudio MPD optimized version (native DSD support)' 7 | url='http://www.musicpd.org/' 8 | license=('GPL') 9 | arch=('i686' 'x86_64' 'armv6h' 'armv7h') 10 | depends=('audiofile' 'libmad' 'jack' 'curl' 'faad2' 'sqlite' 'libmms' 'libid3tag' 'libmpdclient' 'boost-libs' 'libsoxr' 'ffmpeg-rune' 'yajl') 11 | makedepends=('boost') 12 | provides=("mpd=$pkgver") 13 | conflicts=('mpd') 14 | replaces=('mpd') 15 | source=("http://www.musicpd.org/download/mpd/0.19/mpd-${pkgver}.tar.xz" 16 | 'https://raw.githubusercontent.com/lintweaker/mpd-dsd-019/master/0001-Add-native-DSD-support-to-MPD-0.19.10.patch' 17 | 'tmpfiles.d' 18 | 'mpd.conf') 19 | sha1sums=('4635b33223d3f1e67eed41f6350ef75515153213' 20 | 'e6023f23ce0c94e97abc26b3795f6c93427c62e0' 21 | 'f4d5922abb69abb739542d8e93f4dfd748acdad7' 22 | '60cc13bf154a81664661aeae22e11fdb97e4e5e1') 23 | install=install 24 | CXXFLAGS="-fpermissive -O2" 25 | 26 | prepare() { 27 | cd "${srcdir}/mpd-${pkgver}" 28 | touch systemd/mpd.socket 29 | autoreconf -fi 30 | } 31 | 32 | build() { 33 | cd "${srcdir}/mpd-${pkgver}" 34 | 35 | # apply native-dsd patch 36 | patch -p1 < ${startdir}/0001-Add-native-DSD-support-to-MPD-0.19.10.patch 37 | 38 | ./configure \ 39 | --prefix=/usr \ 40 | --sysconfdir=/etc \ 41 | --disable-ao \ 42 | --disable-pulse \ 43 | --disable-shout \ 44 | --disable-sidplay \ 45 | --disable-modplug \ 46 | --enable-soundcloud \ 47 | --disable-wavpack \ 48 | --disable-opus \ 49 | --disable-lame-encoder \ 50 | --disable-ipv6 \ 51 | --disable-recorder-output \ 52 | --disable-iso9660 \ 53 | --disable-zzip \ 54 | --disable-wildmidi \ 55 | --disable-oss \ 56 | --disable-fluidsynth \ 57 | --disable-bzip2 \ 58 | --disable-gme \ 59 | --disable-mpg123 \ 60 | --enable-mad=yes \ 61 | --enable-libmpdclient \ 62 | --enable-soxr \ 63 | --enable-ffmpeg \ 64 | --enable-jack \ 65 | --with-zeroconf=avahi \ 66 | --with-systemdsystemunitdir=/usr/lib/systemd/system 67 | make 68 | } 69 | 70 | package() { 71 | cd "${srcdir}/mpd-${pkgver}" 72 | make DESTDIR="${pkgdir}" install 73 | install -Dm644 "${startdir}"/mpd.conf "${pkgdir}"/etc/mpd.conf 74 | install -Dm644 "${startdir}"/tmpfiles.d "${pkgdir}"/usr/lib/tmpfiles.d/mpd.conf 75 | install -d -g 45 -o 45 "${pkgdir}"/var/lib/mpd/playlists 76 | 77 | install -Dm644 "${pkgdir}"/usr/lib/systemd/{system,user}/mpd.service 78 | sed '/WantedBy=/c WantedBy=default.target' -i "${pkgdir}"/usr/lib/systemd/user/mpd.service 79 | } 80 | -------------------------------------------------------------------------------- /packages/mpd-rune/install: -------------------------------------------------------------------------------- 1 | post_install() { 2 | getent group mpd &>/dev/null || groupadd -r -g 45 mpd >/dev/null 3 | getent passwd mpd &>/dev/null || useradd -r -u 45 -g mpd -d /var/lib/mpd -s /bin/false -G audio mpd >/dev/null 4 | usr/bin/systemd-tmpfiles --create mpd.conf || true 5 | chown -R mpd.mpd /var/lib/mpd 6 | } 7 | 8 | post_remove() { 9 | getent passwd mpd &>/dev/null && userdel mpd >/dev/null 10 | getent group mpd &>/dev/null && groupdel mpd >/dev/null 11 | true 12 | } 13 | -------------------------------------------------------------------------------- /packages/mpd-rune/mpd-rune-0.19.10-1-armv7h.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/mpd-rune/mpd-rune-0.19.10-1-armv7h.pkg.tar.xz -------------------------------------------------------------------------------- /packages/mpd-rune/mpd-rune-0.19.10-1-x86_64.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/mpd-rune/mpd-rune-0.19.10-1-x86_64.pkg.tar.xz -------------------------------------------------------------------------------- /packages/mpd-rune/mpd.conf: -------------------------------------------------------------------------------- 1 | /usr/local/src/RuneOS/config/etc/mpd.conf -------------------------------------------------------------------------------- /packages/mpd-rune/tmpfiles.d: -------------------------------------------------------------------------------- 1 | d /run/mpd 0755 mpd mpd 2 | -------------------------------------------------------------------------------- /packages/mpdscribble-rune/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: Simone De Gregori 2 | # Based on original work ok: AkiraYB 3 | 4 | pkgname=mpdscribble-rune 5 | pkglabel=mpdscribble 6 | pkgver=0.22 7 | pkgrel=6 8 | pkgdesc='An mpd client which submits track info to last.fm' 9 | arch=('i686' 'x86_64' 'armv6h' 'armv7h') 10 | url='http://mpd.wikia.com/wiki/Client:Mpdscribble' 11 | license=('GPL2') 12 | depends=('curl' 'glib2' 'libmpdclient') 13 | #install="${pkglabel}.install" 14 | changelog="${pkglabel}.changelog" 15 | source=("http://www.musicpd.org/download/mpdscribble/${pkgver}/${pkglabel}-${pkgver}.tar.bz2" 16 | "${pkglabel}.service") 17 | sha256sums=('1cde2b5f8c70f0e3e6f059d01bf0b0f2eac2b29fbcd14b01a8a5103e603feb41' 18 | '0ef108567cf9c47dd382e9655237d0d05cb7c2b57e530187e9e513810842f334') 19 | 20 | build() 21 | { 22 | cd "${srcdir}/${pkglabel}-${pkgver}" 23 | ./configure --prefix=/usr --sysconfdir=/etc --enable-debug 24 | make 25 | } 26 | 27 | package() 28 | { 29 | cd "${srcdir}/${pkglabel}-${pkgver}" 30 | install -Dm 644 "doc/mpdscribble.conf" "${pkgdir}/etc/mpdscribble.conf" 31 | install -Dm 644 "${srcdir}/${pkglabel}.service" \ 32 | "${pkgdir}/usr/lib/systemd/system/mpdscribble.service" 33 | make DESTDIR="$pkgdir" install 34 | } 35 | -------------------------------------------------------------------------------- /packages/mpdscribble-rune/mpdscribble-rune-0.22-6-armv6h.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/mpdscribble-rune/mpdscribble-rune-0.22-6-armv6h.pkg.tar.xz -------------------------------------------------------------------------------- /packages/mpdscribble-rune/mpdscribble-rune-0.22-6-armv7h.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/mpdscribble-rune/mpdscribble-rune-0.22-6-armv7h.pkg.tar.xz -------------------------------------------------------------------------------- /packages/mpdscribble-rune/mpdscribble-rune-0.22-6-x86_64.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/mpdscribble-rune/mpdscribble-rune-0.22-6-x86_64.pkg.tar.xz -------------------------------------------------------------------------------- /packages/mpdscribble-rune/mpdscribble.changelog: -------------------------------------------------------------------------------- 1 | 2014-07-25 Simone De Gregori 2 | 3 | * 0.22-6 : 4 | Fix download URL 5 | Remove old rc.d scripts 6 | Enabled debug 7 | 8 | 2012-08-21 AkiraYB 9 | 10 | * 0.22-5 : 11 | Bump pkgrel 12 | 13 | 2012-08-05 AkiraYB 14 | 15 | * 0.22-4 : 16 | Add systemd service file 17 | 18 | 2012-02-19 AkiraYB 19 | 20 | * 0.22-3 : 21 | Bump pkgrel 22 | 23 | 2011-08-13 AkiraYB 24 | 25 | * 0.22-2 : 26 | Change license to GPL2 27 | Remove -t option from install cmd 28 | Use pkgname where applicable 29 | Add mpdscribble.changelog 30 | Update sha256sums 31 | Remove -m option from install cmd 32 | 33 | * mpdscribble.rcd : 34 | Use stat_die instead of stat_fail 35 | Fix creation of empty pidfile 36 | -------------------------------------------------------------------------------- /packages/mpdscribble-rune/mpdscribble.install: -------------------------------------------------------------------------------- 1 | post_install() 2 | { 3 | cat << EOF 4 | For system-wide config, edit /etc/mpdscribble.conf with your information. 5 | 6 | For per-user config, copy /usr/share/doc/mpdscribble/mpdscribble.conf to 7 | ~/.mpdscribble/mpdscribble.conf and make the needed changes. 8 | EOF 9 | } 10 | -------------------------------------------------------------------------------- /packages/mpdscribble-rune/mpdscribble.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=last.fm updater for MPD 3 | Wants=mpd.service 4 | After=mpd.service 5 | 6 | [Service] 7 | Type=forking 8 | PIDFile=/run/mpdscribble.pid 9 | ExecStart=/usr/bin/mpdscribble --pidfile /run/mpdscribble.pid 10 | 11 | [Install] 12 | WantedBy=multi-user.target 13 | -------------------------------------------------------------------------------- /packages/nginx-rune/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: Simone De Gregori 2 | 3 | _cfgdir=/etc/nginx 4 | _tmpdir=/var/lib/nginx 5 | 6 | pkgname=nginx-rune 7 | pkgver=1.4.7 8 | pkgrel=3 9 | pkgdesc="NGiNX HTTP server (RuneAudio)" 10 | arch=('i686' 'x86_64' 'armv6h' 'armv7h') 11 | depends=('pcre' 'zlib' 'apr-util') 12 | makedepends=('git') 13 | url="http://nginx.org" 14 | license=('custom') 15 | conflicts=('nginx') 16 | provides=('nginx') 17 | 18 | backup=(${_cfgdir:1}/fastcgi.conf 19 | ${_cfgdir:1}/fastcgi_params 20 | ${_cfgdir:1}/koi-win 21 | ${_cfgdir:1}/koi-utf 22 | ${_cfgdir:1}/mime.types 23 | ${_cfgdir:1}/nginx.conf 24 | ${_cfgdir:1}/scgi_params 25 | ${_cfgdir:1}/uwsgi_params 26 | ${_cfgdir:1}/win-utf 27 | etc/logrotate.d/nginx) 28 | 29 | source=("http://nginx.org/download/nginx-${pkgver}.tar.gz" 30 | 'service' 31 | 'nginx.logrotate') 32 | 33 | build() { 34 | cd "$srcdir" 35 | 36 | msg "Fetching nginx-push-stream-module" 37 | _modules=(${_modules[@]} --add-module=../nginx-push-stream-module) 38 | if [ -d nginx-push-stream-module ]; then 39 | pushd nginx-push-stream-module 40 | git pull 41 | popd 42 | else 43 | git clone https://github.com/wandenberg/nginx-push-stream-module.git 44 | fi 45 | 46 | cd "$srcdir/nginx-$pkgver" 47 | 48 | msg "Building nginx" 49 | 50 | CFLAGS="-I /usr/include/httpd -I /usr/include/apr-1" ./configure \ 51 | --prefix=$_cfgdir \ 52 | --conf-path=$_cfgdir/nginx.conf \ 53 | --sbin-path=/usr/bin/nginx \ 54 | --pid-path=/var/run/nginx.pid \ 55 | --lock-path=/var/lock/nginx.lock \ 56 | --user=http --group=http \ 57 | --http-log-path=/var/log/runeaudio/runeui.log \ 58 | --error-log-path=/var/log/runeaudio/runeui_error.log \ 59 | --http-client-body-temp-path=$_tmpdir/client-body \ 60 | --http-proxy-temp-path=$_tmpdir/proxy \ 61 | --http-fastcgi-temp-path=$_tmpdir/fastcgi \ 62 | --http-scgi-temp-path=$_tmpdir/scgi \ 63 | --http-uwsgi-temp-path=$_tmpdir/uwsgi \ 64 | --with-file-aio \ 65 | --with-http_gzip_static_module \ 66 | --without-mail_pop3_module \ 67 | --without-mail_imap_module \ 68 | --without-mail_smtp_module \ 69 | --without-http_charset_module \ 70 | --without-http_ssi_module \ 71 | --without-http_userid_module \ 72 | --without-http_access_module \ 73 | --without-http_auth_basic_module \ 74 | --without-http_autoindex_module \ 75 | --without-http_geo_module \ 76 | --without-http_map_module \ 77 | --without-http_split_clients_module \ 78 | --without-http_referer_module \ 79 | --without-http_uwsgi_module \ 80 | --without-http_scgi_module \ 81 | --without-http_memcached_module \ 82 | --without-http_limit_conn_module \ 83 | --without-http_limit_req_module \ 84 | --without-http_empty_gif_module \ 85 | --without-http_browser_module \ 86 | --without-http_upstream_ip_hash_module \ 87 | --without-http_upstream_least_conn_module \ 88 | --without-http_upstream_keepalive_module \ 89 | ${_modules[@]} \ 90 | 91 | 92 | make 93 | } 94 | 95 | package() { 96 | cd "$srcdir"/nginx-$pkgver 97 | make DESTDIR="$pkgdir" install 98 | 99 | sed -e 's|\ 2 | # Development: http://pecl.php.net/package/libevent 3 | 4 | pkgname=php-libevent 5 | pkgver=0.1.0 6 | pkgrel=2 7 | pkgdesc="This extension is a wrapper for libevent - event notification library." 8 | arch=('i686' 'x86_64' 'armv6h' 'armv7h') 9 | url="http://pecl.php.net/package/libevent" 10 | license=('PHP') 11 | depends=('php-rune' 'libevent') 12 | _ininame="libevent.ini" 13 | _inifile="etc/php/conf.d/$_ininame" 14 | backup=("$_inifile") 15 | _filename="libevent-$pkgver.tgz" 16 | source=(http://pecl.php.net/get/$_filename) 17 | md5sums=('SKIP') 18 | _builddir=libevent-$pkgver 19 | 20 | build() { 21 | cd $_builddir 22 | 23 | phpize 24 | ./configure --prefix=/usr 25 | make 26 | #make test 27 | } 28 | 29 | package() { 30 | cd $_builddir 31 | 32 | make INSTALL_ROOT="$pkgdir" install 33 | install -vDm644 "${startdir}/$_ininame" "$pkgdir/$_inifile" 34 | } 35 | 36 | -------------------------------------------------------------------------------- /packages/php-libevent/libevent.ini: -------------------------------------------------------------------------------- 1 | extension=libevent.so 2 | 3 | -------------------------------------------------------------------------------- /packages/php-libevent/php-libevent-0.1.0-2-armv7h.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/php-libevent/php-libevent-0.1.0-2-armv7h.pkg.tar.xz -------------------------------------------------------------------------------- /packages/php-libevent/php-libevent-0.1.0-2-x86_64.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/php-libevent/php-libevent-0.1.0-2-x86_64.pkg.tar.xz -------------------------------------------------------------------------------- /packages/php-pthreads/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: Simone De Gregori 2 | # Development: https://github.com/krakjoe/pthreads 3 | 4 | pkgname=php-pthreads 5 | pkgver=2.0.11 6 | pkgrel=1 7 | pkgdesc="Object Orientated API that allows user-land multi-threading in PHP" 8 | arch=('i686' 'x86_64' 'armv6h' 'armv7h') 9 | url="https://github.com/krakjoe/pthreads" 10 | license=('PHP') 11 | depends=('php-rune') 12 | _ininame="pthreads.ini" 13 | _inifile="etc/php/conf.d/$_ininame" 14 | backup=("$_inifile") 15 | _filename="redis-$pkgver.tgz" 16 | source=(git://github.com/krakjoe/pthreads.git#branch=master) 17 | md5sums=('SKIP') 18 | _builddir=pthreads 19 | 20 | build() { 21 | cd $_builddir 22 | 23 | phpize 24 | ./configure --prefix=/usr --enable-pthreads 25 | make 26 | #make test 27 | } 28 | 29 | package() { 30 | cd $_builddir 31 | 32 | make INSTALL_ROOT="$pkgdir" install 33 | echo "extension=pthreads.so" > "$_ininame" 34 | install -vDm644 "$_ininame" "$pkgdir/$_inifile" 35 | } 36 | 37 | -------------------------------------------------------------------------------- /packages/php-pthreads/php-pthreads-2.0.11-1-armv7h.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/php-pthreads/php-pthreads-2.0.11-1-armv7h.pkg.tar.xz -------------------------------------------------------------------------------- /packages/php-pthreads/php-pthreads-2.0.11-1-x86_64.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/php-pthreads/php-pthreads-2.0.11-1-x86_64.pkg.tar.xz -------------------------------------------------------------------------------- /packages/php-rune/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: Simone De Gregori 2 | 3 | pkgbase=php 4 | pkgname=php-rune 5 | pkgdesc="PHP-FPM 5.5.29 [pthreads] (RuneAudio)" 6 | packager="RuneAudio Team" 7 | pkgver=5.5.29 8 | pkgrel=1 9 | pkgdir=${startdir}/pkg/${pkgname} 10 | arch=('i686' 'x86_64' 'armv6h' 'armv7h') 11 | license=('PHP') 12 | url='http://www.php.net' 13 | makedepends=('file' 'libmcrypt' 'libltdl' 'libpng' 'libjpeg' 'icu' 14 | 'curl' 'bzip2' 'db' 'gmp' 'systemd' 're2c' 'libxml2') 15 | source=("http://www.php.net/distributions/${pkgbase}-${pkgver}.tar.gz" 16 | 'logrotate.d.php-fpm' 'php-fpm.service' 'php-fpm.tmpfiles') 17 | 18 | sha1sums=('SKIP' 19 | '688e35049f78011f514a87506890d56c5a15654d' 20 | '09e9b0a73a921b063ac357faaf422af106b94487' 21 | 'a32b34b8f0262317c865260cf937fcbccbaf8927') 22 | 23 | build() { 24 | cd ${srcdir}/php-${pkgver} 25 | local _phpconfig="--srcdir=../php-${pkgver} \ 26 | --config-cache \ 27 | --prefix=/usr \ 28 | --sbindir=/usr/bin \ 29 | --sysconfdir=/etc/php \ 30 | --localstatedir=/var \ 31 | --with-layout=GNU \ 32 | --with-config-file-path=/etc/php \ 33 | --with-config-file-scan-dir=/etc/php/conf.d \ 34 | --disable-rpath \ 35 | --mandir=/usr/share/man \ 36 | " 37 | 38 | local _phpextensions="--disable-all \ 39 | --disable-cgi \ 40 | --disable-ipv6 \ 41 | --enable-static \ 42 | --enable-fpm \ 43 | --enable-bcmath=static \ 44 | --enable-cli=static \ 45 | --enable-ctype=static \ 46 | --enable-fileinfo=static \ 47 | --enable-mbstring=static \ 48 | --enable-opcache=shared \ 49 | --enable-phar=static \ 50 | --enable-posix=static \ 51 | --enable-shmop=static \ 52 | --enable-sockets=static \ 53 | --enable-sysvmsg=static \ 54 | --enable-sysvsem=static \ 55 | --enable-sysvshm=static \ 56 | --enable-xml=static \ 57 | --enable-simplexml=static \ 58 | --enable-libxml=static \ 59 | --enable-json=static \ 60 | --enable-session=static \ 61 | --enable-filter=static \ 62 | --enable-zip=static \ 63 | --enable-maintainer-zts \ 64 | --enable-zend-signals \ 65 | --with-bz2=static \ 66 | --with-curl=static \ 67 | --with-fpm-systemd \ 68 | --with-gettext=static \ 69 | --with-iconv \ 70 | --with-mcrypt \ 71 | --with-mhash \ 72 | --with-openssl \ 73 | --with-pcre-regex=/usr \ 74 | --with-zlib \ 75 | --with-readline \ 76 | --with-pear \ 77 | --with-tsrm-pthreads \ 78 | --with-fpm-user=http \ 79 | --with-fpm-group=http \ 80 | " 81 | 82 | EXTENSION_DIR=/usr/lib/php/modules 83 | export EXTENSION_DIR 84 | PEAR_INSTALLDIR=/usr/share/pear 85 | export PEAR_INSTALLDIR 86 | 87 | cd ${srcdir}/php-${pkgver} 88 | 89 | # php 90 | mkdir ${srcdir}/build-fpm 91 | cd ${srcdir}/build-fpm 92 | ln -s ../php-${pkgver}/configure 93 | ./configure ${_phpconfig} ${_phpextensions} 94 | make 95 | } 96 | 97 | check() { 98 | cd ${srcdir}/build-fpm 99 | export SNMP_TIMEOUT=1 100 | export SNMP_RETRIES=0 101 | printf "n\n" | make test 102 | echo 103 | } 104 | 105 | package() { 106 | pkgdesc='RuneAudio Optimized FastCGI Process Manager for PHP' 107 | depends=('pcre' 'libxml2' 'bzip2' 'curl' 'systemd') 108 | backup=('etc/php/php.ini') 109 | backup=('etc/php/php-fpm.conf') 110 | backup=('etc/php/pear.conf') 111 | install='php-fpm.install' 112 | 113 | cd ${srcdir}/build-fpm 114 | make -j1 INSTALL_ROOT=${pkgdir} install 115 | install -d -m755 ${pkgdir}/usr/share/pear 116 | # install RuneAudio php configuration 117 | rm -rf ${pkgdir}/etc/php 118 | cp -r ${startdir}/php-rune-config/ ${pkgdir}/etc/php 119 | chmod 755 ${pkgdir}/etc/php 120 | install -D -m755 ${srcdir}/build-fpm/sapi/fpm/php-fpm ${pkgdir}/usr/bin/php-fpm 121 | install -D -m644 ${srcdir}/logrotate.d.php-fpm ${pkgdir}/etc/logrotate.d/php-fpm 122 | install -D -m644 ${srcdir}/php-fpm.tmpfiles ${pkgdir}/usr/lib/tmpfiles.d/php-fpm.conf 123 | install -D -m644 ${srcdir}/php-fpm.service ${pkgdir}/usr/lib/systemd/system/php-fpm.service 124 | make install-pear INSTALL_ROOT=${pkgdir} 125 | rm -rf ${pkgdir}/usr/share/pear/.{channels,depdb,depdblock,filemap,lock,registry} 126 | 127 | # remove static modules 128 | rm -f ${pkgdir}/usr/lib/php/modules/*.a 129 | # remove empty directory 130 | rmdir ${pkgdir}/usr/include/php/include 131 | } 132 | 133 | -------------------------------------------------------------------------------- /packages/php-rune/logrotate.d.php-fpm: -------------------------------------------------------------------------------- 1 | /var/log/php-fpm.log { 2 | missingok 3 | notifempty 4 | delaycompress 5 | postrotate 6 | systemctl reload php-fpm.service || true 7 | endscript 8 | } 9 | -------------------------------------------------------------------------------- /packages/php-rune/php-fpm.conf.in.patch: -------------------------------------------------------------------------------- 1 | --- sapi/fpm/php-fpm.conf.in 2013-11-12 15:17:27.000000000 +0100 2 | +++ sapi/fpm/php-fpm.conf.in 2013-11-12 17:27:21.283279538 +0100 3 | @@ -12,7 +12,7 @@ 4 | ; Relative path can also be used. They will be prefixed by: 5 | ; - the global prefix if it's been set (-p argument) 6 | ; - @prefix@ otherwise 7 | -;include=etc/fpm.d/*.conf 8 | +;include=/etc/php/fpm.d/*.conf 9 | 10 | ;;;;;;;;;;;;;;;;;; 11 | ; Global Options ; 12 | @@ -22,7 +22,7 @@ 13 | ; Pid file 14 | ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@ 15 | ; Default Value: none 16 | -;pid = run/php-fpm.pid 17 | +pid = /run/php-fpm/php-fpm.pid 18 | 19 | ; Error log file 20 | ; If it's set to "syslog", log is sent to syslogd instead of being written 21 | @@ -156,7 +156,8 @@ 22 | ; specific port; 23 | ; '/path/to/unix/socket' - to listen on a unix socket. 24 | ; Note: This value is mandatory. 25 | -listen = 127.0.0.1:9000 26 | +;listen = 127.0.0.1:9000 27 | +listen = /run/php-fpm/php-fpm.sock 28 | 29 | ; Set listen(2) backlog. 30 | ; Default Value: 65535 (-1 on FreeBSD and OpenBSD) 31 | @@ -167,9 +168,9 @@ 32 | ; BSD-derived systems allow connections regardless of permissions. 33 | ; Default Values: user and group are set as the running user 34 | ; mode is set to 0666 35 | -;listen.owner = @php_fpm_user@ 36 | -;listen.group = @php_fpm_group@ 37 | -;listen.mode = 0666 38 | +listen.owner = @php_fpm_user@ 39 | +listen.group = @php_fpm_group@ 40 | +listen.mode = 0660 41 | 42 | ; List of ipv4 addresses of FastCGI clients which are allowed to connect. 43 | ; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original 44 | @@ -466,7 +467,7 @@ 45 | ; Chdir to this directory at the start. 46 | ; Note: relative path can be used. 47 | ; Default Value: current directory or / when chroot 48 | -;chdir = /var/www 49 | +;chdir = /srv/http 50 | 51 | ; Redirect worker stdout and stderr into main error log. If not set, stdout and 52 | ; stderr will be redirected to /dev/null according to FastCGI specs. 53 | -------------------------------------------------------------------------------- /packages/php-rune/php-fpm.install: -------------------------------------------------------------------------------- 1 | post_install() { 2 | if [[ ! -d run/php-fpm ]]; then 3 | usr/bin/systemd-tmpfiles --create php-fpm.conf 4 | fi 5 | } 6 | 7 | post_upgrade() { 8 | post_install 9 | } 10 | -------------------------------------------------------------------------------- /packages/php-rune/php-fpm.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=The PHP FastCGI Process Manager 3 | After=syslog.target network.target 4 | 5 | [Service] 6 | Type=notify 7 | PIDFile=/run/php-fpm/php-fpm.pid 8 | PrivateTmp=true 9 | ExecStart=/usr/bin/php-fpm --nodaemonize --pid /run/php-fpm/php-fpm.pid 10 | ExecReload=/bin/kill -USR2 $MAINPID 11 | 12 | [Install] 13 | WantedBy=multi-user.target 14 | -------------------------------------------------------------------------------- /packages/php-rune/php-fpm.tmpfiles: -------------------------------------------------------------------------------- 1 | d /run/php-fpm 755 root root 2 | -------------------------------------------------------------------------------- /packages/php-rune/php-rune-5.5.27-1-armv7h.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/php-rune/php-rune-5.5.27-1-armv7h.pkg.tar.xz -------------------------------------------------------------------------------- /packages/php-rune/php-rune-5.5.29-1-x86_64.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/php-rune/php-rune-5.5.29-1-x86_64.pkg.tar.xz -------------------------------------------------------------------------------- /packages/php-rune/php-rune-config/conf.d/opcache.ini: -------------------------------------------------------------------------------- 1 | zend_extension=/usr/lib/php/modules/opcache.so 2 | opcache.enable=1 3 | opcache.validate_timestamps=0 4 | opcache.consistency_checks=0 5 | opcache.revalidate_freq=86400 6 | opcache.use_cwd=0 7 | opcache.memory_consumption=12 8 | opcache.interned_strings_buffer=8 9 | opcache.max_accelerated_files=400 10 | opcache.fast_shutdown=1 11 | opcache.enable_cli=1 12 | opcache.save_comments=0 13 | opcache.load_comments=0 14 | ;opcache.error_log=/var/log/runeaudio/php-opcache.log 15 | ;opcache.log_verbosity_level=4 16 | 17 | -------------------------------------------------------------------------------- /packages/php-rune/php-rune-config/fpm.d/command.conf: -------------------------------------------------------------------------------- 1 | [command] 2 | user = http 3 | group = http 4 | listen = /var/run/php-command.sock 5 | ;listen = 127.0.0.1:9002 6 | pm = static 7 | pm.start_servers = 1 8 | pm.max_children = 1 9 | chdir = / 10 | -------------------------------------------------------------------------------- /packages/php-rune/php-rune-config/fpm.d/db.conf: -------------------------------------------------------------------------------- 1 | [db] 2 | user = http 3 | group = http 4 | listen = /var/run/php-db.sock 5 | ;listen = 127.0.0.1:9001 6 | pm = static 7 | pm.start_servers = 1 8 | pm.max_children = 1 9 | chdir = / 10 | -------------------------------------------------------------------------------- /packages/php-rune/php-rune-config/fpm.d/display.conf: -------------------------------------------------------------------------------- 1 | [display] 2 | user = http 3 | group = http 4 | listen = /var/run/php-display.sock 5 | pm = static 6 | pm.max_children = 1 7 | pm.start_servers = 1 8 | chdir = / 9 | ;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com 10 | ;php_flag[display_errors] = off 11 | ;php_admin_value[error_log] = /var/log/fpm-php.www.log 12 | ;php_admin_flag[log_errors] = on 13 | ;php_admin_value[memory_limit] = 32M 14 | 15 | -------------------------------------------------------------------------------- /packages/php-rune/php-rune-config/php-fpm.conf: -------------------------------------------------------------------------------- 1 | ;;;;;;;;;;;;;;;;;;;;; 2 | ; FPM Configuration ; 3 | ;;;;;;;;;;;;;;;;;;;;; 4 | 5 | ; All relative paths in this configuration file are relative to PHP's install 6 | ; prefix (/usr). This prefix can be dynamically changed by using the 7 | ; '-p' argument from the command line. 8 | 9 | ; Include one or more files. If glob(3) exists, it is used to include a bunch of 10 | ; files from a glob(3) pattern. This directive can be used everywhere in the 11 | ; file. 12 | ; Relative path can also be used. They will be prefixed by: 13 | ; - the global prefix if it's been set (-p argument) 14 | ; - /usr otherwise 15 | include=/etc/php/fpm.d/*.conf 16 | 17 | ;;;;;;;;;;;;;;;;;; 18 | ; Global Options ; 19 | ;;;;;;;;;;;;;;;;;; 20 | 21 | [global] 22 | ; Pid file 23 | ; Note: the default prefix is /var 24 | ; Default Value: none 25 | pid = /run/php-fpm/php-fpm.pid 26 | 27 | ; Error log file 28 | ; If it's set to "syslog", log is sent to syslogd instead of being written 29 | ; in a local file. 30 | ; Note: the default prefix is /var 31 | ; Default Value: log/php-fpm.log 32 | ;error_log = log/php-fpm.log 33 | 34 | ; syslog_facility is used to specify what type of program is logging the 35 | ; message. This lets syslogd specify that messages from different facilities 36 | ; will be handled differently. 37 | ; See syslog(3) for possible values (ex daemon equiv LOG_DAEMON) 38 | ; Default Value: daemon 39 | ;syslog.facility = daemon 40 | 41 | ; syslog_ident is prepended to every message. If you have multiple FPM 42 | ; instances running on the same server, you can change the default value 43 | ; which must suit common needs. 44 | ; Default Value: php-fpm 45 | ;syslog.ident = php-fpm 46 | 47 | ; Log level 48 | ; Possible Values: alert, error, warning, notice, debug 49 | ; Default Value: notice 50 | ;log_level = notice 51 | 52 | ; If this number of child processes exit with SIGSEGV or SIGBUS within the time 53 | ; interval set by emergency_restart_interval then FPM will restart. A value 54 | ; of '0' means 'Off'. 55 | ; Default Value: 0 56 | ;emergency_restart_threshold = 0 57 | 58 | ; Interval of time used by emergency_restart_interval to determine when 59 | ; a graceful restart will be initiated. This can be useful to work around 60 | ; accidental corruptions in an accelerator's shared memory. 61 | ; Available Units: s(econds), m(inutes), h(ours), or d(ays) 62 | ; Default Unit: seconds 63 | ; Default Value: 0 64 | ;emergency_restart_interval = 0 65 | 66 | ; Time limit for child processes to wait for a reaction on signals from master. 67 | ; Available units: s(econds), m(inutes), h(ours), or d(ays) 68 | ; Default Unit: seconds 69 | ; Default Value: 0 70 | ;process_control_timeout = 0 71 | 72 | ; The maximum number of processes FPM will fork. This has been design to control 73 | ; the global number of processes when using dynamic PM within a lot of pools. 74 | ; Use it with caution. 75 | ; Note: A value of 0 indicates no limit 76 | ; Default Value: 0 77 | ; process.max = 128 78 | 79 | ; Specify the nice(2) priority to apply to the master process (only if set) 80 | ; The value can vary from -19 (highest priority) to 20 (lower priority) 81 | ; Note: - It will only work if the FPM master process is launched as root 82 | ; - The pool process will inherit the master process priority 83 | ; unless it specified otherwise 84 | ; Default Value: no set 85 | ; process.priority = -19 86 | 87 | ; Send FPM to background. Set to 'no' to keep FPM in foreground for debugging. 88 | ; Default Value: yes 89 | ;daemonize = yes 90 | 91 | ; Set open file descriptor rlimit for the master process. 92 | ; Default Value: system defined value 93 | ;rlimit_files = 1024 94 | 95 | ; Set max core size rlimit for the master process. 96 | ; Possible Values: 'unlimited' or an integer greater or equal to 0 97 | ; Default Value: system defined value 98 | ;rlimit_core = 0 99 | 100 | ; Specify the event mechanism FPM will use. The following is available: 101 | ; - select (any POSIX os) 102 | ; - poll (any POSIX os) 103 | ; - epoll (linux >= 2.5.44) 104 | ; - kqueue (FreeBSD >= 4.1, OpenBSD >= 2.9, NetBSD >= 2.0) 105 | ; - /dev/poll (Solaris >= 7) 106 | ; - port (Solaris >= 10) 107 | ; Default Value: not set (auto detection) 108 | ;events.mechanism = epoll 109 | 110 | ; When FPM is build with systemd integration, specify the interval, 111 | ; in second, between health report notification to systemd. 112 | ; Set to 0 to disable. 113 | ; Available Units: s(econds), m(inutes), h(ours) 114 | ; Default Unit: seconds 115 | ; Default value: 10 116 | ;systemd_interval = 10 117 | 118 | -------------------------------------------------------------------------------- /packages/php-rune/php-rune-config/php.ini: -------------------------------------------------------------------------------- 1 | [PHP] 2 | 3 | engine = On 4 | short_open_tag = Off 5 | asp_tags = Off 6 | precision = 14 7 | output_buffering = 4096 8 | date.timezone = "UTC" 9 | zlib.output_compression = Off 10 | implicit_flush = Off 11 | unserialize_callback_func = 12 | serialize_precision = 17 13 | disable_functions = 14 | disable_classes = 15 | zend.enable_gc = On 16 | expose_php = On 17 | max_execution_time = 30 18 | max_input_time = 60 19 | memory_limit = 128M 20 | display_startup_errors = On 21 | log_errors_max_len = 1024 22 | ignore_repeated_errors = Off 23 | ignore_repeated_source = Off 24 | report_memleaks = On 25 | track_errors = Off 26 | html_errors = Off 27 | variables_order = "GPCS" 28 | request_order = "GP" 29 | register_argc_argv = Off 30 | auto_globals_jit = On 31 | post_max_size = 8M 32 | auto_prepend_file = 33 | auto_append_file = 34 | default_mimetype = "text/html" 35 | include_path = ".:/usr/share/pear" 36 | doc_root = 37 | user_dir = 38 | extension_dir = "/usr/lib/php/modules/" 39 | enable_dl = Off 40 | file_uploads = On 41 | upload_max_filesize = 2M 42 | max_file_uploads = 20 43 | allow_url_fopen = On 44 | allow_url_include = Off 45 | default_socket_timeout = 60 46 | ;extension=pthreads.so 47 | ;required for composer 48 | ;extension=phar.so 49 | ;extension=openssl.so 50 | ;extension=zip.so 51 | ;cli_server.color = On 52 | 53 | [bcmath] 54 | ; Number of decimal digits for all bcmath functions. 55 | ; http://php.net/bcmath.scale 56 | bcmath.scale = 0 57 | 58 | [Session] 59 | ; Handler used to store/retrieve data. 60 | ; http://php.net/session.save-handler 61 | session.save_handler = redis 62 | session.save_path = "tcp://localhost:6379?weight=1" 63 | session.serialize_handler = php_binary 64 | ;session.save_handler = file 65 | ;session.save_path = "/run" 66 | ;session.serialize_handler = php 67 | session.use_strict_mode = 0 68 | session.use_cookies = 1 69 | session.use_only_cookies = 1 70 | session.name = PHPSESSID 71 | session.auto_start = 0 72 | session.cookie_lifetime = 0 73 | session.cookie_path = / 74 | session.cookie_domain = 75 | session.cookie_httponly = 76 | session.gc_probability = 1 77 | session.gc_divisor = 1000 78 | session.gc_maxlifetime = 1440 79 | session.bug_compat_42 = Off 80 | session.bug_compat_warn = Off 81 | session.referer_check = 82 | session.cache_limiter = nocache 83 | session.cache_expire = 180 84 | session.use_trans_sid = 0 85 | session.hash_function = 0 86 | session.hash_bits_per_character = 5 87 | url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry" 88 | 89 | 90 | -------------------------------------------------------------------------------- /packages/php-rune/php.ini.patch: -------------------------------------------------------------------------------- 1 | --- php.ini-production 2013-11-12 15:17:27.000000000 +0100 2 | +++ php.ini-production 2013-11-12 17:28:12.715321014 +0100 3 | @@ -306,7 +306,7 @@ 4 | ; or per-virtualhost web server configuration file. This directive is 5 | ; *NOT* affected by whether Safe Mode is turned On or Off. 6 | ; http://php.net/open-basedir 7 | -;open_basedir = 8 | +open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/ 9 | 10 | ; This directive allows you to disable certain functions for security reasons. 11 | ; It receives a comma-delimited list of function names. This directive is 12 | @@ -703,7 +703,7 @@ 13 | ;;;;;;;;;;;;;;;;;;;;;;;;; 14 | 15 | ; UNIX: "/path1:/path2" 16 | -;include_path = ".:/php/includes" 17 | +include_path = ".:/usr/share/pear" 18 | ; 19 | ; Windows: "\path1;\path2" 20 | ;include_path = ".;c:\php\includes" 21 | @@ -726,7 +726,7 @@ 22 | 23 | ; Directory in which the loadable extensions (modules) reside. 24 | ; http://php.net/extension-dir 25 | -; extension_dir = "./" 26 | +extension_dir = "/usr/lib/php/modules/" 27 | ; On windows: 28 | ; extension_dir = "ext" 29 | 30 | @@ -864,50 +864,48 @@ 31 | ; If you only provide the name of the extension, PHP will look for it in its 32 | ; default extension directory. 33 | ; 34 | -; Windows Extensions 35 | -; Note that ODBC support is built in, so no dll is needed for it. 36 | -; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5) 37 | -; extension folders as well as the separate PECL DLL download (PHP 5). 38 | -; Be sure to appropriately set the extension_dir directive. 39 | -; 40 | -;extension=php_bz2.dll 41 | -;extension=php_curl.dll 42 | -;extension=php_fileinfo.dll 43 | -;extension=php_gd2.dll 44 | -;extension=php_gettext.dll 45 | -;extension=php_gmp.dll 46 | -;extension=php_intl.dll 47 | -;extension=php_imap.dll 48 | -;extension=php_interbase.dll 49 | -;extension=php_ldap.dll 50 | -;extension=php_mbstring.dll 51 | -;extension=php_exif.dll ; Must be after mbstring as it depends on it 52 | -;extension=php_mysql.dll 53 | -;extension=php_mysqli.dll 54 | -;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client 55 | -;extension=php_oci8_11g.dll ; Use with Oracle 11gR2 Instant Client 56 | -;extension=php_openssl.dll 57 | -;extension=php_pdo_firebird.dll 58 | -;extension=php_pdo_mysql.dll 59 | -;extension=php_pdo_oci.dll 60 | -;extension=php_pdo_odbc.dll 61 | -;extension=php_pdo_pgsql.dll 62 | -;extension=php_pdo_sqlite.dll 63 | -;extension=php_pgsql.dll 64 | -;extension=php_pspell.dll 65 | -;extension=php_shmop.dll 66 | - 67 | -; The MIBS data available in the PHP distribution must be installed. 68 | -; See http://www.php.net/manual/en/snmp.installation.php 69 | -;extension=php_snmp.dll 70 | - 71 | -;extension=php_soap.dll 72 | -;extension=php_sockets.dll 73 | -;extension=php_sqlite3.dll 74 | -;extension=php_sybase_ct.dll 75 | -;extension=php_tidy.dll 76 | -;extension=php_xmlrpc.dll 77 | -;extension=php_xsl.dll 78 | +;extension=bcmath.so 79 | +;extension=bz2.so 80 | +;extension=calendar.so 81 | +extension=curl.so 82 | +;extension=dba.so 83 | +;extension=enchant.so 84 | +;extension=exif.so 85 | +;extension=ftp.so 86 | +;extension=gd.so 87 | +extension=gettext.so 88 | +;extension=gmp.so 89 | +;extension=iconv.so 90 | +;extension=imap.so 91 | +;extension=intl.so 92 | +;extension=ldap.so 93 | +;extension=mcrypt.so 94 | +;extension=mssql.so 95 | +;extension=mysqli.so 96 | +;extension=mysql.so 97 | +;extension=odbc.so 98 | +;zend_extension=opcache.so 99 | +;extension=openssl.so 100 | +;extension=pdo_mysql.so 101 | +;extension=pdo_odbc.so 102 | +;extension=pdo_pgsql.so 103 | +;extension=pdo_sqlite.so 104 | +;extension=pgsql.so 105 | +;extension=phar.so 106 | +;extension=posix.so 107 | +;extension=pspell.so 108 | +;extension=shmop.so 109 | +;extension=snmp.so 110 | +;extension=soap.so 111 | +;extension=sockets.so 112 | +;extension=sqlite3.so 113 | +;extension=sysvmsg.so 114 | +;extension=sysvsem.so 115 | +;extension=sysvshm.so 116 | +;extension=tidy.so 117 | +;extension=xmlrpc.so 118 | +;extension=xsl.so 119 | +;extension=zip.so 120 | 121 | ;;;;;;;;;;;;;;;;;;; 122 | ; Module Settings ; 123 | -------------------------------------------------------------------------------- /packages/phpiredis-rune/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: Simone De Gregori 2 | # Development: https://github.com/nrk/phpiredis 3 | 4 | pkgname=phpiredis-rune 5 | pkgver=1.0.0 6 | pkgrel=3 7 | pkgdesc="PHP low level extension for Redis" 8 | arch=('i686' 'x86_64' 'armv6h' 'armv7h') 9 | url="https://github.com/nrk/phpiredis" 10 | license=('PHP') 11 | depends=('php-rune' 'hiredis') 12 | ininame="phpiredis.ini" 13 | inifile="etc/php/conf.d/${ininame}" 14 | source=(git://github.com/nrk/phpiredis.git) 15 | md5sums=('SKIP') 16 | 17 | build() { 18 | cd ${srcdir}/phpiredis 19 | phpize 20 | ./configure --prefix=/usr --enable-phpiredis 21 | make 22 | #make test 23 | } 24 | 25 | package() { 26 | cd ${srcdir}/phpiredis 27 | 28 | make INSTALL_ROOT="${pkgdir}" install 29 | echo "extension=phpiredis.so" > "${ininame}" 30 | install -vDm644 "${ininame}" "$pkgdir/${inifile}" 31 | } 32 | -------------------------------------------------------------------------------- /packages/phpiredis-rune/phpiredis-rune-1.0.0-2-armv7h.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/phpiredis-rune/phpiredis-rune-1.0.0-2-armv7h.pkg.tar.xz -------------------------------------------------------------------------------- /packages/phpiredis-rune/phpiredis-rune-1.0.0-3-x86_64.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/phpiredis-rune/phpiredis-rune-1.0.0-3-x86_64.pkg.tar.xz -------------------------------------------------------------------------------- /packages/phpredis-rune/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: Simone De Gregori 2 | # Development: https://github.com/nicolasff/phpredis 3 | 4 | pkgname=phpredis-rune 5 | pkgver=2.2.7 6 | pkgrel=2 7 | pkgdesc="A PHP extension for Redis" 8 | arch=('i686' 'x86_64' 'armv6h' 'armv7h') 9 | url="https://github.com/nicolasff/phpredis" 10 | license=('PHP') 11 | depends=('php-rune') 12 | ininame="redis.ini" 13 | inifile="etc/php/conf.d/${ininame}" 14 | source=(git://github.com/nicolasff/phpredis.git) 15 | md5sums=('SKIP') 16 | builddir=phpredis 17 | 18 | build() { 19 | cd ${builddir} 20 | 21 | phpize 22 | ./configure --prefix=/usr --enable-redis 23 | make 24 | #make test 25 | } 26 | 27 | package() { 28 | cd ${builddir} 29 | 30 | make INSTALL_ROOT="$pkgdir" install 31 | echo "extension=redis.so" > "${ininame}" 32 | install -vDm644 "${ininame}" "$pkgdir/${inifile}" 33 | } 34 | 35 | -------------------------------------------------------------------------------- /packages/phpredis-rune/phpredis-rune-2.2.7-1-armv7h.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/phpredis-rune/phpredis-rune-2.2.7-1-armv7h.pkg.tar.xz -------------------------------------------------------------------------------- /packages/samba-rune/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: Simone De Gregori 2 | 3 | pkgname=samba-rune 4 | pkgver=2.2.12 5 | pkgrel=2 6 | pkgdesc='RuneAudio lightweight Samba 2.2' 7 | url='http://www.samba.org/' 8 | license=('GPL') 9 | arch=('i686' 'x86_64' 'armv6h' 'armv7h') 10 | provides=("samba=${pkgver}") 11 | conflicts=('samba') 12 | replaces=('samba') 13 | source=("http://ftp.samba.org/pub/samba/old-versions/samba-${pkgver}.tar.gz" 14 | 'smb-prod.conf' 15 | 'smb-dev.conf' 16 | 'install') 17 | 18 | sha1sums=('9f8cf8bef5f7aace692d06c7d1f60be61b046bad' 19 | '59523ae8098bff5eff651acd11fd421657b25a19' 20 | '95e736e490e0b13a057ab76e1ba12482ebe47b3c' 21 | '170a0fb0a504653ee290ba5dfc277e169d46be19') 22 | 23 | install=install 24 | 25 | build() { 26 | cd "${srcdir}/samba-${pkgver}/source" 27 | ./configure \ 28 | --prefix=${pkgdir}/usr \ 29 | --sysconfdir=/etc \ 30 | --without-fhs \ 31 | --with-configdir=/etc/samba \ 32 | --with-logfilebase=/var/log \ 33 | --with-privatedir=/run/samba \ 34 | --with-lockdir=/run/samba \ 35 | --disable-debug \ 36 | --disable-cups \ 37 | --without-smbwrapper \ 38 | --without-afs \ 39 | --without-dce-dfs \ 40 | --without-krb4 \ 41 | --without-krb5 \ 42 | --without-automount \ 43 | --without-smbmount \ 44 | --without-pam \ 45 | --without-pam_smbpass \ 46 | --without-tdbsam \ 47 | --without-ldapsam \ 48 | --without-nisplussam \ 49 | --without-nisplus-home \ 50 | --without-ssl \ 51 | --without-syslog \ 52 | --without-profiling-data \ 53 | --without-quotas \ 54 | --without-utmp \ 55 | --without-msdfs \ 56 | --without-libsmbclient \ 57 | --without-spinlocks \ 58 | --without-acl-support \ 59 | --without-sendfile-support \ 60 | --without-winbind \ 61 | --without-winbind-auth-challenge \ 62 | --without-winbind-ldap-hack 63 | make 64 | } 65 | 66 | package() { 67 | rm -rf ${pkgdir}/usr/man 68 | rm -rf ${pkgdir}/usr/share/samba/swat 69 | cd "${srcdir}/samba-${pkgver}/source" 70 | mkdir ${pkgdir}/tmp 71 | mkdir ${pkgdir}/tmp/samba 72 | make DESTDIR="${pkgdir}" install 73 | install -Dm644 "${startdir}"/smb-prod.conf "${pkgdir}"/etc/samba/smb-prod.conf 74 | install -Dm644 "${startdir}"/smb-dev.conf "${pkgdir}"/etc/samba/smb-dev.conf 75 | install -Dm644 "${startdir}"/tmpfiles.d "${pkgdir}"/usr/lib/tmpfiles.d/samba.conf 76 | #install -Dm644 "${pkgdir}"/usr/lib/systemd/{system,user}/samba.service 77 | #sed '/WantedBy=/c WantedBy=default.target' -i "${pkgdir}"/usr/lib/systemd/user/samba.service 78 | } 79 | 80 | -------------------------------------------------------------------------------- /packages/samba-rune/install: -------------------------------------------------------------------------------- 1 | post_install() { 2 | ln -s /etc/samba/smb-prod.conf /etc/samba/smb.conf || true 3 | rm -rf /usr/share/samba/swat || true 4 | rm -rf /usr/share/samba/man || true 5 | } 6 | -------------------------------------------------------------------------------- /packages/samba-rune/samba-rune-2.2.12-1-armv6h.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/samba-rune/samba-rune-2.2.12-1-armv6h.pkg.tar.xz -------------------------------------------------------------------------------- /packages/samba-rune/samba-rune-2.2.12-3-x86_64.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/samba-rune/samba-rune-2.2.12-3-x86_64.pkg.tar.xz -------------------------------------------------------------------------------- /packages/samba-rune/smb-dev.conf: -------------------------------------------------------------------------------- 1 | #======================= Global Settings ======================= 2 | 3 | [global] 4 | 5 | workgroup = WORKGROUP 6 | server string = RuneAudio Player 7 | dns proxy = no 8 | log level = 0 9 | syslog = 0 10 | security = share 11 | guest account = root 12 | map to guest = bad user 13 | load printers = no 14 | printing = bsd 15 | printcap name = /dev/null 16 | disable spoolss = yes 17 | domain master = no 18 | local master = no 19 | preferred master = no 20 | socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=131072 SO_SNDBUF=131072 SO_KEEPALIVE 21 | 22 | #======================= Share Definitions ======================= 23 | 24 | directory mask = 0775 25 | create mask = 0775 26 | 27 | [MusicStore] 28 | comment = Music Datastore root (/mnt/MPD) 29 | path = /mnt/MPD/ 30 | read only = no 31 | public = yes 32 | follow symlinks = yes 33 | wide links = yes 34 | 35 | [FsRoot] 36 | comment = RuneAudio Player filesystem root (/) 37 | path = / 38 | read only = no 39 | public = yes 40 | follow symlinks = yes 41 | wide links = yes 42 | 43 | [Frontend] 44 | comment = RuneAudio frontend (/var/www/) 45 | path = /var/www/ 46 | read only = no 47 | public = yes 48 | follow symlinks = yes 49 | wide links = yes 50 | -------------------------------------------------------------------------------- /packages/samba-rune/smb-prod.conf: -------------------------------------------------------------------------------- 1 | #======================= Global Settings ======================= 2 | 3 | [global] 4 | 5 | workgroup = WORKGROUP 6 | server string = RuneAudio Player 7 | dns proxy = no 8 | log level = 0 9 | syslog = 0 10 | security = share 11 | guest account = root 12 | map to guest = bad user 13 | load printers = no 14 | printing = bsd 15 | printcap name = /dev/null 16 | disable spoolss = yes 17 | domain master = no 18 | local master = no 19 | preferred master = no 20 | socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=131072 SO_SNDBUF=131072 SO_KEEPALIVE 21 | 22 | #======================= Share Definitions ======================= 23 | 24 | directory mask = 0775 25 | create mask = 0775 26 | 27 | [MusicStore] 28 | comment = RuneAudio MusicStore 29 | path = /mnt/MPD/ 30 | read only = no 31 | public = yes 32 | follow symlinks = yes 33 | wide links = yes 34 | -------------------------------------------------------------------------------- /packages/samba-rune/tmpfiles.d: -------------------------------------------------------------------------------- 1 | d /run/samba 0755 root root 2 | -------------------------------------------------------------------------------- /packages/shairport-rune/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: Simone De Gregori 2 | 3 | pkgname=shairport-rune 4 | pkgver=1.1.1 5 | pkgrel=1 6 | pkgdesc="AirPlay-compatible audio receiver (RuneAudio)" 7 | url='http://github.com/abrasive/shairport' 8 | arch=('i686' 'x86_64' 'armv6h' 'armv7h') 9 | license=('public-domain') 10 | groups=('daemons') 11 | depends=('glibc' 'pkgconfig' 'libao' 'openssl') 12 | provides=('shairport-rune') 13 | conflicts=('shairport') 14 | source=(git://github.com/abrasive/shairport.git 15 | 'shairport.service' 16 | 'player.c.runeaudio.patch') 17 | sha1sums=('SKIP' 18 | 'e7ad3cd856e3f9ccf6a55f258c95c39345c5e05d' 19 | '2eff9768be2f763b4ec7c877558fd64bd40523d9') 20 | build() { 21 | cd "${srcdir}"/shairport 22 | patch -p0 < "${startdir}"/player.c.runeaudio.patch 23 | make 24 | } 25 | 26 | package() { 27 | cd "${srcdir}"/shairport 28 | make PREFIX="${pkgdir}/usr" install 29 | install -m 755 -d "${pkgdir}"/usr/lib/systemd/system 30 | install -m 644 "${startdir}"/shairport.service "${pkgdir}"/usr/lib/systemd/system/shairport.service 31 | } 32 | -------------------------------------------------------------------------------- /packages/shairport-rune/player.c.runeaudio.patch: -------------------------------------------------------------------------------- 1 | --- player.c 2014-07-26 08:41:32.282686000 -0600 2 | +++ player.c.rune 2014-07-26 08:53:53.962686000 -0600 3 | @@ -502,6 +502,10 @@ 4 | } 5 | 6 | int player_play(stream_cfg *stream) { 7 | + /* RuneAudio hack */ 8 | + command_start(); 9 | + usleep(100000); 10 | + /* RuneAudio hack */ 11 | if (config.buffer_start_fill > BUFFER_FRAMES) 12 | die("specified buffer starting fill %d > buffer size %d", 13 | config.buffer_start_fill, BUFFER_FRAMES); 14 | @@ -516,7 +520,6 @@ 15 | #endif 16 | 17 | please_stop = 0; 18 | - command_start(); 19 | config.output->start(sampling_rate); 20 | pthread_create(&player_thread, NULL, player_thread_func, NULL); 21 | -------------------------------------------------------------------------------- /packages/shairport-rune/shairport-rune-1.1.1-1-armv7h.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/shairport-rune/shairport-rune-1.1.1-1-armv7h.pkg.tar.xz -------------------------------------------------------------------------------- /packages/shairport-rune/shairport-rune-1.1.1-1-x86_64.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/shairport-rune/shairport-rune-1.1.1-1-x86_64.pkg.tar.xz -------------------------------------------------------------------------------- /packages/shairport-rune/shairport.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Shairport AirTunes receiver 3 | After=sound.target 4 | Requires=avahi-daemon.service 5 | After=avahi-daemon.service 6 | 7 | [Service] 8 | ExecStart=/usr/bin/shairport -w --name=RuneAudio --on-start=/var/www/command/airplay_toggle --on-stop=/var/www/command/airplay_toggle -o alsa -- -d hw:0,0 9 | Restart=always 10 | 11 | [Install] 12 | WantedBy=multi-user.target 13 | -------------------------------------------------------------------------------- /packages/spop-rune/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: Simone De Gregori 2 | 3 | pkgname=spop-rune 4 | pkgver=0.0.3 5 | pkgrel=1 6 | pkgdesc="Spotify client daemon (RuneAudio)" 7 | url='https://github.com/Schnouki/spop' 8 | arch=('i686' 'x86_64' 'armv6h' 'armv7h') 9 | license=('gplv3') 10 | groups=('daemons') 11 | depends=('glibc' 'libspotify' 'libao' 'libsoup' 'libnotify' 'dbus-glib' 'json-glib') 12 | makedepends=('cmake' 'python2') 13 | provides=('spop') 14 | conflicts=('spop') 15 | source=(git://github.com/Schnouki/spop.git) 16 | sha1sums=('SKIP') 17 | 18 | build() { 19 | cd "${srcdir}"/spop 20 | cmake -Wdev -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX="${pkgdir}"/usr 21 | make 22 | } 23 | 24 | package() { 25 | cd "$srcdir"/spop 26 | mkdir "${pkgdir}"/etc/ 27 | mkdir "${pkgdir}"/etc/spop 28 | cp "${startdir}"/spopd.conf "${pkgdir}"/etc/spop/ 29 | make PREFIX="${pkgdir}"/usr install 30 | } 31 | -------------------------------------------------------------------------------- /packages/spop-rune/spop-rune-0.0.3-1-armv7h.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/spop-rune/spop-rune-0.0.3-1-armv7h.pkg.tar.xz -------------------------------------------------------------------------------- /packages/spop-rune/spop-rune-0.0.3-1-x86_64.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/spop-rune/spop-rune-0.0.3-1-x86_64.pkg.tar.xz -------------------------------------------------------------------------------- /packages/spop-rune/spopd.conf: -------------------------------------------------------------------------------- 1 | # RuneAudio SPOP configuration 2 | # SPOP Spotify client daemon by Thomas Jost (Schnouki) 3 | # GitHub repo: https://github.com/Schnouki/spop 4 | 5 | ### Spotify auth settings ### 6 | [spop] 7 | spotify_username = PASS 8 | spotify_password = USER 9 | 10 | ### Audio settings ### 11 | audio_output = ao 12 | high_bitrate = true 13 | offline_high_bitrate = true 14 | 15 | ### Cache settings ### 16 | #cache_size = 0 17 | cache_path = 18 | settings_path = /tmp/spop 19 | 20 | ### Network settings ### 21 | #listen_address = 127.0.0.1 22 | #listen_port = 6602 23 | ## proxy_config 24 | #proxy=http://proxy.lan:3128 25 | #proxy_username= 26 | #proxy_password= 27 | 28 | ### System settings ### 29 | log_file = /var/log/runeaudio/spopd.log 30 | plugins = scrobble 31 | 32 | [scrobble] 33 | # API endpoint of the scrobbling service you're using. 34 | # - Last.FM: http://post.audioscrobbler.com:80/ 35 | # - Libre.FM: http://turtle.libre.fm/ 36 | api_endpoint = http://post.audioscrobbler.com:80/ 37 | username = USER 38 | password = PASS 39 | -------------------------------------------------------------------------------- /packages/upmpdcli-rune/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: Simone De Gregori 2 | 3 | pkgname=upmpdcli-rune 4 | _pkgname=upmpdcli 5 | pkgver=0.12 6 | pkgrel=1 7 | pkgdesc="an UPnP front-end to the Music Player Daemon" 8 | url="http://www.lesbonscomptes.com/upmpdcli/" 9 | license="GPL" 10 | depends=('libupnpp-rune') 11 | builddepends=('autoconf') 12 | arch=('i686' 'x86_64' 'armv6h' 'armv7h') 13 | source=("git://github.com/medoc92/upmpdcli.git" 14 | "upmpdcli.conf" 15 | "runeaudio.png") 16 | sha1sums=('SKIP' 17 | '8ae35924a0fd4de7424eb9a94560331bd4de47b9' 18 | '8cecfbf17d56aa342c9b0111fdae866713f7e067') 19 | install=upmpdcli.install 20 | build() { 21 | 22 | cd ${srcdir}/${_pkgname} 23 | ./autogen.sh 24 | ./configure --prefix=/usr --sysconfdir=/etc 25 | make 26 | } 27 | 28 | package() { 29 | cd ${srcdir}/${_pkgname} 30 | make DESTDIR="${pkgdir}/" install 31 | mkdir -p ${pkgdir}/etc/ 32 | cp ${startdir}/upmpdcli.conf ${pkgdir}/etc/ 33 | cp ${startdir}/runeaudio.png ${pkgdir}/usr/share/upmpdcli/ 34 | install -Dm644 ${startdir}/upmpdcli.service ${pkgdir}/usr/lib/systemd/system/upmpdcli.service 35 | } 36 | 37 | -------------------------------------------------------------------------------- /packages/upmpdcli-rune/install: -------------------------------------------------------------------------------- 1 | post_install() { 2 | getent group upmpdcli &>/dev/null || groupadd -r upmpdcli >/dev/null 3 | getent passwd upmpdcli &>/dev/null || useradd -r -u upmpdcli -g upmpdcli -s /bin/false >/dev/null 4 | } 5 | 6 | post_remove() { 7 | getent passwd upmpdcli &>/dev/null && userdel upmpdcli >/dev/null 8 | getent group upmpdcli &>/dev/null && groupdel upmpdcli >/dev/null 9 | true 10 | } 11 | -------------------------------------------------------------------------------- /packages/upmpdcli-rune/runeaudio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/upmpdcli-rune/runeaudio.png -------------------------------------------------------------------------------- /packages/upmpdcli-rune/upmpdcli-rune-0.11-1-armv7h.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/upmpdcli-rune/upmpdcli-rune-0.11-1-armv7h.pkg.tar.xz -------------------------------------------------------------------------------- /packages/upmpdcli-rune/upmpdcli-rune-0.12-1-x86_64.pkg.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuneAudio/RuneOS/c861d52cadbd6f1c71bb972383122b22cd1280b7/packages/upmpdcli-rune/upmpdcli-rune-0.12-1-x86_64.pkg.tar.xz -------------------------------------------------------------------------------- /packages/upmpdcli-rune/upmpdcli.conf: -------------------------------------------------------------------------------- 1 | # Configuration file for upmpdcli, the UPnP Media Renderer front-end to MPD 2 | 3 | # Note: the command line options have higher priorities than the values in 4 | # this file. 5 | 6 | # Host MPD runs on. Defaults to localhost. This can also be specified as -h host 7 | #mpdhost = localhost 8 | 9 | # Port for MPD. Can also be specified as -p port 10 | #mpdport = 6600 11 | 12 | # MPD password 13 | #mpdpassword = 14 | 15 | # Displayed "Friendly Name" for the UPnP Media Renderer 16 | friendlyname = RuneAudio 17 | 18 | # icon 19 | iconpath = /usr/share/upmpdcli/runeaudio.png 20 | 21 | # Log file name. Defaults to stderr. This can also be specified as 22 | # -d logfilename 23 | logfilename = /var/log/runeaudio/upmpdcli.log 24 | 25 | # Log level. 0-4. Can also be specified as -l loglevel. 26 | loglevel = 0 27 | 28 | # Network interface to use for UPnP. 29 | #upnpiface = 30 | # IP address to use for UPnP. Alternative to using an interface name 31 | #upnpip = 32 | # Port number used for UPnP. 33 | #upnpport = 34 | 35 | # Decide if we offer the OpenHome services. 0 or 1. 36 | # The default is 'yes' as OpenHome queuing is superior for most usages. 37 | openhome = 1 38 | 39 | # Save queue metadata to disk to allow persistence across restart, like MPD. 40 | ohmetapersist = 1 41 | -------------------------------------------------------------------------------- /packages/upmpdcli-rune/upmpdcli.install: -------------------------------------------------------------------------------- 1 | post_install() { 2 | getent group upmpdcli &>/dev/null || groupadd -r upmpdcli >/dev/null 3 | getent passwd upmpdcli &>/dev/null || useradd upmpdcli -g upmpdcli -s /bin/false >/dev/null 4 | } 5 | 6 | post_remove() { 7 | getent passwd upmpdcli &>/dev/null && userdel upmpdcli >/dev/null 8 | getent group upmpdcli &>/dev/null && groupdel upmpdcli >/dev/null 9 | true 10 | } 11 | -------------------------------------------------------------------------------- /packages/upmpdcli-rune/upmpdcli.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Upmpdcli UPnP/dlna receiver 3 | After=sound.target 4 | Requires=mpd.service 5 | After=mpd.service 6 | 7 | [Service] 8 | ExecStart=/usr/bin/upmpdcli -c /etc/upmpdcli.conf 9 | Restart=always 10 | 11 | [Install] 12 | WantedBy=multi-user.target 13 | -------------------------------------------------------------------------------- /scripts/cookbook_dev_OLD.txt: -------------------------------------------------------------------------------- 1 | ######################################### 2 | # RuneAudio v0.3-beta cookbook # 3 | # written by: Orion (development image) # 4 | # HW platform: RuneVM (06) # 5 | # update: 20140809 # 6 | ######################################### 7 | 8 | # install base ArchLinux system (follow guide https://wiki.archlinux.org/index.php/Installation_guide, choose syslinux bootloader 9 | 10 | # install NTP package (3.87 MiB) 11 | pacman -S ntp --noconfirm 12 | # first time sync 13 | ntpdate pool.ntp.org 14 | 15 | # general system update 16 | pacman -Syu --noconfirm 17 | 18 | 19 | ################################## 20 | ### -- VM installation only -- ### 21 | ################################## 22 | pacman -S open-vm-tools --noconfirm 23 | 24 | # install openvpn (0.82 MiB) 25 | pacman -S openvpn 26 | systemctl enable vmtoolsd 27 | systemctl start vmtoolsd 28 | 29 | # install openssh daemon (6 MiB) 30 | pacman -S openssh --noconfirm 31 | 32 | # install Redis (1.53 MiB) 33 | pacman -S redis --noconfirm 34 | 35 | 36 | ############################ 37 | ### -- optional tools -- ### 38 | ############################ 39 | # install midnight commander (9.55 MiB) 40 | pacman -S mc --noconfirm 41 | 42 | # install mlocate (0.35 MiB) 43 | pacman -S mlocate --noconfirm 44 | 45 | # install screen terminal multiplexer 46 | pacman -S screen --noconfirm 47 | 48 | ########################################### 49 | ### -- devel tools for package build -- ### 50 | ########################################### 51 | # install base-devel (136.77 MiB) 52 | pacman -S base-devel --noconfirm 53 | 54 | # install ed (0.09 MiB) 55 | pacman -S ed --noconfirm 56 | 57 | # install re2c (0.23 MiB) 58 | pacman -S re2c --noconfirm 59 | 60 | # install bc (0.18 MiB) 61 | pacman -S bc --noconfirm 62 | 63 | # install xmlto (10.68 MiB) 64 | pacman -S xmlto --noconfirm 65 | 66 | # install docbook-xsl (15.24 MiB) 67 | pacman -S docbook-xsl --noconfirm 68 | 69 | # install git support (22.47 MiB) 70 | pacman -S git --noconfirm 71 | 72 | # install yasm 73 | pacman -S yasm --noconfirm 74 | 75 | 76 | ######################################### 77 | ### -- additional system libraries -- ### 78 | ######################################### 79 | # install libmcrypt (0.25 MiB) 80 | pacman -S libmcrypt --noconfirm 81 | 82 | # install libjpeg-turbo (1.15 MiB) 83 | pacman -S libjpeg --noconfirm 84 | 85 | # install apr-util (nginx req.) (1.63 MiB) 86 | pacman -S apr-util --noconfirm 87 | 88 | 89 | ########################## 90 | ### -- system tools -- ### 91 | ########################## 92 | # install atop (0.44 MiB) 93 | pacman -S atop --noconfirm 94 | 95 | # install wget (3.05 MiB) 96 | pacman -S wget --noconfirm 97 | 98 | # install ethtool (0.25 MiB) 99 | pacman -S ethtool --noconfirm 100 | 101 | # install mkinitcpio (*0.21 MiB) 102 | pacman -S mkinitcpio --noconfirm 103 | 104 | 105 | ########################### 106 | ### -- network tools -- ### 107 | ########################### 108 | # install avahi (2.30 MiB) 109 | pacman -S avahi --noconfirm 110 | 111 | # install nettools (0.49 MiB) 112 | pacman -S net-tools --noconfirm 113 | 114 | # install ifplugd (0.13 MiB) 115 | pacman -S ifplugd --noconfirm 116 | 117 | # install wireless tools (0.33 MiB) 118 | pacman -S wireless_tools --noconfirm 119 | 120 | # install iw (1.18 MiB) 121 | pacman -S iw --noconfirm 122 | 123 | # install hostapd (0.85 MiB) 124 | pacman -S hostapd --noconfirm 125 | 126 | # install nfs-utils (2.49 MiB) 127 | pacman -S nfs-utils --noconfirm 128 | 129 | # install netcat (0.36 MiB) 130 | pacman -S openbsd-netcat --noconfirm 131 | 132 | 133 | ############################## 134 | ### -- filesystem tools -- ### 135 | ############################## 136 | # install NTFS support (1.50 MiB) 137 | pacman -S ntfs-3g --noconfirm 138 | 139 | # install dosfstools (0.25 MiB) 140 | pacman -S dosfstools --noconfirm 141 | 142 | # install exFAT support (0.19 MiB) 143 | pacman -S exfat-utils --noconfirm 144 | 145 | # install sshfs support (0.07 MiB) 146 | pacman -S sshfs --noconfirm 147 | 148 | # install cifs-utils (0.63 MiB) 149 | pacman -S cifs-utils --noconfirm 150 | 151 | # install ftpfs (0.06 MiB) 152 | pacman -S curlftpfs --noconfirm 153 | 154 | # install USB automount daemon (0.34 MiB) 155 | # >>> REMEMBER to enable kernel polling when using devmon without udisks: 156 | # http://ignorantguru.github.com/udevil/#polling 157 | pacman -S udevil --noconfirm 158 | 159 | 160 | ######################### 161 | ### -- AUDIO stack -- ### 162 | ######################### 163 | # install ALSA utils (9.66 MiB) 164 | pacman -S alsa-utils --noconfirm 165 | 166 | # install SOX (3.08 MiB) 167 | pacman -S sox --noconfirm 168 | 169 | # install Jack (2.56 MiB) 170 | pacman -S jack --noconfirm 171 | 172 | # install NetJACK driver (0.15 MiB) 173 | pacman -S celt --noconfirm 174 | 175 | 176 | ############################ 177 | ### -- install RuneUI -- ### 178 | ############################ 179 | cd / 180 | ln -s /srv/http/ /var/www 181 | cd /var/www 182 | 183 | # clone RuneUI git repo 184 | git clone https://github.com/RuneAudio/RuneUI.git . 185 | 186 | 187 | ############################## 188 | # -- setup filesystem ACL -- # 189 | ############################## 190 | # setup tmpfs directory 191 | chmod 777 /run 192 | 193 | # setup webserver directory 194 | chown -R http.http /srv/http/ 195 | chmod 644 $(find /srv/http/ -type f) 196 | chmod 755 $(find /srv/http/ -type d) 197 | chmod -R 755 /srv/http/command/ 198 | 199 | # setup log directory 200 | rm -r /var/log/* 201 | mkdir /var/log/runeaudio/ 202 | 203 | # install motd 204 | cp /var/www/app/config/_os/etc/motd /etc/ 205 | cp /var/www/app/config/_os/etc/issue /etc/ 206 | 207 | 208 | # ----->>>> BUILD CUSTOM PACKAGES <<<<----- # 209 | 210 | # clone RuneOS repo 211 | git clone https://github.com/RuneAudio/RuneOS.git /usr/local/src/RuneOS 212 | 213 | ################################# 214 | # -- build hfsutils v3.2.6-4 -- # 215 | ################################# 216 | # setup pkgdir 217 | cd /usr/local/src 218 | mkdir hfsutils 219 | cd hfsutils 220 | wget http://pkgbuild.com/git/aur-mirror.git/plain/hfsutils/PKGBUILD 221 | wget http://pkgbuild.com/git/aur-mirror.git/plain/hfsutils/Makefile-install.patch 222 | makepkg -s --asroot 223 | 224 | # install hfsutils (0.15 MiB) 225 | pacman -U hfsutils-3.2.6-4-x86_64.pkg.tar.xz --noconfirm 226 | 227 | 228 | ################################ 229 | # -- build php-rune v5.5.12 -- # 230 | ################################ 231 | # php deps 232 | pacman -S icu --noconfirm 233 | pacman -S libpng --noconfirm 234 | 235 | # setup pkgdir 236 | cp -r /var/www/app/config/_os/usr/local/src/php-rune /usr/local/src/php-rune 237 | cd /usr/local/src/php-rune 238 | ln -s PKGBUILD.x86_64 PKGBUILD 239 | makepkg --asroot 240 | 241 | # install php-rune (23.02 MiB) 242 | pacman -U php-rune-5.5.12-1-x86_64.pkg.tar.xz 243 | 244 | # install pthreads support 245 | pecl install channel://pecl.php.net/pthreads-2.0.7 246 | 247 | # install Redis support (phpredis) 248 | cd /usr/local/src 249 | git clone https://github.com/nicolasff/phpredis.git 250 | cd phpredis 251 | phpize 252 | ./configure 253 | make && make install 254 | 255 | 256 | ################################# 257 | # -- build nginx-rune v1.4.7 -- # 258 | ################################# 259 | # setup pkgdir 260 | cp -r /var/www/app/config/_os/usr/local/src/nginx-rune /usr/local/src/nginx-rune 261 | cd /usr/local/src/nginx-rune 262 | ln -s PKGBUILD.x86_64 PKGBUILD 263 | makepkg --asroot 264 | 265 | # install nginx-rune (1.02 MiB) 266 | pacman -U nginx-rune-1.4.7-1-x86_64.pkg.tar.xz 267 | 268 | 269 | ################################# 270 | # -- build mpd-rune v0.18.10 -- # 271 | ################################# 272 | # setup pkgdir 273 | cp -r /var/www/app/config/_os/usr/local/src/mpd-rune /usr/local/src/mpd-rune 274 | cd /usr/local/src/mpd-rune 275 | ln -s PKGBUILD.x86_64 PKGBUILD 276 | 277 | # standard MPD package dependencies 278 | #-------------------- 279 | # audiofile-0.3.6-2 avahi-0.6.31-12 damageproto-1.2.1-2 elfutils-0.158-3 enca-1.15-1 faad2-2.7-4 ffmpeg-1:2.2.2-3 fixesproto-5.0-2 fontconfig-2.11.1-1 freetype2-2.5.3-2 fribidi-0.19.6-1 gnutls-3.3.2-1 280 | # graphite-1:1.2.4-1 gsm-1.0.13-7 harfbuzz-0.9.28-1 inputproto-2.3-1 jack-0.124.1-1 json-c-0.12-2 lame-3.99.5-2 libao-1.2.0-1 libass-0.11.2-1 libasyncns-0.8-5 libbluray-0.5.0-1 libdaemon-0.14-2 libdrm-2.4.54-1 281 | # libice-1.0.8-2 libid3tag-0.15.1b-8 libjpeg-turbo-1.3.1-1 libmad-0.15.1b-7 libmms-0.6.2-1 libmodplug-0.8.8.5-1 libmpdclient-2.9-1 libpciaccess-0.13.2-2 libpng-1.6.10-1 libpulse-5.0-1 libshout-1:2.3.1-2 282 | # libsm-1.2.2-2 libtasn1-3.4-1 libtheora-1.1.1-3 libva-1.3.1-1 libvdpau-0.7-1 libvpx-1.3.0-1 libxdamage-1.1.4-1 libxfixes-5.0.1-1 libxi-1.7.2-1 libxrender-0.9.8-1 libxshmfence-1.1-1 libxtst-1.2.2-1 283 | # libxxf86vm-1.1.3-1 llvm-libs-3.4.1-2 mesa-10.1.4-1 mesa-libgl-10.1.4-1 nettle-2.7.1-1 opencore-amr-0.1.3-1 openjpeg-1.5.2-1 opus-1.1-1 orc-0.4.19-1 p11-kit-0.20.2-1 recode-3.6-8 recordproto-1.14.2-1 284 | # renderproto-0.11.1-2 rtmpdump-20131205-1 schroedinger-1.0.11-2 sdl-1.2.15-6 speex-1.2rc1-4 sqlite-3.8.4.3-2 v4l-utils-1.0.1-1 wavpack-4.70.0-2 wayland-1.5.0-1 x264-1:142.20140311-1 x265-1.0-1 285 | # xf86vidmodeproto-2.3.1-2 xvidcore-1.3.2-3 yajl-2.1.0-1 mpd-0.18.11-1 286 | 287 | # install RuneAudio MPD package dependencies 288 | # install libmpdclient (0.27 MiB) 289 | pacman -S libmpdclient 290 | 291 | # install faad2 (0.39 MiB) 292 | pacman -S faad2 --noconfirm 293 | 294 | # install sqlite3 (1.21 MiB) 295 | pacman -S sqlite3 --noconfirm 296 | 297 | # install libmms (0.09 MiB) 298 | pacman -S libmms --noconfirm 299 | 300 | # install libid3tag (0.12 MiB) 301 | pacman -S libid3tag --noconfirm 302 | 303 | # install doxygen (10.22 MiB) 304 | pacman -S doxygen --noconfirm 305 | 306 | # install audiofile (0.31 MiB) 307 | pacman -S audiofile --noconfirm 308 | 309 | # install mpg123 (0.69 MiB) 310 | pacman -S mpg123 --noconfirm 311 | 312 | # install mpg123 (?? MiB) 313 | pacman -S libmad --noconfirm 314 | 315 | # install mpc (0.10 MiB) 316 | pacman -S mpc --noconfirm 317 | 318 | # build package 319 | makepkg --asroot 320 | 321 | # install mpd-rune (0.62 MiB) 322 | pacman -U mpd-rune-0.18.10-1-x86_64.pkg.tar.xz --noconfirm 323 | 324 | 325 | ################################## 326 | # -- mopidy (spotify support) -- # 327 | ################################## 328 | 329 | # install python2-pykka (0.22 MiB) 330 | pacman -U python2-pykka-1.2.0-1-any.pkg.tar.xz 331 | 332 | # install python2-ws4py (0.36 MiB) 333 | pacman -U python2-ws4py-0.3.4-1-any.pkg.tar.xz 334 | 335 | # install python2-setuptools (2.05 MiB) 336 | pacman -S python2-setuptools 337 | 338 | # install gstreamer0.10-python (gstreamer0.10-0.10.36-4 gstreamer0.10-base-0.10.36-3 libxv-1.0.10-1 pygobject2-devel-2.28.6-10 python2-gobject2-2.28.6-10 videoproto-2.3.2-1 gstreamer0.10-python-0.10.22-1 = 15.07 MiB) 339 | pacman -S gstreamer0.10-python 340 | 341 | # install gstreamer0.10-base-plugins (cairo-1.12.16-2 cdparanoia-10.2-5 libdatrie-0.2.6-1 libthai-0.1.19-1 libvisual-0.4.0-4 libxft-2.3.1-2 pango-1.36.3-2 pixman-0.32.4-1 gstreamer0.10-base-plugins-0.10.36-3 = 9.36 MiB) 342 | pacman -S gstreamer0.10-base-plugins 343 | 344 | # install gstreamer0.10-good-plugins (aalib-1.4rc5-10 dbus-glib-0.102-1 gconf-3.2.6-3 gdk-pixbuf2-2.30.7-1 glib-networking-2.40.1-1 gsettings-desktop-schemas-3.12.2-1 gstreamer0.10-good-0.10.31-6 imlib2-1.4.6-1 345 | jasper-1.900.1-10 js17-17.0.0-1 libavc1394-0.5.4-2 libcaca-0.99.beta18-2 libdv-1.0.0-6 libiec61883-1.2.0-4 libproxy-0.4.11-2 libraw1394-2.1.0-2 libsoup-2.46.0-1 nspr-4.10.5-1 346 | polkit-0.112-2 taglib-1.9.1-1 gstreamer0.10-good-plugins-0.10.31-6 = 41.00 MiB) 347 | pacman -S gstreamer0.10-good-plugins 348 | 349 | # install gstreamer0.10-ugly-plugins (a52dec-0.7.4-8 gstreamer0.10-ugly-0.10.19-11 libcddb-1.3.2-4 libcdio-0.92-1 libdvdread-4.9.9-1 libmpeg2-0.5.1-4 libsidplay-1.36.59-6 gstreamer0.10-ugly-plugins-0.10.19-11 = 2.99 MiB) 350 | pacman -S gstreamer0.10-ugly-plugins 351 | 352 | # install python2-cherrypy-3.3.0-1 (3.44 MiB) 353 | pacman -S python2-cherrypy 354 | 355 | # install libspotify-12.1.103-1 (3.63 MiB) 356 | pacman -U libspotify-12.1.103-1-armv6h.pkg.tar.xz 357 | 358 | # install pyspotify-1.11-1 (0.22 MiB) 359 | pacman -U pyspotify-1.11-1-any.pkg.tar.xz 360 | 361 | # install mopidy-spotify-1.1.0-1 (0.15 MiB) 362 | pacman -U mopidy-spotify-1.1.0-1-any.pkg.tar.xz 363 | 364 | #----------------------------------------------------------------------- 365 | 366 | ######################## 367 | # -- build mpd-upnp -- # 368 | ######################## 369 | # install libupnp (0.46 MiB) 370 | pacman -S libupnp --noconfirm 371 | cd /usr/local/src 372 | git clone https://github.com/medoc92/mpd-upnp.git mpd-upnp 373 | cd mpd-upnp 374 | 375 | 376 | 377 | ################################## 378 | # -- build mpdscribble v1.4.7 -- # 379 | ################################## 380 | cd /usr/local/src 381 | wget http://www.musicpd.org/download/mpdscribble/0.22/mpdscribble-0.22.tar.bz2 382 | tar xjvf mpdscribble-0.22.tar.bz2 383 | cd mpdscribble-0.22 384 | ./configure --sysconfdir=/etc --enable-debug 385 | make 386 | make install 387 | 388 | 389 | ############################## 390 | # -- build shairport-rune -- # 391 | ############################## 392 | cd /usr/local/src 393 | git clone git://github.com/abrasive/shairport.git 394 | cd shairport 395 | patch player.c < /var/www/app/config/_os/usr/local/src/shairport/player.c.runeaudio.patch 396 | ./configure 397 | make 398 | make install 399 | cp /var/www/app/config/_os/usr/lib/systemd/system/mpdscribble.service /usr/lib/systemd/system/ 400 | 401 | 402 | # ----->>>> SYSTEM CONFIGURATION <<<<----- # 403 | 404 | 405 | # enable SSHD 406 | systemctl enable sshd 407 | 408 | # enable php 409 | systemctl enable php-fpm 410 | 411 | # enable nginx 412 | systemctl enable nginx 413 | 414 | # enable mpd 415 | systemctl enable mpd 416 | 417 | # enable redis 418 | systemctl enable redis 419 | 420 | # link Orion Optimize script 421 | ln -s /srv/http/command/orion_optimize.sh /usr/sbin/ 422 | 423 | # create /mnt directory structure 424 | mkdir /mnt/MPD 425 | mkdir /mnt/MPD/USB 426 | mkdir /mnt/MPD/Webradio 427 | mkdir /mnt/MPD/NAS 428 | mkdir /mnt/MPD/LocalStorage 429 | chown -R mpd.audio /mnt/MPD 430 | 431 | # reboot system 432 | reboot 433 | -------------------------------------------------------------------------------- /scripts/cookbook_prod_OLD.txt: -------------------------------------------------------------------------------- 1 | ######################################## 2 | # RuneAudio v0.3-beta cookbook # 3 | # written by: Orion (production image) # 4 | # HW platform: RaspberryPi (01) # 5 | ######################################## 6 | # install base ArchLinux system (follow guide https://wiki.archlinux.org/index.php/Installation_guide, choose syslinux bootloader 7 | 8 | # general system update 9 | pacman -Syu --noconfirm 10 | 11 | # uninstall unecessary packages 12 | pacman -R cryptsetup jfsutils lvm2 man-db man-pages reiserfsprogs haveged 13 | 14 | # install git support (22.47 MiB) 15 | pacman -S git --noconfirm 16 | 17 | # install NTP package (3.87 MiB) 18 | pacman -S ntp --noconfirm 19 | 20 | # first time sync 21 | ntpdate pool.ntp.org 22 | 23 | # install openssh daemon (6 MiB) 24 | #pacman -S openssh --noconfirm 25 | 26 | # install Redis (1.53 MiB) 27 | pacman -S redis --noconfirm 28 | 29 | 30 | ######################################### 31 | ### -- additional system libraries -- ### 32 | ######################################### 33 | # install libmcrypt (0.25 MiB) 34 | pacman -S libmcrypt --noconfirm 35 | 36 | # install libjpeg-turbo (1.15 MiB) 37 | pacman -S libjpeg --noconfirm 38 | 39 | # install apr-util (nginx req.) (1.63 MiB) 40 | pacman -S apr-util --noconfirm 41 | 42 | 43 | ########################## 44 | ### -- system tools -- ### 45 | ########################## 46 | 47 | # install wget (3.05 MiB) 48 | pacman -S wget --noconfirm 49 | 50 | # install ethtool (0.25 MiB) 51 | pacman -S ethtool --noconfirm 52 | 53 | ########################### 54 | ### -- network tools -- ### 55 | ########################### 56 | # install avahi (2.30 MiB) 57 | pacman -S avahi --noconfirm 58 | 59 | # install nettools (0.49 MiB) 60 | pacman -S net-tools --noconfirm 61 | 62 | # install ifplugd (0.13 MiB) 63 | pacman -S ifplugd --noconfirm 64 | 65 | # install wireless tools (0.33 MiB) 66 | pacman -S wireless_tools --noconfirm 67 | 68 | # install wpa_supplicant (1.43 MiB) 69 | pacman -S wpa_supplicant 70 | 71 | # install hostapd (0.85 MiB) 72 | pacman -S hostapd --noconfirm 73 | 74 | # install nfs-utils (2.49 MiB) 75 | pacman -S nfs-utils --noconfirm 76 | 77 | # install libupnp (0.46 MiB) 78 | pacman -S libupnp --noconfirm 79 | 80 | # install libxml2 (8.10 MiB) 81 | pacman -S libxml2 --noconfirm 82 | 83 | # install yasm (2.80 MiB) 84 | pacman -S yasm --noconfirm 85 | 86 | 87 | ############################## 88 | ### -- filesystem tools -- ### 89 | ############################## 90 | # install NTFS support (1.50 MiB) 91 | pacman -S ntfs-3g --noconfirm 92 | 93 | # install dosfstools (0.25 MiB) 94 | pacman -S dosfstools --noconfirm 95 | 96 | # install exFAT support (0.19 MiB) 97 | pacman -S exfat-utils --noconfirm 98 | 99 | # install sshfs support (0.07 MiB) 100 | pacman -S sshfs --noconfirm 101 | 102 | # install cifs-utils (0.63 MiB) 103 | pacman -S cifs-utils --noconfirm 104 | 105 | # install ftpfs (0.06 MiB) 106 | pacman -S curlftpfs --noconfirm 107 | 108 | # install USB automount daemon (0.34 MiB) 109 | # >>> REMEMBER to enable kernel polling when using devmon without udisks: 110 | # http://ignorantguru.github.com/udevil/#polling 111 | pacman -S udevil --noconfirm 112 | 113 | 114 | ######################### 115 | ### -- AUDIO stack -- ### 116 | ######################### 117 | # install ALSA utils (9.66 MiB) 118 | pacman -S alsa-utils --noconfirm 119 | 120 | # install SOX (3.08 MiB) 121 | pacman -S sox --noconfirm 122 | 123 | # install Jack (2.56 MiB) 124 | pacman -S jack --noconfirm 125 | 126 | # install NetJACK driver (0.15 MiB) 127 | pacman -S celt --noconfirm 128 | 129 | 130 | ############################ 131 | ### -- install RuneUI -- ### 132 | ############################ 133 | cd / 134 | ln -s /srv/http/ /var/www 135 | cd /var/www 136 | 137 | # clone RuneUI git repo 138 | git clone https://github.com/RuneAudio/RuneUI.git . 139 | 140 | 141 | ############################## 142 | # -- setup filesystem ACL -- # 143 | ############################## 144 | # setup tmpfs directory 145 | chmod 777 /run 146 | 147 | # setup webserver directory 148 | chown -R http.http /srv/http/ 149 | chmod 644 $(find /srv/http/ -type f) 150 | chmod 755 $(find /srv/http/ -type d) 151 | chmod -R 755 /srv/http/command/ 152 | chmod -R 755 /srv/http/db/redis_datastore_setup 153 | chmod -R 755 /srv/http/db/redis_acards_details 154 | 155 | # setup log directory 156 | rm -r /var/log/* 157 | mkdir /var/log/runeaudio 158 | echo "logs /var/log tmpfs nodev,nosuid,noatime,mode=1777,size=5M 0 0" >> /etc/fstab 159 | echo "rune-logs /var/log/runeaudio tmpfs nodev,nosuid,noatime,mode=1777,size=5M 0 0" >> /etc/fstab 160 | 161 | # install motd 162 | cp /var/www/app/config/_os/etc/motd /etc/ 163 | cp /var/www/app/config/_os/etc/issue /etc/ 164 | 165 | # install RuneAudio MPD package dependencies 166 | # install libmpdclient (0.27 MiB) 167 | pacman -S libmpdclient --noconfirm 168 | 169 | # install faad2 (0.39 MiB) 170 | pacman -S faad2 --noconfirm 171 | 172 | # install sqlite3 (1.21 MiB) 173 | pacman -S sqlite3 --noconfirm 174 | 175 | # install libmad (0.13 MiB) 176 | pacman -S libmad --noconfirm 177 | 178 | # install libmms (0.09 MiB) 179 | pacman -S libmms --noconfirm 180 | 181 | # install libid3tag (0.12 MiB) 182 | pacman -S libid3tag --noconfirm 183 | 184 | # install audiofile (0.31 MiB) 185 | pacman -S audiofile --noconfirm 186 | 187 | # install mpg123 (0.69 MiB) 188 | pacman -S mpg123 --noconfirm 189 | 190 | # install mpc (0.10 MiB) 191 | pacman -S mpc --noconfirm 192 | 193 | 194 | # ----->>>> DOWNLOAD PACKAGES FROM RuneOS REPO <<<<----- # 195 | 196 | 197 | cd /usr/local/src/ 198 | # ffmpeg-rune 199 | wget https://github.com/RuneAudio/RuneOS/raw/master/01_raspberrypi/packages/ffmpeg-rune/ffmpeg-rune-r65426.4b63bce-1-armv6h.pkg.tar.xz 200 | wget https://github.com/RuneAudio/RuneOS/raw/master/01_raspberrypi/packages/ffmpeg-rune/libva.so.1.3501.0 201 | 202 | # hfsprogs-rune (optional) 203 | #wget https://github.com/RuneAudio/RuneOS/raw/master/01_raspberrypi/packages/hfsprogs-rune/hfsprogs-rune-332.25-10-armv6h.pkg.tar.xz 204 | 205 | # hfsutils-rune 206 | wget https://github.com/RuneAudio/RuneOS/raw/master/01_raspberrypi/packages/hfsutils-rune/hfsutils-rune-3.2.6-4-armv6h.pkg.tar.xz 207 | 208 | # mpd-rune 209 | wget https://github.com/RuneAudio/RuneOS/raw/master/01_raspberrypi/packages/mpd-rune/mpd-rune-0.18.14-1-armv6h.pkg.tar.xz 210 | 211 | # mpdscribble-rune 212 | wget https://github.com/RuneAudio/RuneOS/raw/master/01_raspberrypi/packages/mpdscribble-rune/mpdscribble-rune-0.22-6-armv6h.pkg.tar.xz 213 | 214 | # nginx-rune 215 | wget https://github.com/RuneAudio/RuneOS/raw/master/01_raspberrypi/packages/nginx-rune/nginx-rune-1.4.7-2-armv6h.pkg.tar.xz 216 | 217 | # php-rune 218 | wget https://github.com/RuneAudio/RuneOS/raw/master/01_raspberrypi/packages/php-rune/php-rune-5.5.16-1-armv6h.pkg.tar.xz 219 | 220 | # phpredis-rune 221 | wget https://github.com/RuneAudio/RuneOS/raw/master/01_raspberrypi/packages/phpredis-rune/phpredis-rune-2.2.5-1-armv6h.pkg.tar.xz 222 | 223 | # samba-rune 224 | wget https://github.com/RuneAudio/RuneOS/raw/master/01_raspberrypi/packages/samba-rune/samba-rune-2.2.12-1-armv6h.pkg.tar.xz 225 | 226 | # shairport-rune 227 | wget https://github.com/RuneAudio/RuneOS/raw/master/01_raspberrypi/packages/shairport-rune/shairport-rune-1.0-1-armv6h.pkg.tar.xz 228 | 229 | # tcp_wrappers 230 | wget https://github.com/RuneAudio/RuneOS/raw/master/01_raspberrypi/packages/tcp_wrappers/tcp_wrappers-7.6-16-armv6h.pkg.tar.xz 231 | 232 | # upmpdcli-rune 233 | wget https://github.com/RuneAudio/RuneOS/raw/master/01_raspberrypi/packages/upmpdcli-rune/upmpdcli-rune-0.8.0-1-armv6h.pkg.tar.xz 234 | 235 | 236 | # ----->>>> INSTALL RuneOS packages <<<<----- # 237 | 238 | 239 | # install ffmpeg-rune 240 | pacman -Sd --nodeps libva 241 | pacman -U ffmpeg-rune-r65426.4b63bce-1-armv6h.pkg.tar.xz 242 | 243 | # install mpd-rune 244 | pacman -U mpd-rune-0.18.10-1-x86_64.pkg.tar.xz --noconfirm 245 | 246 | # install mpdscribble-rune 247 | pacman -U mpdscribble-rune-0.22-6-armv6h.pkg.tar.xz 248 | 249 | # install nginx-rune 250 | pacman -U nginx-rune-1.4.7-2-armv6h.pkg.tar.xz 251 | 252 | # install php-rune 253 | pacman -U php-rune-5.5.16-1-armv6h.pkg.tar.xz 254 | 255 | # install phpredis-rune 256 | pacman -U phpredis-rune-2.2.5-1-armv6h.pkg.tar.xz 257 | 258 | # install samba-rune 259 | pacman -U samba-rune-2.2.12-1-armv6h.pkg.tar.xz 260 | 261 | # install shairport-rune 262 | pacman -U shairport-rune-1.0-1-armv6h.pkg.tar.xz 263 | 264 | # install tcp_wrappers 265 | pacman -U tcp_wrappers-7.6-16-armv6h.pkg.tar.xz 266 | 267 | # install upmpdcli-rune 268 | pacman -U upmpdcli-rune-0.8.0-1-armv6h.pkg.tar.xz 269 | 270 | # ----->>>> INSTALL Go Daddy Intermediate CA (Jamendo) <<<<----- # 271 | 272 | cp /var/www/app/config/_os/usr/share/ca-certificates /usr/share/ 273 | cp /var/www/app/config/_os/etc/ca-certificates /etc/ 274 | 275 | # update SSL certs database 276 | update-ca-certificates --verbose 277 | 278 | # ----->>>> SYSTEM CONFIGURATION <<<<----- # 279 | 280 | 281 | # install RuneAudio system tweaks 282 | cp /var/www/app/config/_os/etc/modprobe.d/modprobe.conf /etc/modprobe.d/ 283 | cp /var/www/app/config/_os/etc/modprobe.d/snd-soc-pcm512x.conf /etc/modprobe.d/ 284 | cp /var/www/app/config/_os/etc/profile.d/proxy.sh /etc/profile.d/ 285 | cp /var/www/app/config/_os/etc/udev/rules.d/* /etc/udev/rules.d/ 286 | cp /var/www/app/config/_os/etc/udevil/udevil.conf /etc/udevil/ 287 | cp /var/www/app/config/_os/etc/netconfig /etc/netconfig 288 | cp /var/www/app/config/_os/etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/ 289 | cp /var/www/app/config/_os/etc/sysctl.d/* /etc/sysctl.d/ 290 | cp /var/www/app/config/_os/etc/security/limits.conf /etc/security/limits.conf 291 | rm -rf /etc/security/limits.d/ 292 | cp /var/www/app/config/_os/usr/lib/systemd/system/rc-local.service /usr/lib/systemd/system/ 293 | cp /var/www/app/config/_os/usr/lib/systemd/system/redis.service /usr/lib/systemd/system/ 294 | cp /var/www/app/config/_os/usr/lib/systemd/system/rune_PL_wrk.service /usr/lib/systemd/system/ 295 | cp /var/www/app/config/_os/usr/lib/systemd/system/rune_SY_wrk.service /usr/lib/systemd/system/ 296 | cp /var/www/app/config/_os/usr/lib/systemd/system/rune_shutdown.service /usr/lib/systemd/system/ 297 | cp /var/www/app/config/_os/usr/lib/systemd/system/shairport.service /usr/lib/systemd/system/ 298 | cp /var/www/app/config/_os/usr/lib/systemd/system/udevil.service /usr/lib/systemd/system/ 299 | cp /var/www/app/config/_os/usr/lib/systemd/system/wpa_supplicant@.service /usr/lib/systemd/system/ 300 | 301 | # disable RNGD 302 | systemctl disable rngd 303 | 304 | # disable systemd-journald 305 | systemctl disable systemd-journald 306 | systemctl mask systemd-journald 307 | systemctl mask systemd-journal-flush.service 308 | 309 | # disable systemd-logind 310 | systemctl disable systemd-logind 311 | systemctl mask systemd-logind 312 | 313 | # enable SSHD 314 | systemctl enable sshd 315 | 316 | # enable php 317 | systemctl enable php-fpm 318 | 319 | # enable nginx 320 | systemctl enable nginx 321 | 322 | # enable mpd 323 | systemctl enable mpd 324 | 325 | # enable redis 326 | systemctl enable redis 327 | 328 | # enable RuneAudio background workers 329 | systemctl enable rune_PL_wrk 330 | systemctl enable rune_SY_wrk 331 | 332 | # enable rune_shutdown 333 | systemctl enable rune_shutdown 334 | 335 | # link Orion Optimize script 336 | ln -s /srv/http/command/orion_optimize.sh /usr/sbin/ 337 | 338 | # create /mnt directory structure 339 | mkdir /mnt/MPD 340 | mkdir /mnt/MPD/USB 341 | mkdir /mnt/MPD/Webradio 342 | mkdir /mnt/MPD/NAS 343 | mkdir /mnt/MPD/LocalStorage 344 | chown -R mpd.audio /mnt/MPD 345 | 346 | # reboot system 347 | reboot 348 | 349 | --------------------------------------------------------------------------------