[PATCH 02/12] Dereference symbolic links in om-gta02 directory

Geert Stappers <[email protected]>
Newsgroups gmane.linux.debian.devel.embedded
Message-ID <[email protected]>
This done by
   tar cf temp.tar --dereference om-gta02/
   tar xf temp.tar
   rm temp.tar
   git add om-gta02/

Now "git" does see this as

	typechange: om-gta02/hooks/create_user
	typechange: om-gta02/hooks/empty_password
	typechange: om-gta02/hooks/firstboot
	typechange: om-gta02/hooks/serial_tty
	typechange: om-gta02/packages/audio
	typechange: om-gta02/packages/base
	typechange: om-gta02/packages/bluez
	typechange: om-gta02/packages/net
	typechange: om-gta02/packages/wlan
	typechange: om-gta02/packages/xorg
	typechange: om-gta02/root/etc/apt/apt.conf.d/99no-install-recommends
	typechange: om-gta02/root/etc/apt/apt.conf.d/99no-pdiffs
	typechange: om-gta02/root/etc/ld.so.conf
	typechange: om-gta02/root/etc/ssh/ssh_host_dsa_key
	typechange: om-gta02/root/etc/ssh/ssh_host_ecdsa_key
	typechange: om-gta02/root/etc/ssh/ssh_host_rsa_key
	typechange: om-gta02/root/sbin/ldconfig
	typechange: om-gta02/root/usr/bin/ldd
	typechange: om-gta02/root/usr/sbin/policy-rc.d
---
 om-gta02/hooks/create_user                         |    3 +-
 om-gta02/hooks/empty_password                      |    3 +-
 om-gta02/hooks/firstboot                           |   24 +++-
 om-gta02/hooks/serial_tty                          |    2 +-
 om-gta02/packages/audio                            |    6 +-
 om-gta02/packages/base                             |   13 ++-
 om-gta02/packages/bluez                            |    5 +-
 om-gta02/packages/net                              |   13 ++-
 om-gta02/packages/wlan                             |    3 +-
 om-gta02/packages/xorg                             |    6 +-
 .../etc/apt/apt.conf.d/99no-install-recommends     |    2 +-
 om-gta02/root/etc/apt/apt.conf.d/99no-pdiffs       |    2 +-
 om-gta02/root/etc/ld.so.conf                       |    3 +-
 om-gta02/root/etc/ssh/ssh_host_dsa_key             |    1 -
 om-gta02/root/etc/ssh/ssh_host_ecdsa_key           |    1 -
 om-gta02/root/etc/ssh/ssh_host_rsa_key             |    1 -
 om-gta02/root/sbin/ldconfig                        |    4 +-
 om-gta02/root/usr/bin/ldd                          |  202 +++++++++++++++++++-
 om-gta02/root/usr/sbin/policy-rc.d                 |    4 +-
 19 files changed, 279 insertions(+), 19 deletions(-)
 mode change 120000 => 100644 om-gta02/hooks/create_user
 mode change 120000 => 100644 om-gta02/hooks/empty_password
 mode change 120000 => 100644 om-gta02/hooks/firstboot
 mode change 120000 => 100644 om-gta02/hooks/serial_tty
 mode change 120000 => 100644 om-gta02/packages/audio
 mode change 120000 => 100644 om-gta02/packages/base
 mode change 120000 => 100644 om-gta02/packages/bluez
 mode change 120000 => 100644 om-gta02/packages/net
 mode change 120000 => 100644 om-gta02/packages/wlan
 mode change 120000 => 100644 om-gta02/packages/xorg
 mode change 120000 => 100644 om-gta02/root/etc/apt/apt.conf.d/99no-install-recommends
 mode change 120000 => 100644 om-gta02/root/etc/apt/apt.conf.d/99no-pdiffs
 mode change 120000 => 100644 om-gta02/root/etc/ld.so.conf
 mode change 120000 => 100644 om-gta02/root/etc/ssh/ssh_host_dsa_key
 mode change 120000 => 100644 om-gta02/root/etc/ssh/ssh_host_ecdsa_key
 mode change 120000 => 100644 om-gta02/root/etc/ssh/ssh_host_rsa_key
 mode change 120000 => 100755 om-gta02/root/sbin/ldconfig
 mode change 120000 => 100755 om-gta02/root/usr/bin/ldd
 mode change 120000 => 100755 om-gta02/root/usr/sbin/policy-rc.d

