code:
diff -Nuar ConsoleKit2-0.9.3.orig/src/ck-manager.c ConsoleKit2-0.9.3/src/ck-manager.c
--- ConsoleKit2-0.9.3.orig/src/ck-manager.c	2015-06-09 19:04:19.000000000 +0300
+++ ConsoleKit2-0.9.3/src/ck-manager.c	2015-06-14 21:30:51.943744599 +0300
@@ -2851,6 +2851,11 @@
         pid_t          calling_pid = 0;
         char          *cookie;

+        if (pid <= 1) {
+                throw_error (context, CK_MANAGER_ERROR_INVALID_INPUT, _("pid must be > 1"));
+                return TRUE;
+        }
+
         manager = CK_MANAGER (ckmanager);

         sender = g_dbus_method_invocation_get_sender (context);
diff -Nuar ConsoleKit2-0.9.3.orig/src/ck-session.c ConsoleKit2-0.9.3/src/ck-session.c
--- ConsoleKit2-0.9.3.orig/src/ck-session.c	2015-05-18 06:43:04.000000000 +0300
+++ ConsoleKit2-0.9.3/src/ck-session.c	2015-06-14 21:30:55.946744527 +0300
@@ -55,7 +55,6 @@
         char            *seat_id;

         char            *login_session_id;
-        guint            uid;

         GTimeVal         creation_time;

@@ -331,6 +330,11 @@

         g_return_val_if_fail (CK_IS_SESSION (cksession), FALSE);

+        if (console_kit_session_get_idle_hint (cksession) == FALSE) {
+                throw_error (context, CK_SESSION_ERROR_GENERAL, "idle since hint not set");
+                return TRUE;
+        }
+
         date_str = g_time_val_to_iso8601 (&session->priv->idle_since_hint);

         console_kit_session_complete_get_idle_since_hint (cksession, context, date_str);
@@ -386,7 +390,7 @@
         }

         /* only restrict this by UID for now */
-        if (session->priv->uid != calling_uid) {
+        if (console_kit_session_get_unix_user (cksession) != calling_uid) {
                 throw_error (context, CK_SESSION_ERROR_INSUFFICIENT_PERMISSION, _("Only session owner may set idle hint state"));
                 return TRUE;
         }
@@ -836,7 +840,11 @@

         g_return_val_if_fail (CK_IS_SESSION (cksession), FALSE);

-        console_kit_session_complete_get_login_session_id (cksession, context, session->priv->login_session_id);
+        if (session->priv->login_session_id == NULL) {
+                throw_error (context, CK_SESSION_ERROR_FAILED, "no login session id");
+        } else {
+                console_kit_session_complete_get_login_session_id (cksession, context, session->priv->login_session_id);
+        }
         return TRUE;
 }

@@ -1240,7 +1248,7 @@
                 extra_env[n++] = g_strdup_printf ("CK_SESSION_TYPE=%s", console_kit_session_get_session_type (cksession));
         }
         extra_env[n++] = g_strdup_printf ("CK_SESSION_SEAT_ID=%s", session->priv->seat_id);
-        extra_env[n++] = g_strdup_printf ("CK_SESSION_USER_UID=%d", session->priv->uid);
+        extra_env[n++] = g_strdup_printf ("CK_SESSION_USER_UID=%d", console_kit_session_get_unix_user (cksession));
         if (console_kit_session_get_display_device (cksession) != NULL && strlen (console_kit_session_get_display_device (cksession)) > 0) {
                 extra_env[n++] = g_strdup_printf ("CK_SESSION_DISPLAY_DEVICE=%s", console_kit_session_get_display_device (cksession));
         }
@@ -1279,7 +1287,7 @@
         cksession = CONSOLE_KIT_SESSION (session);

         group_name = g_strdup_printf ("Session %s", session->priv->id);
-        g_key_file_set_integer (key_file, group_name, "uid", session->priv->uid);
+        g_key_file_set_integer (key_file, group_name, "uid", console_kit_session_get_unix_user (cksession));
         g_key_file_set_string (key_file,
                                group_name,
                                "seat",
diff -Nuar ConsoleKit2-0.9.3.orig/src/test-fus ConsoleKit2-0.9.3/src/test-fus
--- ConsoleKit2-0.9.3.orig/src/test-fus	1970-01-01 02:00:00.000000000 +0200
+++ ConsoleKit2-0.9.3/src/test-fus	2015-06-14 21:31:08.768744297 +0300
@@ -0,0 +1,69 @@
+#!/usr/bin/env python
+#
+# Test fast-user-switch functionality
+#
+
+import os
+import sys
+import gobject
+import dbus
+import dbus.glib
+
+def activate_reply (res):
+    print "session activated"
+
+def activate_error (e):
+    print str (e)
+
+def session_added_cb (ssid):
+    print "Session added: %s" % ssid
+
+def session_removed_cb (ssid):
+    print "Session removed: %s" % ssid
+
+def active_session_changed_cb (ssid):
+    print "Active session changed: %s" % ssid
+
+bus = dbus.SystemBus ()
+
+manager_obj = bus.get_object ('org.freedesktop.ConsoleKit', '/org/freedesktop/ConsoleKit/Manager')
+
+manager = dbus.Interface (manager_obj, 'org.freedesktop.ConsoleKit.Manager')
+
+current_ssid = manager.GetCurrentSession ()
+current_session_obj = bus.get_object ('org.freedesktop.ConsoleKit', current_ssid)
+current_session = dbus.Interface (current_session_obj, 'org.freedesktop.ConsoleKit.Session')
+
+sid = current_session.GetSeatId ()
+if not sid:
+    print "Current session is not attached to a seat, no switching possible"
+    sys.exit ()
+
+seat_obj = bus.get_object ('org.freedesktop.ConsoleKit', sid)
+seat = dbus.Interface (seat_obj, 'org.freedesktop.ConsoleKit.Seat')
+seat.connect_to_signal ('SessionAdded', session_added_cb)
+seat.connect_to_signal ('SessionRemoved', session_removed_cb)
+seat.connect_to_signal ('ActiveSessionChanged', active_session_changed_cb)
+
+can_fus = seat.CanActivateSessions()
+if can_fus:
+    print "The current seat supports session switching"
+else:
+    print "The current seat does not support session switching"
+
+# Show a list of sessions on the current seat
+sessions = seat.GetSessions ()
+for ssid in sessions:
+    session_obj = bus.get_object ('org.freedesktop.ConsoleKit', ssid)
+    session = dbus.Interface (session_obj, 'org.freedesktop.ConsoleKit.Session')
+    uid = session.GetUser ()
+    print "Session %s user=%u" % (ssid, uid)
+
+# then pretend a session-ID is selected:
+ssid = current_ssid
+session_obj = bus.get_object ('org.freedesktop.ConsoleKit', ssid)
+session = dbus.Interface (session_obj, 'org.freedesktop.ConsoleKit.Session')
+session.Activate (reply_handler = activate_reply, error_handler = activate_error)
+
+mainloop = gobject.MainLoop ()
+mainloop.run()
diff -Nuar ConsoleKit2-0.9.3.orig/src/test-manager.c ConsoleKit2-0.9.3/src/test-manager.c
--- ConsoleKit2-0.9.3.orig/src/test-manager.c	2015-06-08 10:14:14.000000000 +0300
+++ ConsoleKit2-0.9.3/src/test-manager.c	2015-06-14 21:31:10.021744275 +0300
@@ -277,7 +277,10 @@
 static gboolean
 validate_stuff ()
 {
-    gint fd;
+    gint      fd;
+    GVariant *session_var = NULL, *close_var = NULL;
+    gboolean  is_session_closed;
+    GError   *error = NULL;

     print_reply (manager, "CanRestart");

@@ -295,7 +298,7 @@

     fd = print_inhibit_reply (manager, "Inhibit");

-    print_reply (manager, "OpenSession");
+    session_var = print_method (manager, "OpenSession", g_variant_new ("()"));

     print_reply (manager, "GetSeats");

@@ -317,8 +320,29 @@
         g_close (fd, NULL);
     }

+    /* test closing our session */
+    if (session_var != NULL) {
+        g_print ("calling CloseSession\t");
+        close_var = g_dbus_proxy_call_sync (manager, "CloseSession",
+                                            session_var,
+                                            G_DBUS_CALL_FLAGS_NONE, 3000, NULL, &error);
+        if (close_var == NULL) {
+            g_print ("returned NULL\t");
+            if (error)
+                g_print ("error %s", error->message);
+        }
+    }
+
+    g_variant_get (close_var, "(b)", &is_session_closed);
+    g_print ("session closed? %s", is_session_closed ? "Closed" : "Not Closed");
+
     g_print ("done printing stuff\n\n");

+    if (session_var)
+        g_variant_unref (session_var);
+    if (close_var)
+        g_variant_unref (close_var);
+
     return TRUE;
 }

diff -Nuar ConsoleKit2-0.9.3.orig/src/test-method-access-policy ConsoleKit2-0.9.3/src/test-method-access-policy
--- ConsoleKit2-0.9.3.orig/src/test-method-access-policy	1970-01-01 02:00:00.000000000 +0200
+++ ConsoleKit2-0.9.3/src/test-method-access-policy	2015-06-14 21:31:10.021744275 +0300
@@ -0,0 +1,534 @@
+#!/usr/bin/env python
+#
+# Test access to methods
+#
+
+import os
+import sys
+import gobject
+import dbus
+import dbus.glib
+
+bus = dbus.SystemBus ()
+
+privileged = (os.geteuid () == 0)
+if privileged:
+    print "Running privileged as uid=%d pid=%d" % (os.geteuid (), os.getpid ())
+else:
+    print "Running unprivileged as uid=%d pid=%d" % (os.geteuid (), os.getpid ())
+
+print "Testing all public methods to check D-Bus policy"
+
+manager_obj = bus.get_object ('org.freedesktop.ConsoleKit', '/org/freedesktop/ConsoleKit/Manager')
+manager = dbus.Interface (manager_obj, 'org.freedesktop.ConsoleKit.Manager')
+
+print "Testing Manager"
+
+print "Testing Manager.OpenSession:",
+res = "PASS"
+try:
+    cookie = manager.OpenSession ()
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t\t%s" % res
+
+print "Testing Manager.CloseSession:",
+res = "PASS"
+try:
+    manager.CloseSession (cookie)
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t\t%s" % res
+
+print "Testing Manager.OpenSessionWithParameters:",
+res = "PASS"
+try:
+    cookie = manager.OpenSessionWithParameters (dbus.Array([], signature = "sv"))
+    if not privileged:
+        res = "FAIL"
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        if privileged:
+            res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t%s" % res
+
+print "Testing Manager.GetSeats:",
+res = "PASS"
+try:
+    manager.GetSeats ()
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t\t%s" % res
+
+print "Testing Manager.GetSessionForCookie:",
+res = "PASS"
+try:
+    manager.GetSessionForCookie (os.environ['XDG_SESSION_COOKIE'])
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t%s" % res
+
+print "Testing Manager.GetSessionForUnixProcess:",
+res = "PASS"
+try:
+    manager.GetSessionForUnixProcess (os.getpid ())
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t%s" % res
+
+print "Testing Manager.GetCurrentSession:",
+res = "PASS"
+try:
+    manager.GetCurrentSession ()
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t%s" % res
+
+print "Testing Manager.GetSessionsForUnixUser:",
+res = "PASS"
+try:
+    manager.GetSessionsForUnixUser (os.geteuid ())
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t%s" % res
+
+print "Testing Manager.GetSessionsForUser:",
+res = "PASS"
+try:
+    manager.GetSessionsForUser (os.geteuid ())
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t%s" % res
+
+print "Testing Manager.GetSystemIdleHint:",
+res = "PASS"
+try:
+    manager.GetSystemIdleHint ()
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t%s" % res
+
+print "Testing Manager.GetSystemIdleSinceHint:",
+res = "PASS"
+try:
+    manager.GetSystemIdleSinceHint ()
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t%s" % res
+
+# Test Seat Interface
+print "Testing Seat"
+
+seat_obj = bus.get_object ('org.freedesktop.ConsoleKit', '/org/freedesktop/ConsoleKit/Seat1')
+seat = dbus.Interface (seat_obj, 'org.freedesktop.ConsoleKit.Seat')
+
+print "Testing Seat.GetId:",
+res = "PASS"
+try:
+    seat.GetId ()
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t\t\t%s" % res
+
+print "Testing Seat.GetSessions:",
+res = "PASS"
+try:
+    seat.GetSessions ()
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t\t%s" % res
+
+print "Testing Seat.GetDevices:",
+res = "PASS"
+try:
+    seat.GetDevices ()
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t\t%s" % res
+
+print "Testing Seat.GetActiveSession:",
+res = "PASS"
+try:
+    seat.GetActiveSession ()
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t\t%s" % res
+
+print "Testing Seat.CanActivateSessions:",
+res = "PASS"
+try:
+    seat.CanActivateSessions ()
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t%s" % res
+
+print "Testing Seat.ActivateSession:",
+res = "PASS"
+try:
+    seat.ActivateSession ('/org/freedesktop/ConsoleKit/SessionN')
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t\t%s" % res
+
+# Test Session Interface
+print "Testing Session"
+
+# create a new session so we can set props
+cookie = manager.OpenSession ()
+ssid = manager.GetSessionForCookie (cookie)
+if not ssid:
+    print "Could not create a session to test"
+    sys.exit ()
+
+session_obj = bus.get_object ('org.freedesktop.ConsoleKit', ssid)
+session = dbus.Interface (session_obj, 'org.freedesktop.ConsoleKit.Session')
+
+print "Testing Session.GetId:",
+res = "PASS"
+try:
+    session.GetId ()
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t\t\t%s" % res
+
+print "Testing Session.GetSeatId:",
+res = "PASS"
+try:
+    session.GetSeatId ()
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t\t%s" % res
+
+print "Testing Session.GetLoginSessionId:",
+res = "PASS"
+try:
+    session.GetLoginSessionId ()
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t%s" % res
+
+print "Testing Session.GetSessionType:",
+res = "PASS"
+try:
+    session.GetSessionType ()
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t%s" % res
+
+print "Testing Session.GetUser:",
+res = "PASS"
+try:
+    session.GetUser ()
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t\t%s" % res
+
+print "Testing Session.GetUnixUser:",
+res = "PASS"
+try:
+    session.GetUnixUser ()
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t\t%s" % res
+
+print "Testing Session.GetX11Display:",
+res = "PASS"
+try:
+    session.GetX11Display ()
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t\t%s" % res
+
+print "Testing Session.GetX11DisplayDevice:",
+res = "PASS"
+try:
+    session.GetX11DisplayDevice ()
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t%s" % res
+
+print "Testing Session.GetDisplayDevice:",
+res = "PASS"
+try:
+    session.GetDisplayDevice ()
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t%s" % res
+
+print "Testing Session.GetRemoteHostName:",
+res = "PASS"
+try:
+    session.GetRemoteHostName ()
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t%s" % res
+
+print "Testing Session.IsActive:",
+res = "PASS"
+try:
+    session.IsActive ()
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t\t%s" % res
+
+print "Testing Session.IsLocal:",
+res = "PASS"
+try:
+    session.IsLocal ()
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t\t%s" % res
+
+print "Testing Session.GetCreationTime:",
+res = "PASS"
+try:
+    session.GetCreationTime ()
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t%s" % res
+
+print "Testing Session.Activate:",
+res = "PASS"
+try:
+    session.Activate ()
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t\t%s" % res
+
+print "Testing Session.Lock:",
+res = "PASS"
+try:
+    session.Lock ()
+    if not privileged:
+        res = "FAIL"
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        if privileged:
+            res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t\t\t%s" % res
+
+print "Testing Session.Unlock:",
+res = "PASS"
+try:
+    session.Unlock ()
+    if not privileged:
+        res = "FAIL"
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        if privileged:
+            res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t\t%s" % res
+
+# Test session properties
+
+session_props = dbus.Interface (session_obj, 'org.freedesktop.DBus.Properties')
+
+print "Testing Properties.Get 'unix-user':",
+res = "PASS"
+try:
+    session_props.Get ('org.freedesktop.ConsoleKit.Session', "unix-user")
+    if not privileged:
+        res = "FAIL"
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        if privileged:
+            res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t%s" % res
+
+print "Testing Properties.Get 'cookie':",
+res = "PASS"
+try:
+    session_props.Get ('org.freedesktop.ConsoleKit.Session', "cookie")
+    if not privileged:
+        res = "FAIL"
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        if privileged:
+            res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t%s" % res
+
+print "Testing Properties.Set:",
+res = "PASS"
+try:
+    session_props.Set ('org.freedesktop.ConsoleKit.Session', "unix-user", 0)
+    if not privileged:
+        res = "FAIL"
+except dbus.exceptions.DBusException, e:
+    if e.get_dbus_name () == "org.freedesktop.DBus.Error.AccessDenied":
+        if privileged:
+            res = "FAIL"
+    elif e.get_dbus_name () == "org.freedesktop.DBus.Error.UnknownMethod":
+        res = "UKNOWN METHOD"
+except:
+    pass
+print "\t\t\t%s" % res
diff -Nuar ConsoleKit2-0.9.3.orig/src/test-session.c ConsoleKit2-0.9.3/src/test-session.c
--- ConsoleKit2-0.9.3.orig/src/test-session.c	2015-05-18 06:43:04.000000000 +0300
+++ ConsoleKit2-0.9.3/src/test-session.c	2015-06-14 21:31:12.560744229 +0300
@@ -176,7 +176,7 @@
 open_session (void)
 {
     GDBusProxy   *session;
-    GVariant     *cookie_var, *session_var, *activate_var;
+    GVariant     *cookie_var, *session_var, *activate_var, *close_var;
     GError       *error = NULL;
     const gchar  *path = NULL, *cookie = NULL;

@@ -272,6 +272,20 @@
     }
     if (activate_var)
         g_variant_unref (activate_var);
+
+    close_var = g_dbus_proxy_call_sync (manager, "CloseSession", g_variant_new ("(s)", cookie), G_DBUS_CALL_FLAGS_NONE, 3000, NULL, &error);
+    if (session_var == NULL) {
+        g_print ("returned NULL, is the daemon running?\t");
+
+        if (error)
+            g_print ("error %s", error->message);
+
+        g_print ("\n");
+        g_clear_error (&error);
+        return;
+    }
+    if (close_var)
+        g_variant_unref (close_var);
 }

 int


code:
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
    <Source>
        <Name>ConsoleKit</Name>
        <Homepage>https://github.com/Consolekit2</Homepage>
        <Packager>
            <Name>PisiLinux Community</Name>
            <Email>admins@pisilinux.org</Email>
        </Packager>
        <License>GPLv2</License>
        <IsA>library</IsA>
        A framework for defining and tracking users, login sessions, and seats
        <Description>ConsoleKit is a system daemon for tracking what users are logged into the system and how they interact with the computer (e.g. which keyboard and mouse they use).</Description>
        <Archive sha1sum="28869807eed0cc4a7a1d98030be1f2c7e5700d0e" type="tarbz2">https://github.com/ConsoleKit2/ConsoleKit2/releases/download/1.2.1/ConsoleKit2-1.2.1.tar.bz2</Archive>
        <BuildDependencies>
            <Dependency>acl-devel</Dependency>
            <Dependency>pam-devel</Dependency>
            <Dependency>dbus-devel</Dependency>
            <Dependency>eudev-devel</Dependency>
            <Dependency>zlib-devel</Dependency>
            <Dependency>glib2-devel</Dependency>
            <Dependency>libX11-devel</Dependency>
            <Dependency>libnih-devel</Dependency>
            <Dependency>cgmanager-devel</Dependency>
            <Dependency versionFrom="0.113">polkit-devel</Dependency>
            <Dependency>libxslt</Dependency>
            <Dependency>xmlto</Dependency>
            <Dependency>util-linux</Dependency>
            <Dependency>libevdev</Dependency>
            <Dependency>libdrm-devel</Dependency>
            <Dependency>gobject-introspection-devel</Dependency>
        </BuildDependencies>
    </Source>

    <Package>
        <Name>ConsoleKit</Name>
        <RuntimeDependencies>
            <Dependency>acl</Dependency>
            <Dependency>pam</Dependency>
            <Dependency>dbus</Dependency>
            <Dependency>zlib</Dependency>
            <Dependency>glib2</Dependency>
            <Dependency>libX11</Dependency>
            <Dependency>libnih</Dependency>
            <Dependency>cgmanager</Dependency>
            <Dependency versionFrom="0.113">polkit</Dependency>
            <Dependency>eudev</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="config">/etc</Path>
            <Path fileType="config">/usr/lib/tmpfiles.d/ConsoleKit.conf</Path>
            <Path fileType="executable">/usr/bin</Path>
            <Path fileType="executable">/usr/sbin</Path>
            <Path fileType="library">/usr/libexec</Path>
            <Path fileType="library">/lib</Path>
            <Path fileType="library">/usr/lib</Path>
            <Path fileType="data">/usr/share/dbus-1</Path>
            <Path fileType="data">/usr/share/gir-1.0</Path>
            <Path fileType="data">/usr/share/gtk-doc</Path>
            <Path fileType="data">/usr/share/polkit-1/actions</Path>
            <Path fileType="data">/usr/share/polkit-1/rules.d</Path>
            <Path fileType="man">/usr/share/man</Path>
            <Path fileType="localedata">/usr/share/locale</Path>
            <Path fileType="doc">/usr/share/doc</Path>
            <Path fileType="data">/var</Path>
        </Files>
        <AdditionalFiles>
            <AdditionalFile owner="root" permission="0644" target="/usr/lib/tmpfiles.d/ConsoleKit.conf">ConsoleKit.conf</AdditionalFile>
            <AdditionalFile permission="0644" target="/usr/share/polkit-1/rules.d/75-consolekit.rules">25-consolekit.rules</AdditionalFile>
            <AdditionalFile owner="root" permission="0755" target="/etc/pam.d/consolekit">consolekit.pamd</AdditionalFile>
            <AdditionalFile owner="root" permission="0755" target="/usr/lib/ConsoleKit/run-session.d/pam-foreground-compat.ck">pam-foreground-compat.ck</AdditionalFile>
        </AdditionalFiles>
    </Package>

    <Package>
        <Name>ConsoleKit-devel</Name>
        Development files for ConsoleKit
        <RuntimeDependencies>
            <Dependency release="current">ConsoleKit</Dependency>
            <Dependency>dbus-devel</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="header">/usr/include</Path>
            <Path fileType="data">/usr/lib/pkgconfig</Path>
        </Files>
    </Package>

    <History>
        <Update release="5">
            <Date>2017-12-13</Date>
            <Version>1.2.1</Version>
            <Comment>Version bump</Comment>
            <Name>Ertuğrul Erata</Name>
            <Email>ertugrulerata@gmail.com</Email>
        </Update>
        <Update release="4">
            <Date>2017-07-23</Date>
            <Version>1.2.0</Version>
            <Comment>Version bump.</Comment>
            <Name>Ertuğrul Erata</Name>
            <Email>ertugrulerata@gmail.com</Email>
        </Update>
        <Update release="3">
            <Date>2017-02-02</Date>
            <Version>1.0.2</Version>
            <Comment>Rebuild.</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="2">
            <Date>2016-06-08</Date>
            <Version>1.0.2</Version>
            <Comment>Release Bump</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="1">
            <Date>2016-03-30</Date>
            <Version>1.0.2</Version>
            <Comment>First release</Comment>
            <Name>Ertuğrul Erata</Name>
            <Email>ertugrulerata@gmail.com</Email>
        </Update>
    </History>
</PISI>

repo_name: ayhanyalcinsoy/main


code:
<?xml version="1.0" ?>
<PISI>
    <Source>
        <Name>ConsoleKit</Name>
        Kullanıcıları, giriş oturumlarını ve koltukları takip etmek ve tanımlamak için bir altyapı
        <Description xml:lang="tr">ConsoleKit, sisteme giriş yapmış kullanıcıları ve bu kullanıcıların bilgisayar ile nasıl etkileştiğini izleyen bir sistem hizmetidir.</Description>
    </Source>

    <Package>
        <Name>ConsoleKit-devel</Name>
        ConsoleKit için geliştirme dosyaları
    </Package>
</PISI>


code:
<PISI>
    <Name>system.auth</Name>
</PISI>


code:
<PISI>
    <Name>system.boot</Name>
</PISI>


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt

from pisi.actionsapi import autotools
from pisi.actionsapi import shelltools
from pisi.actionsapi import pisitools
from pisi.actionsapi import get

def build():
    shelltools.export("CFLAGS", "-Os")
    autotools.make("EFIDIR='/boot/EFI'")

def install():
    shelltools.makedirs("%s/usr/sbin" % get.installDIR())
    shelltools.makedirs("%s/usr/share/man" % get.installDIR())
    shelltools.makedirs("%s/usr/include" % get.installDIR())

    autotools.rawInstall("EFIDIR='/boot/EFI' DESTDIR=%s" % get.installDIR())
    pisitools.insinto("/usr/share/man", "src/*.8")
    pisitools.insinto("/usr/include", "src/include/*.h")


code:
From cddc48752cbb1c0d74b581f8aa6b2d9e51fd69d9 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
Date: Thu, 25 Feb 2016 10:43:40 -0500
Subject: [PATCH 1/3] efibootmgr: update for efivar 0.24

As of 0.24 efi_loadopt_pathlen() and efi_loadopt_path() require a limit
argument to avoid overruns of the input data.

This patch adds reasonable limits to those calls.

Signed-off-by: Peter Jones <pjones@redhat.com>
---
 src/efibootmgr/efibootmgr.c | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/src/efibootmgr/efibootmgr.c b/src/efibootmgr/efibootmgr.c
index a5b5bf9..09489ab 100644
--- a/src/efibootmgr/efibootmgr.c
+++ b/src/efibootmgr/efibootmgr.c
@@ -219,13 +219,12 @@ warn_duplicate_name(list_t *boot_list)

 	list_for_each(pos, boot_list) {
 		boot = list_entry(pos, var_entry_t, list);
-		load_option = (efi_load_option *)
-			boot->data;
-		desc = efi_loadopt_desc(load_option);
+		load_option = (efi_load_option *)boot->data;
+		desc = efi_loadopt_desc(load_option, boot->data_size);
 		if (!strcmp((char *)opts.label, (char *)desc)) {
-			fprintf(stderr, "** Warning ** : %.8s has same label %s\n",
-			       boot->name,
-			       opts.label);
+			fprintf(stderr,
+				"** Warning ** : %.8s has same label %s\n",
+				boot->name, opts.label);
 		}
 	}
 }
@@ -821,8 +820,7 @@ show_boot_vars()
 	list_for_each(pos, &boot_entry_list) {
 		boot = list_entry(pos, var_entry_t, list);
 		load_option = (efi_load_option *)boot->data;
-		description = efi_loadopt_desc(load_option);
-		dp = efi_loadopt_path(load_option);
+		description = efi_loadopt_desc(load_option, boot->data_size);
 		if (boot->name)
 			printf("%.8s", boot->name);
 		else
@@ -835,9 +833,12 @@ show_boot_vars()
 		if (opts.verbose) {
 			char *text_path = NULL;
 			size_t text_path_len = 0;
-			uint16_t pathlen = efi_loadopt_pathlen(load_option);
+			uint16_t pathlen;
 			ssize_t rc;

+			pathlen = efi_loadopt_pathlen(load_option,
+						      boot->data_size);
+			dp = efi_loadopt_path(load_option, pathlen);
 			rc = efidp_format_device_path(text_path, text_path_len,
 						      dp, pathlen);
 			if (rc < 0)
--
2.9.0

From 62944db11c87a936368525e4b480d1a0af61fd5e Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
Date: Thu, 25 Feb 2016 14:16:38 -0500
Subject: [PATCH 2/3] efibootmgr: fix some types the compiler doesn't like.

Basically uint8_t * vs char *.

Signed-off-by: Peter Jones <pjones@redhat.com>
---
 src/lib/efi.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/lib/efi.c b/src/lib/efi.c
index c2b8152..91ed11e 100644
--- a/src/lib/efi.c
+++ b/src/lib/efi.c
@@ -424,7 +424,7 @@ get_extra_args(uint8_t *data, ssize_t data_size)
 			sz = efi_loadopt_args_as_ucs2(
 						(uint16_t *)(data+off),
 						data_size?data_size+off:0,
-						opts.argv[i]);
+						(uint8_t *)opts.argv[i]);
 			if (sz < 0)
 				return -1;
 			off += sz;
@@ -436,7 +436,7 @@ get_extra_args(uint8_t *data, ssize_t data_size)
 		} else {
 			sz = efi_loadopt_args_as_utf8(data+off,
 						data_size?data_size+off:0,
-						opts.argv[i]);
+						(uint8_t *)opts.argv[i]);
 			if (sz < 0)
 				return -1;
 			off += sz;
--
2.9.0

From 3d68945362177a762e6331a02b8896e38b984a12 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
Date: Thu, 3 Mar 2016 09:50:03 -0500
Subject: [PATCH 3/3] Explicitly pass a mode to efi_set_variable() in all
 cases.

We'll have to do this for efivar-0.24 .

Signed-off-by: Peter Jones <pjones@redhat.com>
---
 src/efibootmgr/efibootmgr.c | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/src/efibootmgr/efibootmgr.c b/src/efibootmgr/efibootmgr.c
index 09489ab..d1d4fe2 100644
--- a/src/efibootmgr/efibootmgr.c
+++ b/src/efibootmgr/efibootmgr.c
@@ -304,7 +304,7 @@ make_boot_var(list_t *boot_list)
 			    EFI_VARIABLE_BOOTSERVICE_ACCESS |
 			    EFI_VARIABLE_RUNTIME_ACCESS;
 	rc = efi_set_variable(boot->guid, boot->name, boot->data,
-				boot->data_size, boot->attributes);
+				boot->data_size, boot->attributes, 0644);
 	if (rc < 0)
 		goto err;
 	list_add_tail(&boot->list, boot_list);
@@ -362,7 +362,8 @@ set_boot_u16(const char *name, uint16_t num)
 	return efi_set_variable(EFI_GLOBAL_GUID, name, (uint8_t *)&num,
 				sizeof (num), EFI_VARIABLE_NON_VOLATILE |
 					      EFI_VARIABLE_BOOTSERVICE_ACCESS |
-					      EFI_VARIABLE_RUNTIME_ACCESS);
+					      EFI_VARIABLE_RUNTIME_ACCESS,
+					      0644);
 }

 static int
