You are not logged in.
I've created two PKGBUILDs for Athame (Vim integration for readine and zsh, see https://github.com/ardagnir/athame) but these are my first PKGBUILDs so I wanted to check here and make sure I'm not doing anything dumb.
I made them by modifying the PKGBUILDS of the non-athame readline and zsh to include the Athame stuff. I've included both the Athame PKGBUILDS and the diffs with the originals.
readline-athame:
# $Id$
# Maintainer: James Kolb <jck1089@gmail.com>
pkgname=readline-athame
pkgbase=readline
_basever=7.0
_patchlevel=003
pkgver=${_basever}.${_patchlevel}
pkgrel=1
pkgdesc='Readline with Athame(provides full Vim mode)'
arch=('i686' 'x86_64')
url='http://github.com/ardagnir/athame/'
license=('GPL')
backup=('etc/inputrc' 'etc/athamerc')
depends=('glibc' 'ncurses' 'libncursesw.so' 'vim')
conflicts=("readline")
provides=('libhistory.so' 'libreadline.so' "readline=${_basever}")
options=('!emptydirs')
source=(git://github.com/ardagnir/athame
git://github.com/ardagnir/vimbed
https://ftp.gnu.org/gnu/readline/readline-$_basever.tar.gz{,.sig}
inputrc)
validpgpkeys=('7C0135FB088AAF6C66C650B9BB5869F064EA74AB') # Chet Ramey
if [ $_patchlevel -gt 0 ]; then
for (( _p=1; _p <= $((10#${_patchlevel})); _p++ )); do
source=(${source[@]} https://ftp.gnu.org/gnu/readline/readline-$_basever-patches/readline${_basever//.}-$(printf "%03d" $_p){,.sig})
done
fi
prepare() {
cd "${srcdir}/athame"
git submodule init
git config submodule.vimbed "${srcdir}/vimbed"
git submodule update
cd "${srcdir}/$pkgbase-$_basever"
for (( _p=1; _p <= $((10#${_patchlevel})); _p++ )); do
msg "applying patch readline${_basever//.}-$(printf "%03d" $_p)"
patch -p0 -i ../readline${_basever//.}-$(printf "%03d" $_p)
done
# remove RPATH from shared objects (FS#14366)
sed -i 's|-Wl,-rpath,$(libdir) ||g' support/shobj-conf
# Patch with Athame
${srcdir}/athame/athame_patcher.sh readline ${srcdir}/athame
}
build() {
cd $pkgbase-$_basever
# build with -fPIC for x86_64 (FS#15634)
[[ $CARCH == "x86_64" ]] && CFLAGS="$CFLAGS -fPIC"
./configure --prefix=/usr
make SHLIB_LIBS="-lncurses -lutil" ATHAME_VIM_BIN="/usr/bin/vim" ATHAME_USE_JOBS_DEFAULT=1
}
package() {
make -C $pkgbase-$_basever DESTDIR="$pkgdir" install
install -Dm644 inputrc "$pkgdir"/etc/inputrc
install -Dm644 "${srcdir}/athame/athamerc" "${pkgdir}/etc/athamerc"
}
md5sums=('SKIP'
'SKIP'
'205b03a87fc83dab653b628c59b9fc91'
'SKIP'
'58d54966c1191db45973cb3191ac621a'
'e299384458a4cbefaaac3f30e9cc2bba'
'SKIP'
'f9071a353e2fd52a91d32667b23715d6'
'SKIP'
'03595464cf0283286a6e07f4f01c4a70'
'SKIP')
Diffs from readline:
# $Id$
-# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
-# Contributor: Allan McRae <allan@archlinux.org>
-# Contributor: judd <jvinet@zeroflux.org>
+# Maintainer: James Kolb <jck1089@gmail.com>
-pkgname=readline
+pkgname=readline-athame
+pkgbase=readline
_basever=7.0
_patchlevel=003
pkgver=${_basever}.${_patchlevel}
pkgrel=1
-pkgdesc='GNU readline library'
+pkgdesc='Readline with Athame(provides full Vim mode)'
arch=('i686' 'x86_64')
-url='http://tiswww.case.edu/php/chet/readline/rltop.html'
+url='http://github.com/ardagnir/athame/'
license=('GPL')
-backup=('etc/inputrc')
-depends=('glibc' 'ncurses' 'libncursesw.so')
-provides=('libhistory.so' 'libreadline.so')
+backup=('etc/inputrc' 'etc/athamerc')
+depends=('glibc' 'ncurses' 'libncursesw.so' 'vim')
+conflicts=("readline")
+provides=('libhistory.so' 'libreadline.so' "readline=${_basever}")
options=('!emptydirs')
-source=(https://ftp.gnu.org/gnu/readline/readline-$_basever.tar.gz{,.sig}
+source=(git://github.com/ardagnir/athame
+ git://github.com/ardagnir/vimbed
+ https://ftp.gnu.org/gnu/readline/readline-$_basever.tar.gz{,.sig}
inputrc)
validpgpkeys=('7C0135FB088AAF6C66C650B9BB5869F064EA74AB') # Chet Ramey
@@ -27,7 +29,12 @@
fi
prepare() {
- cd $pkgname-$_basever
+ cd "${srcdir}/athame"
+ git submodule init
+ git config submodule.vimbed "${srcdir}/vimbed"
+ git submodule update
+
+ cd "${srcdir}/$pkgbase-$_basever"
for (( _p=1; _p <= $((10#${_patchlevel})); _p++ )); do
msg "applying patch readline${_basever//.}-$(printf "%03d" $_p)"
patch -p0 -i ../readline${_basever//.}-$(printf "%03d" $_p)
@@ -35,24 +42,30 @@
# remove RPATH from shared objects (FS#14366)
sed -i 's|-Wl,-rpath,$(libdir) ||g' support/shobj-conf
+
+ # Patch with Athame
+ ${srcdir}/athame/athame_patcher.sh readline ${srcdir}/athame
}
build() {
- cd $pkgname-$_basever
+ cd $pkgbase-$_basever
# build with -fPIC for x86_64 (FS#15634)
[[ $CARCH == "x86_64" ]] && CFLAGS="$CFLAGS -fPIC"
./configure --prefix=/usr
- make SHLIB_LIBS=-lncurses
+ make SHLIB_LIBS="-lncurses -lutil" ATHAME_VIM_BIN="/usr/bin/vim" ATHAME_USE_JOBS_DEFAULT=1
}
package() {
- make -C $pkgname-$_basever DESTDIR="$pkgdir" install
+ make -C $pkgbase-$_basever DESTDIR="$pkgdir" install
install -Dm644 inputrc "$pkgdir"/etc/inputrc
+ install -Dm644 "${srcdir}/athame/athamerc" "${pkgdir}/etc/athamerc"
}
-md5sums=('205b03a87fc83dab653b628c59b9fc91'
+md5sums=('SKIP'
+ 'SKIP'
+ '205b03a87fc83dab653b628c59b9fc91'
'SKIP'
'58d54966c1191db45973cb3191ac621a'
'e299384458a4cbefaaac3f30e9cc2bba'
zsh-athame:
# $Id$
# Maintainer: James Kolb <jck1089@gmail.com>
pkgbase=zsh
pkgname=('zsh-athame')
pkgver=5.4.2
pkgrel=1
arch=('x86_64')
conflicts=('zsh')
provides=("zsh=${pkgver}")
url='http://github.com/ardagnir/athame/'
license=('custom')
makedepends=('pcre' 'libcap' 'gdbm')
source=("https://www.zsh.org/pub/zsh-${pkgver}"{,-doc}".tar.gz"{,.asc}
'zprofile'
'git://github.com/ardagnir/athame'
'git://github.com/ardagnir/vimbed')
sha512sums=('5eaa2ff3dc8052dfb50d2be19bfeed1856b00f7c2dc698129c95c2373a516ee61dba5b42ded390ac20b171abe352b1875f177a4dda8fdc15a4f2a05bb7a024e2'
'SKIP'
'76cb8ec64d0ddab5562b34415f3b6837e7c6339162488ba3cf2c50e70c571b5597d5fe37d24ba0cad65ef24e6d47bba3077dc1e2016e055ad77bda951fc56b39'
'SKIP'
'b287e00d8de4dc4cfb1c52bb2aef1d4b191de3512baad4c91dc81e78ddc3e5bb07297f43924b022ac44ff401a348d8a9fa366e19ddc8ea1ea72df311f5ed0034'
'SKIP'
'SKIP')
validpgpkeys=('F7B2754C7DE2830914661F0EA71D9A9D4BDB27B3')
prepare() {
cd "${srcdir}/athame"
git submodule init
git config submodule.vimbed "${srcdir}/vimbed"
git submodule update
cd "${srcdir}/${pkgbase}-${pkgver}"
# Set correct keymap path
sed -i 's#/usr/share/keymaps#/usr/share/kbd/keymaps#g' Completion/Unix/Command/_loadkeys
# Fix usb.ids path
sed -i 's#/usr/share/misc/usb.ids#/usr/share/hwdata/usb.ids#g' Completion/Linux/Command/_lsusb
# Remove unneeded and conflicting completion scripts
for _fpath in AIX BSD Cygwin Darwin Debian Mandriva openSUSE Redhat Solaris; do
rm -rf Completion/$_fpath
sed "s#\s*Completion/$_fpath/\*/\*##g" -i Src/Zle/complete.mdd
done
rm Completion/Linux/Command/_{pkgtool,rpmbuild}
# Remove tests that don't work with the new athame behavior.
rm Test/[XY]*.ztst
# Patch with athame
${srcdir}/athame/athame_patcher.sh zsh ${srcdir}/athame
}
build() {
cd "${srcdir}/${pkgbase}-${pkgver}"
./configure --prefix=/usr \
--docdir=/usr/share/doc/zsh \
--htmldir=/usr/share/doc/zsh/html \
--enable-etcdir=/etc/zsh \
--enable-zshenv=/etc/zsh/zshenv \
--enable-zlogin=/etc/zsh/zlogin \
--enable-zlogout=/etc/zsh/zlogout \
--enable-zprofile=/etc/zsh/zprofile \
--enable-zshrc=/etc/zsh/zshrc \
--enable-maildir-support \
--with-term-lib='ncursesw' \
--enable-multibyte \
--enable-function-subdirs \
--enable-fndir=/usr/share/zsh/functions \
--enable-scriptdir=/usr/share/zsh/scripts \
--with-tcsetpgrp \
--enable-pcre \
--enable-cap \
--enable-zsh-secure-free
make ATHAME_VIM_BIN="/usr/bin/vim" ATHAME_USE_JOBS_DEFAULT=1
}
check() {
cd "${srcdir}/${pkgbase}-${pkgver}"
HOME="${srcdir}" make check
}
package_zsh-athame() {
pkgdesc='Zsh with Athame: provides full vim support for Zsh'
depends=('pcre' 'libcap' 'gdbm' 'vim')
backup=('etc/zsh/zprofile', 'etc/athamerc')
install=zsh.install
cd "${srcdir}/${pkgbase}-${pkgver}"
make DESTDIR="${pkgdir}/" install
install -D -m644 "${srcdir}/zprofile" "${pkgdir}/etc/zsh/zprofile"
install -D -m644 LICENCE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
cd "${srcdir}/athame"
install -D -m644 "${srcdir}/athame/athamerc" "${pkgdir}/etc/athamerc"
install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
}
Diffs from zsh:
# $Id$
-# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+# Maintainer: James Kolb <jck1089@gmail.com>
pkgbase=zsh
-pkgname=('zsh' 'zsh-doc')
+pkgname=('zsh-athame')
pkgver=5.4.2
-pkgrel=2
+pkgrel=1
arch=('x86_64')
-url='http://www.zsh.org/'
+conflicts=('zsh')
+provides=("zsh=${pkgver}")
+url='http://github.com/ardagnir/athame/'
license=('custom')
makedepends=('pcre' 'libcap' 'gdbm')
source=("https://www.zsh.org/pub/zsh-${pkgver}"{,-doc}".tar.gz"{,.asc}
- 'zprofile')
+ 'zprofile'
+ 'git://github.com/ardagnir/athame'
+ 'git://github.com/ardagnir/vimbed')
sha512sums=('5eaa2ff3dc8052dfb50d2be19bfeed1856b00f7c2dc698129c95c2373a516ee61dba5b42ded390ac20b171abe352b1875f177a4dda8fdc15a4f2a05bb7a024e2'
'SKIP'
'76cb8ec64d0ddab5562b34415f3b6837e7c6339162488ba3cf2c50e70c571b5597d5fe37d24ba0cad65ef24e6d47bba3077dc1e2016e055ad77bda951fc56b39'
'SKIP'
- 'b287e00d8de4dc4cfb1c52bb2aef1d4b191de3512baad4c91dc81e78ddc3e5bb07297f43924b022ac44ff401a348d8a9fa366e19ddc8ea1ea72df311f5ed0034')
+ 'b287e00d8de4dc4cfb1c52bb2aef1d4b191de3512baad4c91dc81e78ddc3e5bb07297f43924b022ac44ff401a348d8a9fa366e19ddc8ea1ea72df311f5ed0034'
+ 'SKIP'
+ 'SKIP')
validpgpkeys=('F7B2754C7DE2830914661F0EA71D9A9D4BDB27B3')
prepare() {
+ cd "${srcdir}/athame"
+ git submodule init
+ git config submodule.vimbed "${srcdir}/vimbed"
+ git submodule update
+
cd "${srcdir}/${pkgbase}-${pkgver}"
# Set correct keymap path
@@ -33,6 +44,12 @@
sed "s#\s*Completion/$_fpath/\*/\*##g" -i Src/Zle/complete.mdd
done
rm Completion/Linux/Command/_{pkgtool,rpmbuild}
+
+ # Remove tests that don't work with the new athame behavior.
+ rm Test/[XY]*.ztst
+
+ # Patch with athame
+ ${srcdir}/athame/athame_patcher.sh zsh ${srcdir}/athame
}
build() {
@@ -57,7 +74,7 @@
--enable-pcre \
--enable-cap \
--enable-zsh-secure-free
- make
+ make ATHAME_VIM_BIN="/usr/bin/vim" ATHAME_USE_JOBS_DEFAULT=1
}
check() {
@@ -65,23 +82,17 @@
HOME="${srcdir}" make check
}
-package_zsh() {
- pkgdesc='A very advanced and programmable command interpreter (shell) for UNIX'
- depends=('pcre' 'libcap' 'gdbm')
- backup=('etc/zsh/zprofile')
+package_zsh-athame() {
+ pkgdesc='Zsh with Athame: provides full vim support for Zsh'
+ depends=('pcre' 'libcap' 'gdbm' 'vim')
+ backup=('etc/zsh/zprofile', 'etc/athamerc')
install=zsh.install
cd "${srcdir}/${pkgbase}-${pkgver}"
make DESTDIR="${pkgdir}/" install
install -D -m644 "${srcdir}/zprofile" "${pkgdir}/etc/zsh/zprofile"
install -D -m644 LICENCE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
-}
-
-package_zsh-doc() {
- pkgdesc='Info, HTML and PDF format of the ZSH documentation'
-
- cd "${srcdir}/${pkgbase}-${pkgver}"
- make DESTDIR="${pkgdir}/" install.info install.html
- install -D -m644 Doc/zsh.pdf "${pkgdir}/usr/share/doc/zsh/zsh.pdf"
- install -D -m644 LICENCE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ cd "${srcdir}/athame"
+ install -D -m644 "${srcdir}/athame/athamerc" "${pkgdir}/etc/athamerc"
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
}
Last edited by ardagnir (2018-02-04 05:32:57)
Offline
readline-athame:
No make-depends on git.
Package is using git HEAD but package name is not postfixed with -git.
provides=('libhistory.so' 'libreadline.so' "readline=${_basever}") the package is ABI compliant with readline?
vimbed is AGPL licensed but the package is licensed GPL
-# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
-# Contributor: Allan McRae <allan@archlinux.org>
-# Contributor: judd <jvinet@zeroflux.org>
You removed all the previous contributors/maintainer instead of keeping them as contributors.
zsh-athame:
No make-depends on git.
Package is using git HEAD but package name is not postfixed with -git.
vimbed is AGPL licensed, athame is GPL licensed but the package is licensed custom
-# Maintainer: Pierre Schmitz <pierre@archlinux.de>
You removed the previous maintainer instead of keeping them as a contributor.
Offline
Thanks! I fixed all your comments. Readline-athame is ABI compliant with readline.
readline-athame-git:
# $Id$
# Maintainer: James Kolb <jck1089@gmail.com>
# Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
pkgname=readline-athame-git
pkgbase=readline
_basever=7.0
_patchlevel=003
pkgver=${_basever}.${_patchlevel}
pkgrel=1
pkgdesc='Readline with Athame(provides full Vim mode)'
arch=('i686' 'x86_64')
url='http://github.com/ardagnir/athame/'
license=('GPL' 'AGPL')
backup=('etc/inputrc' 'etc/athamerc')
depends=('glibc' 'ncurses' 'libncursesw.so' 'vim')
makedepends=('git')
conflicts=("readline")
provides=('libhistory.so' 'libreadline.so' "readline=${_basever}")
options=('!emptydirs')
source=(git://github.com/ardagnir/athame
git://github.com/ardagnir/vimbed
https://ftp.gnu.org/gnu/readline/readline-$_basever.tar.gz{,.sig}
inputrc)
validpgpkeys=('7C0135FB088AAF6C66C650B9BB5869F064EA74AB') # Chet Ramey
if [ $_patchlevel -gt 0 ]; then
for (( _p=1; _p <= $((10#${_patchlevel})); _p++ )); do
source=(${source[@]} https://ftp.gnu.org/gnu/readline/readline-$_basever-patches/readline${_basever//.}-$(printf "%03d" $_p){,.sig})
done
fi
prepare() {
cd "${srcdir}/athame"
git submodule init
git config submodule.vimbed "${srcdir}/vimbed"
git submodule update
cd "${srcdir}/$pkgbase-$_basever"
for (( _p=1; _p <= $((10#${_patchlevel})); _p++ )); do
msg "applying patch readline${_basever//.}-$(printf "%03d" $_p)"
patch -p0 -i ../readline${_basever//.}-$(printf "%03d" $_p)
done
# remove RPATH from shared objects (FS#14366)
sed -i 's|-Wl,-rpath,$(libdir) ||g' support/shobj-conf
# Patch with Athame
${srcdir}/athame/athame_patcher.sh readline ${srcdir}/athame
}
build() {
cd $pkgbase-$_basever
# build with -fPIC for x86_64 (FS#15634)
[[ $CARCH == "x86_64" ]] && CFLAGS="$CFLAGS -fPIC"
./configure --prefix=/usr
make SHLIB_LIBS="-lncurses -lutil" ATHAME_VIM_BIN="/usr/bin/vim" ATHAME_USE_JOBS_DEFAULT=1
}
package() {
make -C $pkgbase-$_basever DESTDIR="$pkgdir" install
install -Dm644 inputrc "$pkgdir"/etc/inputrc
install -Dm644 "${srcdir}/athame/athamerc" "${pkgdir}/etc/athamerc"
}
md5sums=('SKIP'
'SKIP'
'205b03a87fc83dab653b628c59b9fc91'
'SKIP'
'58d54966c1191db45973cb3191ac621a'
'e299384458a4cbefaaac3f30e9cc2bba'
'SKIP'
'f9071a353e2fd52a91d32667b23715d6'
'SKIP'
'03595464cf0283286a6e07f4f01c4a70'
'SKIP')
zsh-athame-git:
# $Id$
# Maintainer: James Kolb <jck1089@gmail.com>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
pkgbase=zsh
pkgname=('zsh-athame-git')
pkgver=5.4.2
pkgrel=1
arch=('x86_64')
conflicts=('zsh')
provides=("zsh=${pkgver}")
url='http://github.com/ardagnir/athame/'
license=('custom' 'GPL' 'AGPL')
makedepends=('pcre' 'libcap' 'gdbm' 'git')
source=("https://www.zsh.org/pub/zsh-${pkgver}"{,-doc}".tar.gz"{,.asc}
'zprofile'
'git://github.com/ardagnir/athame'
'git://github.com/ardagnir/vimbed')
sha512sums=('5eaa2ff3dc8052dfb50d2be19bfeed1856b00f7c2dc698129c95c2373a516ee61dba5b42ded390ac20b171abe352b1875f177a4dda8fdc15a4f2a05bb7a024e2'
'SKIP'
'76cb8ec64d0ddab5562b34415f3b6837e7c6339162488ba3cf2c50e70c571b5597d5fe37d24ba0cad65ef24e6d47bba3077dc1e2016e055ad77bda951fc56b39'
'SKIP'
'b287e00d8de4dc4cfb1c52bb2aef1d4b191de3512baad4c91dc81e78ddc3e5bb07297f43924b022ac44ff401a348d8a9fa366e19ddc8ea1ea72df311f5ed0034'
'SKIP'
'SKIP')
validpgpkeys=('F7B2754C7DE2830914661F0EA71D9A9D4BDB27B3')
prepare() {
cd "${srcdir}/athame"
git submodule init
git config submodule.vimbed "${srcdir}/vimbed"
git submodule update
cd "${srcdir}/${pkgbase}-${pkgver}"
# Set correct keymap path
sed -i 's#/usr/share/keymaps#/usr/share/kbd/keymaps#g' Completion/Unix/Command/_loadkeys
# Fix usb.ids path
sed -i 's#/usr/share/misc/usb.ids#/usr/share/hwdata/usb.ids#g' Completion/Linux/Command/_lsusb
# Remove unneeded and conflicting completion scripts
for _fpath in AIX BSD Cygwin Darwin Debian Mandriva openSUSE Redhat Solaris; do
rm -rf Completion/$_fpath
sed "s#\s*Completion/$_fpath/\*/\*##g" -i Src/Zle/complete.mdd
done
rm Completion/Linux/Command/_{pkgtool,rpmbuild}
# Remove tests that don't work with the new athame behavior.
rm Test/[XY]*.ztst
# Patch with athame
${srcdir}/athame/athame_patcher.sh zsh ${srcdir}/athame
}
build() {
cd "${srcdir}/${pkgbase}-${pkgver}"
./configure --prefix=/usr \
--docdir=/usr/share/doc/zsh \
--htmldir=/usr/share/doc/zsh/html \
--enable-etcdir=/etc/zsh \
--enable-zshenv=/etc/zsh/zshenv \
--enable-zlogin=/etc/zsh/zlogin \
--enable-zlogout=/etc/zsh/zlogout \
--enable-zprofile=/etc/zsh/zprofile \
--enable-zshrc=/etc/zsh/zshrc \
--enable-maildir-support \
--with-term-lib='ncursesw' \
--enable-multibyte \
--enable-function-subdirs \
--enable-fndir=/usr/share/zsh/functions \
--enable-scriptdir=/usr/share/zsh/scripts \
--with-tcsetpgrp \
--enable-pcre \
--enable-cap \
--enable-zsh-secure-free
make ATHAME_VIM_BIN="/usr/bin/vim" ATHAME_USE_JOBS_DEFAULT=1
}
check() {
cd "${srcdir}/${pkgbase}-${pkgver}"
HOME="${srcdir}" make check
}
package_zsh-athame-git() {
pkgdesc='Zsh with Athame: provides full vim support for Zsh'
depends=('pcre' 'libcap' 'gdbm' 'vim')
backup=('etc/zsh/zprofile', 'etc/athamerc')
install=zsh.install
cd "${srcdir}/${pkgbase}-${pkgver}"
make DESTDIR="${pkgdir}/" install
install -D -m644 "${srcdir}/zprofile" "${pkgdir}/etc/zsh/zprofile"
install -D -m644 LICENCE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
cd "${srcdir}/athame"
install -D -m644 "${srcdir}/athame/athamerc" "${pkgdir}/etc/athamerc"
}
Offline
Those pkgbase variables are going to be a problem if you want to upload it to the AUR.
You realize what a PITA this is going to be to keep in sync, right? If you update bash without updating readline at the same time after an ABI break, pacman no longer works.
Offline
I've never had a problem with readline ABI changes. The package only provides readline 7.0, so readline would need to break ABI without incrementing the version, and it doesn't look like they like to change it much: https://abi-laboratory.pro/tracker/timeline/readline/
New version without pkgbase:
readline-athame-git:
# $Id$
# Maintainer: James Kolb <jck1089@gmail.com>
# Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
pkgname=readline-athame-git
_basever=7.0
_patchlevel=003
pkgver=${_basever}.${_patchlevel}
pkgrel=1
pkgdesc='Readline with Athame(provides full Vim mode)'
arch=('i686' 'x86_64')
url='http://github.com/ardagnir/athame/'
license=('GPL' 'AGPL')
backup=('etc/inputrc' 'etc/athamerc')
depends=('glibc' 'ncurses' 'libncursesw.so' 'vim')
makedepends=('git')
conflicts=("readline")
provides=('libhistory.so.7' 'libreadline.so.7' "readline=${_basever}")
options=('!emptydirs')
source=(git://github.com/ardagnir/athame
git://github.com/ardagnir/vimbed
https://ftp.gnu.org/gnu/readline/readline-$_basever.tar.gz{,.sig}
inputrc)
validpgpkeys=('7C0135FB088AAF6C66C650B9BB5869F064EA74AB') # Chet Ramey
if [ $_patchlevel -gt 0 ]; then
for (( _p=1; _p <= $((10#${_patchlevel})); _p++ )); do
source=(${source[@]} https://ftp.gnu.org/gnu/readline/readline-$_basever-patches/readline${_basever//.}-$(printf "%03d" $_p){,.sig})
done
fi
prepare() {
cd "${srcdir}/athame"
git submodule init
git config submodule.vimbed "${srcdir}/vimbed"
git submodule update
cd "${srcdir}/readline-$_basever"
for (( _p=1; _p <= $((10#${_patchlevel})); _p++ )); do
msg "applying patch readline${_basever//.}-$(printf "%03d" $_p)"
patch -p0 -i ../readline${_basever//.}-$(printf "%03d" $_p)
done
# remove RPATH from shared objects (FS#14366)
sed -i 's|-Wl,-rpath,$(libdir) ||g' support/shobj-conf
# Patch with Athame
${srcdir}/athame/athame_patcher.sh readline ${srcdir}/athame
}
build() {
cd readline-$_basever
# build with -fPIC for x86_64 (FS#15634)
[[ $CARCH == "x86_64" ]] && CFLAGS="$CFLAGS -fPIC"
./configure --prefix=/usr
make SHLIB_LIBS="-lncurses -lutil" ATHAME_VIM_BIN="/usr/bin/vim" ATHAME_USE_JOBS_DEFAULT=1
}
package() {
make -C readline-$_basever DESTDIR="$pkgdir" install
install -Dm644 inputrc "$pkgdir"/etc/inputrc
install -Dm644 "${srcdir}/athame/athamerc" "${pkgdir}/etc/athamerc"
}
md5sums=('SKIP'
'SKIP'
'205b03a87fc83dab653b628c59b9fc91'
'SKIP'
'58d54966c1191db45973cb3191ac621a'
'e299384458a4cbefaaac3f30e9cc2bba'
'SKIP'
'f9071a353e2fd52a91d32667b23715d6'
'SKIP'
'03595464cf0283286a6e07f4f01c4a70'
'SKIP')
zsh-athame-git:
# $Id$
# Maintainer: James Kolb <jck1089@gmail.com>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
pkgname=('zsh-athame-git')
pkgver=5.4.2
pkgrel=1
arch=('x86_64')
conflicts=('zsh')
provides=("zsh=${pkgver}")
url='http://github.com/ardagnir/athame/'
license=('custom' 'GPL' 'AGPL')
makedepends=('pcre' 'libcap' 'gdbm' 'git')
source=("https://www.zsh.org/pub/zsh-${pkgver}"{,-doc}".tar.gz"{,.asc}
'zprofile'
'git://github.com/ardagnir/athame'
'git://github.com/ardagnir/vimbed')
sha512sums=('5eaa2ff3dc8052dfb50d2be19bfeed1856b00f7c2dc698129c95c2373a516ee61dba5b42ded390ac20b171abe352b1875f177a4dda8fdc15a4f2a05bb7a024e2'
'SKIP'
'76cb8ec64d0ddab5562b34415f3b6837e7c6339162488ba3cf2c50e70c571b5597d5fe37d24ba0cad65ef24e6d47bba3077dc1e2016e055ad77bda951fc56b39'
'SKIP'
'b287e00d8de4dc4cfb1c52bb2aef1d4b191de3512baad4c91dc81e78ddc3e5bb07297f43924b022ac44ff401a348d8a9fa366e19ddc8ea1ea72df311f5ed0034'
'SKIP'
'SKIP')
validpgpkeys=('F7B2754C7DE2830914661F0EA71D9A9D4BDB27B3')
prepare() {
cd "${srcdir}/athame"
git submodule init
git config submodule.vimbed "${srcdir}/vimbed"
git submodule update
cd "${srcdir}/zsh-${pkgver}"
# Set correct keymap path
sed -i 's#/usr/share/keymaps#/usr/share/kbd/keymaps#g' Completion/Unix/Command/_loadkeys
# Fix usb.ids path
sed -i 's#/usr/share/misc/usb.ids#/usr/share/hwdata/usb.ids#g' Completion/Linux/Command/_lsusb
# Remove unneeded and conflicting completion scripts
for _fpath in AIX BSD Cygwin Darwin Debian Mandriva openSUSE Redhat Solaris; do
rm -rf Completion/$_fpath
sed "s#\s*Completion/$_fpath/\*/\*##g" -i Src/Zle/complete.mdd
done
rm Completion/Linux/Command/_{pkgtool,rpmbuild}
# Remove tests that don't work with the new athame behavior.
rm Test/[XY]*.ztst
# Patch with athame
${srcdir}/athame/athame_patcher.sh zsh ${srcdir}/athame
}
build() {
cd "${srcdir}/zsh-${pkgver}"
./configure --prefix=/usr \
--docdir=/usr/share/doc/zsh \
--htmldir=/usr/share/doc/zsh/html \
--enable-etcdir=/etc/zsh \
--enable-zshenv=/etc/zsh/zshenv \
--enable-zlogin=/etc/zsh/zlogin \
--enable-zlogout=/etc/zsh/zlogout \
--enable-zprofile=/etc/zsh/zprofile \
--enable-zshrc=/etc/zsh/zshrc \
--enable-maildir-support \
--with-term-lib='ncursesw' \
--enable-multibyte \
--enable-function-subdirs \
--enable-fndir=/usr/share/zsh/functions \
--enable-scriptdir=/usr/share/zsh/scripts \
--with-tcsetpgrp \
--enable-pcre \
--enable-cap \
--enable-zsh-secure-free
make ATHAME_VIM_BIN="/usr/bin/vim" ATHAME_USE_JOBS_DEFAULT=1
}
check() {
cd "${srcdir}/zsh-${pkgver}"
HOME="${srcdir}" make check
}
package_zsh-athame-git() {
pkgdesc='Zsh with Athame: provides full vim support for Zsh'
depends=('pcre' 'libcap' 'gdbm' 'vim')
backup=('etc/zsh/zprofile', 'etc/athamerc')
install=zsh.install
cd "${srcdir}/zsh-${pkgver}"
make DESTDIR="${pkgdir}/" install
install -D -m644 "${srcdir}/zprofile" "${pkgdir}/etc/zsh/zprofile"
install -D -m644 LICENCE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
cd "${srcdir}/athame"
install -D -m644 "${srcdir}/athame/athamerc" "${pkgdir}/etc/athamerc"
}
Offline
And yet the last time we had a soname bump in readline, we had a bunch of people in here with broken pacman and unable to login.
Offline
Do you find much advantage to using Athame as opposed to binding, say, bash's edit-and-execute-command to be more accessible (^x^e by default)?
As Scimmia alluded to, readline is rooted pretty deep in the core of our home. I hope Athame makes testing its #1 priority.
Offline
You should provide libreadline.so rather than *.so.7, as makepkg contains tooling to autodetect any *.so provides or depends and give it versioning such as libreadline.so=7-64 (by using readelf on all binaries in the $pkgdir and, as appropriate, extracting the version info from either the "Shared library" dependencies, or the "Library soname" provides) -- see how our readline package does it in the PKGBUILD and in the Provides and Depends fields on the Package Details page.
Note that readline depends on a strict version of ncurses.so, while bash does not do the same with readline. It used to do the same for ncurses, as a safeguard against users doing partial updates (because an unbootable system is annoying to fix even after you've been told why partial updates are bad), but it looks like that was recently removed, not sure what the intent was though.
Managing AUR repos The Right Way -- aurpublish (now a standalone tool)
Offline
^x^e is super annoying for people like me who are easily distracted because I do some vim thing that's muscle memory and it doesn't work and then I have to stop my train of thought and go, "oh yeah, I have to switch to vim" and then I switch to vim and it wipes all the context off my shell and I think "what was I doing again?"
I haven't had any real problems with my shell being hosed because of Athame in years and I use Athame (often with half-implemented experimental changes that aren't in master) on all of my home computers.
I removed the ".7"s from readline and added both packages to the AUR (https://aur.archlinux.org/packages/readline-athame-git/ and https://aur.archlinux.org/packages/zsh-athame-git/), though it looks like AUR doesn't show the libreadline.so=7-64 thing.
Offline
I removed the ".7"s from readline and added both packages to the AUR (https://aur.archlinux.org/packages/readline-athame-git/ and https://aur.archlinux.org/packages/zsh-athame-git/), though it looks like AUR doesn't show the libreadline.so=7-64 thing.
Correct, since that is calculated during the actual packaging, not when generating srcinfo.
Managing AUR repos The Right Way -- aurpublish (now a standalone tool)
Offline