The time now is Sat 07 Dec 2019, 02:23
All times are UTC - 4 |
Should Puppy's package format be changed? |
Yes, without backwards compatibility. |
|
28% |
[ 11 ] |
Yes, with backwards compatibility. |
|
25% |
[ 10 ] |
No, but the PET format should be standardized/stricter. |
|
20% |
[ 8 ] |
No, the PET format works fine. |
|
25% |
[ 10 ] |
|
Total Votes : 39 |
|
Author |
Message |
2byte
Joined: 09 Oct 2006 Posts: 357
|
Posted: Wed 01 Feb 2012, 17:56 Post subject:
|
|
I knew before posting the idea would be rejected out of hand. Amigo is 100% right, although I don’t understand the point of that snide remark in the last sentence.
Jemimah
It might cripple the functionality of the installed software but it would prevent the base system from being crippled by a poorly packaged pet. I am talking about user installed software, not system upgrades. Those things you say we already have, yep. The idea doesn’t do away with those as you pointed out. As for foreign packages, I was referring to installing without fear of overwriting critical system files. Damage from running foreign software is unpreventable.
As long as the PPM blindly installs everything in a pet and blindly executes any pinstall script and then blindly removes every file that was in the pet people are going to continue to fubar their system.
If the Puppy package management isn’t broken, then don’t fix it.
No hard feelings
_________________
|
Back to top
|
|
 |
jemimah

Joined: 26 Aug 2009 Posts: 4309 Location: Tampa, FL
|
Posted: Wed 01 Feb 2012, 19:45 Post subject:
|
|
If you want to prevent overwriting system files, by far the easiest and most effective way is to mount the save file below the main sfs - as we discovered in a saluki-008 bug.
Perhaps it is better to have the user confirm system file overwrite.
It is important to understand that good package management (in the style of other distros) and read-only filesystems can be rather at odds with each other.
If you want apt-style package management, the only option is the one Sickgut concluded with - you must design the entire distro around it. You must discard Puppy entirely and start over. Anything less is doomed to failure.
|
Back to top
|
|
 |
2byte
Joined: 09 Oct 2006 Posts: 357
|
Posted: Wed 01 Feb 2012, 20:03 Post subject:
|
|
Well I'll just say this, then butt out. I have been using this sort of thing as my own package control system since Lucid was first released and it has performed very well.
Best regards to all
_________________
|
Back to top
|
|
 |
darkcity

Joined: 23 May 2010 Posts: 2549 Location: near here
|
Posted: Thu 02 Feb 2012, 06:43 Post subject:
|
|
Hi 2byte
It is possible you could upload your system to the forum so other could test it?
_________________ helping Wiki for help
|
Back to top
|
|
 |
Lobster
Official Crustacean

Joined: 04 May 2005 Posts: 15550 Location: Paradox Realm
|
Posted: Thu 02 Feb 2012, 07:17 Post subject:
|
|
If Sqlite is too complex a flatfile database that creates a text file
is available as a base
http://puppylinux.info/topic/p-data-alpha-flat-file-database
_________________ Puppy on Raspberry Pi Release Candidate
Puppy Links Page http://www.smokey01.com/bruceb/puppy.html 
|
Back to top
|
|
 |
sunburnt

Joined: 08 Jun 2005 Posts: 5087 Location: Arizona, U.S.A.
|
Posted: Thu 02 Feb 2012, 16:47 Post subject:
|
|
amigo; I myself don`t assume SFS and non-union Squash files are new.
However they don`t seem to be used much even though they have many
important improvements over the classic legacy .tar.gz type package.
Tiny Core Linux uses them very effectively, but a little oddly in my opinion.
But the manner of usage is consistent with the way the packages are setup.
To statically compile app. Squash packages by the Linux distro. it`s to be
used on would seem to be in line with what amigo is suggesting.
Static compiling solves nearly all shared library mismatches that might occur.
|
Back to top
|
|
 |
amigo
Joined: 02 Apr 2007 Posts: 2647
|
Posted: Fri 03 Feb 2012, 13:22 Post subject:
|
|
The problem with statically-linking everything is that you wind up shipping duplicates of libs and making each app much larger than necessary -unless you use binary compression which means each app winds up needing more RAM and cycles than necessary...
Anyway, simply following the natural arrangement of things, developers usually write software in a compartmented way. Just because you are trying to get a certain 'capability' working, doesn't mean you should deliver it as a single-file or single-stop-solution.
From a devs standpoint, it's much easier to maintain, bugfix or add features using a modular approach -despite the use of git, etc. Those guys are still thinking along the lines of 'stable' and experimental code, with stable being for the public consumption and experimental for the devs.
The matter of staying compatible for a useful amount of time also comes into play. If your desired program depends on somebody elses lib, then it makes sense for you to release your code where it is working against a 'release' version of those libs.
|
Back to top
|
|
 |
sunburnt

Joined: 08 Jun 2005 Posts: 5087 Location: Arizona, U.S.A.
|
Posted: Fri 03 Feb 2012, 15:25 Post subject:
|
|
amigo; Exactly!!!
Quote: | it makes sense for you to release your code where it is working against a 'release' version of those libs. |
This makes for an endless cycle of being chained to someone else`s whims.
I`m sure you know what I`m talking about... Constant changes to your app`s.
dependencies forcing you to update your app. in a never ending cycle.
I`ve had to update apps. several times because of changes made to Puppy.
If apps. are statically built, then this won`t happen nearly as much.
If a new Puppy has a different lib., your app. will probably keep working.
Yes the apps. are larger, but not by a lot, and ram`s no longer hoarded.
I have run a statistical analysis of library size verses it`s common usage.
Big common libs. would be shared, smaller non-common ones static.
First a process of sorting out the installed shared libs. is needed.
So when building apps., if the libs. not already installed then it`s static.
# Best for Barry to build many shared libs. for all of the Puppy types.
# Then app. building is easy to do without concern for building the libs.
It might be a fair assumption that Puppy has a lot of the common libs.
Not many more would be added to Puppy as shared libs. ( maybe 2x ).
This could be added to the Devx SFS file ( It has 322MB of libs. now...).
|
Back to top
|
|
 |
