Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add optional support for building missing packages from source in 3builddistro #1984

Merged

Conversation

dimkr
Copy link
Contributor

@dimkr dimkr commented Jan 1, 2021

Can cross-compile ARM packages on x86_64, thanks to #1969!

@sc0ttj @01micko @peabee What do you think about this feature? I find it much easier to build packages directly from woof-CE (with cache, of course, so it doesn't happen in every 3builddistro), instead of having to manage a repo.

Extra packages (= not pre-installed ones) can be handled by the petbuilds repo, of course, and I think we can set up a CI/CD flow in GitHub Actions that builds all PET packages, then pushes a GitHub release that contains .pet packages plus the Packages-* file (all pet.specs, concatenated), and use the latest release URL as a PET repo.

@dimkr dimkr requested review from 01micko and peabee January 1, 2021 08:11
@01micko
Copy link
Contributor

01micko commented Feb 19, 2021

( cd rootfs-complete; chroot . /sbin/ldconfig -r . )

How about running rc.update before building? I wonder if this can break anything, maybe just this chroot . ldconfig is safer.

rc.update does a bunch of stuff so probably safer just to do what's needed only.

@dimkr dimkr marked this pull request as ready for review February 19, 2021 11:36
@dimkr
Copy link
Contributor Author

dimkr commented Feb 19, 2021

I've marked this PR as ready for review+merge to make life easier for all developers who use this branch. Maybe, the best way to fix slacko/dpup specific issues and complete the GTK 3 migration (e.g. sfs_load) is after merging this.

Also, I have some concerns about backwards-compatibility. For example, how to handle gtkdialog based packages people download from the forums, that won't get fixed as part of this change in woof-CE (list, table, and combobox are gone). Maybe we'll need two packages, gtkdialog/gtkdialog-gtk3, and upgrade all woof-CE stuff that works to use the latter, and gradually fix brkoen stuff like sfs_load.

EDIT: is it really that bad? Maybe I'm searching for broken stuff the wrong way, or the list is really that short. Replacing list and table with tree should be very easy, and it's only two PPM dialogs, frisbee, pschedule and sfs_load.

$ grep -e \<table -e \<list -e '<combobox>' -e '<combobox ' `find -type f` 2>/dev/null | fgrep -v .htm
./woof-code/rootfs-packages/check_deps_gui/usr/local/petget/check_deps_gui.sh:    <list selection-mode=\"2\">
./woof-code/rootfs-packages/frisbee/usr/local/frisbee/frisbee-main:       <table>
./woof-code/rootfs-packages/frisbee/usr/local/frisbee/frisbee-main:      <table $ENABLEWIRELESS>
./woof-code/rootfs-packages/frisbee/usr/local/frisbee/frisbee-main:     <table>
./woof-code/rootfs-packages/pschedule/usr/local/pschedule/func_new:         <table hscrollbar-policy="2" space-expand="true" space-fill="true">
./woof-code/rootfs-packages/pschedule/usr/local/pschedule/func_new:         <table hscrollbar-policy="2" space-expand="true" space-fill="true">
./woof-code/rootfs-packages/pschedule/usr/local/pschedule/func_new:         <table hscrollbar-policy="2" space-expand="true" space-fill="true">
./woof-code/rootfs-packages/pschedule/usr/local/pschedule/func_new:         <table hscrollbar-policy="2" space-expand="true" space-fill="true">
./woof-code/rootfs-packages/pschedule/usr/local/pschedule/func_new:         <table hscrollbar-policy="2" space-expand="true" space-fill="true">
./woof-code/rootfs-skeleton/usr/local/petget/show_installed_version_diffs.sh:      <table space-expand="true" space-fill="true">
./woof-code/rootfs-skeleton/usr/sbin/sfs_load:          UNLOADCOMBO='<table tooltip-text="'$(gettext "Select the sfs file you want to unload.")'">

@01micko
Copy link
Contributor

01micko commented Feb 19, 2021

Well... the only way to fix bugs is to get more eyes looking! 👓 The pair of us, as far as I know, there could be some sand baggers, can only find so much.

@01micko
Copy link
Contributor

01micko commented Feb 19, 2021

At least 1 addition needs to be made. A commented block for petbuilds in _00build,conf which I'll take care of.

When merged I am going to add slacko64-15 support. I have been building out of c201-v2 and was going to create a new branch off that but it gets messy and more work for you :P

If you don't mind updating the ci job for that and making an iso release once a week I'd be grateful. Thanks

1 similar comment
@01micko
Copy link
Contributor

01micko commented Feb 19, 2021

At least 1 addition needs to be made. A commented block for petbuilds in _00build,conf which I'll take care of.

When merged I am going to add slacko64-15 support. I have been building out of c201-v2 and was going to create a new branch off that but it gets messy and more work for you :P

If you don't mind updating the ci job for that and making an iso release once a week I'd be grateful. Thanks

@dimkr
Copy link
Contributor Author

dimkr commented Feb 19, 2021

Well... the only way to fix bugs is to get more eyes looking!

Totally agree. It's a community project, we have bugs, and the right thing to do is to have a faster release and feedback loop.

If you don't mind updating the ci job for that and making an iso release once a week I'd be grateful. Thanks

I'll do that. Less manual work for you means more effort that goes into making slacko and woof-CE better, and for the first time in Puppy's history, the ability to release minor releases with security updates and woof-CE fixes.

@01micko
Copy link
Contributor

01micko commented Feb 19, 2021 via email

@01micko
Copy link
Contributor

01micko commented Feb 19, 2021

Back up now... but thinking about my patch it could be more global for @zigbert 's gtkdialog themes.

Here it is anyway. (and there probably is a better way)

box_splash

--- box_splash.orig	2020-07-09 08:32:28.000000000 +1000
+++ box_splash	2021-02-20 08:12:30.703145948 +1000
@@ -247,7 +247,27 @@ else
 fi
 
 #gtk-theme
-gtkrc='
+if ldd $(which gtkdialog) | grep -iq 'gtk\-3' ; then #gtk3
+	ORIG_XDG=$XDG_CONFIG_HOME
+	[ -d /tmp/gtk3-theme/gtk-3.0 ] || mkdir -p  /tmp/gtk3-theme/gtk-3.0
+	export XDG_CONFIG_HOME=/tmp/gtk3-theme
+	bgcolor=$bg
+	fontsize=$fontsize
+	[ "$bgcolor" ] || bgcolor=gray90
+	[ "$fontsize" ] || fontsize=40
+	cat > /tmp/gtk3-theme/gtk-3.0/gtk.css <<_THEME
+@define-color bg_color $bgcolor;
+
+* {
+	background-color: @bg_color;
+	color: $fg;
+	font-size: ${fontsize}px;
+}
+
+_THEME
+
+else        #gtk2
+	gtkrc='
 pixmap_path "/tmp"
 style "gtkdialog-splash"
 {
@@ -270,8 +290,9 @@ style "font"
 	fg[NORMAL]="'$fg'"
 }
 class "GtkLabel" style "font"'
-echo $gtkrc > /tmp/gtkdialog-splash_gtkrc
-export GTK2_RC_FILES=/tmp/gtkdialog-splash_gtkrc
+	echo $gtkrc > /tmp/gtkdialog-splash_gtkrc
+	export GTK2_RC_FILES=/tmp/gtkdialog-splash_gtkrc
+fi
 
 #process close of window, default is mouseover...
 CLOSETAG1=''
@@ -329,3 +350,4 @@ while [ $timeout -ne 0 ];do #100604
 done
 kill $dlgPID
 echo 'EXIT="Exit on timeout"'
+[ ! "$XDG_CONFIG_HOME" = "$HOME/.config" ] && export XDG_CONFIG_HOME=$ORIG_XDG

@01micko
Copy link
Contributor

01micko commented Feb 19, 2021

sfs_load works just simply swappin <table>...</table> for <tree>...</tree>
replace list with tree in check_deps_gui.sh

@01micko
Copy link
Contributor

01micko commented Feb 19, 2021

Merging and dealing with the fallout later. I'll fix what I can today.

@01micko 01micko merged commit 16b4317 into puppylinux-woof-CE:testing Feb 19, 2021
01micko added a commit that referenced this pull request Feb 19, 2021
@01micko
Copy link
Contributor

01micko commented Feb 20, 2021

Wow! PMaterial has the speaker icons!!! 🥇

wow

It has given me motivation (at some point) to update the 3 native icon themes to gtk+3 standard.

Btw, ci build is in progress (exactly as screeny).

@01micko
Copy link
Contributor

01micko commented Feb 20, 2021

Pretty awesome that in qemu I can find the host samba share, load the devx and compile stuff too :-)

