solbuild icon indicating copy to clipboard operation
solbuild copied to clipboard

Feature Request: add option to easily use local package

Open jjedelsky opened this issue 8 years ago • 15 comments

Something like: sudo solbuild build --replace-pkg "pkgname:path/to/pkg.eopkg". This would make it easier to try how two packages interacts.

jjedelsky avatar Feb 06 '17 14:02 jjedelsky

Does this do anything that local repos don't already do?

ikeydoherty avatar Feb 06 '17 14:02 ikeydoherty

It would be much easier to use. No, it doesn't.

jjedelsky avatar Feb 06 '17 14:02 jjedelsky

I would also like the ability to have this, in some form or another. A couple of times i have been trying to package something that depends on a package than isn't in solus' repos. Therefore to actually build the package I wanted to in the first place I need to package and submit the dependency, wait and see if it gets accepted before I can finally package the application I wanted to in the first place barring some ugly shenanigans I have to do in the chroot enviroment.

In my mind I should be able to run solbuild index and then add any local packages to my builddeps

joebonrichie avatar Feb 25 '17 02:02 joebonrichie

..We support local repos. Check the profile files in this repo and the manpages :P

ikeydoherty avatar Feb 25 '17 02:02 ikeydoherty

Woah, apparently i'm dumb, that helps a lot. :man_facepalming:

joebonrichie avatar Feb 25 '17 04:02 joebonrichie

xD happens :P maybe i could set up some tutorials for this

ikeydoherty avatar Feb 25 '17 10:02 ikeydoherty

Local repos have now been simplified greatly and documented for very easy use and integration with the current tooling. This configuration package will be available to install and use after the next package sync in Solus

https://solus-project.com/articles/packaging/local-repository/en/

sunnyflunk avatar Mar 21 '17 10:03 sunnyflunk

I would like to propose an enhancement : first check the local repository and if the package is not there get it from the Solus repository.

This would be more convenient.

kyrios123 avatar Mar 28 '17 20:03 kyrios123

@kyrios123 Have you tried the local repo as documented above? That's what it does...

sunnyflunk avatar Mar 28 '17 21:03 sunnyflunk

@sunnyflunk of course! To give a concrete example, VLC has lot of dependencies. I have changed only one ffmpeg, but currently I need to download all the others dependencies to execute make local.

It looks to me that a nice enhancement would be to give the priority to the packages in the local repository and take the missing ones from the Solus repository, so in this particular cases, I would have just to copy the ffmpeg package in my local repo perform my tests and then purge my local repo. There could be warning messages to indicate for each missing package that it's downloaded from the remote repository.

I don't think it's complex to implement and it would make Solbuild even more user friendly but of course it's just a nice to have.

Just a suggestion for a future update.

kyrios123 avatar Mar 29 '17 06:03 kyrios123

@kyrios123 To me you have described how it currently works. You would put ffmpeg in /var/lib/solbuild/local run make local. Then solbuild will index ffmpeg and install it from the local repo, and download the other dependencies to install from the Solus unstable repo (unless solbuild has the eopkg's cached already). So exactly like a normal build but is using the local repo ffmpeg.

I suggest you try to find me on IRC if yours is not working that way so can work through it.

sunnyflunk avatar Mar 29 '17 10:03 sunnyflunk

@sunnyflunk this is what I tried to do first, but it didn't work. so what I did is eopkg info vlc to find the dependencies then I did sudo eopkg fc to download the dependencies in my local repository. I also added system.devel and then it worked fine

kyrios123 avatar Mar 29 '17 10:03 kyrios123

@kyrios123 ok, can you remove everything from the local repo except the ffmpeg and ffmpeg-devel eopkgs and reproduce vlc failing to build? Confirm make local fails and then I want you to run sudo solbuild build package.yml -p local-unstable-x86_64 -d and paste that log of the failed run. It's really not that useful if you have to add the deps to the local repo so I'd like to get this fixed.

This is what it should be doing from a quick build of vlc (but I used libflac as it was quick).

Downloading 61 / 217
Package libraw1394 found in repository Solus
libraw1394-2.0.5-1-1-x86_64.eopkg [cached]
Downloading 62 / 217
Package libflac found in repository Local
Downloading 63 / 217
Package libsndfile found in repository Solus
libsndfile-1.0.26-8-1-x86_64.eopkg [cached]

sunnyflunk avatar Mar 29 '17 11:03 sunnyflunk

Okay sorry, my mistake! Lesson learned: when my host computer goes into sleep mode, the network interface of the guest virtual machine on which I do the packages does not always reconnect automatically or immediately. Sorry for the bothering and apologizes !!!

kyrios123 avatar Mar 29 '17 13:03 kyrios123

I say we replace all these options by releasing ferryd into Solus :D

ikeydoherty avatar Nov 21 '17 00:11 ikeydoherty