Pdebthing DEB downloader and packager 005

A home for all kinds of Puppy related projects
Message
Author
User avatar
playdayz
Posts: 3799
Joined: Fri 25 Apr 2008, 18:57

#16 Post by playdayz »

You can use Pdebthing to download DEB packages with all, but ALL their dependencies.
This worries me just a bit. We do not want to duplicate libraries and other dependencies that are already present in Lucid Puppy. Probably you have already accounted for that.
Very often in my experience, Ubuntu will report dependencies that are extreme. For instance, it reports Midori as needing 74MB of dependencies. However, someone built (maybe me I can't remember) a Midori with Ubuntu binaries that "only" needs 39MB. Then the shared Midori that technosaurus built in Puppy only needs 17MB--and that is the same version of midori and close to the same webkit.

Most of the time in building packages from Ubuntu they need some manual tweaking and adjustment. I don't want to sound discouraging though--the more good packages for Lucid puppy the better! So, make them and post them for testing and let's go forward. Thanks.

reckrhodes
Posts: 116
Joined: Wed 30 May 2007, 08:15

#17 Post by reckrhodes »

hi Iguleder,

So sorry for being late in my response. I am now very happy to report that i finally got to create a supertux.pet and sfs.

For now, i am trying to create sfs or pets of the following program: gbrainy, gcompris and openoffice. I am very happy and impress with the Pdebthing.

Thank you so much for your help.

User avatar
Iguleder
Posts: 2026
Joined: Tue 11 Aug 2009, 09:36
Location: Israel, somewhere in the beautiful desert
Contact:

#18 Post by Iguleder »

playdayz wrote:This worries me just a bit. We do not want to duplicate libraries and other dependencies that are already present in Lucid Puppy.
I'll answer with a quote.
- A setting called "downloadInstalled", can be either "true" or "false": if set to "false", packages that come with your Puppy won't be downloaded.
No duplicates. I guess you haven't read the whole thing.
playdayz wrote:Very often in my experience, Ubuntu will report dependencies that are extreme.
That's because Ubuntu (like any other major desktop distro) turns everything on and compiles packages with all optional features. There's nothing you can do about this, just compile your own package with your choice of features and dependencies.

And it's your choice - either a non-functioning Ubuntu package with missing dependencies or a bigger but working package, that's something you can achieve with Pdebthing.
playdayz wrote:Most of the time in building packages from Ubuntu they need some manual tweaking and adjustment..
In this case, you're wrong. It takes time to get all the dependencies of an Ubuntu package and it's sort of impossible if you do that manually. The manual tweaks I do are editing of .desktop files, fonts and configuration files in extreme cases. Not a big problem.
playdayz wrote:I don't want to sound discouraging though
Oh, too bad.
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]

stu90

#19 Post by stu90 »

If anyone is interested i have made a GUI for Pdebthing - I didn't know how to add option for folder name change (can use right click Rename) so you only need to use the terminal for making the .pet dir2pet or alien2puppy.
Last edited by stu90 on Thu 02 Sep 2010, 12:19, edited 1 time in total.

User avatar
Iguleder
Posts: 2026
Joined: Tue 11 Aug 2009, 09:36
Location: Israel, somewhere in the beautiful desert
Contact:

#20 Post by Iguleder »

Cool stuff, stu90! :)

I'll change Pdebthing's behavior and make it rename all "stuff" directories after the first package mentioned in config/packages, I think it makes sense to assume the most important package goes first. For instance, if you want Amarok, you won't call the package "xine-lib", because that's just a dependency, you want Amarok and not xine. Then you'll be able to make a package creation button, dir2pet or dir2sfs :wink:

Also, I can call dir2sfs and dir2pet from a fourth and final script that does the actual packaging :D

Additionally, I have a plan to fix all rear-corner case issues. For example, there's no check whether the extraction of the extracted package lists worked, because it makes sense to assume that if the download succeeded (that's something it does verify), the archive is valid. I'll add all those checks, error message and exit codes. Once we have that, I'll write a wrapper script that calls all four scripts.

This way you get verbosity and things are simpler. It also makes GUIzation of Pdebthing simpler and more friendly.

Ummm ... that was the ambitious me again, nevermind.
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]

stu90

#21 Post by stu90 »

That sounds great Iguleder 8)

Edit:
I have updated the GUI in the Script 1download section there is now a 'Remove Debs' button this will delete some of the .deb files Ubuntu always seems to want to install, i have built several pets with these .deb deleted and they seem to work ok with out them but if not sure just ignore the 'Remove debs' option.
GUI is in /root/pdebthing4GUI directory.

http://www.smokey01.com/stu90/pdeb4+GUI.pet

Image

User avatar
Iguleder
Posts: 2026
Joined: Tue 11 Aug 2009, 09:36
Location: Israel, somewhere in the beautiful desert
Contact:

#22 Post by Iguleder »

Uploaded 005, replying to bump the thread.

This time it's compatible with both Ubuntu and Debian and has lots of improvements. :)

Can be used with 5.2 or Puppy Squeeze.
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]

ocpaul20
Posts: 260
Joined: Thu 31 Jan 2008, 08:00
Location: PRC

#23 Post by ocpaul20 »

I know this is a very basic question but how do you know what package names to put in?

I have done
#ldd xchm
linux-gate.so.1 => (0xffffe000)
libwx_gtk2u_aui-2.8.so.0 => not found
libwx_gtk2u_xrc-2.8.so.0 => not found
libwx_gtk2u_qa-2.8.so.0 => not found
libwx_gtk2u_html-2.8.so.0 => not found
libwx_gtk2u_adv-2.8.so.0 => not found
libwx_gtk2u_core-2.8.so.0 => not found
libwx_baseu_xml-2.8.so.0 => not found
libwx_baseu_net-2.8.so.0 => not found
libwx_baseu-2.8.so.0 => not found
libchm.so.1 => not found
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb76bc000)
libm.so.6 => /lib/libm.so.6 (0xb7695000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7676000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb765e000)
libc.so.6 => /lib/libc.so.6 (0xb7515000)
/lib/ld-linux.so.2 (0xb77c2000)

So I assume that the package names are the bit at the front
linux-gate
libwx
libchm

and for the found ones:
libstdc++
libm
libgcc_s
libpthread
libc
ld-linux

Is that correct please?

User avatar
Iguleder
Posts: 2026
Joined: Tue 11 Aug 2009, 09:36
Location: Israel, somewhere in the beautiful desert
Contact:

#24 Post by Iguleder »

According to packages.debian.org, you need libwxgtk2.8-0 and libchm1. The numbers may vary between Debian versions or between Debian and Ubuntu, though.

Why don't you use "xchm"? You can download it with all its dependencies.
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]

ocpaul20
Posts: 260
Joined: Thu 31 Jan 2008, 08:00
Location: PRC

#25 Post by ocpaul20 »

Thats what I am trying to do. To download xchm for use with a PHP manual. However, I may be being a bit thick here, I thought I had to add the package names into the 'packages' file so that Pdebthing would do its stuff and download all the dependencies for me. Dont I have to do that?

I have run 0setup and I get lots of 404 errors but the script seems to have finished OK and it downloaded quite a bit of stuff.. How do we know if it encountered serious errors? Is there a log file?

OK, got xchm working as an sfs now, after a bit of fiddling around merging some directories etc. There are still some errors when it starts up and the bookmarks dont work somehow. Maybe there is still stuff not quite right, but it displays the chm file OK in the main window and is usable, but not good enough to offer as an sfs to others.

I used Pdebthing and that seemed to work alright. Thanks.

User avatar
Iguleder
Posts: 2026
Joined: Tue 11 Aug 2009, 09:36
Location: Israel, somewhere in the beautiful desert
Contact:

#26 Post by Iguleder »

Just put "xchm" in config/packages, that's all you need. Pdebthing will download the dependencies, you don't need to do that. That's the whole point of having such tool :)

Pdebthing doesn't have a log, but it does have a file named "failed.txt" that contains the names of packages it failed to download.
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]

ocpaul20
Posts: 260
Joined: Thu 31 Jan 2008, 08:00
Location: PRC

#27 Post by ocpaul20 »

Remember, dependencies are handled automatically. You do not need to specify them, Pdebthing will detect them for you. Just put the names of the packages you want, Pdebthing will take care of the rest.
Ahh, so when you say this, you really mean put the name of the executable in 'packages' file. I see. Yes, that makes a lot more sense, thanks. It may be worthwhile changing this on the first post to make it perfectly clear to thickos like me ! :-)

I will post the issues that came up with xchm in another thread, since they are to with that and not Pdebthing.

So as a side issue (which is unnecessary now) and just for information, how do we determine the name of the package from the dependency lists given by ldd ?

