X-Original-To: alpine-devel@lists.alpinelinux.org Delivered-To: alpine-devel@mail.alpinelinux.org Received: from ncopa-desktop.alpinelinux.org (3.203.202.84.customer.cdi.no [84.202.203.3]) (using SSLv3 with cipher ECDHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) (Authenticated sender: nc@alpinelinux.org) by mail.alpinelinux.org (Postfix) with ESMTPSA id 53655DC016E for ; Wed, 19 Jun 2013 14:01:45 +0000 (UTC) Date: Wed, 19 Jun 2013 16:01:41 +0200 From: Natanael Copa To: alpine-devel@lists.alpinelinux.org Subject: [alpine-devel] upgrading to Lua 5.2 Message-ID: <20130619160141.25d3702e@ncopa-desktop.alpinelinux.org> X-Mailer: Claws Mail 3.9.2 (GTK+ 2.24.17; x86_64-unknown-linux-gnu) X-Mailinglist: alpine-devel Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Hi, I have been looking at upgrading to Lua 5.2. Many things is just a question of recompile and some needs porting. So far, those have been rebuilt/ported against 5.2 in a local branch: apache2 apk-tools asterisk awesome gegl graphviz haserl lsyncd nmap ntop pingu pllua sircbot vim weechat lua-augeas lua-cjson lua-filesystem lua-microlight lua-posix lua-socket I haven't verified if all of them runs. Those failed and still need some work: vlc squark rrdtool lighttpd kamailio tolua++ conky cegui06 Some of them looks non-trivial, like squark. I asked in #lighttpd and there was some resistance from upstream to port the stable lighttpd to lua 5.2 as it risks to break users scripts. Then there are a bunch of modules that I have not yet looked at: lua-cmsgpack lua-curl lua-dbi lua-discount lua-expat lua-iconv lua-imlib2 lua-ldap lua-lgi lua-llthreads lua-md5 lua-openrc lua-pc lua-posixtz lua-pty lua-rex lua-sec lua-signal lua-sleep lua-sql-mysql lua-sql-postgres lua-sql-sqlite3 lua-stdlib lua-stringy lua-subprocess lua-uuid lua-xctrl lua-xml lua-yaml lua-zlib lua-zmq I think some of those will just work, if they only gets installed in proper dir. Some will require minimal a bit of porting. Then we have the entire acf-*. I think it will be fairly easy to port those. They are just many. Now, I am still a bit in doubt how we move forward. I think we have the following options: One shot upgrade ================ We upgrade lua package to 5.2.x and port/upgrade everything in a (local) git branch. Once everything is done we push. For things that is difficult to port we can use luafiveq. At that time evertying is over to Lua 5.2. Benefits: once done, we save us for maintaining both lua 5.1 and 5.2 in parallel. We will only have one Lua. Drawbacks: difficult to let many help in doing it. Until everything is done, the only lua version available will be lua 5.1. How are developers supposed to be able to help? Users will not be able to upgrade to alpine v2.7 until they are ready for Lua 5.2. We get same problem when 5.3 comes out. One shot upgrade, with partial 5.1 compatibility ================================================ We upgrade lua to 5.2 and provide a lua5.1 package for backwards compat. We could use luafiveq for those who are difficult to port and those who cannot use that either can rebuild against lua5.1-dev. Benefits: less maintenance than supporting both. It gives developers a chance to get started to migrate to 5.2. Drawbacks: We might need to support some of the modules (lua-*) both for 5.1 and for 5.2 for some time. We need rename all the 5.1 modules to lua5.1-*. Users will not be able to upgrade to alpine v2.7 until they are ready for Lua 5.2. (or have to manually install/change to use lua5.1 while upgrading) We get same problem when 5.3 comes out. Append 5.2 and migrate slowly over ================================== Add a new package named lua5.2. and rebuild the easy apps against lua5.2. The package named 'lua' will still be lua-5.1. Ported/upgraded modules will be be prefixed with 'lua5.2-'. Benefits: we don't need big onetime commits which depends on one person or one big branch. Developers can install lua5.2 and start port stuff fairly early. Smoother upgrades for end users (hopefully). The packages are not suddenly renamed so local user scripts does not suddenly break. Might make it easier when 5.3 comes out since we can do similar then. At that time we can evaluate to delete the 5.1. Drawbacks: Simply 'apk add lua' will give old lua so it kind of encourage endusers to stay on old which gives us more maintenance in the long run. We might not be able to have both 5.1 and 5.2 installed at the same time so it might cause more package conflicts. (what should /usr/bin/lua point to?) Support both versions in parallel ================================= Rename all current lua-* to lua5.1-* and rebuild all current against that. Then add lua5.2 and port things slowly over. Support both as long as it makes sense. Benefits: Users can at any time choose 5.1 or 5.2 or have both installed at the same time. Developers can start port stuff and test on both. Makes a future 5.3 easier. Drawbacks: Lots of work. More maintenance work. We might end up with +50 packages if not more. What do you think? I think I'd prefer one of the 2 options in the middle. In any case, porting to 5.2 will require pretty much work so I think I'd like to get more people involved and start help with that as soon as possible. -nc --- Unsubscribe: alpine-devel+unsubscribe@lists.alpinelinux.org Help: alpine-devel+help@lists.alpinelinux.org ---