Hyperbola part 2 - Beginner's guide to installation, w/ DWM as window manager

49 replies [Last post]
andyprough
Offline
Joined: 02/12/2015

I just walked through the Hyperbola Beginner's Guide again and installed the minimal distro. I'm going to write down the steps here for anyone to use, including my future self when I want to re-install it.

With Hyperbola, when I say "minimal", I mean MINIMAL. Here you can see, I'm using all of 45mb of memory at first boot.

AttachmentSize
Hyperbola3FirstBoot.jpg17.06 KB
andyprough
Offline
Joined: 02/12/2015

Here's my first log-in to DWM - 75mb used. Not bad!!!

You would probably have to do a very specialized custom Gentoo build in order to get to a full window manager while using less than 75mb of memory.

I could possibly get less memory used if I install a lighter window manager like jwm or cwm. Might try that real quick.

andyprough
Offline
Joined: 02/12/2015

Here's the picture I was supposed to post with that last message.

hyperbola3FirstDWMlogin.jpg
andyprough
Offline
Joined: 02/12/2015

Here's my first jwm login - down to 69mb of memory used.

hyperbolaJWMfirstLogin.jpg
andyprough
Offline
Joined: 02/12/2015

Here's cwm - down to 68mb of memory now.

hyperbolaCWMfirstLogin.jpg
andyprough
Offline
Joined: 02/12/2015

UPDATE - important notes on the below instructions - in order to have wireless, you will need the wpa_supplicant pacstrap. Do this right after step iii in the first installation post below (the "pacstrap /mnt base") step:
pacstrap /mnt wpa_supplicant

Wireless - in able to get wireless after installing the wpa_supplicant package, need to do the following steps (as root, if you do them during installation):
ip link
From the output of 'ip link', determine the name of your wireless device. It will be something like "wlp2s0". I'll use that for my instructions here.

Enable the wireless device:
ip link set wlp2s0 up

Set up your SSID and wpa password to get on your wifi network of choice:
wpa_supplicant -B -i wlp2s0 -c <(wpa_passphrase "name_of_SSID_in_quotes_here" "passphrase_in_quotes_here")

Bring up the network with dhcpcd:
dhcpcd wlp2s0

andyprough
Offline
Joined: 02/12/2015

Installing minimal hyperbola:
Part A - Mostly just follow the beginner guide all the way through until you have a basic working installation: https://wiki.hyperbola.info/doku.php?id=en:guide:beginners

0. Download the Live ISO (or live talking ISO for our sight-impaired members) from here, and burn it to your favorite bootable USB drive or DVD: https://wiki.hyperbola.info/doku.php?id=en:main:downloads&redirect=1

i. Partition your disk however you partition your disks. I don't like giving people advice on this, as there's too much that can go wrong. Be careful. Back up ALL your data before you do any partitioning. I used a single 32gb ext4 primary partition that I made bootable and that was file-type "linux". And I did not use a swap partition. Worked fine.

YOU WILL BE DOING THE NEXT SEVERAL STEPS AS ROOT, WHICH IS THE ONLY AVAILABLE USER ON THE LIVE ISO

ii. Mount your partition, so you can work on it. My partition is at /dev/sda1 - make sure you know where your partition is and adjust accordingly:
$ mount /dev/sda1 /mnt

iii. Install the Hyperbola "base" system:
$ pacstrap /mnt base

iv. Generate an fstab (file system table):
$ genfstab -U -p /mnt >> /mnt/etc/fstab

v. Chroot into the Hyperbola system to configure it:
$ arch-chroot /mnt

vi. Set your locale (regional and language settings so you can type and interact with the system - I use basic English settings):
$ nano /etc/locale.gen
# choose and un-comment your language/locale setting - mine is 'en_US.UTF-8 UTF-8'. Uncomment that line by removing the '#' symbol at the beginning of it. Save your document by pressing the Ctrl-o key combination, and accepting the document save question. Exit nano by pressing the Ctrl-x key combination.

vii. Generate the locale for your system:
$ locale-gen
$ echo LANG=en_US.UTF-8 > /etc/locale.conf
$ export LANG=en_US.UTF-8

viii. Set up the keymap for your locale. Mine is "us" for United States English:
$ keymap="us"
$ rc-update add keymaps default

