Browse Source

plymouth-theme easyvdr v1

master
Martin 4 years ago
parent
commit
de5388f582
100 changed files with 18105 additions and 0 deletions
  1. +5
    -0
      p/plymouth-theme-easyvdr-logo/debian/changelog
  2. +1
    -0
      p/plymouth-theme-easyvdr-logo/debian/compat
  3. +21
    -0
      p/plymouth-theme-easyvdr-logo/debian/control
  4. +30
    -0
      p/plymouth-theme-easyvdr-logo/debian/copyright
  5. +1
    -0
      p/plymouth-theme-easyvdr-logo/debian/plymouth-theme-easyvdr-logo.install
  6. +45
    -0
      p/plymouth-theme-easyvdr-logo/debian/plymouth-theme-easyvdr-logo.postinst
  7. +12
    -0
      p/plymouth-theme-easyvdr-logo/debian/plymouth-theme-easyvdr-logo.postrm
  8. +10
    -0
      p/plymouth-theme-easyvdr-logo/debian/plymouth-theme-easyvdr-logo.prerm
  9. +7
    -0
      p/plymouth-theme-easyvdr-logo/debian/rules
  10. +3
    -0
      p/plymouth-theme-easyvdr-logo/easyvdr-logo/easyvdr-logo.grub
  11. +8
    -0
      p/plymouth-theme-easyvdr-logo/easyvdr-logo/easyvdr-logo.plymouth
  12. +484
    -0
      p/plymouth-theme-easyvdr-logo/easyvdr-logo/easyvdr-logo.script
  13. BIN
      p/plymouth-theme-easyvdr-logo/easyvdr-logo/fsck-fade.png
  14. BIN
      p/plymouth-theme-easyvdr-logo/easyvdr-logo/fsck-fade_16bit.png
  15. BIN
      p/plymouth-theme-easyvdr-logo/easyvdr-logo/logo.png
  16. BIN
      p/plymouth-theme-easyvdr-logo/easyvdr-logo/logo_16bit.png
  17. BIN
      p/plymouth-theme-easyvdr-logo/easyvdr-logo/passw-dialog.png
  18. BIN
      p/plymouth-theme-easyvdr-logo/easyvdr-logo/progress-fade.png
  19. BIN
      p/plymouth-theme-easyvdr-logo/easyvdr-logo/progress-fade_16bit.png
  20. BIN
      p/plymouth-theme-easyvdr-logo/easyvdr-logo/progress-meter.png
  21. BIN
      p/plymouth-theme-easyvdr-logo/easyvdr-logo/progress-meter_16bit.png
  22. BIN
      p/plymouth-theme-easyvdr-logo/easyvdr-logo/spinner.png
  23. BIN
      p/plymouth-theme-easyvdr-logo/easyvdr-logo/test.png
  24. BIN
      p/plymouth-theme-easyvdr-logo/easyvdr-logo/wallpaper.png
  25. +10
    -0
      u/ubiquity-slideshow-ubuntu-83.1/.gcfunctions
  26. +23
    -0
      u/ubiquity-slideshow-ubuntu-83.1/AUTHORS
  27. +348
    -0
      u/ubiquity-slideshow-ubuntu-83.1/COPYING
  28. +22
    -0
      u/ubiquity-slideshow-ubuntu-83.1/Makefile
  29. +265
    -0
      u/ubiquity-slideshow-ubuntu-83.1/README
  30. +174
    -0
      u/ubiquity-slideshow-ubuntu-83.1/Slideshow.py
  31. +8
    -0
      u/ubiquity-slideshow-ubuntu-83.1/TODO
  32. +1044
    -0
      u/ubiquity-slideshow-ubuntu-83.1/debian/changelog
  33. +1
    -0
      u/ubiquity-slideshow-ubuntu-83.1/debian/compat
  34. +20
    -0
      u/ubiquity-slideshow-ubuntu-83.1/debian/control
  35. +554
    -0
      u/ubiquity-slideshow-ubuntu-83.1/debian/copyright
  36. +4
    -0
      u/ubiquity-slideshow-ubuntu-83.1/debian/rules
  37. +1
    -0
      u/ubiquity-slideshow-ubuntu-83.1/debian/source/format
  38. +1
    -0
      u/ubiquity-slideshow-ubuntu-83.1/debian/source/options
  39. +1
    -0
      u/ubiquity-slideshow-ubuntu-83.1/debian/ubiquity-slideshow-ubuntu.install
  40. +77
    -0
      u/ubiquity-slideshow-ubuntu-83.1/generate-local-slides.py
  41. +18
    -0
      u/ubiquity-slideshow-ubuntu-83.1/generate-pot-files.sh
  42. +16
    -0
      u/ubiquity-slideshow-ubuntu-83.1/images-source/generate-reflected-pngs.sh
  43. +187
    -0
      u/ubiquity-slideshow-ubuntu-83.1/images-source/reflection-script.scm
  44. BIN
      u/ubiquity-slideshow-ubuntu-83.1/images-source/ubuntu/tahr_rgb_AW.png
  45. BIN
      u/ubiquity-slideshow-ubuntu-83.1/images-source/ubuntu/welcome-14.04.xcf
  46. +223
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/ace.po
  47. +295
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/af.po
  48. +229
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/am.po
  49. +223
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/an.po
  50. +297
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/ar.po
  51. +300
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/ast.po
  52. +278
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/az.po
  53. +303
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/be.po
  54. +303
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/bg.po
  55. +231
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/bn.po
  56. +223
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/bo.po
  57. +223
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/br.po
  58. +298
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/bs.po
  59. +304
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/ca.po
  60. +265
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/ca@valencia.po
  61. +226
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/ckb.po
  62. +300
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/cs.po
  63. +223
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/csb.po
  64. +223
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/cv.po
  65. +223
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/cy.po
  66. +295
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/da.po
  67. +306
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/de.po
  68. +223
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/dv.po
  69. +305
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/el.po
  70. +292
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/en_AU.po
  71. +292
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/en_CA.po
  72. +293
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/en_GB.po
  73. +258
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/eo.po
  74. +300
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/es.po
  75. +293
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/et.po
  76. +299
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/eu.po
  77. +295
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/fa.po
  78. +223
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/fa_AF.po
  79. +301
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/fi.po
  80. +223
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/fil.po
  81. +223
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/fo.po
  82. +308
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/fr.po
  83. +302
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/fr_CA.po
  84. +231
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/fy.po
  85. +289
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/ga.po
  86. +307
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/gd.po
  87. +300
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/gl.po
  88. +226
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/gu.po
  89. +223
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/gv.po
  90. +290
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/he.po
  91. +290
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/hi.po
  92. +242
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/hr.po
  93. +223
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/ht.po
  94. +302
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/hu.po
  95. +223
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/hy.po
  96. +298
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/id.po
  97. +223
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/ig.po
  98. +223
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/inh.po
  99. +291
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/is.po
  100. +302
    -0
      u/ubiquity-slideshow-ubuntu-83.1/po/ubuntu/it.po

+ 5
- 0
p/plymouth-theme-easyvdr-logo/debian/changelog View File

@@ -0,0 +1,5 @@
plymouth-theme-easyvdr-logo (0.2.0-0~easyVDR0) trusty; urgency=high

* new packaging

-- easyVDR-Developer <easyvdr-dev@easy-vdr.de> Fri, 08 Jan 2016 09:19:48 +0100

+ 1
- 0
p/plymouth-theme-easyvdr-logo/debian/compat View File

@@ -0,0 +1 @@
9

