Cross compile Lighttpd with Openssl

1 . Compile pcre

Build command as below
CUR_PATH=`pwd`
BUILD_PATH=$CUR_PATH/MyBuild
mkdir -p $CUR_PATH/MyBuild
make distclean
./configure CC=arm-linux-gnueabihf-gcc  RANLIB=arm-linux-gnueabihf-ranlib CXX=arm-linux-gnueabihf-g++ --host=arm-linux-gnueabihf
make -j8 CC=arm-linux-gnueabihf-gcc AR="arm-linux-gnueabihf-ar r" RANLIB=arm-linux-gnueabihf-ranlib 


2 . Compile openssl
Build command as below
CUR_PATH=`pwd`
BUILD_PATH=$CUR_PATH/MyBuild
mkdir -p $CUR_PATH/MyBuild && -p mkdir $CUR_PATH/MyBuild/ssl
make distclean
CC=arm-linux-gnueabihf-gcc  RANLIB=arm-linux-gnueabihf-ranlib ./config no-asm shared --openssldir=ssl --prefix=$BUILD_PATH
cp ./Makefile.none_m64 Makefile
make -j8 CC=arm-linux-gnueabihf-gcc AR="arm-linux-gnueabihf-ar r" RANLIB=arm-linux-gnueabihf-ranlib
arm-linux-gnueabihf-strip -s libcrypto.so.1.0.0
arm-linux-gnueabihf-strip -s libssl.so.1.0.0 


 3 . Compile lighttpd(static build)
Before build lighttpd, it must add plugin-static.h to src folder (plugin-static.h)
Add modulds that you would like to build-in lighttpd
example : 
PLUGIN_INIT(mod_access)
PLUGIN_INIT(mod_auth)
PLUGIN_INIT(mod_authn_file)
PLUGIN_INIT(mod_redirect)
PLUGIN_INIT(mod_rewrite)
PLUGIN_INIT(mod_cgi)
PLUGIN_INIT(mod_fastcgi)
PLUGIN_INIT(mod_scgi)
PLUGIN_INIT(mod_ssi)
PLUGIN_INIT(mod_proxy)
PLUGIN_INIT(mod_indexfile)
PLUGIN_INIT(mod_dirlisting)
PLUGIN_INIT(mod_staticfile)
PLUGIN_INIT(mod_openssl)


Build command as below  (build.sh)
make distclean
CUR_PATH=`pwd`
rm -rf arm-bin
mkdir -p arm-bin
echo "current_path = $CUR_PATH"
OPENSSL_PATH=$CUR_PATH/../openssl-1.0.2m
PCRE_PATH=$CUR_PATH/../pcre-8.41
BUILD_PATH=$CUR_PATH/arm-bin
LIGHTTPD_STATIC=yes CPPFLAGS=-DLIGHTTPD_STATIC ./configure  --prefix=$BUILD_PATH CC=arm-linux-gnueabihf-gcc \
    RANLIB=arm-linux-gnueabihf-ranlib STRIP=arm-linux-gnueabihf-strip \
    LDFLAGS="-static -L$PCRE_PATH/.libs/ -L$OPENSSL_PATH -lpcre" CFLAGS="-I$PCRE_PATH" \
    CPP=arm-linux-gnueabihf-cpp --without-zlib  --without-bzip2 --with-openssl=$OPENSSL_PATH \
    --host=arm-linux-gnueabihf --enable-static --disable-shared


 Note : below link is patch for my system config.patch

Linux Auto-mount partitions - Add Partitions to fstab

1.Get  UUID of partition
sudo blkid

#sudo blkid
/dev/sda1: UUID="41c3ed2c-ff31-4897-b751-f9ef02ad498e" TYPE="ext4" PARTUUID="7f906b5d-01"
/dev/sda5: UUID="1f2efe2c-2367-4cf0-b584-5dfda49bf8d3" TYPE="swap" PARTUUID="7f906b5d-05"
/dev/sdb1: UUID="3d3eff57-2ad6-47a7-b8d0-5550bf47a4a9" TYPE="ext3"
/dev/sdc1: UUID="79c90f51-4d9f-47f2-947b-217252903517" TYPE="ext4" PARTUUID="0c506981-01"
/dev/sdd1: UUID="1ad1ab6d-da12-4342-b08e-db8edec536e1" TYPE="ext4" PARTUUID="99f46004-01"
/dev/sde: UUID="d85767aa-a1a8-48db-9f35-2125542054c6" TYPE="swap"
/dev/sdf1: UUID="1c439cc4-58f2-4320-a53c-7a6ceae29d28" TYPE="ext4" PARTUUID="128599f5-01"



2.Add UUID and mount information to /etc/fstab
ex:
UUID=3d3eff57-2ad6-47a7-b8d0-5550bf47a4a9    /mnt/datadiskI    ext3    defaults,noatime 0   0
UUID=79c90f51-4d9f-47f2-947b-217252903517    /mnt/datadiskII   ext4    defaults,noatime 0   0
UUID=1ad1ab6d-da12-4342-b08e-db8edec536e1 /mnt/datadiskIII  ext4    defaults,noatime 0   0

Any more information, See Wiki please
https://wiki.archlinux.org/index.php/Fstab_(%E6%AD%A3%E9%AB%94%E4%B8%AD%E6%96%87)

Install different gcc version on linux

Get gcc
sudo apt-get install -y gcc-4.8 g++-4.8 gcc-4.9 g++-4.9 gcc-5 g++-5 gcc-6 g++-6 gcc-7 g++-7

Add repo
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
sudo apt update

Reset all gcc/g++ environment
sudo update-alternatives --remove-all gcc
sudo update-alternatives --remove-all g++

Install gcc/g++ to system
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 30
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 40
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 50

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 30
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 40
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 50

sudo update-alternatives --set cc /usr/bin/gcc
sudo update-alternatives --set c++ /usr/bin/g++

Switch gcc/g++ version
sudo update-alternatives --config gcc
sudo update-alternatives --config g++

reinstall git with openssl on ubuntu

sudo apt-get update
sudo apt-get install build-essential fakeroot dpkg-dev
sudo apt-get build-dep -y
sudo apt-get install libcurl4-openssl-dev
mkdir ~/git-openssl
cd ~/git-openssl
apt-get source git
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 71240B8FB3641232
dpkg-source -x git_1.7.9.5-1.dsc
cd git-1.7.9.5

#edit debian/control file (run the command: gksu gedit debian/control) and replace all instances of libcurl4-gnutls-dev with libcurl4-openssl-dev.
#Disable test
sed -i -- '/TEST\s*=\s*test/d' ./debian/rules

sudo dpkg-buildpackage -rfakeroot -b

Install new package:

i386: sudo dpkg -i ../git_1.7.9.5-1_i386.deb

x86_64: sudo dpkg -i ../git_1.7.9.5-1_amd64.deb

Install KDE Desktop for Ubuntu 24.04

1. Enter following command to install the KDE-plasma sudo apt install kde-plasma-desktop 2. Disable the login screen 2-1. Create default sdd...