Difference between revisions of "DeveloperWiki:Ncurses Todo List"

From ArchWiki
Jump to: navigation, search
(Stage 5)
(categorizing uncategorized page)
(41 intermediate revisions by 3 users not shown)
Line 1: Line 1:
This page is to help me keep track of the ncurses rebuild so we can purge Arch of packages that link to libncurses.so.
+
[[Category:DeveloperWiki]]
 +
= Introduction =
 +
This article is part of the [[DeveloperWiki]].
  
==FAQ==
+
= Ncurses Rebuild List =
 +
This is a list of packages which link to the ncurses libraries (as of 2008-08) and a recommended build order
  
====Are there really FAQs?====
+
====Stage 1====
No
+
Packages required for bash to continue working.  Note: this probably requires some bootstraping
  
====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
 
  ncurses
  readline ''(Fix man and info directories)''
+
  readline
  bash ''(Fix info directory)''
+
  bash
  
====Stage 2 - COMPLETE====
+
====Stage 2====
 
The rest of base and base-devel:
 
The rest of base and base-devel:
  
 
  dialog
 
  dialog
 
  gettext
 
  gettext
  grub ''(Fix man and info directories)''
+
  grub
  less ''(Not needed for i686)''
+
  less
  nano ''(Not needed for i686)''
+
  nano
  procinfo ''(Fix man directory)''
+
  procinfo
 
  procps
 
  procps
  psmisc ''(Remove pidof cleanup)''
+
  psmisc
 
  texinfo
 
  texinfo
  util-linux-ng ''(Requires update and new patch to build)''
+
  util-linux-ng
  vi  ''(Requires gettext.  Bump patch level.  Add gettext to makedepends)''
+
  vi  ''(Requires gettext)''
  
====Stage 3 - COMPLETE====
+
====Stage 3====
 
Rebuild rest of [core]:
 
Rebuild rest of [core]:
  
 
  gpm
 
  gpm
  heimdal ''(Fix man directory.  Adjust all man page cleanup.)''
+
  heimdal
initscrits  ''(No rebuild needed. Only runtime dependancy)''
+
  isdn4k-utils
  isdn4k-utils ''(Not needed for i686)''
+
  links
  links ''(Requires gpm)''
 
 
  netkit-telnet
 
  netkit-telnet
  
Line 149: Line 40:
 
Packages in [extra]:
 
Packages in [extra]:
  
'''DONE'''
+
aalib
  aalib ''(Fix info directory)''
+
abiword-plugins  ''(Requires aspell, gnutls, smbclient, postgresql-libs, unixodbc, sqlite3, libgda)''
 +
abook
 +
achessclock  ''(Source location unknown - remove on next update)''
 +
  afterstep ''(Requires gnutls, libxml2)''
 
  alpine
 
  alpine
  alsa-utils ''(Not needed for i686)''
+
  alsa-utils
 
  aspell
 
  aspell
 
  bc
 
  bc
  bs  ''(Add arch array)''
+
blassic
  cdargs  ''(Fix man directory)''
+
  bs
  cmatrix  ''(Add arch array.  Add license)''
+
  bzflag
  cscope  ''(Add license.  Fix man directory)''
+
  cdargs
  ddd  ''(Fix man and info directories)''
+
cdcd
  duhdraw  ''(Add arch array)''
+
centerim
  emacs  ''(Requires gnutls.  Replace libungif with giflib)''
+
clisp
  enigma  ''(Add arch array. Add license)''
+
  cmake
  ethstatus ''(Add arch array. Add license.  Fix man directory)''
+
  cmatrix
 +
cmus ''(Requires lame)''
 +
  cscope
 +
  darcs
 +
  ddd
 +
  dopewars
 +
  duhdraw
 +
  elinks
 +
  emacs  ''(Requires gnutls)''
 +
  enigma
 +
  erlang
 +
  ethstatus
 
  ettercap
 
  ettercap
  fortunelock ''(Add arch array.  Add license.  Fix man directory)''
+
  ettercap-gtk ''(Requires ettercap)''
  gdb ''(Fix man and info directories)''
+
  evms
  gnuchess ''(Add arch array.  Add license.  Requires patch for gcc4)''
+
fortunelock
  gnome-terminal ''(Not needed for i686)''
+
freeciv ''(Requires gnutls)''
 +
  fvwm
 +
fvwm-devel
 +
gdb
 +
gftp
 +
ghc ''(Requires bootstraping)''
 +
gnuchess
 +
giftcurs
 +
  gnome-terminal
 
  gnugo
 
  gnugo
  gnutls '''TODO - rebuild to remove /usr/share/info/dir'''
