Linux Mint – Sound source switcher

Very useful tool for the times when you have to switch audio from for example build-it speaker to HDMI etc.

Tested on Linux Mint 17.1

Open a new Terminal window and enter the following commands:

sudo apt-add-repository ppa:yktooo/ppa
sudo apt-get update && sudo apt-get install indicator-sound-switcher

After install has completed open the start menu, search for ‘sound switcher’ and launch. It’s worth knowing that the app sets itself to auto-start on login, too.

If you don’t fancy adding the PPA you can grab the .deb installer from the package archive details page.

Compiling privoxy

Privoxy is a non-caching web proxy with advanced filtering capabilities for enhancing privacy, modifying web page data and HTTP headers, controlling access, and removing ads and other obnoxious Internet junk. Privoxy has a flexible configuration and can be customized to suit individual needs and tastes. It has application for both stand-alone systems and multi-user networks.

Prep

groupadd -g [groupid] privoxy
 useradd [-u [UID] -g privoxy -d Home privoxy

Get the files

wget hXXp://ovh.dl.sourceforge.net/sourceforge/ijbswa/privoxy-3.0.22-stable-src.tar.gz
 tar xzf privoxy-3.0.22-stable-src.tar.gz

Install

cd privoxy-3.0.22-stable
 ./config
 make
 make -s install USER=privoxy GROUP=privoxy

Debian – compiling NGINX from source

Install software pre-requisites:

apt-get install libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev make gcc libgeoip-dev

Get latest nginx from: http://nginx.org/en/download.html

First stop nginx if it already installed then download and unpack the software:

cd /opt
wget http://nginx.org/download/nginx-1.9.11.tar.gz
tar -zxvf nginx-1.9.11.tar.gz
cd ./nginx-1.9.11
mkdir modules
cd modules
git clone https://github.com/FRiCKLE/ngx_cache_purge.git
cd ..

and then there is just one more important step – to customize your server name: http://www.nginxtips.com/customize-nginx-server-name/ but in essence it all boils down to this:

Edit this file right at line #49: src/http/ngx_http_header_filter_module.c

nano -w +49 src/http/ngx_http_header_filter_module.c

Find these lines:

static char ngx_http_server_string[] = "Server: nginx" CRLF;
static char ngx_http_server_full_string[] = "Server:" NGINX_VER CRLF;

Modify those to match these new ones:

static char ngx_http_server_string[] = "Server: YourCustomName" CRLF;
static char ngx_http_server_full_string[] = "Server: YourCustomName" CRLF;

Modify “YourCustomName” as you want. You can place anything there. It could be the name of your website, product, company, etc.

Configure NGINX:

The configuration I have here works on Debian and preserves default directory layouts, provides support for IPv6, SSL, HTTPv2, WebDAV, nginx-cache-purge module and GeoIP:

./configure --sbin-path=/usr/sbin --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log
--pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock --http-log-path=/var/log/nginx/access.log 
--http-client-body-temp-path=/var/lib/nginx/body --http-proxy-temp-path=/var/lib/nginx/proxy 
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi --with-debug --with-http_stub_status_module 
--with-http_flv_module --with-http_ssl_module --with-http_dav_module --with-ipv6 
--with-http_geoip_module --with-http_v2_module --add-module=$(MODULESDIR)/ngx_cache_purge

Compile and install NGINX:

make && make install

when everything is done verify:

nginx -V

and you shoud get something like that:

nginx version: nginx/1.9.11
built by gcc 4.8.2 (Debian 4.8.2-21)
TLS SNI support enabled
configure arguments: --sbin-path=/usr/sbin --conf-path=/etc/nginx/nginx.conf 
--error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid 
--lock-path=/var/lock/nginx.lock --http-log-path=/var/log/nginx/access.log 
--http-client-body-temp-path=/var/lib/nginx/body --http-proxy-temp-path=/var/lib/nginx/proxy 
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi --with-debug --with-http_stub_status_module 
--with-http_flv_module --with-http_ssl_module --with-http_dav_module --with-ipv6 
--with-http_geoip_module --with-http_v2_module

Compiling Mediatomb on Debian with Support for Samsung Smart TV

Patch and general info: http://sourceforge.net/p/mediatomb/patches/37/

Login as root and copy and paste the below:

apt-get install dpkg-dev devscripts fakeroot
 apt-get build-dep mediatomb
 apt-get source -d mediatomb
 dpkg-source -x mediatomb_0.12.1-0ubuntu4.dsc
 echo mediatomb-urifix.patch >> mediatomb-0.12.1/debian/patches/series
cat > mediatomb-0.12.1/debian/patches/mediatomb-urifix.patch << EOF --- a/tombupnp/upnp/src/genlib/net/uri/uri.c +++ b/tombupnp/upnp/src/genlib/net/uri/uri.c @@ -1042,7 +1042,8 @@ out->path_type = REL_PATH;
 }
- if( ( ( begin_hostport + 1 ) < max ) && ( in[begin_hostport] == '/' ) + //parse hostport only if scheme was found + if( ( begin_hostport > 0 ) && ( ( begin_hostport + 1 ) < max ) && ( in[begin_hostport] == '/' ) && ( in[begin_hostport + 1] == '/' ) ) { begin_hostport += 2; @@ -1059,6 +1060,12 @@ out->hostport.text.size = 0;
 out->hostport.text.buff = 0;
 begin_path = begin_hostport;
 +
 + //remove excessive leading slashes (fix for Samsung Smart TV 2012)
 + while( ( ( begin_path + 1 ) < max ) && ( in[begin_path] == '/' ) && ( in[begin_path + 1] == '/') ) {
 + begin_path++;
 + }
 +
 }
begin_fragment =
 EOF
cd mediatomb-0.12.1/
 dch -i 'Samsung Smart TV 2012 fix by swiergot'
 dpkg-buildpackage -rfakeroot
 cd ..
 dpkg -i mediatomb-common_0.12.1-4.1_armel.deb mediatomb-daemon_0.12.1-4.1_all.deb mediatomb_0.12.1-4.1_all.deb

mediatomb_console