diff --git a/hardware/cpu/component.xml b/hardware/cpu/component.xml
new file mode 100644
index 0000000000..1e92460830
--- /dev/null
+++ b/hardware/cpu/component.xml
@@ -0,0 +1,3 @@
+
+ hardware.cpu
+
diff --git a/hardware/cpu/intel-ucode/actions.py b/hardware/cpu/intel-ucode/actions.py
new file mode 100644
index 0000000000..475a945dee
--- /dev/null
+++ b/hardware/cpu/intel-ucode/actions.py
@@ -0,0 +1,17 @@
+#!/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 shelltools
+from pisi.actionsapi import get
+
+def build():
+ autotools.compile("-Wall %s -o intel-microcode2ucode intel-microcode2ucode.c" % get.CFLAGS())
+ shelltools.system("./intel-microcode2ucode ./microcode.dat")
+
+def install():
+ pisitools.insinto("/lib/firmware/intel-ucode", "intel-ucode/*")
diff --git a/hardware/cpu/intel-ucode/files/LICENSE b/hardware/cpu/intel-ucode/files/LICENSE
new file mode 100644
index 0000000000..c05358c0f8
--- /dev/null
+++ b/hardware/cpu/intel-ucode/files/LICENSE
@@ -0,0 +1,123 @@
+INTEL SOFTWARE LICENSE AGREEMENT
+
+IMPORTANT - READ BEFORE COPYING, INSTALLING OR USING.
+Do not use or load this software and any associated materials (collectively,
+the "Software") until you have carefully read the following terms and
+conditions. By loading or using the Software, you agree to the terms of this
+Agreement. If you do not wish to so agree, do not install or use the Software.
+
+LICENSES: Please Note:
+- If you are a network administrator, the "Site License" below shall
+apply to you.
+- If you are an end user, the "Single User License" shall apply to you.
+- If you are an original equipment manufacturer (OEM), the "OEM License"
+shall apply to you.
+
+SITE LICENSE. You may copy the Software onto your organization's computers
+for your organization's use, and you may make a reasonable number of
+back-up copies of the Software, subject to these conditions:
+
+1. This Software is licensed for use only in conjunction with Intel
+component products. Use of the Software in conjunction with non-Intel
+component products is not licensed hereunder.
+2. You may not copy, modify, rent, sell, distribute or transfer any part
+of the Software except as provided in this Agreement, and you agree to
+prevent unauthorized copying of the Software.
+3. You may not reverse engineer, decompile, or disassemble the Software.
+4. You may not sublicense or permit simultaneous use of the Software by
+more than one user.
+5. The Software may include portions offered on terms in addition to those
+set out here, as set out in a license accompanying those portions.
+
+SINGLE USER LICENSE. You may copy the Software onto a single computer for
+your personal, noncommercial use, and you may make one back-up copy of the
+Software, subject to these conditions:
+
+1. This Software is licensed for use only in conjunction with Intel
+component products. Use of the Software in conjunction with non-Intel
+component products is not licensed hereunder.
+2. You may not copy, modify, rent, sell, distribute or transfer any part
+of the Software except as provided in this Agreement, and you agree to
+prevent unauthorized copying of the Software.
+3. You may not reverse engineer, decompile, or disassemble the Software.
+4. You may not sublicense or permit simultaneous use of the Software by
+more than one user.
+5. The Software may include portions offered on terms in addition to those
+set out here, as set out in a license accompanying those portions.
+
+OEM LICENSE: You may reproduce and distribute the Software only as an
+integral part of or incorporated in Your product or as a standalone
+Software maintenance update for existing end users of Your products,
+excluding any other standalone products, subject to these conditions:
+
+1. This Software is licensed for use only in conjunction with Intel
+component products. Use of the Software in conjunction with non-Intel
+component products is not licensed hereunder.
+2. You may not copy, modify, rent, sell, distribute or transfer any part
+of the Software except as provided in this Agreement, and you agree to
+prevent unauthorized copying of the Software.
+3. You may not reverse engineer, decompile, or disassemble the Software.
+4. You may only distribute the Software to your customers pursuant to a
+written license agreement. Such license agreement may be a "break-the-
+seal" license agreement. At a minimum such license shall safeguard
+Intel's ownership rights to the Software.
+5. The Software may include portions offered on terms in addition to those
+set out here, as set out in a license accompanying those portions.
+
+NO OTHER RIGHTS. No rights or licenses are granted by Intel to You, expressly
+or by implication, with respect to any proprietary information or patent,
+copyright, mask work, trademark, trade secret, or other intellectual property
+right owned or controlled by Intel, except as expressly provided in this
+Agreement.
+
+OWNERSHIP OF SOFTWARE AND COPYRIGHTS. Title to all copies of the Software
+remains with Intel or its suppliers. The Software is copyrighted and
+protected by the laws of the United States and other countries, and
+international treaty provisions. You may not remove any copyright notices
+from the Software. Intel may make changes to the Software, or to items
+referenced therein, at any time without notice, but is not obligated to
+support or update the Software. Except as otherwise expressly provided, Intel
+grants no express or implied right under Intel patents, copyrights,
+trademarks, or other intellectual property rights. You may transfer the
+Software only if the recipient agrees to be fully bound by these terms and if
+you retain no copies of the Software.
+
+LIMITED MEDIA WARRANTY. If the Software has been delivered by Intel on
+physical media, Intel warrants the media to be free from material physical
+defects for a period of ninety days after delivery by Intel. If such a defect
+is found, return the media to Intel for replacement or alternate delivery of
+the Software as Intel may select.
+
+EXCLUSION OF OTHER WARRANTIES. EXCEPT AS PROVIDED ABOVE, THE SOFTWARE IS
+PROVIDED "AS IS" WITHOUT ANY EXPRESS OR IMPLIED WARRANTY OF ANY KIND
+INCLUDING WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, OR FITNESS FOR A
+PARTICULAR PURPOSE. Intel does not warrant or assume responsibility for the
+accuracy or completeness of any information, text, graphics, links or other
+items contained within the Software.
+
+LIMITATION OF LIABILITY. IN NO EVENT SHALL INTEL OR ITS SUPPLIERS BE LIABLE
+FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, LOST PROFITS,
+BUSINESS INTERRUPTION, OR LOST INFORMATION) ARISING OUT OF THE USE OF OR
+INABILITY TO USE THE SOFTWARE, EVEN IF INTEL HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES. SOME JURISDICTIONS PROHIBIT EXCLUSION OR
+LIMITATION OF LIABILITY FOR IMPLIED WARRANTIES OR CONSEQUENTIAL OR INCIDENTAL
+DAMAGES, SO THE ABOVE LIMITATION MAY NOT APPLY TO YOU. YOU MAY ALSO HAVE
+OTHER LEGAL RIGHTS THAT VARY FROM JURISDICTION TO JURISDICTION.
+
+TERMINATION OF THIS AGREEMENT. Intel may terminate this Agreement at any time
+if you violate its terms. Upon termination, you will immediately destroy the
+Software or return all copies of the Software to Intel.
+
+APPLICABLE LAWS. Claims arising under this Agreement shall be governed by the
+laws of California, excluding its principles of conflict of laws and the
+United Nations Convention on Contracts for the Sale of Goods. You may not
+export the Software in violation of applicable export laws and regulations.
+Intel is not obligated under any other agreements unless they are in writing
+and signed by an authorized representative of Intel.
+
+GOVERNMENT RESTRICTED RIGHTS. The Software is provided with "RESTRICTED
+RIGHTS." Use, duplication, or disclosure by the Government is subject to
+restrictions as set forth in FAR52.227-14 and DFAR252.227-7013 et seq. or its
+successor. Use of the Software by the Government constitutes acknowledgment
+of Intel's proprietary rights therein. Contractor or Manufacturer is Intel
+2200 Mission College Blvd., Santa Clara, CA 95052.
diff --git a/hardware/cpu/intel-ucode/files/intel-microcode2ucode.c b/hardware/cpu/intel-ucode/files/intel-microcode2ucode.c
new file mode 100644
index 0000000000..caad0323e8
--- /dev/null
+++ b/hardware/cpu/intel-ucode/files/intel-microcode2ucode.c
@@ -0,0 +1,163 @@
+/*
+ * Convert Intel microcode.dat into individual ucode files
+ * named: intel-ucode/$family-$model-$stepping
+ *
+ * The subdir intel-ucode/ is created in the current working
+ * directory. We get multiple ucodes in the same file, so they
+ * are appended to an existing file. Make sure the directory
+ * is empty before every run of the converter.
+ *
+ * Kay Sievers
+ */
+
+
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+struct microcode_header_intel {
+ unsigned int hdrver;
+ unsigned int rev;
+ unsigned int date;
+ unsigned int sig;
+ unsigned int cksum;
+ unsigned int ldrver;
+ unsigned int pf;
+ unsigned int datasize;
+ unsigned int totalsize;
+ unsigned int reserved[3];
+};
+
+union mcbuf {
+ struct microcode_header_intel hdr;
+ unsigned int i[0];
+ char c[0];
+};
+
+int main(int argc, char *argv[])
+{
+ char *filename = "/lib/firmware/microcode.dat";
+ FILE *f;
+ char line[LINE_MAX];
+ char buf[4000000];
+ union mcbuf *mc;
+ size_t bufsize, count, start;
+ int rc = EXIT_SUCCESS;
+
+ if (argv[1] != NULL)
+ filename = argv[1];
+
+ count = 0;
+ mc = (union mcbuf *) buf;
+ f = fopen(filename, "re");
+ if (f == NULL) {
+ printf("open %s: %m\n", filename);
+ rc = EXIT_FAILURE;
+ goto out;
+ }
+
+ while (fgets(line, sizeof(line), f) != NULL) {
+ if (sscanf(line, "%x, %x, %x, %x",
+ &mc->i[count],
+ &mc->i[count + 1],
+ &mc->i[count + 2],
+ &mc->i[count + 3]) != 4)
+ continue;
+ count += 4;
+ }
+ fclose(f);
+
+ bufsize = count * sizeof(int);
+ printf("%s: %lu(%luk) bytes, %zu integers\n",
+ filename,
+ bufsize,
+ bufsize / 1024,
+ count);
+
+ if (bufsize < sizeof(struct microcode_header_intel))
+ goto out;
+
+ mkdir("intel-ucode", 0750);
+
+ start = 0;
+ for (;;) {
+ size_t size;
+ unsigned int family, model, stepping;
+ unsigned int year, month, day;
+
+ mc = (union mcbuf *) &buf[start];
+
+ if (mc->hdr.totalsize)
+ size = mc->hdr.totalsize;
+ else
+ size = 2000 + sizeof(struct microcode_header_intel);
+
+ if (mc->hdr.ldrver != 1 || mc->hdr.hdrver != 1) {
+ printf("unknown version/format:\n");
+ rc = EXIT_FAILURE;
+ break;
+ }
+
+ /*
+ * 0- 3 stepping
+ * 4- 7 model
+ * 8-11 family
+ * 12-13 type
+ * 16-19 extended model
+ * 20-27 extended family
+ */
+ family = (mc->hdr.sig >> 8) & 0xf;
+ if (family == 0xf)
+ family += (mc->hdr.sig >> 20) & 0xff;
+ model = (mc->hdr.sig >> 4) & 0x0f;
+ if (family == 0x06)
+ model += ((mc->hdr.sig >> 16) & 0x0f) << 4;
+ stepping = mc->hdr.sig & 0x0f;
+
+ year = mc->hdr.date & 0xffff;
+ month = mc->hdr.date >> 24;
+ day = (mc->hdr.date >> 16) & 0xff;
+
+ asprintf(&filename, "intel-ucode/%02x-%02x-%02x", family, model, stepping);
+ printf("\n");
+ printf("%s\n", filename);
+ printf("signature: 0x%02x\n", mc->hdr.sig);
+ printf("flags: 0x%02x\n", mc->hdr.pf);
+ printf("revision: 0x%02x\n", mc->hdr.rev);
+ printf("date: %04x-%02x-%02x\n", year, month, day);
+ printf("size: %zu\n", size);
+
+ f = fopen(filename, "ae");
+ if (f == NULL) {
+ printf("open %s: %m\n", filename);
+ rc = EXIT_FAILURE;
+ goto out;
+ }
+ if (fwrite(mc, size, 1, f) != 1) {
+ printf("write %s: %m\n", filename);
+ rc = EXIT_FAILURE;
+ goto out;
+ }
+ fclose(f);
+ free(filename);
+
+ start += size;
+ if (start >= bufsize)
+ break;
+ }
+ printf("\n");
+out:
+ return rc;
+}
diff --git a/hardware/cpu/intel-ucode/pspec.xml b/hardware/cpu/intel-ucode/pspec.xml
new file mode 100644
index 0000000000..305feb76d5
--- /dev/null
+++ b/hardware/cpu/intel-ucode/pspec.xml
@@ -0,0 +1,55 @@
+
+
+
+
+ intel-ucode
+ http://www.intel.com/
+
+ PisiLinux Community
+ admins@pisilinux.org
+
+ as-is
+ library
+ Microcode update files for Intel CPUs
+ Microcode update files for Intel CPUs
+ http://downloadmirror.intel.com/23574/eng/microcode-20140122.tgz
+
+ intel-microcode2ucode.c
+
+
+
+
+ intel-ucode
+
+ /usr/share/doc
+ /lib/firmware
+
+
+ LICENSE
+
+
+
+
+
+ 2014-05-06
+ 20140122
+ Version bump.
+ Ertuğrul Erata
+ ertugrulerata@gmail.com
+
+
+ 2014-01-23
+ 20130906
+ Version Bump
+ Ertuğrul Erata
+ ertugrulerata@gmail.com
+
+
+ 2012-10-01
+ 20120606
+ First release
+ Erdem Artan
+ admins@pisilinux.org
+
+
+
diff --git a/hardware/cpu/intel-ucode/translations.xml b/hardware/cpu/intel-ucode/translations.xml
new file mode 100644
index 0000000000..f0b40671be
--- /dev/null
+++ b/hardware/cpu/intel-ucode/translations.xml
@@ -0,0 +1,8 @@
+
+
+
+ intel-ucode
+ Intel işlemciler için microcode dosyaları
+ Intel işlemciler için microcode dosyaları
+
+
diff --git a/hardware/cpu/irqbalance/actions.py b/hardware/cpu/irqbalance/actions.py
new file mode 100644
index 0000000000..2f2ac09109
--- /dev/null
+++ b/hardware/cpu/irqbalance/actions.py
@@ -0,0 +1,22 @@
+#!/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 shelltools
+from pisi.actionsapi import autotools
+from pisi.actionsapi import pisitools
+from pisi.actionsapi import get
+
+def setup():
+ autotools.configure()
+
+def build():
+ autotools.make("CFLAGS='%s'" % get.CFLAGS())
+
+def install():
+ pisitools.doman("irqbalance.1")
+ pisitools.dosbin("irqbalance")
+
+ pisitools.dodoc("COPYING", "AUTHORS")
diff --git a/hardware/cpu/irqbalance/comar/service.py b/hardware/cpu/irqbalance/comar/service.py
new file mode 100644
index 0000000000..8033598651
--- /dev/null
+++ b/hardware/cpu/irqbalance/comar/service.py
@@ -0,0 +1,46 @@
+from comar.service import *
+import os
+
+serviceType = "local"
+serviceConf = "irqbalance"
+serviceDefault = "conditional"
+serviceDesc = _({"en": "Irqbalance Daemon",
+ "tr": "Irqbalance Servisi"})
+
+@synchronized
+def start():
+ args = ""
+ oneshot = config.get("ONESHOT")
+ affinity = config.get("IRQ_AFFINITY_MASK")
+
+ if oneshot == "yes" and os.path.exists("/run/irqbalance.pid"):
+ return
+
+ if oneshot == "yes":
+ args += ("--oneshot -f")
+
+ if affinity:
+ os.environ["IRQBALANCE_BANNED_CPUS"] = affinity
+
+ startService(command="/usr/sbin/irqbalance",
+ args=args, donotify=True)
+ os.system("pidof -o %PPID /usr/sbin/irqbalance > /run/irqbalance.pid")
+
+@synchronized
+def stop():
+ stopService(command="/usr/sbin/irqbalance",
+ pidfile="/run/irqbalance.pid",
+ donotify=True)
+
+ try:
+ os.unlink("/var/lock/subsys/irqbalance")
+ except:
+ pass
+
+def ready():
+ status = is_on()
+ if status == "on" or (status == "conditional" and os.path.exists("/sys/devices/system/cpu/cpu1")):
+ start()
+
+def status():
+ return isServiceRunning("/run/irqbalance.pid")
diff --git a/hardware/cpu/irqbalance/files/irqbalance.confd b/hardware/cpu/irqbalance/files/irqbalance.confd
new file mode 100644
index 0000000000..0ff3939a83
--- /dev/null
+++ b/hardware/cpu/irqbalance/files/irqbalance.confd
@@ -0,0 +1,18 @@
+# irqbalance is a daemon process that distributes interrupts across
+# CPUS on SMP systems. The default is to rebalance once every 10
+# seconds. There is one configuration option:
+#
+# ONESHOT=yes
+# after starting, wait for a minute, then look at the interrupt
+# load and balance it once; after balancing exit and do not change
+# it again.
+ONESHOT=
+
+#
+# IRQ_AFFINITY_MASK
+# 64 bit bitmask which allows you to indicate which cpu's should
+# be skipped when reblancing irqs. Cpu numbers which have their
+# corresponding bits set to zero in this mask will not have any
+# irq's assigned to them on rebalance
+#
+#IRQ_AFFINITY_MASK=
diff --git a/hardware/cpu/irqbalance/files/irqbalance.service b/hardware/cpu/irqbalance/files/irqbalance.service
new file mode 100644
index 0000000000..3d4528a8c2
--- /dev/null
+++ b/hardware/cpu/irqbalance/files/irqbalance.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=irqbalance daemon
+After=syslog.target
+
+[Service]
+ExecStart=/usr/sbin/irqbalance --foreground $IRQBALANCE_ARGS
+
+[Install]
+WantedBy=multi-user.target
diff --git a/hardware/cpu/irqbalance/pspec.xml b/hardware/cpu/irqbalance/pspec.xml
new file mode 100644
index 0000000000..e74ac398c6
--- /dev/null
+++ b/hardware/cpu/irqbalance/pspec.xml
@@ -0,0 +1,66 @@
+
+
+
+
+ irqbalance
+ http://www.irqbalance.org
+
+ PisiLinux Community
+ admins@pisilinux.org
+
+ GPLv2
+ service
+ Distribute hardware interrupts across processors
+ Daemon to balance IRQs across multiple CPUs on systems.This can lead to better performance and I/O balance on SMP systems.
+
+ http://pkgs.fedoraproject.org/repo/pkgs/irqbalance/irqbalance-1.0.7.tar.bz2/09cb0ab81ab4f3401a7ff5dabc158a1e/irqbalance-1.0.7.tar.bz2
+
+ numactl-devel
+
+
+
+
+ irqbalance
+
+ numactl
+
+
+ /etc
+ /usr/sbin
+ /lib/systemd/system
+ /usr/share/man
+ /usr/share/doc
+
+
+ irqbalance.confd
+ irqbalance.service
+
+
+ System.Service
+
+
+
+
+
+ 2014-06-06
+ 1.0.7
+ Version bump.
+ Aydın Demirel
+ aydin.demirel@pisilinux.org
+
+
+ 2014-01-26
+ 1.0.4
+ Rebuild with new Download Area
+ Stefan Gronewold(groni)
+ groni@pisilinux.org
+
+
+ 2012-10-01
+ 1.0.4
+ First release
+ Erdem Artan
+ admins@pisilinux.org
+
+
+
diff --git a/hardware/cpu/irqbalance/translations.xml b/hardware/cpu/irqbalance/translations.xml
new file mode 100644
index 0000000000..c09b304b3c
--- /dev/null
+++ b/hardware/cpu/irqbalance/translations.xml
@@ -0,0 +1,8 @@
+
+
+
+ irqbalance
+ Donanım kesmelerini işlemciler arasında dağıtır
+ Birden fazla işlemcili sistemlerde donanım kesmelerini (hardware interrupt) işlemciler arasında dağıtarak dengeleme sağlayan artalan süreci. Bu SMP (simetrik çoklu işlemcili) sistemlerde daha iyi performans ve G/Ç dengesi sağlar.
+
+
diff --git a/hardware/disk/squashfs-tools/actions.py b/hardware/disk/squashfs-tools/actions.py
new file mode 100644
index 0000000000..0f0d939ac3
--- /dev/null
+++ b/hardware/disk/squashfs-tools/actions.py
@@ -0,0 +1,28 @@
+#!/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 shelltools
+from pisi.actionsapi import autotools
+from pisi.actionsapi import pisitools
+from pisi.actionsapi import get
+
+def build():
+ shelltools.cd("squashfs-tools")
+ #Chakra features
+ #reduce memory requirements of unsquashfs to support installation on systems with 256 MB RAM
+ cmd1='sed -i -e "s/BUFFER_DEFAULT [0-9]*/BUFFER_DEFAULT 32/" unsquashfs.h'
+ cmd2="sed -i 's|^#XZ_SUPPORT = 1|XZ_SUPPORT = 1|' Makefile"
+ cmd3="sed -i 's|^#LZO_SUPPORT = 1|LZO_SUPPORT = 1|' Makefile"
+ cmd4="sed -i 's|^COMP_DEFAULT = gzip|COMP_DEFAULT = xz|' Makefile"
+ cmds=[cmd1,cmd2,cmd3,cmd4]
+
+ for cmd in cmds:
+ shelltools.system(cmd)
+ autotools.make('RPM_OPT_FLAGS="%s"' % get.CFLAGS())
+
+def install():
+ shelltools.cd("squashfs-tools")
+ autotools.install("INSTALL_DIR='%s/usr/sbin'" % get.installDIR())
diff --git a/hardware/disk/squashfs-tools/pspec.xml b/hardware/disk/squashfs-tools/pspec.xml
new file mode 100644
index 0000000000..f37221d0bb
--- /dev/null
+++ b/hardware/disk/squashfs-tools/pspec.xml
@@ -0,0 +1,61 @@
+
+
+
+
+ squashfs-tools
+ http://squashfs.sourceforge.net/
+
+ PisiLinux Community
+ admins@pisilinux.org
+
+ GPLv2
+ app:console
+ Userspace tools to create squashfs compressed filesystem
+ Squashfs is a highly compressed read-only filesystem for Linux. This package contains the utilities for manipulating squashfs filesystems.
+ http://sourceforge.net/projects/squashfs/files/squashfs/squashfs4.2/squashfs4.2.tar.gz
+
+ lzo-devel
+
+ xz-devel
+ zlib-devel
+
+
+
+
+ squashfs-tools
+
+ lzo
+
+ zlib
+ xz
+
+
+ /usr/sbin
+ /usr/share/doc
+
+
+
+
+
+ 2014-03-09
+ 4.2
+ Rebuild
+ Varol Maksutoğlu
+ waroi@pisilinux.org
+
+
+ 2013-02-12
+ 4.2
+ Change compression type to xz, and some other enhancements.
+ Serdar Soytetir
+ kaptan@pisilinux.org
+
+
+ 2012-11-14
+ 4.2
+ First release
+ Osman Erkan
+ osman.erkan@pisilinux.org
+
+
+
diff --git a/hardware/disk/squashfs-tools/translations.xml b/hardware/disk/squashfs-tools/translations.xml
new file mode 100644
index 0000000000..0799d13cc3
--- /dev/null
+++ b/hardware/disk/squashfs-tools/translations.xml
@@ -0,0 +1,8 @@
+
+
+
+ squashfs-tools
+ squashfs sıkıştırılmış salt-okunur dosya sistemi oluşturma aracı
+ squashfs, Linux için sıkıştırılmış ve salt-okunur bir dosya sistemidir. Bu paket squashfs dosya sistemiyle çalışmak için kullanılabilecek araçları içerir.
+
+
diff --git a/hardware/powermanagement/suspend/actions.py b/hardware/powermanagement/suspend/actions.py
new file mode 100644
index 0000000000..045c5a933c
--- /dev/null
+++ b/hardware/powermanagement/suspend/actions.py
@@ -0,0 +1,30 @@
+# -*- 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 shelltools
+from pisi.actionsapi import autotools
+from pisi.actionsapi import pisitools
+from pisi.actionsapi import get
+
+
+
+def setup():
+ #autotools.autoreconf("-vif")
+ autotools.configure("--enable-threads \
+ --enable-compress \
+ --enable-plymouth \
+ --disable-encrypt \
+ --disable-resume-static \
+ --with-initramfsdir=/usr/sbin")
+
+def build():
+ autotools.make()
+
+def install():
+ autotools.rawInstall("DESTDIR=%s" % get.installDIR())
+
+ pisitools.removeDir("/dev")
+
+ shelltools.touch("%s/etc/suspend.key" % get.installDIR())
diff --git a/hardware/powermanagement/suspend/files/mandriva/suspend-0.8-printf_format.patch b/hardware/powermanagement/suspend/files/mandriva/suspend-0.8-printf_format.patch
new file mode 100644
index 0000000000..e1ba36be3e
--- /dev/null
+++ b/hardware/powermanagement/suspend/files/mandriva/suspend-0.8-printf_format.patch
@@ -0,0 +1,22 @@
+--- suspend-0.8.20080612/bootsplash.c.printf_format 2009-02-04 09:45:15.000000000 +0100
++++ suspend-0.8.20080612/bootsplash.c 2009-02-04 10:03:01.000000000 +0100
+@@ -118,7 +118,7 @@ int bootsplash_dialog(const char *prompt
+ {
+ int ret;
+ bootsplash_to_verbose();
+- printf(prompt);
++ printf("%s", prompt);
+ ret = getchar();
+ bootsplash_to_silent();
+
+--- suspend-0.8.20080612/splash.c.printf_format 2009-02-04 09:45:15.000000000 +0100
++++ suspend-0.8.20080612/splash.c 2009-02-04 09:56:30.000000000 +0100
+@@ -53,7 +53,7 @@ static void splash_dummy_readpass(char *
+
+ static int splash_dialog(const char *prompt)
+ {
+- printf(prompt);
++ printf("%s", prompt);
+ return getchar();
+ }
+
diff --git a/hardware/powermanagement/suspend/files/resume-dont-ask-questions.patch b/hardware/powermanagement/suspend/files/resume-dont-ask-questions.patch
new file mode 100644
index 0000000000..3ed565b885
--- /dev/null
+++ b/hardware/powermanagement/suspend/files/resume-dont-ask-questions.patch
@@ -0,0 +1,27 @@
+Index: suspend-0.8_20100831/resume.c
+===================================================================
+--- suspend-0.8_20100831.orig/resume.c
++++ suspend-0.8_20100831/resume.c
+@@ -471,19 +471,9 @@ int main(int argc, char *argv[])
+
+ while (stat(resume_dev_name, &stat_buf)) {
+ fprintf(stderr,
+- "%s: Could not stat the resume device file '%s'\n"
+- "\tPlease type in the full path name to try again\n"
+- "\tor press ENTER to boot the system: ", my_name,
+- resume_dev_name);
+- fgets(resume_dev_name, MAX_STR_LEN - 1, stdin);
+- n = strlen(resume_dev_name) - 1;
+- if (n <= 0) {
+- error = EINVAL;
+- goto Free;
+- }
+-
+- if (resume_dev_name[n] == '\n')
+- resume_dev_name[n] = '\0';
++ "%s: Could not stat the resume device file '%s'\n", my_name, resume_dev_name);
++ error = EINVAL;
++ goto Free;
+ }
+
+ setvbuf(stdout, NULL, _IONBF, 0);
diff --git a/hardware/powermanagement/suspend/files/suppress-outputs.patch b/hardware/powermanagement/suspend/files/suppress-outputs.patch
new file mode 100644
index 0000000000..80a95733c7
--- /dev/null
+++ b/hardware/powermanagement/suspend/files/suppress-outputs.patch
@@ -0,0 +1,50 @@
+Index: suspend-0.8_20100831/splash.c
+===================================================================
+--- suspend-0.8_20100831.orig/splash.c
++++ suspend-0.8_20100831/splash.c
+@@ -206,7 +206,7 @@ void splash_prepare(struct splash *splas
+ if (!mode)
+ return;
+
+- printf("Looking for splash system... ");
++ /*printf("Looking for splash system... ");*/
+
+ if (!bootsplash_open()) {
+ splash->finish = bootsplash_finish;
+@@ -246,12 +246,12 @@ void splash_prepare(struct splash *splas
+ } else if (0) {
+ /* add another splash system here */
+ } else {
+- printf("none\n");
++ /*printf("none\n");*/
+ if (!open_input_fd())
+ splash->key_pressed = key_pressed;
+ return;
+ }
+- printf("found\n");
++ /*printf("found\n");*/
+
+ splash->progress(0);
+ }
+Index: suspend-0.8_20100831/suspend.c
+===================================================================
+--- suspend-0.8_20100831.orig/suspend.c
++++ suspend-0.8_20100831/suspend.c
+@@ -1733,7 +1733,7 @@ int suspend_system(int snapshot_fd, int
+ }
+
+ sprintf(message, "Snapshotting system");
+- printf("%s: %s\n", my_name, message);
++ /*printf("%s: %s\n", my_name, message);*/
+ splash.set_caption(message);
+ attempts = 2;
+ do {
+@@ -1748,7 +1748,7 @@ int suspend_system(int snapshot_fd, int
+ if (!in_suspend) {
+ /* first unblank the console, see console_codes(4) */
+ printf("\e[13]");
+- printf("%s: returned to userspace\n", my_name);
++ /*printf("%s: returned to userspace\n", my_name);*/
+ free_snapshot(snapshot_fd);
+ break;
+ }
diff --git a/hardware/powermanagement/suspend/files/suse/configure-suspend-encryption.sh b/hardware/powermanagement/suspend/files/suse/configure-suspend-encryption.sh
new file mode 100644
index 0000000000..189b9882b4
--- /dev/null
+++ b/hardware/powermanagement/suspend/files/suse/configure-suspend-encryption.sh
@@ -0,0 +1,75 @@
+#!/bin/bash
+#
+# configuration script for encrypted suspend
+#
+# (C) 2008 Stefan Seyfried SUSE Linux Products GmbH
+# released under the GPL V2
+
+CONF=/etc/suspend.conf
+
+if [ $UID != 0 ]; then
+ echo "Sorry, this configuration script needs root privileges."
+ echo "Exiting now..."
+ echo
+ exit 1
+fi
+
+cat <> $CONF
+
+# if we have more than one CPU / core, enabling threads will speed up
+# suspend.
+NUMCPU=$(grep -c ^processor /proc/cpuinfo)
+if [ $NUMCPU -gt 1 ]; then
+ # remove the threads setting...
+ sed -i '/^threads /d; ' $CONF
+ # ..and add it back.
+ echo "threads = y" >> $CONF
+fi
+
+echo
+echo "/etc/suspend.conf written, you can find the original file as /etc/suspend.conf.backup"
+echo
+
diff --git a/hardware/powermanagement/suspend/files/suse/suspend-0.80-dont-return-eintr-on-abort.diff b/hardware/powermanagement/suspend/files/suse/suspend-0.80-dont-return-eintr-on-abort.diff
new file mode 100644
index 0000000000..dddba22a4c
--- /dev/null
+++ b/hardware/powermanagement/suspend/files/suse/suspend-0.80-dont-return-eintr-on-abort.diff
@@ -0,0 +1,16 @@
+Index: b/suspend.c
+===================================================================
+--- a/suspend.c
++++ b/suspend.c
+@@ -1261,6 +1261,11 @@ Shutdown:
+
+ Unfreeze:
+ unfreeze(snapshot_fd);
++ /* ugly hack, because "user aborted suspend" is not really
++ * an error.
++ */
++ if (error == EINTR)
++ return 0;
+ return error;
+ }
+
diff --git a/hardware/powermanagement/suspend/files/suse/suspend-0.80-fix-s2both-resume-hacks.diff b/hardware/powermanagement/suspend/files/suse/suspend-0.80-fix-s2both-resume-hacks.diff
new file mode 100644
index 0000000000..3c52d6c3bd
--- /dev/null
+++ b/hardware/powermanagement/suspend/files/suse/suspend-0.80-fix-s2both-resume-hacks.diff
@@ -0,0 +1,79 @@
+Index: b/suspend.c
+===================================================================
+--- a/suspend.c
++++ b/suspend.c
+@@ -1772,11 +1772,10 @@ int suspend_system(int snapshot_fd, int
+ if (error)
+ goto Shutdown;
+ reset_signature(resume_fd);
+ free_swap_pages(snapshot_fd);
+ free_snapshot(snapshot_fd);
+- s2ram_resume();
+ goto Unfreeze;
+ }
+ Shutdown:
+ #endif
+ close(resume_fd);
+@@ -2268,11 +2267,11 @@ int main(int argc, char *argv[])
+ struct stat stat_buf;
+ int resume_fd, snapshot_fd, vt_fd, orig_vc = -1, suspend_vc = -1;
+ int test_fd = -1;
+ dev_t resume_dev;
+ int orig_loglevel, orig_swappiness, ret;
+- struct rlimit rlim;
++ struct rlimit rlim, rlim_saved;
+ static char chroot_path[MAX_STR_LEN];
+
+ my_name = basename(argv[0]);
+
+ /* Make sure the 0, 1, 2 descriptors are open before opening the
+@@ -2500,19 +2499,19 @@ int main(int argc, char *argv[])
+ goto Restore_console;
+ }
+
+ splash.progress(5);
+
++#ifdef CONFIG_ENCRYPT
++ if (do_encrypt && ! use_RSA)
++ splash.read_password(password, 1);
++#endif
+ #ifdef CONFIG_BOTH
+ /* If s2ram_hacks returns != 0, better not try to suspend to RAM */
+ if (s2ram)
+ s2ram = !s2ram_hacks();
+ #endif
+-#ifdef CONFIG_ENCRYPT
+- if (do_encrypt && ! use_RSA)
+- splash.read_password(password, 1);
+-#endif
+
+ open_printk();
+ orig_loglevel = get_kernel_console_loglevel();
+ set_kernel_console_loglevel(suspend_loglevel);
+
+@@ -2522,18 +2521,25 @@ int main(int argc, char *argv[])
+
+ sync();
+
+ splash.progress(10);
+
++ getrlimit(RLIMIT_NOFILE, &rlim_saved);
+ rlim.rlim_cur = 0;
+ rlim.rlim_max = 0;
+ setrlimit(RLIMIT_NOFILE, &rlim);
+ setrlimit(RLIMIT_NPROC, &rlim);
+ setrlimit(RLIMIT_CORE, &rlim);
+
+ ret = suspend_system(snapshot_fd, resume_fd, test_fd);
+
++ setrlimit(RLIMIT_NOFILE, &rlim_saved);
++#ifdef CONFIG_BOTH
++ if (s2ram)
++ s2ram_resume();
++#endif
++
+ if (orig_loglevel >= 0)
+ set_kernel_console_loglevel(orig_loglevel);
+
+ close_printk();
+
diff --git a/hardware/powermanagement/suspend/files/suse/suspend-0.80-keygen-new-defaults.diff b/hardware/powermanagement/suspend/files/suse/suspend-0.80-keygen-new-defaults.diff
new file mode 100644
index 0000000000..08d2369a04
--- /dev/null
+++ b/hardware/powermanagement/suspend/files/suse/suspend-0.80-keygen-new-defaults.diff
@@ -0,0 +1,48 @@
+Index: b/keygen.c
+===================================================================
+--- a/keygen.c
++++ b/keygen.c
+@@ -25,11 +25,11 @@
+
+ #define MIN_KEY_BITS 1024
+ #define MAX_KEY_BITS 4096
+ #define MAX_OUT_SIZE (sizeof(struct RSA_data))
+ #define MAX_STR_LEN 256
+-#define DEFAULT_FILE "suspend.key"
++#define DEFAULT_FILE "/etc/suspend.key"
+
+ static char in_buffer[MAX_STR_LEN];
+ static char pass_buf[MAX_STR_LEN];
+ static struct RSA_data rsa;
+ static unsigned char encrypt_buffer[RSA_DATA_SIZE];
+@@ -40,11 +40,11 @@ int main(int argc, char *argv[])
+ gcry_ac_handle_t rsa_hd;
+ gcry_ac_key_t rsa_priv;
+ gcry_ac_key_pair_t rsa_key_pair;
+ gcry_mpi_t mpi;
+ size_t offset;
+- int len = MIN_KEY_BITS, ret = EXIT_SUCCESS;
++ int len = 2048, ret = EXIT_SUCCESS;
+ struct termios termios;
+ char *vrfy_buf;
+ struct md5_ctx ctx;
+ unsigned char key_buf[PK_KEY_SIZE];
+ gcry_cipher_hd_t sym_hd;
+@@ -197,12 +197,15 @@ Retry:
+ gcry_free(str);
+ }
+
+ size = offset + sizeof(struct RSA_data) - RSA_DATA_SIZE;
+
+- printf("File name [%s]: ", DEFAULT_FILE);
+- fgets(in_buffer, MAX_STR_LEN, stdin);
++ *in_buffer = 0;
++ if (!((argc > 1) && (strcmp(argv[1], "-q") == 0))) {
++ printf("File name [%s]: ", DEFAULT_FILE);
++ fgets(in_buffer, MAX_STR_LEN, stdin);
++ }
+ if (!strlen(in_buffer) || *in_buffer == '\n')
+ strcpy(in_buffer, DEFAULT_FILE);
+ else if (in_buffer[strlen(in_buffer)-1] == '\n')
+ in_buffer[strlen(in_buffer)-1] = '\0';
+ fd = open(in_buffer, O_RDWR | O_CREAT | O_TRUNC, 00600);
diff --git a/hardware/powermanagement/suspend/files/suse/suspend-0.80-vbetool-retry-on-errors.diff b/hardware/powermanagement/suspend/files/suse/suspend-0.80-vbetool-retry-on-errors.diff
new file mode 100644
index 0000000000..2637e3d644
--- /dev/null
+++ b/hardware/powermanagement/suspend/files/suse/suspend-0.80-vbetool-retry-on-errors.diff
@@ -0,0 +1,102 @@
+Index: s2ram-x86.c
+===================================================================
+--- s2ram-x86.c.orig
++++ s2ram-x86.c
+@@ -321,6 +321,7 @@ int s2ram_do(void)
+
+ void s2ram_resume(void)
+ {
++ int i = 0;
+ if (flags & PCI_SAVE) {
+ printf("restoring PCI config of device %02x:%02x.%d\n",
+ vga_dev.bus, vga_dev.dev, vga_dev.func);
+@@ -330,19 +331,36 @@ void s2ram_resume(void)
+ }
+ // FIXME: can we call vbetool_init() multiple times without cleaning up?
+ if (flags & VBE_POST) {
+- vbetool_init();
+- printf("Calling do_post\n");
+- do_post();
++ while (i++ < 5) {
++ vbetool_init();
++ printf("Calling do_post\n");
++ if (!do_post())
++ break;
++ printf("do_post failed, sleeping 100ms and retrying...\n");
++ usleep(100000);
++ }
++ i = 0;
+ }
+ if (vbe_buffer) {
+- vbetool_init();
+- printf("Calling restore_state_from\n");
+- restore_state_from(vbe_buffer);
++ while (i++ < 5) {
++ vbetool_init();
++ printf("Calling restore_state_from\n");
++ if (!restore_state_from(vbe_buffer))
++ break;
++ printf("restore_state_from failed, sleeping 100ms and retrying...\n");
++ usleep(100000);
++ }
++ i = 0;
+ }
+ if (vbe_mode >= 0) {
+- vbetool_init();
+- printf("Calling set_vbe_mode\n");
+- do_set_mode(vbe_mode, 0);
++ while (i++ < 5) {
++ vbetool_init();
++ printf("Calling set_vbe_mode\n");
++ if (!do_set_mode(vbe_mode, 0))
++ break;
++ printf("set_vbe_mode failed, sleeping 100ms and retrying...\n");
++ usleep(100000);
++ }
+ }
+ if (!fb_nosuspend)
+ resume_fbcon();
+Index: vbetool/vbetool.c
+===================================================================
+--- vbetool/vbetool.c.orig
++++ vbetool/vbetool.c
+@@ -231,9 +231,10 @@ int do_post(void)
+ return 0;
+ }
+
+-void restore_state_from(char *data)
++int restore_state_from(char *data)
+ {
+ struct LRMI_regs r;
++ int ret = 1;
+
+ /* VGA BIOS mode 3 is text mode */
+ do_set_mode(3,1);
+@@ -252,12 +253,16 @@ void restore_state_from(char *data)
+ "Can't restore video state (vm86 failure)\n");
+ } else if ((r.eax & 0xffff) != 0x4f) {
+ fprintf(stderr, "Restore video state failed\n");
++ } else {
++ /* everything ok */
++ ret = 0;
+ }
+
+ LRMI_free_real(data);
+
+ ioctl(0, KDSETMODE, KD_TEXT);
+
++ return ret;
+ }
+
+ #ifndef S2RAM
+Index: vbetool/vbetool.h
+===================================================================
+--- vbetool/vbetool.h.orig
++++ vbetool/vbetool.h
+@@ -18,5 +18,5 @@ int disable_vga(void);
+ int do_get_panel_id();
+ void vbetool_init(void);
+ char *__save_state(int *);
+-void restore_state_from(char *);
++int restore_state_from(char *);
+ int __get_mode(void);
diff --git a/hardware/powermanagement/suspend/files/suse/suspend-comment-configfile-options.diff b/hardware/powermanagement/suspend/files/suse/suspend-comment-configfile-options.diff
new file mode 100644
index 0000000000..7d3ddae382
--- /dev/null
+++ b/hardware/powermanagement/suspend/files/suse/suspend-comment-configfile-options.diff
@@ -0,0 +1,71 @@
+Index: b/conf/suspend.conf
+===================================================================
+--- a/conf/suspend.conf
++++ b/conf/suspend.conf
+@@ -1,9 +1,62 @@
+-snapshot device = /dev/snapshot
+-resume device =
++#############################################################################
++##
++## note:
++## using pm-utils or powersaved, this file (/etc/suspend.conf) only serves as
++## a template, image_size and resume_device are filled in dynamically
++## and the generated /var/lib/s2disk.conf is used to suspend.
++## _If_ you enter stuff here, it will be copied to that file unchanged,
++## but this might skip some features and sanity checks.
++##
++#############################################################################
++##
++## your snapshot device. You should not need to change this.
++# snapshot device = /dev/snapshot
++#
++## enter your swap device here. Read the warning on pm-utils above, please!
++#resume device =
++#
++## image size will also be filled in by pm-utils
+ #image size = 350000000
++#
+ #suspend loglevel = 2
++#max loglevel =
++#
++## compute checksum will slow down suspend and resume.
++## Debugging option, default n
+ #compute checksum = y
+-#compress = y
++#
++## compression will often speed up suspend and resume (default n)
++#compress = n
++#
++## encryption support is rather basic right now - e.g. USB keyboards will not
++## work to enter the key in the standard initrd, also beware of
++## non-US keyboard layouts. Only use this if you know what you are doing.
+ #encrypt = y
+-#early writeout = y
++#
++## RSA key file that is used for encryption
++#RSA key file = /etc/suspend.key
++#
++## start writing out the image early, before buffers are full.
++## will most of the time speed up overall writing time (default y)
++#early writeout = n
++#
++## use splash picture? (default n)
+ #splash = y
++#
++## shutdown method:
++## platform - go through ACPI BIOS to power off the machine (default on
++## machines that support it)
++## shutdown - just power off like after a shutdown
++## reboot - reboot instead of powering off. For debugging only.
++#shutdown method = platform
++#
++## resume offset: for use with swapfiles, use "swap-offset" to find out.
++#resume offset = 12345
++#
++## pause after resume for n seconds, so that the timing information can
++## actually be read (default 0 => don't pause)
++#resume pause = 2
++#
++## use threads for suspend? (default n)
++## this hugely speeds up encryption and also compression on mulitcore machines
++#threads = y
diff --git a/hardware/powermanagement/suspend/files/suse/suspend-default-compress.diff b/hardware/powermanagement/suspend/files/suse/suspend-default-compress.diff
new file mode 100644
index 0000000000..f4058c2489
--- /dev/null
+++ b/hardware/powermanagement/suspend/files/suse/suspend-default-compress.diff
@@ -0,0 +1,39 @@
+Index: suspend.c
+===================================================================
+--- suspend.c.orig
++++ suspend.c
+@@ -1768,13 +1768,15 @@ int main(int argc, char *argv[])
+ if (compute_checksum != 'y' && compute_checksum != 'Y')
+ compute_checksum = 0;
+ #ifdef CONFIG_COMPRESS
+- if (do_compress != 'y' && do_compress != 'Y') {
++ if (do_compress != 'n' && do_compress != 'N') {
++ do_compress = 1;
++ if (lzo_init() != LZO_E_OK) {
++ suspend_error("Failed to initialize LZO. "
++ "Compression disabled.\n");
++ do_compress = 0;
++ }
++ } else
+ do_compress = 0;
+- } else if (lzo_init() != LZO_E_OK) {
+- suspend_error("Failed to initialize LZO. "
+- "Compression disabled.\n");
+- do_compress = 0;
+- }
+ #endif
+ #ifdef CONFIG_ENCRYPT
+ if (do_encrypt != 'y' && do_encrypt != 'Y')
+Index: conf/suspend.conf
+===================================================================
+--- conf/suspend.conf.orig
++++ conf/suspend.conf
+@@ -25,7 +25,7 @@
+ ## Debugging option, default n
+ #compute checksum = y
+ #
+-## compression will often speed up suspend and resume (default n)
++## compression will often speed up suspend and resume (default y)
+ #compress = n
+ #
+ ## encryption support is rather basic right now - e.g. USB keyboards will not
diff --git a/hardware/powermanagement/suspend/files/suse/suspend-default-splash.diff b/hardware/powermanagement/suspend/files/suse/suspend-default-splash.diff
new file mode 100644
index 0000000000..06bdf76fd3
--- /dev/null
+++ b/hardware/powermanagement/suspend/files/suse/suspend-default-splash.diff
@@ -0,0 +1,49 @@
+Index: resume.c
+===================================================================
+--- resume.c.orig
++++ resume.c
+@@ -421,10 +421,10 @@ int main(int argc, char *argv[])
+ if (error)
+ return -error;
+
+- if (splash_param != 'y' && splash_param != 'Y')
+- splash_param = 0;
+- else
++ if (splash_param != 'n' && splash_param != 'N')
+ splash_param = SPL_RESUME;
++ else
++ splash_param = 0;
+
+ get_page_and_buffer_sizes();
+
+Index: suspend.c
+===================================================================
+--- suspend.c.orig
++++ suspend.c
+@@ -1782,10 +1782,10 @@ int main(int argc, char *argv[])
+ if (do_encrypt != 'y' && do_encrypt != 'Y')
+ do_encrypt = 0;
+ #endif
+- if (splash_param != 'y' && splash_param != 'Y')
+- splash_param = 0;
+- else
++ if (splash_param != 'n' && splash_param != 'N')
+ splash_param = SPL_SUSPEND;
++ else
++ splash_param = 0;
+
+ if (early_writeout != 'n' && early_writeout != 'N')
+ early_writeout = 1;
+Index: conf/suspend.conf
+===================================================================
+--- conf/suspend.conf.orig
++++ conf/suspend.conf
+@@ -40,7 +40,7 @@
+ ## will most of the time speed up overall writing time (default y)
+ #early writeout = n
+ #
+-## use splash picture? (default n)
++## use splash picture? (default y)
+ #splash = y
+ #
+ ## shutdown method:
diff --git a/hardware/powermanagement/suspend/pspec.xml b/hardware/powermanagement/suspend/pspec.xml
new file mode 100644
index 0000000000..38214b666f
--- /dev/null
+++ b/hardware/powermanagement/suspend/pspec.xml
@@ -0,0 +1,76 @@
+
+
+
+
+ suspend
+ http://suspend.sourceforge.net/
+
+ PisiLinux Community
+ admins@pisilinux.org
+
+ GPLv2
+ app:console
+ A set of tools to support sleep modes
+ suspend package allows users to suspend-to-ram, suspend-to-disk, and suspend-to-both.
+ http://sourceforge.net/projects/suspend/files/suspend/suspend-1.0/suspend-utils-1.0.tar.bz2
+
+ lzo-devel
+ pciutils-devel
+ libx86-devel
+ plymouth-devel
+
+
+ suse/suspend-comment-configfile-options.diff
+ suse/suspend-default-compress.diff
+ suse/suspend-default-splash.diff
+ suse/suspend-0.80-dont-return-eintr-on-abort.diff
+
+ suse/suspend-0.80-keygen-new-defaults.diff
+ suse/suspend-0.80-vbetool-retry-on-errors.diff
+
+ mandriva/suspend-0.8-printf_format.patch
+
+
+
+ resume-dont-ask-questions.patch
+ suppress-outputs.patch
+
+
+
+
+
+ suspend
+
+ lzo
+ libx86
+ plymouth-core-libs
+ pciutils
+
+
+ /etc/suspend.conf
+ /etc/suspend.key
+ /usr/sbin
+ /usr/share/doc
+
+
+ suse/configure-suspend-encryption.sh
+
+
+
+
+
+ 2014-03-09
+ 1.0
+ Rebuild
+ Varol Maksutoğlu
+ waroi@pisilinux.org
+
+
+ 2012-12-29
+ 1.0
+ First release
+ Osman Erkan
+ osman.erkan@pisilinux.org
+
+
+
diff --git a/hardware/powermanagement/suspend/translations.xml b/hardware/powermanagement/suspend/translations.xml
new file mode 100644
index 0000000000..1ce8506914
--- /dev/null
+++ b/hardware/powermanagement/suspend/translations.xml
@@ -0,0 +1,8 @@
+
+
+
+ suspend
+ Uyku kiplerini destekleme araçları
+ suspend, kullanıcıların bellek, disk veya her ikisini de kullanarak sistemlerini askıya almalarını sağlayan araçları içerir.
+
+
diff --git a/util/admin/logrotate/actions.py b/util/admin/logrotate/actions.py
new file mode 100644
index 0000000000..4dbf198244
--- /dev/null
+++ b/util/admin/logrotate/actions.py
@@ -0,0 +1,22 @@
+#!/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
+
+def build():
+ autotools.make("RPM_OPT_FLAGS=\"%s\" WITH_ACL=yes" % get.CFLAGS())
+
+def install():
+ autotools.rawInstall("PREFIX=%s MANDIR=%s" % (get.installDIR(), get.manDIR()))
+
+ pisitools.dodir("/etc/logrotate.d")
+
+ pisitools.dobin("examples/logrotate.cron", "/etc/cron.daily")
+ pisitools.insinto("/etc", "examples/logrotate-default", "logrotate.conf")
+
+ pisitools.dodoc("CHANGES", "COPYING", "README*")
diff --git a/util/admin/logrotate/pspec.xml b/util/admin/logrotate/pspec.xml
new file mode 100644
index 0000000000..2a323d9665
--- /dev/null
+++ b/util/admin/logrotate/pspec.xml
@@ -0,0 +1,66 @@
+
+
+
+
+ logrotate
+ https://fedorahosted.org/releases/l/o/logrotate
+
+ PisiLinux Community
+ admins@pisilinux.org
+
+ GPLv2
+ app:console
+ Rotates, compresses, removes and emails system log files
+ logrotate is designed to ease administration of systems that generate large numbers of log files. It allows automatic rotation, compression, removal, and emailing of log files.
+ https://fedorahosted.org/releases/l/o/logrotate/logrotate-3.8.8.tar.gz
+
+ popt-devel
+ acl-devel
+
+
+
+
+ logrotate
+
+ popt
+ acl
+
+
+ /etc
+ /usr/sbin
+ /usr/share/doc
+ /usr/share/man
+
+
+
+
+
+ 2015-01-26
+ 3.8.8
+ Version bump.
+ Stefan Gronewold(groni)
+ groni@pisilinux.org
+
+
+ 2014-06-18
+ 3.8.7
+ v.bump
+ Ayhan Yalçınsoy
+ ayhanyacinsoy@gmail.com
+
+
+ 2014-03-09
+ 3.7.9
+ Rebuild.
+ Kamil Atlı
+ suvarice@gmail.com
+
+
+ 2011-09-29
+ 3.7.9
+ First release
+ Pisi Linux Admins
+ admins@pisilinux.org
+
+
+
diff --git a/util/admin/logrotate/translations.xml b/util/admin/logrotate/translations.xml
new file mode 100644
index 0000000000..248d52b3c5
--- /dev/null
+++ b/util/admin/logrotate/translations.xml
@@ -0,0 +1,8 @@
+
+
+
+ logrotate
+ Sistem günlük (log) dosyalarını yönetmeyi kolaylaştıran bir araç
+ Logrotate kayıt dosyalarının rotasyonunu, silinmesini veya e-posta ile gönderilmesi gibi işlevleri ile sistem yönetimini kolaylaştırıan bir uygulamadır.
+
+