Browse Source

New upstream version 0.9.4

tags/upstream/0.9.4^0
Laurent Bigonville 2 years ago
parent
commit
2992717f22
89 changed files with 998 additions and 433 deletions
  1. +1
    -1
      INSTALL
  2. +4
    -4
      Makefile.in
  3. +8
    -0
      README
  4. +23
    -23
      aclocal.m4
  5. +6
    -5
      build-tools/compile
  6. +27
    -13
      build-tools/config.guess
  7. +21
    -8
      build-tools/config.sub
  8. +4
    -4
      build-tools/depcomp
  9. +2
    -2
      build-tools/install-sh
  10. +3
    -1
      build-tools/ltmain.sh
  11. +4
    -4
      build-tools/missing
  12. +12
    -11
      configure
  13. +3
    -2
      configure.ac
  14. +2
    -2
      docs/Makefile.in
  15. +1
    -1
      docs/plymouth1.xml
  16. +1
    -1
      docs/plymouthd.xml
  17. +2
    -2
      images/Makefile.in
  18. +2
    -2
      scripts/Makefile.in
  19. +20
    -10
      scripts/plymouth-populate-initrd.in
  20. +17
    -17
      scripts/plymouth-set-default-theme.in
  21. +2
    -2
      src/Makefile.in
  22. +2
    -2
      src/client/Makefile.in
  23. +3
    -33
      src/client/plymouth.c
  24. +2
    -2
      src/libply-splash-core/Makefile.in
  25. +9
    -1
      src/libply-splash-core/ply-boot-splash.c
  26. +1
    -0
      src/libply-splash-core/ply-boot-splash.h
  27. +99
    -34
      src/libply-splash-core/ply-device-manager.c
  28. +4
    -1
      src/libply-splash-core/ply-device-manager.h
  29. +103
    -8
      src/libply-splash-core/ply-pixel-buffer.c
  30. +12
    -0
      src/libply-splash-core/ply-pixel-buffer.h
  31. +2
    -1
      src/libply-splash-core/ply-renderer.c
  32. +1
    -0
      src/libply-splash-core/ply-terminal.c
  33. +2
    -2
      src/libply-splash-graphics/Makefile.in
  34. +10
    -1
      src/libply-splash-graphics/ply-throbber.c
  35. +2
    -2
      src/libply/Makefile.in
  36. +3
    -1
      src/libply/ply-event-loop.c
  37. +0
    -1
      src/libply/ply-logger.c
  38. +5
    -0
      src/libply/ply-rectangle.c
  39. +94
    -0
      src/libply/ply-utils.c
  40. +4
    -0
      src/libply/ply-utils.h
  41. +77
    -137
      src/main.c
  42. +2
    -2
      src/plugins/Makefile.in
  43. +2
    -2
      src/plugins/controls/Makefile.in
  44. +2
    -2
      src/plugins/controls/label/Makefile.in
  45. +2
    -2
      src/plugins/renderers/Makefile.in
  46. +2
    -2
      src/plugins/renderers/drm/Makefile.in
  47. +236
    -19
      src/plugins/renderers/drm/plugin.c
  48. +2
    -2
      src/plugins/renderers/frame-buffer/Makefile.in
  49. +2
    -2
      src/plugins/renderers/frame-buffer/plugin.c
  50. +2
    -2
      src/plugins/renderers/x11/Makefile.in
  51. +5
    -5
      src/plugins/renderers/x11/plugin.c
  52. +2
    -2
      src/plugins/splash/Makefile.in
  53. +2
    -2
      src/plugins/splash/details/Makefile.in
  54. +2
    -2
      src/plugins/splash/fade-throbber/Makefile.in
  55. +2
    -2
      src/plugins/splash/script/Makefile.in
  56. +4
    -1
      src/plugins/splash/script/script-lib-image.c
  57. +5
    -3
      src/plugins/splash/script/script-lib-sprite.c
  58. +55
    -6
      src/plugins/splash/script/script-parse.c
  59. +2
    -2
      src/plugins/splash/space-flares/Makefile.in
  60. +2
    -2
      src/plugins/splash/text/Makefile.in
  61. +2
    -2
      src/plugins/splash/throbgress/Makefile.in
  62. +2
    -2
      src/plugins/splash/tribar/Makefile.in
  63. +2
    -2
      src/plugins/splash/two-step/Makefile.in
  64. +6
    -0
      src/plugins/splash/two-step/plugin.c
  65. +17
    -0
      src/ply-boot-server.c
  66. +2
    -2
      src/upstart-bridge/Makefile.in
  67. +2
    -2
      systemd-units/Makefile.in
  68. +1
    -0
      systemd-units/plymouth-halt.service
  69. +1
    -0
      systemd-units/plymouth-halt.service.in
  70. +1
    -0
      systemd-units/plymouth-kexec.service
  71. +1
    -0
      systemd-units/plymouth-kexec.service.in
  72. +1
    -0
      systemd-units/plymouth-poweroff.service
  73. +1
    -0
      systemd-units/plymouth-poweroff.service.in
  74. +1
    -0
      systemd-units/plymouth-reboot.service
  75. +1
    -0
      systemd-units/plymouth-reboot.service.in
  76. +1
    -0
      systemd-units/plymouth-start.service
  77. +1
    -0
      systemd-units/plymouth-start.service.in
  78. +1
    -0
      systemd-units/systemd-ask-password-plymouth.service
  79. +1
    -0
      systemd-units/systemd-ask-password-plymouth.service.in
  80. +2
    -2
      themes/Makefile.in
  81. +2
    -2
      themes/details/Makefile.in
  82. +2
    -2
      themes/fade-in/Makefile.in
  83. +2
    -2
      themes/glow/Makefile.in
  84. +2
    -2
      themes/script/Makefile.in
  85. +2
    -2
      themes/solar/Makefile.in
  86. +2
    -2
      themes/spinfinity/Makefile.in
  87. +2
    -2
      themes/spinner/Makefile.in
  88. +2
    -2
      themes/text/Makefile.in
  89. +2
    -2
      themes/tribar/Makefile.in

+ 1
- 1
INSTALL View File

@@ -61,7 +61,7 @@ show the splash screen.

To decrypt your root, run

lymouth ask-for-password --command="/sbin/cryptsetup luksOpen -T ..."
plymouth ask-for-password --command="/sbin/cryptsetup luksOpen -T ..."

where the --command is whatever makes sense for you.



+ 4
- 4
Makefile.in View File

@@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15 from Makefile.am.
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# @configure_input@

# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# Copyright (C) 1994-2017 Free Software Foundation, Inc.

# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -168,8 +168,8 @@ am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
$(top_srcdir)/build-tools/missing AUTHORS COPYING ChangeLog \
INSTALL NEWS README TODO build-tools/compile \
build-tools/config.guess build-tools/config.sub \
build-tools/depcomp build-tools/install-sh \
build-tools/ltmain.sh build-tools/missing
build-tools/install-sh build-tools/ltmain.sh \
build-tools/missing
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)


+ 8
- 0
README View File

@@ -41,3 +41,11 @@ something customized for their distribution.
Plymouth isn't done yet. It's still under active development, but is
used in several popular distros already, including Fedora, Mandriva,
Ubuntu and others. See the distributions page for more information.

As with other projects hosted on freedesktop.org, Plymouth follows its
Code of Conduct, based on the Contributor Covenant. Please conduct
yourself in a respectful and civilized manner when using the above
mailing lists, bug trackers, etc:

https://www.freedesktop.org/wiki/CodeOfConduct


+ 23
- 23
aclocal.m4 View File

@@ -1,6 +1,6 @@
# generated automatically by aclocal 1.15 -*- Autoconf -*-
# generated automatically by aclocal 1.15.1 -*- Autoconf -*-

# Copyright (C) 1996-2014 Free Software Foundation, Inc.
# Copyright (C) 1996-2017 Free Software Foundation, Inc.

# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -9396,7 +9396,7 @@ AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"],
[AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])])
])dnl PKG_HAVE_DEFINE_WITH_MODULES

# Copyright (C) 2002-2014 Free Software Foundation, Inc.
# Copyright (C) 2002-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -9411,7 +9411,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
[am__api_version='1.15'
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.15.1], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])

@@ -9427,14 +9427,14 @@ m4_define([_AM_AUTOCONF_VERSION], [])
# 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.15.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-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -9486,7 +9486,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd`

# AM_CONDITIONAL -*- Autoconf -*-

# Copyright (C) 1997-2014 Free Software Foundation, Inc.
# Copyright (C) 1997-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -9517,7 +9517,7 @@ AC_CONFIG_COMMANDS_PRE(
Usually this means the macro was only invoked conditionally.]])
fi])])

# Copyright (C) 1999-2014 Free Software Foundation, Inc.
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -9708,7 +9708,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl

# Generate code to set up dependency tracking. -*- Autoconf -*-

# Copyright (C) 1999-2014 Free Software Foundation, Inc.
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -9784,7 +9784,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],

# Do all the work for Automake. -*- Autoconf -*-

# Copyright (C) 1996-2014 Free Software Foundation, Inc.
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -9981,7 +9981,7 @@ for _am_header in $config_headers :; do
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])

# Copyright (C) 2001-2014 Free Software Foundation, Inc.
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -10002,7 +10002,7 @@ if test x"${install_sh+set}" != xset; then
fi
AC_SUBST([install_sh])])

# Copyright (C) 2003-2014 Free Software Foundation, Inc.
# Copyright (C) 2003-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -10024,7 +10024,7 @@ AC_SUBST([am__leading_dot])])
# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
# From Jim Meyering

# Copyright (C) 1996-2014 Free Software Foundation, Inc.
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -10059,7 +10059,7 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])

# Check to see how 'make' treats includes. -*- Autoconf -*-

# Copyright (C) 2001-2014 Free Software Foundation, Inc.
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -10109,7 +10109,7 @@ rm -f confinc confmf

# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-

# Copyright (C) 1997-2014 Free Software Foundation, Inc.
# Copyright (C) 1997-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -10148,7 +10148,7 @@ fi

# Helper functions for option handling. -*- Autoconf -*-

# Copyright (C) 2001-2014 Free Software Foundation, Inc.
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -10177,7 +10177,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])

# Copyright (C) 1999-2014 Free Software Foundation, Inc.
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -10224,7 +10224,7 @@ AC_LANG_POP([C])])
# For backward compatibility.
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])

# Copyright (C) 2001-2014 Free Software Foundation, Inc.
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -10243,7 +10243,7 @@ AC_DEFUN([AM_RUN_LOG],

# Check to make sure that the build environment is sane. -*- Autoconf -*-

# Copyright (C) 1996-2014 Free Software Foundation, Inc.
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -10324,7 +10324,7 @@ AC_CONFIG_COMMANDS_PRE(
rm -f conftest.file
])

# Copyright (C) 2009-2014 Free Software Foundation, Inc.
# Copyright (C) 2009-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -10384,7 +10384,7 @@ AC_SUBST([AM_BACKSLASH])dnl
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
])

# Copyright (C) 2001-2014 Free Software Foundation, Inc.
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -10412,7 +10412,7 @@ fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])

# Copyright (C) 2006-2014 Free Software Foundation, Inc.
# Copyright (C) 2006-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -10431,7 +10431,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])

# Check how to create a tarball. -*- Autoconf -*-

# Copyright (C) 2004-2014 Free Software Foundation, Inc.
# Copyright (C) 2004-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,


+ 6
- 5
build-tools/compile View File

@@ -1,9 +1,9 @@
#! /bin/sh
#!/bin/sh
# Wrapper for compilers which do not understand '-c -o'.

scriptversion=2012-10-14.11; # UTC
scriptversion=2016-01-11.22; # UTC

# Copyright (C) 1999-2014 Free Software Foundation, Inc.
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
@@ -255,7 +255,8 @@ EOF
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
@@ -342,6 +343,6 @@ exit $ret
# eval: (add-hook 'write-file-hooks '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:

+ 27
- 13
build-tools/config.guess View File

@@ -1,8 +1,8 @@
#! /bin/sh
#!/bin/sh
# Attempt to guess a canonical system name.
# Copyright 1992-2016 Free Software Foundation, Inc.
# Copyright 1992-2017 Free Software Foundation, Inc.

timestamp='2016-10-02'
timestamp='2017-08-08'

# 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
@@ -50,7 +50,7 @@ version="\
GNU config.guess ($timestamp)

Originally written by Per Bothner.
Copyright 1992-2016 Free Software Foundation, Inc.
Copyright 1992-2017 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."
@@ -259,6 +259,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
*:Sortix:*:*)
echo ${UNAME_MACHINE}-unknown-sortix
exit ;;
*:Redox:*:*)
echo ${UNAME_MACHINE}-unknown-redox
exit ;;
alpha:OSF1:*:*)
case $UNAME_RELEASE in
*4.0)
@@ -837,10 +840,11 @@ EOF
UNAME_PROCESSOR=`/usr/bin/uname -p`
case ${UNAME_PROCESSOR} in
amd64)
echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
*)
echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
UNAME_PROCESSOR=x86_64 ;;
i386)
UNAME_PROCESSOR=i586 ;;
esac
echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
exit ;;
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
@@ -1303,14 +1307,21 @@ EOF
if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
case $UNAME_PROCESSOR in
i386) UNAME_PROCESSOR=x86_64 ;;
powerpc) UNAME_PROCESSOR=powerpc64 ;;
esac
fi
# On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_PPC >/dev/null
then
UNAME_PROCESSOR=powerpc
fi
fi
elif test "$UNAME_PROCESSOR" = i386 ; then
# Avoid executing cc on OS X 10.9, as it ships with a stub
@@ -1334,15 +1345,18 @@ EOF
*:QNX:*:4*)
echo i386-pc-qnx
exit ;;
NEO-?:NONSTOP_KERNEL:*:*)
NEO-*:NONSTOP_KERNEL:*:*)
echo neo-tandem-nsk${UNAME_RELEASE}
exit ;;
NSE-*:NONSTOP_KERNEL:*:*)
echo nse-tandem-nsk${UNAME_RELEASE}
exit ;;
NSR-?:NONSTOP_KERNEL:*:*)
NSR-*:NONSTOP_KERNEL:*:*)
echo nsr-tandem-nsk${UNAME_RELEASE}
exit ;;
NSX-*:NONSTOP_KERNEL:*:*)
echo nsx-tandem-nsk${UNAME_RELEASE}
exit ;;
*:NonStop-UX:*:*)
echo mips-compaq-nonstopux
exit ;;
@@ -1418,8 +1432,8 @@ cat >&2 <<EOF
$0: unable to guess system type

This script (version $timestamp), has failed to recognize the
operating system you are using. If your script is old, overwrite
config.guess and config.sub with the latest versions from:
operating system you are using. If your script is old, overwrite *all*
copies of config.guess and config.sub with the latest versions from:

http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
and


+ 21
- 8
build-tools/config.sub View File

@@ -1,8 +1,8 @@
#! /bin/sh
#!/bin/sh
# Configuration validation subroutine script.
# Copyright 1992-2016 Free Software Foundation, Inc.
# Copyright 1992-2017 Free Software Foundation, Inc.

timestamp='2016-09-05'
timestamp='2017-04-02'

# 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
@@ -67,7 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)

