Commit 223bc647 authored by Christophe Mutricy's avatar Christophe Mutricy

Allow binary maintainer to pass a custom string

Soo that we avoid plugin cache problem between binary version.

This patch was first thought for Debian but considering it is usefull
for all distros and for VideoLAN own win32 and MacOSX builds, I
think it has its place in the master tree.
parent d7f15579
...@@ -80,6 +80,17 @@ AC_C_CONST ...@@ -80,6 +80,17 @@ AC_C_CONST
AC_C_INLINE AC_C_INLINE
AC_C_RESTRICT AC_C_RESTRICT
dnl Allow binary package maintainer to pass a custom string to avoid
dnl cache problem
AC_ARG_WITH(binary-version,
AS_HELP_STRING([--with-binary-version=STRING],
[To avoid plugins cache problem between binary version]),[],[])
AS_IF([test -n "${with_binary_version}"],[
AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
[Binary specific version])
])
dnl dnl
dnl Check for the contrib directory dnl Check for the contrib directory
dnl dnl
......
...@@ -178,6 +178,20 @@ void CacheLoad( vlc_object_t *p_this ) ...@@ -178,6 +178,20 @@ void CacheLoad( vlc_object_t *p_this )
return; return;
} }
#ifdef DISTRO_VERSION
/* Check for distribution specific version */
char p_distrostring[sizeof( DISTRO_VERSION )];
i_size = sizeof( DISTRO_VERSION ) - 1;
i_read = fread( p_distrostring, 1, i_size, file );
if( i_read != i_size ||
memcmp( p_distrostring, DISTRO_VERSION, i_size ) )
{
msg_Warn( p_this, "This doesn't look like a valid plugins cache" );
fclose( file );
return;
}
#endif
/* Check Sub-version number */ /* Check Sub-version number */
i_read = fread( &i_marker, 1, sizeof(i_marker), file ); i_read = fread( &i_marker, 1, sizeof(i_marker), file );
if( i_read != sizeof(i_marker) || i_marker != CACHE_SUBVERSION_NUM ) if( i_read != sizeof(i_marker) || i_marker != CACHE_SUBVERSION_NUM )
...@@ -496,7 +510,11 @@ void CacheSave( vlc_object_t *p_this ) ...@@ -496,7 +510,11 @@ void CacheSave( vlc_object_t *p_this )
/* Contains version number */ /* Contains version number */
if (fputs ("cache "COPYRIGHT_MESSAGE, file) == EOF) if (fputs ("cache "COPYRIGHT_MESSAGE, file) == EOF)
goto error; goto error;
#ifdef DISTRO_VERSION
/* Allow binary maintaner to pass a string to detect new binary version*/
if (fputs( DISTRO_VERSION, file ) == EOF)
goto error;
#endif
/* Sub-version number (to avoid breakage in the dev version when cache /* Sub-version number (to avoid breakage in the dev version when cache
* structure changes) */ * structure changes) */
i_file_size = CACHE_SUBVERSION_NUM; i_file_size = CACHE_SUBVERSION_NUM;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment