Package Details: mpdscribble 0.25-1

Git Clone URL: https://aur.archlinux.org/mpdscribble.git (read-only, click to copy)
Package Base: mpdscribble
Description: MPD client which submits track info to {Libre,Last}.fm
Upstream URL: https://www.musicpd.org/clients/mpdscribble/
Licenses: GPL
Submitter: xyproto
Maintainer: jasonwryan
Last Packager: jasonwryan
Votes: 68
Popularity: 0.042279
First Submitted: 2013-10-07 20:44 (UTC)
Last Updated: 2023-12-11 21:21 (UTC)

Pinned Comments

jasonwryan commented on 2021-06-28 22:48 (UTC)

This package doesn't support people who have failed to read the wiki page https://wiki.archlinux.org/index.php/Makepkg, or cannot interpret error messages.

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 7 Next › Last »

grandchild commented on 2020-09-15 09:40 (UTC)

Oh, while we're at it -- I regularly use mpdscribble on aarch64! So you can add that to the arch list as well.

grandchild commented on 2020-09-15 09:35 (UTC)

Ah, systemd-libs is neither a dependency of base nor base-devel -- so technically systemd is present but not libsystemd.

So yeah, makedepends should include systemd-libs.

WorMzy commented on 2020-09-15 09:13 (UTC)

That's what I'm saying -- systemd isn't present in a devtools clean chroot so the systemd stuff is disabled. Adding systemd to the makedeps would ensure it's present.

jasonwryan commented on 2020-09-13 23:07 (UTC)

Hi WorMzy,

systemd is the only supported init. If people are not using it, I am sure they can work out how to build a music scrobbler without it.

Cheers.

WorMzy commented on 2020-09-13 21:29 (UTC)

package() fails in a clean chroot due to missing libsystemd in prepare():

==> Extracting sources...
  -> Extracting v0.23.tar.gz with bsdtar
==> Starting prepare()...
The Meson build system
Version: 0.55.3
Source dir: /build/mpdscribble/src/mpdscribble-0.23
Build dir: /build/mpdscribble/src/mpdscribble-0.23/build
Build type: native build
Project name: mpdscribble
Project version: 0.23
C++ compiler for the host machine: c++ (gcc 10.2.0 "c++ (GCC) 10.2.0")
C++ linker for the host machine: c++ ld.bfd 2.35
Host machine cpu family: x86_64
Host machine cpu: x86_64
Checking for function "syslog" : YES 
Run-time dependency threads found: YES
Found pkg-config: /usr/bin/pkg-config (1.7.3)
Run-time dependency Boost found: YES 1.72.0 (/usr)
Run-time dependency libmpdclient found: YES 2.19
Run-time dependency libgcrypt found: YES 1.8.6
Run-time dependency libcurl found: YES 7.72.0
Did not find CMake 'cmake'
Found CMake: NO
Run-time dependency libsystemd found: NO (tried pkgconfig and cmake)
Compiler for C++ supports arguments -Wno-deprecated-declarations -Wdeprecated-declarations: YES 
Compiler for C++ supports arguments -Wshadow: YES 
Compiler for C++ supports arguments -Wpointer-arith: YES 
Compiler for C++ supports arguments -Wcast-qual: YES 
Compiler for C++ supports arguments -Wcast-align: YES 
Compiler for C++ supports arguments -Wwrite-strings: YES 
Compiler for C++ supports arguments -Wmissing-declarations: YES 
Compiler for C++ supports arguments -Wmissing-noreturn: YES 
Compiler for C++ supports arguments -Wmissing-format-attribute: YES 
Compiler for C++ supports arguments -Wredundant-decls: YES 
Compiler for C++ supports arguments -Wundef: YES 
Compiler for C++ supports arguments -Wno-missing-field-initializers -Wmissing-field-initializers: YES 
Compiler for C++ supports arguments -Wno-non-virtual-dtor -Wnon-virtual-dtor: YES 
Compiler for C++ supports arguments -fvisibility=hidden: YES 
Configuring config.h using configuration
Build targets in project: 1

Found ninja-1.10.1 at /usr/bin/ninja
==> Starting build()...
Directory already configured.

Just run your build command (e.g. ninja) and Meson will regenerate as necessary.
If ninja fails, run "ninja reconfigure" or "meson --reconfigure"
to force Meson to regenerate.