@@ -398,7 +399,7 @@ add_to_boot_order(uint16_t num)
 	boot_order->data_size = new_data_size;

 	rc = efi_set_variable(EFI_GLOBAL_GUID, "BootOrder", boot_order->data,
-			boot_order->data_size, boot_order->attributes);
+			boot_order->data_size, boot_order->attributes, 0644);
 	free(boot_order->data);
 	free(boot_order);
 	return rc;
@@ -452,7 +453,8 @@ remove_dupes_from_boot_order(void)
 	boot_order->data_size = new_data_size;
 	efi_del_variable(EFI_GLOBAL_GUID, "BootOrder");
 	rc = efi_set_variable(EFI_GLOBAL_GUID, "BootOrder", boot_order->data,
-				boot_order->data_size, boot_order->attributes);
+				boot_order->data_size, boot_order->attributes,
+				0644);
 	free(boot_order->data);
 	free(boot_order);
 	return rc;
@@ -501,7 +503,8 @@ remove_from_boot_order(uint16_t num)

 	boot_order->data_size = sizeof(data[0]) * new_i;
 	rc = efi_set_variable(EFI_GLOBAL_GUID, "BootOrder", boot_order->data,
-				boot_order->data_size, boot_order->attributes);
+				boot_order->data_size, boot_order->attributes,
+				0644);
 all_done:
 	free(boot_order->data);
 	free(boot_order);
@@ -801,7 +804,8 @@ set_boot_order(int keep_old_entries)
 	rc = efi_set_variable(EFI_GLOBAL_GUID, "BootOrder", data, data_size,
 			      EFI_VARIABLE_NON_VOLATILE |
 			      EFI_VARIABLE_BOOTSERVICE_ACCESS |
-			      EFI_VARIABLE_RUNTIME_ACCESS);
+			      EFI_VARIABLE_RUNTIME_ACCESS,
+			      0644);
 	free(data);
 	return rc;
 }
@@ -936,7 +940,8 @@ set_active_state()
 							boot->name,
 							boot->data,
 							boot->data_size,
-							boot->attributes);
+							boot->attributes,
+							0644);
 				}
 			}
 			else if (opts.active == 0) {
@@ -950,7 +955,8 @@ set_active_state()
 							boot->name,
 							boot->data,
 							boot->data_size,
-							boot->attributes);
+							boot->attributes,
+							0644);
 				}
 			}
 		}
--
2.9.0


code:
From f5e09ec26bd03490903330f121b18b8aaa56cf85 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
Date: Tue, 24 May 2016 11:33:20 -0400
Subject: [PATCH] efibootmgr: fix usage of efi_loadopt_path() /again/.

Signed-off-by: Peter Jones <pjones@redhat.com>
---
 src/efibootmgr.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/efibootmgr.c b/src/efibootmgr.c
index baefa68..199eb28 100644
--- a/src/efibootmgr/efibootmgr.c
+++ b/src/efibootmgr/efibootmgr.c
@@ -848,7 +848,7 @@ show_boot_vars()

 			pathlen = efi_loadopt_pathlen(load_option,
 						      boot->data_size);
-			dp = efi_loadopt_path(load_option, pathlen);
+			dp = efi_loadopt_path(load_option, boot->data_size);
 			rc = efidp_format_device_path(text_path, text_path_len,
 						      dp, pathlen);
 			if (rc < 0)
--
1.9.1


code:
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
    <Source>
        <Name>efibootmgr</Name>
        <Homepage>https://github.com/vathpela/efibootmgr</Homepage>
        <Packager>
            <Name>Aydın Demirel</Name>
            <Email>aydin.demirel@pisilinux.org</Email>
        </Packager>
        <License>GPL2</License>
        <IsA>app:console</IsA>
        <Summary>Tool to modify UEFI Firmware Boot Manager Variables</Summary>
        <Description>a Linux user-space application to modify the Intel Extensible Firmware Interface (EFI) Boot Manager.</Description>
        <Archive sha1sum="9dc7ca7b14a47fc178a5bb7b9c0a79cc05e2b272" type="tarbz2">https://github.com/rhinstaller/efibootmgr/releases/download/15/efibootmgr-15.tar.bz2</Archive>
        <BuildDependencies>
           <Dependency>pciutils-devel</Dependency>
           <Dependency>zlib-devel</Dependency>
           <Dependency>popt-devel</Dependency>
           <Dependency>efivar-devel</Dependency>
        </BuildDependencies>
    </Source>

    <Package>
        <Name>efibootmgr</Name>
        <RuntimeDependencies>
            <Dependency>efivar</Dependency>
            <Dependency>popt</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="executable">/usr/sbin</Path>
            <Path fileType="man">/usr/share/man</Path>
            <Path fileType="library">/usr/lib</Path>
        </Files>
    </Package>
    <Package>
        <Name>efibootmgr-devel</Name>
        <RuntimeDependencies>
            <Dependency>popt-devel</Dependency>
            <Dependency>efivar-devel</Dependency>
            <Dependency release="current">efibootmgr</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="header">/usr/include</Path>
        </Files>
    </Package>

    <History>
        <Update release="8">
            <Date>2017-12-09</Date>
            <Version>15</Version>
            <Comment>Version bump</Comment>
            <Name>Ertuğrul Erata</Name>
            <Email>ertugrulerata@gmail.com</Email>
        </Update>
        <Update release="7">
            <Date>2017-02-14</Date>
            <Version>14</Version>
            <Comment>Version bump.</Comment>
            <Name>Stefan Gronewold</Name>
            <Email>groni@pisilinux.org</Email>
        </Update>
        <Update release="2">
            <Date>2016-06-08</Date>
            <Version>0.12</Version>
            <Comment>Release Bump</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="1">
            <Date>2016-04-01</Date>
            <Version>0.12</Version>
            <Comment>First release</Comment>
            <Name>Alihan Öztürk</Name>
            <Email>alihan@pisilinux.org</Email>
        </Update>
    </History>
</PISI>


code:
<?xml version="1.0" ?>
<PISI>
    <Source>
        <Name>efibootmgr</Name>
        <Summary xml:lang="tr">UEFI Firmware Yükleme Yöneticisi Değişkenlerini düzenlemek için araç</Summary>
        <Description xml:lang="tr">UEFI Firmware Yükleme Yöneticisi Değişkenlerini düzenlemek için araç</Description>
    </Source>
</PISI>


code:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt

from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import shelltools
from pisi.actionsapi import get

def build():
    shelltools.export("ARCH","x86_64")

    autotools.make()

def install():
    shelltools.export("ARCH","x86_64")

    autotools.rawInstall("DESTDIR=%s" % get.installDIR())

    #pisitools.dodoc("COPYING", "README")


code:
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
    <Source>
        <Name>efitools</Name>
        <Homepage>http://git.kernel.org/cgit/linux/kernel/git/jejb/efitools.git</Homepage>
        <Packager>
            <Name>PisiLinux Community</Name>
            <Email>admins@pisilinux.org</Email>
        </Packager>
        <License>GPLv2</License>
        <IsA>app</IsA>
        <Summary>UEFI güvenli önyükleme platformlarını işleme araçları</Summary>
        <Description>Tools for manipulating UEFI secure boot platforms</Description>
        <Archive sha1sum="d334cc3f02edc84eb920c16a1630188d61b34269" type="targz">https://git.kernel.org/pub/scm/linux/kernel/git/jejb/efitools.git/snapshot/efitools-1.7.0.tar.gz</Archive>
        <BuildDependencies>
            <Dependency>gnu-efi</Dependency>
            <Dependency>help2man</Dependency>
            <Dependency>sbsigntools</Dependency>
            <Dependency>perl-File-Slurp</Dependency>
            <Dependency>openssl-devel</Dependency>
        </BuildDependencies>
        <Patches>
            <Patch level="1">upstream.patch</Patch>
        </Patches>
    </Source>
    <Package>
        <Name>efitools</Name>
        <RuntimeDependencies>
            <Dependency>openssl</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="executable">/usr/bin</Path>
            <Path fileType="data">/usr/share</Path>
            <Path fileType="man">/usr/share/man</Path>
            <Path fileType="library">/usr/share/efitools/efi</Path>
            <Path fileType="doc">/usr/share/doc</Path>
        </Files>
    </Package>
    <History>
        <Update release="1">
            <Date>2017-12-16</Date>
            <Version>1.7.0</Version>
            <Comment>First release.</Comment>
            <Name>Mustafa Cinasal</Name>
            <Email>muscnsl@gmail.com</Email>
        </Update>
    </History>
</PISI>


code:
<?xml version="1.0" ?>
<PISI>
    <Source>
        <Name>efitools</Name>
        <Summary xml:lang="tr">UEFI güvenli önyükleme platformlarını işleme araçları</Summary>
        <Description xml:lang="tr">Tools for manipulating UEFI secure boot platforms</Description>
    </Source>
</PISI>


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt

from pisi.actionsapi import autotools
from pisi.actionsapi import shelltools
from pisi.actionsapi import pisitools
from pisi.actionsapi import get

def build():
    shelltools.export("CFLAGS", "-Os")
    pisitools.dosed("Make.defaults","-O0","-Os")
    pisitools.dosed("src/test/Makefile","-rpath=$(TOPDIR)/src/","-rpath=$(libdir)|g")
    autotools.make("libdir=/usr/lib bindir=/usr/bin includedir=/usr/include/ V=1 -j1")

def install():
     autotools.rawInstall("DESTDIR=%s libdir=/usr/lib/" % get.installDIR())


code:
From 3a0ae7189fe96355d64dc2daf91cf85282773c66 Mon Sep 17 00:00:00 2001
From: Mike Gilbert <floppym@gentoo.org>
Date: Thu, 14 Jan 2016 17:02:31 -0500
Subject: [PATCH] Workaround rename of linux/nvme.h

Bug: https://bugs.gentoo.org/571548
---
 src/linux.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/linux.c b/src/linux.c
index b618cfd..9388cd3 100644
--- a/src/linux.c
+++ b/src/linux.c
@@ -22,7 +22,12 @@
 #include <inttypes.h>
 #include <limits.h>
 #include <linux/ethtool.h>
+#include <linux/version.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0)
+#include <linux/nvme_ioctl.h>
+#else
 #include <linux/nvme.h>
+#endif
 #include <linux/sockios.h>
 #include <net/if.h>
 #include <scsi/scsi.h>
--
2.7.2


code:
From 5e2f64ebb96f45155d0301a81ccd141a17fd7d9b Mon Sep 17 00:00:00 2001
From: Andreas Schwab <schwab@suse.de>
Date: Tue, 12 Jul 2016 10:34:50 +0200
Subject: [PATCH] Remove use of deprecated readdir_r

