Comments (8)
Thanks for info. Yes these two packages need rake
make dependency. I added it and was able to build it successfully.
Do you see the issue with other packages?
from quarry.
Not yet. I got all the way to ruby-debug-ide, which failed because it declares a patched-in dependency on debase but no other package currently needs it, and it is not in the whitelist, and quarry does not add dependencies from config.pkg/*.yaml to the build queue.
So, I've just appended it to the whitelist as a dirty hack, and the mass build is now progressing again.
from quarry.
Yeah, I see ruby-debug-ide
uses debase
gem https://github.com/ruby-debug/ruby-debug-ide/blob/master/Gemfile but does not declare it in its *.gemspec
. It is weird. Maybe upstream should be contacted to clarify this situation.
In a short-term just add a dependency to its config.pkg with a comment why it been added + this issue number.
PS here is upstream issue ruby-debug/ruby-debug-ide#92
from quarry.
Uhhh, there's already a patch in quarry :D and the package has a depends+=(ruby-debase) and a prepare() that patches it into the gemfile.
But, the build queue does not realize that it should build debase, and therefore makechrootpkg fails with an error: target not found: ruby-debase
This is why I am saying, if a package already declares a config.pkg dependency on a package that is a valid ruby package, it should be added to the build queue alongside packages in the whitelist.
Otherwise the package is required, but not built with the native dependencies.
from quarry.
there's already a patch in quarry :D and the package
Oops missed that.
if a package already declares a config.pkg dependency on a package that is a valid ruby package, it should be added to the build queue alongside packages in the whitelist.
That is how quarry worked from the beginning. Are you saying that is not true anymore? If so then it is a bug and should be fixed.
from quarry.
It... doesn't seem to be true? As I said, ruby-debase is not being built.
Lines 564 to 579 in 2e4b609
And I stuck a bunch of debugging prints to see what is going on at various stages, this is what I get -- notice that debase is not mentioned anywhere. AFAICT dependencies are only added from spec.runtime_dependencies
and not the config.pkg:
Queueing ["unicorn", nil] to build...
building OFFICIAL_PACKAGES cache...
Not building ["unicorn", nil] as package is in the official repos
sync root chroot in case next package needs the package we just build
:: Synchronizing package databases...
core is up to date
extra is up to date
community is up to date
quarry is up to date
:: Starting full system upgrade...
there is nothing to do
Queueing ["treetop", nil] to build...
Not queueing ["polyglot", nil] because it is already in the repos
Not building ["treetop", nil] as package is in the official repos
sync root chroot in case next package needs the package we just build
:: Synchronizing package databases...
core is up to date
extra is up to date
community is up to date
quarry is up to date
:: Starting full system upgrade...
there is nothing to do
Queueing ["tilt", nil] to build...
Not building ["tilt", nil] as package is in the official repos
sync root chroot in case next package needs the package we just build
:: Synchronizing package databases...
core is up to date
extra is up to date
community is up to date
quarry is up to date
:: Starting full system upgrade...
there is nothing to do
Queueing ["thor", nil] to build...
Not building ["thor", nil] as package is in the official repos
sync root chroot in case next package needs the package we just build
:: Synchronizing package databases...
core is up to date
extra is up to date
community is up to date
quarry is up to date
:: Starting full system upgrade...
there is nothing to do
Queueing ["thin", nil] to build...
Not queueing ["rack", nil] because it is already in the repos
Not queueing ["eventmachine", nil] because it is already in the repos
Not queueing ["daemons", nil] because it is already in the repos
Not building ["thin", nil] as package is in the official repos
sync root chroot in case next package needs the package we just build
:: Synchronizing package databases...
core is up to date
extra is up to date
community is up to date
quarry is up to date
:: Starting full system upgrade...
there is nothing to do
Queueing ["ruby-debug-ide", nil] to build...
Not queueing ["rake", nil] because it is already in the repos
Building ["ruby-debug-ide", nil]...
==> Synchronizing chroot copy [/var/lib/quarry/quarry/work/chroot/root] -> [quarry]...done
==> Making package: ruby-ruby-debug-ide 0.6.1-1 (Fri Feb 16 14:20:09 EST 2018)
==> Retrieving sources...
-> Found ruby-debug-ide-0.6.1.gem
-> Found patch
==> Validating source files with sha1sums...
ruby-debug-ide-0.6.1.gem ... Passed
patch ... Passed
==> Making package: ruby-ruby-debug-ide 0.6.1-1 (Fri Feb 16 14:20:11 EST 2018)
==> Checking runtime dependencies...
==> Installing missing dependencies...
error: target not found: ruby-debase
==> ERROR: 'pacman' failed to install missing dependencies.
==> ERROR: Build failed, check /var/lib/quarry/quarry/work/chroot/quarry/build
Traceback (most recent call last):
4: from ./lib/update.rb:20:in `<main>'
3: from /var/lib/quarry/quarry/lib/quarry.rb:636:in `build_packages'
2: from /var/lib/quarry/quarry/lib/quarry.rb:574:in `build_package'
1: from /var/lib/quarry/quarry/lib/quarry.rb:574:in `chdir'
/var/lib/quarry/quarry/lib/quarry.rb:581:in `block in build_package': The binary package was not built: ruby-ruby-debug-ide-0.6.1-1-x86_64.pkg.tar.xz (RuntimeError)
- Note that "not building ... as package is in the official repos" is the warning when we skip running
build_package
- "Not queueing ... because it is already in the repos" is what happens when a dependency key is rejected from getting added via
upfront_deps << key
. - "Queueing ... at the head of the stack" indicates a dependency key from
spec.runtime_dependencies
was already inpackages_to_generate
and had to be deleted and re-added - "Adding ... to the queue" is the same but for keys that are not yet in
packages_to_generate
.
from quarry.
ruby-debase is not being built.
Then it is definitely a Quarry bug.
The dependency list is built by package_with_changed_dependencies()
that calls generate_dependency_list()
that has this snippet
if config and config['depends']
dependencies = config['depends'] + dependencies
end
The dependencies are lost somewhere along the way.
from quarry.
Hmm, looks like package_with_changed_dependencies is modifying the existing_packages in place, and adding that to the list of packages that need to be built (with dependencies included).
This only works if the package has been built before without the added dependency from config.pkg, which is why I'm seeing this error -- I am attempting to build all packages from scratch.
I discovered this when it turned out pp changed_dep_packages
returned nothing at all, despite this being obviously wrong.
from quarry.
Related Issues (20)
- rebuild for icu-61 needed HOT 1
- Gem request: asciidoctor-pdf and dependencies HOT 4
- ruby-unicode-display_width has missing file HOT 1
- something needs rebuild against new libicuuc.so.62 HOT 1
- ruby-asciidoctor-pdf: Couldn't find the font: Helvetica.afm
- charlock holmes needs recompilation against icu 63 HOT 5
- track external dependencies
- ruby-asciidoctor-pdf: Icon font not found for set: fa (Prawn::Errors::UnknownFont) HOT 2
- [Gem Request] lolcommits HOT 1
- Issue upgrading ruby-mini_portile2. HOT 2
- Terjira fails to run HOT 2
- community ruby-thor and quarry ruby-thor-0 files conflicts HOT 1
- rebuild for ruby 2.7.0 needed? HOT 2
- gollum fails to start, because not recognizing unf 0.2.0.beta2 HOT 4
- ruby-mini_portile2 fails to update. HOT 3
- Ruby Rubocop is missing signature HOT 3
- ruby-asciidoctor-pdf: dependency issue: Could not find 'rexml' (~> 3.2) HOT 5
- no recent update HOT 1
- ruby-rubocop in conflict with community package HOT 1
- Updates needed for ruby 3.2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from quarry.