abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 00:33 | Bezpečnostní upozornění

CSIRT.CZ upozorňuje na kritickou zranitelnost ve WordPressu umožňující vzdálené spuštění libovolného kódu. Prakticky se jedná o kombinací dvou různých zranitelností (Directory Traversal a Local File Inclusion), pro jejichž úspěšné zneužití musí útočník získat v rámci instance WordPressu alespoň oprávnění autora.

Ladislav Hagara | Komentářů: 3
včera 17:33 | Nová verze

Po dvou a půl letech od vydání verze 5.0.0 byla oficiálně vydána nová major verze 6.0.0 správce digitálních fotografií a nově i videí digiKam (digiKam Software Collection). Přehled novinek i s náhledy v oficiálním oznámení. Ke stažení je také balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.

Ladislav Hagara | Komentářů: 1
včera 00:44 | Komunita

Do 2. dubna se lze přihlásit do dalšího kola programu Outreachy (Wikipedie), jehož cílem je přitáhnout do světa svobodného a otevřeného softwaru lidi ze skupin, jež jsou ve světě svobodného a otevřeného softwaru málo zastoupeny. Za 3 měsíce práce, od 20. května do 20. srpna 2019, v participujících organizacích lze vydělat 5 500 USD.

Ladislav Hagara | Komentářů: 2
včera 00:11 | Bezpečnostní upozornění

Byly zveřejněny informace o o bezpečnostní chybě CVE-2019-6454 ve správci systému a služeb systemd (PID 1). Běžný uživatel jej může shodit připravenou D-Bus zprávou. V upstreamu je chyba již opravena [reddit].

Ladislav Hagara | Komentářů: 4
18.2. 22:44 | Nová verze

Byla vydána nová verze 2019.1 průběžně aktualizované linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek v changelogu. Vývojáři zdůrazňují Linux 4.19.13 a díky němu opětovnou podporu Banana Pi a Banana Pro, aktualizaci nástrojů jako theHarvester nebo DBeaver a Metasploit Framework ve verzi 5.0. Aktualizovat Kali Linux lze pomocí příkazů "apt update && apt -y full-upgrade".

Ladislav Hagara | Komentářů: 1
18.2. 13:33 | Zajímavý článek

Craig Loewen se v příspěvku na blogu Microsoftu věnuje novinkách ve WSL (Windows Subsystem pro Linux), které přinese Windows 10 1903. Jedná se především o možnost přístupu z Windows (Průzkumník souborů, explorer.exe) k souborům v nainstalovaných linuxových distribucích. Použit je protokol 9P.

Ladislav Hagara | Komentářů: 10
18.2. 10:44 | Zajímavý software

Byl vydán Hangover ve verzi 0.4.0. Jedná se o součást projektu Wine umožňující spouštět Windows aplikace pro x86 a x86_64 na architektuře ARM64 (AArch64). Zdrojové kódy této alfa verze jsou k dispozici na GitHubu.

Ladislav Hagara | Komentářů: 2
17.2. 03:00 | Nová verze

Byla vydána nová major verze 3.0.0-1 linuxového prostředí pro operační systémy Windows Cygwin (Wikipedie). Přehled novinek v oficiálním oznámení.

Ladislav Hagara | Komentářů: 7
17.2. 02:00 | Nová verze

Byl vydán Debian 9.8, tj. osmá opravná verze Debianu 9 s kódovým názvem Stretch. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Předchozí instalační média Debianu 9 Stretch lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

Ladislav Hagara | Komentářů: 1
15.2. 12:33 | Pozvánky

Příští týden bude na MFF UK zahájena série přednášek o architektuře a implementaci operačních systémů. Mezi přednášejícími budou odborníci z firem Kernkonzept, Oracle, Red Hat, SUSE či SYSGO. Pokud si chcete rozšířit obzory (virtualizace, ptrace, ZFS, kdump, ...), vyberte si z harmonogramu téma, které vás zajímá a přijďte. Přednášky se konají každý čtvrtek od 15:40 v učebně S4 na Malostranském náměstí 25 v Praze. Přednášky jsou přístupné veřejnosti (registrace není nutná), studenti UK a ČVUT si je mohou zapsat jako standardní předmět.

Vojtěch Horký | Komentářů: 19
Máte v desktopovém prostředí zapnutou zvukovou znělku po přihlášení se do systému?
 (7%)
 (1%)
 (90%)
 (1%)
Celkem 354 hlasů
 Komentářů: 11, poslední 14.2. 07:59
Rozcestník

Převod LibGlade.xml na GtkBuilder.xml

14.12.2012 21:07 | Přečteno: 625× | Python | Výběrový blog | poslední úprava: 15.12.2012 11:36

Stručný návod pro převod LibGlade.xml na GtkBuilder.xml, který nemusí pokrývat vše co se může při konverzi pokazit.

Glade 3.8.x umí pracovat s LibGlade i GtkBuilder, je určen pro GTK+2. Naproti tomu novější verze jsou určené pouze pro GTK+3. Debian Wheezy bohužel obsahuje pouze verzi pro GTK+3, Bug #638478: allow installing both glade 3.8 and 3.10.

Nejprve si otevřeme LibGlade.xml v Glade 3.8.x, poté uložíme projekt jako GtkBuilder.xml a při ukládání nezapomeneme přepnout radiobutton na GtkBuilder.

U všech widgetů, které využívají property "adjustment", ztratíme toto nastavení. Můžeme to napravit zavoláním následujícího skriptu, kterému se předají dva argumenty reprezentující dva výše uvedené XML soubory. Z LibGlade.xml se načte property "adjustment" jednotlivých witgetů, přidá se k odpovídajícím widgetům z GtkBuilder.xml a výsledek se vypíše na stdout.

$ ./g2b_gtkscale.py LibGlade.xml GtkBuilder.xml >output.xml

#! /usr/bin/env python2.7
# -*- coding: utf-8 -*-

import sys
from lxml import etree

class G2B_GtkScale:
    def __init__(self, lib_glade_xml, gtk_builder_xml):
        lib_glade_doc = etree.parse(lib_glade_xml)
        self.lib_glade_root = lib_glade_doc.getroot()

        parser = etree.XMLParser(remove_blank_text=True)
        gtk_builder_doc = etree.parse(gtk_builder_xml, parser)
        self.gtk_builder_root = gtk_builder_doc.getroot()

        # LibGlade
        # <widget class="GtkHScale" id="NAME">
        #   <property name="adjustment">-255 -255 255 1 0 0</property>
        # </widget>

        # GtkBuilder
        # <widget class="GtkHScale" id="NAME">
        #   <property name="adjustment">NAME_ADJ</property>
        # </widget>

        lib_glade_elts = self.get_elements(lib_glade_doc, "widget")
        gtk_builder_elts = self.get_elements(gtk_builder_doc, "object")

        for key in lib_glade_elts.keys():
            adjs = lib_glade_elts[key].text.split()
            prop_adj = gtk_builder_elts[key]
            self.glade2builder(key, adjs, prop_adj)

        print etree.tostring(self.gtk_builder_root, pretty_print=True, \
            xml_declaration=True, encoding="UTF-8")

    def get_elements(self, doc, name):
        result = {}

        elements = doc.findall(".//%s" % name)
        for element in elements:
            eclass = element.get("class")
            eid = element.get("id")

            if (eclass in ["GtkHScale", "GtkVScale", "GtkSpinButton"]):
                for subelt in element.findall("property"):
                    name = subelt.get("name")
                    if (name == "adjustment"):
                        result[eid] = subelt

        return result

    def glade2builder(self, eid, adjs, prop_adj):
        # <object class="GtkAdjustment" id="NAME_ADJ">
        #   <property name="lower">0</property>
        #   <property name="upper">100</property>
        #   <property name="step_increment">1</property>
        #   <property name="page_increment">10</property>
        # </object>

        oid = "%s_ADJ" % eid
        elt_adj = etree.SubElement(self.gtk_builder_root, "object")
        elt_adj.set("class", "GtkAdjustment")
        elt_adj.set("id", oid)

        #value, lower, upper, step_inc, page_inc, page_size = adjs
        props = ["lower", "upper", "step_increment", "page_increment"]

        idx = 1
        for prop in props:
            elt_prop = etree.SubElement(elt_adj, "property")
            elt_prop.set("name", prop)
            elt_prop.text = adjs[idx]
            idx += 1

        prop_adj.text = oid
        #print etree.tostring(elt_adj, pretty_print=True)

def main():
    if (len(sys.argv) != 3):
        print "Usage: %s LibGlade.xml GtkBuilder.xml" % sys.argv[0]
        sys.exit()

    G2B_GtkScale(sys.argv[1], sys.argv[2])

if __name__ == '__main__':
    main()

Podrobněji jsem se tím nezabýval, soustředil jsem se pouze na převod svých projektů. Třeba to bude užitěčné i někomu dalšímu. Pokud máte nějakou připomínku, nápad či dotaz, na toto téma, pište do diskuze.

Řešení pomocí gtk-builder-convert

Na základě podnětu diskutujícího chrono uvádím druhé řešení, ke kterému není třeba Glade.

libgtk2.0-dev: /usr/bin/gtk-builder-convert

Výše uvedený distribuční skript nastavuje u nově vytvářených GtkAdjustment id na adjustment1 až adjustmentN. Já chci, aby toto id reprezentovalo id widgetu, ke kterému GtkAdjustment patří, tj. přidá se k němu suffix "_adj".

Řeší to drobná úprava distribučního skriptu gtk-builder-convert

       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Vložit další komentář

14.12.2012 22:02 chrono
Rozbalit Rozbalit vše Re: Převod LibGlade.xml na GtkBuilder.xml
Skript gtk-builder-convert (mal by byť v Gtk+ 2.12+) by adjustment (a pár ďalších vecí) mal riešiť. Každopádne nikdy som nebol donútený ten skript použiť, takže netuším, ako dobre funguje.
Fuky avatar 15.12.2012 10:18 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: Převod LibGlade.xml na GtkBuilder.xml
# aptitude install libgtk2.0-dev
$ gtk-builder-convert LibGlade.xml GtkBuilder.xml 

Děkuji za připomínku, i Pythonovský skript gtk-builder-convert řeší property "adjustment", ovšem nastavuje u GtkAdjustment id na adjustment1 až adjustmentN, takže se v tom člověk ztratí. Já nastavuji id na základě názvu widgetu, ke kterému patří tj. NAME_ADJ.

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.