jpeps
Joined: 31 May 2008 Posts: 3217
|
Posted: Sat 04 Feb 2012, 19:00 Post subject:
|
|
sunburnt wrote: |
# Best for Barry to build many shared libs. for all of the Puppy types.
# Then app. building is easy to do without concern for building the libs.
It might be a fair assumption that Puppy has a lot of the common libs.
Not many more would be added to Puppy as shared libs. ( maybe 2x ).
This could be added to the Devx SFS file ( It has 322MB of libs. now...). |
In the interest of keeping things small, having a large central repository of available libs to use as needed would seem preferable.
|
Back to top
|
|
 |
sunburnt

Joined: 08 Jun 2005 Posts: 5087 Location: Arizona, U.S.A.
|
Posted: Sun 05 Feb 2012, 16:59 Post subject:
|
|
jpeps; Agreed, adding to the the Devx file may not be the best choice.
Splitting libs. to a few SFS files by usage may be the best approach.
A separate media libs. SFS file, as media is probably the biggest group.
The idea being... Libs. built by Puppy devs. for the main Puppy releases.
Then most of the Puppy variants should have no problems with the libs.
These extra lib. SFS files would make .sfs / .pet package building a snap.
And they would increase the chance of random app. binary files working.
I think some times a Debian app. binary would work, but the Debian lib. fails.
|
Back to top
|
|
 |
jpeps
Joined: 31 May 2008 Posts: 3217
|
Posted: Sun 05 Feb 2012, 18:35 Post subject:
|
|
sunburnt wrote: |
And they would increase the chance of random app. binary files working.
I think some times a Debian app. binary would work, but the Debian lib. fails. |
well...there's the issue of versions, symlinks, etc etc. Good build scripts can work for static apps like skype, for example, so there's no need to store anything. Quite often, a renamed link to a another lib is all that is needed. Then there's dependency hell...lets say for some gnome app. The question is...how much do you want to override intelligence with automation?
|
Back to top
|
|
 |
