[kdesrc-build/non-kde-deps] /: first-run: Remove kde-language support.

Michael Pyne null at kde.org
Mon Jan 7 01:36:47 GMT 2019


Git commit 0f4cc4b9d2836d7d8fd35c1730a287b71d19f64a by Michael Pyne.
Committed on 07/01/2019 at 01:28.
Pushed by mpyne into branch 'non-kde-deps'.

first-run: Remove kde-language support.

This requires File::Find which interferes with --initial-setup on at
least Debian. And frankly the option is almost surely broken for some
time now; it's already been removed in the make_it_mojo branch.

M  +0    -1    CMakeLists.txt
M  +5    -16   doc/index.docbook
M  +0    -92   kdesrc-build
M  +0    -50   modules/ksb/Application.pm
M  +0    -7    modules/ksb/BuildSystem.pm
M  +1    -4    modules/ksb/Module.pm
M  +0    -4    modules/ksb/ModuleResolver.pm
M  +1    -2    modules/ksb/Updater/Svn.pm
D  +0    -221  modules/ksb/l10nSystem.pm
M  +4    -4    vim/syntax/kdesrc-buildrc.vim

https://invent.kde.org/kde/kdesrc-build/commit/0f4cc4b9d2836d7d8fd35c1730a287b71d19f64a

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5af80d9..27c5642 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -53,7 +53,6 @@ if (KDESRC_BUILD_INSTALL_MODULES)
         modules/ksb/Updater.pm
         modules/ksb/Util.pm
         modules/ksb/Version.pm
