From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-3.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.2.5 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=narod.ru; s=mail; t=1381928505; bh=Js0seCxBxZaD6eHh1pXQQI6WAbFFN7BSl6uc1Q67EYw=; h=Message-ID:Date:From:User-Agent:MIME-Version:To:Subject: References:In-Reply-To:Content-Type; b=jWcgHxY6SJWBW3UECk94yythyOp0BISuQA6C3QFed7UjEjwV2BjFMeZba2Pr+3pfe CZ1n7kJP9F41eNTFUNmDEy/Q2SFWWsysn/YrQaNdsa/8nfANN/sW56Y2ioo4zfXa0Y IKKI9X2eXpGsTg1FdAGYWlZvKQ9jTHRJEykKx2pU= Authentication-Results: smtp12.mail.yandex.net; dkim=pass header.i=@narod.ru Message-ID: <525E8E37.2040706@narod.ru> Date: Wed, 16 Oct 2013 17:01:43 +0400 From: =?KOI8-R?Q?=F7=CC=C1=C4=C9=CD=C9=D2_=E7=D5=D3=C5=D7?= User-Agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130904 Thunderbird/17.0.8 MIME-Version: 1.0 To: ALT Linux Community general discussions References: <5253DEC0.7050602@narod.ru> <201310081956.17934@ruslandh> In-Reply-To: Content-Type: multipart/mixed; boundary="------------080804050702090001060009" Subject: Re: [Comm] =?koi8-r?b?UDcsIENyb3NzT3ZlciBPZmZpY2UgMTAgySBQeUdUSzI=?= X-BeenThere: community@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Community general discussions List-Id: ALT Linux Community general discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Oct 2013 13:01:56 -0000 Archived-At: List-Archive: List-Post: This is a multi-part message in MIME format. --------------080804050702090001060009 Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit 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 ) = 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 прилагаю к письму. --------------080804050702090001060009 Content-Type: text/plain; charset=UTF-8; name="cxinstaller" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="cxinstaller" #! /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()) --------------080804050702090001060009--