diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/geoclue')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/geoclue/add-option-for-installation-sysconfdir.patch | 92 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/geoclue/default.nix | 107 |
2 files changed, 199 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/geoclue/add-option-for-installation-sysconfdir.patch b/nixpkgs/pkgs/development/libraries/geoclue/add-option-for-installation-sysconfdir.patch new file mode 100644 index 000000000000..832ae945aa2c --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/geoclue/add-option-for-installation-sysconfdir.patch @@ -0,0 +1,92 @@ +diff --git i/data/meson.build w/data/meson.build +index 6ac2a11..73f433b 100644 +--- i/data/meson.build ++++ w/data/meson.build +@@ -1,6 +1,6 @@ + if get_option('enable-backend') + conf = configuration_data() +- conf.set('sysconfdir', sysconfdir) ++ conf.set('sysconfdir', sysconfdir_install) + + if get_option('demo-agent') + conf.set('demo_agent', 'geoclue-demo-agent;') +@@ -8,7 +8,7 @@ if get_option('enable-backend') + conf.set('demo_agent', '') + endif + +- conf_dir = join_paths(sysconfdir, 'geoclue') ++ conf_dir = join_paths(sysconfdir_install, 'geoclue') + configure_file(output: 'geoclue.conf', + input: 'geoclue.conf.in', + configuration: conf, +@@ -17,7 +17,7 @@ if get_option('enable-backend') + conf = configuration_data() + conf.set('libexecdir', libexecdir) + conf.set('dbus_srv_user', get_option('dbus-srv-user')) +- conf.set('sysconfdir', sysconfdir) ++ conf.set('sysconfdir', sysconfdir_install) + + confd_dir = join_paths(conf_dir, 'conf.d') + install_emptydir(confd_dir) +@@ -37,7 +37,7 @@ if get_option('enable-backend') + # DBus Service policy file + dbus_service_dir = get_option('dbus-sys-dir') + if dbus_service_dir == '' +- dbus_service_dir = join_paths(sysconfdir, 'dbus-1', 'system.d') ++ dbus_service_dir = join_paths(sysconfdir_install, 'dbus-1', 'system.d') + endif + configure_file(output: 'org.freedesktop.GeoClue2.conf', + input: 'org.freedesktop.GeoClue2.conf.in', +diff --git i/demo/meson.build w/demo/meson.build +index 1427fbe..2623f16 100644 +--- i/demo/meson.build ++++ w/demo/meson.build +@@ -54,7 +54,7 @@ if get_option('demo-agent') + install_dir: desktop_dir) + + # Also install in the autostart directory. +- autostart_dir = join_paths(sysconfdir, 'xdg', 'autostart') ++ autostart_dir = join_paths(sysconfdir_install, 'xdg', 'autostart') + meson.add_install_script('install-file.py', + desktop_file.full_path(), + autostart_dir) +diff --git i/meson.build w/meson.build +index 220ae2b..dbf6458 100644 +--- i/meson.build ++++ w/meson.build +@@ -12,7 +12,11 @@ gclue_api_version='2.0' + datadir = join_paths(get_option('prefix'), get_option('datadir')) + includedir = join_paths(get_option('prefix'), get_option('includedir')) + libexecdir = join_paths(get_option('prefix'), get_option('libexecdir')) +-sysconfdir = join_paths(get_option('prefix'), get_option('sysconfdir')) ++if get_option('sysconfdir_install') != '' ++ sysconfdir_install = join_paths(get_option('prefix'), get_option('sysconfdir_install')) ++else ++ sysconfdir_install = get_option('sysconfdir') ++endif + localedir = join_paths(datadir, 'locale') + + header_dir = 'libgeoclue-' + gclue_api_version +@@ -29,7 +33,7 @@ conf.set_quoted('PACKAGE_URL', 'https://gitlab.freedesktop.org/geoclue/geoclue/w + conf.set_quoted('PACKAGE_BUGREPORT', 'https://gitlab.freedesktop.org/geoclue/geoclue/issues/new') + conf.set_quoted('TEST_SRCDIR', meson.project_source_root() + '/data/') + conf.set_quoted('LOCALEDIR', localedir) +-conf.set_quoted('SYSCONFDIR', sysconfdir) ++conf.set_quoted('SYSCONFDIR', get_option('sysconfdir')) + conf.set_quoted('MOZILLA_API_KEY', get_option('mozilla-api-key')) + conf.set10('GCLUE_USE_3G_SOURCE', get_option('3g-source')) + conf.set10('GCLUE_USE_CDMA_SOURCE', get_option('cdma-source')) +diff --git i/meson_options.txt w/meson_options.txt +index 5b8c42d..945dfd5 100644 +--- i/meson_options.txt ++++ w/meson_options.txt +@@ -40,6 +40,9 @@ option('systemd-system-unit-dir', + option('dbus-srv-user', + type: 'string', value: 'root', + description: 'The user (existing) as which the service will run') ++option('sysconfdir_install', ++ type: 'string', value: '', ++ description: 'sysconfdir to use during installation') + option('mozilla-api-key', + type: 'string', value: 'geoclue', + description: 'Your API key for Mozilla Location Service') diff --git a/nixpkgs/pkgs/development/libraries/geoclue/default.nix b/nixpkgs/pkgs/development/libraries/geoclue/default.nix new file mode 100644 index 000000000000..c2bf28d71045 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/geoclue/default.nix @@ -0,0 +1,107 @@ +{ lib +, stdenv +, fetchFromGitLab +, fetchpatch +, intltool +, meson +, mesonEmulatorHook +, ninja +, pkg-config +, gtk-doc +, docbook-xsl-nons +, docbook_xml_dtd_412 +, glib +, json-glib +, libsoup_3 +, libnotify +, gdk-pixbuf +, modemmanager +, avahi +, glib-networking +, python3 +, wrapGAppsHook +, gobject-introspection +, vala +, withDemoAgent ? false +}: + +stdenv.mkDerivation rec { + pname = "geoclue"; + version = "2.7.0"; + + outputs = [ "out" "dev" "devdoc" ]; + + src = fetchFromGitLab { + domain = "gitlab.freedesktop.org"; + owner = "geoclue"; + repo = "geoclue"; + rev = version; + hash = "sha256-vzarUg4lBEXYkH+n9SY8SYr0gHUX94PSTDmKd957gyc="; + }; + + patches = [ + ./add-option-for-installation-sysconfdir.patch + ]; + + nativeBuildInputs = [ + pkg-config + intltool + meson + ninja + wrapGAppsHook + python3 + vala + gobject-introspection + # devdoc + gtk-doc + docbook-xsl-nons + docbook_xml_dtd_412 + ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ + mesonEmulatorHook + ]; + + buildInputs = [ + glib + json-glib + libsoup_3 + avahi + ] ++ lib.optionals withDemoAgent [ + libnotify gdk-pixbuf + ] ++ lib.optionals (!stdenv.isDarwin) [ + modemmanager + ]; + + propagatedBuildInputs = [ + glib + glib-networking + ]; + + mesonFlags = [ + "-Dsystemd-system-unit-dir=${placeholder "out"}/etc/systemd/system" + "-Ddemo-agent=${lib.boolToString withDemoAgent}" + "--sysconfdir=/etc" + "-Dsysconfdir_install=${placeholder "out"}/etc" + "-Dmozilla-api-key=5c28d1f4-9511-47ff-b11a-2bef80fc177c" + "-Ddbus-srv-user=geoclue" + "-Ddbus-sys-dir=${placeholder "out"}/share/dbus-1/system.d" + ] ++ lib.optionals stdenv.isDarwin [ + "-D3g-source=false" + "-Dcdma-source=false" + "-Dmodem-gps-source=false" + "-Dnmea-source=false" + ]; + + postPatch = '' + chmod +x demo/install-file.py + patchShebangs demo/install-file.py + ''; + + meta = with lib; { + broken = stdenv.isDarwin && withDemoAgent; + description = "Geolocation framework and some data providers"; + homepage = "https://gitlab.freedesktop.org/geoclue/geoclue/wikis/home"; + maintainers = with maintainers; [ raskin mimame ]; + platforms = with platforms; linux ++ darwin; + license = licenses.lgpl2Plus; + }; +} |