-        modules/ksb/l10nSystem.pm
     DESTINATION ${KDESRC_BUILD_MODULE_INSTALL_PREFIX}/ksb)
 
     install(FILES
diff --git a/doc/index.docbook b/doc/index.docbook
index 4fbfe1b..8eabbd9 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -2385,24 +2385,13 @@ well.</entry>
 <row id="conf-kde-languages">
 <entry>kde-languages</entry>
 <entry>Cannot be overridden</entry>
-<entry><para>This option allows you to choose to download and install
-localization packages along with &kde;. You might do this if you do not live in
-the United States and would like to use &kde; translated into your native
-language.</para>
-
-<para>To use this option, set it to a space-separated list of languages to
-install. Each language has a language code associated with it, which you
-can look up at this page: <ulink
-url="http://l10n.kde.org/teams-list.php">http://l10n.kde.org/teams-list.php</ulink>.
+<entry><para>This option was intended to allow for building language packs from
+the &kde; repository but has been removed due to brokenness. Interested users
+should follow the <ulink
+url="https://l10n.kde.org/docs/translation-howto/">normal translation build
+instructions instead</ulink>.
 </para>
 
-<para>It is alright to choose only one language. By default, none are
-downloaded, which means &kde; will display in American English.</para>
-
-<para>For instance, to choose to install French, you would set the option to
-something like: <userinput><option>kde-languages</option>
-<replaceable>fr</replaceable></userinput>.  You would still need to use
-&systemsettings; in order to choose the French language, however.</para>
 </entry>
 </row>
 
diff --git a/kdesrc-build b/kdesrc-build
index ab3f99a..badcea7 100755
--- a/kdesrc-build
+++ b/kdesrc-build
@@ -123,7 +123,6 @@ DONE
 # enough to cause errors.
 eval {
     use Carp;
-    use File::Find; # For our lndir reimplementation.
     use File::Path qw(remove_tree);
 
     require ksb::Debug;
@@ -172,97 +171,6 @@ ksb::Version->path($baseBinDir);
 #
 # Everything else should be in an appropriate class.
 
-# Subroutine to recursively symlink a directory into another location, in a
-# similar fashion to how the XFree/X.org lndir() program does it.  This is
-# reimplemented here since some systems lndir doesn't seem to work right.
-#
-# Used from ksb::l10nSystem
-#
-# As a special exception to the GNU GPL, you may use and redistribute this
-# function however you would like (i.e. consider it public domain).
-#
-# The first parameter is the directory to symlink from.
-# The second parameter is the destination directory name.
-#
-# e.g. if you have $from/foo and $from/bar, lndir would create $to/foo and
-# $to/bar.
-#
-# All intervening directories will be created as needed.  In addition, you
-# may safely run this function again if you only want to catch additional files
-# in the source directory.
-#
-# Note that this function will unconditionally output the files/directories
-# created, as it is meant to be a close match to lndir.
-#
-# RETURN VALUE: Boolean true (non-zero) if successful, Boolean false (0, "")
-#               if unsuccessful.
-sub safe_lndir
-{
-    my ($from, $to) = @_;
-
-    # Create destination directory.
-    if (not -e $to)
-    {
-        print "$to\n";
-        if (not pretending() and not super_mkdir($to))
-        {
-            error ("Couldn't create directory r[$to]: b[r[$!]");
-            return 0;
-        }
-    }
-
-    # Create closure callback subroutine.
-    my $wanted = sub {
-        my $dir = $File::Find::dir;
-        my $file = $File::Find::fullname;
-        $dir =~ s/$from/$to/;
-
-        # Ignore the .svn directory and files.
-        return if $dir =~ m,/\.svn,;
-
-        # Create the directory.
-        if (not -e $dir)
-        {
-            print "$dir\n";
-
-            if (not pretending())
-            {
-                super_mkdir ($dir) or croak_runtime("Couldn't create directory $dir: $!");
-            }
-        }
-
-        # Symlink the file.  Check if it's a regular file because File::Find
-        # has no qualms about telling you you have a file called "foo/bar"
-        # before pointing out that it was really a directory.
-        if (-f $file and not -e "$dir/$_")
-        {
-            print "$dir/$_\n";
-
-            if (not pretending())
-            {
-                symlink $File::Find::fullname, "$dir/$_" or
-                    croak_runtime("Couldn't create file $dir/$_: $!");
-            }
-        }
-    };
-
-    # Recursively descend from source dir using File::Find
-    eval {
-        find ({ 'wanted' => $wanted,
-                'follow_fast' => 1,
-                'follow_skip' => 2},
-              $from);
-    };
-
-    if ($@)
-    {
-        error ("Unable to symlink $from to $to: $@");
-        return 0;
-    }
-
-    return 1;
-}
-
 # Subroutine to delete recursively, everything under the given directory,
 # unless we're in pretend mode.
 #
diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm
index 0513c52..0cd260c 100644
--- a/modules/ksb/Application.pm
+++ b/modules/ksb/Application.pm
@@ -458,10 +458,6 @@ sub generateModuleList
     else {
         # Build everything in the rc-file, in the order specified.
         @modules = $moduleResolver->expandModuleSets(@optionModulesAndSets);
-
-        if ($ctx->getOption('kde-languages')) {
-            @modules = _expandl10nModules($ctx, @modules);
-        }
     }
 
     # If modules were on the command line then they are effectively forced to
@@ -1971,52 +1967,6 @@ sub _defineNewModuleFactory
     };
 }
 
-# This function converts any 'l10n' references on the command line to return a l10n
-# module with the proper build system, scm type, etc.
-#
-# The languages are selected using global/kde-languages (which should be used
-# exclusively from the configuration file).
-sub _expandl10nModules
-{
-    my ($ctx, @modules) = @_;
-    my $l10n = 'l10n-kde4';
-
-    assert_isa($ctx, 'ksb::BuildContext');
-
-    # Only filter if 'l10n' is actually present in list.
-    my @matches = grep {$_->name() =~ /^(?:$l10n|l10n)$/} @modules;
-    my @langs = split(' ', $ctx->getOption('kde-languages'));
-
-    return @modules if (!@matches || !@langs);
-
-    my $l10nModule;
-    for my $match (@matches)
-    {
-        # Remove all instances of l10n.
-        @modules = grep {$_->name() ne $match->name()} @modules;
-
-        # Save l10n module if user had it in config. We only save the first
-        # one encountered though.
-        $l10nModule //= $match;
-    }
-
-    # No l10n module? Just create one.
-    $l10nModule //= ksb::Module->new($ctx, $l10n);
-
-    whisper ("\tAdding languages ", join(';', @langs), " to build.");
-
-    $l10nModule->setScmType('l10n');
-    my $scm = $l10nModule->scm();
-
-    # Add all required directories to the l10n module. Its buildsystem should
-    # know to skip scripts and templates.
-    $scm->setLanguageDirs(qw/scripts templates/, @langs);
-    $l10nModule->setBuildSystem($scm);
-
-    push @modules, $l10nModule;
-    return @modules;
-}
-
 # Updates the built-in phase list for all Modules passed into this function in
 # accordance with the options set by the user.
 sub _updateModulePhases
