Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The time now is Sun 17 Nov 2019, 00:17
All times are UTC - 4
 Forum index » House Training » Users ( For the regulars )
Missing Library Symlinks with new2dir
Moderators: Flash, Ian, JohnMurga
Post new topic   Reply to topic View previous topic :: View next topic
Page 1 of 1 [15 Posts]  
Author Message
OscarTalks


Joined: 05 Feb 2012
Posts: 2030
Location: London, England

PostPosted: Fri 04 Oct 2019, 07:16    Post subject:  Missing Library Symlinks with new2dir
Subject description: Issue has arisen in recent Puppy builds
 

When compiling and installing and creating a .pet package I am finding this problem with newer Puppies such as BionicPup32, ScPup32 and BusterPup (32bit).

Although the full set of dynamic libraries (including the symlinks) are installed into the system, the symlinks are NOT copied into the new directory tree. This means that they will be missing from the .pet package unless you are aware and add them manually.

Are others experiencing this or just me?
Does anyone have an idea of where to look for a fix?

As an example, see below the images of libraries when installing libwavpack.
Compare DpupStretch with BionicPup32
Using configure; make; new2dir make install
Note the missing symlinks in the "new dir" in BionicPup32
newdir-bionic.jpg
 Description   MISSING SYMLINKS from the new directory tree which is supposed to be used to create the package.
 Filesize   25.88 KB
 Viewed   218 Time(s)

newdir-bionic.jpg

newdir-stretch.jpg
 Description   Everything is as it should be in my Stretch remaster and other Puppies before it.
 Filesize   36.79 KB
 Viewed   220 Time(s)

newdir-stretch.jpg

system-bionic.jpg
 Description   The symlinks are installed correctly in System, just not picked up by new2dir any more
 Filesize   87.08 KB
 Viewed   220 Time(s)

system-bionic.jpg

system-stretch.jpg
 Description   All fine in System in Stretch too
 Filesize   111.26 KB
 Viewed   221 Time(s)

system-stretch.jpg


_________________
Oscar in England

Back to top
View user's profile Send private message 
watchdog

Joined: 28 Sep 2012
Posts: 1928
Location: Italy

PostPosted: Fri 04 Oct 2019, 08:03    Post subject:  

I beg your pardon for my ignorance. I have noticed that slackware packages have install scripts which create those symlinks. So I ask: is it a new2dir's issue or a dir2pet's issue?
Back to top
View user's profile Send private message 
OscarTalks


Joined: 05 Feb 2012
Posts: 2030
Location: London, England

PostPosted: Fri 04 Oct 2019, 08:59    Post subject:  

Hello watchdog,

I am observing the missing symlinks in the new directory tree after running new2dir make install, before running dir2pet, so this is a change of behaviour of new2dir I think, although maybe the new2dir script itself is not the issue, perhaps some function that new2dir is calling? This is just using autotools, GNU make, gcc and Puppy scripts to compile from source, not involving any Slackware scripts. I have tried a few substitutions but no success yet.

_________________
Oscar in England

Back to top
View user's profile Send private message 
watchdog

Joined: 28 Sep 2012
Posts: 1928
Location: Italy

PostPosted: Fri 04 Oct 2019, 09:53    Post subject:  

I have googled and I have understood that symlinks are a product of the make file. The needed symlinks must be created at the packaging of the software stage if they are not already created. Slackware txz packages have a doinstall script for this. Debian packages already have the symlinks in the right dirs so they are only copied at the installing time. I think that all depends on the source of software you are compiling. A source file for debian is different from a source file for slackware. So I have understood.
Back to top
View user's profile Send private message 
OscarTalks


Joined: 05 Feb 2012
Posts: 2030
Location: London, England

PostPosted: Fri 04 Oct 2019, 12:04    Post subject:  

The origin of the symlinks probably is in the Makefile and they are being created and installed in the system correctly by "make install"

The new2dir script is a BK Puppy-specific script and what it should do (using installwatch I think) is monitor and observe all files and directories installed by "make install" and then make copies of all of them within the new directory tree which can then be used to create the .pet package.

All I am doing is following the standard Puppy steps for compiling (most are generic in fact). It all works as it has done for years and through several Puppies, but now if I try to repeat the exact same steps in a very new Puppy the symlinks are missing from the new dir. It is the switch to a very recent WoofCE build that is introducing the problem.

In the past, new2dir observed that these symlinks were being installed, now new2dir appears to be failing to make this observation and I don't know why.

There is this section of code in new2dir:-
Code:
sync
#pick up created symlinks...
cat /tmp/pkginstall.list | grep '#success$' | tr -s '\t' | tr '&' ' ' | tr '\t' '&' | grep '^0&symlink&' | grep --extended-regexp -v '&/dev/tty&|&/dev/null&|&/root/\.packages/|&/tmp/|&/root/\.icewm/|&/proc/|&/sys/|DotPupTmpDir|/\.myownmenuerc' | grep -E -v '&/initrd|&/mnt/' | cut -f 4 -d '&' >> ${RELPATH}/${EXE_PKGNAME}.files
which may have some connection, not sure.
_________________
Oscar in England

