[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