ALT Linux Community general discussions
 help / color / mirror / Atom feed
From: "Владимир Гусев" <vova1971@narod.ru>
To: ALT Linux Community general discussions <community@lists.altlinux.org>
Subject: Re: [Comm] P7, CrossOver Office 10 и PyGTK2
Date: Wed, 16 Oct 2013 17:01:43 +0400
Message-ID: <525E8E37.2040706@narod.ru> (raw)
In-Reply-To: <op.w4neut1dglg102@post.cnt.ru>

[-- Attachment #1: Type: text/plain, Size: 1715 bytes --]

On 10/08/2013 10:26 PM, Владимир Гусев wrote:
> On Tue, 08 Oct 2013 19:56:11 +0400, Hihin Ruslan wrote:
>
>> Здравствуйте Владимир Гусев
>>   В сообщении от 8 октября 2013 Владимир Гусев написал(a):
>>> Но как - уже не помню. Что подскажете?
>>
>> Надо-бы посмотреть что он ищет.
>> Может ему python-module-pygtk-devel нужен?
>
> Завтра на работе пропущу его через strace (а может и ldd) - отпишусь.
>

Последний абзац запускаиз-под strace, к примеру, cxinstaller:

write(2, "  File \"/opt/cxoffice/lib/python"..., 73  File 
"/opt/cxoffice/lib/python/installwizard.py", line 10, in <module>
) = 73
open("/opt/cxoffice/lib/python/installwizard.py", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=73922, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 
0) = 0xb48db000
read(3, "# (c) Copyright 2009-2010. CodeW"..., 4096) = 4096
write(2, "    ", 4    )                     = 4
write(2, "import gtk.glade\n", 17import gtk.glade
)      = 17
close(3)                                = 0
munmap(0xb48db000, 4096)                = 0
write(2, "ImportError", 11ImportError)             = 11
write(2, ": ", 2: )                       = 2
write(2, "No module named glade", 21No module named glade)   = 21
write(2, "\n", 1
)                       = 1
rt_sigaction(SIGINT, {SIG_DFL, [], 0}, {0x8119d50, [], 0}, 8) = 0
brk(0)                                  = 0x8731000
brk(0)                                  = 0x8731000
brk(0x853e000)                          = 0x853e000
brk(0)                                  = 0x853e000
exit_group(1)                           = ?
+++ exited with 1 +++

ldd для него не подошел, это скрипт..

Сам файлик cxinstaller прилагаю к письму.


[-- Attachment #2: cxinstaller --]
[-- Type: text/plain, Size: 4773 bytes --]

#! /usr/bin/env python
# (c) Copyright 2009-2010. CodeWeavers, Inc.

import os

# Portable which(1) implementation
def which(path, app):
    """Looks for an executable in the specified directory list.

    path is an os.pathsep-separated list of directories and app is the
    executable name. If app contains a path separator then path is ignored.
    If the file is not found, then None is returned.
    """
    if os.path.isabs(app):
        if os.path.isfile(app) and os.access(app, os.X_OK):
            return app
    elif os.sep in app or (os.altsep and os.altsep in app):
        app_path = os.path.join(os.getcwd(), app)
        if os.path.isfile(app_path) and os.access(app_path, os.X_OK):
            return app_path
    else:
        for directory in path.split(os.pathsep):
            if directory == "":
                continue
            app_path = os.path.join(directory, app)
            if os.path.isfile(app_path) and os.access(app_path, os.X_OK):
                return app_path
    return None

import sys
def locate_cx_root():
    """Locate where CrossOver is installed.

    We start by locating our own python script file and walking back up the
    path, traversing symbolic links on the way. Then we verify what we have
    found the right directory by checking for the presence of the cxmenu
    script.
    """
    # pylint: disable-msg=I0011,W0601,W0603
    global CX_ROOT
    if "CX_DEVELOP_ROOT" in os.environ:
        CX_ROOT = os.environ["CX_DEVELOP_ROOT"]
        return

    # figure out argv0
    argv0 = which(os.environ["PATH"], sys.argv[0])
    if not argv0:
        argv0 = sys.argv[0]
        if not os.path.isabs(argv0):
            argv0 = os.path.join(os.getcwd(), argv0)

    # traverse the symbolic links
    dir0 = os.path.dirname(argv0)
    while True:
        if dir0.endswith("/lib"):
            bindir = dir0[0:-3] + "bin"
        else:
            bindir = dir0
        landmark = os.path.join(bindir, "cxmenu")
        if os.path.isfile(landmark):
            break
        if not os.path.islink(argv0):
            break
        argv0 = os.readlink(argv0)
        if not os.path.isabs(argv0):
            argv0 = os.path.join(dir0, argv0)
        dir0 = os.path.dirname(argv0)

    # compute CX_ROOT
    CX_ROOT = os.path.dirname(os.path.normpath(bindir))

    # check CX_ROOT
    landmark = os.path.join(CX_ROOT, "bin", "cxmenu")
    if not os.path.isfile(landmark) or not os.access(landmark, os.X_OK):
        sys.stderr.write("%s:error: could not find CrossOver in '%s'\n" % (os.path.dirname(sys.argv[0]), CX_ROOT))
        sys.exit(1)

    sys.path.append(os.path.join(CX_ROOT, "lib", "python"))

locate_cx_root()
import cxutils
cxutils.CX_ROOT = CX_ROOT


import checkgtk
checkgtk.check_gtk()

import gtk

import cxopt

import installwizard
import cxguitools
# This only looks like it's doing nothing
# pylint: disable-msg=W0611
import cheatconsole


def main():
    # Parse the command line options
    opt_parser = cxopt.Parser(usage="%prog [--bottle BOTTLE] [--tiefile TIEFILE] [--c4pfile TIEFILE] [--profileid PROFILEID] [--installersource INSTALLERSOURCE] [--help]",
                              description="Starts the CrossOver Windows application installation wizard.")
    opt_parser.add_option("--bottle", dest="bottle", help="Use the specified bottle and $CX_BOTTLE otherwise")
    # Keep --c4pfile for backward compatibility
    opt_parser.add_option("--tiefile", "--c4pfile", dest="tiefile", help="Load the specified additional .tie file")
    opt_parser.add_option("--profileid", dest="profileid", help="Select the specified profile for installation")
    opt_parser.add_option("--installersource", dest="installersource", help="Specifies the path to the installer file or directory")
    (options, args) = opt_parser.parse_args()

    # Do more checks and provide defaults
    if options.bottle is None and 'CX_BOTTLE' in os.environ:
        options.bottle = os.environ['CX_BOTTLE']
    if options.tiefile is None and args and (args[0].endswith('.tie') or args[0].endswith('.gz') or args[0].endswith('c4p')):
        options.tiefile = args[0]
        args = args[1:]
    if options.installersource is not None:
        options.installersource = os.path.abspath(options.installersource)
    if args:
        opt_parser.error("unexpected argument '%s'" % args[0])

    cxguitools.set_default_icon()
    # give the wizard a name so it can be accessed from the console as __main__.wizard
    # disable-msg=W0601
    global wizard
    wizard = installwizard.InstallerAssistantController(bottle=options.bottle, c4pfile=options.tiefile, profileid=options.profileid, installersource=options.installersource)
    cxguitools.warn_if_root()
    gtk.main()

if __name__ == "__main__":
    sys.exit(main())

  reply	other threads:[~2013-10-16 13:01 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-08 10:30 Владимир Гусев
2013-10-08 15:56 ` Hihin Ruslan
2013-10-08 18:26   ` Владимир Гусев
2013-10-16 13:01     ` Владимир Гусев [this message]
2013-10-17  7:03       ` Владимир Гусев

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=525E8E37.2040706@narod.ru \
    --to=vova1971@narod.ru \
    --cc=community@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git