pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/misc/libcec libcec: Update to 4.0.4



details:   https://anonhg.NetBSD.org/pkgsrc/rev/26c494aa5f99
branches:  trunk
changeset: 400968:26c494aa5f99
user:      nia <nia%pkgsrc.org@localhost>
date:      Sun Sep 08 12:30:53 2019 +0000

description:
libcec: Update to 4.0.4

libcec (4.0.4.1~#DIST#) #DIST#; urgency=medium

  * fixed: only prevent TV polls when a Samsung TV is detected instead of
    suppressing all logical addresses. issue #424 #444

 -- Pulse-Eight Packaging <packaging%pulse-eight.com@localhost>  Fri, 21 Dec 2018 22:34:14 +0100

libcec (4.0.3.1~#DIST#) #DIST#; urgency=medium

  * fixed:
    * detect debian based distros properly when installing python. closes #314
    * don't filter out broadcast in HandleDeviceVendorCommandWithId(). issue
      #309
    * send an active source message when a routing change has been received with
      libCEC's address as new route and no active source message has been sent
      yet. issue #309 #205 #233
    * vs2015 c++ redistributables
    * fix missing tinfo linking in cec-client. #341
    * set wrong variable. #343 #352
    * LG - don't activate the source when receiving vendor command 0xB. #344
    * LG TV always changing input when turned on #307
    * Fix menu language string. #360
    * correct python lib path for python 2.7+/3+. #356
    * Fix build if tinfo library is not present. #398
    * disable autonomous mode when a Samsung TV is connected. Samsung 2017+ TVs
      will power on randomly (Samsung bug). don't poll the TV. #424
    * CRPiCECAdapterMessageQueue::Write() accessed the queue without locking.
      #423
    * use sig_atomic_t for shared object between sig handler and main. #425
    * python 3.5+ import. #356
    * TDA995x: Fix logical address readback. #303
    * TDA995x: Handle physical address change, optimize logical address setup.
      #303
    * Pulse-Eight USB CEC adapter detection on macOS Mojave. #434
    * Fix broken Python version check and failure to build on cmake < 3.7. #409
    * 13 char device name got truncated

  * changed:
    * log a warning when we detect that RPi's CEC service is used by something
      else, blocking libCEC. issue #191
    * const IAdapterCommunication::GetLogicalAddresses(), making the mutex
      mutable for now without changing the platform lib. closes #259
    * Add a Reinitialze action.  Useful for after the device has been powered
      down. #299
    * Panasonic media control info to the readme
    * detect WIN64 in cmake automatically. #322
    * README.developers.md. #330
    * instructions for hdmi_force_hotplug=1 on the pi
    * eventghost plugin install/create. #375
    * Include C version of libCEC loader when installing. #397
    * Explicitly use python3 in pyCecClient. #433
    * build with vs 2015

 -- Pulse-Eight Packaging <packaging%pulse-eight.com@localhost>  Thu, 8 Nov 2018 18:05:36 +0100

libcec (4.0.2.1~#DIST#) #DIST#; urgency=medium

  * fixed:
    * windows: device detection. credits: @Portisch
    * don't automatically assume that an AVR is active in some situations
    * don't take Panasonic's vendor id when emulating an AVR
    * drm EDID parser not compiled in. credits @gdachs
    * python: have Swig generate Python threading support
    * python: only pass unsigned
    * python: allow empty callback parameters
    * python: install demo app as executable
    * python: correct install path. credits @Lo0k @mkreisl. #284 #288 #289 #291
    * python: possible crash when passing an invalid callback

 -- Pulse-Eight Packaging <packaging%pulse-eight.com@localhost>  Mon, 23 Jan 2017 16:28:00 +0100

libcec (4.0.1.1~#DIST#) #DIST#; urgency=medium

  * fixed:
    * TransmitVolumeDown to use CEC_USER_CONTROL_CODE_VOLUME_DOWN. credits:
      @michaelarnauts
    * HAVE_AOCEC_API missing in if in AdapterFactory. credits: @gdachs
    * env.h had 'ON' instead of '1' for some values

 -- Pulse-Eight Packaging <packaging%pulse-eight.com@localhost>  Tue, 3 Jan 2017 19:12:00 +0100

libcec (4.0.0.3~#DIST#) #DIST#; urgency=medium

  * fixed:
    * headers weren't installed after package name changes

 -- Pulse-Eight Packaging <packaging%pulse-eight.com@localhost>  Tue, 14 Nov 2016 10:15:00 +0100

libcec (4.0.0.2~#DIST#) #DIST#; urgency=medium

  * changed:
    * updated readme files
    * renamed 'libcec-dev' to 'libcec4-dev'

  * fixed:
    * removed debian Replaces/Provides/Conflicts
    * crash in drm edid code. credits: @zivillian
    * compilation with -DHAVE_AOCEC_API=1

 -- Pulse-Eight Packaging <packaging%pulse-eight.com@localhost>  Tue, 7 Nov 2016 22:43:00 +0100

libcec (4.0.0.1~#DIST#) #DIST#; urgency=medium

  * API cleaned up for v4
  * changed:
    * signature for GetDeviceMenuLanguage() changed
    * signature for GetDeviceOSDName() changed
    * signature for libcec_get_device_menu_language() changed
    * signature for get_device_osd_name() changed
    * cec_datapacket size reduced to 16 bytes
    * callbacks changed to pass pointers instead of copies
    * obsolete entries removed from libcec_configuration
    * removed deprecated FindAdapters() and MuteAudio()
    * send volume change commands to the TV if no audio system is present. Only
      some TVs support this. closes #223

  * added:
    * bAutoWakeAVR entry in libcec_configuration, which controls whether to
      automatically power on the avr or not when the source is activated. issue
      #156
    * iDoubleTapTimeoutMs replacing iDoubleTapTimeout50Ms. time is now in
      milliseconds
    * new AO CEC adapter. credits: @gdachs

  * fixed:
    * compilation with full debugging enabled
    * handling of LG vendor command 0x0B. Issue #256. Credits @Vollstrecker
    * return value wasn't checked correctly in CLibCEC::RegisterClient()
    * Raspberry Pi fixes for issues #252 and #191

 -- Pulse-Eight Packaging <packaging%pulse-eight.com@localhost>  Tue, 26 Oct 2016 18:08:00 +0100

libcec (3.2.0.1~#DIST#) #DIST#; urgency=medium

  * Slit up repositories for libCEC and .Net utilities.

 -- Pulse-Eight Packaging <packaging%pulse-eight.com@localhost>  Wed, 19 Oct 2016 16:57:00 +0100

libcec (3.1.0.1~#DIST#) #DIST#; urgency=medium

  * changed / added:
    * bump platform lib (windows)
    * use a template that can be used by scripts for the changelog
    * make released key polling wait for exact time until key gets released.
      credits @popcornmix
    * keep track of time since initial button press and last button update
      credits @popcornmix
    * support repeating button presses with configurable repeat rate. credits
      @popcornmix
    * pass through duration on all button repeats. credits @popcornmix
    * updated README.md
    * moved the buffer in CDRMEdidParser::GetPhysicalAddress() from the stack
      to heap
    * added #include to make the IDE happy. not actually used when compiling
    * clean up device detection code a bit and replace winapi calls with
      CM_* calls. issue #130
    * replaced lockdev by flock. closes #141
    * use a single number as major SO version like others. credits @rbalint
    * Sharp uses vendor id 0x534850 too. issue #36
    * use p8-platform instead of platform
    * detect dirty trees
    * support for vs2015 to build scripts
    * update build scripts for vs2015 and win10uni

  * fixed:
    * missing version.h when installing on windows
    * skip double press removal. It is handled through other means. credits
      @popcornmix
    * don't generate an invalid env.h when not built with the .git dir present.
      closes #112
    * fix multi-arch libdir locations. credits @wsnipex
    * fix for holding buttons on remotes of Philips TVs. credits @mrgreywater
    * initialisation issue found on Raspberry Pi with Buildroot. credits
      @elouet
    * crash on systems without /sys/class/drm. credits @rbalint
    * segfault when an empty EDID blob is passed to
      GetPhysicalAddressFromEDID()
    * combo key (stop by default) in the EventGhost plugin. fixes #128
    * silence compiler warnings
    * git-rev.sh script
    * clean/fix platform detection
    * display a nice error message if LibCecSharp failed to load
    * limit the log in cectray to 100k
    * open cec-tray minimised if configured. don't open and minimise. issue
      #158
    * cosmetics: persist -> save
    * query commands in eventghost. fixes #160
    * eventghost demo config
    * don't call PowerOnDevices() if no devices to wake have been configured.
      issue #97
    * Don't skip checking for Rasperry Pi library (Fixes #166). credits
      @kingosticks
    * TDA99x check
    * disable DRM for FreeBSD

 -- Pulse-Eight Packaging <packaging%pulse-eight.com@localhost>  Wed, 20 Jan 2016 00:37:32 +0100

libcec (3.0.1-1~#DIST#) #DIST#; urgency=low

  * changed / added:
    * autodetect physical ID from DRM. credits @PoppyPop
    * cmake command line options for raspberry pi distributions that don't use
      standard system paths for libs for some reason
    * convenience methods for compilation on the raspberry pi with non-standard
      system directories and cross compilation
    * explanation in README.md for Exynos and TDA995x
    * don't treat failed acks from the tv as error when sending an active
      source message
    * compilation info when building libCEC
    * build shared libraries by default
    * cec-client: 'tx' command parsing

  * fixed:
    * return code of CCECClient callbacks after async changed. credits: @mk01
    * polling addresses on RPi. credits: @mk01
    * interruptable Sleep() in RPiCECAdapterMessageQueue
    * Exynos support. credits: @YamashitaRen
    * XCASE got removed from posix termios in some recent version
    * don't return an abort code if sending a response code fails

 -- Pulse-Eight Packaging <packaging%pulse-eight.com@localhost>  Fri, 03 Jul 2015 15:19:00 +0200

libcec (3.0.0-2) unstable; urgency=low

  * fixed:
    * build fixes on non-linux

 -- Pulse-Eight Packaging <packaging%pulse-eight.com@localhost>  Fri, 01 May 2015 01:41:00 +0200

libcec (3.0.0-1) unstable; urgency=low

  * changed / added:
    * initial version of an EventGhost plugin
    * Python API added through Swig, based on the C++ API
    * switched from autotools to cmake
    * added curses support. credits @joao29a
    * added cecc-client (testclient for the C api)
    * added runtime libCEC loading for C
    * updated the C interface to include new features and no longer use a
      global library instance
    * some AVRs fail to be powered up by the TV when it powers up. power up the
      AVR explicitly
    * added support for CEC_DEVICE_TYPE_TV (useful for testing)
    * compile with c++11
    * removed CStdString
    * drop 'using namespace std'
    * autogenerated version numbers, drop some backwards compat code
    * LibCecSharp: added PhysicalAddressToString()
    * CecSharpClient: better formatting of the scan command

  * fixed:
    * Debian packaging cleaned up. Credits @PimentNoir
    * fixed Raspberry Pi compilation. Credits @NHellFire
    * ignore vendor command with id from pioneer AVRs. bugzid: 3853
    * update the vendor id of a device when receiving a vendor command with id
      before receiving a vendor id
    * XBMC->Kodi rebranding
    * don't delete m_client when m_cec hasn't been deleted yet in
      CLibCEC::~CLibCEC(). issue #63
    * change device types in CCECProcessor::Process(), not directly. issue #63
    * use shared_ptr<CPVRClient> instead of passing raw pointers around that
      can be unregistered from another thread and crash
    * check if the port or device actually changed in CCECClient::SetHDMIPort()
    * potential buffer overflow
    * fixed setting the physical address at startup when using default settings
    * don't call callbacks directly in libCEC, but queue them and process from
      a worker thread
    * libCEC Tray: crash when retrying to find adapters
    * libCEC Tray: don't show the "no device found" warning when resuming
      from standby
    * libCEC Tray: reconnect to the adapter after resuming from standby
    * libCEC Tray: send key presses to the active window when none of the
      predefined (wmc/kodi) ones are active
    * libCEC Tray: fixed key combinations with the windows key

 -- Pulse-Eight Packaging <packaging%pulse-eight.com@localhost>  Fri, 03 Apr 2015 21:13:00 +0200

diffstat:

 misc/libcec/Makefile                                               |  26 ++++---
 misc/libcec/PLIST                                                  |  12 ++-
 misc/libcec/distinfo                                               |  15 ++--
 misc/libcec/patches/patch-configure.ac                             |  35 ----------
 misc/libcec/patches/patch-src_lib_platform_posix_os-types.h        |  13 ---
 misc/libcec/patches/patch-src_libcec_cmake_SetBuildInfo.cmake      |  15 ++++
 misc/libcec/patches/patch-src_libcec_platform_posix_serialport.cpp |  15 ++++
 7 files changed, 61 insertions(+), 70 deletions(-)

diffs (187 lines):

diff -r be8d39d396c0 -r 26c494aa5f99 misc/libcec/Makefile
--- a/misc/libcec/Makefile      Sun Sep 08 12:27:23 2019 +0000
+++ b/misc/libcec/Makefile      Sun Sep 08 12:30:53 2019 +0000
@@ -1,33 +1,35 @@
-# $NetBSD: Makefile,v 1.2 2015/04/28 01:27:40 mef Exp $
+# $NetBSD: Makefile,v 1.3 2019/09/08 12:30:53 nia Exp $
 
-DISTNAME=      libcec-2.2.0-repack
-PKGNAME=       ${DISTNAME:S/-repack//}
+DISTNAME=      libcec-4.0.4
 CATEGORIES=    misc
 MASTER_SITES=  ${MASTER_SITE_GITHUB:=Pulse-Eight/}
 GITHUB_PROJECT=        libcec
-GITHUB_TAG=    ${DISTNAME}
+GITHUB_TAG=    libcec-${PKGVERSION_NOREV}
 
 MAINTAINER=    pkgsrc-users%NetBSD.org@localhost
 HOMEPAGE=      http://libcec.pulse-eight.com/
 COMMENT=       USB CEC Adapter communication Library
 LICENSE=       gnu-gpl-v2
 
-WRKSRC=                ${WRKDIR}/libcec-libcec-2.2.0-repack
-GNU_CONFIGURE= yes
-USE_TOOLS+=    pkg-config gmake autoconf automake autoreconf
-USE_LANGUAGES= c c++
-USE_LIBTOOL=   yes
+USE_CMAKE=     yes
+USE_TOOLS+=    pkg-config
+USE_LANGUAGES= c c++11
+
+GCC_REQD+=     4.8
+
+CMAKE_ARGS+=   -DSKIP_PYTHON_WRAPPER=ON
+
+REPLACE_PYTHON+=       src/pyCecClient/pyCecClient.py
 
 PKGCONFIG_OVERRIDE+=   src/lib/libcec.pc.in
 
-pre-configure:
-       cd ${WRKSRC} && autoreconf -fi
-
 .if !empty(MACHINE_ARCH:M*arm*)
 CONFIGURE_ARGS+=       --with-rpi-include-path=${PREFIX}/include
 CONFIGURE_ARGS+=       --with-rpi-lib-path=${PREFIX}/lib
 .include "../../misc/raspberrypi-userland/buildlink3.mk"
 .endif
 
+.include "../../devel/p8-platform/buildlink3.mk"
+.include "../../lang/python/application.mk"
 .include "../../x11/libXrandr/buildlink3.mk"
 .include "../../mk/bsd.pkg.mk"
diff -r be8d39d396c0 -r 26c494aa5f99 misc/libcec/PLIST
--- a/misc/libcec/PLIST Sun Sep 08 12:27:23 2019 +0000
+++ b/misc/libcec/PLIST Sun Sep 08 12:30:53 2019 +0000
@@ -1,8 +1,16 @@
-@comment $NetBSD: PLIST,v 1.1 2015/02/13 11:12:23 jmcneill Exp $
+@comment $NetBSD: PLIST,v 1.2 2019/09/08 12:30:53 nia Exp $
 bin/cec-client
+bin/cec-client-${PKGVERSION}
+bin/cecc-client
+bin/cecc-client-${PKGVERSION}
+bin/pyCecClient
 include/libcec/cec.h
 include/libcec/cecc.h
+include/libcec/ceccloader.h
 include/libcec/cecloader.h
 include/libcec/cectypes.h
-lib/libcec.la
+include/libcec/version.h
+lib/libcec.so
+lib/libcec.so.4
+lib/libcec.so.${PKGVERSION}
 lib/pkgconfig/libcec.pc
diff -r be8d39d396c0 -r 26c494aa5f99 misc/libcec/distinfo
--- a/misc/libcec/distinfo      Sun Sep 08 12:27:23 2019 +0000
+++ b/misc/libcec/distinfo      Sun Sep 08 12:30:53 2019 +0000
@@ -1,9 +1,8 @@
-$NetBSD: distinfo,v 1.2 2015/11/03 23:49:42 agc Exp $
+$NetBSD: distinfo,v 1.3 2019/09/08 12:30:53 nia Exp $
 
-SHA1 (libcec-2.2.0-repack.tar.gz) = 42e19328c5b05b5fff27bcdf80e7acc329201913
-RMD160 (libcec-2.2.0-repack.tar.gz) = a4620c45d78a8e0305fdc15e35e8b964b57f3eef
-SHA512 (libcec-2.2.0-repack.tar.gz) = 2ff91288fab50c4963a265757c41132ad7647a1d95780e0ccc23bbe9dd0a7f3c4f1b1332e7d992e41ecfd27601c4b1a091343d2df518fd06a5a3f0956ed40a2b
-Size (libcec-2.2.0-repack.tar.gz) = 1099286 bytes
-SHA1 (patch-configure.ac) = 6a873fd774c4c31db81c627ce009d9dec0c03c82
-SHA1 (patch-src_lib_platform_posix_os-types.h) = a7f0c9726d5a48d4706258c3edcbb41c96e90601
-SHA1 (patch-src_lib_platform_posix_serialport.cpp) = 2b47f04bf1849ed310ac29ebe9ae10bad0ded8a4
+SHA1 (libcec-4.0.4.tar.gz) = 3755d183d1504b90b26325ab7f95280bc64247c1
+RMD160 (libcec-4.0.4.tar.gz) = 32311f0d1908916f169582153fdad727e2b03838
+SHA512 (libcec-4.0.4.tar.gz) = 8991ba96fe9a87e5e1f63ff87f77fc0fc3b735c537e2ee6cb004fdc264d75cecd043e39b49cf9e64aeadd24bb1fb57911d9c4bd6c494d9ba4035d7320c268116
+Size (libcec-4.0.4.tar.gz) = 344976 bytes
+SHA1 (patch-src_libcec_cmake_SetBuildInfo.cmake) = 04d1fb4c2017bd5050b29cd8686ea4e51a1a8e96
+SHA1 (patch-src_libcec_platform_posix_serialport.cpp) = 7256a4f79df6a6f0c60ed3206a50e1c57c51a90e
diff -r be8d39d396c0 -r 26c494aa5f99 misc/libcec/patches/patch-configure.ac
--- a/misc/libcec/patches/patch-configure.ac    Sun Sep 08 12:27:23 2019 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-$NetBSD: patch-configure.ac,v 1.1 2015/02/13 11:12:23 jmcneill Exp $
-
---- configure.ac.orig  2014-10-31 19:11:22.000000000 +0000
-+++ configure.ac
-@@ -81,7 +81,7 @@ AC_ARG_WITH([rpi-include-path],
- AC_ARG_WITH([rpi-lib-path],
-   [AS_HELP_STRING([--with-rpi-lib-path],
-     [location of the Raspberry Pi libraries (location of libbcm_host.so, default is auto)])],
--  [RPI_LIBS="-L$withval"])
-+  [RPI_LIBS="-Wl,-R$withval -L$withval"])
- 
- ## only check for the RPi API on ARM targets
- if test "x$use_rpi" != "xno"; then
-@@ -139,7 +139,7 @@ use_adapter_detection="yes"
- use_lockdev="no"
- SUPPRESS_MANGLING_WARNINGS=" -Wno-psabi"
- case "${host}" in
--  *-*-linux*)
-+  *-*-linux*|*-*-netbsd*)
-     ## search for udev if pkg-config was found
-     if test "x$HAVE_PKG_CONFIG" = "xyes" ; then
-       PKG_CHECK_MODULES([UDEV],[libudev],use_udev="yes",AC_MSG_WARN($msg_udev_missing))
-@@ -160,7 +160,11 @@ case "${host}" in
-     AC_CHECK_LIB(lockdev,dev_unlock,,[use_lockdev="no";AC_MSG_WARN($msg_lockdev_missing)])
- 
-     AC_CHECK_HEADER(time.h,,AC_MSG_ERROR($msg_required_header_missing))
--    AC_CHECK_HEADER(sys/prctl.h,,AC_MSG_ERROR($msg_required_header_missing))
-+    case "${host}" in
-+    *-*-linux*)
-+      AC_CHECK_HEADER(sys/prctl.h,,AC_MSG_ERROR($msg_required_header_missing))
-+      ;;
-+    esac
- 
-     ## search for the RPi API. we need to check a couple of things to see if
-     ## it's recent enough and contains the calls needed for libCEC to operate
diff -r be8d39d396c0 -r 26c494aa5f99 misc/libcec/patches/patch-src_lib_platform_posix_os-types.h
--- a/misc/libcec/patches/patch-src_lib_platform_posix_os-types.h       Sun Sep 08 12:27:23 2019 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-$NetBSD: patch-src_lib_platform_posix_os-types.h,v 1.1 2015/02/13 11:12:23 jmcneill Exp $
-
---- src/lib/platform/posix/os-types.h.orig     2014-10-31 19:11:22.000000000 +0000
-+++ src/lib/platform/posix/os-types.h
-@@ -36,7 +36,7 @@
- #include <string.h>
- #include <errno.h>
- #include <sys/time.h>
--#if !defined(__APPLE__) && !defined(__FreeBSD__)
-+#if !defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__NetBSD__)
- #include <sys/prctl.h>
- #endif
- #include <pthread.h>
diff -r be8d39d396c0 -r 26c494aa5f99 misc/libcec/patches/patch-src_libcec_cmake_SetBuildInfo.cmake
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/misc/libcec/patches/patch-src_libcec_cmake_SetBuildInfo.cmake     Sun Sep 08 12:30:53 2019 +0000
@@ -0,0 +1,15 @@
+$NetBSD: patch-src_libcec_cmake_SetBuildInfo.cmake,v 1.1 2019/09/08 12:30:54 nia Exp $
+
+Don't use non-standard hostname args.
+
+--- src/libcec/cmake/SetBuildInfo.cmake.orig   2018-12-21 21:34:45.000000000 +0000
++++ src/libcec/cmake/SetBuildInfo.cmake
+@@ -45,8 +45,6 @@ else()
+   # add host on which this was built to compile info
+   find_program(HAVE_HOSTNAME_BIN hostname /bin /usr/bin /usr/local/bin)
+   if(HAVE_HOSTNAME_BIN)
+-    exec_program(hostname ARGS -f OUTPUT_VARIABLE BUILD_HOST)
+-    set(LIB_INFO "${LIB_INFO}@${BUILD_HOST}")
+   endif()
+ 
+   # add host info on which this was built to compile info
diff -r be8d39d396c0 -r 26c494aa5f99 misc/libcec/patches/patch-src_libcec_platform_posix_serialport.cpp
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/misc/libcec/patches/patch-src_libcec_platform_posix_serialport.cpp        Sun Sep 08 12:30:53 2019 +0000
@@ -0,0 +1,15 @@
+$NetBSD: patch-src_libcec_platform_posix_serialport.cpp,v 1.1 2019/09/08 12:30:54 nia Exp $
+
+Support NetBSD.
+
+--- src/libcec/platform/posix/serialport.cpp.orig      2018-12-21 21:34:45.000000000 +0000
++++ src/libcec/platform/posix/serialport.cpp
+@@ -38,7 +38,7 @@
+ #include "../util/baudrate.h"
+ #include "p8-platform/posix/os-socket.h"
+ 
+-#if defined(__APPLE__) || defined(__FreeBSD__)
++#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ #ifndef XCASE
+ #define XCASE 0
+ #endif



Home | Main Index | Thread Index | Old Index