TazPup64 (pre-alpha17) - getting close to alpha quality

For talk and support relating specifically to Puppy derivatives
Message
Author
s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

#16 Post by s243a »

I added a function to create the user profiles in the build script.
https://www.pearltrees.com/s243a/add-us ... id24252575
https://pastebin.com/8Q3hn8qR

The build script will only create the user profiles if the variable $users is defined. I added a file called "defaults" to put such settings in so that one doesn't have to keep clicking through the dialog windows every-time that someone runs the script.

My configuration file has the following:

Code: Select all

users='tux,root,spot:jwm
The default window manager is slim but I thought I would try creating a user called spot that has the window manager jwm.

In this script the window managers are configured with the code:

Code: Select all

    if [ $WINDOW_MANAGER = "jwm" ]; then   
      usr_home=`su -c "echo $HOME" $USER` 
      ( export HOME=$usr_home; fixmenus ) #TODO update fixmenus so that it only updates files for a single user. 
    else
      su -c "sh tazbox mkmenu" $USER # 
    fi      
one issue I have is that the fixmenus script updates the settings for all users rather than just the home directory that I specify.

s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

#17 Post by s243a »

I noticed that when I copped the therme packages: from WoofCE that I was missing the folder:

Code: Select all

/root/.jwm
I figured out that this folder is created by the post install script:

woof-CE/woof-code/rootfs-packages/ptheme/pinstall.sh

I ran this script in my chroot environment, now I'll try rebuilding the ISO to see what happens :)

p.s. another issue I had was that the full version of ps is required to avoid errors on shutdown. To fix this issue I copied the following two files from slaco6.9.9

Code: Select all

/bin/ps
/bin/ps-FULL
the first file is a script that selects the full version of ps if available and otherwise links to busybox. I had to copy this file from slaco64.6.9.9.9 because the procps package in the next64 branch was causing segmentation faults.

s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

#18 Post by s243a »

As noted above, I was having trouble with slim so I wrote a script to install the jwm files from woof-CE
https://pastebin.com/xWxfLYez
(see function: add_puppy_jwm_files() )

I also think the version of lxpanel available on the repo is causing segmentation faults. I'm going to replace it with the one from slackware64-14-2-extra repo. Some packages depend on lxpanel such as lxde and lxde-extra. I'll be replacing these also. However, I notice that the slackware repo has more lxde packages so I have to decide which ones I want.

On another note, I was having trouble with ssl certificates so I added the package:

ca-certificates-20181210-noarch-1_slack14.2.txz.tazpkg

and than ran the script:

Code: Select all

/usr/sbin/update-ca-certificates
hopefully this script will address the certificate issues.

s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

#19 Post by s243a »