@01micko
Copy link
Contributor

01micko commented Feb 20, 2021

Haha.. chewing up some MS server space now (hehe)

libreoffice

.. and just because I can .. ( 👅 )

vivaldi

.. and to be fair Firefox (though I love vivaldi - I actually have contatct with one of the devs Ruari Oedegaard - he was at Opera and sent me insider previews when Opera was good in the presto days) - still a fan of Firefox though -- only other browser I like is Falkon (KDE - formerly Qupzilla), and of course all the really light ones like Netsurf, Dillo, Links, Lynx et al.

firefox

geany(1)

sfs-and-smb_shares

Too much fun! I have to stop it!

But... this tune is reflecting my mood -- some nice soothing jazz 😎

youtube-and-sound

01micko added a commit that referenced this pull request Feb 20, 2021
samba gui is a temporary fix and will be included in the next slacko
samba build. re #1984
@01micko
Copy link
Contributor

01micko commented Feb 20, 2021

It's out there slacko64-8.0

@dimkr
Copy link
Contributor Author

dimkr commented Feb 20, 2021

Wow wow wow. Merging this PR was a very brave move, and I'm super thankful. The GTK 3 adoption is a huge step forward for Puppy IMHO 😄

I'll start working on cleanup of ROX-Filer. I did a rough GTK 3 port without the pinboard and the icon view, but I'm going to restart my work. This time, I'll clean up the use of widgets, etc' that are deprecated in GTK 2, release one version and make sure it's stable, then start gradual migration to GTK 3, which should be easy if the GTK 2 version doesn't use anything that's deprecated in GTK 2 and finally removed in GTK 3.

@01micko
Copy link
Contributor

01micko commented Feb 20, 2021

Wow wow wow. Merging this PR was a very brave move, and I'm super thankful. The GTK 3 adoption is a huge step forward for Puppy IMHO smile

Fortune favours the brave? It's natural evolution and thanks for giving me a push 😉 😉

@01micko
Copy link
Contributor

01micko commented Feb 20, 2021

Just for the record, I'm still get grief withxdg-puppy-jwm

  • firstly, it was my bad about the fam errors - I still had yes|gnome-menus||exe in the specs.
  • removed that and still get build failure - can't find pkgconfig/gnome-menus.pc
  • maybe gnome menus needs a separate petbuild?
  • I ended up just leaving the xdgpuppy-jwm and gnome-menus packages in the specs so avoid building them

@dimkr
Copy link
Contributor Author

dimkr commented Feb 21, 2021

removed that and still get build failure - can't find pkgconfig/gnome-menus.pc

Maybe PKG_CONFIG_PATH needs to be set before building xdg-puppy. Do you still have the build log?

@01micko
Copy link
Contributor

01micko commented Feb 21, 2021

No, but should be reproducible - soon

@01micko
Copy link
Contributor

01micko commented Feb 21, 2021

Here

make[2]: Leaving directory '/tmp/gnome-menus-2.14.3/desktop-directories'
make[1]: Leaving directory '/tmp/gnome-menus-2.14.3/desktop-directories'
Making install in util
make[1]: Entering directory '/tmp/gnome-menus-2.14.3/util'
if /ccache gcc -DHAVE_CONFIG_H -I. -I. -I.. -DGMENU_I_KNOW_THIS_IS_UNSTABLE -DGNOMELOCALEDIR=\""/usr/share/locale"\" -I./../libmenu -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include  -DG_ENABLE_DEBUG -Wall -Wmissing-prototypes      -march=x86-64 -mtune=generic -Os -fomit-frame-pointer -ffunction-sections -fdata-sections -fmerge-all-constants -MT test-menu-spec.o -MD -MP -MF ".deps/test-menu-spec.Tpo" -c -o test-menu-spec.o test-menu-spec.c; \
then mv -f ".deps/test-menu-spec.Tpo" ".deps/test-menu-spec.Po"; else rm -f ".deps/test-menu-spec.Tpo"; exit 1; fi
/bin/sh ../libtool --tag=CC --mode=link /ccache gcc  -march=x86-64 -mtune=generic -Os -fomit-frame-pointer -ffunction-sections -fdata-sections -fmerge-all-constants  -Wl,--gc-sections -Wl,--sort-common -Wl,-s -o gnome-menu-spec-test  test-menu-spec.o  ../libmenu/libgnome-menu.la -lglib-2.0  
mkdir .libs
/ccache gcc -march=x86-64 -mtune=generic -Os -fomit-frame-pointer -ffunction-sections -fdata-sections -fmerge-all-constants -Wl,--gc-sections -Wl,--sort-common -Wl,-s -o .libs/gnome-menu-spec-test test-menu-spec.o  ../libmenu/.libs/libgnome-menu.so -lglib-2.0
creating gnome-menu-spec-test
make[2]: Entering directory '/tmp/gnome-menus-2.14.3/util'
test -z "/usr/bin" || mkdir -p -- "/usr/bin"
make[2]: Nothing to be done for 'install-data-am'.
  /bin/sh ../libtool --mode=install /bin/ginstall -c 'gnome-menu-spec-test' '/usr/bin/gnome-menu-spec-test'
/bin/ginstall -c .libs/gnome-menu-spec-test /usr/bin/gnome-menu-spec-test
make[2]: Leaving directory '/tmp/gnome-menus-2.14.3/util'
make[1]: Leaving directory '/tmp/gnome-menus-2.14.3/util'
make[1]: Entering directory '/tmp/gnome-menus-2.14.3'
make[2]: Entering directory '/tmp/gnome-menus-2.14.3'
make[2]: Nothing to be done for 'install-exec-am'.
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/tmp/gnome-menus-2.14.3'
make[1]: Leaving directory '/tmp/gnome-menus-2.14.3'
Package libgnome-menu was not found in the pkg-config search path.
Perhaps you should add the directory containing `libgnome-menu.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libgnome-menu' found
Package libgnome-menu was not found in the pkg-config search path.
Perhaps you should add the directory containing `libgnome-menu.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libgnome-menu' found
jwm-xdgmenu.c:16:10: fatal error: glib.h: No such file or directory
   16 | #include <glib.h>
      |          ^~~~~~~~
compilation terminated.
ERROR: failed to build xdg-puppy-jwm

The complete 3builddistro log - just for curiosity

3builddistro.log.gz

@dimkr dimkr deleted the feature/rootfs-packages-builder-v2 branch March 17, 2021 16:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants