diff --git a/packages/initramfs/sysutils/plymouth-lite/build b/packages/initramfs/sysutils/plymouth-lite/build new file mode 100755 index 0000000000..6d17d56cb4 --- /dev/null +++ b/packages/initramfs/sysutils/plymouth-lite/build @@ -0,0 +1,33 @@ +#!/bin/sh + +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# 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 +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This Program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +. config/options $1 + +# ensure we use size optimization. + CFLAGS=`echo $CFLAGS | sed -e "s|-O2|-Os|"` + CFLAGS=`echo $CFLAGS | sed -e "s|-O3|-Os|"` + +LDFLAGS="$LDFLAGS -fwhole-program" + +cd $PKG_BUILD + +make diff --git a/packages/initramfs/sysutils/plymouth-lite/install b/packages/initramfs/sysutils/plymouth-lite/install new file mode 100755 index 0000000000..19b4087f67 --- /dev/null +++ b/packages/initramfs/sysutils/plymouth-lite/install @@ -0,0 +1,33 @@ +#!/bin/sh + +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# 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 +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This Program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +. config/options $1 + +mkdir -p $INSTALL/bin + cp $PKG_BUILD/ply-image $INSTALL/bin + +mkdir -p $INSTALL/splash + if [ -f $PROJECT_DIR/$PROJECT/splash/splash.png ]; then + cp $PROJECT_DIR/$PROJECT/splash/splash.png $INSTALL/splash + else + cp $PKG_DIR/splash/splash.png $INSTALL/splash + fi diff --git a/packages/initramfs/sysutils/plymouth-lite/meta b/packages/initramfs/sysutils/plymouth-lite/meta new file mode 100644 index 0000000000..e267255868 --- /dev/null +++ b/packages/initramfs/sysutils/plymouth-lite/meta @@ -0,0 +1,36 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# 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 +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This Program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +PKG_NAME="plymouth-lite" +PKG_VERSION="0.6.0" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="http://www.meego.com" +PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.bz2" +PKG_DEPENDS="gcc-initramfs libpng-initramfs v86d" +PKG_BUILD_DEPENDS="toolchain libpng" +PKG_PRIORITY="optional" +PKG_SECTION="system" +PKG_SHORTDESC="plymouth-lite: Boot splash screen based on Fedora's Plymouth code" +PKG_LONGDESC="Boot splash screen based on Fedora's Plymouth code" +PKG_IS_ADDON="no" + +PKG_AUTORECONF="no" diff --git a/packages/initramfs/sysutils/plymouth-lite/patches/plymouth-lite-0.6.0-cursor.patch b/packages/initramfs/sysutils/plymouth-lite/patches/plymouth-lite-0.6.0-cursor.patch new file mode 100644 index 0000000000..fc69b27811 --- /dev/null +++ b/packages/initramfs/sysutils/plymouth-lite/patches/plymouth-lite-0.6.0-cursor.patch @@ -0,0 +1,11 @@ +--- plymouth-lite-0.6.0/ply-image.c~ 2009-03-06 16:20:52.000000000 -0800 ++++ plymouth-lite-0.6.0/ply-image.c 2009-03-06 16:20:52.000000000 -0800 +@@ -439,7 +439,7 @@ + + exit_code = 0; + +-// hide_cursor (); ++ hide_cursor (); + + if (argc == 1) + image = ply_image_new ("/usr/share/plymouth/splash.png"); diff --git a/packages/initramfs/sysutils/plymouth-lite/patches/plymouth-lite-0.6.0-fix-build.patch b/packages/initramfs/sysutils/plymouth-lite/patches/plymouth-lite-0.6.0-fix-build.patch new file mode 100644 index 0000000000..f9baa38536 --- /dev/null +++ b/packages/initramfs/sysutils/plymouth-lite/patches/plymouth-lite-0.6.0-fix-build.patch @@ -0,0 +1,10 @@ +--- plymouth-lite-0.6.0/Makefile~ 2009-07-22 11:22:32.000000000 -0700 ++++ plymouth-lite-0.6.0/Makefile 2009-07-22 11:22:32.000000000 -0700 +@@ -1,6 +1,6 @@ + + ply-image: ply-image.c ply-frame-buffer.c Makefile +- gcc -O2 -march=core2 -mtune=generic -lm `pkg-config --cflags libpng12` `pkg-config --libs libpng12` ply-image.c ply-frame-buffer.c -o ply-image ++ $(CC) $(CFLAGS) `pkg-config --cflags libpng` ply-image.c ply-frame-buffer.c -o ply-image -lm `pkg-config --libs libpng` -lm -lz + + clean: + rm -f ply-image *~ gmon.out diff --git a/packages/initramfs/sysutils/plymouth-lite/patches/plymouth-lite-0.6.0-libpng_1.4.0.patch b/packages/initramfs/sysutils/plymouth-lite/patches/plymouth-lite-0.6.0-libpng_1.4.0.patch new file mode 100644 index 0000000000..cf5a08ac95 --- /dev/null +++ b/packages/initramfs/sysutils/plymouth-lite/patches/plymouth-lite-0.6.0-libpng_1.4.0.patch @@ -0,0 +1,12 @@ +diff -Naur plymouth-lite-0.6.0/ply-image.c plymouth-lite-0.6.0.patch/ply-image.c +--- plymouth-lite-0.6.0/ply-image.c 2009-02-19 12:16:36.000000000 +0100 ++++ plymouth-lite-0.6.0.patch/ply-image.c 2010-02-08 01:30:05.336856616 +0100 +@@ -220,7 +220,7 @@ + png_set_palette_to_rgb (png); + + if ((color_type == PNG_COLOR_TYPE_GRAY) && (bits_per_pixel < 8)) +- png_set_gray_1_2_4_to_8 (png); ++ png_set_expand_gray_1_2_4_to_8 (png); + + if (png_get_valid (png, info, PNG_INFO_tRNS)) + png_set_tRNS_to_alpha (png); diff --git a/packages/initramfs/sysutils/plymouth-lite/patches/plymouth-lite-0.6.0-resize.patch b/packages/initramfs/sysutils/plymouth-lite/patches/plymouth-lite-0.6.0-resize.patch new file mode 100644 index 0000000000..4bebf11213 --- /dev/null +++ b/packages/initramfs/sysutils/plymouth-lite/patches/plymouth-lite-0.6.0-resize.patch @@ -0,0 +1,110 @@ +diff -urN plymouth-lite-0.6.0/ply-frame-buffer.c plymouth-lite-0.6.0.change/ply-frame-buffer.c +--- plymouth-lite-0.6.0/ply-frame-buffer.c 2009-02-19 19:14:24.000000000 +0800 ++++ plymouth-lite-0.6.0.change/ply-frame-buffer.c 2009-06-13 17:44:05.000000000 +0800 +@@ -47,41 +47,6 @@ + #define PLY_FRAME_BUFFER_DEFAULT_FB_DEVICE_NAME "/dev/fb0" + #endif + +-struct _ply_frame_buffer +-{ +- char *device_name; +- int device_fd; +- +- char *map_address; +- size_t size; +- +- uint32_t *shadow_buffer; +- +- uint32_t red_bit_position; +- uint32_t green_bit_position; +- uint32_t blue_bit_position; +- uint32_t alpha_bit_position; +- +- uint32_t bits_for_red; +- uint32_t bits_for_green; +- uint32_t bits_for_blue; +- uint32_t bits_for_alpha; +- +- int32_t dither_red; +- int32_t dither_green; +- int32_t dither_blue; +- +- unsigned int bytes_per_pixel; +- unsigned int row_stride; +- +- ply_frame_buffer_area_t area; +- ply_frame_buffer_area_t area_to_flush; +- +- void (*flush)(ply_frame_buffer_t *buffer); +- +- int pause_count; +-}; +- + static bool ply_frame_buffer_open_device (ply_frame_buffer_t *buffer); + static void ply_frame_buffer_close_device (ply_frame_buffer_t *buffer); + static bool ply_frame_buffer_query_device (ply_frame_buffer_t *buffer); +diff -urN plymouth-lite-0.6.0/ply-frame-buffer.h plymouth-lite-0.6.0.change/ply-frame-buffer.h +--- plymouth-lite-0.6.0/ply-frame-buffer.h 2009-02-19 17:35:54.000000000 +0800 ++++ plymouth-lite-0.6.0.change/ply-frame-buffer.h 2009-06-13 17:31:42.000000000 +0800 +@@ -38,6 +38,41 @@ + unsigned long height; + }; + ++struct _ply_frame_buffer ++{ ++ char *device_name; ++ int device_fd; ++ ++ char *map_address; ++ size_t size; ++ ++ uint32_t *shadow_buffer; ++ ++ uint32_t red_bit_position; ++ uint32_t green_bit_position; ++ uint32_t blue_bit_position; ++ uint32_t alpha_bit_position; ++ ++ uint32_t bits_for_red; ++ uint32_t bits_for_green; ++ uint32_t bits_for_blue; ++ uint32_t bits_for_alpha; ++ ++ int32_t dither_red; ++ int32_t dither_green; ++ int32_t dither_blue; ++ ++ unsigned int bytes_per_pixel; ++ unsigned int row_stride; ++ ++ ply_frame_buffer_area_t area; ++ ply_frame_buffer_area_t area_to_flush; ++ ++ void (*flush)(ply_frame_buffer_t *buffer); ++ ++ int pause_count; ++}; ++ + #define PLY_FRAME_BUFFER_COLOR_TO_PIXEL_VALUE(r,g,b,a) \ + (((uint8_t) (CLAMP (a * 255.0, 0.0, 255.0)) << 24) \ + | ((uint8_t) (CLAMP (r * 255.0, 0.0, 255.0)) << 16) \ +diff -urN plymouth-lite-0.6.0/ply-image.c plymouth-lite-0.6.0.change/ply-image.c +--- plymouth-lite-0.6.0/ply-image.c 2009-02-19 19:16:36.000000000 +0800 ++++ plymouth-lite-0.6.0.change/ply-image.c 2009-06-13 17:42:52.000000000 +0800 +@@ -43,6 +43,7 @@ + #include + + #include ++#include "ply-frame-buffer.h" + + #define MIN(a,b) ((a) <= (b)? (a) : (b)) + #define MAX(a,b) ((a) >= (b)? (a) : (b)) +@@ -464,6 +465,8 @@ + return exit_code; + } + ++ image = ply_image_resize(image, buffer->area.width, buffer->area.height); ++ + animate_at_time (buffer, image); + + ply_frame_buffer_close (buffer); diff --git a/packages/initramfs/sysutils/plymouth-lite/patches/plymouth-lite-0.6.0-wrong_colors.patch b/packages/initramfs/sysutils/plymouth-lite/patches/plymouth-lite-0.6.0-wrong_colors.patch new file mode 100644 index 0000000000..44266be2e1 --- /dev/null +++ b/packages/initramfs/sysutils/plymouth-lite/patches/plymouth-lite-0.6.0-wrong_colors.patch @@ -0,0 +1,60 @@ +diff -Naur plymouth-lite-0.6.0/ply-frame-buffer.c plymouth-lite-0.6.0.patch/ply-frame-buffer.c +--- plymouth-lite-0.6.0/ply-frame-buffer.c 2012-05-02 22:29:21.505665089 +0200 ++++ plymouth-lite-0.6.0.patch/ply-frame-buffer.c 2012-05-02 22:26:42.000000000 +0200 +@@ -149,6 +149,34 @@ + } + } + ++static void ++flush_xbgr32 (ply_frame_buffer_t *buffer) ++{ ++ unsigned long x1, y1, x2, y2, x, y; ++ char *dst, *src; ++ ++ x1 = buffer->area_to_flush.x; ++ y1 = buffer->area_to_flush.y; ++ x2 = x1 + buffer->area_to_flush.width; ++ y2 = y1 + buffer->area_to_flush.height; ++ ++ dst = &buffer->map_address[(y1 * buffer->row_stride + x1) * 4]; ++ src = (char *) &buffer->shadow_buffer[y1 * buffer->area.width + x1]; ++ ++ for (y = y1; y < y2; y++) ++ { ++ for (x = x1; y < x2; x++) ++ { ++ dst[0] = src[2]; ++ dst[1] = src[1]; ++ dst[2] = src[0]; ++ dst[3] = src[3]; ++ dst += 4; ++ src += 4; ++ } ++ } ++} ++ + static const char const *p_visual(int visual) + { + static const char const *visuals[] = +@@ -260,11 +288,21 @@ + buffer->dither_green = 0; + buffer->dither_blue = 0; + ++printf("%d,%d,%d,%d,%d,%d,%d\n", buffer->bytes_per_pixel, ++ buffer->red_bit_position, buffer->bits_for_red, ++ buffer->green_bit_position, buffer->bits_for_green, ++ buffer->blue_bit_position, buffer->bits_for_blue); ++ + if (buffer->bytes_per_pixel == 4 && + buffer->red_bit_position == 16 && buffer->bits_for_red == 8 && + buffer->green_bit_position == 8 && buffer->bits_for_green == 8 && + buffer->blue_bit_position == 0 && buffer->bits_for_blue == 8) + buffer->flush = flush_xrgb32; ++ else if (buffer->bytes_per_pixel == 4 && ++ buffer->red_bit_position == 0 && buffer->bits_for_red == 8 && ++ buffer->green_bit_position == 8 && buffer->bits_for_green == 8 && ++ buffer->blue_bit_position == 16 && buffer->bits_for_blue == 8) ++ buffer->flush = flush_xbgr32; + else + buffer->flush = flush_generic; + diff --git a/packages/initramfs/sysutils/plymouth-lite/splash/splash-1920x1080.png b/packages/initramfs/sysutils/plymouth-lite/splash/splash-1920x1080.png new file mode 100644 index 0000000000..316c0d7087 Binary files /dev/null and b/packages/initramfs/sysutils/plymouth-lite/splash/splash-1920x1080.png differ diff --git a/packages/initramfs/sysutils/plymouth-lite/splash/splash.png b/packages/initramfs/sysutils/plymouth-lite/splash/splash.png new file mode 100644 index 0000000000..c73303e0bc Binary files /dev/null and b/packages/initramfs/sysutils/plymouth-lite/splash/splash.png differ diff --git a/packages/initramfs/sysutils/plymouth-lite/splash/splash1.png b/packages/initramfs/sysutils/plymouth-lite/splash/splash1.png new file mode 100644 index 0000000000..6b2897b0a1 Binary files /dev/null and b/packages/initramfs/sysutils/plymouth-lite/splash/splash1.png differ diff --git a/packages/initramfs/sysutils/plymouth-lite/splash/splash2.png b/packages/initramfs/sysutils/plymouth-lite/splash/splash2.png new file mode 100644 index 0000000000..ac0aa0052f Binary files /dev/null and b/packages/initramfs/sysutils/plymouth-lite/splash/splash2.png differ