From 56beac0ac14245be7486b02a0fba6c107360767b Mon Sep 17 00:00:00 2001 From: Darryl Miles Date: Thu, 7 Aug 2025 07:01:48 +0100 Subject: [PATCH] joe: Joe's own editor (#3695) * joe: Joe's own editor * fixes --------- Co-authored-by: Christoph Reiter --- joe/0001-fix-build.patch | 11 +++++++++ joe/PKGBUILD | 52 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 joe/0001-fix-build.patch create mode 100644 joe/PKGBUILD diff --git a/joe/0001-fix-build.patch b/joe/0001-fix-build.patch new file mode 100644 index 00000000..4bdcbd5c --- /dev/null +++ b/joe/0001-fix-build.patch @@ -0,0 +1,11 @@ +--- joe-4.6/joe/tty.c.orig 2018-01-10 17:28:34.000000000 +0100 ++++ joe-4.6/joe/tty.c 2025-08-07 07:54:23.698861300 +0200 +@@ -952,7 +952,7 @@ + + /* Strange streams way */ + +-extern char *ptsname(); ++extern char *ptsname(int fd); + + static char *getpty(int *ptyfd, int *ttyfd) + { diff --git a/joe/PKGBUILD b/joe/PKGBUILD new file mode 100644 index 00000000..92d04c7c --- /dev/null +++ b/joe/PKGBUILD @@ -0,0 +1,52 @@ +# Maintainer: Darryl L. Miles + +pkgname=joe +pkgver=4.6 +pkgrel=1 +pkgdesc="Joe's own editor" +arch=('any') +url="https://joe-editor.sourceforge.io/" +license=('spdx:GPL-2.0-or-later') +depends=('ncurses') +makedepends=('make' 'gcc' 'autotools' 'ncurses-devel') +backup=('etc/joe/ftyperc' 'etc/joe/jicerc.ru' 'etc/joe/jmacsrc' + 'etc/joe/joerc' 'etc/joe/jpicorc' 'etc/joe/jstarrc' 'etc/joe/rjoerc') +source=("https://downloads.sourceforge.net/joe-editor/${pkgname}-${pkgver}.tar.gz" + "0001-fix-build.patch") +sha256sums=('495a0a61f26404070fe8a719d80406dc7f337623788e445b92a9f6de512ab9de' + 'a771b1a22aeb7baa2640f348f2454338ed71158ba6b7bb764f7e5704dbe60233') + +prepare() { + cd "${pkgname}-${pkgver}" + + patch -p1 -i "${srcdir}/0001-fix-build.patch" +} + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + + # for grantpt() + CFLAGS+=" -D_GNU_SOURCE" + + # Moved joe's configure data into /usr/share/joe otherwise it pollutes the space + ./configure --prefix=/usr --sysconfdir=/etc --datarootdir=/usr/share/joe --mandir=/usr/share/man + + # This symlink substitute is problematic, disable it. + # LN_S = cp -pR + find -type f -name Makefile -exec sed -i "s/LN_S = .*/LN_S = echo/" {} \; + + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + + make DESTDIR="${pkgdir}" install + + # Replace LN_S function, it is aliasing alternative binary names + for i in jmacs jstar rjoe jpico ; do cp -p "${pkgdir}/usr/bin/joe" "${pkgdir}/usr/bin/$i" ; done + + # Licenses + install -Dm644 "${srcdir}/${pkgname}-${pkgver}/README.md" "${pkgdir}/usr/share/licenses/${pkgname}/README.md" + install -Dm644 "${srcdir}/${pkgname}-${pkgver}/COPYING" "${pkgdir}/usr/share/licenses/${pkgname}/COPYING" +}