diff --git a/om-gta02/hooks/create_user b/om-gta02/hooks/create_user
deleted file mode 120000
index ae9b334..0000000
--- a/om-gta02/hooks/create_user
+++ /dev/null
@@ -1 +0,0 @@
-../../default/hooks/create_user
\ No newline at end of file
diff --git a/om-gta02/hooks/create_user b/om-gta02/hooks/create_user
new file mode 100644
index 0000000..0404ea2
--- /dev/null
+++ b/om-gta02/hooks/create_user
@@ -0,0 +1,2 @@
+fakechroot chroot $ROOTDIR useradd user -p `openssl passwd -crypt -salt // ""` -s /bin/bash --create-home
+fakechroot chroot $ROOTDIR usermod -a -G audio,dialout user
diff --git a/om-gta02/hooks/empty_password b/om-gta02/hooks/empty_password
deleted file mode 120000
index 613fec1..0000000
--- a/om-gta02/hooks/empty_password
+++ /dev/null
@@ -1 +0,0 @@
-../../default/hooks/empty_password
\ No newline at end of file
diff --git a/om-gta02/hooks/empty_password b/om-gta02/hooks/empty_password
new file mode 100644
index 0000000..1c48613
--- /dev/null
+++ b/om-gta02/hooks/empty_password
@@ -0,0 +1,2 @@
+sed -i 's/\(root:\)[^:]*\(:\)/\1'`openssl passwd -crypt -salt // "" | sed 's/\(\/\|\\\|&\)/\\\&/g'`'\2/' $ROOTDIR/etc/shadow
+sed -i 's/\(PermitEmptyPasswords\) no/\1 yes/' $ROOTDIR/etc/ssh/sshd_config
diff --git a/om-gta02/hooks/firstboot b/om-gta02/hooks/firstboot
deleted file mode 120000
index d978812..0000000
--- a/om-gta02/hooks/firstboot
+++ /dev/null
@@ -1 +0,0 @@
-../../default/hooks/firstboot
\ No newline at end of file
diff --git a/om-gta02/hooks/firstboot b/om-gta02/hooks/firstboot
new file mode 100644
index 0000000..7f1119e
--- /dev/null
+++ b/om-gta02/hooks/firstboot
@@ -0,0 +1,23 @@
+cat > $ROOTDIR/etc/init.d/firstboot << __END__
+#!/bin/sh -e
+### BEGIN INIT INFO
+# Provides: firstboot
+# Required-Start: \$all
+# Required-Stop:
+# Default-Start: S
+# Default-Stop:
+### END INIT INFO
+
+for f in rsa dsa ecdsa; do rm -rf /etc/ssh/ssh_host_\${f}_key; done
+echo "generating ssh rsa key..."
+ssh-keygen -q -t rsa -f /etc/ssh/ssh_host_rsa_key -C "" -N ""
+echo "generating ssh dsa key..."
+ssh-keygen -q -t dsa -f /etc/ssh/ssh_host_dsa_key -C "" -N ""
+echo "generating ssh ecdsa key..."
+ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -C "" -N ""
+
+update-rc.d -f firstboot remove
+__END__
+
+chmod +x $ROOTDIR/etc/init.d/firstboot
+fakechroot chroot $ROOTDIR update-rc.d firstboot start 99 S
diff --git a/om-gta02/hooks/serial_tty b/om-gta02/hooks/serial_tty
deleted file mode 120000
index f77cf2e..0000000
--- a/om-gta02/hooks/serial_tty
+++ /dev/null
@@ -1 +0,0 @@
-../../default/hooks/serial_tty
\ No newline at end of file
diff --git a/om-gta02/hooks/serial_tty b/om-gta02/hooks/serial_tty
new file mode 100644
index 0000000..4066a73
--- /dev/null
+++ b/om-gta02/hooks/serial_tty
@@ -0,0 +1 @@
+echo "T0:23:respawn:/sbin/getty -L ttyS0 115200 vt100" >> $ROOTDIR/etc/inittab
diff --git a/om-gta02/packages/audio b/om-gta02/packages/audio
deleted file mode 120000
index 8b2d702..0000000
--- a/om-gta02/packages/audio
+++ /dev/null
@@ -1 +0,0 @@
-../../default/packages/audio
\ No newline at end of file
diff --git a/om-gta02/packages/audio b/om-gta02/packages/audio
new file mode 100644
index 0000000..0ee1b96
--- /dev/null
+++ b/om-gta02/packages/audio
@@ -0,0 +1,5 @@
+alsa-base
+alsa-utils
+gstreamer-tools
+gstreamer0.10-plugins-base
+gstreamer0.10-plugins-good
diff --git a/om-gta02/packages/base b/om-gta02/packages/base
deleted file mode 120000
index 5b0599a..0000000
--- a/om-gta02/packages/base
+++ /dev/null
@@ -1 +0,0 @@
-../../default/packages/base
\ No newline at end of file
diff --git a/om-gta02/packages/base b/om-gta02/packages/base
new file mode 100644
index 0000000..e866da9
--- /dev/null
+++ b/om-gta02/packages/base
@@ -0,0 +1,12 @@
+udev
+module-init-tools
+apt
+locales
+procps
+conspy 
+man-db
+fbset
+openssh-server
+screen
+less
+vim
diff --git a/om-gta02/packages/bluez b/om-gta02/packages/bluez
deleted file mode 120000
index 1a3ab5f..0000000
--- a/om-gta02/packages/bluez
+++ /dev/null
@@ -1 +0,0 @@
-../../default/packages/bluez
\ No newline at end of file
diff --git a/om-gta02/packages/bluez b/om-gta02/packages/bluez
new file mode 100644
index 0000000..5b306d2
--- /dev/null
+++ b/om-gta02/packages/bluez
@@ -0,0 +1,4 @@
+bluez
+bluez-utils
+bluez-alsa
+bluez-gstreamer
diff --git a/om-gta02/packages/net b/om-gta02/packages/net
deleted file mode 120000
index 21c287e..0000000
--- a/om-gta02/packages/net
+++ /dev/null
@@ -1 +0,0 @@
-../../default/packages/net
\ No newline at end of file
diff --git a/om-gta02/packages/net b/om-gta02/packages/net
new file mode 100644
index 0000000..87d45ae
--- /dev/null
+++ b/om-gta02/packages/net
@@ -0,0 +1,12 @@
+curl
+wget
+ntpdate
+vpnc
+rsync
+dhcp3-client
+ifupdown
+net-tools
+iproute
+dnsutils
+iputils-ping
+ppp
diff --git a/om-gta02/packages/wlan b/om-gta02/packages/wlan
deleted file mode 120000
index 8328dad..0000000
--- a/om-gta02/packages/wlan
+++ /dev/null
@@ -1 +0,0 @@
-../../default/packages/wlan
\ No newline at end of file
diff --git a/om-gta02/packages/wlan b/om-gta02/packages/wlan
new file mode 100644
index 0000000..3152901
--- /dev/null
+++ b/om-gta02/packages/wlan
@@ -0,0 +1,2 @@
+wireless-tools
+wpasupplicant
diff --git a/om-gta02/packages/xorg b/om-gta02/packages/xorg
deleted file mode 120000
index 7c96297..0000000
--- a/om-gta02/packages/xorg
+++ /dev/null
@@ -1 +0,0 @@
-../../default/packages/xorg
\ No newline at end of file
diff --git a/om-gta02/packages/xorg b/om-gta02/packages/xorg
new file mode 100644
index 0000000..2b131f4
--- /dev/null
+++ b/om-gta02/packages/xorg
@@ -0,0 +1,5 @@
+xserver-xorg-input-evdev
+xserver-xorg
+xserver-xorg-video-fbdev
+xterm
+nodm
diff --git a/om-gta02/root/etc/apt/apt.conf.d/99no-install-recommends b/om-gta02/root/etc/apt/apt.conf.d/99no-install-recommends
deleted file mode 120000
index 9cf79f1..0000000
--- a/om-gta02/root/etc/apt/apt.conf.d/99no-install-recommends
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../default/root/etc/apt/apt.conf.d/99no-install-recommends
\ No newline at end of file
diff --git a/om-gta02/root/etc/apt/apt.conf.d/99no-install-recommends b/om-gta02/root/etc/apt/apt.conf.d/99no-install-recommends
new file mode 100644
index 0000000..25ec2b3
--- /dev/null
+++ b/om-gta02/root/etc/apt/apt.conf.d/99no-install-recommends
@@ -0,0 +1 @@
+APT::Install-Recommends "0";
diff --git a/om-gta02/root/etc/apt/apt.conf.d/99no-pdiffs b/om-gta02/root/etc/apt/apt.conf.d/99no-pdiffs
deleted file mode 120000
index a8c3da6..0000000
--- a/om-gta02/root/etc/apt/apt.conf.d/99no-pdiffs
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../default/root/etc/apt/apt.conf.d/99no-pdiffs
\ No newline at end of file
diff --git a/om-gta02/root/etc/apt/apt.conf.d/99no-pdiffs b/om-gta02/root/etc/apt/apt.conf.d/99no-pdiffs
new file mode 100644
index 0000000..07d01de
--- /dev/null
+++ b/om-gta02/root/etc/apt/apt.conf.d/99no-pdiffs
@@ -0,0 +1 @@
+Acquire::PDiffs "0";
diff --git a/om-gta02/root/etc/ld.so.conf b/om-gta02/root/etc/ld.so.conf
deleted file mode 120000
index e8d9ce9..0000000
--- a/om-gta02/root/etc/ld.so.conf
+++ /dev/null
@@ -1 +0,0 @@
-../../../default/root/etc/ld.so.conf
\ No newline at end of file
diff --git a/om-gta02/root/etc/ld.so.conf b/om-gta02/root/etc/ld.so.conf
new file mode 100644
index 0000000..a9d3ffc
--- /dev/null
+++ b/om-gta02/root/etc/ld.so.conf
@@ -0,0 +1,2 @@
+# supply ld.so.conf for fake ldd (running libc6 postinst script will fail)
+include /etc/ld.so.conf.d/*.conf
diff --git a/om-gta02/root/etc/ssh/ssh_host_dsa_key b/om-gta02/root/etc/ssh/ssh_host_dsa_key
deleted file mode 120000
index 3c63728..0000000
--- a/om-gta02/root/etc/ssh/ssh_host_dsa_key
+++ /dev/null
@@ -1 +0,0 @@
-../../../../default/root/etc/ssh/ssh_host_dsa_key
\ No newline at end of file
diff --git a/om-gta02/root/etc/ssh/ssh_host_dsa_key b/om-gta02/root/etc/ssh/ssh_host_dsa_key
new file mode 100644
index 0000000..e69de29
diff --git a/om-gta02/root/etc/ssh/ssh_host_ecdsa_key b/om-gta02/root/etc/ssh/ssh_host_ecdsa_key
deleted file mode 120000
index f5f2e31..0000000
--- a/om-gta02/root/etc/ssh/ssh_host_ecdsa_key
+++ /dev/null
@@ -1 +0,0 @@
-../../../../default/root/etc/ssh/ssh_host_ecdsa_key
\ No newline at end of file
diff --git a/om-gta02/root/etc/ssh/ssh_host_ecdsa_key b/om-gta02/root/etc/ssh/ssh_host_ecdsa_key
new file mode 100644
index 0000000..e69de29
diff --git a/om-gta02/root/etc/ssh/ssh_host_rsa_key b/om-gta02/root/etc/ssh/ssh_host_rsa_key
deleted file mode 120000
index 9753b5a..0000000
--- a/om-gta02/root/etc/ssh/ssh_host_rsa_key
+++ /dev/null
@@ -1 +0,0 @@
-../../../../default/root/etc/ssh/ssh_host_rsa_key
\ No newline at end of file
diff --git a/om-gta02/root/etc/ssh/ssh_host_rsa_key b/om-gta02/root/etc/ssh/ssh_host_rsa_key
new file mode 100644
index 0000000..e69de29
diff --git a/om-gta02/root/sbin/ldconfig b/om-gta02/root/sbin/ldconfig
deleted file mode 120000
index ba3ff23..0000000
--- a/om-gta02/root/sbin/ldconfig
+++ /dev/null
@@ -1 +0,0 @@
-../../../default/root/sbin/ldconfig
\ No newline at end of file
diff --git a/om-gta02/root/sbin/ldconfig b/om-gta02/root/sbin/ldconfig
new file mode 100755
index 0000000..a7b8b6d
--- /dev/null
+++ b/om-gta02/root/sbin/ldconfig
@@ -0,0 +1,3 @@
+#!/bin/sh -e
+
+exit
diff --git a/om-gta02/root/usr/bin/ldd b/om-gta02/root/usr/bin/ldd
deleted file mode 120000
index adf2fbc..0000000
--- a/om-gta02/root/usr/bin/ldd
+++ /dev/null
@@ -1 +0,0 @@
-../../../../default/root/usr/bin/ldd
\ No newline at end of file
diff --git a/om-gta02/root/usr/bin/ldd b/om-gta02/root/usr/bin/ldd
new file mode 100755
index 0000000..53e9533
--- /dev/null
+++ b/om-gta02/root/usr/bin/ldd
@@ -0,0 +1,201 @@
+#!/usr/bin/perl
+
+# fakeldd
+#
+# Replacement for ldd with usage of objdump
+#
+# (c) 2003-2010 Piotr Roszatycki <[email protected]>, LGPL
+
+use strict;
+
+my @Libs = ();
+my %Libs = ();
+
+my $Status = 0;
+my $Dynamic = 0;
+my $Format = '';
+
+my $Ldsodir = "/lib";
+my @Ld_Library_Path = qw(/usr/lib /lib /usr/lib32 /lib32 /usr/lib64 /lib64);
+
+
+sub ldso {
+    my ($lib) = @_;
+
+    return if $Libs{$lib};
+
+    my $path;
+
+    if ($lib =~ /^\//) {
+        $path = $lib;
+    }
+    else {
+        foreach my $dir (@Ld_Library_Path) {
+            next unless -f "$dir/$lib";
+
+            my $badformat = 0;
+            local *PIPE;
+            open PIPE, "objdump -p '$dir/$lib' 2>/dev/null |";
+            while (my $line = <PIPE>) {
+                if ($line =~ /file format (\S*)$/) {
+                    $badformat = 1 unless $1 eq $Format;
+                    last;
+                }
+            }
+            close PIPE;
+
+            next if $badformat;
+
+            $path = "$dir/$lib";
+            last;
+        }
+    }
+
+    push @Libs, $lib;
+    if (-f $path) {
+        $Libs{$lib} = $path;
+        objdump($path);
+    }
+}
+
+
+sub objdump {
+    my (@files) = @_;
+
+    foreach my $file (@files) {
+        local *PIPE;
+        open PIPE, "objdump -p '$file' 2>/dev/null |";
+        while (my $line = <PIPE>) {
+            $line =~ s/^\s+//;
+
+            if ($line =~ /file format (\S*)$/) {
+                if (not $Format) {
+                    $Format = $1;
+
+                    if ($^O eq 'linux') {
+                        if ($Format =~ /^elf64-/) {
+                            push @Libs, 'linux-vdso.so.1';
+                            $Libs{'linux-vdso.so.1'} = '';
+                        }
+                        else {
+                            push @Libs, 'linux-gate.so.1';
+                            $Libs{'linux-gate.so.1'} = '';
+                        }
+                    }
+
+                    foreach my $lib (split /:/, $ENV{LD_PRELOAD}||'') {
+                        ldso($lib);
+                    }
+                }
+                else {
+                    next unless $Format eq $1;
+                }
+            }
+            if (not $Dynamic and $line =~ /^Dynamic Section:/) {
+                $Dynamic = 1;
+            }
+
+            next unless $line =~ /^ \s* NEEDED \s+ (.*) \s* $/x;
+
+            my $needed = $1;
+            if ($needed =~ /^ld(-linux)?(\.|-)/) {
+                $needed = "$Ldsodir/$needed";
+            }
+
+            ldso($needed);
+        }
+        close PIPE;
+    }
+}
+
+
+sub load_ldsoconf {
+    my ($file) = @_;
+
+    local *FH;
+    open FH, $file;
+    while (my $line = <FH>) {
+        chomp $line;
+        $line =~ s/#.*//;
+        next if $line =~ /^\s*$/;
+
+        if ($line =~ /^include\s+(.*)\s*/) {
+            my $include = $1;
+            foreach my $incfile (glob $include) {
+                load_ldsoconf($incfile);
+            }
+            next;
+        }
+
+        unshift @Ld_Library_Path, $line;
+    }
+    close FH;
+}
+
+
+MAIN: {
+    my @args = @ARGV;
+
+    if (not @args) {
+        print STDERR "fakeldd: missing file arguments\n";
+        exit 1;
+    }
+
+    if (not `which objdump`) {
+        print STDERR "fakeldd: objdump: command not found: install binutils package\n";
+        exit 1;
+    }
+
+    load_ldsoconf('/etc/ld.so.conf');
+    unshift @Ld_Library_Path, split(/:/, $ENV{LD_LIBRARY_PATH}||'');
+
+    while ($args[0] =~ /^-/) {
+        my $arg = $args[0];
+        shift @ARGV;
+        last if $arg eq "--";
+    }
+
+    foreach my $file (@args) {
+        %Libs = ();
+        $Dynamic = 0;
+
+        if (@args > 1) {
+            print "$file:\n";
+        }
+
+        if (not -f $file) {
+            print STDERR "ldd: $file: No such file or directory\n";
+            $Status = 1;
+            next;
+        }
+
+        objdump($file);
+
+        if ($Dynamic == 0) {
+            print "\tnot a dynamic executable\n";
+            $Status = 1;
+        }
+        elsif (scalar %Libs eq "0") {
+            print "\tstatically linked\n";
+        }
+
+        my $address = '0x' . '0' x ($Format =~ /^elf64-/ ? 16 : 8);
+
+        foreach my $lib (@Libs) {
+            if ($lib =~ /^\//) {
+                printf "\t%s (%s)\n", $lib, $address;
+            }
+            elsif (defined $Libs{$lib}) {
+                printf "\t%s => %s (%s)\n", $lib, $Libs{$lib}, $address;
+            }
+            else {
+                printf "\t%s => not found\n", $lib;
+            }
+        }
+
+    }
+}
+
+END {
+    $? = $Status;
+}
diff --git a/om-gta02/root/usr/sbin/policy-rc.d b/om-gta02/root/usr/sbin/policy-rc.d
deleted file mode 120000
index 93e300d..0000000
--- a/om-gta02/root/usr/sbin/policy-rc.d
+++ /dev/null
@@ -1 +0,0 @@
-../../../../default/root/usr/sbin/policy-rc.d
\ No newline at end of file
diff --git a/om-gta02/root/usr/sbin/policy-rc.d b/om-gta02/root/usr/sbin/policy-rc.d
new file mode 100755
index 0000000..85d823d
--- /dev/null
+++ b/om-gta02/root/usr/sbin/policy-rc.d
@@ -0,0 +1,3 @@
+#!/bin/sh
+echo "sysvinit: All runlevel operations denied by policy" >&2
+exit 101
-- 
1.7.2.3
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.