xi. set up your timezone. Mine is American-Chicago (for American Central time zone):
$ ln -s /usr/share/zoneinfo/America/Chicago /etc/localtime

xii. Set up your hardware clock:
$ hwclock --systohc --utc

xiii. Set your hostname:
$ echo localhost > /etc/hostname

xiv. Add your hostname to /etc/hosts:
$ nano /etc/hosts
## - add the word "localhost" at the end of each of the lines that start with 127.0.0.1, and ::1, so that the hosts file looks like this:
#
127.0.0.1 localhost.localdomain localhost localhost
::1 localhost.localdomain localhost localhost

## save (Ctrl-o and accept the file name) and exit (Ctrl-x) the file

xv. set your root password by typing a strong password two times (twice) after the prompt (no characters will show up on the screen, but you WILL be typing in your password):
$ passwd

xvi. Install the grub boot loader:
$ pacman -S grub
$ grub-install --target=i386-pc --recheck /dev/sda
$ grub-mkconfig -o /boot/grub/grub.cfg

xvii. Leave the chroot and unmount the partition and reboot
$ exit
$ umount -R /mnt
$ reboot

xviii. Log in as root with the password you made in step xv. Run a command to see how much memory you are using:
$ free -h

TO BE CONTINUED...

andyprough
Offline
Joined: 02/12/2015

Part II - Networking

Networking on Hyperbola is different from most distros. Unless and until you install a bigger desktop environment, you will probably be doing all your network configuration on a daily basis from the command line.

This How-to supposes that you are using ethernet like me. If you are using wireless, there are other instructions, which I'll probably post later. Or you can just read the documentation on the Hyperbola pages.

Ethernet networking:
1. Determine the name of your ethernet device:
ip link
It will be something like "enp0s2" or something.

2. Using the name of the ethernet device, give a command to enable the device:
sudo ip link set enp0s2 up

3. Tell dhcpcd to give you a network address:
sudo dhcpcd

4. Check your network connection by pinging a reliable url:
ping gnu.org

This should put you online. You can now try updating your Hyperbola packages:
sudo pacman -Syyu
Since you just installed, you probably won't have any package updates at this time.

andyprough
Offline
Joined: 02/12/2015

Part III - SETTING UP GRAPHICS AND THE BUILD ENVIRONMENT

We did a super-minimal installation of Hyperbola, so that means that it doesn't come with a graphics stack setup for you, so you are going to have to figure it out for yourself. Here's what I installed to get my graphics working. It's important to note that you need xterm and some fonts and some input libraries (for your mouse and keyboard) installed as well as your graphics packages.

A lot of the graphics packages in Hyperbola are called "xenocara-[something]-[something]". I don't know why or when the term "xenocara" came into use, but it appears to refer to the Xorg version that is used on openBSD from what I'm reading. So, I guess Hyperbola has figured out how to use an OpenBSD Xorg graphics stack. I guess that's probably a good thing!

You'll see I installed the xorg-video-intel package and the video-vesa package - you'll have to get smart and think about some of the basic packages you'll need for your graphics card. libx11, libxft, libxinerama, and xenocara-xinit are all going to be needed later for our DWM window manager that we'll be installing:

sudo pacman -S mesa xenocara-font-util xenocara-fonts-misc-meta xenocara-font-xfree86-type1 xenocara-server xenocara-video-vesa xenocara-xrandr xenocara-input-libinput xenocara-xinit xorg-video-intel xterm libx11 libxft libxinerama

This is going to pull in a lot of extra dependencies of the above packages. After installing all this, it's best to reboot the computer:
sudo reboot

In order to build DWM and some of its accompanying packages, we'll need a build environment. Here's what I installed:
sudo pacman -S base-devel binutils git wget curl

This will pull in a lot of extra packages as dependencies, or as part of the base-devel package, which is kind of a "meta-package" that installs a lot of these build packages for you. It's a good idea to reboot again after this set of packages installs:
$ sudo reboot

andyprough
Offline
Joined: 02/12/2015

PART VI - INSTALLING DWM

I think we are all set to install DWM and have a functioning window manager so we can mess with some of our cool graphical programs, so let's get going.

1. First, set up a "git" folder in your home directory, and move into it:
cd ~
mkdir git
cd git/

