This file is indexed.

/usr/share/help/cs/gnome-devel-demos/weatherAutotools.js.page is in gnome-devel-docs 3.28.0-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" type="topic" style="task" id="weatherAutotools.js" xml:lang="cs">
  <info>
    <link type="guide" xref="weatherApp.js#main" group="#last"/>
    <revision version="0.1" date="2012-03-09" status="stub"/>

    <credit type="author copyright">
      <name>Susanna Huhtanen</name>
      <email its:translate="no">ihmis.suski@gmail.com</email>
      <years>2012</years>
    </credit>

    <desc/>
  </info>

  <title>Autotools a ikony</title>
  <synopsis>
    <p>V této části lekce sestrojíme soubory pro autotools a vlastní ikony, které budeme potřebovat pro aplikaci s počasím, aby perfektně zapadla do pracovního prostředí. Abyste si mohli napsat a spustit kód příkladu sami, budete potřebovat v počítači nainstalovaný editor pro psaní kódu, terminál a GNOME 3.0 nebo novější. V této lekci budeme postupovat následujícími částmi:</p>

    <list>
      <item><p><link xref="#autotools">Autotools</link></p></item>
      <item><p><link xref="#icons">Vlastní ikony pro vaši aplikaci</link></p></item>
    </list>
  </synopsis>



  <section id="autotools">
  <title>Autotools a nutné soubory</title>
  <p>To, že máté ve své složce více než jeden soubor, trochu komplikuje použití autotools. Potřebujete soubor .desktop, autogen.sh, Makefile.am, configure.as a nově soubor myapp.sh.in. Uprava souborů autotools je složitá záležitost. Více informací můžete najít v různých zdrojích, dobrý přehled na dané téma je v <link href="http://en.wikipedia.org/wiki/GNU_build_system">článku na Wikipedii</link>.</p>
    <list>
      <item><p>weatherapp.desktop</p></item>
      <item><p>weatherapp.sh.in</p></item>
      <item><p>Makefile.am</p></item>
      <item><p>configure.ac</p></item>
      <item><p>autogen.sh</p></item>
    </list>
    <p>weatherapp.desktop</p>
    <code mime="text/.desktop" style="numbered">
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=Weather app
Comment=Weather showing application
Exec=weatherapp.sh
Icon=application-default-icon
Terminal=false
Type=Application
StartupNotify=true
Categories=GNOME;GTK;Utility;</code>
    <p>Věc, která v tomto souboru stojí za pozornost, je, že řádek <code>Exec</code> bude v tomto souboru .desktop funkční až teprve po proběhnutí všech ostatních souboru <file>Makefile</file>. Soubor <file>weatherapp.sh</file> je malý shellový skript vytvořený z <file>weatherapp.sh.in</file>.</p>

    <p>weatherapp.sh.in</p>
    <code mime="text/sh.in" style="numbered">
#!/bin/sh
export GJS_PATH=@bindir@
gjs @bindir@/weatherapp.js</code>
    <p>Tento soubor je šablonou, podle které Makefile udělá soubor <file>.desktop</file> pro spouštění aplikace.</p>

    <p>Makefile.am</p>
    <code mime="text/am" style="numbered">
# Skutečný spustitelný program je nastaven do primitiva SCRIPTS
# Prefix bin_ říká, kam to nakopírovat
bin_SCRIPTS = weatherapp.js geonames.js weatherapp.sh
# Seznam souborů, které se mají šířit
EXTRA_DIST=  \
    $(bin_SCRIPTS) \
    $(private_icons)	\
	  $(NULL)

CLEANFILES =

# Soubory .desktop
desktopdir = $(datadir)/applications
desktop_DATA =weatherapp.desktop