If build failures persist, run "meson setup --wipe" to rebuild from scratch
using the same options as passed when configuring the build.
To change option values, run "meson configure" instead.
ninja: Entering directory `build'
[1/23] Compiling C++ object mpdscribble.p/src_Protocol.cxx.o
[2/23] Compiling C++ object mpdscribble.p/src_Form.cxx.o
[3/23] Compiling C++ object mpdscribble.p/src_lib_curl_Init.cxx.o
[4/23] Compiling C++ object mpdscribble.p/src_Daemon.cxx.o
[5/23] Compiling C++ object mpdscribble.p/src_CommandLine.cxx.o
[6/23] Compiling C++ object mpdscribble.p/src_util_StringStrip.cxx.o
[7/23] Compiling C++ object mpdscribble.p/src_lib_curl_Escape.cxx.o
[8/23] Compiling C++ object mpdscribble.p/src_util_PrintException.cxx.o
[9/23] Compiling C++ object mpdscribble.p/src_Journal.cxx.o
[10/23] Compiling C++ object mpdscribble.p/src_Log.cxx.o
[11/23] Compiling C++ object mpdscribble.p/src_util_StringView.cxx.o
[12/23] Compiling C++ object mpdscribble.p/src_util_Exception.cxx.o
[13/23] Compiling C++ object mpdscribble.p/src_util_OptionParser.cxx.o
[14/23] Compiling C++ object mpdscribble.p/src_ReadConfig.cxx.o
[15/23] Compiling C++ object mpdscribble.p/src_IniFile.cxx.o
[16/23] Compiling C++ object mpdscribble.p/src_lib_curl_Request.cxx.o
[17/23] Compiling C++ object mpdscribble.p/src_MultiScrobbler.cxx.o
[18/23] Compiling C++ object mpdscribble.p/src_Main.cxx.o
[19/23] Compiling C++ object mpdscribble.p/src_Scrobbler.cxx.o
[20/23] Compiling C++ object mpdscribble.p/src_lib_curl_Global.cxx.o
[21/23] Compiling C++ object mpdscribble.p/src_MpdObserver.cxx.o
[22/23] Compiling C++ object mpdscribble.p/src_Instance.cxx.o
[23/23] Linking target mpdscribble
Found runner: ['/usr/bin/ninja']
==> Entering fakeroot environment...
==> Starting package()...
ninja: Entering directory `build'
ninja: no work to do.
Installing mpdscribble to /build/mpdscribble/pkg/mpdscribble/usr/bin
Installing /build/mpdscribble/src/mpdscribble-0.23/doc/mpdscribble.1 to /build/mpdscribble/pkg/mpdscribble/usr/share/man/man1
Installing /build/mpdscribble/src/mpdscribble-0.23/AUTHORS to /build/mpdscribble/pkg/mpdscribble/usr/share/doc/mpdscribble
Installing /build/mpdscribble/src/mpdscribble-0.23/COPYING to /build/mpdscribble/pkg/mpdscribble/usr/share/doc/mpdscribble
Installing /build/mpdscribble/src/mpdscribble-0.23/NEWS to /build/mpdscribble/pkg/mpdscribble/usr/share/doc/mpdscribble
Installing /build/mpdscribble/src/mpdscribble-0.23/README.rst to /build/mpdscribble/pkg/mpdscribble/usr/share/doc/mpdscribble
Installing /build/mpdscribble/src/mpdscribble-0.23/doc/mpdscribble.conf to /build/mpdscribble/pkg/mpdscribble/etc
install: cannot stat 'build/systemd/system/mpdscribble.service': No such file or directory
==> ERROR: A failure occurred in package().
    Aborting...
==> ERROR: Build failed, check /scratch/chroot64/build/build

Works fine if you add systemd to the makedepends.

namcap also points out that the source tarball should be renamed, and the finished package also contains an empty /etc (since you're removing the mpdscribble.conf file but not the directory):

Checking PKGBUILD
PKGBUILD (mpdscribble) W: Non-unique source name (v0.23.tar.gz). Use a unique filename.
Checking mpdscribble-0.23-2-x86_64.pkg.tar.zst
mpdscribble W: ELF file ('usr/bin/mpdscribble') lacks FULL RELRO, check LDFLAGS.
mpdscribble W: Directory (etc) is empty

grandchild commented on 2020-09-08 08:33 (UTC)

@jasonwryan cool, thanks for the quick fix! :)

keithspg commented on 2020-09-08 00:18 (UTC)

The PKGBUILD has this as arch=('any'). Doesn't this need to be built for each architecture? The previous PKGBUILD had x86_64, armv6h, armv7h and aarch64 that I have built and installed. Am I missing something? https://wiki.archlinux.org/index.php/PKGBUILD#arch

grandchild commented on 2020-09-07 10:18 (UTC) (edited on 2020-09-07 10:18 (UTC) by grandchild)

And while you're at it: Consider changing from md5sums to sha256sums. It's not really critical, but there's also no point in using outdated hash methods.

grandchild commented on 2020-09-07 10:10 (UTC) (edited on 2020-09-07 10:17 (UTC) by grandchild)

Hi there, please check if your package still works after upgrade!

While it's good that you're using the upstream systemd service files you should actually install the built files and not the *.in template files from the source. And remove the now unnused service file from the source and the aur-git repo.

