Accepting request 886353 from home:susnux:branches:multimedia:apps

- Update to 1.8.0
  * DVB-T support
  * Increase program table size from 16 to 128
  * Fix crash if no DVB service has Teletext
  * Detect HEVC services for all regions (this fixes HEVC in Germany)
  * Fix 100% cpu use when there is no vbi device
  * Add zvbi support
  * Add support for iso8859-7 (greek)
  * Add support for KOI8-R encoding
  * Support libpng-1.6
- Update to 1.6.3
  * compilation fix for libpng-1.5, this obsoletes libpng15.patch
- Dropped obsoleted alevt-1.6.0-dvb-demux.patch,
  alevt-happy-abuild.diff and alevt-overflow2.diff
- Modernized and fixed SPEC file
  * Added working upstream URL

OBS-URL: https://build.opensuse.org/request/show/886353
OBS-URL: https://build.opensuse.org/package/show/multimedia:apps/alevt?expand=0&rev=17
This commit is contained in:
Martin Pluskal
2021-04-19 08:03:24 +00:00
committed by Git OBS Bridge
parent 1690dbe0f3
commit 3f1d8c929e
11 changed files with 92 additions and 2101 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3e3bdb9a66885dc78a22681b1b3486cf484383052362ffac9b1f5345f1fd21f1
size 115848

View File

