Introducing T2

Under development: PCMCIA, wireless, etc.
Message
Author
User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

Introducing T2

#1 Post by BarryK »

We have used T2 to compile packages from source, for use in some of our puppies.
The 2.x and 4.x series are examples.

However, we never compiled everything in T2. Until now. My objective was to compile absolutely every package required for a puplet, in T2, and I had to add 105 new packages into T2 to do it.

I was then able to compile for i686 and amd64 (x86_64) CPUs, and use those packages to build a puplet -- in my case, I am building Quirky, a fork of Puppy. But, the principle applies to any puplet that is built with Woof, woof-CE or my woofQ.
Woof has always had the ability to import binary packages compiled in T2, and use them to build a puplet.

The official T2 project:
http://t2-project.org/

My local T2 is a bit different, as there are many modifications specific for packages needed to build a puplet.
My blog announcement of T2:
http://bkhome.org/news/?viewDetailed=00157

My local T2 is hosted by my home-brew version control system named Bones:
http://bkhome.org/bones/

My fork of Woof, specifically for creating Quirky, has been used to build Quirky April64, version 6.89, using the packages from T2.
For the very first time, a puplet built with packages compiled entirely from source, except for "noarch" PETs:
http://bkhome.org/news/?viewDetailed=00152

I will upload woofQ soon. The main difference from woof-CE is I have modified and added to the package templates, and all of those changes can be imported to woof-CE.

Anyway, I thought that I would start this thread, in case there is anyone wanting to play with T2.
In theory, you could even try a compile for an ARM target, however, a cross-build is not fully supported (won't build all pkgs), so you would have to be running a ARM-native Linux distro on ARM hardware.

Using T2 also requires some investment of effort to learn how to use it. There is a User Manual available from the T2 website.
[url]https://bkhome.org/news/[/url]

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

#2 Post by BarryK »

I posted some usage notes for T2, appended to this blog thread:

http://bkhome.org/news/?viewDetailed=00157
[url]https://bkhome.org/news/[/url]

User avatar
gcav
Posts: 104
Joined: Fri 25 May 2012, 04:12
Location: Ontario

Compiling Quirky-April from t2 -issue-

#3 Post by gcav »

Hi Barry, I downloaded your t2 mirror and proceeded to compile April (-wary6) but got an error compiling gcc.

I am using a new Unicorn installation to compile.
My question., how dependent is the t2 compile from Quirky 6.0.5, or can it be built with fresh Unicorn.

I will try and fix this error...

gc

-----SNIP------

_TLS -o unwind-dw2-fde-dip.o -MT unwind-dw2-fde-dip.o -MD -MP -MF unwind-dw2-fde
-dip.dep -fexceptions -c ../../../libgcc/unwind-dw2-fde-dip.c -fvisibility=hidde
n -DHIDE_EXPORTS
In file included from ./gthr-default.h:35:0,
from ../../../libgcc/gthr.h:148,
from ../../../libgcc/unwind-dw2-fde-dip.c:47:
./gthr-default.h:59:30: error: '__PTHREAD_SPINS' undeclared here (not in a funct
ion)
#define __GTHREAD_MUTEX_INIT PTHREAD_MUTEX_INITIALIZER
^
../../../libgcc/unwind-dw2-fde.c:48:41: note: in expansion of macro '__GTHREAD_MUTEX_INIT'
static __gthread_mutex_t object_mutex = __GTHREAD_MUTEX_INIT;
^
In file included from ../../../libgcc/unwind-dw2-fde-dip.c:89:0:
../../../libgcc/unwind-dw2-fde.c:48:1: warning: missing initializer for field '({anonymous})' of 'struct __pthread_mutex_s' [-Wmissing-field-initializers]
static __gthread_mutex_t object_mutex = __GTHREAD_MUTEX_INIT;
^
In file included from /usr/include/i386-linux-gnu/sys/types.h:270:0,
from ../../../libgcc/../gcc/tsystem.h:90,
from ../../../libgcc/unwind-dw2-fde-dip.c:34:
/usr/include/i386-linux-gnu/bits/pthreadtypes.h:122:5: note: '({anonymous})' declared here
};
^../../../libgcc/static-object.mk:17: recipe for target 'unwind-dw2-fde-dip.o' failed
make[2]: *** [unwind-dw2-fde-dip.o] Error 1
make[2]: Leaving directory '/mnt/sdb1/projects/t2-project/t2-trunk-APRIL/src.gcc.wary6.20150110.105346.18833.dataarts/gcc-4.9.2/objdir/i686-t2-linux-gnu/libgcc'
Makefile:10153: recipe for target 'all-target-libgcc' failed
make[1]: *** [all-target-libgcc] Error 2
make[1]: Leaving directory '/mnt/sdb1/projects/t2-project/t2-trunk-APRIL/src.gcc.wary6.20150110.105346.18833.dataarts/gcc-4.9.2/objdir'
Makefile:840: recipe for target 'all' failed
make: *** [all] Error 2
Due to previous errors, no 0-gcc.log file!
(Try enabling xtrace in the config to track an error inside the build system.)
--- BUILD ERROR ---
Creating file list and doing final adaptions ...
Searching for orphaned files ...
Found 5 files for this package.
Found 0 orphaned files for this package.
Clear (old) md5sums ...
Creating md5sum files ... done.
Creating package description ...
Making post-install adaptions.
Attachments
0-gcc.err.gz
Error log
(48.98 KiB) Downloaded 477 times

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

