Difference between revisions of "DeveloperWiki:Ncurses Todo List"

From ArchWiki
Jump to: navigation, search
(Stage 4)
(categorizing uncategorized page)
 
(8 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
  elinks ''(Not needed for i686)''
+
  darcs
  emacs  ''(Requires gnutls.  Replace libungif with giflib)''
+
  ddd
  enigma ''(Add arch array. Add license)''
+
  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
  pente ''(Add libxt makedepend.  Fix man directory.  Fix x86_64 build mistake)''
+
  pal
  php  ''(Requires sqlite3.  Fix man directory)''
+
  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
  python ''(Not needed for i686)''
+
  python
  r ''(Not needed for i686)''
+
  r
  ratpoison ''(Fix desktop install)''
+
  ratpoison
 
  ruby  ''(Requires termcap-compat)''
 
  ruby  ''(Requires termcap-compat)''
  screen ''(Fix man directory)''
+
  screen
  socat ''(Add imake to makedepends)''
+
  socat
  sqlite2 ''(Add arch array.    Too lazy to add license...)''
+
  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 ''(Add xorg-font-utils to makedepeds.  Replace libungif with giflib.  Fix man and info directories)''
+
  vice
 
  vim  ''(Requires ruby)''
 
  vim  ''(Requires ruby)''
 
  vte  ''(Requires gnutls, libxml2)''
 
  vte  ''(Requires gnutls, libxml2)''
Line 254: 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 ''(Add libxt to makedepends.  Add license.  Add md5sum.  Fix man directory. '''x86_64 build failure''')''
+
  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)''
+
 
+
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: [mailto:allan@archlinux.org allan@archlinux.org]
+

Latest 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