# Užitečný příkaz provádějící substituce proměnných Makefile v jiných souborech
# než Makefile (skriptech, souborech service atd.)
do_subst = sed -e 's|@abs_top_srcdir[@]|$(abs_top_srcdir)|g' \
               -e 's|@abs_top_builddir[@]|$(abs_top_builddir)|g' \
               -e 's|@localedir[@]|$(localedir)|g' \
               -e 's|@bindir[@]|$(bindir)|g' \
               -e 's|@libexecdir[@]|$(libexecdir)|g' \
	       -e 's|@pkglibdir[@]|$(pkglibdir)|g' \
	       -e 's|@pkgdatadir[@]|$(pkgdatadir)|g' \
	       -e 's|@have_libnotify[@]|$(HAVE_LIBNOTIFY)|g' \
	       -e 's|@have_libsoup[@]|$(HAVE_LIBSOUP)|g' \
	       -e 's|@have_cheese[@]|$(HAVE_CHEESE)|g'

weatherapp.sh: weatherapp.sh.in
	$(AM_V_GEN) $(do_subst) $&lt; &gt; $@
	chmod +x $@

CLEANFILES += weatherapp.sh
EXTRA_DIST += weatherapp.sh.in

# Ikona aplikace
appicondir=$(datadir)/icons/hicolor/scalable/apps
appicon_DATA=weather-icon.svg

# Ikony v aplikaci
NULL =

private_icons = \
	weather-clear.svg \
  weather-few-clouds.svg \
  weather-fog.svg \
  weather-icon.svg \
  weather-overcast.svg \
  weather-showers.svg \
  weather-showers-scattered.svg \
  weather-snow.svg \
  $(NULL)

install-icons:
	for icon in $(private_icons); do \
		mkdir -p $(DESTDIR)$(pkgdatadir)/icons/; \
		$(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(pkgdatadir)/icons/; \
	done

install-data-local: install-icons</code>
    <p>Toto potřebuje lehké vysvětlení. V porovnání s <file>Makefile.am</file> z HelloWorld zde došlo k drobným změnám. Pojďme se podívat na všechny nové části:</p>
    <p><code>bin_scripts</code> jsou soubory, které jsou zapotřebí k běhu aplikace. V tomto případě jsou první dva soubory vlastní program a třetí soubor je skript, který aplikací spouští. </p>
    <p><code>EXTRA_DIST</code> jsou soubory, které budou šířeny.</p>
    <p>Blok <code>do_subst</code> jsou drobnosti, které ale musí být tam, kde jsou.</p>
    <p>Za komentářem <code># Ikony v aplikaci</code> jsou všechny ikony, které používáme v programu. Aby byly použitelné, je potřeba je nainstalovat na správná místa a to zařídí <code>install-icons</code>.</p>

    <p>configure.ac</p>
    <code mime="text/ac" style="numbered">
dnl This file is processed by autoconf to create a configure script
AC_INIT([Weather App], 1.0)
AM_INIT_AUTOMAKE([1.10 no-define foreign])
AC_CONFIG_FILES(Makefile)
AC_OUTPUT</code>
    <p>autogen.sh</p>
    <code mime="text/sh" style="numbered">
#!/bin/sh
# Toto nám spustí autoconf, automake, atd.
autoreconf --force --install</code>
  </section>
  <section id="icons">
  <title>Vlastní ikony pro vaši aplikaci</title>
  <p>Pokud uvažujete o vlastních ikonách, je dobré pravidlo: očekáváte, že uvidíte tuto ikono použitou i někde jinde, nebo je výhradně pro vaši aplikaci? V prvním případě (např. ikony v souboru .desktop zobrazuje shell) potřebujete <file>/usr/share/hicolor</file>, v opačném (např. ikony počasí ve vaší aplikaci) <file>/usr/share/$application/bla/bla</file>.</p>
  <p>Pokud používáte autotools, budete muset provést některé změny ve svých souborech .desktop a Makefile.am. V souboru .desktop změňte název ikony na <code>Icon=weather-icon</code>. V souboru <file>Makefile.am</file> přidejte tyto dva řádky na konec vašeho bloku <code># Ikona aplikace</code>.</p>
  <p>appicondir=$(datadir)/icons/hicolor/scalable/apps</p>
  <p>appicon_DATA=weather-icon.svg</p>
  </section>

</page>