[prev in list] [next in list] [prev in thread] [next in thread] 

List:       bird-users
Subject:    Re: Build for Debian MIPS
From:       Maria_Matějka <maria.matejka () nic ! cz>
Date:       2020-04-05 6:18:21
Message-ID: 1DD4F1D0-EAD6-451A-A3D8-A1AD903F1E01 () nic ! cz
[Download RAW message or body]

It should probably happen shortly after we release the new version. Which is \
something we're usually quite lazy to do so I would expect it to happen in let's say \
a month or so. Until that, it should be pretty straightforward to apply the commit on \
almost any recent BIRD version source as this fix is completely independent on any \
recent development. Maria

On April 5, 2020 1:45:06 AM GMT+02:00, Ross Tajvar <ross@tajvar.io> wrote:
> Thank you Maria! When will that update reach the Debian source repo, so
> I
> can build the package?
> 
> On Sat, Apr 4, 2020 at 7:27 PM Maria Matějka <maria.matejka@nic.cz>
> wrote:
> 
> > Hello!
> > Hopefully fixed in current master, commit 2928c5bcc7
> > The affected test was broken itself, yet it accidentally somehow
> worked on
> > little endian.
> > Maria
> > 
> > On April 4, 2020 1:42:58 AM GMT+02:00, "Maria Matějka" <
> > maria.matejka@nic.cz> wrote:
> > > 
> > > Hello!
> > > 
> > > I've just replicated the bug via the proot approach. Thank you a lot
> for
> > > your help!
> > > 
> > > Maria
> > > 
> > > On April 2, 2020 1:47:32 PM GMT+02:00, Clemens Schrimpe <
> > > clemens.schrimpe@gmail.com> wrote:
> > > > 
> > > > Hallo all -
> > > > 
> > > > I built BIRD (1.x and 2.x) for the EdgeRouter platforms(!) myself
> for
> > > > many years now and I still do. At first I used a "proot"
> environment with
> > > > QEMU on a Ubuntu environment, but I have moved on to compiling it
> directly
> > > > on the machines in question a while ago. EdgeRouters (especially
> the "XG"
> > > > or "Infinity" types) have more than enough CPU and RAM to do it
> there, it's
> > > > just the "local storage" and the way their firmware is updated,
> which
> > > > prevents you from "just doing it".
> > > > 
> > > > The solution is simple, though: Current EdgeOS versions support the
> > > > USB-Port on those routers and you can just plug in a cheap thumb
> drive or
> > > > even a real SSD/HD with a USB-Interface. Format it with ext3/ext4,
> mount it
> > > > to /mnt for example, clone the current OS onto it, like so:
> > > > 
> > > > rsync -aAXv
> > > > 
> --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/
> 
> > > > root.dev/*"} / /mnt/
> > > > 
> > > > create shadow-mounts for the special kernel filesystems:
> > > > 
> > > > mount --rbind /dev  /mnt/dev
> > > > mount --rbind /proc /mnt/proc
> > > > mount --rbind /sys  /mnt/sys
> > > > 
> > > > and now you can chroot into your development environment:
> > > > 
> > > > chroot /mnt /bin/bash --login
> > > > 
> > > > and (bonus track) even start an sshd *within* this environment for
> > > > easier access later:
> > > > 
> > > > mkdir /var/run/sshd /run/sshd # may fail on either
> > > > 
> > > > /usr/sbin/sshd -p 222 -o Protocol=2
> > > > 
> > > > which runs on port 222 now (vs. the "normal" sshd, running on port
> 22).
> > > > 
> > > > Depending on the EdgeOS Version (1.x or 2.x) you install additional
> > > > packages need for development. Here are some suggestions
> > > > (non-comprehensive):
> > > > 
> > > > Packages for 2.x:
> > > > 
> > > > wget
> > > > git
> > > > build-essential
> > > > autoconf
> > > > locales-all
> > > > cscope
> > > > ncurses-dev
> > > > libssl-dev
> > > > libev-dev
> > > > liblzo2-dev
> > > > libpam-dev
> > > > minizip
> > > > flex
> > > > bison
> > > > libperl-dev
> > > > libreadline-dev
> > > > libpcre3-dev
> > > > libpcap-dev
> > > > libldap-dev
> > > > libtalloc-dev
> > > > libcap2-dev
> > > > libmemcached-dev
> > > > libjson-c-dev
> > > > libgdbm-dev
> > > > libsqlite3-dev
> > > > libssh-dev
> > > > libssh2-1-dev
> > > > 
> > > > binutils manuell nachinstallieren! (dpkg -i ...)
> > > > 
> > > > 
> > > > ------
> > > > 
> > > > Packages for 1.x:
> > > > 
> > > > 
> > > > autoconf
> > > > locales-all
> > > > cscope
> > > > ncurses-dev
> > > > libssl-dev
> > > > libev-dev
> > > > liblzo2-dev
> > > > libpam-dev
> > > > flex
> > > > bison
> > > > libperl-dev
> > > > libreadline-dev
> > > > libpcre3-dev
> > > > libpcap-dev
> > > > libldap-dev
> > > > libtalloc-dev
> > > > libcap2-dev
> > > > libmemcached-dev
> > > > libgdbm-dev
> > > > libsqlite3-dev
> > > > libssh-dev
> > > > libssh2-1-dev
> > > > 
> > > > 
> > > > Why am I doing this on this "shadow root" again? Because every
> EdgeOS
> > > > update wipes *everything*, except for /config (which is why I place
> my
> > > > compiled "modules" (binaries), like BIRD, into /config/opt/bird/...
> for
> > > > example → *./configure -prefix=/config/opt/bird* .
> > > > 
> > > > This has been working very well for me in a while and I am
> compiling all
> > > > sorts of tools all the time within this "Build jail".
> > > > 
> > > > Tools needed to start this off (mkfs, rsync, etc.) are either
> already on
> > > > the platform or can be installed through the officially supported
> "apt-get"
> > > > mechanism.
> > > > 
> > > > The above was quickly copy&pasted together from what I have on my
> > > > terminal windows right now and and is surely lacking a step or two
> along
> > > > the way, sorry. Please feel free to ask for more detailed
> instructions if
> > > > you get stuck somewhere.
> > > > 
> > > > Greeting,
> > > > 
> > > > Clemens
> > > > 
> > > > PS: If you want to cover the whole EdgeRouter platform you'll need
> to do
> > > > this *twice* - once on an ER-Pro/ER-Infinity and once on an ER-10X
> (the
> > > > only X-router with an open USB port), as the former is MIPS-BE and
> the
> > > > latter is MIPS-LE ... yes, all of these can somehow be "emulated",
> but I
> > > > just found it much easier to create/operate/maintain those build
> > > > environments on their respective *native* platforms - besides: They
> are
> > > > incredibly cheap - even the Infinity router (8 x SFP+, 116 CPUs -
> 16G RAM -
> > > > bored beyond belief) is comparatively cheap.
> > > > 
> > > > We've not been able to build ourselves on MIPS yet, we went into
> some
> > > > strange problems last time (don't remember exactly). Were you so
> kind
> > > > please and could you please help us setting up Debian for MIPS in
> QEMU if I
> > > > fail to manage it once more?
> > > > The main issue was, what hardware to choose and how to boot it. But
> I'll
> > > > try once more before asking any detailed question. Then we can
> replicate
> > > > your issue and probably even build and test for MIPS.
> > > > 
> > > > 
> > > > 
> > --
> > Sent from my Android device with K-9 Mail. Please excuse my brevity.
> > 

-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.


[Attachment #3 (text/html)]

<html><head></head><body>It should probably happen shortly after we release the new \
version. Which is something we're usually quite lazy to do so I would expect it to \
happen in let's say a month or so.<br>Until that, it should be pretty straightforward \
to apply the commit on almost any recent BIRD version source as this fix is \
completely independent on any recent development.<br>Maria<br><br><div \
class="gmail_quote">On April 5, 2020 1:45:06 AM GMT+02:00, Ross Tajvar \
&lt;ross@tajvar.io&gt; wrote:<blockquote class="gmail_quote" style="margin: 0pt 0pt \
0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"> <div \
dir="ltr">Thank you Maria! When will that update reach the Debian source repo, so I \
can build the package?</div><br><div class="gmail_quote"><div dir="ltr" \
class="gmail_attr">On Sat, Apr 4, 2020 at 7:27 PM Maria Matějka &lt;<a \
href="mailto:maria.matejka@nic.cz">maria.matejka@nic.cz</a>&gt; \
wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div \
style="overflow-wrap: break-word;">Hello!<br>Hopefully fixed in current master, \
commit 2928c5bcc7<br>The affected test was broken itself, yet it accidentally somehow \
worked on little endian. <br>Maria<br><br><div class="gmail_quote">On April 4, 2020 \
1:42:58 AM GMT+02:00, "Maria Matějka" &lt;<a href="mailto:maria.matejka@nic.cz" \
target="_blank">maria.matejka@nic.cz</a>&gt; wrote:<blockquote class="gmail_quote" \
style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid \
rgb(204,204,204);padding-left:1ex"> Hello!<br><br>I've just replicated the bug via \
the proot approach. Thank you a lot for your help!<br><br>Maria <br><br><div \
class="gmail_quote">On April 2, 2020 1:47:32 PM GMT+02:00, Clemens Schrimpe &lt;<a \
href="mailto:clemens.schrimpe@gmail.com" \
target="_blank">clemens.schrimpe@gmail.com</a>&gt; wrote:<blockquote \
class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid \
rgb(204,204,204);padding-left:1ex"> <font face="Courier New"><span \
style="font-size:12px">Hallo all -</span></font><div><font face="Courier New"><span \
style="font-size:12px"><br></span></font></div><div><font face="Courier New"><span \
style="font-size:12px">I built BIRD (1.x and 2.x) for the EdgeRouter platforms(!) \
myself for many years now and I still do. At first I used a "proot" environment with \
QEMU on a Ubuntu environment, but I have moved on to compiling it directly on the \
machines in question a while ago. EdgeRouters (especially the "XG" or "Infinity" \
types) have more than enough CPU and RAM to do it there, it's just the "local \
storage" and the way their firmware is updated, which prevents you from "just doing \
it".</span></font></div><div><font face="Courier New"><span \
style="font-size:12px"><br></span></font></div><div><font face="Courier New"><span \
style="font-size:12px">The solution is simple, though: Current EdgeOS versions \
support the USB-Port on those routers and you can just plug in a cheap thumb drive or \
even a real SSD/HD with a USB-Interface. Format it with ext3/ext4, mount it to /mnt \
for example, clone the current OS onto it, like so:</span></font></div><div><font \
face="Courier New"><span style="font-size:12px"><br></span></font></div><div><font \
face="Courier New"><span style="font-size:12px"><span \
style="white-space:pre-wrap">	</span>rsync -aAXv \
--exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/<a \
href="http://root.dev/*" target="_blank">root.dev/*</a>"} / \
/mnt/</span></font></div><div><font face="Courier New"><span \
style="font-size:12px"><br></span></font></div><div><font face="Courier New"><span \
style="font-size:12px">create shadow-mounts for the special kernel \
filesystems:</span></font></div><div><font face="Courier New"><span \
style="font-size:12px"><br></span></font></div><div><font face="Courier New"><span \
style="font-size:12px"><span style="white-space:pre-wrap">	</span>mount --rbind /dev \
&nbsp;/mnt/dev<br><span style="white-space:pre-wrap">	</span>mount --rbind /proc \
/mnt/proc<br><span style="white-space:pre-wrap">	</span>mount --rbind /sys \
&nbsp;/mnt/sys</span></font></div><div><font face="Courier New"><span \
style="font-size:12px"><br></span></font></div><div><font face="Courier New"><span \
style="font-size:12px">and now you can chroot into your development \
environment:</span></font></div><div><font face="Courier New"><span \
style="font-size:12px"><br></span></font></div><div><font face="Courier New"><span \
style="font-size:12px"><span style="white-space:pre-wrap">	</span>chroot /mnt \
/bin/bash --login</span></font></div><div><font face="Courier New"><span \
style="font-size:12px"><br></span></font></div><div><font face="Courier New"><span \
style="font-size:12px">and (bonus track) even start an sshd <i>within</i><span \
style="font-style:normal">&nbsp;this environment for easier access \
later:</span></span></font></div><div><font face="Courier New"><span \
style="font-size:12px"><br></span></font></div><div><font face="Courier New"><span \
style="font-size:12px"><span style="white-space:pre-wrap">	</span>mkdir /var/run/sshd \
/run/sshd<span style="white-space:pre-wrap">	</span><font color="#ff2600"># may fail \
on either</font></span></font><div><font face="Courier New"><span \
style="font-size:12px"><br></span></font></div><div><font face="Courier New"><span \
style="font-size:12px"><span style="white-space:pre-wrap">	</span>/usr/sbin/sshd -p \
222 -o Protocol=2</span></font></div><div><font face="Courier New"><span \
style="font-size:12px"><br></span></font></div><div><div><font face="Courier \
New"><span style="font-size:12px">which runs on port 222 now (vs. the "normal" sshd, \
running on port 22).</span></font></div></div><div><font face="Courier New"><span \
style="font-size:12px"><br></span></font></div><div><font face="Courier New"><span \
style="font-size:12px">Depending on the EdgeOS Version (1.x or 2.x) you install \
additional packages need for development. Here are some suggestions \
(non-comprehensive):</span></font></div><div><font face="Courier New"><span \
style="font-size:12px"><br></span></font></div></div><blockquote style="margin:0px \
0px 0px 40px;border:none;padding:0px"><div><div><font face="Courier New"><span \
style="font-size:12px">Packages for 2.x:</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px"><br></span></font></div></div><div><div><font face="Courier \
New"><span style="font-size:12px">wget</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">git</span></font></div></div><div><div><font face="Courier \
New"><span style="font-size:12px">build-essential</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">autoconf</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">locales-all</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">cscope</span></font></div></div><div><div><font face="Courier \
New"><span style="font-size:12px">ncurses-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libssl-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libev-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">liblzo2-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libpam-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">minizip</span></font></div></div><div><div><font face="Courier \
New"><span style="font-size:12px">flex</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">bison</span></font></div></div><div><div><font face="Courier \
New"><span style="font-size:12px">libperl-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libreadline-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libpcre3-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libpcap-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libldap-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libtalloc-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libcap2-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libmemcached-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libjson-c-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libgdbm-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libsqlite3-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libssh-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libssh2-1-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px"><br></span></font></div></div><div><div><font face="Courier \
New"><span style="font-size:12px">binutils&nbsp;manuell nachinstallieren! (dpkg -i \
...)</span></font></div></div><div><div><font face="Courier New"><span \
style="font-size:12px"><br></span></font></div></div><div><div><font face="Courier \
New"><span style="font-size:12px"><br></span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">------</span></font></div></div><div><div><font face="Courier \
New"><span style="font-size:12px"><br></span></font></div></div><div><div><font \
face="Courier New"><span style="font-size:12px">Packages for \
1.x:</span></font></div></div><div><div><font face="Courier New"><span \
style="font-size:12px"><br></span></font></div></div><div><div><font face="Courier \
New"><span style="font-size:12px"><br></span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">autoconf</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">locales-all</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">cscope</span></font></div></div><div><div><font face="Courier \
New"><span style="font-size:12px">ncurses-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libssl-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libev-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">liblzo2-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libpam-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">flex</span></font></div></div><div><div><font face="Courier \
New"><span style="font-size:12px">bison</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libperl-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libreadline-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libpcre3-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libpcap-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libldap-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libtalloc-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libcap2-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libmemcached-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libgdbm-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libsqlite3-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libssh-dev</span></font></div></div><div><div><font \
face="Courier New"><span \
style="font-size:12px">libssh2-1-dev</span></font></div></div></blockquote><div><div><font \
face="Courier New"><span style="font-size:12px"><br></span></font></div><div><font \
face="Courier New"><span style="font-size:12px">Why am I doing this on this "shadow \
root" again? Because every EdgeOS update wipes <b>everything</b>, except for /config \
(which is why I place my compiled "modules" (binaries), like BIRD, into \
/config/opt/bird/... for example&nbsp;→ <i>./configure \
-prefix=/config/opt/bird</i>&nbsp;.</span></font></div><div><font face="Courier \
New"><span style="font-size:12px"><br></span></font></div><div><font face="Courier \
New"><span style="font-size:12px">This has been working very well for me in a while \
and I am compiling all sorts of tools all the time within this "Build \
jail".&nbsp;</span></font></div><div><font face="Courier New"><span \
style="font-size:12px"><br></span></font></div><div><font face="Courier New"><span \
style="font-size:12px">Tools needed to start this off (mkfs, rsync, etc.) are either \
already on the platform or can be installed through the officially supported \
"apt-get" mechanism.</span></font></div><div><font face="Courier New"><span \
</blockquote></div><br>-- <br>Sent from my Android device with K-9 Mail. Please \
excuse my brevity.</body></html>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic