"/usr/local/bin/v" is not allowed as Requires.

Hey all,

I keep getting this error for no explainable reason:

   65s] v-doc-0.1.29-21.1.i586
   65s] ... running 50-check-binary-kernel-log
   65s] ... running 50-check-core-files
   65s] ... checking for core files
   65s] ... running 50-check-debuginfo
   65s] ... testing for empty debuginfo packages
   65s] ... running 50-check-filelist
   65s] ... checking filelist
   65s] ... running 50-check-gconf-scriptlets
   65s] ... testing GConf scriptlet presence
   65s] ... running 50-check-installtest
   65s] ... testing for pre/postinstall scripts that are not idempotent
   65s] ... running 50-check-invalid-provides
   65s] ... running 50-check-invalid-requires
   65s] "/usr/local/bin/v" is not allowed as Requires.

I’ve checked the spec file, over and over again. Compared it to my other packages, and even went back and read documentation on spec files. I can not for the life of me figure out why it’s giving this error. Any help would be appreciated

Can you lead us to the obs-Repo?

Sorry about that, I somehow always forget to include the link

Its build in /usr/bin/ (%{_bindir}) and not /usr/local/bin/

mkdir -p %{buildroot}/%{_bindir}/vlang

So, it HAS to be in /usr/local/bin? Why?

Historically and strictly according to the standard, <code>/usr/local</code> is for data that must be stored on the local host (as opposed to <code>/usr</code>, which may be mounted across a network). Most of the time <code>/usr/local</code> is used for installing software/data that are ‘‘not’’ part of the standard operating system distribution (in such case, <code>/usr</code> would only contain software/data that ‘‘are’’ part of the standard operating system distribution). It is possible that the FHS standard may in the future be changed to reflect this de facto convention.

I know what /usr/local is, i’m just wondering why it won’t let me package it so it’s in /usr/bin. I’ve never had to do this before with any other package.

65s] … running 50-check-invalid-requires
65s] “/usr/local/bin/v” is not allowed as Requires.

There is a link that points to something…

I dunno what it could be then. I do know that v contains a command

v --symlink

that’ll create a symlink in /usr/local/bin, but I don’t see how that could be it, since that creates it, it doesn’t exist out of the gate. And I swear the rest of the files were source files and regular text files. So I guess i’m gonna have to find a mysterious binary file somewhere =P

Okay, so, there’s nothing that links to /usr/local/bin/v. No binaries atleast, even tried deleting them flat out, so unless the thing is thinking that source files are linking to it, I really am out of ideas. I know you can can a RPMLINT option and disable certain warnings. I might just have to do that

Someone decided that /usr/local cannot be required. I can understand the reasoning - /usr/local is intended for local files so packages should not install into this hierarchy, because everything package installs is not local by definition.

Okay, I solved it… ish. It was the test programs causing all the fuss. I deleted them all, and now it packages fine. Thanks Sauerland for pointing me in the right direction =)