Compare commits

...
Author SHA1 Message Date
Qt Submodule Update Bot d8a40d6570 Updated submodules.
Change-Id: I2f80b640ab55f99b2379a41e6ce8c7df30f138a4
Reviewed-by: Iikka Eklund <[email protected]>
2014-10-13 09:08:32 +02:00
Qt Submodule Update Bot 2f80b640ab Updated submodules.
Change-Id: Ib927255703d49def6c732f196a6265f6ed08a691
Reviewed-by: Jani Heikkinen <[email protected]>
2014-10-01 12:35:05 +02:00
Qt Submodule Update Bot b927255703 Updated submodules.
Change-Id: I361f771ae66d1128f407992c228c1c76b0e69e4c
Reviewed-by: Iikka Eklund <[email protected]>
2014-09-30 17:52:01 +02:00
Qt Submodule Update Bot 361f771ae6 Updated submodules.
Change-Id: Ie6af514f7185fc618f5093accedfb4f0937e5039
Reviewed-by: Jani Heikkinen <[email protected]>
2014-09-25 06:59:10 +02:00
Matti Paaso d063e757b1 Adding qtquick1 and qtwayland also into submodule initialization
Without these components, src package creation fails in packaging.

Change-Id: I402c9c49642bccf821c3719206d1dea9415760c6
Reviewed-by: Iikka Eklund <[email protected]>
Reviewed-by: Jani Heikkinen <[email protected]>
Reviewed-by: Antti Kokko <[email protected]>
Reviewed-by: Simon Hausmann <[email protected]>
Reviewed-by: Oswald Buddenhagen <[email protected]>
2014-09-25 06:58:45 +02:00
Qt Submodule Update Bot e6af514f71 Updated submodules.
Change-Id: Ib2e577904b850ea2ba3a8223688b05a21b4921f7
Reviewed-by: Jani Heikkinen <[email protected]>
2014-09-24 06:49:56 +02:00
Joerg Bornemann 597bb62d2b remove qtjsondb
It's dead, Jim.

Change-Id: Id8e1ddb266018bfd582af27bb7eb860287e4567c
Reviewed-by: Christian Kandeler <[email protected]>
Reviewed-by: Marco Bubke <[email protected]>
Reviewed-by: Oswald Buddenhagen <[email protected]>
2014-09-23 20:29:32 +02:00
Oswald Buddenhagen 0af9ceef91 properly recurse submodule initialization
Change-Id: Icd438b9da9af0275dd508186a265bc211d9d01ce
Reviewed-by: Simon Hausmann <[email protected]>
2014-09-23 20:29:12 +02:00
Oswald Buddenhagen 934651b766 don't unnecessarily initialize unwanted submodules
it wastes time and causes output noise.

Change-Id: Ifee01150293431b3c528f30a46280bd142e30b22
Reviewed-by: Simon Hausmann <[email protected]>
2014-09-23 20:29:06 +02:00
Oswald Buddenhagen 836f00a76e don't uninit submodules before re-initing
git-submodule init will simply not touch the already initialized
submodules. this is just fine, as we'll overwrite the config entries
with our own urls (and remove the obsolete ones) afterwards anyway.

Change-Id: I6372bd48be9792e456899dc829226921990140c4
Reviewed-by: Simon Hausmann <[email protected]>
2014-09-23 20:29:04 +02:00
Oswald Buddenhagen 6ab23f16f5 keep information about default repos in .gitmodules
it's backwards to keep this in the script itself.

Change-Id: I4248ba3fef984bdff5d034cb2e6db6cae3209d68
Reviewed-by: Simon Hausmann <[email protected]>
2014-09-23 20:29:02 +02:00
Oswald Buddenhagen 485f5f3776 don't pass around url unnecessarily
we now have everything we need to construct it on the fly.

Change-Id: I129e49bbcf46428d0fcef31ab8188df9d6a4026c
Reviewed-by: Simon Hausmann <[email protected]>
2014-09-23 20:29:01 +02:00
Oswald Buddenhagen 4553d9ec11 get submodule urls from .gitmodules
keeping a redundant copy in the script is plain backwards.