+ 21
- 0
p/plymouth-theme-easyvdr-logo/debian/control View File

@@ -0,0 +1,21 @@
Source: plymouth-theme-easyvdr-logo
Section: x11
Priority: optional
Maintainer: Martin <none@easy-vdr.org>
Build-Depends: debhelper (>= 9)
Standards-Version: 3.9.5

Package: plymouth-theme-easyvdr-logo
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, plymouth, plymouth-label
Provides: plymouth-theme
Replaces: plymouth (<< 0.8.1-1~)
Description: graphical boot animation and logger - easyVDR-logo theme
Plymouth is an application that runs very early in the boot process
(even before the root filesystem is mounted!) that provides a graphical
boot animation while the boot process happens in the background.
.
This package contains the easyvdr logo theme.
.
These theme may not correctly display messages from filesystem
decryption, checking or error handling.

+ 30
- 0
p/plymouth-theme-easyvdr-logo/debian/copyright View File

@@ -0,0 +1,30 @@
Upstream Author(s):
Martin <none@easy-vdr.de>

Debian Maintainer(s):
Martin <none@easy-vdr.de>

Copyright: Martin

License:
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 of the License, 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 this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

The complete text of the GNU General Public License can be found
in /usr/share/common-licenses/GPL-2 on most Debian systems.

License (Debian packaging):
The Debian packaging is licensed under the GPL, version 2 or any
later version, see /usr/share/common-licenses/GPL-2.


+ 1
- 0
p/plymouth-theme-easyvdr-logo/debian/plymouth-theme-easyvdr-logo.install View File

@@ -0,0 +1 @@
easyvdr-logo lib/plymouth/themes

+ 45
- 0
p/plymouth-theme-easyvdr-logo/debian/plymouth-theme-easyvdr-logo.postinst View File

@@ -0,0 +1,45 @@
#!/bin/sh -e
# This script can be called in the following ways:
#
# After the package was installed:
# <postinst> configure <old-version>
#
#
# If prerm fails during upgrade or fails on failed upgrade:
# <old-postinst> abort-upgrade <new-version>
#
# If prerm fails during deconfiguration of a package:
# <postinst> abort-deconfigure in-favour <new-package> <version>
# removing <old-package> <version>
#
# If prerm fails during replacement due to conflict:
# <postinst> abort-remove in-favour <new-package> <version>


case "$1" in
configure)
update-alternatives \
--install /lib/plymouth/themes/default.plymouth default.plymouth \
/lib/plymouth/themes/easyvdr-logo/easyvdr-logo.plymouth 100 \
--slave /lib/plymouth/themes/default.grub default.plymouth.grub \
/lib/plymouth/themes/easyvdr-logo/easyvdr-logo.grub
update-alternatives \
--set default.plymouth /lib/plymouth/themes/easyvdr-logo/easyvdr-logo.plymouth

if which update-initramfs >/dev/null 2>&1
then
update-initramfs -u
fi
;;

abort-upgrade|abort-deconfigure|abort-remove)
;;

*)
echo "$0 called with unknown argument \`$1'" 1>&2
exit 1
;;
esac

#DEBHELPER#
exit 0

+ 12
- 0
p/plymouth-theme-easyvdr-logo/debian/plymouth-theme-easyvdr-logo.postrm View File

@@ -0,0 +1,12 @@
#!/bin/sh

set -e

if [ "x$1" = xremove ]; then
if which update-initramfs >/dev/null 2>&1
then
update-initramfs -u
fi
fi

#DEBHELPER#

+ 10
- 0
p/plymouth-theme-easyvdr-logo/debian/plymouth-theme-easyvdr-logo.prerm View File

@@ -0,0 +1,10 @@
#!/bin/sh

set -e

if [ "x$1" = xremove ]; then
update-alternatives \
--remove default.plymouth /lib/plymouth/themes/easyvdr-logo/easyvdr-logo.plymouth
fi

#DEBHELPER#

+ 7
- 0
p/plymouth-theme-easyvdr-logo/debian/rules View File

@@ -0,0 +1,7 @@
#!/usr/bin/make -f
%:
dh $@

# Don't generate shlibs for plugins (ideally these wouldn't have a SONAME)
override_dh_makeshlibs:
dh_makeshlibs -X/lib/plymouth/

+ 3
- 0
p/plymouth-theme-easyvdr-logo/easyvdr-logo/easyvdr-logo.grub View File

@@ -0,0 +1,3 @@
if background_color 0,0,0; then
clear
fi

+ 8
- 0
p/plymouth-theme-easyvdr-logo/easyvdr-logo/easyvdr-logo.plymouth View File

@@ -0,0 +1,8 @@
[Plymouth Theme]
Name=Xubuntu Logo
Description=A theme that features a background with a logo.
ModuleName=script

[script]
ImageDir=/lib/plymouth/themes/easyvdr-logo
ScriptFile=/lib/plymouth/themes/easyvdr-logo/easyvdr-logo.script

+ 484
- 0
p/plymouth-theme-easyvdr-logo/easyvdr-logo/easyvdr-logo.script View File

@@ -0,0 +1,484 @@
/**************************************************************************
*
* Copyright (C) 2011 The Xubuntu Community
* Copyright (C) 2009 Canonical Ltd.
*
* 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 3 of the License, 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 this program. If not, see <http://www.gnu.org/licenses/>.
*
* Written by: Mad Nick <dr.madnick@gmail.com>
*
**************************************************************************/

/*
* Related to the screen */
screen_width = Window.GetWidth();
screen_height = Window.GetHeight();
screen_x = Window.GetX();
screen_y = Window.GetY();

/**/

/*
* Images, check bits per pixel
* and load images accordingly */

background_image = Image("wallpaper.png");
passw_dialog_input_image = Image("passw-dialog.png");
bullet_image = Image("test.png");

bpp = Window.GetBitsPerPixel();

if (bpp == 4) {

logotype_image = Image("logo_16bit.png");
progress_meter_image = Image("progress-meter_16bit.png");
progress_fade_image = Image("progress-fade_16bit.png");
fsck_progress_meter_image = Image("progress-meter_16bit.png");
fsck_progress_fade_image = Image("fsck-fade_16bit.png");

}
else {

logotype_image = Image("logo.png");
progress_meter_image = Image("progress-meter.png");
progress_fade_image = Image("progress-fade.png");
fsck_progress_meter_image = Image("progress-meter.png");
fsck_progress_fade_image = Image("fsck-fade.png");
}

/**/

/*
* Sprites */

ratio = screen_height / screen_width;
background_ratio = background_image.GetHeight() / background_image.GetWidth();
factor = 0;

if (ratio > background_ratio) {

factor = screen_height / background_image.GetHeight();

}
else {
factor = screen_width / background_image.GetWidth();
}

scaled = background_image.Scale(background_image.GetWidth() * factor, background_image.GetHeight() * factor);
background_sprite = Sprite(scaled);
background_sprite.SetX(screen_x + screen_width / 2 - scaled.GetWidth() / 2);
background_sprite.SetY(screen_y + screen_height / 2 - scaled.GetHeight() / 2);

logotype_sprite = Sprite(logotype_image);

fsck_progress_meter_sprite = Sprite(fsck_progress_meter_image);
fsck_progress_fade_sprite = Sprite(fsck_progress_fade_image.Scale(1, fsck_progress_fade_image.GetHeight()));

passw_dialog_input_sprite = Sprite(passw_dialog_input_image);
passw_lbl_sprite = Sprite();

msg_label_sprite = Sprite();

/**/

/*
* Misc */