@@ -1,39 +0,0 @@
Index: alevt-1.6.2/edline.c
===================================================================
--- alevt-1.6.2.orig/edline.c
+++ alevt-1.6.2/edline.c
@@ -87,7 +87,7 @@ ev_handler(struct edline *el, struct vt_
while (n-- && el->len < (int)sizeof(el->buf)-1)
{
- if (*p >= 0x20 && *p <= 0x7e || *p >= 0xa0 && *p <= 0xff)
+ if ((*p >= 0x20 && *p <= 0x7e) || *p >= 0xa0) // && *p <= 0xff)
el->buf[el->len++] = *p;
p++;
}
Index: alevt-1.6.2/misc.h
===================================================================
--- alevt-1.6.2.orig/misc.h
+++ alevt-1.6.2/misc.h
@@ -1,6 +1,8 @@
#ifndef MISC_H
#define MISC_H
+#include <string.h> /* strcmp */
+
//////////////////////////
// generic macros/typedefs
//////////////////////////
Index: alevt-1.6.2/Makefile
===================================================================
--- alevt-1.6.2.orig/Makefile
+++ alevt-1.6.2/Makefile
@@ -44,7 +44,7 @@ font2.xbm: bdf2xbm $(FONT)-latin-2.bdf
./bdf2xbm font2 <$(FONT)-latin-2.bdf >font2.xbm
bdf2xbm: bdf2xbm.c
- $(HOSTCC) bdf2xbm.c -o bdf2xbm
+ $(HOSTCC) $(OPT) bdf2xbm.c -o bdf2xbm
alevt.1x: alevt.1x.in
sed s/VERSION/$(VER)/g <alevt.1x.in >alevt.1x

View File

@@ -1,13 +0,0 @@
Index: alevt-1.6.2/exp-gfx.c
===================================================================
--- alevt-1.6.2.orig/exp-gfx.c
+++ alevt-1.6.2/exp-gfx.c
@@ -3,6 +3,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+/* libpng15's png.h doesn't include zlib.h */
+#include <zlib.h>
#include "lang.h"
#include "export.h"

View File

@@ -1,268 +0,0 @@
Index: alevt-1.6.2/alevt-cap.c
===================================================================
--- alevt-1.6.2.orig/alevt-cap.c
+++ alevt-1.6.2/alevt-cap.c
@@ -217,6 +217,7 @@ main(int argc, char **argv)
struct dl_head reqs[2]; // simple linear lists of requests & captures
char *progname = NULL;
int txtpid = -1;
+ char *outfile = NULL;
setprgname(argv[0]);
@@ -302,7 +303,7 @@ main(int argc, char **argv)
fatal("no pages requested");
// setup device
- if (not(vbi = vbi_open(vbi_name, 0, fine_tune, newbttv, progname, txtpid)))
+ if (not(vbi = vbi_open(vbi_name, 0, fine_tune, newbttv, progname, txtpid, outfile)))
fatal("cannot open %s", vbi_name);
vbi_add_handler(vbi, event, reqs); // register event handler
Index: alevt-1.6.2/alevt-date.c
===================================================================
--- alevt-1.6.2.orig/alevt-date.c
+++ alevt-1.6.2/alevt-date.c
@@ -149,10 +149,12 @@ option(int argc, char **argv, int *ind,
if (streq(*arg, opts[i].nam) || streq(*arg, opts[i].altnam))
{
if (opts[i].arg)
+ {
if (*ind < argc)
*arg = argv[(*ind)++];
else
fatal("option %s requires an argument", *arg);
+ }
return i+1;
}
@@ -176,11 +178,12 @@ main(int argc, char **argv)
char *arg;
char *progname = NULL;
int txtpid = -1;
+ char *outfile = NULL;
setprgname(argv[0]);
ind = 1;
- while (opt = option(argc, argv, &ind, &arg))
+ while ((opt = option(argc, argv, &ind, &arg)))
switch (opt)
{
case 1: // -set
@@ -239,7 +242,7 @@ main(int argc, char **argv)
alarm(timeout);
}
- vbi = vbi_open(vbi_name, 0, 1, big_buf, progname, txtpid); // open device
+ vbi = vbi_open(vbi_name, 0, 1, big_buf, progname, txtpid, outfile); // open device
if (not vbi)
fatal_ioerror(vbi_name);
Index: alevt-1.6.2/alevt.1x.in
===================================================================
--- alevt-1.6.2.orig/alevt.1x.in
+++ alevt-1.6.2/alevt.1x.in
@@ -67,6 +67,15 @@ Selects the character set to use. Chara
in the selected set are replaced by similar looking symbols.
(default: latin-1)
.TP
+.B \-progname (dvb only)
+Selects the station name to display.
+.TP
+.B \-pid (dvb only)
+Selects the station pid to display.
+.TP
+.B \-outfile (dvb only)
+Specifies a file where the available stations are written.
+.TP
.B \-\-help
Show summary of options.
.TP
@@ -89,6 +98,10 @@ The
options requires a parent window. So, it must be preceded by a parent
or another child window.
.PP
+To access the DVB interface, use:
+.IP
+.I alevt -vbi /dev/dvb/adapter0/demux0
+.PP
When saving pages
.B alevt
asks for a format string. Look at
Index: alevt-1.6.2/main.c
===================================================================
--- alevt-1.6.2.orig/main.c
+++ alevt-1.6.2/main.c
@@ -24,6 +24,7 @@ static int erc = 1;
static int newbttv = -1;
static char *progname;
static int txtpid = -1;
+static char *outfile;
static void
usage(FILE *fp, int exitval)
@@ -44,8 +45,9 @@ usage(FILE *fp, int exitval)
" -[no]erc\t\t\tenabled\n"
" -[no]bell\t\t\tenabled\n"
" -charset latin-1/2\t\tlatin-1\n"
- " -progname name\n"
- " -pid pid\n"
+ " -progname <name>\n"
+ " -pid <pid>\n"
+ " -outfile <path>\n"
"\n"
" Order is important! Each page number\n"
" opens a new window with the previously\n"
@@ -66,6 +68,8 @@ usage(FILE *fp, int exitval)
" The -progname or -pid option specify\n"
" the program or teletext PID if using\n"
" the DVB interface.\n"
+ " The -outfile option specifies a file\n"
+ " where the available stations are written\n"
);
exit(exitval);
}
@@ -96,7 +100,7 @@ static struct vtwin *
start(int argc, char **argv, struct vtwin *parent, int pgno, int subno)
{
if (vbi == 0)
- vbi = vbi_open(vbi_name, cache_open(), fine_tune, newbttv, progname, txtpid);
+ vbi = vbi_open(vbi_name, cache_open(), fine_tune, newbttv, progname, txtpid, outfile);
if (vbi == 0)
fatal("cannot open %s", vbi_name);
if (vbi->cache)
@@ -138,6 +142,7 @@ option(int argc, char **argv, int *ind,
{ "-charset", "-latin", 1 },
{ "-progname", "-pn", 1 },
{ "-pid", "--pid", 1 },
+ { "-outfile", "-of", 1 },
};
int i;
@@ -262,6 +267,9 @@ main(int argc, char **argv)
parent = start(argc, argv, 0, pgno, subno);
geometry = 0;
break;
+ case 21:
+ outfile = arg;
+ break;
}
if (parent == 0)
Index: alevt-1.6.2/vbi.c
===================================================================
--- alevt-1.6.2.orig/vbi.c
+++ alevt-1.6.2/vbi.c
@@ -16,7 +16,7 @@
#include "lang.h"
-static int vbi_dvb_open(struct vbi *vbi, const char *vbi_name, const char *progname, int txtpid);
+static int vbi_dvb_open(struct vbi *vbi, const char *vbi_name, const char *progname, int txtpid, const char *outfile);
static void dvb_handler(struct vbi *vbi, int fd);
#define FAC (1<<16) // factor for fix-point arithmetic
@@ -587,7 +587,7 @@ setup_dev(struct vbi *vbi)
struct vbi *
-vbi_open(char *vbi_name, struct cache *ca, int fine_tune, int big_buf, const char *progname, int txtpid)
+vbi_open(char *vbi_name, struct cache *ca, int fine_tune, int big_buf, const char *progname, int txtpid, const char *outfile)
{
static int inited = 0;
struct vbi *vbi;
@@ -602,7 +602,7 @@ vbi_open(char *vbi_name, struct cache *c
goto fail1;
}
- if (!vbi_dvb_open(vbi, vbi_name, progname, txtpid)) {
+ if (!vbi_dvb_open(vbi, vbi_name, progname, txtpid, outfile)) {
vbi->cache = ca;
dl_init(vbi->clients);
@@ -628,6 +628,18 @@ vbi_open(char *vbi_name, struct cache *c
vbi->cache = ca;
+ if (outfile) {
+ FILE * outstr;
+ outstr = fopen (outfile,"w");
+ if (outstr!=NULL)
+ {
+ fputs ("This works only with dvb",outstr);
+ fclose (outstr);
+ }
+ }
+
+
+
dl_init(vbi->clients);
vbi->seq = 0;
out_of_sync(vbi);
@@ -853,7 +865,7 @@ static void dvb_handler(struct vbi *vbi,
memmove(rawbuf, rawbuf + len, rawptr);
}
-static int vbi_dvb_open(struct vbi *vbi, const char *vbi_name, const char *progname, int txtpid)
+static int vbi_dvb_open(struct vbi *vbi, const char *vbi_name, const char *progname, int txtpid, const char *outfile)
{
struct {
u_int16_t pmtpid;
@@ -905,7 +917,7 @@ static int vbi_dvb_open(struct vbi *vbi,
for (i = 0; i < (unsigned)r; i += 4) {
if (progcnt >= sizeof(progtbl)/sizeof(progtbl[0])) {
error("Program table overflow");
- goto outerr;
+ break;
}
progtbl[progcnt].service_id = (tbl[8 + i] << 8) | tbl[9 + i];
if (!progtbl[progcnt].service_id) /* this is the NIT pointer */
@@ -1012,6 +1024,21 @@ static int vbi_dvb_open(struct vbi *vbi,
progtbl[i].txttype, progtbl[i].txtmagazine, progtbl[i].txtpage);
}
+
+ if (outfile) {
+ FILE * outstr;
+ outstr = fopen(outfile,"wt");
+ for (i = 0; i < progcnt; i++) {
+ if (progtbl[i].txtpid != 0x1fff) {
+ fprintf (outstr,"Provider: %s ", progtbl[i].service_provider_name);
+ fprintf (outstr,"Sender: \t%s ", progtbl[i].service_name);
+ fprintf (outstr,"PID: 0x%04x", progtbl[i].txtpid);
+ fputs ("\n",outstr);
+ }
+ }
+ fclose(outstr);
+ }
+
progp = NULL;
if (progname) {
j = strlen(progname);
Index: alevt-1.6.2/vbi.h
===================================================================
--- alevt-1.6.2.orig/vbi.h
+++ alevt-1.6.2/vbi.h
@@ -51,7 +51,7 @@ struct vbi_client
};
struct vbi *vbi_open(char *vbi_dev_name, struct cache *ca, int fine_tune,
- int big_buf, const char *progname, int txtpid);
+ int big_buf, const char *progname, int txtpid, const char *outfile);
void vbi_close(struct vbi *vbi);
void vbi_reset(struct vbi *vbi);
int vbi_add_handler(struct vbi *vbi, void *handler, void *data);
Index: alevt-1.6.2/xio.c
===================================================================
--- alevt-1.6.2.orig/xio.c
+++ alevt-1.6.2/xio.c
@@ -379,7 +379,7 @@ xio_title(struct xio_win *xw, char *titl
return;
strcpy(xw->title, title);
- sprintf(buf, "AleVT " VERSION " %s", xw->title);
+ sprintf(buf, "AleVT-dvb " VERSION " %s", xw->title);
XStoreName(xw->xio->dpy, xw->win, buf);
XSetIconName(xw->xio->dpy, xw->win, xw->title);
}

3
alevt-v1.8.0.tar.bz2 Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f8e3130fe92e5db2d44c9ac1ba92a9c323dd389aaed09b411659413c15a37965
size 135721

View File

@@ -1,3 +1,23 @@
-------------------------------------------------------------------
Sat Apr 17 16:51:37 UTC 2021 - Ferdinand Thiessen <rpm@fthiessen.de>
- Update to 1.8.0
* DVB-T support
* Increase program table size from 16 to 128
* Fix crash if no DVB service has Teletext
* Detect HEVC services for all regions (this fixes HEVC in Germany)
* Fix 100% cpu use when there is no vbi device
* Add zvbi support
* Add support for iso8859-7 (greek)
* Add support for KOI8-R encoding
* Support libpng-1.6
- Update to 1.6.3
* compilation fix for libpng-1.5, this obsoletes libpng15.patch
- Dropped obsoleted alevt-1.6.0-dvb-demux.patch,
alevt-happy-abuild.diff and alevt-overflow2.diff
- Modernized and fixed SPEC file
* Added working upstream URL
-------------------------------------------------------------------
Thu Oct 17 13:02:23 UTC 2019 - Richard Brown <rbrown@suse.com>

View File

@@ -2,6 +2,7 @@
Encoding=UTF-8
GenericName=VideoText Viewer
Exec=alevt
Icon=alevt
Icon=mini-alevt
Name=AleVT
Type=Application
Categories=AudioVideo;TV;

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d38fb93697721dd5d008ce7324ddb5155b1aacb985493f5c1c904eec48c03dcd
size 390

View File

@@ -1,7 +1,7 @@
#
# spec file for package alevt
#
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,31 +17,22 @@
Name: alevt
%{expand:%%global _prefix %(pkg-config --variable prefix x11 || echo /usr/X11R6)}
%if "%_prefix" == "/usr/X11R6"
%define _man_dir man
%else
%define _man_dir share/man
%endif
BuildRequires: libpng-devel
BuildRequires: pkgconfig
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(x11)
Url: http://www.goron.de/~froese/
Version: 1.8.0
Release: 0
Summary: Teletext and Videotext Decoder for the BTTV Driver
License: GPL-2.0-or-later
Version: 1.6.2
Release: 0
Source0: alevt-%version.tar.bz2
Group: Hardware/TV
URL: https://gitlab.com/alevt/alevt
Source0: %{URL}/-/archive/v%{version}/alevt-v%{version}.tar.bz2
Source1: alevt.desktop
Source2: alevt.png
Patch2: alevt-1.6.0-dvb-demux.patch
Patch4: alevt-overflow2.diff
Patch5: alevt-happy-abuild.diff
# PATCH-FIX-UPSTREAM pngtoico-libpng15.patch -- pgajdos@suse.com; build with libpng15; sent today to froese@gmx.de
# build against libpng14 should not be affected, otherwise please let me know
Patch6: alevt-libpng15.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
# PATCH-FEATURE-UPSTREAM use-pkgconfig.patch -- https://gitlab.com/alevt/alevt/-/issues/1
Patch0: use-pkgconfig.patch
BuildRequires: pkgconfig
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(zlib)
BuildRequires: pkgconfig(zvbi-0.2)
%description
AleVT is a teletext and videotext decoder and browser for the BTTV
@@ -50,34 +41,25 @@ windows, a page cache, regexp searching, a built-in manual, and more.
There is also a program to get the time from teletext.
%prep
%setup -q
%patch2 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%autosetup -p1 -n alevt-v%{version}
# Enable ZVBI
sed -i "s|#DEFS+=-DUSE_LIBZVBI|DEFS+=-DUSE_LIBZVBI|" Makefile
%build
make OPT="$RPM_OPT_FLAGS" %{?_smp_mflags}
%make_build OPT="%{optflags}"
%install
echo "Using _prefix=%{_prefix} _man_dir=%{_man_dir}"
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{_prefix}/bin $RPM_BUILD_ROOT%{_prefix}/%{_man_dir}/man1
make rpm-install USR_X11R6=%{_prefix} MAN=%{_man_dir}
%suse_update_desktop_file -i alevt AudioVideo TV
%make_install PREFIX="%{_prefix}"
%suse_update_desktop_file -i alevt
%files
%defattr(-,root,root)
%doc CHANGELOG COPYRIGHT README
%dir %{_prefix}/include/X11/pixmaps
/usr/share/applications/*.desktop
/usr/share/pixmaps/alevt.png
%{_prefix}/bin/alevt
%{_prefix}/bin/alevt-cap
%{_prefix}/bin/alevt-date
%{_prefix}/include/X11/pixmaps/mini-alevt.xpm
%doc %{_prefix}/%{_man_dir}/man1/alevt-cap.1.gz
%doc %{_prefix}/%{_man_dir}/man1/alevt-date.1.gz
%doc %{_prefix}/%{_man_dir}/man1/alevt.1x.gz
%license COPYRIGHT
%doc CHANGELOG README.md
%{_bindir}/alevt
%{_bindir}/alevt-cap
%{_bindir}/alevt-date
%{_datadir}/pixmaps/mini-alevt.xpm
%{_datadir}/applications/*.desktop
%{_mandir}/man1/alevt*.1{,x}*
%changelog

39
use-pkgconfig.patch Normal file
View File

@@ -0,0 +1,39 @@
diff -Nur alevt-v1.8.0/Makefile new/Makefile
--- alevt-v1.8.0/Makefile 2019-04-02 22:12:06.000000000 +0200
+++ new/Makefile 2021-04-17 19:40:45.296304899 +0200
@@ -16,26 +16,30 @@
CFLAGS=$(OPT) -DVERSION=\"$(VER)\" $(DEFS) -I$(USR_X11R6)/include
+PKGS="x11"
+
EXPOBJS=export.o exp-txt.o exp-html.o exp-gfx.o font.o
OBJS=main.o ui.o xio.o fdset.o vbi.o cache.o help.o edline.o search.o edit.o misc.o hamm.o lang.o $(EXPOBJS)
TOBJS=alevt-date.o vbi.o fdset.o misc.o hamm.o lang.o
COBJS=alevt-cap.o vbi.o fdset.o misc.o hamm.o lang.o $(EXPOBJS)
ifneq ($(findstring WITH_PNG,$(DEFS)),)
-EXPLIBS=-lpng
+PKGS+="libpng"
endif
ifneq ($(findstring USE_LIBZVBI,$(DEFS)),)
-ZVBILIB=-lzvbi -lpthread
-EXPLIBS+=$(ZVBILIB)
+PKGS+="zvbi-0.2"
endif
+CFLAGS+=$(shell pkg-config --cflags $(PKGS))
+EXPLIBS=$(shell pkg-config --libs $(PKGS))
+
all: alevt alevt-date alevt-cap alevt.1x alevt-date.1 alevt-cap.1
alevt: $(OBJS)
- $(CC) $(OPT) $(OBJS) -o alevt -L$(USR_X11R6)/lib -L$(USR_X11R6)/lib64 -lX11 $(EXPLIBS)
+ $(CC) $(OPT) $(OBJS) -o alevt $(EXPLIBS)
alevt-date: $(TOBJS)
- $(CC) $(OPT) $(TOBJS) -o alevt-date $(ZVBILIB)
+ $(CC) $(OPT) $(TOBJS) -o alevt-date $(EXPLIBS)
alevt-cap: $(COBJS)
$(CC) $(OPT) $(COBJS) -o alevt-cap $(EXPLIBS)