aboutsummaryrefslogblamecommitdiffstats
path: root/main/uwsgi/APKBUILD
blob: 2be267a8a2249905ea436eca97996d43d256c2f6 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
                                                   
                                                              
                                               
                                                   
             
               
        
                                            

                                     
                                                   
                 
                                                    

                 



                 
                   
                  
                       



                     
                  

                      



                   
                                                               


                      
                        
                             
                           
         
                
 



                     


















                                                                        
                      














                          
                      





































                               
 
                       
                                                         

    
 
           
                       
                                                          


         
                      

                           
                                                        
                                                      
 
                                         
 

                                                       
            

 


                         

                                               
                                                                      

 
           
                      
 



                                                                                            
 
                                                                  
                                                                        

 
           
                                            
                                    

                       
                      












                                                                               
                                             
                                                            



                                                                           
                                                           





                                                                                           
                                                                    




                                                                                           

 
                                                                                                                                                                   
                                                                                                                                             

                                                                                                                                                
                                                                                                                                                  
                                                                                                                                                       
                                                                                                                                                      
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Contributor: Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=uwsgi
pkgver=2.0.19.1
pkgrel=2
pkgdesc="uWSGI application container server"
url="http://projects.unbit.it/uwsgi/"
arch="all"
license="custom" # GPL-2.0-only + linking exception
depends="mailcap"
install="$pkgname.pre-install $pkgname.post-upgrade"
pkgusers="uwsgi"
pkggroups="uwsgi"
makedepends="
	attr-dev
	curl-dev
	geoip-dev
	jansson-dev
	libcap-dev
	libucontext-dev
	linux-headers
	linux-pam-dev
	libxml2-dev
	libxslt-dev
	lua5.3-dev
	pcre-dev
	postgresql-dev
	python3-dev
	zeromq-dev
	zlib-dev
	"
source="http://projects.unbit.it/downloads/uwsgi-$pkgver.tar.gz
	uwsgi.initd
	uwsgi.ini
	readme.emperor
	alpine.buildconf
	musl-fix-python.patch
	musl-ucontext.patch
	"
options="!check"

# secfixes:
#   2.0.16-r0:
#     - CVE-2018-6758

# You may specify a custom name for so lib and subpackage after a colon.
_plugins="
	alarm_curl
	cache
	carbon
	cgi
	cheaper_backlog2
	cheaper_busyness
	corerouter
	curl_cron
	dumbloop
	dummy
	echo
	emperor_amqp
	emperor_pg
	emperor_zeromq
	fastrouter
	forkptyrouter
	geoip
	gevent:gevent3
	graylog2
	http
	legion_cache_fetch
	logcrypto
	logfile
	logpipe
	logsocket
	logzmq
	lua
	msgpack
	nagios
	notfound
	pam
	ping
	pty
	python:python3
	rawrouter
	redislog
	router_basicauth
	router_cache
	router_expires
	router_hash
	router_http
	router_memcached
	router_metrics
	router_radius
	router_redirect
	router_redis
	router_rewrite
	router_static
	router_uwsgi
	rpc
	rrdtool
	rsyslog
	signal
	spooler
	sslrouter
	stats_pusher_file
	stats_pusher_socket
	stats_pusher_statsd
	symcall
	syslog
	transformation_chunked
	transformation_gzip
	transformation_offload
	transformation_template
	transformation_tofile
	tuntap
	ugreen
	webdav
	xslt
	zabbix
	zergpool
	"

for _p in $_plugins; do
	subpackages="$subpackages uwsgi-${_p#*:}:_plugin"
done


prepare() {
	default_prepare
	cp "$srcdir"/alpine.buildconf buildconf/alpine.ini
}

build() {
	cd "$builddir"

	msg "Building core"
	# ccache seems to trigger some weird bug on musl
	CC="gcc" python3 uwsgiconfig.py --build alpine

	export UWSGICONFIG_LUAPC="lua5.3"

	local item; for item in $_plugins; do
		_build_plugin "${item%:*}" "${item#*:}"
	done
}