Change-Id: Ibdd1bab9d2cb5af7d7747d5caa2afc7d6e7571ad
Reviewed-by: Simon Hausmann <[email protected]>
2014-09-23 20:28:59 +02:00
Oswald Buddenhagen 3ade7c4567 rewrite submodule exclusion logic
instead of doing multiple passes over the submodules, do everything in
one go.

as a bonus, as the internal structure uses exclusion entries in the
module list, we can make that feature user-accessible just as well.

Change-Id: I8bfb30c8051a9150f92e2e124ff52f64e3efe03c
Reviewed-by: Simon Hausmann <[email protected]>
2014-09-23 20:28:58 +02:00
Oswald Buddenhagen 93f173b3c5 nuke the --http option
it was a vestige from the times when the submodules had absolute urls
pointing at git://gitorious.org. as we now use relative urls, things
work just fine without that option.

Change-Id: I5e93ff8cd2497a27cfbdd53dbcf9db3cd0c4cd1d
Reviewed-by: Simon Hausmann <[email protected]>
2014-09-23 20:28:56 +02:00
Qt Submodule Update Bot b2e577904b Updated submodules.
Change-Id: I919c0332ff9f5ad1979de3105721c2ba5aacf634
Reviewed-by: Jani Heikkinen <[email protected]>
2014-09-23 15:10:43 +02:00
Qt Submodule Update Bot 919c0332ff Updated submodules.
Change-Id: I1e275c54ea722d4f882cf329b65b749aa4d45fb2
Reviewed-by: Jani Heikkinen <[email protected]>
2014-09-15 17:09:26 +02:00
Qt Submodule Update Bot 1e275c54ea Updated submodules.
Change-Id: I5fdb4490cb85b3470bdbd81de9dccbe6bcb96460
Reviewed-by: Jani Heikkinen <[email protected]>
2014-09-11 16:30:52 +02:00
Jocelyn Turcotte 1ae0689829 init-repository: Support cases where $submodule/.git is a file
Since git 1.7.8 the $GIT_DIR of the submodule can be a reference to the
super-module's $GIT_DIR/modules/<name>/

Test for existence instead of testing for a directory before attempting
a git clone there.

Change-Id: Ic539e770067da1417a2ad374c21253212473abe6
Reviewed-by: Frederik Gladhorn <[email protected]>
Reviewed-by: Oswald Buddenhagen <[email protected]>
2014-09-10 18:24:13 +02:00
34 changed files with 160 additions and 251 deletions
+31 -3
View File
@@ -1,51 +1,67 @@
[submodule "qtbase"]
path = qtbase
url = ../qtbase.git
initrepo = true
[submodule "qtsvg"]
path = qtsvg
url = ../qtsvg.git
initrepo = true
[submodule "qtdeclarative"]
path = qtdeclarative
url = ../qtdeclarative.git
initrepo = true
[submodule "qtactiveqt"]
path = qtactiveqt
url = ../qtactiveqt.git
initrepo = true
[submodule "qtscript"]
path = qtscript
url = ../qtscript.git
initrepo = true
[submodule "qtmultimedia"]
path = qtmultimedia
url = ../qtmultimedia.git
initrepo = true
[submodule "qttools"]
path = qttools
url = ../qttools.git
initrepo = true
[submodule "qtxmlpatterns"]
path = qtxmlpatterns
url = ../qtxmlpatterns.git
initrepo = true
[submodule "qttranslations"]
path = qttranslations
url = ../qttranslations.git
initrepo = true
[submodule "qtdoc"]
path = qtdoc
url = ../qtdoc.git
initrepo = true
[submodule "qtrepotools"]
path = qtrepotools
url = ../qtrepotools.git
initrepo = true
[submodule "qtwebkit"]
path = qtwebkit
url = ../qtwebkit.git
initrepo = true
[submodule "qtwebkit-examples"]
path = qtwebkit-examples
url = ../qtwebkit-examples.git
initrepo = true
[submodule "qtqa"]
path = qtqa
url = ../qtqa.git
initrepo = true
[submodule "qtlocation"]
path = qtlocation
url = ../qtlocation.git
initrepo = true
[submodule "qtsensors"]
path = qtsensors
url = ../qtsensors.git
initrepo = true
[submodule "qtsystems"]
path = qtsystems
url = ../qtsystems.git
@@ -61,51 +77,63 @@
[submodule "qtconnectivity"]
path = qtconnectivity
url = ../qtconnectivity.git
initrepo = true
[submodule "qtwayland"]
path = qtwayland
url = ../qtwayland.git
[submodule "qtjsondb"]
path = qtjsondb
url = ../qtjsondb.git
initrepo = true
[submodule "qt3d"]
path = qt3d
url = ../qt3d.git
[submodule "qtimageformats"]
path = qtimageformats
url = ../qtimageformats.git
initrepo = true
[submodule "qtquick1"]
path = qtquick1
url = ../qtquick1.git
initrepo = true
[submodule "qtgraphicaleffects"]
path = qtgraphicaleffects
url = ../qtgraphicaleffects.git
initrepo = true
[submodule "qtquickcontrols"]
path = qtquickcontrols
url = ../qtquickcontrols.git
initrepo = true
[submodule "qtserialport"]
path = qtserialport
url = ../qtserialport.git
initrepo = true
[submodule "qtx11extras"]
path = qtx11extras
url = ../qtx11extras.git
initrepo = true
[submodule "qtmacextras"]
path = qtmacextras
url = ../qtmacextras.git
initrepo = true
[submodule "qtwinextras"]
path = qtwinextras
url = ../qtwinextras.git
initrepo = true
[submodule "qtandroidextras"]
path = qtandroidextras
url = ../qtandroidextras.git
initrepo = true
[submodule "qtenginio"]
path = qtenginio
url = ../qtenginio.git
initrepo = true
[submodule "qtwebsockets"]
path = qtwebsockets
url = ../qtwebsockets.git
initrepo = true
[submodule "qtwebchannel"]
path = qtwebchannel
url = ../qtwebchannel.git
initrepo = true
[submodule "qtwebengine"]
path = qtwebengine
url = ../qtwebengine.git
initrepo = true
+98 -215
View File
@@ -99,6 +99,7 @@ Only initialize the specified subset of modules given as the argument. Specified
modules must already exist in .gitmodules.
The string "all" results in cloning all known modules. The default is the set of
maintained modules.
Module names may be prefixed with a dash to exclude them from a bigger set.
=item --no-update
@@ -131,15 +132,6 @@ Switch to internal URLs and make use of the Oslo git mirrors.
(Implies `--mirror').
=item --http
Use the HTTP protocol for git operations. This may be useful if the git
protocol is blocked by a firewall. Note that this only works with the
external Gitorious server.
The `--http' option does not affect the gerrit remotes.
=item --codereview-username <Gerrit/JIRA username>
Specify the user name for the (potentially) writable `gerrit' remote
@@ -199,85 +191,6 @@ use Getopt::Long qw( GetOptionsFromArray );
use Pod::Usage qw( pod2usage );
use Cwd qw( getcwd );
my %PROTOCOLS = (
'http' => 'http://git.gitorious.org/' ,
);
my %GERRIT_REPOS = map { $_ => "qt/$_" } qw(
qt3d
qt5
qtactiveqt
qtandroidextras
qtbase
qtconnectivity
qtdeclarative
qtdoc
qtdocgallery
qtenginio
qtfeedback
qtgraphicaleffects
qtimageformats
qtjsondb
qtlocation
qtmacextras
qtmultimedia
qtpim
qtqa
qtquick1
qtquickcontrols
qtrepotools
qtscript
qtsensors
qtserialport
qtsvg
qtsystems
qttools
qttranslations
qtwayland
qtwebchannel
qtwebengine
qtwebkit
qtwebkit-examples
qtwebsockets
qtwinextras
qtx11extras
qtxmlpatterns
);
my @DEFAULT_REPOS = qw(
qtactiveqt
qtandroidextras
qtbase
qtconnectivity
qtdeclarative
qtdoc
qtenginio
qtgraphicaleffects
qtimageformats
qtmacextras
qtmultimedia
qtqa
qtquick1
qtquickcontrols
qtlocation
qtrepotools
qtscript
qtsensors
qtserialport
qtsvg
qttools
qttranslations
qtwayland
qtwebchannel
qtwebengine
qtwebsockets
qtwebkit
qtwebkit-examples
qtwinextras
qtx11extras
qtxmlpatterns
);
my $GERRIT_SSH_BASE
= 'ssh://@[email protected]@PORT@/';
@@ -326,10 +239,9 @@ sub parse_arguments
'force-hooks' => 0 ,
'ignore-submodules' => 0 ,
'mirror-url' => "",
'protocol' => "",
'update' => 1 ,
'webkit' => 1 ,
'module-subset' => join(",", @DEFAULT_REPOS),
'module-subset' => "default",
);
GetOptionsFromArray(\@args,
@@ -346,7 +258,6 @@ sub parse_arguments
'module-subset=s' => \$self->{qw{ module-subset }},
'help|?' => sub { pod2usage(1); },
'http' => sub { $self->{protocol} = 'http'; },
'berlin' => sub {
$self->{'mirror-url'} = $BER_MIRROR_URL_BASE;
@@ -359,12 +270,9 @@ sub parse_arguments
# Replace any double trailing slashes from end of mirror
$self->{'mirror-url'} =~ s{//+$}{/};
if ($self->{'module-subset'} eq "all") {
$self->{'module-subset'} = "";
} else {
$self->{'module-subset'} = {
map { $_ => 1 } split(qr{,}, $self->{'module-subset'})
};
$self->{'module-subset'} = [ split(/,/, $self->{'module-subset'}) ];
if (!$self->{webkit}) {
push @{$self->{'module-subset'}}, "-qtwebkit", "-qtwebkit-examples";
}
return;
@@ -376,16 +284,7 @@ sub check_if_already_initialized
# We consider the repo as `initialized' if submodule.qtbase.url is set
if (qx(git config --get submodule.qtbase.url)) {
if ($self->{force}) {
my @configresult = qx(git config -l);
foreach (@configresult) {
# Example line: submodule.qtqa.url=git://gitorious.org/qt/qtqa.git
if (/(submodule\.[^.=]+)\.url=.*/) {
$self->exe('git', 'config', '--remove-section', $1);
}
}
}
else {
if (!$self->{force}) {
exit 0 if ($self->{quiet});
print "Will not reinitialize already initialized repository (use -f to force)!\n";
exit 1;
@@ -397,11 +296,10 @@ sub check_if_already_initialized
sub git_submodule_init
{
my ($self) = @_;
my ($self, @init_args) = @_;
my @init_args;
if ($self->{quiet}) {
push @init_args, '--quiet';
unshift @init_args, '--quiet';
}
$self->exe('git', 'submodule', 'init', @init_args);
@@ -413,83 +311,81 @@ sub git_submodule_init
return;
}
sub git_disable_webkit_submodule
{
my ($self) = @_;
$self->exe('git', 'config', '--remove', 'submodule.qtwebkit');
$self->exe('git', 'config', '--remove', 'submodule.qtwebkit-examples');
return;
}
sub git_prune_submodules
{
my ($self) = @_;
my @configresult = qx(git config -l);
foreach my $line (@configresult) {
if ($line =~ /submodule\.([^.=]+)\.url=/) {
my $module_name = $1;
if (!$self->{'module-subset'}{$module_name}) {
$self->exe('git', 'config', '--remove', "submodule.$module_name");
}
}
}
}
sub git_set_submodule_config
{
my ($self) = @_;
my @configresult = qx(git config -l);
my $protocol = $self->{protocol};
my $url_base_for_protocol = $PROTOCOLS{$protocol};
foreach my $line (@configresult) {
# Example line: submodule.qtqa.url=git://gitorious.org/qt/qtqa.git
next if ($line !~ /submodule\.([^.=]+)\.url=(.*)/);
my $key = $1;
my $value = $2;
if ($protocol) {
# rewrite URL to chosen protocol
$value =~ s,^git://gitorious\.org/,$url_base_for_protocol,;
}
$self->exe('git', 'config', "submodule.$key.url", $value);
if ($self->{'ignore-submodules'}) {
$self->exe('git', 'config', "submodule.$key.ignore", 'all');
}
}
return;
}
sub git_clone_all_submodules
{
my ($self) = @_;
my ($self, $my_repo_base, @subset) = @_;
my %subdirs = ();
my %subbases = ();
my %subinits = ();
my @submodconfig = qx(git config -l -f .gitmodules);
foreach my $line (@submodconfig) {
# Example line: submodule.qtqa.url=../qtqa.git
next if ($line !~ /^submodule\.([^.=]+)\.([^.=]+)=(.*)$/);
if ($2 eq "path") {
$subdirs{$1} = $3;
} elsif ($2 eq "url") {
my ($mod, $base) = ($1, $3);
next if ($base !~ /^\.\.\//);
$base = $my_repo_base.'/'.$base;
while ($base =~ s,/(?!\.\./)[^/]+/\.\./,/,g) {}
$subbases{$mod} = $base;
} elsif ($2 eq "update") {
push @subset, '-'.$1 if ($3 eq 'ignore');
} elsif ($2 eq "initrepo") {
$subinits{$1} = ($3 eq "yes" or $3 eq "true");
}
}
my %include = ();
foreach my $mod (@subset) {
if ($mod eq "all") {
map { $include{$_} = 1; } keys %subbases;
} elsif ($mod eq "default") {
map { $include{$_} = 1; } grep { $subinits{$_} } keys %subbases;
} elsif ($mod =~ s/^-//) {
delete $include{$mod};
} else {
$include{$mod} = 1;
}
}
my @modules = sort keys %include;
$self->git_submodule_init(map { $subdirs{$_} } @modules);
# manually clone each repo here, so we can easily use reference repos, mirrors etc
my @configresult = qx(git config -l);
foreach my $line (@configresult) {
if ($line =~ /submodule\.([^.=]+)\.url=(.*)/) {
$self->git_clone_one_submodule($1, $2);
if ($1 eq "qtwebengine") {
$self->exe('git', 'submodule', 'update', $1);
my $orig_cwd = getcwd();
chdir($1) or confess "chdir $1: $OS_ERROR";
$self->exe('git', 'submodule', 'init');
$self->git_clone_all_submodules;
chdir("$orig_cwd") or confess "chdir $orig_cwd: $OS_ERROR";
}
# Example line: submodule.qtqa.url=git://gitorious.org/qt/qtqa.git
next if ($line !~ /submodule\.([^.=]+)\.url=/);
my $module = $1;
if (!defined($include{$module})) {
$self->exe('git', 'config', '--remove-section', "submodule.$module");
next;
}
if ($self->{'ignore-submodules'}) {
$self->exe('git', 'config', "submodule.$module.ignore", 'all');
}
}
foreach my $module (@modules) {
$self->git_clone_one_submodule($subdirs{$module}, $subbases{$module});
}
if ($self->{update}) {
$self->exe('git', 'submodule', 'update', '--recursive');
$self->exe('git', 'submodule', 'update');
foreach my $module (@modules) {
if (-f $module.'/.gitmodules') {
my $orig_cwd = getcwd();
chdir($module) or confess "chdir $module: $OS_ERROR";
$self->git_clone_all_submodules($subbases{$module}, "all");
chdir("$orig_cwd") or confess "chdir $orig_cwd: $OS_ERROR";
}
}
}
return;
@@ -497,35 +393,26 @@ sub git_clone_all_submodules
sub git_add_remotes
{
my ($self, $repo_basename) = @_;
my ($self, $gerrit_repo_basename) = @_;
my $gerrit_repo_basename = $GERRIT_REPOS{$repo_basename};
if ($gerrit_repo_basename) {
my $gerrit_repo_url;
# If given a username, make a "verbose" remote.
# Otherwise, rely on proper SSH configuration.
if ($self->{'codereview-username'}) {
$gerrit_repo_url = $GERRIT_SSH_BASE;
$gerrit_repo_url =~ s,\@USER\@,$self->{'codereview-username'}\@,;
$gerrit_repo_url =~ s,\@PORT\@,:29418,;
}
else {
$gerrit_repo_url = $GERRIT_SSH_BASE;
$gerrit_repo_url =~ s,\@[^\@]+\@,,g;
}
$gerrit_repo_url .= $gerrit_repo_basename;
$self->exe('git', 'config', 'remote.gerrit.url', $gerrit_repo_url);
$self->exe('git', 'config', 'remote.gerrit.fetch', '+refs/heads/*:refs/remotes/gerrit/*', '/heads/');
my $gerrit_repo_url = $GERRIT_SSH_BASE;
# If given a username, make a "verbose" remote.
# Otherwise, rely on proper SSH configuration.
if ($self->{'codereview-username'}) {
$gerrit_repo_url =~ s,\@USER\@,$self->{'codereview-username'}\@,;
$gerrit_repo_url =~ s,\@PORT\@,:29418,;
} else {
$gerrit_repo_url =~ s,\@[^\@]+\@,,g;
}
return;
$gerrit_repo_url .= $gerrit_repo_basename;
$self->exe('git', 'config', 'remote.gerrit.url', $gerrit_repo_url);
$self->exe('git', 'config', 'remote.gerrit.fetch', '+refs/heads/*:refs/remotes/gerrit/*', '/heads/');
}
sub git_clone_one_submodule
{
my ($self, $submodule, $url) = @_;
my ($self, $submodule, $repo_basename) = @_;
my $alternates = $self->{ 'alternates' };
my $mirror_url = $self->{ 'mirror-url' };
@@ -544,9 +431,10 @@ sub git_clone_one_submodule
}
}
my $url = $self->{'base-url'}.$repo_basename;
my $mirror;
if ($mirror_url and $url =~ /\/(qt\/[^.]+)\.git/) {
$mirror = $mirror_url.$1;
if ($mirror_url) {
$mirror = $mirror_url.$repo_basename;
$mirror .= ".git" unless (-d $mirror); # Support local disk mirror
}
@@ -559,7 +447,7 @@ sub git_clone_one_submodule
}
}
my $do_clone = (! -d "$submodule/.git");
my $do_clone = (! -e "$submodule/.git");
if ($do_clone) {
$self->exe('git', 'clone', @reference_args, ($mirror ? $mirror : $url), $submodule);
}
@@ -582,7 +470,7 @@ sub git_clone_one_submodule
$self->exe('git', 'config', 'commit.template', $template);
}
$self->git_add_remotes($submodule);
$self->git_add_remotes($repo_basename);
if ($self->{'detach-alternates'}) {
$self->exe('git', 'repack', '-a');
@@ -635,21 +523,16 @@ sub run
my ($self) = @_;
$self->check_if_already_initialized;
$self->git_submodule_init;
if (!$self->{webkit}) {
$self->git_disable_webkit_submodule;
}
chomp(my $url = `git config remote.origin.url`);
die("Have no origin remote.\n") if (!$url);
$url =~ s,\.git$,,;
$url =~ s,qt/qt5$,,;
$self->{'base-url'} = $url;
if ($self->{'module-subset'}) {
$self->git_prune_submodules;
}
$self->git_clone_all_submodules('qt/qt5', @{$self->{'module-subset'}});
$self->git_set_submodule_config;
$self->git_clone_all_submodules;
$self->git_add_remotes('qt5');
$self->git_add_remotes('qt/qt5');
$self->git_install_hooks;
+1 -2
View File
@@ -69,7 +69,6 @@ addModule(qtmultimedia, qtbase, qtdeclarative)
addModule(qtwinextras, qtbase, qtdeclarative qtmultimedia)
addModule(qtactiveqt, qtbase)
addModule(qt3d, qtdeclarative)
addModule(qtjsondb, qtdeclarative)
addModule(qtsystems, qtbase, qtdeclarative)
addModule(qtlocation, qtbase, qtsystems qtmultimedia)
addModule(qtsensors, qtbase, qtdeclarative)
@@ -85,7 +84,7 @@ addModule(qtimageformats, qtbase)
addModule(qtgraphicaleffects, qtdeclarative)
addModule(qtscript, qtbase, qttools)
addModule(qtquick1, qtscript, qtsvg qtxmlpatterns qtwebkit)
addModule(qtdocgallery, qtdeclarative, qtjsondb)
addModule(qtdocgallery, qtdeclarative)
linux:!android: addModule(qtwayland, qtbase, qtdeclarative)
addModule(qtserialport, qtbase)
addModule(qtenginio, qtdeclarative)
+1 -1
Submodule qtbase updated: 289e9af668...e3bfd9bea6
+1 -1
Submodule qtdoc updated: a1a4cb2964...e65928a5b6
Submodule qtjsondb deleted from 58223ab8aa
+1 -1
Submodule qtqa updated: b0f1609d11...1a1212f84c
+1 -1
Submodule qtsvg updated: 33e7b0c07b...2f0fabdfc3
+1 -1
Submodule qttools updated: f2acb10367...8f03d0b45b