Some changes in the coming release:
- Replaced 32 bit version of /usr/local/pup_event_pup_event_frontent_d with the 64bit version
(I copied this from my slacko64-6.9.9.9 system.

Code: Select all

# grep -rn -e 'jwm-xdgmenu'
builtin_files/xdg_puppy_jwm:4: jwm-xdgmenu
- replaced 32 bit version of /usr/local/bin/jwm-xdgmenu with 64 bit version.
- symbolically linked roxfiler to rox-filer

Code: Select all

cd /usr/local/bin
ln -s rox-filer roxfiler
made sure that I exported CURRENTWM=jwm in my startx_jwm script.
https://pastebin.com/dYGEnHvC
which calls a slightly modified version of ~/.xinitrc called ~/.xinitrc_puppy
https://pastebin.com/9F176njn
(I think I only commented out one line)
I copied the following folder over form slacko64-6.9.9.9

Code: Select all

/usr/local/lib/X11/pixmaps
I can't figure out what package it is from.

Code: Select all

# grep -nr . -e '/usr/local/lib/X11/pixmaps'
./Iron-69.0.3600.0-amd64.files:40:/usr/local/lib/X11/pixmaps/
./Iron-69.0.3600.0-amd64.files:41:/usr/local/lib/X11/pixmaps/up_down.png
./builtin_files/wcpufreq:5:/usr/local/lib/X11/pixmaps
**this might have not been necessary

on another note, when I try to start jwm I get the following error:

Code: Select all

/bin/sh: xdg_autostart.sh: command not found
I"m not sure where I would find xdg_autostart

One more thing. I made the following symbolic link:

Code: Select all

cd /usr/share/fox-filer
ln -s ROX-Filer rox-filer
I also installed "icewm-xdgmenu"

which gave me two dependencies
"gnome-menus"
"icewm"

I forget the error that made me decide to try this.

s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

#20 Post by s243a »

Some more notes:

Code: Select all

# Copy /sbin/losetup-FULL from slacko64-6.9.9.9
gtkwidget.x:9993: widget class 'GtkProgressBar' has no property named 'through-under-steppers'
#Copy /usr/local/apps/ROX-Filer from slacko64-6.9.9.9
#Copy /etc/xdg/lxsession ~/.config/lxsession #Shouldn't be necessary
#Copy /etc/xdg/lxpanel ~/.config/lxpanel #Shouldn't be necessary
#Copy /etc/xdg/templates ~/Templates #Shouldn't be necessary
Midori isn't working for me but firefox is. I fixed the tsl issue by installing some tsl libraries.

I'm able to get lxpanel working on jwm but not on lxde. That said I fixed all the errors that I saw in the run.log for lxde (not counting locale errors). and the above GTK progress error.

I will try to upload something soon to capture these changes and hopfully correctly incorporate them into the build system.

s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

#21 Post by s243a »

I've given up for now trying to get lxpanel to work and have instead replaced it with tint2:
https://lubuntucast.wordpress.com/2012/ ... ternative/
https://docs.google.com/document/d/1Dm7 ... sxHUw/edit

Tint2 doesn't provided a nested menu but in theory you can make up for that with openbox menus that show up when you right click on the desktop. There is some info abou this on archwiki:
https://wiki.archlinux.org/index.php/tint2#Openbox
https://wiki.archlinux.org/index.php/Openbox#Menus
I tried updating the menus via obconfig but I couldn't figure out how to update the menus once the XML was changed.

s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

#22 Post by s243a »

I merged the savefile that I was working with the base sfs into a folder with the base sfs that created from a modified version of mistfire;s script (will post later).

The script to merge the files that I used can be found at:
https://pastebin.com/pvSANipi
and the related thread
http://www.murga-linux.com/puppy/viewtopic.php?t=115640

The sfs and save file were merged into a folder.

I was able to mount the folder that contained the merged files using the script:
mount_rootfs
https://pastebin.com/QxgzEqR8

In the chroot environment I could start firefox with:

Code: Select all

/opt/mozilla/firefox/firefox
Once I opened firefox I cleared all the private data.

To open tazpanel on first has to start the httpd server (part of busybox):

Code: Select all

httpd -p 82 u root -c /etc/slitaz/httpd.conf
#See related readme: /var/www/tazpanel/README
tazpanel
From here I can open up the WiFi contifuration file and edit to remove private info. Or perhaps I could just delete it. The path is:

Code: Select all

/etc/network-config/wlan0.conf
For some reason on my merged system I was have some mysterious errors with commands tied to busybox. I solved this problem by replacing busybox with the static version. I downloaded the deb from here
https://packages.debian.org/sid/amd64/b ... c/download
used busybox to extract the deb, and then copied the file /bin/busybox into my merged system.

Regarding other personal info, one would want to delete the bash command history (~/.bash_history) before building an iso. I'll check to see if mistfire's scripts do this and what personal info is removed in BarryK's remaster scripts.
Last edited by s243a on Wed 13 Mar 2019, 09:47, edited 1 time in total.

s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

#23 Post by s243a »


s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

#24 Post by s243a »

On the first ISO, I'm going to include a bunch of themes and icons, mostly because I don't know what is necessary. Here is what I'll be including:

Code: Select all

hicolor-icon-theme      0.17              misc
openbox-themes          3.6.1             customiz
slim-theme-default      1.3.6             customization
slitaz-themes           312               customization
hicolor-icon-theme      0.17              misc
slitaz-icons-faenza     1.3.1             customization
slitaz-icons-faenza-dark1.3.1             customization
slitaz-tango-icon       1.7               misc
clearlooks-colors       2.22              customization
clearlooks-compact      1.5               customization
gtk-clearlooks          2.20.2            x-window
It will also let me learn how to change the themes and see what they look like. In the tapup build kit there is a function to update the various operating system databases (e.g. icon cache). I don't quite understand this process but I did notice that the function "gtk-update-icon-cache" works well when there is a file in the folder called "index.theme". I modified the build kit to update the icon cache in any folder where such a file exists. I don't know if this is a good idea or not.

Code: Select all

update_icon_caches(){
   trap update_system_database_cleanup EXIT SIGKILL SIGTERM
   mkdir -p "$update_icon_caches_fd_path"
   exec 11<> "$update_icon_caches_fd_path"fd_11
   while IFS=$'\0' read  -r -d $'\0' -u11 theme_index_path_prefixed ; do
     theme_index_path=`dirname "${theme_index_path_prefixed#$curdir/slitaz-rootfs$prefix}"`
     chroot "$curdir/slitaz-rootfs$prefix/" /usr/bin/gtk-update-icon-cache "$theme_index_path"
   done 11< <( find "$curdir/slitaz-rootfs$prefix/" -type f -name 'index.theme' -print0 ) #https://blog.famzah.net/2016/10/20/bash-process-null-terminated-results-piped-from-external-commands/
      exec 11>&-
}
Full Script:
https://pastebin.com/AXF7XNci

Related to themes I added currly braces and a trailing semicolin for functions within the file:
/usr/bin/slim-theme

Code: Select all

get_current() {	awk '/current_theme/ { print $2 }' $CONF ; } #Braces and trailing ";" added by s243a
get_prev()	  {	awk '/previous_theme/ { print $2 }' $CONF ; } #Braces and trailing ";" added by s243a
set_current() {	sed -i 's|^current_theme .*$|current_theme '$1'|' $CONF ; } #Braces and trailing ";" added by s243a
Full Code: https://pastebin.com/47Yy2LAA

The themes can be changed from within the various desktops but there are also related settings in:

Code: Select all

/etc/slim.conf

I need to do some searches to see where some of the settings withing /etc/slim.conf" come from. Examples of such searches such are:

Code: Select all

grep -nr . -e '%session'
grep -nr . -e 'current_theme'
The session "field code" (i.e. %session -- see previous post) seem to be the window manager that is being used. In the case of lxde the window manager is associated with a dbus session but I don't think this is generally true. Actually if you look in for instance within the file /etc/slitaz/applications.conf:

Code: Select all

# Window manager.
WINDOW_MANAGER="lxde-session"
(**applications.conf noted in a previous post)
we see the the window manager actually has "session" in it's name.

Also within this file (i.e. /etc/slitaz.conf )is the command that is executed once there is a successful login by slim:

Code: Select all

# This command is executed after a succesful login.
# you can place the %session and %theme variables
# to handle launching of specific commands in .xinitrc
# depending of chosen session and slim theme
##...
login_cmd           exec /bin/sh -l ~/.xinitrc %session
If you look that the ~/.xinitrc script supplied by the package slitaz-configs we see that the window manager (AKA %session) is the first input argument to the script, which is what we would expect based on the comments about the field code "%xsession" given within /etc/slitaz.conf

Code: Select all

# ~/.xinitrc: Executed by Slim/LXDM login manager to startx X session.
# You can use F1 with Slim to change your window manager or configure
# it permanently with your personal applications.conf file.
#
. /etc/slitaz/applications.conf

[ "$1" ] && WINDOW_MANAGER="$1"

EXEC="exec dbus-launch --sh-syntax --exit-with-session"
S="/tmp/X-output" #	http://root:root@tazpanel:82/boot.cgi?log#slim

LOG=2;	case "$LOG" in
	0) X="/dev/null"; echo WM_stdout '>' $X in $HOME/.xinitrc >$S ;W=$X ;;
	1) X=$S ; W=$X ; rm -f $W ;;
	2) X=$S ; W="$HOME/.wm_debug+warnings" ; rm -f $W $X ;;
