Comments (8)
Thanks for the report and the details! I see the logic now. rua
tries first to analyze the dependency chain, and then later to build it. Editing .SRCINFO doesn't have any effect then, because the "packages list to install" is already defined at that moment.
I'm not 100% how to proceed here.
rua
could detect the change of the.SRCINFO
and recommend building and installing the package manually (e.g.rua builddir ~/.cache/rua/build/PACKAGE_NAME
). In this case, the dependency tree can be shown to the user right at the start (which can be very intuitive to see, and the person might even decide to install/not install the package at this point). However, in case of changed dependencies the user would be left with a lot of manual work..rua
could avoid showing the summary at start and work down its dependency tree incrementally. It would still be possible to review all packages in one go before full installation (build execution), but the dependency tree won't be shown before review.- In theory, the dependency tree could be re-calculated and updated as the user reviews the packages and alters them. Something along the lines of:
your_desired_package (*reviewed*)
├── dep1 (*currently reviewing*)
└── dep2
└── dep3 (pacman)
this can even be shown incrementally/repeatedly while you're reviewing, to see a "pointer" of where you are in the overall process.
The alternative 3 seems the best from the UX (user experience) perspective, does it?
Any ideas are welcomed
from rua.
Hi @jookuuj, thank you!
This flow should actually work 🤔 I'm using this feature myself occasionally.
Could you please paste the logs of the build? I'll take a look. If you do, please include the commands ls -aFl
, cat .SRCINFO
and cat PKGBUILD
while inspecting and editing in the shell. (Or bat --paging=never .SRCINFO
even better if you have bat
)
You can also verify if these changes persist and are visible if you look in ~/.config/rua/pkg
by the way
from rua.
I have attached the PKGBUILD, .SRCINFO file and the output of ls -aFl:
But I'm not sure where the build logs are. Do you mean the .BUILDINFO file that's in ~/.cache/rua/build/fvwm/pkg/fvwm/ directory? Sorry, I have never looked up any makepkg logs. I tried googling but I didn't find a solution.
I also checked and the changes are indeed there in ~/.config/rua/pkg/fvwm/ directory.
from rua.
where the build logs are
I mean, can you run your command in the terminal and copy-paste the output?
rua install fvwm
I want to see if the error comes from makepkg/rua/pacman themselves, or if libstroke
is just an inherent dependency that fails the build after we start building fvwm. (I suspect the latter, but I'd want to confirm.)
from rua.
Here is what rua outputs when I run "rua install fvwm":
$ rua install fvwm
Package fvwm depends on libstroke. Resolving...
In order to install all targets, the following pacman packages will need to be installed:
python-xdg
And the following AUR packages will need to be built and installed:
libstroke
fvwm
Proceed? [O]=ok, Ctrl-C=abort. o
WARNING: your AUR repo is up-to-date.
If you continue, the build directory will be removed and the build will be re-run.
If you don't want that, consider resolving the situation manually,
for example: rua builddir '/home/hackerman/.cache/rua/build/libstroke'
Reviewing "/home/hackerman/.config/rua/pkg/libstroke".
[S]=run shellcheck on PKGBUILD, [D]=(identical to upstream, empty diff), [T]=run shell to edit/inspect, [O]=ok, use package. o
WARNING: your AUR repo is up-to-date.
If you continue, the build directory will be removed and the build will be re-run.
If you don't want that, consider resolving the situation manually,
for example: rua builddir '/home/hackerman/.cache/rua/build/fvwm'
Reviewing "/home/hackerman/.config/rua/pkg/fvwm".
[S]=run shellcheck on PKGBUILD, [D]=view your changes, [T]=run shell to edit/inspect, [O]=ok, use package. o
Packages need to be installed:
pacman -S --asdeps --needed -- 'python-xdg'
Enter S to `sudo` install it, or install manually and press M when done.
After I hit S to install python-xdg and let Pacman install it, rua starts building libstroke from AUR, even though the PKGBUILD has been edited to remove it from dependencies of FVWM. I also tested building FVWM using plain old makepkg (with same edits to PKGBUILD and .SRCINFO) and it worked.
from rua.
I agree. The option 3 is the best in my opinion. Sadly, I don't know much coding (I'm currently learning Python), so I can't help much with this issue.
from rua.
I'm having the same issue as OP with the same version of rua.
I'm trying to install antares-sql with the following command
$ rua install antares-sql
Package antares-sql depends on electron17-bin. Resolving...
And the following AUR packages will need to be built and installed:
electron17-bin
antares-sql
Proceed? [O]=ok, Ctrl-C=abort. ^C
I already have a newer version of Electron 17 installed with electron17
, so I abort. What I want to do at this stage is be given the ability to change the deps of the BUILDPKG to refer to the preferred dependency. Ideally, I'd be able to do this just by editing the file, but if that's not an option then the ability to modify BUILDPKG from within rua would be nice, like you have when you upgrade packages.
I don't really understand the purpose of ignoring changes to the local repo for a package. Is that deliberate?
from rua.
Hi @marrs, the somewhat lenghty reply to your post is actually above.
TL&DR; it's more of a simplistic approach at the beginning of when rua was created. It has its upsides (see again above), but it's possible to do better.
If you have a PR, I'd be happy to review/merge. Otherwise I may have time for it a bit later (these weeks I'm relatively busy)
from rua.
Related Issues (20)
- Rua will not attempt to build for alternate architectures if a package is marked x86_64 only
- Allow to pass in flags to makepkg command
- Allow more fine grained controls in diff HOT 9
- Further improve file diff when upgrading package
- `rua install` doesn't work under systemd-homed user HOT 4
- Dependencies not resolved correctly for split packages
- Segfaults on search HOT 7
- Sandboxing hardening suggestions (`/mnt`, `/media`, PKGBUILD directory) HOT 2
- Decrease compilation time for updated packages HOT 1
- RUSTSEC-2021-0139: ansi_term is Unmaintained HOT 1
- [Feature request] Add the ability to use a separate pacman.conf HOT 4
- Workflow idea: frequent builds in non-interactive throw-away VMs. Review and approve process is decoupled and allows for zero build time
- Jailing git commands makes bwrap complain about GNUPG related path parameters HOT 13
- `git` command jailing and symlinked directories don't work together HOT 1
- Add completion command
- Blacklist HOT 2
- Move detached signature w/ checked tarball. HOT 1
- Dependency resolution failure with versioned dependencies, with previous versions already installed
- Internal error: queue element does not have depth
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 rua.