FS#46382 - [systemd] PKGBUILD: rm -rf _directories_we_need_later?
Attached to Project:
Arch Linux
Opened by Que Quotion (quequotion) - Monday, 21 September 2015, 21:12 GMT
Last edited by Dave Reisner (falconindy) - Tuesday, 22 September 2015, 18:39 GMT
Opened by Que Quotion (quequotion) - Monday, 21 September 2015, 21:12 GMT
Last edited by Dave Reisner (falconindy) - Tuesday, 22 September 2015, 18:39 GMT
|
Details
Description:
Maybe, instead of "rm -rf".... these should be "mkdir" ? ### split out manpages for sysvcompat rm -rf "$srcdir/_sysvcompat" install -dm755 "$srcdir"/_sysvcompat/usr/share/man/man8/ mv "$pkgdir"/usr/share/man/man8/{telinit,halt,reboot,poweroff,runlevel,shutdown}.8 \ "$srcdir"/_sysvcompat/usr/share/man/man8 ### split off runtime libraries rm -rf "$srcdir/_libsystemd" install -dm755 "$srcdir"/_libsystemd/usr/lib cd "$srcdir"/_libsystemd mv "$pkgdir"/usr/lib/lib{systemd,udev}*.so* usr/lib Failure in package() for both systemd-sysvcompat and libsystemd because these directories don't exist. I tried with mkdir and successfully built both packages. Additional info: * package version(s) * config and/or log files etc. Steps to reproduce: Try to build libsystemd or systemd-sysvcompat from ABS. |
This task depends upon
Closed by Dave Reisner (falconindy)
Tuesday, 22 September 2015, 18:39 GMT
Reason for closing: Fixed
Additional comments about closing: systemd-226-2
Tuesday, 22 September 2015, 18:39 GMT
Reason for closing: Fixed
Additional comments about closing: systemd-226-2
No chance to fix that?
FS#46214? Did you not think/work through your suggested fixed entirely?This was not a problem when I reported the other bug; the PKGBUILD has changed since then.
> Also, this was not caused by the solution to the other bug.
But the only changes were a version bump and the pkgname -> pkgbase bump. Can you point to the specific commit which caused this? I don't think you really can, because the code in question has existed since we split systemd into multiple packages...
You're right, they aren't recent changes. I'm not sure why this wasn't a problem before--maybe I ended up packaging everything because packaging just what I need was broken.
What's gone wrong is that files are moved into place in package_systemd() that will later be packaged by package_libsystemd() and/or package_systemd-sysvcompat().
This is unnecessary and could be done better.
It is safer and more logical to remove the unneeded files from the systemd package and package the files needed for libsystemd and sysvcompat from $srcdir.
If a user is building only one of the packages, the files won't be there to be packaged.
If you need me to make a diff for you, I'm already working on it.
Your implication that using "makepkg --pkg" is the problem is offensive. You can't dictate that users must install all of the packages of a split package (or every split package).
I don't. I expect that I'd spend as much time testing it as I would writing it myself.
> You can't dictate that users must install all of the packages of a split package (or every split package).
Oh, sure I can (by removing the split). However, I'm doing no such thing. I'm only suggesting that you *create* all the packages. You don't need to install them all.
https://lists.archlinux.org/pipermail/pacman-dev/2015-September/020347.html
Why do you have this attitude? I am proposing to improve this package.
Split packages need better standards, especially if they are going into the core repository.
See attached patch for improvements. You can test it if you like, but I already have.
It's six lines shorter and avoids making changes in $srcdir.
The very next comment on that asks for the missing rationale.
Your patched PKGBUILD still fails if you run 'makepkg -Rf --pkg libsystemd' (or systemd-sysvcompat) twice.