diff --git a/modules/ksb/BuildSystem.pm b/modules/ksb/BuildSystem.pm
index 2053f3b..08bb1a7 100644
--- a/modules/ksb/BuildSystem.pm
+++ b/modules/ksb/BuildSystem.pm
@@ -274,13 +274,6 @@ sub createBuildSystem
         return 0;
     }
 
-    if ($builddir ne $srcdir && $self->needsBuilddirHack() && 0 != log_command($module, 'lndir',
-            ['kdesrc-build', 'main::safe_lndir', $srcdir, $builddir]))
-    {
-        error ("\tUnable to setup symlinked build directory for r[$module]!!");
-        return 0;
-    }
-
     return 1;
 }
 
diff --git a/modules/ksb/Module.pm b/modules/ksb/Module.pm
index bf4f77d..721d816 100644
--- a/modules/ksb/Module.pm
+++ b/modules/ksb/Module.pm
@@ -16,8 +16,6 @@ use ksb::IPC;
 use ksb::Debug;
 use ksb::Util;
 
-use ksb::l10nSystem;
-
 use ksb::Updater::Svn;
 use ksb::Updater::Git;
 use ksb::Updater::Bzr;
@@ -253,7 +251,6 @@ sub setScmType
         when('git')  { $newType = ksb::Updater::Git->new($self); }
         when('proj') { $newType = ksb::Updater::KDEProject->new($self); }
         when('metadata') { $newType = ksb::Updater::KDEProjectMetadata->new($self); }
-        when('l10n') { $newType = ksb::l10nSystem->new($self); }
         when('svn')  { $newType = ksb::Updater::Svn->new($self); }
         when('bzr')  { $newType = ksb::Updater::Bzr->new($self); }
         default      { $newType = undef; }
@@ -372,7 +369,7 @@ sub setBuildSystem
 }
 
 # Current possible build system types:
-# KDE (i.e. cmake), Qt, l10n (KDE language buildsystem), autotools (either
+# KDE (i.e. cmake), Qt, autotools (either
 # configure or autogen.sh). A final possibility is 'pendingSource' which
 # simply means that we don't know yet.
 #
diff --git a/modules/ksb/ModuleResolver.pm b/modules/ksb/ModuleResolver.pm
index b6b36b2..6a765ad 100644
--- a/modules/ksb/ModuleResolver.pm
+++ b/modules/ksb/ModuleResolver.pm
@@ -245,10 +245,6 @@ sub _resolveSingleSelector
         $selector = ksb::Module->new($ctx, $selectorName);
         $selector->phases()->phases($ctx->phases()->phases());
 
-        if ($selectorName eq 'l10n') {
-            $_->setScmType('l10n')
-        }
-
         $selector->setScmType('proj');
         $selector->setOption('#guessed-kde-project', 1);
         $selector->setOption('#selected-by', 'initial-guess');
diff --git a/modules/ksb/Updater/Svn.pm b/modules/ksb/Updater/Svn.pm
index 383f470..969d914 100644
--- a/modules/ksb/Updater/Svn.pm
+++ b/modules/ksb/Updater/Svn.pm
@@ -1,7 +1,6 @@
 package ksb::Updater::Svn 0.10;
 
-# Module responsible for source code updates on Subversion modules. Used as a
-# superclass for our l10n update/build system as well.
+# Module responsible for source code updates on Subversion modules.
 
 use strict;
 use warnings;