scsijon
Joined: 23 May 2007 Posts: 1535 Location: the australian mallee
|
Posted: Sun 05 Feb 2012, 22:24 Post subject:
|
|
If you want a new Package Manager it needs to be able to handle the current format else there will be problems. However there is no reason why it should not have two sections, one that handles the current format and another the new format, but the new format would be need to be flexable enough to be changed/extended, rather than replaced in the future else people will grumble and eventually go elsewhere with complaints like 'it's too hard to add apps'.
What will need doing though if it is to suceed, is either creating a repointing table for those many faithfull old apps that will remain as is, to deal with the extra and changes in structure, ir an orderly update/repackage with only the pet.specs (and maybe the packagename changed to the new format with a ref to show it's part of an old series).
I looked at OpenSuSE's packaging, as I was considering adding OpenSuSE to our available base sets and build a OpenSuSE based Puppy.
In their case they set their dependancies quite differently to most others. Dependancies can be both Packages or/and individual files, including versions.
They also use the xlm format {xlm format url missing}, which is quite an eye-opener on what can be included and what can be in it.
For example, for the opensuse package ConsoleKit-0.4.5-6.2.2.i586.rpm, (in xlm format) the pet.specs is:
Code: |
##----------------------------------------
=Pkg: ConsoleKit 0.4.5 6.2.2 i586
=Cks: SHA1 3d3c52dd2b7a1bdb8710d7771e37984f5c79d2bf
+Req:
/bin/sh
/bin/sh
/bin/sh
config(ConsoleKit) = 0.4.5-6.2.2
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1)
libc.so.6(GLIBC_2.1.2)
libc.so.6(GLIBC_2.1.3)
libc.so.6(GLIBC_2.3.4)
libc.so.6(GLIBC_2.4)
libck-connector.so.0
libdbus-1.so.3
libdbus-glib-1.so.2
libglib-2.0.so.0
libgobject-2.0.so.0
libgthread-2.0.so.0
libpam.so.0
libpam.so.0(LIBPAM_1.0)
libpam.so.0(LIBPAM_EXTENSION_1.0)
libpolkit-gobject-1.so.0
libpthread.so.0
libpthread.so.0(GLIBC_2.0)
libz.so.1
login
pam-config >= 0.22
pwdutils
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsLzma) <= 4.4.6-1
-Req:
+Prv:
config(ConsoleKit) = 0.4.5-6.2.2
libck-connector.so.0
pam_ck_connector.so
ConsoleKit = 0.4.5-6.2.2
ConsoleKit(x86-32) = 0.4.5-6.2.2
/etc/ConsoleKit
/etc/ConsoleKit/run-seat.d
/etc/ConsoleKit/run-session.d
/etc/ConsoleKit/seats.d
/etc/ConsoleKit/seats.d/00-primary.seat
/etc/dbus-1/system.d/ConsoleKit.conf
/usr/bin/ck-history
/usr/bin/ck-launch-session
/usr/bin/ck-list-sessions
/usr/sbin/ck-log-system-restart
/usr/sbin/ck-log-system-start
/usr/sbin/ck-log-system-stop
/usr/sbin/console-kit-daemon
-Prv:
=Grp: System/Daemons
=Lic: GPLv2+
=Vnd: openSUSE
=Src: ConsoleKit 0.4.5 6.2.2 src
=Tim: 1319908259
=Loc: 1 ConsoleKit-0.4.5-6.2.2.i586.rpm
=Siz: 89661 323799
|
and this is for just one package!
= are statements about the app
+ and - Req: are the file requirements boundaries (files/packages between must be already there.
+ and - Prv: is privlidge access requirements
and their are others.
As much as I would love to use it, I don't think that most puppy builders would be willing to spend that much time working on the package file for a single app, it would however fix that problem we have with multiple bases and missing dependancies though!
I might add that opensue works on requiring any dependancies installed BEFORE the new app is installed, that is one thing we should consider somehow making mandatory, as we fall down at that step. Especially as a growing number of apps are now integrating and the installs are either amending dependancy config files or their own if a dependancy is there and available.
anyway that's my initial thoughts on this topic
regards to all
|
Back to top
|
|
 |
2byte
Joined: 09 Oct 2006 Posts: 357
|
Posted: Sun 05 Feb 2012, 22:32 Post subject:
|
|
There is a lot of discussion about the current ppm. What I would like to know;
Is there anyone willing to band together and create a brand new ppm?
If we did create one, would it be incorporated into Woof-X? What criteria would it have to meet to become 'official'?
Barry, are you willing to comment about this?
darkcity wrote: | It is possible you could upload your system to the forum so other could test it? | darkcity
The 'system' I use isn't an automated utility that could be uploaded for testing. Another thing about it is it's an all or nothing sort of thing; you either use Puppy's package manager or this so called system, but you can't use both.
_________________
|
Back to top
|
|
 |
jpeps
Joined: 31 May 2008 Posts: 3217
|
Posted: Mon 06 Feb 2012, 01:57 Post subject:
|
|
scsijon wrote: |
I looked at OpenSuSE's packaging, as I was considering adding OpenSuSE to our available base sets and build a OpenSuSE based Puppy.
In their case they set their dependancies quite differently to most others. Dependancies can be both Packages or/and individual files, including versions.
|
Does that mean each and every dependency must be uploaded to a puppy repository?
|
Back to top
|
|
 |
sunburnt

Joined: 08 Jun 2005 Posts: 5087 Location: Arizona, U.S.A.
|
Posted: Mon 06 Feb 2012, 16:59 Post subject:
|
|
Doesn`t anyone see the value of not using loose files in an O.S.?
Squash files can`t get viruses ( I believe...), and don`t corrupt easily.
SFS files require almost no package management, only config. files.
They stay compressed, load to ram, and can be swapped on-the-fly.
And they can be mounted from anywhere, hd, ram, usb, lan, and web.
One of Puppy`s big strengths is it`s main SFS file holding most of the O.S.
And the devx file ( "DEVeloper eXtra", I think...) is it`s second best setup.
I suggest a few more SFS file extentions like medx ( "MEDia eXtra" ).
Having more "shared" libs. available in SFS form is a real good idea.
Have enough extra SFS lib. files covering most of the common libs.
Odd libs. are always needed, so static compile them into the apps.
An app. package builder should check shared libs. and list needed libs.
|
Back to top
|
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|