Current File : /home/inlingua/www/decay_sym/root/var/softaculous/apps/python3/build/make.sh
#!/bin/bash
source /var/softaculous/apps/build/common.sh

python3=Python-3.11.3
version=3.11.3
PATH_PYTHON3=$AMPPS_PATH/python3
docutils=docutils-0.19

docutils() {
	
	is_dir $SRC_PATH/$docutils
	if [ $? == 0 ]
	then
		rm -rf $SRC_PATH/$docutils
	fi
	is_dir $AMPPS_PATH/python3/lib/python3.11/site-packages/$docutils-py3.11.egg
	if [ $? == 0 ]
	then
		banner "Installing docutils"
		cd $SRC_PATH
		is_file $docutils.tar.gz
		if [ $? == 0 ]
		then
			banner $docutils".tar.gz Downloading"
			wget --no-check-certificate -O $SRC_PATH/$docutils.tar.gz https://files.pythonhosted.org/packages/6b/5c/330ea8d383eb2ce973df34d1239b3b21e91cd8c865d21ff82902d952f91f/$docutils.tar.gz >> $LOG 2>&1
		fi	
		tar -zxf $docutils.tar.gz
		cd $docutils
		$PATH_PYTHON3/bin/python3 setup.py install >> $LOG 2>&1
	fi
	is_dir $AMPPS_PATH/python3/lib/python3.11/site-packages/$docutils-py3.11.egg
	if [ $? == 0 ]
	then
		banner "docutils could not be installed due to some reason"
		exit 1
	fi
	
}

python3() {

	is_dir $SRC_PATH/$python3
	if [ $? == 0 ]
	then
		rm -rf $SRC_PATH/$python3
	fi
	is_file $PATH_PYTHON3/bin/python
	if [ $? == 0 ]
	then
		echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
		echo "Installing PYTHON3"
		echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
		
		ldconfig
		
		cd $SRC_PATH
		is_file $python3.tgz
		if [ $? == 0 ]
		then
			banner $python3".tgz Downloading"
			wget --no-check-certificate -O $SRC_PATH/$python3.tgz https://www.python.org/ftp/python/$version/$python3.tgz >> $LOG 2>&1
		fi	
		tar -zxf $python3.tgz
		cd $python3
		# To fix libssl.so error's add /usr/local/apps/lib in /etc/ld.so.conf
		# and after that execute the following command: ldconfig
		# refer : https://techglimpse.com/python-openssl-installation-error-solution/
		######################## For adding SSL support in Python ###################
		sed -i 's/#SSL=\/usr\/local\/ssl/SSL=\/usr\/local\/apps\/openssl-11/g' Modules/Setup
		sed -i '215,217 s/#//' Modules/Setup
		
		sed -i '434 s/#pragma/\/\/#pragma/' Modules/_ctypes/callbacks.c
		sed -i '435 s/#pragma/\/\/#pragma/' Modules/_ctypes/callbacks.c
		sed -i '443 s/#pragma/\/\/#pragma/' Modules/_ctypes/callbacks.c
		
		#https://www.programmersought.com/article/2720814329/
		sed -i 's/\/usr\/local\/include\/sqlite3/\/usr\/local\/apps/g' setup.py
		#############################################################################
		export PKG_CONFIG_PATH=/usr/local/apps/lib/pkgconfig
		export LD_LIBRARY_PATH="$AMPPS_PATH/lib:$AMPPS_PATH/libffi/lib:/usr/local/apps/openssl-11/lib:$LD_LIBRARY_PATH"
		
		#LDFLAGS="-L/usr/lib64" CPPFLAGS="-I/usr/include" PKG_CONFIG_PATH=/usr/lib64/pkgconfig ./configure --prefix=$PATH_PYTHON3 --disable-ipv6 --with-ensurepip=yes --enable-shared --with-system-ffi && make && make install >> $LOG 2>&1

		
		#LDFLAGS=-L/usr/local/apps/openssl-11/lib CPPFLAGS=-I/usr/local/apps/openssl-11/include PKG_CONFIG_PATH=/usr/local/apps/openssl-11/lib/pkgconfig ./configure --prefix=$PATH_PYTHON3 --disable-ipv6 --with-ensurepip=yes --enable-shared --with-system-ffi LDFLAGS="-L$AMPPS_PATH/libffi/lib -L$AMPPS_PATH/lib" CPPFLAGS="-I$AMPPS_PATH/libffi/include " && make && make install >> $LOG 2>&1

		LDFLAGS="-L/usr/local/apps/openssl-11/lib -L/usr/local/apps/lib -lcrypt " CPPFLAGS="-I/usr/local/apps/openssl-11/include -I/usr/local/apps/include "  PKG_CONFIG_PATH="/usr/local/apps/openssl-11/lib/pkgconfig:/usr/local/apps/lib/pkgconfig" ./configure --prefix=$PATH_PYTHON3 --disable-ipv6 --with-ensurepip=yes --enable-shared --with-system-ffi LDFLAGS="-L$AMPPS_PATH/libffi/lib -L/usr/local/apps/openssl-11/lib -L$AMPPS_PATH/lib" CPPFLAGS="-I$AMPPS_PATH/libffi/include -I/usr/local/apps/openssl-11/include " && make && make install >> $LOG 2>&1
		
		#patchelf --set-rpath /usr/local/apps/openssl-11/lib/ $AMPPS_PATH/python3/bin/python3.11
		patchelf --set-rpath $AMPPS_PATH/python3/lib/:$AMPPS_PATH/lib/:/usr/local/apps/openssl-11/lib/ $AMPPS_PATH/python3/bin/python3.11
		patchelf --set-rpath $AMPPS_PATH/python3/lib/:$AMPPS_PATH/lib/:/usr/local/apps/openssl-11/lib/ $AMPPS_PATH/python3/bin/python3
		
	fi
	is_file $PATH_PYTHON3/bin/python3
	if [ $? == 0 ]
	then
		banner 'PYTHON3 could not be installed due to some reason'
		exit 1
	fi

	#mod_wsgi

	#mod_wsgi_2

	#Below 3 modules not required in 3.11 
	#not required for Python 2.5 and above
	#docutils

	#setuptools

	#trac581052
}

python3