Projects
Essentials
libaacs
Sign Up
Log In
Username
Password
We truncated the diff of some files because they were too big. If you want to see the full diff for every file,
click here
.
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 10
View file
libaacs.changes
Changed
@@ -1,4 +1,17 @@ ------------------------------------------------------------------- +Mon Apr 27 18:50:11 UTC 2020 - Luigi Baldoni <aloisio@gmx.com> + +- Update to version 0.10.0 + * Add support for AACS2 content certificate. + * Add aacs_set_key_caching(). + * Add aacs_error_str(). + * Issue a warning when using AACS2 capable drive. + * Fix parsing title entries from multiple KEYDB.cfg files. + * Fix memory leak with multiple KEYDB.cfg files. + * Fix data corruption when structs are not packed. +- Spec cleanup + +------------------------------------------------------------------- Tue May 16 11:29:17 UTC 2017 - joerg.lorenzen@ki.tng.de - update to 0.9.0
View file
libaacs.spec
Changed
@@ -1,6 +1,7 @@ # # spec file for package libaacs # +# Copyright (c) 2020 Packman Team <packman@links2linux.de> # Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # Copyright (c) 2011 Dominique Leuenberger, Amsterdam, The Netherlands. # @@ -13,19 +14,19 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.links2linux.org/ # -%define libname %{name}0 +%define sover 0 Name: libaacs -Version: 0.9.0 +Version: 0.10.0 Release: 0 Summary: Open implentation of AACS specification -License: LGPL-2.1+ +License: LGPL-2.1-or-later Group: System/Libraries -Url: http://www.videolan.org/developers/libaacs.html -Source: ftp://ftp.videolan.org/pub/videolan/libaacs/%{version}/libaacs-%{version}.tar.bz2 +URL: https://www.videolan.org/developers/libaacs.html +Source: https://download.videolan.org/videolan/%{name}/%{version}/%{name}-%{version}.tar.bz2 BuildRequires: autoconf BuildRequires: automake BuildRequires: bison @@ -33,57 +34,54 @@ BuildRequires: libgcrypt-devel BuildRequires: libtool BuildRequires: pkgconfig -BuildRoot: %{_tmppath}/%{name}-%{version}-build %description libaacs is a research project to implement the Advanced Access Content System specification. This research project provides, through an open-source library, a way to understand how the AACS works. -%package -n %{libname} +%package -n %{name}%{sover} Summary: Open implentation of AACS specification Group: System/Libraries -%description -n %{libname} +%description -n %{name}%{sover} libaacs is a research project to implement the Advanced Access Content System specification. This research project provides, through an open-source library, a way to understand how the AACS works. %package devel Summary: Open implentation of AACS specification - Development files Group: Development/Languages/C and C++ -Requires: libaacs0 = %{version} +Requires: %{name}%{sover} = %{version} %description devel libaacs is a research project to implement the Advanced Access Content System specification. This research project provides, through an open-source library, a way to understand how the AACS works. %prep -%setup -q +%autosetup %build autoreconf -fvi %configure \ --disable-static \ --disable-silent-rules -make %{?_smp_mflags} +%make_build %install %make_install find %{buildroot} -type f -name "*.la" -delete -print -%post -n %{libname} -p /sbin/ldconfig -%postun -n %{libname} -p /sbin/ldconfig +%post -n %{name}%{sover} -p /sbin/ldconfig +%postun -n %{name}%{sover} -p /sbin/ldconfig -%files -n %{libname} -%defattr(-, root, root) -%doc COPYING +%files -n %{name}%{sover} +%license COPYING %{_bindir}/aacs_info -%{_libdir}/libaacs.so.0 -%{_libdir}/libaacs.so.0.* +%{_libdir}/%{name}.so.%{sover} +%{_libdir}/%{name}.so.%{sover}.* %files devel -%defattr(-, root, root) -%{_libdir}/libaacs.so -%{_libdir}/pkgconfig/libaacs.pc +%{_libdir}/%{name}.so +%{_libdir}/pkgconfig/%{name}.pc %{_includedir}/%{name}/ %changelog
View file
libaacs-0.9.0.tar.bz2/ChangeLog -> libaacs-0.10.0.tar.bz2/ChangeLog
Changed
@@ -1,3 +1,13 @@ +2020-03-22: Version 0.10.0 +- Add support for AACS2 content certificate. +- Add aacs_set_key_caching(). +- Add aacs_error_str(). +- Issue a warning when using AACS2 capable drive. +- Fix macOS mount issues. +- Fix parsing title entries from multiple KEYDB.cfg files. +- Fix memory leak with multiple KEYDB.cfg files. +- Fix data corruption when structs are not packed. + 2017-05-04: Version 0.9.0 - Add aacs_decrypt_bus(). - Add aacs_get_bdj_root_cert_hash().
View file
libaacs-0.9.0.tar.bz2/Makefile.in -> libaacs-0.10.0.tar.bz2/Makefile.in
Changed
@@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -127,6 +127,9 @@ CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = src/libaacs.pc src/libaacs/aacs-version.h CONFIG_CLEAN_VPATH_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libdir)" \ + "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(pkgincludedir)" +PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -154,8 +157,6 @@ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } -am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ - "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(pkgincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = libaacs_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) @@ -204,7 +205,6 @@ libaacs_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libaacs_la_LDFLAGS) $(LDFLAGS) -o $@ -PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) am_aacs_info_OBJECTS = src/examples/aacs_info-aacs_info.$(OBJEXT) aacs_info_OBJECTS = $(am_aacs_info_OBJECTS) aacs_info_DEPENDENCIES = libaacs.la @@ -236,7 +236,33 @@ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = src/examples/$(DEPDIR)/aacs_info-aacs_info.Po \ + src/examples/$(DEPDIR)/parser_test-parser_test.Po \ + src/file/$(DEPDIR)/dirs_darwin.Plo \ + src/file/$(DEPDIR)/dirs_win32.Plo \ + src/file/$(DEPDIR)/dirs_xdg.Plo src/file/$(DEPDIR)/file.Plo \ + src/file/$(DEPDIR)/file_posix.Plo \ + src/file/$(DEPDIR)/file_win32.Plo \ + src/file/$(DEPDIR)/filesystem.Plo \ + src/file/$(DEPDIR)/keydbcfg-lexer.Plo \ + src/file/$(DEPDIR)/keydbcfg-parser.Plo \ + src/file/$(DEPDIR)/keydbcfg.Plo \ + src/file/$(DEPDIR)/mmc_device_darwin.Plo \ + src/file/$(DEPDIR)/mmc_device_linux.Plo \ + src/file/$(DEPDIR)/mmc_device_win32.Plo \ + src/file/$(DEPDIR)/parser_test-keydbcfg-lexer.Po \ + src/file/$(DEPDIR)/parser_test-keydbcfg-parser.Po \ + src/file/$(DEPDIR)/path.Plo src/libaacs/$(DEPDIR)/aacs.Plo \ + src/libaacs/$(DEPDIR)/cci.Plo \ + src/libaacs/$(DEPDIR)/content_cert.Plo \ + src/libaacs/$(DEPDIR)/crypto.Plo src/libaacs/$(DEPDIR)/ec.Plo \ + src/libaacs/$(DEPDIR)/mkb.Plo src/libaacs/$(DEPDIR)/mmc.Plo \ + src/libaacs/$(DEPDIR)/unit_key.Plo \ + src/util/$(DEPDIR)/logging.Plo \ + src/util/$(DEPDIR)/parser_test-logging.Po \ + src/util/$(DEPDIR)/parser_test-strutl.Po \ + src/util/$(DEPDIR)/strutl.Plo am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -551,8 +577,8 @@ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -582,6 +608,64 @@ cd $(top_builddir) && $(SHELL) ./config.status $@ src/libaacs/aacs-version.h: $(top_builddir)/config.status $(top_srcdir)/src/libaacs/aacs-version.h.in cd $(top_builddir) && $(SHELL) ./config.status $@ +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ + fi; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p \ + || test -f $$p1 \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files"." = ""; dirs"." = 1 } \ + { d=$$3; if (dirsd != 1) { print "d", d; dirsd = 1 } \ + if ($$2 == $$4) filesd = filesd " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, filesd }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' \ + `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files + +clean-binPROGRAMS: + @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @@ -689,64 +773,6 @@ libaacs.la: $(libaacs_la_OBJECTS) $(libaacs_la_DEPENDENCIES) $(EXTRA_libaacs_la_DEPENDENCIES) $(AM_V_CCLD)$(libaacs_la_LINK) -rpath $(libdir) $(libaacs_la_OBJECTS) $(libaacs_la_LIBADD) $(LIBS) -install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ - fi; \ - for p in $$list; do echo "$$p $$p"; done | \ - sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - || test -f $$p1 \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ - -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ - sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files"." = ""; dirs"." = 1 } \ - { d=$$3; if (dirsd != 1) { print "d", d; dirsd = 1 } \ - if ($$2 == $$4) filesd = filesd " " $$1; \ - else { print "f", $$3 "/" $$4, $$1; } } \ - END { for (d in files) print "f", d, filesd }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ - $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-binPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files - -clean-binPROGRAMS: - @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \
View file
libaacs-0.9.0.tar.bz2/aclocal.m4 -> libaacs-0.10.0.tar.bz2/aclocal.m4
Changed
@@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.15 -*- Autoconf -*- +# generated automatically by aclocal 1.16.1 -*- Autoconf -*- -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -20,7 +20,7 @@ If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.)) -# Copyright (C) 2002-2014 Free Software Foundation, Inc. +# Copyright (C) 2002-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -32,10 +32,10 @@ # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN(AM_AUTOMAKE_VERSION, -am__api_version='1.15' +am__api_version='1.16' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if($1, 1.15, , +m4_if($1, 1.16.1, , AC_FATAL(Do not call $0, use AM_INIT_AUTOMAKE($1).))dnl ) @@ -51,14 +51,14 @@ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN(AM_SET_CURRENT_AUTOMAKE_VERSION, -AM_AUTOMAKE_VERSION(1.15)dnl +AM_AUTOMAKE_VERSION(1.16.1)dnl m4_ifndef(AC_AUTOCONF_VERSION, m4_copy(m4_PACKAGE_VERSION, AC_AUTOCONF_VERSION))dnl _AM_AUTOCONF_VERSION(m4_defn(AC_AUTOCONF_VERSION))) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -110,7 +110,7 @@ # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2014 Free Software Foundation, Inc. +# Copyright (C) 1997-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -141,7 +141,7 @@ Usually this means the macro was only invoked conditionally.) fi)) -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -332,13 +332,12 @@ # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. - # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN(_AM_OUTPUT_DEPENDENCY_COMMANDS, @@ -346,49 +345,41 @@ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + AS_CASE($CONFIG_FILES, + *\'*, eval set x "$CONFIG_FILES", + *, set x $CONFIG_FILES) shift - for mf + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf do # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line + am_mf=`AS_ECHO("$am_mf") | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME("$file")` - AS_MKDIR_P($dirpart/$fdir) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`AS_DIRNAME("$am_mf")` + am_filepart=`AS_BASENAME("$am_mf")` + AM_RUN_LOG(cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles) || am_rc=$? done + if test $am_rc -ne 0; then + AC_MSG_FAILURE(Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. Try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking).) + fi + AS_UNSET(am_dirpart) + AS_UNSET(am_filepart) + AS_UNSET(am_mf) + AS_UNSET(am_rc) + rm -f conftest-deps.mk } )# _AM_OUTPUT_DEPENDENCY_COMMANDS @@ -397,18 +388,17 @@ # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each '.P' file that we will -# need in order to bootstrap the dependency handling code. +# This code is only required when automatic dependency tracking is enabled. +# This creates each '.Po' and '.Plo' makefile fragment that we'll need in +# order to bootstrap the dependency handling code. AC_DEFUN(AM_OUTPUT_DEPENDENCY_COMMANDS, AC_CONFIG_COMMANDS(depfiles, test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS, - AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir") -) + AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}")) # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -495,8 +485,8 @@ AC_REQUIRE(AC_PROG_MKDIR_P)dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: -# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> -# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> +# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> +# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> AC_SUBST(mkdir_p, '$(MKDIR_P)') # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. @@ -563,7 +553,7 @@ Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation
View file
libaacs-0.9.0.tar.bz2/build-aux/compile -> libaacs-0.10.0.tar.bz2/build-aux/compile
Changed
@@ -1,9 +1,9 @@ #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. -scriptversion=2012-10-14.11; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # Written by Tom Tromey <tromey@cygnus.com>. # # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <https://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -255,7 +255,8 @@ echo "compile $scriptversion" exit $? ;; - cl | */\\cl | cl.exe | */\\cl.exe ) + cl | */\\cl | cl.exe | */\\cl.exe | \ + icl | */\\icl | icl.exe | */\\icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac @@ -339,9 +340,9 @@ # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End:
View file
libaacs-0.9.0.tar.bz2/build-aux/config.guess -> libaacs-0.10.0.tar.bz2/build-aux/config.guess
Changed
@@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2016 Free Software Foundation, Inc. +# Copyright 1992-2018 Free Software Foundation, Inc. -timestamp='2016-04-02' +timestamp='2018-02-24' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, see <http://www.gnu.org/licenses/>. +# along with this program; if not, see <https://www.gnu.org/licenses/>. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -27,7 +27,7 @@ # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # # Please send patches to <config-patches@gnu.org>. @@ -39,7 +39,7 @@ Output the configuration name of the system \`$me' is run on. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -50,7 +50,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2016 Free Software Foundation, Inc. +Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -107,9 +107,9 @@ dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; + ,,) echo "int x;" > "$dummy.c" ; for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; @@ -132,14 +132,14 @@ UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -case "${UNAME_SYSTEM}" in +case "$UNAME_SYSTEM" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu - eval $set_cc_for_build - cat <<-EOF > $dummy.c + eval "$set_cc_for_build" + cat <<-EOF > "$dummy.c" #include <features.h> #if defined(__UCLIBC__) LIBC=uclibc @@ -149,13 +149,20 @@ LIBC=gnu #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" + + # If ldd exists, use it to detect musl libc. + if command -v ldd >/dev/null && \ + ldd --version 2>&1 | grep -q ^musl + then + LIBC=musl + fi ;; esac # Note: order is significant - the case branches are not exclusive. -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in +case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, @@ -169,27 +176,30 @@ # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ - /sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || \ + "/sbin/$sysctl" 2>/dev/null || \ + "/usr/sbin/$sysctl" 2>/dev/null || \ echo unknown)` - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; earmv*) - arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv0-9\).*$,\1,'` - endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` - machine=${arch}${endian}-unknown + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv0-9\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine="${arch}${endian}"-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + *) machine="$UNAME_MACHINE_ARCH"-unknown ;; esac # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build + # to ELF recently (or will in the future) and ABI. + case "$UNAME_MACHINE_ARCH" in + earm*) + os=netbsdelf + ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval "$set_cc_for_build" if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then @@ -205,10 +215,10 @@ ;; esac # Determine ABI tags. - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in earm*) expr='s/^earmv0-9/-eabi/;s/eb$//' - abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` ;; esac # The OS release @@ -216,46 +226,55 @@ # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in + case "$UNAME_VERSION" in Debian*) release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE} | sed -e 's/-_.*//' | cut -d. -f1,2` + release=`echo "$UNAME_RELEASE" | sed -e 's/-_.*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}${abi}" + echo "$machine-${os}${release}${abi}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" exit ;; *:LibertyBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" + exit ;; + *:MidnightBSD:*:*) + echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" exit ;; *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" exit ;; *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
View file
libaacs-0.9.0.tar.bz2/build-aux/config.sub -> libaacs-0.10.0.tar.bz2/build-aux/config.sub
Changed
@@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2016 Free Software Foundation, Inc. +# Copyright 1992-2018 Free Software Foundation, Inc. -timestamp='2016-03-30' +timestamp='2018-02-22' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, see <http://www.gnu.org/licenses/>. +# along with this program; if not, see <https://www.gnu.org/licenses/>. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -33,7 +33,7 @@ # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases @@ -57,7 +57,7 @@ Canonicalize a configuration name. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -67,7 +67,7 @@ version="\ GNU config.sub ($timestamp) -Copyright 1992-2016 Free Software Foundation, Inc. +Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -94,7 +94,7 @@ *local*) # First pass through any local machine types. - echo $1 + echo "$1" exit ;; * ) @@ -112,24 +112,24 @@ # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\(^-*-^-*\)$/\2/'` +maybe_os=`echo "$1" | sed 's/^\(.*\)-\(^-*-^-*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ - kopensolaris*-gnu* | \ + kopensolaris*-gnu* | cloudabi*-eabi* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\(^-*-^-*\)$/\1/'` + basic_machine=`echo "$1" | sed 's/^\(.*\)-\(^-*-^-*\)$/\1/'` ;; android-linux) os=-linux-android - basic_machine=`echo $1 | sed 's/^\(.*\)-\(^-*-^-*\)$/\1/'`-unknown + basic_machine=`echo "$1" | sed 's/^\(.*\)-\(^-*-^-*\)$/\1/'`-unknown ;; *) - basic_machine=`echo $1 | sed 's/-^-*$//'` - if $basic_machine != $1 - then os=`echo $1 | sed 's/.*-/-/'` + basic_machine=`echo "$1" | sed 's/-^-*$//'` + if "$basic_machine" != "$1" + then os=`echo "$1" | sed 's/.*-/-/'` else os=; fi ;; esac @@ -178,44 +178,44 @@ ;; -sco6) os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.4-9*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v4-9*) # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 @@ -227,10 +227,7 @@ os=-lynxos ;; -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'` ;; -psos*) os=-psos @@ -263,7 +260,7 @@ | fido | fr30 | frv | ft32 \ | h8300 | h8500 | hppa | hppa1.01 | hppa2.0 | hppa2.0nw | hppa64 \ | hexagon \ - | i370 | i860 | i960 | ia64 \ + | i370 | i860 | i960 | ia16 | ia64 \ | ip2k | iq2000 \ | k1om \ | le32 | le64 \ @@ -299,8 +296,9 @@ | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ | open8 | or1k | or1knd | or32 \ - | pdp10 | pdp11 | pj | pjl \ + | pdp10 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pru \ | pyramid \ | riscv32 | riscv64 \ | rl78 | rx \ @@ -314,7 +312,7 @@ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | visium \ - | we32k \ + | wasm32 \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown @@ -335,7 +333,7 @@ basic_machine=$basic_machine-unknown os=-none ;; - m88110 | m680123460 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + m88110 | m680123460 | m683?2 | m68360 | m5200 | v70 | w65) ;; ms1) basic_machine=mt-unknown @@ -364,7 +362,7 @@ ;; # Object if more than one company name word. *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 exit 1
View file
libaacs-0.9.0.tar.bz2/build-aux/depcomp -> libaacs-0.10.0.tar.bz2/build-aux/depcomp
Changed
@@ -1,9 +1,9 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2013-05-30.07; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -16,7 +16,7 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <https://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -783,9 +783,9 @@ # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End:
View file
libaacs-0.9.0.tar.bz2/build-aux/install-sh -> libaacs-0.10.0.tar.bz2/build-aux/install-sh
Changed
@@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2014-09-12.12; # UTC +scriptversion=2018-03-11.20; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -271,15 +271,18 @@ fi dst=$dst_arg - # If destination is a directory, append the input filename; won't work - # if double slashes aren't ignored. + # If destination is a directory, append the input filename. if test -d "$dst"; then if test "$is_target_a_directory" = never; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst - dst=$dstdir/`basename "$src"` + dstbase=`basename "$src"` + case $dst in + */) dst=$dst$dstbase;; + *) dst=$dst/$dstbase;; + esac dstdir_status=0 else dstdir=`dirname "$dst"` @@ -288,6 +291,11 @@ fi fi + case $dstdir in + */) dstdirslash=$dstdir;; + *) dstdirslash=$dstdir/;; + esac + obsolete_mkdir_used=false if test $dstdir_status != 0; then @@ -324,14 +332,16 @@ # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) - # $RANDOM is not portable (e.g. dash); use it when possible to - # lower collision chance + # Note that $RANDOM variable is not portable (e.g. dash); Use it + # here however when possible just to lower collision chance. tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 - # As "mkdir -p" follows symlinks and we work in /tmp possibly; so - # create the $tmpdir first (and fail if unsuccessful) to make sure - # that nobody tries to guess the $tmpdir name. + # Because "mkdir -p" follows existing symlinks and we likely work + # directly in world-writeable /tmp, make sure that the '$tmpdir' + # directory is successfully created first before we actually test + # 'mkdir -p' feature. if (umask $mkdir_umask && $mkdirprog $mkdir_mode "$tmpdir" && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 @@ -434,8 +444,8 @@ else # Make a couple of temp file names in the proper directory. - dsttmp=$dstdir/_inst.$$_ - rmtmp=$dstdir/_rm.$$_ + dsttmp=${dstdirslash}_inst.$$_ + rmtmp=${dstdirslash}_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 @@ -500,9 +510,9 @@ done # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End:
View file
libaacs-0.9.0.tar.bz2/build-aux/ltmain.sh -> libaacs-0.10.0.tar.bz2/build-aux/ltmain.sh
Changed
@@ -31,7 +31,7 @@ PROGRAM=libtool PACKAGE=libtool -VERSION="2.4.6 Debian-2.4.6-1" +VERSION="2.4.6 Debian-2.4.6-11" package_revision=2.4.6 @@ -1370,7 +1370,7 @@ #! /bin/sh # Set a version string for this script. -scriptversion=2014-01-07.03; # UTC +scriptversion=2015-10-07.11; # UTC # A portable, pluggable option parser for Bourne shell. # Written by Gary V. Vaughan, 2010 @@ -1530,6 +1530,8 @@ { $debug_cmd + _G_rc_run_hooks=false + case " $hookable_fns " in *" $1 "*) ;; *) func_fatal_error "'$1' does not support hook funcions.n" ;; @@ -1538,16 +1540,16 @@ eval _G_hook_fns=\$$1_hooks; shift for _G_hook in $_G_hook_fns; do - eval $_G_hook '"$@"' - - # store returned options list back into positional - # parameters for next 'cmd' execution. - eval _G_hook_result=\$${_G_hook}_result - eval set dummy "$_G_hook_result"; shift + if eval $_G_hook '"$@"'; then + # store returned options list back into positional + # parameters for next 'cmd' execution. + eval _G_hook_result=\$${_G_hook}_result + eval set dummy "$_G_hook_result"; shift + _G_rc_run_hooks=: + fi done - func_quote_for_eval ${1+"$@"} - func_run_hooks_result=$func_quote_for_eval_result + $_G_rc_run_hooks && func_run_hooks_result=$_G_hook_result } @@ -1557,10 +1559,16 @@ ## --------------- ## # In order to add your own option parsing hooks, you must accept the -# full positional parameter list in your hook function, remove any -# options that you action, and then pass back the remaining unprocessed +# full positional parameter list in your hook function, you may remove/edit +# any options that you action, and then pass back the remaining unprocessed # options in '<hooked_function_name>_result', escaped suitably for -# 'eval'. Like this: +# 'eval'. In this case you also must return $EXIT_SUCCESS to let the +# hook's caller know that it should pay attention to +# '<hooked_function_name>_result'. Returning $EXIT_FAILURE signalizes that +# arguments are left untouched by the hook and therefore caller will ignore the +# result variable. +# +# Like this: # # my_options_prep () # { @@ -1570,9 +1578,11 @@ # usage_message=$usage_message' # -s, --silent don'\''t print informational messages # ' -# -# func_quote_for_eval ${1+"$@"} -# my_options_prep_result=$func_quote_for_eval_result +# # No change in '$@' (ignored completely by this hook). There is +# # no need to do the equivalent (but slower) action: +# # func_quote_for_eval ${1+"$@"} +# # my_options_prep_result=$func_quote_for_eval_result +# false # } # func_add_hook func_options_prep my_options_prep # @@ -1581,25 +1591,37 @@ # { # $debug_cmd # +# args_changed=false +# # # Note that for efficiency, we parse as many options as we can # # recognise in a loop before passing the remainder back to the # # caller on the first unrecognised argument we encounter. # while test $# -gt 0; do # opt=$1; shift # case $opt in -# --silent|-s) opt_silent=: ;; +# --silent|-s) opt_silent=: +# args_changed=: +# ;; # # Separate non-argument short options: # -s*) func_split_short_opt "$_G_opt" # set dummy "$func_split_short_opt_name" \ # "-$func_split_short_opt_arg" ${1+"$@"} # shift +# args_changed=: # ;; -# *) set dummy "$_G_opt" "$*"; shift; break ;; +# *) # Make sure the first unrecognised option "$_G_opt" +# # is added back to "$@", we could need that later +# # if $args_changed is true. +# set dummy "$_G_opt" ${1+"$@"}; shift; break ;; # esac # done # -# func_quote_for_eval ${1+"$@"} -# my_silent_option_result=$func_quote_for_eval_result +# if $args_changed; then +# func_quote_for_eval ${1+"$@"} +# my_silent_option_result=$func_quote_for_eval_result +# fi +# +# $args_changed # } # func_add_hook func_parse_options my_silent_option # @@ -1611,16 +1633,32 @@ # $opt_silent && $opt_verbose && func_fatal_help "\ # '--silent' and '--verbose' options are mutually exclusive." # -# func_quote_for_eval ${1+"$@"} -# my_option_validation_result=$func_quote_for_eval_result +# false # } # func_add_hook func_validate_options my_option_validation # -# You'll alse need to manually amend $usage_message to reflect the extra +# You'll also need to manually amend $usage_message to reflect the extra # options you parse. It's preferable to append if you can, so that # multiple option parsing hooks can be added safely. +# func_options_finish ARG... +# ---------------------------- +# Finishing the option parse loop (call 'func_options' hooks ATM). +func_options_finish () +{ + $debug_cmd + + _G_func_options_finish_exit=false + if func_run_hooks func_options ${1+"$@"}; then + func_options_finish_result=$func_run_hooks_result + _G_func_options_finish_exit=: + fi + + $_G_func_options_finish_exit +} + + # func_options ARG... # --------------------- # All the functions called inside func_options are hookable. See the @@ -1630,17 +1668,28 @@ { $debug_cmd - func_options_prep ${1+"$@"} - eval func_parse_options \ - ${func_options_prep_result+"$func_options_prep_result"} - eval func_validate_options \ - ${func_parse_options_result+"$func_parse_options_result"} + _G_rc_options=false - eval func_run_hooks func_options \ - ${func_validate_options_result+"$func_validate_options_result"} + for my_func in options_prep parse_options validate_options options_finish + do + if eval func_$my_func '${1+"$@"}'; then + eval _G_res_var='$'"func_${my_func}_result" + eval set dummy "$_G_res_var" ; shift + _G_rc_options=: + fi + done - # save modified positional parameters for caller - func_options_result=$func_run_hooks_result + # Save modified positional parameters for caller. As a top-level + # options-parser function we always need to set the 'func_options_result' + # variable (regardless the $_G_rc_options value). + if $_G_rc_options; then + func_options_result=$_G_res_var + else + func_quote_for_eval ${1+"$@"} + func_options_result=$func_quote_for_eval_result + fi + + $_G_rc_options
View file
libaacs-0.9.0.tar.bz2/build-aux/missing -> libaacs-0.10.0.tar.bz2/build-aux/missing
Changed
@@ -1,9 +1,9 @@ #! /bin/sh # Common wrapper for a few potentially missing GNU programs. -scriptversion=2013-10-28.13; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <https://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -101,9 +101,9 @@ exit $st fi -perl_URL=http://www.perl.org/ -flex_URL=http://flex.sourceforge.net/ -gnu_software_URL=http://www.gnu.org/software +perl_URL=https://www.perl.org/ +flex_URL=https://github.com/westes/flex +gnu_software_URL=https://www.gnu.org/software program_details () { @@ -207,9 +207,9 @@ exit $st # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End:
View file
libaacs-0.9.0.tar.bz2/build-aux/ylwrap -> libaacs-0.10.0.tar.bz2/build-aux/ylwrap
Changed
@@ -1,9 +1,9 @@ #! /bin/sh # ylwrap - wrapper for lex/yacc invocations. -scriptversion=2013-01-12.17; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # Written by Tom Tromey <tromey@cygnus.com>. # @@ -18,7 +18,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <https://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -239,9 +239,9 @@ # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End:
View file
libaacs-0.9.0.tar.bz2/configure -> libaacs-0.10.0.tar.bz2/configure
Changed
@@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for libaacs 0.9.0. +# Generated by GNU Autoconf 2.69 for libaacs 0.10.0. # # Report bugs to <http://www.videolan.org/developers/libaacs.html>. # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='libaacs' PACKAGE_TARNAME='libaacs' -PACKAGE_VERSION='0.9.0' -PACKAGE_STRING='libaacs 0.9.0' +PACKAGE_VERSION='0.10.0' +PACKAGE_STRING='libaacs 0.10.0' PACKAGE_BUGREPORT='http://www.videolan.org/developers/libaacs.html' PACKAGE_URL='' @@ -684,7 +684,6 @@ AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE -am__quote am__include DEPDIR OBJEXT @@ -778,7 +777,8 @@ PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR -SHELL' +SHELL +am__quote' ac_subst_files='' ac_user_opts=' enable_option_checking @@ -1363,7 +1363,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libaacs 0.9.0 to adapt to many kinds of systems. +\`configure' configures libaacs 0.10.0 to adapt to many kinds of systems. Usage: $0 OPTION... VAR=VALUE... @@ -1435,7 +1435,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libaacs 0.9.0:";; + short | recursive ) echo "Configuration of libaacs 0.10.0:";; esac cat <<\_ACEOF @@ -1565,7 +1565,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libaacs configure 0.9.0 +libaacs configure 0.10.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2037,7 +2037,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libaacs $as_me 0.9.0, which was +It was created by libaacs $as_me 0.10.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2526,7 +2526,7 @@ NONENONEs,x,x, && program_prefix=${target_alias}- -am__api_version='1.15' +am__api_version='1.16' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or @@ -3012,7 +3012,7 @@ # Define the identity of the package. PACKAGE='libaacs' - VERSION='0.9.0' + VERSION='0.10.0' cat >>confdefs.h <<_ACEOF @@ -3042,8 +3042,8 @@ # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: -# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> -# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> +# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> +# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> mkdir_p='$(MKDIR_P)' # We need awk for the "check" target (and possibly the TAP driver). The @@ -3210,7 +3210,7 @@ Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: <http://www.gnu.org/software/coreutils/>. +that behaves properly: <https://www.gnu.org/software/coreutils/>. If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM @@ -4218,45 +4218,45 @@ ac_config_commands="$ac_config_commands depfiles" - -am_make=${MAKE-make} -cat > confinc << 'END' +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 +$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; } +cat > confinc.mk << 'END' am__doit: - @echo this is the am__doit target + @echo this is the am__doit target >confinc.out .PHONY: am__doit END -# If we don't find an include directive, just comment out the code. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 -$as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 + (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + case $?:`cat confinc.out 2>/dev/null` in #( + '0:this is the am__doit target') : + case $s in #( + BSD) : + am__include='.include' am__quote='"' ;; #( + *) : + am__include='include' am__quote='' ;; +esac ;; #( + *) : ;; - esac -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 -$as_echo "$_am_result" >&6; } -rm -f confinc confmf +esac + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 +$as_echo "${_am_result}" >&6; } # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : @@ -6508,11 +6508,8 @@ test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 - (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s "$nlist"; then + $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&5
View file
libaacs-0.9.0.tar.bz2/configure.ac -> libaacs-0.10.0.tar.bz2/configure.ac
Changed
@@ -1,6 +1,6 @@ dnl library version number m4_define(aacs_major, 0) -m4_define(aacs_minor, 9) +m4_define(aacs_minor, 10) m4_define(aacs_micro, 0) m4_define(aacs_version,aacs_major.aacs_minor.aacs_micro) @@ -14,8 +14,8 @@ dnl dnl Library file name will be libaacs.(current-age).age.revision -m4_define(lt_current, 6) -m4_define(lt_age, 6) +m4_define(lt_current, 7) +m4_define(lt_age, 7) m4_define(lt_revision, 0) dnl initilization
View file
libaacs-0.9.0.tar.bz2/m4/libtool.m4 -> libaacs-0.10.0.tar.bz2/m4/libtool.m4
Changed
@@ -4063,7 +4063,8 @@ if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm - if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then + $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&AS_MESSAGE_LOG_FD + if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&AS_MESSAGE_LOG_FD && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" @@ -4703,6 +4704,12 @@ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; + # flang / f18. f95 an alias for gfortran or flang on Debian + flang* | f18* | f95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) @@ -6438,7 +6445,7 @@ # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else GXX=no @@ -6813,7 +6820,7 @@ # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then @@ -6878,7 +6885,7 @@ # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then @@ -7217,7 +7224,7 @@ # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else # FIXME: insert proper C++ library support @@ -7301,7 +7308,7 @@ # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else # g++ 2.7 appears to require '-G' NOT '-shared' on this # platform. @@ -7312,7 +7319,7 @@ # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir'
View file
libaacs-0.9.0.tar.bz2/src/examples/aacs_info.c -> libaacs-0.10.0.tar.bz2/src/examples/aacs_info.c
Changed
@@ -41,29 +41,6 @@ return str; } -static const char *_error_str(int error_code) -{ - switch (error_code) { - case AACS_SUCCESS: - return "No errors"; - case AACS_ERROR_CORRUPTED_DISC: - return "Corrupted BluRay disc"; - case AACS_ERROR_NO_CONFIG: - return "Missing configuration file(s)"; - case AACS_ERROR_NO_PK: - return "No matching processing key in configuration file(s)"; - case AACS_ERROR_NO_CERT: - return "No valid certificates in configuration file(s)"; - case AACS_ERROR_CERT_REVOKED: - return "All available certificates have been revoked"; - case AACS_ERROR_MMC_OPEN: - return "MMC open failed"; - case AACS_ERROR_MMC_FAILURE: - return "MMC authentication failed"; - } - return "Unknown error"; -} - static void _dump_rl(const char *type, AACS_RL_ENTRY *rl, int num_entries, int mkb_version) { int ii; @@ -107,7 +84,7 @@ error_code = aacs_open_device(aacs, argv1, argc > 2 ? argv2 : NULL); if (error_code) { - fprintf(stderr, "libaacs open failed: %s\n", _error_str(error_code)); + fprintf(stderr, "libaacs open failed: %s\n", aacs_error_str(error_code)); } else { printf("libaacs open succeed.\n"); }
View file
libaacs-0.9.0.tar.bz2/src/file/keydbcfg-parser.y -> libaacs-0.10.0.tar.bz2/src/file/keydbcfg-parser.y
Changed
@@ -286,6 +286,7 @@ if (!cf->list) { celist = cf->list = new_title_entry_list(); } else { + for (; celist->next; celist = celist->next) ; celist->next = new_title_entry_list(); celist = celist->next; }
View file
libaacs-0.9.0.tar.bz2/src/file/mmc_device_darwin.c -> libaacs-0.10.0.tar.bz2/src/file/mmc_device_darwin.c
Changed
@@ -32,9 +32,8 @@ #include <stdlib.h> #include <string.h> -#include <Carbon/Carbon.h> - #include <IOKit/IOKitLib.h> +#include <IOKit/IOBSD.h> #include <IOKit/IOCFPlugIn.h> #include <DiskArbitration/DiskArbitration.h> @@ -71,18 +70,28 @@ /* * */ +enum disk_state_e { + disk_mounted, + disk_unmounted, + disk_appeared, + disk_mounting +}; struct mmcdev { + /* Interfaces required for low-level device communication */ + IOCFPlugInInterface **plugInInterface; MMCDeviceInterface **mmcInterface; SCSITaskDeviceInterface **taskInterface; /* device short name (ie disk1) */ - char bsd_name128; + char bsd_nameMNAMELEN; /* for mounting/unmounting the disc */ DADiskRef disk; DASessionRef session; - bool is_mounted; + enum disk_state_e disk_state; + dispatch_semaphore_t sync_sem; + dispatch_queue_t background_queue; }; int device_send_cmd(MMCDEV *mmc, const uint8_t *cmd, uint8_t *buf, size_t tx, size_t rx) @@ -100,7 +109,7 @@ } do { - task = (*mmc->taskInterface)->CreateSCSITask (mmc->taskInterface); + task = (*mmc->taskInterface)->CreateSCSITask(mmc->taskInterface); if (NULL == task) { BD_DEBUG(DBG_MMC, "Could not create SCSI Task\n"); break; @@ -116,27 +125,30 @@ direction = kSCSIDataTransfer_NoDataTransfer; } - rc = (*task)->SetCommandDescriptorBlock (task, cmd, 16); + SCSICommandDescriptorBlock cdb = {0}; + memcpy(cdb, cmd, sizeof(cdb)); + + rc = (*task)->SetCommandDescriptorBlock(task, cdb, kSCSICDBSize_16Byte); if (kIOReturnSuccess != rc) { BD_DEBUG(DBG_MMC, "Error setting SCSI command\n"); break; } - rc = (*task)->SetScatterGatherEntries (task, &iov, 1, iov.length, direction); + rc = (*task)->SetScatterGatherEntries(task, &iov, 1, iov.length, direction); if (kIOReturnSuccess != rc) { BD_DEBUG(DBG_MMC, "Error setting SCSI scatter gather entries\n"); break; } - rc = (*task)->SetTimeoutDuration (task, 5000000); + rc = (*task)->SetTimeoutDuration(task, 5000000); if (kIOReturnSuccess != rc) { BD_DEBUG(DBG_MMC, "Error setting SCSI command timeout\n"); break; } - memset (&sense, 0, sizeof (sense)); + memset(&sense, 0, sizeof (sense)); - rc = (*task)->ExecuteTaskSync (task, &sense, &status, &sent); + rc = (*task)->ExecuteTaskSync(task, &sense, &status, &sent); char str512; BD_DEBUG(DBG_MMC, "Send SCSI MMC cmd %s:\n", str_print_hex(str, cmd, 16)); @@ -154,119 +166,103 @@ (unsigned long long) sent, status, sense.VALID_RESPONSE_CODE); } - (*task)->Release (task); + (*task)->Release(task); return 1; } while (0); if (task) { - (*task)->Release (task); + (*task)->Release(task); } return 0; } -static int get_mounted_device_from_path (MMCDEV *mmc, const char *path) { +static int get_mounted_device_from_path(MMCDEV *mmc, const char *path) { struct statfs stat_info; int rc; - rc = statfs (path, &stat_info); + rc = statfs(path, &stat_info); if (0 != rc) { return rc; } - strncpy (mmc->bsd_name, basename (stat_info.f_mntfromname), sizeof (mmc->bsd_name)); + strncpy(mmc->bsd_name, basename (stat_info.f_mntfromname), sizeof (mmc->bsd_name)); return 0; } -static void iokit_unmount_complete (DADiskRef disk, DADissenterRef dissenter, - void *context) { +static void iokit_unmount_complete(DADiskRef disk, DADissenterRef dissenter, + void *context) { (void)disk; /* suppress warning */ + MMCDEV *mmc = context; if (dissenter) { BD_DEBUG(DBG_MMC, "Could not unmount the disc\n"); } else { BD_DEBUG(DBG_MMC, "Disc unmounted\n"); - ((MMCDEV *)context)->is_mounted = 0; + mmc->disk_state = disk_unmounted; } + dispatch_semaphore_signal(mmc->sync_sem); } -static void iokit_mount_complete (DADiskRef disk, DADissenterRef dissenter, - void *context) { +static void iokit_mount_complete(DADiskRef disk, DADissenterRef dissenter, + void *context) { (void) disk; /* suppress warning */ - (void) dissenter; /* suppress warning */ + MMCDEV *mmc = context; - /* the disc mounts despite whether there is a dessenter */ - BD_DEBUG(DBG_MMC, "Disc mounted\n"); - ((MMCDEV *)context)->is_mounted = 1; + if (dissenter) { + DAReturn code = DADissenterGetStatus(dissenter); + BD_DEBUG(DBG_MMC, "Could not mount the disc (%8X)\n", code); + mmc->disk_state = disk_unmounted; + } else { + BD_DEBUG(DBG_MMC, "Disc mounted\n"); + mmc->disk_state = disk_mounted; + } + dispatch_semaphore_signal(mmc->sync_sem); } -static int iokit_unmount (MMCDEV *mmc) { - if (0 == mmc->is_mounted) { +/* Unmount the disk at mmc->disk + * Note: This MAY NOT be called on the background queue, + * as that would lead to a deadlock. + */ +static int iokit_unmount(MMCDEV *mmc) { + if (disk_unmounted == mmc->disk_state) { return 0; /* nothing to do */ } BD_DEBUG(DBG_MMC, "Unmounting disk\n"); - mmc->session = DASessionCreate (kCFAllocatorDefault); - if (NULL == mmc->session) { - BD_DEBUG(DBG_MMC, "Could not create a disc arbitration session\n"); - return -1; - } - - mmc->disk = DADiskCreateFromBSDName (kCFAllocatorDefault, mmc->session, mmc->bsd_name); - if (NULL == mmc->disk) { - BD_DEBUG(DBG_MMC, "Could not create a disc arbitration disc for the device\n"); - CFRelease (mmc->session); - mmc->session = NULL; - return -1; - } - - DAApprovalSessionScheduleWithRunLoop (mmc->session, CFRunLoopGetCurrent (), - kCFRunLoopDefaultMode); + DADiskUnmount(mmc->disk, kDADiskUnmountOptionForce, iokit_unmount_complete, mmc); + dispatch_semaphore_wait(mmc->sync_sem, DISPATCH_TIME_FOREVER); - DADiskUnmount (mmc->disk, kDADiskUnmountOptionForce, iokit_unmount_complete, mmc); - - CFRunLoopRunInMode (kCFRunLoopDefaultMode, 10, true); - - return mmc->is_mounted ? -1 : 0; + return (mmc->disk_state == disk_unmounted) ? 0 : -1; }
View file
libaacs-0.9.0.tar.bz2/src/file/mmc_device_linux.c -> libaacs-0.10.0.tar.bz2/src/file/mmc_device_linux.c
Changed
@@ -109,12 +109,32 @@ return 0; } +static int _open_block_device(const char *path) +{ + struct stat st; + int fd; + + fd = open(path, O_RDONLY | O_NONBLOCK); + if (fd < 0) { + BD_DEBUG(DBG_MMC | DBG_CRIT, "Error opening %s\n", path); + return -1; + } + + if (!fstat(fd, &st) && S_ISBLK(st.st_mode)) { + BD_DEBUG(DBG_MMC, "Opened block device %s\n", path); + return fd; + } + + BD_DEBUG(DBG_MMC, "%s is not a block device\n", path); + close(fd); + return -1; +} + MMCDEV *device_open(const char *path) { char resolved_pathAACS_PATH_MAX; size_t path_len; - struct stat st; - int fd = -1; + int fd; /* resolve path */ if (!aacs_resolve_path(path, resolved_path)) { @@ -128,27 +148,9 @@ resolved_pathpath_len = '\0'; } - if (stat(resolved_path, &st)) { - BD_DEBUG(DBG_MMC | DBG_CRIT, "stat(%s) failed\n", resolved_path); - return NULL; - } - - if (S_ISBLK(st.st_mode)) { - /* opening device */ - BD_DEBUG(DBG_MMC, "Opening block device %s\n", resolved_path); - fd = open(resolved_path, O_RDONLY | O_NONBLOCK); - if (fd < 0) { - BD_DEBUG(DBG_MMC | DBG_CRIT, "Error opening block device %s\n", resolved_path); - } - } else { -#if !defined(HAVE_MNTENT_H) - BD_DEBUG(DBG_MMC | DBG_CRIT, "Only block devices supported\n"); - return NULL; -#endif - } - -#if defined(HAVE_MNTENT_H) + fd = _open_block_device(resolved_path); if (fd < 0) { +#if defined(HAVE_MNTENT_H) /* resolve mount point to block device */ FILE *proc_mounts; if ((proc_mounts = setmntent("/proc/mounts", "r"))) { @@ -178,8 +180,11 @@ } else { BD_DEBUG(DBG_MMC | DBG_CRIT, "Error opening /proc/mounts\n"); } - } +#else + BD_DEBUG(DBG_MMC | DBG_CRIT, "Only block devices supported\n"); + return NULL; #endif + } if (fd >= 0) { MMCDEV *dev = calloc(1, sizeof(MMCDEV));
View file
libaacs-0.9.0.tar.bz2/src/libaacs/aacs.c -> libaacs-0.10.0.tar.bz2/src/libaacs/aacs.c
Changed
@@ -570,7 +570,10 @@ } aacs->mkb_version = mkb_version(mkb); - _update_rl(mkb); + + if (!aacs->no_cache) { + _update_rl(mkb); + } /* try device keys first */ if (dkl) { @@ -654,8 +657,10 @@ BD_DEBUG(DBG_AACS, "Error reading VID!\n"); } else { /* cache vid */ - if (memcmp(aacs->disc_id, empty_key, sizeof(aacs->disc_id))) { - keycache_save("vid", aacs->disc_id, aacs->vid, 16); + if (!aacs->no_cache) { + if (memcmp(aacs->disc_id, empty_key, sizeof(aacs->disc_id))) { + keycache_save("vid", aacs->disc_id, aacs->vid, 16); + } } } return error_code; @@ -728,8 +733,10 @@ BD_DEBUG(DBG_AACS, "Volume unique key: %s\n", str_print_hex(str, vuk, 16)); /* cache vuk */ - if (memcmp(aacs->disc_id, empty_key, sizeof(aacs->disc_id))) { - keycache_save("vuk", aacs->disc_id, vuk, 16); + if (!aacs->no_cache) { + if (memcmp(aacs->disc_id, empty_key, sizeof(aacs->disc_id))) { + keycache_save("vuk", aacs->disc_id, vuk, 16); + } } return AACS_SUCCESS; @@ -1114,6 +1121,26 @@ *micro = AACS_VERSION_MICRO; } +const char *aacs_error_str(int err) +{ + static const char * const str = { + -AACS_SUCCESS = "Success", + -AACS_ERROR_CORRUPTED_DISC = "Corrupt disc", + -AACS_ERROR_NO_CONFIG = "Missing configuration file", + -AACS_ERROR_NO_PK = "No matching processing key", + -AACS_ERROR_NO_CERT = "No valid certificate", + -AACS_ERROR_CERT_REVOKED = "Revoked certificate", + -AACS_ERROR_MMC_OPEN = "Failed opening MMC device", + -AACS_ERROR_MMC_FAILURE = "MMC failure", + -AACS_ERROR_NO_DK = "No matching device key", + }; + err = -err; + if (err < 0 || (size_t)err >= sizeof(str) / sizeof(str0) || !strerr) { + return "Unknown error code"; + } + return strerr; +} + /* aacs_open2() wrapper for backwards compability */ AACS *aacs_open(const char *path, const char *configfile_path) { @@ -1157,6 +1184,12 @@ } return aacs; } +void aacs_set_key_caching(AACS *aacs, int enable) +{ + if (aacs) { + aacs->no_cache = !enable; + } +} void aacs_set_fopen(AACS *aacs, void *handle, AACS_FILE_OPEN2 p) { @@ -1324,7 +1357,9 @@ const uint8_t *aacs_get_bdj_root_cert_hash(AACS *aacs) { if (aacs && aacs->cc) { + if (!aacs->cc->aacs2) { return aacs->cc->bdj_root_cert_hash; + } } return NULL; } @@ -1436,14 +1471,27 @@ if (_rl_verify_signature(data, len)) { *mkbv = version; *num_records = MKINT_BE32((uint8_t*)data + 20); - memmove(data, (uint8_t*)data + 24, len - 24); + uint8_t *p = (uint8_t *)data + 24; + len -= 24; + + if ((int)(len/8) < *num_records) { + *num_records = len/8; + } + + AACS_RL_ENTRY *rl = calloc(*num_records, sizeof(*rl)); - int ii; - AACS_RL_ENTRY *rl = data; - for (ii = 0; ii < *num_records; ii++) { - rlii.range = MKINT_BE16((uint8_t*)&rlii.range); + if (rl) { + int ii; + for (ii = 0; ii < *num_records; ii++) { + rlii.range = MKINT_BE16(p); + p += 2; + memcpy(rlii.id, p, 6); + p += 6; + } } + X_FREE(data); + return rl; } @@ -1453,7 +1501,7 @@ X_FREE(data); } - return data; + return NULL; } AACS_RL_ENTRY *aacs_get_hrl(int *num_records, int *mkbv)
View file
libaacs-0.9.0.tar.bz2/src/libaacs/aacs.h -> libaacs-0.10.0.tar.bz2/src/libaacs/aacs.h
Changed
@@ -40,6 +40,8 @@ #define AACS_ERROR_MMC_FAILURE -7 /* MMC failed */ #define AACS_ERROR_NO_DK -8 /* no matching device key */ +AACS_PUBLIC const char *aacs_error_str(int error); + /** * Opaque type for AACS object */ @@ -68,13 +70,23 @@ AACS_PUBLIC AACS *aacs_init(void); /** + * Disable / enable key caching. + * + * Controls if keys and revocation lists are cached locally. + * Disabling caching disables updating the cache and using data from cache. + * Enabled by default. + */ +AACS_PUBLIC void aacs_set_key_caching(AACS *, int enable); + +/** * Open AACS disc / device. * * If device is not accessible (reading from .iso file or network stream), * path can be NULL. * * If files stored in AACS/ are not accessible from the file system (ex. unmounted disc), - * application should provide file system access for libaacs (see aacs_set_fopen()). + * application should provide file system access for libaacs + * (see filesystem.h:aacs_set_fopen()). * * @param aacs AACS object * @param path path to device or disc root or NULL
View file
libaacs-0.9.0.tar.bz2/src/libaacs/cci.c -> libaacs-0.10.0.tar.bz2/src/libaacs/cci.c
Changed
@@ -56,7 +56,7 @@ }; -static void _bitcpy(void *dst, const const void *src, size_t num_bits) +static void _bitcpy(void *dst, const void *src, size_t num_bits) { size_t bytes = num_bits >> 3; size_t bits = num_bits & 3;
View file
libaacs-0.9.0.tar.bz2/src/libaacs/content_cert.c -> libaacs-0.10.0.tar.bz2/src/libaacs/content_cert.c
Changed
@@ -32,15 +32,36 @@ #include <stdint.h> #include <string.h> +/* + * AACS2 format specific data: + * + * XXX this needs to be verified from other sources / discs. + * + * offset 26: 34 0-bytes, unknown + * offset 60: BD-J root certificate hash, SHA256 (32 bytes) + * offset 92: 34 0-bytes + * offset 126: num CPS units (uint16) + * offset 128: .cci file hashes, SHA256 (32 bytes * num_cps_unit) + */ + CONTENT_CERT *cc_parse(const void *data, size_t len) { const uint8_t *p = data; + size_t signature_size; - if (len < 87) { - BD_DEBUG(DBG_AACS | DBG_CRIT, "Invalid content certificate (length %zd < 87)\n", len); + if (len < 26) { + BD_DEBUG(DBG_AACS | DBG_CRIT, "Invalid content certificate (length %zu < 26)\n", len); return NULL; } - if (p0 != 0) { + + switch (p0) { + case 0x00: /* AACS 1 */ + signature_size = 40; + break; + case 0x10: /* AACS 2 */ + signature_size = 64; + break; + default: BD_DEBUG(DBG_AACS | DBG_CRIT, "Invalid content certificate type 0x%02x\n", p0); return NULL; } @@ -52,9 +73,9 @@ size_t cert_data_len = 26 + length_format_specific + num_digest*8; - if (len < cert_data_len + 40) { - BD_DEBUG(DBG_AACS | DBG_CRIT, "Invalid content certificate (length %zd < %zd)\n", - len, cert_data_len + 40); + if (len < cert_data_len + signature_size) { + BD_DEBUG(DBG_AACS | DBG_CRIT, "Invalid content certificate (length %zu < %zu)\n", + len, cert_data_len + signature_size); return NULL; } @@ -71,14 +92,24 @@ if (c) { c->bus_encryption_enabled_flag = p1 >> 7; memcpy(c->cc_id, p + 14, 6); - memcpy(c->bdj_root_cert_hash, p + 46, 20); + + /* aacs1 and aacs2 format specific data is different. */ + if (p0 == 0) { + if (length_format_specific >= 40) { + memcpy(c->bdj_root_cert_hash, p + 46, 20); + } + } else { + c->aacs2 = 1; + // XXX this needs to be verified from other sources / discs. + if (length_format_specific >= 66) { + memcpy(c->bdj_root_cert_hash, p + 60, 32); + } + } } return c; } void cc_free(CONTENT_CERT **pc) { - if (pc && *pc) { - X_FREE(*pc); - } + X_FREE(*pc); }
View file
libaacs-0.9.0.tar.bz2/src/libaacs/content_cert.h -> libaacs-0.10.0.tar.bz2/src/libaacs/content_cert.h
Changed
@@ -31,7 +31,14 @@ uint8_t bus_encryption_enabled_flag; uint8_t cc_id6; - uint8_t bdj_root_cert_hash20; + + /* + * BD-J root certificte hash + * aacs1: SHA1 (20 bytes) + * aacs2: SHA256 (32 bytes) + */ + uint8_t aacs2; /* 0 - aacs1, 1 - aacs2 */ + uint8_t bdj_root_cert_hash32; };
View file
libaacs-0.9.0.tar.bz2/src/libaacs/crypto.c -> libaacs-0.10.0.tar.bz2/src/libaacs/crypto.c
Changed
@@ -249,15 +249,37 @@ * build S-expressions */ +static const char *_aacs1_curve(void) +{ + return + "(p #00"AACS_EC_p"#)" + "(a #00"AACS_EC_a"#)" + "(b #00"AACS_EC_b"#)" + "(g #04" + AACS_EC_G_x + AACS_EC_G_y + "#)" + "(n #00"AACS_EC_n"#)"; +} + +static const char *_aacs2_curve(void) +{ + return "(curve \"NIST P-256\")"; +} + static gcry_error_t _aacs_sexp_key(gcry_sexp_t *p_sexp_key, const uint8_t *q_x, const uint8_t *q_y, - const uint8_t *priv_key) + const uint8_t *priv_key, + const char *curve, + size_t key_len) { gcry_mpi_t mpi_d = NULL; - unsigned char Q41; + unsigned char Q65; char str_Qsizeof(Q) * 2 + 1; gcry_error_t err; + BD_ASSERT (key_len == 20 || key_len == 32); + /* Assign MPI values for ECDSA parameters Q and d. * Values are: * Q.x = c12..c31 @@ -267,17 +289,17 @@ * Note: The MPI values for Q are in the form "<format>||Q.x||Q.y". */ memcpy(&Q0, "\x04", 1); // format - memcpy(&Q1, q_x, 20); // Q.x - memcpy(&Q21, q_y, 20); // Q.y + memcpy(&Q1, q_x, key_len); // Q.x + memcpy(&Q1 + key_len, q_y, key_len); // Q.y if (priv_key) { - gcry_mpi_scan(&mpi_d, GCRYMPI_FMT_USG, priv_key, 20, NULL); + gcry_mpi_scan(&mpi_d, GCRYMPI_FMT_USG, priv_key, key_len, NULL); } /* Show the values of the MPIs Q.x, Q.y, and d when debugging */ if (GCRYPT_DEBUG) { gcry_mpi_t mpi_Q_x, mpi_Q_y; - gcry_mpi_scan(&mpi_Q_x, GCRYMPI_FMT_USG, q_x, 20, NULL); - gcry_mpi_scan(&mpi_Q_y, GCRYMPI_FMT_USG, q_y, 20, NULL); + gcry_mpi_scan(&mpi_Q_x, GCRYMPI_FMT_USG, q_x, key_len, NULL); + gcry_mpi_scan(&mpi_Q_y, GCRYMPI_FMT_USG, q_y, key_len, NULL); gcry_mpi_dump(mpi_Q_x); printf("\n"); gcry_mpi_dump(mpi_Q_y); @@ -303,22 +325,16 @@ /* Points are currently only supported in standard format, so get a * hexstring out of Q. */ - hex_array_to_hexstring(str_Q, Q, sizeof(Q)); + hex_array_to_hexstring(str_Q, Q, 1 + 2*key_len); char *strfmt = str_printf( "(%s" "(ecdsa" - "(p #00"AACS_EC_p"#)" - "(a #00"AACS_EC_a"#)" - "(b #00"AACS_EC_b"#)" - "(g #04" - AACS_EC_G_x - AACS_EC_G_y - "#)" - "(n #00"AACS_EC_n"#)" + "%s" "(q #%s#)" "%s))", mpi_d ? "private-key" : "public-key", + curve, str_Q, mpi_d ? "(d %m)" : "" ); @@ -348,15 +364,29 @@ return err; } -static gcry_error_t _aacs_sexp_sha1(gcry_sexp_t *p_sexp_data, - const uint8_t *block, uint32_t len) +static gcry_error_t _aacs_sexp_hash(gcry_sexp_t *p_sexp_data, + const uint8_t *block, uint32_t len, + enum gcry_md_algos hash_type) { gcry_mpi_t mpi_md = NULL; - uint8_t md20; + uint8_t md32; gcry_error_t err; + size_t hash_size; + + switch (hash_type) { + case GCRY_MD_SHA1: + hash_size = 20; + break; + case GCRY_MD_SHA256: + hash_size = 32; + break; + default: + BD_ASSERT_UNREACHABLE ("unsupported hash algorithm"); + return GPG_ERR_UNKNOWN_ALGORITHM; + } - gcry_md_hash_buffer(GCRY_MD_SHA1, md, block, len); - gcry_mpi_scan(&mpi_md, GCRYMPI_FMT_USG, md, sizeof(md), NULL); + gcry_md_hash_buffer(hash_type, md, block, len); + gcry_mpi_scan(&mpi_md, GCRYMPI_FMT_USG, md, hash_size, NULL); /* Dump information about the md MPI when debugging */ if (GCRYPT_DEBUG) { @@ -396,14 +426,15 @@ } static gcry_error_t _aacs_sexp_signature(gcry_sexp_t *p_sexp_sign, - const uint8_t *signature) + const uint8_t *signature, + size_t key_len) { gcry_mpi_t mpi_r = NULL; gcry_mpi_t mpi_s = NULL; gcry_error_t err; - gcry_mpi_scan(&mpi_r, GCRYMPI_FMT_USG, signature, 20, NULL); - gcry_mpi_scan(&mpi_s, GCRYMPI_FMT_USG, signature + 20, 20, NULL); + gcry_mpi_scan(&mpi_r, GCRYMPI_FMT_USG, signature, key_len, NULL); + gcry_mpi_scan(&mpi_s, GCRYMPI_FMT_USG, signature + key_len, key_len, NULL); /* Dump information about the md MPI when debugging */ if (GCRYPT_DEBUG) { @@ -447,7 +478,7 @@ gcry_error_t err; GCRY_VERIFY("_aacs_sexp_key", - _aacs_sexp_key(&sexp_key, cert + 12, cert + 32, priv_key)); + _aacs_sexp_key(&sexp_key, cert + 12, cert + 32, priv_key, _aacs1_curve(), 20)); /* Calculate the sha1 hash from the nonce and host key point and covert * the hash into an MPI. @@ -455,8 +486,8 @@ memcpy(&block0, nonce, 20); memcpy(&block20, point, 40); - GCRY_VERIFY("_aacs_sexp_sha1", - _aacs_sexp_sha1(&sexp_data, block, sizeof(block))); + GCRY_VERIFY("_aacs_sexp_hash", + _aacs_sexp_hash(&sexp_data, block, sizeof(block), GCRY_MD_SHA1)); /* Sign the hash with the ECDSA key. The resulting s-expression should be * in the form: @@ -486,8 +517,17 @@ /* Finally concatenate 'r' and 's' to get the ECDSA signature */ mpi_r = gcry_sexp_nth_mpi (sexp_r, 1, GCRYMPI_FMT_USG); mpi_s = gcry_sexp_nth_mpi (sexp_s, 1, GCRYMPI_FMT_USG); - gcry_mpi_print (GCRYMPI_FMT_USG, signature, 20, NULL, mpi_r); - gcry_mpi_print (GCRYMPI_FMT_USG, signature + 20, 20, NULL, mpi_s); + size_t n; + gcry_mpi_print (GCRYMPI_FMT_USG, signature, 20, &n, mpi_r); + if (n < 20) { + memmove (signature + 20 - n, signature, n); + memset (signature, 0, 20 - n); + } + gcry_mpi_print (GCRYMPI_FMT_USG, signature + 20, 20, &n, mpi_s); + if (n < 20) { + memmove (signature + 40 - n, signature + 20, n); + memset (signature + 20, 0, 20 - n); + } error: @@ -501,7 +541,7 @@ gcry_mpi_release(mpi_s); } -static int _aacs_verify(const uint8_t *signature, +static int _aacs_verify(const uint8_t *signature, enum gcry_md_algos hash_type, const uint8_t *q_x, const uint8_t *q_y, const uint8_t *data, uint32_t len) { @@ -509,15 +549,31 @@ gcry_sexp_t sexp_sig = NULL; gcry_sexp_t sexp_data = NULL; gcry_error_t err; + const char *curve; + size_t key_len; + + switch (hash_type) {
View file
libaacs-0.9.0.tar.bz2/src/libaacs/crypto.h -> libaacs-0.10.0.tar.bz2/src/libaacs/crypto.h
Changed
@@ -39,7 +39,6 @@ BD_PRIVATE int crypto_aacs_verify(const uint8_t *cert, const uint8_t *signature, const uint8_t *data, uint32_t len); BD_PRIVATE int crypto_aacs_verify_aacsla(const uint8_t *signature, const uint8_t *data, uint32_t len); BD_PRIVATE int crypto_aacs_verify_aacscc(const uint8_t *signature, const uint8_t *data, uint32_t len); -BD_PRIVATE int crypto_aacs_verify_cert(const uint8_t *cert); BD_PRIVATE int crypto_aacs_verify_host_cert(const uint8_t *cert); BD_PRIVATE int crypto_aacs_verify_drive_cert(const uint8_t *cert);
View file
libaacs-0.9.0.tar.bz2/src/libaacs/mmc.c -> libaacs-0.10.0.tar.bz2/src/libaacs/mmc.c
Changed
@@ -48,6 +48,7 @@ uint8_t drive_cert92; uint8_t read_drive_cert; + uint8_t aacs_version; }; /* @@ -225,17 +226,17 @@ if (_mmc_get_configuration(mmc, 0x010d, buf, 16)) { uint16_t feature = MKINT_BE16(buf+8); if (feature == 0x010d) { + mmc->read_drive_cert = !!(buf4+8 & 0x10); + mmc->aacs_version = buf7+8; BD_DEBUG(DBG_MMC, "AACS feature descriptor:\n"); - BD_DEBUG(DBG_MMC, " AACS version: %d\n", buf7+8); + BD_DEBUG(DBG_MMC, " AACS version: %d\n", mmc->aacs_version); BD_DEBUG(DBG_MMC, " AACS active: %d\n", buf2+8 & 1); BD_DEBUG(DBG_MMC, " Binding Nonce generation support: %d\n", buf4+8 & 1); BD_DEBUG(DBG_MMC, " Binding Nonce block count: %d\n", buf5+8); BD_DEBUG(DBG_MMC, " Bus encryption support: %d\n", !!(buf4+8 & 2)); - BD_DEBUG(DBG_MMC, " Read drive certificate: %d\n", !!(buf4+8 & 0x10)); + BD_DEBUG(DBG_MMC, " Read drive certificate: %d\n", mmc->read_drive_cert); BD_DEBUG(DBG_MMC, " AGID count: %d\n", buf6+8 & 0xf); - mmc->read_drive_cert = !!(buf4+8 & 0x10); - return buf2+8 & 1; } BD_DEBUG(DBG_MMC, "incorrect feature ID %04x\n", feature); @@ -389,6 +390,14 @@ #endif } + if (mmc->aacs_version > 1) { + BD_DEBUG(DBG_MMC | DBG_CRIT, "WARNING: unsupported AACS2 drive detected.\n"); +#if 0 + mmc_close (mmc); + return NULL; +#endif + } + if (mmc->read_drive_cert) { mmc_read_drive_cert(mmc, mmc->drive_cert); } @@ -440,11 +449,13 @@ // send host cert + nonce if (!_mmc_send_host_cert(mmc, agid, mmc->host_nonce, host_cert)) { + str_print_hex(str, host_cert + 4, 6); if ((mmc->drive_cert1 & 0x01) && !(host_cert1 & 0x01)) { BD_DEBUG(DBG_MMC | DBG_CRIT, "Certificate (id 0x%s) can not be used with bus encryption capable drive\n", - str_print_hex(str, host_cert + 4, 6)); + str); } else { - BD_DEBUG(DBG_MMC | DBG_CRIT, "Host key / Certificate has been revoked by your drive ?\n"); + BD_DEBUG(DBG_MMC | DBG_CRIT, "Host key / Certificate (id 0x%s) has been revoked by your drive ?\n", + str); } return MMC_ERROR_CERT_REVOKED; }
View file
libaacs-0.9.0.tar.bz2/src/util/attributes.h -> libaacs-0.10.0.tar.bz2/src/util/attributes.h
Changed
@@ -58,4 +58,10 @@ # define BD_UNLIKELY(x) __builtin_expect((x),0) #endif +#if defined(__GNUC__) && __GNUC__ > 3 +# define BD_USED __attribute__((warn_unused_result)) +#else +# define BD_USED +#endif + #endif /* LIBAACS_ATTRIBUTES_H_ */
View file
libaacs-0.9.0.tar.bz2/src/util/macro.h -> libaacs-0.10.0.tar.bz2/src/util/macro.h
Changed
@@ -32,4 +32,14 @@ #define BD_MAX_SSIZE ((int64_t)(((size_t)-1)>>1)) +# define BD_ASSERT(p) \ + do { \ + if (!(p)) { \ + BD_DEBUG(DBG_CRIT, "assertion failed: '%s'\n", #p); \ + } \ + } while (0) +# define BD_ASSERT_UNREACHABLE(m) \ + BD_DEBUG(DBG_CRIT, "assertion failed: '%s'\n", m) + + #endif /* MACRO_H_ */
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.