51 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| 
 | |
| # Usage:       ./build_static_rsync
 | |
| #                or
 | |
| #              bash build_static_rsync
 | |
| # Description: Download newest stable rsync release and
 | |
| #                compiles a static binary
 | |
| # Author:      Patrick Neumann (patrick@neumannsland.de)
 | |
| # Platform:    Debian or Raspbian GNU/Linux (tested: 9.5)
 | |
| # Version:     1.0
 | |
| # Date:        06.07.2018
 | |
| # License:     GPL3
 | |
| # Warranty:    This program is distributed WITHOUT ANY WARRANTY
 | |
| 
 | |
| # autodetect arch:
 | |
| ARCH="$( /bin/uname --machine )"
 | |
| 
 | |
| # autodetect release or do it manualy:
 | |
| RELEASE="$( /usr/bin/curl -s https://rsync.samba.org/ \
 | |
|             | /bin/grep -E "Rsync version [[:digit:]]\.[[:digit:]]{1,2}\.[[:digit:]]{1,2} released" \
 | |
|             | /usr/bin/head -n 1 \
 | |
|             | /bin/grep -o -E "[[:digit:]]\.[[:digit:]]{1,2}\.[[:digit:]]{1,2}" )"
 | |
| #VERSION="3.1.3"
 | |
| /usr/bin/test -n "${RELEASE}" || ( echo "Release detection failed - please edit script manually" ; exit 1 )
 | |
| 
 | |
| # dependencies (static libs):
 | |
| if [ ! -f /usr/share/build-essential/list ] ; then /usr/bin/sudo /usr/bin/apt install build-essential --assume-yes ; fi
 | |
| if [ ! -f /usr/lib/*-linux-gnu*/libc.a ] ; then /usr/bin/sudo /usr/bin/apt install libc6-dev --assume-yes ; fi
 | |
| if [ ! -f /usr/lib/*-linux-gnu*/libpopt.a ] ; then /usr/bin/sudo /usr/bin/apt install libpopt-dev --assume-yes ; fi
 | |
| if [ ! -f /usr/bin/yodl2man ] ; then /usr/bin/sudo /usr/bin/apt install yodl --assume-yes ; fi
 | |
| 
 | |
| # downloading...
 | |
| /usr/bin/wget https://download.samba.org/pub/rsync/rsync-${RELEASE}.tar.gz
 | |
| 
 | |
| # extracting...
 | |
| /bin/tar xzf rsync-${RELEASE}.tar.gz 
 | |
| 
 | |
| # compiling and stripping...
 | |
| cd rsync-${RELEASE}/
 | |
| ./configure
 | |
| /usr/bin/make CFLAGS="-I./popt -I./zlib -static" EXEEXT="-${ARCH}-${RELEASE}"
 | |
| /usr/bin/strip rsync-${ARCH}-${RELEASE}
 | |
| 
 | |
| # final instructions:
 | |
| echo
 | |
| echo "Ready to copy:"
 | |
| echo
 | |
| echo "  cp $PWD/rsync-${ARCH}-${RELEASE} /media/POLICE/"
 | |
| echo
 | |
| 
 | |
| exit 0 |