Difference between revisions of "DeveloperWiki:Ncurses Todo List"
(→Stage 4) |
|||
Line 1: | Line 1: | ||
+ | '''THIS CHANGE IS NOW IN THE TESTING REPO''' | ||
+ | |||
This page is to help me keep track of the ncurses rebuild so we can purge Arch of packages that link to libncurses.so. | This page is to help me keep track of the ncurses rebuild so we can purge Arch of packages that link to libncurses.so. | ||
Revision as of 06:17, 20 August 2008
THIS CHANGE IS NOW IN THE TESTING REPO
This page is to help me keep track of the ncurses rebuild so we can purge Arch of packages that link to libncurses.so.
Contents
- 1 FAQ
- 1.1 Are there really FAQs?
- 1.2 Why are you doing this?
- 1.3 Will this cause trouble building packages that look for the ncurses.so library?
- 1.4 Can help I test the new ncurses packages?
- 1.5 How do I access the rebuilt packages to help testing?
- 1.6 Are there x86_64 pacakges?
- 1.7 Some packages need libncurses.so
- 1.8 You broke stuff! Can I go back?
- 1.9 You sunk my battleship!
- 2 PKGBUILD
- 3 Rebuild List
- 4 Voting
FAQ
Are there really FAQs?
No
Why are you doing this?
Once upon a time, it was thought 8-bits was enough to code characters and life was good for people using English locales. But along came people who speak different languages that require many more characters and 8-bits was no longer enough. Thus the ncurses package introduced a wide-character library that could handle both 8-bit and multi-byte characters.
Currently the Arch package is a mixture of both the short (ncurses) and wide (ncursew) libraries. Given the wide-character version does everything the short-character version does and more, it would be good to remove the short character one completely. This should also fix some localization/UTF8 bugs.
Will this cause trouble building packages that look for the ncurses.so library?
No. A fancy bit of packaging will trick these packages into linking against the wide-character version. The two libraries are code compatible so there should be no build trouble (currently, only the wide character headers are packaged anyway).
Can help I test the new ncurses packages?
Yes you can, provided
- You use the testing repo and are comfortable fixing problems
- You realize that although everything is working for me, this could stop some packages working, hopefully only until they are rebuilt.
- Look below for a list of packages I know need rebuilt. If you rely on one of them, then add a vote and wait for me to rebuild it.
How do I access the rebuilt packages to help testing?
Add this to your pacman.conf above your uncommented [testing] repo entry
[ncursesw] Server = http://dev.archlinux.org/~allan/ncursesw/os/i686
Are there x86_64 pacakges?
Not yet. The previous ncurses PKGBUILD had extra configure flags in the x86_64 version compared to the i686 version to ensure backward compatibility with old packages. This seems a good time to remove that and so the x86_64 rebuild may be (slightly) more extensive.
Some packages need libncurses.so
Add them to the rebuild list below and I will update them soon. In the meantime you (should) know what to do...
You broke stuff! Can I go back?
I told you that could happen! Here is how to revert...
pacman -S pacman-contrib paclist ncursesw | cut -f1 -d" " > ncursesw.list (remove ncursesw repo from pacman.conf) pacman -Sy $(cat ncursesw.list)
You sunk my battleship!
I have now rebuilt bs so you can play it again...
PKGBUILD
For those interested, here is the new ncurses PKGBUILD.
# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ # Maintainer: Allan McRae <allan@archlinux.org> # Contributor: judd <jvinet@zeroflux.org> pkgname=ncurses pkgver=5.6 pkgrel=7 pkgdesc="A System V Release 4.0 curses emulation library" arch=('i686' 'x86_64') url="http://www.gnu.org/software/ncurses/ncurses.html" license=('MIT') groups=('base') depends=('glibc') source=(ftp://ftp.gnu.org/pub/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz ftp://invisible-island.net/ncurses/${pkgver}/${pkgname}-${pkgver}-coverity.patch.gz) md5sums=('b6593abe1089d6aab1551c105c9300e3' '27607b10fef869740cbcc408d86695b1') options=(!makeflags) build() { cd ${srcdir}/${pkgname}-${pkgver} patch -Np1 -i ${srcdir}/${pkgname}-${pkgver}-coverity.patch ./configure --prefix=/usr --mandir=/usr/share/man \ --with-shared --with-normal --without-debug --without-ada \ --with-install-prefix=${pkgdir} --enable-widec make || return 1 make install # fix library permissions chmod 644 ${pkgdir}/usr/lib/libncurses++w.a # move libraries needed for boot to /lib (we call tput in initscripts) mkdir -p ${pkgdir}/lib mv ${pkgdir}/usr/lib/libncursesw.so.5* ${pkgdir}/lib ln -sf ../../lib/libncursesw.so.5 ${pkgdir}/usr/lib/libncursesw.so # Fool packages looking to link to non-wide-character ncurses libraries for lib in curses ncurses form panel menu ; do \ rm -f ${pkgdir}/usr/lib/lib${lib}.so ; \ echo "INPUT(-l${lib}w)" >${pkgdir}/usr/lib/lib${lib}.so ; \ ln -sf lib${lib}w.a ${pkgdir}/usr/lib/lib${lib}.a ; \ done ln -sf libncurses++w.a ${pkgdir}/usr/lib/libncurses++.a # install tput to /bin mkdir ${pkgdir}/bin/ mv ${pkgdir}/usr/bin/tput ${pkgdir}/bin/tput # Some packages look for -lcurses during build rm -f ${pkgdir}/usr/lib/libcursesw.so echo "INPUT(-lncursesw)" >${pkgdir}/usr/lib/libcursesw.so ln -sf libncurses.so ${pkgdir}/usr/lib/libcurses.so ln -sf libncursesw.a ${pkgdir}/usr/lib/libcursesw.a ln -sf libncurses.a ${pkgdir}/usr/lib/libcurses.a # install license, rip it from the readme cd ${srcdir}/${pkgname}-${pkgver} mkdir -p ${pkgdir}/usr/share/licenses/$pkgname grep -B 100 '$Id' README > ${pkgdir}/usr/share/licenses/${pkgname}/license.txt }
Rebuild List
Stage 1 - COMPLETE
Packages required for bash to continue working with only ncursesw library. Note: this requires some bootstraping
ncurses readline (Fix man and info directories) bash (Fix info directory)
Stage 2 - COMPLETE
The rest of base and base-devel:
dialog gettext grub (Fix man and info directories) less (Not needed for i686) nano (Not needed for i686) procinfo (Fix man directory) procps psmisc (Remove pidof cleanup) texinfo util-linux-ng (Requires update and new patch to build) vi (Requires gettext. Bump patch level. Add gettext to makedepends)
Stage 3 - COMPLETE
Rebuild rest of [core]:
gpm heimdal (Fix man directory. Adjust all man page cleanup.) initscrits (No rebuild needed. Only runtime dependancy) isdn4k-utils (Not needed for i686) links (Requires gpm) netkit-telnet
Stage 4
Packages in [extra]:
DONE
aalib (Fix info directory) abook (Add md5sums. Fix man directory) afterstep (Requires gnutls, libxml2) alpine alsa-utils (Not needed for i686) aspell bc blassic (Requires patch for gcc-4.3 headers. Add arch array) bs (Add arch array) bzflag (Requires update to build) cdargs (Fix man directory) cdcd (Add arch array. Fix man and info directories) clisp cmatrix (Add arch array. Add license) cscope (Add license. Fix man directory) ddd (Fix man and info directories) duhdraw (Add arch array) elinks (Not needed for i686) emacs (Requires gnutls. Replace libungif with giflib) enigma (Add arch array. Add license) erlang ethstatus (Add arch array. Add license. Fix man directory) ettercap fortunelock (Add arch array. Add license. Fix man directory) freeciv (Requires gnutls) fvwm fvwm-devel gdb (Fix man and info directories) gftp ghc (Requires patch and bootstraping) gnuchess (Add arch array. Add license. Requires patch for gcc4) gnome-terminal (Not needed for i686) gnugo gnutls gphoto2 gstreamer-good-plugins (Requires aalib, gnutls, libxml2) gutenprint (Requires gnutls) gvim (Requires vim, gnutls) hexedit (Add md5sum. Add license) htop hugs98 (Add license) iptraf (Add arch array. Add license. Fix man directory. x86_64 build failure!) irssi ispell jack-audio-connection-kit joe (Fix man directory) kismet (Requires gnutls. Require patch for gcc-4.3 headers) lame lexter (Add arch array. Fix man directory) lftp libcdio libnjb libxml2 lua lynx (Change md5sum for upstream -release5. Fix man directory) maxima (Requires clisp. Fix info directory) mc (Not needed for i686) mplayer (Requires aalib, gnutls, jack-audio-connection-kit, lame, smbclient. Replace libungif with giflib) mp3blaster (Requires gcc-4.3 patch) moon-buggy (Add arch array. Add license. Fix man and info directories. Remove /usr/com directory) mtr (Requires gnutls. Fix man directory) multitail mysql-clients naim ncftp (Fix man directory) ncmpc (Fix man directory) nethack (Add arch array) netkit-ftp (Requires patch to build) netris (Add arch array. Add md5sums. Add license) nph (Requires termcap-compat. Fix man directory) nppangband ntp (Fix install of ntpd, ntpdate, ntp.conf, ntp-client.conf. Fix man directory) octave (Fix man and info directories) openupsmart (Not needed for i686) pal (Add arch array. Add license) pente (Add libxt makedepend. Fix man directory. Fix x86_64 build mistake) php (Requires sqlite3. Fix man directory) pilot-link pinentry (Requires update and patch to build) proftpd (Requires patch to build) postgresql-libs python (Not needed for i686) r (Not needed for i686) ratpoison (Fix desktop install) ruby (Requires termcap-compat) screen (Fix man directory) socat (Add imake to makedepends) sqlite2 (Add arch array. Too lazy to add license...) sqlite3 smbclient swi-prolog tcsh termcap-compat (Not needed for i686) terminal (Requires vte) tin (Fix man directory) uml_utilities unixodbc vice (Add xorg-font-utils to makedepeds. Replace libungif with giflib. Fix man and info directories) vim (Requires ruby) vte (Requires gnutls, libxml2) w3m wvstreams xaos (Requires aalib) xawtv (Requires aalib) xfsdump (Required version bump to find source) xorg-server xterm (Fix man directory. Too lazy to add license...) yabasic (Add libxt to makedepends. Add license. Add md5sum. Fix man directory. x86_64 build failure) zile zsh (Not needed for i686) zsnes (Add mesa to depends. Fix man directory)
TODO
achessclock (Source not found) archboot (Dependancies cannot be satisfied) giftcurs (Add arch array. Source not found) hexcurse (md5sum failure. Url no longer exists. Add arch array. Add license) ne (Add arch array. Source not found)
abiword-plugins cmake dopewars gnuplot guile libgda libqalculate parted timidity++ xine-ui xemacs
Stage 5
Packages in [community]:
DONE
octave3
TODO
?
Voting
Add a vote below this for a package you use that is broken by this and I will prioritize its rebuild. Probably best to send me an email too: allan@archlinux.org