···77 <warning>
88 <para>
99 The following section is a draft, and the policy for reviewing is still being discussed in issues such as <link
1010- xlink:href="https://github.com/NixOS/nixpkgs/issues/11166">#11166 </link> and <link
1111- xlink:href="https://github.com/NixOS/nixpkgs/issues/20836">#20836 </link>.
1010+ xlink:href="https://github.com/NixOS/nixpkgs/issues/11166">#11166 </link> and <link
1111+ xlink:href="https://github.com/NixOS/nixpkgs/issues/20836">#20836 </link>.
1212 </para>
1313 </warning>
1414 <para>
+2-2
doc/languages-frameworks/dotnet.section.md
···64646565The `dotnetCorePackages.sdk_X_Y` is preferred over the old dotnet-sdk as both major and minor version are very important for a dotnet environment. If a given minor version isn't present (or was changed), then this will likely break your ability to build a project.
66666767-## dotnetCorePackages.sdk vs dotnetCorePackages.netcore vs dotnetCorePackages.aspnetcore
6767+## dotnetCorePackages.sdk vs vs dotnetCorePackages.net vs dotnetCorePackages.netcore vs dotnetCorePackages.aspnetcore
68686969-The `dotnetCorePackages.sdk` contains both a runtime and the full sdk of a given version. The `netcore` and `aspnetcore` packages are meant to serve as minimal runtimes to deploy alongside already built applications.
6969+The `dotnetCorePackages.sdk` contains both a runtime and the full sdk of a given version. The `net`, `netcore` and `aspnetcore` packages are meant to serve as minimal runtimes to deploy alongside already built applications. For runtime versions >= .NET 5 `net` is used while `netcore` is used for older .NET Core runtime version.
70707171## Packaging a Dotnet Application
7272
+1-2
doc/stdenv/meta.xml
···189189 </term>
190190 <listitem>
191191 <para>
192192- A list of names and e-mail addresses of the maintainers of this Nix expression. If you would like to be a maintainer of a package, you may want to add yourself to <link
193193- xlink:href="https://github.com/NixOS/nixpkgs/blob/master/maintainers/maintainer-list.nix"><filename>nixpkgs/maintainers/maintainer-list.nix</filename></link>. There is no restriction to becoming a maintainer, just add each new maintainer to that list in a separate commit titled 'maintainers: add alice', and reference maintainers with <literal>maintainers = with lib.maintainers; [ alice bob ]</literal>.
192192+ A list of the maintainers of this Nix expression. Maintainers are defined in <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/maintainers/maintainer-list.nix"><filename>nixpkgs/maintainers/maintainer-list.nix</filename></link>. There is no restriction to becoming a maintainer, just add yourself to that list in a separate commit titled 'maintainers: add alice', and reference maintainers with <literal>maintainers = with lib.maintainers; [ alice bob ]</literal>.
194193 </para>
195194 </listitem>
196195 </varlistentry>
···6565 <title>AMD</title>
66666767 <para>
6868- Modern AMD <link
6969- xlink:href="https://en.wikipedia.org/wiki/Graphics_Core_Next">Graphics
7070- Core Next</link> (GCN) GPUs are supported through the
7171- <package>rocm-opencl-icd</package> package. Adding this package to
7272- <xref linkend="opt-hardware.opengl.extraPackages"/> enables OpenCL
7373- support:
6868+ Modern AMD <link
6969+ xlink:href="https://en.wikipedia.org/wiki/Graphics_Core_Next">Graphics
7070+ Core Next</link> (GCN) GPUs are supported through the
7171+ <package>rocm-opencl-icd</package> package. Adding this package to
7272+ <xref linkend="opt-hardware.opengl.extraPackages"/> enables OpenCL
7373+ support:
74747575- <programlisting><xref linkend="opt-hardware.opengl.extraPackages"/> = [
7676- rocm-opencl-icd
7777-];</programlisting>
7575+ <programlisting><xref linkend="opt-hardware.opengl.extraPackages"/> = [
7676+ rocm-opencl-icd
7777+ ];</programlisting>
7878 </para>
7979 </section>
8080···100100 support. For example, for Gen8 and later GPUs, the following
101101 configuration can be used:
102102103103- <programlisting><xref linkend="opt-hardware.opengl.extraPackages"/> = [
104104- intel-compute-runtime
105105-];</programlisting>
103103+ <programlisting><xref linkend="opt-hardware.opengl.extraPackages"/> = [
104104+ intel-compute-runtime
105105+ ];</programlisting>
106106107107 </para>
108108 </section>
···173173 <title>AMD</title>
174174175175 <para>
176176- Modern AMD <link
177177- xlink:href="https://en.wikipedia.org/wiki/Graphics_Core_Next">Graphics
178178- Core Next</link> (GCN) GPUs are supported through either radv, which is
179179- part of <package>mesa</package>, or the <package>amdvlk</package> package.
180180- Adding the <package>amdvlk</package> package to
181181- <xref linkend="opt-hardware.opengl.extraPackages"/> makes both drivers
182182- available for applications and lets them choose. A specific driver can
183183- be forced as follows:
176176+ Modern AMD <link
177177+ xlink:href="https://en.wikipedia.org/wiki/Graphics_Core_Next">Graphics
178178+ Core Next</link> (GCN) GPUs are supported through either radv, which is
179179+ part of <package>mesa</package>, or the <package>amdvlk</package> package.
180180+ Adding the <package>amdvlk</package> package to
181181+ <xref linkend="opt-hardware.opengl.extraPackages"/> makes both drivers
182182+ available for applications and lets them choose. A specific driver can
183183+ be forced as follows:
184184185185- <programlisting><xref linkend="opt-hardware.opengl.extraPackages"/> = [
186186- pkgs.<package>amdvlk</package>
187187-];
185185+ <programlisting><xref linkend="opt-hardware.opengl.extraPackages"/> = [
186186+ pkgs.<package>amdvlk</package>
187187+ ];
188188189189-# To enable Vulkan support for 32-bit applications, also add:
190190-<xref linkend="opt-hardware.opengl.extraPackages32"/> = [
191191- pkgs.driversi686Linux.<package>amdvlk</package>
192192-];
189189+ # To enable Vulkan support for 32-bit applications, also add:
190190+ <xref linkend="opt-hardware.opengl.extraPackages32"/> = [
191191+ pkgs.driversi686Linux.<package>amdvlk</package>
192192+ ];
193193194194-# For amdvlk
195195-<xref linkend="opt-environment.variables"/>.VK_ICD_FILENAMES =
196196- "/run/opengl-driver/share/vulkan/icd.d/amd_icd64.json";
197197-# For radv
198198-<xref linkend="opt-environment.variables"/>.VK_ICD_FILENAMES =
199199- "/run/opengl-driver/share/vulkan/icd.d/radeon_icd.x86_64.json";
200200-</programlisting>
194194+ # For amdvlk
195195+ <xref linkend="opt-environment.variables"/>.VK_ICD_FILENAMES =
196196+ "/run/opengl-driver/share/vulkan/icd.d/amd_icd64.json";
197197+ # For radv
198198+ <xref linkend="opt-environment.variables"/>.VK_ICD_FILENAMES =
199199+ "/run/opengl-driver/share/vulkan/icd.d/radeon_icd.x86_64.json";
200200+ </programlisting>
201201 </para>
202202 </section>
203203 </section>
+1-1
nixos/doc/manual/contributing-to-this-manual.xml
···1212 You can quickly check your edits with the following:
1313 </para>
1414<screen>
1515-<prompt>$ </prompt>cd /path/to/nixpkgs/nixos/doc/manual
1515+<prompt>$ </prompt>cd /path/to/nixpkgs
1616<prompt>$ </prompt>nix-build nixos/release.nix -A manual.x86_64-linux
1717</screen>
1818 <para>
···161161 existing systems without the help of a rescue USB drive or similar.
162162 </para>
163163 </warning>
164164+ <note>
165165+ <para>
166166+ On some distributions there are separate PATHS for programs intended only for root.
167167+ In order for the installation to succeed, you might have to use <literal>PATH="$PATH:/usr/sbin:/sbin"</literal>
168168+ in the following command.
169169+ </para>
170170+ </note>
164171<screen><prompt>$ </prompt>sudo PATH="$PATH" NIX_PATH="$NIX_PATH" `which nixos-install` --root /mnt</screen>
165172 <para>
166173 Again, please refer to the <literal>nixos-install</literal> step in
+35-25
nixos/doc/manual/release-notes/rl-2009.xml
···234234 </listitem>
235235 </itemizedlist>
236236 </listitem>
237237-237237+ <listitem>
238238+ <para>
239239+ Starting with this release, the hydra-build-result
240240+ <literal>nixos-<replaceable>YY.MM</replaceable></literal>
241241+ branches no longer exist in the <link
242242+ xlink:href="https://github.com/nixos/nixpkgs-channels">deprecated
243243+ nixpkgs-channels repository</link>. These branches are now in
244244+ <link xlink:href="https://github.com/nixos/nixpkgs">the main nixpkgs
245245+ repository</link>.
246246+ </para>
247247+ </listitem>
238248 </itemizedlist>
239249 </section>
240250···15931603 <para>
15941604 Agda has been heavily reworked.
15951605 <itemizedlist>
15961596- <listitem>
15971597- <para>
15981598- <literal>agda.mkDerivation</literal> has been heavily changed and
15991599- is now located at <package>agdaPackages.mkDerivation</package>.
16001600- </para>
16011601- </listitem>
16021602- <listitem>
16031603- <para>
16041604- New top-level packages <package>agda</package> and
16051605- <literal>agda.withPackages</literal> have been added, the second
16061606- of which sets up agda with access to chosen libraries.
16071607- </para>
16081608- </listitem>
16091609- <listitem>
16101610- <para>
16111611- All agda libraries now live under
16121612- <literal>agdaPackages</literal>.
16131613- </para>
16141614- </listitem>
16151615- <listitem>
16161616- <para>
16171617- Many broken libraries have been removed.
16181618- </para>
16191619- </listitem>
16061606+ <listitem>
16071607+ <para>
16081608+ <literal>agda.mkDerivation</literal> has been heavily changed and
16091609+ is now located at <package>agdaPackages.mkDerivation</package>.
16101610+ </para>
16111611+ </listitem>
16121612+ <listitem>
16131613+ <para>
16141614+ New top-level packages <package>agda</package> and
16151615+ <literal>agda.withPackages</literal> have been added, the second
16161616+ of which sets up agda with access to chosen libraries.
16171617+ </para>
16181618+ </listitem>
16191619+ <listitem>
16201620+ <para>
16211621+ All agda libraries now live under
16221622+ <literal>agdaPackages</literal>.
16231623+ </para>
16241624+ </listitem>
16251625+ <listitem>
16261626+ <para>
16271627+ Many broken libraries have been removed.
16281628+ </para>
16291629+ </listitem>
16201630 </itemizedlist>
16211631 See the <link
16221632 xlink:href="https://nixos.org/nixpkgs/manual/#agda">new
+9
nixos/doc/manual/release-notes/rl-2103.xml
···163163 <literal>vim</literal> switched to Python 3, dropping all Python 2 support.
164164 </para>
165165 </listitem>
166166+ <listitem>
167167+ <para>
168168+ <link linkend="opt-boot.zfs.forceImportAll">boot.zfs.forceImportAll</link>
169169+ previously did nothing, but has been fixed. However its default has been
170170+ changed to <literal>false</literal> to preserve the existing default
171171+ behaviour. If you have this explicitly set to <literal>true</literal>,
172172+ please note that your non-root pools will now be forcibly imported.
173173+ </para>
174174+ </listitem>
166175 </itemizedlist>
167176 </section>
168177
+37-37
nixos/doc/varlistentry-fixer.rb
···1515include REXML
16161717if ARGV.length < 1 then
1818- $stderr.puts "Needs a filename."
1919- exit 1
1818+ $stderr.puts "Needs a filename."
1919+ exit 1
2020end
21212222filename = ARGV.shift
···5151# Generates: --optionnamevalue
5252# ^^ ^^
5353doc.elements.each("//varlistentry/term") do |term|
5454- ["varname", "function", "option", "replaceable"].each do |prev_name|
5555- term.elements.each(prev_name) do |el|
5656- if el.next_element and
5757- el.next_element.name == "replaceable" and
5858- el.next_sibling_node.class == Element
5959- then
6060- $touched = true
6161- term.insert_after(el, Text.new(" "))
6262- end
6363- end
6464- end
5454+ ["varname", "function", "option", "replaceable"].each do |prev_name|
5555+ term.elements.each(prev_name) do |el|
5656+ if el.next_element and
5757+ el.next_element.name == "replaceable" and
5858+ el.next_sibling_node.class == Element
5959+ then
6060+ $touched = true
6161+ term.insert_after(el, Text.new(" "))
6262+ end
6363+ end
6464+ end
6565end
66666767···7575# Generates: -Ipath
7676# ^^
7777doc.elements.each("//cmdsynopsis/arg") do |term|
7878- ["option", "replaceable"].each do |prev_name|
7979- term.elements.each(prev_name) do |el|
8080- if el.next_element and
8181- el.next_element.name == "replaceable" and
8282- el.next_sibling_node.class == Element
8383- then
8484- $touched = true
8585- term.insert_after(el, Text.new(" "))
8686- end
8787- end
8888- end
7878+ ["option", "replaceable"].each do |prev_name|
7979+ term.elements.each(prev_name) do |el|
8080+ if el.next_element and
8181+ el.next_element.name == "replaceable" and
8282+ el.next_sibling_node.class == Element
8383+ then
8484+ $touched = true
8585+ term.insert_after(el, Text.new(" "))
8686+ end
8787+ end
8888+ end
8989end
90909191# <cmdsynopsis>
···104104# Generates: [{--profile-name | -p }name]
105105# ^^^^
106106doc.elements.each("//cmdsynopsis/arg") do |term|
107107- ["group"].each do |prev_name|
108108- term.elements.each(prev_name) do |el|
109109- if el.next_element and
110110- el.next_element.name == "replaceable" and
111111- el.next_sibling_node.class == Element
112112- then
113113- $touched = true
114114- term.insert_after(el, Text.new(" "))
115115- end
116116- end
117117- end
107107+ ["group"].each do |prev_name|
108108+ term.elements.each(prev_name) do |el|
109109+ if el.next_element and
110110+ el.next_element.name == "replaceable" and
111111+ el.next_sibling_node.class == Element
112112+ then
113113+ $touched = true
114114+ term.insert_after(el, Text.new(" "))
115115+ end
116116+ end
117117+ end
118118end
119119120120121121if $touched then
122122- doc.context[:attribute_quote] = :quote
123123- doc.write(output: File.open(filename, "w"))
122122+ doc.context[:attribute_quote] = :quote
123123+ doc.write(output: File.open(filename, "w"))
124124end
···175175176176 forceImportAll = mkOption {
177177 type = types.bool;
178178- default = true;
178178+ default = false;
179179 description = ''
180180 Forcibly import all ZFS pool(s).
181181-182182- This is enabled by default for backwards compatibility purposes, but it is highly
183183- recommended to disable this option, as it bypasses some of the safeguards ZFS uses
184184- to protect your ZFS pools.
185181186182 If you set this option to <literal>false</literal> and NixOS subsequently fails to
187183 import your non-root ZFS pool(s), you should manually import each pool with
···507503 Type = "oneshot";
508504 RemainAfterExit = true;
509505 };
506506+ environment.ZFS_FORCE = optionalString cfgZfs.forceImportAll "-f";
510507 script = (importLib {
511508 # See comments at importLib definition.
512509 zpoolCmd="${packages.zfsUser}/sbin/zpool";
···99 inherit buildFHSUserEnv;
1010 };
1111 stableVersion = {
1212- version = "4.1.0.19"; # "Android Studio 4.1.0"
1313- build = "201.6858069";
1414- sha256Hash = "sha256-S5Uh/EpjE61l/z4UsPP7UEJ9Rk/hQidVVWX0bg/60gI=";
1212+ version = "4.1.1.0"; # "Android Studio 4.1.1"
1313+ build = "201.6953283";
1414+ sha256Hash = "sha256-aAMhhJWcVFdvEZt8fI3tF12Eg3TzlU+kUFMNeCYN1os=";
1515 };
1616 betaVersion = {
1717 version = "4.1.0.18"; # "Android Studio 4.1 RC 3"
+4-2
pkgs/applications/graphics/gimp/default.nix
···163163 # The declarations for `gimp-with-plugins` wrapper,
164164 # used for determining plug-in installation paths
165165 majorVersion = "${lib.versions.major version}.0";
166166- targetPluginDir = "lib/gimp/${majorVersion}/plug-ins";
167167- targetScriptDir = "share/gimp/${majorVersion}/scripts";
166166+ targetLibDir = "lib/gimp/${majorVersion}";
167167+ targetDataDir = "share/gimp/${majorVersion}";
168168+ targetPluginDir = "${targetLibDir}/plug-ins";
169169+ targetScriptDir = "${targetDataDir}/scripts";
168170169171 # probably its a good idea to use the same gtk in plugins ?
170172 gtk = gtk2;
···11+{ stdenv, python38Packages, fetchPypi
22+, fftw, alsaLib, pulseaudio, wxPython_4_0 }:
33+44+python38Packages.buildPythonApplication rec {
55+ pname = "quisk";
66+ version = "4.1.72";
77+88+ src = fetchPypi {
99+ inherit pname version;
1010+ sha256 = "0qw00b9d0l3ysdrmd3nr5a2zlwg9ygdil7krnk2gjp5g8bb778k7";
1111+ };
1212+1313+ buildInputs = [ fftw alsaLib pulseaudio ];
1414+1515+ propagatedBuildInputs = [ wxPython_4_0 ];
1616+1717+ doCheck = false;
1818+1919+ meta = with stdenv.lib; {
2020+ description = "A SDR transceiver for radios that use the Hermes protocol";
2121+ longDescription = ''
2222+ QUISK is a Software Defined Radio (SDR) transceiver. You supply radio
2323+ hardware that converts signals at the antenna to complex (I/Q) data at an
2424+ intermediate frequency (IF). Data can come from a sound card, Ethernet or
2525+ USB. Quisk then filters and demodulates the data and sends the audio to
2626+ your speakers or headphones. For transmit, Quisk takes the microphone
2727+ signal, converts it to I/Q data and sends it to the hardware.
2828+2929+ Quisk can be used with SoftRock, Hermes Lite 2, HiQSDR, Odyssey and many
3030+ radios that use the Hermes protocol. Quisk can connect to digital
3131+ programs like Fldigi and WSJT-X. Quisk can be connected to other software
3232+ like N1MM+ and software that uses Hamlib.
3333+ '';
3434+ license = licenses.gpl2Plus;
3535+ homepage = "https://james.ahlstrom.name/quisk/";
3636+ maintainers = with maintainers; [ pulsation ];
3737+ platforms = platforms.linux;
3838+ };
3939+}
···2233stdenv.mkDerivation rec {
44 pname = "gnome-shell-extension-material-shell";
55- version = "9";
55+ version = "10";
6677 src = fetchFromGitHub {
88 owner = "material-shell";
99 repo = "material-shell";
1010 rev = version;
1111- sha256 = "154ids72hkkvibqpq3522wf6h9qw7zkjnf8dgz50vxbkiiy015xn";
1111+ sha256 = "18d813n8s7ns8xp75zmlna7a8mi23rn9yqps51xvdd0sdgn72a1c";
1212 };
13131414 # This package has a Makefile, but it's used for building a zip for
···1414, zlib
1515}:
16161717+# NOTE: as of late 2020, yosys has switched to an automation robot that
1818+# automatically tags their repository Makefile with a new build number every
1919+# day when changes are committed. please MAKE SURE that the version number in
2020+# the 'version' field exactly matches the YOSYS_VER field in the Yosys
2121+# makefile!
2222+#
2323+# if a change in yosys isn't yet available under a build number like this (i.e.
2424+# it was very recently merged, within an hour), wait a few hours for the
2525+# automation robot to tag the new version, like so:
2626+#
2727+# https://github.com/YosysHQ/yosys/commit/71ca9a825309635511b64b3ec40e5e5e9b6ad49b
2828+#
2929+# note that while most nix packages for "unstable versions" use a date-based
3030+# version scheme, synchronizing the nix package version here with the unstable
3131+# yosys version number helps users report better bugs upstream, and is
3232+# ultimately less confusing than using dates.
3333+1734stdenv.mkDerivation rec {
1835 pname = "yosys";
1919- version = "2020.10.20";
3636+ version = "0.9+3675";
20372138 src = fetchFromGitHub {
2239 owner = "YosysHQ";
2340 repo = "yosys";
2424- rev = "06347b119b08257eff37cdd10ed802e794c1a3cf";
2525- sha256 = "07058r8095192gwkiy2yyvj9vxv09fcw9bqi2b39wn85lh5kx2k2";
4141+ rev = "71ca9a825309635511b64b3ec40e5e5e9b6ad49b";
4242+ sha256 = "03jlhfvm5rxx8yybf94nqd3ld2y6brp8r0k6gfi56chv3iqqavy3";
2643 };
27442845 enableParallelBuilding = true;
···5572 (cd misc && ${protobuf}/bin/protoc --cpp_out ../backends/protobuf/ ./yosys.proto)
56735774 if ! grep -q "ABCREV = ${shortAbcRev}" Makefile; then
5858- echo "yosys isn't compatible with the provided abc (${shortAbcRev}), failing."
7575+ echo "ERROR: yosys isn't compatible with the provided abc (${shortAbcRev}), failing."
7676+ exit 1
7777+ fi
7878+7979+ if ! grep -q "YOSYS_VER := ${version}" Makefile; then
8080+ echo "ERROR: yosys version in Makefile isn't equivalent to version of the nix package (${version}), failing."
5981 exit 1
6082 fi
6183 '';
62848585+ checkTarget = "test";
6386 doCheck = true;
6487 checkInputs = [ verilog ];
6588···6891 # they just assume that 'yosys-abc' is available -- but it's not installed
6992 # when using ABCEXTERNAL
7093 #
7171- # add a symlink to fake things so that both variants work the same way.
7272- postInstall = ''
7373- ln -sfv ${abc-verifier}/bin/abc $out/bin/yosys-abc
7474- '';
9494+ # add a symlink to fake things so that both variants work the same way. this
9595+ # is also needed at build time for the test suite.
9696+ postBuild = "ln -sfv ${abc-verifier}/bin/abc ./yosys-abc";
9797+ postInstall = "ln -sfv ${abc-verifier}/bin/abc $out/bin/yosys-abc";
75987699 meta = with stdenv.lib; {
77100 description = "Open RTL synthesis framework and tools";
···55let
66 # NOTE: bumping the version and updating the hash is insufficient;
77 # you must use bundix to generate a new gemset.nix in the Vagrant source.
88- version = "2.2.11";
88+ version = "2.2.13";
99 url = "https://github.com/hashicorp/vagrant/archive/v${version}.tar.gz";
1010- sha256 = "sha256-KDQDEMebqQYgsBroHmQrm/OJWTES9C9eGl0dDHTBpIc=";
1010+ sha256 = "sha256-NN+8t08yycINbtxOjhOWU96nJ0fZKDAopEr3WyAeG8U=";
11111212 deps = bundlerEnv rec {
1313 name = "${pname}-${version}";
···203203 # incompatibleKernelVersion = "4.19";
204204205205 # this package should point to a version / git revision compatible with the latest kernel release
206206- version = "2.0.0-rc5";
206206+ version = "2.0.0-rc6";
207207208208- sha256 = "0vnldx95c36yy18v1hfr8r4cmmh3hw4n6pwz30drkwgywakjwnsd";
208208+ sha256 = "0p027x9hsawniwa9h3yayfbcx010anwcfy45rqgkg2r91zr2nfvw";
209209 isUnstable = true;
210210 };
211211}
···11+diff --git a/meson.build b/meson.build
22+index 45df103f0..d57d13172 100644
33+--- a/meson.build
44++++ b/meson.build
55+@@ -342,7 +342,7 @@ cdata.set('MESON_BUILD', 1)
66+ # On ELF systems we don't want the libraries to be unloaded since we don't clean them up properly,
77+ # so we request the nodelete flag to be enabled.
88+ # On other systems, we don't really know how to do that, but it's welcome if somebody can tell.
99+-nodelete_link_args = ['-Wl,-z,nodelete']
1010++nodelete_link_args = cc.get_supported_link_arguments(['-Wl,-z,nodelete'])
1111+1212+ # Code coverage
1313+
+4
pkgs/servers/pulseaudio/default.nix
···124124 --prefix GIO_EXTRA_MODULES : "${lib.getLib dconf}/lib/gio/modules"
125125 '';
126126127127+ passthru = {
128128+ pulseDir = "lib/pulse-" + lib.versions.majorMinor version;
129129+ };
130130+127131 meta = {
128132 description = "Sound server for POSIX and Win32 systems";
129133 homepage = "http://www.pulseaudio.org/";