2. Remember, we have to re-start our internet each time, so run the earlier commands for starting the internet. Your ethernet device name will probably not be enp0s2 like mine - remember you have to use the 'ip link' command to determine the name of your ethernet device.
sudo ip link set enp0s2 up
sudo dhcpcd

3. Download our code for DWM and its sub-projects Dmenu and slstatus from the suckless.org git repo:
git clone https://git.suckless.org/dwm
git clone https://git.suckless.org/dmenu
git clone https://git.suckless.org/slstatus

4. Make and install DWM, Dmenu, and slstatus:
cd dwm/
sudo make install
cd ../dmenu/
sudo make install
cd ../slstatus/
sudo make install

5. Create an .xinitrc file in our home directory that tells our computer to start DWM when we type "startx" into our tty command line. Here, we'll use the nano editor to create the file. I don't recall if nano was initially installed by the Hyperbola installer, so I'll throw in the installation of nano at the beginning of these instructions:
sudo pacman -S nano
cd ~
nano .xinitrc

6. Here, we've created a new file that we are editing in nano, called ".xinitrc". One thing that this file does is tell the computer what to do if we ever type in the "startx" command at the command prompt. We are going to tell it to start the "slstatus" program (to give us a date and time in our top panel), and to execute the "dwm" command in order to start up DWM. So type the following text into our .xinitrc file that is open in the nano editor:
slstatus &
exec dwm

7. Now save the .xinitrc file in nano by pressing the Ctrl-o key combination and accepting the save of the file by pressing the Enter button. Then exit from nano by pressing the Ctrl-x key combination.

8. Now, back at the command prompt in your tty, let's try to start DWM:
startx

You should be in DWM now. Remember, the left-Alt button is the primary button in DWM. Press left-Alt-p to tell dmenu a program you would like to run. We only have xterm installed right now, so left-Alt-p and then "xterm" will start a terminal for you. left-Alt-Shift-Enter will also start xterm.

9. You can install the iceweasel-uxp web browser now and go explore the internet.
sudo pacman -S iceweasel-uxp

Press the left-Alt-p key combination to start dmenu, and type the first few letters of "iceweasel" and hit the Enter key to start up your new web browser.

To leave DWM, the key combination is left-Alt-Shift-Q.

DWMonHyperbola.jpg
andyprough
Offline
Joined: 02/12/2015

With DWM started and iceweasel-uxp browser running, we are at 170mb of memory in use - which is very good, very low for operating with a web browser open in any kind of a graphical environment.

Not bad, not bad at all!

DWMonHyperbola3.jpg
andyprough
Offline
Joined: 02/12/2015

A few cleanup items on the above procedures.

1. I got the name of the libinput package wrong - it should be "xorg-input-libinput", not "xenocara-input-libinput"
So the graphics installation for me is corrected as:
sudo pacman -S mesa xenocara-font-util xenocara-fonts-misc-meta xenocara-font-xfree86-type1 xenocara-server xenocara-video-vesa xenocara-xrandr xorg-input-libinput xenocara-xinit xorg-video-intel xterm libx11 libxft libxinerama

Also, I forgot to point out we need to create a new user with a password. I'll call my user "trisquel" for now (this is done as root, of course):
useradd -m -G wheel trisquel
passwd trisquel

andyprough
Offline
Joined: 02/12/2015

This one should have said "Part IV". But, Part VI, whatever - I guess my Roman is getting rusty.

lanun
Offline
Joined: 04/01/2021

Some believe it should in fact have said "Part D", following the naming convention you used for the first part.

I totally respect your way of not respecting your own numbering conventions, though, as it shows a strong dedication to protecting your independence from your own past self.

andyprough
Offline
Joined: 02/12/2015

Oh, good point, I'm actually right on track. The next major section will be "Part Panda", and then there will be " Part Chairman Mao", and then "Part Cthulhu", and of course nothing comes after Cthulhu.

jahoti
Offline
Joined: 07/31/2021

I think the conventional spellings of those words are

Part Panda
Part 毛泽东
Part Rege̿̔̉x-based HTML parsers are the cancer that is killing StackOverflow it is too late it is too late we cannot be saved the transgression of a chi͡ld ensures regex will consume all living tissue (except for HTML which it cannot, as previously prophesied) dear lord help us how can anyone survive this scourge using regex to parse HTML has doomed humanity to an eternity of dread torture and security holes using regex as a tool to process HTML establishes a breach between this world and the dread realm of c͒ͪo͛ͫrrupt entities (like SGML entities, but more corrupt) a mere glimpse of the world of reg​ex parsers for HTML will ins​tantly transport a programmer's consciousness into a world of ceaseless screaming, he comes, the pestilent slithy regex-infection wil​l devour your HT​ML parser, application and existence for all time like Visual Basic only worse he comes he comes do not fi​ght he com̡e̶s, ̕h̵i​s un̨ho͞ly radiańcé destro҉ying all enli̍̈́̂̈́ghtenment, HTML tags lea͠ki̧n͘g fr̶ǫm ̡yo​͟ur eye͢s̸ ̛l̕ik͏e liq​uid pain, the song of re̸gular exp​ression parsing will exti​nguish the voices of mor​tal man from the sp​here I can see it can you see ̲͚̖͔̙î̩́t̲͎̩̱͔́̋̀ it is beautiful t​he final snuffing of the lie​s of Man ALL IS LOŚ͖̩͇̗̪̏̈́T ALL I​S LOST the pon̷y he comes he c̶̮omes he comes the ich​or permeates all MY FACE MY FACE ᵒh god no NO NOO̼O​O NΘ stop the an​*̶͑̾̾​̅ͫ͏̙̤g͇̫͛͆̾ͫ̑͆l͖͉̗̩̳̟̍ͫͥͨe̠̅s ͎a̧͈͖r̽̾̈́͒͑e n​ot rè̑ͧ̌aͨl̘̝̙̃ͤ͂̾̆ ZA̡͊͠͝LGΌ ISͮ̂҉̯͈͕̹̘̱ TO͇̹̺ͅƝ̴ȳ̳ TH̘Ë͖́̉ ͠P̯͍̭O̚​N̐Y̡ H̸̡̪̯ͨ͊̽̅̾̎Ȩ̬̩̾͛ͪ̈́̀́͘ ̶̧̨̱̹̭̯ͧ̾ͬC̷̙̲̝͖ͭ̏ͥͮ͟Oͮ͏̮̪̝͍M̲̖͊̒ͪͩͬ̚̚͜Ȇ̴̟̟͙̞ͩ͌͝S̨̥̫͎̭ͯ̿̔̀ͅ

andyprough
Offline
Joined: 02/12/2015

You can't post that portion without the great introductory part as well:

>"Every time you attempt to parse HTML with regular expressions, the unholy child weeps the blood of virgins, and Russian hackers pwn your webapp. Parsing HTML with regex summons tainted souls into the realm of the living. HTML and regex go together like love, marriage, and ritual infanticide. The cannot hold it is too late. The force of regex and HTML together in the same conceptual space will destroy your mind like so much watery putty. If you parse HTML with regex you are giving in to Them and their blasphemous ways which doom us all to inhuman toil for the One whose Name cannot be expressed in the Basic Multilingual Plane, he comes. HTML-plus-regexp will liquify the n​erves of the sentient whilst you observe, your psyche withering in the onslaught of horror."

jahoti
Offline
Joined: 07/31/2021

Sorry! Having regularly parsed HTML with regex for years, I assumed most people here would already be familiar with those stages of universal collapse.

andyprough
Offline
Joined: 02/12/2015

I need a systray in DWM, so let's add one. This will also serve as an intro to "patching" dwm.

1. Install the "patch" command:
sudo pacman -S patch

2. Download the latest 'systray' patch for dwm:
cd ~/git/dwm/
wget https://dwm.suckless.org/patches/systray/dwm-systray-20210418-67d76bd.diff

3. Apply the patch:
patch -i dwm-systray-20210418-67d76bd.diff

4. You'll see that the changes were applied to two files in our dwm directory - config.def.h and dwm.c. In order to re-build dwm with the systray patch, we need to copy the changes that were applied to config.def.h over to config.h:
sudo cp config.h config.h.backup
sudo cp config.def.h config.h

5. Re-build and re-install dwm (takes all of about 1.5 seconds):
sudo make install

6. Log out of dwm with the left-Alt-Shift-Q key combination, and log back in with the 'startx' command.

