Added new /SANE/ configuration. It now boots, runs well on slimport, and has zRAM (WOO)!
This commit is contained in:
4076
arch/arm/configs/tononix_flo_defconfig
Normal file
4076
arch/arm/configs/tononix_flo_defconfig
Normal file
File diff suppressed because it is too large
Load Diff
3
debian/commit-templates/bumpabi
vendored
3
debian/commit-templates/bumpabi
vendored
@@ -1,3 +0,0 @@
|
||||
UBUNTU: Bump ABI
|
||||
|
||||
Ignore: yes
|
||||
15
debian/commit-templates/config-updates
vendored
15
debian/commit-templates/config-updates
vendored
@@ -1,15 +0,0 @@
|
||||
#
|
||||
# This template is used for commit messages that don't need to
|
||||
# show up in debian/changelog. Administrative stuff like config
|
||||
# updates, ABI bumps, etc. Setting 'Ignore: yes' prevents
|
||||
# 'debian/rules insertchanges' from inserting this commit meesage
|
||||
# as a changelog entry.
|
||||
#
|
||||
# Please give a one-line description of the config change followed
|
||||
# by a detailed explanation if necessary
|
||||
|
||||
UBUNTU: [Config] XXXX
|
||||
|
||||
# BugLink: http://bugs.launchpad.net/bugs/<enter bug# here>
|
||||
# Ignore: yes
|
||||
# Other text below here.
|
||||
20
debian/commit-templates/external-driver
vendored
20
debian/commit-templates/external-driver
vendored
@@ -1,20 +0,0 @@
|
||||
# Ubuntu external driver commit.
|
||||
#
|
||||
# NOTE: This gets reformatted for README.Ubuntu-External-Drivers and
|
||||
# debian/changelog.
|
||||
#
|
||||
# This is only needed when a driver is added, updated or removed. It is
|
||||
# not needed when patches or fixes are applied to the driver. If the
|
||||
# driver is being removed, add the line:
|
||||
#
|
||||
# Removing: yes
|
||||
#
|
||||
# to the commit, and you can remove all other tags (except UBUNTU:).
|
||||
#
|
||||
UBUNTU:
|
||||
|
||||
ExternalDriver:
|
||||
Description:
|
||||
Url:
|
||||
Mask:
|
||||
Version:
|
||||
3
debian/commit-templates/missing-modules
vendored
3
debian/commit-templates/missing-modules
vendored
@@ -1,3 +0,0 @@
|
||||
UBUNTU: build/modules: Add modules that have intentionally gone missing
|
||||
|
||||
Ignore: yes
|
||||
3
debian/commit-templates/newrelease
vendored
3
debian/commit-templates/newrelease
vendored
@@ -1,3 +0,0 @@
|
||||
UBUNTU: Start new release
|
||||
|
||||
Ignore: yes
|
||||
40
debian/commit-templates/sauce-patch
vendored
40
debian/commit-templates/sauce-patch
vendored
@@ -1,40 +0,0 @@
|
||||
# Ubuntu commit template.
|
||||
#
|
||||
# NOTE: This gets reformatted for debian/changelog
|
||||
#
|
||||
#
|
||||
# SAUCE refers to the fact that this patch might not go upstream, but we need to
|
||||
# carry it to successive releases. In most cases you DONOT want to use this
|
||||
# template.
|
||||
#
|
||||
# An example of a SAUCE patch is the ACPI DSDT-in-initramfs patch which has been
|
||||
# refused upstream, but still provides useful functionality to users with broken
|
||||
# BIOSes.
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# The initial UBUNTU is a flag that this is an Ubuntu commit. It will be
|
||||
# referenced to the Author in the debian/changelog entry.
|
||||
#
|
||||
# The text following is the short message that will be placed in the
|
||||
# changelog. Extra text on the following lines will be ignored, but left
|
||||
# in the git commit. Lines with # will be ignored in the commit.
|
||||
#
|
||||
# OriginalAuthor allows for alternate attribution.
|
||||
#
|
||||
# OriginalLocation allows for a URL or description of where the patch came
|
||||
# from.
|
||||
#
|
||||
# BugLink is a URL to a Malone bug.
|
||||
#
|
||||
# Ignore: yes will keep this commit from showing up in the changelog.
|
||||
#
|
||||
UBUNTU: SAUCE:
|
||||
|
||||
<Why is this patch not going upstream?>
|
||||
|
||||
# OriginalAuthor:
|
||||
# OriginalLocation:
|
||||
# BugLink: http://bugs.launchpad.net/bugs/<enter bug# here>
|
||||
# Ignore: yes
|
||||
# Other text below here.
|
||||
27
debian/commit-templates/upstream-patch
vendored
27
debian/commit-templates/upstream-patch
vendored
@@ -1,27 +0,0 @@
|
||||
# Ubuntu commit template.
|
||||
#
|
||||
# NOTE: This gets reformatted for debian/changelog
|
||||
#
|
||||
# The initial UBUNTU is a flag that this is an Ubuntu commit. It will be
|
||||
# referenced to the Author in the debian/changelog entry.
|
||||
#
|
||||
# The text following is the short message that will be placed in the
|
||||
# changelog. Extra text on the following lines will be ignored, but left
|
||||
# in the git commit. Lines with # will be ignored in the commit.
|
||||
#
|
||||
# OriginalAuthor allows for alternate attribution.
|
||||
#
|
||||
# OriginalLocation allows for a URL or description of where the patch came
|
||||
# from.
|
||||
#
|
||||
# BugLink is a URL to a Malone bug.
|
||||
#
|
||||
# Ignore: yes will keep this commit from showing up in the changelog.
|
||||
#
|
||||
UBUNTU: [Upstream]
|
||||
|
||||
# OriginalAuthor:
|
||||
# OriginalLocation:
|
||||
# BugLink: http://bugs.launchpad.net/bugs/<enter bug# here>
|
||||
# Ignore: yes
|
||||
# Other text below here.
|
||||
1
debian/compat
vendored
1
debian/compat
vendored
@@ -1 +0,0 @@
|
||||
5
|
||||
126
debian/control-scripts/headers-postinst
vendored
126
debian/control-scripts/headers-postinst
vendored
@@ -1,126 +0,0 @@
|
||||
#!/usr/bin/perl
|
||||
# -*- Mode: Cperl -*-
|
||||
# debian.postinst ---
|
||||
# Author : Manoj Srivastava ( srivasta@pilgrim.umass.edu )
|
||||
# Created On : Sat Apr 27 05:42:43 1996
|
||||
# Created On Node : melkor.pilgrim.umass.edu
|
||||
# Last Modified By : Manoj Srivastava
|
||||
# Last Modified On : Sat Aug 5 13:20:22 2006
|
||||
# Last Machine Used: glaurung.internal.golden-gryphon.com
|
||||
# Update Count : 45
|
||||
# Status : Unknown, Use with caution!
|
||||
# HISTORY :
|
||||
# Description :
|
||||
#
|
||||
#
|
||||
#
|
||||
# arch-tag: 1c716174-2f0a-476d-a626-a1322e62503a
|
||||
#
|
||||
|
||||
|
||||
$|=1;
|
||||
|
||||
# Predefined values:
|
||||
my $version = "=V";
|
||||
my $kimage = "=K";
|
||||
my $package_name = "linux-image-$version";
|
||||
|
||||
|
||||
# Ignore all invocations uxcept when called on to configure.
|
||||
exit 0 unless ($ARGV[0] && $ARGV[0] =~ /configure/);
|
||||
|
||||
#known variables
|
||||
my $image_dest = "/";
|
||||
my $realimageloc = "/boot/";
|
||||
my $silent_modules = '';
|
||||
my $modules_base = '/lib/modules';
|
||||
my $CONF_LOC = '/etc/kernel-img.conf';
|
||||
# remove multiple leading slashes; make sure there is at least one.
|
||||
$realimageloc =~ s|^/*|/|o;
|
||||
$realimageloc =~ s|/+|/|o;
|
||||
|
||||
chdir '/usr/src' or die "Could not chdir to /usr/src:$!";
|
||||
|
||||
if (-r "$CONF_LOC" && -f "$CONF_LOC" ) {
|
||||
if (open(CONF, "$CONF_LOC")) {
|
||||
while (<CONF>) {
|
||||
chomp;
|
||||
s/\#.*$//g;
|
||||
next if /^\s*$/;
|
||||
|
||||
$header_postinst_hook = "$1" if /^\s*header_postinst_hook\s*=\s*(\S+)/ig;
|
||||
}
|
||||
close CONF;
|
||||
}
|
||||
}
|
||||
|
||||
sub exec_script {
|
||||
my $type = shift;
|
||||
my $script = shift;
|
||||
print STDERR "Running $type hook script $script.\n";
|
||||
system ("$script $version $realimageloc$kimage-$version") &&
|
||||
print STDERR "User $type hook script [$script] ";
|
||||
if ($?) {
|
||||
if ($? == -1) {
|
||||
print STDERR "failed to execute: $!\n";
|
||||
}
|
||||
elsif ($? & 127) {
|
||||
printf STDERR "died with signal %d, %s coredump\n",
|
||||
($? & 127), ($? & 128) ? 'with' : 'without';
|
||||
}
|
||||
else {
|
||||
printf STDERR "exited with value %d\n", $? >> 8;
|
||||
}
|
||||
exit $? >> 8;
|
||||
}
|
||||
}
|
||||
sub run_hook {
|
||||
my $type = shift;
|
||||
my $script = shift;
|
||||
if ($script =~ m,^/,) {
|
||||
# Full path provided for the hook script
|
||||
if (-x "$script") {
|
||||
&exec_script($type,$script);
|
||||
}
|
||||
else {
|
||||
die "The provided $type hook script [$script] could not be run.\n";
|
||||
}
|
||||
}
|
||||
else {
|
||||
# Look for it in a safe path
|
||||
for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') {
|
||||
if (-x "$path/$script") {
|
||||
&exec_script($type, "$path/$script");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
# No luck
|
||||
print STDERR "Could not find $type hook script [$script].\n";
|
||||
die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n";
|
||||
}
|
||||
}
|
||||
|
||||
## Run user hook script here, if any
|
||||
if (-x "$header_postinst_hook") {
|
||||
&run_hook("postinst", $header_postinst_hook);
|
||||
}
|
||||
|
||||
if (-d "/etc/kernel/header_postinst.d") {
|
||||
print STDERR "Examining /etc/kernel/header_postinst.d.\n";
|
||||
system ("run-parts --verbose --exit-on-error --arg=$version " .
|
||||
"--arg=$realimageloc$kimage-$version " .
|
||||
"/etc/kernel/header_postinst.d") &&
|
||||
die "Failed to process /etc/kernel/header_postinst.d";
|
||||
}
|
||||
|
||||
if (-d "/etc/kernel/header_postinst.d/$version") {
|
||||
print STDERR "Examining /etc/kernel/header_postinst.d/$version.\n";
|
||||
system ("run-parts --verbose --exit-on-error --arg=$version " .
|
||||
"--arg=$realimageloc$kimage-$version " .
|
||||
"/etc/kernel/header_postinst.d/$version") &&
|
||||
die "Failed to process /etc/kernel/header_postinst.d/$version";
|
||||
}
|
||||
|
||||
exit 0;
|
||||
|
||||
__END__
|
||||
1095
debian/control-scripts/postinst
vendored
1095
debian/control-scripts/postinst
vendored
File diff suppressed because it is too large
Load Diff
361
debian/control-scripts/postrm
vendored
361
debian/control-scripts/postrm
vendored
@@ -1,361 +0,0 @@
|
||||
#! /usr/bin/perl
|
||||
# -*- Mode: Cperl -*-
|
||||
# image.postrm ---
|
||||
# Author : Manoj Srivastava ( srivasta@glaurung.green-gryphon.com )
|
||||
# Created On : Sat May 15 11:05:13 1999
|
||||
# Created On Node : glaurung.green-gryphon.com
|
||||
# Last Modified By : Manoj Srivastava
|
||||
# Last Modified On : Wed Sep 13 11:26:19 2006
|
||||
# Last Machine Used: glaurung.internal.golden-gryphon.com
|
||||
# Update Count : 57
|
||||
# Status : Unknown, Use with caution!
|
||||
# HISTORY :
|
||||
# Description :
|
||||
#
|
||||
# $Id: image.postrm,v 1.31 2003/10/07 16:24:20 srivasta Exp $
|
||||
#
|
||||
|
||||
|
||||
#
|
||||
#use strict; #for debugging
|
||||
use Cwd 'abs_path';
|
||||
|
||||
$|=1;
|
||||
|
||||
# Predefined values:
|
||||
my $version = "=V";
|
||||
my $link_in_boot = ""; # Should be empty, mostly
|
||||
my $no_symlink = ""; # Should be empty, mostly
|
||||
my $reverse_symlink = ""; # Should be empty, mostly
|
||||
my $do_symlink = "Yes"; # target machine defined
|
||||
my $do_boot_enable = "Yes"; # target machine defined
|
||||
my $do_bootfloppy = "Yes"; # target machine defined
|
||||
my $do_bootloader = "Yes"; # target machine defined
|
||||
my $move_image = ''; # target machine defined
|
||||
my $kimage = "=K"; # Should be empty, mostly
|
||||
my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, or nettrom
|
||||
my $image_dir = "/boot"; # where the image is located
|
||||
my $clobber_modules = ''; # target machine defined
|
||||
my $initrd = "YES"; # initrd kernel
|
||||
my $do_initrd = ''; # Normally, we don't
|
||||
my $warn_initrd = 'YES'; # Normally we do
|
||||
my $use_hard_links = ''; # hardlinks do not work across fs boundaries
|
||||
my $postinst_hook = ''; #Normally we do not
|
||||
my $postrm_hook = ''; #Normally we do not
|
||||
my $preinst_hook = ''; #Normally we do not
|
||||
my $prerm_hook = ''; #Normally we do not
|
||||
my $minimal_swap = ''; # Do not swap symlinks
|
||||
my $ignore_depmod_err = ''; # normally we do not
|
||||
my $relink_build_link = 'YES'; # There is no harm in checking the link
|
||||
my $force_build_link = ''; # we shall not create a dangling link
|
||||
my $kernel_arch = "=B";
|
||||
my $ramdisk = "/usr/sbin/update-initramfs";
|
||||
my $package_name = "linux-image-$version";
|
||||
|
||||
my $Loader = "NoLOADER"; #
|
||||
$Loader = "LILO" if $loader =~ /^lilo/io;
|
||||
$Loader = "SILO" if $loader =~ /^silo/io;
|
||||
$Loader = "QUIK" if $loader =~ /^quik/io;
|
||||
$Loader = "yaboot" if $loader =~ /^yaboot/io;
|
||||
$Loader = "PALO" if $loader =~ /^palo/io;
|
||||
$Loader = "NETTROM" if $loader =~ /^nettrom/io;
|
||||
$Loader = "VMELILO" if $loader =~ /^vmelilo/io;
|
||||
$Loader = "ZIPL" if $loader =~ /^zipl/io;
|
||||
$Loader = "ELILO" if $loader =~ /^elilo/io;
|
||||
|
||||
|
||||
# This should not point to /tmp, because of security risks.
|
||||
my $temp_file_name = "/var/log/$loader" . "_log.$$";
|
||||
|
||||
#known variables
|
||||
my @boilerplate = ();
|
||||
my @silotemplate = ();
|
||||
my @quiktemplate = ();
|
||||
my @palotemplate = ();
|
||||
my @vmelilotemplate = ();
|
||||
my $bootdevice = '';
|
||||
my $rootdevice = '';
|
||||
my $rootdisk = '';
|
||||
my $rootpartition = '';
|
||||
my $image_dest = "/";
|
||||
my $realimageloc = "/$image_dir/";
|
||||
my $have_conffile = "";
|
||||
my $CONF_LOC = '/etc/kernel-img.conf';
|
||||
my $relative_links = '';
|
||||
my $silent_modules = '';
|
||||
my $silent_loader = '';
|
||||
my $warn_reboot = 'Yes'; # Warn that we are installing a version of
|
||||
# the kernel we are running
|
||||
|
||||
chdir('/') or die "could not chdir to /:$!\n";
|
||||
# remove multiple leading slashes; make sure there is at least one.
|
||||
$realimageloc =~ s|^/*|/|o;
|
||||
$realimageloc =~ s|/+|/|o;
|
||||
|
||||
|
||||
if (-r "$CONF_LOC" && -f "$CONF_LOC" ) {
|
||||
if (open(CONF, "$CONF_LOC")) {
|
||||
while (<CONF>) {
|
||||
chomp;
|
||||
s/\#.*$//g;
|
||||
next if /^\s*$/;
|
||||
|
||||
$do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig;
|
||||
$no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig;
|
||||
$reverse_symlink = "" if /^\s*reverse_symlinks\s*=\s*(no|false|0)\s*$/ig;
|
||||
$link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig;
|
||||
$link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig;
|
||||
$move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig;
|
||||
$clobber_modules = '' if /^\s*clobber_modules\s*=\s*(no|false|0)\s*$/ig;
|
||||
$do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig;
|
||||
$do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig;
|
||||
$relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig;
|
||||
$do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig;
|
||||
$do_initrd = '' if /^\s*do_initrd\s*=\s*(no|false|0)\s*$/ig;
|
||||
$warn_initrd = '' if /^\s*warn_initrd\s*=\s*(no|false|0)\s*$/ig;
|
||||
$use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig;
|
||||
$silent_modules = '' if /^\s*silent_modules\s*=\s*(no|false|0)\s*$/ig;
|
||||
$silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig;
|
||||
$warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig;
|
||||
$minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig;
|
||||
$ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig;
|
||||
$relink_build_link = '' if /^\s*relink_build_link\s*=\s*(no|false|0)\s*$/ig;
|
||||
$force_build_link = '' if /^\s*force_build_link\s*=\s*(no|false|0)\s*$/ig;
|
||||
|
||||
$do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$clobber_modules = "Yes" if /^\s*clobber_modules\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$do_initrd = "Yes" if /^\s*do_initrd\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$warn_initrd = "Yes" if /^\s*warn_initrd\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$silent_modules = 'Yes' if /^\s*silent_modules\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$relink_build_link = 'Yes' if /^\s*relink_build_link\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$force_build_link = 'Yes' if /^\s*force_build_link\s*=\s*(yes|true|1)\s*$/ig;
|
||||
|
||||
$image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig;
|
||||
$postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig;
|
||||
$postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig;
|
||||
$preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig;
|
||||
$prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig;
|
||||
$ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig;
|
||||
}
|
||||
close CONF;
|
||||
$have_conffile = "Yes";
|
||||
}
|
||||
}
|
||||
|
||||
if ($link_in_boot) {
|
||||
$image_dest = "/$image_dir/";
|
||||
$image_dest =~ s|^/*|/|o;
|
||||
}
|
||||
|
||||
$image_dest = "$image_dest/";
|
||||
$image_dest =~ s|/+$|/|o;
|
||||
|
||||
# The destdir may be gone by now.
|
||||
if (-d "$image_dest") {
|
||||
chdir("$image_dest") or die "could not chdir to $image_dest:$!\n";
|
||||
}
|
||||
|
||||
# Paranoid check to make sure that the correct value is put in there
|
||||
if (! $kimage) {$kimage = "vmlinuz"} # Hmm. empty
|
||||
elsif ($kimage =~ m/^b?uImage$/o) {$kimage = "vmlinuz"} # these produce vmlinuz
|
||||
elsif ($kimage =~ m/^b?zImage$/o) {$kimage = "vmlinuz"} # these produce vmlinuz
|
||||
elsif ($kimage =~ m/^[iI]mage$/o) { my $nop = $kimage;}
|
||||
elsif ($kimage =~ m/^vmlinux$/o) { my $nop = $kimage;}
|
||||
else {$kimage = "vmlinuz"} # default
|
||||
|
||||
$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch;
|
||||
|
||||
|
||||
######################################################################
|
||||
######################################################################
|
||||
############
|
||||
######################################################################
|
||||
######################################################################
|
||||
sub remove_sym_link {
|
||||
my $bad_image = $_[0];
|
||||
|
||||
warn "Removing symbolic link $bad_image \n";
|
||||
if ($loader =~ /lilo/i)
|
||||
{
|
||||
warn "Unless you used the optional flag in lilo, \n";
|
||||
}
|
||||
warn " you may need to re-run your boot loader" . ($loader ? "[$loader]":"")
|
||||
. "\n";
|
||||
# Remove the dangling link
|
||||
unlink "$bad_image";
|
||||
}
|
||||
|
||||
######################################################################
|
||||
######################################################################
|
||||
############
|
||||
######################################################################
|
||||
######################################################################
|
||||
sub CanonicalizePath {
|
||||
my $path = join '/', @_;
|
||||
my @work = split '/', $path;
|
||||
my @out;
|
||||
my $is_absolute;
|
||||
|
||||
if (@work && $work[0] eq "") { $is_absolute = 1; shift @work; }
|
||||
|
||||
while (@work) {
|
||||
my $seg = shift @work;
|
||||
if ($seg eq "." || $seg eq "") {
|
||||
} elsif ($seg eq "..") {
|
||||
if (@out && $out[-1] ne "..") {
|
||||
pop @out;
|
||||
} else {
|
||||
# Leading "..", or "../..", etc.
|
||||
push @out, $seg;
|
||||
}
|
||||
} else {
|
||||
push @out, $seg;
|
||||
}
|
||||
}
|
||||
|
||||
unshift @out, "" if $is_absolute;
|
||||
return join('/', @out);
|
||||
}
|
||||
|
||||
######################################################################
|
||||
######################################################################
|
||||
############
|
||||
######################################################################
|
||||
######################################################################
|
||||
# This removes dangling symlinks. What do we do about hard links? Surely a
|
||||
# something with the nane $image_dest . "$kimage" ought not to be left behind?
|
||||
sub image_magic {
|
||||
my $kimage = $_[0];
|
||||
my $image_dest = $_[1];
|
||||
|
||||
if (-l "$kimage") {
|
||||
# There is a symbolic link
|
||||
my $force_move = 0;
|
||||
my $vmlinuz_target = readlink "$kimage";
|
||||
my $real_target = '';
|
||||
$real_target = abs_path($vmlinuz_target) if defined ($vmlinuz_target);
|
||||
if (!defined($vmlinuz_target) || ! -f "$real_target") {
|
||||
# what, a dangling symlink?
|
||||
warn "The link " . $image_dest . "$kimage is a damaged link\n";
|
||||
# Remove the dangling link
|
||||
&remove_sym_link("$kimage");
|
||||
}
|
||||
else {
|
||||
my $canonical_target = CanonicalizePath("$vmlinuz_target");
|
||||
if (! -e $canonical_target) {
|
||||
warn "The link " . $image_dest . "$kimage is a dangling link\n";
|
||||
&remove_sym_link("$kimage");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# set the env var stem
|
||||
$ENV{'STEM'} = "linux";
|
||||
|
||||
sub exec_script {
|
||||
my $type = shift;
|
||||
my $script = shift;
|
||||
print STDERR "Running $type hook script $script.\n";
|
||||
system ("$script $version $realimageloc$kimage-$version") &&
|
||||
print STDERR "User $type hook script [$script] ";
|
||||
if ($?) {
|
||||
if ($? == -1) {
|
||||
print STDERR "failed to execute: $!\n";
|
||||
}
|
||||
elsif ($? & 127) {
|
||||
printf STDERR "died with signal %d, %s coredump\n",
|
||||
($? & 127), ($? & 128) ? 'with' : 'without';
|
||||
}
|
||||
else {
|
||||
printf STDERR "exited with value %d\n", $? >> 8;
|
||||
}
|
||||
}
|
||||
}
|
||||
sub run_hook {
|
||||
my $type = shift;
|
||||
my $script = shift;
|
||||
if ($script =~ m,^/,) {
|
||||
# Full path provided for the hook script
|
||||
if (-x "$script") {
|
||||
&exec_script($type,$script);
|
||||
}
|
||||
else {
|
||||
warn "The provided $type hook script [$script] could not be run.\n";
|
||||
}
|
||||
}
|
||||
else {
|
||||
# Look for it in a safe path
|
||||
for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') {
|
||||
if (-x "$path/$script") {
|
||||
&exec_script($type, "$path/$script");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
# No luck
|
||||
print STDERR "Could not find $type hook script [$script].\n";
|
||||
warn "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n";
|
||||
}
|
||||
}
|
||||
|
||||
my $options;
|
||||
for (@ARGV) {
|
||||
s,','\\'',g;
|
||||
$options .= " '$_'";
|
||||
}
|
||||
$ENV{'DEB_MAINT_PARAMS'}="$options";
|
||||
|
||||
## Run user hook script here, if any
|
||||
if ($postrm_hook) {
|
||||
&run_hook("postrm", $postrm_hook);
|
||||
}
|
||||
if (-d "/etc/kernel/postrm.d") {
|
||||
warn "Examining /etc/kernel/postrm.d .\n";
|
||||
system ("run-parts --verbose --exit-on-error --arg=$version " .
|
||||
"--arg=$realimageloc$kimage-$version " .
|
||||
"/etc/kernel/postrm.d") &&
|
||||
die "Failed to process /etc/kernel/postrm.d";
|
||||
}
|
||||
if (-d "/etc/kernel/postrm.d/$version") {
|
||||
warn "Examining /etc/kernel/postrm.d/$version .\n";
|
||||
system ("run-parts --verbose --exit-on-error --arg=$version " .
|
||||
"--arg=$realimageloc$kimage-$version " .
|
||||
"/etc/kernel/postrm.d/$version") &&
|
||||
die "Failed to process /etc/kernel/postrm.d/$version";
|
||||
}
|
||||
|
||||
# check and remove damaged and dangling symlinks
|
||||
if ($ARGV[0] !~ /upgrade/) {
|
||||
system("$ramdisk -d -k " . $version . " > /dev/null 2>&1");
|
||||
if (-f $realimageloc . "initrd.img-$version.bak") {
|
||||
unlink $realimageloc . "initrd.img-$version.bak";
|
||||
}
|
||||
image_magic($kimage, $image_dest);
|
||||
image_magic($kimage . ".old", $image_dest);
|
||||
image_magic("initrd.img", $image_dest) if $initrd;
|
||||
image_magic("initrd.img.old", $image_dest) if $initrd;
|
||||
}
|
||||
|
||||
exit 0;
|
||||
|
||||
__END__
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
315
debian/control-scripts/preinst
vendored
315
debian/control-scripts/preinst
vendored
@@ -1,315 +0,0 @@
|
||||
#! /usr/bin/perl
|
||||
# -*- Mode: Cperl -*-
|
||||
# image.preinst ---
|
||||
# Author : Manoj Srivastava ( srivasta@tiamat.datasync.com )
|
||||
# Created On : Sun Jun 14 03:38:02 1998
|
||||
# Created On Node : tiamat.datasync.com
|
||||
# Last Modified By : Manoj Srivastava
|
||||
# Last Modified On : Sun Sep 24 14:04:42 2006
|
||||
# Last Machine Used: glaurung.internal.golden-gryphon.com
|
||||
# Update Count : 99
|
||||
# Status : Unknown, Use with caution!
|
||||
# HISTORY :
|
||||
# Description :
|
||||
#
|
||||
#
|
||||
|
||||
#
|
||||
#use strict; #for debugging
|
||||
|
||||
use Debconf::Client::ConfModule qw(:all);
|
||||
version('2.0');
|
||||
my $capb=capb("backup");
|
||||
|
||||
$|=1;
|
||||
|
||||
# Predefined values:
|
||||
my $version = "=V";
|
||||
my $link_in_boot = ""; # Should be empty, mostly
|
||||
my $no_symlink = ""; # Should be empty, mostly
|
||||
my $reverse_symlink = ""; # Should be empty, mostly
|
||||
my $do_symlink = "Yes"; # target machine defined
|
||||
my $do_boot_enable = "Yes"; # target machine defined
|
||||
my $do_bootfloppy = "Yes"; # target machine defined
|
||||
my $do_bootloader = "Yes"; # target machine defined
|
||||
my $move_image = ''; # target machine defined
|
||||
my $kimage = "=K"; # Should be empty, mostly
|
||||
my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, nettrom
|
||||
# or elilo
|
||||
my $image_dir = "/boot"; # where the image is located
|
||||
my $initrd = "YES"; # initrd kernel
|
||||
my $use_hard_links = ''; # hardlinks do not wirk across fs boundaries
|
||||
my $postinst_hook = ''; #Normally we do not
|
||||
my $postrm_hook = ''; #Normally we do not
|
||||
my $preinst_hook = ''; #Normally we do not
|
||||
my $prerm_hook = ''; #Normally we do not
|
||||
my $minimal_swap = ''; # Do not swap symlinks
|
||||
my $ignore_depmod_err = ''; # normally we do not
|
||||
my $relink_src_link = 'YES'; # There is no harm in checking the link
|
||||
my $relink_build_link = 'YES'; # There is no harm in checking the link
|
||||
my $force_build_link = ''; # There is no harm in checking the link
|
||||
my $kernel_arch = "=B";
|
||||
my $ramdisk = "/usr/sbin/update-initramfs"; # List of tools to create initial ram fs.
|
||||
my $package_name = "linux-image-$version";
|
||||
|
||||
my $Loader = "NoLOADER"; #
|
||||
$Loader = "LILO" if $loader =~ /^lilo/io;
|
||||
$Loader = "SILO" if $loader =~ /^silo/io;
|
||||
$Loader = "QUIK" if $loader =~ /^quik/io;
|
||||
$Loader = "yaboot" if $loader =~ /^yaboot/io;
|
||||
$Loader = "PALO" if $loader =~ /^palo/io;
|
||||
$Loader = "NETTROM" if $loader =~ /^nettrom/io;
|
||||
$Loader = "VMELILO" if $loader =~ /^vmelilo/io;
|
||||
$Loader = "ZIPL" if $loader =~ /^zipl/io;
|
||||
$Loader = "ELILO" if $loader =~ /^elilo/io;
|
||||
|
||||
|
||||
#known variables
|
||||
my @boilerplate = ();
|
||||
my @silotemplate = ();
|
||||
my @quiktemplate = ();
|
||||
my @palotemplate = ();
|
||||
my @vmelilotemplate = ();
|
||||
my $bootdevice = '';
|
||||
my $rootdevice = '';
|
||||
my $rootdisk = '';
|
||||
my $rootpartition = '';
|
||||
my $image_dest = "/";
|
||||
my $realimageloc = "/$image_dir/";
|
||||
my $have_conffile = "";
|
||||
my $CONF_LOC = '/etc/kernel-img.conf';
|
||||
my $relative_links = '';
|
||||
my $silent_loader = '';
|
||||
my $warn_reboot = ''; # Warn that we are installing a version of
|
||||
# the kernel we are running
|
||||
|
||||
my $modules_base = '/lib/modules';
|
||||
|
||||
die "Pre inst Internal error. Aborting." unless $version;
|
||||
|
||||
exit 0 if $ARGV[0] =~ /abort-upgrade/;
|
||||
exit 1 unless $ARGV[0] =~ /(install|upgrade)/;
|
||||
|
||||
$arch = `uname -i`;
|
||||
if ($arch =~ m/86/) {
|
||||
system ("grep -q ' pae ' /proc/cpuinfo");
|
||||
if ($?) {
|
||||
print STDERR "This kernel does not support a non-PAE CPU.\n";
|
||||
exit 1;
|
||||
}
|
||||
}
|
||||
|
||||
# remove multiple leading slashes; make sure there is at least one.
|
||||
$realimageloc =~ s|^/*|/|o;
|
||||
$realimageloc =~ s|/+|/|o;
|
||||
|
||||
if (-r "$CONF_LOC" && -f "$CONF_LOC" ) {
|
||||
if (open(CONF, "$CONF_LOC")) {
|
||||
while (<CONF>) {
|
||||
chomp;
|
||||
s/\#.*$//g;
|
||||
next if /^\s*$/;
|
||||
|
||||
$do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig;
|
||||
$no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig;
|
||||
$reverse_symlink = "" if /^\s*reverse_symlinks\s*=\s*(no|false|0)\s*$/ig;
|
||||
$link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig;
|
||||
$link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig;
|
||||
$move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig;
|
||||
$do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig;
|
||||
$do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig;
|
||||
$do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig;
|
||||
$relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig;
|
||||
$use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig;
|
||||
$silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig;
|
||||
$warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig;
|
||||
$minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig;
|
||||
$ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig;
|
||||
$relink_src_link = '' if /^\s*relink_src_link\s*=\s*(no|false|0)\s*$/ig;
|
||||
$relink_build_link = '' if /^\s*relink_build_link\s*=\s*(no|false|0)\s*$/ig;
|
||||
$force_build_link = '' if /^\s*force_build_link\s*=\s*(no|false|0)\s*$/ig;
|
||||
|
||||
$do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$relink_src_link = 'Yes' if /^\s*relink_src_link\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$relink_build_link = 'Yes' if /^\s*relink_build_link\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$force_build_link = 'Yes' if /^\s*force_build_link\s*=\s*(yes|true|1)\s*$/ig;
|
||||
|
||||
$image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig;
|
||||
$postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig;
|
||||
$postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig;
|
||||
$preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig;
|
||||
$prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig;
|
||||
$ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig;
|
||||
}
|
||||
close CONF;
|
||||
$have_conffile = "Yes";
|
||||
$have_conffile = "Yes"; # stop perl complaining
|
||||
}
|
||||
}
|
||||
|
||||
$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch;
|
||||
|
||||
# About to upgrade this package from version $2 TO THIS VERSION.
|
||||
# "prerm upgrade" has already been called for the old version of
|
||||
# this package.
|
||||
|
||||
sub find_initrd_tool {
|
||||
my $hostversion = shift;
|
||||
my $version = shift;
|
||||
my @ramdisks =
|
||||
grep {
|
||||
my $args =
|
||||
"$_ " .
|
||||
"--supported-host-version=$hostversion " .
|
||||
"--supported-target-version=$version " .
|
||||
"1>/dev/null 2>&1"
|
||||
;
|
||||
system($args) == 0;
|
||||
}
|
||||
split (/[:,\s]+/, $ramdisk);
|
||||
}
|
||||
|
||||
sub check {
|
||||
my $version = shift;
|
||||
my $lib_modules="$modules_base/$version";
|
||||
my $message = '';
|
||||
|
||||
if (-d "$lib_modules") {
|
||||
opendir(DIR, $lib_modules) || die "can’t opendir $lib_modules: $!";
|
||||
my @children = readdir(DIR);
|
||||
if ($#children > 1) {
|
||||
my @dirs = grep { -d "$lib_modules/$_" } @children;
|
||||
if ($#dirs > 1) { # we have subdirs
|
||||
my $dir_message='';
|
||||
for my $dir (@dirs) {
|
||||
if ($dir =~/kernel$/) {
|
||||
$dir_message="An older install was detected.\n";
|
||||
}
|
||||
else {
|
||||
$dir_message="Module sub-directories were detected.\n"
|
||||
unless $dir_message;
|
||||
}
|
||||
}
|
||||
$message += $dir_message if $dir_message;
|
||||
}
|
||||
|
||||
my @links = grep { -l "$lib_modules/$_" } @children;
|
||||
if ($#links > -1) {
|
||||
my $links_message = '';
|
||||
for my $link (@links) {
|
||||
next if ($link =~ /^build$/);
|
||||
next if ($link =~ /^source$/);
|
||||
$links_message = "Symbolic links were detected in $modules_base/$version.\n";
|
||||
}
|
||||
$message += $links_message if $links_message;
|
||||
}
|
||||
my @files = grep { -f "$lib_modules/$_" } @children;
|
||||
$message += "Additional files also exist in $modules_base/$version.\n"
|
||||
if ($#files > -1);
|
||||
}
|
||||
}
|
||||
else { $message .= "$lib_modules does not exist. ";}
|
||||
return $message;
|
||||
}
|
||||
|
||||
if (-d "$modules_base/$version") {
|
||||
my $errors=check($version);
|
||||
warn "Info:\n$errors\n" if $errors;
|
||||
}
|
||||
|
||||
# set the env var stem
|
||||
$ENV{'STEM'} = "linux";
|
||||
|
||||
sub exec_script {
|
||||
my $type = shift;
|
||||
my $script = shift;
|
||||
print STDERR "Running $type hook script $script.\n";
|
||||
system ("$script $version $realimageloc$kimage-$version") &&
|
||||
print STDERR "User $type hook script [$script] ";
|
||||
if ($?) {
|
||||
if ($? == -1) {
|
||||
print STDERR "failed to execute: $!\n";
|
||||
}
|
||||
elsif ($? & 127) {
|
||||
printf STDERR "died with signal %d, %s coredump\n",
|
||||
($? & 127), ($? & 128) ? 'with' : 'without';
|
||||
}
|
||||
else {
|
||||
printf STDERR "exited with value %d\n", $? >> 8;
|
||||
}
|
||||
exit $? >> 8;
|
||||
}
|
||||
}
|
||||
sub run_hook {
|
||||
my $type = shift;
|
||||
my $script = shift;
|
||||
if ($script =~ m,^/,) {
|
||||
# Full path provided for the hook script
|
||||
if (-x "$script") {
|
||||
&exec_script($type,$script);
|
||||
}
|
||||
else {
|
||||
die "The provided $type hook script [$script] could not be run.\n";
|
||||
}
|
||||
}
|
||||
else {
|
||||
# Look for it in a safe path
|
||||
for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') {
|
||||
if (-x "$path/$script") {
|
||||
&exec_script($type, "$path/$script");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
# No luck
|
||||
print STDERR "Could not find $type hook script [$script].\n";
|
||||
die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
my $options;
|
||||
for (@ARGV) {
|
||||
s,','\\'',g;
|
||||
$options .= " '$_'";
|
||||
}
|
||||
$ENV{'DEB_MAINT_PARAMS'}="$options";
|
||||
|
||||
## Run user hook script here, if any
|
||||
if (-x "$preinst_hook") {
|
||||
&run_hook("preinst", $preinst_hook);
|
||||
}
|
||||
if (-d "/etc/kernel/preinst.d") {
|
||||
print STDERR "Examining /etc/kernel/preinst.d/\n";
|
||||
system ("run-parts --verbose --exit-on-error --arg=$version" .
|
||||
" --arg=$realimageloc$kimage-$version" .
|
||||
" /etc/kernel/preinst.d") &&
|
||||
die "Failed to process /etc/kernel/preinst.d";
|
||||
}
|
||||
if (-d "/etc/kernel/preinst.d/$version") {
|
||||
print STDERR "Examining /etc/kernel/preinst.d/$version.\n";
|
||||
system ("run-parts --verbose --exit-on-error --arg=$version" .
|
||||
" --arg=$realimageloc$kimage-$version" .
|
||||
" /etc/kernel/preinst.d/$version") &&
|
||||
die "Failed to process /etc/kernel/preinst.d/$version";
|
||||
}
|
||||
print STDERR "Done.\n";
|
||||
|
||||
exit 0;
|
||||
|
||||
__END__
|
||||
|
||||
|
||||
312
debian/control-scripts/prerm
vendored
312
debian/control-scripts/prerm
vendored
@@ -1,312 +0,0 @@
|
||||
#! /usr/bin/perl
|
||||
# -*- Mode: Perl -*-
|
||||
# image.prerm ---
|
||||
# Author : root ( root@melkor.pilgrim.umass.edu )
|
||||
# Created On : Fri May 17 03:28:59 1996
|
||||
# Created On Node : melkor.pilgrim.umass.edu
|
||||
# Last Modified By : Manoj Srivastava
|
||||
# Last Modified On : Sat Aug 5 13:14:17 2006
|
||||
# Last Machine Used: glaurung.internal.golden-gryphon.com
|
||||
# Update Count : 85
|
||||
# Status : Unknown, Use with caution!
|
||||
# HISTORY :
|
||||
# Description :
|
||||
#
|
||||
#
|
||||
# $Id: image.prerm,v 1.22 2003/10/07 16:24:20 srivasta Exp $
|
||||
#
|
||||
#
|
||||
#use strict;
|
||||
|
||||
$|=1;
|
||||
# Predefined values:
|
||||
my $version = "=V";
|
||||
my $link_in_boot = ""; # Should be empty, mostly
|
||||
my $no_symlink = ""; # Should be empty, mostly
|
||||
my $reverse_symlink = ""; # Should be empty, mostly
|
||||
my $do_symlinks = "Yes"; # target machine defined
|
||||
my $do_boot_enable = "Yes"; # target machine defined
|
||||
my $do_bootfloppy = "Yes"; # target machine defined
|
||||
my $do_bootloader = "Yes"; # target machine defined
|
||||
my $move_image = ''; # target machine defined
|
||||
my $kimage = "=K"; # Should be empty, mostly
|
||||
my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, or nettrom
|
||||
my $image_dir = "/boot"; # where the image is located
|
||||
my $clobber_modules = ''; # target machine defined
|
||||
my $initrd = "YES"; # initrd kernel
|
||||
my $use_hard_links = ''; # hardlinks do not wirk across fs boundaries
|
||||
my $postinst_hook = ''; #Normally we do not
|
||||
my $postrm_hook = ''; #Normally we do not
|
||||
my $preinst_hook = ''; #Normally we do not
|
||||
my $prerm_hook = ''; #Normally we do not
|
||||
my $minimal_swap = ''; # Do not swap symlinks
|
||||
my $ignore_depmod_err = ''; # normally we do not
|
||||
my $relink_build_link = 'YES'; # There is no harm in checking the link
|
||||
my $force_build_link = ''; # There is no harm in checking the link
|
||||
my $kernel_arch = "=B";
|
||||
my $ramdisk = "/usr/sbin/update-initramfs";
|
||||
my $package_name = "linux-image-$version";
|
||||
|
||||
my $Loader = "NoLOADER"; #
|
||||
$Loader = "LILO" if $loader =~ /^lilo/io;
|
||||
$Loader = "SILO" if $loader =~ /^silo/io;
|
||||
$Loader = "QUIK" if $loader =~ /^quik/io;
|
||||
$Loader = "yaboot" if $loader =~ /^yaboot/io;
|
||||
$Loader = "PALO" if $loader =~ /^palo/io;
|
||||
$Loader = "NETTROM" if $loader =~ /^nettrom/io;
|
||||
$Loader = "VMELILO" if $loader =~ /^vmelilo/io;
|
||||
$Loader = "ZIPL" if $loader =~ /^zipl/io;
|
||||
$Loader = "ELILO" if $loader =~ /^elilo/io;
|
||||
|
||||
|
||||
# This should not point to /tmp, because of security risks.
|
||||
my $temp_file_name = "/var/log/$loader" . "_log.$$";
|
||||
|
||||
#known variables
|
||||
my $image_dest = "/";
|
||||
my $realimageloc = "/$image_dir/";
|
||||
my $have_conffile = "";
|
||||
my $CONF_LOC = '/etc/kernel-img.conf';
|
||||
my $relative_links = '';
|
||||
my $silent_loader = '';
|
||||
my $warn_reboot = 'Yes'; # Warn that we are installing a version of
|
||||
# the kernel we are running
|
||||
|
||||
# remove multiple leading slashes; make sure there is at least one.
|
||||
$realimageloc =~ s|^/*|/|o;
|
||||
$realimageloc =~ s|/+|/|o;
|
||||
|
||||
my $DEBUG = 0;
|
||||
|
||||
# Variables used
|
||||
my $image='';
|
||||
my $ret=0;
|
||||
my $seen='';
|
||||
my $answer='';
|
||||
my $running = '';
|
||||
my $WouldInvalidate = 0;
|
||||
|
||||
if ($ARGV[0] && ($ARGV[0] =~ /remove/ || $ARGV[0] =~ /upgrade/)) {
|
||||
if (-l "/usr/doc/linux-image-$version") {
|
||||
unlink "/usr/doc/linux-image-$version";
|
||||
}
|
||||
}
|
||||
|
||||
# Ignore all invocations uxcept when called on to remove
|
||||
exit 0 unless ($ARGV[0] && $ARGV[0] =~ /remove/) ;
|
||||
|
||||
# Paranoid check to make sure that the correct value is put in there
|
||||
if (! $kimage) { $kimage = "vmlinuz";} # Hmm. empty
|
||||
elsif ($kimage =~ m/^b?uImage$/o) { $kimage = "vmlinuz";} # these produce vmlinuz
|
||||
elsif ($kimage =~ m/^b?zImage$/o) { $kimage = "vmlinuz";} # these produce vmlinuz
|
||||
elsif ($kimage =~ m/^[iI]mage$/o) { my $nop = $kimage; }
|
||||
elsif ($kimage =~ m/^vmlinux$/o) { my $nop = $kimage; }
|
||||
else { $kimage = "vmlinuz";} # Default
|
||||
|
||||
if (-r "$CONF_LOC" && -f "$CONF_LOC" ) {
|
||||
if (open(CONF, "$CONF_LOC")) {
|
||||
while (<CONF>) {
|
||||
chomp;
|
||||
s/\#.*$//g;
|
||||
next if /^\s*$/;
|
||||
|
||||
$do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig;
|
||||
$no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig;
|
||||
$reverse_symlink = "" if /^\s*reverse_symlinks\s*=\s*(no|false|0)\s*$/ig;
|
||||
$link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig;
|
||||
$link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig;
|
||||
$move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig;
|
||||
$clobber_modules = '' if /^\s*clobber_modules\s*=\s*(no|false|0)\s*$/ig;
|
||||
$do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig;
|
||||
$do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig;
|
||||
$relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig;
|
||||
$do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig;
|
||||
$do_initrd = '' if /^\s*do_initrd\s*=\s*(no|false|0)\s*$/ig;
|
||||
$use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig;
|
||||
$silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig;
|
||||
$warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig;
|
||||
$minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig;
|
||||
$ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig;
|
||||
$relink_build_link = '' if /^\s*relink_build_link\s*=\s*(no|false|0)\s*$/ig;
|
||||
$force_build_link = '' if /^\s*force_build_link\s*=\s*(no|false|0)\s*$/ig;
|
||||
|
||||
|
||||
$do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$clobber_modules = "Yes" if /^\s*clobber_modules\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$do_initrd = "Yes" if /^\s*do_initrd\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$relink_build_link = 'Yes' if /^\s*relink_build_link\s*=\s*(yes|true|1)\s*$/ig;
|
||||
$force_build_link = 'Yes' if /^\s*force_build_link\s*=\s*(yes|true|1)\s*$/ig;
|
||||
|
||||
$image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig;
|
||||
$postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig;
|
||||
$postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig;
|
||||
$preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig;
|
||||
$prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig;
|
||||
$ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig;
|
||||
}
|
||||
close CONF;
|
||||
$have_conffile = "Yes";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch;
|
||||
|
||||
#check to see if we are trying to remove a running kernel
|
||||
# if so we abort right now.
|
||||
chop($running=`uname -r`);
|
||||
if ($running eq $version) {
|
||||
print STDERR "WARN: Proceeding with removing running kernel image.\n";
|
||||
}
|
||||
|
||||
#Now, they have an alternate kernel which they are currently running
|
||||
|
||||
# This is just us being nice to lilo users.
|
||||
|
||||
chdir("/") or die "could not chdir to /:$!\n";
|
||||
|
||||
if (-f "/etc/$loader.conf") { #I know, could be a link, but ..
|
||||
open (LILO, "/etc/$loader.conf") || &success(); # this is not critical
|
||||
while (<LILO>) {
|
||||
chop;
|
||||
s/\#.*//; # nix the comments
|
||||
next unless /^\s*image\s*=\s(\S+)/o;
|
||||
$image = $1;
|
||||
if ($image && -e $image) {
|
||||
while (defined($image) && -l $image) {
|
||||
$image = readlink ($image);
|
||||
}
|
||||
if (defined($image) && -e $image) {
|
||||
$WouldInvalidate |= $image =~ /$kimage-$version/;
|
||||
}
|
||||
else {
|
||||
&success(); # invalid $loader.conf file
|
||||
}
|
||||
}
|
||||
else {
|
||||
&success(); # invalid $loader.conf file
|
||||
}
|
||||
}
|
||||
close (LILO);
|
||||
if ($WouldInvalidate) {
|
||||
print STFERR "WARN: Proceeding with removing running kernel image.\n";
|
||||
&success();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# set the env var stem
|
||||
$ENV{'STEM'} = "linux";
|
||||
|
||||
sub exec_script {
|
||||
my $type = shift;
|
||||
my $script = shift;
|
||||
print STDERR "Running $type hook script $script.\n";
|
||||
system ("$script $version $realimageloc$kimage-$version") &&
|
||||
print STDERR "User $type hook script [$script] ";
|
||||
if ($?) {
|
||||
if ($? == -1) {
|
||||
print STDERR "failed to execute: $!\n";
|
||||
}
|
||||
elsif ($? & 127) {
|
||||
printf STDERR "died with signal %d, %s coredump\n",
|
||||
($? & 127), ($? & 128) ? 'with' : 'without';
|
||||
}
|
||||
else {
|
||||
printf STDERR "exited with value %d\n", $? >> 8;
|
||||
}
|
||||
exit $? >> 8;
|
||||
}
|
||||
}
|
||||
sub run_hook {
|
||||
my $type = shift;
|
||||
my $script = shift;
|
||||
if ($script =~ m,^/,) {
|
||||
# Full path provided for the hook script
|
||||
if (-x "$script") {
|
||||
&exec_script($type,$script);
|
||||
}
|
||||
else {
|
||||
die "The provided $type hook script [$script] could not be run.\n";
|
||||
}
|
||||
}
|
||||
else {
|
||||
# Look for it in a safe path
|
||||
for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') {
|
||||
if (-x "$path/$script") {
|
||||
&exec_script($type, "$path/$script");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
# No luck
|
||||
print STDERR "Could not find $type hook script [$script].\n";
|
||||
die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
my $options;
|
||||
for (@ARGV) {
|
||||
s,','\\'',g;
|
||||
$options .= " '$_'";
|
||||
}
|
||||
$ENV{'DEB_MAINT_PARAMS'}="$options";
|
||||
|
||||
## Run user hook script here, if any
|
||||
if (-x "$prerm_hook") {
|
||||
&run_hook("prerm", $prerm_hook);
|
||||
}
|
||||
if (-d "/etc/kernel/prerm.d") {
|
||||
print STDERR "Examining /etc/kernel/prerm.d.\n";
|
||||
system ("run-parts --verbose --exit-on-error --arg=$version " .
|
||||
"--arg=$realimageloc$kimage-$version /etc/kernel/prerm.d") &&
|
||||
die "Failed to process /etc/kernel/prerm.d";
|
||||
}
|
||||
if (-d "/etc/kernel/prerm.d/$version") {
|
||||
print STDERR "Examining /etc/kernel/prerm.d/$version.\n";
|
||||
system ("run-parts --verbose --exit-on-error --arg=$version" .
|
||||
" --arg=$realimageloc$kimage-$version " .
|
||||
"/etc/kernel/prerm.d/$version") &&
|
||||
die "Failed to process /etc/kernel/prerm.d/$version";
|
||||
}
|
||||
|
||||
sub success () {
|
||||
# NOTE: need to keep this list in sync with rules.d/2-binary-arch.mk
|
||||
my %files_to_keep = (
|
||||
'modules.builtin' => 1,
|
||||
'modules.order' => 1,
|
||||
);
|
||||
my $short;
|
||||
for my $file (</lib/modules/$version/modules.*>) {
|
||||
$short = $file; $short =~ s,.*/,,;
|
||||
if (!defined $files_to_keep{$short}) {
|
||||
unlink "$file";
|
||||
}
|
||||
}
|
||||
exit 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
&success();
|
||||
exit 0;
|
||||
__END__
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1
debian/debian.env
vendored
1
debian/debian.env
vendored
@@ -1 +0,0 @@
|
||||
DEBIAN=debian.flo
|
||||
51
debian/docs/README.inclusion-list
vendored
51
debian/docs/README.inclusion-list
vendored
@@ -1,51 +0,0 @@
|
||||
This README describes the reason for, and the use of, module
|
||||
inclusion lists.
|
||||
|
||||
The original Hardy release had the notion of sub-flavours,
|
||||
e.g., a flavour that was constructed as a subset of an existing flavour.
|
||||
For example, the virtual flavour was extracted from the server flavour using
|
||||
a subset of the server flavour modules. However, there were some difficult
|
||||
mainteneance issues with regard to packaging, make rules, and scripts. This
|
||||
re-implementation of the sub-flavours philosophy is hopefully simpler,
|
||||
and retrofitable to all releases.
|
||||
|
||||
A module inclusion list looks at the problem of of constructing a package
|
||||
from the perspective of what modules do we _want_ in the package, as opposed
|
||||
to what modules we _don't_ want. As the kernel matures, more and more devices are added
|
||||
which makes the problem of configuration maintenance a real pain in the ass.
|
||||
If we took the approach of disabling all of the config options that we don't want,
|
||||
then the differences between flavours will quickly become quite large, making
|
||||
it difficult to quickly compare the individual flavour configs. Each time a
|
||||
new config option is added then we also have to make a decision about disabling in
|
||||
order to continue to keep the minimal number of modules.
|
||||
|
||||
A module inclusion list is applied on a per-flavour basis. For example,
|
||||
debian.<BRANCH>/control.d/${flavour}.inclusion-list. For example, the
|
||||
config for virtual is very close to server and generic, but the inclusion list
|
||||
causes the virtual package to be constructed with _only_ the modules described
|
||||
in the inclusion list.
|
||||
|
||||
The inclusion list format is a simple bash regular expression list of files. For example,
|
||||
|
||||
arch/*/{crypto,kernel,oprofile}
|
||||
drivers/acpi/*
|
||||
drivers/ata/ahci.ko
|
||||
|
||||
These 3 regular expression forms are suitable for expansion by bash and as inputs to 'find'.
|
||||
See debian/scripts/module-inclusion for details.
|
||||
|
||||
There are 2 log files created as a side effect of the application of the module
|
||||
inclusion list; $(flavour).inclusion-list.log and $(flavour).depmod.log.
|
||||
|
||||
$(flavour).inclusion-list.log : This log is created while the inclusion list
|
||||
modules are being copied. If any are missing, then those warnings go in this log.
|
||||
While its not considered a fatal error, you should endevour to correct your inclusion
|
||||
list such that there are no missing modules.
|
||||
|
||||
$(flavour).depmod.log : The log is created as a result of running depmod on the
|
||||
resulting set of modules. If there are missing symbols then you'll find that information
|
||||
here. Again, you should modify your inclusion list such that there are no missing
|
||||
symbols.
|
||||
|
||||
Tim Gardner <tim.gardner@canonical.com>
|
||||
June 2, 2010
|
||||
252
debian/rules
vendored
252
debian/rules
vendored
@@ -1,252 +0,0 @@
|
||||
#!/usr/bin/make -f
|
||||
#
|
||||
# $(DEBIAN)/rules for Ubuntu linux
|
||||
#
|
||||
# Use this however you want, just give credit where credit is due.
|
||||
#
|
||||
# Copyright (c) 2007 Ben Collins <bcollins@ubuntu.com>
|
||||
#
|
||||
|
||||
DEBIAN=$(shell awk -F= '($$1 == "DEBIAN") { print $$2 }' <debian/debian.env)
|
||||
|
||||
# dpkg-buildpackage passes options that are incomptatible
|
||||
# with the kernel build.
|
||||
unexport CFLAGS
|
||||
unexport LDFLAGS
|
||||
|
||||
export LC_ALL=C
|
||||
export SHELL=/bin/bash -e
|
||||
|
||||
# Where do we find the common configuration.
|
||||
export DROOT=debian
|
||||
|
||||
# Common variables for all architectures
|
||||
include $(DROOT)/rules.d/0-common-vars.mk
|
||||
|
||||
# Pull in some arch specific stuff
|
||||
-include $(DEBIAN)/rules.d/$(arch).mk
|
||||
|
||||
# Maintainer targets
|
||||
include $(DROOT)/rules.d/1-maintainer.mk
|
||||
|
||||
# Don't build tools in a cross compile environment.
|
||||
ifneq ($(DEB_HOST_ARCH),$(DEB_BUILD_ARCH))
|
||||
do_tools = false
|
||||
endif
|
||||
|
||||
# Stages -- support both DEB_STAGE=stage1 and DEB_BUILD_PROFILE=bootstrap
|
||||
ifeq ($(DEB_STAGE),stage1)
|
||||
DEB_BUILD_PROFILE=bootstrap
|
||||
endif
|
||||
ifeq ($(DEB_BUILD_PROFILE),bootstrap)
|
||||
do_tools=false
|
||||
do_doc_package=false
|
||||
do_source_package=false
|
||||
do_flavour_image_package=false
|
||||
do_flavour_header_package=false
|
||||
endif
|
||||
|
||||
# autopkgtest -- rebuild support
|
||||
# only build the first flavour on the assumption it is representative
|
||||
ifeq ($(DEB_BUILD_PROFILE),autopkgtest)
|
||||
flavours := $(firstword $(flavours))
|
||||
endif
|
||||
|
||||
# Debian Build System targets
|
||||
binary: binary-indep binary-arch
|
||||
|
||||
build: build-arch build-indep
|
||||
|
||||
clean: debian/control
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
dh_clean
|
||||
|
||||
# d-i stuff
|
||||
rm -rf $(DEBIAN)/d-i-$(arch)
|
||||
|
||||
# normal build junk
|
||||
rm -rf $(DEBIAN)/abi/$(release)-$(revision)
|
||||
rm -rf $(builddir)
|
||||
rm -f $(stampdir)/stamp-*
|
||||
rm -rf $(DEBIAN)/linux-*
|
||||
|
||||
# This gets rid of the d-i packages in control
|
||||
cp -f $(DEBIAN)/control.stub $(DEBIAN)/control
|
||||
cp $(DEBIAN)/changelog debian/changelog
|
||||
|
||||
# Install the copyright information.
|
||||
cp $(DEBIAN)/copyright debian/copyright
|
||||
|
||||
distclean: clean
|
||||
rm -rf $(DEBIAN)/control $(DEBIAN)/control.stub \
|
||||
$(DEBIAN)/d-i/kernel-versions debian/changelog \
|
||||
debian/control debian/control.stub debian/copyright
|
||||
|
||||
# Builds the image, arch headers and debug packages
|
||||
include $(DROOT)/rules.d/2-binary-arch.mk
|
||||
|
||||
# Rules for building the udebs ($(DEBIAN)-installer)
|
||||
include $(DROOT)/rules.d/5-udebs.mk
|
||||
|
||||
# Builds the source, doc and linux-headers indep packages
|
||||
include $(DROOT)/rules.d/3-binary-indep.mk
|
||||
|
||||
# Various checks to be performed on builds
|
||||
include $(DROOT)/rules.d/4-checks.mk
|
||||
|
||||
# Misc stuff
|
||||
.PHONY: $(DEBIAN)/control.stub
|
||||
$(DEBIAN)/control.stub: $(DEBIAN)/d-i/kernel-versions.in \
|
||||
$(DROOT)/scripts/control-create \
|
||||
$(DEBIAN)/control.stub.in \
|
||||
$(DEBIAN)/changelog \
|
||||
$(wildcard $(DEBIAN)/control.d/* $(DEBIAN)/sub-flavours/*.vars)
|
||||
for i in $(DEBIAN)/d-i/kernel-versions.in $(DEBIAN)/control.stub.in; do \
|
||||
new=`echo $$i | sed 's/\.in$$//'`; \
|
||||
cat $$i | sed -e 's/PKGVER/$(release)/g' \
|
||||
-e 's/ABINUM/$(abinum)/g' \
|
||||
-e 's/SRCPKGNAME/$(src_pkg_name)/g' \
|
||||
-e 's/=HUMAN=/$(human_arch)/g' \
|
||||
> $$new; \
|
||||
done
|
||||
flavours="$(wildcard $(DEBIAN)/control.d/vars.* $(DEBIAN)/sub-flavours/*.vars)";\
|
||||
for i in $$flavours; do \
|
||||
$(SHELL) $(DROOT)/scripts/control-create $$i | \
|
||||
sed -e 's/PKGVER/$(release)/g' \
|
||||
-e 's/ABINUM/$(abinum)/g' \
|
||||
-e 's/SRCPKGNAME/$(src_pkg_name)/g' \
|
||||
-e 's/=HUMAN=/$(human_arch)/g' \
|
||||
>> $(DEBIAN)/control.stub; \
|
||||
done
|
||||
cp $(DEBIAN)/control.stub $(DEBIAN)/control
|
||||
|
||||
.PHONY: debian/control
|
||||
debian/control: $(DEBIAN)/control.stub
|
||||
rm -rf $(builddir)/modules $(builddir)/firmware \
|
||||
$(builddir)/kernel-versions $(builddir)/package-list \
|
||||
$(builddir)/$(DEBIAN)
|
||||
mkdir -p $(builddir)/modules/$(arch)/
|
||||
cp $(DEBIAN)/d-i/modules/* $(builddir)/modules/$(arch)/
|
||||
mkdir -p $(builddir)/firmware/$(arch)/
|
||||
cp $(DEBIAN)/d-i/firmware/* $(builddir)/firmware/$(arch)/
|
||||
cp $(DEBIAN)/d-i/package-list $(DEBIAN)/d-i/kernel-versions $(builddir)/
|
||||
touch $(builddir)/modules/$(arch)/kernel-image
|
||||
# kernel-wedge needs to poke around in $(DEBIAN)/
|
||||
ln -nsf $(CURDIR)/debian $(builddir)/debian
|
||||
|
||||
# Some files may need to differ between architectures
|
||||
if [ -d $(DEBIAN)/d-i/modules-$(arch) ]; then \
|
||||
cp $(DEBIAN)/d-i/modules-$(arch)/* \
|
||||
$(builddir)/modules/$(arch)/; \
|
||||
fi
|
||||
if [ -d $(DEBIAN)/d-i/firmware-$(arch) ]; then \
|
||||
cp $(DEBIAN)/d-i/firmware-$(arch)/* \
|
||||
$(builddir)/firmware/$(arch)/; \
|
||||
fi
|
||||
|
||||
# Remove unwanted stuff for this architecture
|
||||
if [ -r "$(DEBIAN)/d-i/exclude-modules.$(arch)" ]; then \
|
||||
(cat $(DEBIAN)/d-i/exclude-modules.$(arch); \
|
||||
ls $(builddir)/modules/$(arch)/) | sort | uniq -d | \
|
||||
(cd $(builddir)/modules/$(arch)/; xargs rm -f); \
|
||||
fi
|
||||
if [ -r "$(DEBIAN)/d-i/exclude-firmware.$(arch)" ]; then \
|
||||
(cat $(DEBIAN)/d-i/exclude-firmware.$(arch); \
|
||||
ls $(builddir)/firmware/$(arch)/) | sort | uniq -d | \
|
||||
(cd $(builddir)/firmware/$(arch)/; xargs rm -f); \
|
||||
fi
|
||||
|
||||
# Per flavour module lists
|
||||
flavour_modules=`ls $(DEBIAN)/d-i/modules.$(arch)-* 2>/dev/null` \
|
||||
|| true; \
|
||||
if [ "$$flavour_modules" != "" ]; then \
|
||||
for flav in $$flavour_modules; do \
|
||||
name=`echo $$flav | sed 's/.*\/modules.$(arch)-//'`; \
|
||||
mkdir $(builddir)/modules/$(arch)-$$name; \
|
||||
(cd $(builddir)/modules/; tar cf - `cat ../$$flav`) | \
|
||||
(cd $(builddir)/modules/$(arch)-$$name/; tar xf -); \
|
||||
touch $(builddir)/modules/$(arch)-$$name/kernel-image; \
|
||||
done; \
|
||||
fi
|
||||
flavour_firmware=`ls $(DEBIAN)/d-i/firmware.$(arch)-* 2>/dev/null` \
|
||||
|| true; \
|
||||
if [ "$$flavour_firmware" != "" ]; then \
|
||||
for flav in $$flavour_firmware; do \
|
||||
name=`echo $$flav | sed 's/.*\/firmware.$(arch)-//'`; \
|
||||
mkdir $(builddir)/firmware/$(arch)-$$name; \
|
||||
(cd $(builddir)/firmware/; tar cf - `cat ../$$flav`) | \
|
||||
(cd $(builddir)/firmware/$(arch)-$$name/; tar xf -);\
|
||||
touch $(builddir)/firmware/$(arch)-$$name/kernel-image; \
|
||||
done; \
|
||||
fi
|
||||
|
||||
# Some files may need to differ between flavours
|
||||
flavour_module_dirs=`ls -d $(DEBIAN)/d-i/modules-$(arch)-* 2>/dev/null`\
|
||||
|| true; \
|
||||
if [ "$$flavour_module_dirs" ]; then \
|
||||
for flav in $$flavour_module_dirs; do \
|
||||
name=`echo $$flav | sed 's/.*\/modules-$(arch)-//'`; \
|
||||
[ -d $(builddir)/modules/$(arch)-$$name ] || \
|
||||
cp -a $(builddir)/modules/$(arch) \
|
||||
modules/$(arch)-$$name; \
|
||||
cp $$flav/* $(builddir)/modules/$(arch)-$$name/; \
|
||||
done; \
|
||||
fi
|
||||
flavour_firmware_dirs=`ls -d $(DEBIAN)/d-i/firmware-$(arch)-* 2>/dev/null`\
|
||||
|| true; \
|
||||
if [ "$$flavour_firmware_dirs" ]; then \
|
||||
for flav in $$flavour_firmware_dirs; do \
|
||||
name=`echo $$flav | sed 's/.*\/firmware-$(arch)-//'`; \
|
||||
[ -d $(builddir)/firmware/$(arch)-$$name ] || \
|
||||
cp -a $(builddir)/firmware/$(arch) \
|
||||
firmware/$(arch)-$$name; \
|
||||
cp $$flav/* $(builddir)/firmware/$(arch)-$$name/; \
|
||||
done; \
|
||||
fi
|
||||
|
||||
# Remove unwanted stuff for each flavour
|
||||
flavour_exclude=`ls $(DEBIAN)/d-i/exclude-modules.$(arch)-* 2>/dev/null`\
|
||||
|| true; \
|
||||
if [ "$$flavour_exclude" ]; then \
|
||||
for flav in $$flavour_exclude; do \
|
||||
name=`echo $$flav | sed 's/.*\/exclude-modules.$(arch)-//'`;\
|
||||
[ -d $(builddir)/modules/$(arch)-$$name ] || \
|
||||
cp -a $(builddir)/modules/$(arch) \
|
||||
$(builddir)/modules/$(arch)-$$name; \
|
||||
(cat $$flav; \
|
||||
ls $(builddir)/modules/$(arch)-$$name) | \
|
||||
sort | uniq -d | \
|
||||
(cd $(builddir)/modules/$(arch)-$$name/; \
|
||||
xargs rm -f); \
|
||||
done; \
|
||||
fi
|
||||
flavour_exclude=`ls $(DEBIAN)/d-i/exclude-firmware.$(arch)-* 2>/dev/null`\
|
||||
|| true; \
|
||||
if [ "$$flavour_exclude" ]; then \
|
||||
for flav in $$flavour_exclude; do \
|
||||
name=`echo $$flav | sed 's/.*\/exclude-firmware.$(arch)-//'`;\
|
||||
[ -d $(builddir)/firmware/$(arch)-$$name ] || \
|
||||
cp -a $(builddir)/firmware/$(arch) \
|
||||
$(builddir)/firmware/$(arch)-$$name; \
|
||||
(cat $$flav; \
|
||||
ls $(builddir)/firmware/$(arch)-$$name) | \
|
||||
sort | uniq -d | \
|
||||
(cd $(builddir)/firmware/$(arch)-$$name/; \
|
||||
xargs rm -f); \
|
||||
done; \
|
||||
fi
|
||||
|
||||
if [ ! -d $(builddir)/modules/$(build_arch) ]; then \
|
||||
mkdir -p $(builddir)/modules/$(build_arch); \
|
||||
cp $(builddir)/modules/$(arch)/* \
|
||||
$(builddir)/modules/$(build_arch); \
|
||||
fi
|
||||
if [ ! -d $(builddir)/firmware/$(build_arch) ]; then \
|
||||
mkdir -p $(builddir)/firmware/$(build_arch); \
|
||||
cp $(builddir)/firmware/$(arch)/* \
|
||||
$(builddir)/firmware/$(build_arch); \
|
||||
fi
|
||||
|
||||
cp $(DEBIAN)/control.stub debian/control.stub
|
||||
cd $(builddir) && kernel-wedge gen-control > $(CURDIR)/debian/control
|
||||
231
debian/rules.d/0-common-vars.mk
vendored
231
debian/rules.d/0-common-vars.mk
vendored
@@ -1,231 +0,0 @@
|
||||
#
|
||||
# The source package name will be the first token from $(DEBIAN)/changelog
|
||||
#
|
||||
src_pkg_name=$(shell sed -n '1s/^\(.*\) (.*).*$$/\1/p' $(DEBIAN)/changelog)
|
||||
|
||||
# Get some version info
|
||||
release := $(shell sed -n '1s/^$(src_pkg_name).*(\(.*\)-.*).*$$/\1/p' $(DEBIAN)/changelog)
|
||||
revisions := $(shell sed -n 's/^$(src_pkg_name)\ .*($(release)-\(.*\)).*$$/\1/p' $(DEBIAN)/changelog | tac)
|
||||
revision ?= $(word $(words $(revisions)),$(revisions))
|
||||
prev_revisions := $(filter-out $(revision),0.0 $(revisions))
|
||||
prev_revision := $(word $(words $(prev_revisions)),$(prev_revisions))
|
||||
|
||||
prev_fullver ?= $(shell dpkg-parsechangelog -l$(DEBIAN)/changelog -o1 -c1 | sed -ne 's/^Version: *//p')
|
||||
|
||||
family=ubuntu
|
||||
|
||||
# This is an internally used mechanism for the daily kernel builds. It
|
||||
# creates packages whose ABI is suffixed with a minimal representation of
|
||||
# the current git HEAD sha. If .git/HEAD is not present, then it uses the
|
||||
# uuidgen program,
|
||||
#
|
||||
# AUTOBUILD can also be used by anyone wanting to build a custom kernel
|
||||
# image, or rebuild the entire set of Ubuntu packages using custom patches
|
||||
# or configs.
|
||||
AUTOBUILD=
|
||||
|
||||
ifneq ($(AUTOBUILD),)
|
||||
skipabi = true
|
||||
skipmodule = true
|
||||
skipdbg = true
|
||||
gitver=$(shell if test -f .git/HEAD; then cat .git/HEAD; else uuidgen; fi)
|
||||
gitverpre=$(shell echo $(gitver) | cut -b -3)
|
||||
gitverpost=$(shell echo $(gitver) | cut -b 38-40)
|
||||
abi_suffix = -$(gitverpre)$(gitverpost)
|
||||
endif
|
||||
|
||||
ifneq ($(NOKERNLOG),)
|
||||
ubuntu_log_opts += --no-kern-log
|
||||
endif
|
||||
ifneq ($(PRINTSHAS),)
|
||||
ubuntu_log_opts += --print-shas
|
||||
endif
|
||||
|
||||
# Get the kernels own extra version to be added to the release signature.
|
||||
raw_kernelversion=$(shell make kernelversion)
|
||||
|
||||
#
|
||||
# full_build -- are we doing a full buildd style build
|
||||
#
|
||||
ifeq ($(wildcard /CurrentlyBuilding),)
|
||||
full_build?=false
|
||||
else
|
||||
full_build?=true
|
||||
endif
|
||||
|
||||
#
|
||||
# The debug packages are ginormous, so you probably want to skip
|
||||
# building them (as a developer).
|
||||
#
|
||||
ifeq ($(full_build),false)
|
||||
skipdbg=true
|
||||
endif
|
||||
|
||||
abinum := $(shell echo $(revision) | sed -e 's/\..*//')$(abi_suffix)
|
||||
prev_abinum := $(shell echo $(prev_revision) | sed -e 's/\..*//')$(abi_suffix)
|
||||
abi_release := $(release)-$(abinum)
|
||||
|
||||
uploadnum := $(shell echo $(revision) | sed -e 's/.*\.//')
|
||||
ifneq ($(full_build),false)
|
||||
uploadnum := $(uploadnum)-Ubuntu
|
||||
endif
|
||||
|
||||
# XXX: linux-libc-dev got bumped to -803.N inadvertantly by a ti-omap4 upload
|
||||
# shift our version higher for this package only. Ensure this only
|
||||
# occurs for the v2.6.35 kernel so that we do not propogate this into
|
||||
# any other series.
|
||||
raw_uploadnum := $(shell echo $(revision) | sed -e 's/.*\.//')
|
||||
libc_dev_version :=
|
||||
ifeq ($(DEBIAN),debian.master)
|
||||
ifeq ($(release),2.6.35)
|
||||
libc_dev_version := -v$(release)-$(shell expr "$(abinum)" + 1000).$(raw_uploadnum)
|
||||
endif
|
||||
endif
|
||||
|
||||
DEB_HOST_MULTIARCH = $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
|
||||
DEB_HOST_GNU_TYPE = $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
|
||||
DEB_BUILD_GNU_TYPE = $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
|
||||
DEB_HOST_ARCH = $(shell dpkg-architecture -qDEB_HOST_ARCH)
|
||||
DEB_BUILD_ARCH = $(shell dpkg-architecture -qDEB_BUILD_ARCH)
|
||||
|
||||
#
|
||||
# Detect invocations of the form 'fakeroot debian/rules binary arch=armhf'
|
||||
# within an x86'en schroot. This only gets you part of the way since the
|
||||
# packaging phase fails, but you can at least compile the kernel quickly.
|
||||
#
|
||||
arch := $(DEB_HOST_ARCH)
|
||||
ifneq ($(arch),$(DEB_HOST_ARCH))
|
||||
CROSS_COMPILE ?= $(shell dpkg-architecture -a$(arch) -qDEB_HOST_GNU_TYPE -f 2>/dev/null)-
|
||||
endif
|
||||
|
||||
#
|
||||
# Detect invocations of the form 'dpkg-buildpackage -B -aarmhf' within
|
||||
# an x86'en schroot. This is the only way to build all of the packages
|
||||
# (except for tools).
|
||||
#
|
||||
ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
|
||||
CROSS_COMPILE ?= $(DEB_HOST_GNU_TYPE)-
|
||||
endif
|
||||
|
||||
abidir := $(CURDIR)/$(DEBIAN)/abi/$(release)-$(revision)/$(arch)
|
||||
prev_abidir := $(CURDIR)/$(DEBIAN)/abi/$(release)-$(prev_revision)/$(arch)
|
||||
commonconfdir := $(CURDIR)/$(DEBIAN)/config
|
||||
archconfdir := $(CURDIR)/$(DEBIAN)/config/$(arch)
|
||||
sharedconfdir := $(CURDIR)/debian.master/config
|
||||
builddir := $(CURDIR)/debian/build
|
||||
stampdir := $(CURDIR)/debian/stamps
|
||||
|
||||
#
|
||||
# The binary package name always starts with linux-image-$KVER-$ABI.$UPLOAD_NUM. There
|
||||
# are places that you'll find linux-image hard coded, but I guess thats OK since the
|
||||
# assumption that the binary package always starts with linux-image will never change.
|
||||
#
|
||||
bin_pkg_name=linux-image-$(abi_release)
|
||||
extra_pkg_name=linux-image-extra-$(abi_release)
|
||||
hdrs_pkg_name=linux-headers-$(abi_release)
|
||||
indep_hdrs_pkg_name=$(src_pkg_name)-headers-$(abi_release)
|
||||
|
||||
#
|
||||
# The generation of content in the doc package depends on both 'AUTOBUILD=' and
|
||||
# 'do_doc_package_content=true'. There are usually build errors during the development
|
||||
# cycle, so its OK to leave 'do_doc_package_content=false' until those build
|
||||
# failures get sorted out. Finally, the doc package doesn't really need to be built
|
||||
# for developer testing (its kind of slow), so only do it if on a buildd.
|
||||
do_doc_package=true
|
||||
do_doc_package_content=true
|
||||
ifeq ($(full_build),false)
|
||||
do_doc_package_content=false
|
||||
endif
|
||||
doc_pkg_name=$(src_pkg_name)-doc
|
||||
|
||||
#
|
||||
# Similarly with the linux-source package, you need not build it as a developer. Its
|
||||
# somewhat I/O intensive and utterly useless.
|
||||
#
|
||||
do_source_package=true
|
||||
do_source_package_content=true
|
||||
ifeq ($(full_build),false)
|
||||
do_source_package_content=false
|
||||
endif
|
||||
|
||||
# linux-libc-dev may not be needed, default to building it.
|
||||
do_libc_dev_package=true
|
||||
|
||||
# common headers normally is built as an indep package, but may be arch
|
||||
do_common_headers_indep=true
|
||||
|
||||
# add a 'full source' mode
|
||||
do_full_source=false
|
||||
|
||||
# build tools
|
||||
ifneq ($(wildcard $(CURDIR)/tools),)
|
||||
ifeq ($(do_tools),)
|
||||
ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
|
||||
do_tools=false
|
||||
endif
|
||||
endif
|
||||
do_tools?=true
|
||||
else
|
||||
do_tools?=false
|
||||
endif
|
||||
tools_pkg_name=$(src_pkg_name)-tools-$(abi_release)
|
||||
tools_common_pkg_name=$(src_pkg_name)-tools-common
|
||||
|
||||
# The general flavour specific image package.
|
||||
do_flavour_image_package=true
|
||||
|
||||
# The general flavour specific header package.
|
||||
do_flavour_header_package=true
|
||||
|
||||
# Support parallel=<n> in DEB_BUILD_OPTIONS (see #209008)
|
||||
#
|
||||
# These 2 environment variables set the -j value of the kernel build. For example,
|
||||
# CONCURRENCY_LEVEL=16 fakeroot $(DEBIAN)/rules binary-debs
|
||||
# or
|
||||
# DEB_BUILD_OPTIONS=parallel=16 fakeroot $(DEBIAN)/rules binary-debs
|
||||
#
|
||||
# The default is to use the number of CPUs.
|
||||
#
|
||||
COMMA=,
|
||||
DEB_BUILD_OPTIONS_PARA = $(subst parallel=,,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS))))
|
||||
ifneq (,$(DEB_BUILD_OPTIONS_PARA))
|
||||
CONCURRENCY_LEVEL := $(DEB_BUILD_OPTIONS_PARA)
|
||||
endif
|
||||
|
||||
ifeq ($(CONCURRENCY_LEVEL),)
|
||||
# Check the environment
|
||||
CONCURRENCY_LEVEL := $(shell echo $$CONCURRENCY_LEVEL)
|
||||
# No? Then build with the number of CPUs on the host.
|
||||
ifeq ($(CONCURRENCY_LEVEL),)
|
||||
CONCURRENCY_LEVEL := $(shell expr `getconf _NPROCESSORS_ONLN` \* 1)
|
||||
endif
|
||||
# Oh hell, give 'em one
|
||||
ifeq ($(CONCURRENCY_LEVEL),)
|
||||
CONCURRENCY_LEVEL := 1
|
||||
endif
|
||||
endif
|
||||
|
||||
conc_level = -j$(CONCURRENCY_LEVEL)
|
||||
|
||||
# target_flavour is filled in for each step
|
||||
kmake = make ARCH=$(build_arch) \
|
||||
CROSS_COMPILE=$(CROSS_COMPILE) \
|
||||
KERNELVERSION=$(abi_release)-$(target_flavour) \
|
||||
CONFIG_DEBUG_SECTION_MISMATCH=y \
|
||||
KBUILD_BUILD_VERSION="$(uploadnum)" \
|
||||
LOCALVERSION= localver-extra= \
|
||||
CC=$(CROSS_COMPILE)gcc-4.7
|
||||
ifneq ($(LOCAL_ENV_CC),)
|
||||
kmake += CC=$(LOCAL_ENV_CC) DISTCC_HOSTS=$(LOCAL_ENV_DISTCC_HOSTS)
|
||||
endif
|
||||
|
||||
# Locking is required in parallel builds to prevent loss of contents
|
||||
# of the debian/files.
|
||||
lockme_file = $(CURDIR)/debian/.LOCK
|
||||
lockme_cmd = flock -w 60
|
||||
lockme = $(lockme_cmd) $(lockme_file)
|
||||
|
||||
# Checks if a var is overriden by the custom rules. Called with var and
|
||||
# flavour as arguments.
|
||||
custom_override = \
|
||||
$(shell if [ -n "$($(1)_$(2))" ]; then echo "$($(1)_$(2))"; else echo "$($(1))"; fi)
|
||||
119
debian/rules.d/1-maintainer.mk
vendored
119
debian/rules.d/1-maintainer.mk
vendored
@@ -1,119 +0,0 @@
|
||||
# The following targets are for the maintainer only! do not run if you don't
|
||||
# know what they do.
|
||||
|
||||
.PHONY: printenv updateconfigs printchanges insertchanges startnewrelease diffupstream help updateportsconfigs editportsconfigs
|
||||
|
||||
help:
|
||||
@echo "These are the targets in addition to the normal $(DEBIAN) ones:"
|
||||
@echo
|
||||
@echo " printenv : Print some variables used in the build"
|
||||
@echo
|
||||
@echo " updateconfigs : Update core arch configs"
|
||||
@echo
|
||||
@echo " editconfigs : Update core arch configs interractively"
|
||||
@echo " genconfigs : Generate core arch configs in CONFIGS/*"
|
||||
@echo
|
||||
@echo " updateportsconfigs : Update ports arch configs"
|
||||
@echo
|
||||
@echo " editportsconfigs : Update ports arch configs interactivly"
|
||||
@echo " genportconfigs : Generate ports arch configs in CONFIGS/*"
|
||||
@echo
|
||||
@echo " printchanges : Print the current changelog entries (from git)"
|
||||
@echo
|
||||
@echo " insertchanges : Insert current changelog entries (from git)"
|
||||
@echo
|
||||
@echo " startnewrelease : Start a new changelog set"
|
||||
@echo
|
||||
@echo " diffupstream : Diff stock kernel code against upstream (git)"
|
||||
@echo
|
||||
@echo " help : If you are kernel hacking, you need the professional"
|
||||
@echo " version of this"
|
||||
@echo
|
||||
@echo "Environment variables:"
|
||||
@echo
|
||||
@echo " NOKERNLOG : Do not add upstream kernel commits to changelog"
|
||||
@echo " CONCURRENCY_LEVEL=X"
|
||||
@echo " : Use -jX for kernel compile"
|
||||
@echo " PRINTSHAS : Include SHAs for commits in changelog"
|
||||
|
||||
printdebian:
|
||||
@echo "$(DEBIAN)"
|
||||
|
||||
updateconfigs defaultconfigs editconfigs genconfigs dumpconfigs:
|
||||
dh_testdir;
|
||||
$(SHELL) $(DROOT)/scripts/misc/kernelconfig $@
|
||||
rm -rf build
|
||||
|
||||
updateportsconfigs defaultportsconfigs editportsconfigs genportsconfigs askconfigs:
|
||||
dh_testdir;
|
||||
$(SHELL) $(DROOT)/scripts/misc/kernelconfig $@ ports
|
||||
rm -rf build
|
||||
|
||||
printenv:
|
||||
dh_testdir
|
||||
@echo "src package name = $(src_pkg_name)"
|
||||
@echo "release = $(release)"
|
||||
@echo "revisions = $(revisions)"
|
||||
@echo "revision = $(revision)"
|
||||
@echo "uploadnum = $(uploadnum)"
|
||||
@echo "prev_revisions = $(prev_revisions)"
|
||||
@echo "prev_revision = $(prev_revision)"
|
||||
@echo "abinum = $(abinum)"
|
||||
@echo "gitver = $(gitver)"
|
||||
@echo "flavours = $(flavours)"
|
||||
@echo "skipabi = $(skipabi)"
|
||||
@echo "skipmodule = $(skipmodule)"
|
||||
@echo "skipdbg = $(skipdbg)"
|
||||
@echo "ubuntu_log_opts = $(ubuntu_log_opts)"
|
||||
@echo "CONCURRENCY_LEVEL = $(CONCURRENCY_LEVEL)"
|
||||
@echo "bin package name = $(bin_pkg_name)"
|
||||
@echo "hdr package name = $(hdrs_pkg_name)"
|
||||
@echo "doc package name = $(doc_pkg_name)"
|
||||
@echo "do_doc_package = $(do_doc_package)"
|
||||
@echo "do_doc_package_content = $(do_doc_package_content)"
|
||||
@echo "do_source_package = $(do_source_package)"
|
||||
@echo "do_source_package_content = $(do_source_package_content)"
|
||||
@echo "do_libc_dev_package = $(do_libc_dev_package)"
|
||||
@echo "do_flavour_image_package = $(do_flavour_image_package)"
|
||||
@echo "do_flavour_header_package = $(do_flavour_header_package)"
|
||||
@echo "do_common_headers_indep = $(do_common_headers_indep)"
|
||||
@echo "do_full_source = $(do_full_source)"
|
||||
@echo "do_tools = $(do_tools)"
|
||||
@echo "full_build = $(full_build)"
|
||||
@echo "libc_dev_version = $(libc_dev_version)"
|
||||
@echo "DEB_HOST_GNU_TYPE = $(DEB_HOST_GNU_TYPE)"
|
||||
@echo "DEB_BUILD_GNU_TYPE = $(DEB_BUILD_GNU_TYPE)"
|
||||
@echo "DEB_HOST_ARCH = $(DEB_HOST_ARCH)"
|
||||
@echo "DEB_BUILD_ARCH = $(DEB_BUILD_ARCH)"
|
||||
@echo "arch = $(arch)"
|
||||
@echo "kmake = $(kmake)"
|
||||
|
||||
printchanges:
|
||||
@baseCommit=$$(git log --pretty=format:'%H %s' | \
|
||||
awk '/UBUNTU: '".*Ubuntu-.*$(prev_fullver)"'$$/ { print $$1; exit }'); \
|
||||
git log "$$baseCommit"..HEAD | \
|
||||
perl -w -f $(DROOT)/scripts/misc/git-ubuntu-log $(ubuntu_log_opts)
|
||||
|
||||
insertchanges:
|
||||
@perl -w -f $(DROOT)/scripts/misc/insert-changes.pl $(DROOT) $(DEBIAN)
|
||||
|
||||
diffupstream:
|
||||
@git diff-tree -p refs/remotes/linux-2.6/master..HEAD $(shell ls | grep -vE '^(ubuntu|$(DEBIAN)|\.git.*)')
|
||||
|
||||
startnewrelease:
|
||||
dh_testdir
|
||||
@nextminor=$(shell expr `echo $(revision) | awk -F. '{print $$2}'` + 1); \
|
||||
now="$(shell date -R)"; \
|
||||
echo "Creating new changelog set for $(abi_release).$$nextminor..."; \
|
||||
echo -e "$(src_pkg_name) ($(abi_release).$$nextminor) UNRELEASED; urgency=low\n" > $(DEBIAN)/changelog.new; \
|
||||
echo " CHANGELOG: Do not edit directly. Autogenerated at release." >> \
|
||||
$(DEBIAN)/changelog.new; \
|
||||
echo " CHANGELOG: Use the printchanges target to see the curent changes." \
|
||||
>> $(DEBIAN)/changelog.new; \
|
||||
echo " CHANGELOG: Use the insertchanges target to create the final log." \
|
||||
>> $(DEBIAN)/changelog.new; \
|
||||
echo -e "\n -- $$DEBFULLNAME <$$DEBEMAIL> $$now\n" >> \
|
||||
$(DEBIAN)/changelog.new ; \
|
||||
cat $(DEBIAN)/changelog >> $(DEBIAN)/changelog.new; \
|
||||
mv $(DEBIAN)/changelog.new $(DEBIAN)/changelog
|
||||
|
||||
539
debian/rules.d/2-binary-arch.mk
vendored
539
debian/rules.d/2-binary-arch.mk
vendored
@@ -1,539 +0,0 @@
|
||||
# We don't want make removing intermediary stamps
|
||||
.SECONDARY :
|
||||
|
||||
# Prepare the out-of-tree build directory
|
||||
ifeq ($(do_full_source),true)
|
||||
build_cd = cd $(builddir)/build-$*; #
|
||||
build_O =
|
||||
else
|
||||
build_cd =
|
||||
build_O = O=$(builddir)/build-$*
|
||||
endif
|
||||
|
||||
$(stampdir)/stamp-prepare-%: config-prepare-check-%
|
||||
@echo Debug: $@
|
||||
@touch $@
|
||||
$(stampdir)/stamp-prepare-tree-%: target_flavour = $*
|
||||
$(stampdir)/stamp-prepare-tree-%: $(commonconfdir)/config.common.$(family) $(archconfdir)/config.common.$(arch) $(archconfdir)/config.flavour.%
|
||||
@echo Debug: $@
|
||||
install -d $(builddir)/build-$*
|
||||
touch $(builddir)/build-$*/ubuntu-build
|
||||
[ "$(do_full_source)" != 'true' ] && true || \
|
||||
rsync -a --exclude debian --exclude debian.master --exclude $(DEBIAN) * $(builddir)/build-$*
|
||||
cat $^ | sed -e 's/.*CONFIG_VERSION_SIGNATURE.*/CONFIG_VERSION_SIGNATURE="Ubuntu $(release)-$(revision)-$* $(raw_kernelversion)"/' > $(builddir)/build-$*/.config
|
||||
find $(builddir)/build-$* -name "*.ko" | xargs rm -f
|
||||
$(build_cd) $(kmake) $(build_O) -j1 silentoldconfig prepare scripts
|
||||
touch $@
|
||||
|
||||
# Used by developers as a shortcut to prepare a tree for compilation.
|
||||
prepare-%: $(stampdir)/stamp-prepare-%
|
||||
@echo Debug: $@
|
||||
# Used by developers to allow efficient pre-building without fakeroot.
|
||||
build-%: $(stampdir)/stamp-build-%
|
||||
@echo Debug: $@
|
||||
|
||||
# Do the actual build, including image and modules
|
||||
$(stampdir)/stamp-build-%: target_flavour = $*
|
||||
$(stampdir)/stamp-build-%: bldimg = $(call custom_override,build_image,$*)
|
||||
$(stampdir)/stamp-build-%: dtb_target = $(dtb_files_$*)
|
||||
$(stampdir)/stamp-build-%: $(stampdir)/stamp-prepare-%
|
||||
@echo Debug: $@ build_image $(build_image) bldimg $(bldimg)
|
||||
$(build_cd) $(kmake) $(build_O) $(conc_level) $(bldimg) modules $(dtb_target)
|
||||
@touch $@
|
||||
|
||||
# Install the finished build
|
||||
install-%: pkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$*
|
||||
install-%: pkgdir_ex = $(CURDIR)/debian/$(extra_pkg_name)-$*
|
||||
install-%: bindoc = $(pkgdir)/usr/share/doc/$(bin_pkg_name)-$*
|
||||
install-%: dbgpkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$*-dbgsym
|
||||
install-%: signed = $(CURDIR)/debian/$(bin_pkg_name)-signed
|
||||
install-%: basepkg = $(hdrs_pkg_name)
|
||||
install-%: indeppkg = $(indep_hdrs_pkg_name)
|
||||
install-%: kernfile = $(call custom_override,kernel_file,$*)
|
||||
install-%: instfile = $(call custom_override,install_file,$*)
|
||||
install-%: hdrdir = $(CURDIR)/debian/$(basepkg)-$*/usr/src/$(basepkg)-$*
|
||||
install-%: target_flavour = $*
|
||||
install-%: dtb_files = $(dtb_files_$*)
|
||||
install-%: checks-%
|
||||
@echo Debug: $@ kernel_file $(kernel_file) kernfile $(kernfile) install_file $(install_file) instfile $(instfile)
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
dh_clean -k -p$(bin_pkg_name)-$*
|
||||
dh_clean -k -p$(hdrs_pkg_name)-$*
|
||||
ifneq ($(skipdbg),true)
|
||||
dh_clean -k -p$(dbg_pkg_name)-$*
|
||||
endif
|
||||
|
||||
# The main image
|
||||
# compress_file logic required because not all architectures
|
||||
# generate a zImage automatically out of the box
|
||||
ifeq ($(compress_file),)
|
||||
install -m600 -D $(builddir)/build-$*/$(kernfile) \
|
||||
$(pkgdir)/boot/$(instfile)-$(abi_release)-$*
|
||||
else
|
||||
install -d $(pkgdir)/boot
|
||||
gzip -c9v $(builddir)/build-$*/$(kernfile) > \
|
||||
$(pkgdir)/boot/$(instfile)-$(abi_release)-$*
|
||||
chmod 600 $(pkgdir)/boot/$(instfile)-$(abi_release)-$*
|
||||
endif
|
||||
|
||||
ifeq ($(arch),amd64)
|
||||
ifeq ($(uefi_signed),true)
|
||||
install -d $(signed)/$(release)-$(revision)
|
||||
# Check to see if this supports handoff, if not do not sign it.
|
||||
# Check the identification area magic and version >= 0x020b
|
||||
handoff=`dd if="$(pkgdir)/boot/$(instfile)-$(abi_release)-$*" bs=1 skip=514 count=6 2>/dev/null | od -s | awk '($$1 == 0 && $$2 == 25672 && $$3 == 21362 && $$4 >= 523) { print "GOOD" }'`; \
|
||||
if [ "$$handoff" = "GOOD" ]; then \
|
||||
cp -p $(pkgdir)/boot/$(instfile)-$(abi_release)-$* \
|
||||
$(signed)/$(release)-$(revision)/$(instfile)-$(abi_release)-$*.efi; \
|
||||
fi
|
||||
endif
|
||||
endif
|
||||
|
||||
install -m644 $(builddir)/build-$*/.config \
|
||||
$(pkgdir)/boot/config-$(abi_release)-$*
|
||||
install -m644 $(abidir)/$* \
|
||||
$(pkgdir)/boot/abi-$(abi_release)-$*
|
||||
install -m600 $(builddir)/build-$*/System.map \
|
||||
$(pkgdir)/boot/System.map-$(abi_release)-$*
|
||||
if [ "$(dtb_files)" ]; then \
|
||||
install -d $(pkgdir)/lib/firmware/$(abi_release)-$*/device-tree; \
|
||||
for dtb_file in $(dtb_files); do \
|
||||
install -m644 $(builddir)/build-$*/arch/$(build_arch)/boot/dts/$$dtb_file \
|
||||
$(pkgdir)/lib/firmware/$(abi_release)-$*/device-tree/$$dtb_file; \
|
||||
done \
|
||||
fi
|
||||
ifeq ($(no_dumpfile),)
|
||||
makedumpfile -g $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$* \
|
||||
-x $(builddir)/build-$*/vmlinux
|
||||
chmod 0600 $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$*
|
||||
endif
|
||||
|
||||
$(build_cd) $(kmake) $(build_O) $(conc_level) modules_install \
|
||||
INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=$(pkgdir)/ \
|
||||
INSTALL_FW_PATH=$(pkgdir)/lib/firmware/$(abi_release)-$*
|
||||
|
||||
ifeq ($(do_extras_package),true)
|
||||
#
|
||||
# Remove all modules not in the inclusion list.
|
||||
#
|
||||
if [ -f $(DEBIAN)/control.d/$(target_flavour).inclusion-list ] ; then \
|
||||
mkdir -p $(pkgdir_ex)/lib/modules/$(abi_release)-$*; \
|
||||
mv $(pkgdir)/lib/modules/$(abi_release)-$*/kernel \
|
||||
$(pkgdir_ex)/lib/modules/$(abi_release)-$*/kernel; \
|
||||
$(SHELL) $(DROOT)/scripts/module-inclusion --master \
|
||||
$(pkgdir_ex)/lib/modules/$(abi_release)-$*/kernel \
|
||||
$(pkgdir)/lib/modules/$(abi_release)-$*/kernel \
|
||||
$(DEBIAN)/control.d/$(target_flavour).inclusion-list 2>&1 | \
|
||||
tee $(target_flavour).inclusion-list.log; \
|
||||
/sbin/depmod -b $(pkgdir) -ea -F $(pkgdir)/boot/System.map-$(abi_release)-$* \
|
||||
$(abi_release)-$* 2>&1 |tee $(target_flavour).depmod.log; \
|
||||
if [ `grep -c 'unknown symbol' $(target_flavour).depmod.log` -gt 0 ]; then \
|
||||
echo "EE: Unresolved module dependencies in base package!"; \
|
||||
exit 1; \
|
||||
fi \
|
||||
fi
|
||||
endif
|
||||
|
||||
ifeq ($(no_dumpfile),)
|
||||
makedumpfile -g $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$* \
|
||||
-x $(builddir)/build-$*/vmlinux
|
||||
chmod 0600 $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$*
|
||||
endif
|
||||
rm -f $(pkgdir)/lib/modules/$(abi_release)-$*/build
|
||||
rm -f $(pkgdir)/lib/modules/$(abi_release)-$*/source
|
||||
|
||||
# Some initramfs-tools specific modules
|
||||
install -d $(pkgdir)/lib/modules/$(abi_release)-$*/initrd
|
||||
if [ -f $(pkgdir)/lib/modules/$(abi_release)-$*/kernel/drivers/video/vesafb.ko ]; then\
|
||||
ln -f $(pkgdir)/lib/modules/$(abi_release)-$*/kernel/drivers/video/vesafb.ko \
|
||||
$(pkgdir)/lib/modules/$(abi_release)-$*/initrd/; \
|
||||
fi
|
||||
|
||||
# Now the image scripts
|
||||
install -d $(pkgdir)/DEBIAN
|
||||
for script in postinst postrm preinst prerm; do \
|
||||
sed -e 's/=V/$(abi_release)-$*/g' -e 's/=K/$(instfile)/g' \
|
||||
-e 's/=L/$(loader)/g' -e 's@=B@$(build_arch)@g' \
|
||||
$(DROOT)/control-scripts/$$script > $(pkgdir)/DEBIAN/$$script; \
|
||||
chmod 755 $(pkgdir)/DEBIAN/$$script; \
|
||||
done
|
||||
ifeq ($(do_extras_package),true)
|
||||
# Install the postinit/postrm scripts in the extras package.
|
||||
if [ -f $(DEBIAN)/control.d/$(target_flavour).inclusion-list ] ; then \
|
||||
install -d $(pkgdir_ex)/DEBIAN; \
|
||||
for script in postinst postrm ; do \
|
||||
sed -e 's/=V/$(abi_release)-$*/g' -e 's/=K/$(instfile)/g' \
|
||||
-e 's/=L/$(loader)/g' -e 's@=B@$(build_arch)@g' \
|
||||
debian/control-scripts/$$script > $(pkgdir_ex)/DEBIAN/$$script; \
|
||||
chmod 755 $(pkgdir_ex)/DEBIAN/$$script; \
|
||||
done; \
|
||||
fi
|
||||
endif
|
||||
|
||||
# Install the full changelog.
|
||||
ifeq ($(do_doc_package),true)
|
||||
install -d $(bindoc)
|
||||
cat $(DEBIAN)/changelog $(DEBIAN)/changelog.historical | \
|
||||
gzip -9 >$(bindoc)/changelog.Debian.old.gz
|
||||
chmod 644 $(bindoc)/changelog.Debian.old.gz
|
||||
endif
|
||||
|
||||
ifneq ($(skipsub),true)
|
||||
for sub in $($(*)_sub); do \
|
||||
if ! (TO=$$sub FROM=$* ABI_RELEASE=$(abi_release) $(SHELL) \
|
||||
$(DROOT)/scripts/sub-flavour); then exit 1; fi; \
|
||||
/sbin/depmod -b debian/$(bin_pkg_name)-$$sub \
|
||||
-ea -F debian/$(bin_pkg_name)-$$sub/boot/System.map-$(abi_release)-$* \
|
||||
$(abi_release)-$*; \
|
||||
install -d debian/$(bin_pkg_name)-$$sub/DEBIAN; \
|
||||
for script in postinst postrm preinst prerm; do \
|
||||
sed -e 's/=V/$(abi_release)-$*/g' \
|
||||
-e 's/=K/$(instfile)/g' \
|
||||
-e 's/=L/$(loader)/g' \
|
||||
-e 's@=B@$(build_arch)@g' \
|
||||
$(DROOT)/control-scripts/$$script > \
|
||||
debian/$(bin_pkg_name)-$$sub/DEBIAN/$$script;\
|
||||
chmod 755 debian/$(bin_pkg_name)-$$sub/DEBIAN/$$script;\
|
||||
done; \
|
||||
done
|
||||
endif
|
||||
|
||||
ifneq ($(skipdbg),true)
|
||||
# Debug image is simple
|
||||
install -m644 -D $(builddir)/build-$*/vmlinux \
|
||||
$(dbgpkgdir)/usr/lib/debug/boot/vmlinux-$(abi_release)-$*
|
||||
$(build_cd) $(kmake) $(build_O) modules_install \
|
||||
INSTALL_MOD_PATH=$(dbgpkgdir)/usr/lib/debug
|
||||
# Add .gnu_debuglink sections to each stripped .ko
|
||||
# pointing to unstripped verson
|
||||
find $(pkgdir) -name '*.ko' | sed 's|$(pkgdir)||'| while read module ; do \
|
||||
if [[ -f "$(dbgpkgdir)/usr/lib/debug/$$module" ]] ; then \
|
||||
$(CROSS_COMPILE)objcopy \
|
||||
--add-gnu-debuglink=$(dbgpkgdir)/usr/lib/debug/$$module \
|
||||
$(pkgdir)/$$module; \
|
||||
fi; \
|
||||
done
|
||||
rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/build
|
||||
rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/source
|
||||
rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/modules.*
|
||||
rm -fr $(dbgpkgdir)/usr/lib/debug/lib/firmware
|
||||
endif
|
||||
|
||||
# The flavour specific headers image
|
||||
# TODO: Would be nice if we didn't have to dupe the original builddir
|
||||
install -d -m755 $(hdrdir)
|
||||
cat $(builddir)/build-$*/.config | \
|
||||
sed -e 's/.*CONFIG_DEBUG_INFO=.*/# CONFIG_DEBUG_INFO is not set/g' > \
|
||||
$(hdrdir)/.config
|
||||
chmod 644 $(hdrdir)/.config
|
||||
$(kmake) O=$(hdrdir) -j1 silentoldconfig prepare scripts
|
||||
# We'll symlink this stuff
|
||||
rm -f $(hdrdir)/Makefile
|
||||
rm -rf $(hdrdir)/include2 $(hdrdir)/source
|
||||
# Copy over the compilation version.
|
||||
cp "$(builddir)/build-$*/include/generated/compile.h" \
|
||||
"$(hdrdir)/include/generated/compile.h"
|
||||
# powerpc seems to need some .o files for external module linking. Add them in.
|
||||
ifeq ($(arch),powerpc)
|
||||
mkdir -p $(hdrdir)/arch/powerpc/lib
|
||||
cp $(builddir)/build-$*/arch/powerpc/lib/*.o $(hdrdir)/arch/powerpc/lib
|
||||
endif
|
||||
# Script to symlink everything up
|
||||
$(SHELL) $(DROOT)/scripts/link-headers "$(hdrdir)" "$(indeppkg)" "$*"
|
||||
# The build symlink
|
||||
install -d debian/$(basepkg)-$*/lib/modules/$(abi_release)-$*
|
||||
ln -s /usr/src/$(basepkg)-$* \
|
||||
debian/$(basepkg)-$*/lib/modules/$(abi_release)-$*/build
|
||||
# And finally the symvers
|
||||
install -m644 $(builddir)/build-$*/Module.symvers \
|
||||
$(hdrdir)/Module.symvers
|
||||
|
||||
# Now the header scripts
|
||||
install -d $(CURDIR)/debian/$(basepkg)-$*/DEBIAN
|
||||
for script in postinst; do \
|
||||
sed -e 's/=V/$(abi_release)-$*/g' -e 's/=K/$(instfile)/g' \
|
||||
$(DROOT)/control-scripts/headers-$$script > \
|
||||
$(CURDIR)/debian/$(basepkg)-$*/DEBIAN/$$script; \
|
||||
chmod 755 $(CURDIR)/debian/$(basepkg)-$*/DEBIAN/$$script; \
|
||||
done
|
||||
|
||||
# At the end of the package prep, call the tests
|
||||
DPKG_ARCH="$(arch)" KERN_ARCH="$(build_arch)" FLAVOUR="$*" \
|
||||
VERSION="$(abi_release)" REVISION="$(revision)" \
|
||||
PREV_REVISION="$(prev_revision)" ABI_NUM="$(abinum)" \
|
||||
PREV_ABI_NUM="$(prev_abinum)" BUILD_DIR="$(builddir)/build-$*" \
|
||||
INSTALL_DIR="$(pkgdir)" SOURCE_DIR="$(CURDIR)" \
|
||||
run-parts -v $(DROOT)/tests-build
|
||||
|
||||
#
|
||||
# Remove files which are generated at installation by postinst,
|
||||
# except for modules.order and modules.builtin
|
||||
#
|
||||
# NOTE: need to keep this list in sync with postrm
|
||||
#
|
||||
mkdir $(pkgdir)/lib/modules/$(abi_release)-$*/_
|
||||
mv $(pkgdir)/lib/modules/$(abi_release)-$*/modules.order \
|
||||
$(pkgdir)/lib/modules/$(abi_release)-$*/_
|
||||
if [ -f $(pkgdir)/lib/modules/$(abi_release)-$*/modules.builtin ] ; then \
|
||||
mv $(pkgdir)/lib/modules/$(abi_release)-$*/modules.builtin \
|
||||
$(pkgdir)/lib/modules/$(abi_release)-$*/_; \
|
||||
fi
|
||||
rm -f $(pkgdir)/lib/modules/$(abi_release)-$*/modules.*
|
||||
mv $(pkgdir)/lib/modules/$(abi_release)-$*/_/* \
|
||||
$(pkgdir)/lib/modules/$(abi_release)-$*
|
||||
rmdir $(pkgdir)/lib/modules/$(abi_release)-$*/_
|
||||
|
||||
headers_tmp := $(CURDIR)/debian/tmp-headers
|
||||
headers_dir := $(CURDIR)/debian/linux-libc-dev
|
||||
|
||||
hmake := $(MAKE) -C $(CURDIR) O=$(headers_tmp) \
|
||||
KERNELVERSION=$(abi_release) INSTALL_HDR_PATH=$(headers_tmp)/install \
|
||||
SHELL="$(SHELL)" ARCH=$(header_arch)
|
||||
|
||||
install-arch-headers:
|
||||
@echo Debug: $@
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
dh_clean -k -plinux-libc-dev
|
||||
|
||||
rm -rf $(headers_tmp)
|
||||
install -d $(headers_tmp) $(headers_dir)/usr/include/
|
||||
|
||||
$(hmake) $(defconfig)
|
||||
mv $(headers_tmp)/.config $(headers_tmp)/.config.old
|
||||
sed -e 's/^# \(CONFIG_MODVERSIONS\) is not set$$/\1=y/' \
|
||||
-e 's/.*CONFIG_LOCALVERSION_AUTO.*/# CONFIG_LOCALVERSION_AUTO is not set/' \
|
||||
$(headers_tmp)/.config.old > $(headers_tmp)/.config
|
||||
$(hmake) silentoldconfig
|
||||
$(hmake) headers_install
|
||||
|
||||
( cd $(headers_tmp)/install/include/ && \
|
||||
find . -name '.' -o -name '.*' -prune -o -print | \
|
||||
cpio -pvd --preserve-modification-time \
|
||||
$(headers_dir)/usr/include/ )
|
||||
mkdir $(headers_dir)/usr/include/$(DEB_HOST_MULTIARCH)
|
||||
mv $(headers_dir)/usr/include/asm $(headers_dir)/usr/include/$(DEB_HOST_MULTIARCH)/
|
||||
|
||||
rm -rf $(headers_tmp)
|
||||
|
||||
binary-arch-headers: install-arch-headers
|
||||
@echo Debug: $@
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
ifeq ($(do_libc_dev_package),true)
|
||||
ifneq ($(DEBIAN),debian.master)
|
||||
echo "non-master branch building linux-libc-dev, aborting"
|
||||
exit 1
|
||||
endif
|
||||
dh_installchangelogs -plinux-libc-dev
|
||||
dh_installdocs -plinux-libc-dev
|
||||
dh_compress -plinux-libc-dev
|
||||
dh_fixperms -plinux-libc-dev
|
||||
dh_installdeb -plinux-libc-dev
|
||||
$(lockme) dh_gencontrol -plinux-libc-dev -- $(libc_dev_version)
|
||||
dh_md5sums -plinux-libc-dev
|
||||
dh_builddeb -plinux-libc-dev
|
||||
endif
|
||||
|
||||
binary-%: pkgimg = $(bin_pkg_name)-$*
|
||||
binary-%: pkgimg_ex = $(extra_pkg_name)-$*
|
||||
binary-%: pkghdr = $(hdrs_pkg_name)-$*
|
||||
binary-%: dbgpkg = $(bin_pkg_name)-$*-dbgsym
|
||||
binary-%: dbgpkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$*-dbgsym
|
||||
binary-%: target_flavour = $*
|
||||
binary-%: install-%
|
||||
@echo Debug: $@
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
|
||||
dh_installchangelogs -p$(pkgimg)
|
||||
dh_installdocs -p$(pkgimg)
|
||||
dh_compress -p$(pkgimg)
|
||||
dh_fixperms -p$(pkgimg) -X/boot/
|
||||
dh_installdeb -p$(pkgimg)
|
||||
dh_shlibdeps -p$(pkgimg)
|
||||
$(lockme) dh_gencontrol -p$(pkgimg)
|
||||
dh_md5sums -p$(pkgimg)
|
||||
dh_builddeb -p$(pkgimg) -- -Zbzip2 -z9
|
||||
|
||||
ifeq ($(do_extras_package),true)
|
||||
if [ -f $(DEBIAN)/control.d/$(target_flavour).inclusion-list ] ; then \
|
||||
dh_installchangelogs -p$(pkgimg_ex); \
|
||||
dh_installdocs -p$(pkgimg_ex); \
|
||||
dh_compress -p$(pkgimg_ex); \
|
||||
dh_fixperms -p$(pkgimg_ex) -X/boot/; \
|
||||
dh_installdeb -p$(pkgimg_ex); \
|
||||
dh_shlibdeps -p$(pkgimg_ex); \
|
||||
$(lockme) dh_gencontrol -p$(pkgimg_ex); \
|
||||
dh_md5sums -p$(pkgimg_ex); \
|
||||
dh_builddeb -p$(pkgimg_ex) -- -Zbzip2 -z9; \
|
||||
fi
|
||||
endif
|
||||
|
||||
dh_installchangelogs -p$(pkghdr)
|
||||
dh_installdocs -p$(pkghdr)
|
||||
dh_compress -p$(pkghdr)
|
||||
dh_fixperms -p$(pkghdr)
|
||||
dh_shlibdeps -p$(pkghdr)
|
||||
dh_installdeb -p$(pkghdr)
|
||||
$(lockme) dh_gencontrol -p$(pkghdr)
|
||||
dh_md5sums -p$(pkghdr)
|
||||
dh_builddeb -p$(pkghdr)
|
||||
|
||||
ifneq ($(skipsub),true)
|
||||
@set -e; for sub in $($(*)_sub); do \
|
||||
pkg=$(bin_pkg_name)-$$sub; \
|
||||
dh_installchangelogs -p$$pkg; \
|
||||
dh_installdocs -p$$pkg; \
|
||||
dh_compress -p$$pkg; \
|
||||
dh_fixperms -p$$pkg -X/boot/; \
|
||||
dh_shlibdeps -p$$pkg; \
|
||||
dh_installdeb -p$$pkg; \
|
||||
$(lockme) dh_gencontrol -p$$pkg; \
|
||||
dh_md5sums -p$$pkg; \
|
||||
dh_builddeb -p$$pkg; \
|
||||
done
|
||||
endif
|
||||
|
||||
ifneq ($(skipdbg),true)
|
||||
dh_installchangelogs -p$(dbgpkg)
|
||||
dh_installdocs -p$(dbgpkg)
|
||||
dh_compress -p$(dbgpkg)
|
||||
dh_fixperms -p$(dbgpkg)
|
||||
dh_installdeb -p$(dbgpkg)
|
||||
$(lockme) dh_gencontrol -p$(dbgpkg)
|
||||
dh_md5sums -p$(dbgpkg)
|
||||
dh_builddeb -p$(dbgpkg)
|
||||
|
||||
# Hokay...here's where we do a little twiddling...
|
||||
# Renaming the debug package prevents it from getting into
|
||||
# the primary archive, and therefore prevents this very large
|
||||
# package from being mirrored. It is instead, through some
|
||||
# archive admin hackery, copied to http://ddebs.ubuntu.com.
|
||||
#
|
||||
mv ../$(dbgpkg)_$(release)-$(revision)_$(arch).deb \
|
||||
../$(dbgpkg)_$(release)-$(revision)_$(arch).ddeb
|
||||
set -e; \
|
||||
( \
|
||||
$(lockme_cmd) 9 || exit 1; \
|
||||
if grep -qs '^Build-Debug-Symbols: yes$$' /CurrentlyBuilding; then \
|
||||
sed -i '/^$(dbgpkg)_/s/\.deb /.ddeb /' debian/files; \
|
||||
else \
|
||||
grep -v '^$(dbgpkg)_.*$$' debian/files > debian/files.new; \
|
||||
mv debian/files.new debian/files; \
|
||||
fi; \
|
||||
) 9>$(lockme_file)
|
||||
# Now, the package wont get into the archive, but it will get put
|
||||
# into the debug system.
|
||||
endif
|
||||
ifneq ($(full_build),false)
|
||||
# Clean out this flavours build directory.
|
||||
rm -rf $(builddir)/build-$*
|
||||
# Clean out the debugging package source directory.
|
||||
rm -rf $(dbgpkgdir)
|
||||
endif
|
||||
|
||||
#
|
||||
# per-architecture packages
|
||||
#
|
||||
builddirpa = $(builddir)/tools-perarch
|
||||
|
||||
$(stampdir)/stamp-prepare-perarch:
|
||||
@echo Debug: $@
|
||||
ifeq ($(do_tools),true)
|
||||
rm -rf $(builddirpa)
|
||||
install -d $(builddirpa)
|
||||
for i in *; do ln -s $(CURDIR)/$$i $(builddirpa); done
|
||||
rm $(builddirpa)/tools
|
||||
rsync -a tools/ $(builddirpa)/tools/
|
||||
endif
|
||||
touch $@
|
||||
|
||||
$(stampdir)/stamp-build-perarch: $(stampdir)/stamp-prepare-perarch
|
||||
@echo Debug: $@
|
||||
ifeq ($(do_tools),true)
|
||||
ifeq ($(do_tools_perf),true)
|
||||
cd $(builddirpa)/tools/perf && \
|
||||
make HAVE_CPLUS_DEMANGLE=1 CROSS_COMPILE=$(CROSS_COMPILE) NO_LIBPYTHON=1 NO_LIBPERL=1 PYTHON=python2.7
|
||||
endif
|
||||
if [ "$(arch)" = "amd64" ] || [ "$(arch)" = "i386" ]; then \
|
||||
cd $(builddirpa)/tools/power/x86/x86_energy_perf_policy && make CROSS_COMPILE=$(CROSS_COMPILE); \
|
||||
cd $(builddirpa)/tools/power/x86/turbostat && make CROSS_COMPILE=$(CROSS_COMPILE); \
|
||||
if [ "$(do_hyperv)" = "true" ]; then \
|
||||
cd $(builddirpa)/tools/hv && make CROSS_COMPILE=$(CROSS_COMPILE); \
|
||||
fi; \
|
||||
fi
|
||||
endif
|
||||
@touch $@
|
||||
|
||||
install-perarch: toolspkgdir = $(CURDIR)/debian/$(tools_pkg_name)
|
||||
install-perarch: $(stampdir)/stamp-build-perarch
|
||||
@echo Debug: $@
|
||||
# Add the tools.
|
||||
ifeq ($(do_tools),true)
|
||||
install -d $(toolspkgdir)/usr/bin
|
||||
ifeq ($(do_tools_perf),true)
|
||||
install -m755 $(builddirpa)/tools/perf/perf \
|
||||
$(toolspkgdir)/usr/bin/perf_$(abi_release)
|
||||
endif
|
||||
if [ "$(arch)" = "amd64" ] || [ "$(arch)" = "i386" ]; then \
|
||||
install -m755 $(builddirpa)/tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy \
|
||||
$(toolspkgdir)/usr/bin/x86_energy_perf_policy_$(abi_release); \
|
||||
install -m755 $(builddirpa)/tools/power/x86/turbostat/turbostat \
|
||||
$(toolspkgdir)/usr/bin/turbostat_$(abi_release); \
|
||||
if [ "$(do_hyperv)" = "true" ]; then \
|
||||
install -d $(toolspkgdir)/usr/sbin; \
|
||||
install -m755 $(builddirpa)/tools/hv/hv_kvp_daemon \
|
||||
$(toolspkgdir)/usr/sbin/hv_kvp_daemon_$(abi_release); \
|
||||
fi; \
|
||||
fi
|
||||
endif
|
||||
|
||||
binary-perarch: toolspkg = $(tools_pkg_name)
|
||||
binary-perarch: install-perarch
|
||||
@echo Debug: $@
|
||||
ifeq ($(do_tools),true)
|
||||
dh_strip -p$(toolspkg)
|
||||
dh_installchangelogs -p$(toolspkg)
|
||||
dh_installdocs -p$(toolspkg)
|
||||
dh_compress -p$(toolspkg)
|
||||
dh_fixperms -p$(toolspkg)
|
||||
dh_shlibdeps -p$(toolspkg)
|
||||
dh_installdeb -p$(toolspkg)
|
||||
$(lockme) dh_gencontrol -p$(toolspkg)
|
||||
dh_md5sums -p$(toolspkg)
|
||||
dh_builddeb -p$(toolspkg)
|
||||
endif
|
||||
|
||||
binary-debs: signed = $(CURDIR)/debian/$(bin_pkg_name)-signed
|
||||
binary-debs: signedv = $(CURDIR)/debian/$(bin_pkg_name)-signed/$(release)-$(revision)
|
||||
binary-debs: signed_tar = $(src_pkg_name)_$(release)-$(revision)_$(arch).tar.gz
|
||||
binary-debs: binary-perarch $(addprefix binary-,$(flavours))
|
||||
@echo Debug: $@
|
||||
ifeq ($(arch),amd64)
|
||||
ifeq ($(uefi_signed),true)
|
||||
echo $(release)-$(revision) > $(signedv)/version
|
||||
cd $(signedv) && ls *.efi >flavours
|
||||
cd $(signed) && tar czvf ../../../$(signed_tar) .
|
||||
dpkg-distaddfile $(signed_tar) raw-uefi -
|
||||
endif
|
||||
endif
|
||||
|
||||
build-arch-deps-$(do_flavour_image_package) += $(addprefix $(stampdir)/stamp-build-,$(flavours))
|
||||
build-arch: $(build-arch-deps-true)
|
||||
@echo Debug: $@
|
||||
|
||||
ifeq ($(AUTOBUILD),)
|
||||
binary-arch-deps-$(do_flavour_image_package) += binary-udebs
|
||||
else
|
||||
binary-arch-deps-$(do_flavour_image_package) = binary-debs
|
||||
endif
|
||||
binary-arch-deps-$(do_libc_dev_package) += binary-arch-headers
|
||||
ifneq ($(do_common_headers_indep),true)
|
||||
binary-arch-deps-$(do_flavour_header_package) += binary-headers
|
||||
binary-arch-deps-$(do_flavour_header_package) += common-tools
|
||||
endif
|
||||
binary-arch: $(binary-arch-deps-true)
|
||||
@echo Debug: $@
|
||||
|
||||
165
debian/rules.d/3-binary-indep.mk
vendored
165
debian/rules.d/3-binary-indep.mk
vendored
@@ -1,165 +0,0 @@
|
||||
build-indep:
|
||||
@echo Debug: $@
|
||||
|
||||
# The binary-indep dependency chain is:
|
||||
#
|
||||
# install-headers <- install-doc <- install-source <- install-tools <- install-indep <- binary-indep
|
||||
# install-headers <- binary-headers
|
||||
#
|
||||
indep_hdrpkg = $(indep_hdrs_pkg_name)
|
||||
indep_hdrdir = $(CURDIR)/debian/$(indep_hdrpkg)/usr/src/$(indep_hdrpkg)
|
||||
install-headers:
|
||||
@echo Debug: $@
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
dh_prep
|
||||
|
||||
ifeq ($(do_flavour_header_package),true)
|
||||
install -d $(indep_hdrdir)
|
||||
find . -path './debian' -prune -o -path './$(DEBIAN)' -prune \
|
||||
-o -path './include/*' -prune \
|
||||
-o -path './scripts/*' -prune -o -type f \
|
||||
\( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o \
|
||||
-name '*.sh' -o -name '*.pl' -o -name '*.lds' \) \
|
||||
-print | cpio -pd --preserve-modification-time $(indep_hdrdir)
|
||||
cp -a scripts include $(indep_hdrdir)
|
||||
(find arch -name include -type d -print | \
|
||||
xargs -n1 -i: find : -type f) | \
|
||||
cpio -pd --preserve-modification-time $(indep_hdrdir)
|
||||
endif
|
||||
|
||||
docpkg = $(doc_pkg_name)
|
||||
docdir = $(CURDIR)/debian/$(docpkg)/usr/share/doc/$(docpkg)
|
||||
install-doc: install-headers
|
||||
@echo Debug: $@
|
||||
ifeq ($(do_doc_package),true)
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
|
||||
install -d $(docdir)
|
||||
ifeq ($(do_doc_package_content),true)
|
||||
# First the html docs. We skip these for autobuilds
|
||||
if [ -z "$(AUTOBUILD)" ]; then \
|
||||
install -d $(docdir)/$(doc_pkg_name)-tmp; \
|
||||
$(kmake) O=$(docdir)/$(doc_pkg_name)-tmp htmldocs; \
|
||||
mv $(docdir)/$(doc_pkg_name)-tmp/Documentation/DocBook \
|
||||
$(docdir)/html; \
|
||||
rm -rf $(docdir)/$(doc_pkg_name)-tmp; \
|
||||
fi
|
||||
endif
|
||||
# Copy the rest
|
||||
cp -a Documentation/* $(docdir)
|
||||
rm -rf $(docdir)/DocBook
|
||||
find $(docdir) -name .gitignore | xargs rm -f
|
||||
endif
|
||||
|
||||
srcpkg = $(src_pkg_name)-source-$(release)
|
||||
srcdir = $(CURDIR)/debian/$(srcpkg)/usr/src/$(srcpkg)
|
||||
balldir = $(CURDIR)/debian/$(srcpkg)/usr/src/$(srcpkg)/$(srcpkg)
|
||||
install-source: install-doc
|
||||
@echo Debug: $@
|
||||
ifeq ($(do_source_package),true)
|
||||
|
||||
install -d $(srcdir)
|
||||
ifeq ($(do_source_package_content),true)
|
||||
find . -path './debian' -prune -o -path './$(DEBIAN)' -prune -o \
|
||||
-path './.*' -prune -o -print | \
|
||||
cpio -pd --preserve-modification-time $(balldir)
|
||||
(cd $(srcdir); tar cf - $(srcpkg)) | bzip2 -9c > \
|
||||
$(srcdir)/$(srcpkg).tar.bz2
|
||||
rm -rf $(balldir)
|
||||
find './debian' './$(DEBIAN)' \
|
||||
-path './debian/linux-*' -prune -o \
|
||||
-path './debian/$(src_pkg_name)-*' -prune -o \
|
||||
-path './debian/build' -prune -o \
|
||||
-path './debian/files' -prune -o \
|
||||
-path './debian/stamps' -prune -o \
|
||||
-path './debian/tmp' -prune -o \
|
||||
-print | \
|
||||
cpio -pd --preserve-modification-time $(srcdir)
|
||||
ln -s $(srcpkg)/$(srcpkg).tar.bz2 $(srcdir)/..
|
||||
endif
|
||||
endif
|
||||
|
||||
install-tools: toolspkg = $(tools_common_pkg_name)
|
||||
install-tools: toolsbin = $(CURDIR)/debian/$(toolspkg)/usr/bin
|
||||
install-tools: toolssbin = $(CURDIR)/debian/$(toolspkg)/usr/sbin
|
||||
install-tools: toolsman = $(CURDIR)/debian/$(toolspkg)/usr/share/man
|
||||
install-tools: install-source $(stampdir)/stamp-build-perarch
|
||||
@echo Debug: $@
|
||||
ifeq ($(do_tools),true)
|
||||
|
||||
install -d $(toolsbin)
|
||||
install -d $(toolsman)/man1
|
||||
|
||||
ifeq ($(do_tools_perf),true)
|
||||
install -m755 debian/tools/perf $(toolsbin)/perf
|
||||
endif
|
||||
if [ "$(arch)" = "amd64" ] || [ "$(arch)" = "i386" ]; then \
|
||||
install -m755 debian/tools/x86_energy_perf_policy $(toolsbin)/x86_energy_perf_policy; \
|
||||
install -m755 debian/tools/turbostat $(toolsbin)/turbostat; \
|
||||
if [ "$(do_hyperv)" = "true" ]; then \
|
||||
install -d $(toolssbin) ; \
|
||||
install -m755 debian/tools/generic $(toolssbin)/hv_kvp_daemon; \
|
||||
fi; \
|
||||
fi
|
||||
|
||||
rm -rf $(builddir)/tools
|
||||
install -d $(builddir)/tools
|
||||
for i in *; do ln -s $(CURDIR)/$$i $(builddir)/tools/; done
|
||||
rm $(builddir)/tools/tools
|
||||
rsync -a tools/ $(builddir)/tools/tools/
|
||||
|
||||
ifeq ($(do_tools_perf),true)
|
||||
cd $(builddir)/tools/tools/perf && make man
|
||||
install -m644 $(builddir)/tools/tools/perf/Documentation/*.1 \
|
||||
$(toolsman)/man1
|
||||
endif
|
||||
if [ "$(arch)" = "amd64" ] || [ "$(arch)" = "i386" ]; then \
|
||||
install -d $(toolsman)/man8; \
|
||||
install -m644 $(CURDIR)/tools/power/x86/x86_energy_perf_policy/*.8 $(toolsman)/man8; \
|
||||
install -m644 $(CURDIR)/tools/power/x86/turbostat/*.8 $(toolsman)/man8; \
|
||||
if [ "$(do_hyperv)" = "true" ]; then \
|
||||
install -m644 $(CURDIR)/tools/hv/*.8 $(toolsman)/man8; \
|
||||
fi; \
|
||||
fi
|
||||
endif
|
||||
|
||||
install-indep: install-tools
|
||||
@echo Debug: $@
|
||||
|
||||
# This is just to make it easy to call manually. Normally done in
|
||||
# binary-indep target during builds.
|
||||
binary-headers: install-headers
|
||||
@echo Debug: $@
|
||||
dh_installchangelogs -p$(indep_hdrpkg)
|
||||
dh_installdocs -p$(indep_hdrpkg)
|
||||
dh_compress -p$(indep_hdrpkg)
|
||||
dh_fixperms -p$(indep_hdrpkg)
|
||||
dh_installdeb -p$(indep_hdrpkg)
|
||||
$(lockme) dh_gencontrol -p$(indep_hdrpkg)
|
||||
dh_md5sums -p$(indep_hdrpkg)
|
||||
dh_builddeb -p$(indep_hdrpkg)
|
||||
|
||||
common-tools: install-indep
|
||||
@echo Debug: $@
|
||||
dh_installchangelogs -p$(tools_common_pkg_name)
|
||||
dh_installdocs -p$(tools_common_pkg_name)
|
||||
dh_compress -p$(tools_common_pkg_name)
|
||||
dh_fixperms -p$(tools_common_pkg_name)
|
||||
dh_installdeb -p$(tools_common_pkg_name)
|
||||
$(lockme) dh_gencontrol -p$(tools_common_pkg_name)
|
||||
dh_md5sums -p$(tools_common_pkg_name)
|
||||
dh_builddeb -p$(tools_common_pkg_name)
|
||||
|
||||
binary-indep: install-indep
|
||||
@echo Debug: $@
|
||||
|
||||
dh_installchangelogs -i
|
||||
dh_installdocs -i
|
||||
dh_compress -i
|
||||
dh_fixperms -i
|
||||
dh_installdeb -i
|
||||
$(lockme) dh_gencontrol -i
|
||||
dh_md5sums -i
|
||||
dh_builddeb -i
|
||||
27
debian/rules.d/4-checks.mk
vendored
27
debian/rules.d/4-checks.mk
vendored
@@ -1,27 +0,0 @@
|
||||
# Check ABI for package against last release (if not same abinum)
|
||||
abi-check-%: $(stampdir)/stamp-build-%
|
||||
@echo Debug: $@
|
||||
install -d $(abidir)
|
||||
sed -e 's/^\(.\+\)[[:space:]]\+\(.\+\)[[:space:]]\(.\+\)$$/\3 \2 \1/' \
|
||||
$(builddir)/build-$*/Module.symvers | sort > $(abidir)/$*
|
||||
@perl -f $(DROOT)/scripts/abi-check "$*" "$(prev_abinum)" "$(abinum)" \
|
||||
"$(prev_abidir)" "$(abidir)" "$(skipabi)"
|
||||
|
||||
# Check the module list against the last release (always)
|
||||
module-check-%: $(stampdir)/stamp-build-%
|
||||
@echo Debug: $@
|
||||
install -d $(abidir)
|
||||
find $(builddir)/build-$*/ -name \*.ko | \
|
||||
sed -e 's/.*\/\([^\/]*\)\.ko/\1/' | sort > $(abidir)/$*.modules
|
||||
@perl -f $(DROOT)/scripts/module-check "$*" \
|
||||
"$(prev_abidir)" "$(abidir)" $(skipmodule)
|
||||
|
||||
checks-%: module-check-% abi-check-%
|
||||
@echo Debug: $@
|
||||
|
||||
# Check the config against the known options list.
|
||||
config-prepare-check-%: $(stampdir)/stamp-prepare-tree-%
|
||||
@echo Debug: $@
|
||||
@perl -f $(DROOT)/scripts/config-check \
|
||||
$(builddir)/build-$*/.config "$(arch)" "$*" "$(sharedconfdir)" "$(skipconfig)"
|
||||
|
||||
44
debian/rules.d/5-udebs.mk
vendored
44
debian/rules.d/5-udebs.mk
vendored
@@ -1,44 +0,0 @@
|
||||
# Do udebs if not disabled in the arch-specific makefile
|
||||
binary-udebs: binary-debs
|
||||
@echo Debug: $@
|
||||
ifeq ($(disable_d_i),)
|
||||
@$(MAKE) --no-print-directory -f $(DROOT)/rules DEBIAN=$(DEBIAN) \
|
||||
do-binary-udebs
|
||||
endif
|
||||
|
||||
do-binary-udebs: debian/control
|
||||
@echo Debug: $@
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
|
||||
# unpack the kernels into a temporary directory
|
||||
mkdir -p debian/d-i-${arch}
|
||||
|
||||
imagelist=$$(cat $(builddir)/kernel-versions | grep ^${arch} | awk '{print $$4}') && \
|
||||
for i in $$imagelist; do \
|
||||
dpkg -x $$(ls ../linux-image-$$i\_$(release)-$(revision)_${arch}.deb) \
|
||||
debian/d-i-${arch}; \
|
||||
if [ -f ../linux-image-extra-$$i\_$(release)-$(revision)_${arch}.deb ] ; then \
|
||||
dpkg -x ../linux-image-extra-$$i\_$(release)-$(revision)_${arch}.deb \
|
||||
debian/d-i-${arch}; \
|
||||
fi; \
|
||||
/sbin/depmod -b debian/d-i-${arch} $$i; \
|
||||
done
|
||||
|
||||
# kernel-wedge will error if no modules unless this is touched
|
||||
touch $(CURDIR)/debian/build/no-modules
|
||||
|
||||
touch ignore-dups
|
||||
export SOURCEDIR=$(CURDIR)/debian/d-i-${arch} && \
|
||||
cd $(builddir) && \
|
||||
kernel-wedge install-files && \
|
||||
kernel-wedge check
|
||||
|
||||
# Build just the udebs
|
||||
dilist=$$(dh_listpackages -s | grep "\-di$$") && \
|
||||
[ -z "$dilist" ] || \
|
||||
for i in $$dilist; do \
|
||||
dh_fixperms -p$$i; \
|
||||
$(lockme) dh_gencontrol -p$$i; \
|
||||
dh_builddeb -p$$i; \
|
||||
done
|
||||
210
debian/scripts/abi-check
vendored
210
debian/scripts/abi-check
vendored
@@ -1,210 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
my $flavour = shift;
|
||||
my $prev_abinum = shift;
|
||||
my $abinum = shift;
|
||||
my $prev_abidir = shift;
|
||||
my $abidir = shift;
|
||||
my $skipabi = shift;
|
||||
|
||||
my $fail_exit = 1;
|
||||
my $EE = "EE:";
|
||||
my $errors = 0;
|
||||
my $abiskip = 0;
|
||||
|
||||
my $count;
|
||||
|
||||
print "II: Checking ABI for $flavour...\n";
|
||||
|
||||
if (-f "$prev_abidir/ignore"
|
||||
or -f "$prev_abidir/$flavour.ignore" or "$skipabi" eq "true") {
|
||||
print "WW: Explicitly asked to ignore ABI, running in no-fail mode\n";
|
||||
$fail_exit = 0;
|
||||
$abiskip = 1;
|
||||
$EE = "WW:";
|
||||
}
|
||||
|
||||
if ($prev_abinum != $abinum) {
|
||||
print "II: Different ABI's, running in no-fail mode\n";
|
||||
$fail_exit = 0;
|
||||
$EE = "WW:";
|
||||
}
|
||||
|
||||
if (not -f "$abidir/$flavour" or not -f "$prev_abidir/$flavour") {
|
||||
print "EE: Previous or current ABI file missing!\n";
|
||||
print " $abidir/$flavour\n" if not -f "$abidir/$flavour";
|
||||
print " $prev_abidir/$flavour\n" if not -f "$prev_abidir/$flavour";
|
||||
|
||||
# Exit if the ABI files are missing, but return status based on whether
|
||||
# skip ABI was indicated.
|
||||
if ("$abiskip" eq "1") {
|
||||
exit(0);
|
||||
} else {
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
my %symbols;
|
||||
my %symbols_ignore;
|
||||
my %modules_ignore;
|
||||
my %module_syms;
|
||||
|
||||
# See if we have any ignores
|
||||
my $ignore = 0;
|
||||
print " Reading symbols/modules to ignore...";
|
||||
|
||||
for $file ("$prev_abidir/../blacklist", "$prev_abidir/../../perm-blacklist") {
|
||||
if (-f $file) {
|
||||
open(IGNORE, "< $file") or
|
||||
die "Could not open $file";
|
||||
while (<IGNORE>) {
|
||||
chomp;
|
||||
if ($_ =~ m/M: (.*)/) {
|
||||
$modules_ignore{$1} = 1;
|
||||
} else {
|
||||
$symbols_ignore{$_} = 1;
|
||||
}
|
||||
$ignore++;
|
||||
}
|
||||
close(IGNORE);
|
||||
}
|
||||
}
|
||||
print "read $ignore symbols/modules.\n";
|
||||
|
||||
sub is_ignored($$) {
|
||||
my ($mod, $sym) = @_;
|
||||
|
||||
die "Missing module name in is_ignored()" if not defined($mod);
|
||||
die "Missing symbol name in is_ignored()" if not defined($sym);
|
||||
|
||||
if (defined($symbols_ignore{$sym}) or defined($modules_ignore{$mod})) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
# Read new syms first
|
||||
print " Reading new symbols ($abinum)...";
|
||||
$count = 0;
|
||||
open(NEW, "< $abidir/$flavour") or
|
||||
die "Could not open $abidir/$flavour";
|
||||
while (<NEW>) {
|
||||
chomp;
|
||||
m/^(\S+)\s(.+)\s(0x[0-9a-f]+)\s(.+)$/;
|
||||
$symbols{$4}{'type'} = $1;
|
||||
$symbols{$4}{'loc'} = $2;
|
||||
$symbols{$4}{'hash'} = $3;
|
||||
$module_syms{$2} = 0;
|
||||
$count++;
|
||||
}
|
||||
close(NEW);
|
||||
print "read $count symbols.\n";
|
||||
|
||||
# Now the old symbols, checking for missing ones
|
||||
print " Reading old symbols ($prev_abinum)...";
|
||||
$count = 0;
|
||||
open(OLD, "< $prev_abidir/$flavour") or
|
||||
die "Could not open $prev_abidir/$flavour";
|
||||
while (<OLD>) {
|
||||
chomp;
|
||||
m/^(\S+)\s(.+)\s(0x[0-9a-f]+)\s(.+)$/;
|
||||
$symbols{$4}{'old_type'} = $1;
|
||||
$symbols{$4}{'old_loc'} = $2;
|
||||
$symbols{$4}{'old_hash'} = $3;
|
||||
$count++;
|
||||
}
|
||||
close(OLD);
|
||||
|
||||
print "read $count symbols.\n";
|
||||
|
||||
print "II: Checking for missing symbols in new ABI...";
|
||||
$count = 0;
|
||||
foreach $sym (keys(%symbols)) {
|
||||
if (!defined($symbols{$sym}{'type'})) {
|
||||
print "\n" if not $count;
|
||||
printf(" MISS : %s%s\n", $sym,
|
||||
is_ignored($symbols{$sym}{'old_loc'}, $sym) ? " (ignored)" : "");
|
||||
$count++ if !is_ignored($symbols{$sym}{'old_loc'}, $sym);
|
||||
}
|
||||
}
|
||||
print " " if $count;
|
||||
print "found $count missing symbols\n";
|
||||
if ($count) {
|
||||
print "$EE Symbols gone missing (what did you do!?!)\n";
|
||||
$errors++;
|
||||
}
|
||||
|
||||
|
||||
print "II: Checking for new symbols in new ABI...";
|
||||
$count = 0;
|
||||
foreach $sym (keys(%symbols)) {
|
||||
if (!defined($symbols{$sym}{'old_type'})) {
|
||||
print "\n" if not $count;
|
||||
print " NEW : $sym\n";
|
||||
$count++;
|
||||
}
|
||||
}
|
||||
print " " if $count;
|
||||
print "found $count new symbols\n";
|
||||
if ($count and $prev_abinum == $abinum) {
|
||||
print "WW: Found new symbols within same ABI. Not recommended\n";
|
||||
}
|
||||
|
||||
print "II: Checking for changes to ABI...\n";
|
||||
$count = 0;
|
||||
my $moved = 0;
|
||||
my $changed_type = 0;
|
||||
my $changed_hash = 0;
|
||||
foreach $sym (keys(%symbols)) {
|
||||
if (!defined($symbols{$sym}{'old_type'}) or
|
||||
!defined($symbols{$sym}{'type'})) {
|
||||
next;
|
||||
}
|
||||
|
||||
# Changes in location don't hurt us, but log it anyway
|
||||
if ($symbols{$sym}{'loc'} ne $symbols{$sym}{'old_loc'}) {
|
||||
printf(" MOVE : %-40s : %s => %s\n", $sym, $symbols{$sym}{'old_loc'},
|
||||
$symbols{$sym}{'loc'});
|
||||
$moved++;
|
||||
}
|
||||
|
||||
# Changes to export type are only bad if new type isn't
|
||||
# EXPORT_SYMBOL. Changing things to GPL are bad.
|
||||
if ($symbols{$sym}{'type'} ne $symbols{$sym}{'old_type'}) {
|
||||
printf(" TYPE : %-40s : %s => %s%s\n", $sym, $symbols{$sym}{'old_type'}.
|
||||
$symbols{$sym}{'type'}, is_ignored($symbols{$sym}{'loc'}, $sym)
|
||||
? " (ignored)" : "");
|
||||
$changed_type++ if $symbols{$sym}{'type'} ne "EXPORT_SYMBOL"
|
||||
and !is_ignored($symbols{$sym}{'loc'}, $sym);
|
||||
}
|
||||
|
||||
# Changes to the hash are always bad
|
||||
if ($symbols{$sym}{'hash'} ne $symbols{$sym}{'old_hash'}) {
|
||||
printf(" HASH : %-40s : %s => %s%s\n", $sym, $symbols{$sym}{'old_hash'},
|
||||
$symbols{$sym}{'hash'}, is_ignored($symbols{$sym}{'loc'}, $sym)
|
||||
? " (ignored)" : "");
|
||||
$changed_hash++ if !is_ignored($symbols{$sym}{'loc'}, $sym);
|
||||
$module_syms{$symbols{$sym}{'loc'}}++;
|
||||
}
|
||||
}
|
||||
|
||||
print "WW: $moved symbols changed location\n" if $moved;
|
||||
print "$EE $changed_type symbols changed export type and weren't ignored\n" if $changed_type;
|
||||
print "$EE $changed_hash symbols changed hash and weren't ignored\n" if $changed_hash;
|
||||
|
||||
$errors++ if $changed_hash or $changed_type;
|
||||
if ($changed_hash) {
|
||||
print "II: Module hash change summary...\n";
|
||||
foreach $mod (sort { $module_syms{$b} <=> $module_syms{$a} } keys %module_syms) {
|
||||
next if ! $module_syms{$mod};
|
||||
printf(" %-40s: %d\n", $mod, $module_syms{$mod});
|
||||
}
|
||||
}
|
||||
|
||||
print "II: Done\n";
|
||||
|
||||
if ($errors) {
|
||||
exit($fail_exit);
|
||||
} else {
|
||||
exit(0);
|
||||
}
|
||||
413
debian/scripts/config-check
vendored
413
debian/scripts/config-check
vendored
@@ -1,413 +0,0 @@
|
||||
#!/usr/bin/perl
|
||||
#
|
||||
# check-config -- check the current config for issues
|
||||
#
|
||||
use strict;
|
||||
|
||||
my $P = 'check-config';
|
||||
|
||||
my $test = -1;
|
||||
if ($ARGV[0] eq '--test') {
|
||||
$test = $ARGV[1] + 0;
|
||||
} elsif ($#ARGV != 4) {
|
||||
die "Usage: $P <config> <arch> <flavour> <commonconfig> <warn-only>\n";
|
||||
}
|
||||
|
||||
my ($config, $arch, $flavour, $commonconfig, $warn_only) = @ARGV;
|
||||
|
||||
my $checks = "$commonconfig/enforce";
|
||||
my %values = ();
|
||||
|
||||
# If we are in overridden then still perform the checks and emit the messages
|
||||
# but do not return failure. Those items marked FATAL will alway trigger
|
||||
# failure.
|
||||
my $fail_exit = 1;
|
||||
$fail_exit = 0 if ($warn_only eq 'true' || $warn_only eq '1');
|
||||
my $exit_val = 0;
|
||||
|
||||
# Predicate execution engine.
|
||||
sub pred_first {
|
||||
my ($rest) = @_;
|
||||
my $depth = 0;
|
||||
my $off;
|
||||
my $char;
|
||||
my $pred;
|
||||
|
||||
for ($off = 0; $off <= length($rest); $off++) {
|
||||
$char = substr($rest, $off, 1);
|
||||
if ($char eq '(') {
|
||||
$depth++;
|
||||
} elsif ($char eq ')') {
|
||||
$depth--;
|
||||
} elsif ($depth == 0 && $char eq '&') {
|
||||
last;
|
||||
} elsif ($depth == 0 && $char eq '|') {
|
||||
last;
|
||||
}
|
||||
}
|
||||
if ($depth > 0) {
|
||||
die "$P: $rest: missing close parenthesis ')'\n";
|
||||
} elsif ($depth < 0) {
|
||||
die "$P: $rest: missing open parenthesis '('\n";
|
||||
}
|
||||
|
||||
($pred, $rest) = (substr($rest, 0, $off), substr($rest, $off + 1));
|
||||
|
||||
$pred =~ s/^\s*//;
|
||||
$pred =~ s/\s*$//;
|
||||
|
||||
#print "pred<$pred> rest<$rest> char<$char>\n";
|
||||
($pred, $rest, $char);
|
||||
}
|
||||
|
||||
sub pred_do {
|
||||
my ($pred) = @_;
|
||||
my (@a) = split(' ', $pred);
|
||||
my $possible;
|
||||
|
||||
if ($a[0] eq 'arch') {
|
||||
die "$P: $pred: malformed -- $pred <arch>\n" if ($#a < 1);
|
||||
for $possible (@a[1..$#a]) {
|
||||
#print " *** ARCH<$flavour ?? $possible>\n";
|
||||
return 1 if ($arch eq $possible);
|
||||
}
|
||||
return 0;
|
||||
} elsif ($a[0] eq 'flavour') {
|
||||
die "$P: $pred: malformed -- $pred <flavour>\n" if ($#a < 1);
|
||||
for $possible (@a[1..$#a]) {
|
||||
#print " *** FLAVOUR<$flavour ?? $possible>\n";
|
||||
return 1 if ($flavour eq $possible);
|
||||
}
|
||||
return 0;
|
||||
} elsif ($a[0] eq 'value') {
|
||||
die "$P: $pred: malformed -- $pred <name> <val>\n" if ($#a != 2);
|
||||
#print " *** CHECK<$a[1] $a[2] ?? " . $values{$a[1]} . ">\n";
|
||||
return ($values{$a[1]} eq $a[2]);
|
||||
} elsif ($a[0] eq 'exists') {
|
||||
die "$P: $pred: malformed -- $pred <name>\n" if ($#a != 1);
|
||||
return (defined $values{$a[1]});
|
||||
} else {
|
||||
die "$P: $pred: unknown predicate\n";
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
sub pred_exec {
|
||||
my ($rest) = @_;
|
||||
my $pred;
|
||||
my $cut = 0;
|
||||
my $res;
|
||||
my $sep;
|
||||
|
||||
#print "pred_exec<$rest>\n";
|
||||
|
||||
($pred, $rest, $sep) = pred_first($rest);
|
||||
|
||||
# Leading ! implies inversion.
|
||||
if ($pred =~ /^\s*!\s*(.*)$/) {
|
||||
#print " invert<$1>\n";
|
||||
($cut, $res) = pred_exec($1);
|
||||
$res = !$res;
|
||||
|
||||
# Leading / implies a CUT operation.
|
||||
} elsif ($pred =~ /^\s*\/\s*(.*)$/) {
|
||||
#print " cut<$1>\n";
|
||||
($cut, $res) = pred_exec($1);
|
||||
$cut = 1;
|
||||
|
||||
# Recurse left for complex expressions.
|
||||
} elsif ($pred =~ /^\s*\((.*)\)\s*$/) {
|
||||
#print " left<$1>\n";
|
||||
($cut, $res) = pred_exec($1);
|
||||
|
||||
# Check for common syntax issues.
|
||||
} elsif ($pred eq '') {
|
||||
if ($sep eq '&' || $sep eq '|') {
|
||||
die "$P: $pred$rest: malformed binary operator\n";
|
||||
} else {
|
||||
die "$P: $pred$rest: syntax error\n";
|
||||
}
|
||||
|
||||
# A predicate, execute it.
|
||||
} else {
|
||||
#print " DO<$pred> sep<$sep>\n";
|
||||
$res = pred_do($pred);
|
||||
}
|
||||
|
||||
#print " pre-return res<$res> sep<$sep>\n";
|
||||
if ($sep eq '') {
|
||||
#
|
||||
|
||||
# Recurse right for binary operators -- note these are lazy.
|
||||
} elsif ($sep eq '&' || $sep eq '|') {
|
||||
#print " right<$rest> ? sep<$sep> res<$res>\n";
|
||||
if ($rest =~ /^\s*($|\||\&)/) {
|
||||
die "$P: $pred$rest: malformed binary operator\n";
|
||||
}
|
||||
if ($cut == 0 && (($res && $sep eq '&') || (!$res && $sep eq '|'))) {
|
||||
#print " right<$rest>\n";
|
||||
($cut, $res) = pred_exec($rest);
|
||||
}
|
||||
|
||||
} else {
|
||||
die "$P: $pred$rest: malformed predicate\n";
|
||||
}
|
||||
#warn " return cut<$cut> res<$res> sep<$sep>\n";
|
||||
return ($cut, $res);
|
||||
}
|
||||
|
||||
#
|
||||
# PREDICATE TESTS
|
||||
#
|
||||
my $test_total = 1;
|
||||
my $test_good = 0;
|
||||
sub pred_test {
|
||||
my ($pred, $eres, $eerr) = @_;
|
||||
my ($cut, $res, $err, $fail);
|
||||
|
||||
$test_total++;
|
||||
if ($test != 0 && $test != $test_total - 1) {
|
||||
return;
|
||||
}
|
||||
|
||||
eval {
|
||||
($cut, $res) = pred_exec($pred);
|
||||
};
|
||||
$err = $@;
|
||||
chomp($err);
|
||||
|
||||
$res = !!$res;
|
||||
$eres = !!$eres;
|
||||
|
||||
$fail = '';
|
||||
if (defined $eres && $res != $eres) {
|
||||
$fail = "result missmatch, expected $eres returned $res";
|
||||
}
|
||||
if (defined $eerr && $err eq '') {
|
||||
$fail = "error missmatch, expected '$eerr' returned success";
|
||||
} elsif (defined $eerr && $err !~ /$eerr/) {
|
||||
$fail = "error missmatch, expected '$eerr' returned '$err'";
|
||||
} elsif (!defined $eerr && $err ne '') {
|
||||
$fail = "error missmatch, expected success returned '$err'";
|
||||
}
|
||||
|
||||
if ($fail eq '') {
|
||||
$test_good++;
|
||||
} else {
|
||||
print "$pred: $test_total: FAIL: $fail\n";
|
||||
}
|
||||
#print "TEST<$pred> eres<$eres> eerr<$eerr> res<$res> err<$err>\n";
|
||||
}
|
||||
if ($test >= 0) {
|
||||
$arch = 'MYARCH';
|
||||
$flavour = 'MYFLAVOUR';
|
||||
%values = ( 'ENABLED' => 'y', 'DISABLED' => 'n' );
|
||||
|
||||
# Errors.
|
||||
my $eunkn = 'unknown predicate';
|
||||
my $epred = 'malformed';
|
||||
my $eclose = 'missing close parenthesis';
|
||||
my $eopen = 'missing open parenthesis';
|
||||
my $ebinary = 'malformed binary operator';
|
||||
|
||||
# Basic predicate tests.
|
||||
print "TEST: $test_total: basic predicate tests ...\n";
|
||||
|
||||
pred_test('nosuchcommand', undef, $eunkn);
|
||||
pred_test('arch', undef, $epred);
|
||||
pred_test('arch MYARCH', 1, undef);
|
||||
pred_test('arch MYARCH NOTMYARCH', 1, undef);
|
||||
pred_test('arch NOTMYARCH MYARCH', 1, undef);
|
||||
pred_test('arch NOTMYARCH NOTMYARCH MYARCH', 1, undef);
|
||||
pred_test('arch NOTMYARCH MYARCH NOTMYARCH', 1, undef);
|
||||
pred_test('arch NOTMYARCH', 0, undef);
|
||||
|
||||
pred_test('flavour', undef, $epred);
|
||||
pred_test('flavour MYFLAVOUR', 1, undef);
|
||||
pred_test('flavour NOTMYFLAVOUR MYFLAVOUR', 1, undef);
|
||||
pred_test('flavour NOTMYFLAVOUR NOTMYFLAVOUR MYFLAVOUR', 1, undef);
|
||||
pred_test('flavour NOTMYFLAVOUR MYFLAVOUR NOTMYFLAVOUR', 1, undef);
|
||||
pred_test('flavour NOTMYFLAVOUR', 0, undef);
|
||||
|
||||
pred_test('value', undef, $epred);
|
||||
pred_test('value ENABLED', undef, $epred);
|
||||
pred_test('value ENABLED ENABLED ENABLED', undef, $epred);
|
||||
pred_test('value ENABLED y', 1, undef);
|
||||
pred_test('value ENABLED n', 0, undef);
|
||||
pred_test('value DISABLED n', 1, undef);
|
||||
pred_test('value DISABLED y', 0, undef);
|
||||
|
||||
pred_test('exists', undef, $epred);
|
||||
pred_test('exists ENABLED ENABLED', undef, $epred);
|
||||
pred_test('exists ENABLED', 1, undef);
|
||||
pred_test('exists DISABLED', 1, undef);
|
||||
pred_test('exists MISSING', 0, undef);
|
||||
|
||||
print "TEST: $test_total: inversion tests ...\n";
|
||||
pred_test('!exists ENABLED', 0, undef);
|
||||
pred_test('!exists MISSING', 1, undef);
|
||||
pred_test('!!exists ENABLED', 1, undef);
|
||||
pred_test('!!exists MISSING', 0, undef);
|
||||
pred_test('!!!exists ENABLED', 0, undef);
|
||||
pred_test('!!!exists MISSING', 1, undef);
|
||||
|
||||
print "TEST: $test_total: parentheses tests ...\n";
|
||||
pred_test('(exists ENABLED)', 1, undef);
|
||||
pred_test('((exists ENABLED))', 1, undef);
|
||||
pred_test('(((exists ENABLED)))', 1, undef);
|
||||
pred_test('(exists MISSING)', 0, undef);
|
||||
pred_test('((exists MISSING))', 0, undef);
|
||||
pred_test('(((exists MISSING)))', 0, undef);
|
||||
|
||||
pred_test('(!exists ENABLED)', 0, undef);
|
||||
pred_test('((!exists ENABLED))', 0, undef);
|
||||
pred_test('(((!exists ENABLED)))', 0, undef);
|
||||
pred_test('(!exists MISSING)', 1, undef);
|
||||
pred_test('((!exists MISSING))', 1, undef);
|
||||
pred_test('(((!exists MISSING)))', 1, undef);
|
||||
|
||||
pred_test('((!(exists ENABLED)))', 0, undef);
|
||||
pred_test('((!(exists MISSING)))', 1, undef);
|
||||
pred_test('(!((exists ENABLED)))', 0, undef);
|
||||
pred_test('(!((exists MISSING)))', 1, undef);
|
||||
pred_test('!(((exists ENABLED)))', 0, undef);
|
||||
pred_test('!(((exists MISSING)))', 1, undef);
|
||||
pred_test('!((!(exists ENABLED)))', 1, undef);
|
||||
pred_test('!((!(exists MISSING)))', 0, undef);
|
||||
pred_test('!(!(!(exists ENABLED)))', 0, undef);
|
||||
pred_test('!(!(!(exists MISSING)))', 1, undef);
|
||||
|
||||
pred_test('(', undef, $eclose);
|
||||
pred_test('()(', undef, $eclose);
|
||||
pred_test('(())(', undef, $eclose);
|
||||
pred_test('((()))(', undef, $eclose);
|
||||
pred_test('(()', undef, $eclose);
|
||||
pred_test('((())', undef, $eclose);
|
||||
pred_test('(((()))', undef, $eclose);
|
||||
pred_test('(()()', undef, $eclose);
|
||||
pred_test('((())()', undef, $eclose);
|
||||
|
||||
pred_test(')', undef, $eopen);
|
||||
pred_test('())', undef, $eopen);
|
||||
pred_test('(()))', undef, $eopen);
|
||||
pred_test('((())))', undef, $eopen);
|
||||
|
||||
print "TEST: $test_total: binary and tests ...\n";
|
||||
|
||||
pred_test('exists ENABLED &', undef, $ebinary);
|
||||
pred_test('& exists ENABLED', undef, $ebinary);
|
||||
pred_test('exists ENABLED & & exists ENABLED', undef, $ebinary);
|
||||
|
||||
pred_test('exists MISSING & exists MISSING', 0, undef);
|
||||
pred_test('exists MISSING & exists ENABLED', 0, undef);
|
||||
pred_test('exists ENABLED & exists MISSING', 0, undef);
|
||||
pred_test('exists ENABLED & exists ENABLED', 1, undef);
|
||||
|
||||
pred_test('exists MISSING & exists MISSING & exists MISSING', 0, undef);
|
||||
pred_test('exists MISSING & exists MISSING & exists ENABLED', 0, undef);
|
||||
pred_test('exists MISSING & exists ENABLED & exists MISSING', 0, undef);
|
||||
pred_test('exists MISSING & exists ENABLED & exists ENABLED', 0, undef);
|
||||
pred_test('exists ENABLED & exists MISSING & exists MISSING', 0, undef);
|
||||
pred_test('exists ENABLED & exists MISSING & exists ENABLED', 0, undef);
|
||||
pred_test('exists ENABLED & exists ENABLED & exists MISSING', 0, undef);
|
||||
pred_test('exists ENABLED & exists ENABLED & exists ENABLED', 1, undef);
|
||||
|
||||
print "TEST: $test_total: binary or tests ...\n";
|
||||
|
||||
pred_test('exists ENABLED |', undef, $ebinary);
|
||||
pred_test('| exists ENABLED', undef, $ebinary);
|
||||
pred_test('exists ENABLED | | exists ENABLED', undef, $ebinary);
|
||||
|
||||
pred_test('exists MISSING | exists MISSING', 0, undef);
|
||||
pred_test('exists MISSING | exists ENABLED', 1, undef);
|
||||
pred_test('exists ENABLED | exists MISSING', 1, undef);
|
||||
pred_test('exists ENABLED | exists ENABLED', 1, undef);
|
||||
|
||||
pred_test('exists MISSING | exists MISSING | exists MISSING', 0, undef);
|
||||
pred_test('exists MISSING | exists MISSING | exists ENABLED', 1, undef);
|
||||
pred_test('exists MISSING | exists ENABLED | exists MISSING', 1, undef);
|
||||
pred_test('exists MISSING | exists ENABLED | exists ENABLED', 1, undef);
|
||||
pred_test('exists ENABLED | exists MISSING | exists MISSING', 1, undef);
|
||||
pred_test('exists ENABLED | exists MISSING | exists ENABLED', 1, undef);
|
||||
pred_test('exists ENABLED | exists ENABLED | exists MISSING', 1, undef);
|
||||
pred_test('exists ENABLED | exists ENABLED | exists ENABLED', 1, undef);
|
||||
|
||||
print "TEST: $test_total: binary or/and combination tests ...\n";
|
||||
|
||||
pred_test('exists MISSING | exists MISSING & exists MISSING', 0, undef);
|
||||
pred_test('exists MISSING | exists MISSING & exists ENABLED', 0, undef);
|
||||
pred_test('exists MISSING | exists ENABLED & exists MISSING', 0, undef);
|
||||
pred_test('exists MISSING | exists ENABLED & exists ENABLED', 1, undef);
|
||||
pred_test('exists ENABLED | exists MISSING & exists MISSING', 1, undef);
|
||||
pred_test('exists ENABLED | exists MISSING & exists ENABLED', 1, undef);
|
||||
pred_test('exists ENABLED | exists ENABLED & exists MISSING', 1, undef);
|
||||
pred_test('exists ENABLED | exists ENABLED & exists ENABLED', 1, undef);
|
||||
|
||||
print "TEST: $test_total: binary and/or combination tests ...\n";
|
||||
|
||||
pred_test('exists MISSING & exists MISSING | exists MISSING', 0, undef);
|
||||
pred_test('exists MISSING & exists MISSING | exists ENABLED', 0, undef);
|
||||
pred_test('exists MISSING & exists ENABLED | exists MISSING', 0, undef);
|
||||
pred_test('exists MISSING & exists ENABLED | exists ENABLED', 0, undef);
|
||||
pred_test('exists ENABLED & exists MISSING | exists MISSING', 0, undef);
|
||||
pred_test('exists ENABLED & exists MISSING | exists ENABLED', 1, undef);
|
||||
pred_test('exists ENABLED & exists ENABLED | exists MISSING', 1, undef);
|
||||
pred_test('exists ENABLED & exists ENABLED | exists ENABLED', 1, undef);
|
||||
|
||||
print "TEST: $test_total: cut tests ...\n";
|
||||
pred_test('(arch MYARCH & exists MISSING) | exists ENABLED', 1, undef);
|
||||
pred_test('(arch MYARCH &/ exists MISSING) | exists ENABLED', 0, undef);
|
||||
|
||||
$test_total--;
|
||||
print "TEST: $test_good/$test_total succeeded\n";
|
||||
|
||||
exit $exit_val;
|
||||
}
|
||||
|
||||
# Load up the current configuration values -- FATAL if this fails
|
||||
print "$P: $config: loading config\n";
|
||||
open(CONFIG, "<$config") || die "$P: $config: open failed -- $! -- aborting\n";
|
||||
while (<CONFIG>) {
|
||||
# Pull out values.
|
||||
/^#*\s*(CONFIG_\w+)[\s=](.*)$/ or next;
|
||||
if ($2 eq 'is not set') {
|
||||
$values{$1} = 'n';
|
||||
} else {
|
||||
$values{$1} = $2;
|
||||
}
|
||||
}
|
||||
close(CONFIG);
|
||||
|
||||
# FATAL: Check if we have an enforcement list.
|
||||
my $pass = 0;
|
||||
my $total = 0;
|
||||
my $line = '';
|
||||
print "$P: $checks: loading checks\n";
|
||||
open(CHECKS, "<$checks") || die "$P: $checks: open failed -- $! -- aborting\n";
|
||||
while (<CHECKS>) {
|
||||
/^#/ && next;
|
||||
chomp;
|
||||
|
||||
$line .= $_;
|
||||
if ($line =~ /\\$/) {
|
||||
chop($line);
|
||||
$line .= " ";
|
||||
next;
|
||||
}
|
||||
$line =~ /^\s*$/ && next;
|
||||
|
||||
#print "CHECK: <$line>\n";
|
||||
$total++;
|
||||
my (undef, $result) = pred_exec($line);
|
||||
if (!$result) {
|
||||
print "$P: FAIL: $line\n";
|
||||
$exit_val = $fail_exit;
|
||||
} else {
|
||||
$pass++;
|
||||
}
|
||||
|
||||
$line = '';
|
||||
}
|
||||
close(CHECKS);
|
||||
|
||||
print "$P: $pass/$total checks passed -- exit $exit_val\n";
|
||||
exit $exit_val;
|
||||
25
debian/scripts/control-create
vendored
25
debian/scripts/control-create
vendored
@@ -1,25 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
. debian/debian.env
|
||||
|
||||
vars=$1
|
||||
|
||||
. $vars
|
||||
|
||||
if [ "$is_sub" = "" ]; then
|
||||
flavour=$(basename $vars | sed 's/.*\.//')
|
||||
stub=${DEBIAN}/control.d/flavour-control.stub
|
||||
else
|
||||
flavour=$(basename $vars .vars)
|
||||
stub=${DEBIAN}/sub-flavours/control.stub
|
||||
fi
|
||||
|
||||
cat $stub | grep -v '^#' | sed \
|
||||
-e "s#FLAVOUR#$flavour#g" \
|
||||
-e "s#DESC#$desc#g" \
|
||||
-e "s#ARCH#$arch#g" \
|
||||
-e "s#SUPPORTED#$supported#g" \
|
||||
-e "s#TARGET#$target#g" \
|
||||
-e "s#BOOTLOADER#$bootloader#g" \
|
||||
-e "s#=PROVIDES=#$provides#g" \
|
||||
-e "s#=CONFLICTS=#$conflicts#g"
|
||||
42
debian/scripts/link-headers
vendored
42
debian/scripts/link-headers
vendored
@@ -1,42 +0,0 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
. debian/debian.env
|
||||
|
||||
hdrdir="$1"
|
||||
symdir="$2"
|
||||
flavour="$3"
|
||||
|
||||
echo "Symlinking and copying headers for $flavour..."
|
||||
|
||||
excludes="( -path ./debian -prune -o -path ./${DEBIAN} -prune -o -path ./.git ) -prune -o"
|
||||
|
||||
(
|
||||
find . $excludes -type f \
|
||||
\( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o \
|
||||
-name '*.sh' -o -name '*.pl' -o -name '*.lds' \) -print
|
||||
find ./include ./scripts -name .gitignore -prune -o -type f -print
|
||||
find ./include -mindepth 1 -maxdepth 1 $excludes -type d -print
|
||||
) | (
|
||||
while read file; do
|
||||
dir=$file
|
||||
lastdir=$file
|
||||
|
||||
if [ -e "$hdrdir/$file" -o -L "$hdrdir/$file" ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
while [ ! -e "$hdrdir/$dir" -a ! -L "$hdrdir/$dir" ]; do
|
||||
lastdir=$dir
|
||||
dir=`dirname $dir`
|
||||
done
|
||||
# If the last item to exist is a symlink we assume all is good
|
||||
if [ ! -L "$hdrdir/$dir" ]; then
|
||||
# Turns things like "./foo" into "../"
|
||||
deref="`echo -n $lastdir | sed -e 's/^\.//' -e's,/[^/]*,../,g'`"
|
||||
item="`echo -n $lastdir | sed -e 's/^\.\///'`"
|
||||
ln -s $deref$symdir/$item $hdrdir/$item
|
||||
fi
|
||||
done
|
||||
)
|
||||
|
||||
exit
|
||||
91
debian/scripts/misc/find-obsolete-firmware
vendored
91
debian/scripts/misc/find-obsolete-firmware
vendored
@@ -1,91 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Find all duplicate or obsolete firmware that is being carried
|
||||
# in the kernel firmware directory. Compare these files against
|
||||
# the linux-firmware package for the approriate release. For example,
|
||||
# assuming this is raring, then compare the kernel firmware files
|
||||
# against the raring branch of linux-firmware.
|
||||
#
|
||||
# Example: $0 ~/ubuntu/linux-firmware-raring
|
||||
|
||||
USEAGE="$0 LINUX-FIRMWARE"
|
||||
|
||||
. debian/debian.env
|
||||
|
||||
NFWINFO="`find $DEBIAN -name fwinfo|wc -l`"
|
||||
if [ ! "$NFWINFO" = "1" ]
|
||||
then
|
||||
echo Your repo is hosed. There can only be one fwinfo file.
|
||||
find $DEBIAN -name fwinfo
|
||||
exit 1
|
||||
fi
|
||||
|
||||
FWINFO="`pwd`/`find $DEBIAN -name fwinfo`"
|
||||
|
||||
if [ "$1" = "" ]
|
||||
then
|
||||
echo $USEAGE
|
||||
exit 1
|
||||
fi
|
||||
FW="$1"
|
||||
|
||||
if [ ! -f $FW/WHENCE ]
|
||||
then
|
||||
echo Bogus linux-firmware directory
|
||||
exit 1
|
||||
fi
|
||||
if ! egrep -q "^firmware:" $FWINFO
|
||||
then
|
||||
echo Bogus firmware info file
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#
|
||||
# Prepare the tree and make firmware.
|
||||
#
|
||||
TEE="tee -a"
|
||||
LO=`pwd`/firmware.txt
|
||||
LF=`pwd`/lib/firmware
|
||||
rm -rf debian/build $LF $LO
|
||||
fakeroot debian/rules clean prepare-generic
|
||||
cp debian/build/build-generic/.config .
|
||||
mkdir -p $LF
|
||||
make firmware_install INSTALL_MOD_PATH=`pwd`
|
||||
|
||||
(cd $LF
|
||||
find . -type f | while read f
|
||||
do
|
||||
BN="`basename $f`"
|
||||
|
||||
if ! grep -q $BN $FWINFO
|
||||
then
|
||||
echo "Unused firmware: $f" | $TEE $LO
|
||||
else
|
||||
if [ -f $FW/$f ]
|
||||
then
|
||||
if ! cmp $FW/$f $f
|
||||
then
|
||||
echo "$f differs" | $TEE $LO
|
||||
else
|
||||
echo "$f is duplicated" | $TEE $LO
|
||||
fi
|
||||
else
|
||||
echo "$f does not exist in $FW" | $TEE $LO
|
||||
fi
|
||||
fi
|
||||
done)
|
||||
|
||||
#
|
||||
# Check for firmware files referenced by the kernel
|
||||
# that do not exist in either location.
|
||||
#
|
||||
cat $FWINFO | while read fwi f
|
||||
do
|
||||
if [ -s lib/firmware/$f ] || [ -s $FW/$f ]
|
||||
then
|
||||
continue
|
||||
else
|
||||
echo "Missing firmware $f" | $TEE $LO
|
||||
fi
|
||||
done
|
||||
|
||||
18
debian/scripts/misc/fw-to-ihex.sh
vendored
18
debian/scripts/misc/fw-to-ihex.sh
vendored
@@ -1,18 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
F=$1
|
||||
if [ "$F" = "" ]
|
||||
then
|
||||
echo You must supply a firmware file.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "unsigned char d[] = {" > $F.c
|
||||
hexdump -v -e '"\t" 8/1 "0x%02x, " "\n"' $F >> $F.c
|
||||
echo "};" >> $F.c
|
||||
sed -i 's/0x .*$//' $F.c
|
||||
|
||||
O="`dirname $F`/`basename $F`.o"
|
||||
gcc -o $O -c $F.c
|
||||
objcopy -Oihex $F.o $F.ihex
|
||||
|
||||
62
debian/scripts/misc/get-firmware
vendored
62
debian/scripts/misc/get-firmware
vendored
@@ -1,62 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Find all files in linux-firmware that are new or different since the previous release
|
||||
# and copy them into the kernel firmware directory. You should only do this on the
|
||||
# backport branch since it would be redundant on the released kernel. It assumed you've
|
||||
# unpacked linux-firmware from each release into separate directories.
|
||||
#
|
||||
# Example: $0 ~/ubuntu/linux-firmware-precise ~/ubuntu/linux-firmware-quantal
|
||||
|
||||
if [ "$1" = "" ] || [ "$2" = "" ] || [ ! -f $1/WHENCE ] || [ ! -f $2/WHENCE ]
|
||||
then
|
||||
echo You must supply 2 firmware directories.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f debian/debian.env ]
|
||||
then
|
||||
echo You must run this script from the root of the repo
|
||||
exit 1
|
||||
fi
|
||||
. debian/debian.env
|
||||
|
||||
NFWINFO="`find $DEBIAN -name fwinfo|wc -l`"
|
||||
if [ ! "$NFWINFO" = "1" ]
|
||||
then
|
||||
echo Your repo is hosed. There can only be one fwinfo file.
|
||||
find $DEBIAN -name fwinfo
|
||||
exit 1
|
||||
fi
|
||||
|
||||
FWINFO="`pwd`/`find $DEBIAN -name fwinfo`"
|
||||
|
||||
CDIR=`pwd`
|
||||
OFW=$1
|
||||
NFW=$2
|
||||
|
||||
cd $NFW
|
||||
#
|
||||
# Find all files in $NFW that are new or different from $1
|
||||
#
|
||||
(find . -type f | egrep -v "debian|git|LICEN|WHEN|READ|Make|configure" | sed 's;\./;;' | \
|
||||
while read f
|
||||
do
|
||||
if grep -q $f $FWINFO
|
||||
then
|
||||
if [ ! -f $OFW/$f ]
|
||||
then
|
||||
echo $f
|
||||
elif ! cmp $f $OFW/$f > /dev/null
|
||||
then
|
||||
echo $f
|
||||
fi
|
||||
fi
|
||||
done) |\
|
||||
while read f
|
||||
do
|
||||
mkdir -p $CDIR/firmware/`dirname $f`
|
||||
if [ ! -f $CDIR/firmware/`dirname $f`/`basename $f`.ihex ]
|
||||
then
|
||||
cp -v $f $CDIR/firmware/`dirname $f`
|
||||
fi
|
||||
done
|
||||
130
debian/scripts/misc/getabis
vendored
130
debian/scripts/misc/getabis
vendored
@@ -1,130 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ "$#" != "2" ]; then
|
||||
echo "Usage: $0 <release> <revision>" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$DEBIAN" = "" ]; then
|
||||
. debian/debian.env
|
||||
fi
|
||||
|
||||
ver=$1
|
||||
revision=$2
|
||||
abi=$(echo $revision | awk -F. '{print $1}')
|
||||
|
||||
verabi=$ver-$abi
|
||||
verfull=$ver-$revision
|
||||
|
||||
WGET="wget --tries=1 --timeout=10 --quiet -c"
|
||||
|
||||
abidir="`pwd`/$DEBIAN/abi/$verfull"
|
||||
tmpdir="`pwd`/abi-tmp-$verfull"
|
||||
origdir="`pwd`"
|
||||
fwinfo=$abidir/fwinfo
|
||||
|
||||
test -d $tmpdir || mkdir $tmpdir
|
||||
|
||||
package_prefixes() {
|
||||
__package_prefixes="$@"
|
||||
}
|
||||
|
||||
getall() {
|
||||
arch=$1
|
||||
shift
|
||||
|
||||
mkdir -p $abidir/$arch
|
||||
|
||||
for sub in $@; do
|
||||
if [ -f $abidir/$arch/$sub ]; then
|
||||
echo "Exists: $sub"
|
||||
continue
|
||||
fi
|
||||
echo -n "Fetching $sub($arch)..."
|
||||
prefixes=""
|
||||
filenames=""
|
||||
cd $tmpdir
|
||||
for prefix in $__package_prefixes
|
||||
do
|
||||
filename=${prefix}-${verabi}-${sub}_${verfull}_${arch}.deb
|
||||
for r in "${repo_list[@]}"
|
||||
do
|
||||
if ! [ -f $filename ]; then
|
||||
$WGET $r/$filename
|
||||
fi
|
||||
if [ -f $filename ]; then
|
||||
prefixes="$prefixes $prefix"
|
||||
filenames="$filenames $filename"
|
||||
break
|
||||
fi
|
||||
done
|
||||
done
|
||||
if [ "$filenames" != "" ]; then
|
||||
echo -n "extracting$prefixes..."
|
||||
for filename in $filenames
|
||||
do
|
||||
dpkg-deb --extract $filename tmp
|
||||
done
|
||||
find tmp -name "*.ko" | while read f; do
|
||||
modinfo $f | grep ^firmware >> $fwinfo
|
||||
done
|
||||
if [ -f tmp/boot/abi-* ]; then
|
||||
mv tmp/boot/abi-* $abidir/$arch/$sub
|
||||
else
|
||||
echo -n "NO ABI FILE..."
|
||||
fi
|
||||
(cd tmp; find lib/modules/$verabi-$sub/kernel -name '*.ko') | \
|
||||
sed -e 's/.*\/\([^\/]*\)\.ko/\1/' | sort > \
|
||||
$abidir/$arch/$sub.modules
|
||||
(
|
||||
cd tmp;
|
||||
# Prevent exposing some errors when called by python scripts. SIGPIPE seems to get
|
||||
# exposed when using the `find ...` form of the command.
|
||||
ko=$(find lib/modules/$verabi-$sub/kernel \
|
||||
-name '*.ko' | head -1)
|
||||
readelf -p .comment "$ko" | awk '
|
||||
($1 == "[") {
|
||||
printf("%s", $3);
|
||||
for (n=4; n<=NF; n++) {
|
||||
printf(" %s", $n);
|
||||
}
|
||||
print ""
|
||||
}' | sort -u >$abidir/$arch/$sub.compiler
|
||||
version=`cat $abidir/$arch/$sub.compiler`
|
||||
echo -n "$version..."
|
||||
)
|
||||
rm -rf tmp $filenames
|
||||
echo "done."
|
||||
else
|
||||
echo "FAILED."
|
||||
fi
|
||||
cd $origdir
|
||||
done
|
||||
}
|
||||
|
||||
# MAIN
|
||||
|
||||
# Setup abi directory
|
||||
mkdir -p $abidir
|
||||
echo $abi > $abidir/abiname
|
||||
|
||||
# NOTE: The flavours are hardcoded, because they may have changed from the
|
||||
# current build.
|
||||
|
||||
__package_prefixes="linux-image"
|
||||
|
||||
. $DEBIAN/etc/getabis
|
||||
|
||||
compilers=`cat $abidir/*/*.compiler | sort -u | wc -l`
|
||||
if [ "$compilers" != 1 ]; then
|
||||
echo "WARNING: inconsistant compiler versions detected" 1>&2
|
||||
fi
|
||||
|
||||
sort < $fwinfo | uniq > fwinfo.tmp
|
||||
mv fwinfo.tmp $fwinfo
|
||||
|
||||
rmdir $tmpdir
|
||||
|
||||
# Add the new ABI directory, remove the old
|
||||
git add $abidir
|
||||
find $DEBIAN/abi/* -maxdepth 0 -type d | grep -v $verfull | while read f; do git rm -r $f;done
|
||||
232
debian/scripts/misc/git-ubuntu-log
vendored
232
debian/scripts/misc/git-ubuntu-log
vendored
@@ -1,232 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
use strict;
|
||||
use Text::Wrap;
|
||||
|
||||
my $kernel_auth = "Upstream Kernel Changes";
|
||||
|
||||
my (%map, @reverts);
|
||||
my $pstate = 1;
|
||||
my $no_kern_log = 0;
|
||||
my $print_shas = 0;
|
||||
my $first_print = 1;
|
||||
|
||||
while (@ARGV) {
|
||||
my $opt = $ARGV[0];
|
||||
shift;
|
||||
if ($opt eq "--no-kern-log") {
|
||||
$no_kern_log = 1;
|
||||
} elsif ($opt eq "--print-shas") {
|
||||
$print_shas = 1;
|
||||
} else {
|
||||
print STDERR "Unknown options: $opt\n";
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
sub check_reverts($) {
|
||||
my ($entry) = @_;
|
||||
my ($check);
|
||||
|
||||
foreach $check (reverse @reverts) {
|
||||
my $desc = "Revert \"" . $entry->{'desc'} . "\"";
|
||||
if ($check->{'desc'} eq $desc) {
|
||||
@reverts = grep($_->{'desc'} ne $desc, @reverts);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub add_entry($) {
|
||||
my ($entry) = @_;
|
||||
my $key = $entry->{'author'};
|
||||
|
||||
# store description in array, in email->{desc list} map
|
||||
if (exists $map{$key}) {
|
||||
# grab ref
|
||||
my $obj = $map{$key};
|
||||
|
||||
# add desc to array
|
||||
push(@$obj, $entry);
|
||||
} else {
|
||||
# create new array, containing 1 item
|
||||
my @arr = ($entry);
|
||||
|
||||
# store ref to array
|
||||
$map{$key} = \@arr;
|
||||
}
|
||||
}
|
||||
|
||||
sub shortlog_entry($$$$$) {
|
||||
my ($name, $desc, $bug, $cve, $commit) = @_;
|
||||
my $entry;
|
||||
|
||||
$desc =~ s#/pub/scm/linux/kernel/git/#/.../#g;
|
||||
$desc =~ s#\[PATCH\] ##g;
|
||||
|
||||
$desc =~ s#^\s*##g;
|
||||
$desc =~ s# *UBUNTU: ##g;
|
||||
|
||||
$entry->{'desc'} = $desc;
|
||||
if ($bug ne '') {
|
||||
$entry->{'bugno'} = $bug;
|
||||
}
|
||||
$entry->{'cve'} = $cve;
|
||||
$entry->{'commit'} = $commit;
|
||||
$entry->{'author'} = $name;
|
||||
|
||||
if ($desc =~ /^Revert "/) {
|
||||
push(@reverts, $entry);
|
||||
return;
|
||||
}
|
||||
|
||||
return if check_reverts($entry);
|
||||
|
||||
add_entry($entry);
|
||||
}
|
||||
|
||||
# sort comparison function
|
||||
sub by_name($$) {
|
||||
my ($a, $b) = @_;
|
||||
|
||||
uc($a) cmp uc($b);
|
||||
}
|
||||
|
||||
sub shortlog_output {
|
||||
my ($obj, $key, $entry);
|
||||
|
||||
foreach $key (sort by_name keys %map) {
|
||||
next if $key eq $kernel_auth and $no_kern_log;
|
||||
|
||||
print "\n" unless $first_print;
|
||||
$first_print = 0;
|
||||
|
||||
# output author
|
||||
printf " [ %s ]\n\n", $key;
|
||||
|
||||
# output author's 1-line summaries
|
||||
$obj = $map{$key};
|
||||
foreach $entry (reverse @$obj) {
|
||||
print wrap(" * ", " ", $entry->{'desc'}) . "\n";
|
||||
# For non upstream changes, add other info.
|
||||
if ($key ne $kernel_auth) {
|
||||
if ($print_shas) {
|
||||
print " - GIT-SHA " . $entry->{'commit'} .
|
||||
"\n";
|
||||
}
|
||||
}
|
||||
if (defined($entry->{'bugno'})) {
|
||||
print " - LP: #" . $entry->{'bugno'} . "\n";
|
||||
}
|
||||
if (defined($entry->{'cve'})) {
|
||||
print " - " . $entry->{'cve'} . "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub changelog_input {
|
||||
my ($author, $desc, $commit, $entry, $cve);
|
||||
|
||||
while (<STDIN>) {
|
||||
# get commit
|
||||
if ($pstate == 1) {
|
||||
next unless /^commit (.*)/;
|
||||
|
||||
$commit = $1;
|
||||
|
||||
$pstate++;
|
||||
}
|
||||
|
||||
# get author and email
|
||||
elsif ($pstate == 2) {
|
||||
my ($email);
|
||||
|
||||
next unless /^[Aa]uthor:?\s*(.*?)\s*<(.*)>/;
|
||||
|
||||
$author = $1;
|
||||
$email = $2;
|
||||
$desc = undef;
|
||||
$cve = undef;
|
||||
|
||||
# cset author fixups
|
||||
if (!$author) {
|
||||
$author = $email;
|
||||
}
|
||||
$pstate++;
|
||||
}
|
||||
|
||||
# skip to blank line
|
||||
elsif ($pstate == 3) {
|
||||
next unless /^\s*$/;
|
||||
$pstate++;
|
||||
}
|
||||
|
||||
# skip to non-blank line
|
||||
elsif ($pstate == 4) {
|
||||
next unless /^\s*?(.*)/;
|
||||
my $ignore = 0;
|
||||
my $do_ignore = 0;
|
||||
my $bug = undef;
|
||||
my %bugz = ();
|
||||
my $k;
|
||||
|
||||
# skip lines that are obviously not
|
||||
# a 1-line cset description
|
||||
next if /^\s*From: /;
|
||||
|
||||
chomp;
|
||||
$desc = $1;
|
||||
|
||||
if ($desc =~ /^ *(Revert "|)UBUNTU:/) {
|
||||
$do_ignore = 1;
|
||||
} else {
|
||||
$do_ignore = 0;
|
||||
$author = $kernel_auth;
|
||||
$ignore = 1 if $desc =~ /Merge /;
|
||||
}
|
||||
while (<STDIN>) {
|
||||
$ignore = 1 if ($do_ignore && /^ *Ignore: yes/i);
|
||||
if (/^ *Bug: *(#|)([0-9#,\s]*)\s*$/i) {
|
||||
foreach $k (split('(,|\s)\s*(#|)', $2)) {
|
||||
$bugz{$k} = 1 if (($k ne '') and ($k =~ /[0-9]+/));
|
||||
}
|
||||
}
|
||||
elsif (/^ *BugLink: *http.*:\/\/.*\/([0-9]+)/i) {
|
||||
$bugz{$1} = 1;
|
||||
}
|
||||
elsif (/^ *(CVE-.*)/) {
|
||||
$cve = $1
|
||||
}
|
||||
last if /^commit /;
|
||||
}
|
||||
|
||||
$bug = join(", #", sort keys(%bugz));
|
||||
if (!$ignore) {
|
||||
&shortlog_entry($author, $desc, $bug,
|
||||
$cve, $commit, 0);
|
||||
}
|
||||
|
||||
$pstate = 1;
|
||||
if ($_ && /^commit (.*)/) {
|
||||
$commit = $1;
|
||||
$pstate++;
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
die "invalid parse state $pstate";
|
||||
}
|
||||
}
|
||||
|
||||
foreach $entry (@reverts) {
|
||||
add_entry($entry);
|
||||
}
|
||||
}
|
||||
|
||||
&changelog_input;
|
||||
&shortlog_output;
|
||||
|
||||
exit(0);
|
||||
36
debian/scripts/misc/insert-changes.pl
vendored
36
debian/scripts/misc/insert-changes.pl
vendored
@@ -1,36 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
my $debian;
|
||||
$droot = $ARGV[0] if (defined $ARGV[0]);
|
||||
$droot = 'debian' if (!defined $droot);
|
||||
$debian = $ARGV[1] if (defined $ARGV[1]);
|
||||
$debian = 'debian.master' if (!defined $debian);
|
||||
|
||||
system("make -s -f $droot/rules printchanges > $debian/changes");
|
||||
|
||||
open(CHANGELOG, "< $debian/changelog") or die "Cannot open changelog";
|
||||
open(CHANGES, "< $debian/changes") or die "Cannot open new changes";
|
||||
open(NEW, "> $debian/changelog.new") or die "Cannot open new changelog";
|
||||
|
||||
$printed = 0;
|
||||
|
||||
while (<CHANGELOG>) {
|
||||
if (/^ CHANGELOG: /) {
|
||||
next if $printed;
|
||||
|
||||
while (<CHANGES>) {
|
||||
print NEW;
|
||||
}
|
||||
|
||||
$printed = 1;
|
||||
} else {
|
||||
print NEW;
|
||||
}
|
||||
}
|
||||
|
||||
close(NEW);
|
||||
close(CHANGES);
|
||||
close(CHANGELOG);
|
||||
|
||||
rename("$debian/changelog.new", "$debian/changelog");
|
||||
unlink("$debian/changes");
|
||||
42
debian/scripts/misc/insert-mainline-changes
vendored
42
debian/scripts/misc/insert-mainline-changes
vendored
@@ -1,42 +0,0 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
if ($#ARGV != 2) {
|
||||
warn "Usage: $0 <changelog> <to> <range>\n";
|
||||
die " $0 debian.master/changelog v3.2.3 v3.2.2..v3.2.3\n";
|
||||
}
|
||||
my ($changelog, $to, $range) = @ARGV;
|
||||
|
||||
my @changes = ();
|
||||
|
||||
push(@changes, "\n");
|
||||
push(@changes, " [ Upstream Kernel Changes ]\n\n");
|
||||
push(@changes, " * rebase to $to\n");
|
||||
|
||||
open(LOG, "git log '$range'|") || die "$0: git log failed: - $!\n";
|
||||
while (<LOG>) {
|
||||
if (m@BugLink: .*launchpad.net/.*/([0-9]+)\s$@) {
|
||||
push(@changes, " - LP: #$1\n");
|
||||
}
|
||||
}
|
||||
close(LOG);
|
||||
|
||||
open(CHANGELOG, "< $changelog") or die "Cannot open changelog";
|
||||
open(NEW, "> $changelog.new") or die "Cannot open new changelog";
|
||||
|
||||
$printed = 3;
|
||||
while (<CHANGELOG>) {
|
||||
if (/^ CHANGELOG: /) {
|
||||
$printed--;
|
||||
print NEW;
|
||||
if ($printed == 0) {
|
||||
print NEW @changes;
|
||||
}
|
||||
next;
|
||||
}
|
||||
print NEW;
|
||||
}
|
||||
|
||||
close(NEW);
|
||||
close(CHANGELOG);
|
||||
|
||||
rename("$changelog.new", "$changelog");
|
||||
58
debian/scripts/misc/insert-ubuntu-changes
vendored
58
debian/scripts/misc/insert-ubuntu-changes
vendored
@@ -1,58 +0,0 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
if ($#ARGV != 2) {
|
||||
die "Usage: $0 <changelog> <stop at> <start at>\n";
|
||||
}
|
||||
my ($changelog, $end, $start) = @ARGV;
|
||||
|
||||
$end =~ s/.*\.//;
|
||||
$start =~ s/.*\.//;
|
||||
|
||||
my @changes = ();
|
||||
my $output = 0;
|
||||
open(CHG, "<debian.manta/changelog") ||
|
||||
open(CHG, "<debian/changelog") ||
|
||||
die "$0: debian/changelog: open failed - $!\n";
|
||||
while (<CHG>) {
|
||||
if (/^\S+\s+\((.*\.(\d+))\)/) {
|
||||
if ($2 <= $end) {
|
||||
last;
|
||||
}
|
||||
if ($2 == $start) {
|
||||
$output = 1;
|
||||
}
|
||||
if ($output) {
|
||||
push(@changes, "\n [ Ubuntu: $1 ]\n\n");
|
||||
next;
|
||||
}
|
||||
}
|
||||
next if ($output == 0);
|
||||
|
||||
next if (/^\s*$/);
|
||||
next if (/^\s--/);
|
||||
next if (/^\s\s[^\*\s]/);
|
||||
|
||||
push(@changes, $_);
|
||||
}
|
||||
close(CHG);
|
||||
|
||||
open(CHANGELOG, "< $changelog") or die "Cannot open changelog";
|
||||
open(NEW, "> $changelog.new") or die "Cannot open new changelog";
|
||||
|
||||
$printed = 3;
|
||||
while (<CHANGELOG>) {
|
||||
if (/^ CHANGELOG: /) {
|
||||
$printed--;
|
||||
print NEW;
|
||||
if ($printed == 0) {
|
||||
print NEW @changes;
|
||||
}
|
||||
next;
|
||||
}
|
||||
print NEW;
|
||||
}
|
||||
|
||||
close(NEW);
|
||||
close(CHANGELOG);
|
||||
|
||||
rename("$changelog.new", "$changelog");
|
||||
172
debian/scripts/misc/kernelconfig
vendored
172
debian/scripts/misc/kernelconfig
vendored
@@ -1,172 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
. debian/debian.env
|
||||
|
||||
# Script to merge all configs and run 'make silentoldconfig' on it to wade out bad juju.
|
||||
# Then split the configs into distro-commmon and flavour-specific parts
|
||||
|
||||
# We have to be in the top level kernel source directory
|
||||
if [ ! -f MAINTAINERS ] || [ ! -f Makefile ]; then
|
||||
echo "This does not appear to be the kernel source directory." 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mode=${1:?"Usage: $0 [oldconfig|editconfig]"}
|
||||
yes=0
|
||||
case "$mode" in
|
||||
update*configs) mode='silentoldconfig' ;;
|
||||
default*configs) mode='oldconfig'; yes=1 ;;
|
||||
edit*configs) ;; # All is good
|
||||
gen*configs) mode='genconfigs' ;; # All is good
|
||||
dump*configs) mode='config'; yes=1 ;;
|
||||
*) echo "$0 called with invalid mode" 1>&2
|
||||
exit 1 ;;
|
||||
esac
|
||||
kerneldir="`pwd`"
|
||||
confdir="$kerneldir/${DEBIAN}/config"
|
||||
sharedconfdir="$kerneldir/debian.master/config"
|
||||
variant="$2"
|
||||
|
||||
. $DEBIAN/etc/kernelconfig
|
||||
|
||||
bindir="`pwd`/${DROOT}/scripts/misc"
|
||||
common_conf="$confdir/config.common.$family"
|
||||
tmpdir=`mktemp -d`
|
||||
mkdir "$tmpdir/CONFIGS"
|
||||
|
||||
if [ "$mode" = "genconfigs" ]; then
|
||||
keep=1
|
||||
mode="oldconfig"
|
||||
test -d CONFIGS || mkdir CONFIGS
|
||||
fi
|
||||
|
||||
for arch in $archs; do
|
||||
rm -rf build
|
||||
mkdir build
|
||||
|
||||
# Map debian archs to kernel archs
|
||||
case "$arch" in
|
||||
ppc64) kernarch="powerpc" ;;
|
||||
amd64) kernarch="x86_64" ;;
|
||||
lpia) kernarch="x86" ;;
|
||||
sparc) kernarch="sparc64" ;;
|
||||
armel|armhf) kernarch="arm" ;;
|
||||
*) kernarch="$arch" ;;
|
||||
esac
|
||||
|
||||
archconfdir=$confdir/$arch
|
||||
flavourconfigs=$(cd $archconfdir && ls config.flavour.*)
|
||||
|
||||
# Merge configs
|
||||
# We merge config.common.ubuntu + config.common.<arch> +
|
||||
# config.flavour.<flavour>
|
||||
|
||||
for config in $flavourconfigs; do
|
||||
fullconf="$tmpdir/$arch-$config-full"
|
||||
case $config in
|
||||
*)
|
||||
: >"$fullconf"
|
||||
if [ -f $common_conf ]; then
|
||||
cat $common_conf >> "$fullconf"
|
||||
fi
|
||||
if [ -f $archconfdir/config.common.$arch ]; then
|
||||
cat $archconfdir/config.common.$arch >> "$fullconf"
|
||||
fi
|
||||
cat "$archconfdir/$config" >>"$fullconf"
|
||||
if [ -f $confdir/OVERRIDES ]; then
|
||||
cat $confdir/OVERRIDES >> "$fullconf"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
for config in $flavourconfigs; do
|
||||
if [ -f $archconfdir/$config ]; then
|
||||
fullconf="$tmpdir/$arch-$config-full"
|
||||
cat "$fullconf" > build/.config
|
||||
# Call oldconfig or menuconfig
|
||||
case "$mode" in
|
||||
editconfigs)
|
||||
# Interactively edit config parameters
|
||||
while : ; do
|
||||
echo -n "Do you want to edit config: $arch/$config? [Y/n] "
|
||||
read choice
|
||||
|
||||
case "$choice" in
|
||||
y* | Y* | "" )
|
||||
make O=`pwd`/build ARCH=$kernarch menuconfig
|
||||
break ;;
|
||||
n* | N* )
|
||||
break ;;
|
||||
*)
|
||||
echo "Entry not valid"
|
||||
esac
|
||||
done
|
||||
;;
|
||||
*)
|
||||
echo "* Run $mode (yes=$yes) on $arch/$config ..."
|
||||
if [ "$yes" -eq 1 ]; then
|
||||
yes "" | make O=`pwd`/build ARCH=$kernarch "$mode"
|
||||
else
|
||||
make O=`pwd`/build ARCH=$kernarch "$mode"
|
||||
fi ;;
|
||||
esac
|
||||
cat build/.config > $archconfdir/$config
|
||||
cat build/.config > "$tmpdir/CONFIGS/$arch-$config"
|
||||
if [ "$keep" = "1" ]; then
|
||||
cat build/.config > CONFIGS/$arch-$config
|
||||
fi
|
||||
else
|
||||
echo "!! Config not found $archconfdir/$config..."
|
||||
fi
|
||||
done
|
||||
|
||||
echo "Running splitconfig.pl for $arch"
|
||||
echo
|
||||
|
||||
# Can we make this more robust by avoiding $tmpdir completely?
|
||||
# This approach was used for now because I didn't want to change
|
||||
# splitconfig.pl
|
||||
(cd $archconfdir; $bindir/splitconfig.pl config.flavour.*; mv config.common \
|
||||
config.common.$arch; cp config.common.$arch $tmpdir)
|
||||
done
|
||||
|
||||
rm -f $common_conf
|
||||
|
||||
# Now run splitconfig.pl on all the config.common.<arch> copied to
|
||||
# $tmpdir
|
||||
(cd $tmpdir; $bindir/splitconfig.pl *)
|
||||
(
|
||||
cd $confdir;
|
||||
rm -f *-full
|
||||
grep -v 'is UNMERGABLE' <$tmpdir/config.common >$common_conf
|
||||
for arch in $archs; do
|
||||
grep -v 'is UNMERGABLE' <$tmpdir/config.common.$arch \
|
||||
>$arch/config.common.$arch
|
||||
done
|
||||
)
|
||||
|
||||
echo ""
|
||||
echo "Running config-check for all configurations ..."
|
||||
echo ""
|
||||
fail=0
|
||||
for arch in $archs; do
|
||||
archconfdir=$confdir/$arch
|
||||
flavourconfigs=$(cd $archconfdir && ls config.flavour.*)
|
||||
for config in $flavourconfigs; do
|
||||
flavour="${config##*.}"
|
||||
if [ -f $archconfdir/$config ]; then
|
||||
fullconf="$tmpdir/CONFIGS/$arch-$config"
|
||||
"$bindir/../config-check" "$fullconf" "$arch" "$flavour" "$sharedconfdir" "0" || let "fail=$fail+1"
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
if [ "$fail" != 0 ]; then
|
||||
echo ""
|
||||
echo "*** ERROR: $fail config-check failures detected"
|
||||
echo ""
|
||||
fi
|
||||
|
||||
rm -rf build
|
||||
|
||||
34
debian/scripts/misc/retag
vendored
34
debian/scripts/misc/retag
vendored
@@ -1,34 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
open(TAGS, "git tag -l |") or die "Could not get list of tags";
|
||||
@tags = <TAGS>;
|
||||
close(TAGS);
|
||||
|
||||
open(LOGS, "git log --pretty=short |") or die "ERROR: Calling git log";
|
||||
my $commit = "";
|
||||
|
||||
while (<LOGS>) {
|
||||
my $origtag;
|
||||
|
||||
if (m|^commit (.*)$|) {
|
||||
$commit = $1;
|
||||
next;
|
||||
}
|
||||
|
||||
m|\s*UBUNTU: (Ubuntu-2\.6\..*)| or next;
|
||||
|
||||
$tag = $1;
|
||||
|
||||
($origtag) = grep(/^$tag.orig$/, @tags);
|
||||
|
||||
if (!defined($origtag)) {
|
||||
print "I: Adding original tag for $tag\n";
|
||||
system("git tag -m $tag $tag.orig $tag");
|
||||
}
|
||||
|
||||
print "I: Tagging $tag => $commit\n";
|
||||
|
||||
system("git tag -f -m $tag $tag $commit");
|
||||
}
|
||||
|
||||
close(LOGS);
|
||||
107
debian/scripts/misc/splitconfig.pl
vendored
107
debian/scripts/misc/splitconfig.pl
vendored
@@ -1,107 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
%allconfigs = ();
|
||||
%common = ();
|
||||
|
||||
print "Reading config's ...\n";
|
||||
|
||||
for $config (@ARGV) {
|
||||
# Only config.*
|
||||
next if $config !~ /^config\..*/;
|
||||
# Nothing that is disabled, or remnant
|
||||
next if $config =~ /.*\.(default|disabled|stub)$/;
|
||||
|
||||
%{$allconfigs{$config}} = ();
|
||||
|
||||
print " processing $config ... ";
|
||||
|
||||
open(CONFIG, "< $config");
|
||||
|
||||
while (<CONFIG>) {
|
||||
# Skip comments
|
||||
/^#*\s*CONFIG_(\w+)[\s=](.*)$/ or next;
|
||||
|
||||
${$allconfigs{$config}}{$1} = $2;
|
||||
|
||||
$common{$1} = $2;
|
||||
}
|
||||
|
||||
close(CONFIG);
|
||||
|
||||
print "done.\n";
|
||||
}
|
||||
|
||||
print "\n";
|
||||
|
||||
print "Merging lists ... \n";
|
||||
|
||||
# %options - pointer to flavour config inside the allconfigs array
|
||||
for $config (keys(%allconfigs)) {
|
||||
my %options = %{$allconfigs{$config}};
|
||||
|
||||
print " processing $config ... ";
|
||||
|
||||
for $key (keys(%common)) {
|
||||
next if not defined $common{$key};
|
||||
|
||||
# If we don't have the common option, then it isn't
|
||||
# common. If we do have that option, it must have the same
|
||||
# value. EXCEPT where this file does not have a value at all
|
||||
# which may safely be merged with any other value; the value
|
||||
# will be elided during recombination of the parts.
|
||||
if (!defined($options{$key})) {
|
||||
# Its ok really ... let it merge
|
||||
} elsif (not defined($options{$key})) {
|
||||
undef $common{$key};
|
||||
} elsif ($common{$key} ne $options{$key}) {
|
||||
undef $common{$key};
|
||||
}
|
||||
}
|
||||
|
||||
print "done.\n";
|
||||
}
|
||||
|
||||
print "\n";
|
||||
|
||||
print "Creating common config ... ";
|
||||
|
||||
open(COMMON, "> config.common");
|
||||
print COMMON "#\n# Common config options automatically generated by splitconfig.pl\n#\n";
|
||||
|
||||
for $key (sort(keys(%common))) {
|
||||
if (not defined $common{$key}) {
|
||||
print COMMON "# CONFIG_$key is UNMERGABLE\n";
|
||||
} elsif ($common{$key} eq "is not set") {
|
||||
print COMMON "# CONFIG_$key is not set\n";
|
||||
} else {
|
||||
print COMMON "CONFIG_$key=$common{$key}\n";
|
||||
}
|
||||
}
|
||||
close(COMMON);
|
||||
|
||||
print "done.\n\n";
|
||||
|
||||
print "Creating stub configs ...\n";
|
||||
|
||||
for $config (keys(%allconfigs)) {
|
||||
my %options = %{$allconfigs{$config}};
|
||||
|
||||
print " processing $config ... ";
|
||||
|
||||
open(STUB, "> $config");
|
||||
print STUB "#\n# Config options for $config automatically generated by splitconfig.pl\n#\n";
|
||||
|
||||
for $key (sort(keys(%options))) {
|
||||
next if defined $common{$key};
|
||||
|
||||
if ($options{$key} =~ /^is /) {
|
||||
print STUB "# CONFIG_$key $options{$key}\n";
|
||||
} else {
|
||||
print STUB "CONFIG_$key=$options{$key}\n";
|
||||
}
|
||||
}
|
||||
|
||||
close(STUB);
|
||||
|
||||
print "done.\n";
|
||||
}
|
||||
120
debian/scripts/module-check
vendored
120
debian/scripts/module-check
vendored
@@ -1,120 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
$flavour = shift;
|
||||
$prev_abidir = shift;
|
||||
$abidir = shift;
|
||||
$skipmodule = shift;
|
||||
|
||||
print "II: Checking modules for $flavour...";
|
||||
|
||||
if (-f "$prev_abidir/ignore.modules"
|
||||
or -f "$prev_abidir/$flavour.ignore.modules") {
|
||||
print "explicitly ignoring modules\n";
|
||||
exit(0);
|
||||
}
|
||||
|
||||
if (not -f "$abidir/$flavour.modules" or not -f
|
||||
"$prev_abidir/$flavour.modules") {
|
||||
print "previous or current modules file missing!\n";
|
||||
print " $abidir/$flavour.modules\n";
|
||||
print " $prev_abidir/$flavour.modules\n";
|
||||
if (defined($skipmodule)) {
|
||||
exit(0);
|
||||
} else {
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
print "\n";
|
||||
|
||||
my %modules;
|
||||
my %modules_ignore;
|
||||
my $missing = 0;
|
||||
my $new = 0;
|
||||
my $errors = 0;
|
||||
|
||||
# See if we have any ignores
|
||||
if (-f "$prev_abidir/../modules.ignore") {
|
||||
my $ignore = 0;
|
||||
open(IGNORE, "< $prev_abidir/../modules.ignore") or
|
||||
die "Could not open $prev_abidir/../modules.ignore";
|
||||
print " reading modules to ignore...";
|
||||
while (<IGNORE>) {
|
||||
chomp;
|
||||
next if /\s*#/;
|
||||
$modules_ignore{$_} = 1;
|
||||
$ignore++;
|
||||
}
|
||||
close(IGNORE);
|
||||
print "read $ignore modules.\n";
|
||||
}
|
||||
|
||||
# Read new modules first
|
||||
print " reading new modules...";
|
||||
$new_count = 0;
|
||||
open(NEW, "< $abidir/$flavour.modules") or
|
||||
die "Could not open $abidir/$flavour.modules";
|
||||
while (<NEW>) {
|
||||
chomp;
|
||||
$modules{$_} = 1;
|
||||
$new_count++;
|
||||
}
|
||||
close(NEW);
|
||||
print "read $new_count modules.\n";
|
||||
|
||||
# Now the old modules, checking for missing ones
|
||||
print " reading old modules...";
|
||||
$old_count = 0;
|
||||
open(OLD, "< $prev_abidir/$flavour.modules") or
|
||||
die "Could not open $prev_abidir/$flavour.modules";
|
||||
while (<OLD>) {
|
||||
chomp;
|
||||
if (not defined($modules{$_})) {
|
||||
print "\n" if not $missing;
|
||||
$missing++;
|
||||
if (not defined($modules_ignore{$_})) {
|
||||
print " MISS: $_\n";
|
||||
$errors++;
|
||||
} else {
|
||||
print " MISS: $_ (ignored)\n";
|
||||
}
|
||||
} else {
|
||||
$modules{$_}++;
|
||||
}
|
||||
$old_count++;
|
||||
}
|
||||
close(OLD);
|
||||
# Check for new modules
|
||||
foreach $mod (keys(%modules)) {
|
||||
if ($modules{$mod} < 2) {
|
||||
print "\n" if not $missing and not $new;
|
||||
print " NEW : $mod\n";
|
||||
$new++;
|
||||
}
|
||||
}
|
||||
if ($new or $missing) {
|
||||
print " read $old_count modules : new($new) missing($missing)\n";
|
||||
} else {
|
||||
print "read $old_count modules.\n";
|
||||
}
|
||||
|
||||
|
||||
# Let's see where we stand...
|
||||
if ($errors) {
|
||||
if (defined($skipmodule)) {
|
||||
print "WW: Explicitly asked to ignore failures (probably not good)\n";
|
||||
} else {
|
||||
print "EE: Missing modules (start begging for mercy)\n";
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
if ($new) {
|
||||
print "II: New modules (you've been busy, wipe the poop off your nose)\n";
|
||||
} else {
|
||||
print "II: No new modules (hope you're happy, slacker)\n";
|
||||
}
|
||||
|
||||
print "II: Done\n";
|
||||
|
||||
exit(0);
|
||||
60
debian/scripts/module-inclusion
vendored
60
debian/scripts/module-inclusion
vendored
@@ -1,60 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
#
|
||||
# Build a new directory of modules based on an inclusion list.
|
||||
# The includsion list format must be a bash regular expression.
|
||||
#
|
||||
# usage: $0 ROOT INCLUSION_LIST
|
||||
# example: $0 debian/build/build-virtual \
|
||||
# debian/build/build-virtual-ALL debian/build/build-virtual \
|
||||
# debian.master/control.d/virtual.inclusion-list
|
||||
master=0
|
||||
if [ "$1" = "--master" ]; then
|
||||
master=1
|
||||
shift
|
||||
fi
|
||||
|
||||
ROOT=$1
|
||||
NROOT=$2
|
||||
ILIST=$3
|
||||
|
||||
#
|
||||
# Prep a destination directory.
|
||||
#
|
||||
mkdir -p ${NROOT}
|
||||
|
||||
# Copy over the framework...
|
||||
if [ "$master" -eq 1 ]; then
|
||||
(cd ${ROOT}; find . ! -name "*.ko" -type f) | \
|
||||
while read f
|
||||
do
|
||||
mkdir -p ${NROOT}/`dirname $f`
|
||||
mv ${ROOT}/$f ${NROOT}/$f
|
||||
done
|
||||
fi
|
||||
|
||||
cat ${ILIST} |while read i
|
||||
do
|
||||
#
|
||||
# 'find' blurts a warning if it cannot find any ko files.
|
||||
#
|
||||
if echo "$i" | grep '\*' > /dev/null
|
||||
then
|
||||
(cd ${ROOT}; eval find "${i}" -name "*.ko") |while read f
|
||||
do
|
||||
mkdir -p ${NROOT}/`dirname $f`
|
||||
mv ${ROOT}/$f ${NROOT}/$f
|
||||
done
|
||||
else
|
||||
if [ -f "${ROOT}/$i" ]
|
||||
then
|
||||
mkdir -p ${NROOT}/`dirname $i`
|
||||
mv ${ROOT}/$i ${NROOT}/$i
|
||||
else
|
||||
echo Warning: Could not find ${ROOT}/$i
|
||||
fi
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
exit 0
|
||||
69
debian/scripts/sub-flavour
vendored
69
debian/scripts/sub-flavour
vendored
@@ -1,69 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
. debian/debian.env
|
||||
|
||||
echo "SUB_PROCESS $FROM => $TO"
|
||||
|
||||
export from_pkg="linux-image-$ABI_RELEASE-$FROM"
|
||||
export to_pkg="linux-image-$ABI_RELEASE-$TO"
|
||||
|
||||
from_moddir="debian/$from_pkg/lib/modules/$ABI_RELEASE-$FROM"
|
||||
to_moddir="debian/$to_pkg/lib/modules/$ABI_RELEASE-$FROM"
|
||||
|
||||
install -d "debian/$to_pkg/boot"
|
||||
install -m644 debian/$from_pkg/boot/config-$ABI_RELEASE-$FROM \
|
||||
debian/$to_pkg/boot/
|
||||
install -m600 debian/$from_pkg/boot/{vmlinuz,System.map}-$ABI_RELEASE-$FROM \
|
||||
debian/$to_pkg/boot/
|
||||
|
||||
#
|
||||
# Print some warnings if there are files in the sub-flavours list
|
||||
# that do not actually exist.
|
||||
#
|
||||
cat ${DEBIAN}/sub-flavours/$TO.list | while read line
|
||||
do
|
||||
(
|
||||
cd debian/$from_pkg/lib/modules/$ABI_RELEASE-$FROM/kernel;
|
||||
#
|
||||
# If its a wildcard, then check that there are files that match.
|
||||
#
|
||||
if echo "$line" | grep '\*' > /dev/null
|
||||
then
|
||||
if [ `eval find "$line" -name '*.ko' 2>/dev/null|wc -l` -lt 1 ]
|
||||
then
|
||||
echo SUB_INST Warning - No files in $line
|
||||
fi
|
||||
#
|
||||
# Else it should be a single file reference.
|
||||
#
|
||||
elif [ ! -f "$line" ]
|
||||
then
|
||||
echo SUB_INST Warning - could not find "$line"
|
||||
fi
|
||||
)
|
||||
done
|
||||
|
||||
cat ${DEBIAN}/sub-flavours/$TO.list | while read line; do
|
||||
(
|
||||
cd debian/$from_pkg/lib/modules/$ABI_RELEASE-$FROM/kernel;
|
||||
if echo "$line" | grep '\*' > /dev/null
|
||||
then
|
||||
eval find "$line" -name '*.ko' 2>/dev/null || true
|
||||
elif [ -f "$line" ]
|
||||
then
|
||||
echo "$line"
|
||||
fi
|
||||
);
|
||||
done | while read mod; do
|
||||
echo "SUB_INST checking: $mod"
|
||||
fromdir="/lib/modules/$ABI_RELEASE-$FROM/"
|
||||
egrep "^($fromdir)?kernel/$mod:" \
|
||||
$from_moddir/modules.dep | sed -e "s|^$fromdir||" -e 's/://' -e 's/ /\n/g' | \
|
||||
while read m; do
|
||||
m="${fromdir}$m"
|
||||
test -f debian/$to_pkg/$m && continue
|
||||
echo "SUB_INST installing: $m"
|
||||
install -D -m644 debian/$from_pkg/$m \
|
||||
debian/$to_pkg/$m
|
||||
done
|
||||
done
|
||||
1
debian/source/format
vendored
1
debian/source/format
vendored
@@ -1 +0,0 @@
|
||||
1.0
|
||||
1
debian/stamps/keep-dir
vendored
1
debian/stamps/keep-dir
vendored
@@ -1 +0,0 @@
|
||||
Place holder
|
||||
21
debian/tests-build/README
vendored
21
debian/tests-build/README
vendored
@@ -1,21 +0,0 @@
|
||||
Scripts placed in this directory get called one at a time by run-parts(8).
|
||||
The scripts are expected to perform some sort of sanity checks on the
|
||||
finished build. Scripts will be called once for each flavour.
|
||||
|
||||
Some environment variables are exported to make life a little easier:
|
||||
|
||||
DPKG_ARCH : The dpkg architecture (e.g. "amd64")
|
||||
KERN_ARCH : The kernel architecture (e.g. "x86_64")
|
||||
FLAVOUR : The specific flavour for this run (e.g. "generic")
|
||||
VERSION : The full version of this build (e.g. 2.6.22-1)
|
||||
REVISION : The exact revision of this build (e.g. 1.3)
|
||||
PREV_REVISION : The revision prior to this one
|
||||
ABI_NUM : The specific ABI number for this build (e.g. 2)
|
||||
PREV_ABI_NUM : The previous ABI number. Can be the same as ABI_NUM.
|
||||
BUILD_DIR : The directory where this build took place
|
||||
INSTALL_DIR : The directory where the package is prepared
|
||||
SOURCE_DIR : Where the main kernel source is
|
||||
|
||||
Scripts are expected to have a zero exit status when no problems occur,
|
||||
and non-zero when an error occurs that should stop the build. Scripts
|
||||
should print whatever info they deem needed to deduce the problem.
|
||||
24
debian/tests-build/check-aliases
vendored
24
debian/tests-build/check-aliases
vendored
@@ -1,24 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
my %map;
|
||||
|
||||
print "Checking for dupe aliases in $ENV{'FLAVOUR'}...\n";
|
||||
|
||||
$aliases =
|
||||
"$ENV{'INSTALL_DIR'}/lib/modules/$ENV{'VERSION'}-$ENV{'FLAVOUR'}/modules.alias";
|
||||
|
||||
open(ALIASES, "< $aliases") or die "Could not open $aliases";
|
||||
|
||||
while (<ALIASES>) {
|
||||
chomp;
|
||||
my ($junk, $alias, $module) = split;
|
||||
|
||||
if (defined($map{$alias})) {
|
||||
printf("%s %20s / %-20s : %s \n", ("$map{$alias}" eq "$module")
|
||||
? "INT" : " ", $map{$alias}, $module, $alias);
|
||||
} else {
|
||||
$map{$alias} = $module;
|
||||
}
|
||||
}
|
||||
|
||||
exit(0);
|
||||
21
debian/tests/README
vendored
21
debian/tests/README
vendored
@@ -1,21 +0,0 @@
|
||||
Scripts placed in this directory get called one at a time by run-parts(8).
|
||||
The scripts are expected to perform some sort of sanity checks on the
|
||||
finished build. Scripts will be called once for each flavour.
|
||||
|
||||
Some environment variables are exported to make life a little easier:
|
||||
|
||||
DPKG_ARCH : The dpkg architecture (e.g. "amd64")
|
||||
KERN_ARCH : The kernel architecture (e.g. "x86_64")
|
||||
FLAVOUR : The specific flavour for this run (e.g. "generic")
|
||||
VERSION : The full version of this build (e.g. 2.6.22-1)
|
||||
REVISION : The exact revision of this build (e.g. 1.3)
|
||||
PREV_REVISION : The revision prior to this one
|
||||
ABI_NUM : The specific ABI number for this build (e.g. 2)
|
||||
PREV_ABI_NUM : The previous ABI number. Can be the same as ABI_NUM.
|
||||
BUILD_DIR : The directory where this build took place
|
||||
INSTALL_DIR : The directory where the package is prepared
|
||||
SOURCE_DIR : Where the main kernel source is
|
||||
|
||||
Scripts are expected to have a zero exit status when no problems occur,
|
||||
and non-zero when an error occurs that should stop the build. Scripts
|
||||
should print whatever info they deem needed to deduce the problem.
|
||||
24
debian/tests/check-aliases
vendored
24
debian/tests/check-aliases
vendored
@@ -1,24 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
my %map;
|
||||
|
||||
print "Checking for dupe aliases in $ENV{'FLAVOUR'}...\n";
|
||||
|
||||
$aliases =
|
||||
"$ENV{'INSTALL_DIR'}/lib/modules/$ENV{'VERSION'}-$ENV{'FLAVOUR'}/modules.alias";
|
||||
|
||||
open(ALIASES, "< $aliases") or die "Could not open $aliases";
|
||||
|
||||
while (<ALIASES>) {
|
||||
chomp;
|
||||
my ($junk, $alias, $module) = split;
|
||||
|
||||
if (defined($map{$alias})) {
|
||||
printf("%s %20s / %-20s : %s \n", ("$map{$alias}" eq "$module")
|
||||
? "INT" : " ", $map{$alias}, $module, $alias);
|
||||
} else {
|
||||
$map{$alias} = $module;
|
||||
}
|
||||
}
|
||||
|
||||
exit(0);
|
||||
3
debian/tests/control
vendored
3
debian/tests/control
vendored
@@ -1,3 +0,0 @@
|
||||
Tests: rebuild
|
||||
Depends:
|
||||
Restrictions: build-needed
|
||||
1
debian/tests/rebuild
vendored
1
debian/tests/rebuild
vendored
@@ -1 +0,0 @@
|
||||
#!/bin/true
|
||||
16
debian/tools/generic
vendored
16
debian/tools/generic
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
full_version=`uname -r`
|
||||
|
||||
# Removing flavour from version i.e. generic or server.
|
||||
flavour_abi=${full_version#*-}
|
||||
flavour=${flavour_abi#*-}
|
||||
version=${full_version%-$flavour}
|
||||
this="$0_$version"
|
||||
|
||||
if [ ! -f "$this" ]; then
|
||||
echo "$this not found" >&2
|
||||
echo "You may need to install linux-tools-$version" >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
exec "$this" "$@"
|
||||
16
debian/tools/perf
vendored
16
debian/tools/perf
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
full_version=`uname -r`
|
||||
|
||||
# Removing flavour from version i.e. generic or server.
|
||||
flavour_abi=${full_version#*-}
|
||||
flavour=${flavour_abi#*-}
|
||||
version=${full_version%-$flavour}
|
||||
perf="perf_$version"
|
||||
|
||||
if ! which "$perf" > /dev/null; then
|
||||
echo "$perf not found" >&2
|
||||
echo "You may need to install linux-tools-$version" >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
exec "$perf" "$@"
|
||||
16
debian/tools/turbostat
vendored
16
debian/tools/turbostat
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
full_version=`uname -r`
|
||||
|
||||
# Removing flavour from version i.e. generic or server.
|
||||
flavour_abi=${full_version#*-}
|
||||
flavour=${flavour_abi#*-}
|
||||
version=${full_version%-$flavour}
|
||||
turbostat="turbostat_$version"
|
||||
|
||||
if ! which "$turbostat" > /dev/null; then
|
||||
echo "$turbostat not found" >&2
|
||||
echo "You may need to install linux-tools-$version" >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
exec "$turbostat" "$@"
|
||||
16
debian/tools/x86_energy_perf_policy
vendored
16
debian/tools/x86_energy_perf_policy
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
full_version=`uname -r`
|
||||
|
||||
# Removing flavour from version i.e. generic or server.
|
||||
flavour_abi=${full_version#*-}
|
||||
flavour=${flavour_abi#*-}
|
||||
version=${full_version%-$flavour}
|
||||
x86_energy_perf_policy="x86_energy_perf_policy_$version"
|
||||
|
||||
if ! which "$x86_energy_perf_policy" > /dev/null; then
|
||||
echo "$x86_energy_perf_policy not found" >&2
|
||||
echo "You may need to install linux-tools-$version" >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
exec "$x86_energy_perf_policy" "$@"
|
||||
Reference in New Issue
Block a user