create core package
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
#!/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
|
||||
|
||||
WorkDir = "%s-%s" % (get.srcNAME(), get.srcVERSION())
|
||||
WITHSSP = False
|
||||
XTRA_FIXCFLAGS = "" if WITHSSP else "-fno-stack-protector"
|
||||
CFLAGS = "%s %s %s" % (get.CFLAGS(),
|
||||
"-fomit-frame-pointer -fno-exceptions -fno-asynchronous-unwind-tables -Os -g3 -Werror-implicit-function-declaration -Wno-unused -Wno-switch",
|
||||
XTRA_FIXCFLAGS)
|
||||
MAKE_FLAGS = "CC=\"%s\" \
|
||||
CFLAGS=\"%s\" \
|
||||
PDIET=/usr/lib/dietlibc \
|
||||
STRIP=:" % (get.CC(), CFLAGS)
|
||||
|
||||
MAKE_TEST_FLAGS = "CC=\"%s\" \
|
||||
CFLAGS=\"%s -fno-builtin\" \
|
||||
PDIET=/usr/lib/dietlibc \
|
||||
STRIP=:" % (get.CC(), CFLAGS)
|
||||
|
||||
def setup():
|
||||
shelltools.cd(get.workDIR())
|
||||
for f, l in [("dietlibc-github-c3f1cf67fcc186bb859e64a085bf98aaa6182a82.patch", 1),
|
||||
("dietlibc-0.33-biarch.patch", 0)]:
|
||||
shelltools.move(f, WorkDir)
|
||||
shelltools.cd(WorkDir)
|
||||
shelltools.system("patch --remove-empty-files --no-backup-if-mismatch -p%d -i %s" % (l, f))
|
||||
shelltools.cd("..")
|
||||
|
||||
shelltools.cd(WorkDir)
|
||||
pisitools.dosed("Makefile", "^prefix\?=.*", "prefix=/usr/lib/dietlibc")
|
||||
pisitools.dosed("Makefile", "^(BINDIR=)[^\/]+(.*)", r"\1/usr\2")
|
||||
pisitools.dosed("Makefile", "^(MAN1DIR=)[^\/]+(.*)", r"\1/usr/share\2")
|
||||
pisitools.dosed("dietfeatures.h", "#define (WANT_LARGEFILE_BACKCOMPAT|WANT_VALGRIND_SUPPORT)", deleteLine=True)
|
||||
if not WITHSSP:
|
||||
pisitools.dosed("dietfeatures.h", "^(#define WANT_SSP)$", r"// \1")
|
||||
pisitools.dosed("dietfeatures.h", ".*(#define WANT_STACKGAP).*", r"\1")
|
||||
|
||||
def build():
|
||||
autotools.make("%s all" % MAKE_FLAGS)
|
||||
|
||||
# Build tests
|
||||
# autotools.make("%s -C test all DIET=\"%s/bin-*/diet\" -k" % (MAKE_TEST_FLAGS, get.curDIR()))
|
||||
# autotools.make("%s -C test/inet all DIET=\"%s/bin-*/diet\"" % (MAKE_TEST_FLAGS, get.curDIR()))
|
||||
|
||||
#def check():
|
||||
# shelltools.cd("test")
|
||||
# shelltools.chmod("runtests-X.sh", 0755)
|
||||
# shelltools.system("ulimit -m $[ 128*1024 ] -v $[ 256*1024 ] -d $[ 128*1024 ] -s 512")
|
||||
# shelltools.system("./runtests-X.sh")
|
||||
|
||||
def install():
|
||||
autotools.rawInstall("DESTDIR=%s" % get.installDIR())
|
||||
|
||||
# Simple wrapper for gcc
|
||||
host_gcc = "/usr/bin/%s-dietlibc-gcc" % get.HOST()
|
||||
shelltools.echo("%s%s" % (get.installDIR(), host_gcc), """\
|
||||
#!/bin/bash
|
||||
exec /usr/bin/diet %s "$@"
|
||||
""" % get.CC())
|
||||
|
||||
shelltools.chmod("%s%s" % (get.installDIR(), host_gcc), 0755)
|
||||
pisitools.dosym(host_gcc, "/usr/bin/dietlibc-gcc")
|
||||
|
||||
pisitools.dodoc("AUTHOR", "BUGS", "CAVEAT", "CHANGES", "FAQ", "README*", "THANKS", "TODO")
|
||||
@@ -0,0 +1,117 @@
|
||||
diff -Naurp dietlibc-0.33.20120825/diet.c~ dietlibc-0.33.20120825/diet.c
|
||||
--- diet.c~ 2013-11-03 18:56:45.416768005 +0100
|
||||
+++ diet.c 2013-11-03 18:59:06.785762840 +0100
|
||||
@@ -71,6 +71,7 @@ int main(int argc,char *argv[]) {
|
||||
int shared=0;
|
||||
#endif
|
||||
char* shortplatform=0;
|
||||
+ char* shortplatform32=0;
|
||||
#ifdef WANT_SAFEGUARD
|
||||
char safeguard1[]="-include";
|
||||
char* safeguard2;
|
||||
@@ -187,11 +188,26 @@ int main(int argc,char *argv[]) {
|
||||
shortplatform="parisc";
|
||||
#endif
|
||||
#ifdef __x86_64__
|
||||
- shortplatform=(m==32?"i386":(m==33?"x32":"x86_64"));
|
||||
+ shortplatform="x86_64";
|
||||
+ shortplatform32="i386";
|
||||
#endif
|
||||
#ifdef __ia64__
|
||||
shortplatform="ia64";
|
||||
#endif
|
||||
+ /* Check for -m32 on biarch platforms */
|
||||
+ /* NOTE: though it's wrong to pass both -m32/-m64 flags to
|
||||
+ * gcc at once, we pick up the last one only */
|
||||
+ if (shortplatform32) {
|
||||
+ int i, m64=1;
|
||||
+ for (i=0; i<argc; ++i) {
|
||||
+ if (!strcmp(argv[i],"-m32"))
|
||||
+ m64=0;
|
||||
+ else if (!strcmp(argv[i],"-m64"))
|
||||
+ m64=1;
|
||||
+ }
|
||||
+ if (!m64)
|
||||
+ shortplatform=shortplatform32;
|
||||
+ }
|
||||
{
|
||||
char *tmp=platform+strlen(platform);
|
||||
strcpy(tmp,shortplatform);
|
||||
diff -Naurp dietlibc-0.33.20120825/Makefile~ dietlibc-0.33.20120825/Makefile
|
||||
--- Makefile~ 2013-11-03 19:10:57.392736875 +0100
|
||||
+++ Makefile 2013-11-03 19:15:01.344727962 +0100
|
||||
@@ -56,6 +56,7 @@ MYARCH=parisc
|
||||
else
|
||||
ifeq ($(MYARCH),x86_64)
|
||||
ARCH=x86_64
|
||||
+ARCH32=i386
|
||||
else
|
||||
ifeq ($(MYARCH),ia64)
|
||||
ARCH=ia64
|
||||
@@ -88,15 +89,22 @@ ILIBDIR=$(LIBDIR)-$(ARCH)
|
||||
|
||||
HOME=$(shell pwd)
|
||||
|
||||
-WHAT= $(OBJDIR)/start.o $(OBJDIR)/dyn_start.o $(OBJDIR)/dyn_stop.o \
|
||||
+LIBS= $(OBJDIR)/start.o $(OBJDIR)/dyn_start.o $(OBJDIR)/dyn_stop.o \
|
||||
$(OBJDIR)/dietlibc.a $(OBJDIR)/liblatin1.a \
|
||||
$(OBJDIR)/libcompat.a $(OBJDIR)/libm.a \
|
||||
$(OBJDIR)/librpc.a $(OBJDIR)/libpthread.a \
|
||||
- $(OBJDIR)/libcrypt.a \
|
||||
- $(OBJDIR)/diet $(OBJDIR)/diet-i $(OBJDIR)/elftrunc \
|
||||
- $(OBJDIR)/dnsd
|
||||
+ $(OBJDIR)/libcrypt.a
|
||||
|
||||
-all: $(WHAT)
|
||||
+all: all_32 libs $(OBJDIR)/diet $(OBJDIR)/diet-i
|
||||
+
|
||||
+libs: $(LIBS)
|
||||
+
|
||||
+ifeq (,$(ARCH32))
|
||||
+all_32:
|
||||
+else
|
||||
+all_32:
|
||||
+ $(MAKE) MYARCH=$(ARCH32) CC="$(CC) -m32" libs
|
||||
+endif
|
||||
|
||||
profiling: $(OBJDIR)/libgmon.a $(OBJDIR)/pstart.o
|
||||
|
||||
@@ -363,17 +371,19 @@ t:
|
||||
t1:
|
||||
$(CROSS)$(CC) -g -o t1 t.c
|
||||
|
||||
-install-bin: $(OBJDIR)/start.o $(OBJDIR)/dietlibc.a $(OBJDIR)/librpc.a $(OBJDIR)/liblatin1.a $(OBJDIR)/libcompat.a $(OBJDIR)/elftrunc $(OBJDIR)/diet-i
|
||||
- $(INSTALL) -d $(DESTDIR)$(ILIBDIR) $(DESTDIR)$(MAN1DIR) $(DESTDIR)$(BINDIR)
|
||||
+install-lib: $(OBJDIR)/start.o $(OBJDIR)/dietlibc.a $(OBJDIR)/librpc.a $(OBJDIR)/liblatin1.a $(OBJDIR)/libcompat.a
|
||||
+ $(INSTALL) -d $(DESTDIR)$(ILIBDIR)
|
||||
$(INSTALL) $(OBJDIR)/start.o $(DESTDIR)$(ILIBDIR)/start.o
|
||||
$(INSTALL) -m 644 $(OBJDIR)/libm.a $(OBJDIR)/libpthread.a $(OBJDIR)/librpc.a \
|
||||
$(OBJDIR)/liblatin1.a $(OBJDIR)/libcompat.a $(OBJDIR)/libcrypt.a $(DESTDIR)$(ILIBDIR)
|
||||
$(INSTALL) -m 644 $(OBJDIR)/dietlibc.a $(DESTDIR)$(ILIBDIR)/libc.a
|
||||
+
|
||||
+install-bin: $(OBJDIR)/diet-i
|
||||
+ $(INSTALL) -d $(DESTDIR)$(MAN1DIR) $(DESTDIR)$(BINDIR)
|
||||
ifeq ($(MYARCH),$(ARCH))
|
||||
$(INSTALL) $(OBJDIR)/diet-i $(DESTDIR)$(BINDIR)/diet
|
||||
-$(INSTALL) $(PICODIR)/diet-dyn-i $(DESTDIR)$(BINDIR)/diet-dyn
|
||||
endif
|
||||
- $(INSTALL) -m 755 $(OBJDIR)/elftrunc $(OBJDIR)/dnsd $(DESTDIR)$(BINDIR)
|
||||
$(INSTALL) -m 644 diet.1 $(DESTDIR)$(MAN1DIR)/diet.1
|
||||
|
||||
install-profiling:
|
||||
@@ -393,8 +403,14 @@ install-pic:
|
||||
install-headers:
|
||||
for i in `find include -name \*.h`; do install -m 644 -D $$i $(DESTDIR)$(prefix)/$$i; done
|
||||
|
||||
+ifeq (,$(ARCH32))
|
||||
+install-32:
|
||||
+else
|
||||
+install-32:
|
||||
+ $(MAKE) MYARCH=$(ARCH32) CC="$(CC) -m32" install-lib
|
||||
+endif
|
||||
|
||||
-install: install-bin install-profiling install-pic install-headers
|
||||
+install: install-32 install-lib install-bin install-profiling install-pic install-headers
|
||||
|
||||
uninstall:
|
||||
for i in start.o libm.a libpthread.a librpc.a liblatin1.a libcompat.a libcrypt.a libc.a; do rm -f $(DESTDIR)$(ILIBDIR)/$$i; done
|
||||
@@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
|
||||
<PISI>
|
||||
<Source>
|
||||
<Name>dietlibc</Name>
|
||||
<Homepage>http://www.fefe.de/dietlibc</Homepage>
|
||||
<Packager>
|
||||
<Name>PisiLinux Community</Name>
|
||||
<Email>admins@pisilinux.org</Email>
|
||||
</Packager>
|
||||
<License>GPLv2</License>
|
||||
<IsA>library</IsA>
|
||||
<Summary>A libc optimized for small size</Summary>
|
||||
<Description>dietlibc is a libc that is optimized for small size. It can be used to create small statically linked binaries for Linux on various architectures.</Description>
|
||||
<Archive sha1sum="6e387601e3f7077cef91361ec8e320199cd5b9b5" type="tarxz">http://pkgs.fedoraproject.org/repo/pkgs/dietlibc/dietlibc-0.33.20120825.tar.xz/016865b8c40d40a57b2ddb5862f2e338/dietlibc-0.33.20120825.tar.xz</Archive>
|
||||
<Archive sha1sum="5d9c53cfc338257644e64f6c35f24546393eb2aa" type="gz">http://pkgs.fedoraproject.org/repo/pkgs/dietlibc/dietlibc-github-c3f1cf67fcc186bb859e64a085bf98aaa6182a82.patch.gz/734e14b59b7f017ae5843ee9b9b6d34e/dietlibc-github-c3f1cf67fcc186bb859e64a085bf98aaa6182a82.patch.gz</Archive>
|
||||
<AdditionalFiles>
|
||||
<AdditionalFile permission="0644" target="../dietlibc-0.33-biarch.patch">dietlibc-0.33-biarch.patch</AdditionalFile>
|
||||
</AdditionalFiles>
|
||||
<Patches>
|
||||
<!--Patch level="0">dietlibc-0.33-biarch.patch</Patch-->
|
||||
</Patches>
|
||||
</Source>
|
||||
<Package>
|
||||
<Name>dietlibc</Name>
|
||||
<Files>
|
||||
<Path fileType="executable">/usr/bin</Path>
|
||||
<Path fileType="header">/usr/lib/dietlibc/include</Path>
|
||||
<Path fileType="library">/usr/lib/dietlibc/lib-i386</Path>
|
||||
<Path fileType="library">/usr/lib/dietlibc/lib-x86_64</Path>
|
||||
<Path fileType="man">/usr/share/man</Path>
|
||||
<Path fileType="doc">/usr/share/doc</Path>
|
||||
</Files>
|
||||
</Package>
|
||||
|
||||
<History>
|
||||
<Update release="3">
|
||||
<Date>2014-05-11</Date>
|
||||
<Version>0.33.20120825</Version>
|
||||
<Comment>Release bump.</Comment>
|
||||
<Name>Marcin Bojara</Name>
|
||||
<Email>marcin@pisilinux.org</Email>
|
||||
</Update>
|
||||
<Update release="2">
|
||||
<Date>2013-11-03</Date>
|
||||
<Version>0.33.20120825</Version>
|
||||
<Comment>Version bump</Comment>
|
||||
<Name>Marcin Bojara</Name>
|
||||
<Email>marcin@pisilinux.org</Email>
|
||||
</Update>
|
||||
<Update release="1">
|
||||
<Date>2010-10-11</Date>
|
||||
<Version>0.32</Version>
|
||||
<Comment>First release</Comment>
|
||||
<Name>Pisi Linux Admins</Name>
|
||||
<Email>admins@pisilinux.org</Email>
|
||||
</Update>
|
||||
</History>
|
||||
</PISI>
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" ?>
|
||||
<PISI>
|
||||
<Source>
|
||||
<Name>dietlibc</Name>
|
||||
<Summary xml:lang="tr">Düşük boyut için optimize edilmiş C kütüphanesi</Summary>
|
||||
<Description xml:lang="tr">dietlibc, düşük boyutlu olması için optimize edilmiş bir C kütüphanesidir. Farklı mimarilerde statik bağlanmış ve düşük boyutlu ikili dosyalar oluşturmak için kullanılabilir.</Description>
|
||||
</Source>
|
||||
</PISI>
|
||||
Reference in New Issue
Block a user