User avatar
Iguleder
Posts: 2026
Joined: Tue 11 Aug 2009, 09:36
Location: Israel, somewhere in the beautiful desert
Contact:

#28 Post by Iguleder »

This isn't rocket science, I just go to packages.debian.org and search by package contents. That gives you package names according to their contents.

Usually if you see "liblol.so.9" and "librofl.so.0.0.0.0.0.1", it's librofl and liblol (just an example), but sometimes the Debian folks add numbers to the package name (for example, liblol9) so you need to search.
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]

ocpaul20
Posts: 260
Joined: Thu 31 Jan 2008, 08:00
Location: PRC

#29 Post by ocpaul20 »

Ok, thanks for your help.

stu90

#30 Post by stu90 »

Thanks for update to 005 Iguleder - i haven't made any pets for a while, will have a go later tonight when i have some more internet bandwidth 8)

cheers.

User avatar
kazzamozz
Posts: 70
Joined: Sat 25 Jul 2009, 09:09
Location: Melbourne, Australia
Contact:

Pdebthing DEB downloader and packager 005

#31 Post by kazzamozz »

Hi there
just found this thread, as puppy forum is sooooo big now. Wow it looks fabulous it seems there haven't been any posts for a long time what a pity.
I think what you achieved here is what others like myself have been after for a long time.
Great to be able to get a full working application with everything that is required without having to muck around trying to work out what's missing all the time.

Anyway Bouquets to you and hope this is not a project that has come to an end due to no support.

Cheers
KazzaMozz

User avatar
mikeslr
Posts: 3890
Joined: Mon 16 Jun 2008, 21:20
Location: 500 seconds from Sol

Alternative to pdebthing

#32 Post by mikeslr »

For those interested, Iguleder went on to develop roar-ng, http://murga-linux.com/puppy/viewtopic.php?t=75753.
Amigo, starting earlier, and originally limiting his interest to development using only T2 binaries, developed src2pkg-2.7, http://murga-linux.com/puppy/viewtopic.php?t=76050. Src2pkg-2.7 is still in active development, and can "create packages from source code or other content. It can create packages for Slackware, KISS Linux, *.rpm packages, *.deb packages, *.taz packages for slitaz and *.pet packages for Puppy (new-style or old-style)."

mikesLr

User avatar
Uten
Posts: 129
Joined: Tue 29 Jan 2008, 11:00

#33 Post by Uten »

I know, this is an really old thread. But this tool is just to good to be buried and forgotten.
This is the steps I had to go through to make it work with tahr.

Unpack pdebthing to a folder of your choice. I found that it should live in a folder on a disk with some capacity as it does not delete downloaded deb's but rather store them in a folder called packages. So some space is required.

1: Remember to load the devx.
2: initiate cpan by issuing the command cpan in a terminal
3: Install Switch with cpan (inside cpan issue the command: install Switch ) or in the terminal: perl -MCPAN -e 'install Switch'
4: Configure ./config/preferences. Mine looks like this:

Code: Select all

# the Debian version the packages are built for
distroVersion="trusty"

repositories="http://archive.ubuntu.com/ubuntu"

sections="main universe multiverse restricted"

# the package architecture (i386/amd64)
arch="i386"

# download all packages (true) or just those that don't come with Puppy (false, the default)?
downloadInstalled="false"
5: Run ./0setup. If somethings goes wrong you will get a file failed.txt in the folder. Check it. Make adjustments to ./config/preferences. remove *.txt and re-run.
6: Figure out the packages you want to use. This can easily be done with the command

Code: Select all

grep 'package: vim-' ./repo/database
. Replace vim- with what ever your looking for.
7: Add you package list to ./config/packages
8: Run ./1download
9: Run ./2prepkg
10: Make your own custom configuration in ./sfs/stuff. Ex: add desktop files, pinstall.sh or anything
11: sun dir2sfs or dir2pet

Thanks to iguleder for making this tool :)

oui

#34 Post by oui »

respect!

this puplet

http://www.murga-linux.com/puppy/viewto ... 777#842777

is crying for your adaptation!

User avatar
Hotdog
Posts: 134
Joined: Fri 30 Sep 2011, 03:15
Location: Georgia USA

#35 Post by Hotdog »

Uten said a few months ago that this utility is too important to let die. Has anyone successfully used it lately? It may need a little tune-up to keep it compatible with the Debian repositories.
[i]Puppy 5.2.8.7, Full Install[/i]

Post Reply