Also the thing about removing /etc/mpdscribble.conf is dated from 2011. I think it's time to remove the corresponding line in the PKGBUILD and the whole mpdscribble.install file altogether. (The remaining postinstall section is not really needed. People should be aware that example configs will be in /usr/share/$package if available.)

Here is the patch on top of the current PKGBUILD:

diff --git a/.SRCINFO b/.SRCINFO
index 49d03a6..20baa13 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,9 +1,8 @@
 pkgbase = mpdscribble
        pkgdesc = MPD client which submits track info to {Libre,Last}.fm
        pkgver = 0.23
-       pkgrel = 1
+       pkgrel = 2
        url = https://github.com/MusicPlayerDaemon/mpdscribble
-       install = mpdscribble.install
        arch = any
        license = GPL
        makedepends = meson
@@ -11,9 +10,7 @@ pkgbase = mpdscribble
        depends = boost
        depends = libmpdclient
        source = https://github.com/MusicPlayerDaemon/mpdscribble/archive/v0.23.tar.gz
-       source = service
        md5sums = 6b3b325c82f6b6eff38123960d7d91dc
-       md5sums = a57d7d3d41b37fb23b45835aa0cfc325

 pkgname = mpdscribble

diff --git a/PKGBUILD b/PKGBUILD
index 73647a3..a313720 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,22 +6,17 @@

 pkgname=mpdscribble
 pkgver=0.23
-pkgrel=1
+pkgrel=2
 pkgdesc='MPD client which submits track info to {Libre,Last}.fm'
 url='https://github.com/MusicPlayerDaemon/mpdscribble'
 arch=('any')
 license=('GPL')
 depends=('boost' 'libmpdclient')
 makedepends=('meson' 'ninja')
-install=$pkgname.install
-source=(https://github.com/MusicPlayerDaemon/${pkgname}/archive/v${pkgver}.tar.gz
-        service)
-md5sums=('6b3b325c82f6b6eff38123960d7d91dc'
-         'a57d7d3d41b37fb23b45835aa0cfc325')
+source=(https://github.com/MusicPlayerDaemon/${pkgname}/archive/v${pkgver}.tar.gz)
+md5sums=('6b3b325c82f6b6eff38123960d7d91dc')

 prepare() {
-  sed 's/multi-user.target/default.target/;/User=%i/d' service > user.service
-
   cd "${pkgname}"-"${pkgver}"
   DESTDIR="${pkgdir}" meson build \
      --prefix=/usr \
@@ -40,15 +35,14 @@ package() {
   cd ${pkgname}-"${pkgver}"
   DESTDIR="${pkgdir}" meson install -C build

-  install -Dm644 systemd/system/mpdscribble.service.in \
+  install -Dm644 build/systemd/system/mpdscribble.service \
     "${pkgdir}"/usr/lib/systemd/system/mpdscribble@.service
-  install -Dm644 systemd/user/mpdscribble.service.in \
+  install -Dm644 build/systemd/user/mpdscribble.service \
     "${pkgdir}"/usr/lib/systemd/user/mpdscribble.service

   # default config is really an example
   install -Dm644 doc/mpdscribble.conf \
     "${pkgdir}"/usr/share/mpdscribble/mpdscribble.conf.example
-  rm -f "${pkgdir}"/etc/mpdscribble.conf
 }

 # vim:set ts=2 sw=2 et:
diff --git a/mpdscribble.install b/mpdscribble.install
deleted file mode 100644
index e7038d5..0000000
--- a/mpdscribble.install
+++ /dev/null
@@ -1,22 +0,0 @@
-post_install() {
-  echo 'An example config is provided in /usr/share/mpdscribble/mpdscribble.conf.example'
-  echo
-  echo 'For system-wide config copy this file to /etc/mpdscribble.conf'
-  echo 'For per-user config copy this file to ~/.mpdscribble/mpdscribble.conf'
-}
-
-## arg 1:  the new package version
-## arg 2:  the old package version
-pre_upgrade() {
-  # removed /etc/mpdscribble.conf on FEB 19 2011
-  # only display warning for people with mpdscribble older then 0.21
-  if (( "$(vercmp 0.21-1 $2)" > 0 )) && [[ -f /etc/mpdscribble.conf ]]
-  then
-    echo "$1 is new $2 is old"
-    cp /etc/mpdscribble.conf /etc/mpdscribble.conf.oldbackup
-    echo 'The package does not provide /etc/mpdscribble.conf anymore.'
-    echo 'Copied /etc/mpdscribble.conf to /etc/mpdscribble.conf.oldbackup'
-    echo
-    echo 'The example file is now located at /etc/mpdscribble.conf.example'
-  fi
-}
diff --git a/service b/service
deleted file mode 100644
index bda531c..0000000
--- a/service
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description={Libre,Last}.fm updater for MPD
-After=mpd.service
-
-[Service]
-User=%i
-ExecStart=/usr/bin/mpdscribble --no-daemon
-
-[Install]
-WantedBy=multi-user.target