#4 Post by BarryK »

gcav,
T2 can be sensitive to the host distro. Apparently it just doesn't like some distros (from comments on the T2 mail-list).

My 'wary6' build was done, at least first time, with Quirky 6.1.4, so I suggest that you install and boot that version, and of course install the devx pet.

I have more recently been using Quirky April, i686 build, to do a 'wary6' build with T2, and it works.
However, I have not yet uploaded a build of April i686.

...will do that soon, after having tested April64 a bit more, and squashed more bugs.
[url]https://bkhome.org/news/[/url]

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

#5 Post by BarryK »

[url]https://bkhome.org/news/[/url]

User avatar
Keef
Posts: 987
Joined: Thu 20 Dec 2007, 22:12
Location: Staffordshire

#6 Post by Keef »

It would not boot with the menu entry generated by the installer script - hung once vmlinuz started up (booting from internal HDD).

Code: Select all

title Quirky 6.1.4 (full install on sda11)
  uuid 799f02a1-6eb6-4e6e-9ff7-221ebda231f7
  kernel /boot/vmlinuz root=PARTUUID=00025d5b-11 rootwait rw
I tried it without 'rootwait' but just got a kernel panic.

..but then ran Grub4Dos, and it produced this entry which works:

Code: Select all

title Quirky 6.1.4 (sda11/boot)
  uuid 799f02a1-6eb6-4e6e-9ff7-221ebda231f7
  kernel /boot/vmlinuz root=/dev/sda11 ro

Otherwise OK so far.
-------------------------------------------------------
Computer
HP Compaq nc6120
Processor Intel(R) Pentium(R) M processor 2.00GHz
Memory 1285MB (126MB used)
Host bridge 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 03)
VGA compatible controller 915GM/GMS/910GML Express Graphics Controller (rev 03)
Display controller 915GM/GMS/910GML Express Graphics Controller (rev 03)

User avatar
Karl Godt
Posts: 4199
Joined: Sun 20 Jun 2010, 13:52
Location: Kiel,Germany

#7 Post by Karl Godt »

Keef wrote:It would not boot with the menu entry generated by the installer script - hung once vmlinuz started up (booting from internal HDD).

Code: Select all

title Quirky 6.1.4 (full install on sda11)
  uuid 799f02a1-6eb6-4e6e-9ff7-221ebda231f7
  kernel /boot/vmlinuz root=PARTUUID=00025d5b-11 rootwait rw
I tried it without 'rootwait' but just got a kernel panic.

..but then ran Grub4Dos, and it produced this entry which works:

Code: Select all

title Quirky 6.1.4 (sda11/boot)
  uuid 799f02a1-6eb6-4e6e-9ff7-221ebda231f7
  kernel /boot/vmlinuz root=/dev/sda11 ro

Otherwise OK so far.
Likely a grep /dev/DEVICE bug .. sda1 sda10 sda11 sda12 ...
«Give me GUI or Death» -- I give you [[Xx]term[inal]] [[Cc]on[s][ole]] .
Macpup user since 2010 on full installations.
People who want problems with Puppy boot frugal :P

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

#8 Post by BarryK »

Karl Godt wrote:
Keef wrote:It would not boot with the menu entry generated by the installer script - hung once vmlinuz started up (booting from internal HDD).

Code: Select all

title Quirky 6.1.4 (full install on sda11)
  uuid 799f02a1-6eb6-4e6e-9ff7-221ebda231f7
  kernel /boot/vmlinuz root=PARTUUID=00025d5b-11 rootwait rw
I tried it without 'rootwait' but just got a kernel panic.

..but then ran Grub4Dos, and it produced this entry which works:

Code: Select all

title Quirky 6.1.4 (sda11/boot)
  uuid 799f02a1-6eb6-4e6e-9ff7-221ebda231f7
  kernel /boot/vmlinuz root=/dev/sda11 ro

Otherwise OK so far.
Likely a grep /dev/DEVICE bug .. sda1 sda10 sda11 sda12 ...
No, doesn't seem like a grep problem.

root=PARTUUID=00025d5b-11

...the '00025d5b' value is the UUID of the entire drive, the '-11' is the partition number, so it looks correct.

# fdisk -l /dev/sda

should confirm that UUID number is correct.
[url]https://bkhome.org/news/[/url]

User avatar
ttuuxxx
Posts: 11171
Joined: Sat 05 May 2007, 10:00
Location: Ontario Canada,Sydney Australia
Contact:

#9 Post by ttuuxxx »

Here's a very simple Black Quirky Background 6.9KB
ttuuxxx
Attachments
Quirky-B-W.jpg
(6.9 KiB) Downloaded 680 times
http://audio.online-convert.com/ <-- excellent site
http://samples.mplayerhq.hu/A-codecs/ <-- Codec Test Files
http://html5games.com/ <-- excellent HTML5 games :)

User avatar
gcav
Posts: 104
Joined: Fri 25 May 2012, 04:12
Location: Ontario

Compiling Quirky-April from t2 -issue2-

#10 Post by gcav »

Barry,
compile went much further now.

1) compilation broke when some packages were not downloaded correctly, I downloaded them manually and removed the .err file and it worked.


2) man-1.6f no longer exists on http://dl.t2-project.org/mirror/9.0/m/
It mutated to man-1.6g

Is the mirror constantly being changed?

I was going to change the .desc file
from package/base/man but wanted to see how you dealt with these items?

gc



-----------------dump--------------------

Downloading man:download/mirror/m/man-1.6f.tar.gz ...

curl: (22) The requested URL returned error: 404 Not Found
Finished downloading 0 bytes in 0.322 seconds (0.000 bytes/sec).
ERROR: CURL Returned Error 22. Please read the curl manpage.
INFO: download from mirror failed, trying original URL.

curl: (7) Failed connect to primates.ximian.com:80; No route to host
Finished downloading 0 bytes in 7.161 seconds (0.000 bytes/sec).
ERROR: CURL Returned Error 7. Please read the curl manpage.

Building tools in build/.../TOOLCHAIN/tools.chroot:
-> Building tools.chroot/wrapper/cmd_wrapper.
-> Building tools.chroot/wrapper/strip_wrapper.
-> Building tools.chroot/wrapper/{uname,arch}.
-> Building tools.chroot/wrapper/install_wrapper.
-> Building tools.chroot/bin/getdu.
-> Building tools.chroot/bin/getfiles.
-> Building tools.chroot/bin/fl_wrparse.
-> Building tools.chroot/bin/fl_stparse.
-> Building tools.chroot/lib/fl_wrapper.so.
-> Testing tools.chroot/lib/fl_wrapper.so.
-> Creating tools.chroot/lib/parse-config.
-> Creating tools.chroot/lib/pkg_*_{pre,post}.conf

== 09:05:07 =[2]=> Building base/man [1.6f 9.0-trunk].
-> Parallel build using 2 jobs enabled.
-> Reading package config: package/base/man/man.conf
-> Preparing build in src.man.wary6.20150112.090503.30078.datartas
-> Building. Writing output to $root/var/adm/logs/2-man.out
*> File not found: download/mirror/m/man-1.6f.tar.bz2
*> Did you run ./scripts/Download for this package?
!> gcc (GCC) 4.9.2
!> Copyright (C) 2014 Free Software Foundation, Inc.
!> This is free software; see the source for copying conditions. There is NO
!> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
!> [ writing debug log to /TOOLCHAIN/src.man.wary6.20150112.090503.30078.data ..
!> Due to previous errors, no 2-man.log file!
!> (Try enabling xtrace in the config to track an error inside the build syst ..
== 01/12/15 09:05:12 =[2]=> Aborted building package man.

User avatar
Ted Dog
Posts: 3965
Joined: Wed 14 Sep 2005, 02:35
Location: Heart of Texas

#11 Post by Ted Dog »

Thanks, look forward to trying this on my mele ARM after all its available. There is a distributed compile method that preprocesses the C code then passes that for compile on networked machines of any architecture. Fatdog64 has that available to save compile time.
Could you add that to T2 and April. it takes a few hundred K for setup but configuration needs some help. Its just above my level of intelligence, did it once before losing half my IQ due to chemical imbalance.

User avatar
Ted Dog
Posts: 3965
Joined: Wed 14 Sep 2005, 02:35
Location: Heart of Texas

#12 Post by Ted Dog »

http://en.m.wikipedia.org/wiki/Distcc

here is a wikipedia link

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

Re: Compiling Quirky-April from t2 -issue2-

#13 Post by BarryK »

gcav wrote:Barry,
compile went much further now.

1) compilation broke when some packages were not downloaded correctly, I downloaded them manually and removed the .err file and it worked.


2) man-1.6f no longer exists on http://dl.t2-project.org/mirror/9.0/m/
It mutated to man-1.6g

Is the mirror constantly being changed?

I was going to change the .desc file
from package/base/man but wanted to see how you dealt with these items?

gc



-----------------dump--------------------

Downloading man:download/mirror/m/man-1.6f.tar.gz ...

curl: (22) The requested URL returned error: 404 Not Found
Finished downloading 0 bytes in 0.322 seconds (0.000 bytes/sec).
ERROR: CURL Returned Error 22. Please read the curl manpage.
INFO: download from mirror failed, trying original URL.

curl: (7) Failed connect to primates.ximian.com:80; No route to host
Finished downloading 0 bytes in 7.161 seconds (0.000 bytes/sec).
ERROR: CURL Returned Error 7. Please read the curl manpage.

Building tools in build/.../TOOLCHAIN/tools.chroot:
-> Building tools.chroot/wrapper/cmd_wrapper.
-> Building tools.chroot/wrapper/strip_wrapper.
-> Building tools.chroot/wrapper/{uname,arch}.
-> Building tools.chroot/wrapper/install_wrapper.
-> Building tools.chroot/bin/getdu.
-> Building tools.chroot/bin/getfiles.
-> Building tools.chroot/bin/fl_wrparse.
-> Building tools.chroot/bin/fl_stparse.
-> Building tools.chroot/lib/fl_wrapper.so.
-> Testing tools.chroot/lib/fl_wrapper.so.
-> Creating tools.chroot/lib/parse-config.
-> Creating tools.chroot/lib/pkg_*_{pre,post}.conf

== 09:05:07 =[2]=> Building base/man [1.6f 9.0-trunk].
-> Parallel build using 2 jobs enabled.
-> Reading package config: package/base/man/man.conf
-> Preparing build in src.man.wary6.20150112.090503.30078.datartas
-> Building. Writing output to $root/var/adm/logs/2-man.out
*> File not found: download/mirror/m/man-1.6f.tar.bz2
*> Did you run ./scripts/Download for this package?
!> gcc (GCC) 4.9.2
!> Copyright (C) 2014 Free Software Foundation, Inc.
!> This is free software; see the source for copying conditions. There is NO
!> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
!> [ writing debug log to /TOOLCHAIN/src.man.wary6.20150112.090503.30078.data ..
!> Due to previous errors, no 2-man.log file!
!> (Try enabling xtrace in the config to track an error inside the build syst ..
== 01/12/15 09:05:12 =[2]=> Aborted building package man.
All of the sources are here:

http://distro.ibiblio.org/quirky/quirky ... /t2/april/

...perhaps we need a little script that downloads all of those, and writes them to the download/mirror/a-z subdirectories.
[url]https://bkhome.org/news/[/url]

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

#14 Post by BarryK »

I seem to recall, compiling of man-1.6g is broken, which is why I am using 1.6f.
[url]https://bkhome.org/news/[/url]

gcmartin

KVM isa Linux feature which canbe useful to you for T2-Bones

#15 Post by gcmartin »

Note to community developers who will use T2 to build PUPs.

This post intends to make easy the use of Bones for T2 that BarryK has developed without sacrificing your normal use of your PC while the build process for your distro is running..

Some things that may be useful for you.
  • Are you aware that you can use KVM and get near native speed when doing system builds?
  • How many are aware that the main distro will run so that you can surf the web or build files while your system builds run self contain and wont disturb you?
  • How many are aware that you can run a 64bit distro in a KVM guest even though the main system is 32bit?
  • Are you aware that there is 1 distro, namely EmSee, which has EVERYTHING needed to do this built into its base, without any need to install any packages?
  • Are you aware that FATDOG and Lighthouse has some items built-in, though not KVM, which allows you do similar without the virtual hardware assist?
  • Are you aware, that the PETs to setup KVM use has been thoroughly tested in the following PUPs: EmSee, Slacko64, FATDOG and LightHouse64?
Essentially, the KVM subsystem allows you to isolate your distro compile-to-build processing without placing a major hardship on your normal system use. It allows you to isolate the building of your distro away from the normal system without penalizing the build process too much so that you have adequate performance, as well, for your normal use with the things you do on the web, or documenting, or information packaging in a webpage, or ...

With your running distro that either contains all the items, OOTB, for KVM (like EmSee) for you, or you choose to add the subsystem tools to your running distro, KVM is simple to allow you to boot a 32bit guest or a 64bit guest NO MATTER IF YOUR RUNNING DISTRO IS ONLY 32bit. The ONLY hardware requirement to do so is to insure that your processor has the virtual machine firmware (almost ever AMD does and many/most Intels contain the firmware also)

There is a guide to make this simple to understand and use; found here.

edited: spellings and punctuations
Last edited by gcmartin on Wed 14 Jan 2015, 05:05, edited 1 time in total.

User avatar
gcav
Posts: 104
Joined: Fri 25 May 2012, 04:12
Location: Ontario

So close...

#16 Post by gcav »

Had another error with kmod and a gzip module...

I cleaned the cache and source cde. I am rebuilding again to see if I can shake it off...


gc

User avatar
gcav
Posts: 104
Joined: Fri 25 May 2012, 04:12
Location: Ontario

Re: So close... Issue-3-

#17 Post by gcav »

gcav wrote:Had another error with kmod and a gzip module...

I cleaned the cache and source cde. I am rebuilding again to see if I can shake it off...

gc

Could not shake it off..
Before I go in a mess things around, maybe Barry or someone with T2 experience has encountered this.

zlib.pc is there..

==[hook_eval:129 (last $?=0)> '[' 5 ']'
==[hook_eval:129 (last $?=0)> eval kmod_find_zlib
===[hook_eval:129 (last $?=0)> kmod_find_zlib
===[kmod_find_zlib:45 (last $?=0)> '[' -f /lib/pkgconfig/zlib.pc ']'
===[kmod_find_zlib:45 (last $?=0)> '[' '!' -f /usr/lib/pkgconfig/zlib.pc ']'
===[kmod_find_zlib:45 (last $?=0)> cp -a /lib/pkgconfig/zlib.pc /usr/lib/pkgconfig/
===[kmod_find_zlib:46 (last $?=0)> '[' -f /lib64/pkgconfig/zlib.pc ']'
Due to previous errors, no 5-kmod.log file!
Attachments
5-kmod.err.gz
(2.28 KiB) Downloaded 263 times

User avatar
gcav
Posts: 104
Joined: Fri 25 May 2012, 04:12
Location: Ontario

So close...

#18 Post by gcav »

No feedback. So started messing around..

Commented out Barry's hook from kmod.def

#hook_add preconf 5 "kmod_find_zlib"

recompile restarted...

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

Re: So close...

#19 Post by BarryK »

gcav wrote:No feedback. So started messing around..

Commented out Barry's hook from kmod.def

#hook_add preconf 5 "kmod_find_zlib"

recompile restarted...
Hmmm, very strange that you are getting the "cannot find zlib" problem.

I had that problem originally, which is why I put that hook in.

You don't need to recompile from the beginning, when you get an error.

Just do:
# ./scripts/Cleanup -cache

then make changes to kmod.conf, or whatever, then run:
# ./scripts/Build-Target -cfg wary6

...you can keep looping around until it compiles.
[url]https://bkhome.org/news/[/url]

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

Re: So close...

#20 Post by BarryK »

gcav wrote:No feedback. So started messing around..

Commented out Barry's hook from kmod.def

#hook_add preconf 5 "kmod_find_zlib"

recompile restarted...
They are very strange errors you are getting.
It seems that the shell (bash, sh) is unable to handle the syntax of my hook function.

Did you make any changes to the package selection?

What host distro are you running on?

Note, one fix is to manually copy build/..../lib/pkgconfig/zlib.pc to build/..../usr/lib/pkgconfig/
[url]https://bkhome.org/news/[/url]

Post Reply