diff --git a/modules/ksb/l10nSystem.pm b/modules/ksb/l10nSystem.pm
deleted file mode 100644
index f2a0ea1..0000000
--- a/modules/ksb/l10nSystem.pm
+++ /dev/null
@@ -1,221 +0,0 @@
-package ksb::l10nSystem 0.10;
-
-# This class is an implementation of both the source and build interfaces needed to
-# support building KDE l10n modules.
-
-use strict;
-use warnings;
-use 5.014;
-
-use parent qw(ksb::Updater::Svn ksb::BuildSystem);
-
-use ksb::Debug;
-use ksb::Util;
-
-sub new
-{
-    my ($class, $module) = @_;
-
-    # Ensure associated module updates from the proper svn path.
-    # TODO: Support different localization branches?
-
-    $module->setOption('module-base-path', 'trunk/l10n-kde4');
-    my $refreshMessage = "an update happened";
-    return bless { module => $module, needsRefreshed => $refreshMessage }, $class;
-}
-
-sub module
-{
-    my $self = shift;
-    return $self->{module};
-}
-
-sub configuredModuleFileName
-{
-    # Not quite correct (we should be looking at each individual language
-    # but it at least keeps the process going.
-    return 'teamnames';
-}
-
-# Sets the directories that are to be checked out/built/etc.
-# There should be one l10nSystem for the entire l10n build (i.e. add
-# all required support dirs and languages).
-sub setLanguageDirs
-{
-    my ($self, @languageDirs) = @_;
-    $self->{l10n_dirs} = \@languageDirs;
-}
-
-# Returns true if the given subdirectory (reference from the module's root source directory)
-# can be built or not. Should be reimplemented by subclasses as appropriate.
-sub isSubdirBuildable
-{
-    my ($self, $subdir) = @_;
-    return ($subdir ne 'scripts' && $subdir ne 'templates');
-}
-
-sub prepareModuleBuildEnvironment
-{
-    my ($ctx, $module, $prefix) = @_;
-
-    $ctx->prependEnvironmentValue('CMAKE_PREFIX_PATH', $prefix);
-}
-
-# scm-specific update procedure.
-# May change the current directory as necessary.
-sub updateInternal
-{
-    my $self = assert_isa(shift, 'ksb::Updater');
-    my $module = $self->module();
-    my $fullpath = $module->fullpath('source');
-    my @dirs = @{$self->{l10n_dirs}};
-
-    if (-e "$fullpath/.svn") {
-        $self->check_module_validity();
-        my $count = $self->update_module_path(@dirs);
-
-        $self->{needsRefreshed} = '' if $count == 0;
-        return $count;
-    }
-    else {
-        return $self->checkout_module_path(@dirs);
-    }
-}
-
-sub name
-{
-    return 'l10n';
-}
-
-# Returns a list of just the languages to install.
-sub languages
-{
-    my $self = assert_isa(shift, 'ksb::l10nSystem');
-    my @langs = @{$self->{l10n_dirs}};
-
-    return grep { $self->isSubdirBuildable($_); } (@langs);
-}
-
-# Buildsystem support section
-
-sub needsRefreshed
-{
-    my $self = shift;
-
-    # Should be a 'reason' string except if no update happened.
-    return $self->{needsRefreshed};
-}
-
-sub buildInternal
-{
-    my $self = assert_isa(shift, 'ksb::l10nSystem');
-    my $builddir = $self->module()->fullpath('build');
-    my @langs = $self->languages();
-    my $result = ($self->safe_make({
-        target => undef,
-        message => "Building localization for language...",
-        logbase => "build",
-        subdirs => \@langs,
-    }))->{was_successful};
-
-    return $result;
-}
-
-sub configureInternal
-{
-    my $self = assert_isa(shift, 'ksb::l10nSystem');
-
-    my $builddir = $self->module()->fullpath('build');
-    my @langs = $self->languages();
-    my $result = 0;
-
-    for my $lang (@langs) {
-        my $prefix = $self->module()->installationPath();
-        p_chdir("$builddir/$lang");
-
-        info ("\tConfiguring to build language $lang");
-        $result = (log_command($self->module(), "cmake-$lang",
-            ['cmake', '-DCMAKE_INSTALL_PREFIX=' . $prefix]) == 0) || $result;
-    }
-
-    return $result;
-}
-
-sub installInternal
-{
-    my $self = assert_isa(shift, 'ksb::l10nSystem');
-    my $builddir = $self->module()->fullpath('build');
-    my @langs = $self->languages();
-
-    return ($self->safe_make({
-        target => 'install',
-        message => "Installing language...",
-        logbase => "install",
-        subdirs => \@langs,
-    }) == 0);
-}
-
-# Subroutine to link a source directory into an alternate directory in
-# order to fake srcdir != builddir for modules that don't natively support
-# it.  The first parameter is the module to prepare.
-#
-# The return value is true (non-zero) if it succeeded, and 0 (false) if it
-# failed.
-#
-# On return from the subroutine the current directory will be in the build
-# directory, since that's the only directory you should touch from then on.
-sub prepareFakeBuilddir
-{
-    my $self = assert_isa(shift, 'ksb::l10nSystem');
-    my $module = $self->module();
-    my $builddir = $module->fullpath('build');
-    my $srcdir = $module->fullpath('source');
-
-    # List reference, not a real list.  The initial kdesrc-build does *NOT*
-    # fork another kdesrc-build using exec, see sub log_command() for more
-    # info.
-    my $args = [ 'kdesrc-build', 'main::safe_lndir', $srcdir, $builddir ];
-
-    info ("\tSetting up alternate build directory for l10n");
-    return (0 == log_command ($module, 'create-builddir', $args));
-}
-
-# Subroutine to create the build system for a module.  This involves making
-# sure the directory exists and then running any preparatory steps (like
-# for l10n modules).  This subroutine assumes that the module is already
-# downloaded.
-#
-# Return convention: boolean (inherited)
-sub createBuildSystem
-{
-    my $self = assert_isa(shift, 'ksb::l10nSystem');
-    my $module = $self->module();
-    my $builddir = $module->fullpath('build');
-
-    # l10n doesn't support srcdir != builddir, fake it.
-    whisper ("\tFaking builddir for g[$module]");
-    if (!$self->prepareFakeBuilddir())
-    {
-        error ("Error creating r[$module] build system!");
-        return 0;
-    }
-
-    p_chdir ($builddir);
-
-    my @langs = @{$self->{l10n_dirs}};
-    @langs = grep { $self->isSubdirBuildable($_) } (@langs);
-
-    foreach my $lang (@langs) {
-        my $cmd_ref = [ './scripts/autogen.sh', $lang ];
-        if (log_command ($module, "build-system-$lang", $cmd_ref))
-        {
-            error ("\tUnable to create build system for r[$module]");
-        }
-    }
-
-    $module->setOption('#reconfigure', 1); # Force reconfigure of the module
-
-    return 1;
-}
-
-1;
diff --git a/vim/syntax/kdesrc-buildrc.vim b/vim/syntax/kdesrc-buildrc.vim
index 6cd4808..bc1495f 100644
--- a/vim/syntax/kdesrc-buildrc.vim
+++ b/vim/syntax/kdesrc-buildrc.vim
@@ -1,9 +1,9 @@
 " Vim syntax file
 " Language: kdesrc-build configuration file
 " Maintainer: Michael Pyne <mpyne at kde.org>
