[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/work/kdesvn-build-1.10
From:       Michael Pyne <mpyne () purinchu ! net>
Date:       2009-06-06 18:34:23
Message-ID: 1244313263.950781.22681.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 978308 by mpyne:

- Use the "repository" option consistently for Qt git repository location.
- In addition make the user specify the full repository name (i.e. URL)
  or, if it is not specified, assume official Qt is used.
- If an error is encountered with updating, actually display the exception
  raised.


 M  +41 -25    kdesvn-build  


--- branches/work/kdesvn-build-1.10/kdesvn-build #978307:978308
@@ -1918,10 +1918,13 @@
         git_update_module($module) or die "Can't update $module: $!";
     }
     else {
-        my $git_repo = get_option($module, 'git-repository');
-        $git_repo = 'qt/qt.git' unless $git_repo;
+        my $git_repo = get_option($module, 'repository');
 
-        git_clone_module($module, "git://qt.gitorious.org/$git_repo") or die "Can't \
checkout $module: $!"; +        if (not $git_repo) {
+            die "Unable to checkout Qt, you must specify a repository to use.";
+        }
+
+        git_clone_module($module, "$git_repo") or die "Can't checkout $module: $!";
     }
 
     return 0;
@@ -2595,30 +2598,46 @@
 # module options to be available.
 #
 # First parameter is the module to get options for.
-# Return is a hash containing the default module options, suitable for assignment
-# to %package_opts.
+#
+# Return is a hash reference containing the default module options, suitable
+# for assignment to %package_opts.
 sub default_module_options
 {
     my $module = shift;
     my $branch = default_module_branch($module);
+    my %options = (
+        'set-env' => { },
+    );
 
     # Hack to support default "tags" instead of default branches for kdesupport.
+    my $tagname = 'branch';
 
-    my @opts;
     if ($branch =~ /^tags\//)
     {
         $branch =~ s/^tags\///; # Strip tags/
-        @opts = ('tag', $branch);
+        $tagname = 'tag';
     }
-    else
-    {
-        @opts = ('branch', $branch);
+
+    $options{$tagname} = $branch;
+
+    if ($module eq 'qt-copy') {
+        # Setup default options for qt-copy
+        my %qtcopy_opts = (
+            'configure-flags' => '-qt-gif -no-phonon -qdbus -nomake demos -nomake \
examples -fast', +            'repository' => 'git://qt.gitorious.org/qt/qt.git',
+        );
+
+        # Merge (uses Perl hash slice)
+        @options{keys %qtcopy_opts} = values %qtcopy_opts;
+        delete @options{qw/branch tag/}; # These don't apply to qt-copy git
     }
 
-    return {
-        'set-env' => { },
-        @opts,
-    };
+    if ($module eq 'kdesupport') {
+        # Phonon is built separately as its own submodule
+        $options{'cmake-options'} = '-DBUILD_phonon=OFF';
+    }
+
+    return \%options;
 }
 
 # Subroutine to add a variable to the environment, but ONLY if it
@@ -2695,17 +2714,6 @@
             }
         }
     }
-
-    # Setup default options for qt-copy
-    $package_opts{'qt-copy'} = {
-        'configure-flags' => '-qt-gif -no-phonon -qdbus -nomake demos -nomake \
                examples -fast',
-        'branch'  => default_module_branch('qt-copy'),
-        'repository' => 'qt/qt.git',
-        'set-env' => { },
-    };
-
-    # kdesupport needs to be told to avoid phonon.
-    set_option('kdesupport', 'cmake-options', '-DBUILD_phonon=OFF');
 }
 
 # Reads in the options from the config file and adds them to the option store.
@@ -4335,6 +4343,7 @@
         if ($@)
         {
             error "Error updating r[$module], removing from list of packages to \
build."; +            error " > y[$@]";
             dont_build ($module, $ipc); # Sends IPC message.
             $hadError = 1;
         }
@@ -5612,6 +5621,13 @@
 EOF
         $package_opts{$module} = default_module_options($module);
     }
+
+    # This can happen if there *is* a config specified but the user
+    # did not specify a repository option.  We can't default it in
+    # global because once KDE switches the default would be wrong.
+    if ($module eq 'qt-copy' and not get_option($module, 'repository')) {
+        set_option($module, 'repository', 'git://qt.gitorious.org/qt/qt.git');
+    }
 }
 
 # Subroutine to exit the script cleanly, including removing any


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic