summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authormrxx2021-02-02 12:01:04 +0100
committermrxx2021-02-02 12:01:04 +0100
commit7b720aa14e020bf90ea383436ab75232a16d810e (patch)
treeff7fe651ab1963e359ea84ca85bc65993ccf26c6
parent75bda9f23b9d48c60230b4c65a8385be410e3fd8 (diff)
downloadaur-7b720aa14e020bf90ea383436ab75232a16d810e.tar.gz
Fix segfault
-rw-r--r--.SRCINFO9
-rw-r--r--PKGBUILD13
-rw-r--r--board-fix-segfault.patch29
3 files changed, 41 insertions, 10 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 9163356b1362..d0ce039ac2c4 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,9 +1,8 @@
pkgbase = gmchess
- pkgdesc = Chinese chess game
+ pkgdesc = Play Chinese chess (Xiangqi) against a human opponent or the computer
pkgver = 0.29.6
- pkgrel = 4
+ pkgrel = 5
url = https://salsa.debian.org/chinese-team/gmchess
- install = gmchess.install
arch = i686
arch = x86_64
license = GPL2
@@ -14,9 +13,9 @@ pkgbase = gmchess
conflicts = eleeye-bin
conflicts = convert-pgn-bin
source = gmchess-0.29.6.tar.gz::https://salsa.debian.org/chinese-team/gmchess/-/archive/master/gmchess-master.tar.gz
- source = gmchess.install
+ source = board-fix-segfault.patch
sha1sums = 26fb365af83d3364a699175718ca0573c0b62ca5
- sha1sums = 8ce9d92ee9cda1709098d0a0a46ce9cca9fa83ba
+ sha1sums = 49e378db48b0d10188480084f6bd9f2c0d0d28e2
pkgname = gmchess
diff --git a/PKGBUILD b/PKGBUILD
index 28f461258bcf..7210e5004242 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,7 +4,7 @@
pkgname=gmchess
pkgver=0.29.6
-pkgrel=4
+pkgrel=5
pkgdesc="Play Chinese chess (Xiangqi) against a human opponent or the computer"
arch=("i686" "x86_64")
url="https://salsa.debian.org/chinese-team/gmchess"
@@ -12,10 +12,14 @@ license=('GPL2')
depends=("gtkmm")
makedepends=('pkgconfig' 'intltool')
conflicts=('gmchess-bin' 'eleeye-bin' 'convert-pgn-bin')
-install=gmchess.install
-source=("$pkgname-$pkgver.tar.gz::https://salsa.debian.org/chinese-team/gmchess/-/archive/master/${pkgname}-master.tar.gz" 'gmchess.install')
+source=("$pkgname-$pkgver.tar.gz::https://salsa.debian.org/chinese-team/gmchess/-/archive/master/${pkgname}-master.tar.gz" 'board-fix-segfault.patch')
sha1sums=('26fb365af83d3364a699175718ca0573c0b62ca5'
- '8ce9d92ee9cda1709098d0a0a46ce9cca9fa83ba')
+ '49e378db48b0d10188480084f6bd9f2c0d0d28e2')
+
+prepare() {
+ cd "$srcdir/${pkgname}-master"
+ patch -p0 -i "${srcdir}/board-fix-segfault.patch"
+}
build() {
cd "$srcdir/${pkgname}-master"
@@ -36,7 +40,6 @@ package(){
install -d -m755 $pkgdir/usr/lib
install -d -m755 $pkgdir/usr/bin
-
cp -r $srcdir/usr/share/locale/ $pkgdir/usr/share/
cp -r $srcdir/usr/share/man/ $pkgdir/usr/share/
cp -r $srcdir/usr/share/$pkgname/ $pkgdir/usr/share
diff --git a/board-fix-segfault.patch b/board-fix-segfault.patch
new file mode 100644
index 000000000000..6c30d4ae16f9
--- /dev/null
+++ b/board-fix-segfault.patch
@@ -0,0 +1,29 @@
+--- src/Board.cc.orig 2018-02-07 16:46:27.000000000 +0100
++++ src/Board.cc 2021-02-02 11:28:52.653930660 +0100
+@@ -301,8 +301,13 @@
+ {
+- //if(ui_pixmap)
+- // return true;
++ if (!get_mapped())
++ return false;
++ if (ui_pixmap) {
++ int w,h;
++ ui_pixmap->get_size(w,h);
++ if (get_width() == w || get_height() == h)
++ return false;
++ }
+ ui_pixmap = Gdk::Pixmap::create(this->get_window(),get_width(),get_height());
+-
+ redraw();
+-
++ return false;
+ }
+@@ -317,4 +322,8 @@
+ }
++
+ void Board::redraw()
+ {
++ if (!ui_pixmap)
++ return;
++
+ draw_bg();