create core package
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
#!/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 setup():
|
||||
autotools.configure("--libdir=/lib \
|
||||
--disable-static")
|
||||
|
||||
def build():
|
||||
autotools.make()
|
||||
|
||||
def install():
|
||||
autotools.rawInstall("DESTDIR=%s" % (get.installDIR()))
|
||||
|
||||
# We do not distribute this
|
||||
pisitools.remove("/usr/bin/dlist_test")
|
||||
|
||||
pisitools.dodoc("docs/libsysfs.txt")
|
||||
pisitools.dodoc("AUTHORS", "COPYING", "ChangeLog", "NEWS", "README", "TODO")
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
diff -puN lib/sysfs_class.c~sysfsutils_class_dup lib/sysfs_class.c
|
||||
--- sysfsutils-2.1.0/lib/sysfs_class.c~sysfsutils_class_dup 2006-09-07 17:01:26.000000000 -0500
|
||||
+++ sysfsutils-2.1.0-bjking1/lib/sysfs_class.c 2006-09-07 17:01:26.000000000 -0500
|
||||
@@ -66,7 +66,7 @@ static int cdev_name_equal(void *a, void
|
||||
return 0;
|
||||
|
||||
if (strncmp((char *)a, ((struct sysfs_class_device *)b)->name,
|
||||
- strlen((char *)a)) == 0)
|
||||
+ SYSFS_NAME_LEN) == 0)
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
@@ -0,0 +1,164 @@
|
||||
diff -upr sysfsutils-2.1.0-old/lib/sysfs_utils.c sysfsutils-2.1.0/lib/sysfs_utils.c
|
||||
--- sysfsutils-2.1.0-old/lib/sysfs_utils.c 2006-08-07 07:08:01.000000000 +0200
|
||||
+++ sysfsutils-2.1.0/lib/sysfs_utils.c 2008-05-13 07:42:50.000000000 +0200
|
||||
@@ -117,84 +117,104 @@ int sysfs_get_link(const char *path, cha
|
||||
{
|
||||
char devdir[SYSFS_PATH_MAX];
|
||||
char linkpath[SYSFS_PATH_MAX];
|
||||
- char temp_path[SYSFS_PATH_MAX];
|
||||
- char *d = NULL, *s = NULL;
|
||||
- int slashes = 0, count = 0;
|
||||
+ char *d, *s;
|
||||
+ int count;
|
||||
|
||||
if (!path || !target || len == 0) {
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
|
||||
- memset(devdir, 0, SYSFS_PATH_MAX);
|
||||
- memset(linkpath, 0, SYSFS_PATH_MAX);
|
||||
- memset(temp_path, 0, SYSFS_PATH_MAX);
|
||||
- safestrcpy(devdir, path);
|
||||
-
|
||||
- if ((readlink(path, linkpath, SYSFS_PATH_MAX)) < 0) {
|
||||
+ count = readlink(path, linkpath, SYSFS_PATH_MAX);
|
||||
+ if (count < 0)
|
||||
return -1;
|
||||
- }
|
||||
- d = linkpath;
|
||||
+ else
|
||||
+ linkpath[count] = '\0';
|
||||
/*
|
||||
* Three cases here:
|
||||
* 1. relative path => format ../..
|
||||
* 2. absolute path => format /abcd/efgh
|
||||
* 3. relative path _from_ this dir => format abcd/efgh
|
||||
*/
|
||||
- switch (*d) {
|
||||
- case '.':
|
||||
+ if (*linkpath == '/') {
|
||||
+ /* absolute path - copy as is */
|
||||
+ safestrcpymax(target, linkpath, len);
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ safestrcpy(devdir, path);
|
||||
+ s = strrchr(devdir, '/');
|
||||
+ if (s == NULL)
|
||||
+ s = devdir - 1;
|
||||
+ d = linkpath;
|
||||
+ while (*d == '.') {
|
||||
+ if (*(d+1) == '/') {
|
||||
/*
|
||||
* handle the case where link is of type ./abcd/xxx
|
||||
*/
|
||||
- safestrcpy(temp_path, devdir);
|
||||
- if (*(d+1) == '/')
|
||||
- d += 2;
|
||||
- else if (*(d+1) == '.')
|
||||
- goto parse_path;
|
||||
- s = strrchr(temp_path, '/');
|
||||
- if (s != NULL) {
|
||||
- *(s+1) = '\0';
|
||||
- safestrcat(temp_path, d);
|
||||
- } else {
|
||||
- safestrcpy(temp_path, d);
|
||||
- }
|
||||
- safestrcpymax(target, temp_path, len);
|
||||
- break;
|
||||
+ d += 2;
|
||||
+ while (*d == '/')
|
||||
+ d++;
|
||||
+ continue;
|
||||
+ } else if (*(d+1) != '.' || *(d+2) != '/')
|
||||
/*
|
||||
- * relative path, getting rid of leading "../.."
|
||||
+ * relative path from this directory, starting
|
||||
+ * with a hidden directory
|
||||
*/
|
||||
-parse_path:
|
||||
- while (*d == '/' || *d == '.') {
|
||||
- if (*d == '/')
|
||||
- slashes++;
|
||||
- d++;
|
||||
- }
|
||||
- d--;
|
||||
- s = &devdir[strlen(devdir)-1];
|
||||
- while (s != NULL && count != (slashes+1)) {
|
||||
+ break;
|
||||
+
|
||||
+ /*
|
||||
+ * relative path, getting rid of leading "../.."; must
|
||||
+ * be careful here since any path component of devdir
|
||||
+ * could be a symlink again
|
||||
+ */
|
||||
+ for (;;) {
|
||||
+ while (s > devdir && *s == '/') {
|
||||
s--;
|
||||
- if (*s == '/')
|
||||
- count++;
|
||||
+ if (*s == '.'
|
||||
+ && (s == devdir || *(s-1) == '/'))
|
||||
+ s--;
|
||||
}
|
||||
- safestrcpymax(s, d, (SYSFS_PATH_MAX-strlen(devdir)));
|
||||
- safestrcpymax(target, devdir, len);
|
||||
- break;
|
||||
- case '/':
|
||||
- /* absolute path - copy as is */
|
||||
- safestrcpymax(target, linkpath, len);
|
||||
- break;
|
||||
- default:
|
||||
- /* relative path from this directory */
|
||||
- safestrcpy(temp_path, devdir);
|
||||
- s = strrchr(temp_path, '/');
|
||||
- if (s != NULL) {
|
||||
- *(s+1) = '\0';
|
||||
- safestrcat(temp_path, linkpath);
|
||||
- } else {
|
||||
- safestrcpy(temp_path, linkpath);
|
||||
+ *(s+1) = '\0';
|
||||
+ if (*devdir == '\0' || sysfs_path_is_link(devdir))
|
||||
+ /*
|
||||
+ * condition will be true eventually
|
||||
+ * because we already know that all
|
||||
+ * but the last component of path
|
||||
+ * resolve to a directory
|
||||
+ */
|
||||
+ break;
|
||||
+ if (sysfs_get_link(devdir, devdir, SYSFS_PATH_MAX))
|
||||
+ return -1;
|
||||
+ s = devdir + strlen(devdir) - 1;
|
||||
+ }
|
||||
+ while (s >= devdir) {
|
||||
+ if (*s == '/') {
|
||||
+ if (*(s+1) != '.' || *(s+2) != '.'
|
||||
+ || *(s+3) != '\0') {
|
||||
+ d += 3;
|
||||
+ while (*d == '/')
|
||||
+ d++;
|
||||
+ } else
|
||||
+ s += 2;
|
||||
+ break;
|
||||
}
|
||||
- safestrcpymax(target, temp_path, len);
|
||||
+ s--;
|
||||
+ }
|
||||
+ if (s < devdir || *(s+1) == '\0')
|
||||
+ break;
|
||||
}
|
||||
+
|
||||
+ /*
|
||||
+ * appending to devdir a slash and the (possibly shortened)
|
||||
+ * relative path to the link source
|
||||
+ */
|
||||
+ s++;
|
||||
+ if (s > devdir && *s == '\0')
|
||||
+ *s++ = '/';
|
||||
+ *s = '\0';
|
||||
+ safestrcpymax(s, d, SYSFS_PATH_MAX-(s-devdir));
|
||||
+ safestrcpymax(target, devdir, len);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
|
||||
<PISI>
|
||||
<Source>
|
||||
<Name>sysfsutils</Name>
|
||||
<Homepage>http://linux-diag.sourceforge.net/Sysfsutils.html</Homepage>
|
||||
<Packager>
|
||||
<Name>PisiLinux Community</Name>
|
||||
<Email>admins@pisilinux.org</Email>
|
||||
</Packager>
|
||||
<License>GPLv2</License>
|
||||
<IsA>app:console</IsA>
|
||||
<Summary>System Utilities Based on Sysfs</Summary>
|
||||
<Description>These are a set of utilites built upon sysfs, a new virtual filesystem in Linux kernel versions 2.5+ that exposes a system's device tree.</Description>
|
||||
<Archive sha1sum="b3cb316c652b09ec66f93f4ea98a93a7a1001678" type="targz">mirrors://sourceforge/linux-diag/sysfsutils-2.1.0.tar.gz</Archive>
|
||||
<Patches>
|
||||
<Patch level="1">sysfsutils-2.0.0-class-dup.patch</Patch>
|
||||
<Patch level="1">sysfsutils-2.1.0-get_link.patch</Patch>
|
||||
</Patches>
|
||||
</Source>
|
||||
|
||||
<Package>
|
||||
<Name>sysfsutils</Name>
|
||||
<Files>
|
||||
<Path fileType="executable">/usr/bin</Path>
|
||||
<Path fileType="library">/lib</Path>
|
||||
<Path fileType="library">/usr/lib</Path>
|
||||
<Path fileType="doc">/usr/share/doc</Path>
|
||||
<Path fileType="man">/usr/share/man</Path>
|
||||
</Files>
|
||||
</Package>
|
||||
|
||||
<Package>
|
||||
<Name>sysfsutils-devel</Name>
|
||||
<PartOf>system.devel</PartOf>
|
||||
<Summary>Development files for sysfsutils</Summary>
|
||||
<RuntimeDependencies>
|
||||
<Dependency release="current">sysfsutils</Dependency>
|
||||
</RuntimeDependencies>
|
||||
<Files>
|
||||
<Path fileType="header">/usr/include</Path>
|
||||
<Path fileType="man">/usr/share/man/man3</Path>
|
||||
</Files>
|
||||
</Package>
|
||||
|
||||
<History>
|
||||
<Update release="3">
|
||||
<Date>2014-05-11</Date>
|
||||
<Version>2.1.0</Version>
|
||||
<Comment>Release bump.</Comment>
|
||||
<Name>Marcin Bojara</Name>
|
||||
<Email>marcin@pisilinux.org</Email>
|
||||
</Update>
|
||||
<Update release="2">
|
||||
<Date>2013-10-29</Date>
|
||||
<Version>2.1.0</Version>
|
||||
<Comment>Rebuild</Comment>
|
||||
<Name>Pisi Linux Admins</Name>
|
||||
<Email>admins@pisilinux.org</Email>
|
||||
</Update>
|
||||
<Update release="1">
|
||||
<Date>2010-10-11</Date>
|
||||
<Version>2.1.0</Version>
|
||||
<Comment>First release</Comment>
|
||||
<Name>Pisi Linux Admins</Name>
|
||||
<Email>admins@pisilinux.org</Email>
|
||||
</Update>
|
||||
</History>
|
||||
</PISI>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" ?>
|
||||
<PISI>
|
||||
<Source>
|
||||
<Name>sysfsutils</Name>
|
||||
<Summary xml:lang="tr">Çeşitli sistem araç ve gereçleri</Summary>
|
||||
<Description xml:lang="tr">sysfsutils sysfs sanal dosya sistemi üzerine kurulu bir araç setidir.</Description>
|
||||
<Description xml:lang="fr">Ceci est un ensemble d'utilitaires se basant sur sysfsm un nouveau système de fichier virtuel des noyaux Linux 2.5 et + exposant l'arbre des périphériques du système.</Description>
|
||||
</Source>
|
||||
|
||||
<Package>
|
||||
<Name>sysfsutils-devel</Name>
|
||||
<Summary xml:lang="tr">sysfsutils için geliştirme dosyaları</Summary>
|
||||
</Package>
|
||||
</PISI>
|
||||
Reference in New Issue
Block a user