counter = 0;

fade_pos_x = (screen_width / 2) - (progress_meter_image.GetWidth() / 2);
fade_dir = 0; /* 0 = right, 1 = left */

fsck_running = 0;
fsck_dev_array;
fsck_dev_counter = 0;
fsck_fade_in_counter = 0;
fsck_done_fading = 0;

stars_array;
stars_n = 0;

//full_msg = "";
msgs_line;

/**/

/*
* Debug related */
debug = 0;
debug_sprite = Sprite();

fun debugOutput(str) {
/*
* This will print to the top left corner */
debug_sprite.SetImage(Image.Text(str));
}

/**/

/*
* Setup the graphics properties */
logotype_sprite.SetPosition(screen_x + (screen_width / 2) - (logotype_image.GetWidth() / 2), screen_y + (screen_height / 2) - (logotype_image.GetHeight() / 2));
fsck_progress_meter_sprite.SetPosition(screen_x + (screen_width / 2) - (progress_meter_image.GetWidth() / 2), screen_y + (screen_height / 2) + (logotype_image.GetHeight() / 2) + 25);
fsck_progress_fade_sprite.SetPosition(screen_x + (screen_width / 2) - (progress_meter_image.GetWidth() / 2), screen_y + (screen_height / 2) + (logotype_image.GetHeight() / 2) + 25);
fsck_progress_meter_sprite.SetOpacity(0);
fsck_progress_fade_sprite.SetOpacity(0);
passw_dialog_input_sprite.SetPosition(screen_x + (screen_width / 2) - (passw_dialog_input_image.GetWidth() / 2), screen_y + (screen_height / 2) + (logotype_image.GetHeight() / 2) + 70);
passw_dialog_input_sprite.SetOpacity(0);
passw_lbl_sprite.SetOpacity(0);

spin = 0;

/*
* this function only goes up to 100
* because thats all thats needed for
* the progress meter bar */
fun atoi(str) {
int = -1;
for (i = 0; i <= 100; i++) {
if (i + "" == str) {
int = i;
break;
}
}
return int;

}

/*
* This handler will/can be invoked
* 50 times per second.
*
* According to the previous author of the
* splash script, without this callback
* the screen is not updated correctly */
spinner_sprite;
spinner;

fun refreshHandler() {
if (spin < 3.14 * 2) {
spin = spin + 0.1;
}
else {
spin = 0;
}
/* if fsck is running or the password is prompted, hide the spinner */
if (fsck_running == 1 || passw_dialog_input_sprite.GetOpacity() == 1) {
spinner_sprite.SetOpacity(0);
} else {
spinner = Image("spinner.png");
spinner = spinner.Rotate(spin);
spinner_sprite = Sprite(spinner);
spinner_sprite.SetPosition(screen_x + (screen_width / 2) - (spinner.GetWidth() / 2), screen_y + (screen_height / 2) - (spinner.GetHeight() / 2) + 80);
}
if (fade_dir == 0) {
counter++;
if (counter >= 200) {
fade_dir = 1;
}
}
else {
counter--;
if (counter <= 0) {
fade_dir = 0;
}
}
if ((fsck_running == 1) && (fsck_done_fading == 0)) {
fsck_progress_meter_sprite.SetOpacity(fsck_fade_in_counter);
fsck_progress_fade_sprite.SetOpacity(fsck_fade_in_counter);
if (fsck_fade_in_counter < 1) {
fsck_fade_in_counter+= 0.025;
}
else {
fsck_done_fading = 1;
}
}
}

Plymouth.SetRefreshFunction (refreshHandler);

/**/

/*
* This function will display the password related information
* when being prompt with entering a password */
fun showPasswordHandler(prompt, stars) {
if (passw_dialog_input_sprite.GetOpacity() == 0 && passw_lbl_sprite.GetOpacity() == 0) {
passw_dialog_input_sprite.SetOpacity(1);
passw_lbl_sprite.SetOpacity(1);
}
tmp_prompt_image = Image.Text(prompt, 1, 1, 1);

passw_lbl_sprite.SetImage(tmp_prompt_image);
passw_lbl_sprite.SetPosition(screen_x + (screen_width / 2) - (tmp_prompt_image.GetWidth() / 2), screen_y + (screen_height / 2) + (logotype_image.GetHeight() / 2) + 50);
for(i = 0; i < stars_n; i++) {
stars_array[i] = NULL;
}
stars_n = 0;

for(i = 0; (i < stars) && (i < 15); i++) {
stars_array[i] = Sprite(bullet_image);
stars_array[i].SetPosition(screen_x + (((screen_width / 2) - (passw_dialog_input_image.GetWidth() / 2)) + (18 * i)) + 2, screen_y + (screen_height / 2) + (logotype_image.GetHeight() / 2) + 75);
stars_n++;
}
}

Plymouth.SetDisplayPasswordFunction(showPasswordHandler);

/**/

fun displayNormalHandler() {

/*
* Hide the password dialog and the bullets */
if (passw_dialog_input_sprite.GetOpacity() == 1) {
passw_dialog_input_sprite.SetOpacity(0);
}
if (passw_lbl_sprite.GetOpacity() == 1) {
passw_lbl_sprite.SetOpacity(0);
}
for(i = 0; i < stars_n; i++) {
stars_array[i] = NULL;
}

}

Plymouth.SetDisplayNormalFunction(displayNormalHandler);

fun strlen(string) {
i = 0;
while (String(string).CharAt(i)) {
i++;
}
return i;

}

/*
* This function will display the most current message */
fun messageHandler(msg) {
if ((msg == "") || !msg) {
return 0;
}
if (msg.SubString(0, 5) == "keys:") {
msg = msg.SubString(5, strlen(msg));
}
//full_msg += msg + " ";
for(i = 4; i > 0; i--) {

msgs_line[i] = msgs_line[i - 1];
}
msgs_line[0] = Sprite(Image.Text(msg, 1, 1, 1));
dist = 1;
for(i = 0; i < 5; i++) {
msgs_line[i].SetPosition(screen_x + (screen_width / 2) - (msgs_line[i].GetImage().GetWidth() / 2), screen_y + (screen_height - msgs_line[i].GetImage().GetHeight()) - 20*dist);
dist++;
}

}

Plymouth.SetMessageFunction(messageHandler);

/**/

/*
* Handles the updates passed to the plymouth daemon
* for example the FSCK data */
fun statusHandler(status) {
tmp_char;
status_array[0] = "";
elem_count = 0;
for (i = 0; String(status).CharAt(i) != ""; i++) {
tmp_char = String(status).CharAt(i);
if (tmp_char != ":") {
status_array[elem_count] += tmp_char;
}
else {
elem_count++;
status_array[elem_count] = "";
}
}

if (status_array[0] == "fsck") {
already_added = 0;
if (fsck_running == 0) {
/*
* use the dedicated message handler for this
* since there is no messages about fsck checks
* currently... */
messageHandler("Routine disk drive check.");
fsck_running = 1;
}
for(i = 0; i < fsck_dev_counter; i++) {
/*
* check if the device already exist and update
* the progress only in that case */
if (fsck_dev_array[i][0] == status_array[1]) {
fsck_dev_array[i][1] = status_array[2]; /* progress */
already_added = 1;
}
}

/*
* if the device is not added, then add it */
if (already_added == 0) {
fsck_dev_array[fsck_dev_counter][0] = status_array[1]; /* device */
fsck_dev_array[fsck_dev_counter][1] = status_array[2]; /* progress */
fsck_dev_counter++;
}
/*
* update the progress */
total = 0;
for(i = 0; i < fsck_dev_counter; i++) {
total += atoi(fsck_dev_array[i][1]);
}

if (fsck_dev_counter > 0) {
/*
* display the total percentage */
fsck_progress_fade_sprite.SetImage(fsck_progress_fade_image.Scale((fsck_progress_meter_image.GetWidth() / 100) * (total / fsck_dev_counter), fsck_progress_fade_image.GetHeight()));
}
/**/
/*
* if the total progress is at maximum,
* make the progress meter go away,
* we might want to fade this out... */
if (total == (100 * fsck_dev_counter)) {
fsck_progress_meter_sprite.SetOpacity(0);
fsck_progress_fade_sprite.SetOpacity(0);
}
}
}

