[v4l-utils/el6: 34/34] Preserve the old location for keymaps

mchehab mchehab at fedoraproject.org
Mon Nov 24 12:57:05 UTC 2014


commit 9e2a56fcf8d09f8566ca0ba97a21277df4b553da
Author: Mauro Carvalho Chehab <mchehab at osg.samsung.com>
Date:   Mon Nov 24 09:43:35 2014 -0200

    Preserve the old location for keymaps
    
    Let's not change the location for the keymaps, as we don't want
    to cause troubles when upgrading the package.
    
    Signed-off-by: Mauro Carvalho Chehab <mchehab at osg.samsung.com>

 0002-use-etc-for-keymaps.patch |  126 ++++++++++++++++++++++++++++++++++++++++
 v4l-utils.spec                 |    6 +-
 2 files changed, 130 insertions(+), 2 deletions(-)
---
diff --git a/0002-use-etc-for-keymaps.patch b/0002-use-etc-for-keymaps.patch
new file mode 100644
index 0000000..edbc9a0
--- /dev/null
+++ b/0002-use-etc-for-keymaps.patch
@@ -0,0 +1,126 @@
+diff --git a/configure.ac b/configure.ac
+index 069913d..26763f5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -233,8 +233,7 @@ AC_SUBST([libv4l1privdir], [$libdir/$with_libv4l1subdir])
+ AC_SUBST([libv4l2privdir], [$libdir/$with_libv4l2subdir])
+ AC_SUBST([libv4l2plugindir], [$libdir/$with_libv4l2subdir/plugins])
+ AC_SUBST([libv4lconvertprivdir], [$libdir/$with_libv4lconvertsubdir])
+-AC_SUBST([keytablesystemdir], [$with_udevdir/rc_keymaps])
+-AC_SUBST([keytableuserdir], [$sysconfdir/rc_keymaps])
++AC_SUBST([keytablesystemdir], [$sysconfdir/rc_keymaps])
+ AC_SUBST([udevrulesdir], [$with_udevdir/rules.d])
+ AC_SUBST([pkgconfigdir], [$libdir/pkgconfig])
+ 
+@@ -244,7 +243,6 @@ AC_DEFINE_DIR([LIBV4L2_PRIV_DIR], [libv4l2privdir], [libv4l2 private lib directo
+ AC_DEFINE_DIR([LIBV4L2_PLUGIN_DIR], [libv4l2plugindir], [libv4l2 plugin directory])
+ AC_DEFINE_DIR([LIBV4LCONVERT_PRIV_DIR], [libv4lconvertprivdir], [libv4lconvert private lib directory])
+ AC_DEFINE_DIR([IR_KEYTABLE_SYSTEM_DIR], [keytablesystemdir], [ir-keytable preinstalled tables directory])
+-AC_DEFINE_DIR([IR_KEYTABLE_USER_DIR], [keytableuserdir], [ir-keytable user defined tables directory])
+ 
+ # options
+ 
+diff --git a/utils/keytable/Makefile.am b/utils/keytable/Makefile.am
+index 3e66eba..9611591 100644
+--- a/utils/keytable/Makefile.am
++++ b/utils/keytable/Makefile.am
+@@ -1,7 +1,7 @@
+ bin_PROGRAMS = ir-keytable
+ man_MANS = ir-keytable.1
+ sysconf_DATA = rc_maps.cfg
+-keytablesystem_DATA = $(srcdir)/rc_keymaps/*
++sysconf_DATA = $(srcdir)/rc_keymaps/*
+ udevrules_DATA = 70-infrared.rules
+ 
+ ir_keytable_SOURCES = keytable.c parse.h
+@@ -9,10 +9,6 @@ ir_keytable_LDFLAGS = $(ARGP_LIBS)
+ 
+ EXTRA_DIST = 70-infrared.rules rc_keymaps gen_keytables.pl ir-keytable.1 rc_maps.cfg
+ 
+-# custom target
+-install-data-local:
+-	$(install_sh) -d "$(DESTDIR)$(keytableuserdir)"
+-
+ sync-with-kernel:
+ 	@if [ ! -f $(KERNEL_DIR)/usr/include/linux/input.h ]; then \
+ 	  echo "Error you must set KERNEL_DIR to point to an extracted kernel source dir"; \
+diff --git a/utils/keytable/keytable.c b/utils/keytable/keytable.c
+index 1f42316..90faf99 100644
+--- a/utils/keytable/keytable.c
++++ b/utils/keytable/keytable.c
+@@ -198,6 +198,7 @@ static error_t parse_keyfile(char *fname, char **table)
+ 
+ 	fin = fopen(fname, "r");
+ 	if (!fin) {
++		perror("opening keycode file");
+ 		return errno;
+ 	}
+ 
+@@ -1610,31 +1611,15 @@ int main(int argc, char *argv[])
+ 				cur->fname);
+ 		if (cur->fname[0] == '/' || ((cur->fname[0] == '.') && strchr(cur->fname, '/'))) {
+ 			fname = cur->fname;
+-			rc = parse_keyfile(fname, &name);
+-			if (rc < 0) {
+-				fprintf(stderr, "Can't load %s table\n", fname);
+-				return -1;
+-			}
+ 		} else {
+-			fname = malloc(strlen(cur->fname) + strlen(IR_KEYTABLE_USER_DIR) + 2);
+-			strcpy(fname, IR_KEYTABLE_USER_DIR);
++			fname = malloc(strlen(cur->fname) + strlen(IR_KEYTABLE_SYSTEM_DIR) + 2);
++			strcpy(fname, IR_KEYTABLE_SYSTEM_DIR);
+ 			strcat(fname, "/");
+ 			strcat(fname, cur->fname);
+-			rc = parse_keyfile(fname, &name);
+-			if (rc != 0) {
+-				fname = malloc(strlen(cur->fname) + strlen(IR_KEYTABLE_SYSTEM_DIR) + 2);
+-				strcpy(fname, IR_KEYTABLE_SYSTEM_DIR);
+-				strcat(fname, "/");
+-				strcat(fname, cur->fname);
+-				rc = parse_keyfile(fname, &name);
+-			}
+-			if (rc != 0) {
+-				fprintf(stderr, "Can't load %s table from %s or %s\n", cur->fname, IR_KEYTABLE_USER_DIR, IR_KEYTABLE_SYSTEM_DIR);
+-				return -1;
+-			}
+ 		}
+-		if (!keys.next) {
+-			fprintf(stderr, "Empty table %s\n", fname);
++		rc = parse_keyfile(fname, &name);
++		if (rc < 0 || !keys.next) {
++			fprintf(stderr, "Can't load %s table or empty table\n", fname);
+ 			return -1;
+ 		}
+ 		clear = 1;
+diff --git a/configure b/configure
+index c577fbfd4379..672c8f8681eb 100755
+--- a/configure
++++ b/configure
+@@ -657,7 +657,6 @@ LIBV4L2_PRIV_DIR
+ LIBV4L1_PRIV_DIR
+ pkgconfigdir
+ udevrulesdir
+-keytableuserdir
+ keytablesystemdir
+ libv4lconvertprivdir
+ libv4l2plugindir
+@@ -19701,9 +19700,7 @@ libv4l2plugindir=$libdir/$with_libv4l2subdir/plugins
+ 
+ libv4lconvertprivdir=$libdir/$with_libv4lconvertsubdir
+ 
+-keytablesystemdir=$with_udevdir/rc_keymaps
+-
+-keytableuserdir=$sysconfdir/rc_keymaps
++keytablesystemdir=$sysconfdir/rc_keymaps
+ 
+ udevrulesdir=$with_udevdir/rules.d
+ 
+@@ -19805,7 +19802,6 @@ _ACEOF
+   exec_prefix_NONE=
+   test "x$prefix" = xNONE && prefix_NONE=yes && prefix=$ac_default_prefix
+   test "x$exec_prefix" = xNONE && exec_prefix_NONE=yes && exec_prefix=$prefix
+-  eval ac_define_dir="\"$keytableuserdir\""
+   eval ac_define_dir="\"$ac_define_dir\""
+   IR_KEYTABLE_USER_DIR="$ac_define_dir"
+ 
diff --git a/v4l-utils.spec b/v4l-utils.spec
index b953d86..0c97dc1 100644
--- a/v4l-utils.spec
+++ b/v4l-utils.spec
@@ -8,6 +8,7 @@ License:        GPLv2+ and GPLv2
 URL:            http://www.linuxtv.org/downloads/v4l-utils/
 Source0:        http://linuxtv.org/downloads/v4l-utils/v4l-utils-%{version}.tar.bz2
 Patch1:		0001-media-headers-sync.patch
+Patch2:		0002-use-etc-for-keymaps.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires:  libjpeg-devel qt4-devel kernel-headers desktop-file-utils
 BuildRequires:  alsa-lib-devel doxygen
@@ -101,6 +102,7 @@ files for developing applications that use libdvbv5.
 %prep
 %setup -q
 %patch1 -p1
+%patch2 -p1
 
 
 %build
@@ -146,9 +148,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
 %files
 %doc README
 %dir %{_sysconfdir}/rc_keymaps
+%config(noreplace) %{_sysconfdir}/rc_keymaps/*
 %config(noreplace) %{_sysconfdir}/rc_maps.cfg
-%config(noreplace) /lib/udev/rules.d/70-infrared.rules
-%{_prefix}/lib/udev/rc_keymaps/*
+%{_udevrulesdir}/70-infrared.rules
 %{_bindir}/cx18-ctl
 %{_bindir}/dvb*
 %{_bindir}/ir-keytable


More information about the scm-commits mailing list