ymir-linux / void-packages

The Void source libre packages collection
https://voidlinux.org
Other
7 stars 2 forks source link

Package management aliases for Ymir #27

Open reback00 opened 3 years ago

reback00 commented 3 years ago

XBPS is lightweight and fast. But it has many commands to do each action. e.g. xbps-install, xbps-remove, xbps-query. How about we introduce a helper script to make it easier? For example, y install gimp instead of xbps-install gimp, y remove gimp instead of xbps-remove gimp.

We can also introduce even shorter version of the "actions" to make it faster to type, especially for the "pro"s, such as:

This is similar to how npm offers both npm install ... and npm i ... as options.

I have these thought out so far:

y search gimp
y s gimp
y install gimp
y i gimp
y remove gimp
y r gimp
y update
y u
y update-upgrade
y uu

We can include it with ymir-utils. I have a working code prepared here. Feel free to share your thoughts.

hippi777 commented 3 years ago

hi there! :)

probably u r looking after this one: https://git.vuxu.org/xtools/tree/xi :D

drake-newell commented 3 years ago

hi there! :)

probably u r looking after this one: https://git.vuxu.org/xtools/tree/xi :D

I agree. The existing xtools package performs this function pretty well and is also useful for xbps-src.

reback00 commented 3 years ago

Great. But xi only installs a package. It can't search for one, or remove it.

The idea is similar. I just wanted to expand it a bit more.

drake-newell commented 3 years ago

Great. But xi only installs a package. It can't search for one, or remove it.

The idea is similar. I just wanted to expand it a bit more.

True, but the user can easily alias the other parts themselves as they see fit. (ie. xq="xbps-query -Rs" or xr="sudo xbps-remove -R"). One of the problems with excessive and extensive aliasing is eventually someone may forget the real command, which could cause issues.

reback00 commented 3 years ago

Well, at least it would've looked neat and we could type it faster. I think users want that. People want extra convenient things built on top of bare bones things and a distro gets popular because of that. Arch is ok, but people like Manjaro more, because there are convenient things built into it. So it gets easier to use for more people.

hippi777 commented 3 years ago

https://git.vuxu.org/xtools/tree/xq X'D

hippi777 commented 3 years ago

tldr: maybe i will make a nice interface, and the following explains why it is only a maybe, and once again here, dont hold your breathe! :)

i actually plan to make a frontend for xbps in a similar fashion like how synaptic (debian stuff) works, but i cant promise anything, as i wanna make it with lua(jit)+tekui, and thats the base of my still private app, and if it will be too much tangled with my tools, then chances are there that i wont make it public it before my app, but thats a long story, and i advice against waiting for me, but it may happen...

(((an extreme reduction of the full story sounds like i plan to make e-democracy and that in the wrong hands could burn the whole world down to the bare ground in an Orwellic endgame (that already happens) as controlling it (and the society) instead of giving the control back to the ppl or just putting it on the wrong funds and giving it the wrong abilities could do really bad things and it would only make it even harder to fix the issues of the global system that is already on the wrong track in so many senses... and the best i can do against that is to make strong funds for it... i cant make all of my related plans on my own, so i will need to get some early adopters or alpha developers at a point, that still isnt just tomorrow, cuz i need more tooling for cooperation (on the 1st place), but they will be the in the 1st row from those that will be able to enjoy my complex work, that is actually like a swiss army knife, so they will adopt it in this sense, not as having a private e-democracy tool :D )))

as currently im working on a void installer in bash, and in bash right cuz i wanna make it public, and it has a bunch of universal tools, i will think about it if i could use that as a fund anyhow for making anything similar to my syanptic-like plans, but as of now, i have no much idea how, but if i will find a reasonable way, and if i will be able to dedicate the time for it, then i think i will go for it, but again, dont take this as a guarantee for anything but my installer :D

reback00 commented 3 years ago

https://git.vuxu.org/xtools/tree/xq X'D

Well, it's better than typing xbps-query that I agree, but it shows the queried package names, and a long list of dependencies etc. with them. I tried xq -Rs gimp but it outputs the same thing. To be useful, it needs to just show a list of found packages. I think nothing beats y s gimp. It's shorter, easier to remember, no dashes or parameters to think about. Plus, the script is only 4k. What's there to lose?