Copyright 1992-2016 Free Software Foundation, Inc.
Copyright 1992-2017 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."
@@ -263,7 +263,7 @@ case $basic_machine in
| fido | fr30 | frv | ft32 \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| hexagon \
| i370 | i860 | i960 | ia64 \
| i370 | i860 | i960 | ia16 | ia64 \
| ip2k | iq2000 \
| k1om \
| le32 | le64 \
@@ -301,6 +301,7 @@ case $basic_machine in
| open8 | or1k | or1knd | or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle \
| pru \
| pyramid \
| riscv32 | riscv64 \
| rl78 | rx \
@@ -314,6 +315,7 @@ case $basic_machine in
| ubicom32 \
| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
| visium \
| wasm32 \
| we32k \
| x86 | xc16x | xstormy16 | xtensa \
| z8k | z80)
@@ -387,7 +389,7 @@ case $basic_machine in
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| hexagon-* \
| i*86-* | i860-* | i960-* | ia64-* \
| i*86-* | i860-* | i960-* | ia16-* | ia64-* \
| ip2k-* | iq2000-* \
| k1om-* \
| le32-* | le64-* \
@@ -428,6 +430,7 @@ case $basic_machine in
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
| pru-* \
| pyramid-* \
| riscv32-* | riscv64-* \
| rl78-* | romp-* | rs6000-* | rx-* \
@@ -444,6 +447,7 @@ case $basic_machine in
| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
| vax-* \
| visium-* \
| wasm32-* \
| we32k-* \
| x86-* | x86_64-* | xc16x-* | xps100-* \
| xstormy16-* | xtensa*-* \
@@ -946,6 +950,9 @@ case $basic_machine in
nsr-tandem)
basic_machine=nsr-tandem
;;
nsx-tandem)
basic_machine=nsx-tandem
;;
op50n-* | op60c-*)
basic_machine=hppa1.1-oki
os=-proelf
@@ -1241,6 +1248,9 @@ case $basic_machine in
basic_machine=a29k-wrs
os=-vxworks
;;
wasm32)
basic_machine=wasm32-unknown
;;
w65*)
basic_machine=w65-wdc
os=-none
@@ -1395,7 +1405,7 @@ case $os in
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* | -cegcc* \
| -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
| -linux-newlib* | -linux-musl* | -linux-uclibc* \
@@ -1407,7 +1417,7 @@ case $os in
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
| -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
| -onefs* | -tirtos* | -phoenix*)
| -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
@@ -1636,6 +1646,9 @@ case $basic_machine in
sparc-* | *-sun)
os=-sunos4.1.1
;;
pru-*)
os=-elf
;;
*-be)
os=-beos
;;


+ 4
- 4
build-tools/depcomp View File

@@ -1,9 +1,9 @@
#! /bin/sh
#!/bin/sh
# depcomp - compile a program generating dependencies as side-effects

scriptversion=2013-05-30.07; # UTC
scriptversion=2016-01-11.22; # UTC

# Copyright (C) 1999-2014 Free Software Foundation, Inc.
# Copyright (C) 1999-2017 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
@@ -786,6 +786,6 @@ exit 0
# eval: (add-hook 'write-file-hooks '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:

+ 2
- 2
build-tools/install-sh View File

@@ -1,7 +1,7 @@
#!/bin/sh
# install - install a program, script, or datafile

scriptversion=2013-12-25.23; # UTC
scriptversion=2016-01-11.22; # UTC

# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
@@ -496,6 +496,6 @@ done
# eval: (add-hook 'write-file-hooks '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:

+ 3
- 1
build-tools/ltmain.sh View File

@@ -7272,10 +7272,12 @@ func_mode_link ()
# -tp=* Portland pgcc target processor selection
# --sysroot=* for sysroot support
# -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
# -specs=* GCC specs files
# -stdlib=* select c++ std lib with clang
-64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
-O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*)
-O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
-specs=*)
func_quote_for_eval "$arg"
arg=$func_quote_for_eval_result
func_append compile_command " $arg"


+ 4
- 4
build-tools/missing View File

@@ -1,9 +1,9 @@
#! /bin/sh
#!/bin/sh
# Common wrapper for a few potentially missing GNU programs.

scriptversion=2013-10-28.13; # UTC
scriptversion=2016-01-11.22; # UTC

# Copyright (C) 1996-2014 Free Software Foundation, Inc.
# Copyright (C) 1996-2017 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
@@ -210,6 +210,6 @@ exit $st
# eval: (add-hook 'write-file-hooks '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:

+ 12
- 11
configure View File

@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for plymouth 0.9.3.
# Generated by GNU Autoconf 2.69 for plymouth 0.9.4.
#
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=plymouth>.
#
@@ -591,8 +591,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='plymouth'
PACKAGE_TARNAME='plymouth'
PACKAGE_VERSION='0.9.3'
PACKAGE_STRING='plymouth 0.9.3'
PACKAGE_VERSION='0.9.4'
PACKAGE_STRING='plymouth 0.9.4'
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=plymouth'
PACKAGE_URL=''

