mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-16 19:50:19 +01:00
network/gtorrentviewer: New maintainer, fix segfaults.
Signed-off-by: B. Watson <urchlay@slackware.uk> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
parent
40a7f5a627
commit
30d93b719a
12 changed files with 204 additions and 66 deletions
|
@ -1,3 +1,5 @@
|
|||
gtorrentviewer (A torrent viewer and editor)
|
||||
|
||||
GTorrentViewer is a GTK2-based viewer and editor for BitTorrent meta
|
||||
files. It is able to retrieve information from trackers, check files,
|
||||
show detailed information, and modify .torrent files without having
|
||||
|
@ -5,6 +7,6 @@ to start downloading.
|
|||
|
||||
The purpose of GTorrentViewer is to give the ability to see and modify
|
||||
all the possible information from .torrent files without having to start
|
||||
downloading and the ability to see in real time the current number of
|
||||
downloading, and the ability to see in real time the current number of
|
||||
seeds and peers on the torrent, so you will always know the status
|
||||
before start the download.
|
||||
before starting the download.
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then
|
||||
if [ -x /usr/bin/gtk-update-icon-cache ]; then
|
||||
/usr/bin/gtk-update-icon-cache -f usr/share/icons/hicolor >/dev/null 2>&1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -x /usr/bin/update-desktop-database ]; then
|
||||
/usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
|
||||
fi
|
||||
|
|
|
@ -2,8 +2,9 @@
|
|||
|
||||
# Slackware build script for gtorrentviewer
|
||||
|
||||
# Copyright 2023 B. Watson
|
||||
# Copyright 2018 Donald Cooley South Haven, Indiana USA
|
||||
# Copyright 2010, 2012 Binh Nguyen <binhvng@gmail.com>
|
||||
# Copyright 2010, 2012 Binh Nguyen
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use of this script, with or without modification, is
|
||||
|
@ -23,12 +24,20 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
# 20231107 bkw: BUILD=5
|
||||
# - take over maintenance.
|
||||
# - patch various segfault issues.
|
||||
# - remove generic INSTALL from doc dir.
|
||||
# - fix .desktop file.
|
||||
# - new-style icon.
|
||||
# - slight grammar fix in README and man page.
|
||||
|
||||
cd $(dirname $0) ; CWD=$(pwd)
|
||||
|
||||
PRGNAM=gtorrentviewer
|
||||
SRCNAM=GTorrentViewer
|
||||
VERSION=${VERSION:-0.2b}
|
||||
BUILD=${BUILD:-4}
|
||||
BUILD=${BUILD:-5}
|
||||
TAG=${TAG:-_SBo}
|
||||
PKGTYPE=${PKGTYPE:-tgz}
|
||||
|
||||
|
@ -40,9 +49,6 @@ if [ -z "$ARCH" ]; then
|
|||
esac
|
||||
fi
|
||||
|
||||
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
|
||||
# the name of the created package would be, and then exit. This information
|
||||
# could be useful to other scripts.
|
||||
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
|
||||
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
|
||||
exit 0
|
||||
|
@ -75,27 +81,24 @@ rm -rf $SRCNAM-$VERSION
|
|||
tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
|
||||
cd $SRCNAM-$VERSION
|
||||
chown -R root:root .
|
||||
find -L . \
|
||||
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
|
||||
-o -perm 511 \) -exec chmod 755 {} \; -o \
|
||||
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
|
||||
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
|
||||
find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} + -o \
|
||||
\! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} +
|
||||
|
||||
# 20231107 bkw: most of these patches came from ALT Linux:
|
||||
# https://git.altlinux.org/srpms/g/gtorrentviewer.git?a=tree;hb=0.2b-alt4_38
|
||||
# ...but a couple of them were "-p0" patches. I reworked them to apply
|
||||
# with "patch -p1". The curl-types, desktop, and dso-linking patches aren't
|
||||
# needed because their issues are fixed by code in this script.
|
||||
# The manpage patch is a grammar fix, done by me.
|
||||
for i in `cat $CWD/patches/series`; do
|
||||
echo "=== applying $i"
|
||||
patch -p1 < $CWD/patches/$i
|
||||
done
|
||||
|
||||
# Fix building against newer cURL
|
||||
sed -i 's|#include <curl/types.h>||g' src/main.c
|
||||
|
||||
# Fix linking of libm
|
||||
patch -p1 < $CWD/patches/fix_linking_libm.diff
|
||||
|
||||
# The following 2 patches are from Fedora 13
|
||||
|
||||
# Let drag and drop work with URIs as well as files
|
||||
patch -p1 < $CWD/patches/gtorrentviewer-0.2b-desktop.patch
|
||||
|
||||
# Fix crash due to use of uninitialized GValue
|
||||
# Thanks to Niels Horn for pointing this out
|
||||
patch -p1 < $CWD/patches/GTorrentViewer-0.2b-tracker-details-refresh.patch
|
||||
sed -i '/#include <curl\/types.h>/d' src/main.c
|
||||
|
||||
LIBS="-lm" \
|
||||
CFLAGS="$SLKCFLAGS" \
|
||||
./configure \
|
||||
--prefix=/usr \
|
||||
|
@ -106,19 +109,19 @@ CFLAGS="$SLKCFLAGS" \
|
|||
--build=$ARCH-slackware-linux
|
||||
|
||||
make
|
||||
make install DESTDIR=$PKG
|
||||
make install-strip DESTDIR=$PKG
|
||||
gzip -9 $PKG/usr/man/man*/*
|
||||
|
||||
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
|
||||
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
|
||||
# 20231107 bkw: ship .desktop with corrections already applied.
|
||||
cat $CWD/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop
|
||||
|
||||
find $PKG/usr/man -type f -exec gzip -9 {} \;
|
||||
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
|
||||
mkdir -p $PKG/usr/share/icons/hicolor/48x48
|
||||
ln -s ../../../pixmaps/$PRGNAM.png $PKG/usr/share/icons/hicolor/48x48/$PRGNAM.png
|
||||
|
||||
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
|
||||
cp -a \
|
||||
AUTHORS COPYING ChangeLog INSTALL README \
|
||||
$PKG/usr/doc/$PRGNAM-$VERSION
|
||||
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
||||
PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
|
||||
mkdir -p $PKGDOC
|
||||
cp -a AUTHORS COPYING ChangeLog README $PKGDOC
|
||||
cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild
|
||||
|
||||
mkdir -p $PKG/install
|
||||
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||
|
|
12
network/gtorrentviewer/gtorrentviewer.desktop
Normal file
12
network/gtorrentviewer/gtorrentviewer.desktop
Normal file
|
@ -0,0 +1,12 @@
|
|||
[Desktop Entry]
|
||||
Name=Torrent Metainfo Viewer
|
||||
GenericName=Torrent Viewer
|
||||
Comment=Viewer and Editor for .torrent files
|
||||
Exec=gtorrentviewer %f
|
||||
Icon=gtorrentviewer
|
||||
StartupNotify=false
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Network;
|
||||
MimeType=application/x-bittorrent;
|
||||
Version=1.0
|
|
@ -6,5 +6,5 @@ MD5SUM="c29058a09f26693863404ecdb2580770"
|
|||
DOWNLOAD_x86_64=""
|
||||
MD5SUM_x86_64=""
|
||||
REQUIRES=""
|
||||
MAINTAINER="Donald Cooley"
|
||||
EMAIL="chytraeu@sdf.org"
|
||||
MAINTAINER="B. Watson"
|
||||
EMAIL="urchlay@slackware.uk"
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
diff -Naur GTorrentViewer-0.2b/src/mainwindow.c GTorrentViewer-0.2b.patched/src/mainwindow.c
|
||||
--- GTorrentViewer-0.2b/src/mainwindow.c 2004-10-26 00:37:58.000000000 -0400
|
||||
+++ GTorrentViewer-0.2b.patched/src/mainwindow.c 2023-11-07 20:56:10.027535819 -0500
|
||||
@@ -634,7 +634,7 @@
|
||||
/* create the open file thread */
|
||||
if(g_thread_create(open_torrent_file, filename, FALSE, &err) == NULL)
|
||||
{
|
||||
- g_warning(err->message);
|
||||
+ g_warning("%s", err->message);
|
||||
g_free(filename);
|
||||
g_error_free(err);
|
||||
}
|
||||
@@ -671,7 +671,7 @@
|
||||
|
||||
if(g_thread_create(tracker_scrape, tracker, FALSE, &err) == NULL)
|
||||
{
|
||||
- g_warning(err->message);
|
||||
+ g_warning("%s", err->message);
|
||||
g_free(tracker);
|
||||
g_error_free(err);
|
||||
}
|
||||
@@ -722,7 +722,7 @@
|
||||
filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
|
||||
if(g_thread_create(check_files, filename, FALSE, &err) == NULL)
|
||||
{
|
||||
- g_warning(err->message);
|
||||
+ g_warning("%s", err->message);
|
||||
g_free(filename);
|
||||
g_error_free(err);
|
||||
}
|
||||
@@ -755,7 +755,7 @@
|
||||
|
||||
if(g_thread_create(tracker_scrape, tracker, FALSE, &err) == NULL)
|
||||
{
|
||||
- g_warning(err->message);
|
||||
+ g_warning("%s", err->message);
|
||||
g_error_free(err);
|
||||
}
|
||||
|
||||
@@ -853,7 +853,7 @@
|
||||
{
|
||||
if(g_thread_create(open_torrent_file, filename, FALSE, &err) == NULL)
|
||||
{
|
||||
- g_warning(err->message);
|
||||
+ g_warning("%s", err->message);
|
||||
g_free(filename);
|
||||
g_error_free(err);
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
diff -Naur GTorrentViewer-0.2b/src/mainwindow.c GTorrentViewer-0.2b.patched/src/mainwindow.c
|
||||
--- GTorrentViewer-0.2b/src/mainwindow.c 2023-11-07 21:01:19.243506719 -0500
|
||||
+++ GTorrentViewer-0.2b.patched/src/mainwindow.c 2023-11-07 21:02:04.947502418 -0500
|
||||
@@ -423,7 +423,7 @@
|
||||
|
||||
node = benc_node_find_key(torrent, "announce");
|
||||
gtk_list_store_append(liststore, &iter);
|
||||
- gtk_list_store_set(liststore, &iter, 0, benc_node_data(node), -1);
|
||||
+ gtk_list_store_set(liststore, &iter, 0, node!=NULL?benc_node_data(node):"", -1);
|
||||
|
||||
node = benc_node_find_key(torrent, "announce-list");
|
||||
if(node != NULL) /* multi-tracker support */
|
|
@ -1,12 +0,0 @@
|
|||
diff -Nur GTorrentViewer-0.2b.orig/src/Makefile.in GTorrentViewer-0.2b/src/Makefile.in
|
||||
--- GTorrentViewer-0.2b.orig/src/Makefile.in 2004-10-25 23:42:16.000000000 -0500
|
||||
+++ GTorrentViewer-0.2b/src/Makefile.in 2012-09-09 23:31:34.092115981 -0500
|
||||
@@ -115,7 +115,7 @@
|
||||
|
||||
CFLAGS = @CFLAGS@ @CURL_CFLAGS@ @GTK_CFLAGS@
|
||||
|
||||
-LDADD = @GTK_LIBS@ @CURL_LIBS@
|
||||
+LDADD = @GTK_LIBS@ @CURL_LIBS@ -lm
|
||||
|
||||
bin_PROGRAMS = gtorrentviewer
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
--- GTorrentViewer-0.2b/data/gtorrentviewer.desktop.in.orig 2004-10-21 05:40:16.000000000 +0100
|
||||
+++ GTorrentViewer-0.2b/data/gtorrentviewer.desktop.in 2007-08-12 12:14:52.000000000 +0100
|
||||
@@ -2,7 +2,7 @@
|
||||
_Name=Torrent Metainfo Viewer
|
||||
_GenericName=Torrent Viewer
|
||||
_Comment=Viewer and Editor for .torrent files
|
||||
-Exec=gtorrentviewer %U
|
||||
+Exec=gtorrentviewer %f
|
||||
Icon=gtorrentviewer.png
|
||||
StartupNotify=false
|
||||
Terminal=false
|
||||
@@ -10,4 +10,4 @@
|
||||
Encoding=UTF-8
|
||||
Categories=Application;Network;
|
||||
MimeType=application/x-bittorrent;
|
||||
-Version=0.2
|
||||
+Version=1.0
|
|
@ -0,0 +1,56 @@
|
|||
diff --git a/src/main.c b/src/main.c
|
||||
index fc51205..a770768 100644
|
||||
--- a/src/main.c
|
||||
+++ b/src/main.c
|
||||
@@ -336,12 +336,8 @@ tracker_scrape(gpointer tracker)
|
||||
SHA1((guint8*)string, number, (guint8*)torrent_sha);
|
||||
g_free(string);
|
||||
|
||||
- if(g_str_has_suffix((gchar*)tracker, "info_hash="))
|
||||
- string = util_convert_to_hex(torrent_sha, SHA_DIGEST_LENGTH, "%");
|
||||
- else
|
||||
- string = g_strdup(" ");
|
||||
-
|
||||
- host = g_strdup_printf("%s%s", (gchar*)tracker, string);
|
||||
+ string = util_convert_to_hex(torrent_sha, SHA_DIGEST_LENGTH, "%");
|
||||
+ host = g_strdup_printf("%s?info_hash=%s", (gchar*)tracker, string);
|
||||
g_free(string);
|
||||
|
||||
string = g_strrstr(host, "announce");
|
||||
diff --git a/src/mainwindow.c b/src/mainwindow.c
|
||||
index 6b1bbf0..415098e 100644
|
||||
--- a/src/mainwindow.c
|
||||
+++ b/src/mainwindow.c
|
||||
@@ -421,23 +421,23 @@ mainwindow_fill_trackers_tab(MainWindow const *mwin, BencNode *torrent)
|
||||
|
||||
gtk_combo_box_set_active(mwin->TrackerComboBox, -1);
|
||||
|
||||
+ node = benc_node_find_key(torrent, "announce");
|
||||
+ gtk_list_store_append(liststore, &iter);
|
||||
+ gtk_list_store_set(liststore, &iter, 0, benc_node_data(node), -1);
|
||||
+
|
||||
node = benc_node_find_key(torrent, "announce-list");
|
||||
- if(node == NULL) /* no multi-tracker */
|
||||
- {
|
||||
- node = benc_node_find_key(torrent, "announce");
|
||||
- gtk_list_store_append(liststore, &iter);
|
||||
- gtk_list_store_set(liststore, &iter, 0, benc_node_data(node), -1);
|
||||
- }
|
||||
- else /* multi-tracker support */
|
||||
+ if(node != NULL) /* multi-tracker support */
|
||||
{
|
||||
- node = benc_node_first_child(node);
|
||||
- if(node != NULL)
|
||||
+ for (node = benc_node_first_child(node); node != NULL;
|
||||
+ node = benc_node_next_sibling(node))
|
||||
+ {
|
||||
for(subnode = benc_node_first_child(node); subnode != NULL;
|
||||
subnode = benc_node_next_sibling(subnode))
|
||||
{
|
||||
gtk_list_store_append(liststore, &iter);
|
||||
gtk_list_store_set(liststore, &iter, 0, benc_node_data(subnode), -1);
|
||||
}
|
||||
+ }
|
||||
}
|
||||
|
||||
gtk_combo_box_set_model(mwin->TrackerComboBox, GTK_TREE_MODEL(liststore));
|
23
network/gtorrentviewer/patches/manpage.diff
Normal file
23
network/gtorrentviewer/patches/manpage.diff
Normal file
|
@ -0,0 +1,23 @@
|
|||
diff -Naur GTorrentViewer-0.2b/data/gtorrentviewer.1 GTorrentViewer-0.2b.patched/data/gtorrentviewer.1
|
||||
--- GTorrentViewer-0.2b/data/gtorrentviewer.1 2004-10-18 18:40:11.000000000 -0400
|
||||
+++ GTorrentViewer-0.2b.patched/data/gtorrentviewer.1 2023-11-07 22:30:10.103005035 -0500
|
||||
@@ -14,8 +14,8 @@
|
||||
.PP
|
||||
The purpose of GTorrentViewer is to give the ability to see and modify all
|
||||
the possible information from .torrent files without having to start
|
||||
-downloading and the ability to see in real time the current number of seeds
|
||||
-and peers on the torrent, so you will always know the status before start
|
||||
+downloading, and the ability to see in real time the current number of seeds
|
||||
+and peers on the torrent, so you will always know the status before starting
|
||||
the download.
|
||||
.SH OPTIONS
|
||||
gtorrentviewer options:
|
||||
@@ -24,7 +24,7 @@
|
||||
output version information and exit.
|
||||
.TP
|
||||
.B \-h, \-\-help
|
||||
-display a option overview and exit.
|
||||
+display an option overview and exit.
|
||||
.SH AUTHOR
|
||||
GTorrentViewer was written by Alejandro Claro <ap0lly0n@users.sourceforge.net>.
|
||||
.PP
|
5
network/gtorrentviewer/patches/series
Normal file
5
network/gtorrentviewer/patches/series
Normal file
|
@ -0,0 +1,5 @@
|
|||
GTorrentViewer-0.2b-tracker-details-refresh.patch
|
||||
gtorrentviewer-0.2b-trackerdetails.patch
|
||||
GTorrentViewer-0.2b-format.patch
|
||||
GTorrentViewer-0.2b-missing-tracker.patch
|
||||
manpage.diff
|
Loading…
Reference in a new issue