Manjaro has many things like that. Manjaro has helpful scripts and aliases to make for a pleasant experience. I think small things like this will be an excellent reason to use Ymir.

tldr: maybe i will make a nice interface, and the following explains why it is only a maybe, and once again here, dont hold your breathe! :)

Excellent! Go ahead! Drake and I talked about OctoXBPS which is kind of like Octopi from Arch but for Void. OctoXBPS is based on qt though. I'm not sure if it'll be a good idea to include it. So anything based on GTK would be nice I guess.

Since this is a gigantic task to build something like that from scratch, I'd advice you to start small, implement only the basic functionalities first (like sync, search, install, remove), then add more features to it gradually. Don't feel shy if it's too basic. There are projects like Argon which are very simple, but still being worked on. But simple and user friendly interface always make it enjoyable to use. Maybe Argon is not a good example in that case. (For example, what does the 2 textboxes do on that interface? There's no label to describe what they are for. Geniuses will figure it out eventually and it's usable. But it's not fun to use. UI and UX matters a lot in the long run.) No matter how it is, feel free to work on it and share your thoughts with us. We'd be happy to help.

Another way would be to fork existing projects, such as Pamac if possible, to work with xbps, like OctoXBPS forked OctoPkg.

We also talked about implementing Calamares as GUI installer. But these are just personal conversations. We didn't decide on anything yet. So feel free to suggest anything else. I've heard some distro even used elementary's installer too. Maybe that can be an option as well.

EDIT: I think we'll still offer CLI installer even if we include a GUI installer. Drake is working on fixing some issues with the Void's CLI installer. Maybe you can communicate with him and work together. Maybe we can use your bash CLI installer or use some help from you to fix it.

drake-newell commented 3 years ago

https://git.vuxu.org/xtools/tree/xq X'D

Well, it's better than typing xbps-query that I agree, but it shows the queried package names, and a long list of dependencies etc. with them. I tried xq -Rs gimp but it outputs the same thing. To be useful, it needs to just show a list of found packages. I think nothing beats y s gimp. It's shorter, easier to remember, no dashes or parameters to think about. Plus, the script is only 4k. What's there to lose?

Manjaro has many things like that. Manjaro has helpful scripts and aliases to make for a pleasant experience. I think small things like this will be an excellent reason to use Ymir.

tldr: maybe i will make a nice interface, and the following explains why it is only a maybe, and once again here, dont hold your breathe! :)

Excellent! Go ahead! Drake and I talked about OctoXBPS which is kind of like Octopi from Arch but for Void. OctoXBPS is based on qt though. I'm not sure if it'll be a good idea to include it. So anything based on GTK would be nice I guess.

Since this is a gigantic task to build something like that from scratch, I'd advice you to start small, implement only the basic functionalities first (like sync, search, install, remove), then add more features to it gradually. Don't feel shy if it's too basic. There are projects like Argon which are very simple, but still being worked on. But simple and user friendly interface always make it enjoyable to use. Maybe Argon is not a good example in that case. (For example, what does the 2 textboxes do on that interface? There's no label to describe what they are for. Geniuses will figure it out eventually and it's usable. But it's not fun to use. UI and UX matters a lot in the long run.) No matter how it is, feel free to work on it and share your thoughts with us. We'd be happy to help.

Another way would be to fork existing projects, such as Pamac if possible, to work with xbps, like OctoXBPS forked OctoPkg.

We also talked about implementing Calamares as GUI installer. But these are just personal conversations. We didn't decide on anything yet. So feel free to suggest anything else. I've heard some distro even used elementary's installer too. Maybe that can be an option as well.

EDIT: I think we'll still offer CLI installer even if we include a GUI installer. Drake is working on fixing some issues with the Void's CLI installer. Maybe you can communicate with him and work together. Maybe we can use your bash CLI installer or use some help from you to fix it.

I guess my reluctance to try to add too much extra user-friendly stuff to the project comes from my view that we should maintain maximum compatibility with Void except of course for being libre. This is of course just my opinion.

hippi777 commented 3 years ago