@@ -1417,7 +1417,7 @@ if test "$ac_init_help" = "long"; then
# 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 plymouth 0.9.3 to adapt to many kinds of systems.
\`configure' configures plymouth 0.9.4 to adapt to many kinds of systems.

Usage: $0 [OPTION]... [VAR=VALUE]...

@@ -1487,7 +1487,7 @@ fi

if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of plymouth 0.9.3:";;
short | recursive ) echo "Configuration of plymouth 0.9.4:";;
esac
cat <<\_ACEOF

@@ -1514,7 +1514,7 @@ Optional Features:
encryption prompts
--enable-gtk enable building with gtk, disabled there is no x11
renderer
--enable-drm-renderer enable building drm kms support
--enable-drm enable building drm kms support
--enable-documentation build documentation
--enable-tracing enable verbose tracing code
--enable-gdm-transition enable smooth transition to gdm
@@ -1654,7 +1654,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
plymouth configure 0.9.3
plymouth configure 0.9.4
generated by GNU Autoconf 2.69

Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2023,7 +2023,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by plymouth $as_me 0.9.3, which was
It was created by plymouth $as_me 0.9.4, which was
generated by GNU Autoconf 2.69. Invocation command line was

$ $0 $@
@@ -4947,7 +4947,7 @@ fi

# Define the identity of the package.
PACKAGE='plymouth'
VERSION='0.9.3'
VERSION='0.9.4'


cat >>confdefs.h <<_ACEOF
@@ -14295,6 +14295,7 @@ $as_echo "yes" >&6; }
-Wwrite-strings -Wnested-externs -Wpointer-arith \
-Wswitch-enum -Wstrict-aliasing=2 -Winit-self -Wunsafe-loop-optimizations \
-Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result \
-Wno-cast-function-type \
-Wcast-align -Wsign-compare -Wp,-D_FORTIFY_SOURCE=2"
elif test "$GCC" = "yes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
@@ -15185,7 +15186,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by plymouth $as_me 0.9.3, which was
This file was extended by plymouth $as_me 0.9.4, which was
generated by GNU Autoconf 2.69. Invocation command line was

CONFIG_FILES = $CONFIG_FILES
@@ -15251,7 +15252,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
plymouth config.status 0.9.3
plymouth config.status 0.9.4
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"



+ 3
- 2
configure.ac View File

@@ -1,4 +1,4 @@
AC_INIT([plymouth],[0.9.3],[https://bugs.freedesktop.org/enter_bug.cgi?product=plymouth])
AC_INIT([plymouth],[0.9.4],[https://bugs.freedesktop.org/enter_bug.cgi?product=plymouth])
AC_CONFIG_SRCDIR(src/main.c)
AC_CONFIG_HEADER(config.h)
AC_CONFIG_AUX_DIR(build-tools)
@@ -78,7 +78,7 @@ if test x$enable_gtk = xyes; then
AC_SUBST(GTK_LIBS)
fi

AC_ARG_ENABLE(drm, AS_HELP_STRING([--enable-drm-renderer],[enable building drm kms support]),enable_drm_renderer=$enableval,enable_drm_renderer=yes)
AC_ARG_ENABLE(drm, AS_HELP_STRING([--enable-drm],[enable building drm kms support]),enable_drm_renderer=$enableval,enable_drm_renderer=yes)
AM_CONDITIONAL(ENABLE_DRM_RENDERER, [test "$enable_drm_renderer" = yes])

if test x$enable_drm_renderer = xyes; then
@@ -227,6 +227,7 @@ if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then
-Wwrite-strings -Wnested-externs -Wpointer-arith \
-Wswitch-enum -Wstrict-aliasing=2 -Winit-self -Wunsafe-loop-optimizations \
-Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result \
-Wno-cast-function-type \
-Wcast-align -Wsign-compare -Wp,-D_FORTIFY_SOURCE=2"
elif test "$GCC" = "yes"; then
AC_MSG_RESULT(no)


+ 2
- 2
docs/Makefile.in View File

@@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15 from Makefile.am.
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# @configure_input@

# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# Copyright (C) 1994-2017 Free Software Foundation, Inc.

# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,


+ 1
- 1
docs/plymouth1.xml View File

@@ -298,7 +298,7 @@ The following commands are understood:
<variablelist>
<varlistentry>
<term><option>--keys=STRING</option></term>
<listitem><para>Keys to remove sensitivitiy from</para></listitem>
<listitem><para>Keys to remove sensitivity from</para></listitem>
</varlistentry>
</variablelist>
</listitem>


+ 1
- 1
docs/plymouthd.xml View File

@@ -103,7 +103,7 @@ that control its behaviour.

<varlistentry>
<term><option>--tty=STRING</option></term>
<listitem><para>TTY to ues instead of default.</para></listitem>
<listitem><para>TTY to use instead of default.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>


+ 2
- 2
images/Makefile.in View File

@@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15 from Makefile.am.
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# @configure_input@

# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# Copyright (C) 1994-2017 Free Software Foundation, Inc.

# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,


+ 2
- 2
scripts/Makefile.in View File

@@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15 from Makefile.am.
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# @configure_input@

# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# Copyright (C) 1994-2017 Free Software Foundation, Inc.

# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,


+ 20
- 10
scripts/plymouth-populate-initrd.in View File

@@ -168,7 +168,7 @@ rev_lib_symlinks() {
# It handles making symlinks according to how the original library
# is referenced.
inst_library() {
local _src="$1" _dest=${2:-$1} _lib _reallib _symlink
local _src="$1" _dest=${2:-$1} _reallib _symlink
strstr "$1" "/" || return 1
[[ -e $initdir/$_dest ]] && return 0
if [[ -L $_src ]]; then
@@ -336,11 +336,24 @@ inst_any() {
return 1
}

inst_recur() {
for x in "${1%/}"/* ; do
if [[ -d "$x" ]]; then
inst_dir "$x"
inst_recur "$x"
elif [[ -f "$x" ]]; then
inst "$x"
else
break
fi
done
}

function usage() {
local output="/dev/stdout"
local output="/proc/self/fd/1"
local rc=0
if [ "$1" == "error" ]; then
output="/dev/stderr"
output="/proc/self/fd/2"
rc=1
fi

@@ -385,13 +398,13 @@ inst ${PLYMOUTH_POLICYDIR}/plymouthd.defaults $INITRDDIR
inst ${PLYMOUTH_CONFDIR}/plymouthd.conf $INITRDDIR

if [ -z "$PLYMOUTH_THEME_NAME" ]; then
echo "No default plymouth plugin is set" > /dev/stderr
echo "No default plymouth plugin is set" >&2
exit 1
fi

if [ $THEME_OVERRIDE ]; then
conf=$INITRDDIR/${PLYMOUTH_CONFDIR}/plymouthd.conf
echo "modifying plymouthd.conf: Theme=$PLYMOUTH_THEME_NAME" > /dev/stderr
echo "modifying plymouthd.conf: Theme=$PLYMOUTH_THEME_NAME" >&2
# make sure the section and key exist so we can modify them
grep -q "^ *\[Daemon\]" $conf || echo "[Daemon]" >> $conf
grep -q "^ *Theme *=" $conf || echo "Theme=fade-in" >> $conf
@@ -401,7 +414,7 @@ fi
PLYMOUTH_MODULE_NAME=$(grep "ModuleName *= *" ${PLYMOUTH_DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME}/${PLYMOUTH_THEME_NAME}.plymouth | sed 's/ModuleName *= *//')

if [ ! -f ${PLYMOUTH_PLUGIN_PATH}/${PLYMOUTH_MODULE_NAME}.so ]; then
echo "The default plymouth plugin (${PLYMOUTH_MODULE_NAME}) doesn't exist" > /dev/stderr
echo "The default plymouth plugin (${PLYMOUTH_MODULE_NAME}) doesn't exist" >&2
exit 1
fi

@@ -411,10 +424,7 @@ inst ${PLYMOUTH_PLUGIN_PATH}/${PLYMOUTH_MODULE_NAME}.so $INITRDDIR
inst ${PLYMOUTH_PLUGIN_PATH}/renderers/frame-buffer.so $INITRDDIR

if [ -d ${PLYMOUTH_DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME} ]; then
for x in ${PLYMOUTH_DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME}/* ; do
[ ! -f "$x" ] && continue
inst $x $INITRDDIR
done
inst_recur "${PLYMOUTH_DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME}"
fi

if [ -L ${PLYMOUTH_DATADIR}/plymouth/themes/default.plymouth ]; then


+ 17
- 17
scripts/plymouth-set-default-theme.in View File

@@ -84,14 +84,14 @@ while [ $# -gt 0 ]; do

-l|--list)
if [ -n "$THEME_NAME" ]; then
echo "You can only specify --list or a theme name, not both" > /dev/stderr
echo $(usage) > /dev/stderr
echo "You can only specify --list or a theme name, not both" >&2
echo $(usage) >&2
exit 1
fi

if [ $DO_RESET -ne 0 ]; then
echo "You can only specify --reset or --list, not both" > /dev/stderr
echo $(usage) > /dev/stderr
echo "You can only specify --reset or --list, not both" >&2
echo $(usage) >&2
exit 1
fi

@@ -104,14 +104,14 @@ while [ $# -gt 0 ]; do

-r|--reset|default)
if [ -n "$THEME_NAME" ]; then
echo "You can only specify --reset or a theme name, not both" > /dev/stderr
echo $(usage) > /dev/stderr
echo "You can only specify --reset or a theme name, not both" >&2
echo $(usage) >&2
exit 1
fi

if [ $DO_LIST -ne 0 ]; then
echo "You can only specify --reset or --list, not both" > /dev/stderr
echo $(usage) > /dev/stderr
echo "You can only specify --reset or --list, not both" >&2
echo $(usage) >&2
exit 1
fi

@@ -124,20 +124,20 @@ while [ $# -gt 0 ]; do

*)
if [ -n "$THEME_NAME" ]; then
echo "You can only specify one theme at a time" > /dev/stderr
echo $(usage) > /dev/stderr
echo "You can only specify one theme at a time" >&2
echo $(usage) >&2
exit 1
fi

if [ $DO_RESET -ne 0 ]; then
echo "You can only specify --reset or a theme name, not both" > /dev/stderr
echo $(usage) > /dev/stderr
echo "You can only specify --reset or a theme name, not both" >&2
echo $(usage) >&2
exit 1
fi

if [ $DO_LIST -ne 0 ]; then
echo "You can only specify --list or a theme name, not both" > /dev/stderr
echo $(usage) > /dev/stderr
echo "You can only specify --list or a theme name, not both" >&2
echo $(usage) >&2
exit 1
fi

@@ -163,7 +163,7 @@ if [ $DO_RESET -eq 0 ] && [ $DO_INITRD_REBUILD -eq 0 ] && [ -z $THEME_NAME ]; th
fi

if [ `id -u` -ne 0 ]; then
echo "This program must be run as root" > /dev/stderr
echo "This program must be run as root" >&2
exit 1
fi

@@ -174,14 +174,14 @@ if [ $DO_RESET -ne 0 ]; then
fi

if [ ! -e ${PLYMOUTH_DATADIR}/plymouth/themes/${THEME_NAME}/${THEME_NAME}.plymouth ]; then
echo "${PLYMOUTH_DATADIR}/plymouth/themes/${THEME_NAME}/${THEME_NAME}.plymouth does not exist" > /dev/stderr
echo "${PLYMOUTH_DATADIR}/plymouth/themes/${THEME_NAME}/${THEME_NAME}.plymouth does not exist" >&2
exit 1
fi

MODULE_NAME=$(grep "ModuleName *= *" ${PLYMOUTH_DATADIR}/plymouth/themes/${THEME_NAME}/${THEME_NAME}.plymouth | sed 's/ModuleName *= *//')

if [ ! -e ${PLYMOUTH_PLUGIN_PATH}${MODULE_NAME}.so ]; then
echo "${PLYMOUTH_PLUGIN_PATH}${MODULE_NAME}.so does not exist" > /dev/stderr
echo "${PLYMOUTH_PLUGIN_PATH}${MODULE_NAME}.so does not exist" >&2
exit 1
fi



+ 2
- 2
src/Makefile.in View File

@@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15 from Makefile.am.
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# @configure_input@

# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# Copyright (C) 1994-2017 Free Software Foundation, Inc.

# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,


+ 2
- 2
src/client/Makefile.in View File

@@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15 from Makefile.am.
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# @configure_input@

# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# Copyright (C) 1994-2017 Free Software Foundation, Inc.

# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,


+ 3
- 33
src/client/plymouth.c View File

@@ -49,7 +49,6 @@ typedef struct
ply_event_loop_t *loop;
ply_boot_client_t *client;
ply_command_parser_t *command_parser;
char kernel_command_line[PLY_MAX_COMMAND_LINE_SIZE];
} state_t;

typedef struct
@@ -704,31 +703,6 @@ on_quit_request (state_t *state,
on_failure, state);
}

static bool
get_kernel_command_line (state_t *state)
{
int fd;

ply_trace ("opening /proc/cmdline");
fd = open ("/proc/cmdline", O_RDONLY);

if (fd < 0) {
ply_trace ("couldn't open it: %m");
return false;
}

ply_trace ("reading kernel command line");
if (read (fd, state->kernel_command_line, sizeof(state->kernel_command_line) - 1) < 0) {
ply_trace ("couldn't read it: %m");
close (fd);
return false;
}

ply_trace ("Kernel command line is: '%s'", state->kernel_command_line);
close (fd);
return true;
}

static void
on_update_root_fs_request (state_t *state,
const char *command)
@@ -897,7 +871,7 @@ main (int argc,
"get-splash-plugin-path", "Get directory where splash plugins are installed", PLY_COMMAND_OPTION_TYPE_FLAG,
"newroot", "Tell boot daemon that new root filesystem is mounted", PLY_COMMAND_OPTION_TYPE_STRING,
"quit", "Tell boot daemon to quit", PLY_COMMAND_OPTION_TYPE_FLAG,
"ping", "Check of boot daemon is running", PLY_COMMAND_OPTION_TYPE_FLAG,
"ping", "Check if boot daemon is running", PLY_COMMAND_OPTION_TYPE_FLAG,
"has-active-vt", "Check if boot daemon has an active vt", PLY_COMMAND_OPTION_TYPE_FLAG,
"sysinit", "Tell boot daemon root filesystem is mounted read-write", PLY_COMMAND_OPTION_TYPE_FLAG,
"show-splash", "Show splash screen", PLY_COMMAND_OPTION_TYPE_FLAG,
@@ -1099,12 +1073,8 @@ main (int argc,
return 0;
}

if (get_kernel_command_line (&state)) {
if ((strstr (state.kernel_command_line, "plymouth.debug") != NULL ||
strstr (state.kernel_command_line, "plymouth:debug") != NULL)
&& !ply_is_tracing ())
ply_toggle_tracing ();
}
if (ply_kernel_command_line_has_argument ("plymouth.debug") && !ply_is_tracing ())
ply_toggle_tracing ();

if (should_be_verbose && !ply_is_tracing ())
ply_toggle_tracing ();


+ 2
- 2
src/libply-splash-core/Makefile.in View File

@@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15 from Makefile.am.
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# @configure_input@

# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# Copyright (C) 1994-2017 Free Software Foundation, Inc.

# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,


+ 9
- 1
src/libply-splash-core/ply-boot-splash.c View File

@@ -208,8 +208,10 @@ ply_boot_splash_load (ply_boot_splash_t *splash)

key_file = ply_key_file_new (splash->theme_path);

if (!ply_key_file_load (key_file))
if (!ply_key_file_load (key_file)) {
ply_key_file_free (key_file);
return false;
}

module_name = ply_key_file_get_value (key_file, "Plymouth Theme", "ModuleName");

@@ -695,4 +697,10 @@ ply_boot_splash_become_idle (ply_boot_splash_t *splash,
splash->plugin_interface->become_idle (splash->plugin, splash->idle_trigger);
}

bool
ply_boot_splash_uses_pixel_displays (ply_boot_splash_t *splash)
{
return splash->plugin_interface->add_pixel_display != NULL;
}

/* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */

+ 1
- 0
src/libply-splash-core/ply-boot-splash.h View File

@@ -89,6 +89,7 @@ void ply_boot_splash_attach_progress (ply_boot_splash_t *splash,
void ply_boot_splash_become_idle (ply_boot_splash_t *splash,
ply_boot_splash_on_idle_handler_t idle_handler,
void *user_data);
bool ply_boot_splash_uses_pixel_displays (ply_boot_splash_t *splash);


#endif


+ 99
- 34
src/libply-splash-core/ply-device-manager.c View File

@@ -47,7 +47,7 @@
static void create_devices_from_udev (ply_device_manager_t *manager);
#endif

static void create_devices_for_terminal_and_renderer_type (ply_device_manager_t *manager,
static bool create_devices_for_terminal_and_renderer_type (ply_device_manager_t *manager,
const char *device_path,
ply_terminal_t *terminal,
ply_renderer_type_t renderer_type);
@@ -63,6 +63,7 @@ struct _ply_device_manager
ply_list_t *pixel_displays;
struct udev *udev_context;
struct udev_monitor *udev_monitor;
ply_fd_watch_t *fd_watch;

ply_keyboard_added_handler_t keyboard_added_handler;
ply_keyboard_removed_handler_t keyboard_removed_handler;
@@ -77,6 +78,9 @@ struct _ply_device_manager
uint32_t serial_consoles_detected : 1;
uint32_t renderers_activated : 1;
uint32_t keyboards_activated : 1;

uint32_t paused : 1;
uint32_t device_timeout_elapsed : 1;
};

static void
@@ -134,13 +138,13 @@ static void
free_devices_from_device_path (ply_device_manager_t *manager,
const char *device_path)
{
char *key = NULL;
ply_renderer_t *renderer = NULL;
void *key = NULL;
void *renderer = NULL;

ply_hashtable_lookup_full (manager->renderers,
(void *) device_path,
(void **) &key,
(void **) &renderer);
&key,
&renderer);

if (renderer == NULL)
return;
@@ -212,11 +216,12 @@ fb_device_has_drm_device (ply_device_manager_t *manager,
return has_drm_device;
}

static void
static bool
create_devices_for_udev_device (ply_device_manager_t *manager,
struct udev_device *device)
{
const char *device_path;
bool created = false;

device_path = udev_device_get_devnode (device);

@@ -245,12 +250,14 @@ create_devices_for_udev_device (ply_device_manager_t *manager,
terminal = manager->local_console_terminal;
}

create_devices_for_terminal_and_renderer_type (manager,
device_path,
terminal,
renderer_type);
created = create_devices_for_terminal_and_renderer_type (manager,
device_path,
terminal,
renderer_type);
}
}

return created;
}

static void
@@ -310,8 +317,7 @@ create_devices_for_subsystem (ply_device_manager_t *manager,
node = udev_device_get_devnode (device);
if (node != NULL) {
ply_trace ("found node %s", node);
found_device = true;
create_devices_for_udev_device (manager, device);
found_device = create_devices_for_udev_device (manager, device);
}
} else {
ply_trace ("device doesn't have a devices tag");
@@ -373,23 +379,38 @@ watch_for_udev_events (ply_device_manager_t *manager)
assert (manager != NULL);
assert (manager->udev_monitor == NULL);

if (manager->fd_watch != NULL)
return;

ply_trace ("watching for udev graphics device add and remove events");

manager->udev_monitor = udev_monitor_new_from_netlink (manager->udev_context, "udev");
if (manager->udev_monitor == NULL) {
manager->udev_monitor = udev_monitor_new_from_netlink (manager->udev_context, "udev");

udev_monitor_filter_add_match_subsystem_devtype (manager->udev_monitor, SUBSYSTEM_DRM, NULL);
udev_monitor_filter_add_match_subsystem_devtype (manager->udev_monitor, SUBSYSTEM_FRAME_BUFFER, NULL);
udev_monitor_filter_add_match_tag (manager->udev_monitor, "seat");
udev_monitor_enable_receiving (manager->udev_monitor);
udev_monitor_filter_add_match_subsystem_devtype (manager->udev_monitor, SUBSYSTEM_DRM, NULL);
udev_monitor_filter_add_match_subsystem_devtype (manager->udev_monitor, SUBSYSTEM_FRAME_BUFFER, NULL);
udev_monitor_filter_add_match_tag (manager->udev_monitor, "seat");
udev_monitor_enable_receiving (manager->udev_monitor);
}

fd = udev_monitor_get_fd (manager->udev_monitor);
ply_event_loop_watch_fd (manager->loop,
fd,
PLY_EVENT_LOOP_FD_STATUS_HAS_DATA,
(ply_event_handler_t)
on_udev_event,
NULL,
manager);
manager->fd_watch = ply_event_loop_watch_fd (manager->loop,
fd,
PLY_EVENT_LOOP_FD_STATUS_HAS_DATA,
(ply_event_handler_t)
on_udev_event,
NULL,
manager);
}

static void
stop_watching_for_udev_events (ply_device_manager_t *manager)
{
if (manager->fd_watch == NULL)
return;

ply_event_loop_stop_watching_fd (manager->loop, manager->fd_watch);
manager->fd_watch = NULL;
}
#endif

@@ -656,7 +677,7 @@ create_text_displays_for_terminal (ply_device_manager_t *manager,
manager->text_display_added_handler (manager->event_handler_data, display);
}

static void
static bool
create_devices_for_terminal_and_renderer_type (ply_device_manager_t *manager,
const char *device_path,
ply_terminal_t *terminal,
@@ -670,7 +691,7 @@ create_devices_for_terminal_and_renderer_type (ply_device_manager_t *manager,

if (renderer != NULL) {
ply_trace ("ignoring device %s since it's already managed", device_path);
return;
return true;
}

ply_trace ("creating devices for %s (renderer type: %u) (terminal: %s)",
@@ -686,7 +707,7 @@ create_devices_for_terminal_and_renderer_type (ply_device_manager_t *manager,
renderer = NULL;

if (renderer_type != PLY_RENDERER_TYPE_AUTO)
return;
return false;
}

if (renderer != NULL) {
@@ -694,12 +715,12 @@ create_devices_for_terminal_and_renderer_type (ply_device_manager_t *manager,
(void *) ply_renderer_get_device_name (renderer));

if (old_renderer != NULL) {
ply_trace ("ignoring device %s since it's alerady managed",
ply_trace ("ignoring device %s since it's already managed",
ply_renderer_get_device_name (renderer));
ply_renderer_free (renderer);

renderer = NULL;
return;
return true;
}
}
}
@@ -711,7 +732,6 @@ create_devices_for_terminal_and_renderer_type (ply_device_manager_t *manager,
if (manager->keyboard_added_handler != NULL)
manager->keyboard_added_handler (manager->event_handler_data, keyboard);

create_pixel_displays_for_renderer (manager, renderer);
ply_hashtable_insert (manager->renderers, strdup (ply_renderer_get_device_name (renderer)), renderer);
create_pixel_displays_for_renderer (manager, renderer);

@@ -743,6 +763,8 @@ create_devices_for_terminal_and_renderer_type (ply_device_manager_t *manager,
ply_trace ("activating keyboards");
ply_keyboard_watch_for_input (keyboard);
}

return true;
}

static void
@@ -783,12 +805,28 @@ create_devices_from_terminals (ply_device_manager_t *manager)
return false;
}

static void
create_non_graphical_devices (ply_device_manager_t *manager)
{
create_devices_for_terminal_and_renderer_type (manager,
NULL,
manager->local_console_terminal,
PLY_RENDERER_TYPE_NONE);
}

#ifdef HAVE_UDEV
static void
create_devices_from_udev (ply_device_manager_t *manager)
{
bool found_drm_device, found_fb_device;

manager->device_timeout_elapsed = true;

if (manager->paused) {
ply_trace ("create_devices_from_udev timeout elapsed while paused, deferring execution");
return;
}

ply_trace ("Timeout elapsed, looking for devices from udev");

found_drm_device = create_devices_for_subsystem (manager, SUBSYSTEM_DRM);
@@ -798,10 +836,7 @@ create_devices_from_udev (ply_device_manager_t *manager)
return;

ply_trace ("Creating non-graphical devices, since there's no suitable graphics hardware");
create_devices_for_terminal_and_renderer_type (manager,
NULL,
manager->local_console_terminal,
PLY_RENDERER_TYPE_NONE);
create_non_graphical_devices (manager);
}
#endif

@@ -842,6 +877,12 @@ ply_device_manager_watch_devices (ply_device_manager_t *manager,
if (done_with_initial_devices_setup)
return;

if ((manager->flags & PLY_DEVICE_MANAGER_FLAGS_SKIP_RENDERERS)) {
ply_trace ("Creating non-graphical devices, since renderers are being explicitly skipped");
create_non_graphical_devices (manager);
return;
}

if ((manager->flags & PLY_DEVICE_MANAGER_FLAGS_IGNORE_UDEV)) {
ply_trace ("udev support disabled, creating fallback devices");
create_fallback_devices (manager);
@@ -977,3 +1018,27 @@ ply_device_manager_deactivate_keyboards (ply_device_manager_t *manager)

manager->keyboards_activated = false;
}

void
ply_device_manager_pause (ply_device_manager_t *manager)
{
ply_trace ("ply_device_manager_pause() called, stopping watching for udev events");
manager->paused = true;
#ifdef HAVE_UDEV
stop_watching_for_udev_events (manager);
#endif
}

void
ply_device_manager_unpause (ply_device_manager_t *manager)
{
ply_trace ("ply_device_manager_unpause() called, resuming watching for udev events");
manager->paused = false;
#ifdef HAVE_UDEV
if (manager->device_timeout_elapsed) {
ply_trace ("ply_device_manager_unpause(): timeout elapsed while paused, looking for udev devices");
create_devices_from_udev (manager);
}
watch_for_udev_events (manager);
#endif
}

+ 4
- 1
src/libply-splash-core/ply-device-manager.h View File

@@ -31,7 +31,8 @@ typedef enum
{
PLY_DEVICE_MANAGER_FLAGS_NONE = 0,
PLY_DEVICE_MANAGER_FLAGS_IGNORE_SERIAL_CONSOLES = 1 << 0,
PLY_DEVICE_MANAGER_FLAGS_IGNORE_UDEV = 1 << 1
PLY_DEVICE_MANAGER_FLAGS_IGNORE_UDEV = 1 << 1,
PLY_DEVICE_MANAGER_FLAGS_SKIP_RENDERERS = 1 << 2
} ply_device_manager_flags_t;

typedef struct _ply_device_manager ply_device_manager_t;
@@ -54,6 +55,8 @@ void ply_device_manager_watch_devices (ply_device_manager_t *mana
ply_text_display_added_handler_t text_display_added_handler,
ply_text_display_removed_handler_t text_display_removed_handler,
void *data);
void ply_device_manager_pause (ply_device_manager_t *manager);
void ply_device_manager_unpause (ply_device_manager_t *manager);
bool ply_device_manager_has_serial_consoles (ply_device_manager_t *manager);
bool ply_device_manager_has_displays (ply_device_manager_t *manager);
ply_list_t *ply_device_manager_get_keyboards (ply_device_manager_t *manager);


+ 103
- 8
src/libply-splash-core/ply-pixel-buffer.c View File

@@ -50,6 +50,8 @@ struct _ply_pixel_buffer
ply_region_t *updated_areas; /* in device pixels */
uint32_t is_opaque : 1;
int device_scale;

ply_pixel_buffer_rotation_t device_rotation;
};

static inline void ply_pixel_buffer_blend_value_at_pixel (ply_pixel_buffer_t *buffer,
@@ -153,6 +155,52 @@ make_pixel_value_translucent (uint32_t pixel_value,
return (alpha << 24) | (red << 16) | (green << 8) | blue;
}

static inline void ply_pixel_buffer_set_pixel (ply_pixel_buffer_t *buffer,
int x,
int y,
uint32_t pixel_value)
{
switch (buffer->device_rotation) {
case PLY_PIXEL_BUFFER_ROTATE_UPRIGHT:
buffer->bytes[y * buffer->area.width + x] = pixel_value;
break;
case PLY_PIXEL_BUFFER_ROTATE_UPSIDE_DOWN:
x = (buffer->area.width - 1) - x;
y = (buffer->area.height - 1) - y;
buffer->bytes[y * buffer->area.width + x] = pixel_value;
break;
case PLY_PIXEL_BUFFER_ROTATE_CLOCKWISE:
y = (buffer->area.height - 1) - y;
buffer->bytes[x * buffer->area.height + y] = pixel_value;
break;
case PLY_PIXEL_BUFFER_ROTATE_COUNTER_CLOCKWISE:
x = (buffer->area.width - 1) - x;
buffer->bytes[x * buffer->area.height + y] = pixel_value;
break;
}
}

static inline uint32_t ply_pixel_buffer_get_pixel (ply_pixel_buffer_t *buffer,
int x,
int y)
{
switch (buffer->device_rotation) {
case PLY_PIXEL_BUFFER_ROTATE_UPRIGHT:
return buffer->bytes[y * buffer->area.width + x];
case PLY_PIXEL_BUFFER_ROTATE_UPSIDE_DOWN:
x = (buffer->area.width - 1) - x;
y = (buffer->area.height - 1) - y;
return buffer->bytes[y * buffer->area.width + x];
case PLY_PIXEL_BUFFER_ROTATE_CLOCKWISE:
y = (buffer->area.height - 1) - y;
return buffer->bytes[x * buffer->area.height + y];
case PLY_PIXEL_BUFFER_ROTATE_COUNTER_CLOCKWISE:
x = (buffer->area.width - 1) - x;
return buffer->bytes[x * buffer->area.height + y];
}
return 0;
}

static inline void
ply_pixel_buffer_blend_value_at_pixel (ply_pixel_buffer_t *buffer,
int x,
@@ -162,12 +210,12 @@ ply_pixel_buffer_blend_value_at_pixel (ply_pixel_buffer_t *buffer,
uint32_t old_pixel_value;

if ((pixel_value >> 24) != 0xff) {
old_pixel_value = buffer->bytes[y * buffer->area.width + x];
old_pixel_value = ply_pixel_buffer_get_pixel (buffer, x, y);

pixel_value = blend_two_pixel_values (pixel_value, old_pixel_value);
}

buffer->bytes[y * buffer->area.width + x] = pixel_value;
ply_pixel_buffer_set_pixel (buffer, x, y, pixel_value);
}

static void
@@ -222,6 +270,35 @@ ply_pixel_buffer_crop_area_to_clip_area (ply_pixel_buffer_t *buffer,
}
}

static void ply_pixel_buffer_add_updated_area (ply_pixel_buffer_t *buffer,
ply_rectangle_t *area)
{
ply_rectangle_t updated_area = *area;

switch (buffer->device_rotation) {
case PLY_PIXEL_BUFFER_ROTATE_UPRIGHT:
break;
case PLY_PIXEL_BUFFER_ROTATE_UPSIDE_DOWN:
updated_area.x = buffer->area.width - area->width - area->x;
updated_area.y = buffer->area.height - area->height - area->y;
break;
case PLY_PIXEL_BUFFER_ROTATE_CLOCKWISE:
updated_area.x = buffer->area.height - area->height - area->y;
updated_area.y = area->x;
updated_area.height = area->width;
updated_area.width = area->height;
break;
case PLY_PIXEL_BUFFER_ROTATE_COUNTER_CLOCKWISE:
updated_area.x = area->y;
updated_area.y = buffer->area.width - area->width - area->x;
updated_area.height = area->width;
updated_area.width = area->height;
break;
}

ply_region_add_rectangle (buffer->updated_areas, &updated_area);
}

static void
ply_pixel_buffer_fill_area_with_pixel_value (ply_pixel_buffer_t *buffer,
ply_rectangle_t *fill_area,
@@ -251,7 +328,7 @@ ply_pixel_buffer_fill_area_with_pixel_value (ply_pixel_buffer_t *buffer,
}
}

ply_region_add_rectangle (buffer->updated_areas, &cropped_area);
ply_pixel_buffer_add_updated_area (buffer, &cropped_area);
}

void
@@ -281,9 +358,25 @@ ply_pixel_buffer_pop_clip_area (ply_pixel_buffer_t *buffer)
ply_pixel_buffer_t *
ply_pixel_buffer_new (unsigned long width,
unsigned long height)
{
return ply_pixel_buffer_new_with_device_rotation (
width, height, PLY_PIXEL_BUFFER_ROTATE_UPRIGHT);
}

ply_pixel_buffer_t *
ply_pixel_buffer_new_with_device_rotation (unsigned long width,
unsigned long height,
ply_pixel_buffer_rotation_t device_rotation)
{
ply_pixel_buffer_t *buffer;

if (device_rotation == PLY_PIXEL_BUFFER_ROTATE_CLOCKWISE ||
device_rotation == PLY_PIXEL_BUFFER_ROTATE_COUNTER_CLOCKWISE) {
unsigned long tmp = width;
width = height;
height = tmp;
}

buffer = calloc (1, sizeof(ply_pixel_buffer_t));

buffer->updated_areas = ply_region_new ();
@@ -292,6 +385,7 @@ ply_pixel_buffer_new (unsigned long width,
buffer->area.height = height;
buffer->logical_area = buffer->area;
buffer->device_scale = 1;
buffer->device_rotation = device_rotation;

buffer->clip_areas = ply_list_new ();
ply_pixel_buffer_push_clip_area (buffer, &buffer->area);
@@ -447,7 +541,7 @@ ply_pixel_buffer_fill_with_gradient (ply_pixel_buffer_t *buffer,

for (y = buffer->area.y; y < buffer->area.y + buffer->area.height; y++) {
if (cropped_area.y <= y && y < cropped_area.y + cropped_area.height) {
if (cropped_area.width < UNROLLED_PIXEL_COUNT) {
if (cropped_area.width < UNROLLED_PIXEL_COUNT || buffer->device_rotation) {
for (x = cropped_area.x; x < cropped_area.x + cropped_area.width; x++) {
pixel = 0xff000000;
RANDOMIZE (noise);
@@ -457,7 +551,7 @@ ply_pixel_buffer_fill_with_gradient (ply_pixel_buffer_t *buffer,
RANDOMIZE (noise);
pixel |= (((blue + noise) & COLOR_MASK) >> BLUE_SHIFT);

buffer->bytes[y * buffer->area.width + x] = pixel;
ply_pixel_buffer_set_pixel (buffer, x, y, pixel);
}
} else {
uint32_t shaded_set[UNROLLED_PIXEL_COUNT];
@@ -485,7 +579,7 @@ ply_pixel_buffer_fill_with_gradient (ply_pixel_buffer_t *buffer,
blue += blue_step;
}

ply_region_add_rectangle (buffer->updated_areas, &cropped_area);
ply_pixel_buffer_add_updated_area (buffer, &cropped_area);
}

void
@@ -671,7 +765,7 @@ ply_pixel_buffer_fill_with_argb32_data_at_opacity_with_clip_and_scale (ply_pixel
}
}

ply_region_add_rectangle (buffer->updated_areas, &cropped_area);
ply_pixel_buffer_add_updated_area (buffer, &cropped_area);
}

void
@@ -756,7 +850,8 @@ ply_pixel_buffer_fill_with_buffer_at_opacity_with_clip (ply_pixel_buffer_t *canv

/* Fast path to memcpy if we need no blending or scaling */
if (opacity == 1.0 && ply_pixel_buffer_is_opaque (source) &&
canvas->device_scale == source->device_scale) {
canvas->device_scale == source->device_scale &&
canvas->device_rotation == PLY_PIXEL_BUFFER_ROTATE_UPRIGHT) {
ply_rectangle_t cropped_area;

cropped_area.x = x_offset;


+ 12
- 0
src/libply-splash-core/ply-pixel-buffer.h View File

@@ -37,9 +37,21 @@ typedef struct _ply_pixel_buffer ply_pixel_buffer_t;
| ((uint8_t) (CLAMP (g * 255.0, 0.0, 255.0)) << 8) \
| ((uint8_t) (CLAMP (b * 255.0, 0.0, 255.0))))

typedef enum
{
PLY_PIXEL_BUFFER_ROTATE_UPRIGHT = 0,
PLY_PIXEL_BUFFER_ROTATE_UPSIDE_DOWN,
PLY_PIXEL_BUFFER_ROTATE_CLOCKWISE,
PLY_PIXEL_BUFFER_ROTATE_COUNTER_CLOCKWISE
} ply_pixel_buffer_rotation_t;

#ifndef PLY_HIDE_FUNCTION_DECLARATIONS
ply_pixel_buffer_t *ply_pixel_buffer_new (unsigned long width,
unsigned long height);
ply_pixel_buffer_t *
ply_pixel_buffer_new_with_device_rotation (unsigned long width,
unsigned long height,
ply_pixel_buffer_rotation_t device_rotation);
void ply_pixel_buffer_free (ply_pixel_buffer_t *buffer);
void ply_pixel_buffer_get_size (ply_pixel_buffer_t *buffer,
ply_rectangle_t *size);


+ 2
- 1
src/libply-splash-core/ply-renderer.c View File

@@ -314,7 +314,8 @@ ply_renderer_deactivate (ply_renderer_t *renderer)
{
assert (renderer->plugin_interface != NULL);

return renderer->plugin_interface->deactivate (renderer->backend);
renderer->plugin_interface->deactivate (renderer->backend);
renderer->is_active = false;
}

bool


+ 1
- 0
src/libply-splash-core/ply-terminal.c View File

@@ -32,6 +32,7 @@
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/sysmacros.h>
#include <termios.h>
#include <unistd.h>
#include <wchar.h>


+ 2
- 2
src/libply-splash-graphics/Makefile.in View File

@@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15 from Makefile.am.
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# @configure_input@

# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# Copyright (C) 1994-2017 Free Software Foundation, Inc.

# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,


+ 10
- 1
src/libply-splash-graphics/ply-throbber.c View File

@@ -144,6 +144,7 @@ animate_at_time (ply_throbber_t *throbber,
ply_pixel_buffer_t *const *frames;
bool should_continue;
double percent_in_sequence;
int last_frame_number;

number_of_frames = ply_array_get_size (throbber->frames);

@@ -152,11 +153,19 @@ animate_at_time (ply_throbber_t *throbber,

should_continue = true;
percent_in_sequence = fmod (time, THROBBER_DURATION) / THROBBER_DURATION;
last_frame_number = throbber->frame_number;
throbber->frame_number = (int) (number_of_frames * percent_in_sequence);

if (throbber->stop_trigger != NULL)
if (throbber->stop_trigger != NULL) {
/* If we are trying to stop, make sure we don't skip the last
* frame and loop around. Clamp it to the last frame.
*/
if (last_frame_number > throbber->frame_number)
throbber->frame_number = number_of_frames - 1;

if (throbber->frame_number == number_of_frames - 1)
should_continue = false;
}

frames = (ply_pixel_buffer_t *const *) ply_array_get_pointer_elements (throbber->frames);
ply_pixel_buffer_get_size (frames[throbber->frame_number], &throbber->frame_area);


+ 2
- 2
src/libply/Makefile.in View File

@@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.15 from Makefile.am.
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# @configure_input@

# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# Copyright (C) 1994-2017 Free Software Foundation, Inc.

# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,


+ 3
- 1
src/libply/ply-event-loop.c View File

@@ -496,8 +496,10 @@ ply_event_loop_new (void)

loop->signal_dispatcher = ply_signal_dispatcher_new ();

if (loop->signal_dispatcher == NULL)
if (loop->signal_dispatcher == NULL) {
ply_event_loop_free (loop);
return NULL;
}

ply_event_loop_watch_fd (loop,
ply_signal_dispatcher_receiver_fd,


+ 0
- 1
src/libply/ply-logger.c View File

@@ -313,7 +313,6 @@ ply_logger_open_file (ply_logger_t *logger,
const char *filename)
{
int fd;
mode_t mode;

assert (logger != NULL);
assert (filename != NULL);


+ 5
- 0
src/libply/ply-rectangle.c View File

@@ -129,6 +129,7 @@ ply_rectangle_find_overlap (ply_rectangle_t *rectangle1,
case V_COLLISION_EXACT:
return PLY_RECTANGLE_OVERLAP_EXACT_LEFT_EDGE;
}
break;
case H_COLLISION_RIGHT:
switch (v_collision) {
case V_COLLISION_NONE:
@@ -144,6 +145,7 @@ ply_rectangle_find_overlap (ply_rectangle_t *rectangle1,
case V_COLLISION_EXACT:
return PLY_RECTANGLE_OVERLAP_EXACT_RIGHT_EDGE;
}
break;
case H_COLLISION_BOTH:
switch (v_collision) {
case V_COLLISION_NONE:
@@ -159,6 +161,7 @@ ply_rectangle_find_overlap (ply_rectangle_t *rectangle1,
case V_COLLISION_EXACT:
return PLY_RECTANGLE_OVERLAP_ALL_EDGES;
}
break;
case H_COLLISION_CONTAINED:
switch (v_collision) {
case V_COLLISION_NONE:
@@ -174,6 +177,7 @@ ply_rectangle_find_overlap (ply_rectangle_t *rectangle1,
case V_COLLISION_EXACT:
return PLY_RECTANGLE_OVERLAP_NO_EDGES;
}
break;
case H_COLLISION_EXACT:
switch (v_collision) {
case V_COLLISION_NONE:
@@ -189,6 +193,7 @@ ply_rectangle_find_overlap (ply_rectangle_t *rectangle1,
case V_COLLISION_EXACT:
return PLY_RECTANGLE_OVERLAP_NO_EDGES;
}
break;
}
return PLY_RECTANGLE_OVERLAP_NONE;
}


+ 94
- 0
src/libply/ply-utils.c View File

@@ -24,6 +24,7 @@
#include "ply-utils.h"

#include <assert.h>
#include <ctype.h>
#include <dirent.h>
#include <errno.h>
#include <fcntl.h>
@@ -80,6 +81,9 @@ static int errno_stack_position = 0;

static int overridden_device_scale = 0;

static char kernel_command_line[PLY_MAX_COMMAND_LINE_SIZE];
static bool kernel_command_line_is_set;

bool
ply_open_unidirectional_pipe (int *sender_fd,
int *receiver_fd)
@@ -1015,4 +1019,94 @@ ply_get_device_scale (uint32_t width,