packdude
package formats conversion
Have you seen this. Might be some useful scripts in there.
http://4mlinux.blogspot.co.uk/2013/12/a ... m-txz.html
cheers
http://4mlinux.blogspot.co.uk/2013/12/a ... m-txz.html
cheers
- Iguleder
- Posts: 2026
- Joined: Tue 11 Aug 2009, 09:36
- Location: Israel, somewhere in the beautiful desert
- Contact:
I'm aware of alien and I think it's nice, but I want something different - a repository converter. I want to convert a repository myself, so they user doesn't have to go through the slow conversion process locally.
Regarding compiler stuff, my GCC cross-compiler fails to build a native self. I'm trying to cross-compile a static GCC using Aboriginal's toolchain.
Regarding compiler stuff, my GCC cross-compiler fails to build a native self. I'm trying to cross-compile a static GCC using Aboriginal's toolchain.
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]
- technosaurus
- Posts: 4853
- Joined: Mon 19 May 2008, 01:24
- Location: Blue Springs, MO
- Contact:
linuxfromscratch had a couple of patches for this problem... the autotools garbage messes up the 2nd pass iirc.Iguleder wrote:Regarding compiler stuff, my GCC cross-compiler fails to build a native self. I'm trying to cross-compile a static GCC using Aboriginal's toolchain.
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].
One thing I never did like about PPM was the update process.
When run, it would attempt to update all repositories.
I would have preferred to be able to choose the ones that got updated.
And if one tries to interrupt the update process, the conversion of the file lists never gets completed and I have crashed PPM in the process.
WIll packdude have a graphical user display that shows available files in a repository?
Or is SQlite responsible for that?
When run, it would attempt to update all repositories.
I would have preferred to be able to choose the ones that got updated.
And if one tries to interrupt the update process, the conversion of the file lists never gets completed and I have crashed PPM in the process.
WIll packdude have a graphical user display that shows available files in a repository?
Or is SQlite responsible for that?
- technosaurus
- Posts: 4853
- Joined: Mon 19 May 2008, 01:24
- Location: Blue Springs, MO
- Contact:
sqlite is really simple to learn. if you're interested you can use puppy built-in sqlite3 shell to play. The csv format is ideal for gtkdialog trees/lists. I even wrote a patch to output json for use in a browser front-end. Hopefully I can get netsurf's new JavaScript engine to work or elinks with spidermonkey/libsee so it can be used in the console (see akita thread for last elinks with libsee support)
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].
- Iguleder
- Posts: 2026
- Joined: Tue 11 Aug 2009, 09:36
- Location: Israel, somewhere in the beautiful desert
- Contact:
I wrote gpackdude, a dead-simple packdude frontend, with gtkdialog1. It allows you to install or remove packages. Inspiration came from Tiny Core's FLTK-based extension manager, but I don't like the use of C++ because of bloat and the challenge of cross-compiling static C++ binaries. Also, I really like GTK1
You don't have to worry about updating the database. In one of the latest commits, I made the repository package database cached. packdude will try to fetch the database without asking any questions, if it's one hour old. If you install multiple packages, packdude will update the database before the first installation.
If you look at the output of packdude -l and packdude -q, you'll notice it's exactly in the format of tree view entries in gtkdialog. You just have to wrap each output line with <item> tags. Here's the gpackdude code.
(screenshot taken under Xubuntu 14.04 x86_64)
You don't have to worry about updating the database. In one of the latest commits, I made the repository package database cached. packdude will try to fetch the database without asking any questions, if it's one hour old. If you install multiple packages, packdude will update the database before the first installation.
If you look at the output of packdude -l and packdude -q, you'll notice it's exactly in the format of tree view entries in gtkdialog. You just have to wrap each output line with <item> tags. Here's the gpackdude code.
(screenshot taken under Xubuntu 14.04 x86_64)
- Attachments
-
- gpackdude.png
- (45.6 KiB) Downloaded 433 times
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]
- Iguleder
- Posts: 2026
- Joined: Tue 11 Aug 2009, 09:36
- Location: Israel, somewhere in the beautiful desert
- Contact:
Intentionally, I decided to remove that field, for three reasons:
1) This allows developers to rebuild a defective package, without having to rebuild the database.
2) Size doesn't matter much, because packages are small thanks to xz compression. The internet connection of most users is fast enough to handle the download of packages in the size range of 80K to 1MB (most packages in the repository at the moment).
3) I believe people care more about functionality and less about size. If a user needs to convert an audio file and the only audio converter in the repository is ffmpeg, the user has to choose between installing a big package and giving up on that. Most users are sane and use their computers to do useful stuff.
Regarding alien - it's client-side and I want something server-side. Also, alien doesn't resolve dependencies. I'm talking about the old alien (https://en.wikipedia.org/wiki/Alien_(software)) - the 4M solution does the same thing.
1) This allows developers to rebuild a defective package, without having to rebuild the database.
2) Size doesn't matter much, because packages are small thanks to xz compression. The internet connection of most users is fast enough to handle the download of packages in the size range of 80K to 1MB (most packages in the repository at the moment).
3) I believe people care more about functionality and less about size. If a user needs to convert an audio file and the only audio converter in the repository is ffmpeg, the user has to choose between installing a big package and giving up on that. Most users are sane and use their computers to do useful stuff.
Regarding alien - it's client-side and I want something server-side. Also, alien doesn't resolve dependencies. I'm talking about the old alien (https://en.wikipedia.org/wiki/Alien_(software)) - the 4M solution does the same thing.
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]
I wanted to install a more appealing mixer the other day, I had a CHOICE! Qasmxer or qashctl or jackmixer or retrovol, I chose gmerlin, because it offered the same functionality in a smaller package size, and because I'm psychologically dysfunctional! Comes from the longest posterity.
"Most users are sane and use their computers to do useful stuff. " This is debatable and lacks consensus and empirical evidence, I would say relatively!
Peace be with you. Have a nice day!
"Most users are sane and use their computers to do useful stuff. " This is debatable and lacks consensus and empirical evidence, I would say relatively!
Peace be with you. Have a nice day!
- Iguleder
- Posts: 2026
- Joined: Tue 11 Aug 2009, 09:36
- Location: Israel, somewhere in the beautiful desert
- Contact:
Just added two new features:
- Non-removable packages - if you pass -n, packdude will not remove the packages no matter what.
- Listing of removable packages - if you pass -c, packdude will list packages installed by the user which can be removed. Unlike -q, in this mode, packages installed as dependencies or non-removable ones are not displayed. In other words - this means it's possible to use packdude without ever seeing the dependencies of a package.
- Non-removable packages - if you pass -n, packdude will not remove the packages no matter what.
- Listing of removable packages - if you pass -c, packdude will list packages installed by the user which can be removed. Unlike -q, in this mode, packages installed as dependencies or non-removable ones are not displayed. In other words - this means it's possible to use packdude without ever seeing the dependencies of a package.
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]
What about "finding packages" and specially searching for function in addition to a package name ie "video player").Iguleder wrote:I wrote gpackdude, a dead-simple packdude frontend, with gtkdialog1. It allows you to install or remove packages.
Is even more important as "category" is not implemented (is it going to?)
== [url=http://www.catb.org/esr/faqs/smart-questions.html]Here is how to solve your[/url] [url=https://www.chiark.greenend.org.uk/~sgtatham/bugs.html]Linux problems fast[/url] ==
- Iguleder
- Posts: 2026
- Joined: Tue 11 Aug 2009, 09:36
- Location: Israel, somewhere in the beautiful desert
- Contact:
Nope, because it makes life harder for Woof. Some distros don't have a category field, so PPM has to guess the category using an ugly, hardcoded table of known packages.
I think categories should be a feature of the package manager frontend (the graphical interface). It could look for certain keywords (e.g "video player") in the package description field - that's the only way to guess the package category without having to put a table of all known packages in every Puppy.
Regarding package search - the frontend could run packdude -l | grep -i player.
I think categories should be a feature of the package manager frontend (the graphical interface). It could look for certain keywords (e.g "video player") in the package description field - that's the only way to guess the package category without having to put a table of all known packages in every Puppy.
Regarding package search - the frontend could run packdude -l | grep -i player.
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]
- technosaurus
- Posts: 4853
- Joined: Mon 19 May 2008, 01:24
- Location: Blue Springs, MO
- Contact:
I wrote a script for Scotman that went through the whole package database checking if the file list contained a .desktop file and if so, downloaded just enough of the package to extract the desktop file for categorization. ... should be in the akita thread I think.
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].
- Iguleder
- Posts: 2026
- Joined: Tue 11 Aug 2009, 09:36
- Location: Israel, somewhere in the beautiful desert
- Contact:
Here's a usage example of packdude's new dependencies abstraction feature.
I installed xhippo (which depends on mpg123 and ogg122) and mtpaint (to take this screenshot, it has its own dependencies - e.g gifsicle). As usual, packdude installed their dependencies first.
On the left you can see the dialog which lets the user choose a package to remove, while on the right, you can see the list of all installed packages.
When the wants to remove a pacakge, gpackdude shows only the package the user chose to install, hiding away its dependencies (which cannot be removed - i.e mpg123 cannot be removed because xhippo depends on it). This makes the package manager interface a lot cleaner and very pleasant to work with, since it doesn't offer the user actions that won't work (such as removing a dependency of a package or removing the kernel).
Once the user removes a package, unneeded dependencies (e.g mpg123, in the case of xhippo) are cleaned up automatically, as before.
I installed xhippo (which depends on mpg123 and ogg122) and mtpaint (to take this screenshot, it has its own dependencies - e.g gifsicle). As usual, packdude installed their dependencies first.
On the left you can see the dialog which lets the user choose a package to remove, while on the right, you can see the list of all installed packages.
When the wants to remove a pacakge, gpackdude shows only the package the user chose to install, hiding away its dependencies (which cannot be removed - i.e mpg123 cannot be removed because xhippo depends on it). This makes the package manager interface a lot cleaner and very pleasant to work with, since it doesn't offer the user actions that won't work (such as removing a dependency of a package or removing the kernel).
Once the user removes a package, unneeded dependencies (e.g mpg123, in the case of xhippo) are cleaned up automatically, as before.
- Attachments
-
- gpackdude.png
- (8.7 KiB) Downloaded 250 times
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]
- Iguleder
- Posts: 2026
- Joined: Tue 11 Aug 2009, 09:36
- Location: Israel, somewhere in the beautiful desert
- Contact:
This one - http://repo.dimakrasner.com:1024
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]
Thanks.
Is there a way to download the packages for offline use? When building a distro, I don't want to keep re-downloading the packages over and over again.
These are the steps:
1) Get to know the list of available packages
2) Get a list of dependency for all packages.
3) I have a subset of packages I want to use (I may not want to install everything that exist in the repo). With information from 1) and 2), I want to download packages for offline storage (download only - don't install).
4) Install to chroot, with packages from local filesystem
- if it does not use dependency, then its fine.
- if it does use dependency, I want that dependency to be resolved from my local filesystem.
I think packdude can only do step 1 at the moment (and may be partially 4, as you said before).
For testing, I did this before:
And that gives me a nice filesystem, but if I want to do it again I end up re-downloading everything again.
Is there a way to download the packages for offline use? When building a distro, I don't want to keep re-downloading the packages over and over again.
These are the steps:
1) Get to know the list of available packages
2) Get a list of dependency for all packages.
3) I have a subset of packages I want to use (I may not want to install everything that exist in the repo). With information from 1) and 2), I want to download packages for offline storage (download only - don't install).
4) Install to chroot, with packages from local filesystem
- if it does not use dependency, then its fine.
- if it does use dependency, I want that dependency to be resolved from my local filesystem.
I think packdude can only do step 1 at the moment (and may be partially 4, as you said before).
For testing, I did this before:
Code: Select all
mkdir -p /root/p/var/packdude
export REPO=your-repo-url above.
for p in $(./packdude -p /root/p -l | sed 's/|.*//'); do ./packdude -p /root/p -i $p; done
Fatdog64 forum links: [url=http://murga-linux.com/puppy/viewtopic.php?t=117546]Latest version[/url] | [url=https://cutt.ly/ke8sn5H]Contributed packages[/url] | [url=https://cutt.ly/se8scrb]ISO builder[/url]
- neerajkolte
- Posts: 516
- Joined: Mon 10 Feb 2014, 07:05
- Location: Pune, India.
Hi jamesbond,
In which puppy you're testing Packdude.
In Fatdog-64, or the new puppy you're building with pure ubuntu repo packages using Fatdog's kernal.
If that's the case could you provide me link to libarchive for fatdog64-631.
I tried using Packdude but it asks me libarchive (see Here) . I couldn't find it.
I have no knowledge of compiling.
But i downloaded source from HERE. I don't even know if that's right.
In which puppy you're testing Packdude.
In Fatdog-64, or the new puppy you're building with pure ubuntu repo packages using Fatdog's kernal.
If that's the case could you provide me link to libarchive for fatdog64-631.
I tried using Packdude but it asks me libarchive (see Here) . I couldn't find it.
I have no knowledge of compiling.
But i downloaded source from HERE. I don't even know if that's right.
"One of my most productive days was throwing away 1000 lines of code."
- Ken Thompson
“We tend to overestimate the effect of a technology in the short run and underestimate the effect in the long run.â€
- Amara’s Law.
- Ken Thompson
“We tend to overestimate the effect of a technology in the short run and underestimate the effect in the long run.â€
- Amara’s Law.