+
  gnuplot ''(Requires gnutls)''
 +
gnutls
 
  gphoto2
 
  gphoto2
 
  gstreamer-good-plugins  ''(Requires aalib, gnutls, libxml2)''
 
  gstreamer-good-plugins  ''(Requires aalib, gnutls, libxml2)''
 +
guile
 +
gutenprint  ''(Requires gnutls)''
 
  gvim  ''(Requires vim, gnutls)''
 
  gvim  ''(Requires vim, gnutls)''
  hexedit ''(Add md5sum.  Add license)''
+
hexcurse
 +
  hexedit
 
  htop
 
  htop
  iptraf ''(Add arch array.  Add license.  Fix man directory)''
+
hugs98
 +
  iptraf
 
  irssi
 
  irssi
 
  ispell
 
  ispell
 
  jack-audio-connection-kit
 
  jack-audio-connection-kit
  joe  ''(Fix man directory)''
+
  joe
 +
kismet ''(Requires gnutls)''
 
  lame
 
  lame
  lexter  ''(Add arch array. Fix man directory)''
+
  lexter
 +
  lftp
 +
libcaca
 
  libcdio
 
  libcdio
 +
libgda  ''(Requires sqlite3, postgresql-libs, unixodbc, libxml2)''
 
  libnjb
 
  libnjb
 +
libqalculate  ''(Requires libxml2)''
 +
librep
 
  libxml2
 
  libxml2
 
  lua
 
  lua
  lynx  ''(Change md5sum for upstream -release5.  Fix man directory)''
+
  lynx
  mc  ''(Not needed for i686)''
+
maxima ''(Requires clisp)''
  mplayer  ''(Requires aalib, gnutls, jack-audio-connection-kit, lame, smbclient.  Replace libungif with giflib)''
+
  mc
  moon-buggy ''(Add arch array.  Add license.  Fix man and info directories.  Remove /usr/com directory)''
+
minicom
  mtr  ''(Requires gnutls.  Fix man directory)''
+
  moc ''(Requores jack-audio-connection-kit, lame)''
 +
  mplayer  ''(Requires aalib, gnutls, jack-audio-connection-kit, lame, smbclient)''
 +
mp3blaster
 +
  moon-buggy
 +
  mtr  ''(Requires gnutls)''
 
  multitail
 
  multitail
 +
mysql-clients
 
  naim
 
  naim
  ncftp ''(Fix man directory)''
+
  ncftp
  ncmpc  ''(Fix man directory)''
+
  ncmpc
  nethack  ''(Add arch array)''
+
  ne
  netris ''(Add arch array. Add md5sums. Add license)''
+
  nethack
  openupsmart  ''(Not needed for i686)''
+
netkit-ftp
  screen ''(Fix man directory)''
+
netris
 +
nph ''(Requires termcap-compat)''
 +
  nppangband
 +
  ntp
 +
  ocaml
 +
  octave
 +
  openupsmart
 +
pal
 +
parted
 +
pente
 +
php ''(Requires sqlite3)''
 +
  pilot-link
 +
pinentry
 +
proftpd
 +
postgresql-libs
 +
python
 +
r
 +
ratpoison
 +
ruby ''(Requires termcap-compat)''
 +
screen
 +
socat
 +
sqlite2
 
  sqlite3
 
  sqlite3
 
  smbclient
 
  smbclient
 +
swi-prolog
 
  tcsh
 
  tcsh
  termcap-compat ''(Not needed for i686)''
+
  termcap-compat
 
  terminal  ''(Requires vte)''
 
  terminal  ''(Requires vte)''
  tin ''(Fix man directory)''
+
  timidity++ ''(Requires jack-audio-connection-kit, gnutls)''
  r ''(Not needed for i686)''
+
  tin
  ruby ''(Requires termcap-compat)''
+
  uml_utilities
 +
  unixodbc
 +
  vice
 
  vim  ''(Requires ruby)''
 
  vim  ''(Requires ruby)''
 
  vte  ''(Requires gnutls, libxml2)''
 
  vte  ''(Requires gnutls, libxml2)''
 
  w3m
 
  w3m
 +
wvstreams
 
  xaos  ''(Requires aalib)''
 
  xaos  ''(Requires aalib)''
 +
xawtv ''(Requires aalib)''
 +
xemacs
 +
xfsdump
 +
xine-ui  ''(Requires lame)''
 
  xorg-server
 
  xorg-server
  xterm  ''(Fix man directory.  Too lazy to add license...)''
+
  xterm
 +
  yabasic
 
  zile
 
  zile
  zsh ''(Not needed for i686)''
+
  zsh
 
+
  zsnes
'''TODO'''
 
achessclock  ''(Source not found)''
 
archboot  ''(Dependancies cannot be satisfied)''
 
blassic  ''(Add arch array.  gcc-4.3 header related build failure)''
 
bzflag  ''(Build failure)''
 
erlang  ''(Requires gnutls.  configure stalls "checking for JDK version 1.2...")''
 
giftcurs  ''(Add arch array.  Source not found)''
 
hexcurse  ''(md5sum failure.  Url no longer exists.  Add arch array.  Add license)''
 
kismet  ''(Requires gnutls.  gcc-4.3 header related build failure)''
 
mp3blaster  ''(gcc-4.3 header related build failure)''
 
ne  ''(Add arch array.  Source not found)''
 
netkit-ftp  ''(gcc-4.3 header related build failure)''
 
nppangband  ''(Add arch array.  Source not found)''
 
pente  ''(Add arch array.  Build failure)''
 
php  ''(need to figure out dependancies prior to makechrootpkg - imap/smtpserver)''
 
pinentry  ''(Build failure)''
 
proftpd  ''(build failure)''
 
yabasic  ''(Add arch array.  Build failure)''
 
  zsnes ''(Build failure)''
 
 
 
====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
 

Revision as of 18:52, 21 September 2011

Introduction

This article is part of the DeveloperWiki.

Ncurses Rebuild List

This is a list of packages which link to the ncurses libraries (as of 2008-08) and a recommended build order

Stage 1

Packages required for bash to continue working. Note: this probably requires some bootstraping

ncurses
readline
bash

Stage 2

The rest of base and base-devel:

dialog
gettext
grub
less
nano
procinfo
procps
psmisc
texinfo
util-linux-ng
vi  (Requires gettext)

Stage 3

Rebuild rest of [core]:

gpm
heimdal
isdn4k-utils
links
netkit-telnet

Stage 4

Packages in [extra]:

aalib
abiword-plugins  (Requires aspell, gnutls, smbclient, postgresql-libs, unixodbc, sqlite3, libgda)
abook
achessclock  (Source location unknown - remove on next update)
afterstep  (Requires gnutls, libxml2)
alpine
alsa-utils
aspell
bc
blassic
bs
bzflag
cdargs
cdcd
centerim
clisp
cmake
cmatrix
cmus  (Requires lame)
cscope
darcs
ddd
dopewars
duhdraw
elinks
emacs  (Requires gnutls)
enigma
erlang
ethstatus
ettercap
ettercap-gtk  (Requires ettercap)
evms
fortunelock
freeciv  (Requires gnutls)
fvwm
fvwm-devel
gdb
gftp
ghc  (Requires bootstraping)
gnuchess
giftcurs
gnome-terminal
gnugo
gnuplot  (Requires gnutls)
gnutls
gphoto2
gstreamer-good-plugins  (Requires aalib, gnutls, libxml2)
guile
gutenprint  (Requires gnutls)
gvim  (Requires vim, gnutls)
hexcurse
hexedit
htop
hugs98 
iptraf
irssi
ispell
jack-audio-connection-kit
joe
kismet  (Requires gnutls)
lame
lexter
lftp
libcaca
libcdio
libgda  (Requires sqlite3, postgresql-libs, unixodbc, libxml2)
libnjb
libqalculate  (Requires libxml2)
librep
libxml2
lua
lynx
maxima  (Requires clisp)
mc
minicom
moc (Requores jack-audio-connection-kit, lame)
mplayer  (Requires aalib, gnutls, jack-audio-connection-kit, lame, smbclient)
mp3blaster
moon-buggy
mtr  (Requires gnutls)
multitail
mysql-clients
naim
ncftp
ncmpc
ne
nethack
netkit-ftp
netris
nph  (Requires termcap-compat)
nppangband
ntp
ocaml
octave
openupsmart
pal
parted
pente
php  (Requires sqlite3)
pilot-link
pinentry
proftpd
postgresql-libs
python
r
ratpoison
ruby  (Requires termcap-compat)
screen
socat
sqlite2
sqlite3
smbclient
swi-prolog
tcsh
termcap-compat
terminal  (Requires vte)
timidity++  (Requires jack-audio-connection-kit, gnutls)
tin
uml_utilities
unixodbc
vice
vim  (Requires ruby)
vte  (Requires gnutls, libxml2)
w3m
wvstreams
xaos  (Requires aalib)
xawtv (Requires aalib)
xemacs
xfsdump
xine-ui  (Requires lame)
xorg-server
xterm
yabasic
zile
zsh
zsnes