-" Latest Revision: 23 July 2017
+" Latest Revision: 6 January 2019
 
-" Copyright (c) 2014-2017 Michael Pyne <mpyne at kde.org>
+" Copyright (c) 2014-2019 Michael Pyne <mpyne at kde.org>
 " Redistribution and use in source and binary forms, with or without
 " modification, are permitted provided that the following conditions
 " are met:
@@ -45,13 +45,13 @@ syn keyword ksbrcOption contained skipwhite nextgroup=ksbrcStringValue
 
 syn keyword ksbrcGlobalOption contained skipwhite nextgroup=ksbrcStringValue
             \ branch-group git-desired-protocol git-repository-base http-proxy
-            \ kde-languages niceness debug-level persistent-data-file set-env
+            \ niceness debug-level persistent-data-file set-env
 
 " MUST BE CONSISTENT WITH ABOVE. Used when a module-set option is used in the
 " wrong spot to highlight the error.
 syn keyword ksbrcErrorGlobalOption contained skipwhite nextgroup=ksbrcStringValue
             \ branch-group git-desired-protocol git-repository-base http-proxy
-            \ kde-languages niceness debug-level persistent-data-file set-env
+            \ niceness debug-level persistent-data-file set-env
 
 syn keyword ksbrcModuleSetOption contained skipwhite nextgroup=ksbrcStringValue
             \ use-modules ignore-modules


More information about the kde-doc-english mailing list