Plymouth.SetUpdateStatusFunction(statusHandler);

/**/

BIN
p/plymouth-theme-easyvdr-logo/easyvdr-logo/fsck-fade.png View File

Before After
Width: 145  |  Height: 10  |  Size: 326B

BIN
p/plymouth-theme-easyvdr-logo/easyvdr-logo/fsck-fade_16bit.png View File

Before After
Width: 145  |  Height: 10  |  Size: 98B

BIN
p/plymouth-theme-easyvdr-logo/easyvdr-logo/logo.png View File

Before After
Width: 264  |  Height: 84  |  Size: 4.9KB

BIN
p/plymouth-theme-easyvdr-logo/easyvdr-logo/logo_16bit.png View File

Before After
Width: 228  |  Height: 47  |  Size: 6.5KB

BIN
p/plymouth-theme-easyvdr-logo/easyvdr-logo/passw-dialog.png View File

Before After
Width: 270  |  Height: 20  |  Size: 2.7KB

BIN
p/plymouth-theme-easyvdr-logo/easyvdr-logo/progress-fade.png View File

Before After
Width: 70  |  Height: 12  |  Size: 269B

BIN
p/plymouth-theme-easyvdr-logo/easyvdr-logo/progress-fade_16bit.png View File

Before After
Width: 60  |  Height: 12  |  Size: 88B

BIN
p/plymouth-theme-easyvdr-logo/easyvdr-logo/progress-meter.png View File

Before After
Width: 277  |  Height: 9  |  Size: 236B

BIN
p/plymouth-theme-easyvdr-logo/easyvdr-logo/progress-meter_16bit.png View File

Before After
Width: 270  |  Height: 2  |  Size: 89B

BIN
p/plymouth-theme-easyvdr-logo/easyvdr-logo/spinner.png View File

Before After
Width: 70  |  Height: 70  |  Size: 1000B

BIN
p/plymouth-theme-easyvdr-logo/easyvdr-logo/test.png View File

Before After
Width: 10  |  Height: 10  |  Size: 148B

BIN
p/plymouth-theme-easyvdr-logo/easyvdr-logo/wallpaper.png View File

Before After
Width: 1920  |  Height: 1200  |  Size: 401KB

+ 10
- 0
u/ubiquity-slideshow-ubuntu-83.1/.gcfunctions View File

@@ -0,0 +1,10 @@
build:
name: Build
command: make
show-in: any
offline: True
test:
name: Test
command: ./test-slideshow.sh
show-in: any
offline: True

+ 23
- 0
u/ubiquity-slideshow-ubuntu-83.1/AUTHORS View File

@@ -0,0 +1,23 @@
This file lists contributors to ubiquity-slideshow-ubuntu

<http://launchpad.net/ubiquity-slideshow-ubuntu>

-----

More detailed information about contributions is available in our version
control history at <http://code.launchpad.net/ubiquity-slideshow-ubuntu>

Feel free to add yourself as you see fit!

-----

Dylan McCall <http://launchpad.net/~dylanmccall>
Andrew Higginson <http://launchpad.net/~rugby471>
Anabelle Handdoek <http://launchpad.net/~anabelle>
Andrew Sayers <https://launchpad.net/~andrew-bugs-launchpad-net>
Mads Rosendahl <http://launchpad.net/~madsrh>

-----

Slideshow script powered by jQuery and the jQuery Cycle Plugin by Mike Alsup


+ 348
- 0
u/ubiquity-slideshow-ubuntu-83.1/COPYING View File

@@ -0,0 +1,348 @@
Copyright (C) 2009 The Ubiquity Slideshow Team
<ubiquity-slideshow@lists.launchpad.net>
<http://launchpad.net/~ubiquity-slideshow>

Please see debian/copyright for more information.

Portions of this project are licensed under the GNU GPL version 2.

GNU GENERAL PUBLIC LICENSE
Version 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

Preamble

The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.

When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.

We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and
modification follow.

GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.

1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.

You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.

b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.

c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.

In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,

b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,

c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.

If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.

4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.

5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.

7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.

9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.

10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.

NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS

How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>

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 of the License, 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 this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:

Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:

Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.

<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice

This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.


+ 22
- 0
u/ubiquity-slideshow-ubuntu-83.1/Makefile View File

@@ -0,0 +1,22 @@
# Makefile for ubiquity-slideshow-ubuntu

SOURCE=.
BUILD=$(SOURCE)/build
SOURCESLIDES=$(SOURCE)/slideshows

all: clean build_ubuntu translations

build_init:
mkdir -p $(BUILD)

build_ubuntu: build_init
cp -rL $(SOURCESLIDES)/ubuntu $(BUILD)


translations:
python generate-local-slides.py ubuntu

.PHONY : clean

clean:
-rm -rf $(BUILD)

+ 265
- 0
u/ubiquity-slideshow-ubuntu-83.1/README View File

@@ -0,0 +1,265 @@
ubiquity-slideshow-ubuntu
<http://launchpad.net/ubiquity-slideshow-ubuntu>

-----

This project is about slideshows which appear while installing Ubuntu or
its *buntu friends. The one source package provides a number of Debian
packages for Ubuntu, including ubiquity-slideshow-ubuntu,
ubiquity-slideshow-lubuntu and ubiquity-slideshow-kubuntu.

This is associated with the ubiquity-slideshow group on Launchpad at
<https://launchpad.net/~ubiquity-slideshow>.

Constructive feedback on the group mailing list is always appreciated!

Please also note the "COPYING", "AUTHORS" and "TODO" files in this
directory, which all have cool stuff in them.


----- Testing the slideshow

The easiest way to test changes to the slideshow is to run
./test-slideshow.sh. (Note: needs zenity, which is probably already
installed). This will quickly build the slideshow with your changes and
play it. Note that the test-slideshow script does not do localization.
Testing localization is currently a more involved process.

If you are using the awesome Ground Control, there will be a Test option
and a (full) Build option when you open this project in Nautilus.
Check out <http://launchpad.net/groundcontrol> for more information.


----- Changing slideshows

Each slideshow is inside the ./slideshows directory. These are created
with HTML, CSS and Javascript. They all share the link-core directory in
common. This directory has some Javascript files which should be used by
every slideshow.

To actually edit a slideshow, simply open it from the slideshows directory.
Each slide will be its own html file, like
slideshows/ubuntu/slides/welcome.html. index.html will contain a list of
these slides in the order they will appear.

Just pull open a slide in your favourite text editor and have fun.

Be sure to test out your creations! The quickest way is test-slideshow.sh.

You may notice some HTML comments (<!-- comment -->) in existing slides.
These will appear as notes for translators. If you write something that may
be confusing for them, please leave a comment in the same fashion.


----- Screenshot guidelines