7. Let's install a little clipboard manager that we can use in our new systray
sudo pacman -S parcellite

8. Now start our new clipboard manager and watch it spring to life in our new systray at the right-corner of our panel, by pressing the left-Alt-p command to start dmenu, and by beginning to type 'parcellite', pressing the Enter button once parcellite shows up as an option in our dmenu.

DWMonHyperbola4.jpg
paolo
Offline
Joined: 08/02/2017

this treads about Hyperbola are interesing but in the future this distro become
based to OpenBSD and not a Gnu/Linux distro.
Probably this installation using the latest .iso died in 2 years

damidu
Offline
Joined: 03/30/2021

I'm not really sure but I think there will be 2 operating system in the years that come. A GNU/Linux one and a BSD one. There are now working on hyperbola 0.4 GNU/Linux-libre and HyperbolaBSD.

andyprough
Offline
Joined: 02/12/2015

Hyperbola developer @throgh said today that it will all converge to just one HyperbolaBSD distro eventually. But for right now they are working on releasing GNU/Linux version 4 which uses a Linux kernel and gets rid of dbus, pulseaudio, polkit, and some other stuff they Hyperbola devs do not like. Also, no "semi-free" languages will be allowed (I think by version 4 of Hyperbola GNU/Linux), including rust, java, mono, nodejs:
https://forums.hyperbola.info/viewtopic.php?id=281

Version 4 should be released fairly soon, I suspect within the next year. They have a pre-release version that some people are testing now. The BSD version will be a few years, as they have to re-write lots of stuff in C and with a free license in order to get it all to work.

Legimet
Offline
Joined: 12/10/2013

What exactly do they mean by "semi-free" languages, and why are OpenJDK and Node on that list?

lanun
Offline
Joined: 04/01/2021

If you follow the link in andyprough's post, you will be invited to "read here about our reasoning for Rust":

https://wiki.hyperbola.info/doku.php?id=en:main:rusts_freedom_flaws

If you have other questions for hyperbola's devs, I think you should ask on their forum, as suggested in the same thread.

Legimet
Offline
Joined: 12/10/2013

Yes, I am aware of their reasons for excluding Rust. Anyway, I found their reasons for excluding OpenJDK: https://www.hyperbola.info/todo/java-removal/. I think they are against trademarks in general.

lanun
Offline
Joined: 04/01/2021

> I think they are against trademarks in general.

You need to read the whole article, they are not saying that:

https://wiki.hyperbola.info/doku.php?id=en:main:rusts_freedom_flaws#comparisons_with_other_software_trademarks

"We are not against all trademarks, only those which explicitly prohibit normal use, patching, and modification. "

Legimet
Offline
Joined: 12/10/2013

True, they're against trademarks that require you to change the name of the software. I checked their repo and they also removed Libreoffice, so it seems that they are pretty strict about this. I'm guessing they would also consider older versions of LaTeX (under LPPL 1.2) to be nonfree.

lanun
Offline
Joined: 04/01/2021

True, they are not against trademarks in general.

However, this is not the topic here, this is a discussion you should have with them, as they quite politely invited anyone to.

Legimet
Offline
Joined: 12/10/2013

OK, sorry for going off topic :)

gaseousness
Offline
Joined: 08/25/2020

"Re: Support for development of packages and applications in Hyperbola 0.4

Help is needed for VLC and LibreOffice: Would be cool to get most dependencies into the repositories so we can start building those big applications. Thanks! "
https://forums.hyperbola.info/viewtopic.php?pid=3251#p3251

Legimet
Offline
Joined: 12/10/2013

I see. Libreoffice has a somewhat vague trademark policy that allows you to use LibreOffice to refer to the software in "substantially unmodified form," so I thought they might find it problematic. Anyway, I don't wish to tell them what to include and what not to include, it is their distro.

andyprough
Offline
Joined: 02/12/2015

>"What exactly do they mean by "semi-free" languages, and why are OpenJDK and Node on that list?"

Not sure. I could guess, but it's better if you go ask them on their forum. They seem quite nice. They've been very kind to me in my short time over there, and treated me not as a newbie when I asked questions but like some kind of respected guest.

andyprough
Offline
Joined: 02/12/2015

>"What exactly do they mean by "semi-free" languages, and why are OpenJDK and Node on that list?"

The Hyperbola dev did a response post to your question today, with info on Hyperbola's problems with Rust, nodejs, java, and mono, and with a definition of "semi-free" languages: https://forums.hyperbola.info/viewtopic.php?pid=3633#p3633

lanun
Offline
Joined: 04/01/2021

Everybody knows the limitations of these languages/platforms, although some refuse to acknowledge the problem on the ground that they do not directly relate to "the four freedoms". The same people are usually OK with Debian moving the GNU Manifesto, and anything coming with it, to non-free. Many of them also consider that freedom has nothing to do with software freedom, and that the only important thing is the licence.

We could all see what happened with, say, CentOS, but it appears some of us were looking elsewhere.

I am glad Hyperbola are making the choices they are making, and fill that space. Your experimenting with Hyperbola + Abrowser is refreshing. Trisquel is filling its own space, and I am more than happy to be able to enjoy both worlds, for different purposes.

andyprough
Offline
Joined: 02/12/2015

>"Your experimenting with Hyperbola + Abrowser is refreshing"

I think it's pretty much anathema to the Hyperbola devs, though. Abrowser is a fork of Firefox, which has the evil Rust programming language, and so that's a no-go for them. So I'm experimenting with non-evil browsers like Netsurf. But they are very not very good at rendering the javascript-heavy websites that dominate the modern web.

I think that ultimately, freedom lovers will need to leave the modern web behind if they want to retain their freedom and their privacy. I think that moving to Gemini space may become more of a necessity as we move forward.

The good thing is, if you were using a distro that focused on interacting with Gemini instead of the html/http(s) web, you could have a much lighter distro using far less memory and CPU to do your basic computer tasks. And you would be so much more private: "Gemini contains no equivalent of User-Agent or Referer headers, and the request format is not extensible so that these cannot be shoehorned in later. In fact, Gemini requests contain nothing other than the URL of the resource being requested. This goes a very long way to preventing user tracking." https://gemini.circumlunar.space/docs/faq.gmi

lanun
Offline
Joined: 04/01/2021

> it's pretty much anathema

That is precisely what makes it refreshing.

I also think we should mention Gemini at least twice a year, together with one or two implementations:

https://proxy.vulpes.one/gemini/drewdevault.com/2020/09/21/Gemini-TOFU.gmi.

Legimet
Offline
Joined: 12/10/2013

I really don't see any freedom issue with these languages, besides Mono and its patent issues. I fully acknowledge that modifying them requires you to change the name, I just don't see this as a problem. (Although this is not the case with Node.js as far as I can tell) If OpenJDK is nonfree or semifree for that reason, so is Libreoffice, whose trademark requires a name change if you make "substantial" modifications.

I do agree that the modern web is bad for software freedom. Gemini seems like a good idea but I have never used it.

andyprough
Offline
Joined: 02/12/2015

I use the Lagrange Gemini browser on Trisquel. You can be up and running with Lagrange on Gemini in about 2 minutes.

Search duckduckgo for "github lagrange gemini". That will take you to the github page for Lagrange, which is pretty much the nicest Gemini browser. Go to the Releases link, and download the latest Appimage, which is version 1.7.3. Right-click on the download and go to properties, Permissions tab, and click the box to make it executable. Then double-click the Appimage and you are on the Gemini network.

In Lagrange, hit your hamburger menu in the upper right hand corner, and click the option to open a sidebar either to the right or the left. The second link in the sidebar is "Getting Started", which will link you with a Gemini search engine, a Gemini directory, and other points of interest. The "Lagrange" link in the sidebar will give you a thorough training in how to use Lagrange and how to navigate Gemini.

Avron
Offline
Joined: 08/18/2020

I just installed Lagrange from Guix. Installing anything with Guix usually takes a crazy time, installing Lagrange was almost instantaneous, incredible.

I used another Gemini browser before (Kristall), Lagrange seems so much better. Thanks for mentioning it!

Side note: it reminds me of the time when I was using Netscape.

andyprough
Offline
Joined: 02/12/2015

Lagrange is awesome. Bookmarks and the sidebars really make it work like a normal browser. I'm trying to spend about half my lazy-browsing-time in there, finding GNU/Linux stuff and bookmarking it.

I need to make my own Gemini capsule.