Back to top
View user's profile Send private message 
watchdog

Joined: 28 Sep 2012
Posts: 1928
Location: Italy

PostPosted: Sat 05 Oct 2019, 00:49    Post subject:  

I can confirm the bug. I have compiled WavPack-git2019 in stretch: "new2dir make install" makes the symlinks. Then I have compiled the same source in ScPup 19.09+3: "new2dir make install" does not make the symlinks. I tried to install installwatch from stretch: same result.
Back to top
View user's profile Send private message 
peebee


Joined: 21 Sep 2008
Posts: 4047
Location: Worcestershire, UK

PostPosted: Sat 05 Oct 2019, 02:07    Post subject:  

Github Woof-CE history shows there haven't been any changes to new2dir itself since Sept 2018.....

https://github.com/puppylinux-woof-CE/woof-CE/commits/681325908b8197d88e07e5dc8daaf97011412a37/woof-code/rootfs-skeleton/usr/bin/new2dir

_________________
LxPup = Puppy + LXDE
Main version used daily: LxPupSc; Assembler of UPups, ScPup & ScPup64, LxPup, LxPupSc & LxPupSc64
Back to top
View user's profile Send private message Visit poster's website 
watchdog

Joined: 28 Sep 2012
Posts: 1928
Location: Italy

PostPosted: Sat 05 Oct 2019, 05:04    Post subject:  

I have found:

https://bug-coreutils.gnu.narkive.com/y4XQhDnm/coreutils-8-x-causes-installwatch-to-not-track-symlinks

In ScPup 19.09+3 reverting to coreutils from slackware 14.2 the problem is solved.
Back to top
View user's profile Send private message 
peebee


Joined: 21 Sep 2008
Posts: 4047
Location: Worcestershire, UK

PostPosted: Mon 07 Oct 2019, 02:09    Post subject:  

watchdog wrote:
I have found:

https://bug-coreutils.gnu.narkive.com/y4XQhDnm/coreutils-8-x-causes-installwatch-to-not-track-symlinks

In ScPup 19.09+3 reverting to coreutils from slackware 14.2 the problem is solved.

That bug report is 10 years old!!!!

_________________
LxPup = Puppy + LXDE
Main version used daily: LxPupSc; Assembler of UPups, ScPup & ScPup64, LxPup, LxPupSc & LxPupSc64
Back to top
View user's profile Send private message Visit poster's website 
watchdog

Joined: 28 Sep 2012
Posts: 1928
Location: Italy

PostPosted: Mon 07 Oct 2019, 02:48    Post subject:  

I repeat:

reverting to coreutils from slackware 14.2 the problem is solved in ScPup 19.09+3. I haven't done more tests. When compiling I have to install a coreutils compatible with installwatch in a dedicated savefile. The bug reported by OscarTalks is true. I have tried to compile installwatch-0.7.0beta7 from:

https://github.com/lunar-linux/installwatch

But no success.
Back to top
View user's profile Send private message 
peebee


Joined: 21 Sep 2008
Posts: 4047
Location: Worcestershire, UK

PostPosted: Mon 04 Nov 2019, 11:34    Post subject:  

We don't seem to have gotten anywhere with this..... I did report it and the discussion was:

http://wmsgs.boards.net/thread/27/coreutils-causes-installwatch-track-symlinks?page=1

_________________
LxPup = Puppy + LXDE
Main version used daily: LxPupSc; Assembler of UPups, ScPup & ScPup64, LxPup, LxPupSc & LxPupSc64
Back to top
View user's profile Send private message Visit poster's website 
Dry Falls

Joined: 16 Dec 2014
Posts: 596
Location: Upper Columbia

PostPosted: Mon 04 Nov 2019, 13:37    Post subject:  

Quote:
I repeat:

reverting to coreutils from slackware 14.2 the problem is solved in ScPup 19.09+3. I haven't done more tests. When compiling I have to install a coreutils compatible with installwatch in a dedicated savefile. The bug reported by OscarTalks is true. I have tried to compile installwatch-0.7.0beta7 from:

https://github.com/lunar-linux/installwatch

But no success.
I compiled the same installwatch under Lighthouse (slackware64-current and same source) and, although it compiled fine, the script was no good. I slipped in the installwatch script from slacko64-700 to /usr/local/bin/installwatch and the old (jemimah 2012-13) new2dir works fine. This is with the new/current core-utils.

df
Back to top
View user's profile Send private message 
BarryK
Puppy Master


Joined: 09 May 2005
Posts: 9068
Location: Perth, Western Australia

PostPosted: Mon 04 Nov 2019, 13:41    Post subject:  

The problem of missing symlinks is ancient history, you should not be getting that problem now.

The latest versions of EasyOS, Pyro 1.2.7 and Buster 2.1.7 (latter built with Debian 10 DEBs) have installwatch 0.7.0beta7 with patches, see here:

https://github.com/bkauler/oe-qky-src/tree/master/quirky/meta-quirky/recipes-quirky/installwatch

new2dir works ok.

Note, the new2dir in EasyOS is old, last modified in 2015, and the one in woof-CE has diverged considerably.

If you want to try my installwatch, here is a binary, x86_64:

http://distro.ibiblio.org/easyos/amd64/packages/compat/oe/pyro/installwatch-0.7.0beta7-p1-r0-nocona-64.tar.xz

i686 binary:

http://distro.ibiblio.org/easyos/x86/packages/compat/oe/pyro/installwatch-0.7.0beta7-p1-r0-i686.tar.xz

_________________
http://bkhome.org/news/
Back to top
View user's profile Send private message Visit poster's website 
BarryK
Puppy Master


Joined: 09 May 2005
Posts: 9068
Location: Perth, Western Australia

PostPosted: Mon 04 Nov 2019, 13:50    Post subject:  

Dry Falls wrote:
Quote:
I repeat:

reverting to coreutils from slackware 14.2 the problem is solved in ScPup 19.09+3. I haven't done more tests. When compiling I have to install a coreutils compatible with installwatch in a dedicated savefile. The bug reported by OscarTalks is true. I have tried to compile installwatch-0.7.0beta7 from:

https://github.com/lunar-linux/installwatch

But no success.
I compiled the same installwatch under Lighthouse (slackware64-current and same source) and, although it compiled fine, the script was no good. I slipped in the installwatch script from slacko64-700 to /usr/local/bin/installwatch and the old (jemimah 2012-13) new2dir works fine. This is with the new/current core-utils.

df


For comparison, here is the new2dir that I have in EasyOS, see attached. Remove the false .gz, set permissions to executable, and place at /usr/bin

As I mentioned, it is old, last change in 2015, but continues to work fine for me.

Not suggesting that you use it ongoing, just posting it for comparison, so you can narrow down how the symlinks are getting lost.
new2dir.gz
Description  Remove false .gz
gz

 Download 
Filename  new2dir.gz 
Filesize  16.38 KB 
Downloaded  8 Time(s) 

_________________
http://bkhome.org/news/
Back to top
View user's profile Send private message Visit poster's website 
Dry Falls

Joined: 16 Dec 2014
Posts: 596
Location: Upper Columbia

PostPosted: Mon 04 Nov 2019, 14:28    Post subject:  

Thanks Barry. This is the diff in new2dir. I see the improvement... I'm going to use it.

Code:
12a13,14
> #150111 improve dev, nls split for qt4.
> #151003 detect cpu type.
78a81,84
> #151003
> CPUHOST="$(uname -m)"
> [ "$CPUHOST" == "x86_64" ] && CPUHOST='amd64'
>
86,87c92,93
< echo "If you have compiled for a i486, just press ENTER key."
< echo "Otherwise, enter the CPU type, examples: i386 i486 i686 (the i is required)."
---
> echo "If you have compiled for a ${CPUHOST}, just press ENTER key." #151003
> echo "Otherwise, enter the CPU type, examples: i386 i486 i686 amd64"
90c96
< [ "$CPUTYPE" = "" ] && CPUTYPE="i486"
---
> [ "$CPUTYPE" = "" ] && CPUTYPE="${CPUHOST}"
242a249,255
>   #150111 qt4:
>   if [ "`echo -n "$ONEFILE" | grep '/translations/'`" != "" ];then
>    mkdir -p "${NLS_TARGETDIR}/${ONEPATH}"
>    cp -af "$ONEFILE" "${NLS_TARGETDIR}/${ONEPATH}/" 2>/dev/null
>    [ $? -ne 0 ] && fixfilelistfunc "$ONEFILE"
>    continue
>   fi
285c298,305
<   fi 
---
>   fi
>   #150111 qt4:
>   if [ "`echo -n "$ONEFILE" | grep '/mkspecs/'`" != "" ];then
>    mkdir -p "${DEV_TARGETDIR}/${ONEPATH}"
>    cp -af "$ONEFILE" "${DEV_TARGETDIR}/${ONEPATH}/" 2>/dev/null
>    [ $? -ne 0 ] && fixfilelistfunc "$ONEFILE"
>    continue
>   fi

df
installwatch.gz
Description  installwatch from slacko64 fake gz
gz

 Download 
Filename  installwatch.gz 
Filesize  1.18 KB 
Downloaded  3 Time(s) 
Back to top
View user's profile Send private message 
Display posts from previous:   Sort by:   
Page 1 of 1 [15 Posts]  
Post new topic   Reply to topic View previous topic :: View next topic
 Forum index » House Training » Users ( For the regulars )
Jump to:  

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
[ Time: 0.1157s ][ Queries: 13 (0.0172s) ][ GZIP on ]