Screenshots are taken at full size, scaled precisely 60% and cropped to
match the other screenshots for a given slideshow. (Ubuntu's screenshots
are 448x304 pixels). Please use GIMP to scale images and set
interpolation to “Sinc (Lanczos3)”. That algorithm seems to handle thin
lines particularly well, and it's good to stay as consistent as we can.

We try to follow some conventions for screenshot content, too:

* Do something. Open an example document, draw a pretty picture, chat with
with someone, play music. Do whatever you might normally do.

* Do not over-do. It can be tempting to stick every feature into view.
However, that can be really overwhelming. Instead, try to focus on a
single cool idea that will make somebody interested. It doesn't even have
to be about features. Maybe something you can make? Pick one thing that
really captures the essence of what you want to show.

* Stick to defaults. We all love to customise, but make sure your fonts,
themes and applications look the same as people get with their shiny new
systems.

* Be people. People are awesome. You're awesome! But anonymized
screenshots are jarring. If you're afraid you might frighten a mainstream
audience, consider making a fun persona in a different user account.

* Personas live short lives. Try to avoid time as much as possible - it's
awkward to show the current date, for example. A popular mistake is where
a photo manager has images all taken on a single day! Where you can, try
to make things look lived in.

* Do not depend on text in screenshots. Remember that the slideshow's copy
is translated, so that text will be unreadable for a lot of users. Try to
find a way to communicate things visually and avoid emphasizing any text
on the screen.

* Avoid showing the mouse pointer.

* Editing your screenshots with an image editor is fine if you need to
remove some cut off text, for example, but do not deviate from what is
actually possible with an application.

So, I just made screenshots a little trickier, but I hope that helps.
Good luck!


----- Musing on writing style

* We can assume that the user has chosen to install Ubuntu willingly. That
person is now an Ubuntu user and doesn't need to be sold on it further.
The sales-person voice should not exist here. If you start to hear that
voice, file a bug immediately.

* Avoid the car instruction manual voice where possible. That is, try not
to tell people where specific features are, but what they can expect to
find. This is because the slideshow won't follow our users everywhere,
so we have to answer a different question: "What next?"
If we fixate on pressing buttons, the lessons will not stick :)

* Please try to keep things neat, tidy and short. In a lot of cases we can
trust our viewers to find things on their own as long as we show them
where to start. It is possible for a single slide to do quite a bit.


----- Additional musings on writing

* The slideshow is a temporary resource. When it's finished, it's gone
until you install Ubuntu again (which is hopefully never, because our
upgrade tool is awesome and Ubuntu will breathe +1000 life into a
computer).

* So, what we want to do here is point a user in some interesting
directions, but we can't go all the way. We have to avoid the case where
somebody feels they need to go back to the slideshow for information. It's
fine if someone will miss your slideshow (people love pretty things!), but
it's frustrating when a complex product has all its critical information on
the outer packaging.

* Avoid writing links that people will need to click, because they won't
always be able to. They probably won't want to, either, because there is an
entire operating system being installed. Our user's 1 GHz netbook sounds
like a washing machine as it is. Instead, we want people to see a simple
link they can write down or remember for later. So, contrary to modern web
writing conventions,
<a href="http://www.ubuntu.com/community">ubuntu.com/community</a>
is a better link than…
<a href="http://www.ubuntu.com/community">the Ubuntu community website</a>

* This also goes back to the second point: if you have to copy and paste a
URL, try to find something less specific and more memorable.


----- Embedding a slideshow
(For example, in an installer)

Slideshows are simple HTML documents and can be embedded with WebKit or
any other browser widget that supports Javascript and CSS.
./Slideshow.py contains an example implementation with GTK+ 3 and Python.

The slideshow can be given some information through its URL. Append "#"
and add attributes as key=value pairs, separated by "?". The following are
recognized:

?controls Enables debugging controls
?locale=LANG Sets the locale. For example, locale=en_CA.
?rtl Specifies whether to display text right-to-left.

The slideshow expects to be passed a locale parameter, based on the
current locale. It may fall back to English if the requested locale is not
available.

The rtl parameter should be added if that is the current text direction,
since the slideshow will not do this automatically based on the locale.

There is also an ini-style file (see ConfigParser) for each slideshow,
called slideshow.conf. This contains two important variables inside the
Slideshow section: width and height. This way, your implementation can
find the specific size for its web widget and can choose whether to
display a slideshow based on the available screen space.


----- Editing slideshow design

For each slideshow, the visual design can be customized. First of all,
notice that each slideshow inside the ./slideshows directory has a file
called slideshow.conf. If you change the dimensions of the slideshow, make
sure to edit this.

Each slideshow also (usually) has a slides/link directory with a CSS file
and some graphics that can be customized.

Of course, the entire thing can be completely redone, too! For more in
depth tinkering, you can edit index.html. Just make sure the general
structure of the document is the same.

In the <head>, we need a link to directory.js and every js file in
link-core.

index.html also needs a block called container, containing another block
named slideshow, which lists all the slides as
<div><a href="slide" class="load"></a></div>

A block with id="debug-controls", and widgets with id="prev-slide" and
id="next-slide" will be handled automatically to produce the debugging
controls that appear when #?controls is added to the url.

Outside of those requirements, this should be fairly flexible. Have fun!


----- Adding / editing images

Adding images is something that individual slideshows have a lot of
freedom with; the underlying system doesn't mind how this happens. There
are a few things to note, though:

* It is nice to have the source of each image (eg: SVG file) in the
images-source directory if we are making any changes.

* If an image comes from an external source, please attribute its author
and specify its license in debian/copyright.

* If a common effect is being applied to multiple images, consider
creating an automated script and placing it under the images-source
directory. For example, with the Ubuntu slideshow we have a script called
generate-reflected-pngs.sh which, with a GIMP script, adds a fuzzy
reflection to some SVG images and exports them as PNGs. This will help
people working on the project in the future.


----- Localization

A .pot file is generated for each slideshow. One .pot file contains
the strings from every slide in the slideshow.
We routinely gather the translations (in the form of .po files) and add
them to the ./po directory. The build script in ./generate-local-slides.sh
automatically generates slides for each translation using po2html.

The underlying structure is a bit convoluted, but the good news is this:
Actually making translations for this project is very conventional. You
can simply head over to the Ubuntu source package on Launchpad and submit
new strings.
<http://translations.launchpad.net/ubuntu/+source/ubiquity-slideshow-ubuntu>
We will gather the results and merge them back into the project for
releases.


----- Other handy scripts

First of all, the slideshow can be built by running make. This uses the
Makefile, which in our case is a fairly straight-forward shell script.
Each slideshow gets its own rule in the Makefile which runs the
appropriate other scripts for the final output to ./build.

./Slideshow.py: Tests the slideshow (after it has been built) in a GUI
similar to Ubiquity's installation progress window.
Run ./Slideshow.py --help from a command line to see some additional
parameters it will take.
By default, opens the slideshow in ./build/ubuntu.

./test-slideshow.sh: Slightly easier way of running Slideshow.py, for
quick tests.

