Difference between revisions of "DeveloperWiki:Ncurses Todo List"

From ArchWiki
Jump to: navigation, search
(Stage 4)
(categorizing uncategorized page)
(37 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
  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
  cmatrix  ''(Add arch array.  Add license)''
+
  cdcd
  cscope  ''(Add license.  Fix man directory)''
+
  centerim
  ddd  ''(Fix man and info directories)''
+
  clisp
  duhdraw  ''(Add arch array)''
+
  cmake
  emacs  ''(Requires gnutls.  Replace libungif with giflib)''
+
  cmatrix
  enigma  ''(Add arch array. Add license)''
+
cmus ''(Requires lame)''
  ethstatus ''(Add arch array. Add license.  Fix man directory)''
+
  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
 +
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)''
 
  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
pinentry  ''(Requires update and patch to build)''
+
  netris
proftpd  ''(Requires patch to build)''
+
  nph ''(Requires termcap-compat)''
screen  ''(Fix man directory)''
+
  nppangband
sqlite3
 
smbclient
 
tcsh
 
  termcap-compat  ''(Not needed for i686)''
 
  terminal  ''(Requires vte)''
 
  tin  ''(Fix man directory)''
 
r  ''(Not needed for i686)''
 
ruby ''(Requires termcap-compat)''
 
  vim  ''(Requires ruby)''
 
vte  ''(Requires gnutls, libxml2)''
 
w3m
 
xaos  ''(Requires aalib)''
 
xorg-server
 
xterm  ''(Fix man directory.  Too lazy to add license...)''
 
zile
 
zsh  ''(Not needed for i686)''
 
zsnes  ''(Add mesa to depends.  Fix man directory)''
 
 
 
'''TODO'''
 
abook
 
afterstep
 
cdcd
 
clisp
 
freeciv
 
fvwm
 
fvwm-devel
 
gftp
 
ghc
 
gutenprint
 
hugs98
 
lftp
 
maxima
 
mysql-clients
 
nph
 
 
  ntp
 
  ntp
 +
ocaml
 
  octave
 
  octave
 +
openupsmart
 
  pal
 
  pal
 +
parted
 +
pente
 +
php  ''(Requires sqlite3)''
 
  pilot-link
 
  pilot-link
 +
pinentry
 +
proftpd
 
  postgresql-libs
 
  postgresql-libs
 +
python
 +
r
 
  ratpoison
 
  ratpoison
 +
ruby  ''(Requires termcap-compat)''
 +
screen
 
  socat
 
  socat
 
  sqlite2
 
  sqlite2
 +
sqlite3
 +
smbclient
 
  swi-prolog
 
  swi-prolog
 +
tcsh
 +
termcap-compat
 +
terminal  ''(Requires vte)''
 +
timidity++  ''(Requires jack-audio-connection-kit, gnutls)''
 +
tin
 
  uml_utilities
 
  uml_utilities
 
  unixodbc
 
  unixodbc
 
  vice
 
  vice
 +
vim  ''(Requires ruby)''
 +
vte  ''(Requires gnutls, libxml2)''
 +
w3m
 
  wvstreams
 
  wvstreams
 
+
  xaos ''(Requires aalib)''
  achessclock ''(Source not found)''
+
  xawtv ''(Requires aalib)''
  archboot  ''(Dependancies cannot be satisfied)''
+
  xemacs
erlang  ''(Requires gnutls.  configure stalls "checking for JDK version 1.2...")''
+
  xfsdump
  giftcurs  ''(Add arch array.  Source not found)''
+
  xine-ui ''(Requires lame)''
  hexcurse  ''(md5sum failure.  Url no longer exists.  Add arch array.  Add license)''
+
  xorg-server
  kismet ''(Requires gnutls.  gcc-4.3 header related build failure)''
+
  xterm
  mp3blaster  ''(gcc-4.3 header related build failure)''
+
  yabasic
  ne  ''(Add arch array.  Source not found)''
+
  zile
  netkit-ftp  ''(gcc-4.3 header related build failure)''
+
  zsh
nppangband  ''(Add arch array.  Source not found)''
+
  zsnes
pente  ''(Add arch array.  Build failure)''
 
  php  ''(need to figure out dependancies prior to makechrootpkg - imap/smtpserver)''
 
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
 

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