_build_plugin() {
	local plugin="$1"
	local myname="$2"

	msg "Building $plugin plugin ($myname)"
	python3 uwsgiconfig.py --plugin plugins/$plugin alpine $myname
}

package() {
	cd "$builddir"

	install -m 755 -D uwsgi "$pkgdir"/usr/sbin/uwsgi
	install -m 644 -D "$srcdir"/readme.emperor "$pkgdir"/etc/uwsgi/conf.d/readme.emperor
	install -m 644 -D "$srcdir"/uwsgi.ini "$pkgdir"/etc/uwsgi/uwsgi.ini
	install -m 755 -D "$srcdir"/uwsgi.initd "$pkgdir"/etc/init.d/uwsgi

	install -m 775 -d -o root -g uwsgi "$pkgdir"/var/log/uwsgi
	install -D LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}

_plugin() {
	local name="${subpkgname#$pkgname-}"
	pkgdesc="uWSGI plugin $name"
	depends="uwsgi"

	cd "$builddir"

	local requires=$(sed '$a print(" ".join(REQUIRES))' \
		plugins/$name/uwsgiplugin.py 2>/dev/null | python3 2>/dev/null)

	local req; for req in $requires; do
		if echo "$_plugins" | grep -qw "$req"; then
			depends="$depends $pkgname-$req"
		else
			error "There's no subpackage for requirement $req!"
			return 1
		fi
	done

	install -m 755 -D ${name}_plugin.so \
		"$subpkgdir"/usr/lib/uwsgi/${name}_plugin.so

	case "$name" in
		# Mitigate breakages caused by injudicious rename in v3.11.
		python3)
			pkgdesc="uWSGI plugin for Python 3"
			provides="uwsgi-python=$pkgver-r$pkgrel"
			replaces="uwsgi-python"
			ln -s python3_plugin.so "$subpkgdir"/usr/lib/uwsgi/python_plugin.so
		;;
		# Mitigate breakages caused by injudicious rename in v3.11.
		gevent3)
			pkgdesc="uWSGI plugin for gevent (Python 3)"
			provides="uwsgi-gevent=$pkgver-r$pkgrel"
			replaces="uwsgi-gevent"
			ln -s gevent3_plugin.so "$subpkgdir"/usr/lib/uwsgi/gevent_plugin.so
		;;
	esac
}

sha512sums="e18359c5ea3606d5de7fb3a0074d777e1c4b41f51f4b1a21f1446f32253058d7924286d9ed8a159d4c6e6c0ea64df7fc3c70b2933c3433b9a9cce39737e702bf  uwsgi-2.0.19.1.tar.gz
1fef8a30e8e20b0322cf464a2adf744a4b46a35f4c9e104acacab4c99b913c5a0b537783bdfedf8900a4e7397e08079b675be2414beb571fd0b330985ac676cc  uwsgi.initd
370202e143d0e041a2e36905346080d3ca592c9a74705a8c4e142a1307d22b921c10e673d683ca284ea27d184474ed86edd7723a6e590d35a562ad7cf6afa529  uwsgi.ini
2798c9d2e49e29292ffe6a5a29b866301c78d5f322fc5d07dfa9569efdaa5220237a5f6744652fbdd957be29311ddaff190541333f042cbf0e907dfa98ce3e2a  readme.emperor
f3cff00926929a5bb40afafb65fd5228582af35fbf524562282020c4c4ae9c659231b2381f4b3cceb18e8f3f6c888c21bdd8ed4ddcd81e92fbc6a0891800ce38  alpine.buildconf
de68b16b44e554a79c073c9befa10566796316dbf4c375b4d6b633d80b0282694cca233f0a70f3d6570584324f14276826bbeb8f38b550c00087a05f9ba9227f  musl-fix-python.patch
d4b93e51619af5f8839cdc7279c69462947910df03104cfe6180d606403940fc60ad5dac66425ce8acbab67cc0c4f3e13126da0a329720cb03c67d447cd94ad9  musl-ucontext.patch"