add needed package part-1

This commit is contained in:
Ertuğrul Erata
2015-08-05 14:45:59 +03:00
parent 82cec90e03
commit 5ea757b7a3
32 changed files with 1423 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
<PISI>
<Name>hardware.cpu</Name>
</PISI>
+17
View File
@@ -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/*")
+123
View File
@@ -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.
@@ -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 <kay.sievers@vrfy.org>
*/
#ifndef _GNU_SOURCE
# define _GNU_SOURCE 1
#endif
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <limits.h>
#include <stdbool.h>
#include <inttypes.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/stat.h>
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;
}
+55
View File
@@ -0,0 +1,55 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>intel-ucode</Name>
<Homepage>http://www.intel.com/</Homepage>
<Packager>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>as-is</License>
<IsA>library</IsA>
<Summary>Microcode update files for Intel CPUs</Summary>
<Description>Microcode update files for Intel CPUs</Description>
<Archive sha1sum="638d760b53c94f073d62b334561ae6bc139c8a32" type="targz" target="microcode-20140122">http://downloadmirror.intel.com/23574/eng/microcode-20140122.tgz</Archive>
<AdditionalFiles>
<AdditionalFile target="intel-microcode2ucode.c">intel-microcode2ucode.c</AdditionalFile>
</AdditionalFiles>
</Source>
<Package>
<Name>intel-ucode</Name>
<Files>
<Path fileType="data">/usr/share/doc</Path>
<Path fileType="library">/lib/firmware</Path>
</Files>
<AdditionalFiles>
<AdditionalFile target="/usr/share/doc/intel-ucode/LICENSE" owner="root" permission="0644">LICENSE</AdditionalFile>
</AdditionalFiles>
</Package>
<History>
<Update release="3">
<Date>2014-05-06</Date>
<Version>20140122</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="2">
<Date>2014-01-23</Date>
<Version>20130906</Version>
<Comment>Version Bump</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="1">
<Date>2012-10-01</Date>
<Version>20120606</Version>
<Comment>First release</Comment>
<Name>Erdem Artan</Name>
<Email>admins@pisilinux.org</Email>
</Update>
</History>
</PISI>
@@ -0,0 +1,8 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>intel-ucode</Name>
<Summary xml:lang="tr">Intel işlemciler için microcode dosyaları</Summary>
<Description xml:lang="tr">Intel işlemciler için microcode dosyaları</Description>
</Source>
</PISI>
+22
View File
@@ -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")
+46
View File
@@ -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")
@@ -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=
@@ -0,0 +1,9 @@
[Unit]
Description=irqbalance daemon
After=syslog.target
[Service]
ExecStart=/usr/sbin/irqbalance --foreground $IRQBALANCE_ARGS
[Install]
WantedBy=multi-user.target
+66
View File
@@ -0,0 +1,66 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>irqbalance</Name>
<Homepage>http://www.irqbalance.org</Homepage>
<Packager>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>GPLv2</License>
<IsA>service</IsA>
<Summary>Distribute hardware interrupts across processors</Summary>
<Description>Daemon to balance IRQs across multiple CPUs on systems.This can lead to better performance and I/O balance on SMP systems.</Description>
<!--<Archive sha1sum="01ad859a1eb0266e4ccbcffd7990a729c2befedb" type="tarbz2">http://pkgs.fedoraproject.org/repo/pkgs/irqbalance/irqbalance-1.0.4.tar.bz2/f7ca283c46331db73f27e686a643dcfb/irqbalance-1.0.4.tar.bz2</Archive>-->
<Archive sha1sum="29b92a17d71b35966811ac3229bbb199bf53cd83" type="tarbz2">http://pkgs.fedoraproject.org/repo/pkgs/irqbalance/irqbalance-1.0.7.tar.bz2/09cb0ab81ab4f3401a7ff5dabc158a1e/irqbalance-1.0.7.tar.bz2</Archive>
<BuildDependencies>
<Dependency>numactl-devel</Dependency>
</BuildDependencies>
</Source>
<Package>
<Name>irqbalance</Name>
<RuntimeDependencies>
<Dependency>numactl</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="config">/etc</Path>
<Path fileType="executable">/usr/sbin</Path>
<Path fileType="data">/lib/systemd/system</Path>
<Path fileType="man">/usr/share/man</Path>
<Path fileType="doc">/usr/share/doc</Path>
</Files>
<AdditionalFiles>
<AdditionalFile owner="root" permission="0644" target="/etc/conf.d/irqbalance">irqbalance.confd</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/lib/systemd/system/irqbalance.service">irqbalance.service</AdditionalFile>
</AdditionalFiles>
<Provides>
<COMAR script="service.py">System.Service</COMAR>
</Provides>
</Package>
<History>
<Update release="3">
<Date>2014-06-06</Date>
<Version>1.0.7</Version>
<Comment>Version bump.</Comment>
<Name>Aydın Demirel</Name>
<Email>aydin.demirel@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2014-01-26</Date>
<Version>1.0.4</Version>
<Comment>Rebuild with new Download Area</Comment>
<Name>Stefan Gronewold(groni)</Name>
<Email>groni@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2012-10-01</Date>
<Version>1.0.4</Version>
<Comment>First release</Comment>
<Name>Erdem Artan</Name>
<Email>admins@pisilinux.org</Email>
</Update>
</History>
</PISI>
+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>irqbalance</Name>
<Summary xml:lang="tr">Donanım kesmelerini işlemciler arasında dağıtır</Summary>
<Description xml:lang="tr">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.</Description>
</Source>
</PISI>
+28
View File
@@ -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())
+61
View File
@@ -0,0 +1,61 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>squashfs-tools</Name>
<Homepage>http://squashfs.sourceforge.net/</Homepage>
<Packager>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>GPLv2</License>
<IsA>app:console</IsA>
<Summary>Userspace tools to create squashfs compressed filesystem</Summary>
<Description>Squashfs is a highly compressed read-only filesystem for Linux. This package contains the utilities for manipulating squashfs filesystems.</Description>
<Archive sha1sum="e0944471ff68e215d3fecd464f30ea6ceb635fd7" type="targz">http://sourceforge.net/projects/squashfs/files/squashfs/squashfs4.2/squashfs4.2.tar.gz</Archive>
<BuildDependencies>
<Dependency>lzo-devel</Dependency>
<!--xz-devel is in system.devel-->
<Dependency>xz-devel</Dependency>
<Dependency>zlib-devel</Dependency>
</BuildDependencies>
</Source>
<Package>
<Name>squashfs-tools</Name>
<RuntimeDependencies>
<Dependency>lzo</Dependency>
<!--xz is in system.base-->
<Dependency>zlib</Dependency>
<Dependency>xz</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="executable">/usr/sbin</Path>
<Path fileType="doc">/usr/share/doc</Path>
</Files>
</Package>
<History>
<Update release="3">
<Date>2014-03-09</Date>
<Version>4.2</Version>
<Comment>Rebuild</Comment>
<Name>Varol Maksutoğlu</Name>
<Email>waroi@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2013-02-12</Date>
<Version>4.2</Version>
<Comment>Change compression type to xz, and some other enhancements.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2012-11-14</Date>
<Version>4.2</Version>
<Comment>First release</Comment>
<Name>Osman Erkan</Name>
<Email>osman.erkan@pisilinux.org</Email>
</Update>
</History>
</PISI>
@@ -0,0 +1,8 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>squashfs-tools</Name>
<Summary xml:lang="tr">squashfs sıkıştırılmış salt-okunur dosya sistemi oluşturma aracı</Summary>
<Description xml:lang="tr">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.</Description>
</Source>
</PISI>
@@ -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())
@@ -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();
}
@@ -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);
@@ -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;
}
@@ -0,0 +1,75 @@
#!/bin/bash
#
# configuration script for encrypted suspend
#
# (C) 2008 Stefan Seyfried <seife@suse.de> 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 <<EOF
We are going to create the key for encrypted suspend now. There are some
questions we need to ask for:
- Key size.
The longer the key, the harder it will be to break the encryption.
On the other hand, the longer the key, the more computational power is
needed, which means that the suspend and resume will be slightly slower.
Nowadays, 1024 bits of key length might be too insecure for some users,
the default of 2048 bits should be fine.
- Your passphrase. This passphrase protects the generated key. It should
be sufficiently long and not easy to guess.
This is the password you need to enter to resume from encrypted suspend.
To make sure that you did not mistype the passphrase, you need to confirm
it by entering it a second time.
The program will create the key and copy it to /etc/suspend.key, then it
will modify /etc/suspend.conf that from now on your suspend to disk image
will be encrypted. Note that creating the key might take some time,
depending on your machine. You can probably speed it up by using the mouse
and generating I/O, e.g. by starting other programs.
If you do not want to continue, press CTRL-C now.
EOF
# -q suppresses asking for the key file and makes it default
# to /etc/suspend.key
suspend-keygen -q
if [ $? != 0 ]; then
echo
echo "Something went wrong. Please check above for error messages."
echo "/etc/suspend.conf is not modified."
echo
exit 1
fi
echo "We successfully generated /etc/suspend.key. Modifying suspend.conf now."
# backup...
cp -a $CONF ${CONF}.backup
# remove the encrypt and keyfile entries from the config file.
# the key file will default to /etc/suspend.key anyway
sed -i '/^encrypt /d;/^RSA key file /d;' $CONF
echo "encrypt = y" >> $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
@@ -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;
}
@@ -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();
@@ -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);
@@ -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);
@@ -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 = <path_to_resume_device_file>
+#############################################################################
+##
+## 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 = <path_to_resume_device_file>
+#
+## 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
@@ -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
@@ -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:
@@ -0,0 +1,76 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>suspend</Name>
<Homepage>http://suspend.sourceforge.net/</Homepage>
<Packager>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>GPLv2</License>
<IsA>app:console</IsA>
<Summary>A set of tools to support sleep modes</Summary>
<Description>suspend package allows users to suspend-to-ram, suspend-to-disk, and suspend-to-both.</Description>
<Archive sha1sum="49ac219b54780265c31e8263d00e2b7b525d0736" type="tarbz2">http://sourceforge.net/projects/suspend/files/suspend/suspend-1.0/suspend-utils-1.0.tar.bz2</Archive>
<BuildDependencies>
<Dependency>lzo-devel</Dependency>
<Dependency>pciutils-devel</Dependency>
<Dependency>libx86-devel</Dependency>
<Dependency>plymouth-devel</Dependency>
</BuildDependencies>
<Patches>
<Patch level="1">suse/suspend-comment-configfile-options.diff</Patch>
<Patch level="0">suse/suspend-default-compress.diff</Patch>
<Patch level="0">suse/suspend-default-splash.diff</Patch>
<Patch level="1">suse/suspend-0.80-dont-return-eintr-on-abort.diff</Patch>
<!--Patch level="1">suse/suspend-0.80-fix-s2both-resume-hacks.diff</Patch-->
<Patch level="1">suse/suspend-0.80-keygen-new-defaults.diff</Patch>
<Patch level="0">suse/suspend-0.80-vbetool-retry-on-errors.diff</Patch>
<Patch level="1">mandriva/suspend-0.8-printf_format.patch</Patch>
<!--<Patch level="1">mandriva/suspend-plymouth.patch</Patch>-->
<!--<Patch level="1">mandriva/suspend-plymouth-always-quit.patch</Patch>-->
<Patch level="1">resume-dont-ask-questions.patch</Patch>
<Patch level="1">suppress-outputs.patch</Patch>
<!--<Patch level="1">improve-plymouth-support.patch</Patch>-->
</Patches>
</Source>
<Package>
<Name>suspend</Name>
<RuntimeDependencies>
<Dependency>lzo</Dependency>
<Dependency>libx86</Dependency>
<Dependency>plymouth-core-libs</Dependency>
<Dependency>pciutils</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="config">/etc/suspend.conf</Path>
<Path fileType="config">/etc/suspend.key</Path>
<Path fileType="executable">/usr/sbin</Path>
<Path fileType="doc">/usr/share/doc</Path>
</Files>
<AdditionalFiles>
<AdditionalFile owner="root" permission="0755" target="/usr/sbin/configure-suspend-encryption">suse/configure-suspend-encryption.sh</AdditionalFile>
</AdditionalFiles>
</Package>
<History>
<Update release="2">
<Date>2014-03-09</Date>
<Version>1.0</Version>
<Comment>Rebuild</Comment>
<Name>Varol Maksutoğlu</Name>
<Email>waroi@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2012-12-29</Date>
<Version>1.0</Version>
<Comment>First release</Comment>
<Name>Osman Erkan</Name>
<Email>osman.erkan@pisilinux.org</Email>
</Update>
</History>
</PISI>
@@ -0,0 +1,8 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>suspend</Name>
<Summary xml:lang="tr">Uyku kiplerini destekleme araçları</Summary>
<Description xml:lang="tr">suspend, kullanıcıların bellek, disk veya her ikisini de kullanarak sistemlerini askıya almalarını sağlayan araçları içerir.</Description>
</Source>
</PISI>
+22
View File
@@ -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*")
+66
View File
@@ -0,0 +1,66 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>logrotate</Name>
<Homepage>https://fedorahosted.org/releases/l/o/logrotate</Homepage>
<Packager>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>GPLv2</License>
<IsA>app:console</IsA>
<Summary>Rotates, compresses, removes and emails system log files</Summary>
<Description>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.</Description>
<Archive sha1sum="e1acb9d15abc0d9f6a4f6e58409e0319e5d41f4e" type="targz">https://fedorahosted.org/releases/l/o/logrotate/logrotate-3.8.8.tar.gz</Archive>
<BuildDependencies>
<Dependency>popt-devel</Dependency>
<Dependency>acl-devel</Dependency>
</BuildDependencies>
</Source>
<Package>
<Name>logrotate</Name>
<RuntimeDependencies>
<Dependency>popt</Dependency>
<Dependency>acl</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="config">/etc</Path>
<Path fileType="executable">/usr/sbin</Path>
<Path fileType="doc">/usr/share/doc</Path>
<Path fileType="man">/usr/share/man</Path>
</Files>
</Package>
<History>
<Update release="4">
<Date>2015-01-26</Date>
<Version>3.8.8</Version>
<Comment>Version bump.</Comment>
<Name>Stefan Gronewold(groni)</Name>
<Email>groni@pisilinux.org</Email>
</Update>
<Update release="3" type="critical">
<Date>2014-06-18</Date>
<Version>3.8.7</Version>
<Comment>v.bump</Comment>
<Name>Ayhan Yalçınsoy</Name>
<Email>ayhanyacinsoy@gmail.com</Email>
</Update>
<Update release="2" type="critical">
<Date>2014-03-09</Date>
<Version>3.7.9</Version>
<Comment>Rebuild.</Comment>
<Name>Kamil Atlı</Name>
<Email>suvarice@gmail.com</Email>
</Update>
<Update release="1" type="critical">
<Date>2011-09-29</Date>
<Version>3.7.9</Version>
<Comment>First release</Comment>
<Name>Pisi Linux Admins</Name>
<Email>admins@pisilinux.org</Email>
</Update>
</History>
</PISI>
+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>logrotate</Name>
<Summary xml:lang="tr">Sistem günlük (log) dosyalarını yönetmeyi kolaylaştıran bir araç</Summary>
<Description xml:lang="tr">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.</Description>
</Source>
</PISI>