i totally forgot about octoxbps, as i didnt try it so far and i still dont live on void as my installer is under development, but in this case, whats wrong with it?

reback00 commented 3 years ago

@drake-newell

I guess my reluctance to try to add too much extra user-friendly stuff to the project comes from my view that we should maintain maximum compatibility with Void except of course for being libre. This is of course just my opinion.

That's fine. Void is all about being minimalistic. I like being minimalistic. To be honest I don't like to install packages around for nothing. e.g. Having both wget and curl seems redundant to me. But I have to, because some packages require it. lol. I like to keep my system minimal. But when some package/script/alias gives me something that can benefit me a lot (i.e. I'd use that a lot everyday and it will make me productive) I wish to have that around.

One of the most common things on Void is to run package management commands. As a rolling release, you have to update it more often than point releases to reap the benefits. So instead of running some command with dashes, uppercases and parameters all the time (xbps<dash>query <dash><uppercase, so press shift>Rs ...), I feel a shorthand (y s ...) would really make it easy to type and run. One of the benefits would be that we can use these shorter commands in our User manuals in future. This will keep things simple to read, remember, run and enjoy.

All of our users may not have xtools installed, because all of them will not be package maintainers. Think of it as a solution for other Ymir users who have limited knowledge of how things work. Even if someone has xtools installed, it should even benefit them too (e.g. for having simple package search as explained above).

Manjaro is bloat to some people. But what Manjaro got right, is that it has some of the things that less tech savvy users like to have. For example, on Arch someone has to run this to find the fastest mirrors and write the results on config:

# rankmirrors -n 6 /etc/pacman.d/mirrorlist.backup > /etc/pacman.d/mirrorlist

The same can be done on Manjaro with:

# pacman-mirrors --fasttrack

If I remember correctly there's even a shorter command # update-mirrors -g. I think this is justified to have around, since this is a common task that every user has to do when mirrors start being slow every now and then.

EDIT: at, less tech savvy

reback00 commented 3 years ago

@hippi777

i totally forgot about octoxbps, as i didnt try it so far and i still dont live on void as my installer is under development, but in this case, whats wrong with it?

Well, it's written in Qt. So not sure if it will be a good idea to bring this in when other packages (probably) will be GTK based. Mixing GTK and qt doesn't feel like a good idea. For example, Manjaro KDE had Octopi when I last tried, but the GNOME version had Pamac which is GTK based.

hippi777 commented 3 years ago

it is hard to use apps based on an exclusive graphical toolkit, and in the worst case, u will need the dependencies of both (or more) and maybe their style will differ on an unpleasant way... :D otherwise it seems to be sophisticated, and i think it should be reasonably fast and small, while my lua based plans took place either cuz im a lua fanboy and i wanna gravitate all my tools to there to achieve something as homogeneous as possible, or cuz i dont like c++ and therefore qt or cuz i was unaware of octoxbps when i came up with the idea... :D

(((btw tekui would fit even less with its appearance (http://tekui.neoscientists.org/screenshots.html), however it is minimalist as it was designed to be embedded and it has no dependencies, it can even utilize various framebuffers and vnc, its driver is isolated and therefore it can be replaced without making mess, and it is still very fast and flexible. on the contrary, its official development stopped, as it is considered to be feature-complete (btw Timm, its main dev is reachable, and its source is reasonably understandable and well-crafted), but i know it has some rough edges here and there, while i dont care cuz i chose it as it can be owned at will (no rushing development by hundreds, it knows all the basics i could wish for, and its small enough to be able to control it from a to z), and i would like to reshape it to be better aligned to my own funds and goals, but that will be a big task anyhow... so my needs are special, while it is a valuable stuff that i like to advertise :D )))

reback00 commented 3 years ago

@hippi777 I like Lua too. I like that it's small, embeddable and still can achieve many things. Can tekUI be made to look similar to any GTK based theme?

I was also wondering if Pamac can be forked to work with XBPS. This way we can use already available codebase and get something faster.

hippi777 commented 3 years ago

uhmmm, that only depends on the amount of ur efforts :D as u could see, the style can be highly customized, also, it is opensource ...... :D otherwise this is the nearest effort included http://hg.neoscientists.org/tekui/file/3c0054553c1d/tek/ui/style/desktop.lua this is for gtk2, and when i simply tried to use it, then it didnt make anything, but i didnt try to figure out why and i have never developed for gnome.

otherwise https://puri.sm is very sympathetic to me (u will like it too :D ) and theres some chance that i will try to join them one day, and they basically use gnome, so i would like to catch up sooner or later, but currently my free time is somewhere deep under zero.... :D

some more background info, again: (((my hdd crashed, and then i decided to switch from ubuntu mate to pureos, cuz of purism, then i decided to figure out how to leave out systemd from the game and that i wanna make a proper full disk encryption this time ...... then actually i checked out all the reasonable init stuffs, filesystems, bootloaders, possibilities for encryption, initramfs creators, desktop environments mostly for wayland, network conf tools, udev alternatives, c libs, package managers, a huge amount of various distros looking after their specialties, installers, i have read like the 3/4 of the internet, like all the relevant stuffs on void, arch and gentoo wiki, some debian docs, some rhel docs, some wikipedia... u know, complicated stuffs that depend on each others X'D then i arrived to void and now im writing my installer, in bash, cuz my lua stuffs are still private, cuz strenghtening the python ecosystem that i left behind for lua is against my will, and cuz ive thought its a good idea and just the right tool... no, it isnt. to make my installer more useful than serving a single and very special taste (mine) i needed trees in bash, it is basically impossible, but i did it anyhow... and a lotsa basic tooling... cuz i needed to make a representation of disks with whatever fs layers on top of them, like lvm luks btrfs raid and what not that cant be represented otherwise on a flexible way.... now it is based on a config, i can pass on trees across functions, and sooner or later i will end this, while it took me an extreme amount of time to take this whole journey, but hey, i do it for my next dan to my black belt after all, so it still did worth more than not :D the installer is based on a config, and the installation itself is fully automatic, it only needs to manage a vault for credentials and what not if i already made it available, and the rest just happens accordingly to the config :D it can get a validator and a frontend to make a config, but thats out of my scope.... so now, i need to finish this, it will be public domain once i will be ready, it is still a question who will like it and who wont, and then i will still have really much to do after that from my list... i have 3 corrupted drives with most of my treasures that i need to heal somehow (1 by its controller, 2 by their filesystems... beware of trying to bind mount a copy over /usr on a live system, and always use sysrq as a last resort when bad things are happening! :D ) ive "lost" (will see) 1.5years of my treasures cuz of the outdated and now corrupted backup, 3months from my lua based app when i was so near to reach the end of a huge chaos in it to refactor everything into a dynamic tree (nodes can be moved around and it will rewire its codes accordingly :D ) with live coding, and developing it from itself, so yep, it is complicated, and now it is waiting for me to catch up and maybe to get back that lost 3 months... i had this much outdated backups, cuz i wanted to handle that from within my app, to be able to follow complex workflow with the backups... and this is still not a thing for living, and now im on a 8g pendrive with a debian on it, cuz i dont dare to use my new ssd, cuz ive lost(?) too much already, and writing an installer that runs under root and that messes with underlying stuffs is kinda dangerous.... ahh, and dont forget about it, i have more plans for my app than what could fit into a lifetime, so i have actually no idea how much i will be able to help in anything, but at least now u have an idea about my messed up world :D otherwise probably i will be around, probably theres no better fund than void for anything cool, i did my research about it, and i would like to replace some bash stuffs from void with lua, but thats not a priority, and i dunno if i can do it without releasing my currently necessarily private work (one day it will be free, like public domain, but not tomorrow), and before that time, as i already mentioned, i will need at one point to get some people involved, but the way of that is also a long story and more of a hard responsibility than just free candy, so, things are kinda hardcore here, but basically im not against anything good on earth that doesnt conflict with my plans to save humanity, if it is possible, and if i can, and whatever, gotta try it anyway, our dear only Mother Earth is bleeding, the people cant untangle their chains, and im serious just as much as u can see it...)))

reback00 commented 3 years ago

@hippi777 I know how it feels. I lost my data many times before. It feels like my whole life is lost. Good luck with your installer. Hope to see it complete one day.