Date: Wednesday, April 23, 2014 @ 19:10:24 Author: spupykin Revision: 110069
upgpkg: xdiskusage 1.48-8 upd Added: xdiskusage/trunk/build-fix.patch (from rev 110062, xdiskusage/trunk/stdin-is-null.patch) Modified: xdiskusage/trunk/PKGBUILD Deleted: xdiskusage/trunk/stdin-is-null.patch ---------------------+ PKGBUILD | 28 ++++++------------- build-fix.patch | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++ stdin-is-null.patch | 31 --------------------- 3 files changed, 80 insertions(+), 50 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2014-04-23 17:10:21 UTC (rev 110068) +++ PKGBUILD 2014-04-23 17:10:24 UTC (rev 110069) @@ -5,7 +5,7 @@ pkgname=xdiskusage pkgver=1.48 -pkgrel=7 +pkgrel=8 pkgdesc="xdiskusage is a user-friendly program to show you what is using up all your disk space" arch=('i686' 'x86_64') depends=('fltk') @@ -14,29 +14,19 @@ url="http://xdiskusage.sourceforge.net" options=(!emptydirs) source=(http://xdiskusage.sourceforge.net/$pkgname-$pkgver.tgz - 'stdin-is-null.patch') + 'build-fix.patch') md5sums=('a902aa9d73761ade98256c3cd5c1f533' - '0181b66b44e382e44c91602d8de9a7b6') + '570eb00cb0999231620b67889325a81f') +prepare() { + cd "$srcdir/$pkgname-$pkgver" + patch -Np1 -i "$srcdir/build-fix.patch" +} + build() { cd "$srcdir/$pkgname-$pkgver" - sed -i 's/-lGL -lGLU/-lXft/' makeinclude.in - - patch -Np1 -i "$srcdir/stdin-is-null.patch" - - [ $CARCH == "x86_64" ] && patch xdiskusage.C <<EOF -991c991 -< switch ((int)v) { ---- -> switch ((long long)v) { -1004c1004 -< int n = (int)v; ---- -> int n = (long long)v; -EOF - ./configure --prefix=/usr - LDFLAGS=-lXi make + make } package() { Copied: xdiskusage/trunk/build-fix.patch (from rev 110062, xdiskusage/trunk/stdin-is-null.patch) =================================================================== --- build-fix.patch (rev 0) +++ build-fix.patch 2014-04-23 17:10:24 UTC (rev 110069) @@ -0,0 +1,71 @@ +diff -wbBur xdiskusage-1.48/makeinclude.in xdiskusage-1.48.my/makeinclude.in +--- xdiskusage-1.48/makeinclude.in 2004-05-05 10:07:57.000000000 +0400 ++++ xdiskusage-1.48.my/makeinclude.in 2014-04-23 20:58:15.136751299 +0400 +@@ -21,6 +21,6 @@ + CXXFLAGS_D =@CXXFLAGS_D@ + + # libraries to link with: +-LDLIBS =@LIBS@ -lfltk -lXinerama -lGL -lGLU -lX11 -lXext @X_EXTRA_LIBS@ -lm ++LDLIBS =@LIBS@ -lfltk -lXinerama -lXft -lX11 -lXext -lXi @X_EXTRA_LIBS@ -lm + + INSTALL =@INSTALL@ +diff -wbBur xdiskusage-1.48/xdiskusage.C xdiskusage-1.48.my/xdiskusage.C +--- xdiskusage-1.48/xdiskusage.C 2004-09-21 09:23:14.000000000 +0400 ++++ xdiskusage-1.48.my/xdiskusage.C 2014-04-23 21:00:50.696749510 +0400 +@@ -223,6 +223,19 @@ + return 1; + } + ++// returns true if stdin is /dev/null ++// To fix Debian bug #276193 ++// Technically could be possible that returns "true" and is not "true", ++// because same device ID is used across file systems. But is the best ++// solutions that I have ++int isstdinnull() { ++ struct stat ststdin,stnull; ++ stat("/dev/null",&stnull); ++ fstat(0,&ststdin); ++ ++ return (ststdin.st_rdev==stnull.st_rdev); ++} ++ + int main(int argc, char**argv) { + #if FL_MAJOR_VERSION < 2 + // Make fltk look more like KDE/Windoze: +@@ -253,7 +266,7 @@ + OutputWindow* d = OutputWindow::make(argv[n++]); + if (d) d->show(argc,argv); + } +- } else if (!isatty(0)) { ++ } else if (!isatty(0) && !isstdinnull()) { + // test for pipe, if so read stdin: + OutputWindow* d = OutputWindow::make(0); + if (d) d->show(argc,argv); +@@ -392,8 +405,7 @@ + strncpy(pathbuf, path, 1024); + for (int i=0; i<10; i++) { + char *p = (char*)fl_filename_name(pathbuf); +- int i = readlink(pathbuf, p, 1024-(p-pathbuf)); +- if (i < 0) { ++ if (readlink(pathbuf, p, 1024-(p-pathbuf)) < 0) { + if (errno != EINVAL) { + strcat(pathbuf, ": no such file"); + fl_alert(pathbuf); +@@ -988,7 +1000,7 @@ + void OutputWindow::sort_cb(Fl_Widget* o, void*v) { + OutputWindow* d = (OutputWindow*)(o->window()); + int (*compare)(const Node*, const Node*); +- switch ((int)v) { ++ switch ((long long)v) { + case 's': compare = largestfirst; break; + case 'r': compare = smallestfirst; break; + case 'a': compare = alphabetical; break; +@@ -1001,7 +1013,7 @@ + + void OutputWindow::columns_cb(Fl_Widget* o, void*v) { + OutputWindow* d = (OutputWindow*)(o->window()); +- int n = (int)v; ++ int n = (long long)v; + ::ncols = n; + if (n == d->ncols) return; + if (d->current_depth > d->root_depth+n-1) { Deleted: stdin-is-null.patch =================================================================== --- stdin-is-null.patch 2014-04-23 17:10:21 UTC (rev 110068) +++ stdin-is-null.patch 2014-04-23 17:10:24 UTC (rev 110069) @@ -1,31 +0,0 @@ ---- xdiskusage-1.48/xdiskusage.C 2004-09-21 07:23:14.000000000 +0200 -+++ xdiskusage-1.48.carles/xdiskusage.C 2007-07-30 23:42:05.000000000 +0200 -@@ -223,6 +223,19 @@ - return 1; - } - -+// returns true if stdin is /dev/null -+// To fix Debian bug #276193 -+// Technically could be possible that returns "true" and is not "true", -+// because same device ID is used across file systems. But is the best -+// solutions that I have -+int isstdinnull() { -+ struct stat ststdin,stnull; -+ stat("/dev/null",&stnull); -+ fstat(0,&ststdin); -+ -+ return (ststdin.st_rdev==stnull.st_rdev); -+} -+ - int main(int argc, char**argv) { - #if FL_MAJOR_VERSION < 2 - // Make fltk look more like KDE/Windoze: -@@ -253,7 +266,7 @@ - OutputWindow* d = OutputWindow::make(argv[n++]); - if (d) d->show(argc,argv); - } -- } else if (!isatty(0)) { -+ } else if (!isatty(0) && !isstdinnull()) { - // test for pipe, if so read stdin: - OutputWindow* d = OutputWindow::make(0); - if (d) d->show(argc,argv);