diff options
author | Kai Sommerfeld <kso@openoffice.org> | 2010-06-30 14:10:24 +0200 |
---|---|---|
committer | Kai Sommerfeld <kso@openoffice.org> | 2010-06-30 14:10:24 +0200 |
commit | 3c1b46b4292d444d3657930c59ccd4566c9218fb (patch) | |
tree | 43c4336f650873826af50c5434d7801894d078f6 /solenv | |
parent | 49fd9fad5338a6603d81fb84f413b340220033af (diff) | |
parent | 27b9afa066637f73af863c12343ea0b31b1b4c71 (diff) |
reync to m84
Diffstat (limited to 'solenv')
-rw-r--r-- | solenv/bin/cws.pl | 1160 | ||||
-rwxr-xr-x | solenv/bin/gccinstlib.pl | 9 | ||||
-rwxr-xr-x | solenv/bin/jpropex | 10 | ||||
-rw-r--r-- | solenv/bin/macosx-change-install-names.pl | 2 | ||||
-rw-r--r-- | solenv/bin/modules/installer/archivefiles.pm | 71 | ||||
-rw-r--r-- | solenv/bin/modules/installer/simplepackage.pm | 28 | ||||
-rw-r--r-- | solenv/bin/modules/installer/systemactions.pm | 47 | ||||
-rw-r--r-- | solenv/bin/modules/installer/windows/admin.pm | 79 | ||||
-rw-r--r-- | solenv/config/sdev300.ini | 2 | ||||
-rw-r--r-- | solenv/inc/ant.properties | 1 | ||||
-rw-r--r-- | solenv/inc/libs.mk | 6 | ||||
-rw-r--r-- | solenv/inc/minor.mk | 6 | ||||
-rw-r--r-- | solenv/inc/settings.mk | 2 | ||||
-rw-r--r-- | solenv/inc/target.mk | 2 | ||||
-rw-r--r-- | solenv/inc/tg_compv.mk | 14 | ||||
-rwxr-xr-x | solenv/inc/tg_propmerge.mk | 66 | ||||
-rw-r--r-- | solenv/inc/unxlng.mk | 2 | ||||
-rw-r--r-- | solenv/inc/unxsoli4.mk | 2 | ||||
-rw-r--r-- | solenv/inc/unxsols4.mk | 2 | ||||
-rw-r--r-- | solenv/inc/unxsolu4.mk | 2 | ||||
-rw-r--r-- | solenv/inc/wntgcci.mk | 2 |
21 files changed, 383 insertions, 1132 deletions
diff --git a/solenv/bin/cws.pl b/solenv/bin/cws.pl index f776f8cf3..f241ea039 100644 --- a/solenv/bin/cws.pl +++ b/solenv/bin/cws.pl @@ -56,10 +56,7 @@ use Cws; #### globals #### -# TODO: replace dummy vales with actual SVN->hg and source_config migration milestones -my $dev300_migration_milestone = 'm64'; -my $dev300_source_config_milestone = 'm65'; -my $ooo320_migration_milestone = 'm13'; +# TODO: replace dummy vales with actual source_config migration milestone my $ooo320_source_config_milestone = 'm999'; # valid command with possible abbreviations @@ -67,11 +64,8 @@ my @valid_commands = ( 'help', 'h', '?', 'create', 'fetch', 'f', - 'rebase', 'rb', 'query', 'q', 'task', 't', - 'integrate', - 'cdiff', 'cd', 'eisclone', 'setcurrent' ); @@ -80,13 +74,10 @@ my @valid_commands = ( my %valid_options_hash = ( 'help' => ['help'], 'create' => ['help', 'milestone', 'migration', 'hg'], - 'fetch' => ['help', 'switch', 'milestone', 'childworkspace','platforms','quiet', + 'fetch' => ['help', 'milestone', 'childworkspace','platforms','quiet', 'onlysolver'], - 'rebase' => ['help', 'milestone','commit'], 'query' => ['help', 'milestone','masterworkspace','childworkspace'], 'task' => ['help'], - 'integrate' => ['help', 'childworkspace'], - 'cdiff' => ['help', 'childworkspace', 'masterworkspace', 'files', 'modules'], 'setcurrent' => ['help', 'milestone'], 'eisclone' => ['help'] ); @@ -128,12 +119,9 @@ sub parse_command_line 'debug', 'profile', 'commit|C', - 'switch|s', 'platforms|p=s', 'onlysolver|o', 'quiet|q', - 'files', - 'modules', 'help|h' ); @@ -151,18 +139,12 @@ sub parse_command_line elsif ($command eq 'f') { $command = 'fetch'; } - elsif ($command eq 'rb') { - $command = 'rebase'; - } elsif ($command eq 'q') { $command = 'query'; } elsif ($command eq 't') { $command = 'task'; } - elsif ($command eq 'cd') { - $command = 'cdiff'; - } # An unkown option might be accompanied with a valid command. # Show the command specific help @@ -202,8 +184,6 @@ sub verify_options } } - # TODO here should be specific checks for the arguments - # if the check is globally valid } # Dispatches to the do_xxx() routines depending on command. @@ -259,66 +239,6 @@ BEGIN { } } -# Fetches milestone URL for given server and milestone. -sub get_milestone_url -{ - my $server = shift; - my $master = shift; - my $milestone = shift; - - my $milestone_url = "$server/tags/${master}_${milestone}"; - return $milestone_url; -} - -# Fetches CWS URL for given server and CWSname. -sub get_cws_url -{ - my $server = shift; - my $cws = shift; - - my $cws_url = "$server/cws/$cws"; - return $cws_url; -} - -sub get_master_url -{ - my $server = shift; - my $master = shift; - my $revision = shift; - - my $url = "${server}/"; - - # TODO: update EIS function for subversion - my $cws = get_this_cws(); - my $trunk = $cws->get_cvs_head(); - if ( $master eq $trunk ) { - $url .= 'trunk'; - } - else { - my $master_label = uc($master); - $url .= "branches/$master_label"; - } - - # attach revision if needed - if ( $revision != 0 ) { - $url .= "\@$revision"; - } - return $url; -} - -# Returns the URL shortened by the server part -sub get_short_url -{ - my $server = shift; - my $url = shift; - - my $offset = length("$server/"); - $url = substr($url, $offset); - - return $url; -} - - # Fetches the current CWS from environment, returns a Cws object sub get_cws_from_environment { @@ -849,11 +769,11 @@ sub query_latest if ( $latest ) { print_message("Master workspace '$masterws':"); - print_message("Latest milestone available for rebase:"); + print_message("Latest milestone available for update:"); print "$masterws $latest\n"; } else { - print_error("Can't determine latest milestone of '$masterws' available for rebase.", 3); + print_error("Can't determine latest milestone of '$masterws' available for update.", 3); } return; @@ -1420,106 +1340,6 @@ sub update_solver } } -sub write_rebase_configuration -{ - my $workspace = shift; - my $cwsname = shift; - my $master = shift; - my $milestone = shift; - - my $rebase_config = "$workspace/REBASE.CONFIG_DONT_DELETE"; - - open(REBASE, ">$rebase_config") or print_error("Can't open file '$rebase_config' for writing: $!", 98); - print REBASE "CWS-TOOLING: do not delete this file, it's needed for 'cws rebase -C'\n"; - print REBASE "CWS: $cwsname\n"; - print REBASE "New MWS: $master\n"; - print REBASE "New milestone: $milestone\n"; - close(REBASE); -} - -sub read_rebase_configuration -{ - my $workspace = shift; - - my $rebase_config = "$workspace/REBASE.CONFIG_DONT_DELETE"; - - my $master; - my $milestone; - - open(REBASE, "<$rebase_config") or print_error("Can't open file '$rebase_config' for reading: $!", 98); - while(<REBASE>) { - if ( /New MWS: (\w+)/ ) { - $master = $1; - } - if ( /New milestone: (\w+)/ ) { - $milestone = $1; - } - } - close(REBASE); - - if ( !defined($master) || !defined($milestone) ) { - print_error("File '$rebase_config' seems to be garbled. Can't continue.", 98) - } - - return ($master, $milestone); -} - -sub diff_print_files -{ - my $files_ref = shift; - my $diff_options = shift; - - my @files = sort(@{$files_ref}); - - if ( $diff_options eq 'files') { - foreach(@files) { - print "$_\n"; - } - } - else { - my @modules; - foreach(@files) { - my ($module) = split(/\//, $_); - push(@modules, $module); - } - # remove adjacent uniques - my $prev = 'nosuchmodule'; - my @unique_modules = grep($_ ne $prev && (($prev) = $_), @modules); - foreach(@unique_modules) { - print "$_\n"; - } - } -} - -# TODO: special provisions for SVN->HG migrations, remove this -# some time after migration -sub get_scm_for_milestone -{ - my $masterws = shift; - my $milestone = shift; - - my $milestone_sequence_number = extract_milestone_sequence_number($milestone); - my $dev300_migration_sequence_number = extract_milestone_sequence_number($dev300_migration_milestone); - my $ooo320_migration_sequence_number = extract_milestone_sequence_number($ooo320_migration_milestone); - - my $scm = 'SVN'; - - if ( $masterws eq 'DEV300' ) { - if ( $milestone_sequence_number >= $dev300_migration_sequence_number ) { - $scm = 'HG'; - } - } - elsif ( $masterws eq 'OOO320' ) { - if ( $milestone_sequence_number >= $ooo320_migration_sequence_number ) { - $scm = 'HG'; - } - } - else { - $scm = 'SVN'; - } - return $scm; -} - # TODO: special provisions for "source_config" migration, remove this # some time after migration sub get_source_config_for_milestone @@ -1528,24 +1348,14 @@ sub get_source_config_for_milestone my $milestone = shift; my $milestone_sequence_number = extract_milestone_sequence_number($milestone); - my $dev300_migration_sequence_number = extract_milestone_sequence_number($dev300_source_config_milestone); my $ooo320_migration_sequence_number = extract_milestone_sequence_number($ooo320_source_config_milestone); - my $source_config = 0; - - if ( $masterws eq 'DEV300' ) { - if ( $milestone_sequence_number >= $dev300_migration_sequence_number ) { - $source_config = 1; - } - } - elsif ( $masterws eq 'OOO320' ) { - if ( $milestone_sequence_number >= $ooo320_migration_sequence_number ) { - $source_config = '1'; + my $source_config = 1; + if ( $masterws eq 'OOO320' ) { + if ( $milestone_sequence_number < $ooo320_migration_sequence_number ) { + $source_config = 0; } } - else { - $source_config = 0; - } return $source_config; } @@ -1577,12 +1387,9 @@ sub do_help print STDERR "\thelp (h,?)\n"; print STDERR "\tcreate\n"; print STDERR "\tfetch (f)\n"; - print STDERR "\trebase (rb) (SVN only)\n"; print STDERR "\tquery (q)\n"; print STDERR "\ttask (t)\n"; - print STDERR "\tcdiff (cd) (SVN only)\n"; print STDERR "\tsetcurrent\n"; - print STDERR "\tintegrate *** release engineers only ***\n"; print STDERR "\teisclone *** release engineers only ***\n"; } @@ -1594,13 +1401,10 @@ sub do_help } elsif ($arg eq 'create') { print STDERR "create: Create a new child workspace\n"; - print STDERR "usage: create [--hg] [-m milestone] <master workspace> <child workspace>\n"; + print STDERR "usage: create [-m milestone] <master workspace> <child workspace>\n"; print STDERR "\t-m milestone: Milestone to base the child workspace on. If ommitted the\n"; print STDERR "\t last published milestone will be used.\n"; print STDERR "\t--milestone milestone: Same as -m milestone.\n"; - print STDERR "\t--hg: Create Mercurial (hg) based CWS.\n"; - print STDERR "\t--migration: Used only for the migration of an exitisting CWS from CVS to SVN.\n"; - print STDERR "\t Disables existence check in EIS, creates CWS branch in SVN, sets SVN flag.\n"; } elsif ($arg eq 'task') { print STDERR "task: Add a task to a child workspace\n"; @@ -1651,18 +1455,16 @@ sub do_help } elsif ($arg eq 'fetch') { print STDERR "fetch: fetch a milestone or CWS\n"; - print STDERR "usage: fetch [-q] [-s] [-p platforms] [-o] <-m milestone> <workspace>\n"; - print STDERR "usage: fetch [-q] [-s] [-p platforms] [-o] <-c cws> <workspace>\n"; - print STDERR "usage: fetch [-q] [-s] <-m milestone> <workspace>\n"; - print STDERR "usage: fetch [-q] [-s] <-c cws> <workspace>\n"; + print STDERR "usage: fetch [-q] [-p platforms] [-o] <-m milestone> <workspace>\n"; + print STDERR "usage: fetch [-q] [-p platforms] [-o] <-c cws> <workspace>\n"; + print STDERR "usage: fetch [-q] <-m milestone> <workspace>\n"; + print STDERR "usage: fetch [-q] <-c cws> <workspace>\n"; print STDERR "\t-m milestone: Checkout milestone <milestone> to workspace <workspace>\n"; print STDERR "\t Use 'latest' for the for lastest published milestone on the current master\n"; print STDERR "\t For cross master checkouts use the form <MWS>:<milestone>\n"; print STDERR "\t--milestone milestone: Same as -m milestone\n"; print STDERR "\t-c childworkspace: Checkout CWS <childworkspace> to workspace <workspace>\n"; print STDERR "\t--child childworkspace: Same as -c childworkspace\n"; - print STDERR "\t-s: Try to switch an existing workspace <workspace> to milestone or CWS\n"; - print STDERR "\t--switch: Same as -s\n"; print STDERR "\t-p platform: Copy one or more prebuilt platforms 'platform'. \n"; print STDERR "\t Separate multiple platforms with commas.\n"; print STDERR "\t--platforms platform: Same as -p\n"; @@ -1671,36 +1473,6 @@ sub do_help print STDERR "\t-q Silence some of the output of the command.\n"; print STDERR "\t--quiet: Same as -q\n"; } - elsif ($arg eq 'rebase') { - print STDERR "rebase: Rebase a child workspace to a new milestone (SVN only)\n"; - print STDERR "usage: rebase <-m milestone> <workspace>\n"; - print STDERR "usage: rebase <-C> <workspace>\n"; - print STDERR "\t-m milestone: Merge changes on MWS into CWS up to and including milestone <milestone>\n"; - print STDERR "\t Use 'latest' for the for lastest published milestone on the current master\n"; - print STDERR "\t For cross master rebases use the form <MWS>:<milestone>\n"; - print STDERR "\t--milestone milestone: Same as -m milestone\n"; - print STDERR "\t-C: Commit changes made by merge step and update current milestone in database\n"; - print STDERR "\t--commit: Same as -C\n" - } - elsif ($arg eq 'integrate') { - print STDERR "integrate: Integrate a child workspace into a master workspace\n"; - print STDERR "usage: integrate <-c childworkspace>\n"; - print STDERR "usage: integrate <-C>\n"; - print STDERR "\t-c childworkspace: Merge changes on CWS <childworkspace> into MWS\n"; - print STDERR "\t--child childworkspace: Same as -c childworkspace\n"; - print STDERR "\t-C: Commit changes made by merge step and update CWS status in database\n"; - print STDERR "\t--commit: Same as -C\n" - } - elsif ($arg eq 'cdiff') { - print STDERR "cdiff: Show changes on CWS relative to current milestone (SVN only)\n"; - print STDERR "usage: cdiff [-M master] [-c child] [--files] [--modules]\n"; - print STDERR "\t-M master:\t\toverride MWS specified in environment\n"; - print STDERR "\t-c child:\t\toverride CWS specified in environment\n"; - print STDERR "\t--master master:\tSame as -M master\t\n"; - print STDERR "\t--child child:\t\tSame -c child\n"; - print STDERR "\t--files: Print only file names\n"; - print STDERR "\t--modules: Print only top level directories aka modules\n" - } elsif ($arg eq 'setcurrent') { print STDERR "setcurrent: Set the current milestone for the CWS (only hg based CWSs)\n"; print STDERR "usage: setcurrent [-m milestone]\n"; @@ -1726,14 +1498,8 @@ sub do_create do_help(['create']); } - my $is_migration = 0; - if ( exists $options_ref->{'migration'} ) { - $is_migration = 1; - } - - my $is_hg = 0; if ( exists $options_ref->{'hg'} ) { - $is_hg = 1; + print_warning("All childworkspaces are now hosted on Mercurial. The switch --hg is obsolete."); } my $master = uc $args_ref->[0]; @@ -1765,12 +1531,7 @@ sub do_create $is_promotion++; } else { - if ( $is_migration ) { - print_message("Create CWS branch in Subversion for migrating CWS '$cws_name' from CVS."); - } - else { - print_error("Child workspace '$cws_name' already exists.", 7); - } + print_error("Child workspace '$cws_name' already exists.", 7); } } else { @@ -1796,332 +1557,11 @@ sub do_create # set milestone $cws->milestone($milestone); - # handle mercurial(hg) based CWSs - if ( $is_hg ) { - register_child_workspace($cws, 'hg', $is_promotion); - return; - } - - # Refuse to create Subversion hosted cildworkspaces after - # migration milestone - my $milestone_scm = get_scm_for_milestone($cws->master(), $cws->milestone()); - if ( $milestone_scm eq 'HG' ) { - print_error("This code line has been migrated to Mercurial.", 0); - print_error("Please use the '--hg' option to create a Mercurial hosted CWS.", 8); - } - - my $config = CwsConfig->new(); - my $ooo_svn_server = $config->get_ooo_svn_server(); - my $so_svn_server = $config->get_so_svn_server(); - - if (!defined($ooo_svn_server)) { - print_error("No OpenOffice.org SVN server defined, please check your configuration file.", 8); - } - - my $ooo_milestone_url = get_milestone_url($ooo_svn_server, $cws->master(), $milestone); - my $ooo_cws_url = get_cws_url($ooo_svn_server, $cws_name); - - my $so_milestone_url; - my $so_cws_url; - if ( defined($so_svn_server) ) { - $so_milestone_url = get_milestone_url($so_svn_server, $cws->master(), $milestone); - $so_cws_url = get_cws_url($so_svn_server, $cws_name); - } - - # There is a slight chance that the cws creation was interrupted before registration before. - # Check for potential remains in the repository - my $ooo_path_exists = 0; - my $so_path_exists = 0; - - print STDERR "... check cws path:\t'$ooo_cws_url'"; - if ( svn_path_exists($ooo_cws_url) ) { - $ooo_path_exists=1; - print STDERR "\n"; - } - else { - print STDERR ", OK\n"; - } - - if ( defined($so_svn_server) ) { - print STDERR "... check cws path:\t'$so_cws_url'"; - if ( svn_path_exists($so_cws_url) ) { - print STDERR "\n"; - $so_path_exists = 1; - } - else { - print STDERR ", OK\n"; - } - } - - if ( $ooo_path_exists ) { - print_error("SVN path '$ooo_cws_url' already exists.\nThis can happen if a previous CWS creation attempt failed before registering the CWS with EIS.\nIf this is the case, please delete the path with:\n\t svn delete -m'CWS-TOOLING: undo broken CWS creation' $ooo_cws_url\n", 0); - } - - if ( $so_path_exists ) { - print_error("SVN path '$so_cws_url' already exists.\nThis can happen if a previous CWS creation attempt failed before registering the CWS with EIS.\nIf this is the case, please delete the path with:\n\t svn delete -m'CWS-TOOLING: undo broken CWS creation' $so_cws_url\n", 0); - } - - if ( $ooo_path_exists || $so_path_exists ) { - exit(15); - } - - # determine the revision from which the milestone was copied - my $ooo_milestone_revision; - my $so_milestone_revision; - - $ooo_milestone_revision = svn_milestone_revision($ooo_milestone_url); - if ( !$ooo_milestone_revision ) { - print_error("Can't retrieve revision for milestone '$milestone', url '$ooo_milestone_url.", 17 ); - } - if ( defined($so_svn_server) ) { - $so_milestone_revision = svn_milestone_revision($so_milestone_url); - if ( !$so_milestone_revision ) { - print_error("Can't retrieve revision for milestone '$milestone', url '$so_milestone_url.", 17 ); - } - } + register_child_workspace($cws, 'hg', $is_promotion); - my $ooo_master_url; - my $so_master_url; - - $ooo_master_url = get_master_url($ooo_svn_server, $cws->master(), $ooo_milestone_revision); - if ( defined($so_svn_server) ) { - $so_master_url = get_master_url($so_svn_server, $cws->master(), $so_milestone_revision); - } - - my $ooo_short_url = get_short_url($ooo_svn_server, $ooo_master_url); - my $ooo_creation_comment = "CWS-TOOLING: create CWS " . $cws->child() . " from $ooo_short_url (milestone: " . $cws->master() . ":$milestone)"; - # create branches an ooo server and an optional so server - print STDERR "... create branch:\t'$ooo_cws_url'"; - svn_copy($ooo_creation_comment, $ooo_master_url, $ooo_cws_url); - if ( defined($so_svn_server) ) { - my $so_short_url = get_short_url($so_svn_server, $so_master_url); - my $so_creation_comment = "CWS-TOOLING: create CWS " . $cws->child() . " from $so_short_url (milestone: " . $cws->master() . ":$milestone)"; - print STDERR "... create branch:\t'$so_cws_url'"; - svn_copy($so_creation_comment, $so_master_url, $so_cws_url); - } - - if ( $is_migration ) { - # Set master and milestone - $cws->master($master); - $cws->milestone($milestone); - my $rc = $cws->set_subversion_flag(1); - if ( !$rc ) { - print_error("Failed to set subversion flag on child workspace '$cws_name'.\nContact EIS administrator!\n", 12); - } - } - else { - register_child_workspace($cws, 'svn', $is_promotion); - } return; } -sub do_rebase -{ - my $args_ref = shift; - my $options_ref = shift; - - my $commit_phase = 0; - my $milestone; - - # TODO: Switching to a new master dooes work not correctly yet - - if (exists $options_ref->{'help'} || @{$args_ref} != 1) { - do_help(['rebase']); - } - if ( exists($options_ref->{'commit'}) && exists($options_ref->{'milestone'}) ) { - print_error("Option -m (--milestone) and -C (--commit) are mutually exclusive.", 0 ); - do_help(['rebase']); - } - if ( !exists($options_ref->{'commit'}) && !exists($options_ref->{'milestone'}) ) { - print_error("At least one of the options -m (--milestone) or -C (--commit) are required.", 0 ); - do_help(['rebase']); - } - - if ( !svn_version_check() ) { - print_error("cws rebase requires svn-1.5.4 or later (merge tracking and bug fixes). Please upgrade your svn client.", 1); - } - - my $cws = get_cws_from_environment(); - - my $old_masterws = $cws->master(); - my $new_masterws; - my $new_milestone; - - my $workspace = $args_ref->[0]; - - if ( ! -d $workspace ) { - print_error("Can't find workspace '$workspace': $!", 99); - } - - if ( exists($options_ref->{'commit'}) ) { - $commit_phase=1; - ($new_masterws, $new_milestone) = read_rebase_configuration($workspace); - } - elsif( exists($options_ref->{'milestone'}) ) { - $milestone = $options_ref->{'milestone'}; - if ( $milestone eq 'latest' ) { - my $latest = $cws->get_current_milestone($old_masterws); - - if ( !$latest ) { - print_error("Can't determine latest milestone of '$old_masterws' available for rebase.", 22); - } - $new_masterws = $old_masterws; - $new_milestone = $latest; - } - else { - ($new_masterws, $new_milestone) = verify_milestone($cws, $milestone); - } - } - else { - do_help(['rebase']); - } - - if ( $cws->get_scm() eq 'HG' ) { - my $child = $cws->child(); - print_error("cws rebase is not supported for mercurial based childworkspaces", 0); - print_error("re-synchronize your CWS with:", 0); - print_error("hg pull <master>", 0); - print_error("hg merge", 0); - print_error("hg commit -m\"$child: merge with $new_masterws $new_milestone\"", 0); - print_error("and update EIS with:", 0); - print_error("cws setcurrent -m $new_milestone", 99); - } - - my $so_setup = 0; - my $ooo_path; - my $so_path; - # Determine if we got a three directory (so) setup or a plain (ooo) setup. - # This is only needed as long the build system still relies - # on having "modules" from different repositories in the same - # directory besides each other. - if ( -d "$workspace/$old_masterws/sun" ) { - $so_setup = 1; - $ooo_path = "$workspace/$old_masterws/ooo"; - $so_path = "$workspace/$old_masterws/sun"; - } - else { - $ooo_path = "$workspace"; - } - - my $config = CwsConfig->new(); - my $ooo_svn_server = $config->get_ooo_svn_server(); - my $so_svn_server = $config->get_so_svn_server(); - - if (!defined($ooo_svn_server)) { - print_error("No OpenOffice.org SVN server defined, please check your configuration file.", 8); - } - - my $ooo_milestone_url = get_milestone_url($ooo_svn_server, $new_masterws, $new_milestone); - my $ooo_cws_url = get_cws_url($ooo_svn_server, $cws->child()); - - my $so_milestone_url; - my $so_cws_url; - if ( $so_setup ) { - $so_milestone_url = get_milestone_url($so_svn_server, $new_masterws, $new_milestone); - $so_cws_url = get_cws_url($so_svn_server, $cws->child()); - } - - my $ooo_milestone_revision; - my $so_milestone_revision; - - $ooo_milestone_revision = svn_milestone_revision($ooo_milestone_url); - if ( !$ooo_milestone_revision ) { - print_error("Can't retrieve revision for milestone '$new_milestone', url '$ooo_milestone_url.", 17 ); - } - if ( defined($so_svn_server) ) { - $so_milestone_revision = svn_milestone_revision($so_milestone_url); - if ( !$so_milestone_revision ) { - print_error("Can't retrieve revision for milestone '$new_milestone', url '$so_milestone_url.", 17 ); - } - } - - my $ooo_master_url; - my $so_master_url; - - $ooo_master_url = get_master_url($ooo_svn_server, $new_masterws, $ooo_milestone_revision); - if ( defined($so_svn_server) ) { - $so_master_url = get_master_url($so_svn_server, $new_masterws, $so_milestone_revision); - } - - if ( $commit_phase ) { - # commit - print_message("... committing merged changes to workspace '$workspace'."); - my $ooo_short_url = get_short_url($ooo_svn_server, $ooo_master_url); - my $commit_message = "CWS-TOOLING: rebase CWS " . $cws->child() . " to $ooo_short_url (milestone: " . $new_masterws . ":$new_milestone)"; - svn_commit($ooo_path, $commit_message); - if ( $so_setup ) { - my $so_short_url = get_short_url($so_svn_server, $so_master_url); - $commit_message = "CWS-TOOLING: rebase CWS " . $cws->child() . " to $so_short_url (milestone: " . $new_masterws . ":$new_milestone)"; - svn_commit($so_path, $commit_message); - } - if ( $so_setup) { - print_message("... rename '$workspace/$old_masterws' -> '$workspace/$new_masterws'\n"); - if ( !rename("$workspace/$old_masterws", "$workspace/$new_masterws") ) { - print_error("Can't rename '$workspace/$old_masterws' -> '$workspace/$new_masterws': $!", 98); - } - print_message("... relinking workspace\n"); - relink_workspace("$workspace/$new_masterws/src.$new_milestone", 1); - if ( !unlink("$workspace/REBASE.CONFIG_DONT_DELETE") ) { - print_error("Can't unlink '$workspace/REBASE.CONFIG_DONT_DELETE': $!", 0); - } - - } - - print_message("... updating EIS database"); - my $push_return = $cws->set_master_and_milestone($new_masterws, $new_milestone); - # sanity check - if ( $$push_return[1] ne $new_milestone) { - print_error("Couldn't push new milestone '$new_milestone' to database", 0); - } - } - else { - # merge phase - - # check if working directory is switched to the right cws branch - my $ooo_wc_url; - my $so_wc_url; - my $cwsname = $cws->child(); - print_message("... verifying if workspace '$workspace' is switched to CWS '$cwsname'."); - $ooo_wc_url = svn_wc_url($ooo_path); - if ( $ooo_wc_url !~ /\/$cwsname$/ ) { - print_error("Your working copy '$ooo_path' is not switched to the cws branch.\nPlease fix and restart rebasing.", 24); - } - if ( $so_setup ) { - $so_wc_url = svn_wc_url($so_path); - - if ( $so_wc_url !~ /\/$cwsname$/ ) { - print_error("Your working copy '$so_path' is not switched to the cws branch.\nPlease fix and restart rebasing.", 24); - } - } - # check for mixed revisions, locally modified files etc - if ( !svn_wc_is_clean($ooo_path) || ($so_setup && !svn_wc_is_clean($so_path)) ) { - print_error("Please fix and restart rebasing.", 25); - } - - print_message("... merging changes up to '$new_masterws:$new_milestone' to workspace '$workspace'."); - svn_merge($ooo_milestone_url, $ooo_path); - if ( $so_setup ) { - svn_merge($so_milestone_url, $so_path); - } - # write out the rebase configuration to store new milestone and master information - write_rebase_configuration($workspace, $cwsname, $new_masterws, $new_milestone); - } -} - -sub do_integrate -{ - my $args_ref = shift; - my $options_ref = shift; - - if (exists $options_ref->{'help'} || @{$args_ref} > 0) { - do_help(['integrate']); - } - if ( exists($options_ref->{'commit'}) && exists($options_ref->{'childworkspace'}) ) { - print_error("Option -c (--child) and -C (--commit) are mutually exclusive.", 0 ); - do_help(['integrate']); - } -} - # Executes the fetch command. sub do_fetch { @@ -2150,11 +1590,6 @@ sub do_fetch do_help(['fetch']); } - if ( defined($platforms) && $switch ) { - print_error("Option '-p' is not usuable with Option '-s'.", 0); - do_help(['fetch']); - } - if ( $onlysolver && !defined($platforms) ) { print_error("Option '-o' is Only usuable combination with option '-p'.", 0); do_help(['fetch']); @@ -2167,7 +1602,6 @@ sub do_fetch } $cws->master($masterws); my $milestone; - my $scm; if( defined($milestone_opt) ) { if ( $milestone_opt eq 'latest' ) { $cws->master($masterws); @@ -2181,29 +1615,19 @@ sub do_fetch else { ($masterws, $milestone) = verify_milestone($cws, $milestone_opt); } - $scm = get_scm_for_milestone($masterws, $milestone); } elsif ( defined($child) ) { $cws = get_cws_by_name($child); $masterws = $cws->master(); # CWS can have another master than specified in ENV $milestone = $cws->milestone(); - $scm = $cws->get_scm(); } else { do_help(['fetch']); } - if ( $switch && $scm eq 'HG' ) { - print_error("Option '-s' is not supported with a hg based CWS.", 0); - do_help(['fetch']); - } - - if ( $debug ) { - print STDERR "CWS-DEBUG: SCM: $scm\n"; - } - my $config = CwsConfig->new(); - my $ooo_svn_server = $config->get_ooo_svn_server(); + # $so_svn_server is still required to determine if we are in SO environment + # TODO: change this configuration setting to something more meaningful my $so_svn_server = $config->get_so_svn_server(); my $prebuild_dir = $config->get_prebuild_binaries_location(); my $external_tarball_source = $prebuild_dir; @@ -2262,111 +1686,43 @@ sub do_fetch my $workspace = $args_ref->[0]; if ( !$onlysolver ) { - my $url_suffix = $milestone_opt ? ("/tags/$masterws" . "_$milestone") : ('/cws/' . $cwsname); - if ( $switch ) { - # check if to be switched working copy exist or bail out - if ( ! -d $workspace ) { - print_error("Can't open workspace '$workspace': $!", 21); - } - - my $so_setup = 0; - my $ooo_path; - my $so_path; - # Determine if we got a three directory (so) setup or a plain (ooo) setup. - # This is only needed as long the build system still relies - # on having "modules" from different repositories in the same - # directory besides each other. - if ( -d "$workspace/$masterws/sun" ) { - $so_setup = 1; - $ooo_path = "$workspace/$masterws/ooo"; - $so_path = "$workspace/$masterws/sun"; - } - else { - $ooo_path = "$workspace"; - } - - # get the working copy URLs - my $ooo_new_url = svn_wc_root($ooo_path) . $url_suffix; - my $so_new_url; - if ( $so_setup ) { - $so_new_url = svn_wc_root($so_path) . $url_suffix; - } - - print_message("... switching '$ooo_path' to URL '$ooo_new_url'"); - svn_switch($ooo_path, $ooo_new_url, $quiet); - # switch working copies - if ( $so_setup ) { - print_message("... switching '$so_path' to URL '$so_new_url'"); - svn_switch($so_path, $so_new_url, $quiet); - } - - if ( $so_setup ) { - relink_workspace("$workspace/$masterws/$linkdir", 0); - } + if ( -e $workspace ) { + print_error("File or directory '$workspace' already exists.", 8); } - else { - if (!defined($ooo_svn_server)) { - print_error("No OpenOffice.org SVN server defined, please check your configuration file.", 8); - } - my $ooo_url = $ooo_svn_server . $url_suffix; - if ( -e $workspace ) { - print_error("File or directory '$workspace' already exists.", 8); + my $clone_milestone_only = $milestone_opt ? $milestone : 0; + if ( defined($so_svn_server) ) { + if ( !mkdir($workspace) ) { + print_error("Can't create directory '$workspace': $!.", 8); } - - if ( !(($scm eq 'SVN') || ($scm eq 'HG')) ) { - print_error("Unsupported SCM '$scm'.", 8); + my $work_master = "$workspace/$masterws"; + if ( !mkdir($work_master) ) { + print_error("Can't create directory '$work_master': $!.", 8); } - - my $clone_milestone_only = $milestone_opt ? $milestone : 0; - if ( defined($so_svn_server) ) { - if ( !mkdir($workspace) ) { - print_error("Can't create directory '$workspace': $!.", 8); - } - my $work_master = "$workspace/$masterws"; - if ( !mkdir($work_master) ) { - print_error("Can't create directory '$work_master': $!.", 8); - } - if ( $scm eq 'SVN' ) { - print_message("... checkout '$ooo_url' to '$work_master/ooo'"); - svn_checkout($ooo_url, "$work_master/ooo", $quiet); - my $so_url = $so_svn_server . $url_suffix; - print_message("... checkout '$so_url' to '$work_master/sun'"); - svn_checkout($so_url, "$work_master/sun", $quiet); - } - else{ - hg_clone_cws_or_milestone('ooo', $cws, "$work_master/ooo", $clone_milestone_only); - hg_clone_cws_or_milestone('so', $cws, "$work_master/sun", $clone_milestone_only); - } - if ( get_source_config_for_milestone($masterws, $milestone) ) { - # write source_config file - my $source_config_file = "$work_master/source_config"; - if ( !open(SOURCE_CONFIG, ">$source_config_file") ) { - print_error("Can't create source_config file '$source_config_file': $!.", 8); - } - print SOURCE_CONFIG "[repositories]\n"; - print SOURCE_CONFIG "ooo=active\n"; - print SOURCE_CONFIG "sun=active\n"; - close(SOURCE_CONFIG); - } - else { - my $linkdir = "$work_master/src.$milestone"; - if ( !mkdir($linkdir) ) { - print_error("Can't create directory '$linkdir': $!.", 8); - } - relink_workspace($linkdir); + hg_clone_cws_or_milestone('ooo', $cws, "$work_master/ooo", $clone_milestone_only); + hg_clone_cws_or_milestone('so', $cws, "$work_master/sun", $clone_milestone_only); + if ( get_source_config_for_milestone($masterws, $milestone) ) { + # write source_config file + my $source_config_file = "$work_master/source_config"; + if ( !open(SOURCE_CONFIG, ">$source_config_file") ) { + print_error("Can't create source_config file '$source_config_file': $!.", 8); } + print SOURCE_CONFIG "[repositories]\n"; + print SOURCE_CONFIG "ooo=active\n"; + print SOURCE_CONFIG "sun=active\n"; + close(SOURCE_CONFIG); } else { - if ( $scm eq 'SVN' ) { - print_message("... checkout '$ooo_url' to '$workspace'"); - svn_checkout($ooo_url, $workspace, $quiet); - } - else { - hg_clone_cws_or_milestone('ooo', $cws, $workspace, $clone_milestone_only); + my $linkdir = "$work_master/src.$milestone"; + if ( !mkdir($linkdir) ) { + print_error("Can't create directory '$linkdir': $!.", 8); } + relink_workspace($linkdir); } } + else { + hg_clone_cws_or_milestone('ooo', $cws, $workspace, $clone_milestone_only); + } } if ( !$onlysolver && defined($external_tarball_source) ) { @@ -2516,91 +1872,6 @@ sub do_task return; } -sub do_cdiff -{ - my $args_ref = shift; - my $options_ref = shift; - - if ( exists $options_ref->{'help'} || @{$args_ref} != 0) { - do_help(['cdiff']); - } - - my $files = exists $options_ref->{'files'} ? 1 : 0; - my $modules = exists $options_ref->{'modules'} ? 1 : 0; - - if ( $files && $modules ) { - print_error("Options --files and --modules are mutally exclusive", 0); - do_help(['cdiff']); - } - - my $diff_option; - if ( $files ) { - $diff_option = 'files'; - } - elsif ( $modules ) { - $diff_option = 'modules'; - } - else { - $diff_option = 0; - } - - - my $masterws = exists $options_ref->{'masterworkspace'} ? uc($options_ref->{'masterworkspace'}) : $ENV{WORK_STAMP}; - my $childws = exists $options_ref->{'childworkspace'} ? $options_ref->{'childworkspace'} : $ENV{CWS_WORK_STAMP}; - - if ( !defined($masterws) ) { - print_error("Can't determine master workspace environment.\n", 30); - } - - if ( !defined($childws) ) { - print_error("Can't determine child workspace environment.\n", 30); - } - - my $cws = Cws->new(); - $cws->child($childws); - $cws->master($masterws); - - if ( !is_valid_cws($cws) ) { - print_error("'$childws' is not a valid CWS name.\n", 30); - } - - if ( $cws->get_scm() eq 'HG' ) { - print_error("cws cdiff is not supported for mercurial based childworkspaces", 80); - } - my $milestone = $cws->milestone(); - - my $config = CwsConfig->new(); - my $ooo_svn_server = $config->get_ooo_svn_server(); - my $so_svn_server = $config->get_so_svn_server(); - - my $ooo_milestone_url = get_milestone_url($ooo_svn_server, $masterws, $milestone); - my $ooo_cws_url = get_cws_url($ooo_svn_server, $childws); - my $ooo_files; - if ( $diff_option ) { - $ooo_files = svn_diff($ooo_milestone_url, $ooo_cws_url, $diff_option); - diff_print_files($ooo_files, $diff_option); - } - else { - svn_diff($ooo_milestone_url, $ooo_cws_url, 0); - } - - my $so_files; - if ( $so_svn_server ) { - my $so_milestone_url = get_milestone_url($so_svn_server, $masterws, $milestone); - my $so_cws_url = get_cws_url($so_svn_server, $childws); - if ( svn_path_exists($so_cws_url) ) { - if ( $diff_option ) { - $so_files = svn_diff($so_milestone_url, $so_cws_url, $diff_option); - diff_print_files($so_files, $diff_option); - } - else { - svn_diff($so_milestone_url, $so_cws_url, 0); - } - } - } - -} - sub do_setcurrent { my $args_ref = shift; @@ -2685,347 +1956,6 @@ sub usage print STDERR "Type 'cws help' for usage.\n"; } -### SVN glue ### - -# TODO: is it a better idea to use the SVN bindings? -# pro: -# - SVN make guarantees about API stability but no about the command line -# - finer access to the SVN functionality, better error reporting -# - prevents parsing errors due to localized SVN messages -# con: -# - the bindings are difficult to install, mostly due to subtle install bugs -# - we do not really use much of the SVN functionality here - -sub svn_wc_is_clean -{ - my $wc_path = shift; - - my $result = execute_svnversion_command($wc_path); - - my $error = 0; - - if ( $result =~ /:/ ) { - print_error("Working copy '$wc_path' contains mixed revisions. Please run 'svn update'!", 0); - $error++; - } - if ( $result =~ /M/ ) { - print_error("Working copy '$wc_path' contains locally modified files. Please commit or revert all modified files.", 0); - $error++; - } - if ( $result =~ /S/ ) { - print_error("Working copy '$wc_path' is partially switched. The whole working copy needs to be switched to the CWS branch.", 0); - $error++; - } - if ( $result =~ /P/ ) { - print_error("Working copy '$wc_path' is only partially checked out. CWS tools can't work on partially checked out working copies.", 0); - $error++; - } - - return !$error; -} - -sub svn_version_check -{ - my $major_required = 1; - my $minor_required = 5; - my $patchlevel_required = 4; - - my $version_required = $major_required*1000000 + $minor_required*1000 + $patchlevel_required; - - if ( $debug ) { - print STDERR "\nCWS-DEBUG: ... svn version\n"; - } - - my @result = execute_svn_command(0, '--version --quiet', " "); - # svn --version --quiet returns the version in major.minor.patchlevel scheme - # for example: 1.5.4 or 1.6.0-dev (for developer codelines) - # hopefully they don't change the versioning scheme - my ($major, $minor, $patchlevel); - if ( $result[0] =~ /^(\d+)\.(\d+)\.(\d+)/ ) { - $major = $1; - $minor = $2; - $patchlevel = $3; - } - else { - print_error("Can't determine svn version. Please file an issue with the output of 'svn --version --quiet'. CWS tooling requires svn-1.5.4 or later\n", 1) - } - - my $version = $major*1000000 + $minor*1000 + $patchlevel; - - if ( $version < $version_required ) { - return 0; - } - return 1; -} - -sub svn_copy -{ - my $comment = shift; - my $source = shift; - my $dest = shift; - - if ( $debug ) { - print STDERR "\nCWS-DEBUG: ... preparing branch: '$source' -> '$dest'\n"; - } - - my @result = execute_svn_command(0, 'copy', "-m '$comment'", $source, $dest); - if ( $result[1] =~ /Committed revision (\d+)\./ ) { - print STDERR ", committed revision $1\n"; - } else { - print STDERR "failed!\n"; - print STDERR @result; - } -} - -sub svn_milestone_revision -{ - my $milestone_url = shift; - - if ( $debug ) { - print STDERR "\nCWS-DEBUG: ... preparing log --stop-on-copy: '$milestone_url'\n"; - } - - my @result = execute_svn_command(0, 'log', '--stop-on-copy', $milestone_url); - - # There might be revisions committed to a tag (allowed in subversion). - # The lowestmost revision listed in a 'log --stop-on-copy' is the one which - # was current when the tag was created - my $revision = 0; - foreach ( @result ) { - if ( /^r(\d+)\s+\|\s+/ ) { - $revision = $1; - } - } - - return $revision; -} - -sub svn_path_exists -{ - my $url = shift; - - my @result = svn_info($url); - - foreach ( @result ) { - if ( /^Path: / ) { - return 1; - } - } - return 0; -} - -sub svn_wc_url -{ - my $wc_path = shift; - - my @result = svn_info($wc_path); - - foreach ( @result ) { - if ( /^URL: (.+)$/ ) { - return $1; - } - } - - print_error("Can't retrieve svn info from working copy '$wc_path'\n", 23); -} - -sub svn_wc_root -{ - my $wc_path = shift; - - my @result = svn_info($wc_path); - - foreach ( @result ) { - if ( /^Repository Root: (.+)$/ ) { - return $1; - } - } - - print_error("Can't retrieve svn info from working copy '$wc_path'\n", 23); -} - -sub svn_info -{ - my $url = shift; - - if ( $debug ) { - print STDERR "\nCWS-DEBUG: ... preparing info: '$url'\n"; - } - - my @result = execute_svn_command(0, 'info', '--depth empty', $url); - return @result; -} - -sub svn_merge -{ - my $url = shift; - my $wc = shift; - - if ( $debug ) { - print STDERR "\nCWS-DEBUG: ... preparing merge: '$url -> $wc'\n"; - } - - my $log_file = "$wc/REBASE.LOG"; - my @result = execute_svn_command($log_file, 'merge', '--accept postpone', $url, $wc); - return @result; -} - -sub svn_switch -{ - my $wc = shift; - my $url = shift; - my $quiet = shift; - - if ( $debug ) { - print STDERR "\nCWS-DEBUG: ... preparing switch: '$url -> $wc'\n"; - } - - my $switch = $quiet ? 'switch --quiet' : 'switch'; - - my @result = execute_svn_command('print', $switch, $url, $wc); - return @result; -} - -sub svn_checkout -{ - my $url = shift; - my $wc = shift; - my $quiet = shift; - - if ( $debug ) { - print STDERR "\nCWS-DEBUG: ... preparing checkout: '$url -> $wc'\n"; - } - - my $checkout = $quiet ? 'checkout --quiet' : 'checkout'; - - my @result = execute_svn_command('print', $checkout, $url, $wc); - return @result; -} - -sub svn_commit -{ - my $wc = shift; - my $commit_message = shift; - - if ( $debug ) { - print STDERR "\nCWS-DEBUG: ... preparing commit: '$wc'\n"; - } - - my $log_file = "$wc/REBASE.LOG"; - my @result = execute_svn_command($log_file, 'commit', "-m '$commit_message'", $wc); - return @result; -} - -sub svn_diff -{ - my $url1 = shift; - my $url2 = shift; - my $diff_option = shift; - - my $summarize = ''; - if ( $diff_option ) { - $summarize = '--summarize'; - } - - if ( $debug ) { - print STDERR "\nCWS-DEBUG: ... preparing diff $summarize: '$url1' vs. '$url2'\n"; - } - - if ( $summarize ) { - my $result = execute_svn_command(0, 'diff', $summarize, $url1, $url2); - my $nlen = length($url1); - my @files; - foreach( @{$result} ) { - my ($dummy, $url) = split(); - next if length($url) <= $nlen; # skip short URLs (like $url1) - my $file = substr($url, $nlen+1); - next if index($file, '/') == -1; # skip 'modified' top level dirs - push (@files, $file); - } - return \@files; - } - else { - execute_svn_command('print', 'diff', $url1, $url2); - } -} - -sub execute_svn_command -{ - my $log = shift; - my $command = shift; - my $options = shift; - my @args = @_; - - my $args_str = join(" ", @args); - - # we can only parse english strings, hopefully a C locale is available everywhere - $ENV{LC_ALL}='C'; - $command = "svn $command $options $args_str"; - - if ( $debug ) { - print STDERR "\nCWS-DEBUG: ... execute command line: '$command'\n"; - } - - my @result; - my $date; - if ( $log && $log ne 'print') { - open(LOG, ">>$log") or print_error("can't open log file '$log'", 30); - $date = localtime(); - print LOG "Start $command $args_str at $date\n"; - } - open(OUTPUT, "$command 2>&1 |") or print_error("Can't execute svn command line client", 98); - STDOUT->autoflush(1) if $log; - while (<OUTPUT>) { - if ( $log ) { - print STDOUT $_; - print LOG $_ if $log ne 'print'; - } - else { - push(@result, $_); - } - } - STDOUT->autoflush(0) if $log; - close(OUTPUT); - if ( $log && $log ne 'print') { - $date = localtime(); - print LOG "Stop $command $args_str at $date\n"; - close (LOG); - } - - my $rc = $? >> 8; - - if ( $rc > 0) { - print STDERR "\n"; - print STDERR @result if !$log; - print_error("The subversion command line client failed with exit status '$rc'", 99); - } - return wantarray ? @result : \@result; -} - -sub execute_svnversion_command -{ - my $options = shift; - my @args = @_; - - my $args_str = join(" ", @args); - - # we can only parse english strings, hopefully a C locale is available everywhere - $ENV{LC_ALL}='C'; - $command = "svnversion $options $args_str"; - - if ( $debug ) { - print STDERR "\nCWS-DEBUG: ... execute command line: '$command'\n"; - } - - my $result = `$command`; - my $rc = $? >> 8; - if ($rc > 0) { - print_error("The subversion command line tool 'svnversion' failed with exit status '$rc'", 99); - } - - return $result; -} - ### HG glue ### sub hg_clone diff --git a/solenv/bin/gccinstlib.pl b/solenv/bin/gccinstlib.pl index 7f52218c5..8ce9753a4 100755 --- a/solenv/bin/gccinstlib.pl +++ b/solenv/bin/gccinstlib.pl @@ -53,4 +53,13 @@ foreach $Src (@CopySrc) { system ("/bin/cp $Src $Dest") && die "copy failed: $!"; } + +foreach $File (@ARGV) { + #https://bugzilla.redhat.com/show_bug.cgi?id=149465 + printf "unprelinking $Dest/$File\n"; + #If it's already unprelinked .i.e. no .gnu.prelink_undo section, that's fine + #If prelink is not installed, it's massively unlikely that it's prelinked + system ("prelink -u $Dest/$File > /dev/null 2>&1"); +} + exit (0); diff --git a/solenv/bin/jpropex b/solenv/bin/jpropex new file mode 100755 index 000000000..2d62d13b0 --- /dev/null +++ b/solenv/bin/jpropex @@ -0,0 +1,10 @@ +#!/bin/sh +if [ x${SOLARENV}x = xx ]; then + echo No environment found, please use 'configure' or 'setsolar' + exit 1 +fi +if [ x${JAVA_HOME}x = xx ]; then + echo No Java found! + exit 1 +fi +exec java -DSOLARSRC=${SOLARSRC} -DWORK_STAMP=${WORK_STAMP} -DUSE_SHELL= -jar ${SOLARVER}/${INPATH}/bin${UPDMINOREXT}/jpropex.jar "$@" diff --git a/solenv/bin/macosx-change-install-names.pl b/solenv/bin/macosx-change-install-names.pl index bf8fcd633..726e0921f 100644 --- a/solenv/bin/macosx-change-install-names.pl +++ b/solenv/bin/macosx-change-install-names.pl @@ -45,7 +45,7 @@ sub action($$$) 'shl/OOO/OOO' => '@loader_path', 'shl/OXT/URELIB' => '@executable_path/urelibs', 'shl/BOXT/URELIB' => '@executable_path/urelibs', - 'shl/BOXT/OOO' => '@loader_path/../../../../../../basis-link/program', + 'shl/BOXT/OOO' => '@loader_path/../../../basis-link/program', 'shl/NONE/URELIB' => '@__VIA_LIBRARY_PATH__', 'shl/NONE/OOO' => '@__VIA_LIBRARY_PATH__', 'shl/NONE/NONE' => '@__VIA_LIBRARY_PATH__'); diff --git a/solenv/bin/modules/installer/archivefiles.pm b/solenv/bin/modules/installer/archivefiles.pm index ffcbe7e6e..b7636ca61 100644 --- a/solenv/bin/modules/installer/archivefiles.pm +++ b/solenv/bin/modules/installer/archivefiles.pm @@ -93,6 +93,54 @@ sub get_patch_file_list } ################################################################# +# Reading all executables in the "manifest.xml" +################################################################# + +sub get_all_executables_from_manifest +{ + my ($unzipdir, $manifestfile, $executable_files_in_extensions) = @_; + + my $is_executable = 0; + + for ( my $i = 0; $i <= $#{$manifestfile}; $i++ ) + { + my $line = ${$manifestfile}[$i]; + + if ( $line =~ /\"application\/vnd\.sun\.star\.executable\"/ ) { $is_executable = 1; } + + if (( $line =~ /manifest\:full\-path=\"(.*?)\"/ ) && ( $is_executable )) + { + my $filename = $unzipdir . $installer::globals::separator . $1; + # making only slashes for comparison reasons + $filename =~ s/\\/\//g; + $executable_files_in_extensions->{$filename} = 1; + } + + if ( $line =~ /\/\>/ ) { $is_executable = 0; } + } +} + +################################################################# +# Reading the "manifest.xml" in extensions and determine, if +# there are executable files +################################################################# + +sub collect_all_executable_files_in_extensions +{ + my ($unzipdir, $executable_files_in_extensions) = @_; + + $unzipdir =~ s/\Q$installer::globals::separator\E\s*$//; + + my $manifestfilename = $unzipdir . $installer::globals::separator . "META-INF" . $installer::globals::separator . "manifest.xml"; + + if ( -f $manifestfilename ) + { + my $manifestfile = installer::files::read_file($manifestfilename); + get_all_executables_from_manifest($unzipdir, $manifestfile, $executable_files_in_extensions); + } +} + +################################################################# # Analyzing files with flag ARCHIVE ################################################################# @@ -141,6 +189,10 @@ sub resolving_archive_flag my $rename_to_language = 0; if ( $styles =~ /\bRENAME_TO_LANGUAGE\b/ ) { $rename_to_language = 1; } # special handling for renamed files (scriptitems.pm) + my %executable_files_in_extensions = (); + my $set_executable_privileges = 0; # setting privileges for exectables is required for oxt files + if ( $onefile->{'Name'} =~ /\.oxt\s*$/ ) { $set_executable_privileges = 1; } + # mechanism to select files from an archive files my $select_files = 0; my $selectlistfiles = ""; @@ -260,6 +312,12 @@ sub resolving_archive_flag push( @installer::globals::logfileinfo, $infoline); } } + + # Selecting names of executable files in extensions + if ( $set_executable_privileges ) + { + collect_all_executable_files_in_extensions($unzipdir, \%executable_files_in_extensions); + } } my $zipfileref = \@zipfile; @@ -313,6 +371,19 @@ sub resolving_archive_flag push( @installer::globals::logfileinfo, $infoline); } + if ( $set_executable_privileges ) + { + # All pathes to executables are saved in the hash %executable_files_in_extensions + my $compare_path = $newfile{'sourcepath'}; + $compare_path =~ s/\\/\//g; # contains only slashes for comparison reasons + if ( exists($executable_files_in_extensions{$compare_path}) ) + { + $newfile{'UnixRights'} = "775"; + $infoline = "Executable in Extension: Setting unix rights for \"$newfile{'sourcepath'}\" to \"$newfile{'UnixRights'}\"\n"; + push( @installer::globals::logfileinfo, $infoline); + } + } + if ( $select_files ) { if ( ! installer::existence::exists_in_array($zipname,$selectlistfiles) ) diff --git a/solenv/bin/modules/installer/simplepackage.pm b/solenv/bin/modules/installer/simplepackage.pm index 1251966b5..b833cc0c6 100644 --- a/solenv/bin/modules/installer/simplepackage.pm +++ b/solenv/bin/modules/installer/simplepackage.pm @@ -62,6 +62,21 @@ sub check_simple_packager_project } #################################################### +# Detecting the directory with extensions +#################################################### + +sub get_extensions_dir +{ + my ( $subfolderdir ) = @_; + + my $extensiondir = $subfolderdir . $installer::globals::separator; + if ( $installer::globals::officedirhostname ne "" ) { $extensiondir = $extensiondir . $installer::globals::officedirhostname . $installer::globals::separator; } + $extensiondir = $extensiondir . "share" . $installer::globals::separator . "extensions"; + + return $extensiondir; +} + +#################################################### # Registering extensions #################################################### @@ -774,9 +789,16 @@ sub create_simple_package # Registering the extensions - installer::logger::print_message( "... registering extensions ...\n" ); - installer::logger::include_header_into_logfile("Registering extensions:"); - register_extensions($subfolderdir, $languagestringref); + # installer::logger::print_message( "... registering extensions ...\n" ); + # installer::logger::include_header_into_logfile("Registering extensions:"); + # register_extensions($subfolderdir, $languagestringref); + + installer::logger::print_message( "... removing superfluous directories ...\n" ); + installer::logger::include_header_into_logfile("Removing superfluous directories:"); + + my $extensionfolder = get_extensions_dir($subfolderdir); + + installer::systemactions::remove_empty_dirs_in_folder($extensionfolder); if ( $installer::globals::compiler =~ /^unxmacx/ ) { diff --git a/solenv/bin/modules/installer/systemactions.pm b/solenv/bin/modules/installer/systemactions.pm index f29138e9e..9aa1947ad 100644 --- a/solenv/bin/modules/installer/systemactions.pm +++ b/solenv/bin/modules/installer/systemactions.pm @@ -1664,4 +1664,51 @@ sub read_full_directory { return } +############################################################## +# Removing all empty directories below a specified directory +############################################################## + +sub remove_empty_dirs_in_folder +{ + my ( $dir ) = @_; + + my @content = (); + my $infoline = ""; + + $dir =~ s/\Q$installer::globals::separator\E\s*$//; + + if ( -d $dir ) + { + opendir(DIR, $dir); + @content = readdir(DIR); + closedir(DIR); + + my $oneitem; + + foreach $oneitem (@content) + { + if ((!($oneitem eq ".")) && (!($oneitem eq ".."))) + { + my $item = $dir . $installer::globals::separator . $oneitem; + + if ( -d $item ) # recursive + { + remove_empty_dirs_in_folder($item); + } + } + } + + # try to remove empty directory + my $returnvalue = rmdir $dir; + + if ( $returnvalue ) + { + $infoline = "Successfully removed empty dir $dir\n"; + push(@installer::globals::logfileinfo, $infoline); + } + + } + +} + 1; diff --git a/solenv/bin/modules/installer/windows/admin.pm b/solenv/bin/modules/installer/windows/admin.pm index 168eaf607..2e3074742 100644 --- a/solenv/bin/modules/installer/windows/admin.pm +++ b/solenv/bin/modules/installer/windows/admin.pm @@ -436,6 +436,8 @@ sub copy_files_into_directory_structure { my ($fileorder, $filehash, $componenthash, $fullpathhash, $maxsequence, $unpackdir, $installdir, $dirhash) = @_; + my $unopkgfile = ""; + for ( my $i = 1; $i <= $maxsequence; $i++ ) { if ( exists($fileorder->{$i}) ) @@ -485,7 +487,9 @@ sub copy_files_into_directory_structure push(@installer::globals::logfileinfo, $infoline); installer::exiter::exit_program($infoline, "copy_files_into_directory_structure"); } - + + if ( $destfile =~ /unopkg\.exe\s*$/ ) { $unopkgfile = $destfile; } + # installer::systemactions::copy_one_file($sourcefile, $destfile); } # else # allowing missing sequence numbers ? @@ -493,6 +497,8 @@ sub copy_files_into_directory_structure # installer::exiter::exit_program("ERROR: No file assigned to sequence $i", "copy_files_into_directory_structure"); # } } + + return $unopkgfile; } @@ -742,6 +748,68 @@ sub write_sis_info } } +#################################################### +# Detecting the directory with extensions +#################################################### + +sub get_extensions_dir +{ + my ( $unopkgfile ) = @_; + + my $localbranddir = $unopkgfile; + installer::pathanalyzer::get_path_from_fullqualifiedname(\$localbranddir); # "program" dir in brand layer + installer::pathanalyzer::get_path_from_fullqualifiedname(\$localbranddir); # root dir in brand layer + $localbranddir =~ s/\Q$installer::globals::separator\E\s*$//; + my $extensiondir = $localbranddir . $installer::globals::separator . "share" . $installer::globals::separator . "extensions"; + + return $extensiondir; +} + +############################################################## +# Removing all empty directories below a specified directory +############################################################## + +sub remove_empty_dirs_in_folder +{ + my ( $dir, $firstrun ) = @_; + + if ( $firstrun ) + { + print "Removing superfluous directories\n"; + } + + my @content = (); + + $dir =~ s/\Q$installer::globals::separator\E\s*$//; + + if ( -d $dir ) + { + opendir(DIR, $dir); + @content = readdir(DIR); + closedir(DIR); + + my $oneitem; + + foreach $oneitem (@content) + { + if ((!($oneitem eq ".")) && (!($oneitem eq ".."))) + { + my $item = $dir . $installer::globals::separator . $oneitem; + + if ( -d $item ) # recursive + { + remove_empty_dirs_in_folder($item, 0); + } + } + } + + # try to remove empty directory + my $returnvalue = rmdir $dir; + + # if ( $returnvalue ) { print "Successfully removed empty dir $dir\n"; } + } +} + #################################################################################### # Simulating an administrative installation #################################################################################### @@ -813,11 +881,18 @@ sub make_admin_install my $fullpathhash = create_directory_structure($dirhash, $targetdir); # Copying files - copy_files_into_directory_structure($fileorder, $filehash, $componenthash, $fullpathhash, $maxsequence, $unpackdir, $installdir, $dirhash); + my $unopkgfile = copy_files_into_directory_structure($fileorder, $filehash, $componenthash, $fullpathhash, $maxsequence, $unpackdir, $installdir, $dirhash); my $msidatabase = $targetdir . $installer::globals::separator . $databasefilename; installer::systemactions::copy_one_file($databasepath, $msidatabase); + if ( $unopkgfile ne "" ) + { + # Removing empty dirs in extension folder + my $extensionfolder = get_extensions_dir($unopkgfile); + if ( -d $extensionfolder ) { remove_empty_dirs_in_folder($extensionfolder, 1); } + } + # Editing registry table because of wrong Property value # my $registryfilename = $helperdir . $installer::globals::separator . "Registry.idt"; # my $componentfilename = $helperdir . $installer::globals::separator . "Component.idt"; diff --git a/solenv/config/sdev300.ini b/solenv/config/sdev300.ini index d04a87c59..3e80e1460 100644 --- a/solenv/config/sdev300.ini +++ b/solenv/config/sdev300.ini @@ -8,7 +8,7 @@ common BIG_SVX TRUE BMP_WRITES_FLAG TRUE BUILD_SPECIAL TRUE - BUILD_TYPE SO OOo EXT BINFILTER MORE_FONTS BSH CURL DICTIONARIES HSQLDB HUNSPELL HYPHEN JPEG LIBXML2 LIBXMLSEC LPSOLVE MOZ NEON TWAIN PYTHON ZLIB SANE UNIXODBC X11_EXTENSIONS LIBWPD EPM ODK MSFONTEXTRACT MATHMLDTD BOOST EXPAT CRASHREP BERKELEYDB LIBXSLT SUN AGG GTK ICU SYSTRAY_GTK JAVAINSTALLER2 VIGRA OPENSSL JFREEREPORT APACHE_COMMONS TOMCAT REPORTBUILDER SDEXT SWEXT XPDF LUCENE REDLAND SAXON WRITER2LATEX NSS L10N GRAPHITE MYSQLCPPCONN MYSQLC CPPUNIT + BUILD_TYPE SO OOo EXT BINFILTER MORE_FONTS BSH CURL DICTIONARIES HSQLDB HUNSPELL HYPHEN MYTHES JPEG LIBXML2 LIBXMLSEC LPSOLVE MOZ NEON TWAIN PYTHON ZLIB SANE UNIXODBC X11_EXTENSIONS LIBWPD EPM ODK MSFONTEXTRACT MATHMLDTD BOOST MDDS EXPAT CRASHREP BERKELEYDB LIBXSLT SUN AGG GTK ICU SYSTRAY_GTK JAVAINSTALLER2 VIGRA OPENSSL JFREEREPORT APACHE_COMMONS TOMCAT REPORTBUILDER SDEXT SWEXT XPDF LUCENE REDLAND SAXON WRITER2LATEX NSS L10N GRAPHITE MYSQLCPPCONN MYSQLC CPPUNIT common_build TRUE COMMON_OUTDIR common CONFIG_PROJECT config_office diff --git a/solenv/inc/ant.properties b/solenv/inc/ant.properties index 403739579..b2c0f748e 100644 --- a/solenv/inc/ant.properties +++ b/solenv/inc/ant.properties @@ -1,3 +1,4 @@ +# x-no-translate build.bin=${build.dir}/bin build.class=${build.dir}/class build.inc=${build.dir}/inc diff --git a/solenv/inc/libs.mk b/solenv/inc/libs.mk index 7237832e1..09b6df9d3 100644 --- a/solenv/inc/libs.mk +++ b/solenv/inc/libs.mk @@ -344,7 +344,11 @@ HUNSPELLLIB=$(HUNSPELL_LIBS) .ELSE HUNSPELLLIB=-lhunspell-1.2 .ENDIF -MYTHESLIB=-lmythes +.IF "$(SYSTEM_MYTHES)" == "YES" +MYTHESLIB=$(MYTHES_LIBS) +.ELSE +MYTHESLIB=-lmythes-1.2 +.ENDIF PYUNOLIB=-lpyuno LPSOLVELIB=-llpsolve55 SOFFICELIB=-lsofficeapp diff --git a/solenv/inc/minor.mk b/solenv/inc/minor.mk index 519831ffb..42eb91b48 100644 --- a/solenv/inc/minor.mk +++ b/solenv/inc/minor.mk @@ -1,5 +1,5 @@ RSCVERSION=300 -RSCREVISION=300m83(Build:9511) -BUILD=9511 -LAST_MINOR=m83 +RSCREVISION=300m84(Build:9512) +BUILD=9512 +LAST_MINOR=m84 SOURCEVERSION=DEV300 diff --git a/solenv/inc/settings.mk b/solenv/inc/settings.mk index ccd8f929d..c5283fb1b 100644 --- a/solenv/inc/settings.mk +++ b/solenv/inc/settings.mk @@ -865,7 +865,7 @@ SCPDEFS+=-DUDK_MAJOR=$(UDK_MAJOR) SCPDEFS+=-U$(COMID) -DCOMID=$(COMID) -DCOMNAME=$(COMNAME) -D_$(COMID) SCPDEFS+=-DCCNUMVER=$(CCNUMVER) .IF "$(COM)"=="GCC" -SCPDEFS+=-DSHORTSTDCPP3=$(SHORTSTDCPP3) +SCPDEFS+=-DSHORTSTDCPP3=$(SHORTSTDCPP3) -DSHORTSTDC3=$(SHORTSTDC3) .ENDIF # "$(SHORTSTDCPP3)"!="" # extend library path for OS/2 gcc/wlink .IF "$(GUI)"=="OS2" diff --git a/solenv/inc/target.mk b/solenv/inc/target.mk index 0319e92f3..1a4ad6e18 100644 --- a/solenv/inc/target.mk +++ b/solenv/inc/target.mk @@ -1461,6 +1461,7 @@ COMPVTMP:=$(mktmp iii) @echo COMID:=$(COMID) >> $(COMPVTMP) .IF "$(COM)"=="GCC" @echo SHORTSTDCPP3:=$(SHORTSTDCPP3) >> $(COMPVTMP) + @echo SHORTSTDC3:=$(SHORTSTDC3) >> $(COMPVTMP) .ENDIF @echo CCNUMVER:=$(CCNUMVER) >> $(COMPVTMP) @echo CCVER:=$(CCVER:s/-/ /:1) >> $(COMPVTMP) @@ -2041,6 +2042,7 @@ $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/hid.lst .PHONY : .ENDIF # "$(SOLAR_JAVA)"!="" .INCLUDE : tg_merge.mk +.INCLUDE : tg_propmerge.mk wordcount: wc *.* >> $(TMP)/wc.lst diff --git a/solenv/inc/tg_compv.mk b/solenv/inc/tg_compv.mk index 821888752..c68ae5af4 100644 --- a/solenv/inc/tg_compv.mk +++ b/solenv/inc/tg_compv.mk @@ -77,6 +77,7 @@ COMNAME=msci .IF "$(COM)"=="GCC" SHORTSTDCPP3:= +SHORTSTDC3:="1" .IF "$(CCNUMVER)">="000200910000" COMID=GCC @@ -101,6 +102,19 @@ SHORTSTDCPP3="5" .ENDIF .IF "$(CCNUMVER)">="000300040000" +.IF "$(OS)$(CPU)" == "LINUX6" || "$(OS)$(CPU)" == "LINUXH" +#for gcc >= 3.4.0 on m68k-linux this is libgcc_s.so.2. +#for gcc >= 3.4.0 < 4.2.0 on hppa-linux this is libgcc_s.so.2. +SHORTSTDC3:="2" +.ENDIF +SHORTSTDCPP3="6" +.ENDIF + +.IF "$(CCNUMVER)">="000400020000" +.IF "$(OS)$(CPU)" == "LINUXH" +#for gcc >= 4.2.0 on hppa-linux this is libgcc_s.so.4. +SHORTSTDC3:="4" +.ENDIF SHORTSTDCPP3="6" .ENDIF diff --git a/solenv/inc/tg_propmerge.mk b/solenv/inc/tg_propmerge.mk new file mode 100755 index 000000000..796bca982 --- /dev/null +++ b/solenv/inc/tg_propmerge.mk @@ -0,0 +1,66 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +.IF "$(L10NPROPERTYFILES)"!="" +ALLTAR : $(MISC)/$(TARGET).pmerge.mk $(L10NPROPERTYFILES) + +$(MISC)/$(TARGET).pmerge.mk : $(L10NPROPERTYFILES) + +$(L10NPROPERTYFILES) : $(LOCALIZESDF) + +.INCLUDE .IGNORE : $(MISC)/$(TARGET).pmerge.mk + +.IF "$(alllangiso)"!="$(last_merge)" +MERGEPHONY:=.PHONY +.ENDIF # "$(alllangiso)" != "$(last_merge)" + +$(CLASSDIR)/$(PACKAGE)/%.properties $(MERGEPHONY) : %.properties + @@-$(MKDIRHIER) $(@:d) +.IF "$(WITH_LANG)"=="" + $(COMMAND_ECHO)$(COPY) $< $@ +.ELSE # "$(WITH_LANG)"=="" + @@-$(RM) $@ + $(COMMAND_ECHO)@noop $(assign PMERGELIST+:=$(<:f)) + $(COMMAND_ECHO)@noop $(assign PDESTDIR:=$(@:d)) +.ENDIF # "$(WITH_LANG)"=="" + +$(MISC)/$(TARGET).pmerge.mk : $(PMERGELIST) +.IF "$(WITH_LANG)"!="" +# jpropex command file requirements: +# - one file per line +# - no spaces +# - no empty lines +# $(uniq ...) to workaround $assign adding the value twice... + @noop $(assign PMERGEFILELIST:=$(uniq $(PMERGELIST))) + $(COMMAND_ECHO)$(SOLARBINDIR)/jpropex -p $(PRJNAME) -r $(PRJ) -o $(PDESTDIR) -i @$(mktmp $(PMERGEFILELIST:t"\n":s/ //)) -l all -lf $(alllangiso:s/ /,/) -m $(LOCALIZESDF) +.ENDIF # "$(WITH_LANG)"!="" + @-$(RM) $@ + $(COMMAND_ECHO)echo last_merge=$(alllangiso) > $@ + +.ENDIF # "$(L10NPROPERTYFILES)"!="" + + diff --git a/solenv/inc/unxlng.mk b/solenv/inc/unxlng.mk index 62a96f9c5..be8c5d01b 100644 --- a/solenv/inc/unxlng.mk +++ b/solenv/inc/unxlng.mk @@ -151,7 +151,7 @@ LINKFLAGSRUNPATH_OOO=-Wl,-rpath,\''$$ORIGIN:$$ORIGIN/../ure-link/lib'\' LINKFLAGSRUNPATH_SDK=-Wl,-rpath,\''$$ORIGIN/../../ure-link/lib'\' LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$ORIGIN:$$ORIGIN/../basis-link/program:$$ORIGIN/../basis-link/ure-link/lib'\' LINKFLAGSRUNPATH_OXT= -LINKFLAGSRUNPATH_BOXT=-Wl,-rpath,\''$$ORIGIN/../../../../../../basis-link/program'\' +LINKFLAGSRUNPATH_BOXT=-Wl,-rpath,\''$$ORIGIN/../../../basis-link/program'\' LINKFLAGSRUNPATH_NONE= # flag -Wl,-z,noexecstack sets the NX bit on the stack LINKFLAGS=-Wl,-z,noexecstack -Wl,-z,combreloc $(LINKFLAGSDEFS) diff --git a/solenv/inc/unxsoli4.mk b/solenv/inc/unxsoli4.mk index 5ddbe058b..b1778a0ed 100644 --- a/solenv/inc/unxsoli4.mk +++ b/solenv/inc/unxsoli4.mk @@ -137,7 +137,7 @@ LINKFLAGSRUNPATH_OOO=-R\''$$ORIGIN:$$ORIGIN/../ure-link/lib'\' LINKFLAGSRUNPATH_SDK=-R\''$$ORIGIN/../../ure-link/lib'\' LINKFLAGSRUNPATH_BRAND=-R\''$$ORIGIN:$$ORIGIN/../basis-link/program:$$ORIGIN/../basis-link/ure-link/lib'\' LINKFLAGSRUNPATH_OXT= -LINKFLAGSRUNPATH_BOXT=-R\''$$ORIGIN/../../../../../../basis-link/program'\' +LINKFLAGSRUNPATH_BOXT=-R\''$$ORIGIN/../../../basis-link/program'\' LINKFLAGSRUNPATH_NONE= LINKFLAGS=-w -mt -z combreloc -PIC -temp=/tmp -norunpath -library=no%Cstd LINKCFLAGS=-w -mt -z combreloc -norunpath diff --git a/solenv/inc/unxsols4.mk b/solenv/inc/unxsols4.mk index 92720da3d..4febb67d4 100644 --- a/solenv/inc/unxsols4.mk +++ b/solenv/inc/unxsols4.mk @@ -143,7 +143,7 @@ LINKFLAGSRUNPATH_OOO=-R\''$$ORIGIN:$$ORIGIN/../ure-link/lib'\' LINKFLAGSRUNPATH_SDK=-R\''$$ORIGIN/../../ure-link/lib'\' LINKFLAGSRUNPATH_BRAND=-R\''$$ORIGIN:$$ORIGIN/../basis-link/program:$$ORIGIN/../basis-link/ure-link/lib'\' LINKFLAGSRUNPATH_OXT= -LINKFLAGSRUNPATH_BOXT=-R\''$$ORIGIN/../../../../../../basis-link/program'\' +LINKFLAGSRUNPATH_BOXT=-R\''$$ORIGIN/../../../basis-link/program'\' LINKFLAGSRUNPATH_NONE= LINKFLAGS=-w -mt -z combreloc -PIC -temp=/tmp -norunpath -library=no%Cstd LINKCFLAGS=-w -mt -z combreloc -norunpath diff --git a/solenv/inc/unxsolu4.mk b/solenv/inc/unxsolu4.mk index 45dadc53f..c73d6fc37 100644 --- a/solenv/inc/unxsolu4.mk +++ b/solenv/inc/unxsolu4.mk @@ -137,7 +137,7 @@ LINKFLAGSRUNPATH_UREBIN=-R\''$$ORIGIN/../lib:$$ORIGIN'\' LINKFLAGSRUNPATH_OOO=-R\''$$ORIGIN:$$ORIGIN/../ure-link/lib'\' LINKFLAGSRUNPATH_BRAND=-R\''$$ORIGIN:$$ORIGIN/../basis-link/program:$$ORIGIN/../basis-link/ure-link/lib'\' LINKFLAGSRUNPATH_OXT= -LINKFLAGSRUNPATH_BOXT=-R\''$$ORIGIN/../../../../../../basis-link/program'\' +LINKFLAGSRUNPATH_BOXT=-R\''$$ORIGIN/../../../basis-link/program'\' LINKFLAGSRUNPATH_NONE= LINKFLAGS=-m64 -w -mt -z combreloc -PIC -temp=/tmp -norunpath -library=stlport4 LINKCFLAGS=-m64 -w -mt -z combreloc -norunpath diff --git a/solenv/inc/wntgcci.mk b/solenv/inc/wntgcci.mk index abb2bb25e..a6c7e67cf 100644 --- a/solenv/inc/wntgcci.mk +++ b/solenv/inc/wntgcci.mk @@ -110,7 +110,7 @@ LINK*=$(CXX) LINKC*=$(CC) CYGLIB=$(LIB:s/;/ -L/) -LINKFLAGS=-nostdlib -Wl,--enable-stdcall-fixup,--enable-runtime-pseudo-reloc -L$(CYGLIB) +LINKFLAGS=-nostdlib -Wl,--enable-stdcall-fixup,--enable-runtime-pseudo-reloc-v2 -L$(CYGLIB) .IF "$(USE_MINGW)"=="cygwin" MINGWLIBDIR=$(COMPATH)$/lib$/mingw .ELSE |