Difference between revisions of "DeveloperWiki:Ncurses Todo List"

From ArchWiki
Jump to: navigation, search
(Stage 4)
(categorizing uncategorized page)
(16 intermediate revisions by 2 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 ''(Add md5sums.  Fix man directory)''
+
  abook
 +
achessclock  ''(Source location unknown - remove on next update)''
 
  afterstep  ''(Requires gnutls, libxml2)''
 
  afterstep  ''(Requires gnutls, libxml2)''
 
  alpine
 
  alpine
  alsa-utils ''(Not needed for i686)''
+
  alsa-utils
 
  aspell
 
  aspell
 
  bc
 
  bc
  blassic ''(Requires patch for gcc-4.3 headers. Add arch array)''
+
  blassic
  bs ''(Add arch array)''
+
  bs
  bzflag ''(Requires update to build)''
+
  bzflag
  cdargs ''(Fix man directory)''
+
  cdargs
  cdcd  ''(Add arch array.  Fix man and info directories)''
+
  cdcd
 +
  centerim
 
  clisp
 
  clisp
  cmatrix  ''(Add arch array.  Add license)''
+
cmake
  cscope  ''(Add license.  Fix man directory)''
+
  cmatrix
  ddd  ''(Fix man and info directories)''
+
cmus ''(Requires lame)''
  duhdraw  ''(Add arch array)''
+
  cscope
  emacs  ''(Requires gnutls.  Replace libungif with giflib)''
+
  darcs
  enigma ''(Add arch array. Add license)''
+
  ddd
 +
  dopewars
 +
  duhdraw
 +
  elinks
 +
  emacs  ''(Requires gnutls)''
 +
  enigma
 
  erlang
 
  erlang
  ethstatus ''(Add arch array. Add license.  Fix man directory)''
+
  ethstatus
 
  ettercap
 
  ettercap
  fortunelock ''(Add arch array.  Add license.  Fix man directory)''
+
  ettercap-gtk ''(Requires ettercap)''
 +
evms
 +
fortunelock
 
  freeciv  ''(Requires gnutls)''
 
  freeciv  ''(Requires gnutls)''
 
  fvwm
 
  fvwm
 
  fvwm-devel
 
  fvwm-devel
  gdb ''(Fix man and info directories)''
+
  gdb
 
  gftp
 
  gftp
  ghc  ''(Requires patch and bootstraping)''
+
  ghc  ''(Requires bootstraping)''
  gnuchess  ''(Add arch array.  Add license.  Requires patch for gcc4)''
+
  gnuchess
  gnome-terminal ''(Not needed for i686)''
+
  giftcurs
 +
  gnome-terminal
 
  gnugo
 
  gnugo
 +
gnuplot  ''(Requires gnutls)''
 
  gnutls
 
  gnutls
 
  gphoto2
 
  gphoto2
 
  gstreamer-good-plugins  ''(Requires aalib, gnutls, libxml2)''
 
  gstreamer-good-plugins  ''(Requires aalib, gnutls, libxml2)''
 +
guile
 
  gutenprint  ''(Requires gnutls)''
 
  gutenprint  ''(Requires gnutls)''
 
  gvim  ''(Requires vim, gnutls)''
 
  gvim  ''(Requires vim, gnutls)''
  hexedit ''(Add md5sum.  Add license)''
+
hexcurse
 +
  hexedit
 
  htop
 
  htop
  hugs98 ''(Add license)''
+
  hugs98  
  iptraf ''(Add arch array.  Add license.  Fix man directory. '''x86_64 build failure!''')''
+
  iptraf
 
  irssi
 
  irssi
 
  ispell
 
  ispell
 
  jack-audio-connection-kit
 
  jack-audio-connection-kit
  joe ''(Fix man directory)''
+
  joe
  kismet  ''(Requires gnutls.  Require patch for gcc-4.3 headers)''
+
  kismet  ''(Requires gnutls)''
 
  lame
 
  lame
  lexter ''(Add arch array. Fix man directory)''
+
  lexter
 
  lftp
 
  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
  maxima  ''(Requires clisp.  Fix info directory)''
+
  maxima  ''(Requires clisp)''
  mc  ''(Not needed for i686)''
+
  mc
  mplayer  ''(Requires aalib, gnutls, jack-audio-connection-kit, lame, smbclient.  Replace libungif with giflib)''
+
minicom
  mp3blaster ''(Requires gcc-4.3 patch)''
+
  moc ''(Requores jack-audio-connection-kit, lame)''
  moon-buggy ''(Add arch array.  Add license.  Fix man and info directories.  Remove /usr/com directory)''
+
  mplayer  ''(Requires aalib, gnutls, jack-audio-connection-kit, lame, smbclient)''
  mtr  ''(Requires gnutls.  Fix man directory)''
+
  mp3blaster
 +
  moon-buggy
 +
  mtr  ''(Requires gnutls)''
 
  multitail
 
  multitail
 
  mysql-clients
 
  mysql-clients
 
  naim
 
  naim
  ncftp ''(Fix man directory)''
+
  ncftp
  ncmpc  ''(Fix man directory)''
+
  ncmpc
  nethack ''(Add arch array)''
+
  ne
  netkit-ftp ''(Requires patch to build)''
+
  nethack
  netris ''(Add arch array.  Add md5sums.  Add license)''
+
  netkit-ftp
  nph  ''(Requires termcap-compat.  Fix man directory)''
+
  netris
 +
  nph  ''(Requires termcap-compat)''
 
  nppangband
 
  nppangband
  ntp  ''(Fix install of ntpd, ntpdate, ntp.conf, ntp-client.conf.  Fix man directory)''
+
  ntp
  octave ''(Fix man and info directories)''
+
  ocaml
  openupsmart ''(Not needed for i686)''
+
  octave
  pal  ''(Add arch array. Add license)''
+
  openupsmart
  php  ''(Requires sqlite3.  Fix man directory)''
+
  pal
 +
  parted
 +
  pente
 +
  php  ''(Requires sqlite3)''
 
  pilot-link
 
  pilot-link
  pinentry ''(Requires update and patch to build)''
+
  pinentry
  proftpd ''(Requires patch to build)''
+
  proftpd
 
  postgresql-libs
 
  postgresql-libs
  r ''(Not needed for i686)''
+
python
  ratpoison ''(Fix desktop install)''
+
  r
 +
  ratpoison
 
  ruby  ''(Requires termcap-compat)''
 
  ruby  ''(Requires termcap-compat)''
  screen  ''(Fix man directory)''\
+
  screen
  sqlite2 ''(Add arch array.    Too lazy to add license...)''
+
  socat
 +
  sqlite2
 
  sqlite3
 
  sqlite3
 
  smbclient
 
  smbclient
 
  swi-prolog
 
  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)''
 +
tin
 
  uml_utilities
 
  uml_utilities
 
  unixodbc
 
  unixodbc
 +
vice
 
  vim  ''(Requires ruby)''
 
  vim  ''(Requires ruby)''
 
  vte  ''(Requires gnutls, libxml2)''
 
  vte  ''(Requires gnutls, libxml2)''
Line 249: Line 167:
 
  xaos  ''(Requires aalib)''
 
  xaos  ''(Requires aalib)''
 
  xawtv ''(Requires aalib)''
 
  xawtv ''(Requires aalib)''
  xfsdump  ''(Required version bump to find source)''
+
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 ''(Add mesa to depends.  Fix man directory)''
+
  zsnes
 
 
'''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)''
 
pente  ''(Add arch array.  Build failure)''
 
socat  ''(Build fails: make: makedepend: Command not found)''
 
vice  ''(Build fails during install phase)''
 
yabasic  ''(Add arch array.  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.  Probably best to send me an email too: [mailto:allan@archlinux.org allan@archlinux.org]
 

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