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
+

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