Signed-off-by: Andreas Schwab <schwab@suse.de>
---
Index: efivar-0.23/src/vars.c
===================================================================
--- efivar-0.23.orig/src/vars.c
+++ efivar-0.23/src/vars.c
@@ -128,19 +128,15 @@ is_64bit(void)
 	if (dfd < 0)
 		goto err;

-	struct dirent entry;
-	struct dirent *result = NULL;
 	while (1) {
-		int rc = readdir_r(dir, &entry, &result);
-		if (rc != 0)
-			break;
-		if (result == NULL)
+		struct dirent *entry = readdir(dir);
+		if (entry == NULL)
 			break;

-		if (!strcmp(entry.d_name, "..") || !strcmp(entry.d_name, "."))
+		if (!strcmp(entry->d_name, "..") || !strcmp(entry->d_name, "."))
 			continue;

-		ssize_t size = get_file_data_size(dfd, entry.d_name);
+		ssize_t size = get_file_data_size(dfd, entry->d_name);
 		if (size < 0) {
 			continue;
 		} else if (size == 2084) {


code:
From d084645fdc9bf805b39b0fb3ff7ec315661884be Mon Sep 17 00:00:00 2001
From: Gary Lin <glin@suse.com>
Date: Wed, 9 Mar 2016 12:19:26 +0800
Subject: [PATCH] Remove efivar-static since it requires static libs

Signed-off-by: Gary Lin <glin@suse.com>
---
 src/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/Makefile b/src/Makefile
index 5fc7887..e1c1ccd 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -8,7 +8,7 @@ include $(TOPDIR)/Make.defaults

 LIBTARGETS=libefivar.so libefiboot.so
 STATICLIBTARGETS=libefivar.a libefiboot.a
-BINTARGETS=efivar efivar-static
+BINTARGETS=efivar
 PCTARGETS=efivar.pc efiboot.pc
 TARGETS=$(LIBTARGETS) $(STATICLIBTARGETS) $(BINTARGETS) $(PCTARGETS)

--
2.7.2


code:
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
    <Source>
        <Name>efivar</Name>
        <Homepage>https://github.com/vathpela/efivar</Homepage>
        <Packager>
            <Name>Aydın Demirel</Name>
            <Email>aydin.demirel@pisilinux.org</Email>
        </Packager>
        <License>LGPL2.1</License>
        <IsA>app:console</IsA>
        <Summary>Tools and library to manipulate EFI variables</Summary>
        <Description>Tools and library to manipulate EFI variables.</Description>
        <Archive sha1sum="ae5b4c3aeb29fe0ef5212142b0a21d6f003dd266" type="tarbz2">https://github.com/rhinstaller/efivar/releases/download/31/efivar-31.tar.bz2</Archive>
        <BuildDependencies>
           <Dependency>popt-devel</Dependency>
        </BuildDependencies>
        <Patches>
            <!--<Patch level="1">0001-Workaround-rename-of-linux-nvme.h.patch</Patch>-->
            <!--<Patch level="1">deprecated-readdir_r.patch</Patch>-->
            <!--Patch level="1">efivar-no-static.patch</Patch-->
        </Patches>
    </Source>

    <Package>
        <Name>efivar</Name>
        <RuntimeDependencies>
            <Dependency>popt</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="library">/usr/lib</Path>
            <Path fileType="man">/usr/share/man</Path>
            <Path fileType="executable">/usr/bin</Path>
        </Files>
    </Package>
    <Package>
        <Name>efivar-devel</Name>
        <RuntimeDependencies>
            <Dependency>popt-devel</Dependency>
            <Dependency release="current">efivar</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="header">/usr/include</Path>
            <Path fileType="data">/usr/lib/pkgconfig</Path>
        </Files>
    </Package>

    <History>
        <Update release="6">
            <Date>2017-12-09</Date>
            <Version>31</Version>
            <Comment>Version bump</Comment>
            <Name>Ertuğrul Erata</Name>
            <Email>ertugrulerata@gmail.com</Email>
        </Update>
        <Update release="5">
            <Date>2017-01-24</Date>
            <Version>26</Version>
            <Comment>Version bump.</Comment>
            <Name>Stefan Gronewold(groni)</Name>
            <Email>groni@pisilinux.org</Email>
        </Update>
        <Update release="1">
            <Date>2016-03-29</Date>
            <Version>0.23</Version>
            <Comment>First release</Comment>
            <Name>Osman Erkan</Name>
            <Email>osman.erkan@pisilinux.org</Email>
        </Update>
    </History>
</PISI>


code:
<?xml version="1.0" ?>
<PISI>
    <Source>
        <Name>efivar</Name>
        <Summary xml:lang="tr">EFI değişkenlerini işlemek için araçlar ve kütüphane</Summary>
        <Description xml:lang="tr">EFI değişkenlerini işlemek için araçlar ve kütüphane</Description>
    </Source>
</PISI>


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/copyleft/gpl.txt.

from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import get

def setup():
    pisitools.dosed("Makefile", "^CC.*", "CC = %s" % get.CC())
    #pisitools.dosed("doc/Makefile", "xmlto", "xmlto --skip-validation")
    pisitools.dosed("gfxboot-font.c", "#include <freetype/ftsynth.h>", "#include <freetype2/ftsynth.h>")

def build():
    autotools.make()
    autotools.make("-j1 doc")

def install():
    autotools.rawInstall("DESTDIR=%s" % get.installDIR())
    autotools.make('DESTDIR="%s" installsrc' % get.installDIR())

    pisitools.dodoc("doc/*.txt", "doc/*.html")


code:
diff -Nuar gfxboot-4.5.7.orig/Makefile gfxboot-4.5.7/Makefile
--- gfxboot-4.5.7.orig/Makefile	2014-10-14 14:37:02.000000000 +0300
+++ gfxboot-4.5.7/Makefile	2015-08-05 15:02:12.676842244 +0300
@@ -1,16 +1,7 @@
 CC	 = gcc
 CFLAGS	 = -g -Wall -Wno-pointer-sign -O2 -fomit-frame-pointer

-GIT2LOG := $(shell if [ -x ./git2log ] ; then echo ./git2log --update ; else echo true ; fi)
-GITDEPS := $(shell [ -d .git ] && echo .git/HEAD .git/refs/heads .git/refs/tags)
-VERSION := $(shell $(GIT2LOG) --version VERSION ; cat VERSION)
-BRANCH  := $(shell git branch | perl -ne 'print $$_ if s/^\*\s*//')
-PREFIX  := gfxboot-$(VERSION)
-
-# THEMES	 = $(wildcard themes/*)
-THEMES	 = themes/upstream themes/openSUSE themes/SLES themes/SLED themes/KDE
-
-.PHONY: all clean distclean doc install installsrc themes
+.PHONY: all clean distclean doc install installsrc

 all:	changelog bin2c gfxboot-compile bincode gfxboot-font addblack

@@ -54,20 +45,10 @@
 	install -m 755 gfxboot~ $(DESTDIR)/usr/sbin/gfxboot
 	install -m 755 gfxtest $(DESTDIR)/usr/sbin
 	install -m 755 gfxboot-compile gfxboot-font $(DESTDIR)/usr/sbin
-	@for i in $(THEMES) ; do \
-	  install -d -m 755 $(DESTDIR)/etc/bootsplash/$$i/{bootloader,cdrom} ; \
-	  cp $$i/bootlogo $(DESTDIR)/etc/bootsplash/$$i/cdrom ; \
-	  bin/unpack_bootlogo $(DESTDIR)/etc/bootsplash/$$i/cdrom ; \
-          install -m 644 $$i/{message,po/*.tr,help-boot/*.hlp} $(DESTDIR)/etc/bootsplash/$$i/bootloader ; \
-	  bin/2hl --link --quiet $(DESTDIR)/etc/bootsplash/$$i/* ; \
-	done

 installsrc:
 	install -d -m 755 $(DESTDIR)/usr/share/gfxboot/themes
-	@for i in $(THEMES) ; do \
-	  cp -a $$i $(DESTDIR)/usr/share/gfxboot/themes ; \
-	done
-	cp -a themes/example* $(DESTDIR)/usr/share/gfxboot/themes
+
 	cp -a bin test $(DESTDIR)/usr/share/gfxboot

 archive: changelog
@@ -87,8 +68,6 @@
 distclean: clean
 	@for i in themes/example* ; do make -C $$i clean || break ; done

-themes:
-	@for i in $(THEMES) ; do make -C $$i $(MAKECMDGOALS) || break ; done

 doc:
 	make -C doc $(MAKECMDGOALS)


code:
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
    <Source>
        <Name>gfxboot</Name>
        <Homepage>https://github.com/openSUSE/gfxboot</Homepage>
        <Packager>
            <Name>PisiLinux Community</Name>
            <Email>admins@pisilinux.org</Email>
        </Packager>
        <License>GPLv2</License>
        <Icon>gfxboot</Icon>
        <IsA>app:console</IsA>
        <Summary>Tools to create graphical boot logos</Summary>
        <Description>Set of tools to create graphical boot logos, for grub, lilo and syslinux. It supports arch-specific boot menus, advanced help menus, multiple keymaps, animated images, and more graphical pretty things.</Description>
        <Archive sha1sum="4e8adefbc51d35fd6f9f4bd5abcacd6f26b3a703" type="targz">https://github.com/openSUSE/gfxboot/archive/4.5.20.tar.gz</Archive>
        <BuildDependencies>
            <Dependency>xmlto</Dependency>
            <Dependency>freetype-devel</Dependency>
            <Dependency>util-linux</Dependency>
            <Dependency>libxslt</Dependency>
            <Dependency>lynx</Dependency>
        </BuildDependencies>
        <Patches>
            <Patch level="0">productname.patch</Patch>
            <Patch>no-theme-no-git.patch</Patch>
        </Patches>
    </Source>

    <Package>
        <Name>gfxboot</Name>
        <RuntimeDependencies>
            <Dependency>perl-HTML-Parser</Dependency>
            <Dependency>freetype</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="executable">/usr/sbin</Path>
            <Path fileType="executable">/usr/share/gfxboot/bin</Path>
            <Path fileType="data">/usr/share/gfxboot</Path>
            <Path fileType="doc">/usr/share/doc</Path>
        </Files>
    </Package>

    <History>
        <Update release="3">
            <Date>2017-01-25</Date>
            <Version>4.5.20</Version>
            <Comment>Version bump.</Comment>
            <Name>Stefan Gronewold</Name>
            <Email>groni@pisilinux.org</Email>
        </Update>
        <Update release="2">
            <Date>2016-06-08</Date>
            <Version>4.5.12</Version>
            <Comment>Release Bump</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="1">
            <Date>2016-04-04</Date>
            <Version>4.5.12</Version>
            <Comment>First release</Comment>
            <Name>Ertuğrul Erata</Name>
            <Email>ertugrulerata@gmail.com</Email>
        </Update>
    </History>
</PISI>


code:
<?xml version="1.0" ?>
<PISI>
    <Source>
        <Name>gfxboot</Name>
        <Summary xml:lang="tr">Grafik açılış logosu oluşturma araçları</Summary>
        <Description xml:lang="tr">Grub, syslinux ve lilo gibi önyükleyiciler için grafik açılış logoları oluşturma araçları. Mimari bazlı açılış menüsü, gelişmiş yardım menüsü, farklı diller için klavye haritası desteği, hareketli görüntü desteği ve daha pek çok görsel efekt desteği içerir.</Description>
    </Source>
</PISI>


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/copyleft/gpl.txt.

from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import get

datadir = "/usr/share/gfxtheme/pisilinux"

def build():
    autotools.make('PRODUCT="PisiLinux"')

def install():
    pisitools.insinto(datadir, "bootlogo.dir", "install")
    pisitools.insinto(datadir, "bootlogo", "install")


code:
--- Makefile~	2013-04-06 23:49:41.000000000 +0200
+++ Makefile	2014-02-26 19:21:51.000000000 +0100
@@ -57,7 +57,7 @@
 ifdef DEFAULT_LANG
 	@echo $(DEFAULT_LANG) >bootlogo.dir/lang
 endif
-	@sh -c 'cd bootlogo.dir; chmod +t * ; chmod -t init languages'
+	@sh -c 'cd bootlogo.dir; chmod +t * ; chmod -t init languages gfxboot.cfg pabout.txt lang'
 	@sh -c 'cd bootlogo.dir; echo * | sed -e "s/ /\n/g" | cpio --quiet -o >../bootlogo'

 clean:


code:
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
    <Source>
        <Name>gfxtheme-pisilinux-install</Name>
        <Homepage>www.pisilinux.org</Homepage>
        <Packager>
            <Name>PisiLinux Community</Name>
            <Email>admins@pisilinux.org</Email>
        </Packager>
        <License>GPLv2</License>
        <IsA>data</IsA>
        <Summary>Pisi Linux gfxboot install theme</Summary>
        <Description>Gfxtheme install package for Pisi Linux</Description>
        <Archive sha1sum="e7ba6a4f7afd9a271ba8ce6d1cb980d7d2e265e4" type="tarxz">http://source.pisilinux.org/1.0/gfxtheme-pisilinux-install-0.2.tar.xz</Archive>
        <BuildDependencies>
            <Dependency>gfxboot</Dependency>
            <Dependency>fribidi-devel</Dependency>
        </BuildDependencies>
        <Patches>
            <Patch>chmod-t.patch</Patch>
        </Patches>
    </Source>

    <Package>
        <Name>gfxtheme-pisilinux-install</Name>
        <Files>
            <Path fileType="data">/usr/share/gfxtheme/pisilinux/install</Path>
        </Files>
    </Package>

    <History>
        <Update release="3">
            <Date>2017-04-05</Date>
            <Version>0.2</Version>
            <Comment>Rebuild.</Comment>
            <Name>Ertuğrul Erata</Name>
            <Email>ertugrulerata@gmail.com</Email>
        </Update>
        <Update release="2">
            <Date>2016-06-08</Date>
            <Version>0.2</Version>
            <Comment>Release Bump</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="1">
            <Date>2014-08-04</Date>
            <Version>0.2</Version>
            <Comment>First release</Comment>
            <Name>Serdar Soytetir</Name>
            <Email>kaptan@pisilinux.org</Email>
        </Update>
    </History>
</PISI>


code:
<?xml version="1.0" ?>
<PISI>
    <Source>
        <Name>gfxtheme-pisilinux-install</Name>
        <Summary xml:lang="tr">Pisi Linux gfxboot teması</Summary>
        <Description xml:lang="tr">Kurulum sistemi ve kurulu sistem için Pisi Linux gfxboot teması.</Description>
    </Source>
</PISI>


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt

from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import get

WorkDir = "%s+-%s" % (get.srcNAME(), get.srcVERSION())
docompile = False if get.ARCH() == "x86_64" else True

def setup():
    pisitools.dosed("memtest.lds", "0x5000", "0x100000")

def build():
    if docompile:
        autotools.make()

def install():
    if docompile:
        finalbin = "memtest.bin"
    else:
        finalbin = "precomp.bin"

    pisitools.insinto("/boot", finalbin, "memtest")

    pisitools.dodoc("FAQ", "README*")


code:
diff -Naurp memtest86+-4.10-orig/Makefile memtest86+-4.10/Makefile
--- memtest86+-4.10-orig/Makefile	2010-06-24 00:27:22.864634431 +0200
+++ memtest86+-4.10/Makefile	2010-06-24 00:28:42.402478590 +0200
@@ -8,10 +8,9 @@
 #
 FDISK=/dev/fd0

-AS=as -32
-CC=gcc
-
-CFLAGS= -Wall -march=i486 -m32 -O2 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector
+CFLAGS=-Wall -march=i486 -m32 -O2 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector
+CPPFLAGS=-m32
+ASFLAGS=-32

 OBJS= head.o reloc.o main.o test.o init.o lib.o patn.o screen_buffer.o \
       config.o linuxbios.o memsize.o pci.o controller.o random.o spd.o \
@@ -47,10 +46,10 @@ memtest.bin: memtest_shared.bin bootsect
 	memtest_shared.bin -o memtest.bin

 reloc.o: reloc.c
-	$(CC) -c $(CFLAGS) -fno-strict-aliasing reloc.c
+	$(CC) -c $(CFLAGS) -fno-strict-aliasing -fno-stack-protector reloc.c

 test.o: test.c
-	$(CC) -c -Wall -march=i486 -m32 -Os -fomit-frame-pointer -fno-builtin -ffreestanding test.c
+	$(CC) -c -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fno-stack-protector -fno-pie -nopie test.c

 clean:
 	rm -f *.o *.s *.iso memtest.bin memtest memtest_shared memtest_shared.bin


code:
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
    <Source>
        <Name>memtest86</Name>
        <Homepage>http://www.memtest.org/</Homepage>
        <Packager>
            <Name>PisiLinux Community</Name>
            <Email>admins@pisilinux.org</Email>
        </Packager>
        <License>GPLv2</License>
        <IsA>app:console</IsA>
        <Summary>Memory tester</Summary>
        <Description>Memory tester for x86 and x86_64 devices for x86 and 64bit x86 compatible computers. It should be started from boot menu.</Description>
        <Archive sha1sum="eb4b6d70114db3c9ed320785da44c0ba8349c10c" type="targz">http://www.memtest.org/download/5.01/memtest86+-5.01.tar.gz</Archive>
        <Patches>
	  <!--            <Patch level="1">no-hardcoded-cc.patch</Patch> -->
	  <!--           <Patch level="1">linkonce.patch</Patch> -->
<!--             <Patch level="1">serial-enable.patch</Patch> -->
<!--             <Patch level="1">asciimap.patch</Patch> -->
        </Patches>
    </Source>

    <Package>
        <Name>memtest86</Name>
        <Files>
            <Path fileType="executable">/boot</Path>
            <Path fileType="doc">/usr/share/doc</Path>
        </Files>
    </Package>

    <History>
        <Update release="3">
            <Date>2017-04-05</Date>
            <Version>5.01</Version>
            <Comment>Rebuild.</Comment>
            <Name>Ertuğrul Erata</Name>
            <Email>ertugrulerata@gmail.com</Email>
        </Update>
        <Update release="2">
            <Date>2016-06-08</Date>
            <Version>5.01</Version>
            <Comment>Release Bump</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="1">
            <Date>2015-01-27</Date>
            <Version>5.01</Version>
            <Comment>First release</Comment>
            <Name>Stefan Gronewold(groni)</Name>
            <Email>groni@pisilinux.org</Email>
        </Update>
    </History>
</PISI>


code:
<?xml version="1.0" ?>
<PISI>
    <Source>
        <Name>memtest86</Name>
        <Summary xml:lang="tr">Bellek test edici</Summary>
        <Description xml:lang="tr">x86 ve 64bit x86 mimarilerindeki bilgisayarın belleklerini test etmeye ve hataları bulmaya yaran bir program. Kullanmak için açılış menüsünden çalıştırmanız gerekmektedir.</Description>
        <Description xml:lang="fr">Testeur de mémoire pour architecture x86 et x86_64 pour ordinateurs x86 et 64 bit x86 compatibles. Il doit être lancer depuis le menu de démarrage.</Description>
    </Source>
</PISI>


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt

from pisi.actionsapi import get
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import shelltools

LOGO_FILE = "/usr/share/pixmaps/plymouth-pisilinux.png"
THEMEPATH = "/usr/share/plymouth/themes"

def setup():
    # /var/run => /run
    pisitools.dosed("configure.ac", "^(\s+plymouthruntimedir=)\$localstatedir(\/run\/plymouth)", r"\1\2")
    pisitools.dosed("src/Makefile.am", "^(plymouthdrundir\s=\s)\$\(localstatedir\)(\/run\/plymouth)", r"\1\2")

    autotools.autoreconf("-fis")

    # The end-start colors seems to be used by the two-step plugin
    # Disable nouveau drm renderer as it causes hangs when starting X server
    autotools.configure("--enable-tracing \
                         --with-logo=%s \
                         --with-release-file=/etc/pisilinux-release \
                         --with-background-color=0x000000 \
                         --with-background-end-color-stop=0x000000 \
                         --with-background-start-color-stop=0x000000 \
                         --with-system-root-install \
                         --with-boot-tty=/dev/tty7 \
                         --with-shutdown-tty=/dev/tty1 \
                         --with-log-viewer \
                         --disable-libdrm_nouveau \
                         --disable-tests \
                         --disable-static \
                         --enable-gdm-transition \
                         --without-rhgb-compat-link" % LOGO_FILE)

def build():
    autotools.make()

def install():
    autotools.rawInstall("DESTDIR='%s'" % get.installDIR())

    # Copy necessary files for Charge theme
    pisitools.dodir("%s/charge" % THEMEPATH)
    for f in ("box", "bullet", "entry", "lock"):
        shelltools.copy("%s%s/glow/%s.png" % (get.installDIR(), THEMEPATH, f), "%s%s/charge/" % (get.installDIR(), THEMEPATH))

    # Remove glow theme as it's premature
    pisitools.removeDir("/usr/share/plymouth/themes/glow")

    # Generate initramfs filelist
    #shelltools.system("./generate-flist %s" % get.installDIR())

    pisitools.dodoc("TODO", "COPYING", "README", "ChangeLog")


code:
#!/usr/bin/python

import os

def postInstall(a, b, c, d):
    os.system("/usr/bin/mkinitcpio -p linux")

def preRemove():
    pass


code:
Author: Daniel Baumann <mail@daniel-baumann.ch>
Description: Setting no delay for fast booting machines (Closes: #752746).

Index: plymouth-0.8.8/src/plymouthd.defaults
===================================================================
--- plymouth-0.8.8.orig/src/plymouthd.conf
+++ plymouth-0.8.8/src/plymouthd.conf
@@ -1,3 +1,4 @@
 # Administrator customizations go in this file
 #[Daemon]
 #Theme=fade-in
+#ShowDelay=0
Index: plymouth-0.8.8/src/plymouthd.defaults
===================================================================
--- plymouth-0.8.8.orig/src/plymouthd.defaults
+++ plymouth-0.8.8/src/plymouthd.defaults
@@ -2,3 +2,4 @@
 # upgrades.
 [Daemon]
 Theme=spinner
+ShowDelay=0


code:
[Plymouth Theme]
Name=Charge
Description=A theme that features the shadowy hull of a Fedora logo charge up and and finally burst into into full form.
ModuleName=two-step

[two-step]
ImageDir=/usr/share/plymouth/themes/charge
HorizontalAlignment=.5
VerticalAlignment=.5
Transition=none
TransitionDuration=0.0
BackgroundStartColor=0x416fa7
BackgroundEndColor=0x4b83c1


code:
From 6ccedf7b6ecdc8314ed97355cfe5499fffb13a1e Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Thu, 1 Nov 2012 17:04:33 -0400
Subject: [PATCH 1/3] main: if deactivate when already deactivated return
 immediately

We were trying to ignore second deactivate requests, but
were instead crashing because we're trying to use a nullified
trigger.

This commit makes sure things don't go crashy when a user
does "plymouth deactivate" on an already deactivated plymouthd.
---
 src/main.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/main.c b/src/main.c
index 88e5002..60ca28f 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1135,7 +1135,13 @@ static void
 on_deactivate (state_t       *state,
                ply_trigger_t *deactivate_trigger)
 {
-  if ((state->deactivate_trigger != NULL) || state->is_inactive)
+  if (state->is_inactive)
+    {
+      ply_trigger_pull (deactivate_trigger, NULL);
+      return;
+    }
+
+  if (state->deactivate_trigger != NULL)
     {
       ply_trigger_add_handler (state->deactivate_trigger,
                                (ply_trigger_handler_t)
--
1.7.12.1

From b3548ebaf76d222f56d6a7b34c5940b930d47609 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Thu, 1 Nov 2012 17:16:07 -0400
Subject: [PATCH 2/3] two-step: don't update progress when idle

We've already reach a state where we aren't drawing anymore, etc,
so don't update progress and potentially fire off animations
that won't be seen.
---
 src/plugins/splash/two-step/plugin.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c
index 2998beb..541a108 100644
--- a/src/plugins/splash/two-step/plugin.c
+++ b/src/plugins/splash/two-step/plugin.c
@@ -1067,6 +1067,9 @@ on_boot_progress (ply_boot_splash_plugin_t *plugin,
   if (plugin->state != PLY_BOOT_SPLASH_DISPLAY_NORMAL)
     return;

+  if (plugin->is_idle)
+    return;
+
   if (percent_done >= SHOW_ANIMATION_PERCENT)
     {
       if (plugin->stop_trigger == NULL)
--
1.7.12.1

From a6129abfc527ac247685d80fc5c20144be1badca Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Fri, 2 Nov 2012 17:26:41 -0400
Subject: [PATCH 3/3] main: make plymouth show-splash idempotent

plymouth show-splash causes hairy things, that should only happen once,
like activating renderers to happen.

This commit makes subsequent show-splash calls be no-ops.
---
 src/main.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/src/main.c b/src/main.c
index 60ca28f..ff06163 100644
--- a/src/main.c
+++ b/src/main.c
@@ -113,6 +113,7 @@ typedef struct
   uint32_t should_be_attached : 1;
   uint32_t should_retain_splash : 1;
   uint32_t is_inactive : 1;
+  uint32_t is_shown : 1;
   uint32_t should_force_details : 1;

   char *kernel_console_tty;
@@ -871,6 +872,12 @@ on_show_splash (state_t *state)
 {
   bool has_display;

+  if (state->is_shown)
+    {
+      ply_trace ("show splash called while already shown");
+      return;
+    }
+
   if (state->is_inactive)
     {
       ply_trace ("show splash called while inactive");
@@ -884,6 +891,8 @@ on_show_splash (state_t *state)
       return;
     }

+  state->is_shown = true;
+
   check_for_consoles (state, state->default_tty, true);

   has_display = ply_list_get_length (state->pixel_displays) > 0 ||
@@ -1012,6 +1021,8 @@ dump_details_and_quit_splash (state_t *state)
   if (state->boot_splash != NULL)
     ply_boot_splash_hide (state->boot_splash);

+  state->is_shown = false;
+
   quit_splash (state);
 }

@@ -1116,6 +1127,8 @@ on_boot_splash_idle (state_t *state)
             ply_renderer_deactivate (state->renderer);
           if (state->boot_splash != NULL)
             ply_boot_splash_hide (state->boot_splash);
+
+          state->is_shown = false;
         }

       ply_trace ("quitting splash");
--
1.7.12.1


code:
From 152304f3fd2ebd04ca6d49c62dce4ddd2269326a Mon Sep 17 00:00:00 2001
From: Frederic Crozat <fcrozat@suse.com>
Date: Fri, 20 Jul 2012 11:07:29 +0200
Subject: [PATCH] Revert "libply: remove the unused SPLASH_MODE_SUSPEND and
 SPLASH_MODE_RESUME"

This reverts commit 02c596757753589f7e49d26eab2759d552f24671.

Conflicts:
	src/libply-splash-core/ply-boot-splash-plugin.h
	src/plugins/splash/script/script-lib-plymouth.c
---
 src/libply-splash-core/ply-boot-splash-plugin.h |    2 ++
 src/plugins/splash/script/script-lib-plymouth.c |    6 ++++++
 2 files changed, 8 insertions(+)

diff --git a/src/libply-splash-core/ply-boot-splash-plugin.h b/src/libply-splash-core/ply-boot-splash-plugin.h
index 2d73d66..1a67526 100644
--- a/src/libply-splash-core/ply-boot-splash-plugin.h
+++ b/src/libply-splash-core/ply-boot-splash-plugin.h
@@ -38,6 +38,8 @@ typedef enum
 {
   PLY_BOOT_SPLASH_MODE_BOOT_UP,
   PLY_BOOT_SPLASH_MODE_SHUTDOWN,
+  PLY_BOOT_SPLASH_MODE_SUSPEND,
+  PLY_BOOT_SPLASH_MODE_RESUME,
   PLY_BOOT_SPLASH_MODE_UPDATES,
   PLY_BOOT_SPLASH_MODE_INVALID
 } ply_boot_splash_mode_t;
diff --git a/src/plugins/splash/script/script-lib-plymouth.c b/src/plugins/splash/script/script-lib-plymouth.c
index 5c648a6..eb7791e 100644
--- a/src/plugins/splash/script/script-lib-plymouth.c
+++ b/src/plugins/splash/script/script-lib-plymouth.c
@@ -61,6 +61,12 @@ static script_return_t plymouth_get_mode (script_state_t *state,
       case PLY_BOOT_SPLASH_MODE_SHUTDOWN:
         obj = script_obj_new_string ("shutdown");
         break;
+      case PLY_BOOT_SPLASH_MODE_SUSPEND:
+        obj = script_obj_new_string ("suspend");
+        break;
+      case PLY_BOOT_SPLASH_MODE_RESUME:
+        obj = script_obj_new_string ("resume");
+	break;
       case PLY_BOOT_SPLASH_MODE_UPDATES:
         obj = script_obj_new_string ("updates");
         break;
--
1.7.10.4


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Copyright 2009-2010 TUBITAK/UEKAE
# Licensed under the GNU General Public License, version 2.
# See the file http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt

from pisi.actionsapi import shelltools
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import get

UCLIBC_ROOT = "/usr/lib/uClibc/"
BUILD_FOR = ["system"]

LOGO_FILE = "/usr/share/pixmaps/plymouth-pisilinux.png"
THEMEPATH = "/usr/share/plymouth/themes"

# The end-start colors seems to be used by the two-step plugin
BASE_CONFIGURE_PARAMS = "--enable-tracing \
                         --with-logo=%s \
                         --with-release-file=/etc/pisilinux-release \
                         --with-background-color=0x000000 \
                         --with-background-end-color-stop=0x000000 \
                         --with-background-start-color-stop=0x000000 \
                         --with-system-root-install \
                         --with-boot-tty=/dev/tty7 \
                         --with-shutdown-tty=/dev/tty1 \
                         --disable-tests \
                         --disable-static \
                         --disable-gdm-transition \
                         --without-rhgb-compat-link \
                         --without-gdm-autostart-file \
                         --localstatedir=/var" % LOGO_FILE

def setup():
    autotools.autoreconf("-fis")

    for directory in BUILD_FOR:
        shelltools.makedirs(directory)
        shelltools.sym("../configure", "%s/configure" % directory)

def build_with_glibc():
    shelltools.cd("system")

    autotools.configure(BASE_CONFIGURE_PARAMS)

    autotools.make()
    shelltools.cd("..")

def build_with_uclibc():
    shelltools.export("CC", "%s-uclibc-gcc" % get.ARCH())
    shelltools.export("LD", "%s-uclibc-ld" % get.ARCH())

    shelltools.cd("uclibc")

    # Symlink zlib.h, zconf.h, xf86drm.h and xf86drmMode.h
    shelltools.makedirs("include")
    for header in ("zlib.h", "zconf.h", "xf86drm.h", "xf86drmMode.h"):
        shelltools.sym("/usr/include/%s" % header, "include/%s" % header)

    shelltools.export("UCLIBC_GCC_INC", "-I%s/include" % get.curDIR())

    autotools.configure("%s \
                         --build=%s-pc-linux-uclibc \
                         --libdir=%s/usr/lib \
                         --prefix=%s/usr" % (BASE_CONFIGURE_PARAMS,
                                             get.ARCH(),
                                             UCLIBC_ROOT,
                                             UCLIBC_ROOT))

    # Don't build these as they'll bring a lot of dependencies
    pisitools.dosed("src/Makefile", "viewer", "")
    pisitools.dosed("src/plugins/controls/Makefile", "label", "")

    # Filter out generic targets
    pisitools.dosed("Makefile", "^SUBDIRS.*$", "SUBDIRS = src")

    # Don't create /var/*/plymouth
    pisitools.dosed("src/Makefile", "^.*\$\(MAKE\).*install-data-hook", "")

    # No need to x11 renderer in initramfs
    pisitools.dosed("src/plugins/renderers/Makefile", "^(SUBDIRS = .*) x11", "\\1")

    autotools.make()
    shelltools.cd("..")

def build():
    build_with_glibc()

    if "uclibc" in BUILD_FOR:
        build_with_uclibc()

def install():
    shelltools.touch("Makefile")
    if "uclibc" in BUILD_FOR:
        autotools.rawInstall("-C uclibc DESTDIR='%s'" % get.installDIR())

    autotools.rawInstall("-C system DESTDIR='%s'" % get.installDIR())

    # Copy necessary files for Charge theme
    pisitools.dodir("%s/charge" % THEMEPATH)
    for f in ("box", "bullet", "entry", "lock"):
        shelltools.copy("%s%s/glow/%s.png" % (get.installDIR(), THEMEPATH, f), "%s%s/charge/" % (get.installDIR(), THEMEPATH))

    # Remove glow theme as it's premature
    pisitools.removeDir("/usr/share/plymouth/themes/glow")

    # Remove fedora scripts
    pisitools.remove("/usr/libexec/plymouth/*")

    # Generate initramfs filelist
    #shelltools.system("./generate-flist %s" % get.installDIR())

    pisitools.dodoc("TODO", "COPYING", "README", "ChangeLog")


code:
Index: plymouth-0.8.3_20101018/scripts/plymouth-set-default-theme.in
===================================================================
--- plymouth-0.8.3_20101018.orig/scripts/plymouth-set-default-theme.in
+++ plymouth-0.8.3_20101018/scripts/plymouth-set-default-theme.in
@@ -192,5 +192,5 @@ grep -q '^[[]Daemon[]]' ${PLYMOUTH_CONFD
 sed -i -e '/^Theme[[:blank:]]*=.*/d' ${PLYMOUTH_CONFDIR}/plymouthd.conf
 sed -i -e "s/^\([[]Daemon[]]\)\n*/\1\nTheme=${THEME_NAME}/" ${PLYMOUTH_CONFDIR}/plymouthd.conf

-[ $DO_INITRD_REBUILD -ne 0 ] && (${PLYMOUTH_LIBEXECDIR}/plymouth/plymouth-update-initrd)
+[ $DO_INITRD_REBUILD -ne 0 ] && /sbin/mkinitramfs
 exit 0


code:
--- plymouth-0.8.8/themes/Makefile.am	2012-10-26 18:01:45.000000000 +0300
+++ plymouth-0.8.8-esk/themes/Makefile.am	2013-01-15 05:00:46.920416669 +0200
@@ -1,2 +1,2 @@
-SUBDIRS = spinfinity fade-in text details solar glow script spinner
+SUBDIRS = spinfinity fade-in text details solar glow script spinner pisilinux
 MAINTAINERCLEANFILES = Makefile.in
--- plymouth-0.8.8/src/plymouthd.conf	2012-10-26 18:01:45.000000000 +0300
+++ plymouth-0.8.8-esk/src/plymouthd.conf	2013-01-15 05:04:34.391408794 +0200
@@ -1,3 +1,3 @@
 # Administrator customizations go in this file
 #[Daemon]
-#Theme=fade-in
+#Theme=pisilinux
--- plymouth-0.8.8/src/plymouthd.defaults	2012-10-26 18:01:45.000000000 +0300
+++ plymouth-0.8.8-esk/src/plymouthd.defaults	2013-01-15 05:06:37.681404525 +0200
@@ -1,5 +1,5 @@
 # Distribution defaults. Changes to this file will get overwritten during
 # upgrades.
 [Daemon]
-Theme=spinner
+Theme=pisilinux
 ShowDelay=0
--- plymouth-0.8.8/configure.ac	2012-10-26 18:01:45.000000000 +0300
+++ plymouth-0.8.8-esk/configure.ac	2013-01-15 05:08:54.923399773 +0200
@@ -451,6 +451,7 @@
            themes/glow/Makefile
            themes/spinner/Makefile
            themes/script/Makefile
+           themes/pisilinux/Makefile
            images/Makefile
 	   scripts/plymouth-generate-initrd
 	   scripts/plymouth-populate-initrd


code:
0.447:start_udev
0.475:check_root_filesystem
0.487:mount_root_filesystem
0.502:autoload_modules
0.503:check_filesystems
0.505:mount_local_filesystems
0.509:enable_swap
0.686:set_clock
0.688:wait_for_udev_events
0.710:boot_runlevel
0.718:cleanup_tmp
0.752:start_dbus
0.784:default_runlevel
0.795:rsyslog
0.862:xdm
0.867:audit
0.874:gpm
0.881:hal
0.891:openssh
0.902:pcsc_lite
0.918:vixie_cron
0.934:bluez
0.952:ntpdate
0.972:NetworkManager
0.989:cups


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-

import os
import sys

# Generate the list of files needed in initramfs for plymouth

exclude_list = (
                    "/usr/bin/plymouth-log-viewer",
                    "/usr/sbin/plymouth-set-default-theme",
                    "/usr/lib/plymouth/renderers/x11.so",
                    "/usr/lib/plymouth/label.so",
               )

paths = (
            "/usr/share/plymouth",
            "/usr/share/pixmaps",
            "/etc/plymouth",
        )

FILE_LIST = "lib/initramfs/plymouth.list"

def usage():
    print "%s <directory>" % sys.argv[0]
    return 1

def generate_needed_binary_list():
    binaries = set()
    executables = os.popen("find -type f -executable | cut -c2-").read().strip().split()
    executables = set(executables).difference(exclude_list)

    for exe in executables:
        if exe.endswith(".la"):
            continue
        if ".so." in exe:
            # Add the libfoo.so.X symlink instead of libfoo.so.X.y.z
            symlink = exe.rsplit(".", 2)[0]
            if os.path.exists(symlink[1:]):
                binaries.add(symlink)
                continue

        binaries.add(exe)

    for exe in executables:
        for line in os.popen("ldd %s" % exe[1:]):
            if "=> /" in line:
                binaries.add(line.split()[2])
            elif line.strip().startswith("/"):
                binaries.add(line.strip().split()[0])

    return binaries

def get_other_file_list():
    files = ["usr/share/pixmaps/plymouth-pisilinux.png", "usr/share/themes/charge/charge.plymouth"]
    for path in paths:
        files.extend(os.popen("find %s -type f" % path[1:]).read().strip().split())

    return ["/%s" % f for f in files]

if __name__ == "__main__":

    try:
        directory = sys.argv[1]
    except:
        sys.exit(usage())

    os.chdir(directory)
    files = generate_needed_binary_list()
    files = files.union(get_other_file_list())

    if not os.path.exists(os.path.dirname(FILE_LIST)):
        os.makedirs(os.path.dirname(FILE_LIST))
    open(FILE_LIST, "w").write("\n".join(sorted(files)))


code:
/bin/plymouth
/etc/plymouth/plymouthd.conf
/lib/ld-linux-x86-64.so.2
/lib/ld-linux.so.2
/lib/libc.so.6
/lib/libdl.so.2
/lib/libm.so.6
/lib/libply-splash-core.so.2
/lib/libply.so.2
/lib/libpthread.so.0
/lib/librt.so.1
/lib/libz.so.1
/lib/libudev.so.1
/lib/libudev.so.1.6.3
/sbin/plymouthd
/usr/lib/libdrm.so.2
/usr/lib/libdrm_intel.so.1
/usr/lib/libdrm_amdgpu.so.1
/usr/lib/libdrm_nouveau.so.2
/usr/lib/libdrm_radeon.so.1
/usr/lib/libkms.so.1
/usr/lib/libply-boot-client.so.2
/usr/lib/libply-splash-graphics.so.2
/usr/lib/libpng16.so.16
/usr/lib/liblzo2.so.2
/usr/lib/plymouth/details.so
/usr/lib/plymouth/fade-throbber.so
/usr/lib/plymouth/renderers/drm.so
/usr/lib/plymouth/renderers/frame-buffer.so
/usr/lib/plymouth/script.so
/usr/lib/plymouth/space-flares.so
/usr/lib/plymouth/text.so
/usr/lib/plymouth/throbgress.so
/usr/lib/plymouth/two-step.so
/usr/share/pixmaps/plymouth-pisilinux.png
/usr/share/plymouth/plymouthd.defaults
/usr/share/plymouth/themes/details/details.plymouth
/usr/share/plymouth/themes/text/text.plymouth


code:
diff -aur plymouth-0.9.0.src/scripts/plymouth-update-initrd plymouth-0.9.0.patch/scripts/plymouth-update-initrd
--- plymouth-0.9.0.scripts/plymouth-update-initrd	2014-01-16 08:14:47.000000000 +1100
+++ plymouth-0.9.0.patch/scripts/plymouth-update-initrd	2014-05-21 19:04:16.802594001 +1000
@@ -1,2 +1,5 @@
 #!/bin/bash
 mkinitrd -f /boot/initrd-$(uname -r).img $(uname -r)
+find /etc/mkinitcpio.d/ -name \*.preset -a \! -name example.preset | while read p; do
+  mkinitcpio -p $p
+done


code: d /run/plymouth 0755 root root