esac

case "$WINDOW_MANAGER" in
	openbox|lxde*|lxqt*|xfce4|compiz|karmen|dwm|fluxbox*)
		$EXEC ${WINDOW_MANAGER%-session}-session ;;
	razor*)
		$EXEC razor-session ;;
	enlightenment)
		$EXEC enlightenment_start ;;
	*)
		$EXEC $WINDOW_MANAGER ;;
esac	2>>$W >>$X
In normal stat-up the dbus session and Xorg are started up before .xinitrc is called.

See line 439 of /etc/init.d/rcS #First function called by busybox init

Code: Select all

if [ "$(pidof dbus-daemon)" == "" ]; then
  /etc/init.d/dbus start
  sleep 2
fi
**Started earlier (line #404 if hald is running)
Otherwise (someone boots with the screen=text option) there are a few functions one can try to start the window manager. These include
startx
startlxde
~/.xsessionOn the first ISO, I'm going to include a bunch of themes and icons, mostly because I don't know what is necessary. Here is what I'll be including:

Code: Select all

hicolor-icon-theme      0.17              misc
openbox-themes          3.6.1             customiz
slim-theme-default      1.3.6             customization
slitaz-themes           312               customization
hicolor-icon-theme      0.17              misc
slitaz-icons-faenza     1.3.1             customization
slitaz-icons-faenza-dark1.3.1             customization
It will also let me learn how to change the themes and see what they look like. In the tapup build kit there is a function to update the various operating system databases (e.g. icon cache). I don't quite understand this process but I did notice that the function "gtk-update-icon-cache" works well when there is a file in the folder called "index.theme". I modified the build kit to update the icon cache in any folder where such a file exists. I don't know if this is a good idea or not.

Code: Select all

update_icon_caches(){
   trap update_system_database_cleanup EXIT SIGKILL SIGTERM
   mkdir -p "$update_icon_caches_fd_path"
   exec 11<> "$update_icon_caches_fd_path"fd_11
   while IFS=$'\0' read  -r -d $'\0' -u11 theme_index_path_prefixed ; do
     theme_index_path=`dirname "${theme_index_path_prefixed#$curdir/slitaz-rootfs$prefix}"`
     chroot "$curdir/slitaz-rootfs$prefix/" /usr/bin/gtk-update-icon-cache "$theme_index_path"
   done 11< <( find "$curdir/slitaz-rootfs$prefix/" -type f -name 'index.theme' -print0 ) #https://blog.famzah.net/2016/10/20/bash-process-null-terminated-results-piped-from-external-commands/
      exec 11>&-
}
Full Script:
https://pastebin.com/AXF7XNci

Related to themes I added currly braces and a trailing semicolin for functions within the file:
/usr/bin/slim-theme

Code: Select all

get_current() {	awk '/current_theme/ { print $2 }' $CONF ; } #Braces and trailing ";" added by s243a
get_prev()	  {	awk '/previous_theme/ { print $2 }' $CONF ; } #Braces and trailing ";" added by s243a
set_current() {	sed -i 's|^current_theme .*$|current_theme '$1'|' $CONF ; } #Braces and trailing ";" added by s243a
Full Code: https://pastebin.com/47Yy2LAA

The themes can be changed from within the various desktops but there are also related settings in:

Code: Select all

/etc/slim.conf

I need to do some searches to see where some of the settings withing /etc/slim.conf" come from. Examples of such searches such are:

Code: Select all

grep -nr . -e '%session'
grep -nr . -e 'current_theme'
The session "field code" (i.e. %session -- see previous post) seem to be the window manager that is being used. In the case of lxde the window manager is associated with a dbus session but I don't think this is generally true. Actually if you look in for instance within the file /etc/slitaz/applications.conf:

Code: Select all

# Window manager.
WINDOW_MANAGER="lxde-session"
(**applications.conf noted in a previous post)
we see the the window manager actually has "session" in it's name.

Also within this file (i.e. /etc/slitaz.conf )is the command that is executed once there is a successful login by slim:

Code: Select all

# This command is executed after a succesful login.
# you can place the %session and %theme variables
# to handle launching of specific commands in .xinitrc
# depending of chosen session and slim theme
##...
login_cmd           exec /bin/sh -l ~/.xinitrc %session
If you look that the ~/.xinitrc script supplied by the package slitaz-configs we see that the window manager (AKA %session) is the first input argument to the script, which is what we would expect based on the comments about the field code "%xsession" given within /etc/slitaz.conf

Code: Select all

# ~/.xinitrc: Executed by Slim/LXDM login manager to startx X session.
# You can use F1 with Slim to change your window manager or configure
# it permanently with your personal applications.conf file.
#
. /etc/slitaz/applications.conf

[ "$1" ] && WINDOW_MANAGER="$1"

EXEC="exec dbus-launch --sh-syntax --exit-with-session"
S="/tmp/X-output" #	http://root:root@tazpanel:82/boot.cgi?log#slim

LOG=2;	case "$LOG" in
	0) X="/dev/null"; echo WM_stdout '>' $X in $HOME/.xinitrc >$S ;W=$X ;;
	1) X=$S ; W=$X ; rm -f $W ;;
	2) X=$S ; W="$HOME/.wm_debug+warnings" ; rm -f $W $X ;;
esac

case "$WINDOW_MANAGER" in
	openbox|lxde*|lxqt*|xfce4|compiz|karmen|dwm|fluxbox*)
		$EXEC ${WINDOW_MANAGER%-session}-session ;;
	razor*)
		$EXEC razor-session ;;
	enlightenment)
		$EXEC enlightenment_start ;;
	*)
		$EXEC $WINDOW_MANAGER ;;