jahoti
Offline
Joined: 07/31/2021

If you make one (or have website), please share the link!

jahoti
Offline
Joined: 07/31/2021

> I fully acknowledge that modifying them requires you to change the name, I just don't see this as a problem.

To be fair- and perhaps display my ignorance of the situation- it can severely limit the freedom to distribute modified versions if doing so requires changing a suite of strings in undocumented locations throughout the entire program (e.g. Firefox).

Excluding Node.js does seem a bit extreme, however; as much as I genuinely wish death upon that excuse for a tool and the toxic ecosystem that accompanies it, stripping it out seems to involve removing some very useful packages for relatively little benefit.

Legimet
Offline
Joined: 12/10/2013

You don't actually need to change every single string in a program to rebrand it. Firefox already comes with different options for branding without the Firefox name/logo, and these are used for the nightly and developer versions: https://searchfox.org/mozilla-release/source/browser/branding. You can see how Librewolf does it, they just include their own branding directory and choose it at build time.

There is a trademark-related freedom issue with Firefox, and it is that the trademark policy prevents you from selling the unmodified version of Firefox available on mozilla.org. This doesn't apply to distros which distribute modified versions.

I do agree that the Node.js ecosystem sucks, and that seems to be the reason, along with the lack of compatibility with LibreSSL, that Hyperbola removed it.

jahoti
Offline
Joined: 07/31/2021

I see- thank you for correcting my misunderstanding! In that case, it does seem odd to completely remove the offending packages rather than just rebrand them.

lanun
Offline
Joined: 04/01/2021

> just rebrand them

Do you mean rebranding Rust or rebranding Firefox?

Also, if you find Hyperbola's policies to be odd, you always have an obvious workaround. That's the great thing with free software: diversity. It is just great to have so much choice between FSDG compliant distros. Complaining about it would be the odd thing to do.

Legimet
Offline
Joined: 12/10/2013

This chain of conversation was about how much work it is to rebrand software that is trademark-restricted, and whether this is really a restriction on your freedom. I pointed out that rebranding Firefox is pretty straightforward, the way that Librewolf does it at least. You don't have to replace every instance of "Firefox" in the entire source code, just build it with unofficial branding.

And I don't think any of us were complaining about Hyperbola's policies. I don't use Hyperbola, so their exclusion of certain free software that I use (such as some Java applications) doesn't affect me. I was just asking out of curiosity, because I had no idea what they meant by semifree (the FSF doesn't use this term). Now I understand that they are referring to certain types of trademark restrictions.

Also, I'm not sure what false accusations the Hyperbola forum thread is referring to. I hope they aren't referring to this thread. Besides the resident troll who trashes any thread about software that he doesn't use.

jahoti
Offline
Joined: 07/31/2021

> Do you mean rebranding Rust or rebranding Firefox?

I meant Rust and OpenJDK.

> Also, if you find Hyperbola's policies to be odd, you always have an obvious workaround. That's the great thing with free software: diversity. It is just great to have so much choice between FSDG compliant distros. Complaining about it would be the odd thing to do.

Absolutely! Like Legimet, I don't mean to complain about Hyperbola's policies, just to express a lack of understanding about their reasoning. With any luck that will change after further research (I'm loathe to ask them directly, given it seems to be a sore point).

Indeed, their decision is something to be grateful for; without it the issues they mention may never have been discussed.

gaseousness
Offline
Joined: 08/25/2020

Pretty sure, I recall hearing RMS (maybe in the Q and A part of the more recent Ukraine video?) saying something along the lines that languages aren't really free or non-free, stuff like the compiler he brought up though? Maybe software is not the same as language, and can be tought of another way like http://www.gnu.org/philosophy/network-services-arent-free-or-nonfree.html

jahoti
Offline
Joined: 07/31/2021

Indeed, languages cannot be copyrighted or made "proprietary" in any reasonable sense and therefore are neither free nor non-free. What can be free or non-free are software and tools that programmers writing that language need, and where one set of tools is almost always used for a language they are often conflated.

lanun
Offline
Joined: 04/01/2021

> conflated

Yet another word we will soon have to forget about because a new sense has now clearly emerged, with the indomitable result of the original and the new meanings being often conflated with each other, leaving the reader confused.

https://www.thefreedictionary.com/conflate