{"id":15007287,"url":"https://github.com/glasnostlinux/glasnost","last_synced_at":"2025-10-30T11:31:46.052Z","repository":{"id":41486759,"uuid":"281407690","full_name":"glasnostlinux/glasnost","owner":"glasnostlinux","description":"An experimental Linux distribution based on KISS Linux. Runs on various architectures and allows cross-compilation.","archived":false,"fork":false,"pushed_at":"2023-03-06T19:17:05.000Z","size":7607,"stargazers_count":33,"open_issues_count":10,"forks_count":5,"subscribers_count":3,"default_branch":"crossbuild","last_synced_at":"2025-02-02T08:11:49.394Z","etag":null,"topics":["kiss-repo","linux","linux-distribution","linux-distro","repository"],"latest_commit_sha":null,"homepage":"https://www.glasnost.org","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/glasnostlinux.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-21T13:37:38.000Z","updated_at":"2024-10-21T00:18:45.000Z","dependencies_parsed_at":"2023-02-08T13:16:10.185Z","dependency_job_id":null,"html_url":"https://github.com/glasnostlinux/glasnost","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glasnostlinux%2Fglasnost","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glasnostlinux%2Fglasnost/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glasnostlinux%2Fglasnost/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glasnostlinux%2Fglasnost/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/glasnostlinux","download_url":"https://codeload.github.com/glasnostlinux/glasnost/tar.gz/refs/heads/crossbuild","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238960405,"owners_count":19559259,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["kiss-repo","linux","linux-distribution","linux-distro","repository"],"created_at":"2024-09-24T19:07:48.220Z","updated_at":"2025-10-30T11:31:36.099Z","avatar_url":"https://github.com/glasnostlinux.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [Glasnost Linux](https://www.glasnost.org) Main Repo\n\nGlasnost Linux is a Linux distribution forked from [KISS Linux](https://kisslinux.org/)\n\n## Differences between KISS Linux and Glasnost Linux\n - Clang is used as the default compiler instead of gcc\n - LLVM bintuils are used instead of GNU binutils\n - The KISS package manager is modified to support cross-compilation and rudimentary binary package updates\n - Cross compilation of packages is supported wherever possible\n - Built packages are located in: ~/.cache/kiss/bin/_arch_\n - **kiss-bup** utility is provided to allow binary package updates on remote machines. Uses busybox httpd and curl\n - For the KISS package manager, a value in the 2nd field of the `depends` file now implies that a package is required on the build machine, but not on the target machine\n \nThis system allows cross compilation of packages between any of the supported architectures:\n - aarch64\n - armv7\n - i686\n - powerpc64\n - powerpc64le\n - riscv64\n - x86_64\n \nchroot tarballs are provided for each architecture [here](https://github.com/glasnostlinux/glasnost/releases).\n\nThis distribution is currently intended only for experienced Linux users. Installation should be treated similar to [KISS Linux](https://kisslinux.org/install).\n\nIf you don't want to use the tarballs, it may be possible to bootstrap the system using [this](https://github.com/konimex/kiss-llvm) repo.\n\n## Objectives\nMake building packages for foreign architectures as easy as building native packages on KISS Linux.\n\n\n## How to cross build\nIf you are cross-building you need to know:\n - The architecture you are building _on_\n - The architecture you are building _for_\n\n1. You need to run Glasnost on the machine you are building _on_.  Working inside a chroot is fine.\n2. Inside your Glasnost installation, download the Glasnost tarball for the architecture you want to build _for_.\n3. Use `sudo` to extract the tarball somewhere.\n4. Set the environment variable `KISS_ROOT` to that location.\n5. Run `kiss b packagename` or `kiss u` as you would normally. You can leave your `KISS_PATH` the same.\n\n### Example: building a package for the pinephone (aarch64) on an x86_64 machine\nOn your installation of glasnost x86_64:\n1. Fetch the chroot tarball for aarch64\n2. Extract the tarball into a directory which represents your target machine. For example: \n\n`mkdir glasnost-pinephone`\n\n`tar xf glasnost-chroot-aarch64-2021.10-01.tar.xz -C glasnost-pinephone --strip-components=1`\n\n3. `KISS_ROOT=glasnost-pinephone kiss b openssh`\n\n## How to install cross-built packages onto another machine\n1. On your build machine, go to ~/.cache/kiss/bin\n2. Run httpd on some port. For example: `httpd -p 54321`\n3. Run `ls`, make a note of the directory name that contains the packages you just built. This will be something like `glasnost-pinephone_2ebab4c766acfa8e3cec1678f3449faa` in the above example.\n4. On the target machine (the one that will receive binary updates) run `export KISS_REMOTE_REPO=http://myserver:54321/reponame`, where _reponame_ is the directory name from step 3.\n5. On the target machine, run `kiss-bup`.\n\nThis is not like normal package management on e.g. Arch, where you can install particular binary packages from a remote repo.  Glasnost and KISS are more like Gentoo, where you build packages yourself.  On these distros you would not generally build all the packages in your repo - just the ones you are interested in using. \n\nIn Glasnost, you download and extract a chroot which becomes a binary repo for the target machine.  When you use  `kiss-bup`, _any packages built for that repo are installed on the target machine._\n\nYou can maintain multiple binary repos for any supported architecture. They will each have a directory in ~/.cache/kiss/bin/.\n\n## Motivation\nI prefer to use hardware which does not use non-free firmware or contain monitoring processors to which I do not have access. I also prefer to build the packages on my system to my own requirements as needed.\n\nThere are now several machines available capable of running Linux which do not have [Intel ME](https://en.wikipedia.org/wiki/Intel_Management_Engine), [AMD PSP](https://en.wikipedia.org/wiki/AMD_Platform_Security_Processor) or similar technologies. Some like the [Talos II](https://www.raptorcs.com/TALOSII/) have many cores and are capable of building large packges like Firefox in a relatively short time.\n\nOthers for example the [PineBook Pro](https://www.pine64.org/pinebook-pro/) or [PinePhone](https://www.pine64.org/pinephone/) have relatively open hardware but are slower and may take many hours to compile larger packages.\n\n\nI wanted a way to build packages on a more powerful machine and distribute them to a less powerful machine, regardless of architecture.\nSomething like FreeBSD's [Poudriere](https://github.com/freebsd/poudriere/wiki) but simpler, for Linux.\n\n### Thanks to:\n - [Dylan Araps](https://github.com/dylanaraps) for creating [KISS Linux](https://k1ss.org). Glasnost uses the KISS package manager and package repositories.\n - [M. Herdiansyah](https://github.com/konimex) for creating the [kiss-llvm](https://github.com/konimex/kiss-llvm) bootstrap repo. This is what was used to bootstrap Glasnost.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglasnostlinux%2Fglasnost","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fglasnostlinux%2Fglasnost","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglasnostlinux%2Fglasnost/lists"}