esac	2>>$W >>$X
In normal stat-up the dbus session and Xorg are started up before .xinitrc is called.

See line 439 of /etc/init.d/rcS (First function called by busybox init) for the dbus start-up

Code: Select all

if [ "$(pidof dbus-daemon)" == "" ]; then
  /etc/init.d/dbus start
  sleep 2
fi
**Started earlier (line #404 if hald is running)

but I think the actual dbus session (and also Xorg) is started by slim.

Otherwise (someone boots with the screen=text option) there are a few functions one can try to start the window manager (not in this case I think that consolekit is required). These include
startx
startlxde
~/.xsession

I also created my own varients:
/usr/bin/startx_jwm

Code: Select all

#!/bin/sh
#
# Start X session on SliTaz GNU/Linux.
#

if [ ! -f "$HOME/.xsession" ]; then
  tazx
fi
export CURRENTWM=jwm
Xorg &
#rox &
exec ~/.xinitrc_puppy
which calls a modified version of the .xinitrc script from puppylinux called ~/.xinitrc_puppy (I think I just commented out one line. Also note the XResource mergings currently don't work).

and my other varient is "~/.xsession_lxde"

Code: Select all

# ~/.xsession: Start X window session manually on your system (startx).
#
. /etc/slitaz/applications.conf
Xorg &
ck-launch-session dbus-launch --exit-with-session startlxde
** I think that the function ck-launch-session is from console kit
Last edited by s243a on Thu 14 Mar 2019, 08:23, edited 1 time in total.

s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

#25 Post by s243a »

TODO. I need to update the autostart files to start tint2 (or mabye lxpanelx) instead of lxpanel.

A quick search finds it in the following locations:

Code: Select all

# find . -name 'autostart'
./etc/skel/.config/autostart
./etc/xdg/lxsession/LXDE/autostart
./etc/xdg/autostart
./etc/xdg/openbox/autostart
find: `./proc/9701/task/9701/net': Invalid argument
find: `./proc/9701/net': Invalid argument
./home/tux/.config/autostart
./home/spot/.config/autostart
I'll manually update it for now but I need to think about how I want to incorporate it into the build kit.

s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

Re: TazPup64 (pre-alpha)- Working on Xorg & WIndow Manager Issue

#26 Post by s243a »

The following info from the first post will be deleted. This post is for record purposes.
s243a wrote:I thought that it would be good to have a second thread for the 64bit version of TazPup. I used mistfire's build kit to build a 64 bit version of the iso:
https://www.dropbox.com/s/7whjup0cpoi2c ... 8.iso?dl=0
**This turned out to produce an iso with a 64bit kernal but 32 bit packages. It worked but wasn't what was desired.

Notes on Trial 1 - 64bit kernal w/ 32bit packages

I combined, slitaz-rolling-core64.iso (located here) w/ bionicpup64-8.0.iso (was located here) using the online build kit. I think that most of what is built is from the slitaz iso and that the puppy iso is only for the kernal and initrd but mistfire can verify.

This thread may be locked if mistfire wants to open her own thread for the 64 bit version of tazpup. I haven't tested the iso per say. Instead I just copied the files within the iso to my hard drive and booted from those files. Everything seems to be working so far. I was able to connect to the internet and install packages.

I'll do some sanity checks like checking the elf types of the libs. I noticed that I don't see a lib64 folder. I wonder why...

Trial Two see link to post below
Continued on Post #6 of this thread:
http://murga-linux.com/puppy/viewtopic. ... 68#1019568

Trial Three - boots into 64bit system but slim doesn't load
Continued on Post #11 of this thread:
http://murga-linux.com/puppy/viewtopic. ... 07#1019807
I have a semi working iso
https://www.dropbox.com/s/sywi28v38esbx ... 5.iso?dl=0
323.4 MiB (There is a lot that I can trim out)

I tested booting from the files in the iso (not the iso its-self). I booted with boot option screen=text

To start jwm type:

Code: Select all

startx_jwm
To start lxde type:

Code: Select all

root/.xsession_lxde
Withing jwm:
1. The file manager and terminal emulator work in the top panel (but not in the "bottom panel" (or desktop menu) `due to field code issues.
2. Firefox works in the bottom panel

To configure internet in the menu go to:
system -> system -> SliTaz Panel

and then go to the network tab. You can manually type in the information here. The process is a bit awkward. There is an easier too to get it to work that I haven't tested yet.

So anyway, it's a start. I still recommend that people wait before trying it though.

s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

Re: TazPup64 (pre-alpha6) - Working but Testers not needed yet

#27 Post by s243a »

From the current 1st post (in the thread):
s243a wrote:New ISO available (17 Mar 2019 :
TazPup64-PreAlpha-6.iso (324.5MB)

The ISO works for me and my computer is running much faster with this ISO than with Slack64-6.9.9.9. However, it is still very raw so I will likely be aware of most reported issues.

However, there are two things that I need help with (although I'll try to figure them out on my own). The big one is fixing the XDG field code issue. My work around was to modify the desktop file of pcmanfm and change "%U" to "~" in the execute command. pcmanfm isn't really needed at this point though because I am working with jwm and rox

However, I'm also trying to get lxde to work since I think that is what mistfire's TazPup uses. When the system is more mature, I will create one or more slimmer versions that only have one of these two window manager installed.

The other issue, which I need help with, is that for some reason the menus are double nested (e.g. utilities->utilities. I would like to put the most important applications in the first level of nesting and the other applications nested deeper in the menus. I think I have to dig into the menu templates to figure this out. Once I get this sorted out I can use PupMenu-6.2
(installed) to move applications around within the menu.

Changes since last ISO:
In /var/www/tazpanel/network.cgi

Added missing space before second right bracket in lines 126 and 134

One of the symlinks that I mentioned earlier didn't seem to take:

Edited build script to make sure they are included.
Lines 34 to 36 of add_puppy_jwm_files.sh:

Code: Select all

	cd $curdir/slitaz-rootfs$prefix/usr/share/rox-filer
    ln -s rox-filer ROX-Filer
    
	cd $curdir/slitaz-rootfs$prefix/usr/bin
    ln -s rox-filer rox-filer roxfiler    
https://pastebin.com/xWxfLYez

Installed gtkdialog


For some reason /root/.icons/ROX
points to: /usr/share/rox-filer/images

Fixed symlink to point to
"/usr/local/apps/ROX-Fler/ROX"
(made similar changes to other users)

added darry's uextract package:
# http://www.murga-linux.com/puppy/viewto ... 447#992447

- Tried installing the rox_config package from woofCE. I think that it changed the drag and drop behavior. Not sure what else it might have done.
(I noticed that this messes up puppypin so it must be done before any changes to puppypin)

Fix desktop icons that aren't working by modifying:
/root/Choices/ROX-Filer/PuppyPin (# denotes deletions)

Code: Select all

#  <icon x="32" y="416" label="connect">/usr/local/apps/Connect</icon>
<icon x="32" y="416" label="connect">/usr/local/bin/defaultconnect</icon>
#  <icon x="288" y="32" label="setup">/usr/sbin/wizardwizard</icon>
(Only changes shown. Need to update icon for default connect and install)

/usr/local/bin/defaultconnect

Code: Select all

#!/bin/sh
exec tazpanel network
/usr/local/bin/defaultspreadsheet

Code: Select all

#!/bin/sh
#exec puppyapps defaultspreadsheet "$@"
exec browser http://localhost/wiki/index.sh\?page=Calc
/usr/local/bin/defaultbrowser

Code: Select all

#!/bin/sh
#exec midori "$@" #midori was removed because it didn't work
exec /opt/mozilla/firefox/firefox "$@"

Code: Select all

#!/bin/sh
#exec puppyapps defaultchat "$@"
exec sakura -e "tazirc --ask"
More cleanup still needed for desktop icons and need to base this on some kind of logic that is based on which applications are installed.


Copied the following command "/usr/bin/disktype" from slacko646.9.9.9
Gave user and group executable premissions to /sbin/losetup-222

installed: gxmessage and PupMenu-6.2

Copyied /root/Choices to other users

FIxed premissions on loosetup. Fixed umount and umount-FULL based on SLACO64.6.9.9.9

[/quoTODO
- Look at the /root/.config/autostart folder of an existing puppy and see if we want to autostart any of these items.

- Look at an existing TazPup to see what deamons and scripts that we want to start on boot.
Unfortunately all these changes haven't made it into the buildkit and I'm making big changes to the build-kit so it isn't ready for anew release yet.
Last edited by s243a on Mon 18 Mar 2019, 05:03, edited 1 time in total.

s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

#28 Post by s243a »

As a side-note, the build script isn't yet up-to-date but there is a shortcut. YOu can download (and extract) the pre-ISO "root file system", mount it with the script, "mount_rootfs64"

which will mount the root-fs in a choroot environment. You will have network access and can even run gui applications. Type exit in the terminal once you are done making changes.

Make sure the following folders are unmounted:

Code: Select all

$curdir/slitaz-rootfs/64/sys
$curdir/slitaz-rootfs/64/dev
$curdir/slitaz-rootfs/64/proc
If these folders don't properly unmount when exiting the script then press "cntrl-alt-backaspace" to exit the window manager. xwin (in puppylinux) to start the window manager and then right click on these folders and select "unmount"

Once these folders are unmounted than then build then a new ISO can be built with the script "make_ISO_Fm_slitaz-rootfs".

both scripts mentioned in this post are available in the buildkit.

s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

#29 Post by s243a »

Firefox sometimes crashes when dragging the mouse with the left mouse buttin held down. Consequently, I decided to try the iron browser. Unfortunately in the next64 brach, there seems to be a 32bit version in the repo rather than a 64 bit version.

The next64 branch isn't set up well for a distro to support both 32 and 64bit because the lib files aren't segregated into separate directories.What I might be able to do though is to install any 32 libs that I want into a separate root path and then append to the search path the locations of the 32 bit libs.

That said, if I want Iron in my opinion it would make more sense to find a 64 bit binary somewhere else or alternatively try compiling it.

s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

#30 Post by s243a »

Sound is the next thing that I decide to tackle in this release. At first I wasn't sure if sound is working so I installed VLC from slackware64-6.9.9.9 binaries.

TazPup64-PreAlpha-7.iso

I played an mp3 to prove that sound worked. Next I wanted to try get sound working on youtube. Installing the xine plugin solved this problem but HTML5 videos don't play. I've been booting with the screen=text option and starting x with a script I created called:

Code: Select all

/usr/bin/start_jwm
lxde is also installed but so far I"m having better luck with jwm. To start lxde type:

Code: Select all

/root/.xsession
For firefox to play sound you might have to start it then restart it for updates to take effect. I tried doing this in the chroot environment before creating the iso. This bloated the ISO and didn't solve the problem of having to update firefox when using a fresh ISO. I'm thinking that it's probably best to put the browser and related supporting libraries (e.g. xine-plugin into an sfs). Note that at this point I'm still booting from the files in the ISO rather than trying to boot from the ISO its-self.


One downside of this release of the previous is that it's booting much slower.

s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

#31 Post by s243a »

Here is what is in the last ISO:

Code: Select all

cd /var/lib/tazpkg/installed
sh-4.4# find . -maxdepth 1 -print0 | tr $'\0' ' ' | tr '.' ' ' | tr '/' ' '
   915resolution  PupMenu  Xdialog  acl  acpid  alsa-lib  alsa-plugins  alsa-utils  alsaequal  alsamixergui  alsaplayer  alsaplayer-mod  alsaplayer-scopes  alsaplayer-scopes-gl  apulse  argon2  asunder  at-spi2-atk  at-spi2-core  atk  atkmm  attr  bash  bc  binutils  bison  busybox  busybox-pam  bzip2  bzlib  ca-certificates  cacerts  cairo  cairo-gl  cairomm  caps  cdparanoia-III  cdrkit  clearlooks-colors  clearlooks-compact  colord  compton  consolekit2  cookutils  cookutils-daemon  coreutils-multicall  cryptsetup  dbus  dbus-glib  dbus-helper  dconf  desktop-file-utils  dialog  disktype  dmidecode  dropbear  dvd+rw-tools  e2fsprogs  elfutils  enchant  epdfview  eudev  expat  fdk-aac  ffmpeg  file  findutils  firefox-official  flac  flex  flsynclient  fltk  fontconfig  freetype  fribidi  fuse-common  fuse-emulator  fuse-emulator-gtk3  fuse-exfat  fuse-rofs  fuse2  fuse3  fusedav  fuseiso  galculator  gawk  gcc-lib-base  gcolor2  gconf  gcr-base  gdbm  gdk-pixbuf  geany  geany-plugins  gettext-base  giflib  glib  glib-dev  glib-networking  glibc  glibc-base  glibc-dev  glibc-locale  glibmm  gmp  gmtp  gnome-menus  gnome-mime-data  gnome-ppp  gnulib  gnupg  gparted  gpgme  gphoto2  gphotofs  gpicview  grep  grub2  grub2-efi  grub2-efi-modules  grub4dos  gsettings-desktop-schemas  gst1-plugins-base  gstreamer1  gtick  gtk-clearlooks  gtk-screenshot  gtk2  gtk3  gtkdialog  gtkspell  gvfs  gvfs-fuse  gvfs-udisks2  gxmessage  gzip  gzip-full  hal  hal-extra  hal-info  harfbuzz  hicolor-icon-theme  hsetroot  icewm-xdgmenu  icu  imlib2  iptables  ipxe  isapnptools  jpeg  js185  json-c  json-glib  jwm  kbd  kbd-base  kmod  krb5  lame  lcms  lcms2  ldns  libaio  libao  libass  libassuan  libatasmart  libbfd  libblockdev  libbluray  libbytesize  libcanberra  libcanberra-gtk3  libcap  libcddb  libck_connector0  libcomerr  libcomerr3  libconfig  libcroco  libcups  libcurl  libdb  libdevmapper  libdrm  libdrm-intel  libdrm-nouveau  libdrm-radeon  libepoxy  libevdev  libexif  libffi  libffi-dev  libflex  libfm  libfm-extra  libfm-gtk  libgcrypt  libgd  libglade  libgnutls  libgpg-error  libgphoto2  libgudev  libgusb  libharfbuzz  libharfbuzz-icu  libicu  libid3tag  libidl  libidn  libidn2  libiodbc  libjpeg  libjpeg-turbo  libkrb5  libksba  libldap  libltdl  liblzma  libmad  libmagic  libmng  libmodplug  libmtp  libmysqlclient  libnl  libnotify  libogg  libp11-kit  libpcre  libpcre16  libpcre2-8  libpcre32  libpcrecpp  libpcreposix  libpng12  libpng16  libqxt  librsvg  libsamplerate  libsdl  libsecret  libsigc++  libsndfile  libsoup  libsoup-gnome  libspectrum  libsqlite3  libtasn1  libtheora  libtheora-enc  libtirpc  libunique  libunistring  libunwind  libusb  libusb-compat  libvorbis  libvpx  libwebp  libwnck2  libwnck3  libxkbcommon  libxml2  libxslt  linux  linux-agp  linux-drm  linux-netfilter  linux-squashfs  locale-en  locale-en-base  lsb-release  lxappearance  lxde  lxde-common  lxde-icon-theme  lxde-icon-theme-base  lxinput  lxrandr  lxsession  lxtask  lxterminal  lxterminal-locales  lz4  lz4-lib  lzlib  lzma  lzo  m4  macchanger  mate-notification-daemon  memtest-bin  memtester  menu-cache  mesa  mesa-libegl  mesa-libgbm  mesa-libwayland-egl  mhwaveedit  minicom  mpfr  mtdev  mtools  mtp-tools  mtpfs  ncurses  ncurses-extra  ncurses-libform  ncurses-libmenu  ncurses-libpanel  ndctl  neon  nettle  npth  nspr  nss  ntfs-3g  ntfsprogs  ntfsprogs-extra  obconf  openbox  openbox-themes  openjpeg2  openssl  openssl10  opus  orbit2  orc  ossp-uuid  p11-kit  pam  pango  pangomm  parted  patch  pciids  pcmanfm  pcmciautils  pcre  pcre-apps  pcre-dev  pcsc-lite  perl  perl-core  perl-xml-parser  pinentry  pm-utils  polkit  polkit-pam  polkit105  poppler  popt  posixovl  ppp  python  python-pip  python-setuptools  qt  readline  rest  rfkill  rox-filer  rox-filer-default-icons  rox-filer-locales  rox_config  rp-pppoe  rsync  sdft  sed  setserial  shared-mime-info  slim  slim-theme-default  slitaz-base-files  slitaz-boot-scripts  slitaz-configs  slitaz-configs-base  slitaz-doc  slitaz-icons-faenza  slitaz-icons-faenza-dark  slitaz-menus  slitaz-polar-cursors  slitaz-tango-icon  slitaz-themes  slitaz-tools  slitaz-tools-boxes  speex  sqlite3  squashfs_tools4  startup-notification  strace  sudo  sudoku  sundown  sysfsutils  syslinux  syslinux-extra  syslinux-modules  syslinux-tools  tar  tazbug  tazdev  tazirc  tazpanel  tazpanel-extra  tazpkg  tazusb  tazweb  tazwikiss  tazwok  terminus-font  terminus-font-base  terminus-font-x11  tiff  tiff-gl  tightvnc  tint2  transset-df  tslib  ttf-dejavu  tzdata  udev  udisks2  uextract  unbound  unrar  unzip  urxvt-full  usb-modeswitch  usb-modeswitch-data  usbids  usbutils  util-linux  util-linux-blkid  util-linux-blkid-dev  util-linux-blockdev  util-linux-cfdisk  util-linux-column  util-linux-cramfs  util-linux-eject  util-linux-fdisk  util-linux-flock  util-linux-getopt  util-linux-manpages  util-linux-minix  util-linux-misc  util-linux-mkfs  util-linux-mount  util-linux-mount-dev  util-linux-partx  util-linux-setterm  util-linux-sfdisk  util-linux-smartcols  util-linux-uuid  util-linux-uuid-dev  util-linux-whereis  vlc  volume_key  vorbis-tools  vte  vte-gtk2  wayland  web-applications  webkitgtk  wireless_tools  wpa_supplicant  wvdial  wvstreams  x264  x265  xarchiver  xcb-util-xrm  xdelta  xdg-utils  xine-lib  xine-plugin  xinput-calibrator  xorg  xorg-base-fonts  xorg-libICE  xorg-libSM  xorg-libX11  xorg-libXScrnSaver  xorg-libXau  xorg-libXaw  xorg-libXaw3d  xorg-libXcomposite  xorg-libXcursor  xorg-libXdamage  xorg-libXdmcp  xorg-libXext  xorg-libXfixes  xorg-libXfont  xorg-libXfont2  xorg-libXfontcache  xorg-libXft  xorg-libXi  xorg-libXinerama  xorg-libXmu  xorg-libXp  xorg-libXpm  xorg-libXrandr  xorg-libXrender  xorg-libXres  xorg-libXt  xorg-libXtst  xorg-libXv  xorg-libXvMC  xorg-libXxf86misc  xorg-libXxf86vm  xorg-libdmx  xorg-libfontenc  xorg-libpciaccess  xorg-libxcb  xorg-libxkbfile  xorg-libxshmfence  xorg-pixman  xorg-server  xorg-setxkbmap  xorg-xauth  xorg-xcb-util  xorg-xcb-util-cursor  xorg-xcb-util-image  xorg-xcb-util-keysyms  xorg-xcb-util-renderutil  xorg-xcb-util-wm  xorg-xclipboard  xorg-xclock  xorg-xcompmgr  xorg-xf86-input-evdev  xorg-xf86-input-keyboard  xorg-xf86-input-mouse  xorg-xf86-input-mutouch  xorg-xf86-input-synaptics  xorg-xf86-video-ati  xorg-xf86-video-fbdev  xorg-xf86-video-i740  xorg-xf86-video-intel  xorg-xf86-video-nouveau  xorg-xf86-video-r128  xorg-xf86-video-vesa  xorg-xhost  xorg-xinit  xorg-xinput  xorg-xkbcomp  xorg-xkeyboard-config  xorg-xload  xorg-xmessage  xorg-xmodmap  xorg-xprop  xorg-xrandr  xorg-xset  xorg-xsetroot  xorg-xwininfo  xplc  xrdp  xvkbd  xz  xz-tools  yad-gtk3  yad-html  yaml  zip  zlib  zlib-dev  linux-modulessh-4.4
There is a lot of stuff but I just want something that works at this point. I'll trim it later.

s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

#32 Post by s243a »

I discovered a youtube page which tells you what HTML5 formats that your browser supports:
https://www.youtube.com/html5
Currently, the firefox from the tazpup package manager supporting:
HTMLVideoElement
Media Source Extensions
WebM VP8
MSE & WebM VP9

what is unsupported is:
H.264
MSE & H.264

I might take a look at one of the portable sfs versions of firefox developed on this forum instead and try that instead of the one supplied by the tazpup package manager.

scsijon
Posts: 1596
Joined: Thu 24 May 2007, 03:59
Location: the australian mallee
Contact:

#33 Post by scsijon »

don't know whats going on in dropbox, but it's opening the iso, not downloading it, can we have it somewhere else please. I can't test it elsewise as is.

Interesting, I get a download box on the right side of the screen if I use seamonkey, but it's not there in firefox, something's wrong somewhere, but i don't know if it's you or me. Have you thought of moving to something like sourceforge, although I don't know if it costs anything as I have my own site for that 'stuff'?

s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

#34 Post by s243a »

scsijon wrote:don't know whats going on in dropbox, but it's opening the iso, not downloading it, can we have it somewhere else please. I can't test it elsewise as is.

Interesting, I get a download box on the right side of the screen if I use seamonkey, but it's not there in firefox, something's wrong somewhere, but i don't know if it's you or me. Have you thought of moving to something like sourceforge, although I don't know if it costs anything as I have my own site for that 'stuff'?
I'll move the build code to github eventually (maybe when it reaches alpha stage). For now I'm using dropbox for file hosting because I have a pro account there. That said I'm open to suggestions for other file hosts.

BTW as noted above, I haven't tested the actual ISO yet, I've only tested it by copying the files on the ISO to a folder and configuring my grub4dos menu to boot from the files in that folder .

Also note, that I haven't tested many applications yet. At this point I'm primarly concerned with the basics: web browser, file manger, terminal emulator, and text editor. VLC was added as part of testing sound.

s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

#35 Post by s243a »

I think the following strace output might be related to firefox crashing when I try to drag the tabs:

Code: Select all

stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=3687, ...}) = 0
write(2, "\n(firefox:21378): GdkPixbuf-\33[1;"..., 144
(firefox:21378): GdkPixbuf-CRITICAL **: 19:29:00.523: gdk_pixbuf_get_n_channels: assertion 'GDK_IS_PIXBUF (pixbuf)' failed
) = 144
ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0
getpid()                                = 21378
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=3687, ...}) = 0
write(2, "\n(firefox:21378): GdkPixbuf-\33[1;"..., 140
(firefox:21378): GdkPixbuf-CRITICAL **: 19:29:00.523: gdk_pixbuf_get_height: assertion 'GDK_IS_PIXBUF (pixbuf)' failed
) = 140
ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0
getpid()                                = 21378
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=3687, ...}) = 0
write(2, "\n(firefox:21378): GdkPixbuf-\33[1;"..., 139
(firefox:21378): GdkPixbuf-CRITICAL **: 19:29:00.524: gdk_pixbuf_get_width: assertion 'GDK_IS_PIXBUF (pixbuf)' failed
) = 139
ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0
getpid()                                = 21378
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=3687, ...}) = 0
write(2, "\n(firefox:21378): GdkPixbuf-\33[1;"..., 136
(firefox:21378): GdkPixbuf-CRITICAL **: 19:29:00.524: gdk_pixbuf_calculate_rowstride: assertion 'width > 0' failed
) = 136
ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0
getpid()                                = 21378
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=3687, ...}) = 0
write(2, "\n(firefox:21378): GdkPixbuf-\33[1;"..., 144
(firefox:21378): GdkPixbuf-CRITICAL **: 19:29:00.525: gdk_pixbuf_get_n_channels: assertion 'GDK_IS_PIXBUF (pixbuf)' failed
) = 144
ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0
getpid()                                = 21378
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=3687, ...}) = 0
write(2, "\n(firefox:21378): GdkPixbuf-\33[1;"..., 143
(firefox:21378): GdkPixbuf-CRITICAL **: 19:29:00.527: gdk_pixbuf_get_rowstride: assertion 'GDK_IS_PIXBUF (pixbuf)' failed
) = 143
ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0
getpid()                                = 21378
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=3687, ...}) = 0
write(2, "\n(firefox:21378): GdkPixbuf-\33[1;"..., 152
(firefox:21378): GdkPixbuf-CRITICAL **: 19:29:00.527: gdk_pixbuf_get_pixels_with_length: assertion 'GDK_IS_PIXBUF (pixbuf)' failed
) = 152

On another note, for some reason I copied the wrong /bin/ps-FULL into the iso. The correct version can found in Slacko64.6.9.9.9. Also for some reason sakura wasn't installed but was set as the default terimnal in:

Code: Select all

/usr/local/bin/defaultterminal
There are several ways to rectify this. One can either:
1. install sakura or,
2. edit /usr/local/bin/defaultterminal so that it calls lxterminal instead of sakura or
3. right click on rox (select the empty space area), select options, then under the menu tab change the terminal to lxterminal

What I think I'll do for these default($whatever) scripts is test for the existence of something and if it isn't there try something else. This way applications can be removed or added without having to worry about what is in /usr/local/bin/default"$whatever"

I think next I'll publish a virtual media disk image, rather than a new iso. The reason being is that a virtual machine (i.e. virtualbox) is a good test platform and the system seems to be working while inside a virtual machine :)

On another note, if an application doesn't start from the menu in the bottom panel it might be due to JWM not supporting field codes. This can be fixed by looking at the desktop files in

Code: Select all

/usr/share/applications
and editing the Exec field so that any option with "%" in it is removed. (I forget if I removed all these field codes or not)

You can also troubleshoot the exec command in a teriminal. As an alternative to looking in /usr/share/applications for the Exec command you can use:

Code: Select all

Menu->utility->utility->"PupMenu Launcher Editor"
I recommend using the "Full Panel" mode. There is a button on the top right of this tool to switch to full panel mode.

Edit 1 There has been an issue with the window buttons on the top right of the windows. This isn't too big an issue if you know where they are or alternatively right click in the center of the top bar of the window.

I see that in puppy theme manager that when I try to save a therme it is saved to:

Code: Select all

/usr/share/pixmaps/puppy/puppy_theme_generic.svg
I wonder if this might give me a hint on what the issue is. Also for some reason the post install scripts didn't work when I tried to install the theme packages from woofCE. I'm not sure what the issue was. I tried setting the current directory to "/" before calling the script but that didn't help.

Edit 2
Note that, since one possible cause to firefox crashing was a broken theme, (See stackoverflow.com/.../11869705 and ubuntuforums.org/...t=1639829) I'm digging around a bit with the theme code in woofCE.

On issue that I've been having with the themes is if I modify /root/Choices/ROX-Filer/PuppyPin (or globalicons) that changing the theme will over-write my changes. I could write a script to fix this after changing the theme overwites my work. However, a better solution would be to modify the templates that ptheme uses. From the WoofCE code,

I see that the templates are located in

Code: Select all

find /usr/share/ptheme/rox_pinboard 
also note that there are several icon themes that you can choose from in the "puppy theme manager". To change it scroll down to where it says "Icon desktop arrangement (apps).

Edit 3:

As noted above the pinstall.sh script didn't work for me for ptheme. The paths seem to be relative rather than absolute. I tried to set the working directory with a cd:

Code: Select all

cp --remove-destination -arf $curdir/tazpup-core-files/desktop/jwm/no-arch/rootfs-packages/woof-CE-19-03-06/ptheme/* \
	 $curdir/slitaz-rootfs$prefix/ 2>/dev/null	
chroot "$curdir/slitaz-rootfs$prefix/" sh -c "cd /; /pinstall.sh"   
this didn't seem to work. I did find in a WoofCE search that there is a similar version of this scirpt called "/usr/sbin/upgrade_ptheme_fix". Ln# 58 of this script is where the icons are set for the window action

Code: Select all

ln -sf ${icon} $HOME/.jwm/window_buttons/${newicon}
which I need to fix because they are broken. If I look at the symbolic links in this folder I see that they links are relative rather than abosolute (i.e. the leading slash is missing from the path) but this isn't the proper way to do relative links, so the links are broken and as a consequence these buttons don't show. Presumably running the upgrade_ptheme_fix will fix this issue for me.

Post Reply