./images-source/*.sh: As mentioned in the "Adding / editing images"
section, scripts are placed here that apply common effects to source
images. This makes it easier to add images to some slideshows.

./generate-pot-files.sh: When slideshow content has been edited, this can
be run to produce new .pot files (for translators) reflecting that
content. There is probably no need to do this yourself, though; the people
who push those .pot files to Rosetta will do it.


+ 174
- 0
u/ubiquity-slideshow-ubuntu-83.1/Slideshow.py View File

@@ -0,0 +1,174 @@
#!/usr/bin/python3

import os
from gi.repository import GLib, Gdk, Gtk, WebKit
from configparser import ConfigParser
import subprocess

import sys
import locale
from optparse import OptionParser

'''
A basic GTK widget (WebKit.WebView) which displays a slideshow in the
ubiquity-slideshow format. Feel free to copy and paste this to your application
and customize it as needed.
'''
class SlideshowViewer(WebKit.WebView):
'''
@param path Path to the slideshow, in which the slideshow.conf file is stored.
@param locale Ideal locale to use for the slideshow
@param rtl True if the given locale should be displayed right-to-left
'''
def __init__(self, path, locale='C', rtl=False, controls=False):
self.path = path
config = ConfigParser()
config.read(os.path.join(self.path,'slideshow.conf'))
slideshow_main = 'file://' + os.path.join(self.path, 'slides', 'index.html')
parameters = []
slideshow_locale = self._find_available_locale(locale)
parameters.append('locale=%s' % slideshow_locale)
if rtl:
parameters.append('rtl')
if controls:
parameters.append('controls')
WebKit.WebView.__init__(self)
parameters_encoded = '&'.join(parameters)
self.open('%s#%s' % (slideshow_main, parameters_encoded))
settings = self.get_settings()
settings.set_property("enable-default-context-menu", False)
#Recent webkit feature. See <http://trac.WebKit.org/changeset/52087>.
settings.set_property("enable-file-access-from-file-uris", True)
config_width = int(config.get('Slideshow','width'))
config_height = int(config.get('Slideshow','height'))
self.set_size_request(config_width,config_height)
self.connect('navigation-policy-decision-requested', self._on_navigate_decision)
self.connect('navigation-requested', self._on_navigate)
self.connect('new-window-policy-decision-requested', self._on_new_window_decision)
self.connect('create-web-view', self._on_new_window)
'''
Determines the ideal locale for the slideshow, based on the given locale,
or 'c' if an ideal one is not available.
@param locale The full locale string, for example en_AU.UTF8
@return The available locale which best matches the input.
'''
def _find_available_locale(self, locale):
base_slides_dir = os.path.join(self.path, 'slides', 'l10n')
extra_slides_dir = os.path.join(self.path, 'slides', 'extra')
ll_cc = locale.split('.')[0]
ll = ll_cc.split('_')[0]
for slides_dir in [extra_slides_dir, base_slides_dir]:
for test_locale in [locale, ll_cc, ll]:
locale_dir = os.path.join(slides_dir, test_locale)
if os.path.exists(locale_dir):
return test_locale
return 'C'
def _new_browser_window(self, uri):
subprocess.Popen(['xdg-open', uri], close_fds=True)
def _on_navigate_decision(self, view, frame, req, action, decision):
reason = action.get_reason()
if reason == "link-clicked":
decision.use()
return False
decision.ignore()
return True
def _on_navigate(self, view, frame, req):
uri = req.get_uri()
self._new_browser_window(uri)
return True
def _on_new_window_decision(self, view, frame, req, action, decision):
uri = req.get_uri()
decision.ignore()
self._new_browser_window(uri)
return True
def _on_new_window(self, view, frame):
return True


def progress_increment(progressbar, fraction):
new_fraction = progressbar.get_fraction() + fraction
if new_fraction > 1:
progressbar.set_fraction(1.0)
return False
progressbar.set_fraction(new_fraction)
return True


#Main program


default_path = os.path.join( os.path.abspath(os.path.dirname(sys.argv[0])) , 'build', 'ubuntu' )

default_locale = locale.getlocale()[0]

parser = OptionParser(usage="usage: %prog [options] [slideshow]")
parser.add_option("-l", "--locale", help="LOCALE to use for the slideshow", metavar="LOCALE", default=default_locale)
parser.add_option("-r", "--rtl", action="store_true", help="use output in right-to-left format")
parser.add_option("-c", "--controls", action="store_true", help="Enable controls in the slideshow (you may need to resize the window)")
parser.add_option("-p", "--path", help="path to the SLIDESHOW which will be presented", metavar="SLIDESHOW", default=default_path)

(options, args) = parser.parse_args()
options.path = os.path.abspath(options.path)
if os.path.exists(options.path) == False:
print("\033[91m * Please build the slideshow content first by using the make command * \033[0m")
sys.exit()


Gdk.threads_init()

# Set default SSL CA file for secure communication with web services.
# This is important, because libsoup is not secure by default.
soup_session = WebKit.get_default_session()
soup_session.set_property('ssl-strict', True)
soup_session.set_property('ssl-use-system-ca-file', True)


slideshow_window = Gtk.Window()
slideshow_window.set_title("Ubiquity Slideshow with Webkit")
slideshow_window.connect('destroy',Gtk.main_quit)

slideshow_window.set_resizable(False)

slideshow_container = Gtk.VBox()
slideshow_window.add(slideshow_container)

slideshow = SlideshowViewer(options.path, locale=options.locale, rtl=options.rtl, controls=options.controls)

install_progressbar = Gtk.ProgressBar()
install_progressbar.set_margin_top(8)
install_progressbar.set_margin_right(8)
install_progressbar.set_margin_bottom(8)
install_progressbar.set_margin_left(8)
install_progressbar.set_fraction(0)


slideshow_container.add(slideshow)
slideshow_container.add(install_progressbar)

slideshow_container.set_child_packing(install_progressbar, True, False, 0, 0)


slideshow_window.show_all()


install_timer = GLib.timeout_add_seconds(2, progress_increment, install_progressbar, 0.01)


Gtk.main()

+ 8
- 0
u/ubiquity-slideshow-ubuntu-83.1/TODO View File

@@ -0,0 +1,8 @@
* Translation infrastructure: Need Javascript solution in
slides/index.html that will automatically load the appropriate localized
version of each slide.

* Make a smarter Makefile, with proper targets and the like to avoid
rebuilding the entire thing every time make gets run.

* Nicer testing tools for contributors to quickly see their work.

+ 1044
- 0
u/ubiquity-slideshow-ubuntu-83.1/debian/changelog
File diff suppressed because it is too large
View File


+ 1
- 0
u/ubiquity-slideshow-ubuntu-83.1/debian/compat View File

@@ -0,0 +1 @@
5

+ 20
- 0
u/ubiquity-slideshow-ubuntu-83.1/debian/control View File

@@ -0,0 +1,20 @@
Source: ubiquity-slideshow-ubuntu
Section: x11
Priority: optional
Maintainer: Ubiquity Slideshow Team <ubiquity-slideshow@lists.launchpad.net>
Build-Depends: cdbs, debhelper (>= 5)
Build-Depends-Indep: po4a, python-utidylib, python
Vcs-Bzr: https://code.launchpad.net/~ubiquity-slideshow/ubiquity-slideshow-ubuntu/html
Standards-Version: 3.9.4
Homepage: https://launchpad.net/ubiquity-slideshow-ubuntu

Package: ubiquity-slideshow-ubuntu
Architecture: all
Provides: ubiquity-slideshow
Conflicts: ubiquity-slideshow
Replaces: ubiquity-slideshow
Depends: ${misc:Depends}
Description: Ubiquity slideshow for Ubuntu
A slideshow intended for the Ubiquity installer, designed as a quick
introduction to Ubuntu.


+ 554
- 0
u/ubiquity-slideshow-ubuntu-83.1/debian/copyright View File

@@ -0,0 +1,554 @@
This is packaged by the Ubiquity Slideshow Team
<ubiquity-slideshow@lists.launchpad.net>

Copyright (C) 2009 The Ubiquity Slideshow
Team <ubiquity-slideshow@lists.launchpad.net>
<http://launchpad.net/~ubiquity-slideshow>

The source code was obtained from:
<http://code.launchpad.net/~ubiquity-slideshow/ubiquity-slideshow-ubuntu/html>

-----

Files original to this project, except where stated otherwise, are
licensed under the Creative Commons Creative Commons Attribution-Share
Alike 3.0 Unported License.

--

Unless otherwise indicated, artwork is available under the Creative
Commons Attribution Share-alike license v3.0 or any later version. To
view a copy of this license, visit
http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to
Creative Commons, 171 Second Street, Suite 300, San Francisco,
California, 94105, USA. On Ubuntu systems the complete text of the
license can be found in /usr/share/common-licenses.

Some Rights Reserved:

The rights in the trademarks, logos, service marks of Canonical Ltd,
as well as the look and feel of Ubuntu, are subject to the Canonical
Trademark Policy at http://www.ubuntu.com/ubuntu/TrademarkPolicy

--

./slideshows/link-core/jquery.js
Copyright 2010, John Resig
Dual licensed under the MIT or GPL Version 2 licenses
Web site: <http://jquery.com>

--

./slideshows/link-core/jquery.cycle.all.js
Copyright 2007-2010, Mike Alsup
Dual licensed under the MIT or GPL Version 2 licenses
Web site: <http://jquery.malsup.com/cycle/>

--

Translations (*.po files stored stored in the ./po directory) are
produced using Launchpad's Rosetta tool and, therefore, licensed using
the BSD licence.

--

This project ships with many images which are from outside sources.
This is a list of those images with their respective license details.
Note that empty padding is often added to the images.
Work whose content has been modified is marked with an asterisk (*)


In slideshows/ubuntu/slides/icons:

accessibility.png, evolution.png, openoffice.png, media.png,
personalize.png
From the Humanity Icon Set <http://launchpad.net/humanity>
GNU General Public License Version 2 or later (GPL-2)

empathy.png
From the Empathy project <http://live.gnome.org/Empathy>
GNU General Public License Version 2 or later (GPL-2)

shotwell.png
From the Shotwell project <http://yorba.org/shotwell/>
GNU Lesser General Public License Version 2.1 (LGPL-2.1).

softwarecenter.png
From the Software Center project. <launchpad.net/software-center>
Copyright: © 2009 Canonical,
© 2006 Sebastian Heinlein <glatzor@ubuntu.com>
GNU General Public License Version 2 or later (GPL-2)

-----

The license texts in the next section are included for your convenience.

-----

MIT license (MIT):

Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use, copy,
modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.

-----

BSD license (BSD):

Redistribution and use in source and binary forms, with or
without modification, are permitted provided that the following
conditions are met:

* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following
disclaimer.

* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the
following disclaimer in the documentation and/or other
materials provided with the distribution.

* Neither the name of the Ubiquity Slideshow Team nor the names
of its contributors may be used to endorse or promote products
derived from this software without specific prior
written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-----

Creative Commons Attribution-ShareAlike 3.0 (CC-BY-SA-3):

THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS
CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK
IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF
THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT
LAW IS PROHIBITED. BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED
HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS
LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A
CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN
CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
1. Definitions a. "Adaptation" means a work based upon the Work,
or upon the Work and other
pre-existing works, such as a translation, adaptation,
derivative work, arrangement of music or other
alterations of a literary or artistic work, or
phonogram or performance and includes cinematographic
adaptations or any other form in which the Work may be
recast, transformed, or adapted including in any form
recognizably derived from the original, except that a
work that constitutes a Collection will not be considered
an Adaptation for the purpose of this License. For the
avoidance of doubt, where the Work is a musical work,
performance or phonogram, the synchronization of the Work
in timed-relation with a moving image ("synching") will be
considered an Adaptation for the purpose of this License.
b. "Collection" means a collection of literary or artistic works,
such as
encyclopedias and anthologies, or performances, phonograms
or broadcasts, or other works or subject matter other
than works listed in Section 1(f) below, which, by reason
of the selection and arrangement of their contents,
constitute intellectual creations, in which the Work is
included in its entirety in unmodified form along with one
or more other contributions, each constituting separate
and independent works in themselves, which together are
assembled into a collective whole. A work that constitutes
a Collection will not be considered an Adaptation (as
defined below) for the purposes of this License.
c. "Creative Commons Compatible License" means a license that
is listed at
http://creativecommons.org/compatiblelicenses that has
been approved by Creative Commons as being essentially
equivalent to this License, including, at a minimum,
because that license: (i) contains terms that have
the same purpose, meaning and effect as the License
Elements of this License; and, (ii) explicitly permits the
relicensing of adaptations of works made available under
that license under this License or a Creative Commons
jurisdiction license with the same License Elements as
this License.
d. "Distribute" means to make available to the public the
original and
copies of the Work or Adaptation, as appropriate,
through sale or other transfer of ownership.
e. "License Elements" means the following high-level license
attributes as
selected by Licensor and indicated in the title of this
License: Attribution, ShareAlike.
f. "Licensor" means the individual, individuals, entity or
entities that
offer(s) the Work under the terms of this License.
g. "Original Author" means, in the case of a literary or artistic
work, the
individual, individuals, entity or entities who created
the Work or if no individual or entity can be identified,
the publisher; and in addition (i) in the case of a
performance the actors, singers, musicians, dancers,
and other persons who act, sing, deliver, declaim,
play in, interpret or otherwise perform literary or
artistic works or expressions of folklore; (ii) in the
case of a phonogram the producer being the person or
legal entity who first fixes the sounds of a performance
or other sounds; and, (iii) in the case of broadcasts,
the organization that transmits the broadcast.
h. "Work" means the literary and/or artistic work offered under
the terms of
this License including without limitation any production
in the literary, scientific and artistic domain,
whatever may be the mode or form of its expression
including digital form, such as a book, pamphlet and
other writing; a lecture, address, sermon or other work
of the same nature; a dramatic or dramatico-musical
work; a choreographic work or entertainment in dumb
show; a musical composition with or without words;
a cinematographic work to which are assimilated works
expressed by a process analogous to cinematography;
a work of drawing, painting, architecture, sculpture,
engraving or lithography; a photographic work to which
are assimilated works expressed by a process analogous
to photography; a work of applied art; an illustration,
map, plan, sketch or three-dimensional work relative
to geography, topography, architecture or science;
a performance; a broadcast; a phonogram; a compilation
of data to the extent it is protected as a copyrightable
work; or a work performed by a variety or circus performer
to the extent it is not otherwise considered a literary
or artistic work.
i. "You" means an individual or entity exercising rights under
this License
who has not previously violated the terms of this License
with respect to the Work, or who has received express
permission from the Licensor to exercise rights under
this License despite a previous violation.
j. "Publicly Perform" means to perform public recitations of
the Work and to
communicate to the public those public recitations,
by any means or process, including by wire or wireless
means or public digital performances; to make available
to the public Works in such a way that members of the
public may access these Works from a place and at a place
individually chosen by them; to perform the Work to the
public by any means or process and the communication to
the public of the performances of the Work, including by
public digital performance; to broadcast and rebroadcast
the Work by any means including signs, sounds or images.
k. "Reproduce" means to make copies of the Work by any means
including
without limitation by sound or visual recordings and the
right of fixation and reproducing fixations of the Work,
including storage of a protected performance or phonogram
in digital form or other electronic medium.
2. Fair Dealing Rights. Nothing in this License is intended
to reduce, limit, or restrict any uses free from copyright or
rights arising from limitations or exceptions that are provided
for in connection with the copyright protection under copyright
law or other applicable laws. 3. License Grant. Subject to the
terms and conditions of this License, Licensor hereby grants You
a worldwide, royalty-free, non-exclusive, perpetual (for the
duration of the applicable copyright) license to exercise the
rights in the Work as stated below: a. to Reproduce the Work,
to incorporate the Work into one or more
Collections, and to Reproduce the Work as incorporated
in the Collections;
b. to create and Reproduce Adaptations provided that any such
Adaptation,
including any translation in any medium, takes reasonable
steps to clearly label, demarcate or otherwise identify
that changes were made to the original Work. For example,
a translation could be marked "The original work was
translated from English to Spanish," or a modification
could indicate "The original work has been modified.";
c. to Distribute and Publicly Perform the Work including as
incorporated in
Collections; and,
d. to Distribute and Publicly Perform Adaptations. e. For the
avoidance of doubt:
i. Non-waivable Compulsory License Schemes. In
those jurisdictions in
which the right to collect royalties
through any statutory or compulsory
licensing scheme cannot be waived,
the Licensor reserves the exclusive
right to collect such royalties for any
exercise by You of the rights granted
under this License;
ii. Waivable Compulsory License Schemes. In
those jurisdictions in
which the right to collect royalties
through any statutory or compulsory
licensing scheme can be waived, the
Licensor waives the exclusive right to
collect such royalties for any exercise
by You of the rights granted under this
License; and,
iii. Voluntary Licens Schemes. The Licensor waives the
right to collect
royalties, whether individually or, in
the event that the Licensor is a member
of a collecting society that administers
voluntary licensing schemes, via that
society, from any exercise by You of
the rights granted under this License.
The above rights may be exercised in all media and formats whether
now known or hereafter devised. The above rights include the
right to make such modifications as are technically necessary
to exercise the rights in other media and formats. Subject to
Section 8(f), all rights not expressly granted by Licensor are
hereby reserved. 4. Restrictions. The license granted in Section
3 above is expressly made subject to and limited by the following
restrictions: a. You may Distribute or Publicly Perform the Work
only under the terms of
this License. You must include a copy of, or the Uniform
Resource Identifier (URI) for, this License with every
copy of the Work You Distribute or Publicly Perform. You
may not offer or impose any terms on the Work that
restrict the terms of this License or the ability of the
recipient of the Work to exercise the rights granted to
that recipient under the terms of the License. You may not
sublicense the Work. You must keep intact all notices that
refer to this License and to the disclaimer of warranties
with every copy of the Work You Distribute or Publicly
Perform. When You Distribute or Publicly Perform the Work,
You may not impose any effective technological measures
on the Work that restrict the ability of a recipient of
the Work from You to exercise the rights granted to that
recipient under the terms of the License. This Section 4
(a) applies to the Work as incorporated in a Collection,
but this does not require the Collection apart from
the Work itself to be made subject to the terms of this
License. If You create a Collection, upon notice from any
Licensor You must, to the extent practicable, remove from
the Collection any credit as required by Section 4(c),
as requested. If You create an Adaptation, upon notice
from any Licensor You must, to the extent practicable,
remove from the Adaptation any credit as required by
Section 4(c), as requested.
b. You may Distribute or Publicly Perform an Adaptation only
under the terms
of: (i) this License; (ii) a later version of this License
with the same License Elements as this License; (iii)
a Creative Commons jurisdiction license (either this or
a later license version) that contains the same License
Elements as this License (e.g., Attribution-ShareAlike
3.0 US)); (iv) a Creative Commons Compatible License. If
you license the Adaptation under one of the licenses
mentioned in (iv), you must comply with the terms of
that license. If you license the Adaptation under the
terms of any of the licenses mentioned in (i), (ii) or
(iii) (the "Applicable License"), you must comply with
the terms of the Applicable License generally and the
following provisions: (I) You must include a copy of,
or the URI for, the Applicable License with every copy of
each Adaptation You Distribute or Publicly Perform; (II)
You may not offer or impose any terms on the Adaptation
that restrict the terms of the Applicable License or the
ability of the recipient of the Adaptation to exercise
the rights granted to that recipient under the terms
of the Applicable License; (III) You must keep intact
all notices that refer to the Applicable License and
to the disclaimer of warranties with every copy of the
Work as included in the Adaptation You Distribute or
Publicly Perform; (IV) when You Distribute or Publicly
Perform the Adaptation, You may not impose any effective
technological measures on the Adaptation that restrict
the ability of a recipient of the Adaptation from You
to exercise the rights granted to that recipient under
the terms of the Applicable License. This Section 4(b)
applies to the Adaptation as incorporated in a Collection,
but this does not require the Collection apart from the
Adaptation itself to be made subject to the terms of
the Applicable License.
c. If You Distribute, or Publicly Perform the Work or any
Adaptations or
Collections, You must, unless a request has been made
pursuant to Section 4(a), keep intact all copyright
notices for the Work and provide, reasonable to the
medium or means You are utilizing: (i) the name of
the Original Author (or pseudonym, if applicable) if
supplied, and/or if the Original Author and/or Licensor
designate another party or parties (e.g., a sponsor
institute, publishing entity, journal) for attribution
("Attribution Parties") in Licensor's copyright notice,
terms of service or by other reasonable means, the name
of such party or parties; (ii) the title of the Work if
supplied; (iii) to the extent reasonably practicable,
the URI, if any, that Licensor specifies to be associated
with the Work, unless such URI does not refer to the
copyright notice or licensing information for the Work;
and (iv) , consistent with Ssection 3 (b), in the case of
an Adaptation, a credit identifying the use of the Work
in the Adaptation (e.g., "French translation of the Work
by Original Author," or "Screenplay based on original
Work by Original Author"). The credit required by this
Section 4(c) may be implemented in any reasonable manner;
provided, however, that in the case of a Adaptation or
Collection, at a minimum such credit will appear, if a
credit for all contributing authors of the Adaptation or
Collection appears, then as part of these credits and in a
manner at least as prominent as the credits for the other
contributing authors. For the avoidance of doubt, You
may only use the credit required by this Section for the
purpose of attribution in the manner set out above and,
by exercising Your rights under this License, You may not
implicitly or explicitly assert or imply any connection
with, sponsorship or endorsement by the Original Author,
Licensor and/or Attribution Parties, as appropriate,
of You or Your use of the Work, without the separate,
express prior written permission of the Original Author,
Licensor and/or Attribution Parties.
d. Except as otherwise agreed in writing by the Licensor or as
may be
otherwise permitted by applicable law, if You Reproduce,
Distribute or Publicly Perform the Work either by itself
or as part of any Adaptations or Collections, You must
not distort, mutilate, modify or take other derogatory
action in relation to the Work which would be prejudicial
to the Original Author's honor or reputation. Licensor
agrees that in those jurisdictions (e.g. Japan), in
which any exercise of the right granted in Section 3(b)
of this License (the right to make Adaptations) would
be deemed to be a distortion, mutilation, modification
or other derogatory action prejudicial to the Original
Author's honor and reputation, the Licensor will waive
or not assert, as appropriate, this Section, to the
fullest extent permitted by the applicable national law,
to enable You to reasonably exercise Your right under
Section 3(b) of this License (right to make Adaptations)
but not otherwise.
5. Representations, Warranties and Disclaimer UNLESS OTHERWISE
MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS
THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY
OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF