migrate from Gentoo to Debian for a smaller image

This commit is contained in:
2024-12-05 09:05:22 -08:00
parent d1b7130916
commit eb4f7b7e8d
4 changed files with 340 additions and 15 deletions

View File

@@ -1,16 +1,48 @@
FROM gentoo/portage AS portage FROM i386/debian
FROM gentoo/stage3:i686-openrc ADD extras /tmp/extras
COPY --from=portage /var/db/repos/gentoo /var/db/repos/gentoo RUN apt update && apt install -y build-essential git joe bison libncurses5 libncurses5-dev && \
RUN FEATURES="parallel-fetch" EMERGE_DEFAULT_OPTS="--autounmask-write --quiet-build=y" emerge eselect-repository dev-vcs/git joe && \ git clone https://github.com/arnoldrobbins/trn && \
eselect repository enable salfter && \ cd trn && \
emaint sync -r salfter && \ cp /tmp/extras/* . && \
emerge trn && \ yes | ./Configure -dse \
emerge -C git && \ -D phost=alfter.diespammersdie.us \
emerge --depclean && \ -D orgname='USS Voyager NCC-74656, Delta Quadrant' \
eselect repository disable salfter && \ -D defeditor='/usr/bin/joe' \
rm -r /var/db/repos/gentoo/* /var/db/repos/salfter/* && \ -D active='remote' \
-D acttimes='remote' \
-D bin='/usr/bin' \
-D binexp='/usr/bin' \
-D cc='gcc' \
-D cpprun='gcc -E' \
-D cppstdin='gcc -E' \
-D d_genauth='define' \
-D d_local='undef' \
-D extrainews='' \
-D filexp='/usr/lib/trn/filexp' \
-D groupdesc='' \
-D hostbits='0' \
-D installbin='/usr/local/bin' \
-D installinews='/usr/local/bin' \
-D installprivlib='/usr/local/lib/trn' \
-D mimecap='' \
-D myactive='.falseactive' \
-D newslib='/tmp' \
-D newslibexp='/tmp' \
-D newsspool='none' \
-D overviewdir='remote' \
-D overviewfmt='none' \
-D prefix='/usr' \
-D prefixexp='/usr' \
-D privlib='/usr/local/lib/trn' \
-D privlibexp='/usr/local/lib/trn' \
-D servername='no default' \
-D subscriptions='' \
-D threaddir='remote' \
-D useinews='/usr/bin/inews' && \
patch -p0 <post-config.patch && \
make && make install && \
useradd -mc "Scott Alfter" scott && \ useradd -mc "Scott Alfter" scott && \
ln -sf /usr/share/zoneinfo/US/Pacific /etc/localtime ln -sf /usr/share/zoneinfo/US/Pacific /etc/localtime && \
apt remove -y build-essential git bison libncurses5-dev && apt -y autoremove && rm -rf /var/lib/apt/lists/* /tmp/extras
WORKDIR /home/scott WORKDIR /home/scott
ENTRYPOINT ["/usr/bin/trn"] ENTRYPOINT ["/usr/local/bin/trn"]

View File

@@ -2,7 +2,7 @@ containerized trn
================= =================
This builds trn (from https://github.com/arnoldrobbins/trn) under 32-bit This builds trn (from https://github.com/arnoldrobbins/trn) under 32-bit
Gentoo Linux in a container. Build it: Debian Linux in a container. Build it:
```docker build -t salfter/trn .``` ```docker build -t salfter/trn .```

271
extras/config.sh.debian Normal file
View File

@@ -0,0 +1,271 @@
#!/bin/sh
#
# This file was produced by running the Configure script. It holds all the
# definitions figured out by Configure. Should you modify one of these values,
# do not forget to propagate your changes by running "Configure -der". You may
# instead choose to run each of the .SH files by yourself, or "Configure -S".
#
# Package name : trn
# Source directory : .
# Configuration time: Thu Dec 5 05:47:03 UTC 2024
# Configured by : root
# Target system : linux 2ab39202a68c 6.12.1-arch1-1 #1 smp preempt_dynamic fri, 22 nov 2024 16:04:27 +0000 x86_64 gnulinux
Id=''
Log=''
Mcc='Mcc'
_a='.a'
_exe=''
_o='.o'
active='remote'
acttimes='remote'
aphostcmd='/usr/bin/hostname'
archobjs=''
awk='/usr/bin/awk'
basename='/usr/bin/basename'
bash='/usr/bin/bash'
bin='/usr/local/bin'
binexp='/usr/local/bin'
byacc='byacc'
c=''
cat='/usr/bin/cat'
cc='gcc'
ccflags='-fpcc-struct-return -I/usr/local/include'
cf_by='root'
cf_time='Thu Dec 5 05:47:03 UTC 2024'
citydist='none'
cntrydist='none'
comm='/usr/bin/comm'
contains='grep'
contdist='none'
cp='/usr/bin/cp'
cpp='/usr/bin/cpp'
cppflags='-fpcc-struct-return -I/usr/local/include -D__GNUC__'
cpplast='-'
cppminus='-'
cpprun='gcc -E'
cppstdin='gcc -E'
csh='csh'
d_acttimes='define'
d_attribut='define'
d_berknames='define'
d_bsd='undef'
d_dirnamlen=''
d_eunice='undef'
d_ftime='define'
d_genauth='define'
d_getcwd='define'
d_getdname='undef'
d_gethname='define'
d_getpwent='define'
d_gettimeod='define'
d_getwd='define'
d_gnulibc='define'
d_havetlib='undef'
d_ignoreorg='undef'
d_inews='define'
d_internet='define'
d_libndir='undef'
d_local='undef'
d_memcmp='define'
d_memcpy='define'
d_memset='define'
d_mkdir='define'
d_msdos='undef'
d_newsadm='define'
d_nntp='define'
d_nolnbuf='undef'
d_normsig='define'
d_novoid='undef'
d_passnames='define'
d_phostcmd='define'
d_portable='undef'
d_rdchk='undef'
d_rename='define'
d_resinit='undef'
d_sigblock='define'
d_sighold='define'
d_sizet='undef'
d_strccmp='define'
d_strchr='define'
d_strftime='define'
d_strstr='define'
d_uname='undef'
d_usendir='undef'
d_usgnames='undef'
d_uwait3=''
d_uwait='undef'
d_vfork='undef'
d_voidsig='define'
d_voidtty=''
d_wifstat='define'
d_xenix='undef'
d_xthread='define'
date='/usr/bin/date'
defeditor='/usr/bin/joe'
diff='/usr/bin/diff'
direntrytype='struct dirent'
echo='/usr/bin/echo'
ed='ed'
egrep='/usr/bin/egrep'
eunicefix=':'
exe_ext=''
expr='/usr/bin/expr'
extrainews=''
filexp='/usr/local/lib/trn/filexp'
find=''
firstmakefile=''
gccversion='12.2.0'
glibpth='/shlib /usr/shlib /lib/pa1.1 /usr/lib/large /lib /usr/lib /usr/lib/386 /lib/386 /lib/large /usr/lib/small /lib/small /usr/ccs/lib /usr/ucblib /usr/local/lib'
grep='/usr/bin/grep'
groupdesc=''
hint='previous'
hostbits='0'
i_bsdioctl=''
i_dirent='define'
i_ptem='undef'
i_sgtty='undef'
i_stdlib='define'
i_string='define'
i_sysdir='define'
i_sysfilio='undef'
i_sysioctl='define'
i_sysndir='undef'
i_syssockio=''
i_systime='define'
i_syswait='define'
i_termio='undef'
i_termios='define'
i_time='define'
i_unistd='define'
i_utime='define'
i_vfork='undef'
incpath=''
inews='inews'
installbin='/usr/local/bin'
installinews='/usr/local/bin'
installmansrc=''
installprivlib='/usr/local/lib/trn'
ispell='ispell'
ispell_options=''
ispell_prg='none'
jobslib=''
ksh='ksh'
ldflags=' -L/usr/local/lib'
less='/usr/bin/less'
lib_ext='.a'
libc=''
libndir=''
libpth='/usr/local/lib /lib /usr/lib'
libs=' '
libswanted='malloc resolv socket net hdb bbn str nls nsl intl x ucb'
lint=''
lns='/usr/bin/ln -s'
locdist='none'
locincpth='/usr/local/include /opt/local/include /usr/gnu/include /opt/gnu/include /usr/GNU/include /opt/GNU/include'
loclibpth='/usr/local/lib /opt/local/lib /usr/gnu/lib /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib'
mail='mail'
mailer='mail'
mailfile='/var/mail/%L'
manext=''
mansrc=' '
mansrcexp=''
mboxchar='F'
mimecap='/usr/local/etc/mimecap'
mips=''
mips_type=''
mkdir='/usr/bin/mkdir'
more='/usr/bin/more'
multistatedist='none'
mv='/usr/bin/mv'
myactive='.falseactive'
myuname='linux 2ab39202a68c 6.12.1-arch1-1 #1 smp preempt_dynamic fri, 22 nov 2024 16:04:27 +0000 x86_64 gnulinux '
n='-n'
nametype='bsd'
ndirc=''
ndiro=''
newsadmin='news'
newslib='/tmp'
newslibexp='/tmp'
newsspool='none'
nm='/usr/bin/nm'
nm_opt=''
nm_so_opt='--dynamic'
nroff='nroff'
obj_ext='.o'
optimize='-O2'
orgdist='none'
orgname='USS Voyager NCC-74656, Delta Quadrant'
osname='linux'
osvers='6.12.1-arch1-1'
overviewdir='remote'
overviewfmt='none'
package='trn'
pager='/usr/bin/less'
path_sep=':'
perl='/usr/bin/perl'
perlpath='/usr/bin/perl'
pg='pg'
pgp='pgp'
phost='alfter.diespammersdie.us'
phostcmd='hostname'
plibpth=''
prefix='/usr/local'
prefixexp='/usr/local'
prefshell='/usr/bin/bash'
privlib='/usr/local/lib/trn'
privlibexp='/usr/local/lib/trn'
rm='/usr/bin/rm'
rmail='rmail'
rootid='0'
runnm='false'
sed='/usr/bin/sed'
sendmail='sendmail'
servername='no default'
sharpbang='#!'
shsharp='true'
signal_t='void'
smail='smail'
so='so'
sort='/usr/bin/sort'
spackage='Trn'
spell='spell'
spitshell='cat'
src='.'
startsh='#!/bin/sh'
statedist='none'
strftimec=''
strftimeo=''
strings='/usr/include/string.h'
strn='define'
subscriptions=''
sysman='/usr/share/man/man1'
tail='/usr/bin/tail'
tee=''
termlib=''
test='test'
threaddir='remote'
tk='undef'
tkinc=''
tklibs=''
tr='/usr/bin/tr'
trn_init='FALSE'
trn_select='TRUE'
trnl='\n'
uname='/usr/bin/uname'
uniq='/usr/bin/uniq'
useinews='/usr/local/bin/inews'
usenm='false'
usevfork='false'
usrinc='/usr/include'
uuname='uuname'
vi='vi'
void=''
vspell=''
who='/usr/bin/who'
xlibpth='/usr/lib/386 /lib/386'
yacc='bison -y'
yaccflags=''
PATCHLEVEL="4.0-test77 (Sep 1, 2010)"
CONFIG=true

22
extras/post-config.patch Normal file
View File

@@ -0,0 +1,22 @@
--- config.h 2024-12-05 16:39:34.000000000 +0000
+++ config.h 2024-12-05 16:40:11.018017876 +0000
@@ -365,7 +365,7 @@
* This symbol, when defined, indicates that termlib-style routines
* are available. There is nothing to include.
*/
-/*#define HAS_TERMLIB *//**/
+#define HAS_TERMLIB /**/
/* IGNOREORG:
* This symbol, if defined, indicates that the ORGANIZATION environment
--- Makefile 2024-12-05 16:39:34.000000000 +0000
+++ Makefile 2024-12-05 16:40:10.464686461 +0000
@@ -36,7 +36,7 @@
strftimeo =
installfilexp = /usr/local/lib/trn/filexp
-libs = -lm
+libs = -ltermcap -lm
tklibs =
public_backup = trn$(exe) trn-artchk$(exe) $(nntpexe) $(msdosexe)
public_diff = Pnews Rnmail