[Mageia-sysadm] [399] Import cleaned multiarch-utils*

root at mageia.org root at mageia.org
Thu Feb 3 19:09:02 CET 2011


Revision: 399
Author:   dmorgan
Date:     2011-02-03 19:09:01 +0100 (Thu, 03 Feb 2011)
Log Message:
-----------
Import cleaned multiarch-utils*

Added Paths:
-----------
    multiarch-utils/
    multiarch-utils/CLEANUP_PROGRESS.txt
    multiarch-utils/trunk/
    multiarch-utils/trunk/Makefile
    multiarch-utils/trunk/NEWS
    multiarch-utils/trunk/check-multiarch-files
    multiarch-utils/trunk/macros.multiarch
    multiarch-utils/trunk/mkmultiarch
    multiarch-utils/trunk/multiarch-dispatch
    multiarch-utils/trunk/multiarch-dispatch.h
    multiarch-utils/trunk/multiarch-platform

Added: multiarch-utils/CLEANUP_PROGRESS.txt
===================================================================
--- multiarch-utils/CLEANUP_PROGRESS.txt	                        (rev 0)
+++ multiarch-utils/CLEANUP_PROGRESS.txt	2011-02-03 18:09:01 UTC (rev 399)
@@ -0,0 +1,3 @@
+- License is GPL according to the relevant rpm spec written by Mandriva (no explicit
+  COPYING or LICENSE files)
+- '# Project: Mandriva Linux' in several files, removed


Property changes on: multiarch-utils/CLEANUP_PROGRESS.txt
___________________________________________________________________
Added: svn:eol-style
   + native

Added: multiarch-utils/trunk/Makefile
===================================================================
--- multiarch-utils/trunk/Makefile	                        (rev 0)
+++ multiarch-utils/trunk/Makefile	2011-02-03 18:09:01 UTC (rev 399)
@@ -0,0 +1,76 @@
+#---------------------------------------------------------------
+# Package         : multiarch-utils
+# File            : Makefile
+# Version         : $Id: Makefile 265211 2010-01-24 12:53:25Z anssi $
+# Author          : Gwenole Beauchesne
+# Created On      : Wed Jan 12 18:42:04 CET 2005
+#---------------------------------------------------------------
+
+prefix		= /usr
+bindir		= $(prefix)/bin
+includedir	= $(prefix)/include
+
+RPM_MACRO_FILES	= multiarch
+RPM_BIN_FILES	= mkmultiarch check-multiarch-files
+BINARIES	= multiarch-platform multiarch-dispatch
+INCLUDES	= multiarch-dispatch.h
+OTHER_FILES	= Makefile NEWS
+FILES		= $(foreach file,$(RPM_MACRO_FILES),macros.$(file)) $(RPM_BIN_FILES) $(BINARIES) $(INCLUDES) $(OTHER_FILES)
+
+PACKAGE		= multiarch-utils
+VERSION		= 1.0.13
+MULTIARCH_DIST	= 1020
+
+all:
+	@echo "nothing to be done for $(PACKAGE)-$(VERSION)"
+
+clean: cleandist
+	rm -f *~
+
+install:
+	-mkdir -p $(DESTDIR)/etc/rpm
+	for f in $(RPM_MACRO_FILES); do \
+	  perl -pe 's/%MULTIARCH_DISTRO%/$(MULTIARCH_DIST)/' macros.$$f > $(DESTDIR)/etc/rpm/macros.$$f; \
+	  if [[ -d /etc/rpm/macros.d ]]; then \
+	    mkdir -p $(DESTDIR)/etc/rpm/macros.d; \
+	    mv $(DESTDIR)/etc/rpm/macros.$$f $(DESTDIR)/etc/rpm/macros.d/$$f.macros; \
+	  fi; \
+	done
+	-mkdir -p $(DESTDIR)$(prefix)/lib/rpm
+	install -m755 $(RPM_BIN_FILES) $(DESTDIR)$(prefix)/lib/rpm/
+	-mkdir -p $(DESTDIR)$(bindir)
+	install -m755 $(BINARIES) $(DESTDIR)$(bindir)/
+	-mkdir -p $(DESTDIR)$(includedir)
+	install -m644 $(INCLUDES) $(DESTDIR)$(includedir)/
+
+localdist: cleandist dir localcopy changelog tar
+
+cleandist:
+	rm -rf $(PACKAGE)-$(VERSION) $(PACKAGE)-$(VERSION).tar.bz2
+
+dir:
+	mkdir $(PACKAGE)-$(VERSION)
+
+localcopy:
+	tar c $(FILES) | tar x -C $(PACKAGE)-$(VERSION)
+
+tar:
+	tar cvf $(PACKAGE)-$(VERSION).tar $(PACKAGE)-$(VERSION)
+	bzip2 -9vf $(PACKAGE)-$(VERSION).tar
+	rm -rf $(PACKAGE)-$(VERSION)
+
+dist: cleandist export changelog tar
+
+export:
+	svn export -rBASE . $(PACKAGE)-$(VERSION)
+
+changelog: ../common/username
+	svn2cl --authors=../common/username --file=$(PACKAGE)-$(VERSION)/ChangeLog 
+	rm -f $(PACKAGE)-$(VERSION)/ChangeLog.bak
+
+# Local variables:
+# mode: makefile
+# tab-width: 8
+# End:
+#
+# Makefile ends here


Property changes on: multiarch-utils/trunk/Makefile
___________________________________________________________________
Added: svn:eol-style
   + native

Added: multiarch-utils/trunk/NEWS
===================================================================
--- multiarch-utils/trunk/NEWS	                        (rev 0)
+++ multiarch-utils/trunk/NEWS	2011-02-03 18:09:01 UTC (rev 399)
@@ -0,0 +1,18 @@
+Version 1.0.13 - 09 January 2011, by Olivier Blin
+- fix other multiarch() macros by adding nil
+
+Version 1.0.12 - 08 January 2011, by Olivier Blin
+- fix multiarch() macro
+
+Version 1.0.11 - 08 January 2011, by Olivier Blin
+- remove obsole mdk macros
+
+Version 1.0.10 - 24 January 2010, by Anssi Hannula
+
+- remove dispatch file for host.def, it is no longer used
+- fix broken sparc64 check (from Per Øyvind Karlsen, #27277)
+- fix broken check for rpm/macros.d directory (from Per Øyvind Karlsen)
+- add mips support (from Arnaud Patard)
+- add armel support (from Arnaud Patard)
+- add additional guards for some interfering definitions in
+  multiarch-dispatch.h (reported by Jérôme Brenier)

Added: multiarch-utils/trunk/check-multiarch-files
===================================================================
--- multiarch-utils/trunk/check-multiarch-files	                        (rev 0)
+++ multiarch-utils/trunk/check-multiarch-files	2011-02-03 18:09:01 UTC (rev 399)
@@ -0,0 +1,95 @@
+#!/usr/bin/perl
+#---------------------------------------------------------------
+# Module          : multiarch-utils
+# File            : check-multiarch
+# Version         : $Id: check-multiarch-files 156134 2005-08-07 14:29:26Z gbeauchesne $
+# Author          : Gwenole Beauchesne
+# Created On      : Mon Jan 24 18:02:21 CET 2005
+#---------------------------------------------------------------
+
+use strict;
+use MDK::Common;
+
+my $RPM_BUILD_ROOT = (shift);
+
+if (! -d $RPM_BUILD_ROOT ) {
+    while (<STDIN>) { } # consume all inputs
+    exit 1
+}
+
+while (<STDIN>) {
+    chomp;
+
+    # File must be located in the usual development directories
+    -f $_ or next;
+    m,^\Q$RPM_BUILD_ROOT\E/usr(/X11R6)?/(bin|include)/, or next;
+    m,/multiarch-.+-\w+/, and next;
+    m,/include/asm, and next;
+
+    my $multiarch = 0;
+    my $multiarch_type;
+
+    # Heuristics for binary files
+    if (/bin/) {
+        my $file_magic = `file $_`;
+        $multiarch_type = "binary";
+
+        # check for *-config script files
+        if (/.+[-_]config/ && $file_magic =~ /shell script/) {
+            my $options;
+            foreach (cat_($_)) {
+                foreach my $opt (qw(cflags libs ldflags cppflags libdir libtool)) {
+                    $options .= " --$opt" if /(\[--$opt\]|--$opt\s+([\#\[]|display|print))/;
+                }
+            }
+            # run the script to find out any libdir dependent flags
+            if ($options) {
+                my $output = `$_ $options`;
+                $multiarch = 1 if ($output =~ /(?<!\/include)\/lib(32|64)?/);
+            }
+        }
+    }
+
+    # Heuristics for include files
+    elsif (/include/) {
+        $multiarch_type = "header";
+        my %archdefs;
+        foreach (cat_($_)) {
+            if (/\#\s*define\s+(\w+)\s+(.+)/) {
+                my ($def, $val) = ($1, $2);
+
+                # check for typical arch-dependent macro definitions
+                my @keywords_with_int = qw(SIZEOF_VOID_P SIZEOF_CHAR_P SIZEOF_LONG BYTES_PER_LONG BITS_PER_LONG BITS_PER_WORD);
+                foreach my $pat (@keywords_with_int) {
+                    if ($def =~ /$pat/ && int($val)) {
+                        $archdefs{$def}++;
+                        last;
+                    }
+                }
+
+                # check for libdir references, typically plugins dir
+                # XXX check for /DIR/ in $def ?
+                if ($val =~ /"\/usr(\/X11R6)?\/lib(32|64)?\/(?!(X11|font)\/).*"/) {
+                    $multiarch = 1;
+                }
+            }
+        }
+
+        # ignore multiple definitions of the same macro, assume
+        # arch-dependence is handled in that case
+        if (! $multiarch) {
+            foreach my $e (keys %archdefs) {
+                my $val = $archdefs{$e};
+                $multiarch = 1 if ($val == 1);
+            }
+        }
+    }
+
+    # Multiarch files detected?
+    print "$_\n" if $multiarch;
+}
+
+# Local variables:
+# tab-width: 4
+# indent-tabs-mode: nil
+# End:


Property changes on: multiarch-utils/trunk/check-multiarch-files
___________________________________________________________________
Added: svn:executable
   + *

Added: multiarch-utils/trunk/macros.multiarch
===================================================================
--- multiarch-utils/trunk/macros.multiarch	                        (rev 0)
+++ multiarch-utils/trunk/macros.multiarch	2011-02-03 18:09:01 UTC (rev 399)
@@ -0,0 +1,19 @@
+%multiarch_platform		multiarch-%{_arch}-%{_target_os}
+%multiarch_bindir		%{_bindir}/%{multiarch_platform}
+%multiarch_includedir		%{_includedir}/%{multiarch_platform}
+%multiarch_x11bindir		%{_prefix}/X11R6/bin/%{multiarch_platform}
+%multiarch_x11includedir	%{_prefix}/X11R6/include/%{multiarch_platform}
+
+%multiarch_distro %MULTIARCH_DISTRO%
+
+%multiarch_binaries() \
+%{_prefix}/lib/rpm/mkmultiarch binaries %* \
+%{nil}
+
+%multiarch_includes() \
+%{_prefix}/lib/rpm/mkmultiarch includes %* \
+%{nil}
+
+%multiarch() \
+%* \
+%{nil}

Added: multiarch-utils/trunk/mkmultiarch
===================================================================
--- multiarch-utils/trunk/mkmultiarch	                        (rev 0)
+++ multiarch-utils/trunk/mkmultiarch	2011-02-03 18:09:01 UTC (rev 399)
@@ -0,0 +1,94 @@
+#!/bin/bash
+#---------------------------------------------------------------
+# Module          : multiarch-utils
+# File            : mkmultiarch
+# Version         : $Id: mkmultiarch 156134 2005-08-07 14:29:26Z gbeauchesne $
+# Author          : Gwenole Beauchesne
+# Created On      : Wed Jan 12 10:54:10 CET 2005
+#---------------------------------------------------------------
+
+usage="Usage: $0 <binaries|includes> <file1> [<file2> ...]"
+mplat=`multiarch-platform`
+type=$1
+case $type in
+    binaries|includes) shift;;
+    *) echo $usage; exit 1;;
+esac
+
+function error() {
+    echo ${1+"$@"} > /dev/stderr
+    exit 1
+}
+
+# read link on one level only
+function read_link_1() {
+    perl -e 'print readlink(shift)' $1
+}
+
+function dispatch_binaries() {
+    local file=$1
+    local bindir=`dirname $file`
+    local archbindir=$bindir/$mplat
+    [[ -d $archbindir ]] || mkdir -p $archbindir
+    if [[ -L $file ]]; then
+	link=`read_link_1 $file`
+	case $link in
+	    /*)
+		mv $file $archbindir/
+		;;
+	    ../*)
+		ln -s ../$link $archbindir/${file##*/}
+		rm -f $file
+		;;
+	esac
+    elif [[ -f $file ]]; then
+	mv $file $archbindir/
+    else
+	error "Unsupported file type for $file"
+    fi
+    ln -s /usr/bin/multiarch-dispatch $file
+}
+
+function dispatch_includes() {
+    local file=$1
+    local incdir=`dirname $file`
+
+    # handle circular inclusions
+    local tag=$incdir/.multiarch-processing.${file##*/}
+    [[ -f "$tag" ]] && return
+    touch $tag
+
+    # sanity checks, extract path parts
+    echo $file | grep -q '/include/' || error "Unsupported includedir $incdir"
+    local prefix=`echo $incdir | sed -n '/\(.*\/include\)\/.*/s//\1/p'`
+    [[ -z "$prefix" ]] && prefix="$incdir"
+    local suffix=`echo $incdir | sed -n '/.*\/include\/\(.*\)/s//\1/p'`
+    [[ -n "$suffix" ]] && suffix="$suffix/"
+
+    # dispatch nested includes expected in local directory
+    sed -n '/^#[ \t]*include[ \t]*"\([^"][^"]*\)".*/s//\1/p' $file | \
+    while read localfile; do
+	[[ -f "$incdir/$localfile" ]] && dispatch_includes $incdir/$localfile
+    done
+
+    # dispatch selected include file, provided it's not already dispatched
+    grep -q _MULTIARCH_HEADER $file || {
+	local archincdir=$prefix/$mplat/$suffix
+	[[ -d $archincdir ]] || mkdir -p $archincdir
+	mv $file $archincdir/
+	cat > $file << EOF
+#define _MULTIARCH_HEADER $suffix${file##*/}
+#include <multiarch-dispatch.h>
+EOF
+    }
+
+    # done with this file
+    rm -f $tag
+}
+
+while [[ $# -gt 0 ]]; do
+    file=$1
+    shift 1
+    [[ -f $file ]] || error "$file does not exist!"
+    dispatch_$type $file
+done


Property changes on: multiarch-utils/trunk/mkmultiarch
___________________________________________________________________
Added: svn:executable
   + *

Added: multiarch-utils/trunk/multiarch-dispatch
===================================================================
--- multiarch-utils/trunk/multiarch-dispatch	                        (rev 0)
+++ multiarch-utils/trunk/multiarch-dispatch	2011-02-03 18:09:01 UTC (rev 399)
@@ -0,0 +1,34 @@
+#!/bin/sh
+#---------------------------------------------------------------
+# Module          : multiarch-utils
+# File            : multiarch-dispatch
+# Version         : $Id: multiarch-dispatch 156136 2005-08-07 15:46:51Z gbeauchesne $
+# Author          : Gwenole Beauchesne
+# Created On      : Wed Jan 12 12:38:53 EST 2005
+#---------------------------------------------------------------
+
+if [[ "$0" = "/usr/bin/multiarch-dispatch" ]]; then
+    echo "Helper script to dispatch a binary under a specific personality"
+    exit 0
+fi
+
+# go through symlinks until multiarch-dispatch leaf is reached
+mprog="$0"
+mcomp="$mprog"
+while [[ -L "$mcomp" ]]; do
+    mprog="$mcomp"
+    mcomp=`readlink "$mprog"`
+    case "$mcomp" in
+	/*) ;;
+	*)  mcomp=`dirname "$mprog"`/"$mcomp";;
+    esac
+done
+
+bin=`dirname "$mprog"`/`multiarch-platform`/"${mprog##*/}"
+
+if [[ ! -x "$bin" ]]; then
+    echo "Cannot execute $bin" > /dev/stderr
+    exit 1
+fi
+
+exec $bin ${1+"$@"}


Property changes on: multiarch-utils/trunk/multiarch-dispatch
___________________________________________________________________
Added: svn:executable
   + *

Added: multiarch-utils/trunk/multiarch-dispatch.h
===================================================================
--- multiarch-utils/trunk/multiarch-dispatch.h	                        (rev 0)
+++ multiarch-utils/trunk/multiarch-dispatch.h	2011-02-03 18:09:01 UTC (rev 399)
@@ -0,0 +1,172 @@
+/* Undefine some built-ins */
+#ifdef  linux
+#undef  linux
+#define _multiarch_defined_linux
+#endif
+#ifdef  i386
+#undef  i386
+#define _multiarch_defined_i386
+#endif
+#ifdef  sparc
+#undef  sparc
+#define _multiarch_defined_sparc
+#endif
+#ifdef	mips
+#undef	mips
+#define	_multiarch_defined_mips
+#endif
+#ifdef	arm
+#undef	arm
+#define	_multiarch_defined_arm
+#endif
+
+/* Undefine some interfering definitions (not built-ins) */
+/* We can only redefine value 1, so we let it fail with other values */
+#if x86_64 == 1
+#define _multiarch_defined_x86_64
+#undef x86_64
+#endif
+#if ppc64 == 1
+#define _multiarch_defined_ppc64
+#undef ppc64
+#endif
+#if ppc == 1
+#define _multiarch_defined_ppc
+#undef ppc
+#endif
+#if sparc64 == 1
+#define _multiarch_defined_sparc64
+#undef sparc64
+#endif
+#if s390x == 1
+#define _multiarch_defined_s390x
+#undef s390x
+#endif
+#if s390 == 1
+#define _multiarch_defined_s390
+#undef s390
+#endif
+#if ia64 == 1
+#define _multiarch_defined_ia64
+#undef ia64
+#endif
+#if alpha == 1
+#define _multiarch_defined_alpha
+#undef alpha
+#endif
+#if mipsel == 1
+#define _multiarch_defined_mipsel
+#undef mipsel
+#endif
+#if armeb == 1
+#define _multiarch_defined_armeb
+#undef armeb
+#endif
+
+/* Dispatch arch dependent header */
+#if defined(__linux__)
+#define _MULTIARCH_OS linux
+#endif
+#define _MULTIARCH_MAKE_HEADER(arch,header) <multiarch-arch-_MULTIARCH_OS/header>
+#if defined(__x86_64__)
+#include _MULTIARCH_MAKE_HEADER(x86_64,_MULTIARCH_HEADER)
+#elif defined(__i386__)
+#include _MULTIARCH_MAKE_HEADER(i386,_MULTIARCH_HEADER)
+#elif defined(__powerpc64__)
+#include _MULTIARCH_MAKE_HEADER(ppc64,_MULTIARCH_HEADER)
+#elif defined(__powerpc__)
+#include _MULTIARCH_MAKE_HEADER(ppc,_MULTIARCH_HEADER)
+#elif defined(__sparc__) && defined(__arch64__)
+#include _MULTIARCH_MAKE_HEADER(sparc64,_MULTIARCH_HEADER)
+#elif defined(__sparc__)
+#include _MULTIARCH_MAKE_HEADER(sparc,_MULTIARCH_HEADER)
+#elif defined(__s390x__)
+#include _MULTIARCH_MAKE_HEADER(s390x,_MULTIARCH_HEADER)
+#elif defined(__s390__)
+#include _MULTIARCH_MAKE_HEADER(s390,_MULTIARCH_HEADER)
+#elif defined(__ia64__)
+#include _MULTIARCH_MAKE_HEADER(ia64,_MULTIARCH_HEADER)
+#elif defined(__alpha__)
+#include _MULTIARCH_MAKE_HEADER(alpha,_MULTIARCH_HEADER)
+#elif defined(__mips__)
+#if defined(__BIG_ENDIAN__)
+#include _MULTIARCH_MAKE_HEADER(mips,_MULTIARCH_HEADER)
+#else
+#include _MULTIARCH_MAKE_HEADER(mipsel,_MULTIARCH_HEADER)
+#endif
+#elif defined(__arm__)
+#if defined(__BIG_ENDIAN__)
+#include _MULTIARCH_MAKE_HEADER(armeb,_MULTIARCH_HEADER)
+#else
+#include _MULTIARCH_MAKE_HEADER(arm,_MULTIARCH_HEADER)
+#endif
+#else
+#error "Unknown architecture, please submit bug report"
+#endif
+#undef _MULTIARCH_MAKE_HEADER
+#undef _MULTIARCH_OS
+#undef _MULTIARCH_HEADER
+
+/* Redefine built-ins */
+#ifdef  _multiarch_defined_linux
+#undef  _multiarch_defined_linux
+#define linux 1
+#endif
+#ifdef  _multiarch_defined_i386
+#undef  _multiarch_defined_i386
+#define i386 1
+#endif
+#ifdef  _multiarch_defined_sparc
+#undef  _multiarch_defined_sparc
+#define sparc 1
+#endif
+#ifdef  _multiarch_defined_mips
+#undef  _multiarch_defined_mips
+#define mips 1
+#endif
+#ifdef  _multiarch_defined_arm
+#undef  _multiarch_defined_arm
+#define arm 1
+#endif
+
+/* Redefine interfering defitions */
+#ifdef  _multiarch_defined_x86_64
+#undef  _multiarch_defined_x86_64
+#define x86_64 1
+#endif
+#ifdef  _multiarch_defined_ppc64
+#undef  _multiarch_defined_ppc64
+#define ppc64 1
+#endif
+#ifdef  _multiarch_defined_ppc
+#undef  _multiarch_defined_ppc
+#define ppc 1
+#endif
+#ifdef  _multiarch_defined_sparc64
+#undef  _multiarch_defined_sparc64
+#define sparc64 1
+#endif
+#ifdef  _multiarch_defined_s390x
+#undef  _multiarch_defined_s390x
+#define s390x 1
+#endif
+#ifdef  _multiarch_defined_s390
+#undef  _multiarch_defined_s390
+#define s390 1
+#endif
+#ifdef  _multiarch_defined_ia64
+#undef  _multiarch_defined_ia64
+#define ia64 1
+#endif
+#ifdef  _multiarch_defined_alpha
+#undef  _multiarch_defined_alpha
+#define alpha 1
+#endif
+#ifdef  _multiarch_defined_mipsel
+#undef  _multiarch_defined_mipsel
+#define mipsel 1
+#endif
+#ifdef  _multiarch_defined_armeb
+#undef  _multiarch_defined_armeb
+#define armeb 1
+#endif


Property changes on: multiarch-utils/trunk/multiarch-dispatch.h
___________________________________________________________________
Added: svn:eol-style
   + native

Added: multiarch-utils/trunk/multiarch-platform
===================================================================
--- multiarch-utils/trunk/multiarch-platform	                        (rev 0)
+++ multiarch-utils/trunk/multiarch-platform	2011-02-03 18:09:01 UTC (rev 399)
@@ -0,0 +1,14 @@
+#!/bin/sh
+arch=`uname -m`
+`perl -e '$le   = unpack("h*", pack("s", 1)) =~ /^1/; exit $le;'`
+le=$?
+case $arch in
+i?86) arch=i386;;
+mips*) [ $le -eq 1 ] && arch="$arch"el ;;
+arm*) [ $le -eq 0 ] && arch="armeb" || arch="arm" ;;
+esac
+os=`uname -s`
+case $os in
+Linux*) os=linux;;
+esac
+echo multiarch-$arch-$os


Property changes on: multiarch-utils/trunk/multiarch-platform
___________________________________________________________________
Added: svn:executable
   + *
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/mageia-sysadm/attachments/20110203/d758517e/attachment-0001.html>


More information about the Mageia-sysadm mailing list