summaryrefslogtreecommitdiff
path: root/configmgr/source/valueparser.cxx
blob: f951aac5ca01c3aa57e845aba64421d7c3b4673d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
/*************************************************************************
*
* 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.
*
************************************************************************/

#include "precompiled_configmgr.hxx"
#include "sal/config.h"

#include "com/sun/star/uno/Any.hxx"
#include "com/sun/star/uno/Reference.hxx"
#include "com/sun/star/uno/RuntimeException.hpp"
#include "com/sun/star/uno/Sequence.hxx"
#include "com/sun/star/uno/XInterface.hpp"
#include "comphelper/sequenceasvector.hxx"
#include "osl/diagnose.h"
#include "rtl/string.h"
#include "rtl/string.hxx"
#include "rtl/ustring.h"
#include "rtl/ustring.hxx"
#include "sal/types.h"

#include "localizedvaluenode.hxx"
#include "node.hxx"
#include "nodemap.hxx"
#include "propertynode.hxx"
#include "span.hxx"
#include "type.hxx"
#include "valueparser.hxx"
#include "xmldata.hxx"
#include "xmlreader.hxx"

namespace configmgr {

namespace {

namespace css = com::sun::star;

bool parseHexDigit(char c, int * value) {
    OSL_ASSERT(value != 0);
    if (c >= '0' && c <= '9') {
        *value = c - '0';
        return true;
    }
    if (c >= 'A' && c <= 'F') {
        *value = c - 'A' + 10;
        return true;
    }
    if (c >= 'a' && c <= 'f') {
        *value = c - 'a' + 10;
        return true;
    }
    return false;
}

bool parseValue(Span const & text, sal_Bool * value) {
    OSL_ASSERT(text.is() && value != 0);
    if (text.equals(RTL_CONSTASCII_STRINGPARAM("true")) ||
        text.equals(RTL_CONSTASCII_STRINGPARAM("1")))
    {
        *value = true;
        return true;
    }
    if (text.equals(RTL_CONSTASCII_STRINGPARAM("false")) ||
        text.equals(RTL_CONSTASCII_STRINGPARAM("0")))
    {
        *value = false;
        return true;
    }
    return false;
}

bool parseValue(Span const & text, sal_Int16 * value) {
    OSL_ASSERT(text.is() && value != 0);
    // For backwards compatibility, support hexadecimal values:
    sal_Int32 n =
        rtl_str_shortenedCompareIgnoreAsciiCase_WithLength(
            text.begin, text.length, RTL_CONSTASCII_STRINGPARAM("0X"),
            RTL_CONSTASCII_LENGTH("0X")) == 0 ?
        rtl::OString(
            text.begin + RTL_CONSTASCII_LENGTH("0X"),
            text.length - RTL_CONSTASCII_LENGTH("0X")).toInt32(16) :
        rtl::OString(text.begin, text.length).toInt32();
        //TODO: check valid lexical representation
    if (n >= SAL_MIN_INT16 && n <= SAL_MAX_INT16) {
        *value = static_cast< sal_Int16 >(n);
        return true;
    }
    return false;
}

bool parseValue(Span const & text, sal_Int32 * value) {
    OSL_ASSERT(text.is() && value != 0);
    // For backwards compatibility, support hexadecimal values:
    *value =
        rtl_str_shortenedCompareIgnoreAsciiCase_WithLength(
            text.begin, text.length, RTL_CONSTASCII_STRINGPARAM("0X"),
            RTL_CONSTASCII_LENGTH("0X")) == 0 ?
        rtl::OString(
            text.begin + RTL_CONSTASCII_LENGTH("0X"),
            text.length - RTL_CONSTASCII_LENGTH("0X")).toInt32(16) :
        rtl::OString(text.begin, text.length).toInt32();
        //TODO: check valid lexical representation
    return true;
}

bool parseValue(Span const & text, sal_Int64 * value) {
    OSL_ASSERT(text.is() && value != 0);
    // For backwards compatibility, support hexadecimal values:
    *value =
        rtl_str_shortenedCompareIgnoreAsciiCase_WithLength(
            text.begin, text.length, RTL_CONSTASCII_STRINGPARAM("0X"),
            RTL_CONSTASCII_LENGTH("0X")) == 0 ?
        rtl::OString(
            text.begin + RTL_CONSTASCII_LENGTH("0X"),
            text.length - RTL_CONSTASCII_LENGTH("0X")).toInt64(16) :
        rtl::OString(text.begin, text.length).toInt64();
        //TODO: check valid lexical representation
    return true;
}

bool parseValue(Span const & text, double * value) {
    OSL_ASSERT(text.is() && value != 0);
    *value = rtl::OString(text.begin, text.length).toDouble();
        //TODO: check valid lexical representation
    return true;
}

bool parseValue(Span const & text, rtl::OUString * value) {
    OSL_ASSERT(text.is() && value != 0);
    *value = xmldata::convertFromUtf8(text);
    return true;
}

bool parseValue(Span const & text, css::uno::Sequence< sal_Int8 > * value) {
    OSL_ASSERT(text.is() && value != 0);
    if ((text.length & 1) != 0) {
        return false;
    }
    comphelper::SequenceAsVector< sal_Int8 > seq;
    for (sal_Int32 i = 0; i != text.length;) {
        int n1;
        int n2;
        if (!parseHexDigit(text.begin[i++], &n1) ||
            !parseHexDigit(text.begin[i++], &n2))
        {
            return false;
        }
        seq.push_back(static_cast< sal_Int8 >((n1 << 4) | n2));
    }
    *value = seq.getAsConstList();
    return true;
}

template< typename T > css::uno::Any parseSingleValue(Span const & text) {
    T val;
    if (!parseValue(text, &val)) {
        throw css::uno::RuntimeException(
            rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("invalid value")),
            css::uno::Reference< css::uno::XInterface >());
    }
    return css::uno::makeAny(val);
}

template< typename T > css::uno::Any parseListValue(
    rtl::OString const & separator, Span const & text)
{
    comphelper::SequenceAsVector< T > seq;
    Span sep;
    if (separator.getLength() == 0) {
        sep = Span(RTL_CONSTASCII_STRINGPARAM(" "));
    } else {
        sep = Span(separator.getStr(), separator.getLength());
    }
    if (text.length != 0) {
        for (Span t(text);;) {
            sal_Int32 i = rtl_str_indexOfStr_WithLength(
                t.begin, t.length, sep.begin, sep.length);
            T val;
            if (!parseValue(Span(t.begin, i == -1 ? t.length : i), &val)) {
                throw css::uno::RuntimeException(
                    rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("invalid value")),
                    css::uno::Reference< css::uno::XInterface >());
            }
            seq.push_back(val);
            if (i < 0) {
                break;
            }
            t.begin += i + sep.length;
            t.length -= i + sep.length;
        }
    }
    return css::uno::makeAny(seq.getAsConstList());
}

css::uno::Any parseValue(
    rtl::OString const & separator, Span const & text, Type type)
{
    switch (type) {
    case TYPE_ANY:
        throw css::uno::RuntimeException(
            rtl::OUString(
                RTL_CONSTASCII_USTRINGPARAM("invalid value of type any")),
            css::uno::Reference< css::uno::XInterface >());
    case TYPE_BOOLEAN:
        return parseSingleValue< sal_Bool >(text);
    case TYPE_SHORT:
        return parseSingleValue< sal_Int16 >(text);
    case TYPE_INT:
        return parseSingleValue< sal_Int32 >(text);
    case TYPE_LONG:
        return parseSingleValue< sal_Int64 >(text);
    case TYPE_DOUBLE:
        return parseSingleValue< double >(text);
    case TYPE_STRING:
        return parseSingleValue< rtl::OUString >(text);
    case TYPE_HEXBINARY:
        return parseSingleValue< css::uno::Sequence< sal_Int8 > >(text);
    case TYPE_BOOLEAN_LIST:
        return parseListValue< sal_Bool >(separator, text);
    case TYPE_SHORT_LIST:
        return parseListValue< sal_Int16 >(separator, text);
    case TYPE_INT_LIST:
        return parseListValue< sal_Int32 >(separator, text);
    case TYPE_LONG_LIST:
        return parseListValue< sal_Int64 >(separator, text);
    case TYPE_DOUBLE_LIST:
        return parseListValue< double >(separator, text);
    case TYPE_STRING_LIST:
        return parseListValue< rtl::OUString >(separator, text);
    case TYPE_HEXBINARY_LIST:
        return parseListValue< css::uno::Sequence< sal_Int8 > >(
            separator, text);
    default:
        OSL_ASSERT(false);
        throw css::uno::RuntimeException(
            rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("this cannot happen")),
            css::uno::Reference< css::uno::XInterface >());
    }
}

}

ValueParser::ValueParser(int layer): layer_(layer) {}

ValueParser::~ValueParser() {}

XmlReader::Text ValueParser::getTextMode() const {
    if (node_.is()) {
        switch (state_) {
        case STATE_TEXT:
        case STATE_IT:
            return
                (type_ == TYPE_STRING || type_ == TYPE_STRING_LIST ||
                 separator_.getLength() != 0)
                ? XmlReader::TEXT_RAW : XmlReader::TEXT_NORMALIZED;
        default:
            break;
        }
    }
    return XmlReader::TEXT_NONE;
}

bool ValueParser::startElement(
    XmlReader & reader, XmlReader::Namespace ns, Span const & name)
{
    if (!node_.is()) {
        return false;
    }
    switch (state_) {
    case STATE_TEXT:
        if (ns == XmlReader::NAMESPACE_NONE &&
            name.equals(RTL_CONSTASCII_STRINGPARAM("it")) &&
            isListType(type_) && separator_.getLength() == 0)
        {
            checkEmptyPad(reader);
            state_ = STATE_IT;
            return true;
        }
        // fall through
    case STATE_IT:
        if (ns == XmlReader::NAMESPACE_NONE &&
            name.equals(RTL_CONSTASCII_STRINGPARAM("unicode")) &&
            (type_ == TYPE_STRING || type_ == TYPE_STRING_LIST))
        {
            sal_Int32 scalar = -1;
            for (;;) {
                XmlReader::Namespace attrNs;
                Span attrLn;
                if (!reader.nextAttribute(&attrNs, &attrLn)) {
                    break;
                }
                if (attrNs == XmlReader::NAMESPACE_OOR &&
                    attrLn.equals(RTL_CONSTASCII_STRINGPARAM("scalar")))
                {
                    if (!parseValue(reader.getAttributeValue(true), &scalar)) {
                        scalar = -1;
                    }
                    break;
                }
            }
            if (scalar >= 0 && scalar < 0x20 && scalar != 0x09 &&
                scalar != 0x0A && scalar != 0x0D)
            {
                char c = static_cast< char >(scalar);
                pad_.add(&c, 1);
            } else if (scalar == 0xFFFE) {
                pad_.add(RTL_CONSTASCII_STRINGPARAM("\xEF\xBF\xBE"));
            } else if (scalar == 0xFFFF) {
                pad_.add(RTL_CONSTASCII_STRINGPARAM("\xEF\xBF\xBF"));
            } else {
                throw css::uno::RuntimeException(
                    (rtl::OUString(
                        RTL_CONSTASCII_USTRINGPARAM(
                            "bad unicode scalar attribute in ")) +
                     reader.getUrl()),
                    css::uno::Reference< css::uno::XInterface >());
            }
            state_ = State(state_ + 1);
            return true;
        }
        break;
    default:
        break;
    }
    throw css::uno::RuntimeException(
        (rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("bad member <")) +
         xmldata::convertFromUtf8(name) +
         rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("> in ")) + reader.getUrl()),
        css::uno::Reference< css::uno::XInterface >());
}

bool ValueParser::endElement(XmlReader const & reader) {
    if (!node_.is()) {
        return false;
    }
    switch (state_) {
    case STATE_TEXT:
        {
            css::uno::Any value;
            if (items_.empty()) {
                value = parseValue(separator_, pad_.get(), type_);
                pad_.clear();
            } else {
                checkEmptyPad(reader);
                switch (type_) {
                case TYPE_BOOLEAN_LIST:
                    value = convertItems< sal_Bool >();
                    break;
                case TYPE_SHORT_LIST:
                    value = convertItems< sal_Int16 >();
                    break;
                case TYPE_INT_LIST:
                    value = convertItems< sal_Int32 >();
                    break;
                case TYPE_LONG_LIST:
                    value = convertItems< sal_Int64 >();
                    break;
                case TYPE_DOUBLE_LIST:
                    value = convertItems< double >();
                    break;
                case TYPE_STRING_LIST:
                    value = convertItems< rtl::OUString >();
                    break;
                case TYPE_HEXBINARY_LIST:
                    value = convertItems< css::uno::Sequence< sal_Int8 > >();
                    break;
                default:
                    OSL_ASSERT(false); // this cannot happen
                    break;
                }
                items_.clear();
            }
            switch (node_->kind()) {
            case Node::KIND_PROPERTY:
                dynamic_cast< PropertyNode * >(node_.get())->setValue(
                    layer_, value);
                break;
            case Node::KIND_LOCALIZED_PROPERTY:
                {
                    NodeMap::iterator i(
                        node_->getMembers().find(localizedName_));
                    if (i == node_->getMembers().end()) {
                        node_->getMembers().insert(
                            NodeMap::value_type(
                                localizedName_,
                                new LocalizedValueNode(layer_, value)));
                    } else {
                        dynamic_cast< LocalizedValueNode * >(i->second.get())->
                            setValue(layer_, value);
                    }
                }
                break;
            default:
                OSL_ASSERT(false); // this cannot happen
                break;
            }
            separator_ = rtl::OString();
            node_.clear();
        }
        break;
    case STATE_TEXT_UNICODE:
    case STATE_IT_UNICODE:
        state_ = State(state_ - 1);
        break;
    case STATE_IT:
        items_.push_back(
            parseValue(rtl::OString(), pad_.get(), elementType(type_)));
        pad_.clear();
        state_ = STATE_TEXT;
        break;
    }
    return true;
}

void ValueParser::characters(Span const & text) {
    if (node_.is()) {
        OSL_ASSERT(state_ == STATE_TEXT || state_ == STATE_IT);
        pad_.add(text.begin, text.length);
    }
}

void ValueParser::start(
    rtl::Reference< Node > const & node, rtl::OUString const & localizedName)
{
    OSL_ASSERT(node.is() && !node_.is());
    node_ = node;
    localizedName_ = localizedName;
    state_ = STATE_TEXT;
}

int ValueParser::getLayer() const {
    return layer_;
}

void ValueParser::checkEmptyPad(XmlReader const & reader) const {
    if (pad_.is()) {
        throw css::uno::RuntimeException(
            (rtl::OUString(
                RTL_CONSTASCII_USTRINGPARAM(
                    "mixed text and <it> elements in ")) +
             reader.getUrl()),
            css::uno::Reference< css::uno::XInterface >());
    }
}

template< typename T > css::uno::Any ValueParser::convertItems() {
    css::uno::Sequence< T > seq(items_.size());
    for (sal_Int32 i = 0; i < seq.getLength(); ++i) {
        OSL_VERIFY(items_[i] >>= seq[i]);
    }
    return css::uno::makeAny(seq);
}

}
5895d5baa04826d1884fc4720c6180f2eda04'>solenv/bin/createcomponent.xslt51
-rwxr-xr-xsolenv/bin/deliver.pl32
-rwxr-xr-xsolenv/bin/linkoo2
-rw-r--r--solenv/bin/macosx-change-install-names.pl12
-rwxr-xr-xsolenv/bin/macosx-create-bundle2
-rw-r--r--solenv/bin/make_installer.pl42
-rw-r--r--solenv/bin/mhids.pl384
-rw-r--r--solenv/bin/modules/CreatePDBRelocators.pm61
-rw-r--r--solenv/bin/modules/RepositoryHelper.pm15
-rwxr-xr-xsolenv/bin/modules/SourceConfig.pm17
-rw-r--r--solenv/bin/modules/SourceConfigHelper.pm422
-rw-r--r--solenv/bin/modules/installer/control.pm32
-rw-r--r--solenv/bin/modules/installer/environment.pm4
-rw-r--r--solenv/bin/modules/installer/globals.pm20
-rw-r--r--solenv/bin/modules/installer/parameter.pm15
-rw-r--r--solenv/bin/modules/installer/regmerge.pm339
-rw-r--r--solenv/bin/modules/installer/scriptitems.pm78
-rw-r--r--solenv/bin/modules/installer/servicesfile.pm1059
-rw-r--r--solenv/bin/modules/installer/simplepackage.pm40
-rw-r--r--solenv/bin/modules/installer/substfilenamefiles.pm3
-rw-r--r--solenv/bin/modules/installer/windows/component.pm16
-rw-r--r--solenv/bin/modules/installer/windows/directory.pm107
-rw-r--r--solenv/bin/modules/installer/windows/file.pm232
-rw-r--r--solenv/bin/modules/installer/windows/idtglobal.pm22
-rw-r--r--solenv/bin/modules/installer/windows/msiglobal.pm110
-rw-r--r--solenv/bin/modules/installer/windows/property.pm4
-rw-r--r--solenv/bin/modules/par2script/check.pm49
-rw-r--r--solenv/bin/packcomponents.xslt52
-rwxr-xr-xsolenv/bin/packmodule63
-rw-r--r--solenv/bin/par2script.pl2
-rwxr-xr-x[-rw-r--r--]solenv/bin/soirpm.sh0
-rwxr-xr-xsolenv/bin/subsequenttests54
-rw-r--r--solenv/bin/transform_description.pl6
-rw-r--r--solenv/config/sdev300.ini3359
-rw-r--r--solenv/doc/gbuild/doxygen.cfg1510
-rw-r--r--solenv/doc/gbuild/solenv/gbuild/alllangres.mk90
-rw-r--r--solenv/doc/gbuild/solenv/gbuild/executable.mk25
-rw-r--r--solenv/doc/gbuild/solenv/gbuild/gbuild.mk82
-rw-r--r--solenv/doc/gbuild/solenv/gbuild/helper.mk42
-rw-r--r--solenv/doc/gbuild/solenv/gbuild/library.mk41
-rw-r--r--solenv/doc/gbuild/solenv/gbuild/linktarget.mk128
-rw-r--r--solenv/doc/gbuild/solenv/gbuild/package.mk30
-rw-r--r--solenv/doc/gbuild/solenv/gbuild/sdi.mk23
-rw-r--r--solenv/doc/gbuild/solenv/gbuild/static_library.mk39
-rw-r--r--solenv/doc/gbuild/solenv/gbuild/types.mk169
-rw-r--r--solenv/gbuild/AllLangResTarget.mk323
-rw-r--r--solenv/gbuild/BuildDirs.mk59
-rw-r--r--solenv/gbuild/ComponentTarget.mk69
-rw-r--r--solenv/gbuild/CppunitTest.mk96
-rw-r--r--solenv/gbuild/CustomTarget.mk96
-rw-r--r--solenv/gbuild/Deliver.mk95
-rw-r--r--solenv/gbuild/Executable.mk91
-rw-r--r--solenv/gbuild/Helper.mk167
-rw-r--r--solenv/gbuild/JavaClassSet.mk81
-rw-r--r--solenv/gbuild/JunitTest.mk97
-rw-r--r--solenv/gbuild/Library.mk133
-rw-r--r--solenv/gbuild/LinkTarget.mk641
-rw-r--r--solenv/gbuild/Module.mk212
-rw-r--r--solenv/gbuild/Output.mk147
-rw-r--r--solenv/gbuild/Package.mk80
-rw-r--r--solenv/gbuild/PrecompiledHeaders.mk77
-rw-r--r--solenv/gbuild/SdiTarget.mk71
-rw-r--r--solenv/gbuild/StaticLibrary.mk109
-rw-r--r--solenv/gbuild/TargetLocations.mk162
-rw-r--r--solenv/gbuild/Tempfile.mk18
-rw-r--r--solenv/gbuild/extensions/post_PackModule.mk62
-rw-r--r--solenv/gbuild/extensions/post_SetupLocal.mk68
-rw-r--r--solenv/gbuild/extensions/pre_SharedLangList.mk38
-rw-r--r--solenv/gbuild/gbuild.mk254
-rwxr-xr-xsolenv/gbuild/platform/linux.mk407
-rwxr-xr-xsolenv/gbuild/platform/macosx.mk454
-rwxr-xr-xsolenv/gbuild/platform/solaris.mk385
-rwxr-xr-xsolenv/gbuild/platform/windows.mk679
-rw-r--r--solenv/gbuild/platform/winmingw.mk609
-rw-r--r--solenv/gbuild/processdelivered.awk36
-rw-r--r--solenv/gbuild/processdeps.awk78
-rw-r--r--solenv/gbuild/templates/AllLangResTarget.mk49
-rw-r--r--solenv/gbuild/templates/CppunitTest.mk41
-rw-r--r--solenv/gbuild/templates/Executable.mk45
-rw-r--r--solenv/gbuild/templates/JunitTest.mk49
-rw-r--r--solenv/gbuild/templates/Library.mk86
-rw-r--r--solenv/gbuild/templates/Makefile38
-rw-r--r--solenv/gbuild/templates/Module.mk45
-rw-r--r--solenv/gbuild/templates/Package.mk42
-rw-r--r--solenv/gbuild/templates/StaticLibrary.mk35
-rw-r--r--solenv/gbuild/templates/makefile.mk (renamed from soltools/HIDCompiler/makefile.mk)41
-rw-r--r--solenv/inc/_cppunit.mk20
-rwxr-xr-x[-rw-r--r--]solenv/inc/_tg_rslb.mk160
-rw-r--r--solenv/inc/_tg_scp.mk20
-rw-r--r--solenv/inc/_tg_sdi.mk90
-rw-r--r--solenv/inc/_tg_shl.mk170
-rw-r--r--solenv/inc/_tg_srs.mk140
-rw-r--r--solenv/inc/cppunit.mk2
-rw-r--r--solenv/inc/extension_post.mk15
-rw-r--r--solenv/inc/installationtest.mk39
-rw-r--r--solenv/inc/javaunittest.mk27
-rw-r--r--solenv/inc/langlist.mk163
-rw-r--r--solenv/inc/libs.mk6
-rw-r--r--solenv/inc/minor.mk10
-rw-r--r--solenv/inc/postmac.h6
-rw-r--r--solenv/inc/premac.h6
-rw-r--r--solenv/inc/pstrules.mk21
-rw-r--r--solenv/inc/rules.mk7
-rw-r--r--solenv/inc/settings.mk99
-rw-r--r--solenv/inc/target.mk58
-rw-r--r--solenv/inc/tg_ext.mk4
-rw-r--r--solenv/inc/tg_jar.mk12
-rw-r--r--solenv/inc/tg_java.mk11
-rw-r--r--solenv/inc/tg_rslb.mk16
-rw-r--r--solenv/inc/tg_scp.mk2
-rw-r--r--solenv/inc/tg_sdi.mk9
-rw-r--r--solenv/inc/tg_shl.mk17
-rw-r--r--solenv/inc/tg_srs.mk14
-rw-r--r--solenv/inc/unitools.mk6
-rw-r--r--solenv/inc/unx.mk3
-rw-r--r--solenv/inc/unxmacx.mk5
-rwxr-xr-xsolenv/inc/version.hrc16
-rwxr-xr-x[-rw-r--r--]solenv/inc/version.lst6
-rwxr-xr-xsolenv/inc/version_so.hrc16
-rwxr-xr-x[-rw-r--r--]solenv/inc/versionlist.mk2
-rwxr-xr-xsolenv/inc/wntgcci.mk4
-rwxr-xr-x[-rw-r--r--]solenv/inc/wntmsc.mk3
-rwxr-xr-x[-rw-r--r--]solenv/makefile.mk13
-rwxr-xr-x[-rw-r--r--]solenv/prj/d.lst6
-rwxr-xr-xsolenv/src/component.map1
-rwxr-xr-xsolenv/src/reg-component.map8
-rwxr-xr-xsolenv/src/unloadablecomponent.map1
-rwxr-xr-xsoltools/HIDCompiler/hidclex.l949
-rw-r--r--soltools/mkdepend/def.h5
-rw-r--r--soltools/mkdepend/include.c21
-rw-r--r--soltools/prj/build.lst1
-rw-r--r--soltools/prj/d.lst2
-rw-r--r--stlport/prj/d.lst1
-rw-r--r--stlport/systemstlguards/postextstl.h (renamed from soltools/HIDCompiler/wrap_hidclex.cxx)15
-rw-r--r--stlport/systemstlguards/preextstl.h77
195 files changed, 16603 insertions, 5225 deletions
diff --git a/.gitignore b/.gitignore
index 4621c7b32284..904eac38ca77 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,7 +22,6 @@
/*/unxaig??
/*/unxaig??.pro
/solver/*
-/instsetoo_native/*
# autoconf generated stuff
/aclocal.m4
@@ -58,201 +57,202 @@
/*/*.exe
# links to the other repositories
-MathMLDTD
-Mesa
-UnoControls
-agg
-accessibility
-afms
-animations
-apache-commons
-apple_remote
-autodoc
-automation
-avmedia
-basctl
-basebmp
-basegfx
-basic
-bean
-beanshell
-berkeleydb
-binfilter
-boost
-bridges
-cairo
-canvas
-chart2
-cli_ure
-codemaker
-comphelper
-configmgr
-connectivity
-cosv
-cppcanvas
-cppu
-cppuhelper
-cppunit
-cpputools
-crashrep
-cui
-curl
-dbaccess
-default_images
-desktop
-dictionaries
-drawinglayer
-dtrans
-editeng
-embeddedobj
-embedserv
-epm
-eventattacher
-expat
-extensions
-external
-external_images
-extras
-fileaccess
-filter
-forms
-formula
-fpicker
-framework
-graphite
-helpcontent2
-hsqldb
-hunspell
-hwpfilter
-hyphen
-i18npool
-i18nutil
-icc
-icu
-idl
-idlc
-io
-javainstaller2
-javaunohelper
-jfreereport
-jpeg
-jurt
-jvmaccess
-jvmfwk
-l10n
-l10ntools
-languagetool
-libegg
-libtextcat
-libwpd
-libwpg
-libwps
-libxml2
-libxmlsec
-libxslt
-lingucomponent
-linguistic
-lotuswordpro
-lpsolve
-lucene
-mdds
-migrationanalysis
-more_fonts
-moz
-mysqlc
-mysqlcppconn
-mythes
-neon
-nlpsolver
-np_sdk
-nss
-o3tl
-odk
-offapi
-officecfg
-offuh
-ooo_custom_images
-oovbaapi
-oox
-openssl
-package
-packimages
-padmin
-postprocess
-psprint_config
-python
-pyuno
-qadevOOo
-rdbmaker
-readlicense_oo
-redland
-regexp
-registry
-remotebridges
-reportbuilder
-reportdesign
-rhino
-ridljar
-rsc
-sal
-salhelper
-sane
-sax
-saxon
-sc
-scaddins
-sccomp
-scripting
-sd
-sdext
-setup_native
-sfx2
-shell
-slideshow
-smoketestoo_native
-sot
-starmath
-stax
-stoc
-store
-svl
-svtools
-svx
-sw
-swext
-sysui
-test
-testautomation
-testgraphical
-testtools
-tomcat
-toolkit
-tools
-twain
-ucb
-ucbhelper
-udkapi
-udm
-unixODBC
-unodevtools
-unoil
-unotools
-unoxml
-ure
-uui
-vbahelper
-vcl
-vigra
-wizards
-writerfilter
-writerperfect
-x11_extensions
-xmerge
-xml2cmp
-xmlhelp
-xmloff
-xmlscript
-xmlsecurity
-xpdf
-xsltml
-zlib
+/MathMLDTD
+/Mesa
+/UnoControls
+/agg
+/accessibility
+/afms
+/animations
+/apache-commons
+/apple_remote
+/autodoc
+/automation
+/avmedia
+/basctl
+/basebmp
+/basegfx
+/basic
+/bean
+/beanshell
+/berkeleydb
+/binfilter
+/boost
+/bridges
+/cairo
+/canvas
+/chart2
+/cli_ure
+/codemaker
+/comphelper
+/configmgr
+/connectivity
+/cosv
+/cppcanvas
+/cppu
+/cppuhelper
+/cppunit
+/cpputools
+/crashrep
+/cui
+/curl
+/dbaccess
+/default_images
+/desktop
+/dictionaries
+/drawinglayer
+/dtrans
+/editeng
+/embeddedobj
+/embedserv
+/epm
+/eventattacher
+/expat
+/extensions
+/external
+/external_images
+/extras
+/fileaccess
+/filter
+/forms
+/formula
+/fpicker
+/framework
+/graphite
+/helpcontent2
+/hsqldb
+/hunspell
+/hwpfilter
+/hyphen
+/i18npool
+/i18nutil
+/icc
+/icu
+/idl
+/idlc
+/io
+/javainstaller2
+/javaunohelper
+/jfreereport
+/jpeg
+/jurt
+/jvmaccess
+/jvmfwk
+/l10n
+/l10ntools
+/languagetool
+/libegg
+/libtextcat
+/libwpd
+/libwpg
+/libwps
+/libxml2
+/libxmlsec
+/libxslt
+/lingucomponent
+/linguistic
+/lotuswordpro
+/lpsolve
+/lucene
+/mdds
+/migrationanalysis
+/more_fonts
+/moz
+/mysqlc
+/mysqlcppconn
+/mythes
+/neon
+/nlpsolver
+/np_sdk
+/nss
+/o3tl
+/odk
+/offapi
+/officecfg
+/offuh
+/ooo_custom_images
+/oovbaapi
+/oox
+/openssl
+/package
+/packimages
+/padmin
+/postprocess
+/psprint_config
+/python
+/pyuno
+/qadevOOo
+/rdbmaker
+/readlicense_oo
+/redland
+/regexp
+/registry
+/remotebridges
+/reportbuilder
+/reportdesign
+/rhino
+/ridljar
+/rsc
+/sal
+/salhelper
+/sane
+/sax
+/saxon
+/sc
+/scaddins
+/sccomp
+/scripting
+/sd
+/sdext
+/setup_native
+/sfx2
+/shell
+/slideshow
+/smoketestoo_native
+/sot
+/starmath
+/stax
+/stoc
+/store
+/svl
+/svtools
+/svx
+/sw
+/swext
+/sysui
+/test
+/testautomation
+/testgraphical
+/testtools
+/tomcat
+/toolkit
+/tools
+/twain
+/ucb
+/ucbhelper
+/udkapi
+/udm
+/unixODBC
+/unodevtools
+/unoil
+/unotools
+/unoxml
+/ure
+/uui
+/vbahelper
+/vcl
+/vigra
+/wizards
+/writerfilter
+/writerperfect
+/x11_extensions
+/xmerge
+/xml2cmp
+/xmlhelp
+/xmloff
+/xmlreader
+/xmlscript
+/xmlsecurity
+/xpdf
+/xsltml
+/zlib
diff --git a/GNUmakefile b/GNUmakefile
new file mode 100644
index 000000000000..018b21e3f1ac
--- /dev/null
+++ b/GNUmakefile
@@ -0,0 +1,37 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# 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.
+#
+#*************************************************************************
+
+ifeq ($(strip $(SOLARENV)),)
+$(error No environment set!)
+endif
+
+GBUILDDIR := $(SOLARENV)/gbuild
+include $(GBUILDDIR)/gbuild.mk
+
+$(foreach repo,$(gb_REPOS),$(eval $(call gb_Module_make_global_targets,$(wildcard $(repo)/Module_*.mk))))
+
+# vim: set noet sw=4 ts=4:
diff --git a/Module_ooo.mk b/Module_ooo.mk
new file mode 100644
index 000000000000..a60bbb636c63
--- /dev/null
+++ b/Module_ooo.mk
@@ -0,0 +1,47 @@
+#*************************************************************************
+#
+# 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.
+#
+#*************************************************************************
+
+$(eval $(call gb_Module_Module,ooo))
+
+$(eval $(call gb_Module_add_moduledirs,ooo,\
+ comphelper \
+ editeng \
+ framework \
+ padmin \
+ sfx2 \
+ sot \
+ svl \
+ svtools \
+ svx \
+ sw \
+ toolkit \
+ tools \
+ xmloff \
+ vbahelper \
+))
+
+# vim: set noet ts=4 sw=4:
diff --git a/Repository.mk b/Repository.mk
new file mode 100644
index 000000000000..87bbafa59baf
--- /dev/null
+++ b/Repository.mk
@@ -0,0 +1,137 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2009 by Sun Microsystems, Inc.
+#
+# 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.
+#
+#*************************************************************************
+
+$(eval $(call gb_Helper_register_repository,SRCDIR))
+
+
+$(eval $(call gb_Helper_register_executables,NONE, \
+ bmp \
+ bmpsum \
+ g2g \
+ mkunroll \
+ rscdep \
+ so_checksum \
+ sspretty \
+))
+
+$(eval $(call gb_Helper_register_executables,OOO, \
+ spadmin.bin \
+))
+
+$(eval $(call gb_Helper_register_libraries,OOOLIBS, \
+ avmedia \
+ basegfx \
+ cui \
+ drawinglayer \
+ editeng \
+ eggtray \
+ fwe \
+ fwi \
+ fwk \
+ fwl \
+ fwm \
+ i18npaper \
+ lng \
+ msfilter \
+ msword \
+ qstart_gtk \
+ sax \
+ sb \
+ sfx \
+ sot \
+ spa \
+ svl \
+ svt \
+ svx \
+ svxcore \
+ sw \
+ swd \
+ swui \
+ textconversiondlgs \
+ tk \
+ tl \
+ utl \
+ vbahelper \
+ vcl \
+ xcr \
+ xo \
+ xof \
+))
+
+$(eval $(call gb_Helper_register_libraries,PLAINLIBS_URE, \
+ xml2 \
+))
+
+$(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \
+ icuuc \
+ cppunit \
+))
+
+
+$(eval $(call gb_Helper_register_libraries,RTLIBS, \
+ comphelper \
+ i18nisolang1 \
+ i18nutil \
+ ucbhelper \
+ vos3 \
+))
+
+$(eval $(call gb_Helper_register_libraries,RTVERLIBS, \
+ cppuhelper \
+ salhelper \
+))
+
+$(eval $(call gb_Helper_register_libraries,STLLIBS, \
+ stl \
+))
+
+$(eval $(call gb_Helper_register_libraries,UNOLIBS_OOO, \
+ fsstorage \
+ hatchwindowfactory \
+ passwordcontainer \
+ productregistration \
+ vbaswobj \
+ msforms \
+))
+
+
+$(eval $(call gb_Helper_register_libraries,UNOVERLIBS, \
+ cppu \
+ jvmfwk \
+ sal \
+))
+
+$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
+ jpeglib \
+ ooopathutils \
+ salcpprt \
+ vclmain \
+ zlib \
+ vclmain \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/RepositoryFixes.mk b/RepositoryFixes.mk
new file mode 100644
index 000000000000..406cb6a9eee6
--- /dev/null
+++ b/RepositoryFixes.mk
@@ -0,0 +1,186 @@
+#*************************************************************************
+#
+# 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.
+#
+#*************************************************************************
+
+# fixes for all the libraries that are named with too much creativity and do
+# not follow any of the established nameschemes
+
+ifeq ($(OS),LINUX)
+gb_Library_FILENAMES := $(patsubst comphelper:libcomphelper%,comphelper:libcomphelp%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst cppuhelper:libcppuhelper%,cppuhelper:libuno_cppuhelper%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst cppuhelper:libcppuhelper%,cppuhelper:libuno_cppuhelper%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst jvmfwk:libuno_jvmfwk%,jvmfwk:libjvmfwk%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst jvmfwk:libuno_jvmfwk%,jvmfwk:libjvmfwk%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst salhelper:libsalhelper%,salhelper:libuno_salhelper%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst salhelper:libsalhelper%,salhelper:libuno_salhelper%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst ucbhelper:libucbhelper%,ucbhelper:libucbhelper4%,$(gb_Library_FILENAMES))
+
+ifeq ($(USE_SYSTEM_STL),YES)
+gb_Library_FILENAMES := $(patsubst stl:%,stl:libstdc++.so,$(gb_Library_FILENAMES))
+gb_Library_TARGETS := $(filter-out stl,$(gb_Library_TARGETS))
+endif
+
+endif
+
+
+ifeq ($(OS),MACOSX)
+gb_Library_FILENAMES := $(patsubst comphelper:libcomphelper%,comphelper:libcomphelp%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst cppuhelper:libcppuhelper%,cppuhelper:libuno_cppuhelper%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst jvmfwk:libuno_jvmfwk%,jvmfwk:libjvmfwk%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst salhelper:libsalhelper%,salhelper:libuno_salhelper%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst ucbhelper:libucbhelper%,ucbhelper:libucbhelper4%,$(gb_Library_FILENAMES))
+
+ifeq ($(USE_SYSTEM_STL),YES)
+gb_Library_FILENAMES := $(patsubst stl:%,stl:libstdc++.dylib,$(gb_Library_FILENAMES))
+gb_Library_TARGETS := $(filter-out stl,$(gb_Library_TARGETS))
+endif
+
+endif
+
+
+ifeq ($(OS),WNT)
+ifneq ($(USE_MINGW),)
+gb_Library_FILENAMES := $(patsubst comphelper:icomphelper%,comphelper:icomphelp%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst cppunit:icppunit%,cppunit:libcppunit.dll$(gb_Library_IARCEXT),$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst cui:icui%,cui:icuin%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst i18nisolang1:ii18nisolang1%,i18nisolang1:ii18nisolang%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst i18nisolang1:iii18nisolang1%,i18nisolang1:iii18nisolang%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst sb:isb%,sb:basic%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst sfx:isfx%,sfx:sfx%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst svt:isvt%,svt:svtool%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst tl:itl%,tl:itools%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst vbahelper:ivbahelper%,vbahelper:vbahelper%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst vos3:ivos3%,vos3:ivos%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst xml2:ixml2%,xml2:libxml2$(gb_Library_IARCEXT),$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst z:iz%,z:zlib%,$(gb_Library_FILENAMES))
+ifeq ($(gb_PRODUCT),$(true))
+gb_Library_FILENAMES := $(patsubst stl:istl%,stl:stlport_vc71%,$(gb_Library_FILENAMES))
+else
+gb_Library_FILENAMES := $(patsubst stl:istl%,stl:stlport_vc71_stldebug%,$(gb_Library_FILENAMES))
+endif
+gb_Library_NOILIBFILENAMES:=\
+ icuuc \
+ sot \
+ uwinapi \
+
+gb_Library_FILENAMES := $(filter-out $(foreach lib,$(gb_Library_NOILIBFILENAMES),$(lib):%),$(gb_Library_FILENAMES))
+gb_Library_FILENAMES += $(foreach lib,$(gb_Library_NOILIBFILENAMES),$(lib):$(lib)$(gb_Library_PLAINEXT))
+
+gb_Library_ILIBFILENAMES:=\
+ unicows \
+ uuid \
+
+gb_Library_DLLFILENAMES := $(filter-out $(foreach lib,$(gb_Library_ILIBFILENAMES),$(lib):%),$(gb_Library_DLLFILENAMES))
+gb_Library_DLLFILENAMES += $(foreach lib,$(gb_Library_ILIBFILENAMES),$(lib):$(PSDK_HOME)/lib/$(lib)$(gb_Library_ILIBEXT))
+
+gb_Library_DLLFILENAMES := $(patsubst comphelper:comphelper%,comphelper:comphelp%,$(gb_Library_DLLFILENAMES))
+gb_Library_DLLFILENAMES := $(patsubst cppunit:cppunit%,cppunit:cygcppunit-1-12-1%,$(gb_Library_DLLFILENAMES))
+gb_Library_DLLFILENAMES := $(patsubst icuuc:icuuc%,icuuc:icuuc40%,$(gb_Library_DLLFILENAMES))
+gb_Library_DLLFILENAMES := $(patsubst ucbhelper:ucbhelper%,ucbhelper:ucbhelper4%,$(gb_Library_DLLFILENAMES))
+gb_Library_DLLFILENAMES := $(patsubst z:z%,z:zlib%,$(gb_Library_DLLFILENAMES))
+
+ifeq ($(USE_SYSTEM_STL),YES)
+gb_Library_FILENAMES := $(patsubst stl:%,stl:$(gb_Library_IARCSYSPRE)stdc++_s$(gb_Library_IARCSYSPRE),$(gb_Library_FILENAMES))
+gb_Library_TARGETS := $(filter-out stl,$(gb_Library_TARGETS))
+endif
+
+else
+gb_Library_FILENAMES := $(patsubst comphelper:icomphelper%,comphelper:icomphelp%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst cppunit:icppunit%,cppunit:icppunit_dll%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst cui:icui%,cui:icuin%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst i18nisolang1:ii18nisolang1%,i18nisolang1:ii18nisolang%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst i18nisolang1:iii18nisolang1%,i18nisolang1:iii18nisolang%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst sb:isb%,sb:basic%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst sfx:isfx%,sfx:sfx%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst svt:isvt%,svt:svtool%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst tl:itl%,tl:itools%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst vbahelper:ivbahelper%,vbahelper:vbahelper%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst vos3:ivos3%,vos3:ivos%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst xml2:ixml2%,xml2:libxml2%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst z:iz%,z:zlib%,$(gb_Library_FILENAMES))
+ifeq ($(gb_PRODUCT),$(true))
+gb_Library_FILENAMES := $(patsubst stl:istl%,stl:stlport_vc71%,$(gb_Library_FILENAMES))
+else
+gb_Library_FILENAMES := $(patsubst stl:istl%,stl:stlport_vc71_stldebug%,$(gb_Library_FILENAMES))
+endif
+gb_Library_NOILIBFILENAMES:=\
+ advapi32 \
+ gdi32 \
+ gnu_getopt \
+ icuuc \
+ kernel32 \
+ msvcrt \
+ mpr \
+ oldnames \
+ ole32 \
+ oleaut32 \
+ shell32 \
+ sot \
+ unicows \
+ user32 \
+ uuid \
+ uwinapi \
+
+gb_Library_FILENAMES := $(filter-out $(foreach lib,$(gb_Library_NOILIBFILENAMES),$(lib):%),$(gb_Library_FILENAMES))
+gb_Library_FILENAMES += $(foreach lib,$(gb_Library_NOILIBFILENAMES),$(lib):$(lib)$(gb_Library_PLAINEXT))
+ifneq ($(gb_PRODUCT),$(true))
+gb_Library_FILENAMES := $(patsubst msvcrt:msvcrt%,msvcrt:msvcrtd%,$(gb_Library_FILENAMES))
+endif
+
+gb_Library_DLLFILENAMES := $(patsubst comphelper:comphelper%,comphelper:comphelp%,$(gb_Library_DLLFILENAMES))
+gb_Library_DLLFILENAMES := $(patsubst icuuc:icuuc%,icuuc:icuuc40%,$(gb_Library_DLLFILENAMES))
+gb_Library_DLLFILENAMES := $(patsubst ucbhelper:ucbhelper%,ucbhelper:ucbhelper4%,$(gb_Library_DLLFILENAMES))
+gb_Library_DLLFILENAMES := $(patsubst z:z%,z:zlib%,$(gb_Library_DLLFILENAMES))
+
+endif
+
+endif
+
+ifeq ($(OS),SOLARIS)
+gb_Library_FILENAMES := $(patsubst comphelper:libcomphelper%,comphelper:libcomphelp%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst cppuhelper:libcppuhelper%,cppuhelper:libuno_cppuhelper%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst ucbhelper:libucbhelper%,ucbhelper:libucbhelper4%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst jvmfwk:libuno_jvmfwk%,jvmfwk:libjvmfwk%,$(gb_Library_FILENAMES))
+gb_Library_FILENAMES := $(patsubst salhelper:libsalhelper%,salhelper:libuno_salhelper%,$(gb_Library_FILENAMES))
+#$(info libnames: $(gb_Library_FILENAMES))
+
+endif
+
+# we do not require a known rule for these, when using system libs
+
+ifeq ($(USE_SYSTEM_STL),YES)
+gb_Library_TARGETS := $(filter-out stl,$(gb_Library_TARGETS))
+endif
+
+ifeq ($(SYSTEM_LIBXML),YES)
+gb_Library_TARGETS := $(filter-out xml2,$(gb_Library_TARGETS))
+endif
+
+ifeq ($(SYSTEM_ICU),YES)
+gb_Library_TARGETS := $(filter-out icuuc,$(gb_Library_TARGETS))
+endif
+
+# vim: set noet sw=4 ts=4:
diff --git a/buildscript.sh b/buildscript.sh
new file mode 100644
index 000000000000..82211c3633ac
--- /dev/null
+++ b/buildscript.sh
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+cd tools
+../solenv/bin/build.pl -P4 -- -P4
+../solenv/bin/deliver.pl
+cd -
+cd framework
+../solenv/bin/build.pl -P4 -- -P4
+../solenv/bin/deliver.pl
+cd -
+cd toolkit
+../solenv/bin/build.pl -P4 -- -P4
+../solenv/bin/deliver.pl
+cd -
+cd sw
+../solenv/bin/build.pl -P4 -- -P4
+../solenv/bin/deliver.pl
+cd -
diff --git a/configure.in b/configure.in
index d66559803bec..3bf84755f2ca 100755
--- a/configure.in
+++ b/configure.in
@@ -150,11 +150,6 @@ AC_ARG_ENABLE(pch,
[EXPERIMENTAL: Enables precompiled header support for C++.]),
,)
-AC_ARG_ENABLE(hids,
- AS_HELP_STRING([--disable-hids],
- [Disables generation of HelpId lists.]),
-,enable_hids=yes)
-
AC_ARG_ENABLE(mozilla,
AS_HELP_STRING([--disable-mozilla],
[LibO usually includes a strangely hacked up mozilla binary for your
@@ -1388,6 +1383,7 @@ case "$host_os" in
build_gstreamer=yes
test_kde=yes
test_freetype=yes
+ test_gstreamer=yes
_os=SunOS
AC_PATH_PROG( GNUTAR, gtar,,$PATH:/usr/sfw/bin)
if test -z "$GNUTAR"; then
@@ -1903,7 +1899,8 @@ if test \( "$_os" != "WINNT" -o "$WITH_MINGW" = "yes" \) -a "$GCC" = "yes"; then
if test "$_os" = "Darwin" -a "$GCCVER" -ge "040100" ; then
if test -z "$save_CC" -a -x "$GCC_HOME/bin/gcc-4.0" ; then
- CC=$GCC_HOME/bin/gcc-4.0
+ export CC=$GCC_HOME/bin/gcc-4.0
+ dnl export CC to have it available in set_soenv -> config.guess
GCCVER2=`"$CC" -dumpversion | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
if test "$GCCVER2" -ge "040000" -a "$GCCVER2" -lt "040100" ; then
GCCVER=$GCCVER2
@@ -1968,19 +1965,6 @@ fi
AC_SUBST(ENABLE_PCH)
dnl ===================================================================
-dnl Set the NO_HIDS variable. (enable with --enable-hids)
-dnl ===================================================================
-AC_MSG_CHECKING([whether to enable hid list feature])
-if test -n "$enable_hids" && test "$enable_hids" != "no"; then
- NO_HIDS=""
- AC_MSG_RESULT([yes])
-else
- NO_HIDS="TRUE"
- AC_MSG_RESULT([no])
-fi
-AC_SUBST(NO_HIDS)
-
-dnl ===================================================================
dnl Search all the common names for GNU make
dnl ===================================================================
AC_MSG_CHECKING([for GNU make])
@@ -1999,18 +1983,10 @@ fi
AC_MSG_CHECKING([the GNU make version])
_make_version=`$GNUMAKE --version | grep GNU | $SED -e 's@^[[^0-9]]*@@' -e 's@ .*@@' -e 's@,.*@@'`;
_make_longver=`echo $_make_version | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
-if test "$_make_longver" -ge "037901" ; then
+if test "$_make_longver" -ge "038100" ; then
AC_MSG_RESULT([$GNUMAKE $_make_version])
else
- if test "$_os" = "Darwin"; then
- if test "$_make_longver" -ge "037900" ; then
- AC_MSG_RESULT([$GNUMAKE $_make_version])
- else
- AC_MSG_WARN([failed ($GNUMAKE $_make_version need 3.79.0+)])
- fi
- else
- AC_MSG_ERROR([failed ($GNUMAKE $_make_version need 3.79.1+)])
- fi
+ AC_MSG_ERROR([failed ($GNUMAKE version >= 3.81 needed])
fi
AC_SUBST(GNUMAKE)
@@ -2377,43 +2353,6 @@ AC_SUBST(WORDS_BIGENDIAN)
AC_SUBST(LFS_CFLAGS)
dnl ===================================================================
-dnl Check if we are to enable vba macro interoperability feature
-dnl ===================================================================
-AC_MSG_CHECKING([whether to disable vba feature])
-if test -n "$enable_vba" && test "$enable_vba" = "no"; then
- AC_MSG_RESULT([yes])
- ENABLE_VBA=NO
-else
- AC_MSG_RESULT([no])
- ENABLE_VBA=YES
-fi
-AC_SUBST(ENABLE_VBA)
-
-if test "$ENABLE_VBA" = "YES"; then
- AC_MSG_CHECKING([how to package the vba compatibility api])
- if test -n "$with_vba_package_format"; then
- if test "$with_vba_package_format" = "extn"; then
- VBA_EXTENSION=YES
- AC_MSG_RESULT([uno extension])
- AC_MSG_WARN([--with-vba-package-format=extn can cause problems])
- else if test "$with_vba_package_format" = "builtin"; then
- VBA_EXTENSION=NO
- AC_MSG_RESULT([build into installset])
- else
- AC_MSG_ERROR([unknown packaging method])
- fi
- fi
-
- else
- VBA_EXTENSION=NO
- AC_MSG_RESULT([defaulting to build into installset])
- fi
-else
- VBA_EXTENSION=NO
-fi
-AC_SUBST(VBA_EXTENSION)
-
-dnl ===================================================================
dnl Check the whether vba need to be delivered as an uno package or part
dnl of the install
dnl ===================================================================
@@ -2596,14 +2535,23 @@ _ACEOF
MINGW_GCCLIB_EH=YES
fi
AC_MSG_CHECKING([whether to use dynamic libstdc++])
+ MINGW_SHARED_LIBSTDCPP=
if test -e "$MINGW_CLIB_DIR/libstdc++_s.a" ; then
+ MINGW_SHARED_LIBSTDCPP=stdc++_s
+ fi
+ if test -e "$MINGW_CLIB_DIR/libstdc++.dll.a" ; then
+ MINGW_SHARED_LIBSTDCPP=stdc++.dll
+ fi
+ if test -n "$MINGW_SHARED_LIBSTDCPP" ; then
AC_MSG_CHECKING([dynamic libstdc++ name])
- MINGW_GXXDLL_pattern=`nm $MINGW_CLIB_DIR/libstdc++_s.a | $SED -ne 's@.* _libstdc__\(.*\)_dll_iname@libstdc++\1.dll@p' | uniq | $SED -e 's@_@?@g'`
+ MINGW_GXXDLL_pattern=`nm $MINGW_CLIB_DIR/lib$MINGW_SHARED_LIBSTDCPP.a | sed -ne 's@.* _libstdc__\(.*\)_dll_iname@libstdc++\1.dll@p' | uniq | sed -e 's@_@?@g'`
MINGW_GXXDLL=`cd $COMPATH/bin && ls $MINGW_GXXDLL_pattern 2>/dev/null`
if test -n "$MINGW_GXXDLL"; then
+ MINGW_SHARED_LIBSTDCPP=-l$MINGW_SHARED_LIBSTDCPP
MINGW_SHARED_GXXLIB=YES
AC_MSG_RESULT([use $MINGW_GXXDLL])
else
+ MINGW_SHARED_LIBSTDCPP=
AC_MSG_RESULT([no])
fi
else
@@ -2614,6 +2562,7 @@ _ACEOF
AC_SUBST(MINGW_SHARED_GCCLIB)
AC_SUBST(MINGW_GCCLIB_EH)
AC_SUBST(MINGW_SHARED_GXXLIB)
+ AC_SUBST(MINGW_SHARED_LIBSTDCPP)
AC_SUBST(MINGW_GCCDLL)
AC_SUBST(MINGW_GXXDLL)
fi
@@ -3994,7 +3943,7 @@ if test -n "$with_system_cppunit" -o -n "$with_system_libs" && \
test "$with_system_cppunit" != "no"; then
AC_MSG_RESULT([external])
SYSTEM_CPPUNIT=YES
- # might work for earlier, too but go sure
+ # might work for earlier, too but go sure:
PKG_CHECK_MODULES( CPPUNIT, cppunit >= 1.12.0 )
else
AC_MSG_RESULT([internal])
@@ -5165,7 +5114,8 @@ if test -n "$with_system_icu" -o -n "$with_system_libs" && \
AC_LANG_PUSH([C++])
AC_MSG_CHECKING([for unicode/rbbi.h])
AC_TRY_CPP(unicode/rbbi.h, AC_MSG_RESULT([checked.]), AC_MSG_ERROR([icu headers not found.]))
- AC_PATH_PROG(SYSTEM_GENBRK, genbrk, [], [$PATH:/usr/sbin:/sbin:/usr/local/bin])
+ AC_LANG_POP([C++])
+ AC_PATH_PROG(SYSTEM_GENBRK, genbrk, [], [$PATH:/usr/sbin:/sbin])
if test -z "$SYSTEM_GENBRK"; then
AC_MSG_ERROR([\"genbrk\" not found in \$PATH, install the icu development tool \"genbrk"\])
fi
@@ -5191,7 +5141,6 @@ if test -n "$with_system_icu" -o -n "$with_system_libs" && \
AC_MSG_ERROR([not suitable, only >= 4.0 supported currently])
fi
- AC_LANG_POP([C++])
else
AC_MSG_RESULT([internal])
SYSTEM_ICU=NO
@@ -5419,7 +5368,7 @@ AC_MSG_CHECKING([which neon to use])
if test -n "$with_system_neon" -o -n "$with_system_libs" && \
test "$with_system_neon" != "no"; then
AC_MSG_RESULT([external])
- PKG_CHECK_MODULES(NEON, neon >= 0.24.0, , AC_MSG_ERROR([you need neon >= 0.24.x for system-neon]))
+ PKG_CHECK_MODULES(NEON, neon >= 0.26.0, , AC_MSG_ERROR([you need neon >= 0.26.x for system-neon]))
NEON_VERSION="`$PKG_CONFIG --modversion neon | $SED 's/\.//g'`"
NEON_CFLAGS="$NEON_CFLAGS -DSYSTEM_NEON -DUSE_DAV_LOCKS=1"
SYSTEM_NEON=YES
@@ -5859,37 +5808,38 @@ if test "$_os" = "SunOS" -o "$_os" = "FreeBSD" -o "$_os" = "Darwin"; then
if test -x "$with_gnu_patch"; then
GNUPATCH=$with_gnu_patch
else
- AC_MSG_ERROR([--with-gnu-patch did not point to an executable])
+ AC_MSG_ERROR([--with-gnu-patch did not point to an executable])
fi
fi
AC_MSG_CHECKING([whether $GNUPATCH is GNU patch])
if $GNUPATCH --version | grep "Free Software Foundation" >/dev/null 2>/dev/null; then
- AC_MSG_RESULT([yes])
+ AC_MSG_RESULT([yes])
else
AC_MSG_ERROR([no, GNU patch needed. install or specify with --with-gnu-patch=/path/to/it])
fi
+fi
dnl We also need to check for --with-gnu-cp
- if test -z "$with_gnu_cp"; then
- AC_PATH_PROGS(GNUCP, gnucp cp)
- if test -z $GNUCP; then
+if test -z "$with_gnu_cp"; then
+ AC_PATH_PROGS(GNUCP, gnucp cp)
+ if test -z $GNUCP; then
AC_MSG_ERROR([Neither gnucp nor cp found. Install GNU cp and/or specify --with-gnu-cp=/path/to/it])
- fi
- else
- if test -x "$with_gnu_cp"; then
+ fi
+else
+ if test -x "$with_gnu_cp"; then
GNUCP=$with_gnu_cp
- else
+ else
AC_MSG_ERROR([--with-gnu-cp did not point to an executable])
- fi
- fi
+ fi
+fi
- AC_MSG_CHECKING([whether $GNUCP is GNU cp])
- if $GNUCP --version 2>/dev/null | grep "Free Software Foundation" >/dev/null 2>/dev/null; then
- AC_MSG_RESULT([yes])
- else
- if $GNUCP --version 2>/dev/null | grep "GNU fileutils" >/dev/null 2>/dev/null; then
+AC_MSG_CHECKING([whether $GNUCP is GNU cp from coreutils with preserve= support])
+if $GNUCP --version 2>/dev/null | grep "coreutils" >/dev/null 2>/dev/null; then
+ AC_MSG_RESULT([yes])
+else
+ if $GNUCP --version 2>/dev/null | grep "GNU fileutils" >/dev/null 2>/dev/null; then
AC_MSG_RESULT([yes])
else
if test "$_os" = "Darwin"; then
@@ -5899,9 +5849,8 @@ dnl We also need to check for --with-gnu-cp
AC_MSG_ERROR([no, GNU cp needed. install or specify with --with-gnu-cp=/path/to/it])
fi
fi
- fi
-
fi
+
AC_SUBST(GNUPATCH)
AC_SUBST(GNUCP)
diff --git a/instsetoo_native/inc_openoffice/windows/msi_languages/makefile.mk b/instsetoo_native/inc_openoffice/windows/msi_languages/makefile.mk
index df3cd544890e..0a854df4f633 100644
--- a/instsetoo_native/inc_openoffice/windows/msi_languages/makefile.mk
+++ b/instsetoo_native/inc_openoffice/windows/msi_languages/makefile.mk
@@ -32,6 +32,7 @@ TARGET=win_ulffiles
# --- Settings -----------------------------------------------------
+common_build:=
.INCLUDE : settings.mk
# ------------------------------------------------------------------
@@ -48,8 +49,8 @@ ULFFILES = \
SIS.ulf \
UIText.ulf
-MLFFILES = $(foreach,i,$(ULFFILES) $(COMMONMISC)$/$(TARGET)$/$(i:b).mlf)
-UULFFILES = $(COMMONMISC)$/$(TARGET)$/Nsis.uulf
+MLFFILES = $(foreach,i,$(ULFFILES) $(MISC)$/$(TARGET)$/$(i:b).mlf)
+UULFFILES = $(MISC)$/$(TARGET)$/Nsis.uulf
# --- Targets ------------------------------------------------------
diff --git a/instsetoo_native/prj/build.lst b/instsetoo_native/prj/build.lst
index a810b19afd85..a1d0a15b8cfe 100644
--- a/instsetoo_native/prj/build.lst
+++ b/instsetoo_native/prj/build.lst
@@ -1,4 +1,4 @@
-oon instsetoo_native :: l10n postprocess packimages testautomation NULL
+oon instsetoo_native :: L10N:l10n postprocess packimages testautomation NULL
oon instsetoo_native usr1 - all oon_mkout NULL
oon instsetoo_native\inc_openoffice\unix nmake - u oon_unix NULL
oon instsetoo_native\inc_openoffice\windows\msi_languages nmake - all oon_msilang NULL
diff --git a/instsetoo_native/prj/d.lst b/instsetoo_native/prj/d.lst
index b417858098cc..4a1f33b51071 100644
--- a/instsetoo_native/prj/d.lst
+++ b/instsetoo_native/prj/d.lst
@@ -1,4 +1,3 @@
mkdir: %_DEST%\pus%_EXT%
-..\%COMMON_OUTDIR%\bin\hid.lst %COMMON_DEST%\bin%_EXT%\hid.lst
..\%COMMON_OUTDIR%\bin\hid\userfeedback_VCL_names.csv %COMMON_DEST%\bin%_EXT%\userfeedback_VCL_names.csv
..\%__SRC%\misc\*.update.xml %_DEST%\pus%_EXT%\*.update.xml
diff --git a/instsetoo_native/util/makefile.mk b/instsetoo_native/util/makefile.mk
index da4478cb49f5..acbca1937fe1 100644
--- a/instsetoo_native/util/makefile.mk
+++ b/instsetoo_native/util/makefile.mk
@@ -28,7 +28,6 @@
PRJ=..
PRJNAME=instsetoo_native
TARGET=util
-GEN_HID2=TRUE
.INCLUDE: settings.mk
.INCLUDE: $(SOLARINCDIR)$/rtlbootstrap.mk
diff --git a/instsetoo_native/util/openoffice.lst b/instsetoo_native/util/openoffice.lst
index 2ab17bff20a2..be5a4ece894b 100644
--- a/instsetoo_native/util/openoffice.lst
+++ b/instsetoo_native/util/openoffice.lst
@@ -4,15 +4,15 @@ Globals
{
variables
{
- OOOBASEVERSION 3.3
- OOOPACKAGEVERSION 3.3.0
- UREPACKAGEVERSION 1.7.0
+ OOOBASEVERSION 3.4
+ OOOPACKAGEVERSION 3.4.0
+ UREPACKAGEVERSION 1.8.0
URELAYERVERSION 1
BASISROOTNAME LibreOffice
UNIXBASISROOTNAME libreoffice
- SERVICETAG_PRODUCTNAME LibreOffice 3.3
- SERVICETAG_PRODUCTVERSION 3.3
- SERVICETAG_PARENTNAME LibreOffice 3.3
+ SERVICETAG_PRODUCTNAME LibreOffice 3.4
+ SERVICETAG_PRODUCTVERSION 3.4
+ SERVICETAG_PARENTNAME LibreOffice 3.4
SERVICETAG_SOURCE {buildsource}{minor}(Build:{buildid})
SERVICETAG_URN urn:uuid:0187debd-e458-11de-82d6-080020a9ed93
HIDELICENSEDIALOG 1
@@ -21,7 +21,7 @@ Globals
UREPACKAGEPREFIX libreoffice
SOLSUREPACKAGEPREFIX libreoffice
USE_FILEVERSION 1
- LIBRARYVERSION 9.3.0
+ LIBRARYVERSION 9.4.0
POOLPRODUCT 1
REGISTRATION_HOST https://registration.libreoffice.org/RegistrationWeb
REGISTRATIONURL http://survey.libreoffice.org/user/index.php
@@ -36,7 +36,7 @@ Globals
CREATE_MSP_INSTALLSET 0
UPDATE_DATABASE_LISTNAME finals_instsetoo.txt
PACKAGEMAP package_names.txt,package_names_ext.txt
- WINDOWSPATCHLEVEL 6
+ WINDOWSPATCHLEVEL 8
OOOVENDOR The Document Foundation
OOODOWNLOADNAME 1
STARTCENTER_LAYOUT_STYLE 0
@@ -54,16 +54,16 @@ LibreOffice
{
PRODUCTNAME LibreOffice
PRODUCTNAME_BR BrOffice
- PRODUCTVERSION 3.3
+ PRODUCTVERSION 3.4
PRODUCTEXTENSION
LONG_PRODUCTEXTENSION
- SHORT_PRODUCTEXTENSION rc4
+ SHORT_PRODUCTEXTENSION
POSTVERSIONEXTENSION
POSTVERSIONEXTENSIONUNIX
BRANDPACKAGEVERSION 3
USERDIRPRODUCTVERSION 3
- ABOUTBOXPRODUCTVERSION 3.3.0
- BASEPRODUCTVERSION 3.3
+ ABOUTBOXPRODUCTVERSION 3.4.0
+ BASEPRODUCTVERSION 3.4
PCPFILENAME openoffice.pcp
UPDATEURL http://update.libreoffice.org/ProductUpdateService/check.Update
ODFNOTIFYURL http://odfnotify.libreoffice.org/OOo3.0/notification.jsp?version=ODF
@@ -74,10 +74,9 @@ LibreOffice
FILEFORMATNAME OpenOffice.org
FILEFORMATVERSION 1.0
WRITERCOMPATIBILITYVERSIONOOO11 OpenOffice.org 1.1
- PACKAGEVERSION 3.3.0
+ PACKAGEVERSION 3.4.0
PACKAGEREVISION {milestone}
LICENSENAME LGPL
- SERVICESPROJEKT 1
GLOBALFILEGID gid_File_Lib_Vcl
GLOBALPATCHFILEGID gid_File_Txt_Patchfiles
SPELLCHECKERFILE spellchecker_selection.txt
@@ -89,7 +88,7 @@ LibreOffice
STUBUPGRADECODE {0E7B27B8-D658-4BF9-98D6-EC361582EB4A}
CHANGETARGETDIR 1
USE_FILEVERSION 1
- LIBRARYVERSION 9.3.0
+ LIBRARYVERSION 9.4.0
PATCHCODEFILE ooo_patchcodes.txt
DOWNLOADBANNER ooobanner.bmp
DOWNLOADBITMAP ooobitmap.bmp
@@ -111,7 +110,7 @@ LibreOffice
downloadname LibO_{productversion}_{os}_install_{languages}
langpackdownloadname LibO_{productversion}_languagepack_{os}_install_{languages}
helppackdownloadname LibO_{productversion}_helppack_{os}_install_{languages}
- include {solarenvpath}/{os}/loader2,.,{localcommonpath}/bin,{localpath}/bin,{solarpath}/bin.{minor}/ooowoure,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor}/desktop-integration/{pkgtype},{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarpath}/pck.{minor}/openoffice,{solarpath}/pck.{minor},{solarpath}/xml.{minor}/office/instance,{solarpath}/xml.{minor},{solarcommonpath}/bin.{minor}/osl,{solarcommonpath}/bin.{minor},{solarcommonpath}/pck.{minor}/openoffice,{solarcommonpath}/pck.{minor},../../external/common,{solarenvpath}/{os}/OOo_external,{solarpath}/pck.{minor}/brand
+ include {solarenvpath}/{os}/loader2,.,{localpath}/bin,{solarpath}/bin.{minor}/ooowoure,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor}/desktop-integration/{pkgtype},{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarpath}/pck.{minor}/openoffice,{solarpath}/pck.{minor},{solarpath}/xml.{minor}/office/instance,{solarpath}/xml.{minor},../../external/common,{solarenvpath}/{os}/OOo_external
}
}
@@ -123,16 +122,16 @@ LibreOffice_wJRE
{
PRODUCTNAME LibreOffice
PRODUCTNAME_BR BrOffice
- PRODUCTVERSION 3.3
+ PRODUCTVERSION 3.4
PRODUCTEXTENSION
LONG_PRODUCTEXTENSION
- SHORT_PRODUCTEXTENSION rc4
+ SHORT_PRODUCTEXTENSION
POSTVERSIONEXTENSION
POSTVERSIONEXTENSIONUNIX
BRANDPACKAGEVERSION 3
USERDIRPRODUCTVERSION 3
- ABOUTBOXPRODUCTVERSION 3.3.0
- BASEPRODUCTVERSION 3.3
+ ABOUTBOXPRODUCTVERSION 3.4.0
+ BASEPRODUCTVERSION 3.4
UPDATEURL http://update.libreoffice.org/ProductUpdateService/check.Update
ODFNOTIFYURL http://odfnotify.libreoffice.org/OOo3.0/notification.jsp?version=ODF
ADD_INCLUDE_FILES cliureversion.mk,clioootypesversion.mk,javaversion2.dat,userland.txt,version.lst
@@ -142,10 +141,9 @@ LibreOffice_wJRE
FILEFORMATNAME OpenOffice.org
FILEFORMATVERSION 1.0
WRITERCOMPATIBILITYVERSIONOOO11 OpenOffice.org 1.1
- PACKAGEVERSION 3.3.0
+ PACKAGEVERSION 3.4.0
PACKAGEREVISION {milestone}
LICENSENAME LGPL
- SERVICESPROJEKT 1
WITHJREPRODUCT 1
GLOBALFILEGID gid_File_Lib_Vcl
GLOBALPATCHFILEGID gid_File_Txt_Patchfiles
@@ -158,7 +156,7 @@ LibreOffice_wJRE
STUBUPGRADECODE {0E7B27B8-D658-4BF9-98D6-EC361582EB4A}
CHANGETARGETDIR 1
USE_FILEVERSION 1
- LIBRARYVERSION 9.3.0
+ LIBRARYVERSION 9.4.0
PATCHCODEFILE ooo_patchcodes.txt
JAVAPRODUCT 1
DOWNLOADBANNER ooobanner.bmp
@@ -177,7 +175,7 @@ LibreOffice_wJRE
compression 5
script setup_osljre
downloadname LibO_{productversion}_{os}_installwjre_{languages}
- include {solarenvpath}/{os}/loader2,.,{localcommonpath}/bin,{localpath}/bin,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor}/desktop-integration/{pkgtype},{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarpath}/pck.{minor}/openoffice,{solarpath}/pck.{minor},{solarpath}/xml.{minor}/office/instance,{solarpath}/xml.{minor},{solarcommonpath}/bin.{minor}/osl,{solarcommonpath}/bin.{minor},{solarcommonpath}/pck.{minor}/openoffice,{solarcommonpath}/pck.{minor},../../external/common,{solarenvpath}/{os}/OOo_external,{solarpath}/pck.{minor}/brand
+ include {solarenvpath}/{os}/loader2,.,{localpath}/bin,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor}/desktop-integration/{pkgtype},{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarpath}/pck.{minor}/openoffice,{solarpath}/pck.{minor},{solarpath}/xml.{minor}/office/instance,{solarpath}/xml.{minor},../../external/common,{solarenvpath}/{os}/OOo_external
}
}
@@ -188,18 +186,18 @@ LibreOffice_Dev
variables
{
PRODUCTNAME LibO-dev
- PRODUCTVERSION 3.3
+ PRODUCTVERSION 3.4
PRODUCTEXTENSION
LONG_PRODUCTEXTENSION
- SHORT_PRODUCTEXTENSION rc4
+ SHORT_PRODUCTEXTENSION
BASISROOTNAME LibO-dev
UNIXBASISROOTNAME lo-dev
POSTVERSIONEXTENSION
POSTVERSIONEXTENSIONUNIX
BRANDPACKAGEVERSION 3
USERDIRPRODUCTVERSION 3
- ABOUTBOXPRODUCTVERSION 3.3.0
- BASEPRODUCTVERSION 3.3
+ ABOUTBOXPRODUCTVERSION 3.4.0
+ BASEPRODUCTVERSION 3.4
DEVELOPMENTPRODUCT 1
BASISPACKAGEPREFIX libobasis-dev
UREPACKAGEPREFIX lodev
@@ -213,10 +211,9 @@ LibreOffice_Dev
FILEFORMATNAME OpenOffice.org
FILEFORMATVERSION 1.0
WRITERCOMPATIBILITYVERSIONOOO11 OpenOffice.org 1.1
- PACKAGEVERSION 3.3.0
+ PACKAGEVERSION 3.4.0
PACKAGEREVISION {milestone}
LICENSENAME LGPL
- SERVICESPROJEKT 1
GLOBALFILEGID gid_File_Lib_Vcl
GLOBALPATCHFILEGID gid_File_Txt_Patchfiles
SPELLCHECKERFILE spellchecker_selection.txt
@@ -229,7 +226,7 @@ LibreOffice_Dev
CHANGETARGETDIR 1
USE_FILEVERSION 1
JAVAPRODUCT 1
- LIBRARYVERSION 9.3.0
+ LIBRARYVERSION 9.4.0
PATCHCODEFILE ooodev_patchcodes.txt
CODEFILENAME codes_ooodev.txt
DOWNLOADBANNER ooobanner.bmp
@@ -251,7 +248,7 @@ LibreOffice_Dev
downloadname LibO-dev_{productversion}_{os}_install_{languages}
langpackdownloadname LibO_{productversion}_languagepack_{os}_install_{languages}
helppackdownloadname LibO_{productversion}_helppack_{os}_install_{languages}
- include {solarenvpath}/{os}/loader2,.,{localpath}/bin/dev,{localcommonpath}/bin,{localpath}/bin,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarpath}/pck.{minor}/openoffice,{solarpath}/pck.{minor},{solarpath}/xml.{minor}/office/instance,{solarpath}/xml.{minor},{solarcommonpath}/bin.{minor}/osl,{solarcommonpath}/bin.{minor},{solarcommonpath}/pck.{minor}/openoffice_dev,{solarcommonpath}/pck.{minor}/openoffice,{solarcommonpath}/pck.{minor},../../external/common,{solarenvpath}/{os}/OOo_external,,{solarpath}/pck.{minor}/brand_dev
+ include {solarenvpath}/{os}/loader2,.,{localpath}/bin/dev,{localpath}/bin,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarpath}/pck.{minor}/openoffice_dev,{solarpath}/pck.{minor}/openoffice,{solarpath}/pck.{minor},{solarpath}/xml.{minor}/office/instance,{solarpath}/xml.{minor},../../external/common,{solarenvpath}/{os}/OOo_external
}
}
@@ -263,15 +260,14 @@ URE
variables
{
PRODUCTNAME URE
- PRODUCTVERSION 1.7
- PACKAGEVERSION 1.7
+ PRODUCTVERSION 1.8
+ PACKAGEVERSION 1.8
PACKAGEREVISION 1
PRODUCTEXTENSION
BRANDPACKAGEVERSION 3
LONG_PRODUCTEXTENSION
- SHORT_PRODUCTEXTENSION rc4
+ SHORT_PRODUCTEXTENSION
LICENSENAME LGPL
- SERVICESPROJEKT 1
SETSTATICPATH 1
NOVERSIONINDIRNAME 1
PCPFILENAME ure.pcp
@@ -281,7 +277,6 @@ URE
DOWNLOADBITMAP urebitmap.bmp
DOWNLOADSETUPICO ooosetup.ico
DONTUSESTARTMENUFOLDER 1
- SERVICESPROJEKT 1
RELATIVE_PATHES_IN_DDF 1
STARTCENTER_ADDFEATURE_URL http://extensions.libreoffice.org/
STARTCENTER_INFO_URL http://www.libreoffice.org/
@@ -294,7 +289,7 @@ URE
active 1
compression 5
script ure
- include {solarenvpath}/{os}/loader2,{solarpath}/bin.{minor}/ure,{solarpath}/bin.{minor},{solarpath}/bin.{minor}/osl,{solarpath}/lib.{minor},{solarenvpath}/{os}/MS
+ include {solarenvpath}/{os}/loader2,{solarpath}/bin.{minor}/ure,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarpath}/xml.{minor},{solarenvpath}/{os}/MS
}
}
@@ -307,14 +302,14 @@ LibreOffice_SDK
{
PRODUCTNAME LibreOffice
PRODUCTNAME_BR BrOffice
- PRODUCTVERSION 3.3
+ PRODUCTVERSION 3.4
PRODUCTEXTENSION
LONG_PRODUCTEXTENSION
- SHORT_PRODUCTEXTENSION rc4
+ SHORT_PRODUCTEXTENSION
POSTVERSIONEXTENSION SDK
POSTVERSIONEXTENSIONUNIX sdk
BRANDPACKAGEVERSION 3
- PACKAGEVERSION 3.3.0
+ PACKAGEVERSION 3.4.0
PACKAGEREVISION {milestone}
PACK_INSTALLED 1
POOLPRODUCT 0
@@ -325,6 +320,7 @@ LibreOffice_SDK
IGNOREDIRECTORYLAYER 1
NOVERSIONINDIRNAME 0
NOSPACEINDIRECTORYNAME 1
+ NOSHORTDIRECTORYNAMES 1
CHANGETARGETDIR 1
DOWNLOADBANNER ooosdkbanner.bmp
DOWNLOADBITMAP ooosdkbitmap.bmp
@@ -340,7 +336,7 @@ LibreOffice_SDK
active 1
compression 5
script sdkoo
- include {solarenvpath}/{os}/loader2,{solarpath}/bin.{minor}/sdkoo,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarcommonpath}/bin.{minor},{solarenvpath}/{os}/MS
+ include {solarenvpath}/{os}/loader2,{solarpath}/bin.{minor}/sdkoo,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarenvpath}/{os}/MS
}
}
@@ -352,16 +348,16 @@ LibreOffice_Dev_SDK
variables
{
PRODUCTNAME LibO-dev
- PRODUCTVERSION 3.3
+ PRODUCTVERSION 3.4
PRODUCTEXTENSION
LONG_PRODUCTEXTENSION
- SHORT_PRODUCTEXTENSION rc4
+ SHORT_PRODUCTEXTENSION
BASISROOTNAME LibO-dev
UNIXBASISROOTNAME lo-dev
POSTVERSIONEXTENSION SDK
POSTVERSIONEXTENSIONUNIX sdk
BRANDPACKAGEVERSION 3
- PACKAGEVERSION 3.3.0
+ PACKAGEVERSION 3.4.0
PACKAGEREVISION {milestone}
BASISPACKAGEPREFIX libobasis-dev
UREPACKAGEPREFIX lodev
@@ -377,6 +373,7 @@ LibreOffice_Dev_SDK
IGNOREDIRECTORYLAYER 1
NOVERSIONINDIRNAME 0
NOSPACEINDIRECTORYNAME 1
+ NOSHORTDIRECTORYNAMES 1
CHANGETARGETDIR 1
DOWNLOADBANNER ooosdkbanner.bmp
DOWNLOADBITMAP ooosdkbitmap.bmp
@@ -392,6 +389,6 @@ LibreOffice_Dev_SDK
active 1
compression 5
script sdkoo
- include {solarenvpath}/{os}/loader2,{solarpath}/bin.{minor}/sdkoo,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarcommonpath}/bin.{minor},{solarenvpath}/{os}/MS
+ include {solarenvpath}/{os}/loader2,{solarpath}/bin.{minor}/sdkoo,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarenvpath}/{os}/MS
}
}
diff --git a/ooo.lst b/ooo.lst
index 46577eec448d..0f7e5a853fc1 100644
--- a/ooo.lst
+++ b/ooo.lst
@@ -1,4 +1,5 @@
http://hg.services.openoffice.org/binaries
+48a9f787f43a09c0a9b7b00cd1fddbbf-hyphen-2.7.1.tar.gz
63ddc5116488985e820075e65fbe6aa4-openssl-0.9.8o.tar.gz
09357cc74975b01714e00c5899ea1881-pixman-0.12.0.tar.gz
0b49ede71c21c0599b0cc19b353a6cb3-README_apache-commons.txt
@@ -26,32 +27,24 @@ ca4870d899fd7e943ffc310a5421ad4d-liberation-fonts-ttf-1.06.0.20100721.tar.gz
4a660ce8466c9df01f19036435425c3a-glibc-2.1.3-stub.tar.gz
4ea70ea87b47e92d318d4e7f5b940f47-cairo-1.8.0.tar.gz
599dc4cc65a07ee868cf92a667a913d2-xpdf-3.02.tar.gz
-5aba06ede2daa9f2c11892fbd7bc3057-libserializer.zip
-67b42915c8432abf0a922438f00860a2-libxml.zip
7740a8ec23878a2f50120e1faa2730f2-libxml2-2.7.6.tar.gz
7376930b0d3f3d77a685d94c4a3acda8-STLport-4.5-0119.tar.gz
-79600e696a98ff95c2eba976f7a8dfbb-liblayout.zip
798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
ecb2e37e45c9933e2a963cabe03670ab-curl-7.19.7.tar.gz
8294d6c42e3553229af9934c5c0ed997-stax-api-1.0-2-sources.jar
-8ea307d71d11140574bfb9fcc2487e33-libbase.zip
bd30e9cf5523cdfc019b94f5e1d7fd19-cppunit-1.12.1.tar.gz
-a06a496d7a43cbdc35e69dbe678efadb-libloader.zip
a169ab152209200a7bad29a275cb0333-seamonkey-1.1.14.source.tar.gz
a4d9b30810a434a3ed39fc0003bbd637-LICENSE_stax-api-1.0-2-sources.html
a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip
ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip
af3c3acf618de6108d65fcdc92b492e1-commons-codec-1.3-src.tar.gz
-ba1015b59c112d44d7797b62fe7bee51-neon-0.29.3.tar.gz
bc702168a2af16869201dbe91e46ae48-LICENSE_Python-2.6.1
c441926f3a552ed3e5b274b62e86af16-STLport-4.0.tar.gz
ca66e26082cab8bb817185a116db809b-redland-1.0.8.tar.gz
-d0b5af6e408b8d2958f3d83b5244f5e8-hyphen-2.4.tar.gz
d1a3205871c3c52e8a50c9f18510ae12-libformula.zip
d35724900f6a4105550293686688bbb3-silgraphite-2.3.1.tar.gz
d4c4d91ab3a8e52a2e69d48d34ef4df4-core.zip
d70951c80dabecc2892c919ff5d07172-db-4.7.25.NC-custom.tar.gz
-dbb3757275dc5cc80820c0b4dd24ed95-librepository.zip
dbd5f3b47ed13132f04c685d608a7547-jpeg-6b.tar.gz
e0707ff896045731ff99e99799606441-README_db-4.7.25.NC-custom.txt
e81c2f0953aa60f8062c05a4673f2be0-Python-2.6.1.tar.bz2
@@ -59,14 +52,23 @@ e61d0364a30146aaa3001296f853b2b9-libxslt-1.1.26.tar.gz
ea570af93c284aa9e5621cd563f54f4d-bsh-2.0b1-src.tar.gz
ea91f2fb4212a21d708aced277e6e85a-vigra1.4.0.tar.gz
ee8b492592568805593f81f8cdf2a04c-expat-2.0.1.tar.gz
-f3e2febd267c8e4b13df00dac211dd6d-flute.zip
-f7925ba8491fe570e5164d2c72791358-libfonts.zip
fb7ba5c2182be4e73748859967455455-README_stax-api-1.0-2-sources.txt
fca8706f2c4619e2fa3f8f42f8fc1e9d-rasqal-0.9.16.tar.gz
fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz
37282537d0ed1a087b1c8f050dc812d9-dejavu-fonts-ttf-2.32.zip
831126a1ee5af269923cfab6050769fe-mysql-connector-cpp.zip
067201ea8b126597670b5eff72e1f66c-mythes-1.2.0.tar.gz
+3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip
+3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip
+8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip
+97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip
+ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip
+d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip
+db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip
+eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip
+f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip
+ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip
+ff369e69ef0f0143beb5626164e87ae2-neon-0.29.5.tar.gz
http://download.go-oo.org/src
47e1edaa44269bc537ae8cabebb0f638-JLanguageTool-1.0.0.tar.bz2
90401bca927835b6fbae4a707ed187c8-nlpsolver-0.9.tar.bz2
diff --git a/scp2/inc/macros.inc b/scp2/inc/macros.inc
index 8bf6350d7465..f6101b677464 100644..100755
--- a/scp2/inc/macros.inc
+++ b/scp2/inc/macros.inc
@@ -300,24 +300,6 @@
Styles = (PACKED,DONT_OVERWRITE,PATCH); \
End
-#define UNO_JAR_FILE(id,name) \
- File id \
- TXT_FILE_BODY; \
- Name = STRING(CONCAT2(name,.jar)); \
- RegistryID = gid_Starregistry_Services_Rdb; \
- Dir = gid_Dir_Classes; \
- Styles = (PACKED,DONT_OVERWRITE, UNO_COMPONENT); \
- End
-
-#define UNO_JAR_FILE_PATCH(id,name) \
- File id \
- TXT_FILE_BODY; \
- Name = STRING(CONCAT2(name,.jar)); \
- RegistryID = gid_Starregistry_Services_Rdb; \
- Dir = gid_Dir_Classes; \
- Styles = (PACKED,DONT_OVERWRITE,UNO_COMPONENT,PATCH); \
- End
-
#define JARFILENAME(name) STRING(CONCAT2(name,.jar))
#define PACKED_SHELLNEW_FILE_BODY \
@@ -332,52 +314,16 @@
Name = STRING(name) ; \
End
-#define PACKED_UNO_LIB_FILE_BODY \
- TXT_FILE_BODY; \
- Styles = (PACKED,UNO_COMPONENT); \
- Dir = SCP2_OOO_BIN_DIR; \
- RegistryID = gid_Starregistry_Services_Rdb
-
-#define PACKED_UNO_LIB_FILE_BODY_PATCH \
- TXT_FILE_BODY; \
- Styles = (PACKED,UNO_COMPONENT,PATCH); \
- Dir = SCP2_OOO_BIN_DIR; \
- RegistryID = gid_Starregistry_Services_Rdb
-
-#define STD_UNO_LIB_FILE(id,name) \
- File id \
- Name = LIBNAME(name); \
- PACKED_UNO_LIB_FILE_BODY; \
- End
-
-#define STD_UNO_LIB_FILE_PATCH(id,name) \
- File id \
- Name = LIBNAME(name); \
- PACKED_UNO_LIB_FILE_BODY_PATCH; \
- End
-
-#define SPECIAL_UNO_LIB_FILE(id,name) \
- File id \
- Name = SPECIAL_NAME(name); \
- PACKED_UNO_LIB_FILE_BODY; \
- End
-
-#define SPECIAL_UNO_LIB_FILE_PATCH(id,name) \
- File id \
- Name = SPECIAL_NAME(name); \
- PACKED_UNO_LIB_FILE_BODY_PATCH; \
- End
-
-#define SPECIAL_UNO_COMPONENT_LIB_FILE(id,name) \
+#define SPECIAL_COMPONENT_LIB_FILE(id,name) \
File id \
Name = SPECIAL_COMPONENT_LIB_NAME(name); \
- PACKED_UNO_LIB_FILE_BODY; \
+ PACKED_LIB_FILE_BODY; \
End
-#define SPECIAL_UNO_COMPONENT_LIB_FILE_PATCH(id,name) \
+#define SPECIAL_COMPONENT_LIB_FILE_PATCH(id,name) \
File id \
Name = SPECIAL_COMPONENT_LIB_NAME(name); \
- PACKED_UNO_LIB_FILE_BODY_PATCH; \
+ PACKED_LIB_FILE_BODY_PATCH; \
End
#define WINW4WFILTERFILENAME(name) STRING(CONCAT2(name,f32w.dll))
@@ -406,15 +352,6 @@
Styles = (PACKED, NO_WARNING_IF_NOT_EXISTS); \
End
-#define SPECIAL_UNO_NO_WARNING_IF_NOT_EXISTS_FILE(id,name) \
- File id \
- TXT_FILE_BODY; \
- Name = LIBNAME(name); \
- Dir = SCP2_OOO_BIN_DIR; \
- Styles = (PACKED, NO_WARNING_IF_NOT_EXISTS, UNO_COMPONENT); \
- RegistryID = gid_Starregistry_Services_Rdb; \
- End
-
// ---------------------------------------
#define CONDITIONAL_MODULE_ENTRY(name,modid) \
Module gid_Module_Root_Reg_##name \
@@ -434,6 +371,15 @@ End
Value = " "; \
End
+#define REGISTRY_ENTRY_OPEN_WITH_TMPL(name,cond,doc_type,modid,key) \
+ RegistryItem gid_Regitem_OpenOffice_##cond##_OpenWith_##doc_type \
+ ParentID = PREDEFINED_HKEY_CLASSES_ROOT; \
+ ModuleID = modid; \
+ Subkey = STRING(CONCAT3(.,key,\OpenWithProgIDs)); \
+ Name = STRING(CONCAT2(OpenOffice.org.,name)); \
+ Value = " "; \
+ End
+
#define CONDITIONAL_REGISTRY_ENTRY_EXT(name,cond,key) \
RegistryItem gid_Regitem__##name \
ParentID = PREDEFINED_HKEY_CLASSES_ROOT; \
@@ -511,7 +457,7 @@ End
ModuleID = modid; \
Subkey = STRING(Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations); \
Name = STRING(CONCAT2(.,key)); \
- Value = STRING(CONCAT3(soffice.Star,doc_type,Document.6)); \
+ Value = STRING(CONCAT2(OpenOffice.org.,name)); \
Styles = (); \
End
@@ -521,7 +467,7 @@ End
ModuleID = modid; \
Subkey = STRING(Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations); \
Name = STRING(CONCAT2(.,key)); \
- Value = STRING(CONCAT3(soffice.Star,doc_type,Template.6)); \
+ Value = STRING(CONCAT2(OpenOffice.org.,name)); \
Styles = (); \
End
@@ -540,7 +486,7 @@ End
#define CONDITIONAL_REGISTER_DOCTEMPLATE_EXTENSION(name,modid,key,cond,disp_name,icon_id,app,default,doc_type) \
CONDITIONAL_MODULE_ENTRY(name,modid) \
- REGISTRY_ENTRY_OPEN_WITH(name,cond,doc_type,modid,key) \
+ REGISTRY_ENTRY_OPEN_WITH_TMPL(name,cond,doc_type,modid,key) \
CONDITIONAL_REGISTRY_ENTRY_EXT(name,cond,key) \
REGISTRY_ENTRY_DOC(name,modid,disp_name) \
REGISTRY_ENTRY_ICON(name,modid,icon_id) \
diff --git a/scp2/prj/build.lst b/scp2/prj/build.lst
index 866db7193537..7b5c9efd85a5 100644
--- a/scp2/prj/build.lst
+++ b/scp2/prj/build.lst
@@ -1,4 +1,4 @@
-cp scp2 : l10n i18npool setup_native l10ntools PYTHON:python ICU:icu REDLAND:redland LIBXSLT:libxslt NULL
+cp scp2 : L10N:l10n i18npool setup_native l10ntools PYTHON:python ICU:icu REDLAND:redland LIBXSLT:libxslt NULL
cp scp2 usr1 - all cp_mkout NULL
cp scp2\macros nmake - all cp_langmacros NULL
cp scp2\source\templates nmake - all cp_langtemplates NULL
diff --git a/scp2/source/base/file_base.scp b/scp2/source/base/file_base.scp
index 7a9fae3997ca..4da10dd79cde 100644
--- a/scp2/source/base/file_base.scp
+++ b/scp2/source/base/file_base.scp
@@ -48,29 +48,29 @@ File gid_File_Exe_Odbcconfig
End
#endif
-STD_UNO_LIB_FILE( gid_File_Lib_Abp, abp)
+STD_LIB_FILE( gid_File_Lib_Abp, abp)
STD_RES_FILE( gid_File_Res_Abp, abp)
-STD_UNO_LIB_FILE( gid_File_Lib_Dbp, dbp)
+STD_LIB_FILE( gid_File_Lib_Dbp, dbp)
STD_RES_FILE( gid_File_Res_Dbp, dbp)
-STD_UNO_LIB_FILE( gid_File_Lib_Dbu, dbu )
+STD_LIB_FILE( gid_File_Lib_Dbu, dbu )
STD_RES_FILE( gid_File_Res_Dbu, dbu)
-STD_UNO_LIB_FILE( gid_File_Lib_Adabasui, adabasui )
+STD_LIB_FILE( gid_File_Lib_Adabasui, adabasui )
STD_RES_FILE( gid_File_Res_Adabasui, adabasui)
STD_RES_FILE( gid_File_Res_Cnr, cnr)
STD_RES_FILE( gid_File_Res_Sdbcl, sdbcl)
STD_RES_FILE( gid_File_Res_Sdberr, sdberr)
-STD_UNO_LIB_FILE( gid_File_Lib_Rpt, rpt )
+STD_LIB_FILE( gid_File_Lib_Rpt, rpt )
STD_RES_FILE( gid_File_Res_Rpt, rpt)
-STD_UNO_LIB_FILE( gid_File_Lib_Rptui, rptui )
+STD_LIB_FILE( gid_File_Lib_Rptui, rptui )
STD_RES_FILE( gid_File_Res_Rptui, rptui)
-STD_UNO_LIB_FILE( gid_File_Lib_Rptxml, rptxml )
+STD_LIB_FILE( gid_File_Lib_Rptxml, rptxml )
File gid_File_Help_Sdatabase_Zip
Dir = gid_Dir_Help_Isolanguage;
diff --git a/scp2/source/binfilter/file_binfilter.scp b/scp2/source/binfilter/file_binfilter.scp
index be66b907a25d..951caadf69fb 100644
--- a/scp2/source/binfilter/file_binfilter.scp
+++ b/scp2/source/binfilter/file_binfilter.scp
@@ -39,7 +39,7 @@ File gid_Starregistry_Legacy_Binfilters_Rdb
TXT_FILE_BODY;
Name = "legacy_binfilters.rdb";
Dir = gid_Dir_Program;
- Styles = (PACKED, STARREGISTRY);
+ Styles = (PACKED);
End
@@ -59,8 +59,8 @@ STD_LIB_FILE( gid_File_Lib_Bf_Sw, bf_sw)
STD_LIB_FILE( gid_File_Lib_Bf_Wrapper, bf_wrapper)
STD_LIB_FILE( gid_File_Lib_Legacy_Binfilters, legacy_binfilters)
-STD_UNO_LIB_FILE( gid_File_Lib_Bf_Migratefilter, bf_migratefilter)
-STD_UNO_LIB_FILE( gid_File_Lib_Bindet, bindet)
+STD_LIB_FILE( gid_File_Lib_Bf_Migratefilter, bf_migratefilter)
+STD_LIB_FILE( gid_File_Lib_Bindet, bindet)
STD_RES_FILE( gid_File_Res_Bf_Sch, bf_sch )
STD_RES_FILE( gid_File_Res_Bf_Svx, bf_svx )
diff --git a/scp2/source/calc/file_calc.scp b/scp2/source/calc/file_calc.scp
index 7a2f374a8ced..fc55805d08ec 100644
--- a/scp2/source/calc/file_calc.scp
+++ b/scp2/source/calc/file_calc.scp
@@ -27,7 +27,7 @@
#include "macros.inc"
-STD_UNO_LIB_FILE( gid_File_Lib_Solver, solver)
+STD_LIB_FILE( gid_File_Lib_Solver, solver)
#ifndef SYSTEM_LPSOLVE
File gid_File_Lib_Lpsolve
@@ -36,7 +36,7 @@ File gid_File_Lib_Lpsolve
End
#endif
-STD_UNO_LIB_FILE( gid_File_Lib_Analysis, analysis)
+STD_LIB_FILE( gid_File_Lib_Analysis, analysis)
File gid_File_Share_Registry_Calc_Xcd
TXT_FILE_BODY;
@@ -45,17 +45,17 @@ File gid_File_Share_Registry_Calc_Xcd
Name = "calc.xcd";
End
-STD_UNO_LIB_FILE( gid_File_Lib_Calc, calc)
+STD_LIB_FILE( gid_File_Lib_Calc, calc)
-STD_UNO_LIB_FILE( gid_File_Lib_Date, date)
+STD_LIB_FILE( gid_File_Lib_Date, date)
-STD_UNO_LIB_FILE( gid_File_Lib_Sc, sc)
+STD_LIB_FILE( gid_File_Lib_Sc, sc)
STD_LIB_FILE( gid_File_Lib_Scui, scui)
STD_UNO_LIB_FILE( gid_File_Lib_Scfilt, scfilt)
-STD_UNO_LIB_FILE( gid_File_Lib_Scd, scd)
+STD_LIB_FILE( gid_File_Lib_Scd, scd)
STD_RES_FILE( gid_File_Res_Solver, solver)
diff --git a/scp2/source/calc/registryitem_calc.scp b/scp2/source/calc/registryitem_calc.scp
index c76ae8b2168d..8220610ec5c3 100644..100755
--- a/scp2/source/calc/registryitem_calc.scp
+++ b/scp2/source/calc/registryitem_calc.scp
@@ -859,7 +859,7 @@ End
RegistryItem gid_Regitem_ots_FullDetails
ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl;
- Subkey = "opendocument.Calctemplate.1";
+ Subkey = "opendocument.CalcTemplate.1";
Name = "FullDetails";
Value = "prop:System.PropGroup.Description;System.Title;System.Author;System.Subject;System.Keywords;System.Comment;System.PropGroup.FileSystem;System.ItemNameDisplay;System.ItemType;System.ItemFolderPathDisplay;System.Size;System.DateCreated;System.DateModified;System.FileAttributes;System.ComputerName";
End
@@ -922,7 +922,7 @@ RegistryItem gid_Regitem_OpenOffice_OTS_OpenWith_Calc
ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
Subkey = ".ots\OpenWithProgIDs";
ModuleID = gid_Module_Prg_Calc_Bin;
- Name = "opendocument.CalcDocument.1";
+ Name = "opendocument.CalcTemplate.1";
Value = " ";
End
diff --git a/scp2/source/canvas/cairocanvas.scp b/scp2/source/canvas/cairocanvas.scp
index 435cef4304f8..2d7af5321f35 100644
--- a/scp2/source/canvas/cairocanvas.scp
+++ b/scp2/source/canvas/cairocanvas.scp
@@ -29,8 +29,7 @@
File gid_File_Lib_CairoCanvas
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(cairocanvas.uno,UNXSUFFIX));
diff --git a/scp2/source/canvas/canvascommons.scp b/scp2/source/canvas/canvascommons.scp
index 3b58fc69e0c3..cd2dc9c2d6ea 100644
--- a/scp2/source/canvas/canvascommons.scp
+++ b/scp2/source/canvas/canvascommons.scp
@@ -30,5 +30,5 @@
STD_LIB_FILE(gid_File_Lib_CppCanvas, cppcanvas)
STD_LIB_FILE(gid_File_Lib_CanvasTools, canvastools)
-SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_CanvasFactory, canvasfactory.uno)
-SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_SimpleCanvas, simplecanvas.uno)
+SPECIAL_COMPONENT_LIB_FILE(gid_File_CanvasFactory, canvasfactory.uno)
+SPECIAL_COMPONENT_LIB_FILE(gid_File_SimpleCanvas, simplecanvas.uno)
diff --git a/scp2/source/canvas/directxcanvas.scp b/scp2/source/canvas/directxcanvas.scp
index febdb8428c8b..e79f711aaacd 100644
--- a/scp2/source/canvas/directxcanvas.scp
+++ b/scp2/source/canvas/directxcanvas.scp
@@ -29,8 +29,8 @@
#ifdef WNT
# ifdef USE_DIRECTX5
-SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Lib_DirectX5Canvas,directx5canvas.uno)
+SPECIAL_COMPONENT_LIB_FILE(gid_File_Lib_DirectX5Canvas,directx5canvas.uno)
# endif
-SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Lib_DirectX9Canvas, directx9canvas.uno)
-SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Lib_GdiPlusCanvas, gdipluscanvas.uno)
+SPECIAL_COMPONENT_LIB_FILE(gid_File_Lib_DirectX9Canvas, directx9canvas.uno)
+SPECIAL_COMPONENT_LIB_FILE(gid_File_Lib_GdiPlusCanvas, gdipluscanvas.uno)
#endif
diff --git a/scp2/source/canvas/vclcanvas.scp b/scp2/source/canvas/vclcanvas.scp
index 5f69de34fee9..c17301f56d76 100644
--- a/scp2/source/canvas/vclcanvas.scp
+++ b/scp2/source/canvas/vclcanvas.scp
@@ -27,4 +27,4 @@
#include "macros.inc"
-SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Lib_VCLCanvas, vclcanvas.uno)
+SPECIAL_COMPONENT_LIB_FILE(gid_File_Lib_VCLCanvas, vclcanvas.uno)
diff --git a/scp2/source/draw/registryitem_draw.scp b/scp2/source/draw/registryitem_draw.scp
index 5d7e0d99edfc..d722319649cd 100644..100755
--- a/scp2/source/draw/registryitem_draw.scp
+++ b/scp2/source/draw/registryitem_draw.scp
@@ -920,7 +920,7 @@ RegistryItem gid_Regitem_OpenOffice_OTG_OpenWith_Draw
ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
Subkey = ".otg\OpenWithProgIDs";
ModuleID = gid_Module_Prg_Draw_Bin;
- Name = "opendocument.DrawDocument.1";
+ Name = "opendocument.DrawTemplate.1";
Value = " ";
End
@@ -938,7 +938,7 @@ RegistryItem gid_Regitem_OpenOffice_STD_OpenWith_Draw
ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
Subkey = ".std\OpenWithProgIDs";
ModuleID = gid_Module_Prg_Draw_Bin;
- Name = "soffice.StarDrawDocument.6";
+ Name = "soffice.StarDrawTemplate.6";
Value = " ";
End
@@ -948,7 +948,7 @@ RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabi
Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
ModuleID = gid_Module_Prg_Draw_Bin;
Name = ".otg";
- Value = "opendocument.DrawDocument.1";
+ Value = "opendocument.DrawTemplate.1";
Styles = ();
End
diff --git a/scp2/source/gnome/file_gnome.scp b/scp2/source/gnome/file_gnome.scp
index 9d10261843d2..d48915072742 100644
--- a/scp2/source/gnome/file_gnome.scp
+++ b/scp2/source/gnome/file_gnome.scp
@@ -32,8 +32,6 @@ File gid_File_Lib_GIO
Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = STRING(CONCAT2(ucpgio1.uno,UNXSUFFIX));
- RegistryID = gid_Starregistry_Services_Rdb;
- Regmergefile = "ucpgio-ucd.txt";
End
#endif
@@ -43,8 +41,6 @@ File gid_File_Lib_Gnomevfs
Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = STRING(CONCAT2(ucpgvfs1.uno,UNXSUFFIX));
- RegistryID = gid_Starregistry_Services_Rdb;
- Regmergefile = "ucpgvfs-ucd.txt";
End
#endif
@@ -63,7 +59,5 @@ File gid_File_Lib_Gconfbe
Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = STRING(CONCAT2(gconfbe1.uno,UNXSUFFIX));
- RegistryID = gid_Starregistry_Services_Rdb;
- Regmergefile = "gconfbe1-ucd.txt";
End
#endif
diff --git a/scp2/source/graphicfilter/file_graphicfilter.scp b/scp2/source/graphicfilter/file_graphicfilter.scp
index 4ba30a6849a7..ab46b1814710 100644
--- a/scp2/source/graphicfilter/file_graphicfilter.scp
+++ b/scp2/source/graphicfilter/file_graphicfilter.scp
@@ -34,8 +34,8 @@ File gid_File_Share_Registry_Graphicfilter_Xcd
Name = "graphicfilter.xcd";
End
-STD_UNO_LIB_FILE( gid_File_Lib_Flash, flash )
+STD_LIB_FILE( gid_File_Lib_Flash, flash )
-STD_UNO_LIB_FILE( gid_File_Lib_Svg, svgfilter )
+STD_LIB_FILE( gid_File_Lib_Svg, svgfilter )
STD_UNO_LIB_FILE_PATCH( gid_File_Lib_WPGImport, wpgimport )
diff --git a/scp2/source/impress/file_impress.scp b/scp2/source/impress/file_impress.scp
index cda4495428ee..850593d696a8 100644
--- a/scp2/source/impress/file_impress.scp
+++ b/scp2/source/impress/file_impress.scp
@@ -29,12 +29,12 @@
File gid_File_Lib_Placeware
Name = LIBNAME(placeware);
- PACKED_UNO_LIB_FILE_BODY;
+ PACKED_LIB_FILE_BODY;
End
File gid_File_Lib_Animcore
Name = SPECIAL_NAME(animcore);
- PACKED_UNO_LIB_FILE_BODY;
+ PACKED_LIB_FILE_BODY;
End
File gid_File_Share_Registry_Impress_Xcd
diff --git a/scp2/source/impress/module_ogltrans.scp b/scp2/source/impress/module_ogltrans.scp
index e3a767a06966..e204e04417bd 100644
--- a/scp2/source/impress/module_ogltrans.scp
+++ b/scp2/source/impress/module_ogltrans.scp
@@ -38,8 +38,7 @@ End
File gid_File_Lib_OpenGLTransitions
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
#ifdef QUARTZ
diff --git a/scp2/source/impress/registryitem_impress.scp b/scp2/source/impress/registryitem_impress.scp
index 0885d81d7c31..063bcf91f4eb 100644..100755
--- a/scp2/source/impress/registryitem_impress.scp
+++ b/scp2/source/impress/registryitem_impress.scp
@@ -949,7 +949,7 @@ RegistryItem gid_Regitem_OpenOffice_OTP_OpenWith_Impress
ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
Subkey = ".otp\OpenWithProgIDs";
ModuleID = gid_Module_Prg_Impress_Bin;
- Name = "opendocument.ImpressDocument.1";
+ Name = "opendocument.ImpressTemplate.1";
Value = " ";
End
@@ -967,7 +967,7 @@ RegistryItem gid_Regitem_OpenOffice_STI_OpenWith_Impress
ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
Subkey = ".sti\OpenWithProgIDs";
ModuleID = gid_Module_Prg_Impress_Bin;
- Name = "soffice.StarImpressDocument.6";
+ Name = "soffice.StarImpressTemplate.6";
Value = " ";
End
@@ -995,7 +995,7 @@ RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabi
Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
ModuleID = gid_Module_Prg_Impress_Bin;
Name = ".otp";
- Value = "opendocument.ImpressDocument.1";
+ Value = "opendocument.ImpressTemplate.1";
Styles = ();
End
@@ -1004,7 +1004,7 @@ RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabi
Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
ModuleID = gid_Module_Prg_Impress_Bin;
Name = ".sti";
- Value = "soffice.StarImpressDocument.6";
+ Value = "soffice.StarImpressTemplate.6";
Styles = ();
End
diff --git a/scp2/source/javafilter/file_javafilter.scp b/scp2/source/javafilter/file_javafilter.scp
index d7a902dbf00f..a6d3f3329b25 100644
--- a/scp2/source/javafilter/file_javafilter.scp
+++ b/scp2/source/javafilter/file_javafilter.scp
@@ -76,6 +76,6 @@ STD_JAR_FILE( gid_File_Jar_Aportisdoc, aportisdoc )
STD_JAR_FILE( gid_File_Jar_Pexcel, pexcel )
STD_JAR_FILE( gid_File_Jar_Pocketword, pocketword )
STD_JAR_FILE( gid_File_Jar_Xmerge, xmerge )
-UNO_JAR_FILE( gid_File_Jar_Xmergebridge, XMergeBridge )
+STD_JAR_FILE( gid_File_Jar_Xmergebridge, XMergeBridge )
#endif
diff --git a/scp2/source/javafilter/registryitem_javafilter.scp b/scp2/source/javafilter/registryitem_javafilter.scp
index 1340d637e009..3626d914bef4 100644
--- a/scp2/source/javafilter/registryitem_javafilter.scp
+++ b/scp2/source/javafilter/registryitem_javafilter.scp
@@ -46,7 +46,7 @@ RegistryItem gid_Regitem_Clsid__43887c67_4d5d_4127_Baac_87a288494c7c__Inprocserv
ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
Subkey = "CLSID\{43887C67-4D5D-4127-BAAC-87A288494C7C}\InProcServer32";
ModuleID = gid_Module_Optional_Javafilter_Pocketpc_Pocket_Excel;
- Value = "[INSTALLLOCATION]Basis\program\xmergesync.dll";
+ Value = "[INSTALLLOCATION]program\xmergesync.dll";
End
RegistryItem gid_Regitem_Clsid__43887c67_4d5d_4127_Baac_87a288494c7c__Inprocserver32_Threadingmodel
@@ -106,7 +106,7 @@ RegistryItem gid_Regitem_Clsid__Bdd611c3_7bab_460f_8711_5b9ac9ef6020__Inprocserv
ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
Subkey = "CLSID\{BDD611C3-7BAB-460F-8711-5B9AC9EF6020}\InProcServer32";
ModuleID = gid_Module_Optional_Javafilter_Pocketpc_Pocket_Word;
- Value = "[INSTALLLOCATION]Basis\program\xmergesync.dll";
+ Value = "[INSTALLLOCATION]program\xmergesync.dll";
End
RegistryItem gid_Regitem_Clsid__Bdd611c3_7bab_460f_8711_5b9ac9ef6020__Inprocserver32_Threadingmodel
@@ -166,7 +166,7 @@ RegistryItem gid_Regitem_Clsid__C6ab3e74_9f4f_4370_8120_A8a6fabb7a7c__Inprocserv
ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
Subkey = "CLSID\{C6AB3E74-9F4F-4370-8120-A8A6FABB7A7C}\InProcServer32";
ModuleID = gid_Module_Optional_Javafilter_Pocketpc_Pocket_Excel;
- Value = "[INSTALLLOCATION]Basis\program\xmergesync.dll";
+ Value = "[INSTALLLOCATION]program\xmergesync.dll";
End
RegistryItem gid_Regitem_Clsid__C6ab3e74_9f4f_4370_8120_A8a6fabb7a7c__Inprocserver32_Threadingmodel
@@ -226,7 +226,7 @@ RegistryItem gid_Regitem_Clsid__Cb43f086_838d_4fa4_B5f6_3406b9a57439__Inprocserv
ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
Subkey = "CLSID\{CB43F086-838D-4FA4-B5F6-3406B9A57439}\InProcServer32";
ModuleID = gid_Module_Optional_Javafilter_Pocketpc_Pocket_Word;
- Value = "[INSTALLLOCATION]Basis\program\xmergesync.dll";
+ Value = "[INSTALLLOCATION]program\xmergesync.dll";
End
RegistryItem gid_Regitem_Clsid__Cb43f086_838d_4fa4_B5f6_3406b9a57439__Inprocserver32_Threadingmodel
diff --git a/scp2/source/kde/file_kde.scp b/scp2/source/kde/file_kde.scp
index 0e0b3d1b73bb..3d139b797d67 100644
--- a/scp2/source/kde/file_kde.scp
+++ b/scp2/source/kde/file_kde.scp
@@ -32,8 +32,6 @@ File gid_File_Lib_Kdebe
Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = STRING(CONCAT2(kdebe1.uno,UNXSUFFIX));
- RegistryID = gid_Starregistry_Services_Rdb;
- Regmergefile = "kdebe1-ucd.txt";
End
#endif
@@ -43,7 +41,5 @@ File gid_File_Lib_Kde4be
Styles = (PACKED);
Dir = gid_Dir_Program;
Name = STRING(CONCAT2(kde4be1.uno,UNXSUFFIX));
- RegistryID = gid_Starregistry_Services_Rdb;
- Regmergefile = "kde4be1-ucd.txt";
End
#endif
diff --git a/scp2/source/math/file_math.scp b/scp2/source/math/file_math.scp
index 63b87b24624b..c554296d4381 100644
--- a/scp2/source/math/file_math.scp
+++ b/scp2/source/math/file_math.scp
@@ -37,9 +37,9 @@ End
#endif
-STD_UNO_LIB_FILE( gid_File_Lib_Sm , sm)
+STD_LIB_FILE( gid_File_Lib_Sm , sm)
-STD_UNO_LIB_FILE( gid_File_Lib_Smd , smd)
+STD_LIB_FILE( gid_File_Lib_Smd , smd)
STD_RES_FILE( gid_File_Res_Sm, sm )
diff --git a/scp2/source/onlineupdate/file_onlineupdate.scp b/scp2/source/onlineupdate/file_onlineupdate.scp
index e33eb6fa35c7..2a7ddd376b6f 100644
--- a/scp2/source/onlineupdate/file_onlineupdate.scp
+++ b/scp2/source/onlineupdate/file_onlineupdate.scp
@@ -27,7 +27,7 @@
#include "macros.inc"
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Updchk , updchk.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Updchk , updchk.uno )
File gid_File_Share_Registry_Onlineupdate_Xcd
TXT_FILE_BODY;
diff --git a/scp2/source/ooo/common_brand.scp b/scp2/source/ooo/common_brand.scp
index 94f5baf850a3..f167ea270919 100644
--- a/scp2/source/ooo/common_brand.scp
+++ b/scp2/source/ooo/common_brand.scp
@@ -86,6 +86,7 @@ Module gid_Module_Root_Brand
gid_Brand_File_Msvcm80crt_Manifest,
gid_Brand_File_Lib_Npsoplugin,
gid_Brand_File_Lib_Subscrib_C05,
+ gid_Brand_File_ServicesRdb,
gid_Brand_File_Share_Registry_Brand_Xcd,
gid_Brand_File_Share_Registry_O5oo_Xcd,
gid_Brand_File_Script_Unopkg,
@@ -1248,6 +1249,14 @@ ProfileItem gid_Brand_Profileitem_Fundamental_Uno_Bundled_Extensions_User
Value = "${${OOO_BASE_DIR}/program/" PROFILENAME(fundamentalbasis) ":BUNDLED_EXTENSIONS_USER}";
End
+ProfileItem gid_Brand_Profileitem_Fundamental_Uno_Bundled_Extensions_Prereg
+ ModuleID = gid_Module_Root_Brand;
+ ProfileID = gid_Brand_Profile_Fundamental_Ini;
+ Section = "Bootstrap";
+ Key = "BUNDLED_EXTENSIONS_PREREG";
+ Value = "${${OOO_BASE_DIR}/program/" PROFILENAME(fundamentalbasis) ":BUNDLED_EXTENSIONS_PREREG}";
+End
+
ProfileItem gid_Brand_Profileitem_Fundamental_Uno_Shared_Packages_Cache
ModuleID = gid_Module_Root_Brand;
ProfileID = gid_Brand_Profile_Fundamental_Ini;
@@ -1293,7 +1302,7 @@ ProfileItem gid_Brand_Profileitem_Fundamental_Ure_More_Services
ProfileID = gid_Brand_Profile_Fundamental_Ini;
Section = "Bootstrap";
Key = "URE_MORE_SERVICES";
- Value = "${${OOO_BASE_DIR}/program/" PROFILENAME(fundamentalbasis) ":URE_MORE_SERVICES}";
+ Value = "${${OOO_BASE_DIR}/program/" PROFILENAME(fundamentalbasis) ":URE_MORE_SERVICES} $ORIGIN/services.rdb";
End
ProfileItem gid_Brand_Profileitem_Fundamental_Ure_More_Java_Types
diff --git a/scp2/source/ooo/directory_ooo_macosx.scp b/scp2/source/ooo/directory_ooo_macosx.scp
index 9cd00117dcbf..ee4ad7522938 100755
--- a/scp2/source/ooo/directory_ooo_macosx.scp
+++ b/scp2/source/ooo/directory_ooo_macosx.scp
@@ -31,8 +31,8 @@
Directory gid_Dir_Bundle
ParentID = PD_PROGDIR;
HostName = "%PRODUCTNAME.app";
- LangPackHostName = "%PRODUCTNAME %PRODUCTVERSION Language Pack.app";
- PatchHostName = "%PRODUCTNAME %PRODUCTVERSION Patch.app";
+ LangPackHostName = "%PRODUCTNAME Language Pack.app";
+ PatchHostName = "%PRODUCTNAME Patch.app";
End
#endif
diff --git a/scp2/source/ooo/file_improvement.scp b/scp2/source/ooo/file_improvement.scp
index 224d26de6a0d..cd6cfe715d64 100644
--- a/scp2/source/ooo/file_improvement.scp
+++ b/scp2/source/ooo/file_improvement.scp
@@ -37,5 +37,5 @@ End
#endif
#if defined(BUILD_SPECIAL)
-STD_UNO_LIB_FILE( gid_File_Lib_Oooimprovement , oooimprovement)
+STD_LIB_FILE( gid_File_Lib_Oooimprovement , oooimprovement)
#endif
diff --git a/scp2/source/ooo/file_library_ooo.scp b/scp2/source/ooo/file_library_ooo.scp
index 54836a8b8d5c..2edf4e67cab3 100644..100755
--- a/scp2/source/ooo/file_library_ooo.scp
+++ b/scp2/source/ooo/file_library_ooo.scp
@@ -35,19 +35,18 @@ File gid_File_Lib_Accessbridge
End
#endif
#if ((defined(WNT)) || (defined(LINUX)) || ((defined(SOLARIS)) && (defined(SPARC)))|| defined(NETBSD) )
-STD_UNO_LIB_FILE( gid_File_Lib_Adabas, adabas)
+STD_LIB_FILE( gid_File_Lib_Adabas, adabas)
#endif
#if defined(WNT)
-STD_UNO_LIB_FILE( gid_File_Lib_Ado, ado)
+STD_LIB_FILE( gid_File_Lib_Ado, ado)
#endif
-STD_UNO_LIB_FILE( gid_File_Lib_Basctl, basctl)
+STD_LIB_FILE( gid_File_Lib_Basctl, basctl)
File gid_File_Lib_Basprov
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT4(basprov,DLLPOSTFIX,.uno,UNXSUFFIX));
@@ -56,11 +55,9 @@ File gid_File_Lib_Basprov
#endif
End
-#ifdef ENABLE_VBA
File gid_File_Lib_Vbaevent
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT4(vbaevents,DLLPOSTFIX,.uno,UNXSUFFIX));
@@ -68,14 +65,12 @@ File gid_File_Lib_Vbaevent
Name = STRING(CONCAT4(vbaevents,DLLPOSTFIX,.uno,.dll));
#endif
End
-#endif // ENABLE_VBA
-STD_UNO_LIB_FILE( gid_File_Lib_Bib , bib)
+STD_LIB_FILE( gid_File_Lib_Bib , bib)
File gid_File_Lib_Cached1
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(libcached1,UNXSUFFIX));
@@ -84,13 +79,12 @@ File gid_File_Lib_Cached1
#endif
End
-SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Lib_Configmgr, configmgr.uno)
+SPECIAL_COMPONENT_LIB_FILE(gid_File_Lib_Configmgr, configmgr.uno)
#ifdef WITH_LDAP
File gid_File_Lib_Ldapbe2
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(ldapbe2.uno,UNXSUFFIX));
@@ -100,10 +94,10 @@ File gid_File_Lib_Ldapbe2
End
#endif
-STD_UNO_LIB_FILE(gid_File_Lib_Chartcontroller, chartcontroller)
-STD_UNO_LIB_FILE(gid_File_Lib_Chartmodel, chartmodel)
-STD_UNO_LIB_FILE(gid_File_Lib_Charttools, charttools)
-STD_UNO_LIB_FILE(gid_File_Lib_Chartview, chartview)
+STD_LIB_FILE(gid_File_Lib_Chartcontroller, chartcontroller)
+STD_LIB_FILE(gid_File_Lib_Chartmodel, chartmodel)
+STD_LIB_FILE(gid_File_Lib_Charttools, charttools)
+STD_LIB_FILE(gid_File_Lib_Chartview, chartview)
#if defined WNT && defined _MSC
@@ -157,23 +151,22 @@ End
#if ! defined WNT // no longer supported on Windows
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Cmdmail, cmdmail.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Cmdmail, cmdmail.uno )
#endif
File gid_File_Lib_Comphelper2
TXT_FILE_BODY;
#ifdef UNX
- Name = STRING(CONCAT3(libcomphelp4,COMID,UNXSUFFIX));
+ Name = STRING(CONCAT3(libcomphelp,COMID,UNXSUFFIX));
#else
- Name = STRING(CONCAT3(comphelp4,COMID,.dll));
+ Name = STRING(CONCAT3(comphelp,COMID,.dll));
#endif
Dir = SCP2_OOO_BIN_DIR;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
End
-STD_UNO_LIB_FILE( gid_File_Lib_Ctl , ctl)
+STD_LIB_FILE( gid_File_Lib_Ctl , ctl)
STD_LIB_FILE( gid_File_Lib_Cui, cui)
@@ -228,15 +221,13 @@ End
#endif
#endif
-STD_UNO_LIB_FILE( gid_File_Lib_Dba, dba)
-
-STD_UNO_LIB_FILE( gid_File_Lib_Sdbt, sdbt)
+STD_LIB_FILE( gid_File_Lib_Dba, dba)
-STD_UNO_LIB_FILE( gid_File_Lib_Dbmm, dbmm)
+STD_LIB_FILE( gid_File_Lib_Sdbt, sdbt)
-STD_UNO_LIB_FILE( gid_File_Lib_Dbacfg, dbacfg)
+STD_LIB_FILE( gid_File_Lib_Dbmm, dbmm)
-STD_UNO_LIB_FILE( gid_File_Lib_Dbase2, dbase )
+STD_LIB_FILE( gid_File_Lib_Dbase2, dbase )
STD_LIB_FILE( gid_File_Lib_Dbfile , file)
STD_LIB_FILE( gid_File_Lib_Odbcbase,odbcbase)
@@ -244,8 +235,7 @@ STD_LIB_FILE( gid_File_Lib_Odbcbase,odbcbase)
File gid_File_Lib_Dbpool
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(libdbpool2,UNXSUFFIX));
@@ -254,9 +244,9 @@ File gid_File_Lib_Dbpool
#endif
End
-STD_UNO_LIB_FILE( gid_File_Lib_Dbt, dbtools )
+STD_LIB_FILE( gid_File_Lib_Dbt, dbtools )
-STD_UNO_LIB_FILE( gid_File_Lib_Dbaxml, dbaxml )
+STD_LIB_FILE( gid_File_Lib_Dbaxml, dbaxml )
File gid_File_Lib_Dict_Ja
TXT_FILE_BODY;
@@ -315,8 +305,7 @@ End
File gid_File_Lib_Dlgprov
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT4(dlgprov,DLLPOSTFIX,.uno,UNXSUFFIX));
@@ -327,8 +316,7 @@ End
File gid_File_Lib_Stringresource
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT4(stringresource,DLLPOSTFIX,.uno,UNXSUFFIX));
@@ -337,13 +325,9 @@ File gid_File_Lib_Stringresource
#endif
End
-#if defined ENABLE_VBA
-#ifndef VBA_EXTENSION
-
File gid_File_Lib_Vbaobj
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT4(libvbaobj,DLLPOSTFIX,.uno,UNXSUFFIX));
@@ -354,33 +338,29 @@ End
File gid_File_Lib_Vbaswobj
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
- Name = STRING(CONCAT4(libvbaswobj,DLLPOSTFIX,.uno,UNXSUFFIX));
+ Name = STRING(CONCAT3(vbaswobj,.uno,UNXSUFFIX));
#else
- Name = STRING(CONCAT4(vbaswobj,DLLPOSTFIX,.uno,.dll));
+ Name = STRING(CONCAT3(vbaswobj,.uno,.dll));
#endif
End
File gid_File_Lib_Vbamsforms
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
- Name = STRING(CONCAT4(libmsforms,DLLPOSTFIX,.uno,UNXSUFFIX));
+ Name = STRING(CONCAT3(msforms,.uno,UNXSUFFIX));
#else
- Name = STRING(CONCAT4(msforms,DLLPOSTFIX,.uno,.dll));
+ Name = STRING(CONCAT3(msforms,.uno,.dll));
#endif
End
-#endif // VBA_EXTENSION
File gid_File_Lib_Vbahelper
TXT_FILE_BODY;
Styles = (PACKED);
- RegistryID = gid_Starregistry_Services_Rdb;
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT3(libvbahelper,DLLPOSTFIX,UNXSUFFIX));
@@ -388,15 +368,13 @@ File gid_File_Lib_Vbahelper
Name = STRING(CONCAT3(vbahelper,DLLPOSTFIX,.dll));
#endif
End
-#endif // ENABLE_VBA
#ifdef WNT
File gid_File_Lib_Dnd
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = "dnd.dll";
End
@@ -409,23 +387,22 @@ File gid_File_Lib_Dtrans
TXT_FILE_BODY;
Name = "dtrans.dll";
Dir = SCP2_OOO_BIN_DIR;
- Styles = (PACKED, UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
End
#endif
STD_LIB_FILE(gid_File_Lib_Drawinglayer,drawinglayer)
-SPECIAL_UNO_LIB_FILE(gid_File_Lib_Embobj,embobj)
+SPECIAL_LIB_FILE(gid_File_Lib_Embobj,embobj)
#ifndef DISABLE_ATL
-SPECIAL_UNO_LIB_FILE(gid_File_Lib_Emboleobj,emboleobj)
+SPECIAL_LIB_FILE(gid_File_Lib_Emboleobj,emboleobj)
#endif
#if defined(WNT) && !defined(DISABLE_ATL)
-STD_UNO_LIB_FILE( gid_File_Lib_Emser, emser )
+STD_LIB_FILE( gid_File_Lib_Emser, emser )
File gid_File_Lib_Inprocserv
TXT_FILE_BODY;
@@ -441,8 +418,7 @@ End
#ifdef ENABLE_KAB
File gid_File_Lib_Kab_1
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = STRING(CONCAT2(libkab1,UNXSUFFIX));
End
@@ -459,8 +435,7 @@ End
#ifdef MACOSX
File gid_File_Lib_Macab_1
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = STRING(CONCAT2(libmacab1,UNXSUFFIX));
End
@@ -476,7 +451,7 @@ End
#ifdef ENABLE_EVOAB2
-STD_UNO_LIB_FILE( gid_File_Lib_Evoab , evoab)
+STD_LIB_FILE( gid_File_Lib_Evoab , evoab)
#endif // #ifdef ENABLE_EVOAB2
@@ -484,8 +459,7 @@ STD_UNO_LIB_FILE( gid_File_Lib_Evoab , evoab)
File gid_File_Lib_Evtatt
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(libevtatt,UNXSUFFIX));
@@ -494,24 +468,22 @@ File gid_File_Lib_Evtatt
#endif
End
-SPECIAL_UNO_LIB_FILE(gid_File_Lib_Fileacc,fileacc)
+SPECIAL_LIB_FILE(gid_File_Lib_Fileacc,fileacc)
File gid_File_Lib_Filterconfig1
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
- RegistryID = gid_Starregistry_Services_Rdb;
Name = SPECIAL_NAME(filterconfig1);
End
-STD_UNO_LIB_FILE( gid_File_Lib_Flat, flat)
+STD_LIB_FILE( gid_File_Lib_Flat, flat)
#ifdef WNT
File gid_File_Lib_Fop
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = "fop.dll";
End
@@ -522,8 +494,7 @@ End
File gid_File_Lib_Fps
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = "fps.dll";
End
@@ -537,8 +508,6 @@ File gid_File_Lib_Desktopbe
Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = STRING(CONCAT2(desktopbe1.uno,UNXSUFFIX));
- RegistryID = gid_Starregistry_Services_Rdb;
- Regmergefile = "desktopbe1-ucd.txt";
End
#ifdef ENABLE_GTK
@@ -546,10 +515,8 @@ End
File gid_File_Lib_Fps_Gnome
TXT_FILE_BODY;
Styles = (PACKED);
- RegistryID = gid_Starregistry_Services_Rdb;
Dir = SCP2_OOO_BIN_DIR;
Name = SPECIAL_COMPONENT_LIB_NAME(fps_gnome.uno);
- Regmergefile = "fps-gnome-ucd.txt";
End
#endif
#endif
@@ -557,11 +524,9 @@ End
#ifndef MACOSX
File gid_File_Lib_Fps_Kde4
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = gid_Dir_Program;
Name = SPECIAL_COMPONENT_LIB_NAME(fps_kde4.uno);
- Regmergefile = "fps-kde4-ucd.txt";
End
#endif
#endif
@@ -569,11 +534,9 @@ End
#ifndef MACOSX
File gid_File_Lib_Fps_Kde
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = gid_Dir_Program;
Name = SPECIAL_COMPONENT_LIB_NAME(fps_kde.uno);
- Regmergefile = "fps-kde-ucd.txt";
End
File gid_File_Bin_KdeFilePicker
BIN_FILE_BODY;
@@ -589,35 +552,31 @@ End
File gid_File_Lib_Fps_Aqua
TXT_FILE_BODY;
Styles = (PACKED);
- RegistryID = gid_Starregistry_Services_Rdb;
Dir = SCP2_OOO_BIN_DIR;
Name = SPECIAL_COMPONENT_LIB_NAME(fps_aqua.uno);
- Regmergefile = "fps-aqua-ucd.txt";
End
File gid_File_Lib_MacOSXSpell
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Name = LIBNAME(MacOSXSpell);
Dir = SCP2_OOO_BIN_DIR;
End
File gid_File_Lib_avmediaQuickTime
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Name = LIBNAME(avmediaQuickTime);
Dir = SCP2_OOO_BIN_DIR;
End
#endif
#ifdef WNT
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Fps_ODMA, fps_odma.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Fps_ODMA, fps_odma.uno )
#endif
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Fps_Office, fps_office.uno )
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Fpicker, fpicker.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Fps_Office, fps_office.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Fpicker, fpicker.uno )
#if (defined(ENABLE_CAIRO) && ! defined (SYSTEM_CAIRO))
@@ -658,16 +617,15 @@ End
#endif
-STD_UNO_LIB_FILE( gid_File_Lib_Frm , frm)
+STD_LIB_FILE( gid_File_Lib_Frm , frm)
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Fsstorage, fsstorage.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Fsstorage, fsstorage.uno )
#ifdef WNT
File gid_File_Lib_Ftransl
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = "ftransl.dll";
End
@@ -681,14 +639,13 @@ STD_LIB_FILE( gid_File_Lib_Fwi , fwi)
File gid_File_Lib_Fwk
Name = LIBNAME(fwk);
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
- RegistryID = gid_Starregistry_Services_Rdb;
End
-STD_UNO_LIB_FILE( gid_File_Lib_Fwl , fwl)
+STD_LIB_FILE( gid_File_Lib_Fwl , fwl)
-STD_UNO_LIB_FILE( gid_File_Lib_Fwm , fwm)
+STD_LIB_FILE( gid_File_Lib_Fwm , fwm)
#ifdef WNT
File gid_File_Lib_Gdiplus
@@ -699,14 +656,13 @@ File gid_File_Lib_Gdiplus
End
#endif
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Hatchwindowfactory, hatchwindowfactory.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Hatchwindowfactory, hatchwindowfactory.uno )
STD_LIB_FILE( gid_File_Lib_Helplinker, helplinker)
File gid_File_Lib_I18npool
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(i18npool.uno,UNXSUFFIX));
@@ -728,8 +684,7 @@ End
File gid_File_Lib_I18nsearch
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(i18nsearch.uno,UNXSUFFIX));
@@ -810,15 +765,14 @@ End
#ifdef SOLAR_JAVA
-STD_UNO_LIB_FILE( gid_File_Lib_Jdbc, jdbc)
+STD_LIB_FILE( gid_File_Lib_Jdbc, jdbc)
#endif
#ifdef SOLAR_JAVA
File gid_File_Lib_Hsqldb_2
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(libhsqldb,UNXSUFFIX));
@@ -884,7 +838,7 @@ End
#endif
-STD_UNO_LIB_FILE( gid_File_Lib_Lng, lng)
+STD_LIB_FILE( gid_File_Lib_Lng, lng)
File gid_File_Lib_Localedata_En
TXT_FILE_BODY;
@@ -932,8 +886,7 @@ End
File gid_File_Lib_Mcnttype
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(libmcnttype,UNXSUFFIX));
@@ -944,15 +897,14 @@ End
#if !defined(SYSTEM_MOZILLA) && !defined(WITHOUT_MOZILLA) && !defined(MACOSX)
// #i91209#
-STD_UNO_LIB_FILE(gid_File_Lib_Mozab,mozab)
+STD_LIB_FILE(gid_File_Lib_Mozab,mozab)
STD_LIB_FILE(gid_File_Lib_Mozabdrv,mozabdrv)
#else
File gid_File_Lib_Mozbootstrap
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(libmozbootstrap,UNXSUFFIX));
@@ -963,15 +915,15 @@ End
#endif
-STD_UNO_LIB_FILE(gid_File_Lib_Wpft,wpft)
+STD_LIB_FILE(gid_File_Lib_Wpft,wpft)
-STD_UNO_LIB_FILE(gid_File_Lib_Msworks,msworks)
+STD_LIB_FILE(gid_File_Lib_Msworks,msworks)
-STD_UNO_LIB_FILE(gid_File_Lib_T602Filter,t602filter)
+STD_LIB_FILE(gid_File_Lib_T602Filter,t602filter)
-STD_UNO_LIB_FILE(gid_File_Lib_Wlwp,lwpft)
+STD_LIB_FILE(gid_File_Lib_Wlwp,lwpft)
-STD_UNO_LIB_FILE(gid_File_Lib_Writerfilter,writerfilter)
+STD_LIB_FILE(gid_File_Lib_Writerfilter,writerfilter)
#ifdef WNT
#if defined(_gcc3)
@@ -1080,12 +1032,12 @@ End
#endif
#endif
-STD_UNO_LIB_FILE(gid_File_Lib_Mysql,mysql)
-STD_UNO_LIB_FILE(gid_File_Lib_Odbc,odbc)
+STD_LIB_FILE(gid_File_Lib_Mysql,mysql)
+STD_LIB_FILE(gid_File_Lib_Odbc,odbc)
// STD_LIB_FILE( gid_File_Lib_Ofa , ofa)
-STD_UNO_LIB_FILE( gid_File_Lib_Offacc, offacc)
+STD_LIB_FILE( gid_File_Lib_Offacc, offacc)
#ifdef SOLAR_JAVA
#ifndef MACOSX
@@ -1108,23 +1060,22 @@ End
File gid_File_Lib_Ole
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = "oleautobridge.uno.dll";
End
#endif
-SPECIAL_UNO_LIB_FILE(gid_File_Lib_Package2,package2)
+SPECIAL_LIB_FILE(gid_File_Lib_Package2,package2)
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Passwordcontainer, passwordcontainer.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Passwordcontainer, passwordcontainer.uno )
-STD_UNO_LIB_FILE( gid_File_Lib_Pcr, pcr)
+STD_LIB_FILE( gid_File_Lib_Pcr, pcr)
-STD_UNO_LIB_FILE( gid_File_Lib_Log, log)
+STD_LIB_FILE( gid_File_Lib_Log, log)
-STD_UNO_LIB_FILE( gid_File_Lib_Pdffilter, pdffilter)
+STD_LIB_FILE( gid_File_Lib_Pdffilter, pdffilter)
File gid_File_Lib_Deployment
#if defined UNX
@@ -1132,7 +1083,7 @@ File gid_File_Lib_Deployment
#else
Name = STRING(CONCAT3(deployment,DLLPOSTFIX,.uno.dll));
#endif
- PACKED_UNO_LIB_FILE_BODY;
+ PACKED_LIB_FILE_BODY;
End
File gid_File_Lib_DeploymentGui
@@ -1141,18 +1092,18 @@ File gid_File_Lib_DeploymentGui
#else
Name = STRING(CONCAT3(deploymentgui,DLLPOSTFIX,.uno.dll));
#endif
- PACKED_UNO_LIB_FILE_BODY;
+ PACKED_LIB_FILE_BODY;
End
STD_LIB_FILE(gid_File_Lib_DeploymentMisc, deploymentmisc)
#ifndef WITHOUT_MOZILLA
-STD_UNO_LIB_FILE( gid_File_Lib_Pl , pl)
+STD_LIB_FILE( gid_File_Lib_Pl , pl)
#endif
-STD_UNO_LIB_FILE( gid_File_Lib_Preload, preload)
+STD_LIB_FILE( gid_File_Lib_Preload, preload)
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Productregistration, productregistration.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Productregistration, productregistration.uno )
#if defined(UNX) && ! defined(QUARTZ)
File gid_File_Lib_Desktop_Detector
@@ -1270,15 +1221,13 @@ End
File gid_File_Lib_Res
Name = LIBNAME(res);
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
- RegistryID = gid_Starregistry_Services_Rdb;
End
File gid_File_Lib_Sax_Uno
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT,DONT_OVERWRITE);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED,DONT_OVERWRITE);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(sax.uno,UNXSUFFIX));
@@ -1289,8 +1238,7 @@ End
File gid_File_Lib_Fastsax_Uno
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT,DONT_OVERWRITE);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED,DONT_OVERWRITE);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(fastsax.uno,UNXSUFFIX));
@@ -1301,11 +1249,11 @@ End
STD_LIB_FILE( gid_File_Lib_Sax , sax)
-STD_UNO_LIB_FILE( gid_File_Lib_Oox , oox)
+STD_LIB_FILE( gid_File_Lib_Oox , oox)
-STD_UNO_LIB_FILE( gid_File_Lib_Sb , sb)
+STD_LIB_FILE( gid_File_Lib_Sb , sb)
-STD_UNO_LIB_FILE( gid_File_Lib_Scn, scn)
+STD_LIB_FILE( gid_File_Lib_Scn, scn)
File gid_File_Lib_Scriptframe
TXT_FILE_BODY;
@@ -1318,18 +1266,16 @@ File gid_File_Lib_Scriptframe
#else
Name = "scriptframe.dll";
#endif
- RegistryID = gid_Starregistry_Services_Rdb;
Dir = SCP2_OOO_BIN_DIR;
- Styles = (PACKED,UNO_COMPONENT);
+ Styles = (PACKED);
End
-STD_UNO_LIB_FILE( gid_File_Lib_Sd , sd)
+STD_LIB_FILE( gid_File_Lib_Sd , sd)
STD_LIB_FILE( gid_File_Lib_Sdui, sdui)
File gid_File_Lib_Slideshow
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(slideshow.uno,UNXSUFFIX));
@@ -1340,8 +1286,7 @@ End
File gid_File_Lib_Sdbc_2
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(libsdbc2,UNXSUFFIX));
@@ -1350,16 +1295,15 @@ File gid_File_Lib_Sdbc_2
#endif
End
-STD_UNO_LIB_FILE( gid_File_Lib_Sdd , sdd)
+STD_LIB_FILE( gid_File_Lib_Sdd , sdd)
-STD_UNO_LIB_FILE( gid_File_Lib_Sf_Prothdlr, protocolhandler )
+STD_LIB_FILE( gid_File_Lib_Sf_Prothdlr, protocolhandler )
File gid_File_Lib_Sfx
Name = LIBNAME(sfx);
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
- RegistryID = gid_Starregistry_Services_Rdb;
End
#ifdef WNT
@@ -1377,15 +1321,14 @@ End
File gid_File_Lib_Smplmail
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = "smplmail.uno.dll";
End
#endif
-STD_UNO_LIB_FILE( gid_File_Lib_Sot, sot )
+STD_LIB_FILE( gid_File_Lib_Sot, sot )
#if defined(UNX) && !defined(QUARTZ)
@@ -1400,66 +1343,63 @@ End
File gid_File_Lib_Spell
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Name = LIBNAME(spell);
Dir = SCP2_OOO_BIN_DIR;
End
-STD_UNO_LIB_FILE( gid_File_Lib_Spl, spl)
+STD_LIB_FILE( gid_File_Lib_Spl, spl)
#if defined ENABLE_UNIX_QUICKSTARTER
-STD_UNO_LIB_FILE( gid_File_Lib_Spl_Unx, spl_unx)
+STD_LIB_FILE( gid_File_Lib_Spl_Unx, spl_unx)
#endif
-SPECIAL_UNO_LIB_FILE(gid_File_Lib_Srtrs1,srtrs1)
+SPECIAL_LIB_FILE(gid_File_Lib_Srtrs1,srtrs1)
STD_LIB_FILE( gid_File_Lib_Sts , sts)
-STD_UNO_LIB_FILE( gid_File_Lib_Svl, svl )
-STD_UNO_LIB_FILE( gid_File_Lib_Svtools, svt )
+STD_LIB_FILE( gid_File_Lib_Svl, svl )
+STD_LIB_FILE( gid_File_Lib_Svtools, svt )
-STD_UNO_LIB_FILE( gid_File_Lib_Svx_Core, svxcore)
-STD_UNO_LIB_FILE( gid_File_Lib_Svx, svx)
-STD_UNO_LIB_FILE( gid_File_Lib_TextConversionDlgs, textconversiondlgs)
+STD_LIB_FILE( gid_File_Lib_Svx_Core, svxcore)
+STD_LIB_FILE( gid_File_Lib_Svx, svx)
+STD_LIB_FILE( gid_File_Lib_TextConversionDlgs, textconversiondlgs)
STD_LIB_FILE( gid_File_Lib_Editeng, editeng)
STD_LIB_FILE( gid_File_Lib_Msfilter, msfilter)
-STD_UNO_LIB_FILE( gid_File_Lib_Sw , sw)
+STD_LIB_FILE( gid_File_Lib_Sw , sw)
STD_LIB_FILE( gid_File_Lib_Swui, swui)
-STD_UNO_LIB_FILE( gid_File_Lib_Msword, msword )
+STD_LIB_FILE( gid_File_Lib_Msword, msword )
#if ! defined UNX
File gid_File_Lib_Sysdtrans
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = "sysdtrans.dll";
End
#endif
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Syssh, syssh.uno )
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Localebe, localebe1.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Syssh, syssh.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Localebe, localebe1.uno )
#ifdef WNT
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Wininetbe, wininetbe1.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Wininetbe, wininetbe1.uno )
#endif
#ifdef MACOSX
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Macbe, macbe1.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Macbe, macbe1.uno )
#endif
-STD_UNO_LIB_FILE( gid_File_Lib_Tk, tk )
+STD_LIB_FILE( gid_File_Lib_Tk, tk )
STD_LIB_FILE( gid_File_Lib_Acc, acc )
STD_LIB_FILE( gid_File_Lib_Tools, tl )
File gid_File_Lib_Tvhlp1
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(libtvhlp1,UNXSUFFIX));
@@ -1470,8 +1410,7 @@ End
File gid_File_Lib_Ucb1
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(libucb1,UNXSUFFIX));
@@ -1499,90 +1438,83 @@ File gid_File_Lib_Ucpchelp1
Name = "ucpchelp1.dll";
#endif
Dir = SCP2_OOO_BIN_DIR;
- Styles = (PACKED, UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
End
#ifndef DISABLE_NEON
-SPECIAL_UNO_LIB_FILE(gid_File_Lib_Ucpdav1,ucpdav1)
+SPECIAL_LIB_FILE(gid_File_Lib_Ucpdav1,ucpdav1)
#ifndef SYSTEM_NEON
SPECIAL_LIB_FILE(gid_File_Lib_Neon,neon)
#endif
#endif
-SPECIAL_UNO_LIB_FILE(gid_File_Lib_Ucpfile1,ucpfile1)
+SPECIAL_LIB_FILE(gid_File_Lib_Ucpfile1,ucpfile1)
-SPECIAL_UNO_LIB_FILE(gid_File_Lib_Ucpftp1,ucpftp1)
+SPECIAL_LIB_FILE(gid_File_Lib_Ucpftp1,ucpftp1)
-SPECIAL_UNO_LIB_FILE(gid_File_Lib_Ucphier1,ucphier1)
+SPECIAL_LIB_FILE(gid_File_Lib_Ucphier1,ucphier1)
-SPECIAL_UNO_LIB_FILE(gid_File_Lib_Ucppkg1,ucppkg1)
+SPECIAL_LIB_FILE(gid_File_Lib_Ucppkg1,ucppkg1)
-SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Ucptdoc1, ucptdoc1.uno)
+SPECIAL_COMPONENT_LIB_FILE(gid_File_Ucptdoc1, ucptdoc1.uno)
-SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Ucpext, ucpext.uno)
+SPECIAL_COMPONENT_LIB_FILE(gid_File_Ucpext, ucpext.uno)
-SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Ucpexpand1, ucpexpand1.uno)
+SPECIAL_COMPONENT_LIB_FILE(gid_File_Ucpexpand1, ucpexpand1.uno)
#ifdef WNT
-SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Ucpodma1, ucpodma1)
+SPECIAL_COMPONENT_LIB_FILE(gid_File_Ucpodma1, ucpodma1)
#endif
File gid_File_Lib_Lnth
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Name = LIBNAME(lnth);
Dir = SCP2_OOO_BIN_DIR;
End
File gid_File_Lib_Hyph
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Name = LIBNAME(hyphen);
Dir = SCP2_OOO_BIN_DIR;
End
-STD_UNO_LIB_FILE( gid_File_Lib_Utl , utl)
+STD_LIB_FILE( gid_File_Lib_Utl , utl)
-STD_UNO_LIB_FILE( gid_File_Lib_Uui, uui )
+STD_LIB_FILE( gid_File_Lib_Uui, uui )
STD_LIB_FILE( gid_File_Lib_BaseGfx, basegfx )
File gid_File_Lib_Vcl
Name = LIBNAME(vcl);
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
- RegistryID = gid_Starregistry_Services_Rdb;
End
-// STD_UNO_LIB_FILE( gid_File_Lib_Wrp, wrp)
-
-STD_UNO_LIB_FILE( gid_File_Lib_Xcr, xcr)
-STD_UNO_LIB_FILE( gid_File_Lib_Xmx , xmx)
-STD_UNO_LIB_FILE( gid_File_Lib_Xof , xof)
+STD_LIB_FILE( gid_File_Lib_Xcr, xcr)
+STD_LIB_FILE( gid_File_Lib_Xmx , xmx)
+STD_LIB_FILE( gid_File_Lib_Xof , xof)
File gid_File_Lib_Xo
Name = LIBNAME(xo);
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
- RegistryID = gid_Starregistry_Services_Rdb;
End
-SPECIAL_UNO_LIB_FILE(gid_File_Lib_Xstor,xstor)
+SPECIAL_LIB_FILE(gid_File_Lib_Xstor,xstor)
-STD_UNO_LIB_FILE( gid_File_Lib_Xsltdlg, xsltdlg )
-STD_UNO_LIB_FILE( gid_File_Lib_Xsltfilter, xsltfilter )
-STD_UNO_LIB_FILE( gid_File_Lib_Xmlfa, xmlfa )
-STD_UNO_LIB_FILE( gid_File_Lib_Xmlfd, xmlfd )
-STD_UNO_LIB_FILE( gid_File_Lib_Odfflatxml, odfflatxml )
+STD_LIB_FILE( gid_File_Lib_Xsltdlg, xsltdlg )
+STD_LIB_FILE( gid_File_Lib_Xsltfilter, xsltfilter )
+STD_LIB_FILE( gid_File_Lib_Xmlfa, xmlfa )
+STD_LIB_FILE( gid_File_Lib_Xmlfd, xmlfd )
+STD_LIB_FILE( gid_File_Lib_Odfflatxml, odfflatxml )
#ifdef SOLAR_JAVA
-UNO_JAR_FILE( gid_File_Jar_Xsltfilter, XSLTFilter )
-UNO_JAR_FILE( gid_File_Jar_Xsltvalidate, XSLTValidate )
+STD_JAR_FILE( gid_File_Jar_Xsltfilter, XSLTFilter )
+STD_JAR_FILE( gid_File_Jar_Xsltvalidate, XSLTValidate )
#endif
#ifndef SYSTEM_LIBXSLT
@@ -1607,21 +1539,21 @@ End
#endif
-STD_UNO_LIB_FILE( gid_File_Lib_Unoxml, unoxml )
+STD_LIB_FILE( gid_File_Lib_Unoxml, unoxml )
// AVMedia
-STD_UNO_LIB_FILE( gid_File_Lib_AVMedia, avmedia )
+STD_LIB_FILE( gid_File_Lib_AVMedia, avmedia )
#ifdef GSTREAMER
-SPECIAL_UNO_LIB_FILE_PATCH( gid_File_Lib_AVMediaGStreamer, avmediagst )
+SPECIAL_LIB_FILE_PATCH( gid_File_Lib_AVMediaGStreamer, avmediagst )
#else
#if defined UNX
#ifdef SOLAR_JAVA
-UNO_JAR_FILE( gid_File_Jar_AVmedia, avmedia )
+STD_JAR_FILE( gid_File_Jar_AVmedia, avmedia )
#endif
#elif defined WNT
#ifdef ENABLE_DIRECTX
-SPECIAL_UNO_LIB_FILE( gid_File_Lib_AVMediaWin, avmediawin )
+SPECIAL_LIB_FILE( gid_File_Lib_AVMediaWin, avmediawin )
#endif
#endif
#endif
@@ -1635,8 +1567,7 @@ File gid_File_Lib_XSec_Framework
Name = "xsec_fw.dll";
#endif
Dir = SCP2_OOO_BIN_DIR;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
End
File gid_File_Lib_XSec_XmlSec
@@ -1647,8 +1578,7 @@ File gid_File_Lib_XSec_XmlSec
Name = "xsec_xmlsec.dll";
#endif
Dir = SCP2_OOO_BIN_DIR;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
End
File gid_File_Lib_XSec_XMLSecurity
@@ -1659,8 +1589,7 @@ File gid_File_Lib_XSec_XMLSecurity
Name = "xmlsecurity.dll";
#endif
Dir = SCP2_OOO_BIN_DIR;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
End
#ifdef WNT
@@ -1692,8 +1621,7 @@ End
File gid_File_Lib_Migrationoo2
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(migrationoo2.uno,UNXSUFFIX));
@@ -1704,8 +1632,7 @@ End
File gid_File_Lib_Migrationoo3
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(migrationoo3.uno,UNXSUFFIX));
@@ -1727,11 +1654,11 @@ File gid_File_Lib_Libtextcat
End
#endif
-STD_UNO_LIB_FILE( gid_File_Lib_Guesslang, guesslang )
+STD_LIB_FILE( gid_File_Lib_Guesslang, guesslang )
-STD_UNO_LIB_FILE( gid_File_Lib_Updchkui , updchk )
+STD_LIB_FILE( gid_File_Lib_Updchkui , updchk )
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Updatefeed , updatefeed.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Updatefeed , updatefeed.uno )
#ifdef WNT
File gid_File_Lib_Onlinecheck
@@ -1779,7 +1706,7 @@ File gid_File_Lib_Unopkgapp
Styles = (PACKED);
End
-STD_UNO_LIB_FILE( gid_File_Lib_Oooimprovecore , oooimprovecore)
+STD_LIB_FILE( gid_File_Lib_Oooimprovecore , oooimprovecore)
#if defined WNT && !defined _gcc3 && !defined SYSTEM_MOZILLA && !defined WITHOUT_MOZILLA && \
!(defined M1400 && defined PROF_EDITION && !defined _DEBUG_RUNTIME)
@@ -1864,9 +1791,9 @@ File gid_File_Lib_Rdf
End
#endif // SYSTEM_REDLAND
-STD_UNO_LIB_FILE(gid_File_Lib_Unordf, unordf)
+STD_LIB_FILE(gid_File_Lib_Unordf, unordf)
-STD_UNO_LIB_FILE( gid_File_Lib_For, for)
+STD_LIB_FILE( gid_File_Lib_For, for)
STD_LIB_FILE( gid_File_Lib_Forui, forui)
diff --git a/scp2/source/ooo/file_ooo.scp b/scp2/source/ooo/file_ooo.scp
index 9719cb2a8603..0c3392e4dc9e 100644
--- a/scp2/source/ooo/file_ooo.scp
+++ b/scp2/source/ooo/file_ooo.scp
@@ -135,35 +135,6 @@ End
#endif
#endif
-File gid_File_Bin_Gengal
- BIN_FILE_BODY;
- Dir = gid_Dir_Program;
- Styles = (PACKED);
- #ifdef UNX
- Name = "gengal.bin";
- #else
- Name = "gengal.exe";
- #endif
-End
-
-#ifdef UNX
-
-File gid_File_Script_Gengal
- BIN_FILE_BODY;
- Dir = gid_Dir_Program;
- Styles = (PACKED);
- Name = "gengal";
-End
-
-#endif
-
-File gid_File_Profile_Gengal
- BIN_FILE_BODY;
- Dir = gid_Dir_Program;
- Styles = (PACKED);
- Name = PROFILENAME(gengal);
-End
-
#if !defined(WITHOUT_MOZILLA) && defined(UNX) && !defined(QUARTZ)
File gid_File_Bin_Pluginapp
@@ -391,12 +362,6 @@ STD_FILTER_FILE( gid_File_Filter_Iti, iti)
STD_RES_FILE( gid_File_Res_Eps, eps )
-STD_RES_FILE( gid_File_Res_Egi, egi )
-
-STD_RES_FILE( gid_File_Res_Ept, ept )
-
-STD_RES_FILE( gid_File_Res_Eme, eme )
-
File gid_File_Help_Common_Zip
Dir = gid_Dir_Help_Isolanguage;
ARCHIVE_TXT_FILE_BODY_HELPPACK;
@@ -423,14 +388,13 @@ File gid_File_Help_Schart_Zip
EXTRA_ALL_GOOD_HELP_LOCALIZATIONS_LANG(schart);
End
-#if defined SOLAR_JAVA && defined INCLUDE_JAVA_ACCESSBRIDGE && defined WNT
+#if defined WNT
File gid_File_Jar_Accessbridge
TXT_FILE_BODY;
Name = "java_uno_accessbridge.jar";
- RegistryID = gid_Starregistry_Services_Rdb;
Dir = gid_Dir_Classes;
- Styles = (PACKED,DONT_OVERWRITE,UNO_COMPONENT);
+ Styles = (PACKED,DONT_OVERWRITE);
End
#endif
@@ -449,7 +413,7 @@ STD_JAR_FILE( gid_File_Jar_Lucene_Analyzers, lucene-analyzers-2.3 )
#endif
#ifdef SOLAR_JAVA
-UNO_JAR_FILE( gid_File_Jar_Lucenehelpwrapper, LuceneHelpWrapper )
+STD_JAR_FILE( gid_File_Jar_Lucenehelpwrapper, LuceneHelpWrapper )
#endif
#ifdef SOLAR_JAVA
@@ -469,14 +433,14 @@ End
#ifdef SOLAR_JAVA
-UNO_JAR_FILE( gid_File_Jar_Report, report )
-UNO_JAR_FILE( gid_File_Jar_Table, table )
-UNO_JAR_FILE( gid_File_Jar_Letter, letter )
-UNO_JAR_FILE( gid_File_Jar_Form, form )
-UNO_JAR_FILE( gid_File_Jar_Fax, fax )
-UNO_JAR_FILE( gid_File_Jar_Agenda, agenda )
-UNO_JAR_FILE( gid_File_Jar_Query, query )
-UNO_JAR_FILE( gid_File_Jar_Web, web )
+STD_JAR_FILE( gid_File_Jar_Report, report )
+STD_JAR_FILE( gid_File_Jar_Table, table )
+STD_JAR_FILE( gid_File_Jar_Letter, letter )
+STD_JAR_FILE( gid_File_Jar_Form, form )
+STD_JAR_FILE( gid_File_Jar_Fax, fax )
+STD_JAR_FILE( gid_File_Jar_Agenda, agenda )
+STD_JAR_FILE( gid_File_Jar_Query, query )
+STD_JAR_FILE( gid_File_Jar_Web, web )
#endif
#ifdef SOLAR_JAVA
@@ -496,8 +460,8 @@ End
#endif
#ifdef SOLAR_JAVA
-UNO_JAR_FILE( gid_File_Jar_Scriptframework, ScriptFramework )
-UNO_JAR_FILE( gid_File_Jar_Scriptproviderforjava, ScriptProviderForJava )
+STD_JAR_FILE( gid_File_Jar_Scriptframework, ScriptFramework )
+STD_JAR_FILE( gid_File_Jar_Scriptproviderforjava, ScriptProviderForJava )
#endif
#ifdef SOLAR_JAVA
@@ -927,9 +891,16 @@ File gid_File_Lm_Scots_Gaelic
Styles = (PACKED);
End
-File gid_File_Lm_Serbian_Ascii
+File gid_File_Lm_Serbian
TXT_FILE_BODY;
- Name = "serbian_ascii.lm";
+ Name = "serbian.lm";
+ Dir = gid_Dir_Share_Fingerprint;
+ Styles = (PACKED);
+End
+
+File gid_File_Lm_Serbian_Latin
+ TXT_FILE_BODY;
+ Name = "serbian-latin.lm";
Dir = gid_Dir_Share_Fingerprint;
Styles = (PACKED);
End
@@ -1183,23 +1154,12 @@ File gid_File_Rdb_Offapi
Name = "offapi.rdb";
End
-#if defined ENABLE_VBA
-#ifndef VBA_EXTENSION
File gid_File_Rdb_TypesVba
TXT_FILE_BODY;
Dir = gid_Dir_Program;
Styles = (PACKED, OVERWRITE);
Name = "oovbaapi.rdb";
End
-#else
-File gid_File_ExtnVba
- TXT_FILE_BODY;
- Dir = gid_Dir_Program;
- Styles = (PACKED, OVERWRITE);
- Name = "vbaapi.oxt";
-End
-#endif
-#endif
File gid_File_Registry_Lang
Dir = gid_Dir_Share_Registry_Res;
@@ -1711,13 +1671,7 @@ File gid_Starregistry_Services_Rdb
TXT_FILE_BODY;
Name = "services.rdb";
Dir = gid_Dir_Program;
- Styles = (PACKED, STARREGISTRY);
-#if defined WNT
- NativeServicesURLPrefix = "vnd.sun.star.expand:$BRAND_BASE_DIR/program/";
-#else
- NativeServicesURLPrefix = "vnd.sun.star.expand:$OOO_BASE_DIR/program/";
-#endif
- JavaServicesURLPrefix = "vnd.sun.star.expand:$OOO_BASE_DIR/program/classes/";
+ Styles = (PACKED);
End
#ifdef LINUX
@@ -1830,9 +1784,8 @@ End
File gid_File_Jar_Productregistration
TXT_FILE_BODY;
Name = "productregistration.jar";
- RegistryID = gid_Starregistry_Services_Rdb;
Dir = gid_Dir_Classes;
- Styles = (PACKED,UNO_COMPONENT);
+ Styles = (PACKED);
End
#endif
diff --git a/scp2/source/ooo/file_resource_ooo.scp b/scp2/source/ooo/file_resource_ooo.scp
index 5e4a2b0ff089..cbd8ff609721 100644
--- a/scp2/source/ooo/file_resource_ooo.scp
+++ b/scp2/source/ooo/file_resource_ooo.scp
@@ -45,12 +45,6 @@ STD_RES_FILE( gid_File_Res_Dbw, dbw )
STD_RES_FILE( gid_File_Res_Dkt, dkt)
-STD_RES_FILE( gid_File_Res_Epb, epb )
-
-STD_RES_FILE( gid_File_Res_Epg, epg )
-
-STD_RES_FILE( gid_File_Res_Epp, epp )
-
STD_RES_FILE( gid_File_Res_Eur, eur )
STD_RES_FILE( gid_File_Res_Frm, frm)
@@ -95,10 +89,9 @@ STD_RES_FILE( gid_File_Res_Spa, spa )
STD_RES_FILE( gid_File_Res_Stt, stt )
STD_RES_FILE( gid_File_Res_Sb, sb )
-STD_RES_FILE( gid_File_Res_Svs, svs )
+STD_RES_FILE( gid_File_Res_Svl, svl )
STD_RES_FILE( gid_File_Res_Svt, svt )
-STD_RES_FILE_ONLY( gid_File_Res_Svp, svp )
STD_RES_FILE( gid_File_Res_Svx, svx )
STD_RES_FILE( gid_File_Res_Editeng, editeng )
diff --git a/scp2/source/ooo/makefile.mk b/scp2/source/ooo/makefile.mk
index b2dec77bac55..d4ec0c0f95f2 100644
--- a/scp2/source/ooo/makefile.mk
+++ b/scp2/source/ooo/makefile.mk
@@ -52,9 +52,6 @@ SCPDEFS+=-DBUILD_X64
.IF "$(ENABLE_OPENGL)"=="TRUE"
SCPDEFS+=-DENABLE_OPENGL
.ENDIF
-
-SCPDEFS+=-DINCLUDE_JAVA_ACCESSBRIDGE
-
.IF "$(PROF_EDITION)"!=""
SCPDEFS+=-DPROF_EDITION
.ENDIF
@@ -221,13 +218,6 @@ SCPDEFS+=-DSYSTEM_NEON
SCPDEFS+=-DOPENSSL
.ENDIF
-.IF "$(ENABLE_VBA)" == "YES"
- .IF "$(VBA_EXTENSION)" == "YES"
- SCPDEFS+=-DVBA_EXTENSION
- .ENDIF
-SCPDEFS+=-DENABLE_VBA
-.ENDIF
-
.IF "$(DISABLE_ATL)"!=""
SCPDEFS+=-DDISABLE_ATL
.ENDIF
diff --git a/scp2/source/ooo/module_hidden_ooo.scp b/scp2/source/ooo/module_hidden_ooo.scp
index b73a5b5be620..faa50a3d71c5 100644
--- a/scp2/source/ooo/module_hidden_ooo.scp
+++ b/scp2/source/ooo/module_hidden_ooo.scp
@@ -211,7 +211,6 @@ Module gid_Module_Root_Files_4
gid_File_Lib_Sdbt,
gid_File_Lib_Dbmm,
gid_File_Lib_Dba,
- gid_File_Lib_Dbacfg,
gid_File_Lib_Dbase2,
gid_File_Lib_Dbaxml,
gid_File_Lib_Dbt,
@@ -649,7 +648,8 @@ Module gid_Module_Root_Files_6
gid_File_Lm_Sanskrit,
gid_File_Lm_Scots,
gid_File_Lm_Scots_Gaelic,
- gid_File_Lm_Serbian_Ascii,
+ gid_File_Lm_Serbian,
+ gid_File_Lm_Serbian_Latin,
gid_File_Lm_Slovak_Ascii,
gid_File_Lm_Slovenian,
gid_File_Lm_Spanish,
diff --git a/scp2/source/ooo/module_lang_template.scp b/scp2/source/ooo/module_lang_template.scp
index 8cfc353729d5..bfe1162976fd 100755
--- a/scp2/source/ooo/module_lang_template.scp
+++ b/scp2/source/ooo/module_lang_template.scp
@@ -64,9 +64,6 @@ Module gid_Module_Langpack_Resource_Template
gid_File_Res_Dbw,
gid_File_Res_Dkt,
gid_File_Res_Editeng,
- gid_File_Res_Epb,
- gid_File_Res_Epg,
- gid_File_Res_Epp,
gid_File_Res_Eur,
gid_File_Res_For,
gid_File_Res_Forui,
@@ -87,9 +84,8 @@ Module gid_Module_Langpack_Resource_Template
gid_File_Res_Sd,
gid_File_Res_Sfx,
gid_File_Res_Spa,
- gid_File_Res_Svs,
+ gid_File_Res_Svl,
gid_File_Res_Svt,
- gid_File_Res_Svp,
gid_File_Res_Svx,
gid_File_Res_Cui,
gid_File_Res_TextConversionDlgs,
@@ -108,9 +104,6 @@ Module gid_Module_Langpack_Resource_Template
gid_File_Res_Stt,
gid_File_Res_Tfu,
gid_File_Res_Eps,
- gid_File_Res_Egi,
- gid_File_Res_Ept,
- gid_File_Res_Eme,
gid_File_Res_UpdChk,
gid_File_Res_Upd);
End
diff --git a/scp2/source/ooo/module_langpack.ulf b/scp2/source/ooo/module_langpack.ulf
index f2771c2332be..4878a790b040 100644
--- a/scp2/source/ooo/module_langpack.ulf
+++ b/scp2/source/ooo/module_langpack.ulf
@@ -697,11 +697,11 @@ en-US = "Mongolian"
[STR_DESC_MODULE_LANGPACK_MN]
en-US = "Installs Mongolian support in %PRODUCTNAME %PRODUCTVERSION"
-[STR_NAME_MODULE_LANGPACK_MY]
-en-US = "Burmese"
+[STR_NAME_MODULE_LANGPACK_OC]
+en-US = "Occitan"
-[STR_DESC_MODULE_LANGPACK_MY]
-en-US = "Installs Burmese (Myanmar) support in %PRODUCTNAME %PRODUCTVERSION"
+[STR_DESC_MODULE_LANGPACK_OC]
+en-US = "Installs Occitan support in %PRODUCTNAME %PRODUCTVERSION"
[STR_NAME_MODULE_LANGPACK_BO]
en-US = "Tibetan"
diff --git a/scp2/source/ooo/ooo_brand.scp b/scp2/source/ooo/ooo_brand.scp
index 74a9dc33a8f7..dcdf99b1718d 100644
--- a/scp2/source/ooo/ooo_brand.scp
+++ b/scp2/source/ooo/ooo_brand.scp
@@ -39,6 +39,13 @@ Directory gid_Dir_Brand_Root
End
#endif
+File gid_Brand_File_ServicesRdb
+ TXT_FILE_BODY;
+ Dir = gid_Brand_Dir_Program;
+ Name = "/ooo/services.rdb";
+ Styles = (PACKED);
+End
+
ProfileItem gid_Brand_Profileitem_Bootstrap_Errorreport_Server
ProfileID = gid_Brand_Profile_Bootstrap_Ini;
ModuleID = gid_Module_Root_Brand;
@@ -52,4 +59,3 @@ ProfileItem gid_Brand_Profileitem_Bootstrap_Errorreport_Server
#endif
End
-BRAND_RES_FILE( gid_Brand_File_Res_Ooo, ooo )
diff --git a/scp2/source/ooo/profileitem_ooo.scp b/scp2/source/ooo/profileitem_ooo.scp
index 724316ba6f5e..3c6dfefc1286 100644
--- a/scp2/source/ooo/profileitem_ooo.scp
+++ b/scp2/source/ooo/profileitem_ooo.scp
@@ -191,6 +191,16 @@ ProfileItem gid_Profileitem_Uno_Uno_Bundled_Extensions_User
Value = "${$BRAND_BASE_DIR/program/" PROFILENAME(bootstrap) ":UserInstallation}/user/extensions/bundled";
End
+ProfileItem gid_Profileitem_Uno_Uno_Bundled_Extensions_Prereg
+ ProfileID = gid_Profile_Uno_Ini;
+ ModuleID = gid_Module_Root;
+ Section = "Bootstrap";
+ Order = 1;
+ Key = "BUNDLED_EXTENSIONS_PREREG";
+ Value = "$BRAND_BASE_DIR/share/prereg/bundled";
+End
+
+
ProfileItem gid_Profileitem_Uno_Uno_Shared_Packages
ProfileID = gid_Profile_Uno_Ini;
ModuleID = gid_Module_Root;
@@ -287,6 +297,14 @@ ProfileItem gid_Profileitem_Fundamentalbasis_Uno_Bundled_Extensions_User
Value = "${$ORIGIN/" PROFILENAME(uno) ":BUNDLED_EXTENSIONS_USER}";
End
+ProfileItem gid_Profileitem_Fundamentalbasis_Uno_Bundled_Extensions_Prereg
+ ModuleID = gid_Module_Root;
+ ProfileID = gid_Profile_Fundamentalbasis_Ini;
+ Section = "Bootstrap";
+ Key = "BUNDLED_EXTENSIONS_PREREG";
+ Value = "${$ORIGIN/" PROFILENAME(uno) ":BUNDLED_EXTENSIONS_PREREG}";
+End
+
ProfileItem gid_Profileitem_Fundamentalbasis_Uno_Shared_Packages_Cache
ModuleID = gid_Module_Root;
ProfileID = gid_Profile_Fundamentalbasis_Ini;
@@ -324,11 +342,7 @@ ProfileItem gid_Profileitem_Fundamentalbasis_Ure_More_Types
ProfileID = gid_Profile_Fundamentalbasis_Ini;
Section = "Bootstrap";
Key = "URE_MORE_TYPES";
-#if defined ENABLE_VBA && !defined VBA_EXTENSION
Value = "$ORIGIN/offapi.rdb $ORIGIN/oovbaapi.rdb ${${$ORIGIN/" PROFILENAME(uno) ":PKG_UserUnoFile}:UNO_TYPES} ${${$ORIGIN/" PROFILENAME(uno) ":PKG_SharedUnoFile}:UNO_TYPES} ${${$ORIGIN/" PROFILENAME(uno) ":PKG_BundledUnoFile}:UNO_TYPES}";
-#else
- Value = "$ORIGIN/offapi.rdb ${${$ORIGIN/" PROFILENAME(uno) ":PKG_UserUnoFile}:UNO_TYPES} ${${$ORIGIN/" PROFILENAME(uno) ":PKG_SharedUnoFile}:UNO_TYPES} ${${$ORIGIN/" PROFILENAME(uno) ":PKG_BundledUnoFile}:UNO_TYPES}";
-#endif
End
ProfileItem gid_Profileitem_Fundamentalbasis_Ure_More_Services
diff --git a/scp2/source/ooo/ure.scp b/scp2/source/ooo/ure.scp
index 0053abaaec9e..4e3e096eb592 100644
--- a/scp2/source/ooo/ure.scp
+++ b/scp2/source/ooo/ure.scp
@@ -356,23 +356,6 @@ Unixlink gid_Unixlink_File_Dl_Reg
End
#endif
-File gid_File_Dl_Rmcxt
- TXT_FILE_BODY;
- Dir = SCP2_URE_DL_DIR;
- Name = SCP2_URE_DL_VER("rmcxt", "3");
- Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
- // CompID = "E0C091E3-7C18-4C32-B9CF-4D95AC243801";
-End
-
-#ifdef AIX
-Unixlink gid_Unixlink_File_Dl_Rmcxt
- BIN_FILE_BODY;
- Dir = SCP2_URE_DL_DIR;
- Name = SCP2_URE_DL_NORMAL("rmcxt");
- Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
- Target = SCP2_URE_DL_VER("rmcxt", "3");
-End
-#endif
File gid_File_Dl_Store
@@ -383,6 +366,16 @@ File gid_File_Dl_Store
// CompID = "A5477BD7-89A3-44AF-8B42-9E28D55C8066";
End
+
+File gid_File_Dl_Xmlreader
+ TXT_FILE_BODY;
+ Dir = SCP2_URE_DL_DIR;
+ Name = SCP2_URE_DL_NORMAL("xmlreader");
+ Styles = (PACKED);
+End
+
+
+
#ifdef AIX
Unixlink gid_Unixlink_File_Dl_Store
BIN_FILE_BODY;
@@ -484,14 +477,6 @@ Shortcut gid_Shortcut_Dl_JavaUno
End
#endif
-File gid_File_Dl_UrpUno
- TXT_FILE_BODY;
- Dir = SCP2_URE_DL_DIR;
- Name = SCP2_URE_DL_NORMAL("urp_uno");
- Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
- // CompID = "D9F647ED-8E6F-4F80-8D2B-A45372B6AB60";
-End
-
File gid_File_Dl_UnsafeUnoUno
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
@@ -768,35 +753,30 @@ File gid_File_Dl_Acceptor
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("acceptor.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "31183C51-C9A4-4D7A-A2F4-103252E1FEB0";
End
-File gid_File_Dl_Bootstrap
+File gid_File_Dl_Binaryurp
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
- Name = SCP2_URE_DL_BARE("bootstrap.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
- // CompID = "2620B307-25DB-498F-B2B8-46D928165331";
+ Name = SCP2_URE_DL_BARE("binaryurp.uno");
+ Styles = (PACKED);
End
-File gid_File_Dl_Bridgefac
+File gid_File_Dl_Bootstrap
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
- Name = SCP2_URE_DL_BARE("bridgefac.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
- // CompID = "E025163F-FE1E-4E8C-B0E5-49C08924A646";
+ Name = SCP2_URE_DL_BARE("bootstrap.uno");
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
+ // CompID = "2620B307-25DB-498F-B2B8-46D928165331";
End
File gid_File_Dl_Connector
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("connector.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "EBCE77E7-E244-40F6-96E2-5319D6571C5D";
End
@@ -804,8 +784,7 @@ File gid_File_Dl_Introspection
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("introspection.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "E99960CF-FE59-4332-A2AC-47418C3A17C1";
End
@@ -813,8 +792,7 @@ File gid_File_Dl_Invocadapt
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("invocadapt.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "77DDC112-1994-49D5-A086-FB16D4328AB9";
End
@@ -822,8 +800,7 @@ File gid_File_Dl_Invocation
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("invocation.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "A79ACB80-DA65-47CA-81BA-7CD9E191C84C";
End
@@ -833,8 +810,7 @@ File gid_File_Dl_Javaloader
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("javaloader.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "19A20968-E654-4E2C-9F58-7B66F07CA346";
End
#endif
@@ -844,8 +820,7 @@ File gid_File_Dl_Javavm
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("javavm.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "F1266B2B-80AD-4248-A921-9161759FA4DA";
End
#endif
@@ -854,8 +829,7 @@ File gid_File_Dl_Namingservice
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("namingservice.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "DD22BE3A-AD21-447D-B3A3-89B0FCDB0B31";
End
@@ -863,8 +837,7 @@ File gid_File_Dl_Stocservices
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("stocservices.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "EBF6BBDE-EC50-4FB8-A0D4-BEC58F1C8C07";
End
@@ -872,8 +845,7 @@ File gid_File_Dl_Proxyfac
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("proxyfac.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "A2CDDEC3-B9C7-48C9-AB35-65008777BC2F";
End
@@ -881,26 +853,15 @@ File gid_File_Dl_Reflection
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("reflection.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "601C7946-CFEB-4F56-9429-6D5963188DF3";
End
-File gid_File_Dl_Remotebridge
- TXT_FILE_BODY;
- Dir = SCP2_URE_DL_DIR;
- Name = SCP2_URE_DL_BARE("remotebridge.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
- // CompID = "B440B28E-B7AD-40C7-89E1-1508CA798347";
-End
-
File gid_File_Dl_Streams
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("streams.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "6028CF43-A9B7-40A8-8216-509CAB256A2B";
End
@@ -908,8 +869,7 @@ File gid_File_Dl_Textinstream
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("textinstream.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "DAA39D01-D9C5-40C4-94EC-9E4B2F94EABA";
End
@@ -917,8 +877,7 @@ File gid_File_Dl_Textoutstream
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("textoutstream.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "DD01EB0C-A119-43AE-9100-F7A595D099E4";
End
@@ -926,8 +885,7 @@ File gid_File_Dl_Uuresolver
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("uuresolver.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "377090E1-5008-424F-B0F6-A9EFC9F11206";
End
@@ -1092,8 +1050,7 @@ File gid_File_Java_JuhJar
TXT_FILE_BODY;
Dir = gid_Dir_Ure_Java;
Name = "juh.jar";
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "E77CC8B5-0345-4B7F-ABED-5EB9DC94E492";
End
#endif
@@ -1140,6 +1097,13 @@ File gid_File_Misc_TypesRdb
// CompID = "E5086F6A-855B-4CAE-AD3A-A85A21C5AE44";
End
+File gid_File_Misc_ServicesRdb
+ TXT_FILE_BODY;
+ Dir = gid_Dir_Ure_Misc;
+ Name = "/ure/services.rdb";
+ Styles = (PACKED);
+End
+
// Private Miscellaneous Files:
#if defined SOLAR_JAVA
@@ -1152,18 +1116,6 @@ File gid_File_Misc_JavavendorsXml
End
#endif
-// StarRegistry File
-
-File gid_Starregistry_Services_Rdb_Ure
- TXT_FILE_BODY;
- Name = "services.rdb";
- Dir = gid_Dir_Ure_Misc;
- Styles = (PACKED, STARREGISTRY, VERSION_INDEPENDENT_COMP_ID);
- NativeServicesURLPrefix = "vnd.sun.star.expand:$URE_INTERNAL_LIB_DIR/";
- JavaServicesURLPrefix = "vnd.sun.star.expand:$URE_INTERNAL_JAVA_DIR/";
- // CompID = "F4BD7B0A-5A20-4167-9D10-18597C5F85AF";
-End
-
#if defined MACOSX
Unixlink gid_Unixlink_Ure_Bin_Urelibs
Dir = gid_Dir_Ure_Bin;
@@ -1228,10 +1180,10 @@ Module gid_Module_Root_Ure_Hidden
gid_File_Dl_Profile_Uno,
gid_File_Dl_Reg,
gid_Unixlink_File_Dl_Reg,
- gid_File_Dl_Rmcxt,
gid_Unixlink_File_Dl_Rmcxt,
gid_File_Dl_Store,
gid_Unixlink_File_Dl_Store,
+ gid_File_Dl_Xmlreader,
gid_File_Dl_Jvmaccess,
gid_Unixlink_File_Dl_Jvmaccess,
gid_File_Dl_Jvmfwk,
@@ -1241,7 +1193,6 @@ Module gid_Module_Root_Ure_Hidden
gid_File_Dl_Profile_Jvmfwk3rc,
gid_File_Dl_ComnameUno,
gid_File_Dl_JavaUno,
- gid_File_Dl_UrpUno,
gid_File_Dl_UnsafeUnoUno,
gid_File_Dl_AffineUnoUno,
gid_File_Dl_LogUnoUno,
@@ -1250,8 +1201,8 @@ Module gid_Module_Root_Ure_Hidden
gid_File_Dl_Juh,
gid_File_Dl_Juhx,
gid_File_Dl_Acceptor,
+ gid_File_Dl_Binaryurp,
gid_File_Dl_Bootstrap,
- gid_File_Dl_Bridgefac,
gid_File_Dl_Connector,
gid_File_Dl_Introspection,
gid_File_Dl_Invocadapt,
@@ -1261,7 +1212,6 @@ Module gid_Module_Root_Ure_Hidden
gid_File_Dl_Namingservice,
gid_File_Dl_Proxyfac,
gid_File_Dl_Reflection,
- gid_File_Dl_Remotebridge,
gid_File_Dl_Stocservices,
gid_File_Dl_Streams,
gid_File_Dl_Textinstream,
@@ -1286,8 +1236,8 @@ Module gid_Module_Root_Ure_Hidden
gid_File_Java_RidlJar,
gid_File_Java_JavaUnoJar,
gid_File_Misc_TypesRdb,
- gid_File_Misc_JavavendorsXml,
- gid_Starregistry_Services_Rdb_Ure);
+ gid_File_Misc_ServicesRdb,
+ gid_File_Misc_JavavendorsXml);
Unixlinks = (gid_Unixlink_Ure_Bin_Urelibs,
gid_Unixlink_File_Dl_Sal,
gid_Unixlink_File_Dl_Salhelper,
diff --git a/scp2/source/python/file_python.scp b/scp2/source/python/file_python.scp
index 1228900121b7..e36ca23f7155 100644
--- a/scp2/source/python/file_python.scp
+++ b/scp2/source/python/file_python.scp
@@ -46,9 +46,7 @@ File gid_File_Lib_Pythonloader
#else
Name = "pythonloader.uno.dll";
#endif
- RegistryID = gid_Starregistry_Services_Rdb;
- NativeServicesURLPrefix = "vnd.sun.star.expand:$OOO_BASE_DIR/program/";
- Styles = (PACKED,UNO_COMPONENT);
+ Styles = (PACKED);
End
File gid_File_Py_Unohelper
diff --git a/scp2/source/python/module_python_mailmerge.scp b/scp2/source/python/module_python_mailmerge.scp
index 9ad34a2908f0..ec3a40ce0af5 100644
--- a/scp2/source/python/module_python_mailmerge.scp
+++ b/scp2/source/python/module_python_mailmerge.scp
@@ -32,7 +32,6 @@ File gid_File_Pymailmerge
TXT_FILE_BODY;
Dir = gid_Dir_Program;
Name = "mailmerge.py";
- RegistryID = gid_Starregistry_Services_Rdb;
- Styles = (PACKED,UNO_COMPONENT);
+ Styles = (PACKED);
End
#endif
diff --git a/scp2/source/testtool/file_testtool.scp b/scp2/source/testtool/file_testtool.scp
index 86faf16faefc..3b30c157fa36 100644
--- a/scp2/source/testtool/file_testtool.scp
+++ b/scp2/source/testtool/file_testtool.scp
@@ -46,13 +46,6 @@ File gid_File_Bin_Testtool
Name = "testtool.bin";
End
-File gid_File_Hid_Testtool
- BIN_FILE_BODY;
- Dir = gid_Dir_Program;
- Styles = (PACKED);
- Name = "hid.lst";
-End
-
File gid_File_Config_Testtool
BIN_FILE_BODY;
Dir = gid_Dir_Program;
diff --git a/scp2/source/writer/file_writer.scp b/scp2/source/writer/file_writer.scp
index 8d49c94eaa57..32b151633f67 100644
--- a/scp2/source/writer/file_writer.scp
+++ b/scp2/source/writer/file_writer.scp
@@ -27,19 +27,9 @@
#include "macros.inc"
-STD_UNO_LIB_FILE( gid_File_Lib_Swd , swd)
+STD_LIB_FILE( gid_File_Lib_Swd , swd)
-File gid_File_Lib_Hwpreader
- TXT_FILE_BODY;
- #ifdef UNX
- Name = STRING(CONCAT2(libhwp,UNXSUFFIX));
- #else
- Name = "hwp.dll";
- #endif
- Dir = SCP2_OOO_BIN_DIR;
- Styles = (PACKED, UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
-End
+SPECIAL_LIB_FILE(gid_File_Lib_Hwpreader, hwp)
File gid_File_Exe_Swriter
BIN_FILE_BODY;
diff --git a/scp2/source/writer/registryitem_writer.scp b/scp2/source/writer/registryitem_writer.scp
index 6810cf8ff8e6..6e3d9741430b 100644..100755
--- a/scp2/source/writer/registryitem_writer.scp
+++ b/scp2/source/writer/registryitem_writer.scp
@@ -1314,7 +1314,7 @@ RegistryItem gid_Regitem_OpenOffice_OTT_OpenWith_Writer
ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
Subkey = ".ott\OpenWithProgIDs";
ModuleID = gid_Module_Prg_Wrt_Bin;
- Name = "opendocument.WriterDocument.1";
+ Name = "opendocument.WriterTemplate.1";
Value = " ";
End
@@ -1323,7 +1323,7 @@ RegistryItem gid_Regitem_OpenOffice_OTH_OpenWith_Writer
ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
Subkey = ".oth\OpenWithProgIDs";
ModuleID = gid_Module_Prg_Wrt_Bin;
- Name = "opendocument.WriterDocument.1";
+ Name = "opendocument.WriterWebTemplate.1";
Value = " ";
End
@@ -1332,7 +1332,7 @@ RegistryItem gid_Regitem_OpenOffice_ODM_OpenWith_Writer
ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
Subkey = ".odm\OpenWithProgIDs";
ModuleID = gid_Module_Prg_Wrt_Bin;
- Name = "opendocument.WriterDocument.1";
+ Name = "opendocument.WriterGlobalDocument.1";
Value = " ";
End
@@ -1432,7 +1432,7 @@ RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabi
Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
ModuleID = gid_Module_Prg_Wrt_Bin;
Name = ".ott";
- Value = "opendocument.WriterDocument.1";
+ Value = "opendocument.WriterTemplate.1";
Styles = ();
End
@@ -1441,7 +1441,7 @@ RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabi
Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
ModuleID = gid_Module_Prg_Wrt_Bin;
Name = ".stw";
- Value = "soffice.StarWriterDocument.6";
+ Value = "soffice.StarWriterTemplate.6";
Styles = ();
End
@@ -1513,7 +1513,7 @@ RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabi
Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
ModuleID = gid_Module_Prg_Wrt_Bin;
Name = ".oth";
- Value = "opendocument.WriterDocument.1";
+ Value = "opendocument.WriterWebTemplate.1";
Styles = ();
End
@@ -1522,7 +1522,7 @@ RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabi
Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
ModuleID = gid_Module_Prg_Wrt_Bin;
Name = ".odm";
- Value = "opendocument.WriterDocument.1";
+ Value = "opendocument.WriterGlobalDocument.1";
Styles = ();
End
diff --git a/set_soenv.in b/set_soenv.in
index 098e2ebad99b..b030b38f6014 100755
--- a/set_soenv.in
+++ b/set_soenv.in
@@ -74,15 +74,15 @@ my ( $USR, $ETC, $BIN, $LIB, $LIB64, $INC, $INCLUDE, $DEV, $OPT, $LOCAL, $SOLENV
# Environment variables.
my ( $oldPATH, $SRC_ROOT, $SO_HOME, $JAVA_HOME, $JDK, $JAVAFLAGS, $OOO_SHELL,
- $UPD, $WORK_STAMP, $SOURCE_ROOT_DIR ,
- $SOLARSRC, $DEVROOT, $SOLARVER, $SOLARVERSION, $SOLARENV, $SOLARDEFIMG,
+ $UPD, $WORK_STAMP, $SOURCE_ROOT_DIR , $gb_REPOS, $BUILD_TYPE,
+ $SOLARSRC, $DEVROOT, $SOLARVER, $SOLARVERSION, $WORKDIR, $OUTDIR, $SOLARENV, $SOLARDEFIMG,
$STAR_INIROOT, $STAR_INIROOTOLD, $STAR_STANDLST, $STAR_SSCOMMON, $STAR_SSOLARINI,
$DMAKEROOT, $CLASSPATH, $XCLASSPATH, $COMPATH,
$MSPDB_PATH, $MIDL_PATH, $CSC_PATH,
$PATH, $SOLAREXTRAINC, $SOLAREXTRALIB, $SOLARLIB,
$SOLARINC, $LOCALINI, $FRAMEWORKSHOME, $COMEX, $PERL,
$COMP_ENV, $ILIB, $JAVAHOME, $PSDK_HOME, $DIRECTXSDK_LIB, $USE_NEW_SDK, $FRAME_HOME,
- $USE_DIRECTX5, $ATL_LIB, $ATL_INCLUDE, $MFC_LIB, $MFC_INCLUDE, $NO_HIDS, $TMPDIR,
+ $USE_DIRECTX5, $ATL_LIB, $ATL_INCLUDE, $MFC_LIB, $MFC_INCLUDE, $TMPDIR,
$COMMON_BUILD_TOOLS, $WIN_GREP, $WIN_FIND, $WIN_LS,
$WIN_GNUCOPY, $WIN_TOUCH, $MOZILLA_VERSION, $MOZILLA_TOOLKIT, $PREBUILD_MOZAB, $MOZILLABUILD,
$PROEXT, $TARFILE_LOCATION,
@@ -1040,9 +1040,13 @@ else
#Location of Solar version.
$SOLARVERSION = '$SOLARVER';
+#Location of gnu make directories.
+$WORKDIR = '$SOLARVER/$INPATH/workdir';
+$OUTDIR = '$SOLARVER/$INPATH';
#Some directories that are symlinks under rawbuild, have to use realpath on Cygwin
$SOLARDEFIMG = PathFormat($SRC_ROOT.$DEFIMGS);
+
$SOLARENVINC = '$SOLARENV'.$INC;
# Location of
$LOCALINI = '$SOLARENV'.$CONFIG;
@@ -1513,6 +1517,17 @@ else
{ AddWarning( "set_soenv", "$platform not configured for system dependant include dir" );
}
+$gb_REPOS = $SRC_ROOT;
+
+if ('@WITH_LANG@' ne "")
+{
+ $gb_REPOS .= " ".$SOURCE_ROOT_DIR."/l10n";
+ $BUILD_TYPE = "@BUILD_TYPE@ L10N";
+}
+else
+{
+ $BUILD_TYPE = "@BUILD_TYPE@";
+}
#
# F. Setting the different aliases.
@@ -1598,8 +1613,6 @@ ToFile( "DEFAULT_MOZILLA_TOOLKIT", $MOZILLA_TOOLKIT, "e" );
ToFile( "ENABLE_NSS_MODULE", "@ENABLE_NSS_MODULE@", "e" );
ToFile( "MOZILLABUILD", "@MOZILLABUILD@", "e" );
ToFile( "BUILD_VER_STRING", "@BUILD_VER_STRING@", "e" );
-ToFile( "ENABLE_VBA", "@ENABLE_VBA@", "e" );
-ToFile( "VBA_EXTENSION", "@VBA_EXTENSION@", "e" );
if ($platform =~ m/linux/ && $platform =~ m/powerpc/) {
ToFile( "JITC_PROCESSOR_TYPE","6", "e" );
}
@@ -1698,6 +1711,16 @@ ToFile( "DYNAMIC_CRT", $DYNAMIC_CRT, "e" );
ToFile( "SET_EXCEPTIONS", $SET_EXCEPTIONS, "e" );
ToFile( "use_shl_versions", $use_shl_versions, "e" );
ToFile( "FLIPCMD", $FLIPCMD, "e" );
+if ( $platform =~ m/darwin/ )
+{
+# MAXOSX_DEPLOYMENT_TARGET : The minimum version required to run the build,
+# build can assume functions/libraries of that version to be available
+# unless you want to do runtime checks for 10.5 api, you also want to use the 10.4 sdk
+# (safer/easier than dealing with the MAC_OS_X_VERSION_MAX_ALLOWED macro)
+# http://developer.apple.com/technotes/tn2002/tn2064.html
+ ToFile( "MACOSX_DEPLOYMENT_TARGET", "10.4", "e" );
+}
+
#
# Writing the variables to file.
# (c = comment, e = environment variable, a = alias, n = newline )
@@ -1742,6 +1765,8 @@ ToFile( "UPD", $UPD, "e" );
ToFile( "WORK_STAMP", $WORK_STAMP, "e" );
ToFile( "SOLARVER", $SOLARVER, "e" );
ToFile( "SOLARVERSION", $SOLARVERSION, "e" );
+ToFile( "WORKDIR", $WORKDIR, "e" );
+ToFile( "OUTDIR", $OUTDIR, "e" );
ToFile( "SOLARENV", $SOLARENV, "e" );
ToFile( "SOLARDEFIMG", $SOLARDEFIMG, "e" );
ToFile( "SOLARENVINC", $SOLARENVINC, "e" );
@@ -1807,7 +1832,6 @@ ToFile( "ENABLE_FONTCONFIG", "@ENABLE_FONTCONFIG@", "e" );
ToFile( "ENABLE_DIRECTX", "@ENABLE_DIRECTX@", "e" );
ToFile( "ENABLE_LAYOUT", "@ENABLE_LAYOUT@", "e" );
ToFile( "ENABLE_PCH", "@ENABLE_PCH@", "e" );
-ToFile( "NO_HIDS", "@NO_HIDS@", "e" );
ToFile( "ENABLE_GRAPHITE", "@ENABLE_GRAPHITE@", "e");
ToFile( "SYSTEM_GRAPHITE", "@SYSTEM_GRAPHITE@", "e");
ToFile( "GRAPHITE_LIBS", "@GRAPHITE_LIBS@", "e");
@@ -1837,7 +1861,7 @@ ToFile( "WITH_FONTS", "@WITH_FONTS@", "e" );
ToFile( "WITHOUT_AFMS", "@WITHOUT_AFMS@", "e" );
ToFile( "WITHOUT_PPDS", "@WITHOUT_PPDS@", "e" );
ToFile( "WITH_BINFILTER", "@WITH_BINFILTER@", "e" );
-ToFile( "BUILD_TYPE", "@BUILD_TYPE@", "e" );
+ToFile( "BUILD_TYPE", "$BUILD_TYPE", "e" );
ToFile( "VERBOSE", "@VERBOSE@", "e" );
ToFile( "ENABLE_ZENITY", "@ENABLE_ZENITY@", "e" );
ToFile( "ENABLE_EVOAB2", "@ENABLE_EVOAB2@", "e" );
@@ -1876,6 +1900,8 @@ ToFile( "FREETYPE_LIBS", "@FREETYPE_LIBS@", "e" );
ToFile( "SYSTEM_POPPLER", "@SYSTEM_POPPLER@", "e" );
ToFile( "POPPLER_CFLAGS", "@POPPLER_CFLAGS@", "e" );
ToFile( "POPPLER_LIBS", "@POPPLER_LIBS@", "e" );
+ToFile( "GSTREAMER_CFLAGS", "@GSTREAMER_CFLAGS@", "e" );
+ToFile( "GSTREAMER_LIBS", "@GSTREAMER_LIBS@", "e" );
ToFile( "SYSTEM_CAIRO", "@SYSTEM_CAIRO@", "e" );
ToFile( "BUILD_PIXMAN", "@BUILD_PIXMAN@", "e" );
ToFile( "CAIRO_CFLAGS", "@CAIRO_CFLAGS@", "e" );
@@ -1982,6 +2008,8 @@ if ($platform !~ m/cygwin|os2/) {
}
ToFile( "SOLARSRC", $SOLARSRC, "e" );
ToFile( "SOURCE_ROOT_DIR", $SOURCE_ROOT_DIR, "e" );
+ToFile( "gb_REPOS", $gb_REPOS, "e" );
+
if ( $platform =~ m/cygwin/ )
{
ToFile( "ILIB", $ILIB, "e" );
@@ -1994,6 +2022,7 @@ if ( $platform =~ m/cygwin/ )
ToFile( "MINGW_SHARED_GCCLIB", "@MINGW_SHARED_GCCLIB@", "e" );
ToFile( "MINGW_GCCLIB_EH", "@MINGW_GCCLIB_EH@", "e" );
ToFile( "MINGW_SHARED_GXXLIB", "@MINGW_SHARED_GXXLIB@", "e" );
+ ToFile( "MINGW_SHARED_LIBSTDCPP", "@MINGW_SHARED_LIBSTDCPP@", "e" );
ToFile( "MINGW_GCCDLL", "@MINGW_GCCDLL@", "e" );
ToFile( "MINGW_GXXDLL", "@MINGW_GXXDLL@", "e" );
}
@@ -2058,8 +2087,8 @@ if ( $platform =~ m/cygwin/ ) {
if ($platform =~ m/solaris|darwin|freebsd/)
{
ToFile( "GNUPATCH", "@GNUPATCH@", "e");
- ToFile( "GNUCOPY", "@GNUCP@", "e");
}
+ToFile( "GNUCOPY", "@GNUCP@", "e");
# OS/2 define .pl as executable for 4os2
# use - as switch char for dmake (os2/switchar.c)
if ($platform =~ m/os2/)
diff --git a/soldep/bootstrp/command.cxx b/soldep/bootstrp/command.cxx
new file mode 100644
index 000000000000..39a10093c12b
--- /dev/null
+++ b/soldep/bootstrp/command.cxx
@@ -0,0 +1,683 @@
+/*************************************************************************
+ *
+ * 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.
+ *
+ ************************************************************************/
+
+#ifdef SCO
+#define _IOSTREAM_H
+#endif
+
+#include <tools/fsys.hxx>
+#include <tools/stream.hxx>
+#include "soldep/command.hxx"
+#include <tools/debug.hxx>
+#include <soldep/appdef.hxx>
+
+#ifdef _MSC_VER
+#pragma warning (push,1)
+#endif
+
+#include <iostream>
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <ctype.h>
+#include <errno.h>
+
+#ifdef _MSC_VER
+#pragma warning (pop)
+#endif
+
+//#define MH_TEST2 1 // fuers direkte Testen
+
+#if defined(WNT) || defined(OS2)
+#ifdef _MSC_VER
+#pragma warning (push,1)
+#endif
+#include <process.h> // for _SPAWN
+#ifdef _MSC_VER
+#pragma warning (pop)
+#endif
+#endif
+#ifdef UNX
+#include <sys/types.h>
+#include <unistd.h>
+#if ( defined NETBSD ) || defined (FREEBSD) || defined (AIX) \
+ || defined (HPUX) || defined (MACOSX)
+#include <sys/wait.h>
+#else
+#include <wait.h>
+#endif
+#define P_WAIT 1 // erstmal einen dummz
+#endif
+
+#if defined WNT
+#include <tools/svwin.h>
+#endif
+
+#if defined(WNT) || defined(OS2)
+#define cPathSeperator ';'
+#endif
+#ifdef UNX
+#define cPathSeperator ':'
+#endif
+
+/*****************************************************************************/
+CommandLine::CommandLine(sal_Bool bWrite)
+/*****************************************************************************/
+ : bTmpWrite(bWrite)
+{
+ CommandBuffer = new char [1];
+ if (CommandBuffer == NULL) {
+ //cout << "Error: nospace" << endl;
+ exit(0);
+ }
+ CommandBuffer[0] = '\0';
+ nArgc = 0;
+ ppArgv = new char * [1];
+ ppArgv[0] = NULL;
+
+ ComShell = new char [128];
+ char* pTemp = getenv("COMMAND_SHELL");
+ if(!pTemp)
+ strcpy(ComShell,COMMAND_SHELL);
+ else
+ strcpy(ComShell,pTemp);
+
+ strcpy(&ComShell[strlen(ComShell)]," -C ");
+}
+
+/*****************************************************************************/
+CommandLine::CommandLine(const char *CommandString, sal_Bool bWrite)
+/*****************************************************************************/
+ : bTmpWrite(bWrite)
+{
+ CommandBuffer = new char [1];
+ if (CommandBuffer == NULL) {
+ //cout << "Error: nospace" << endl;
+ exit(0);
+ }
+ nArgc = 0;
+ ppArgv = new char * [1];
+ ppArgv[0] = NULL;
+
+ ComShell = new char [128];
+ char* pTemp = getenv("COMMAND_SHELL");
+ if(!pTemp)
+ strcpy(ComShell,COMMAND_SHELL);
+ else
+ strcpy(ComShell,pTemp);
+
+ strcpy(&ComShell[strlen(ComShell)]," -C ");
+
+ BuildCommand(CommandString);
+}
+
+/*****************************************************************************/
+CommandLine::CommandLine(const CommandLine& CCommandLine, sal_Bool bWrite)
+/*****************************************************************************/
+ : bTmpWrite(bWrite)
+{
+ CommandBuffer = new char [1];
+ if (CommandBuffer == NULL) {
+ //cout << "Error: nospace" << endl;
+ exit(0);
+ }
+ nArgc = 0;
+ ppArgv = new char * [1];
+ ppArgv[0] = NULL;
+
+ ComShell = new char [128];
+ char* pTemp = getenv("COMMAND_SHELL");
+ if(!pTemp)
+ strcpy(ComShell,COMMAND_SHELL);
+ else
+ strcpy(ComShell,pTemp);
+
+ strcpy(&ComShell[strlen(ComShell)]," -C ");
+
+ BuildCommand(CCommandLine.CommandBuffer);
+}
+
+/*****************************************************************************/
+CommandLine::~CommandLine()
+/*****************************************************************************/
+{
+ delete [] CommandBuffer;
+ delete [] ComShell;
+ //for (int i = 0; ppArgv[i] != '\0'; i++) {
+ for (int i = 0; ppArgv[i] != 0; i++) {
+ delete [] ppArgv[i];
+ }
+ delete [] ppArgv;
+
+}
+
+/*****************************************************************************/
+CommandLine& CommandLine::operator=(const CommandLine& CCommandLine)
+/*****************************************************************************/
+{
+ strcpy (CommandBuffer, CCommandLine.CommandBuffer);
+ for (int i = 0; i != nArgc; i++) {
+ delete [] ppArgv[i];
+ }
+ delete [] ppArgv;
+ ppArgv = new char * [1];
+ ppArgv[0] = NULL;
+ BuildCommand(CommandBuffer);
+ return *this;
+}
+
+/*****************************************************************************/
+CommandLine& CommandLine::operator=(const char *CommandString)
+/*****************************************************************************/
+{
+ strcpy (CommandBuffer, CommandString);
+ for (int i = 0; i != nArgc; i++) {
+ delete [] ppArgv[i];
+ }
+ delete [] ppArgv;
+ ppArgv = new char * [1];
+ ppArgv[0] = NULL;
+ BuildCommand(CommandBuffer);
+
+ return *this;
+}
+
+/*****************************************************************************/
+void CommandLine::Print()
+/*****************************************************************************/
+{
+ //cout << "******* start print *******" << endl;
+ //cout << "nArgc = " << nArgc << endl;
+ //cout << "CommandBuffer = " << CommandBuffer << endl;
+ for (int i = 0; ppArgv[i] != NULL; i++) {
+ //cout << "ppArgv[" << i << "] = " << ppArgv[i] << endl;
+ }
+ //cout << "******** end print ********" << endl;
+}
+
+/*****************************************************************************/
+void CommandLine::BuildCommand(const char *CommandString)
+/*****************************************************************************/
+{
+ int index = 0, pos=0;
+ char buffer[1024];
+ char WorkString[1024];
+
+ strcpy(WorkString,CommandString);
+
+ //falls LogWindow -> in tmpfile schreiben
+ if(bTmpWrite)
+ {
+ strcpy(&WorkString[strlen(WorkString)]," >&");
+ strcpy(&WorkString[strlen(WorkString)],getenv("TMP"));
+ strcpy(&WorkString[strlen(WorkString)],TMPNAME);
+ }
+
+ // delete old memory and get some new memory for CommandBuffer
+
+ delete [] CommandBuffer;
+ CommandBuffer = new char [strlen(ComShell)+strlen(WorkString)+1];
+ if (CommandBuffer == NULL) {
+ //cout << "Error: nospace" << endl;
+ exit(0);
+ }
+ strcpy (CommandBuffer, ComShell);
+ strcpy (&CommandBuffer[strlen(ComShell)], WorkString);
+
+ CommandString = CommandBuffer;
+
+ // get the number of tokens
+ Strtokens(CommandString);
+
+ // delete the space for the old CommandLine
+
+ for (int i = 0; ppArgv[i] != 0; i++) {
+ delete [] ppArgv[i];
+ }
+ delete [] ppArgv;
+
+ /* get space for the new command line */
+
+ ppArgv = (char **) new char * [nArgc+1];
+ if (ppArgv == NULL) {
+ //cout << "Error: no space" << endl;
+ exit(0);
+ }
+
+ // flush the white space
+
+ while ( isspace(*CommandString) )
+ CommandString++;
+
+ index = 0;
+
+ // start the loop to build all the individual tokens
+
+ while (*CommandString != '\0') {
+
+ pos = 0;
+
+ // copy the token until white space is found
+
+ while ( !isspace(*CommandString) && *CommandString != '\0') {
+
+ buffer[pos++] = *CommandString++;
+
+ }
+
+ buffer[pos] = '\0';
+
+ // get space for the individual tokens
+
+ ppArgv[index] = (char *) new char [strlen(buffer)+1];
+ if (ppArgv[index] == NULL) {
+ //cout << "Error: nospace" << endl;
+ exit(0);
+ }
+
+ // copy the token
+
+ strcpy (ppArgv[index++], buffer);
+
+ // flush while space
+
+ while ( isspace(*CommandString) )
+ CommandString++;
+
+ }
+
+ // finish by setting the las pointer to NULL
+ ppArgv[nArgc]= NULL;
+
+}
+
+/*****************************************************************************/
+void CommandLine::Strtokens(const char *CommandString)
+/*****************************************************************************/
+{
+ int count = 0;
+ const char *temp;
+
+ temp = CommandString;
+
+ /* bypass white space */
+
+ while (isspace(*temp)) temp++;
+
+ for (count=0; *temp != '\0'; count++) {
+
+ /* continue until white space of string terminator is found */
+
+ while ((!isspace(*temp)) && (*temp != '\0')) temp++;
+
+ /* bypass white space */
+
+ while (isspace(*temp)) temp++;
+
+ }
+ nArgc = count;
+}
+
+/*****************************************************************************/
+CCommand::CCommand( ByteString &rString )
+/*****************************************************************************/
+{
+ rString.SearchAndReplace( '\t', ' ' );
+ aCommand = rString.GetToken( 0, ' ' );
+ aCommandLine = Search( "PATH" );
+#ifndef UNX
+ aCommandLine += " /c ";
+#else
+ aCommandLine += " -c ";
+#endif
+
+ ByteString sCmd( rString.GetToken( 0, ' ' ));
+ ByteString sParam( rString.Copy( sCmd.Len()));
+
+ aCommandLine += Search( "PATH", sCmd );
+ aCommandLine += sParam;
+
+ ImplInit();
+}
+
+/*****************************************************************************/
+CCommand::CCommand( const char *pChar )
+/*****************************************************************************/
+{
+ ByteString aString = pChar;
+ aString.SearchAndReplace( '\t', ' ' );
+ aCommand = aString.GetToken( 0, ' ' );
+
+ aCommandLine = Search( "PATH" );
+#ifndef UNX
+ aCommandLine += " /c ";
+#else
+ aCommandLine += " -c ";
+#endif
+ ByteString rString( pChar );
+
+ ByteString sCmd( rString.GetToken( 0, ' ' ));
+ ByteString sParam( rString.Copy( sCmd.Len()));
+
+ aCommandLine += Search( "PATH", sCmd );
+ aCommandLine += sParam;
+
+ ImplInit();
+}
+
+/*****************************************************************************/
+void CCommand::ImplInit()
+/*****************************************************************************/
+{
+ char pTmpStr[255];
+ size_t *pPtr;
+ char *pChar;
+ int nVoid = sizeof( size_t * );
+ nArgc = aCommandLine.GetTokenCount(' ');
+ sal_uIntPtr nLen = aCommandLine.Len();
+
+ ppArgv = (char **) new char[ (sal_uIntPtr)(nLen + nVoid * (nArgc +2) + nArgc ) ];
+ pChar = (char *) ppArgv + ( (1+nArgc) * nVoid );
+ pPtr = (size_t *) ppArgv;
+ for ( xub_StrLen i=0; i<nArgc; i++ )
+ {
+ (void) strcpy( pTmpStr, aCommandLine.GetToken(i, ' ' ).GetBuffer() );
+ size_t nStrLen = strlen( pTmpStr ) + 1;
+ strcpy( pChar, pTmpStr );
+ *pPtr = (sal_uIntPtr) pChar;
+ pChar += nStrLen;
+ pPtr += 1;
+#ifdef UNX
+ if ( i == 1 )
+ {
+ sal_uInt16 nWo = aCommandLine.Search("csh -c ");
+ if (nWo != STRING_NOTFOUND)
+ aCommandLine.Erase(0, nWo + 7);
+ else
+ aCommandLine.Erase(0, 16);
+ i = nArgc;
+ strcpy( pChar, aCommandLine.GetBuffer() );
+ *pPtr = (sal_uIntPtr) pChar;
+ pPtr += 1;
+ }
+#endif
+ }
+ *pPtr = 0;
+}
+
+/*****************************************************************************/
+CCommand::operator int()
+/*****************************************************************************/
+{
+ int nRet;
+#if defined WNT
+ nRet = _spawnv( P_WAIT, ppArgv[0], (const char **) ppArgv );
+#elif defined OS2
+ nRet = _spawnv( P_WAIT, ppArgv[0], ppArgv );
+#elif defined UNX
+ //fprintf( stderr, "CComand : operator (int) not implemented\n");
+ // **** Unix Implementierung ***************
+ pid_t pid;
+
+ if (( pid = fork()) < 0 )
+ {
+ DBG_ASSERT( sal_False, "fork error" );
+ }
+ else if ( pid == 0 )
+ {
+ if ( execv( ppArgv[0], (char * const *) ppArgv ) < 0 )
+ {
+ DBG_ASSERT( sal_False, "execv failed" );
+ }
+ }
+ //fprintf( stderr, "parent: %s %s\n", ppArgv[0] , ppArgv[1] );
+ if ( (nRet = waitpid( pid, NULL, 0 ) < 0) )
+ {
+ DBG_ASSERT( sal_False, "wait error" );
+ }
+#endif
+
+ switch ( errno )
+ {
+ case E2BIG :
+ nError = COMMAND_TOOBIG;
+ break;
+ case EINVAL :
+ nError = COMMAND_INVALID;
+ break;
+ case ENOENT:
+ nError = COMMAND_NOTFOUND;
+ break;
+ case ENOEXEC :
+ nError = COMMAND_NOEXEC;
+ break;
+ case ENOMEM :
+ nError = COMMAND_NOMEM;
+ break;
+ default:
+ nError = COMMAND_UNKNOWN;
+ }
+
+ if ( nRet )
+ fprintf( stderr, "Program returned with errros\n");
+ return nRet;
+}
+
+/*****************************************************************************/
+ByteString CCommand::Search(ByteString aEnv, ByteString sItem)
+/*****************************************************************************/
+{
+ // default wird eine Shell im Path gesucht,
+ // wenn aber compsec gestzt ist holen wir uns die
+ // Shell von dort
+ if ( sItem.Equals( COMMAND_SHELL ))
+ {
+ ByteString aComspec = GetEnv( "COMSPEC" );
+ if ( !aComspec.Equals(""))
+ return aComspec;
+ }
+
+ DirEntry aItem( String( sItem, RTL_TEXTENCODING_ASCII_US ));
+ if ( aItem.Exists())
+ return sItem;
+
+ ByteString aEntry, sReturn;
+ ByteString sEnv( aEnv );
+ ByteString sEnvironment = GetEnv( sEnv.GetBuffer());
+ xub_StrLen nCount = sEnvironment.GetTokenCount( cPathSeperator );
+
+ sal_Bool bFound = sal_False;
+
+ for ( xub_StrLen i=0; i<nCount && !bFound; i++ )
+ {
+ aEntry = sEnvironment.GetToken(i, cPathSeperator );
+#ifndef UNX
+ aEntry += '\\';
+#else
+ aEntry += '/';
+#endif
+ aEntry += sItem;
+
+ String sEntry( aEntry, RTL_TEXTENCODING_ASCII_US );
+ DirEntry aDirEntry( sEntry );
+ aDirEntry.ToAbs();
+ if ( aDirEntry.Exists()) {
+ sReturn = aEntry;
+ bFound = sal_True;
+ }
+ }
+ if ( !bFound )
+ {
+ sEnv = sEnv.ToUpperAscii();
+ ByteString sEnvironment2 = GetEnv(sEnv.GetBuffer() );
+ xub_StrLen nCount2 = sEnvironment2.GetTokenCount( cPathSeperator );
+ for ( xub_StrLen i=0; i<nCount2 && !bFound; i++ )
+ {
+ aEntry = sEnvironment2.GetToken(i, cPathSeperator );
+#ifndef UNX
+ aEntry += '\\';
+#else
+ aEntry += '/';
+#endif
+ aEntry += sItem;
+
+ String sEntry( aEntry, RTL_TEXTENCODING_ASCII_US );
+ DirEntry aDirEntry( sEntry );
+ aDirEntry.ToAbs();
+ if ( aDirEntry.Exists()) {
+ sReturn = aEntry;
+ bFound = sal_True;
+ }
+ }
+ }
+
+ if ( sReturn.Equals( "" ))
+ sReturn = sItem;
+
+ return sReturn;
+}
+
+/*****************************************************************************/
+CCommandd::CCommandd( ByteString &rString, CommandBits nBits )
+/*****************************************************************************/
+ : CCommand( rString ),
+ nFlag( nBits )
+{
+}
+
+
+/*****************************************************************************/
+CCommandd::CCommandd( const char *pChar, CommandBits nBits )
+/*****************************************************************************/
+ : CCommand( pChar ),
+ nFlag( nBits )
+{
+}
+
+/*****************************************************************************/
+CCommandd::operator int()
+/*****************************************************************************/
+{
+ int nRet = 0;
+
+#ifdef WNT
+ LPCTSTR lpApplicationName = NULL;
+ LPTSTR lpCommandLine = (char *) GetCommandLine_().GetBuffer();
+ LPSECURITY_ATTRIBUTES lpProcessAttributes = NULL;
+ LPSECURITY_ATTRIBUTES lpThreadAttributes = NULL;
+ sal_Bool bInheritHandles = sal_True;
+
+ // wie wuenschen wir denn gestartet zu werden ??
+ DWORD dwCreationFlags;
+
+ if ( nFlag & COMMAND_EXECUTE_START )
+ dwCreationFlags = DETACHED_PROCESS;
+ else
+ dwCreationFlags = CREATE_NEW_CONSOLE;
+
+ // wir erben vom Vaterprozess
+ LPVOID lpEnvironment = NULL;
+
+ // das exe im Pfad suchen
+ LPCTSTR lpCurrentDirectory = NULL;
+
+ // in dieser Struktur bekommen wir die erzeugte Processinfo
+ // zurueck
+ PROCESS_INFORMATION aProcessInformation;
+
+ // weiteres Startupinfo anlegen
+ STARTUPINFO aStartupInfo;
+
+ aStartupInfo.cb = sizeof( STARTUPINFO );
+ aStartupInfo.lpReserved = NULL;
+ aStartupInfo.lpDesktop = NULL;
+
+ // das Fenster bekommt den Namen des Exes
+ aStartupInfo.lpTitle = NULL;
+ aStartupInfo.dwX = 100;
+ aStartupInfo.dwY = 100;
+ //aStartupInfo.dwXSize = 400;
+ //aStartupInfo.dwYSize = 400;
+ aStartupInfo.dwXCountChars = 40;
+ aStartupInfo.dwYCountChars = 40;
+
+ // Farben setzen
+ aStartupInfo.dwFillAttribute = FOREGROUND_RED | BACKGROUND_RED |
+ BACKGROUND_BLUE | BACKGROUND_GREEN;
+
+// aStartupInfo.dwFlags = STARTF_USESTDHANDLES;
+ //aStartupInfo.wShowWindow = SW_NORMAL; //SW_SHOWDEFAULT;
+ //aStartupInfo.wShowWindow = SW_HIDE; //SW_SHOWNOACTIVATE;
+ aStartupInfo.wShowWindow = SW_SHOWNOACTIVATE;
+ aStartupInfo.cbReserved2 = NULL;
+ aStartupInfo.lpReserved2 = NULL;
+ //aStartupInfo.hStdInput = stdin;
+ //aStartupInfo.hStdOutput = stdout;
+ //aStartupInfo.hStdError = stderr;
+
+ if ( nFlag & COMMAND_EXECUTE_HIDDEN )
+ {
+ aStartupInfo.wShowWindow = SW_HIDE;
+ aStartupInfo.dwFlags = aStartupInfo.dwFlags | STARTF_USESHOWWINDOW;
+ }
+
+ bool bProcess = CreateProcess( lpApplicationName,
+ lpCommandLine, lpProcessAttributes,
+ lpThreadAttributes, bInheritHandles,
+ dwCreationFlags, lpEnvironment, lpCurrentDirectory,
+ &aStartupInfo, &aProcessInformation );
+
+ LPVOID lpMsgBuf;
+
+ if ( bProcess )
+ {
+ FormatMessage(
+ FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
+ NULL,
+ GetLastError(),
+ MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
+ (LPTSTR) &lpMsgBuf,
+ 0,
+ NULL );
+
+ ByteString aErrorString = (char *) lpMsgBuf;
+
+ if ( nFlag & COMMAND_EXECUTE_WAIT )
+ {
+ DWORD aProcessState = STILL_ACTIVE;
+ while(aProcessState == STILL_ACTIVE)
+ {
+ GetExitCodeProcess(aProcessInformation.hProcess,&aProcessState);
+ }
+ }
+ }
+ else
+ fprintf( stderr, "Can not start Process !" );
+
+#endif
+ return nRet;
+}
diff --git a/soldep/bootstrp/sstring.cxx b/soldep/bootstrp/sstring.cxx
new file mode 100644
index 000000000000..a9c50839f6f6
--- /dev/null
+++ b/soldep/bootstrp/sstring.cxx
@@ -0,0 +1,314 @@
+/*************************************************************************
+ *
+ * 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.
+ *
+ ************************************************************************/
+
+#ifndef _TOOLS_STRINGLIST
+# define _TOOLS_STRINGLIST
+#endif
+
+#define ENABLE_BYTESTRING_STREAM_OPERATORS
+#include <tools/stream.hxx>
+#include "soldep/sstring.hxx"
+
+SByteStringList::SByteStringList()
+{
+}
+
+SByteStringList::~SByteStringList()
+{
+}
+
+sal_uIntPtr SByteStringList::IsString( ByteString* pStr )
+{
+ sal_uIntPtr nRet = NOT_THERE;
+ if ( (nRet = GetPrevString( pStr )) != 0 )
+ {
+ ByteString* pString = GetObject( nRet );
+ if ( *pString == *pStr )
+ return nRet;
+ else
+ return NOT_THERE;
+ }
+ else
+ {
+ ByteString* pString = GetObject( 0 );
+ if ( pString && (*pString == *pStr) )
+ return 0;
+ else
+ return NOT_THERE;
+ }
+}
+
+sal_uIntPtr SByteStringList::GetPrevString( ByteString* pStr )
+{
+ sal_uIntPtr nRet = 0;
+ sal_Bool bFound = sal_False;
+ sal_uIntPtr nCountMember = Count();
+ sal_uIntPtr nUpper = nCountMember;
+ sal_uIntPtr nLower = 0;
+ sal_uIntPtr nCurrent = nUpper / 2;
+ sal_uIntPtr nRem = 0;
+ ByteString* pString;
+
+ do
+ {
+ if ( (nCurrent == nLower) || (nCurrent == nUpper) )
+ return nLower;
+ pString = GetObject( nCurrent );
+ StringCompare nResult = pStr->CompareTo( *pString );
+ if ( nResult == COMPARE_LESS )
+ {
+ nUpper = nCurrent;
+ nCurrent = (nCurrent + nLower) /2;
+ }
+ else if ( nResult == COMPARE_GREATER )
+ {
+ nLower = nCurrent;
+ nCurrent = (nUpper + nCurrent) /2;
+ }
+ else if ( nResult == COMPARE_EQUAL )
+ return nCurrent;
+ if ( nRem == nCurrent )
+ return nCurrent;
+ nRem = nCurrent;
+ }
+ while ( !bFound );
+ return nRet;
+}
+
+/**************************************************************************
+*
+* Sortiert einen ByteString in die Liste ein und gibt die Position,
+* an der einsortiert wurde, zurueck
+*
+**************************************************************************/
+
+sal_uIntPtr SByteStringList::PutString( ByteString* pStr )
+{
+ sal_uIntPtr nPos = GetPrevString ( pStr );
+ if ( Count() )
+ {
+ {
+ ByteString* pString = GetObject( 0 );
+ if ( pString->CompareTo( *pStr ) == COMPARE_GREATER )
+ {
+ Insert( pStr, (sal_uIntPtr)0 );
+ return (sal_uIntPtr)0;
+ }
+ }
+ ByteString* pString = GetObject( nPos );
+ if ( *pStr != *pString )
+ {
+ Insert( pStr, nPos+1 );
+ return ( nPos +1 );
+ }
+ }
+ else
+ {
+ Insert( pStr );
+ return (sal_uIntPtr)0;
+ }
+
+ return NOT_THERE;
+}
+
+ByteString* SByteStringList::RemoveString( const ByteString& rName )
+{
+ sal_uIntPtr i;
+ ByteString* pReturn;
+
+ for( i = 0 ; i < Count(); i++ )
+ {
+ if ( rName == *GetObject( i ) )
+ {
+ pReturn = GetObject(i);
+ Remove(i);
+ return pReturn;
+ }
+ }
+
+ return NULL;
+}
+
+void SByteStringList::CleanUp()
+{
+ ByteString* pByteString = First();
+ while (pByteString) {
+ delete pByteString;
+ pByteString = Next();
+ }
+ Clear();
+}
+
+SByteStringList& SByteStringList::operator<< ( SvStream& rStream )
+{
+ sal_uInt32 nListCount;
+ rStream >> nListCount;
+ for ( sal_uInt16 i = 0; i < nListCount; i++ ) {
+ ByteString* pByteString = new ByteString();
+ rStream >> *pByteString;
+ Insert (pByteString, LIST_APPEND);
+ }
+ return *this;
+}
+
+SByteStringList& SByteStringList::operator>> ( SvStream& rStream )
+{
+ sal_uInt32 nListCount = Count();
+ rStream << nListCount;
+ ByteString* pByteString = First();
+ while (pByteString) {
+ rStream << *pByteString;
+ pByteString = Next();
+ }
+ return *this;
+}
+
+
+
+
+
+
+
+SUniStringList::SUniStringList()
+{
+}
+
+SUniStringList::~SUniStringList()
+{
+}
+
+sal_uIntPtr SUniStringList::IsString( UniString* pStr )
+{
+ sal_uIntPtr nRet = NOT_THERE;
+ if ( (nRet = GetPrevString( pStr )) != 0 )
+ {
+ UniString* pString = GetObject( nRet );
+ if ( *pString == *pStr )
+ return nRet;
+ else
+ return NOT_THERE;
+ }
+ else
+ {
+ UniString* pString = GetObject( 0 );
+ if ( pString && (*pString == *pStr) )
+ return 0;
+ else
+ return NOT_THERE;
+ }
+}
+
+sal_uIntPtr SUniStringList::GetPrevString( UniString* pStr )
+{
+ sal_uIntPtr nRet = 0;
+ sal_Bool bFound = sal_False;
+ sal_uIntPtr nCountMember = Count();
+ sal_uIntPtr nUpper = nCountMember;
+ sal_uIntPtr nLower = 0;
+ sal_uIntPtr nCurrent = nUpper / 2;
+ sal_uIntPtr nRem = 0;
+ UniString* pString;
+
+ do
+ {
+ if ( (nCurrent == nLower) || (nCurrent == nUpper) )
+ return nLower;
+ pString = GetObject( nCurrent );
+ StringCompare nResult = pStr->CompareTo( *pString );
+ if ( nResult == COMPARE_LESS )
+ {
+ nUpper = nCurrent;
+ nCurrent = (nCurrent + nLower) /2;
+ }
+ else if ( nResult == COMPARE_GREATER )
+ {
+ nLower = nCurrent;
+ nCurrent = (nUpper + nCurrent) /2;
+ }
+ else if ( nResult == COMPARE_EQUAL )
+ return nCurrent;
+ if ( nRem == nCurrent )
+ return nCurrent;
+ nRem = nCurrent;
+ }
+ while ( !bFound );
+ return nRet;
+}
+
+/**************************************************************************
+*
+* Sortiert einen UniString in die Liste ein und gibt die Position,
+* an der einsortiert wurde, zurueck
+*
+**************************************************************************/
+
+sal_uIntPtr SUniStringList::PutString( UniString* pStr )
+{
+ sal_uIntPtr nPos = GetPrevString ( pStr );
+ if ( Count() )
+ {
+ {
+ UniString* pString = GetObject( 0 );
+ if ( pString->CompareTo( *pStr ) == COMPARE_GREATER )
+ {
+ Insert( pStr, (sal_uIntPtr)0);
+ return (sal_uIntPtr)0;
+ }
+ }
+ UniString* pString = GetObject( nPos );
+ if ( *pStr != *pString )
+ {
+ Insert( pStr, nPos+1 );
+ return ( nPos +1 );
+ }
+ }
+ else
+ {
+ Insert( pStr );
+ return (sal_uIntPtr)0;
+ }
+
+ return NOT_THERE;
+}
+
+UniString* SUniStringList::RemoveString( const UniString& rName )
+{
+ sal_uIntPtr i;
+ UniString* pReturn;
+
+ for( i = 0 ; i < Count(); i++ )
+ {
+ if ( rName == *GetObject( i ) )
+ {
+ pReturn = GetObject(i);
+ Remove(i);
+ return pReturn;
+ }
+ }
+
+ return NULL;
+}
diff --git a/soldep/inc/soldep/command.hxx b/soldep/inc/soldep/command.hxx
new file mode 100644
index 000000000000..50781e1679a9
--- /dev/null
+++ b/soldep/inc/soldep/command.hxx
@@ -0,0 +1,163 @@
+/*************************************************************************
+ *
+ * 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.
+ *
+ ************************************************************************/
+
+#ifndef COMMAND_HXX
+#define COMMAND_HXX
+
+#include <iostream>
+
+#include <tools/stream.hxx>
+#define STRLEN 100
+#ifndef UNX
+#define TMPNAME "\\command.tmp"
+#else
+#define TMPNAME "/tmp/command.tmp"
+#endif
+
+/** Different types of spawnable programs
+*/
+enum ExeType
+{
+ EXE, /// programm is a native executable
+ BAT, /// programm is a DOS-Batch
+ BTM /// programm is a 4DOS-Batch
+};
+
+#define COMMAND_NOTFOUND 0x0001
+#define COMMAND_TOOBIG 0x0002
+#define COMMAND_INVALID 0x0004
+#define COMMAND_NOEXEC 0x0008
+#define COMMAND_NOMEM 0x0010
+#define COMMAND_UNKNOWN 0x0020
+
+#ifdef WNT
+#define COMMAND_SHELL "4nt.exe"
+#endif
+#ifdef OS2
+#define COMMAND_SHELL "4os2.exe"
+#endif
+#ifdef UNX
+#define COMMAND_SHELL "csh"
+#endif
+
+class CommandLine;
+class LogWindow;
+
+class CommandLine
+{
+friend class ChildProcess;
+private:
+ char *CommandBuffer;
+ char *ComShell;
+ char **ppArgv;
+ sal_Bool bTmpWrite;
+
+public:
+ CommandLine(sal_Bool bTmpWrite = sal_False);
+ CommandLine(const char *, sal_Bool bTmpWrite = sal_False);
+ CommandLine(const CommandLine&, sal_Bool bTmpWrite = sal_False);
+ virtual ~CommandLine();
+
+ int nArgc;
+
+ CommandLine& operator=(const CommandLine&);
+ CommandLine& operator=(const char *);
+ void BuildCommand(const char *);
+ char** GetCommand(void) { return ppArgv; }
+ void Strtokens(const char *);
+ void Print();
+};
+
+/** Declares and spawns a child process.
+ The spawned programm could be a native executable or a schell script.
+*/
+class CCommand
+{
+private:
+ ByteString aCommandLine;
+ ByteString aCommand;
+ char *pArgv;
+ char **ppArgv;
+ sal_uIntPtr nArgc;
+ int nError;
+
+protected:
+ void ImplInit();
+ void Initpp( sal_uIntPtr nCount, ByteString &rStr );
+
+public:
+ /** Creates the process specified without spawning it
+ @param rString specifies the programm or shell scrip
+ */
+ CCommand( ByteString &rString );
+
+ /** Creates the process specified without spawning it
+ @param pChar specifies the programm or shell scrip
+ */
+ CCommand( const char *pChar );
+
+ /** Try to find the given programm in specified path
+ @param sEnv specifies the current search path, defaulted by environment
+ @param sItem specifies the system shell
+ @return the Location (when programm was found)
+ */
+ static ByteString Search( ByteString sEnv,
+ ByteString sItem = COMMAND_SHELL );
+
+ /** Spawns the Process
+ @return 0 when spawned without errors, otherwise a error code
+ */
+ operator int();
+
+ ByteString GetCommandLine_() { return aCommandLine; }
+ ByteString GetCommand() { return aCommand; }
+
+ char** GetCommandStr() { return ppArgv; }
+};
+
+#define COMMAND_EXECUTE_WINDOW 0x0000001
+#define COMMAND_EXECUTE_CONSOLE 0x0000002
+#define COMMAND_EXECUTE_HIDDEN 0x0000004
+#define COMMAND_EXECUTE_START 0x0000008
+#define COMMAND_EXECUTE_WAIT 0x0000010
+#define COMMAND_EXECUTE_REMOTE 0x1000000
+
+typedef sal_uIntPtr CommandBits;
+
+/** Allowes to spawn programms hidden, waiting etc.
+ @see CCommand
+*/
+class CCommandd : public CCommand
+{
+ CommandBits nFlag;
+public:
+ CCommandd( ByteString &rString, CommandBits nBits );
+ CCommandd( const char *pChar, CommandBits nBits );
+ operator int();
+};
+
+#endif
diff --git a/soldep/inc/soldep/listmacr.hxx b/soldep/inc/soldep/listmacr.hxx
new file mode 100644
index 000000000000..a27f51cfdd4c
--- /dev/null
+++ b/soldep/inc/soldep/listmacr.hxx
@@ -0,0 +1,60 @@
+/*************************************************************************
+ *
+ * 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.
+ *
+ ************************************************************************/
+
+#ifndef _LISTMACR_HXX
+#define _LISTMACR_HXX
+
+#define DECL_DEST_LIST( TmpListType, ListType, PointerType ) \
+DECLARE_LIST(TmpListType, PointerType) \
+class ListType : public TmpListType \
+{ \
+public: \
+ void ClearAndDelete() \
+ { \
+ while ( Count()) { \
+ PointerType pTmp = GetObject(( sal_uIntPtr ) 0 ); \
+ delete pTmp; \
+ Remove(( sal_uIntPtr ) 0 ); \
+ } \
+ } \
+ ~ListType() \
+ { \
+ ClearAndDelete(); \
+ } \
+}; \
+
+#endif
+
+
+
+
+
+
+
+
+
+
diff --git a/soldep/inc/soldep/sstring.hxx b/soldep/inc/soldep/sstring.hxx
new file mode 100644
index 000000000000..08eb1da71a09
--- /dev/null
+++ b/soldep/inc/soldep/sstring.hxx
@@ -0,0 +1,105 @@
+/*************************************************************************
+ *
+ * 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.
+ *
+ ************************************************************************/
+
+#ifndef _SSTRING_HXX
+#define _SSTRING_HXX
+
+#include <tools/string.hxx>
+#include <tools/list.hxx>
+
+#define NOT_THERE LIST_ENTRY_NOTFOUND
+
+#define SStringList SUniStringList
+#define StringList UniStringList
+
+DECLARE_LIST( ByteStringList, ByteString* )
+DECLARE_LIST( UniStringList, UniString* )
+
+class SvStream;
+
+// ---------------------
+// - class SStringList -
+// ---------------------
+
+class SByteStringList : public ByteStringList
+{
+public:
+ SByteStringList();
+ ~SByteStringList();
+
+ // neuen ByteString in Liste einfuegen
+ sal_uIntPtr PutString( ByteString* );
+ ByteString* RemoveString( const ByteString& rName );
+
+ // Position des ByteString in Liste, wenn nicht enthalten, dann
+ // return = NOT_THERE
+ sal_uIntPtr IsString( ByteString* );
+
+ // Vorgaenger ermitteln ( auch wenn selbst noch nicht in
+ // Liste enthalten
+ sal_uIntPtr GetPrevString( ByteString* );
+ void CleanUp();
+
+ SByteStringList& operator<< ( SvStream& rStream );
+ SByteStringList& operator>> ( SvStream& rStream );
+};
+
+// ---------------------
+// - class SUniStringList -
+// ---------------------
+
+class SUniStringList : public UniStringList
+{
+public:
+ SUniStringList();
+ ~SUniStringList();
+
+ // neuen UniString in Liste einfuegen
+ sal_uIntPtr PutString( UniString* );
+ UniString* RemoveString( const UniString& rName );
+
+ // Position des UniString in Liste, wenn nicht enthalten, dann
+ // return = NOT_THERE
+ sal_uIntPtr IsString( UniString* );
+
+ // Vorgaenger ermitteln ( auch wenn selbst noch nicht in
+ // Liste enthalten
+ sal_uIntPtr GetPrevString( UniString* );
+};
+
+class Text
+{
+protected:
+ String aString;
+
+public:
+ Text( char* pChar );
+ Text( String &rStr ) { aString = rStr; }
+ void Stderr();
+};
+
+#endif
diff --git a/solenv/bin/build.pl b/solenv/bin/build.pl
index 4613987737ef..f524ee07fce2 100755
--- a/solenv/bin/build.pl
+++ b/solenv/bin/build.pl
@@ -30,6 +30,7 @@
#
# build - build entire project
#
+ use strict;
use Config;
use POSIX;
use Cwd qw (cwd);
@@ -47,6 +48,7 @@
use lib ("$ENV{SOLARENV}/bin/modules");
use SourceConfig;
use RepositoryHelper;
+ use Cwd 'chdir';
my $in_so_env = 0;
if (defined $ENV{COMMON_ENV_TOOLS}) {
@@ -58,24 +60,20 @@
$verbose_mode = ($ENV{verbose} =~ /^t\S*$/i);
}
my $enable_multiprocessing = 1;
- my $cygwin = 0;
- $cygwin++ if ($^O eq 'cygwin');
- if ($ENV{GUI} eq 'WNT' && !$cygwin) {
- eval { require Win32::Process; import Win32::Process; };
- $enable_multiprocessing = 0 if ($@);
- eval { require Win32::Pipe; import Win32::Pipe; };
- };
### for XML file format
eval { require XMLBuildListParser; import XMLBuildListParser; };
+ my $enable_xml = 0;
+ my @modes_array = ();
if (!$@) {
$enable_xml = 1;
@modes_array = split('\s' , $ENV{BUILD_TYPE});
};
#### script id #####
- ( $script_name = $0 ) =~ s/^.*\b(\w+)\.pl$/$1/;
- $id_str = ' $Revision: 275224 $ ';
+ ( my $script_name = $0 ) =~ s/^.*\b(\w+)\.pl$/$1/;
+ my $id_str = ' $Revision: 275224 $ ';
+ my $script_rev = 0;
$id_str =~ /Revision:\s+(\S+)\s+\$/
? ($script_rev = $1) : ($script_rev = "-");
@@ -87,100 +85,95 @@
# #
#########################
- $modules_number++;
- $perl = "";
- $remove_command = "";
- use Cwd 'chdir';
- $perl = 'perl';
- $remove_command = 'rm -rf';
- $nul = '> /dev/null';
+ my $modules_number++;
+ my $perl = 'perl';
+ my $remove_command = 'rm -rf';
+ my $nul = '> /dev/null';
- $processes_to_run = 0;
+ my $processes_to_run = 0;
# delete $pid when not needed
- %projects_deps_hash = (); # hash of projects with no dependencies,
+ my %projects_deps_hash = (); # hash of projects with no dependencies,
# that could be built now
- %broken_build = (); # hash of hashes of the modules,
+ my %broken_build = (); # hash of hashes of the modules,
# where build was broken (error occurred)
- %folders_hashes = ();
- %running_children = ();
- $dependencies_hash = 0;
- $cmd_file = '';
- $build_all_parents = 0;
- $show = 0;
- $checkparents = 0;
- $deliver = 0;
- $pre_custom_job = '';
- $custom_job = '';
- $post_custom_job = '';
- %local_deps_hash = ();
- %PathHash = ();
- %PlatformHash = ();
- %AliveDependencies = ();
- %global_deps_hash = (); # hash of dependencies of the all modules
- %global_deps_hash_backup = (); # backup hash of external dependencies of the all modules
- %module_deps_hash_backup = (); # backup hash of internal dependencies for aech module
- %modules_with_errors = (); # hash of modules hashes, which cannot be built further
- @broken_modules_names = (); # array of modules, which cannot be built further
- @dmake_args = ();
- %dead_parents = ();
- $initial_module = '';
- $all_dependent = 1; # a flag indicating if the hash has independent keys
- $build_from_with_branches = '';
- $build_all_cont = '';
- $build_since = '';
- $dlv_switch = '';
- $child = 0;
- %processes_hash = ();
- %module_announced = ();
- $prepare = ''; # prepare for following incompatible build
- $ignore = '';
- $html = '';
- @ignored_errors = ();
- %incompatibles = ();
- %skip_modules = ();
- %exclude_branches = ();
- $only_platform = ''; # the only platform to prepare
- $only_common = ''; # the only common output tree to delete when preparing
- %build_modes = ();
- $maximal_processes = 0; # the max number of the processes run
- %modules_types = (); # modules types ('mod', 'img', 'lnk') hash
- %platforms = (); # platforms available or being working with
- %platforms_to_copy = (); # copy output trees for the platforms when --prepare
- $tmp_dir = get_tmp_dir(); # temp directory for checkout and other actions
- @possible_build_lists = ('build.lst', 'build.xlist'); # build lists names
- %build_list_paths = (); # build lists names
- %build_lists_hash = (); # hash of arrays $build_lists_hash{$module} = \($path, $xml_list_object)
- $pre_job = 'announce'; # job to add for not-single module build
- $post_job = ''; # -"-
- %windows_procs = ();
- @warnings = (); # array of warnings to be shown at the end of the process
- @errors = (); # array of errors to be shown at the end of the process
- %html_info = (); # hash containing all necessary info for generating of html page
- %module_by_hash = (); # hash containing all modules names as values and correspondent hashes as keys
- %build_in_progress = (); # hash of modules currently being built
- %build_is_finished = (); # hash of already built modules
- %modules_with_errors = (); # hash of modules with build errors
- %build_in_progress_shown = (); # hash of modules being built,
+ my %folders_hashes = ();
+ my %running_children = ();
+ my $dependencies_hash = 0;
+ my $cmd_file = '';
+ my $build_all_parents = 0;
+ my $show = 0;
+ my $checkparents = 0;
+ my $deliver = 0;
+ my $pre_custom_job = '';
+ my $custom_job = '';
+ my $post_custom_job = '';
+ my %local_deps_hash = ();
+ my %path_hash = ();
+ my %platform_hash = ();
+ my %alive_dependencies = ();
+ my %global_deps_hash = (); # hash of dependencies of the all modules
+ my %global_deps_hash_backup = (); # backup hash of external dependencies of the all modules
+ my %module_deps_hash_backup = (); # backup hash of internal dependencies for aech module
+ my @broken_modules_names = (); # array of modules, which cannot be built further
+ my @dmake_args = ();
+ my %dead_parents = ();
+ my $initial_module = '';
+ my $all_dependent = 1; # a flag indicating if the hash has independent keys
+ my $build_from_with_branches = '';
+ my $build_all_cont = '';
+ my $build_since = '';
+ my $dlv_switch = '';
+ my $child = 0;
+ my %processes_hash = ();
+ my %module_announced = ();
+ my $prepare = ''; # prepare for following incompatible build
+ my $ignore = '';
+ my $html = '';
+ my @ignored_errors = ();
+ my %incompatibles = ();
+ my %skip_modules = ();
+ my %exclude_branches = ();
+ my $only_platform = ''; # the only platform to prepare
+ my $only_common = ''; # the only common output tree to delete when preparing
+ my %build_modes = ();
+ my $maximal_processes = 0; # the max number of the processes run
+ my %modules_types = (); # modules types ('mod', 'img', 'lnk') hash
+ my %platforms = (); # platforms available or being working with
+ my %platforms_to_copy = (); # copy output trees for the platforms when --prepare
+ my $tmp_dir = get_tmp_dir(); # temp directory for checkout and other actions
+ my @possible_build_lists = ('build.lst', 'build.xlist'); # build lists names
+ my %build_list_paths = (); # build lists names
+ my %build_lists_hash = (); # hash of arrays $build_lists_hash{$module} = \($path, $xml_list_object)
+ my $pre_job = 'announce'; # job to add for not-single module build
+ my $post_job = ''; # -"-
+ my @warnings = (); # array of warnings to be shown at the end of the process
+ my @errors = (); # array of errors to be shown at the end of the process
+ my %html_info = (); # hash containing all necessary info for generating of html page
+ my %module_by_hash = (); # hash containing all modules names as values and correspondent hashes as keys
+ my %build_in_progress = (); # hash of modules currently being built
+ my %build_is_finished = (); # hash of already built modules
+ my %modules_with_errors = (); # hash of modules with build errors
+ my %build_in_progress_shown = (); # hash of modules being built,
# and shown last time (to keep order)
- $build_time = time;
- %jobs_hash = ();
- $html_path = undef;
- $build_finished = 0;
- $html_file = '';
- %had_error = (); # hack for mysterious windows problems - try run dmake 2 times if first time there was an error
- $mkout = CorrectPath("$ENV{SOLARENV}/bin/mkout.pl");
- %weights_hash = (); # hash contains info about how many modules are dependent from one module
- $grab_output = 1;
- $stop_build_on_error = 0; # for multiprocessing mode: do not build further module if there is an error
- $interactive = 0; # for interactive mode... (for testing purpose enabled by default)
- $parent_process = 1;
- $server_mode = 0;
- $setenv_string = ''; # string for configuration of the client environment
- $ports_string = ''; # string with possible ports for server
- @server_ports = ();
- $html_port = 0;
- $server_socket_obj = undef; # socket object for server
- $html_socket_obj = undef; # socket object for server
+ my $build_time = time;
+ my %jobs_hash = ();
+ my $html_path = undef;
+ my $build_finished = 0;
+ my $html_file = '';
+ my %had_error = (); # hack for mysterious windows problems - try run dmake 2 times if first time there was an error
+ my $mkout = correct_path("$ENV{SOLARENV}/bin/mkout.pl");
+ my %weights_hash = (); # hash contains info about how many modules are dependent from one module
+ my $grab_output = 1;
+ my $stop_build_on_error = 0; # for multiprocessing mode: do not build further module if there is an error
+ my $interactive = 0; # for interactive mode... (for testing purpose enabled by default)
+ my $parent_process = 1;
+ my $server_mode = 0;
+ my $setenv_string = ''; # string for configuration of the client environment
+ my $ports_string = ''; # string with possible ports for server
+ my @server_ports = ();
+ my $html_port = 0;
+ my $server_socket_obj = undef; # socket object for server
+ my $html_socket_obj = undef; # socket object for server
my %clients_jobs = ();
my %clients_times = ();
my $client_timeout = 0; # time for client to build (in sec)...
@@ -199,7 +192,7 @@
my $clear_config = 0;
my $finished_children = 0;
my $debug = 0;
- %module_deps_hash_pids = ();
+ my %module_deps_hash_pids = ();
my @argv = @ARGV;
my $source_config_file;
my $zenity_pid = 0;
@@ -208,6 +201,16 @@
my $zenity_err = '';
my $verbose = 0;
+ my @modules_built = ();
+ my $deliver_command = $ENV{DELIVER};
+ my %prj_platform = ();
+ my $check_error_string = '';
+ my $dmake = '';
+ my $dmake_args = '';
+ my $echo = '';
+ my $new_line = "\n";
+ my $incompatible = 0;
+ my $local_host_ip = 'localhost';
### main ###
get_options();
@@ -216,10 +219,9 @@
zenity_tooltip("Starting build.");
get_build_modes();
- %deliver_env = ();
+ my %deliver_env = ();
if ($prepare) {
get_platforms(\%platforms);
- @modules_built = ();
$deliver_env{'BUILD_SOSL'}++;
$deliver_env{'COMMON_OUTDIR'}++;
@@ -229,14 +231,15 @@
$deliver_env{'OUTPATH'}++;
$deliver_env{'L10N_framework'}++;
};
- $StandDir = get_stand_dir(); # This also sets $initial_module
- $source_config = SourceConfig -> new($StandDir);
+ my $workspace_path = get_workspace_path(); # This also sets $initial_module
+ my $source_config = SourceConfig -> new($workspace_path);
+ check_partial_gnumake_build($initial_module);
if ($html) {
if (defined $html_path) {
- $html_file = CorrectPath($html_path . '/' . $ENV{INPATH}. '.build.html');
+ $html_file = correct_path($html_path . '/' . $ENV{INPATH}. '.build.html');
} else {
- my $log_directory = Cwd::realpath(CorrectPath($StandDir . '/..')) . '/log';
+ my $log_directory = Cwd::realpath(correct_path($workspace_path . '/..')) . '/log';
if ((!-d $log_directory) && (!mkdir($log_directory))) {
print_error("Cannot create $log_directory for writing html file\n");
};
@@ -252,16 +255,9 @@
get_module_and_buildlist_paths();
provide_consistency() if (defined $ENV{CWS_WORK_STAMP} && defined($ENV{COMMON_ENV_TOOLS}));
- $deliver_command = $ENV{DELIVER};
$deliver_command .= ' -verbose' if ($html || $verbose);
$deliver_command .= ' '. $dlv_switch if ($dlv_switch);
$ENV{mk_tmp}++;
- %prj_platform = ();
- $check_error_string = '';
- $dmake = '';
- $dmake_args = '';
- $echo = '';
- $new_line = "\n";
get_commands();
unlink ($cmd_file);
@@ -305,7 +301,7 @@
print $echo."$_\n";
};
print $new_line;
- print $echo."not found and couldn't be built. Dependencies on that module(s) ignored. Maybe you should correct build lists.\n";
+ print $echo."not found and couldn't be built. dependencies on that module(s) ignored. Maybe you should correct build lists.\n";
print $new_line;
do_exit(1) if ($checkparents);
};
@@ -362,7 +358,7 @@ sub generate_config_file {
sub start_interactive {
- $pid = open(HTML_PIPE, "-|");
+ my $pid = open(HTML_PIPE, "-|");
print "Pipe is open\n";
if ($pid) { # parent
@@ -544,7 +540,7 @@ sub get_build_list_path {
my $possible_dir_path = $module_paths{$_}.'/prj/';
if (-d $possible_dir_path) {
foreach my $build_list (@possible_build_lists) {
- my $possible_build_list_path = CorrectPath($possible_dir_path . $build_list);
+ my $possible_build_list_path = correct_path($possible_dir_path . $build_list);
if (-f $possible_build_list_path) {
$build_list_paths{$module} = $possible_build_list_path;
return $possible_build_list_path;
@@ -554,7 +550,7 @@ sub get_build_list_path {
};
};
$dead_parents{$module}++;
- $build_list_paths{$module} = CorrectPath(retrieve_build_list($module)) if (!defined $build_list_paths{$module});
+ $build_list_paths{$module} = correct_path(retrieve_build_list($module)) if (!defined $build_list_paths{$module});
return $build_list_paths{$module};
};
@@ -577,9 +573,9 @@ sub get_parent_deps {
$parents_deps_hash{$_}++;
}
$$deps_hash{$module} = \%parents_deps_hash;
- foreach $Parent (keys %parents_deps_hash) {
- if (!defined($$deps_hash{$Parent}) && (!defined $exclude_branches{$module})) {
- push (@unresolved_parents, $Parent);
+ foreach my $parent (keys %parents_deps_hash) {
+ if (!defined($$deps_hash{$parent}) && (!defined $exclude_branches{$module})) {
+ push (@unresolved_parents, $parent);
};
};
};
@@ -646,7 +642,7 @@ sub reverse_dependencies {
#
sub build_all {
if ($build_all_parents) {
- my ($Prj, $PrjDir, $orig_prj);
+ my ($prj, $prj_dir, $orig_prj);
get_parent_deps( $initial_module, \%global_deps_hash);
if (scalar keys %active_modules) {
$active_modules{$initial_module}++;
@@ -661,7 +657,9 @@ sub build_all {
prepare_build_from_with_branches(\%global_deps_hash, \%reversed_full_deps_hash);
}
if ($build_all_cont || $build_since) {
+ store_weights(\%global_deps_hash);
prepare_build_all_cont(\%global_deps_hash);
+ %weights_hash = ();
};
if ($generate_config) {
%add_to_config = %global_deps_hash;
@@ -669,11 +667,11 @@ sub build_all {
exit 0;
} elsif ($incompatible) {
my @missing_modules = ();
- foreach (keys %global_deps_hash) {
+ foreach (sort keys %global_deps_hash) {
push(@missing_modules, $_) if (!defined $active_modules{$_});
};
if (scalar @missing_modules) {
- print_error("There are modules:\n@missing_modules\n\nthat should be built, but they are not activated. Please, verify your $source_config_file.\n");
+ push(@warnings, "The modules: \"@missing_modules\" should be have been built, but they are not activated and have been skipped. Be aware, that can cause compatibility problems. Maybe you should verify your $source_config_file.\n");
};
};
foreach my $module (keys %dead_parents, keys %skip_modules) {
@@ -692,26 +690,26 @@ sub build_all {
if ($server_mode) {
run_server();
};
- while ($Prj = pick_prj_to_build(\%global_deps_hash)) {
- if (!defined $dead_parents{$Prj}) {
+ while ($prj = pick_prj_to_build(\%global_deps_hash)) {
+ if (!defined $dead_parents{$prj}) {
if (scalar keys %broken_build) {
- print $echo . "Skipping project $Prj because of error(s)\n";
- remove_from_dependencies($Prj, \%global_deps_hash);
- $build_is_finished{$Prj}++;
+ print $echo . "Skipping project $prj because of error(s)\n";
+ remove_from_dependencies($prj, \%global_deps_hash);
+ $build_is_finished{$prj}++;
next;
};
- $PrjDir = $module_paths{$Prj};
- get_module_dep_hash($Prj, \%local_deps_hash);
- my $info_hash = $html_info{$Prj};
- $$info_hash{DIRS} = check_deps_hash(\%local_deps_hash, $Prj);
- $module_by_hash{\%local_deps_hash} = $Prj;
+ $prj_dir = $module_paths{$prj};
+ get_module_dep_hash($prj, \%local_deps_hash);
+ my $info_hash = $html_info{$prj};
+ $$info_hash{DIRS} = check_deps_hash(\%local_deps_hash, $prj);
+ $module_by_hash{\%local_deps_hash} = $prj;
build_dependent(\%local_deps_hash);
print $check_error_string;
};
- remove_from_dependencies($Prj, \%global_deps_hash);
- $build_is_finished{$Prj}++;
+ remove_from_dependencies($prj, \%global_deps_hash);
+ $build_is_finished{$prj}++;
};
} else {
store_build_list_content($initial_module);
@@ -731,7 +729,7 @@ sub build_all {
sub backup_deps_hash {
my $source_hash = shift;
my $backup_hash = shift;
- foreach $key (keys %$source_hash) {
+ foreach my $key (keys %$source_hash) {
my %values_hash = %{$$source_hash{$key}};
$$backup_hash{$key} = \%values_hash;
};
@@ -792,6 +790,7 @@ sub dmake_dir {
html_store_job_info(\%local_deps_hash, $job_name, $error_code) if (!$child);
};
+
if ($error_code && $ignore) {
push(@ignored_errors, $job_name);
$error_code = 0;
@@ -808,6 +807,7 @@ sub dmake_dir {
};
_exit(0);
} elsif ($error_code && ($error_code != -1)) {
+ $broken_build{$job_name} = $error_code;
return $error_code;
};
};
@@ -896,8 +896,8 @@ sub get_deps_from_object {
my ($module, $build_list_object, $dependencies_hash) = @_;
foreach my $dir ($build_list_object->getJobDirectories("make", $ENV{GUI})) {
- $PathHash{$dir} = $module_paths{$module};
- $PathHash{$dir} .= $dir if ($dir ne '/');
+ $path_hash{$dir} = $module_paths{$module};
+ $path_hash{$dir} .= $dir if ($dir ne '/');
my %deps_hash = ();
foreach my $dep ($build_list_object->getJobDependencies($dir, "make", $ENV{GUI})) {
@@ -928,7 +928,7 @@ sub get_module_dep_hash {
#
sub get_deps_hash {
my ($dummy, $module_to_build);
- %DeadDependencies = ();
+ my %dead_dependencies = ();
$module_to_build = shift;
my $dependencies_hash = shift;
if ($custom_job) {
@@ -958,37 +958,37 @@ sub get_deps_hash {
};
s/\r\n//;
if ($_ =~ /\s+nmake\s+/o) {
- my ($Platform, $Dependencies, $Dir, $DirAlias);
+ my ($platform, $dependencies, $dir, $dir_alias);
my %deps_hash = ();
- $Dependencies = $';
+ $dependencies = $';
$dummy = $`;
$dummy =~ /(\S+)\s+(\S*)/o;
- $Dir = $2;
- $Dependencies =~ /(\w+)/o;
- $Platform = $1;
- $Dependencies = $';
- while ($Dependencies =~ /,(\w+)/o) {
- $Dependencies = $';
+ $dir = $2;
+ $dependencies =~ /(\w+)/o;
+ $platform = $1;
+ $dependencies = $';
+ while ($dependencies =~ /,(\w+)/o) {
+ $dependencies = $';
};
- $Dependencies =~ /\s+(\S+)\s+/o;
- $DirAlias = $1;
- if (!CheckPlatform($Platform)) {
- next if (defined $PlatformHash{$DirAlias});
- $DeadDependencies{$DirAlias}++;
+ $dependencies =~ /\s+(\S+)\s+/o;
+ $dir_alias = $1;
+ if (!check_platform($platform)) {
+ next if (defined $platform_hash{$dir_alias});
+ $dead_dependencies{$dir_alias}++;
next;
};
- delete $DeadDependencies{$DirAlias} if (defined $DeadDependencies{$DirAlias});
- print_error("Directory alias $DirAlias is defined at least twice!! Please, correct build.lst in module $module_to_build") if (defined $$dependencies_hash{$DirAlias});
- $PlatformHash{$DirAlias}++;
- $Dependencies = $';
- print_error("$module_to_build/prj/build.lst has wrongly written dependencies string:\n$_\n") if (!$Dependencies);
- $deps_hash{$_}++ foreach (GetDependenciesArray($Dependencies));
- $$dependencies_hash{$DirAlias} = \%deps_hash;
+ delete $dead_dependencies{$dir_alias} if (defined $dead_dependencies{$dir_alias});
+ print_error("Directory alias $dir_alias is defined at least twice!! Please, correct build.lst in module $module_to_build") if (defined $$dependencies_hash{$dir_alias});
+ $platform_hash{$dir_alias}++;
+ $dependencies = $';
+ print_error("$module_to_build/prj/build.lst has wrongly written dependencies string:\n$_\n") if (!$dependencies);
+ $deps_hash{$_}++ foreach (get_dependency_array($dependencies));
+ $$dependencies_hash{$dir_alias} = \%deps_hash;
my $local_dir = '';
- if ($Dir =~ /(\\|\/)/o) {
+ if ($dir =~ /(\\|\/)/o) {
$local_dir = "/$'";
};
- $PathHash{$DirAlias} = CorrectPath($module_paths{$module_to_build} . $local_dir);
+ $path_hash{$dir_alias} = correct_path($module_paths{$module_to_build} . $local_dir);
} elsif ($_ !~ /^\s*$/ && $_ !~ /^\w*\s/o) {
chomp;
push(@errors, $_);
@@ -1005,15 +1005,15 @@ sub get_deps_hash {
print_error($message);
};
};
- foreach my $alias (keys %DeadDependencies) {
- next if defined $AliveDependencies{$alias};
- if (!IsHashNative($alias)) {
+ foreach my $alias (keys %dead_dependencies) {
+ next if defined $alive_dependencies{$alias};
+# if (!IsHashNative($alias)) {
remove_from_dependencies($alias, $dependencies_hash);
- delete $DeadDependencies{$alias};
- };
+ delete $dead_dependencies{$alias};
+# };
};
};
- resolve_aliases($dependencies_hash, \%PathHash);
+ resolve_aliases($dependencies_hash, \%path_hash);
if (!$prepare) {
add_prerequisite_job($dependencies_hash, $module_to_build, $pre_custom_job);
add_prerequisite_job($dependencies_hash, $module_to_build, $pre_job);
@@ -1032,7 +1032,7 @@ sub add_prerequisite_job {
return if (!$job);
$job = "$module $job";
foreach (keys %$dependencies_hash) {
- $deps_hash = $$dependencies_hash{$_};
+ my $deps_hash = $$dependencies_hash{$_};
$$deps_hash{$job}++;
};
$$dependencies_hash{$job} = {};
@@ -1054,15 +1054,15 @@ sub add_dependent_job {
# this procedure converts aliases to absolute paths
#
sub resolve_aliases {
- my ($dependencies_hash, $PathHash) = @_;
+ my ($dependencies_hash, $path_hash) = @_;
foreach my $dir_alias (keys %$dependencies_hash) {
my $aliases_hash_ref = $$dependencies_hash{$dir_alias};
my %paths_hash = ();
foreach (keys %$aliases_hash_ref) {
- $paths_hash{$$PathHash{$_}}++;
+ $paths_hash{$$path_hash{$_}}++;
};
delete $$dependencies_hash{$dir_alias};
- $$dependencies_hash{$$PathHash{$dir_alias}} = \%paths_hash;
+ $$dependencies_hash{$$path_hash{$dir_alias}} = \%paths_hash;
};
};
@@ -1082,7 +1082,7 @@ sub mark_platform {
# Convert path from abstract (with '\' and/or '/' delimiters)
# to system-independent
#
-sub CorrectPath {
+sub correct_path {
$_ = shift;
s/\\/\//g;
return $_;
@@ -1128,50 +1128,50 @@ sub get_commands {
#
# Procedure retrieves list of projects to be built from build.lst
#
-sub get_stand_dir {
+sub get_workspace_path {
if (!defined $ENV{GUI}) {
$ENV{mk_tmp} = '';
die "No environment set\n";
};
my $repository_helper = RepositoryHelper->new();
- my $StandDir = $repository_helper->get_repository_root();
+ my $workspace_path = $repository_helper->get_repository_root();
my $initial_dir = $repository_helper->get_initial_directory();
- if ($StandDir eq $initial_dir) {
+ if ($workspace_path eq $initial_dir) {
print_error('Found no project to build');
};
- $initial_module = substr($initial_dir, length($StandDir) + 1);
+ $initial_module = substr($initial_dir, length($workspace_path) + 1);
if ($initial_module =~ /(\\|\/)/) {
$initial_module = $`;
};
- $module_paths{$initial_module} = $StandDir . "/$initial_module";
- return $StandDir;
+ $module_paths{$initial_module} = $workspace_path . "/$initial_module";
+ return $workspace_path;
};
#
# Picks project which can be built now from hash and then deletes it from hash
#
sub pick_prj_to_build {
- my $DepsHash = shift;
+ my $deps_hash = shift;
get_html_orders();
- my $Prj = find_indep_prj($DepsHash);
- if ($Prj) {
- delete $$DepsHash{$Prj};
+ my $prj = find_indep_prj($deps_hash);
+ if ($prj) {
+ delete $$deps_hash{$prj};
generate_html_file();
};
- return $Prj;
+ return $prj;
};
#
# Make a decision if the project should be built on this platform
#
-sub CheckPlatform {
- my $Platform = shift;
- return 1 if ($Platform eq 'all');
- return 1 if (($ENV{GUI} eq 'WIN') && ($Platform eq 'w'));
- return 1 if (($ENV{GUI} eq 'UNX') && ($Platform eq 'u'));
- return 1 if (($ENV{GUI} eq 'OS2') && ($Platform eq 'p'));
+sub check_platform {
+ my $platform = shift;
+ return 1 if ($platform eq 'all');
+ return 1 if (($ENV{GUI} eq 'WIN') && ($platform eq 'w'));
+ return 1 if (($ENV{GUI} eq 'UNX') && ($platform eq 'u'));
+ return 1 if (($ENV{GUI} eq 'OS2') && ($platform eq 'p'));
return 1 if (($ENV{GUI} eq 'WNT') &&
- (($Platform eq 'w') || ($Platform eq 'n')));
+ (($platform eq 'w') || ($platform eq 'n')));
return 0;
};
@@ -1180,14 +1180,14 @@ sub CheckPlatform {
# of all from given project dependent projects
#
sub remove_from_dependencies {
- my ($ExclPrj, $i, $Prj, $Dependencies);
- $ExclPrj = shift;
- my $ExclPrj_orig = '';
- $ExclPrj_orig = $` if (($ExclPrj =~ /\.lnk$/o) || ($ExclPrj =~ /\.link$/o));
- $Dependencies = shift;
- foreach $Prj (keys %$Dependencies) {
- my $prj_deps_hash = $$Dependencies{$Prj};
- delete $$prj_deps_hash{$ExclPrj} if (defined $$prj_deps_hash{$ExclPrj});
+ my ($exclude_prj, $i, $prj, $dependencies);
+ $exclude_prj = shift;
+ my $exclude_prj_orig = '';
+ $exclude_prj_orig = $` if (($exclude_prj =~ /\.lnk$/o) || ($exclude_prj =~ /\.link$/o));
+ $dependencies = shift;
+ foreach $prj (keys %$dependencies) {
+ my $prj_deps_hash = $$dependencies{$prj};
+ delete $$prj_deps_hash{$exclude_prj} if (defined $$prj_deps_hash{$exclude_prj});
};
};
@@ -1209,8 +1209,8 @@ sub check_deps_hash {
do {
$consistent = '';
- foreach $key (sort keys %deps_hash) {
- $local_deps_ref = $deps_hash{$key};
+ foreach my $key (sort keys %deps_hash) {
+ my $local_deps_ref = $deps_hash{$key};
if (!scalar keys %$local_deps_ref) {
if (defined $module) {
$build_number++;
@@ -1244,7 +1244,7 @@ sub check_deps_hash {
BUILD_NUMBER => $build_number,
STATUS => 'waiting',
LOG_PATH => '../' . $source_config->get_module_repository($module) . "/$module/$ENV{INPATH}/misc/logs/$log_name",
- LONG_LOG_PATH => CorrectPath($module_paths{$module} . "/$ENV{INPATH}/misc/logs/$log_name"),
+ LONG_LOG_PATH => correct_path($module_paths{$module} . "/$ENV{INPATH}/misc/logs/$log_name"),
START_TIME => 0,
FINISH_TIME => 0,
CLIENT => '-'
@@ -1277,16 +1277,19 @@ sub check_deps_hash {
# Find project with no dependencies left.
#
sub find_indep_prj {
- my ($Dependencies, $i);
+ my ($dependencies, $i);
my @candidates = ();
$all_dependent = 1;
handle_dead_children(0) if ($processes_to_run);
my $children = children_number();
return '' if (!$server_mode && $children && ($children >= $processes_to_run));
- $Dependencies = shift;
- if (scalar keys %$Dependencies) {
- foreach my $job (keys %$Dependencies) {
- push(@candidates, $job) if (!scalar keys %{$$Dependencies{$job}});
+ $dependencies = shift;
+ if (scalar keys %$dependencies) {
+ foreach my $job (keys %$dependencies) {
+ if (!scalar keys %{$$dependencies{$job}}) {
+ push(@candidates, $job);
+ last if (!$processes_to_run);
+ };
};
if (scalar @candidates) {
$all_dependent = 0;
@@ -1325,56 +1328,55 @@ sub get_waiters_number {
#
# Check if given entry is HASH-native, that is not a user-defined data
#
-sub IsHashNative {
- my $Prj = shift;
- return 1 if ($Prj =~ /^HASH\(0x[\d | a | b | c | d | e | f]{6,}\)/);
- return 0;
-};
+#sub IsHashNative {
+# my $prj = shift;
+# return 1 if ($prj =~ /^HASH\(0x[\d | a | b | c | d | e | f]{6,}\)/);
+# return 0;
+#};
#
# Getting array of dependencies from the string given
#
-sub GetDependenciesArray {
- my ($DepString, @Dependencies, $ParentPrj, $prj, $string);
- @Dependencies = ();
- $DepString = shift;
- $string = $DepString;
+sub get_dependency_array {
+ my ($dep_string, @dependencies, $parent_prj, $prj, $string);
+ @dependencies = ();
+ $dep_string = shift;
+ $string = $dep_string;
$prj = shift;
- while ($DepString !~ /^NULL/o) {
- print_error("Project $prj has wrongly written dependencies string:\n $string") if (!$DepString);
- $DepString =~ /(\S+)\s*/o;
- $ParentPrj = $1;
- $DepString = $';
- if ($ParentPrj =~ /\.(\w+)$/o) {
- $ParentPrj = $`;
- if (($prj_platform{$ParentPrj} ne $1) &&
- ($prj_platform{$ParentPrj} ne 'all')) {
- print_error ("$ParentPrj\.$1 is a wrongly dependency identifier!\nCheck if it is platform dependent");
+ while ($dep_string !~ /^NULL/o) {
+ print_error("Project $prj has wrongly written dependencies string:\n $string") if (!$dep_string);
+ $dep_string =~ /(\S+)\s*/o;
+ $parent_prj = $1;
+ $dep_string = $';
+ if ($parent_prj =~ /\.(\w+)$/o) {
+ $parent_prj = $`;
+ if (($prj_platform{$parent_prj} ne $1) &&
+ ($prj_platform{$parent_prj} ne 'all')) {
+ print_error ("$parent_prj\.$1 is a wrongly dependency identifier!\nCheck if it is platform dependent");
};
- $AliveDependencies{$ParentPrj}++ if (CheckPlatform($1));
- push(@Dependencies, $ParentPrj);
+ $alive_dependencies{$parent_prj}++ if (check_platform($1));
+ push(@dependencies, $parent_prj);
} else {
- if ((exists($prj_platform{$ParentPrj})) &&
- ($prj_platform{$ParentPrj} ne 'all') ) {
- print_error("$ParentPrj is a wrongly used dependency identifier!\nCheck if it is platform dependent");
+ if ((exists($prj_platform{$parent_prj})) &&
+ ($prj_platform{$parent_prj} ne 'all') ) {
+ print_error("$parent_prj is a wrongly used dependency identifier!\nCheck if it is platform dependent");
};
- push(@Dependencies, $ParentPrj);
+ push(@dependencies, $parent_prj);
};
};
- return @Dependencies;
+ return @dependencies;
};
#
# Getting current directory list
#
-sub GetDirectoryList {
- my ($Path);
- $Path = shift;
- opendir(CurrentDirList, $Path);
- @DirectoryList = readdir(CurrentDirList);
+sub get_directory_list {
+ my $path = shift;
+ opendir(CurrentDirList, $path);
+ my @directory_list = readdir(CurrentDirList);
closedir(CurrentDirList);
- return @DirectoryList;
+ return @directory_list;
};
sub print_error {
@@ -1600,7 +1602,7 @@ sub get_options {
};
if ($interactive) {
$html++; # enable html page generation...
- $local_host_name = hostname();
+ my $local_host_name = hostname();
$local_host_ip = inet_ntoa(scalar(gethostbyname($local_host_name)) || 'localhost');
}
# Default build modes(for OpenOffice.org)
@@ -1662,12 +1664,12 @@ sub get_switch_options {
sub cancel_build {
my $broken_modules_number = scalar @broken_modules_names;
- print "\n";
- print "-----------------------------------------------------------------------\n";
- print " Oh dear - something failed during the build - sorry !\n";
- print " For more help with debugging build errors, please see the section in:\n";
- print " http://wiki.documentfoundation.org/Development\n";
- print "\n";
+ print STDERR "\n";
+ print STDERR "-----------------------------------------------------------------------\n";
+ print STDERR " Oh dear - something failed during the build - sorry !\n";
+ print STDERR " For more help with debugging build errors, please see the section in:\n";
+ print STDERR " http://wiki.documentfoundation.org/Development\n";
+ print STDERR "\n";
if (!$broken_modules_number || !$build_all_parents) {
while (children_number()) {
@@ -1676,34 +1678,34 @@ sub cancel_build {
}
if (keys %broken_build) {
- print " internal build errors:\n\n";
+ print STDERR " internal build errors:\n\n";
foreach (keys %broken_build) {
- print "ERROR: error " . $broken_build{$_} . " occurred while making $_\n";
+ print STDERR "ERROR: error " . $broken_build{$_} . " occurred while making $_\n";
};
- print "\n";
+ print STDERR "\n";
}
my $module = shift @broken_modules_names;
if ($broken_modules_number > 1) {
- print " it seems you are using a threaded build, which means that the\n";
- print " actual compile error is probably hidden far above, and could be\n";
- print " inside any of these other modules:\n";
- print " @broken_modules_names\n";
- print " please re-run build inside each one to isolate the problem.\n";
+ print STDERR " it seems you are using a threaded build, which means that the\n";
+ print STDERR " actual compile error is probably hidden far above, and could be\n";
+ print STDERR " inside any of these other modules:\n";
+ print STDERR " @broken_modules_names\n";
+ print STDERR " please re-run build inside each one to isolate the problem.\n";
} else {
- print " it seems that the error is inside '$module', please re-run build\n";
- print " inside this module to isolate the error and/or test your fix:\n";
+ print STDERR " it seems that the error is inside '$module', please re-run build\n";
+ print STDERR " inside this module to isolate the error and/or test your fix:\n";
}
- print "-----------------------------------------------------------------------\n";
- print "\n";
- print "rm -Rf " . $ENV{'SRC_ROOT'} . "/$module/" . $ENV{'INPATH'} . " # optional module 'clean'\n";
- print "" . $ENV{'OOO_SHELL'} . "\n";
- print "cd " . $ENV{'SRC_ROOT'} . "\n";
- print "source ./" . $ENV{'ENV_SCRIPT'} . "\n";
- print "cd $module\n";
- print "build\n";
- print "\n";
- print "when the problem is isolated and fixed exit and re-run 'make' from the top-level\n";
+ print STDERR "-----------------------------------------------------------------------\n";
+ print STDERR "\n";
+ print STDERR "rm -Rf " . $ENV{'SRC_ROOT'} . "/$module/" . $ENV{'INPATH'} . " # optional module 'clean'\n";
+ print STDERR "" . $ENV{'OOO_SHELL'} . "\n";
+ print STDERR "cd " . $ENV{'SRC_ROOT'} . "\n";
+ print STDERR "source ./" . $ENV{'ENV_SCRIPT'} . "\n";
+ print STDERR "cd $module\n";
+ print STDERR "build\n";
+ print STDERR "\n";
+ print STDERR "when the problem is isolated and fixed exit and re-run 'make' from the top-level\n";
zenity_message("LibreOffice Build Failed!");
zenity_close();
@@ -1752,38 +1754,20 @@ sub handle_dead_children {
my $try_once_more = 0;
do {
my $pid = 0;
- if ($ENV{GUI} eq 'WNT' && !$cygwin) {
- foreach $pid (keys %processes_hash) {
- my $exit_code = undef;
- my $proc_obj = $windows_procs{$pid};
- $proc_obj->GetExitCode($exit_code);
- if ( $exit_code != 259 ) {
- $try_once_more = store_error($pid, $exit_code);
- delete $windows_procs{$pid};
- if ($try_once_more) {
- give_second_chance($pid);
- } else {
- clear_from_child($pid);
- };
- };
- };
- sleep 1 if (children_number() >= $processes_to_run || ($force_wait && ($running_children == children_number())));
+ if (children_number() >= $processes_to_run ||
+ ($force_wait && ($running_children == children_number()))) {
+ $pid = wait();
} else {
- if (children_number() >= $processes_to_run ||
- ($force_wait && ($running_children == children_number()))) {
- $pid = wait();
+ $pid = waitpid( -1, &WNOHANG);
+ };
+ if ($pid > 0) {
+ $try_once_more = store_error($pid, $?);
+ if ($try_once_more) {
+ give_second_chance($pid);
} else {
- $pid = waitpid( -1, &WNOHANG);
- };
- if ($pid > 0) {
- $try_once_more = store_error($pid, $?);
- if ($try_once_more) {
- give_second_chance($pid);
- } else {
- clear_from_child($pid);
- };
- $finished_children++;
+ clear_from_child($pid);
};
+ $finished_children++;
};
} while(children_number() >= $processes_to_run);
};
@@ -1915,19 +1899,19 @@ sub store_pid {
# Build everything that should be built multiprocessing version
#
sub build_multiprocessing {
- my $Prj;
+ my $prj;
do {
my $got_module = 0;
$finished_children = 0;
- while ($Prj = pick_prj_to_build(\%global_deps_hash)) {
- if (!defined $projects_deps_hash{$Prj}) {
- $projects_deps_hash{$Prj} = {};
- get_module_dep_hash($Prj, $projects_deps_hash{$Prj});
- my $info_hash = $html_info{$Prj};
- $$info_hash{DIRS} = check_deps_hash($projects_deps_hash{$Prj}, $Prj);
- $module_by_hash{$projects_deps_hash{$Prj}} = $Prj;
+ while ($prj = pick_prj_to_build(\%global_deps_hash)) {
+ if (!defined $projects_deps_hash{$prj}) {
+ $projects_deps_hash{$prj} = {};
+ get_module_dep_hash($prj, $projects_deps_hash{$prj});
+ my $info_hash = $html_info{$prj};
+ $$info_hash{DIRS} = check_deps_hash($projects_deps_hash{$prj}, $prj);
+ $module_by_hash{$projects_deps_hash{$prj}} = $prj;
}
- $module_build_queue{$Prj}++;
+ $module_build_queue{$prj}++;
$got_module++;
};
if (!$got_module) {
@@ -1968,7 +1952,7 @@ sub build_actual_queue {
do {
my @sorted_queue = sort {(scalar keys %{$projects_deps_hash{$a}}) <=> (scalar keys %{$projects_deps_hash{$b}})} keys %$build_queue;
my $started_children = 0;
- foreach $Prj (keys %$build_queue) {
+ foreach my $prj (keys %$build_queue) {
get_html_orders();
if ($reschedule_queue) {
$reschedule_queue = 0;
@@ -1981,19 +1965,19 @@ sub build_actual_queue {
};
return;
};
- if (defined $modules_with_errors{$projects_deps_hash{$Prj}} && !$ignore) {
- push (@broken_modules_names, $Prj);
- delete $$build_queue{$Prj};
+ if (defined $modules_with_errors{$projects_deps_hash{$prj}} && !$ignore) {
+ push (@broken_modules_names, $prj);
+ delete $$build_queue{$prj};
next;
};
- $started_children += build_dependent($projects_deps_hash{$Prj});
- if ((!scalar keys %{$projects_deps_hash{$Prj}}) &&
- !$running_children{$projects_deps_hash{$Prj}}) {
- if (!defined $modules_with_errors{$projects_deps_hash{$Prj}} || $ignore)
+ $started_children += build_dependent($projects_deps_hash{$prj});
+ if ((!scalar keys %{$projects_deps_hash{$prj}}) &&
+ !$running_children{$projects_deps_hash{$prj}}) {
+ if (!defined $modules_with_errors{$projects_deps_hash{$prj}} || $ignore)
{
- remove_from_dependencies($Prj, \%global_deps_hash);
- $build_is_finished{$Prj}++;
- delete $$build_queue{$Prj};
+ remove_from_dependencies($prj, \%global_deps_hash);
+ $build_is_finished{$prj}++;
+ delete $$build_queue{$prj};
$finished_projects++;
};
};
@@ -2012,6 +1996,7 @@ sub build_actual_queue {
sub run_job {
my ($job, $path, $registered_name) = @_;
my $job_to_do = $job;
+ my $error_code = 0;
print "$registered_name\n";
return 0 if ( $show );
$job_to_do = $deliver_command if ($job eq 'deliver');
@@ -2057,7 +2042,7 @@ sub do_custom_job {
};
if ($error_code) {
$modules_with_errors{$dependencies_hash}++;
- $broken_build{$module} = $error_code;
+# $broken_build{$module_job} = $error_code;
} else {
remove_from_dependencies($module_job, $dependencies_hash);
};
@@ -2070,31 +2055,31 @@ sub do_custom_job {
# Print announcement for module just started
#
sub announce_module {
- my $Prj = shift;
- $build_in_progress{$Prj}++;
- print_announce($Prj);
+ my $prj = shift;
+ $build_in_progress{$prj}++;
+ print_announce($prj);
};
sub print_announce {
- my $Prj = shift;
- return if (defined $module_announced{$Prj});
+ my $prj = shift;
+ return if (defined $module_announced{$prj});
my $prj_type = '';
- $prj_type = $modules_types{$Prj} if (defined $modules_types{$Prj});
+ $prj_type = $modules_types{$prj} if (defined $modules_types{$prj});
my $text;
if ($prj_type eq 'lnk') {
- if (!defined $active_modules{$Prj}) {
- $text = "Skipping module $Prj\n";
+ if (!defined $active_modules{$prj}) {
+ $text = "Skipping module $prj\n";
} else {
- $text = "Skipping link to $Prj\n";
+ $text = "Skipping link to $prj\n";
};
- $build_is_finished{$Prj}++;
+ $build_is_finished{$prj}++;
} elsif ($prj_type eq 'img') {
- $text = "Skipping incomplete $Prj\n";
- $build_is_finished{$Prj}++;
+ $text = "Skipping incomplete $prj\n";
+ $build_is_finished{$prj}++;
} elsif ($custom_job) {
- $text = "Running custom job \"$custom_job\" in module $Prj\n";
+ $text = "Running custom job \"$custom_job\" in module $prj\n";
} else {
- $text = "Building module $Prj\n";
+ $text = "Building module $prj\n";
};
my $announce_string = $new_line;
$announce_string .= $echo . "=============\n";
@@ -2104,7 +2089,7 @@ sub print_announce {
my $total_modules = scalar(keys %build_lists_hash);
my $modules_started = scalar(keys %module_announced) + 1;
zenity_tooltip("($modules_started/$total_modules) $text");
- $module_announced{$Prj}++;
+ $module_announced{$prj}++;
};
sub zenity_enabled {
@@ -2194,7 +2179,7 @@ sub modules_classify {
#
sub provide_consistency {
check_dir();
- foreach $var_ref (\$build_all_cont, \$build_since) {
+ foreach my $var_ref (\$build_all_cont, \$build_since) {
if ($$var_ref) {
return if (defined $module_paths{$$var_ref});
print_error("Cannot find module '$$var_ref'", 9);
@@ -2234,7 +2219,7 @@ sub clear_module {
closedir(DIRHANDLE);
foreach (@dir_content) {
next if (/^\.+$/);
- my $dir = CorrectPath($module_paths{$module}.'/'.$_);
+ my $dir = correct_path($module_paths{$module}.'/'.$_);
if ((!-d $dir.'/.svn') && is_output_tree($dir)) {
rmtree("$dir", 0, 1);
if (-d $dir) {
@@ -2289,28 +2274,24 @@ sub retrieve_build_list {
my $old_fh = select(STDOUT);
# Try to get global depencies from solver's build.lst if such exists
- my $solver_inc_dir = "$ENV{SOLARVER}/common";
+ my $solver_inc_dir = "$ENV{SOLARVER}/$ENV{INPATH}";
$solver_inc_dir .= $ENV{PROEXT} if (defined $ENV{PROEXT});
$solver_inc_dir .= '/inc';
$solver_inc_dir .= $ENV{UPDMINOREXT} if (defined $ENV{UPDMINOREXT});
$solver_inc_dir .= "/$module";
- $solver_inc_dir = CorrectPath($solver_inc_dir);
+ $solver_inc_dir = correct_path($solver_inc_dir);
$dead_parents{$module}++;
print "Fetching dependencies for module $module from solver...";
- foreach (@possible_build_lists) {
- my $possible_build_lst = "$solver_inc_dir/$_";
- if (-e $possible_build_lst) {
+ foreach my $onelist (@possible_build_lists) {
+ my $build_list_candidate = "$solver_inc_dir/$onelist";
+ if (-e $build_list_candidate) {
print " ok\n";
select($old_fh);
- return $possible_build_lst;
+ return $build_list_candidate;
};
}
- print " failed\n";
-
- if (!defined $dead_parents{$module}) {
- print "WARNING: Cannot figure out CWS for $module. Forgot to set CWS?\n";
- }
- select($old_fh);
+ print(" failed\n");
+ print_error("incomplete dependencies!\n");
return undef;
};
@@ -2321,7 +2302,7 @@ sub fix_permissions {
};
sub prepare_build_from_with_branches {
- ($full_deps_hash, $reversed_full_deps_hash) = @_;
+ my ($full_deps_hash, $reversed_full_deps_hash) = @_;
foreach my $prerequisite (keys %$full_deps_hash) {
foreach my $dependent_module (keys %incompatibles) {
if (defined ${$$reversed_full_deps_hash{$prerequisite}}{$dependent_module}) {
@@ -2415,7 +2396,7 @@ sub prepare_build_all_cont {
$border_prj = $build_all_cont if ($build_all_cont);
$border_prj = $build_since if ($build_since);
while ($prj = pick_prj_to_build($deps_hash)) {
- $orig_prj = '';
+ my $orig_prj = '';
$orig_prj = $` if ($prj =~ /\.lnk$/o);
$orig_prj = $` if ($prj =~ /\.link$/o);
if (($border_prj ne $prj) &&
@@ -2573,7 +2554,7 @@ sub read_ssolar_vars {
my ($verswitch, $source_root, $cwsname);
$verswitch = "-ver $ENV{UPDMINOR}" if (defined $ENV{UPDMINOR});
$source_root = '-sourceroot' if (defined $ENV{SOURCE_ROOT_USED});
- $cws_name = "-cwsname $ENV{CWS_WORK_STAMP}" if (defined $ENV{CWS_WORK_STAMP});
+ my $cws_name = "-cwsname $ENV{CWS_WORK_STAMP}" if (defined $ENV{CWS_WORK_STAMP});
my $param = "-$ENV{WORK_STAMP} $verswitch $source_root $cws_name $pro $platform";
my $ss_command = "$perl $setsolar -file $tmp_file $param $nul";
@@ -2610,8 +2591,8 @@ sub get_solar_vars {
sub get_current_module {
my $module_name = shift;
my $link_name = $module_name . '.lnk';
- $link_name .= '.link' if (-e $StandDir.$module_name . '.link');
- chdir $StandDir;
+ $link_name .= '.link' if (-e $workspace_path.$module_name . '.link');
+ chdir $workspace_path;
getcwd();
print "\nBreaking link to module $module_name";
my $result = rename $link_name, $module_name;
@@ -2632,7 +2613,7 @@ sub check_dir {
if (($current_module =~ /(\.lnk)$/) || ($current_module =~ /(\.link)$/)) {
$current_module = $`;
# we're dealing with a link => fallback to SOLARSRC under UNIX
- $StandDir = $ENV{SOLARSRC}.'/';
+ $workspace_path = $ENV{SOLARSRC}.'/';
get_current_module($current_module);
return;
} else {
@@ -2684,9 +2665,9 @@ sub do_exit {
if ( $^O eq 'os2' )
{
# perl 5.10 returns 'resource busy' for rmtree
- rmdir(CorrectPath($tmp_dir)) if ($tmp_dir);
+ rmdir(correct_path($tmp_dir)) if ($tmp_dir);
}
- rmtree(CorrectPath($tmp_dir), 0, 0) if ($tmp_dir);
+ rmtree(correct_path($tmp_dir), 0, 0) if ($tmp_dir);
print STDERR "Cannot delete $tmp_dir. Please remove it manually\n" if (-d $tmp_dir);
exit($exit_code);
};
@@ -2703,7 +2684,7 @@ sub sort_modules_appearance {
delete $build_in_progress{$_} if (defined $build_in_progress{$_});
delete $build_in_progress_shown{$_} if (defined $build_in_progress_shown{$_});
};
- @modules_order = sort keys %modules_with_errors;
+ my @modules_order = sort keys %modules_with_errors;
foreach (keys %modules_with_errors) {
delete $build_in_progress{$_} if (defined $build_in_progress{$_});
delete $build_is_finished{$_} if (defined $build_is_finished{$_});
@@ -3390,7 +3371,7 @@ sub run_server {
print $new_socket_obj $job_string_base . $job_string;
$clients_jobs{$pid} = $job_string;
$clients_times{$pid} = time;
- $children_running = children_number();
+ my $children_running = children_number();
$verbose_mode && print 'Running processes: ', $children_running, "\n";
$maximal_processes = $children_running if ($children_running > $maximal_processes);
} else {
@@ -3470,23 +3451,23 @@ sub pick_jobdir {
my $build_queue = shift;
my $i = 0;
foreach (@$build_queue) {
- $Prj = $$build_queue[$i];
- my $prj_deps_hash = $projects_deps_hash{$Prj};
+ my $prj = $$build_queue[$i];
+ my $prj_deps_hash = $projects_deps_hash{$prj};
if (defined $modules_with_errors{$prj_deps_hash} && !$ignore) {
- push (@broken_modules_names, $Prj);
+ push (@broken_modules_names, $prj);
splice (@$build_queue, $i, 1);
next;
};
$running_children{$prj_deps_hash} = 0 if (!defined $running_children{$prj_deps_hash});
- $child_nick = pick_prj_to_build($prj_deps_hash);
+ my $child_nick = pick_prj_to_build($prj_deps_hash);
if ($child_nick) {
return ($child_nick, $prj_deps_hash);
}
if ((!scalar keys %$prj_deps_hash) && !$running_children{$prj_deps_hash}) {
if (!defined $modules_with_errors{$prj_deps_hash} || $ignore)
{
- remove_from_dependencies($Prj, \%global_deps_hash);
- $build_is_finished{$Prj}++;
+ remove_from_dependencies($prj, \%global_deps_hash);
+ $build_is_finished{$prj}++;
splice (@$build_queue, $i, 1);
next;
};
@@ -3497,17 +3478,34 @@ sub pick_jobdir {
sub fill_modules_queue {
my $build_queue = shift;
- my $Prj;
- while ($Prj = pick_prj_to_build(\%global_deps_hash)) {
- push @$build_queue, $Prj;
- $projects_deps_hash{$Prj} = {};
- get_module_dep_hash($Prj, $projects_deps_hash{$Prj});
- my $info_hash = $html_info{$Prj};
- $$info_hash{DIRS} = check_deps_hash($projects_deps_hash{$Prj}, $Prj);
- $module_by_hash{$projects_deps_hash{$Prj}} = $Prj;
- };
- if (!$Prj && !children_number() && (!scalar @$build_queue)) {
+ my $prj;
+ while ($prj = pick_prj_to_build(\%global_deps_hash)) {
+ push @$build_queue, $prj;
+ $projects_deps_hash{$prj} = {};
+ get_module_dep_hash($prj, $projects_deps_hash{$prj});
+ my $info_hash = $html_info{$prj};
+ $$info_hash{DIRS} = check_deps_hash($projects_deps_hash{$prj}, $prj);
+ $module_by_hash{$projects_deps_hash{$prj}} = $prj;
+ };
+ if (!$prj && !children_number() && (!scalar @$build_queue)) {
cancel_build() if (scalar keys %broken_build);
mp_success_exit();
};
};
+
+sub is_gnumake_module {
+ my $module = shift;
+ my $bridgemakefile = $source_config->get_module_path($module) . "/prj/makefile.mk";
+ return (-e $bridgemakefile);
+}
+
+sub check_partial_gnumake_build {
+ if(!$build_all_parents && is_gnumake_module(shift)) {
+ print "This module has been migrated to GNU make.\n";
+ print "You can only use build --all/--since here with build.pl.\n";
+ print "To do the equivalent of 'build && deliver' call:\n";
+ print "\tmake -sr\n";
+ print "in the module root (This will modify the solver).\n";
+ exit 1;
+ }
+}
diff --git a/solenv/bin/buildalyzer b/solenv/bin/buildalyzer
new file mode 100644
index 000000000000..8b278e66b8e6
--- /dev/null
+++ b/solenv/bin/buildalyzer
@@ -0,0 +1,138 @@
+#!/usr/bin/env python
+import sys
+import os
+
+class CxxTarget:
+ def __init__(self, line):
+ self.directory = ''
+ self.outputfile = ''
+ self.includeflags = []
+ self.cxxflags = []
+ self.inputfiles = []
+ self.nolink = False
+ options = line[:-1].split(' ')
+ self.directory = options.pop(0)
+ parsing_outputfile = False
+ for option in options:
+ if parsing_outputfile:
+ self.outputfile = option
+ parsing_outputfile = False
+ elif option == '-o':
+ parsing_outputfile = True
+ elif option == '-c':
+ self.nolink = True
+ elif option.startswith('-I'):
+ self.includeflags.append(CxxFlag(option))
+ elif option.startswith('-'):
+ self.cxxflags.append(CxxFlag(option))
+ else:
+ self.inputfiles.append(option)
+ self.cxxflags.sort()
+ self.includeflags.sort()
+ cxxflags_tmp = dict()
+ for flag in self.cxxflags:
+ cxxflags_tmp[flag.name] = flag
+ self.cxxflags = cxxflags_tmp.values()
+ includeflags_tmp = dict()
+ for flag in self.includeflags:
+ includeflags_tmp[flag.name] = flag
+ self.includeflags = includeflags_tmp.values()
+ CxxTargets.by_name[self.getFullOutputname()] = self
+ def __str__(self):
+ return '%s' % (self.getFullOutputname())
+ def getFullOutputname(self):
+ return self.directory + '/' + self.outputfile
+ def __cmp__(self, other):
+ return cmp(self.getFullOutputname(), other.getFullOutputname())
+
+class CxxFlag:
+ def __init__(self, name):
+ self.name = name
+ CxxFlags.by_name[self.name] = self
+ def __str__(self):
+ return 'Flag %s' % (self.name)
+ def __cmp__(self, other):
+ return cmp(self.name, other.name)
+
+class CxxFlags:
+ by_name = dict()
+
+class CxxTargets:
+ by_name = dict()
+
+if __name__ == '__main__':
+ [CxxTarget(line) for line in sys.stdin.readlines()]
+ compile_targets = [target for target in CxxTargets.by_name.values() if target.nolink]
+ link_targets = [target for target in CxxTargets.by_name.values() if not target.nolink]
+ common_compile_flags = []
+ for flag in CxxFlags.by_name.values():
+ if sum((flag in target.cxxflags for target in compile_targets)) == len(compile_targets):
+ common_compile_flags.append(flag)
+ common_link_flags = []
+ for flag in CxxFlags.by_name.values():
+ if sum((flag in target.cxxflags for target in compile_targets)) == len(compile_targets):
+ common_link_flags.append(flag)
+
+ for target in compile_targets:
+ target.cxxflags = [flag for flag in target.cxxflags if flag not in common_compile_flags]
+ target.cxxflags.sort()
+ for target in link_targets:
+ target.cxxflags = [flag for flag in target.cxxflags if flag not in common_link_flags]
+ target.cxxflags.sort()
+
+ common_compile_flags.sort()
+ common_link_flags.sort()
+ print 'common compile flags: %s' % (' '.join(flag.name for flag in common_compile_flags))
+ print 'common link flags: %s' % (' '.join(flag.name for flag in common_link_flags))
+
+ by_flagset = dict()
+ for target in CxxTargets.by_name.values():
+ flagset = ' '.join((flag.name for flag in target.cxxflags))
+ if flagset not in by_flagset:
+ by_flagset[flagset] = list()
+ by_flagset[flagset].append(target)
+ for targetlist in by_flagset.values():
+ targetlist.sort()
+ flagsets = by_flagset.keys()
+ flagsets.sort()
+ print '%d compilerflag groups:' % (len(flagsets))
+ for flagset in flagsets:
+ print flagset
+ for target in by_flagset[flagset]:
+ print '%s' % (target)
+ print
+
+ by_flagset = dict()
+ for target in CxxTargets.by_name.values():
+ flagset = ' '.join((flag.name for flag in target.includeflags))
+ if flagset not in by_flagset:
+ by_flagset[flagset] = list()
+ by_flagset[flagset].append(target)
+ for targetlist in by_flagset.values():
+ targetlist.sort()
+ flagsets = by_flagset.keys()
+ flagsets.sort()
+ print '%d include flag groups:' % (len(flagsets))
+ for flagset in flagsets:
+ print flagset
+ for target in by_flagset[flagset]:
+ print '%s' % (target)
+ print
+
+ print 'sources:'
+ by_name = dict()
+ for target in CxxTargets.by_name.values():
+ by_name[os.path.basename(target.outputfile)] = target
+ names = by_name.keys()
+ names.sort()
+ for target in CxxTargets.by_name.values():
+ if len(target.inputfiles) > 1:
+ objects = [os.path.basename(object) for object in target.inputfiles]
+ sources = list()
+ for object in objects:
+ if object in by_name:
+ sources.append(by_name[object].inputfiles[0])
+ else:
+ sources.append('!!!!' + object)
+ sources.sort()
+ print '%s %s' % (target.getFullOutputname(), ' '.join(sources))
diff --git a/solenv/bin/createcomponent.xslt b/solenv/bin/createcomponent.xslt
new file mode 100644
index 000000000000..7f7695d533b3
--- /dev/null
+++ b/solenv/bin/createcomponent.xslt
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* 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.
+*
+**********************************************************************-->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:uc="http://openoffice.org/2010/uno-components">
+ <xsl:param name="uri"/>
+ <xsl:strip-space elements="*"/>
+ <xsl:template match="uc:component">
+ <xsl:copy>
+ <xsl:apply-templates select="@*"/>
+ <xsl:attribute name="uri">
+ <xsl:value-of select="$uri"/>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:copy>
+ </xsl:template>
+ <xsl:template match="*">
+ <xsl:copy>
+ <xsl:apply-templates select="@*"/>
+ <xsl:apply-templates/>
+ </xsl:copy>
+ </xsl:template>
+ <xsl:template match="@*">
+ <xsl:copy/>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/solenv/bin/deliver.pl b/solenv/bin/deliver.pl
index 898dd97a1dc7..0a945bc4e408 100755
--- a/solenv/bin/deliver.pl
+++ b/solenv/bin/deliver.pl
@@ -43,7 +43,7 @@ use File::Spec;
( $script_name = $0 ) =~ s/^.*\b(\w+)\.pl$/$1/;
-$id_str = ' $Revision$ ';
+$id_str = ' $Revision: 275594 $ ';
$id_str =~ /Revision:\s+(\S+)\s+\$/
? ($script_rev = $1) : ($script_rev = "-");
@@ -403,6 +403,8 @@ sub parse_options
{
my $arg;
my $dontdeletecommon = 0;
+ $opt_silent = 1 if ( defined $ENV{VERBOSE} && $ENV{VERBOSE} eq 'FALSE');
+ $opt_verbose = 1 if ( defined $ENV{VERBOSE} && $ENV{VERBOSE} eq 'TRUE');
while ( $arg = shift @ARGV ) {
$arg =~ /^-force$/ and $opt_force = 1 and next;
$arg =~ /^-check$/ and $opt_check = 1 and $opt_verbose = 1 and next;
@@ -422,15 +424,13 @@ sub parse_options
}
$dest = $arg;
}
- $opt_silent = 1 if ( !defined $ENV{VERBOSE} || (defined $ENV{VERBOSE} && $ENV{VERBOSE} eq 'FALSE')) && ( ! $opt_verbose );
- $opt_verbose = 1 if ( defined $ENV{VERBOSE} && $ENV{VERBOSE} eq 'TRUE') && ( ! $opt_silent );
# $dest and $opt_zip or $opt_delete are mutually exclusive
if ( $dest and ($opt_zip || $opt_delete) ) {
usage(1);
}
# $opt_silent and $opt_check or $opt_verbose are mutually exclusive
if ( ($opt_check or $opt_verbose) and $opt_silent ) {
- print STDERR "Error on command line: options '-check'/'-verbose' and '-quiet' are mutually exclusive.\n";
+ print STDERR "Error on command line: options '-check' and '-quiet' are mutually exclusive.\n";
usage(1);
}
if ($dontdeletecommon) {
@@ -678,6 +678,12 @@ sub glob_line
}
else {
# no globbing but renaming possible
+ # #i89066#
+ if (-d $to && -f $from) {
+ my $filename = File::Basename::basename($from);
+ $to .= '/' if ($to !~ /[\\|\/]$/);
+ $to .= $filename;
+ };
push(@globbed_files, [$from, $to]);
}
if ( $opt_checkdlst ) {
@@ -782,11 +788,6 @@ sub copy_if_newer
if ( $opt_delete ) {
print "REMOVE: $to\n" if $opt_verbose;
$rc = unlink($to) unless $opt_check;
- # handle special packaging of *.dylib files for Mac OS X
- if ( $to =~ s/\.dylib$/.jnilib/ ) {
- print "REMOVE: $to\n" if $opt_verbose;
- $rc += unlink "$to" unless $opt_check;
- }
return 1 if $opt_check;
return $rc;
}
@@ -851,19 +852,6 @@ sub copy_if_newer
# handle special packaging of *.dylib files for Mac OS X
if ( $^O eq 'darwin' )
{
- if ( $to =~ /\.dylib/ ) {
- system("macosx-create-bundle", $to);
- my $bundlelib = $to;
- $bundlelib =~ s/\.dylib$//;
- $bundlelib .= ".jnilib";
- if ( $opt_delete ) {
- print "REMOVE: $bundlelib\n" if $opt_verbose;
- unlink "$bundlelib" unless $opt_check;
- } else {
- push_on_ziplist($bundlelib) if $opt_zip;
- push_on_loglist("LINK", basename($to), "$bundlelib") if $opt_log;
- }
- }
system("macosx-create-bundle", "$to=$from.app") if ( -d "$from.app" );
system("ranlib", "$to" ) if ( $to =~ /\.a/ );
}
diff --git a/solenv/bin/linkoo b/solenv/bin/linkoo
index 297a736dfb75..3b09dcf8295a 100755
--- a/solenv/bin/linkoo
+++ b/solenv/bin/linkoo
@@ -251,7 +251,7 @@ sub scan_and_link_files($$$)
}
# Now scan the solver
- my $upd = 330;
+ my $upd = 300;
$upd = $ENV{UPD} if (defined $ENV{UPD});
scan_one_dir ($installed_files, \%build_files, "$build_path/solver/$upd/$target", 1);
diff --git a/solenv/bin/macosx-change-install-names.pl b/solenv/bin/macosx-change-install-names.pl
index 844c36f23c2b..52b2ffa343ec 100644
--- a/solenv/bin/macosx-change-install-names.pl
+++ b/solenv/bin/macosx-change-install-names.pl
@@ -60,6 +60,18 @@ sub action($$$)
'Usage: app|shl|extshl UREBIN|URELIB|OOO|SDK|BRAND|OXT|BOXT|NONE <filepath>*';
$type = shift @ARGV;
$loc = shift @ARGV;
+if ($type eq "SharedLibrary")
+{
+ $type = "shl";
+}
+if ($type eq "Executable")
+{
+ $type = "app"
+}
+if ($type eq "Library")
+{
+ $type = "shl"
+}
if ($type eq "extshl")
{
$type = "shl";
diff --git a/solenv/bin/macosx-create-bundle b/solenv/bin/macosx-create-bundle
index ba7d624e68f3..4b03e076f3ae 100755
--- a/solenv/bin/macosx-create-bundle
+++ b/solenv/bin/macosx-create-bundle
@@ -96,7 +96,7 @@ while [ $# != 0 ]; do
# Link jnilib
ln -sf "$inputfilename" "$outputdir/$inputjnilibname"
- printf "macosx-create-bundle: $outputdir/$inputjnilibname successfully created\n"
+ #printf "macosx-create-bundle: $outputdir/$inputjnilibname successfully created\n"
fi
else
printf "macosx-create-bundle: error: file is not an executable or shared library.\n" >&2
diff --git a/solenv/bin/make_installer.pl b/solenv/bin/make_installer.pl
index 955873c21f76..e46ffdf28662 100644
--- a/solenv/bin/make_installer.pl
+++ b/solenv/bin/make_installer.pl
@@ -54,11 +54,9 @@ use installer::packagepool;
use installer::parameter;
use installer::pathanalyzer;
use installer::profiles;
-use installer::regmerge;
use installer::scppatchsoname;
use installer::scpzipfiles;
use installer::scriptitems;
-use installer::servicesfile;
use installer::setupscript;
use installer::simplepackage;
use installer::sorter;
@@ -905,43 +903,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ )
installer::worker::resolving_hidden_flag($filesinproductlanguageresolvedarrayref, $allvariableshashref, "File", $languagestringref);
if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles13c.log", $filesinproductlanguageresolvedarrayref); }
- #####################################
- # Creating services.rdb
- #####################################
-
- if ( $allvariableshashref->{'SERVICESPROJEKT'} )
- {
- if (! $installer::globals::languagepack && ! $installer::globals::helppack)
- {
- # ATTENTION: For creating the services.rdb it is necessary to execute the native file
- # "regcomp" or "regcomp.exe". Therefore this function can only be executed on the
- # corresponding platform.
-
- if ( $installer::globals::servicesrdb_can_be_created )
- {
- installer::logger::print_message( "... creating preregistered services.rdb ...\n" );
-
- installer::servicesfile::create_services_rdb($allvariableshashref, $filesinproductlanguageresolvedarrayref, $includepatharrayref, $languagestringref);
- if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles14.log", $filesinproductlanguageresolvedarrayref); }
- }
- }
- }
-
- #####################################
- # Calls of regmerge
- #####################################
-
- if (!($installer::globals::is_copy_only_project))
- {
- if (! $installer::globals::languagepack && ! $installer::globals::helppack)
- {
- installer::logger::print_message( "... merging files into registry database ...\n" );
-
- installer::regmerge::merge_registration_files($filesinproductlanguageresolvedarrayref, $includepatharrayref, $languagestringref, $allvariableshashref);
- if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles14b.log", $filesinproductlanguageresolvedarrayref); }
- }
- }
-
############################################
# Collecting directories for epm list file
############################################
@@ -2039,7 +2000,7 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ )
installer::windows::registry::create_registry_table($registryitemsinproductlanguageresolvedarrayref, \@allregistrycomponents, $newidtdir, $languagesarrayref, $allvariableshashref);
if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "registryitems4.log", $registryitemsinproductlanguageresolvedarrayref); }
- installer::windows::component::create_component_table($filesinproductlanguageresolvedarrayref, $registryitemsinproductlanguageresolvedarrayref, $directoriesforepmarrayref, \@allfilecomponents, \@allregistrycomponents, $newidtdir, $componentid, $componentidkeypath);
+ installer::windows::component::create_component_table($filesinproductlanguageresolvedarrayref, $registryitemsinproductlanguageresolvedarrayref, $directoriesforepmarrayref, \@allfilecomponents, \@allregistrycomponents, $newidtdir, $componentid, $componentidkeypath, $allvariableshashref);
if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles19.log", $filesinproductlanguageresolvedarrayref); }
if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "registryitems5.log", $registryitemsinproductlanguageresolvedarrayref); }
@@ -2250,6 +2211,7 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ )
installer::logger::print_message( "... creating msi database (language $onelanguage) ... \n" );
installer::windows::msiglobal::set_uuid_into_component_table($languageidtdir, $allvariableshashref); # setting new GUID for the components using the tool uuidgen.exe
+ installer::windows::msiglobal::prepare_64bit_database($languageidtdir, $allvariableshashref); # making last 64 bit changes
installer::windows::msiglobal::create_msi_database($languageidtdir ,$msifilename);
# validating the database # ToDo
diff --git a/solenv/bin/mhids.pl b/solenv/bin/mhids.pl
deleted file mode 100644
index a1325032849c..000000000000
--- a/solenv/bin/mhids.pl
+++ /dev/null
@@ -1,384 +0,0 @@
-:
-eval 'exec perl -wS $0 ${1+"$@"}'
- if 0;
-#*************************************************************************
-#
-# 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.
-#
-#*************************************************************************
-
-my $filename;
-my $srs;
-my $prjname;
-my $defs;
-my $solarincludes;
-my $verbose = 0;
-
-my $debug = 0;
-my $filebase;
-my $workfile;
-my $shell_workfile;
-my @cleanuplist = ();
-
-# variables to setup the compiler line
-my $appext;
-my $compiler;
-my $outbin_flag;
-my $outobj_flag;
-my $objext;
-my $preprocess_flag; # preprocess to stdout
-
-my $no_hid_files;
-
-sub cleandie
-{
- my $errstring = shift @_;
- my $erroreval = $@;
-
- print STDERR "$errstring\n";
- if ( not $debug ) {
- foreach my $i (@cleanuplist) {
- if ( -f "$workfile$i" ) {
- unlink "$workfile$i" or print STDERR "ERROR - couldn't remove $workfile$i\n";
- }
- }
- }
- die "$erroreval\n";
-}
-
-sub setcompiler
-{
- my $whichcom = $ENV{COM};
- my $extra_cflags = $ENV{EXTRA_CFLAGS};
- $extra_cflags = "" if (!$extra_cflags);
- if ( "$whichcom" eq "GCC" ) {
- $appext = ""; # windows for now
- $compiler = "gcc -x c $extra_cflags";
- $outbin_flag = "-o ";
- $outobj_flag = "";
- $objext = ".o";
- $preprocess_flag = "-E"; # preprocess to stdout
- } elsif ( "$whichcom" eq "MSC" ) {
- $appext = ".exe"; # windows for now
- $compiler = "cl -nologo";
- $outbin_flag = "-Fe";
- $outobj_flag = "-Fo";
- $objext = ".obj";
- $preprocess_flag = "-EP"; # preprocess to stdout
- $solarincludes =~ s/\/stl/\/xstlx/g;
- $defs =~ s/\/stl/\/xstlx/g;
- } elsif ( "$whichcom" eq "C52" ) {
- $appext = ""; # windows for now
- $compiler = "cc";
- $outbin_flag = "-o ";
- $outobj_flag = "";
- $objext = ".o";
- $preprocess_flag = "-E"; # preprocess to stdout
-
- # hack for SO cc wrapper
- $ENV{wrapper_override_cc_wrapper} = "TRUE";
- $solarincludes =~ s/stl/xstlx/g;
- $defs =~ s/\/stl/\/xstlx/g;
- } else {
- print STDERR "----------------------------------------------------------------------\n";
- print STDERR "OOops... looks like your compiler isn't known to \n$0\n";
- print STDERR "please edit the \"setcompiler\" section of this script to make it work.\n";
- print STDERR "----------------------------------------------------------------------\n";
- die "ERROR - compiler (or \$COM settings) unknown!\n";
- }
-}
-
-#---------------------------------------------------
-$filename = undef;
-$srs = undef;
-$prjname = undef;
-
-my @expectedArgs = ( \$filename, \$srs, \$prjname );
-my $expectedArgsIndex = 0;
-while ( ( $#ARGV >= 0 ) && ( $expectedArgsIndex < 3 ) )
-{
- $_ = shift @ARGV;
- if ( /^-verbose$/ )
- {
- $verbose = 1;
- next;
- }
- ${$expectedArgs[ $expectedArgsIndex ]} = $_;
- ++$expectedArgsIndex;
-}
-
-$defs = join " ",@ARGV if ($#ARGV);
-
-if ( !defined $prjname ) { die "ERROR - check usage\n"; }
-
-if ( $ENV{NO_HID_FILES} ) {
- $no_hid_files = $ENV{"NO_HID_FILES"};
-}
-$solarincludes = $ENV{SOLARINCLUDES};
-if (defined $ENV{TMPDIR}) {
- $tmpdir = $ENV{TMPDIR};
-} elsif (defined $ENV{TMP}) {
- $tmpdir = $ENV{TMP};
-} else {
- die "ERROR - \"TMPDIR\" & \"TMP\" environment variables not set\n";
-};
-die "ERROR - \"$tmpdir\" doesn't exist\n" if ( ! -d $tmpdir );
-
-setcompiler();
-
-# convert windows only?
-$srs =~ s/\\/\//g;
-$filename =~ s/\\/\//g;
-
-$filebase = $filename;
-$filebase =~ s/.*[\\\/]//;
-$filebase =~ s/\..*?$//;
-# now stript it to something that doesn't togger vista execution prevention :(
-$flbs = $filebase;
-$flbs =~ s/[aeiou]//g;
-# call srand ony once per script!
-srand();
-$workfile = "$tmpdir/${flbs}_".$$.rand();
-
-# now get $workfile ready for shell usage...
-$shell_workfile = $workfile;
-
-print "workfile: $workfile\n" if $verbose;
-
-#remove old objects which remained in place by a former bug
-unlink "$workfile.obj";
-
-# can't do this for modules with mixed case!
-
-if ( -f "$workfile.hid" )
-{
- unlink "$workfile.hid" or die "ERRROR - cannot remove $workfile.hid\n";
-}
-
-# hack to quit for files which cannot be handled
-if ( defined $ENV{"NO_HID_FILES"} ) {
- foreach $fname ( split / /, $ENV{"NO_HID_FILES"} )
- {
- if ( $fname eq $filename )
- {
- print "No hid generation for $filename due to NO_HID_FILES\n";
- print "Touching $srs/$filebase.hid anyways\n";
- open TOUCH, ">$srs/$filebase.hid" or die "ERRROR - cannot open $srs/$filebase.hid for writing\n";
- close TOUCH;
- exit 0;
- }
- }
-}
-
-my $verboseSwitch = $verbose ? "-verbose" : "";
-print "$ENV{SOLARBINDIR}/hidc $verboseSwitch $filename ${shell_workfile}.c1 $prjname\n" if $verbose;
-$ret = system "$ENV{SOLARBINDIR}/hidc $verboseSwitch $filename ${shell_workfile}.c1 $prjname";
-if ( $ret ) {
- push @cleanuplist, ".c1";
- cleandie("ERROR - calling \"hidc\" failed");
-}
-push @cleanuplist, ".c1";
-
-print "$compiler $defs $solarincludes $preprocess_flag ${shell_workfile}.c1 > ${shell_workfile}.c2\n" if $verbose;
-$ret = system "$compiler $defs $solarincludes $preprocess_flag ${shell_workfile}.c1 > ${shell_workfile}.c2";
-if ( $ret ) {
- push @cleanuplist, ".c2";
- cleandie("ERROR - calling compiler for preprocessing failed");
-}
-push @cleanuplist, ".c2";
-
-if (!open C_PROG, ">$workfile.c") {
- push @cleanuplist, ".c";
- cleandie("ERROR - open $workfile.c\n for writing failed");
-}
-push @cleanuplist, ".c";
-print C_PROG "#include <stdio.h>\n";
-print C_PROG "#include <wctype.h>\n";
-
-if ( !open PRE, "<$workfile.c2" ) {
- cleandie("ERROR - open $workfile.c2\n for reading failed");
-}
-
-$InMain = 0;
-while (<PRE>)
-{
- if ( /int\s*main/ )
- {
- $InMain = 1;
- }
-
- if ( $InMain && !/^\s*$/ )
- {
- print C_PROG;
- }
-}
-
-close PRE;
-close C_PROG;
-
-#cl %SOLARINCLUDES% %_srs%\%_workfile%.c /Fe%_srs%\%_workfile%$appext
-my $outobj_param = "";
-if ( $outobj_flag ne "" )
-{
- $outobj_param = "$outobj_flag${shell_workfile}$objext";
-}
-print "$compiler $defs $solarincludes ${shell_workfile}.c $outobj_param $outbin_flag${shell_workfile}$appext \n" if $verbose;
-$ret = system "$compiler $defs $solarincludes ${shell_workfile}.c $outobj_param $outbin_flag${shell_workfile}$appext";
-if ( $ret ) {
- push @cleanuplist, "$appext";
- cleandie("ERROR - compiling $workfile.c failed");
-}
-push @cleanuplist, "$objext";
-push @cleanuplist, "$appext";
-
-#awk -f %ENV_TOOLS%\hidcode.awk < %srs%\%workfile%.c3 > %srs%\%workfile%.hid
-if ( !open C3,"$workfile$appext|" ) {
- cleandie("ERROR - executing $workfile$appext failed");
-}
-if ( !open HID,">$srs/$filebase.hid.$ENV{INPATH}" ) {
- cleandie("ERROR - open $srs/$filebase.hid.$ENV{INPATH} for writing failed");
-}
-
-while (<C3>)
-{
- @fields = split /\s+/;
-
- if ( $fields[1] eq "HelpID" )
- {
- print HID "$fields[0] $fields[2]\n";
- next;
- }
-
- @arr = split /:/, $fields[0];
- if( $arr[1] =~ /^leer$|^bitmap$|^font$|^color$|^image$|^imagelist$|^date$|^brush$|^fixedtext$|^keycode$|^time$|^mapmode$/i )
- {
- next;
- }
-
- if ( $fields[1] eq "Norm" )
- {
- # Felder der Zeile auf Variable verteilen
- $helpIDString = $fields[0];
- $GClass = lc($fields[2]);
- $GID = $fields[3];
- $LClass = lc($fields[4]);
- $LID = $fields[5] || 0;
-
- $nHID=0;
-
- $VAL1 = 536870912; #2 hoch 29
- if ( $GClass eq "workwindow" ) { $nHID= $VAL1 *5; }
- elsif( $GClass eq "modelessdialog" ) { $nHID= $VAL1 *4; }
- elsif( $GClass eq "floatingwindow" ) { $nHID= $VAL1 *3; }
- elsif( $GClass eq "modaldialog" ) { $nHID= $VAL1 *2; }
- elsif( $GClass eq "tabpage" ) { $nHID= $VAL1 *1; }
- elsif( $GClass eq "dockingwindow" ) { $nHID= $VAL1 *6; }
- #Maximal bis 7 dann sind 32Bit ausgeschoepft
- else {
- $nHID=0;
- $outline = "No GClass ".$helpIDString." ".$nHID." ".$GClass;
- next;
- }
- if( $LID != 0 ) {
- if ( $LClass eq "tabcontrol" ) { $nHID += 0; }
- elsif( $LClass eq "radiobutton" ) { $nHID += 2*256; }
- elsif( $LClass eq "checkbox" ) { $nHID += 4*256; }
- elsif( $LClass eq "tristatebox" ) { $nHID += 6*256; }
- elsif( $LClass eq "edit" ) { $nHID += 8*256; }
- elsif( $LClass eq "multilineedit" ) { $nHID += 10*256; }
- elsif( $LClass eq "multilistbox" ) { $nHID += 12*256; }
- elsif( $LClass eq "listbox" ) { $nHID += 14*256; }
- elsif( $LClass eq "combobox" ) { $nHID += 16*256; }
- elsif( $LClass eq "pushbutton" ) { $nHID += 18*256; }
- elsif( $LClass eq "spinfield" ) { $nHID += 20*256; }
- elsif( $LClass eq "patternfield" ) { $nHID += 22*256; }
- elsif( $LClass eq "numericfield" ) { $nHID += 24*256; }
- elsif( $LClass eq "metricfield" ) { $nHID += 26*256; }
- elsif( $LClass eq "currencyfield" ) { $nHID += 28*256; }
- elsif( $LClass eq "datefield" ) { $nHID += 30*256; }
- elsif( $LClass eq "timefield" ) { $nHID += 32*256; }
- elsif( $LClass eq "imageradiobutton" ) { $nHID += 34*256; }
- elsif( $LClass eq "numericbox" ) { $nHID += 36*256; }
- elsif( $LClass eq "metricbox" ) { $nHID += 38*256; }
- elsif( $LClass eq "currencybox" ) { $nHID += 40*256; }
- elsif( $LClass eq "datebox" ) { $nHID += 42*256; }
- elsif( $LClass eq "timebox" ) { $nHID += 44*256; }
- elsif( $LClass eq "imagebutton" ) { $nHID += 46*256; }
- elsif( $LClass eq "menubutton" ) { $nHID += 48*256; }
- elsif( $LClass eq "morebutton" ) { $nHID += 50*256; }
- else {
- $nHID=0;
- $outline = "No LClass ".$helpIDString." ".$nHID;
- next;
- }
-
- #GID und LID auch beruecksichtigen
- $nHID += $LID;
- }
- $nHID += $GID * 16384; #14 Bit nach links shiften
-
- # check here and not above to avoid warnings for restypes not generated anyways
- if( $GID == 0 || $GID >32767 || $LID > 511 )
- {
- #GID & LID ungueltig
- print STDERR "Invalid Global or Local ID: 0 < GID <= 32767 ; LID <= 511\n";
- print STDERR "$helpIDString GID = $GID; LID = $LID\n";
- next;
- }
-
- #
- # 1. Stelle selber ausgeben, falls groesser als 2^21
- # wg. problemen von awk/gawk bei printf mit %u
- #
- $x=0;
- if( $nHID >= 4000000000 ) {
- $nHID -= 4000000000;
- $x=4;
- }elsif( $nHID >= 3000000000) {
- $nHID -= 3000000000;
- $x=3;
- }elsif( $nHID >= 2000000000) {
- $nHID -= 2000000000;
- $x=2;
- }
- if( $x != 0)
- { printf HID "%s %d%u \n",$helpIDString,$x, $nHID; }
- else
- { printf HID "%s %u \n",$helpIDString, $nHID; }
- }
-}
-
-close C3;
-close HID;
-
-rename("$srs/$filebase.hid.$ENV{INPATH}", "$srs/$filebase.hid") or cleandie("ERROR - couldn't rename tmp file to final for $filebase");
-
-if ( not $debug ) {
- foreach my $i (@cleanuplist) {
- sleep 1;
- if ( -f "$workfile$i" ) {
- unlink "$workfile$i" or cleandie("");
- }
- }
-}
diff --git a/solenv/bin/modules/CreatePDBRelocators.pm b/solenv/bin/modules/CreatePDBRelocators.pm
index c31e3a053b0c..753075a2bfea 100644
--- a/solenv/bin/modules/CreatePDBRelocators.pm
+++ b/solenv/bin/modules/CreatePDBRelocators.pm
@@ -45,8 +45,11 @@ sub new
{
my $Object = shift;
my $solarversion = shift;
+ my $workdir;
+ my $relworkdir;
my $self = {};
- my @repositories;
+ my @basedirs;
+ my @repos;
if (!defined ($solarversion)) {
$solarversion = $ENV{SOLARVERSION};
@@ -58,14 +61,33 @@ sub new
$self->{SOLARVERSION} = $solarversion;
- my $SourceConfigObj = SourceConfig->new();
- @repositories = $SourceConfigObj->get_repositories();
+ $workdir = $ENV{WORKDIR};
+ if ( !$workdir ) {
+ print STDERR "can't determine WORKDIR.\n";
+ exit (1);
+ }
- if (!scalar @repositories) {
- print STDERR "no repository and no working directory found.\n";
+ if ( $workdir =~ /^$solarversion/ ) {
+ $relworkdir = $workdir;
+ $relworkdir =~ s/^$solarversion\///;
+ } else {
+ print STDERR "ERROR: workdir outside $solarversion unsupported\n";
+ exit (2);
+ }
+ my $SourceConfigObj = SourceConfig->new();
+ @repos = $SourceConfigObj->get_repositories();
+ if ( defined $ENV{UPDMINOREXT} ) {
+ foreach my $onedir ( @repos ) {
+ push( @basedirs, $onedir.$ENV{UPDMINOREXT} );
+ }
+ }
+ # basdirs is repositories (dmake) + workdir (gnu make)
+ push(@basedirs, $relworkdir);
+ if (!scalar @basedirs) {
+ print STDERR "no basedir and no working directory found.\n";
exit (2);
}
- $self->{REPOSITORIES} = \@repositories;
+ $self->{BASEDIRS} = \@basedirs;
bless($self, $Object);
return $self;
}
@@ -106,10 +128,10 @@ sub create_pdb_relocators
}
# collect files
- foreach my $repository (@{$self->{REPOSITORIES}}) {
+ foreach my $basedir (@{$self->{BASEDIRS}}) {
my @pdb_files;
- my $o = $self->{SOLARVERSION} . "/$repository";
- $repository =~ s/(.*?)\.(.*)/$1/;
+ my $o = $self->{SOLARVERSION} . "/$basedir";
+ $basedir =~ s/(.*?)\.(.*)/$1/;
$self->collect_files( $o, $inpath, \@pdb_files);
foreach (@pdb_files) {
@@ -122,12 +144,12 @@ sub create_pdb_relocators
my $target = "";
if ( $src_location =~ /\/so\// )
{
- $location = "../../../$repository$milestoneext/" . $src_location;
+ $location = "../../../$basedir$milestoneext/" . $src_location;
$target = "$pdb_dir/so/$relocator";
}
else
{
- $location = "../../$repository$milestoneext/" . $src_location;
+ $location = "../../$basedir$milestoneext/" . $src_location;
$target = "$pdb_dir/$relocator";
}
@@ -142,14 +164,14 @@ sub create_pdb_relocators
return 1;
}
-sub collect_files_from_all_repositories
+sub collect_files_from_all_basedirs
{
my $self = shift;
my ($platform, $filesref) = @_;
- my $repository;
+ my $basedir;
my $ret;
- foreach $repository (@{$self->{REPOSITORIES}}) {
- my $srcdir = $self->{SOLARVERSION} . "/$repository";
+ foreach $basedir (@{$self->{BASEDIRS}}) {
+ my $srcdir = $self->{SOLARVERSION} . "/$basedir";
$ret |= $self->collect_files ($srcdir, $platform, $filesref);
}
return $ret;
@@ -160,14 +182,16 @@ sub collect_files
my $self = shift;
my ($srcdir, $platform, $filesref) = @_;
my $template = "$srcdir/*/$platform";
+ my $template2 = "$srcdir/LinkTarget";
if ( $ENV{GUI} eq "WNT" ) {
# collect all pdb files on o:
# regular glob does not work with two wildcard on WNT
my @bin = glob("$template/bin/*.pdb");
my @bin_so = glob("$template/bin/so/*.pdb");
+ my @workdir = glob("$template2/*/*.pdb");
# we are only interested in pdb files which are accompanied by
# .exe or .dll which the same name
- foreach (@bin, @bin_so) {
+ foreach (@bin, @bin_so, @workdir) {
my $dir = dirname($_);
my $base = basename($_, ".pdb");
my $exe = "$dir/$base.exe";
@@ -180,13 +204,16 @@ sub collect_files
else {
# collect all shared libraries on o:
my @lib = glob("$template/lib/*.so*");
+ my @workdir_lib = glob("$template2/Library/*.so*");
my @lib_so = glob("$template/lib/so/*.so*");
my @mac_lib = glob("$template/lib/*.dylib*");
+ my @mac_workdir_lib = glob("$template2/Library/*.dylib*");
my @mac_lib_so = glob("$template/lib/so/*.dylib*");
# collect all binary executables on o:
my @bin = $self->find_binary_execs("$template/bin");
+ my @workdir_bin = $self->find_binary_execs("$template2/Executable");
my @bin_so = $self->find_binary_execs("$template/bin/so");
- push(@$filesref, (@lib, @lib_so, @mac_lib, @mac_lib_so, @bin, @bin_so));
+ push(@$filesref, (@lib, @lib_so, @workdir_lib, @mac_lib, @mac_workdir_lib, @mac_lib_so, @bin, @workdir_bin, @bin_so));
}
return 1;
}
diff --git a/solenv/bin/modules/RepositoryHelper.pm b/solenv/bin/modules/RepositoryHelper.pm
index 31c97e35d1c2..9bf4b841c7be 100644
--- a/solenv/bin/modules/RepositoryHelper.pm
+++ b/solenv/bin/modules/RepositoryHelper.pm
@@ -118,21 +118,26 @@ sub search_for_hg {
sub search_via_build_lst {
my $self = shift;
- my @possible_build_lists = ('build.lst', 'build.xlist'); # build lists names
+# my @possible_build_lists = ('build.lst', 'build.xlist'); # build lists names
+ my @possible_build_lists = ('build.lst'); # build lists names
my $previous_dir = '';
my $rep_root_candidate = $self->{INITIAL_DIRECTORY};
do {
foreach (@possible_build_lists) {
- if (-e $rep_root_candidate . '/prj/'.$_) {
+ my $test_file;
+ if ($rep_root_candidate eq '/') {
+ $test_file = '/prj/' . $_;
+ } else {
+ $test_file = $rep_root_candidate . '/prj/' . $_;
+ };
+ if (-e $test_file) {
$self->{REPOSITORY_ROOT} = File::Basename::dirname($rep_root_candidate);
return 1;
- } elsif ($rep_root_candidate eq $previous_dir) {
- return 0;
};
};
$previous_dir = $rep_root_candidate;
$rep_root_candidate = File::Basename::dirname($rep_root_candidate);
- return 0 if (!$rep_root_candidate);
+ return 0 if ((!$rep_root_candidate) || ($rep_root_candidate eq $previous_dir));
}
while (chdir "$rep_root_candidate");
};
diff --git a/solenv/bin/modules/SourceConfig.pm b/solenv/bin/modules/SourceConfig.pm
index dfaa797d8f48..e7b526e2cfca 100755
--- a/solenv/bin/modules/SourceConfig.pm
+++ b/solenv/bin/modules/SourceConfig.pm
@@ -320,14 +320,14 @@ sub read_config_file {
next;
};
};
- croak("Line $line in " . $self->{SOURCE_CONFIG_FILE} . 'violates format. Please make your checks!!');
+ croak("Line $line in " . $self->{SOURCE_CONFIG_FILE} . ' violates format. Please make your checks!');
};
close SOURCE_CONFIG_FILE;
if (!scalar keys %{$self->{REPOSITORIES}}) {
get_fallback_repository($self);
};
} else {
- croak('Cannot open ' . $self->{SOURCE_CONFIG_FILE} . 'for reading');
+ croak('Cannot open ' . $self->{SOURCE_CONFIG_FILE} . ' for reading');
};
};
@@ -388,7 +388,18 @@ sub add_active_repositories {
sub add_active_modules {
my $self = shift;
- $self->{NEW_MODULES} = shift;
+ my $module_list_ref = shift;
+ my $ignored_modules_string = '';
+ my @real_modules = ();
+ foreach my $module (sort @$module_list_ref) {
+ if ($self->get_module_path($module)) {
+ push(@real_modules, $module);
+ } else {
+ $ignored_modules_string .= " $module";
+ };
+ };
+ push (@{$self->{WARNINGS}}, "\nWARNING: following modules are not found in active repositories, and have not been added to the " . $self->get_config_file_default_path() . ":$ignored_modules_string\n") if ($ignored_modules_string);
+ $self->{NEW_MODULES} = \@real_modules;
croak('Empty module list passed for addition to source_config') if (!scalar @{$self->{NEW_MODULES}});
$self->{VERBOSE} = shift;
generate_config_file($self);
diff --git a/solenv/bin/modules/SourceConfigHelper.pm b/solenv/bin/modules/SourceConfigHelper.pm
new file mode 100644
index 000000000000..84ffbe0ca3f7
--- /dev/null
+++ b/solenv/bin/modules/SourceConfigHelper.pm
@@ -0,0 +1,422 @@
+#*************************************************************************
+#
+# 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.
+#
+#*************************************************************************
+
+#*************************************************************************
+#
+# SourceConfigHelper - Perl extension for parsing general info databases
+#
+# usage: see below
+#
+#*************************************************************************
+
+package SourceConfigHelper;
+
+use strict;
+
+use RepositoryHelper;
+use SourceConfig;
+use Cwd qw (cwd);
+use Carp;
+
+my $debug = 0;
+my @source_config_list; # array of sourceconfig objects
+
+#-----------------------------------------------------------------------
+# Constants
+#-----------------------------------------------------------------------
+
+use constant SOURCE_CONFIG_NONE => 0;
+use constant SOURCE_CONFIG_CURRENT_FIRST => 1;
+use constant SOURCE_CONFIG_ENVIRONMENT_FIRST => 2;
+use constant SOURCE_CONFIG_CURRENT_ONLY => 3;
+use constant SOURCE_CONFIG_ENVIRONMENT_ONLY => 4;
+
+use constant SOURCE_CONFIG_DEFAULT => SOURCE_CONFIG_CURRENT_FIRST;
+
+##### profiling #####
+
+##### ctor #####
+
+sub new {
+ my $proto = shift;
+ my $class = ref($proto) || $proto;
+ my $init_action = shift;
+ my $self = {};
+ my $SourceConfigCurrent;
+ my $SourceConfigEnvironment;
+
+ $init_action = SOURCE_CONFIG_DEFAULT if (!defined ($init_action));
+ if (!eval ($init_action) or ($init_action < SOURCE_CONFIG_NONE) or ($init_action > SOURCE_CONFIG_ENVIRONMENT_ONLY)) {
+ croak("wrong initial parameter: $init_action\n");
+ }
+
+ if ($init_action != SOURCE_CONFIG_NONE) {
+ my $repositoryHash_ref = {};
+ if ($init_action != SOURCE_CONFIG_ENVIRONMENT_ONLY) {
+ my $initial_directory = cwd();
+ my $result = is_repository($initial_directory, $repositoryHash_ref);
+ if ($result) {
+ $SourceConfigCurrent = SourceConfig->new($repositoryHash_ref->{REPOSITORY_ROOT});
+ }
+ }
+ if ($init_action != SOURCE_CONFIG_CURRENT_ONLY) {
+ my $source_config = $ENV{SOURCE_ROOT_DIR} . '/' . SourceConfig::SOURCE_CONFIG_FILE_NAME;
+ if (-f $source_config) {
+ $SourceConfigEnvironment = SourceConfig->new($source_config);
+ }
+ }
+
+ # fill array
+
+ if (($init_action == SOURCE_CONFIG_CURRENT_FIRST) or ($init_action == SOURCE_CONFIG_CURRENT_ONLY)) {
+ if (defined ($SourceConfigCurrent)) {
+ push (@source_config_list, $SourceConfigCurrent);
+ }
+ if ($init_action == SOURCE_CONFIG_CURRENT_FIRST) {
+ if (defined ($SourceConfigEnvironment)) {
+ push (@source_config_list, $SourceConfigEnvironment);
+ }
+ }
+ }
+ elsif (($init_action == SOURCE_CONFIG_ENVIRONMENT_FIRST) or ($init_action == SOURCE_CONFIG_ENVIRONMENT_ONLY)) {
+ if (defined ($SourceConfigEnvironment)) {
+ push (@source_config_list, $SourceConfigEnvironment);
+ }
+ if ($init_action == SOURCE_CONFIG_ENVIRONMENT_FIRST) {
+ if (defined ($SourceConfigCurrent)) {
+ push (@source_config_list, $SourceConfigCurrent);
+ }
+ }
+ }
+ }
+
+ $self->{SOURCE_CONFIG_LIST} = \@source_config_list;
+
+ bless($self, $class);
+ return $self;
+}
+
+##### methods #####
+
+############################################################################################
+
+sub add_SourceConfig {
+ my $self = shift;
+ my $source_config = shift;
+ push (@{$self->{SOURCE_CONFIG_LIST}}, $source_config);
+}
+
+############################################################################################
+
+sub get_SourceConfigList {
+ my $self = shift;
+ return @{$self->{SOURCE_CONFIG_LIST}};
+}
+
+############################################################################################
+
+sub has_SourceConfig {
+ my $self = shift;
+ my $result = 0;
+ my $count = @{$self->{SOURCE_CONFIG_LIST}};
+ $result = 1 if ($count > 0);
+ return $result;
+}
+
+############################################################################################
+
+sub get_module_path {
+ my $self = shift;
+ my $module = shift;
+ my $function = \&SourceConfig::get_module_path;
+ my $result;
+ $result = $self->get_StringResult ($function, $module);
+ return $result;
+}
+
+############################################################################################
+
+sub get_active_modules {
+ my $self = shift;
+ my $parameter; # empty
+ my $function = \&SourceConfig::get_active_modules;
+ my $array_ref;
+ $array_ref = $self->get_ArrayResult ($function, $parameter);
+ return @$array_ref;
+}
+
+############################################################################################
+
+sub get_repositories {
+ my $self = shift;
+ my $parameter; # empty
+ my $function = \&SourceConfig::get_repositories;
+ my $array_ref;
+ $array_ref = $self->get_ArrayResult ($function, $parameter);
+ return @$array_ref;
+}
+
+############################################################################################
+
+sub get_module_repository {
+ my $self = shift;
+ my $module = shift;
+ my $function = \&SourceConfig::get_module_repository;
+ my $result;
+ $result = $self->get_StringResult ($function, $module);
+ return $result;
+}
+
+############################################################################################
+
+sub is_active {
+ my $self = shift;
+ my $module = shift;
+ my $function = \&SourceConfig::is_active;
+ my $result_ref;
+ my $is_active = 0;
+ $result_ref = $self->get_ResultOfList ($function, $module);
+ my $count = @$result_ref;
+ if ($count>0) {
+ foreach my $active (@$result_ref) {
+ if ($active) {
+ $is_active = $active;
+ }
+ }
+ }
+ return $is_active;
+}
+
+##### private methods #####
+
+############################################################################################
+#
+# is_repository () : check if the directory is a valid repository
+#
+# input: - directory
+# - hash reference, where the output will be stored
+#
+# output: 0 = FALSE, the directory is no valid repository
+# 1 = TRUE, the repository root can be found in $repositoryHash_ref->{REPOSITORY_ROOT}
+#
+############################################################################################
+
+sub is_repository {
+ my $directory = shift;
+ my $repositoryHash_ref = shift;
+ $repositoryHash_ref->{INITIAL_DIRECTORY} = $directory;
+ $repositoryHash_ref->{REPOSITORY_ROOT} = undef;
+ $repositoryHash_ref->{REPOSITORY_NAME} = undef;
+ my $result = RepositoryHelper::search_via_build_lst($repositoryHash_ref);
+ chdir $repositoryHash_ref->{INITIAL_DIRECTORY};
+ if (!$result) {
+ $result = RepositoryHelper::search_for_hg($repositoryHash_ref);
+ }
+ return $result;
+}
+
+############################################################################################
+#
+# get_ResultOfList(): give back an array reference from all SourceConfig Objects results
+#
+# input: - function : reference to the called function of each SourceConfig Object
+# - parameter : parameter for the called function
+#
+# output: result : array of all results
+#
+############################################################################################
+
+sub get_ResultOfList {
+ my $self = shift;
+ my $function = shift;
+ my $parameter = shift;
+ my @result;
+ foreach my $source_config (@{$self->{SOURCE_CONFIG_LIST}}) {
+ push (@result, &$function ($source_config, $parameter));
+ }
+ return \@result;
+}
+
+############################################################################################
+#
+# get_StringResult(): give back the first defined result from all SourceConfig Objects
+#
+# input: - function : reference to the called function of each SourceConfig Object
+# - parameter : parameter for the called function
+#
+# output: result : scalar variable (string), undef if no result
+#
+############################################################################################
+
+sub get_StringResult {
+ my $self = shift;
+ my $function = shift;
+ my $parameter = shift;
+ my $result_ref;
+ $result_ref = $self->get_ResultOfList ($function, $parameter);
+ my $count = @$result_ref;
+ if ($count>0) {
+ my $value;
+ my $i = 0;
+ while (($i < $count) and !defined ($value)) { # search the first defined result
+ $value = $$result_ref[$i];
+ $i++;
+ }
+ return $value;
+ }
+ return undef;
+}
+
+############################################################################################
+#
+# get_StringResult(): give back a sorted and uniqe array reference of the results
+# from all SourceConfig Objects
+#
+# input: - function : reference to the called function of each SourceConfig Object
+# - parameter : parameter for the called function
+#
+# output: result : sorted and uniqe array reference
+#
+############################################################################################
+
+sub get_ArrayResult {
+ my $self = shift;
+ my $function = shift;
+ my $parameter = shift;
+ my $result_ref;
+ my @modules;
+ $result_ref = $self->get_ResultOfList ($function, $parameter);
+ my $count = @$result_ref;
+ if ($count>0) {
+ my %moduleHash;
+ foreach my $module (@$result_ref) {
+ $moduleHash{$module}++;
+ }
+ @modules = sort keys %moduleHash;
+ }
+ return \@modules;
+}
+
+ ##### finish #####
+
+1; # needed by use or require
+
+__END__
+
+=head1 NAME
+
+SourceConfigHelper - Perl extension for handling with SourceConfigObjetcs
+
+=head1 SYNOPSIS
+
+ # example that will read source_config file and return the active repositories
+
+ use SourceConfigHelper;
+
+ # Create a new instance:
+ $a = SourceConfigHelper->new();
+
+ # Get repositories for the actual workspace:
+ $a->get_repositories();
+
+=head1 DESCRIPTION
+
+SourceConfigHelper is a perl extension to handle more than one objects of SourceConfig
+to set up a search order for modules.
+
+Methods:
+
+SourceConfigHelper::new()
+
+Creates a new instance of SourceConfigHelper. Can be initialized by: default - empty or with a constant of search order. default: the source_config will be taken first from the current repository and second from the environment
+Possible parameters are:
+SourceConfigHelper::SOURCE_CONFIG_NONE - no SourceConfig Object will be created
+SourceConfigHelper::SOURCE_CONFIG_CURRENT_FIRST - use the current repository first
+SourceConfigHelper::SOURCE_CONFIG_ENVIRONMENT_FIRST - use the repository of the environment first
+SourceConfigHelper::SOURCE_CONFIG_CURRENT_ONLY - use only the current repository
+SourceConfigHelper::SOURCE_CONFIG_ENVIRONMENT_ONLY - use only the repository of the environment
+
+SourceConfigHelper::get_repositories()
+
+Returns sorted list of active repositories for the actual workspace
+
+SourceConfigHelper::get_active_modules()
+
+Returns a sorted list of active modules
+
+SourceConfigHelper::get_all_modules()
+
+Returns sorted list of all modules in active repositories.
+
+SourceConfigHelper::get_module_path($module)
+
+Returns absolute module path. If the module is not active or don't exists, "undef" will be returned.
+
+SourceConfigHelper::get_module_repository($module)
+
+Returns the module's repository. If the module is not active or don't exists, "undef" will be returned.
+
+SourceConfigHelper::is_active()
+
+Returns 1 (TRUE) if a module is active
+Returns 0 (FALSE) if a module is not active
+
+SourceConfigHelper::add_SourceConfig($SourceConfigObject)
+
+Add the SourceConfigObject to the end of the list
+
+SourceConfigHelper::get_SourceConfigList()
+
+Return an array of SourceConfigObjects
+
+SourceConfigHelper::has_SourceConfig()
+
+Returns 1 (TRUE) if one or more SourceConfig Objects is in the list
+Returns 0 (FALSE) if no SourceConfig Object is in the list (can happen if there is no valid repository)
+
+=head2 EXPORT
+
+SourceConfigHelper::new()
+SourceConfigHelper::get_repositories()
+SourceConfigHelper::get_active_modules()
+SourceConfigHelper::get_all_modules()
+SourceConfigHelper::get_module_path($module)
+SourceConfigHelper::get_module_repository($module)
+SourceConfigHelper::is_active($module)
+SourceConfigHelper::add_SourceConfig($SourceConfigObject)
+SourceConfigHelper::get_SourceConfigList()
+SourceConfigHelper::has_SourceConfig()
+
+=head1 AUTHOR
+
+Kurt Zenker, kz@openoffice.org
+
+=head1 SEE ALSO
+
+perl(1).
+
+=cut
diff --git a/solenv/bin/modules/installer/control.pm b/solenv/bin/modules/installer/control.pm
index 9fdfae4d9c66..3f6b43f563fb 100644
--- a/solenv/bin/modules/installer/control.pm
+++ b/solenv/bin/modules/installer/control.pm
@@ -320,6 +320,11 @@ sub check_logfile
my @output = ();
my $contains_error = 0;
+ my $ignore_error = 0;
+ my $make_error_to_warning = 0;
+
+ if (( ! $installer::globals::pro ) && ( $installer::globals::ignore_error_in_logfile )) { $ignore_error = 1; }
+
for ( my $i = 0; $i <= $#{$logfile}; $i++ )
{
my $line = ${$logfile}[$i];
@@ -337,6 +342,12 @@ sub check_logfile
{
$contains_error = 1;
push(@errors, $line);
+
+ if ( $ignore_error )
+ {
+ $contains_error = 0;
+ $make_error_to_warning = 1;
+ }
}
}
@@ -358,7 +369,26 @@ sub check_logfile
}
else
{
- my $line = "\n***********************************************************\n";
+ my $line = "";
+
+ if ( $make_error_to_warning )
+ {
+ $line = "\n*********************************************************************\n";
+ push(@output, $line);
+ $line = "The following errors in the log file were ignored:\n\n";
+ push(@output, $line);
+
+ for ( my $i = 0; $i <= $#errors; $i++ )
+ {
+ $line = "$errors[$i]";
+ push(@output, $line);
+ }
+
+ $line = "*********************************************************************\n";
+ push(@output, $line);
+ }
+
+ $line = "\n***********************************************************\n";
push(@output, $line);
$line = "Successful packaging process!\n";
push(@output, $line);
diff --git a/solenv/bin/modules/installer/environment.pm b/solenv/bin/modules/installer/environment.pm
index 4b4d93aa3723..5c8c4ab25e40 100644
--- a/solenv/bin/modules/installer/environment.pm
+++ b/solenv/bin/modules/installer/environment.pm
@@ -115,9 +115,6 @@ sub set_global_environment_variables
if ( $ENV{'LAST_MINOR'} ) { $installer::globals::lastminor = $ENV{'LAST_MINOR'}; }
if ( $ENV{'PROEXT'} ) { $installer::globals::pro = 1; }
- if ( $ENV{'SOLAR_JAVA'} ) { $installer::globals::solarjava = 1; }
- if ( $ENV{'JDKLIB'} ) { $installer::globals::jdklib = $ENV{'JDKLIB'}; }
- if ( $ENV{'JREPATH'} ) { $installer::globals::jrepath = $ENV{'JREPATH'}; }
if ( $ENV{'VERBOSE'} && ( (lc $ENV{'VERBOSE'}) eq "false" ) ) { $installer::globals::quiet = 1; }
if ( $ENV{'PREPARE_WINPATCH'} ) { $installer::globals::prepare_winpatch = 1; }
@@ -129,6 +126,7 @@ sub set_global_environment_variables
if ( $ENV{'SOLAR_JAVA'} ) { $installer::globals::solarjavaset = 1; }
if ( $ENV{'RPM'} ) { $installer::globals::rpm = $ENV{'RPM'}; }
if ( $ENV{'DONTCOMPRESS'} ) { $installer::globals::solarisdontcompress = 1; }
+ if ( $ENV{'IGNORE_ERROR_IN_LOGFILE'} ) { $installer::globals::ignore_error_in_logfile = 1; }
if (( $ENV{'DISABLE_STRIP'} ) && ( $ENV{'DISABLE_STRIP'} ne '' )) { $installer::globals::strip = 0; }
if ( $installer::globals::localinstalldir ) { $installer::globals::localinstalldirset = 1; }
diff --git a/solenv/bin/modules/installer/globals.pm b/solenv/bin/modules/installer/globals.pm
index 0d3bc2603f6b..6b82c17885d0 100644
--- a/solenv/bin/modules/installer/globals.pm
+++ b/solenv/bin/modules/installer/globals.pm
@@ -87,7 +87,8 @@ BEGIN
"oc",
"ml",
"as",
- "ast"
+ "ast",
+ "ht"
);
@items_at_modules = ("Files", "Dirs", "Unixlinks");
@asianlanguages = ("ja", "ko", "zh-CN", "zh-TW");
@@ -118,8 +119,6 @@ BEGIN
$dounzip = 1;
$languages_defined_in_productlist = 0;
$setupscript_defined_in_productlist = 0;
- $services_rdb_created = 0;
- $servicesrdb_can_be_created = 0;
$islinux = 0;
$issolaris = 0;
$ismacosx = 0;
@@ -238,9 +237,6 @@ BEGIN
$creating_windows_installer_patch = 0;
$strip = 1;
- $solarjava = 0;
- $jdklib = "";
- $jrepath = "";
$globallogging = 0;
$globalloggingform21 = 1;
@@ -248,6 +244,7 @@ BEGIN
@logfileinfo = ();
@errorlogfileinfo = ();
@globallogfileinfo = ();
+ $ignore_error_in_logfile = 0;
$exitlog = "";
$globalinfo_copied = 0;
$quiet = 0;
@@ -378,6 +375,10 @@ BEGIN
%spellcheckerlanguagehash = ();
%spellcheckerfilehash = ();
$registryrootcomponent = "";
+ %allcomponents = ();
+ %allcomponents_in_this_database = ();
+ %allshortcomponents = ();
+ %alluniquedirectorynames = ();
$installlocationdirectory = "";
$installlocationdirectoryset = 0;
@@ -409,9 +410,6 @@ BEGIN
%usedtreeconditions = ();
%moduledestination = ();
- $unomaxservices = 1800; # regcomp -c argument length
- $javamaxservices = 15;
-
$one_cab_file = 0;
$fix_number_of_cab_files = 1;
$cab_file_per_component = 0;
@@ -454,8 +452,6 @@ BEGIN
@solarispatchfiles = (".diPatch", "patchinfo");
@environmentvariables = ( "SOLARVERSION", "GUI", "WORK_STAMP", "OUTPATH", "LOCAL_OUT", "LOCAL_COMMON_OUT" );
@packagelistitems = ("module", "solarispackagename", "packagename", "copyright", "vendor", "description" );
- @regcompjars = ( "unoil.jar", "java_uno.jar", "ridl.jar", "jurt.jar", "juh.jar", "xmerge.jar", "commonwizards.jar" );
- @regcompregisterlibs = ( "javavm.uno", "javaloader.uno", "stocservices.uno" );
@languagepackfeature =();
@helppackfeature =();
@featurecollector =();
@@ -503,7 +499,6 @@ BEGIN
$separator = "/";
$pathseparator = "\:";
$libextension = "\.dll";
- $quote = "\'";
$isunix = 0;
$iswin = 1;
$archiveformat = ".zip";
@@ -528,7 +523,6 @@ BEGIN
$libextension = "\.so";
}
$archiveformat = ".tar.gz";
- $quote = "\'";
$isunix = 1;
$iswin = 0;
}
diff --git a/solenv/bin/modules/installer/parameter.pm b/solenv/bin/modules/installer/parameter.pm
index 2d58d585599e..f17965fa3d7f 100644
--- a/solenv/bin/modules/installer/parameter.pm
+++ b/solenv/bin/modules/installer/parameter.pm
@@ -386,19 +386,6 @@ sub setglobalvariables
if ( ! $installer::globals::packageformat ) { $installer::globals::packageformat = "native"; }
- # $installer::globals::servicesrdb_can_be_created can only be set, if regcomp (regcomp.exe) can be executed.
-
- if ( $installer::globals::iswin && $installer::globals::iswindowsbuild ) { $installer::globals::servicesrdb_can_be_created = 1; }
- if ( $installer::globals::islinux && $installer::globals::islinuxbuild ) { $installer::globals::servicesrdb_can_be_created = 1; }
- if ( $installer::globals::issolaris && $installer::globals::issolarisbuild ) { $installer::globals::servicesrdb_can_be_created = 1; }
-
- # ToDo: Needs to be expanded for additional compiler (setting $installer::globals::servicesrdb_can_be_created = 1 for all external platforms)
-
- if ((!($installer::globals::iswindowsbuild)) && (!($installer::globals::islinuxbuild)) && (!($installer::globals::issolarisbuild)))
- {
- $installer::globals::servicesrdb_can_be_created = 1;
- }
-
# extension, if $installer::globals::pro is set
if ($installer::globals::pro) { $installer::globals::productextension = ".pro"; }
@@ -655,8 +642,6 @@ sub outputparameter
if ( $installer::globals::debian ) { push(@output, "Linux: Creating Debian packages\n"); }
if ( $installer::globals::dounzip ) { push(@output, "Unzip ARCHIVE files\n"); }
else { push(@output, "Not unzipping ARCHIVE files\n"); }
- if ( $installer::globals::servicesrdb_can_be_created ) { push(@output, "services.rdb can be created\n"); }
- else { push(@output, "services.rdb cannot be created !\n"); }
if (!($installer::globals::languages_defined_in_productlist))
{
push(@output, "Languages:\n");
diff --git a/solenv/bin/modules/installer/regmerge.pm b/solenv/bin/modules/installer/regmerge.pm
deleted file mode 100644
index 2f31a0bbc64c..000000000000
--- a/solenv/bin/modules/installer/regmerge.pm
+++ /dev/null
@@ -1,339 +0,0 @@
-#*************************************************************************
-#
-# 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.
-#
-#*************************************************************************
-
-package installer::regmerge;
-
-use Cwd;
-use installer::converter;
-use installer::existence;
-use installer::exiter;
-use installer::globals;
-use installer::logger;
-use installer::pathanalyzer;
-use installer::remover;
-use installer::scriptitems;
-use installer::systemactions;
-
-################################################################
-# Collecting all files with content:
-# Regmergefile = "mydatabasepart.rdb";
-################################################################
-
-sub collect_all_regmergefiles
-{
- my ($filesarrayref) = @_;
-
- my @regmergefiles = ();
-
- for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ )
- {
- my $onefile = ${$filesarrayref}[$i];
- if ( $onefile->{'Regmergefile'} ) { push(@regmergefiles, $onefile); }
- }
-
- return \@regmergefiles;
-}
-
-################################################################
-# Collecting all gids of the databases, that are part of
-# the file definition
-################################################################
-
-sub collect_all_database_gids
-{
- my ($filesarrayref) = @_;
-
- my @databasegids = ();
-
- for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ )
- {
- my $onefile = ${$filesarrayref}[$i];
-
- if ( $onefile->{'RegistryID'} )
- {
- my $databasegid = $onefile->{'RegistryID'};
- if (! installer::existence::exists_in_array($databasegid, \@databasegids)) { push(@databasegids, $databasegid); }
- }
- else
- {
- installer::exiter::exit_program("ERROR: File defintion error. File :$onefile->{'gid'} without RegistryID!", "collect_all_database_gids");
- }
- }
-
- return \@databasegids;
-}
-
-################################################################
-# Returning the database file from the files collector. In the
-# future this file does not need to exist, but currently it
-# has to exist already in the files collector.
-################################################################
-
-sub get_database_file
-{
- my ($databasegid, $filesarrayref) = @_;
-
- my $found = 0;
- my $onefile;
-
- for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ )
- {
- $onefile = ${$filesarrayref}[$i];
- my $gid = $onefile->{'gid'};
-
- if ( $databasegid eq $gid )
- {
- $found = 1;
- last;
- }
- }
-
- if ( ! $found ) { installer::exiter::exit_program("ERROR: Did not find StarRegistry file $databasegid!", "get_database_file"); }
-
- return $onefile;
-}
-
-################################################################
-# The regmerge file has to be found the in include pathes
-################################################################
-
-sub get_regmerge_file
-{
- my ($includepatharrayref) = @_;
-
- my $searchname;
-
- if ($installer::globals::isunix) { $searchname = "regcomplazy"; }
- else { $searchname = "regcomplazy.exe"; }
-
- my $regmergefileref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$searchname, $includepatharrayref, 1);
- if ( $$regmergefileref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $searchname for merging the StarRegistry!", "get_regmerge_file"); }
-
- return $$regmergefileref;
-}
-
-################################################################
-# Collecting all files that are merged to one defined
-# StarRegistry database
-################################################################
-
-sub collect_all_files_for_one_registry
-{
- my ($regmergefiles, $databasegid) = @_;
-
- my @regmergefiles = ();
-
- for ( my $i = 0; $i <= $#{$regmergefiles}; $i++ )
- {
- my $onefile = ${$regmergefiles}[$i];
- if ( $onefile->{'RegistryID'} eq $databasegid ) { push(@regmergefiles, $onefile); }
- }
-
- return \@regmergefiles;
-}
-
-################################################################
-# Collecting all particles from the regmerge files
-################################################################
-
-sub collect_all_regmerge_particles
-{
- my ($databaseregisterfiles) = @_;
-
- my @regmergeparticles = ();
-
- for ( my $i = 0; $i <= $#{$databaseregisterfiles}; $i++ )
- {
- my $onefile = ${$databaseregisterfiles}[$i];
- if ( $onefile->{'Regmergefile'} ) { push(@regmergeparticles, $onefile->{'Regmergefile'}); }
- else { installer::exiter::exit_program("ERROR: Could not find entry for \"Regmergefile\" in $onefile->{'gid'}!", "collect_all_regmerge_particles"); }
- }
-
- return \@regmergeparticles;
-}
-
-################################################################
-# Collecting all source pathes of the regmerge particles
-################################################################
-
-sub get_all_source_pathes
-{
- my ($regmergeparticles, $includepatharrayref) = @_;
-
- my @regmergeparticles = ();
-
- for ( my $i = 0; $i <= $#{$regmergeparticles}; $i++ )
- {
- my $filename = ${$regmergeparticles}[$i];
-
- my $fileref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$filename, $includepatharrayref, 1);
- if ( $$fileref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $filename for merging the StarRegistry!", "get_all_source_pathes"); }
-
- push(@regmergeparticles, $$fileref);
- }
-
- return \@regmergeparticles;
-}
-
-################################################################
-# Merging the rdb files into the StarRegistry database
-################################################################
-
-sub merge_files
-{
- my ($regmergefile, $databasefile, $registerfiles, $databasedir, $allvariableshashref) = @_;
-
- my $databasesource = $databasefile->{'sourcepath'};
- my $databasename = $databasefile->{'Name'};
- my $databasedest = $databasedir . $installer::globals::separator . $databasename;
-
- installer::systemactions::copy_one_file($databasesource, $databasedest);
- $databasefile->{'sourcepath'} = $databasedest; # new sourcepath for the StarRegistry file
-
- # One call for every merge particle. This is only possible, if there are only a few merge particles.
-
- my $prefix = $databasefile->{'NativeServicesURLPrefix'};
- # TODO: "NativeServicesURLPrefix" or "JavaServicesURLPrefix"
-
- my $error_occurred = 0;
-
- for ( my $i = 0; $i <= $#{$registerfiles}; $i++ )
- {
- my $registerfile = $databasedir . $installer::globals::separator . $i . ".tmp";
- open (IN, '<', $registerfiles->[$i]) or $error_occurred = 1;
- open (OUT, '>', $registerfile) or $error_occurred = 1;
- while (<IN>)
- {
- s/^ComponentName=/ComponentName=$prefix/;
- print OUT $_ or $error_occurred = 1;
- }
- close IN or $error_occurred = 1;
- close OUT or $error_occurred = 1;
-
- my $systemcall = $regmergefile . " -v " . $databasedest . " " . $registerfile . " 2\>\&1 |";
-
- my @regmergeoutput = ();
-
- my $var_library_path;
- my $old_library_path;
- if ($installer::globals::isunix) {
- $var_library_path = $installer::globals::ismacosx ?
- 'DYLD_LIBRARY_PATH' : 'LD_LIBRARY_PATH';
- $old_library_path = $ENV{$var_library_path};
- installer::servicesfile::include_libdir_into_ld_library_path(
- $var_library_path, $regmergefile);
- }
-
- open (REG, "$systemcall");
- while (<REG>) {push(@regmergeoutput, $_); }
- close (REG);
-
- my $returnvalue = $?; # $? contains the return value of the systemcall
-
- if (defined $var_library_path) {
- if (defined $old_library_path) {
- $ENV{$var_library_path} = $old_library_path;
- } else {
- delete $ENV{$var_library_path};
- }
- }
-
- my $infoline = "Systemcall: $systemcall\n";
- push( @installer::globals::logfileinfo, $infoline);
-
- for ( my $j = 0; $j <= $#regmergeoutput; $j++ ) { push( @installer::globals::logfileinfo, "$regmergeoutput[$j]"); }
-
- if ($returnvalue)
- {
- $infoline = "ERROR: $systemcall\n";
- push( @installer::globals::logfileinfo, $infoline);
- $error_occurred = 1;
- }
- else
- {
- $infoline = "SUCCESS: $systemcall\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
- }
-
- return $error_occurred;
-}
-
-################################################################
-# Expanding the registry database files by merging rdb files
-# into this registry database files.
-################################################################
-
-sub merge_registration_files
-{
- my ($filesarrayref, $includepatharrayref, $languagestringref, $allvariableshashref) = @_;
-
- installer::logger::include_header_into_logfile("Creating starregistry databases:");
-
- # Test if there is something to do. At least one file has to have the content:
- # Regmergefile = "mydatabasepart.rdb";
-
- my $regmergefiles = collect_all_regmergefiles($filesarrayref);
-
- if ( $#{$regmergefiles} > -1 ) # not empty -> at least one regmerge file
- {
- # prepare registration
-
- my $regmergefile = get_regmerge_file($includepatharrayref); # searching for regmerge (regcomplazy.exe)
-
- my $databasegids = collect_all_database_gids($regmergefiles);
-
- # iterating over all database gids
-
- my $regmergeerror = 0;
-
- for ( my $i = 0; $i <= $#{$databasegids}; $i++ )
- {
- $databasegid = ${$databasegids}[$i];
-
- my $databasedirname = $databasegid . "_rdb"; # <- unique!
- my $databasedir = installer::systemactions::create_directories($databasedirname, $languagestringref);
- push(@installer::globals::removedirs, $databasedir);
-
- my $databasefile = get_database_file($databasegid, $filesarrayref);
- my $databaseregisterfiles = collect_all_files_for_one_registry($regmergefiles, $databasegid);
-
- if ( $#{$databaseregisterfiles} > -1 ) # not empty -> at least one regmerge file
- {
- my $regmergeparticles = collect_all_regmerge_particles($databaseregisterfiles);
- $regmergeparticles = get_all_source_pathes($regmergeparticles, $includepatharrayref);
- my $oneregmergeerror = merge_files($regmergefile, $databasefile, $regmergeparticles, $databasedir, $allvariableshashref);
- if ($oneregmergeerror) { $regmergeerror = 1; }
- }
- }
-
- if ( $regmergeerror ) { installer::exiter::exit_program("ERROR: regmerge !", "merge_registration_files"); }
-
- }
-}
-
-1;
diff --git a/solenv/bin/modules/installer/scriptitems.pm b/solenv/bin/modules/installer/scriptitems.pm
index c23cd9e1a817..555b64196cb3 100644
--- a/solenv/bin/modules/installer/scriptitems.pm
+++ b/solenv/bin/modules/installer/scriptitems.pm
@@ -1222,7 +1222,7 @@ sub get_Source_Directory_For_Files_From_Includepathlist
my $styles = "";
my $file_can_miss = 0;
if ( $onefile->{'Styles'} ) { $styles = $onefile->{'Styles'}; }
- if (( $styles =~ /\bSTARREGISTRY\b/ ) || ( $styles =~ /\bFILE_CAN_MISS\b/ )) { $file_can_miss = 1; }
+ if ( $styles =~ /\bFILE_CAN_MISS\b/ ) { $file_can_miss = 1; }
if (( $installer::globals::languagepack ) && ( ! $onefile->{'ismultilingual'} ) && ( ! ( $styles =~ /\bFORCELANGUAGEPACK\b/ ))) { $file_can_miss = 1; }
if (( $installer::globals::helppack ) && ( ! $onefile->{'ismultilingual'} ) && ( ! ( $styles =~ /\bFORCEHELPPACK\b/ ))) { $file_can_miss = 1; }
@@ -1350,12 +1350,21 @@ sub remove_Files_Without_Sourcedirectory
if ($sourcepath eq "")
{
my $styles = $onefile->{'Styles'};
+ my $filename = $onefile->{'Name'};
- if ( ! ( $styles =~ /\bSTARREGISTRY\b/ )) # StarRegistry files will be created later
+ if ( ! $installer::globals::languagepack && !$installer::globals::helppack)
{
- my $filename = $onefile->{'Name'};
+ $infoline = "ERROR: Removing file $filename from file list.\n";
+ push( @installer::globals::logfileinfo, $infoline);
+
+ push(@missingfiles, "ERROR: File not found: $filename\n");
+ $error_occurred = 1;
- if ( ! $installer::globals::languagepack && !$installer::globals::helppack)
+ next; # removing this file from list, if sourcepath is empty
+ }
+ elsif ( $installer::globals::languagepack ) # special case for language packs
+ {
+ if (( $onefile->{'ismultilingual'} ) || ( $styles =~ /\bFORCELANGUAGEPACK\b/ ))
{
$infoline = "ERROR: Removing file $filename from file list.\n";
push( @installer::globals::logfileinfo, $infoline);
@@ -1365,51 +1374,38 @@ sub remove_Files_Without_Sourcedirectory
next; # removing this file from list, if sourcepath is empty
}
- elsif ( $installer::globals::languagepack ) # special case for language packs
+ else
{
- if (( $onefile->{'ismultilingual'} ) || ( $styles =~ /\bFORCELANGUAGEPACK\b/ ))
- {
- $infoline = "ERROR: Removing file $filename from file list.\n";
- push( @installer::globals::logfileinfo, $infoline);
-
- push(@missingfiles, "ERROR: File not found: $filename\n");
- $error_occurred = 1;
-
- next; # removing this file from list, if sourcepath is empty
- }
- else
- {
- $infoline = "INFO: Removing file $filename from file list. It is not language dependent.\n";
- push( @installer::globals::logfileinfo, $infoline);
- $infoline = "INFO: It is not language dependent and can be ignored in language packs.\n";
- push( @installer::globals::logfileinfo, $infoline);
+ $infoline = "INFO: Removing file $filename from file list. It is not language dependent.\n";
+ push( @installer::globals::logfileinfo, $infoline);
+ $infoline = "INFO: It is not language dependent and can be ignored in language packs.\n";
+ push( @installer::globals::logfileinfo, $infoline);
- next; # removing this file from list, if sourcepath is empty
- }
+ next; # removing this file from list, if sourcepath is empty
}
- else # special case for help packs
+ }
+ else # special case for help packs
+ {
+ if (( $onefile->{'ismultilingual'} ) || ( $styles =~ /\bFORCEHELPPACK\b/ ))
{
- if (( $onefile->{'ismultilingual'} ) || ( $styles =~ /\bFORCEHELPPACK\b/ ))
- {
- $infoline = "ERROR: Removing file $filename from file list.\n";
- push( @installer::globals::logfileinfo, $infoline);
+ $infoline = "ERROR: Removing file $filename from file list.\n";
+ push( @installer::globals::logfileinfo, $infoline);
- push(@missingfiles, "ERROR: File not found: $filename\n");
- $error_occured = 1;
+ push(@missingfiles, "ERROR: File not found: $filename\n");
+ $error_occured = 1;
- next; # removing this file from list, if sourcepath is empty
- }
- else
- {
- $infoline = "INFO: Removing file $filename from file list. It is not language dependent.\n";
- push( @installer::globals::logfileinfo, $infoline);
- $infoline = "INFO: It is not language dependent and can be ignored in help packs.\n";
- push( @installer::globals::logfileinfo, $infoline);
+ next; # removing this file from list, if sourcepath is empty
+ }
+ else
+ {
+ $infoline = "INFO: Removing file $filename from file list. It is not language dependent.\n";
+ push( @installer::globals::logfileinfo, $infoline);
+ $infoline = "INFO: It is not language dependent and can be ignored in help packs.\n";
+ push( @installer::globals::logfileinfo, $infoline);
- next; # removing this file from list, if sourcepath is empty
- }
+ next; # removing this file from list, if sourcepath is empty
}
- }
+ }
}
push(@newfilesarray, $onefile);
diff --git a/solenv/bin/modules/installer/servicesfile.pm b/solenv/bin/modules/installer/servicesfile.pm
deleted file mode 100644
index 948287b206f8..000000000000
--- a/solenv/bin/modules/installer/servicesfile.pm
+++ /dev/null
@@ -1,1059 +0,0 @@
-#*************************************************************************
-#
-# 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.
-#
-#*************************************************************************
-
-package installer::servicesfile;
-
-use Cwd;
-use installer::converter;
-use installer::existence;
-use installer::exiter;
-use installer::globals;
-use installer::logger;
-use installer::pathanalyzer;
-use installer::remover;
-use installer::scriptitems;
-use installer::systemactions;
-
-################################################################
-# Adding the newly created file into the files collector
-################################################################
-
-sub add_services_sourcepath_into_filearray
-{
- my ( $filesarrayref, $servicesfile, $servicesname ) = @_;
-
- my $found = 0;
- my $onefile;
-
- for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ )
- {
- $onefile = ${$filesarrayref}[$i];
- my $name = $onefile->{'Name'};
-
- if ( $servicesname eq $name )
- {
- $found = 1;
- $onefile->{'sourcepath'} = $servicesfile; # setting the sourcepath!
- last;
- }
- }
-
- if ( ! $found ) { installer::exiter::exit_program("ERROR: Did not find $servicesname in files collector!", "add_services_sourcepath_into_filearray"); }
-
-}
-
-################################################################
-# Generating a file url from a path
-################################################################
-
-sub make_file_url
-{
- my ( $path ) = @_;
-
- my $fileurl = "";
-
- # removing ending slash/backslash
-
- installer::remover::remove_ending_pathseparator(\$path);
-
- if ($installer::globals::iswin)
- {
- $path =~ s/\\/\//g;
- $fileurl = "file\:\/\/\/" . $path;
- }
- else
- {
- $fileurl = "file\:\/\/" . $path;
- }
-
- return $fileurl;
-}
-
-################################################################
-# Determining all sourcepath from the uno components
-################################################################
-
-sub get_all_sourcepathes
-{
- my ( $filesref ) = @_;
-
- my @pathes = ();
-
- for ( my $i = 0; $i <= $#{$filesref}; $i++ )
- {
- my $onefile = ${$filesref}[$i];
- my $path = $onefile->{'sourcepath'};
-
- installer::pathanalyzer::get_path_from_fullqualifiedname(\$path);
-
- if (! installer::existence::exists_in_array($path, \@pathes))
- {
- push(@pathes, $path);
- }
- }
-
- return \@pathes;
-}
-
-################################################################
-# Registering all uno component files in the services.rdb
-################################################################
-
-sub register_unocomponents
-{
- my ($allvariableshashref, $unocomponents, $regcompfileref, $servicesfile, $nativeservicesurlprefix) = @_;
-
- installer::logger::include_header_into_logfile("Registering UNO components:");
-
- my $error_occurred = 0;
- my $filestring = "";
- for ( my $i = 0; $i <= $#{$unocomponents}; ++$i )
- {
- my $local_error1_occurred = 0;
- my $local_error2_occurred = 0;
-
- my $sourcepath = make_file_url(${$unocomponents}[$i]->{'sourcepath'});
- my $urlprefix = ${$unocomponents}[$i]->{'NativeServicesURLPrefix'};
- if (defined($urlprefix))
- {
- $local_error1_occurred = call_regcomp($regcompfileref, $servicesfile, $sourcepath, $urlprefix);
- }
- else
- {
- $filestring .= ";" unless $filestring eq "";
- $filestring .= $sourcepath;
- }
- if (length($filestring) > $installer::globals::unomaxservices ||
- ($i == $#{$unocomponents} && $filestring ne ""))
- {
- $local_error2_occurred = call_regcomp($regcompfileref, $servicesfile, $filestring, $nativeservicesurlprefix);
- $filestring = "";
- }
-
- if (( $local_error1_occurred ) || ( $local_error2_occurred )) { $error_occurred = 1; }
- }
-
- return $error_occurred;
-}
-
-sub call_regcomp
-{
- my ($regcompfileref, $servicesfile, $filestring, $urlprefix) = @_;
- my @regcompoutput = ();
-
- my $error_occurred = 0;
-
- my $systemcall = "$$regcompfileref -register -r ".fix_cygwin_path($servicesfile)." -c " . $installer::globals::quote . $filestring . $installer::globals::quote . " -wop=" . $installer::globals::quote . $urlprefix . $installer::globals::quote . " 2\>\&1 |";
-
- open (REG, "$systemcall");
- while (<REG>) {push(@regcompoutput, $_); }
- close (REG);
-
- my $returnvalue = $?; # $? contains the return value of the systemcall
-
- my $infoline = "Systemcall: $systemcall\n";
- push( @installer::globals::logfileinfo, $infoline);
-
- for ( my $j = 0; $j <= $#regcompoutput; $j++ ) { push( @installer::globals::logfileinfo, "$regcompoutput[$j]"); }
-
- if ($returnvalue)
- {
- $infoline = "ERROR: $systemcall\n";
- push( @installer::globals::logfileinfo, $infoline);
- $error_occurred = 1;
- }
- else
- {
- $infoline = "SUCCESS: $systemcall\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
-
- return $error_occurred;
-}
-
-################################################################
-# Registering all java component files in the services.rdb
-################################################################
-
-sub register_javacomponents
-{
- my ($allvariableshashref, $javacomponents, $regcompfileref, $servicesfile, $regcomprdb, $javaservicesurlprefix) = @_;
-
- installer::logger::include_header_into_logfile("Registering Java components:");
-
- my $ridljar_ref = "ridl.jar";
- my $ure_internal_java_dir_ref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$ridljar_ref, "", 1);
- installer::pathanalyzer::get_path_from_fullqualifiedname($ure_internal_java_dir_ref);
- if ( $$ure_internal_java_dir_ref eq "" ) { installer::exiter::exit_program("Could not determine URE_INTERNAL_JAVA_DIR when registering Java components!", "register_javacomponents"); }
-
- my $error_occurred = 0;
-
- my $do_register = 1;
- if (!( $installer::globals::solarjava )) { $do_register = 0; }
-
- if ( $do_register )
- {
- my $filestring = "";
-
- for ( my $i = 0; $i <= $#{$javacomponents}; )
- {
- my $sourcepath = ${$javacomponents}[$i++]->{'sourcepath'};
-
- $filestring = $filestring . make_file_url($sourcepath);
-
- if ( $i % $installer::globals::javamaxservices == 0 || $i > $#{$javacomponents} ) # limiting to $installer::globals::maxservices files
- {
- my @regcompoutput = ();
-
- my $systemcall = "$$regcompfileref -register -br ".fix_cygwin_path($regcomprdb)." -r ".fix_cygwin_path($servicesfile)." -c " . $installer::globals::quote . $filestring . $installer::globals::quote . " -l com.sun.star.loader.Java2 -wop=" . $installer::globals::quote . $javaservicesurlprefix . $installer::globals::quote ." -env:URE_INTERNAL_JAVA_DIR=" . $installer::globals::quote . make_file_url($$ure_internal_java_dir_ref) . $installer::globals::quote . " 2\>\&1 |";
-
- open (REG, "$systemcall");
- while (<REG>) {push(@regcompoutput, $_); }
- close (REG);
-
- my $returnvalue = $?; # $? contains the return value of the systemcall
-
- my $infoline = "Systemcall: $systemcall\n";
- push( @installer::globals::logfileinfo, $infoline);
-
- for ( my $k = 0; $k <= $#regcompoutput; $k++ ) { push( @installer::globals::logfileinfo, "$regcompoutput[$k]"); }
-
- if ($returnvalue)
- {
- $infoline = "ERROR: $systemcall\n";
- $error_occurred = 1;
- }
- else
- {
- $infoline = "SUCCESS: $systemcall\n";
- }
-
- push( @installer::globals::logfileinfo, $infoline);
-
- $filestring = "";
- }
- else
- {
- $filestring = $filestring . ";";
- }
- }
- }
-
- return $error_occurred;
-}
-
-
-
-################################################################
-# Helper routine to change cygwin (POSIX) path to DOS notation
-# if needed
-################################################################
-sub fix_cygwin_path
-{
- my ( $path ) = @_;
-
- if ( $installer::globals::iswin eq 1 )
- {
- $path = qx{cygpath -m "$path"};
- chomp($path);
- }
-
- return $path;
-}
-
-
-
-################################################################
-# Registering all uno component files in the services.rdb
-################################################################
-sub get_source_path_cygwin_safe
-{
- my ( $name, $array, $int ) = @_;
-
- my $ret = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$name, $array, $int);
- if ( $installer::globals::iswin eq 1 )
- {
- if( substr( $$ret, 1,1 ) eq ":" )
- {
- chomp($$ret = qx{cygpath -u "$$ret"});
- }
- }
- return $ret;
-}
-
-sub register_pythoncomponents
-{
- my ($pythoncomponents, $regcompfileref, $servicesfile,$includepatharrayref) = @_;
-
- installer::logger::include_header_into_logfile("Registering python UNO components:");
-
- my $error_occurred = 0;
- my $counter = 0;
-
- my $systemcall = "";
-
- my $allsourcepathes = get_all_sourcepathes($pythoncomponents);
-
- for ( my $j = 0; $j <= $#{$allsourcepathes}; $j++ )
- {
- my $filestring = "";
- my $onesourcepath = ${$allsourcepathes}[$j];
- my $to = "";
- my $from = cwd();
- if ( $installer::globals::iswin ) { $from =~ s/\//\\/g; }
-
- my $typesrdbname = "types.rdb";
-
- # FIXME: Remove the unneeded
- # get_source_path_cygwin_safe() -> fix_cygwin_path()
- # when WRAPCMD is gone
- my $typesrdbref = get_source_path_cygwin_safe($typesrdbname, $includepatharrayref, 1);
-
- if ( $$typesrdbref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $typesrdbname !", "register_pythoncomponents"); }
-
- my $pyunoservicesrdbname = "pyuno_services.rdb";
- my $pyunoservicesrdbref = get_source_path_cygwin_safe($pyunoservicesrdbname, $includepatharrayref, 1);
-
- if ( $$pyunoservicesrdbref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $pyunoservicesrname !", "register_pythoncomponents"); }
-
- for ( my $i = 0; $i <= $#{$pythoncomponents}; $i++ )
- {
- my $doinclude = 1;
- my $sourcepath = ${$pythoncomponents}[$i]->{'sourcepath'};
-
- $to = $sourcepath;
- installer::pathanalyzer::get_path_from_fullqualifiedname(\$to);
-
- if (!($to eq $onesourcepath)) { $doinclude = 0; }
-
- if ( $doinclude )
- {
- my $filename = ${$pythoncomponents}[$i]->{'Name'};
- $filestring = $filestring . $filename . "\;";
- $counter++;
- }
-
- if ( $counter > 0 )
- {
- $filestring =~ s/\;\s*$//;
- $filestring = substr( $filestring, 0, length($filestring)-3);
- chdir($onesourcepath);
-
- my @regcompoutput = ();
-
- $systemcall = "$$regcompfileref -register"
- . " -br " . fix_cygwin_path($$typesrdbref)
- . " -br " . fix_cygwin_path($$pyunoservicesrdbref)
- . " -r " . fix_cygwin_path($servicesfile)
- . " -c vnd.openoffice.pymodule:" . $filestring . " -l com.sun.star.loader.Python 2\>\&1 |";
-
- open (REG, "$systemcall");
- while (<REG>) {push(@regcompoutput, $_); }
- close (REG);
-
- my $returnvalue = $?; # $? contains the return value of the systemcall
-
- my $infoline = "Systemcall: $systemcall\n";
- push( @installer::globals::logfileinfo, $infoline);
-
- for ( my $j = 0; $j <= $#regcompoutput; $j++ ) { push( @installer::globals::logfileinfo, "$regcompoutput[$j]"); }
-
- if ($returnvalue)
- {
- $infoline = "ERROR: $systemcall\n";
- push( @installer::globals::logfileinfo, $infoline);
- $error_occurred = 1;
- }
- else
- {
- $infoline = "SUCCESS: $systemcall\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
-
- chdir($from);
-
- $counter = 0;
- $filestring = "";
- }
- }
- }
-
- return $error_occurred;
-}
-
-################################################################
-# Iterating over all files, to find all files with the
-# style UNO_COMPONENT. This can be libraries and jar files.
-################################################################
-
-sub register_all_components
-{
- my ( $allvariableshashref, $servicesgid, $filesarrayref, $regcompfileref, $servicesfile, $regcomprdb, $includepatharrayref, $nativeservicesurlprefix, $javaservicesurlprefix ) = @_;
-
- my $registererrorflag = 0;
-
- my @unocomponents = ();
- my @javacomponents = ();
- my @pythoncomponents = ();
-
- for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ )
- {
- my $onefile = ${$filesarrayref}[$i];
- my $styles = "";
- my $regmergefile = "";
- my $registryid = "";
-
- if ( $onefile->{'RegistryID'} ) { $registryid = $onefile->{'RegistryID'}; }
-
- if ( $servicesgid ne $registryid ) { next; } # only registration for the current $servicesgid
-
- if ( $onefile->{'Regmergefile'} ) { $regmergefile = $onefile->{'Regmergefile'}; }
-
- if ( $onefile->{'Styles'} ) { $styles = $onefile->{'Styles'}; }
-
- if (( $styles =~ /\bUNO_COMPONENT\b/ ) && ( $regmergefile eq "" )) # regmergefiles will not be registered with regcomp
- {
- my $filename = $onefile->{'Name'};
-
- if ( $filename =~ /\.jar\s*$/ ) # java component
- {
- push(@javacomponents, $onefile);
- }
- elsif( $filename =~ /\.py\s*$/ ) # python_component
- {
- push(@pythoncomponents, $onefile);
- }
- else # uno component
- {
- push(@unocomponents, $onefile);
- }
- }
- }
-
- $uno_error_occurred = 0;
- $java_error_occurred = 0;
- $python_error_occurred = 0;
-
- if ( $#unocomponents > -1 ) { $uno_error_occurred = register_unocomponents($allvariableshashref, \@unocomponents, $regcompfileref, $servicesfile, $nativeservicesurlprefix); }
- if ( $#javacomponents > -1 ) { $java_error_occurred = register_javacomponents($allvariableshashref, \@javacomponents, $regcompfileref, $servicesfile, $regcomprdb, $javaservicesurlprefix); }
- if ( $#pythoncomponents > -1 ) { $python_error_occurred = register_pythoncomponents(\@pythoncomponents, $regcompfileref, $servicesfile, $includepatharrayref); }
-
- if ( $uno_error_occurred || $java_error_occurred || $python_error_occurred ) { $registererrorflag = 1; }
-
- return $registererrorflag;
-}
-
-###################################################
-# Include the solver lib directory into
-# the LD_LIBRARY_PATH for Unix platforms
-###################################################
-
-sub include_libdir_into_ld_library_path
-{
- my ( $var, $binfile ) = @_;
-
- my $ld_library_path = $binfile;
- installer::pathanalyzer::get_path_from_fullqualifiedname(\$ld_library_path);
- $ld_library_path =~ s/\/\s*$//; # removing ending slashes
- $ld_library_path =~ s/\/bin\./\/lib\./;
- $ld_library_path =~ s/\/bin\s*$/\/lib/; # when packing from flat
-
- my $oldldlibrarypathstring = $ENV{$var};
- my $new_ld_library_path = $ld_library_path;
- if ( defined $oldldlibrarypathstring ) {
- $new_ld_library_path = $new_ld_library_path . $installer::globals::pathseparator . $oldldlibrarypathstring;
- }
- if ( $ENV{'SYSTEM_MOZILLA'} && $ENV{'SYSTEM_MOZILLA'} eq "YES" &&
- (!$ENV{'WITH_OPENLDAP'} || $ENV{'WITH_OPENLDAP'} ne "YES")) {
- $new_ld_library_path = $new_ld_library_path . $installer::globals::pathseparator . $ENV{'MOZ_LIB'};
- }
- $ENV{$var} = $new_ld_library_path;
-
- my $infoline = "Setting $var to $ENV{$var}\n";
- push( @installer::globals::logfileinfo, $infoline);
-}
-
-##################################################################
-# Setting the needed jar files into the CLASSPATH
-# They are needed from regcomp.
-# The jar files are defined in @installer::globals::regcompjars
-##################################################################
-
-sub prepare_classpath_for_java_registration
-{
- my ( $includepatharrayref ) = @_;
- my $local_pathseparator = $installer::globals::pathseparator;
-
- if( $^O =~ /cygwin/i )
- { # $CLASSPATH must use DOS separator even when using cygwin's perl
- $local_pathseparator = ';';
- }
-
- for ( my $i = 0; $i <= $#installer::globals::regcompjars; $i++ )
- {
- my $filename = $installer::globals::regcompjars[$i];
-
- my $jarfileref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$filename, $includepatharrayref, 1);
-
- if ( $$jarfileref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $filename for registering java components!", "prepare_classpath_for_java_registration"); }
-
- my $oldclasspathstring = "";
- if ( $ENV{'CLASSPATH'} ) { $oldclasspathstring = $ENV{'CLASSPATH'}; }
- else { $oldclasspathstring = "\."; }
- my $classpathstring = $$jarfileref . $local_pathseparator . $oldclasspathstring;
- if ( $^O =~ /cygwin/i ) {
- $classpathstring =~ s/\//\\/g; # guw.pl likes '\' in $PATH.
- }
- $ENV{'CLASSPATH'} = $classpathstring;
-
- my $infoline = "Setting CLASSPATH to $ENV{'CLASSPATH'}\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
-}
-
-##################################################################
-# Setting the jdk lib into the LD_LIBRARY_PATH (Unix)
-# This is used by regcomp to register Java components.
-# The jdk lib is defined in $installer::globals::jdklib
-##################################################################
-
-sub add_jdklib_into_ld_library_path
-{
- my ($var) = @_;
- if (defined $installer::globals::jdklib) {
- my $oldldlibrarypathstring = $ENV{$var};
- my $new_ld_library_path = $installer::globals::jdklib;
- if (defined $oldldlibrarypathstring) {
- $new_ld_library_path .=
- $installer::globals::pathseparator . $oldldlibrarypathstring;
- }
- $ENV{$var} = $new_ld_library_path;
- my $infoline = "Setting $var to $ENV{$var}\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
-}
-
-##################################################################
-# Adding the libraries included in zip files into path variable
-# (for example mozruntime.zip). This is needed to register all
-# libraries successfully.
-##################################################################
-
-sub add_path_to_pathvariable_directory
-{
- my ( $filesarrayref, $searchstring ) = @_;
-
- # determining the path
-
- my $path = "";
-
- for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ )
- {
- my $onefile = ${$filesarrayref}[$i];
- my $sourcepath = $onefile->{'sourcepath'};
-
- installer::pathanalyzer::get_path_from_fullqualifiedname(\$sourcepath);
- installer::remover::remove_ending_pathseparator(\$sourcepath);
-
- if ( $sourcepath =~ /\Q$searchstring\E\s*$/ )
- {
- $path = $sourcepath;
- last;
- }
- }
-
- # adding the path to the PATH variable
-
- if ( $path ne "" )
- {
- my $oldpath = "";
- if ( $ENV{'PATH'} ) { $oldpath = $ENV{'PATH'}; }
- else { $oldpath = "\."; }
- if ( $^O =~ /cygwin/i ) {
- $path = qx(cygpath -u "$path");
- chomp $path;
- }
- my $newpath = $path . $installer::globals::pathseparator . $oldpath;
- $ENV{'PATH'} = $newpath;
-
- my $infoline = "Setting PATH to $ENV{'PATH'}\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
-}
-
-##################################################################
-# Adding the path of a specified library to the path variable
-# (for example msvcr70.dll). This is needed to register all
-# libraries successfully.
-##################################################################
-
-sub add_path_to_pathvariable
-{
- my ( $filesarrayref, $searchstring ) = @_;
-
- # determining the path
-
- my $path = "";
-
- for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ )
- {
- my $onefile = ${$filesarrayref}[$i];
- my $sourcepath = $onefile->{'sourcepath'};
-
- if ( $sourcepath =~ /\Q$searchstring\E\s*$/ )
- {
- installer::pathanalyzer::get_path_from_fullqualifiedname(\$sourcepath);
- installer::remover::remove_ending_pathseparator(\$sourcepath);
- $path = $sourcepath;
- last;
- }
- }
-
- # adding the path to the PATH variable
-
- if ( $path ne "" )
- {
- my $oldpath = "";
- if ( $ENV{'PATH'} ) { $oldpath = $ENV{'PATH'}; }
- else { $oldpath = "\."; }
- if ( $^O =~ /cygwin/i ) {
- $path = qx(cygpath -u "$path");
- chomp $path;
- }
- my $newpath = $path . $installer::globals::pathseparator . $oldpath;
- $ENV{'PATH'} = $newpath;
-
- my $infoline = "Setting PATH to $ENV{'PATH'}\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
-}
-
-##################################################################
-# Setting the jre path into the PATH (Windows only)
-# This is used by regcomp.exe to register Java components.
-# The jre path is saved in $installer::globals::jrepath
-##################################################################
-
-sub add_jrepath_into_path
-{
- my $oldpath = "";
- if ( $ENV{'PATH'} ) { $oldpath = $ENV{'PATH'}; }
- else { $oldpath = "\."; }
-
- if ( $installer::globals::jrepath ne "" )
- {
- my $newpath = $installer::globals::jrepath . $installer::globals::pathseparator . $oldpath;
- $ENV{'PATH'} = $newpath;
-
- my $infoline = "Setting PATH to $ENV{'PATH'}\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
-}
-
-#######################################################################################
-# Preparing a registry "regcomp.rdb" which regcomp can work on (types+java services).
-# Copying the "udkapi.rdb", renaming it to "regcomp.rdb" and registering the
-# libraries @installer::globals::regcompregisterlibs, which are javavm.uno.so
-# and javaloader.uno.so or javavm.uno.dll and javaloader.uno.dll
-#######################################################################################
-
-sub prepare_regcomp_rdb
-{
- my ( $regcompfile, $servicesdir, $includepatharrayref) = @_;
-
- # udkapi.rdb has to be found in the sourcepath
-
- my $filename = "udkapi.rdb";
- my $udkapirdbref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$filename, $includepatharrayref, 1);
- if ( $$udkapirdbref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $filename for creating regcomp.rdb!", "prepare_regcomp_rdb"); }
-
- my $regcompfilename = "regcomp.rdb";
- my $regcomprdb = $servicesdir . $installer::globals::separator . $regcompfilename;
-
- # If there is an older version of this file, it has to be removed
- if ( -f $regcomprdb ) { unlink($regcomprdb); }
-
- installer::systemactions::copy_one_file($$udkapirdbref, $regcomprdb);
-
- # now the libraries in @installer::globals::regcompregisterlibs can be registered in the "regcomp.rdb"
-
- for ( my $i = 0; $i <= $#installer::globals::regcompregisterlibs; $i++ )
- {
- my $libfilename = $installer::globals::regcompregisterlibs[$i] . $installer::globals::libextension;
- my $libfileref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$libfilename, $includepatharrayref, 1);
- if ( $$libfileref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $libfilename for creating regcomp.rdb!", "prepare_regcomp_rdb"); }
-
- my $from = cwd();
- if ( $installer::globals::iswin ) { $from =~ s/\//\\/g; }
-
- my $to = $$libfileref;
- installer::pathanalyzer::get_path_from_fullqualifiedname(\$to);
-
- chdir($to);
-
- my $systemcall = "$regcompfile -register -s -r " . fix_cygwin_path($regcomprdb) . " -c $libfilename";
-
- my $returnvalue = system($systemcall);
-
- chdir($from);
-
- my $infoline;
- if ($returnvalue) { $infoline = "ERROR: $systemcall\n"; }
- else { $infoline = "SUCCESS: $systemcall\n"; }
-
- push( @installer::globals::logfileinfo, $infoline);
- }
-
- return $regcomprdb;
-}
-
-################################################################
-# Collecting all gids of the databases, that are part of
-# the file definition
-################################################################
-
-sub collect_all_services_gids
-{
- my ($filesarrayref) = @_;
-
- my @databasegids = ();
- my $error_occurred = 0;
- my @error_files = ();
-
- for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ )
- {
- my $onefile = ${$filesarrayref}[$i];
-
- if ( $onefile->{'RegistryID'} )
- {
- my $databasegid = $onefile->{'RegistryID'};
- if (! installer::existence::exists_in_array($databasegid, \@databasegids)) { push(@databasegids, $databasegid); }
- }
- else
- {
- push(@error_files, $onefile->{'gid'});
- $error_occurred = 1;
- }
- }
-
- if ( $error_occurred )
- {
- my $infoline = "ERROR: Style UNO_COMPONENT is set, but no RegistryID is assigned!\n";
- push( @installer::globals::logfileinfo, $infoline);
- print $infoline;
-
- for ( my $j = 0; $j <= $#error_files; $j++ )
- {
- $infoline = "$error_files[$j]\n";
- push( @installer::globals::logfileinfo, $infoline);
- print $infoline;
- }
-
- installer::exiter::exit_program("ERROR: File defintion error.", "collect_all_services_gids");
- }
-
- return \@databasegids;
-}
-
-######################################################################
-# All gids in $databasegids are as RegistryID assigned to files.
-# For all this Registry Files a definition has to exist.
-######################################################################
-
-sub check_defintion_of_databasegids
-{
- my ($databasegids, $registryfiles) = @_;
-
- my @registryfiles = ();
-
- # First check: For all assigned Registry files, a definition of
- # a file with flag STARREGISTRY has to exist.
-
- for ( my $i = 0; $i <= $#{$databasegids}; $i++ )
- {
- my $onegid = ${$databasegids}[$i];
- my $gid_defined = 0;
-
- for ( my $j = 0; $j <= $#{$registryfiles}; $j++ )
- {
- my $registrygid = ${$registryfiles}[$j]->{'gid'};
-
- if ( $onegid eq $registrygid )
- {
- $gid_defined = 1;
- last;
- }
- }
-
- if ( ! $gid_defined )
- {
- installer::exiter::exit_program("ERROR: Gid $onegid is assigned to file(s), but not defined!", "check_defintion_of_databasegids");
- }
- }
-
- # Second check: If there is a file defined as StarRegistry, is a file with flag UNO_COMPONENT assigned?
-
- for ( my $j = 0; $j <= $#{$registryfiles}; $j++ )
- {
- my $onefile = ${$registryfiles}[$j];
- my $registrygid = $onefile->{'gid'};
-
- my $gid_assigned = 0;
-
- for ( my $i = 0; $i <= $#{$databasegids}; $i++ )
- {
- my $onegid = ${$databasegids}[$i];
-
- if ( $onegid eq $registrygid )
- {
- $gid_assigned = 1;
- last;
- }
- }
-
- if ( ! $gid_assigned )
- {
- my $infoline = "Warning: $registrygid is defined with flag STARREGISTRY, but no file is assigned to the registry.\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
- else
- {
- push(@registryfiles, $onefile);
- }
- }
-
- return \@registryfiles;
-}
-
-################################################################
-# Some files have flag UNO_COMPONENT, but are not registered
-# with regcomp. This files use the regmerge mechanism, that
-# is not used in this perl-file. Therefore this files
-# have to be filtered out here.
-################################################################
-
-sub filter_regmergefiles
-{
- my ($unocomponentfiles) = @_;
-
- my @regcompfiles = ();
-
- for ( my $i = 0; $i <= $#{$unocomponentfiles}; $i++ )
- {
- my $onefile = ${$unocomponentfiles}[$i];
- my $regmergefile = "";
-
- if ( $onefile->{'Regmergefile'} ) { $regmergefile = $onefile->{'Regmergefile'}; }
- if ( $regmergefile ne "" ) { next; }
-
- push(@regcompfiles, $onefile);
- }
-
- return \@regcompfiles;
-}
-
-################################################################
-# Setting defaults for Creating services.rdb file by registering all uno components
-################################################################
-
-sub set_url_prefixes
-{
- my ( $registryfile ) = @_;
-
- my $nativeservicesurlprefix = "";
- my $javaservicesurlprefix = "";
-
- if ( $registryfile->{'NativeServicesURLPrefix'} ) { $nativeservicesurlprefix = $registryfile->{'NativeServicesURLPrefix'}; }
- else { $nativeservicesurlprefix = "vnd.sun.star.expand:\$ORIGIN/"; }
-
- if ( $registryfile->{'JavaServicesURLPrefix'} ) { $javaservicesurlprefix = $registryfile->{'JavaServicesURLPrefix'}; }
- else { $javaservicesurlprefix = "vnd.sun.star.expand:\$UNO_JAVA_COMPONENT_PATH/"; }
-
- return ($nativeservicesurlprefix, $javaservicesurlprefix);
-}
-
-################################################################
-# Creating services.rdb file by registering all uno components
-################################################################
-
-sub create_services_rdb
-{
- my ($allvariableshashref, $filesarrayref, $includepatharrayref, $languagestringref) = @_;
-
- # collecting all services files
- my $unocomponentfiles = installer::worker::collect_all_items_with_special_flag($filesarrayref, "UNO_COMPONENT");
- $unocomponentfiles = filter_regmergefiles($unocomponentfiles);
-
- if ( $#{$unocomponentfiles} > -1 ) # not empty -> at least one file with flag UNO_COMPONENT
- {
- my $databasegids = collect_all_services_gids($unocomponentfiles);
-
- my $registryfiles = installer::worker::collect_all_items_with_special_flag($filesarrayref, "STARREGISTRY");
-
- $registryfiles = check_defintion_of_databasegids($databasegids, $registryfiles);
-
- # Now the creation of all files with flag STARREGISTRY can begin
-
- for ( my $i = 0; $i <= $#{$registryfiles}; $i++ )
- {
- my $registryfile = ${$registryfiles}[$i];
-
- my $servicesname = $registryfile->{'Name'}; # not unique!
- my $servicesgid = $registryfile->{'gid'}; # unique
- my $uniquedirname = $servicesgid . "_servicesrdb";
-
- my ($nativeservicesurlprefix, $javaservicesurlprefix) = set_url_prefixes($registryfile);
-
- installer::logger::include_header_into_logfile("Creating $servicesname ($servicesgid):");
-
- my $servicesdir = installer::systemactions::create_directories($uniquedirname, $languagestringref);
-
- push(@installer::globals::removedirs, $servicesdir);
-
- my $servicesfile = $servicesdir . $installer::globals::separator . $servicesname;
-
- # If there is an older version of this file, it has to be removed
- if ( -f $servicesfile ) { unlink($servicesfile); }
-
- if ( $installer::globals::servicesrdb_can_be_created ) # This has to be done always
- {
- # Creating the services.rdb in directory "inprogress"
- my $origservicesdir = $servicesdir;
- $servicesdir = installer::systemactions::make_numbered_dir("inprogress", $servicesdir);
- $servicesfile = $servicesdir . $installer::globals::separator . $servicesname;
-
- # determining the location of the file regcomp
- # Because the program regcomp.exe (regcomp) is used now, it has to be taken the version
- # from the platform, this script is running. It is not important, for which platform the
- # product is built.
-
- my $searchname;
-
- if ($installer::globals::isunix) { $searchname = "regcomp"; }
- else { $searchname = "regcomp.exe"; }
-
- $regcompfileref = get_source_path_cygwin_safe($searchname, $includepatharrayref, 1);
- if ( $$regcompfileref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $searchname for registering uno components!", "create_services_rdb"); }
-
- # For Windows the libraries included into the mozruntime.zip have to be added to the path
- if ($installer::globals::iswin) { add_path_to_pathvariable_directory($filesarrayref, "mozruntime_zip"); }
- if ($installer::globals::iswin) { add_path_to_pathvariable($filesarrayref, "msvcr70.dll"); }
-
- # setting the LD_LIBRARY_PATH, needed by regcomp
- # Linux: Take care of the lock daemon. He has to be started!
- # For windows it is necessary that "msvcp7x.dll" and "msvcr7x.dll" are included into the path !
-
- my $var_library_path;
- my $old_library_path;
- if ( $installer::globals::isunix ) {
- $var_library_path = $installer::globals::ismacosx ?
- 'DYLD_LIBRARY_PATH' : 'LD_LIBRARY_PATH';
- $old_library_path = $ENV{$var_library_path};
- include_libdir_into_ld_library_path(
- $var_library_path, $$regcompfileref);
- }
-
- my $regcomprdb = "";
-
- if ( $installer::globals::solarjava ) # this is needed to register Java components
- {
- prepare_classpath_for_java_registration($includepatharrayref);
-
- if ( $installer::globals::isunix )
- { add_jdklib_into_ld_library_path($var_library_path); }
- else { add_jrepath_into_path(); }
-
- # Preparing a registry which regcomp can work on (types+java services).
- # Copying the "udkapi.rdb", renaming it to "regcomp.rdb" and registering the
- # libraries $(REGISTERLIBS_JAVA), which are javavm.uno.so and javaloader.uno.so
- # or javavm.uno.dll and javaloader.uno.dll
-
- $regcomprdb = prepare_regcomp_rdb($$regcompfileref, $servicesdir, $includepatharrayref);
- }
-
- # and now iteration over all files
-
- my $error_during_registration = register_all_components($allvariableshashref, $servicesgid, $unocomponentfiles, $regcompfileref, $servicesfile, $regcomprdb, $includepatharrayref, $nativeservicesurlprefix, $javaservicesurlprefix);
-
- if (defined $var_library_path) {
- if (defined $old_library_path) {
- $ENV{$var_library_path} = $old_library_path;
- } else {
- delete $ENV{$var_library_path};
- }
- }
-
- # Dependent from the success, the registration directory can be renamed.
-
- if ( $error_during_registration )
- {
- $servicesdir = installer::systemactions::rename_string_in_directory($servicesdir, "inprogress", "witherror");
- push(@installer::globals::removedirs, $servicesdir);
- # and exiting the packaging process
- installer::exiter::exit_program("ERROR: Could not register all components for file $servicesname ($servicesgid)!", "create_services_rdb");
- }
- else
- {
- $servicesdir = installer::systemactions::rename_directory($servicesdir, $origservicesdir);
- }
-
- $servicesfile = $servicesdir . $installer::globals::separator . $servicesname;
- }
- else
- {
- my $infoline;
-
- if (!($installer::globals::servicesrdb_can_be_created))
- {
- $infoline = "Warning: $servicesname was not created. Build platform and compiler do not match. Build platform: $installer::globals::plat, compiler : $installer::globals::compiler\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
-
- if ( $installer::globals::services_rdb_created )
- {
- $infoline = "Info: $servicesname was not created. $servicesfile already exists.\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
-
- if ((!($installer::globals::servicesrdb_can_be_created)) && (!($installer::globals::services_rdb_created)))
- {
- $infoline = "ERROR: $servicesname was not created and does not exist!\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
- }
-
- # Adding the new services file source path to the filearray
- $registryfile->{'sourcepath'} = $servicesfile; # setting the sourcepath!
- }
- }
-
- # Setting the global variable $installer::globals::services_rdb_created
-
- $installer::globals::services_rdb_created = 1;
-}
-
-1;
diff --git a/solenv/bin/modules/installer/simplepackage.pm b/solenv/bin/modules/installer/simplepackage.pm
index 54959f95b66d..ea3897f10395 100644
--- a/solenv/bin/modules/installer/simplepackage.pm
+++ b/solenv/bin/modules/installer/simplepackage.pm
@@ -348,9 +348,10 @@ sub replace_one_variable_in_shellscript
sub replace_variables_in_scriptfile
{
- my ($scriptfile, $volume_name, $allvariables) = @_;
+ my ($scriptfile, $volume_name, $volume_name_app, $allvariables) = @_;
replace_one_variable_in_shellscript($scriptfile, $volume_name, "FULLPRODUCTNAME" );
+ replace_one_variable_in_shellscript($scriptfile, $volume_name_app, "FULLAPPPRODUCTNAME" );
replace_one_variable_in_shellscript($scriptfile, $allvariables->{'PRODUCTNAME'}, "PRODUCTNAME" );
replace_one_variable_in_shellscript($scriptfile, $allvariables->{'PRODUCTVERSION'}, "PRODUCTVERSION" );
@@ -409,10 +410,17 @@ sub create_package
$folder = $packagename;
}
- my $volume_name = $allvariables->{'PRODUCTNAME'} . ' ' . $allvariables->{'PRODUCTVERSION'};
- $volume_name = $volume_name . ' ' . $allvariables->{'PRODUCTEXTENSION'} if $allvariables->{'PRODUCTEXTENSION'};
+ # my $volume_name = $allvariables->{'PRODUCTNAME'} . ' ' . $allvariables->{'PRODUCTVERSION'}; # Adding PRODUCTVERSION makes this difficult to maintain!
+ my $volume_name = $allvariables->{'PRODUCTNAME'};
+ my $volume_name_classic = $allvariables->{'PRODUCTNAME'} . ' ' . $allvariables->{'PRODUCTVERSION'};
+ my $volume_name_classic_app = $volume_name; # "app" should not contain version number
+ # $volume_name = $volume_name . ' ' . $allvariables->{'PRODUCTEXTENSION'} if $allvariables->{'PRODUCTEXTENSION'}; # Adding PRODUCTEXTENSION makes this difficult to maintain!
+ $volume_name_classic = $volume_name_classic . ' ' . $allvariables->{'PRODUCTEXTENSION'} if $allvariables->{'PRODUCTEXTENSION'};
+ $volume_name_classic_app = $volume_name_classic_app . ' ' . $allvariables->{'PRODUCTEXTENSION'} if $allvariables->{'PRODUCTEXTENSION'};
if ( $allvariables->{'DMG_VOLUMEEXTENSION'} ) {
$volume_name = $volume_name . ' ' . $allvariables->{'DMG_VOLUMEEXTENSION'};
+ $volume_name_classic = $volume_name_classic . ' ' . $allvariables->{'DMG_VOLUMEEXTENSION'};
+ $volume_name_classic_app = $volume_name_classic_app . ' ' . $allvariables->{'DMG_VOLUMEEXTENSION'};
}
my $sla = 'sla.r';
@@ -428,12 +436,23 @@ sub create_package
if (( $installer::globals::languagepack ) || ( $installer::globals::helppack ) || ( $installer::globals::patch ))
{
$localtempdir = "$tempdir/$packagename";
- if ( $installer::globals::languagepack ) { $volume_name = "$volume_name Language Pack"; }
if ( $installer::globals::helppack ) { $volume_name = "$volume_name Help Pack"; }
- if ( $installer::globals::patch ) { $volume_name = "$volume_name Patch"; }
+ if ( $installer::globals::languagepack )
+ {
+ $volume_name = "$volume_name Language Pack";
+ $volume_name_classic = "$volume_name_classic Language Pack";
+ $volume_name_classic_app = "$volume_name_classic_app Language Pack";
+ }
+ if ( $installer::globals::patch )
+ {
+ $volume_name = "$volume_name Patch";
+ $volume_name_classic = "$volume_name_classic Patch";
+ $volume_name_classic_app = "$volume_name_classic_app Patch";
+ }
# Create tar ball named tarball.tar.bz2
- my $appfolder = $localtempdir . "/" . $volume_name . "\.app";
+ # my $appfolder = $localtempdir . "/" . $volume_name . "\.app";
+ my $appfolder = $localtempdir . "/" . $volume_name_classic_app . "\.app";
my $contentsfolder = $appfolder . "/Contents";
my $tarballname = "tarball.tar.bz2";
@@ -477,7 +496,8 @@ sub create_package
if ( $installer::globals::helppack ) { $scriptfilename = "osx_install_helppack.applescript"; }
if ( $installer::globals::patch ) { $scriptfilename = "osx_install_patch.applescript"; }
my $scripthelpersolverfilename = "mac_install.script";
- my $scripthelperrealfilename = $volume_name;
+ # my $scripthelperrealfilename = $volume_name;
+ my $scripthelperrealfilename = $volume_name_classic_app;
my $translationfilename = $installer::globals::macinstallfilename;
# Finding both files in solver
@@ -500,7 +520,8 @@ sub create_package
my $scriptfilecontent = installer::files::read_file($scriptfilename);
my $translationfilecontent = installer::files::read_file($$translationfileref);
localize_scriptfile($scriptfilecontent, $translationfilecontent, $languagestringref);
- replace_variables_in_scriptfile($scriptfilecontent, $volume_name, $allvariables);
+ # replace_variables_in_scriptfile($scriptfilecontent, $volume_name, $allvariables);
+ replace_variables_in_scriptfile($scriptfilecontent, $volume_name_classic, $volume_name_classic_app, $allvariables);
installer::files::save_file($scriptfilename, $scriptfilecontent);
chmod 0775, $scriptfilename;
@@ -525,7 +546,8 @@ sub create_package
# Replacing variables in Info.plist
$scriptfilecontent = installer::files::read_file($destfile);
- replace_one_variable_in_shellscript($scriptfilecontent, $volume_name, "FULLPRODUCTNAME" );
+ # replace_one_variable_in_shellscript($scriptfilecontent, $volume_name, "FULLPRODUCTNAME" );
+ replace_one_variable_in_shellscript($scriptfilecontent, $volume_name_classic_app, "FULLAPPPRODUCTNAME" ); # OpenOffice.org Language Pack
installer::files::save_file($destfile, $scriptfilecontent);
chdir $localfrom;
diff --git a/solenv/bin/modules/installer/substfilenamefiles.pm b/solenv/bin/modules/installer/substfilenamefiles.pm
index 2a2b22eab53c..98906913c159 100644
--- a/solenv/bin/modules/installer/substfilenamefiles.pm
+++ b/solenv/bin/modules/installer/substfilenamefiles.pm
@@ -34,8 +34,7 @@ use installer::pathanalyzer;
use installer::systemactions;
#########################################################
-# Analyzing files with flag SCPZIP_REPLACE
-# $item can be "File" or "ScpAction"
+# Analyzing files with flag SUBST_FILENAME
#########################################################
sub resolving_subst_filename_flag
diff --git a/solenv/bin/modules/installer/windows/component.pm b/solenv/bin/modules/installer/windows/component.pm
index 498a86c2d319..da11997e5f83 100644
--- a/solenv/bin/modules/installer/windows/component.pm
+++ b/solenv/bin/modules/installer/windows/component.pm
@@ -198,7 +198,7 @@ sub get_registry_component_directory
sub get_file_component_attributes
{
- my ($componentname, $filesref) = @_;
+ my ($componentname, $filesref, $allvariables) = @_;
my $attributes;
@@ -245,6 +245,9 @@ sub get_file_component_attributes
$attributes = 4; # Files in shellnew dir and in non advertised startmenu entries must have user registry key as KeyPath
}
+ # Adding 256, if this is a 64 bit installation set.
+ if (( $allvariables->{'64BITPRODUCT'} ) && ( $allvariables->{'64BITPRODUCT'} == 1 )) { $attributes = $attributes + 256; }
+
return $attributes
}
@@ -256,12 +259,15 @@ sub get_file_component_attributes
sub get_registry_component_attributes
{
- my ($componentname) = @_;
+ my ($componentname, $allvariables) = @_;
my $attributes;
$attributes = 4;
+ # Adding 256, if this is a 64 bit installation set.
+ if (( $allvariables->{'64BITPRODUCT'} ) && ( $allvariables->{'64BITPRODUCT'} == 1 )) { $attributes = $attributes + 256; }
+
if ( exists($installer::globals::dontdeletecomponents{$componentname}) ) { $attributes = $attributes + 16; }
return $attributes
@@ -386,7 +392,7 @@ sub get_component_keypath
sub create_component_table
{
- my ($filesref, $registryref, $dirref, $allfilecomponentsref, $allregistrycomponents, $basedir, $componentidhashref, $componentidkeypathhashref) = @_;
+ my ($filesref, $registryref, $dirref, $allfilecomponentsref, $allregistrycomponents, $basedir, $componentidhashref, $componentidkeypathhashref, $allvariables) = @_;
my @componenttable = ();
@@ -404,7 +410,7 @@ sub create_component_table
$onecomponent{'guid'} = get_component_guid($onecomponent{'name'}, $componentidhashref);
$onecomponent{'directory'} = get_file_component_directory($onecomponent{'name'}, $filesref, $dirref);
if ( $onecomponent{'directory'} eq "IGNORE_COMP" ) { next; }
- $onecomponent{'attributes'} = get_file_component_attributes($onecomponent{'name'}, $filesref);
+ $onecomponent{'attributes'} = get_file_component_attributes($onecomponent{'name'}, $filesref, $allvariables);
$onecomponent{'condition'} = get_file_component_condition($onecomponent{'name'}, $filesref);
$onecomponent{'keypath'} = get_component_keypath($onecomponent{'name'}, $filesref, $componentidkeypathhashref);
@@ -423,7 +429,7 @@ sub create_component_table
$onecomponent{'name'} = ${$allregistrycomponents}[$i];
$onecomponent{'guid'} = get_component_guid($onecomponent{'name'}, $componentidhashref);
$onecomponent{'directory'} = get_registry_component_directory();
- $onecomponent{'attributes'} = get_registry_component_attributes($onecomponent{'name'});
+ $onecomponent{'attributes'} = get_registry_component_attributes($onecomponent{'name'}, $allvariables);
$onecomponent{'condition'} = get_component_condition($onecomponent{'name'});
$onecomponent{'keypath'} = get_component_keypath($onecomponent{'name'}, $registryref, $componentidkeypathhashref);
diff --git a/solenv/bin/modules/installer/windows/directory.pm b/solenv/bin/modules/installer/windows/directory.pm
index 98134c8ef5b6..9ab583b5ed29 100644
--- a/solenv/bin/modules/installer/windows/directory.pm
+++ b/solenv/bin/modules/installer/windows/directory.pm
@@ -77,19 +77,78 @@ sub overwrite_programfilesfolder
}
##############################################################
+# Maximum length of directory name is 72.
+# Taking care of underlines, which are the separator.
+##############################################################
+
+sub make_short_dir_version
+{
+ my ($longstring, $length, $displayname) = @_;
+
+ my $shortstring = "";
+ my $infoline = "";
+ my $savestring = $longstring;
+
+ # Splitting the string at each "underline" and allowing only $length characters per directory name.
+ # Checking also uniqueness and length.
+
+ my $stringarray = installer::converter::convert_stringlist_into_array_without_newline(\$longstring, "_");
+
+ foreach my $onestring ( @{$stringarray} )
+ {
+ my $partstring = "";
+
+ if ( $onestring =~ /\-/ )
+ {
+ my $localstringarray = installer::converter::convert_stringlist_into_array_without_newline(\$onestring, "-");
+ foreach my $onelocalstring ( @{$localstringarray} )
+ {
+ if ( length($onelocalstring) > $length ) { $onelocalstring = substr($onelocalstring, 0, $length); }
+ $partstring = $partstring . "-" . $onelocalstring;
+ }
+ $partstring =~ s/^\s*\-//;
+ }
+ else
+ {
+ if ( length($onestring) > $length ) { $partstring = substr($onestring, 0, $length); }
+ else { $partstring = $onestring; }
+ }
+
+ $shortstring = $shortstring . "_" . $partstring;
+ }
+
+ $shortstring =~ s/^\s*\_//;
+
+ if ( length($shortstring) > 72 )
+ {
+ my $shortlength = length($shortstring);
+ $infoline = "WARNING: Failed to create unique directory name with less than 72 characters: \"$displayname\" ($shortstring ($shortlength)).\n";
+ push(@installer::globals::logfileinfo, $infoline);
+ }
+
+ return $shortstring;
+}
+
+##############################################################
# Adding unique directory names to the directory collection
##############################################################
sub create_unique_directorynames
{
- my ($directoryref) = @_;
+ my ($directoryref, $allvariables) = @_;
$installer::globals::officeinstalldirectoryset = 0;
+ my %conversionhash = ();
+ my $infoline = "";
+ my $errorcount = 0;
+
for ( my $i = 0; $i <= $#{$directoryref}; $i++ )
{
my $onedir = ${$directoryref}[$i];
- my $uniquename = $onedir->{'HostName'};
+ my $hostname = $onedir->{'HostName'};
+
+ my $uniquename = $hostname;
my $styles = "";
if ( $onedir->{'Styles'} ) { $styles = $onedir->{'Styles'}; }
# get_path_from_fullqualifiedname(\$uniqueparentname);
@@ -101,6 +160,42 @@ sub create_unique_directorynames
$uniquename =~ s/\_//g; # removing existing underlines
$uniquename =~ s/\.//g; # removing dots in directoryname
$uniquename =~ s/\Q$installer::globals::separator\E/\_/g; # replacing slash and backslash with underline
+ $uniquename =~ s/OpenOffice/OO/g;
+ $uniquename =~ s/_registry/_rgy/g;
+ $uniquename =~ s/_registration/_rgn/g;
+ $uniquename =~ s/_extension/_ext/g;
+ $uniquename =~ s/_frame/_frm/g;
+ $uniquename =~ s/_table/_tbl/g;
+ $uniquename =~ s/_chart/_crt/g;
+
+ my $startlength = 5;
+
+ if ( ! $allvariables->{'NOSHORTDIRECTORYNAMES'} )
+ {
+ # This process does not work for SDK, because of its long and similar pathes
+ $uniquename = make_short_dir_version($uniquename, $startlength, $hostname); # taking care of underlines!
+ }
+
+ if ( exists($installer::globals::alluniquedirectorynames{$uniquename}) )
+ {
+ # This is an error, that must stop the packaging process
+ $errorcount++;
+
+ $infoline = "$errorcount: Already existing unique directory: $uniquename\n";
+ push( @installer::globals::logfileinfo, $infoline);
+ $infoline = "$errorcount: First full directory: $conversionhash{$uniquename}\n";
+ push( @installer::globals::logfileinfo, $infoline);
+ $infoline = "$errorcount: Current full directory: $hostname\n";
+ push( @installer::globals::logfileinfo, $infoline);
+ }
+
+ $conversionhash{$uniquename} = $hostname;
+
+ $installer::globals::alluniquedirectorynames{$uniquename} = 1;
+
+ # Important: The unique parent is generated from the string $uniquename. Therefore counters
+ # like adding "_1" is not allowed to achive uniqueness, because this depends from other directories
+ # and does not deliver always the same result.
my $uniqueparentname = $uniquename;
@@ -147,6 +242,11 @@ sub create_unique_directorynames
$installer::globals::vendordirectoryset = 1;
}
}
+
+ if ( $errorcount > 0 )
+ {
+ installer::exiter::exit_program("ERROR: Failed to create unique directory names.", "create_unique_directorynames");
+ }
}
#####################################################
@@ -441,8 +541,9 @@ sub create_directory_table
my $infoline;
overwrite_programfilesfolder($allvariableshashref);
- create_unique_directorynames($directoryref);
if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforidt_local_1.log", $directoryref); }
+ create_unique_directorynames($directoryref, $allvariableshashref);
+ if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforidt_local_1a.log", $directoryref); }
create_defaultdir_directorynames($directoryref, $shortdirnamehashref); # only destdir!
if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforidt_local_2.log", $directoryref); }
set_installlocation_directory($directoryref, $allvariableshashref);
diff --git a/solenv/bin/modules/installer/windows/file.pm b/solenv/bin/modules/installer/windows/file.pm
index 8396df3de157..059c394278d6 100644
--- a/solenv/bin/modules/installer/windows/file.pm
+++ b/solenv/bin/modules/installer/windows/file.pm
@@ -170,6 +170,40 @@ sub assign_sequencenumbers_to_files
}
}
+#########################################################
+# Create a shorter version of a long component name,
+# because maximum length in msi database is 72.
+# Attention: In multi msi installation sets, the short
+# names have to be unique over all packages, because
+# this string is used to create the globally unique id
+# -> no resetting of
+# %installer::globals::allshortcomponents
+# after a package was created.
+#########################################################
+
+sub generate_new_short_componentname
+{
+ my ($componentname) = @_;
+
+ my $shortcomponentname = "";
+ my $counter = 1;
+
+ my $startversion = substr($componentname, 0, 60); # taking only the first 60 characters
+ $startversion = $startversion . "_";
+
+ $shortcomponentname = $startversion . $counter;
+
+ while ( exists($installer::globals::allshortcomponents{$shortcomponentname}) )
+ {
+ $counter++;
+ $shortcomponentname = $startversion . $counter;
+ }
+
+ $installer::globals::allshortcomponents{$shortcomponentname} = 1;
+
+ return $shortcomponentname;
+}
+
###############################################
# Generating the component name from a file
###############################################
@@ -178,77 +212,139 @@ sub get_file_component_name
{
my ($fileref, $filesref) = @_;
- # In this function exists the rule to create components from files
- # Rule:
- # Two files get the same componentid, if:
- # both have the same destination directory.
- # both have the same "gid" -> both were packed in the same zip file
- # All other files are included into different components!
-
- # my $componentname = $fileref->{'gid'} . "_" . $fileref->{'Dir'};
-
- # $fileref->{'Dir'} is not sufficient! All files in a zip file have the same $fileref->{'Dir'},
- # but can be in different subdirectories.
- # Solution: destination=share\Scripts\beanshell\Capitalise\capitalise.bsh
- # in which the filename (capitalise.bsh) has to be removed and all backslashes (slashes) are
- # converted into underline.
-
- my $destination = $fileref->{'destination'};
- installer::pathanalyzer::get_path_from_fullqualifiedname(\$destination);
- $destination =~ s/\s//g;
- $destination =~ s/\\/\_/g;
- $destination =~ s/\//\_/g;
- $destination =~ s/\_\s*$//g; # removing ending underline
-
- my $componentname = $fileref->{'gid'} . "__" . $destination;
-
- # Files with different languages, need to be packed into different components.
- # Then the installation of the language specific component is determined by a language condition.
-
- if ( $fileref->{'ismultilingual'} )
- {
- my $officelanguage = $fileref->{'specificlanguage'};
- $componentname = $componentname . "_" . $officelanguage;
- }
-
- $componentname = lc($componentname); # componentnames always lowercase
-
- $componentname =~ s/\-/\_/g; # converting "-" to "_"
- $componentname =~ s/\./\_/g; # converting "-" to "_"
-
- # Attention: Maximum length for the componentname is 72
-
- $componentname =~ s/gid_file_/g_f_/g;
- $componentname =~ s/_extra_/_e_/g;
- $componentname =~ s/_config_/_c_/g;
- $componentname =~ s/_org_openoffice_/_o_o_/g;
- $componentname =~ s/_program_/_p_/g;
- $componentname =~ s/_typedetection_/_td_/g;
- $componentname =~ s/_linguistic_/_l_/g;
- $componentname =~ s/_module_/_m_/g;
- $componentname =~ s/_optional_/_opt_/g;
- $componentname =~ s/_packages/_pack/g;
- $componentname =~ s/_menubar/_mb/g;
- $componentname =~ s/_common_/_cm_/g;
- $componentname =~ s/_export_/_exp_/g;
- $componentname =~ s/_table_/_tb_/g;
- $componentname =~ s/_sofficecfg_/_sc_/g;
- $componentname =~ s/_startmodulecommands_/_smc_/g;
- $componentname =~ s/_drawimpresscommands_/_dic_/g;
- $componentname =~ s/_basiccommands_/_bac_/g;
- $componentname =~ s/_basicidecommands_/_baic_/g;
- $componentname =~ s/_genericcommands_/_genc_/g;
- $componentname =~ s/_bibliographycommands_/_bibc_/g;
- $componentname =~ s/_share_/_s_/g;
- $componentname =~ s/_modules_/_ms_/g;
- $componentname =~ s/_uiconfig_zip_/_ucz_/g;
- $componentname =~ s/_soffice_cfg_/_sc_/g;
-
- # All this is not necessary for files, which have the flag ASSIGNCOMPOMENT
+ my $componentname = "";
+
+ # Special handling for files with ASSIGNCOMPOMENT
my $styles = "";
if ( $fileref->{'Styles'} ) { $styles = $fileref->{'Styles'}; }
- if ( $styles =~ /\bASSIGNCOMPOMENT\b/ ) { $componentname = get_component_from_assigned_file($fileref->{'AssignComponent'}, $filesref); }
+ if ( $styles =~ /\bASSIGNCOMPOMENT\b/ )
+ {
+ $componentname = get_component_from_assigned_file($fileref->{'AssignComponent'}, $filesref);
+ }
+ else
+ {
+ # In this function exists the rule to create components from files
+ # Rule:
+ # Two files get the same componentid, if:
+ # both have the same destination directory.
+ # both have the same "gid" -> both were packed in the same zip file
+ # All other files are included into different components!
+
+ # my $componentname = $fileref->{'gid'} . "_" . $fileref->{'Dir'};
+
+ # $fileref->{'Dir'} is not sufficient! All files in a zip file have the same $fileref->{'Dir'},
+ # but can be in different subdirectories.
+ # Solution: destination=share\Scripts\beanshell\Capitalise\capitalise.bsh
+ # in which the filename (capitalise.bsh) has to be removed and all backslashes (slashes) are
+ # converted into underline.
+
+ my $destination = $fileref->{'destination'};
+ installer::pathanalyzer::get_path_from_fullqualifiedname(\$destination);
+ $destination =~ s/\s//g;
+ $destination =~ s/\\/\_/g;
+ $destination =~ s/\//\_/g;
+ $destination =~ s/\_\s*$//g; # removing ending underline
+
+ $componentname = $fileref->{'gid'} . "__" . $destination;
+
+ # Files with different languages, need to be packed into different components.
+ # Then the installation of the language specific component is determined by a language condition.
+
+ if ( $fileref->{'ismultilingual'} )
+ {
+ my $officelanguage = $fileref->{'specificlanguage'};
+ $componentname = $componentname . "_" . $officelanguage;
+ }
+
+ $componentname = lc($componentname); # componentnames always lowercase
+
+ $componentname =~ s/\-/\_/g; # converting "-" to "_"
+ $componentname =~ s/\./\_/g; # converting "-" to "_"
+
+ # Attention: Maximum length for the componentname is 72
+ # %installer::globals::allcomponents_in_this_database : resetted for each database
+ # %installer::globals::allcomponents : not resetted for each database
+ # Component strings must be unique for the complete product, because they are used for
+ # the creation of the globally unique identifier.
+
+ my $fullname = $componentname; # This can be longer than 72
+
+ if (( exists($installer::globals::allcomponents{$fullname}) ) && ( ! exists($installer::globals::allcomponents_in_this_database{$fullname}) ))
+ {
+ # This is not allowed: One component cannot be installed with different packages.
+ installer::exiter::exit_program("ERROR: Component \"$fullname\" is already included into another package. This is not allowed.", "get_file_component_name");
+ }
+
+ if ( exists($installer::globals::allcomponents{$fullname}) )
+ {
+ $componentname = $installer::globals::allcomponents{$fullname};
+ }
+ else
+ {
+ if ( length($componentname) > 72 )
+ {
+ # Using md5sum needs much time
+ # chomp(my $shorter = `echo $componentname | md5sum | sed -e "s/ .*//g"`);
+ # $componentname = "comp_$shorter";
+ $componentname = generate_new_short_componentname($componentname); # This has to be unique for the complete product, not only one package
+ }
+
+ $installer::globals::allcomponents{$fullname} = $componentname;
+ $installer::globals::allcomponents_in_this_database{$fullname} = 1;
+ }
+
+ # $componentname =~ s/gid_file_/g_f_/g;
+ # $componentname =~ s/_extra_/_e_/g;
+ # $componentname =~ s/_config_/_c_/g;
+ # $componentname =~ s/_org_openoffice_/_o_o_/g;
+ # $componentname =~ s/_program_/_p_/g;
+ # $componentname =~ s/_typedetection_/_td_/g;
+ # $componentname =~ s/_linguistic_/_l_/g;
+ # $componentname =~ s/_module_/_m_/g;
+ # $componentname =~ s/_optional_/_opt_/g;
+ # $componentname =~ s/_packages/_pack/g;
+ # $componentname =~ s/_menubar/_mb/g;
+ # $componentname =~ s/_common_/_cm_/g;
+ # $componentname =~ s/_export_/_exp_/g;
+ # $componentname =~ s/_table_/_tb_/g;
+ # $componentname =~ s/_sofficecfg_/_sc_/g;
+ # $componentname =~ s/_soffice_cfg_/_sc_/g;
+ # $componentname =~ s/_startmodulecommands_/_smc_/g;
+ # $componentname =~ s/_drawimpresscommands_/_dic_/g;
+ # $componentname =~ s/_basiccommands_/_bac_/g;
+ # $componentname =~ s/_basicidecommands_/_baic_/g;
+ # $componentname =~ s/_genericcommands_/_genc_/g;
+ # $componentname =~ s/_bibliographycommands_/_bibc_/g;
+ # $componentname =~ s/_gentiumbookbasicbolditalic_/_gbbbi_/g;
+ # $componentname =~ s/_share_/_s_/g;
+ # $componentname =~ s/_extension_/_ext_/g;
+ # $componentname =~ s/_extensions_/_exs_/g;
+ # $componentname =~ s/_modules_/_ms_/g;
+ # $componentname =~ s/_uiconfig_zip_/_ucz_/g;
+ # $componentname =~ s/_productivity_/_pr_/g;
+ # $componentname =~ s/_wizard_/_wz_/g;
+ # $componentname =~ s/_import_/_im_/g;
+ # $componentname =~ s/_javascript_/_js_/g;
+ # $componentname =~ s/_template_/_tpl_/g;
+ # $componentname =~ s/_tplwizletter_/_twl_/g;
+ # $componentname =~ s/_beanshell_/_bs_/g;
+ # $componentname =~ s/_presentation_/_bs_/g;
+ # $componentname =~ s/_columns_/_cls_/g;
+ # $componentname =~ s/_python_/_py_/g;
+
+ # $componentname =~ s/_tools/_ts/g;
+ # $componentname =~ s/_transitions/_trs/g;
+ # $componentname =~ s/_scriptbinding/_scrb/g;
+ # $componentname =~ s/_spreadsheet/_ssh/g;
+ # $componentname =~ s/_publisher/_pub/g;
+ # $componentname =~ s/_presenter/_pre/g;
+ # $componentname =~ s/_registry/_reg/g;
+
+ # $componentname =~ s/screen/sc/g;
+ # $componentname =~ s/wordml/wm/g;
+ # $componentname =~ s/openoffice/oo/g;
+ }
return $componentname;
}
diff --git a/solenv/bin/modules/installer/windows/idtglobal.pm b/solenv/bin/modules/installer/windows/idtglobal.pm
index fddbe749a57c..333df0e8ea08 100644
--- a/solenv/bin/modules/installer/windows/idtglobal.pm
+++ b/solenv/bin/modules/installer/windows/idtglobal.pm
@@ -90,10 +90,8 @@ sub get_next_free_number
}
until (!($alreadyexists));
- if (( $counter > 9 ) && ( length($name) > 6 ))
- {
- $dontsave = 1;
- }
+ if (( $counter > 9 ) && ( length($name) > 6 )) { $dontsave = 1; }
+ if (( $counter > 99 ) && ( length($name) > 5 )) { $dontsave = 1; }
if (!($dontsave))
{
@@ -191,6 +189,14 @@ sub make_eight_three_conform
$name =~ s/\s*$//; # removing ending whitespaces
$name = $name . "\~";
$number = get_next_free_number($name, $shortnamesref);
+
+ if ( $number > 99 )
+ {
+ $name = substr($name, 0, 4); # name, offset, length
+ $name =~ s/\s*$//; # removing ending whitespaces
+ $name = $name . "\~";
+ $number = get_next_free_number($name, $shortnamesref);
+ }
}
$name = $name . "$number";
@@ -223,6 +229,14 @@ sub make_eight_three_conform
$name =~ s/\s*$//; # removing ending whitespaces
$name = $name . "\~";
$number = get_next_free_number($name, $shortnamesref);
+
+ if ( $number > 99 )
+ {
+ $name = substr($name, 0, 4); # name, offset, length
+ $name =~ s/\s*$//; # removing ending whitespaces
+ $name = $name . "\~";
+ $number = get_next_free_number($name, $shortnamesref);
+ }
}
$name = $name . "$number";
diff --git a/solenv/bin/modules/installer/windows/msiglobal.pm b/solenv/bin/modules/installer/windows/msiglobal.pm
index 1731c1997af3..07f6b73c9cbc 100644
--- a/solenv/bin/modules/installer/windows/msiglobal.pm
+++ b/solenv/bin/modules/installer/windows/msiglobal.pm
@@ -788,11 +788,16 @@ sub get_codepage_for_sis
sub get_template_for_sis
{
- my ( $language ) = @_;
+ my ( $language, $allvariables ) = @_;
my $windowslanguage = installer::windows::language::get_windows_language($language);
- my $value = "\"Intel;" . $windowslanguage; # adding the Windows language
+ my $architecture = "Intel";
+
+ # Adding 256, if this is a 64 bit installation set.
+ if (( $allvariables->{'64BITPRODUCT'} ) && ( $allvariables->{'64BITPRODUCT'} == 1 )) { $architecture = "x64"; }
+
+ my $value = "\"" . $architecture . ";" . $windowslanguage; # adding the Windows language
$value = $value . "\""; # adding ending '"'
@@ -930,7 +935,7 @@ sub write_summary_into_msi_database
my $msiversion = get_msiversion_for_sis();
my $codepage = get_codepage_for_sis($language);
- my $template = get_template_for_sis($language);
+ my $template = get_template_for_sis($language, $allvariableshashref);
my $guid = get_packagecode_for_sis();
my $title = get_title_for_sis($sislanguage,$languagefile, "OOO_SIS_TITLE");
my $author = get_author_for_sis();
@@ -1629,6 +1634,104 @@ sub set_uuid_into_component_table
installer::files::save_file($componenttablename, $componenttable);
}
+#########################################################################
+# Adding final 64 properties into msi database, if required.
+# RegLocator : +16 in type column to search in 64 bit registry.
+# All conditions: "VersionNT" -> "VersionNT64" (several tables).
+# Already done: "+256" in Attributes column of table "Component".
+# Still following: Setting "x64" instead of "Intel" in Summary
+# Information Stream of msi database in "get_template_for_sis".
+#########################################################################
+
+sub prepare_64bit_database
+{
+ my ($basedir, $allvariables) = @_;
+
+ my $infoline = "";
+
+ if (( $allvariables->{'64BITPRODUCT'} ) && ( $allvariables->{'64BITPRODUCT'} == 1 ))
+ {
+ # 1. Beginning with table "RegLocat.idt". Adding "16" to the type.
+
+ my $reglocatfile = "";
+ my $reglocatfilename = $basedir . $installer::globals::separator . "RegLocat.idt";
+
+ if ( -f $reglocatfilename )
+ {
+ my $saving_required = 0;
+ $reglocatfile = installer::files::read_file($reglocatfilename);
+
+ for ( my $i = 3; $i <= $#{$reglocatfile}; $i++ ) # ignoring the first three lines
+ {
+ my $oneline = ${$reglocatfile}[$i];
+
+ if ( $oneline =~ /^\s*\#/ ) { next; } # this is a comment line
+ if ( $oneline =~ /^\s*$/ ) { next; }
+
+ if ( $oneline =~ /^\s*(.*?)\t(.*?)\t(.*?)\t(.*?)\t(\d+)\s*$/ )
+ {
+ # Syntax: Signature_ Root Key Name Type
+ my $sig = $1;
+ my $root = $2;
+ my $key = $3;
+ my $name = $4;
+ my $type = $5;
+
+ $type = $type + 16;
+
+ my $newline = $sig . "\t" . $root . "\t" . $key . "\t" . $name . "\t" . $type . "\n";
+ ${$reglocatfile}[$i] = $newline;
+
+ $saving_required = 1;
+ }
+ }
+
+ if ( $saving_required )
+ {
+ # Saving the files
+ installer::files::save_file($reglocatfilename ,$reglocatfile);
+ $infoline = "Making idt file 64 bit conform: $reglocatfilename\n";
+ push(@installer::globals::logfileinfo, $infoline);
+ }
+ }
+
+ # 2. Replacing all occurences of "VersionNT" by "VersionNT64"
+
+ my @versionnt_files = ("Componen.idt", "InstallE.idt", "InstallU.idt", "LaunchCo.idt");
+
+ foreach my $onefile ( @versionnt_files )
+ {
+ my $fullfilename = $basedir . $installer::globals::separator . $onefile;
+
+ if ( -f $fullfilename )
+ {
+ my $saving_required = 0;
+ $filecontent = installer::files::read_file($fullfilename);
+
+ for ( my $i = 3; $i <= $#{$filecontent}; $i++ ) # ignoring the first three lines
+ {
+ my $oneline = ${$filecontent}[$i];
+
+ if ( $oneline =~ /\bVersionNT\b/ )
+ {
+ ${$filecontent}[$i] =~ s/\bVersionNT\b/VersionNT64/g;
+ $saving_required = 1;
+ }
+ }
+
+ if ( $saving_required )
+ {
+ # Saving the files
+ installer::files::save_file($fullfilename ,$filecontent);
+ $infoline = "Making idt file 64 bit conform: $fullfilename\n";
+ push(@installer::globals::logfileinfo, $infoline);
+ }
+ }
+ }
+ }
+
+}
+
#################################################################
# Include all cab files into the msi database.
# This works only on Windows
@@ -1656,7 +1759,6 @@ sub include_cabs_into_msi
$msifilename = installer::converter::make_path_conform($msifilename);
# msidb.exe really wants backslashes. (And double escaping because system() expands the string.)
- $idtdirbase =~ s/\//\\\\/g;
$msifilename =~ s/\//\\\\/g;
$extraslash = "\\";
diff --git a/solenv/bin/modules/installer/windows/property.pm b/solenv/bin/modules/installer/windows/property.pm
index 8c311e759f16..44d9a3c06598 100644
--- a/solenv/bin/modules/installer/windows/property.pm
+++ b/solenv/bin/modules/installer/windows/property.pm
@@ -381,8 +381,8 @@ sub set_important_properties
if (( $allvariables->{'PRODUCTEXTENSION'} ) && ( $allvariables->{'PRODUCTEXTENSION'} eq "Beta" ))
{
- my $registryline = "WRITE_REGISTRY" . "\t" . "0" . "\n";
- push(@{$propertyfile}, $registryline);
+ # my $registryline = "WRITE_REGISTRY" . "\t" . "0" . "\n";
+ # push(@{$propertyfile}, $registryline);
my $betainfoline = "BETAPRODUCT" . "\t" . "1" . "\n";
push(@{$propertyfile}, $betainfoline);
}
diff --git a/solenv/bin/modules/par2script/check.pm b/solenv/bin/modules/par2script/check.pm
index 7a975f530445..78808cee9191 100644
--- a/solenv/bin/modules/par2script/check.pm
+++ b/solenv/bin/modules/par2script/check.pm
@@ -139,55 +139,6 @@ sub check_module_existence
}
########################################################
-# If the StarRegistry is not defined in the script,
-# it has to be removed from the file definition.
-########################################################
-
-sub check_registry_at_files
-{
- my %starregistrygid = ();
-
- my $item;
- foreach $item ( keys %{$par2script::globals::definitions{'File'}} )
- {
- if (( exists($par2script::globals::definitions{'File'}->{$item}->{'Styles'}) ) &&
- ( $par2script::globals::definitions{'File'}->{$item}->{'Styles'} =~ /\bSTARREGISTRY\b/ ))
- {
- $starregistrygid{$item} = 1;
- }
- }
-
- foreach $item ( keys %{$par2script::globals::definitions{'File'}} )
- {
- if ( exists($par2script::globals::definitions{'File'}->{$item}->{'RegistryID'}) )
- {
- my $registryid = $par2script::globals::definitions{'File'}->{$item}->{'RegistryID'};
- if ( ! exists($starregistrygid{$registryid}) )
- {
- die "\nERROR: No definition found for $registryid at file $item\n\n";
- }
-
- # if ( ! ( $par2script::globals::definitions{'File'}->{$item}->{'Styles'} =~ /\bUNO_COMPONENT\b/ ))
- # {
- # die "\nERROR: Flag UNO_COMPONENT required for file $item\n\n";
- # }
- # -> also possible, that Regmergefile is defined (does not require flag UNO_COMPONENT)
- }
-
- # and also vice versa
-
- if (( exists($par2script::globals::definitions{'File'}->{$item}->{'Styles'}) ) &&
- ( $par2script::globals::definitions{'File'}->{$item}->{'Styles'} =~ /\bUNO_COMPONENT\b/ ))
- {
- if ( ! exists($par2script::globals::definitions{'File'}->{$item}->{'RegistryID'}) )
- {
- die "\nERROR: Flag UNO_COMPONENT defined, but no file as \"RegistryID\" at file $item !\n\n";
- }
- }
- }
-}
-
-########################################################
# Every script has to contain exactly one root module.
# This module has no ParentID or an empty ParentID.
########################################################
diff --git a/solenv/bin/packcomponents.xslt b/solenv/bin/packcomponents.xslt
new file mode 100644
index 000000000000..6e037a677f73
--- /dev/null
+++ b/solenv/bin/packcomponents.xslt
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* 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.
+*
+**********************************************************************-->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:uc="http://openoffice.org/2010/uno-components">
+ <xsl:param name="prefix"/>
+ <xsl:strip-space elements="*"/>
+ <xsl:template match="/">
+ <xsl:element name="components"
+ namespace="http://openoffice.org/2010/uno-components">
+ <xsl:for-each select="list/filename">
+ <xsl:variable name="doc" select="document(concat($prefix, .))"/>
+ <xsl:choose>
+ <xsl:when test="count($doc/uc:component) = 1">
+ <xsl:copy-of select="$doc/uc:component"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">
+ <xsl:text>cannot process </xsl:text>
+ <xsl:value-of select="."/>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/solenv/bin/packmodule b/solenv/bin/packmodule
new file mode 100755
index 000000000000..d3ae30d48dcd
--- /dev/null
+++ b/solenv/bin/packmodule
@@ -0,0 +1,63 @@
+#! /usr/bin/env python
+#*************************************************************************
+#
+# 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.
+#
+#*************************************************************************
+import os, os.path, sys, zipfile
+
+def paths_to_pack(loglines):
+ """Returns a generator iterating the outdir fields (with platform) of gb_deliver.log lines."""
+ lines=[]
+ for line in loglines:
+ fields = line.split()
+ if len(fields) >= 3:
+ lines.append(fields[2])
+ return lines
+
+def stripped_paths_to_pack(loglines):
+ """returns a generator iterating the outdir fields (stripped of the platform) of gb_deliver.log lines."""
+ return (path.partition('/')[2] for path in paths_to_pack(loglines))
+
+def main(args):
+ """creates/overwrites a file at OUTDIR/zip/MODULE.zip containing the contents of the gb_deliver.log."""
+ if len(args) != 3:
+ print('usage: packmodule OUTDIR MODULE')
+ sys.exit(2)
+ (executable, outdir, module) = args
+ os.chdir(outdir)
+ zipdir = 'zip'
+ try:
+ os.makedirs(zipdir)
+ except OSError:
+ pass
+ deliverlog = open(os.path.join('inc', module, 'gb_deliver.log'))
+ packedmodule = zipfile.ZipFile(os.path.join(zipdir,module+'.zip'), 'w')
+ [packedmodule.write(path) for path in stripped_paths_to_pack(deliverlog)]
+ packedmodule.close()
+
+if __name__ == "__main__":
+ main(sys.argv)
+
+# vim:set et sw=4 ts=4 filetype=python:
diff --git a/solenv/bin/par2script.pl b/solenv/bin/par2script.pl
index 0789c460d510..06928ad68439 100644
--- a/solenv/bin/par2script.pl
+++ b/solenv/bin/par2script.pl
@@ -86,8 +86,6 @@ print "Checking module definitions ...\n";
par2script::check::check_module_existence();
print "Checking module assignments ...\n";
par2script::check::check_moduleid_at_items();
-print "Checking StarRegistry ...\n";
-par2script::check::check_registry_at_files();
print "Checking Root Module ...";
par2script::check::check_rootmodule();
print "Checking Shortcut assignments ...\n";
diff --git a/solenv/bin/soirpm.sh b/solenv/bin/soirpm.sh
index 86f8a3e269fd..86f8a3e269fd 100644..100755
--- a/solenv/bin/soirpm.sh
+++ b/solenv/bin/soirpm.sh
diff --git a/solenv/bin/subsequenttests b/solenv/bin/subsequenttests
index 3caa84293f3e..ae9b61922bd8 100755
--- a/solenv/bin/subsequenttests
+++ b/solenv/bin/subsequenttests
@@ -30,6 +30,8 @@ eval 'exec "$PERL" -Sw "$0" "$@"'
use lib("$ENV{SOLARENV}/bin/modules");
use SourceConfig;
+my $keep_going = 0;
+my $dry_run = 0;
my $max_running = 1;
while (@ARGV) {
my $arg = shift(@ARGV);
@@ -38,17 +40,36 @@ while (@ARGV) {
} elsif ($arg eq '--') {
last;
} else {
- print STDERR "unknown argument \"$arg\"\n";
- print STDERR "usage: $0 [-P<n>] [-- <args>]\n";
- print STDERR " -P<n> number of parallel dmake invocations\n";
- print STDERR " <args> are passed to dmake invocations\n";
- exit(1);
+ my $n = substr($arg, 0, 1) eq '-' ? 1 : 0;
+ while ($n && $n < length($arg)) {
+ my $c = substr($arg, $n++, 1);
+ if ($c eq 'k') {
+ $keep_going = 1;
+ } elsif ($c eq 'n') {
+ $dry_run = 1;
+ } else {
+ $n = 0;
+ last;
+ }
+ }
+ if (!$n) {
+ print STDERR "unknown argument \"$arg\"\n";
+ print STDERR "usage: $0 [-kn] [-P<n>] [-- <args>]\n";
+ print STDERR " -k continue with other dmake invocations upon\n";
+ print STDERR " failure\n";
+ print STDERR " -n write directories that would be processed\n";
+ print STDERR " to standard output\n";
+ print STDERR " -P<n> number of parallel dmake invocations\n";
+ print STDERR " <args> are passed to dmake invocations\n";
+ exit(1);
+ }
}
}
my @testpaths = ();
my $sc = SourceConfig->new($ENV{'SOLARSRC'});
my $module;
+my $gbuildpath = "$ENV{'SOLARSRC'}/GNUmakefile";
foreach $module ($sc->get_active_modules()) {
my $buildlst = $sc->get_module_build_list($module);
next unless defined($buildlst);
@@ -82,6 +103,26 @@ foreach $module ($sc->get_active_modules()) {
}
}
+if ($dry_run) {
+ foreach $path (@testpaths) {
+ print "$path\n";
+ }
+ print "$gbuildpath\n";
+ exit(0);
+}
+
+my @failedpaths = ();
+my @gbuildargs = ("-j$max_running", "-s");
+if ($keep_going) {
+ push(@gbuildargs,"-k");
+}
+push(@gbuildargs, "--file=$gbuildpath");
+push(@gbuildargs, "subsequentcheck");
+if (system($ENV{'GNUMAKE'}, @gbuildargs) != 0) {
+ push(@failedpaths,$gbuildpath);
+ @testpaths = () unless $keep_going;
+}
+
my $cmd = 'dmake';
foreach (@ARGV) {
s/'/'\''/g;
@@ -90,7 +131,6 @@ foreach (@ARGV) {
$cmd .= ' 2>&1 |';
my %pids = ();
-my @failedpaths = ();
my $running = 0;
my $counter = 0;
while (@testpaths || $running > 0) {
@@ -119,8 +159,8 @@ while (@testpaths || $running > 0) {
my $testpath = delete($pids{$pid});
defined($testpath) or die("unmatched PID $pid");
if ($? != 0) {
- @testpaths = ();
push(@failedpaths, $testpath);
+ @testpaths = () unless $keep_going;
}
--$running;
}
diff --git a/solenv/bin/transform_description.pl b/solenv/bin/transform_description.pl
index 9a7f850713dd..ff99df425049 100644
--- a/solenv/bin/transform_description.pl
+++ b/solenv/bin/transform_description.pl
@@ -1,9 +1,9 @@
#!/usr/bin/perl
#*************************************************************************
-#*
+#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
-# Copyright 2009 by Sun Microsystems, Inc.
+# Copyright 2000, 2011 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
#
@@ -24,7 +24,7 @@
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
-#************************************************************************/
+#*************************************************************************
parse_args();
execute_args();
diff --git a/solenv/config/sdev300.ini b/solenv/config/sdev300.ini
new file mode 100644
index 000000000000..c2579cd5b952
--- /dev/null
+++ b/solenv/config/sdev300.ini
@@ -0,0 +1,3359 @@
+common
+{
+ environment
+ {
+ common
+ {
+ ADDED_MODULES solenv default_images custom_images ooo_custom_images external_images postprocess instset_native instsetoo_native smoketest_native smoketestoo_native
+ BIG_SVX TRUE
+ BMP_WRITES_FLAG TRUE
+ BUILD_SPECIAL TRUE
+ BUILD_STAX YES
+ 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 GRAPHITE MYSQLCPPCONN MYSQLC CPPUNIT LIBTEXTCAT LIBTEXTCATDATA AFMS
+ CONFIG_PROJECT config_office
+ DIC_ALL TRUE
+ ENABLEUNICODE TRUE
+ ENABLE_AGG YES
+ ENABLE_CUPS TRUE
+ ENABLE_DIRECTX TRUE
+ ENABLE_FONTCONFIG TRUE
+ ENABLE_GTK TRUE
+ ENABLE_MEDIAWIKI YES
+ ENABLE_MINIMIZER YES
+ ENABLE_MYSQLC YES
+ ENABLE_NSS_MODULE YES
+ ENABLE_RANDR TRUE
+ ENABLE_REPORTBUILDER YES
+ ENABLE_SVCTAGS YES
+ ISERVER iserver.germany.sun.com
+ LU_HGFLAG ""
+ LU_NOSOURCE ""
+ LU_RFLAG ""
+ NEW_JAR_PACK TRUE
+ NO_REC_RES TRUE
+ OOODMAKEMODE YES
+ OOO_SHELL /bin/bash
+ PCLEAN_PATH xxx
+ RES_ENUS TRUE
+ RES_GER TRUE
+ rsc_once TRUE
+ SHIPDRIVE /so/install
+ STLPORT4 NO_STLPORT4
+ STLPORT_VER 400
+ WITH_FONTOOO YES
+ WITH_LDAP YES
+ wrapper_override_cc_wrapper TRUE
+ MAXPROC maxproc=15
+ XINERAMA_LINK dynamic
+ }
+ common:0 IF %UPDATER% == YES
+ {
+ DEFAULT_TO_ENGLISH_FOR_PACKING 1
+ DISABLE_SAL_DBGBOX 1
+ }
+ common:1 IF X%CWS_WORK_STAMP%X != XX
+ {
+ CWS_WORK_STAMP_EXT _%CWS_WORK_STAMP%
+ }
+ common:2 IF %UPDATER% == YES
+ {
+ WITH_LANG en-US de
+ }
+ common:3 IF %UPDATER% != YES
+ {
+ }
+ crashdump
+ {
+ ENABLE_CRASHDUMP TRUE
+ }
+ hg
+ {
+ LU_HGFLAG hg_source
+ }
+ maxproc
+ {
+ MAXPROC maxproc=%MAXPROCESS%
+ }
+ minorext
+ {
+ UPDMINOREXT .%UPDMINOR%
+ }
+ nosource
+ {
+ LU_NOSOURCE no_source
+ }
+ pro:0 IF %UPDATER% == YES
+ {
+ product full
+ PROEXT .pro
+ PROFULLSWITCH product=full
+ WITH_LANG en-US de es fr hu it ja ko nl pl pt pt-BR ru sv th tr zh-CN zh-TW ar
+ }
+ pro:1 IF %UPDATER% != YES
+ {
+ product full
+ PROEXT .pro
+ PROFULLSWITCH product=full
+ }
+
+ r_only
+ {
+ LU_RFLAG r_only
+ }
+ tmp
+ {
+ SOL_TMP %SOL_TMP_DIR%
+ }
+ verbose
+ {
+ VERBOSE VERBOSE
+ }
+ }
+ extern
+ {
+ ENVROOT
+ PATH
+ SRC_ROOT
+ UPDATER
+ }
+ order minorext common:2 common:3 pro:0 pro:1 common common:0 cwsname common:1 tmp crashdump maxproc hg r_only nosource
+ reset
+ {
+ ALT_L10N_MODULE
+ ENVCFLAGS
+ HOMEDRIVE
+ HOMEPATH
+ JAVAHOME
+ JAVA_HOME
+ LU_HGFLAG
+ LU_NOSOURCE
+ LU_RFLAGS
+ MKDIRHIER
+ PROEXT
+ PROFULLSWITCH
+ SHIPDRIVE
+ SOLARSRC
+ SOLAR_JAVA
+ SPEW
+ STLPORT4
+ UPDMINOREXT
+ WITH_FONTOOO
+ WITH_LANG
+ }
+ restore
+ {
+ PATH
+ }
+ standlst
+ {
+ DRIVE_O %WORK_STAMP%/drives/o:/UnixVolume
+ DRIVE_S %WORK_STAMP%/drives/s:/UnixVolume
+ }
+ switches
+ {
+ crashdump
+ cwsname CWS_WORK_STAMP
+ envroot
+ hg
+ minorext
+ nosource
+ pro
+ maxproc MAXPROCESS
+ r_only
+ tmp SOL_TMP_DIR
+ verbose VERBOSE
+ }
+}
+finish
+{
+ environment
+ {
+ cap
+ {
+ SOLARSRC %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%
+ SOURCE_ROOT_DIR $expand(%SOLARSRC%/..)
+ }
+ cax
+ {
+ SOLARSRC %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%
+ SOURCE_ROOT_DIR $expand(%SOLARSRC%/..)
+ }
+ common_0:0 IF %OS% == MACOSX
+ {
+ ENABLE_GTK
+ SOLARINCLUDES -I%SOLARVERSION%$/%INPATH%$/inc%UPDMINOREXT% -I%SOLARENV%$/%OUTPATH%$/inc -I%SOLARENV%$/inc %SOLAREXTRAINC%
+ }
+ common_0:3 IF %SOLARINCLUDES% ==
+ {
+ SOLARINCLUDES -I%SOLARVERSION%$/%INPATH%$/inc%UPDMINOREXT% %PSDKINC% -I%COMPATH%$/include -I%SOLARENV%$/inc %SOLAREXTRAINC%
+ }
+ common_1
+ {
+ BISON_HAIRY %SOLARROOT%$/btools$/bison.hairy
+ BISON_SIMPLE %SOLARROOT%$/btools$/bison.simple
+ DPKG %BUILD_TOOLS%$/dpkg
+ OOO_JUNIT_JAR %SOLARROOT%$/btools$/junit-4.8.1.jar
+ PATH .$:$cp(%SOLARENV%$/bin)$:$cp(%COMMON_BUILD_TOOLS%)$:$cp(%BUILD_TOOLS%$/dmake412)$:$cp(%BUILD_TOOLS%)$:$cp(%COMMON_ENV_TOOLS%)$:$cp(%ENV_TOOLS%)$:$cp(%COMPATH%$/bin)$:$cp(%JDKPATH%)$:$cp(%PATHEXTRA%)$:%PATH%
+ PATH_SEPERATOR $;
+ SOLARINC -I%SOLAR_STLPATH% -I%SOLARVERSION%$/%INPATH%$/inc%UPDMINOREXT%$/external %SOLARINCLUDES%
+ SOLARLIB -L%SOLARVER%/%INPATH%/lib%UPDMINOREXT% %JDKLIBS% %SOLAREXTRALIB%
+ SOLARSRC %SRC_ROOT%
+ SOURCE_ROOT_DIR $expand(%SOLARSRC%/..)
+ ANT_HOME %COMMON_BUILD_TOOLS%$/apache-ant-1.7.1
+ DBGSV_INIT %SOLARENV%/bin/dbgsv.ini
+ WORKDIR %SOLARVERSION%/%INPATH%/workdir
+ OUTDIR %SOLARVERSION%/%INPATH%
+
+ }
+ common_2:0 IF X%CWS_WORK_STAMP%X == XX
+ {
+ MWS_BUILD TRUE
+ DELIVER_TO_ZIP TRUE
+ gb_MAKETARGET packmodule
+ }
+ common_a
+ {
+ *o: cd %SOLARSRC%
+ ALT_L10N_MODULE $expand(%SOLARSRC%/..)/sun/l10n_so
+ TARFILE_LOCATION %SOURCE_ROOT_DIR%/ext_sources
+ gb_REPOS %SOURCE_ROOT_DIR%/ooo %SOURCE_ROOT_DIR%/sun
+ gb_LOCALBUILDDIR %SOL_TMP%/gb_%CWS_WORK_STAMP%/%WORK_STAMP%
+ }
+ common_setrepo:0 IF X%WITH_LANG%X != XX
+ {
+ gb_REPOS %gb_REPOS% %SOURCE_ROOT_DIR%/l10n
+ BUILD_TYPE %BUILD_TYPE% L10N
+ }
+ common_jre:0 IF %JREPATH% ==
+ {
+ HIER set
+ }
+ common_jre:1 IF %LD_LIBRARY_PATH% ==
+ {
+ PATH %PATH%$:$cp(%JREPATH%)
+ }
+ cwsname:0 IF X%SOURCE_ROOT_USED%X == XX
+ {
+ *build
+ *deliver
+ DMAKEROOT SOURCE_ROOT_not_used
+ SOLARINC SOURCE_ROOT_not_used
+ SOLARINCLUDE SOURCE_ROOT_not_used
+ SOLARSRC SOURCE_ROOT_not_used
+ SOLARVER SOURCE_ROOT_not_used
+ SOLARVERSION SOURCE_ROOT_not_used
+ SOLAR_SOURCE_ROOT SOURCE_ROOT_not_used
+ SO_GEN_ERROR Error - Using -cwsname without -sourceroot switch is harmful...
+ SO_GEN_ERROR2 ...resetting path to source tree
+ SRC_ROOT SOURCE_ROOT_not_used
+ }
+ cwsname:1 IF X%SOURCE_ROOT%X == XX
+ {
+ *build
+ *deliver
+ DMAKEROOT SOURCE_ROOT_not_set
+ SOLARINC SOURCE_ROOT_not_set
+ SOLARINCLUDE SOURCE_ROOT_not_set
+ SOLARSRC SOURCE_ROOT_not_set
+ SOLARVER SOURCE_ROOT_not_set
+ SOLARVERSION SOURCE_ROOT_not_set
+ SOLAR_SOURCE_ROOT SOURCE_ROOT_not_set
+ SO_GEN_ERROR Error - Using -cwsname without SOURCE_ROOT set is harmful...
+ SO_GEN_ERROR2 ...resetting path to source tree
+ SRC_ROOT SOURCE_ROOT_not_set
+ }
+ cwsname:2 IF X%UPDMINOR%X == XX
+ {
+ *build
+ *deliver
+ DMAKEROOT UPDMINOR_not_used
+ SOLARINC UPDMINOR_not_used
+ SOLARINCLUDE UPDMINOR_not_used
+ SOLARSRC UPDMINOR_not_used
+ SOLARVER UPDMINOR_not_used
+ SOLARVERSION UPDMINOR_not_used
+ SOLAR_SOURCE_ROOT UPDMINOR_not_used
+ SO_GEN_ERROR Error - Using -cwsname without -ver switch is harmful...
+ SO_GEN_ERROR2 ...resetting path to source tree
+ SRC_ROOT UPDMINOR_not_used
+ }
+ jdk14
+ {
+ CLASSPATH .$;%JAVA_HOME%$/jre$/lib$/rt.jar
+ ILIB %LIB%$;%JDKLIB%
+ LIB %LIB%$;%JDKLIB%
+ JAVA_TARGET_FLAG -target 1.4
+ }
+ jdk15
+ {
+ CLASSPATH .$;%JAVA_HOME%$/jre$/lib$/rt.jar
+ ILIB %LIB%$;%JDKLIB%
+ LIB %LIB%$;%JDKLIB%
+ JAVA_TARGET_FLAG -target 1.5
+ }
+ l10n
+ {
+ framework %L10N_framework%
+ L10N-framework %L10N_framework%
+ }
+ ojdk16
+ {
+ CLASSPATH .$;%JAVA_HOME%$/jre$/lib$/rt.jar
+ ILIB %LIB%$;%JDKLIB%
+ LIB %LIB%$;%JDKLIB%
+ JAVA_TARGET_FLAG -target 1.6
+ }
+ }
+ order cwsname:0 cwsname:1 cwsname:2 common_0:0 common_0:1 common_0:2 common_0:3 jdk14 jdk15 ojdk16 common_1 common_2:0 l10n common_jre:0 common_jre:1 cax cap common_a common_setrepo:0
+ switches
+ {
+ cwsname CWS_WORK_STAMP
+ }
+}
+unxfbsdi
+{
+ environment
+ {
+ bs_sourceroot
+ {
+ SOLAR_SOURCE_ROOT %SOURCE_ROOT_TMP%
+ SOURCE_ROOT %SOURCE_ROOT_TMP%
+ SOURCE_ROOT_USED TRUE
+ }
+ cap
+ {
+ COPYALL TRUE
+ COPY_PACKED TRUE
+ DEVROOT %SOL_TMP%$/r
+ PCLEAN_PATH %SOLARROOT%/etools
+ SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv
+ SOLARROOT %SOL_TMP%$/r
+ SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP%
+ SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP%
+ SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP%
+ }
+ cax
+ {
+ COPYALL FALSE
+ DEVROOT %SOL_TMP%$/r
+ PCLEAN_PATH %SOL_TMP%$/r/etools
+ SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv
+ SOLARROOT %SOL_TMP%$/r
+ SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP%
+ SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP%
+ SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP%
+ }
+ common
+ {
+ *build nice perl %SOLARENV%/bin/build.pl %PROFULLSWITCH%
+ *build_client nice perl %SOLARENV%/bin/build_client.pl
+ *copyprj perl %COMMON_ENV_TOOLS%/copyprj.pl
+ *deliver perl %SOLARENV%/bin/deliver.pl
+ *mkout perl %SOLARENV%/bin/mkout.pl
+ *r: cd %SOLARROOT%
+ *s: cd %SOLARVERSION%
+ *zipdep perl %SOLARENV%/bin/zipdep.pl
+ COPYPRJ perl %COMMON_ENV_TOOLS%/copyprj.pl
+ DELIVER perl %SOLARENV%/bin/deliver.pl
+ DMAKEROOT %SOLARENV%/inc/startup
+ LD_LIBRARY_PATH .:%SOLARVERSION%/%INPATH%/lib%UPDMINOREXT%:%COMPATH%/libexec
+ MKOUT perl %SOLARENV%/bin/mkout.pl
+ PATHEXTRA %combin%:/usr/bin:/bin:/usr/sbin:/etc:/usr/bin/X11
+ SOLAREXTRAINC -I%SOLAR_STLPATH% -I%SYSBASE%/usr/include -I%SYSBASE%/usr/include/X11
+ SOLAREXTRALIB -L../lib -L%SYSBASE%/usr/X11R6/lib -L%SYSBASE%/usr/lib -L/usr/X11R6/lib -L%SOLAR_STLLIBPATH%
+ SOLAR_JAVA TRUE
+ ZIPDEP perl %SOLARENV%/bin/zipdep.pl
+ ENABLE_GCONF TRUE
+ ENABLE_GNOMEVFS TRUE
+ }
+ common0
+ {
+ SOLAR_ENV_ROOT /so/env
+ SOLAR_SOURCE_ROOT %DRIVE_O%
+ }
+ common1
+ {
+ COMPATH %SOLAR_ENV_ROOT%$/gcc_3.0.1_linux_libc2.11_turbolinux
+ DEVROOT %SOLAR_ENV_ROOT%
+ PKGFORMAT some_dummy
+ SHARED_SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv
+ SHARED_SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP%
+ SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv
+ SOLARROOT %SOLAR_ENV_ROOT%
+ SOLARVER %SOLAR_SOURCE_ROOT%/%WORK_STAMP%
+ SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP%
+ SOLAR_JDK13PATH %SOLAR_ENV_ROOT%/Linux_JDK_1.3.1
+ SOLAR_JDK14PATH %SOLAR_ENV_ROOT%/Linux_JDK_1.4.2_11
+ SOLAR_JDK15PATH %SOLAR_ENV_ROOT%/Linux_JDK_1.5.0_06
+ SO_PACK %SOLAR_ENV_ROOT%/pack/%WORK_STAMP%
+ SRC_ROOT %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%
+ }
+ common2
+ {
+ BUILD_TOOLS %SOLARROOT%/bt_unxfbsdi/bin
+ COM GCC
+ COMMON_BUILD_TOOLS %SOLARROOT%$/btools
+ COMMON_ENV_TOOLS %SOLARROOT%$/etools
+ CPU I
+ CPUNAME INTEL
+ CVER C300
+ ENV_TOOLS %SOLARROOT%/et_unxfbsdi/bin
+ GUI UNX
+ GUIBASE unx
+ GVER VCL
+ INPATH unxfbsdi%PROEXT%
+ JDK13PATH %SOLAR_JDK13PATH%
+ JDK14PATH %SOLAR_JDK14PATH%
+ JDK15PATH %SOLAR_JDK15PATH%
+ NO_BSYMBOLIC True
+ OS FREEBSD
+ OUTPATH unxfbsdi
+ SOLAR_STLLIBPATH %SOLARVERSION%$/unxfbsdi%PROEXT%$/lib%UPDMINOREXT%
+ SOLAR_STLPATH %SOLARVERSION%$/unxfbsdi%PROEXT%$/inc%UPDMINOREXT%$/stl
+ SYSBASE %SOLAR_SYSBASE_ROOT%
+ TEMP /tmp
+ TMP /tmp
+ }
+ compath
+ {
+ COMPATH %STAR_COMPATH%
+ }
+ debug
+ {
+ LD_LIBRARY_PATH %SOLARROOT%/solenv/unxlngi4/lib/debug:%LD_LIBRARY_PATH%
+ }
+ distroot:0 if X%DIST_ROOT%X != XX
+ {
+ SHARED_SOLARVERSION %DIST_ROOT%/%WORK_STAMP%
+ SOLARVER %DIST_ROOT%/%WORK_STAMP%
+ SOLARVERSION %DIST_ROOT%/%WORK_STAMP%
+ }
+ envroot:0 IF X%ENV_ROOT%X != XX
+ {
+ SOLAR_ENV_ROOT %ENV_ROOT%
+ }
+ jdk14
+ {
+ JAVA_HOME %JDK14PATH%
+ JDKINC %JDK14PATH%/include:%JDK14PATH%/include/linux
+ JDKINCS -I%JDK14PATH%/include -I%JDK14PATH%/include/linux
+ JDKLIB %JDK14PATH%/jre/lib:%JDK14PATH%/jre/lib/i386:%JDK14PATH%/jre/lib/i386/client
+ JDKLIBS -L%JDK14PATH%/jre/lib -L%JDK14PATH%/jre/lib/i386 -L%JDK14PATH%/jre/lib/i386/client
+ JDKPATH %JDK14PATH%/bin
+ JDK_VERSION 142
+ XCLASSPATH .:%JDK14PATH%/jre/lib/rt.jar
+ }
+ jdk14path:0 IF X%JDK_PATH%X != XX
+ {
+ SOLAR_JDK14PATH %JDK_PATH%
+ }
+ jdk15
+ {
+ JAVA_HOME %JDK15PATH%
+ JDKINC %JDK15PATH%/include:%JDK15PATH%/include/linux
+ JDKINCS -I%JDK15PATH%/include -I%JDK15PATH%/include/linux
+ JDKLIB %JDK15PATH%/jre/lib:%JDK15PATH%/jre/lib/i386:%JDK15PATH%/jre/lib/i386/client
+ JDKLIBS -L%JDK15PATH%/jre/lib -L%JDK15PATH%/jre/lib/i386 -L%JDK15PATH%/jre/lib/i386/client
+ JDKPATH %JDK15PATH%/bin
+ JDK_VERSION 150
+ XCLASSPATH .:%JDK15PATH%/jre/lib/rt.jar
+ }
+ jdk15path:0 IF X%JDK_PATH%X != XX
+ {
+ SOLAR_JDK15PATH %JDK_PATH%
+ }
+ pro
+ {
+ PROSWITCH -DPRODUCT
+ }
+ sourceroot:0 IF X%SOURCE_ROOT%X != XX
+ {
+ SOLAR_SOURCE_ROOT %SOURCE_ROOT%
+ SOURCE_ROOT_USED TRUE
+ }
+ sysbaseroot
+ {
+ SOLAR_SYSBASE_ROOT %SYSBASE_ROOT%
+ }
+ }
+ extern
+ {
+ DIST_ROOT
+ ENV_ROOT
+ HOME
+ JDK_PATH
+ LOCALINI
+ SOL_TMP
+ SOURCE_ROOT
+ SYSBASE_ROOT
+ USER
+ }
+ order common0 bs_sourceroot envroot:0 sourceroot:0 sysbaseroot common1 jdk14path:0 jdk15path:0 distroot:0 cap cax compath common2 pro common jdk14 jdk15 debug
+ reset
+ {
+ CLASSPATH
+ COPYALL
+ }
+ restore
+ {
+ INCLUDE
+ }
+ script
+ {
+ csh
+ {
+ 400: if ( ${?COPYALL} ) $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE
+ 600: umask 002
+ 800: rehash
+ 820: wrapfetch.sh
+ 850: if ( "$?SO_GEN_ERROR" == 0 ) setenv SO_GEN_ERROR
+ 851: if ( "$?SO_GEN_ERROR2" == 0 ) setenv SO_GEN_ERROR2
+ 900: if ( "$?SO_GEN_ERROR" == 1 ) echo $SO_GEN_ERROR
+ 901: if ( "$?SO_GEN_ERROR2" == 1 ) echo $SO_GEN_ERROR2
+ }
+ sh
+ {
+ 400: if [ $COPYALL ]; then
+ 410: $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE
+ 415: fi
+ 600: umask 002
+ 800: hash -r
+ 820: wrapfetch.sh
+ 850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then
+ 851: export SO_GEN_ERROR
+ 852: fi
+ 860: if [ "0$SO_GEN_ERROR2" -eq 0 ]; then
+ 861: export SO_GEN_ERROR2
+ 862: fi
+ 870: if [ "0$SO_GEN_ERROR" -ne 0 ]; then
+ 871: echo $SO_GEN_ERROR
+ 872: fi
+ 880: if [ "0$SO_GEN_ERROR2" -ne 0 ]; then
+ 881: echo $SO_GEN_ERROR2
+ 882: fi
+ }
+ }
+ switches
+ {
+ bs_sourceroot SOURCE_ROOT_TMP
+ bsclient
+ cap
+ cax
+ compath STAR_COMPATH
+ debug
+ distroot
+ envroot
+ jdk14
+ jdk14path
+ jdk15
+ jdk15path
+ l10n L10N_framework
+ pro
+ sourceroot
+ sysbaseroot
+ }
+}
+unxlngi6
+{
+ environment
+ {
+ bs_sourceroot
+ {
+ SOLAR_SOURCE_ROOT %SOURCE_ROOT_TMP%
+ SOURCE_ROOT %SOURCE_ROOT_TMP%
+ SOURCE_ROOT_USED TRUE
+ }
+ cap
+ {
+ COPYALL TRUE
+ COPY_PACKED TRUE
+ DEVROOT %SOL_TMP%$/r
+ PCLEAN_PATH %SOLARROOT%/etools
+ PERL %SOL_TMP%$/r$/bt_linux_libc2.5$/%WORK_STAMP%$/bin$/perl
+ SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv
+ SOLARROOT %SOL_TMP%$/r
+ SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP%
+ SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP%
+ SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP%
+ }
+ cax
+ {
+ COPYALL FALSE
+ DEVROOT %SOL_TMP%$/r
+ PCLEAN_PATH %SOL_TMP%$/r/etools
+ PERL %SOL_TMP%$/r$/bt_linux_libc2.5$/%WORK_STAMP%$/bin$/perl
+ SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv
+ SOLARROOT %SOL_TMP%$/r
+ SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP%
+ SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP%
+ SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP%
+ }
+ common
+ {
+ *build nice %PERL% %SOLARENV%/bin/build.pl %PROFULLSWITCH%
+ *build_client nice %PERL% %SOLARENV%/bin/build_client.pl
+ *copyprj %PERL% %COMMON_ENV_TOOLS%/copyprj.pl
+ *deliver %PERL% %SOLARENV%/bin/deliver.pl
+ *mkout %PERL% %SOLARENV%/bin/mkout.pl
+ *r: cd %SOLARROOT%
+ *s: cd %SOLARVERSION%
+ *zipdep %PERL% %SOLARENV%/bin/zipdep.pl
+ COPYPRJ %PERL% %COMMON_ENV_TOOLS%/copyprj.pl
+ DELIVER %PERL% %SOLARENV%/bin/deliver.pl
+ DMAKEROOT %SOLARENV%/inc/startup
+ HAVE_GCC_VISIBILITY_FEATURE TRUE
+ HAVE_LD_BSYMBOLIC_FUNCTIONS TRUE
+ HAVE_LD_HASH_STYLE TRUE
+ LIBRARY_PATH %SYSBASE%/usr/lib
+ MKOUT %PERL% %SOLARENV%/bin/mkout.pl
+ PATHEXTRA %combin%:/usr/bin:/bin:/usr/sbin:/etc:/usr/bin/X11
+ FREETYPE_CFLAGS -I%SYSBASE%/usr/include/freetype2
+ SOLAREXTRAINC -I%SOLAR_STLPATH% -I%SYSBASE%/usr/include -I%SYSBASE%/usr/include/X11 -I%SYSBASE%/include
+ SOLAREXTRALIB -L../lib -L%SYSBASE%/usr/X11R6/lib -L%SYSBASE%/usr/lib -L/usr/X11R6/lib -L%SOLAR_STLLIBPATH%
+ SOLAR_JAVA TRUE
+ ZIPDEP %PERL% %SOLARENV%/bin/zipdep.pl
+ ENABLE_GCONF TRUE
+ ENABLE_GNOMEVFS TRUE
+ GNUCOPY cp
+ GNUMAKE make
+ }
+ common0
+ {
+ SOLAR_ENV_ROOT /so/env
+ SOLAR_SOURCE_ROOT %DRIVE_O%
+ SOLAR_SYSBASE_ROOT /so/env/gcc_4.2.3_linux_libc2.5/glibc2.5
+ }
+ common1
+ {
+ COMPATH %SOLAR_ENV_ROOT%$/gcc_4.2.3_linux_libc2.5
+ DEVROOT %SOLAR_ENV_ROOT%
+ LFS_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
+ PERL %SOLAR_ENV_ROOT%/bt_linux_libc2.5/%WORK_STAMP%/bin/perl
+ PKGFORMAT rpm
+ SHARED_SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv
+ SHARED_SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP%
+ SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv
+ SOLARROOT %SOLAR_ENV_ROOT%
+ SOLARVER %SOLAR_SOURCE_ROOT%/%WORK_STAMP%
+ SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP%
+ SOLAR_JDK13PATH %SOLAR_ENV_ROOT%/Linux_JDK_1.3.1
+ SOLAR_JDK14PATH %SOLAR_ENV_ROOT%/Linux_JDK_1.4.2_11
+ SOLAR_JDK15PATH %SOLAR_ENV_ROOT%/Linux_JDK_1.5.0_06
+ SOLAR_OJDK16PATH %SOLAR_ENV_ROOT%/openjdk-6-b08-linux-i586
+ SO_PACK %SOLAR_ENV_ROOT%/pack/%WORK_STAMP%
+ SRC_ROOT %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%
+ PKG_CONFIG_LIBDIR %SOLAR_SYSBASE_ROOT%/usr/lib/pkgconfig
+ }
+ common2
+ {
+ ENABLE_GRAPHITE TRUE
+ ENABLE_GSTREAMER TRUE
+ BUILD_TOOLS %SOLARROOT%/bt_linux_libc2.5/%WORK_STAMP%/bin
+ COM GCC
+ COMMON_BUILD_TOOLS %SOLARROOT%$/btools
+ COMMON_ENV_TOOLS %SOLARROOT%$/etools
+ CPU I
+ CPUNAME INTEL
+ CVER C432
+ ENABLE_KAB TRUE
+ ENABLE_KDE TRUE
+ ENABLE_EVOAB2 TRUE
+ ENV_TOOLS %SOLARROOT%/et_linux_libc2.5/%WORK_STAMP%/bin
+ GUI UNX
+ GUIBASE unx
+ GVER VCL
+ INPATH unxlngi6%PROEXT%
+ JDK13PATH %SOLAR_JDK13PATH%
+ JDK14PATH %SOLAR_JDK14PATH%
+ JDK15PATH %SOLAR_JDK15PATH%
+ KDE_ROOT /so/env/kde/linux/kde-3.2.2
+ LIBMYSQL_PATH %SOLARROOT%/mysql-connector-c-6.0.2/unxlngi6
+ NO_BSYMBOLIC True
+ OJDK16PATH %SOLAR_OJDK16PATH%
+ OS LINUX
+ OUTPATH unxlngi6
+ RPM %SOLARENV%/bin/rpm-wrapper