Git Product home page Git Product logo

tools-packaging's Introduction

Packaging modern GNUstep for Linux Distributions (WIP)

This repository hosts dpkg build configuration files for the Debian GNU/Linux distribution. The goal is to provide a modern, and stable distribution of the GNUstep Objective-C 2.0 Runtime, Apple's Grand Central Dispatch, GNUstep Makefiles, and GNUstep Base (a.k.a. Foundation).

Currently, the following packages are available:

  • libobjc2
  • libdispatch
  • gnustep-make
  • gnustep-base

Please note that the packages are experimental, and not ready for production.

Building the packages

To build the packages, you need to have a Debian-based distribution, such as Ubuntu, and the following packages installed:

Dependencies

You will need to install the following packages:

apt install pbuilder apt-utils jq git

Building the Packages

To build all packages, run the following commands:

./cmd/main.sh

You can also build a single package by running the following command:

./cmd/main.sh -o <package-name>

Build Results

The build results are stored in /var/cache/pbuilder/result.

Build Artefacts from CI

The build artefacts (currently packages for Debian Bookworm amd64) are available on the GitHub Actions page.

tools-packaging's People

Contributors

hmelder avatar

Stargazers

Gregory Casamento avatar Johannes Brakensiek avatar Ivan Vučica avatar

Watchers

Gregory Casamento avatar GNUstep Administrator avatar  avatar  avatar

Forkers

mxiris-gnustep

tools-packaging's Issues

Write a program to make isolated building of package more efficient

Building Debian packages is a mess. There a countless of scripts and ways to build a debian package.

One of the more "modern" approaches is a isolated rootfs which is decompressed and extracted from a tarball for every single package being build. As this is inefficient and (once again) based on messy bash scripts, we need something better!

Why not use OverlayFS (which is used by Docker) to mount a mutable temporary directory over an immutable base rootfs.
This way we achieve isolation and efficiency by reusing the immutable layer.

Fix gnustep2.0-base building

The name change introduced some errors while building the package. I would like to remove the m4 templates and use the proper files instead.

Consider hosting a Enterprise Linux package repository (e.g. OpenSUSE Build)

I've seen people asking for a Enterprise Linux (RHEL/CentOS/Fedora) package repository which hosts the latest version of GNUstep.

I've used [OpenSUSE Build Service)(https://build.opensuse.org/) to host rpm package repositories in the past. They are free of charge and allow you to host packages for open source software for many Linux distributions.

I've used Azure Pipelines in the past to push packages to the OpenSUSE Build Service from GitHub: https://github.com/libimobiledevice-win32/imobiledevice-net/blob/master/steps/deploy-osc.yml

Consider hosting a Debian package repository (e.g. Ubuntu PPA)

I've seen people asking for a Debian/Ubuntu package repository which hosts the latest version of GNUstep for Ubuntu/Debian.

I've used Ubuntu personal package archives to host Debian package repositories in the past. They are free of charge and allow you to host packages for open source software for many versions of Ubuntu.

It's a bit tricky to upload to PPA from GitHub actions, but I've used Azure pipelines in the past: https://github.com/libimobiledevice-win32/imobiledevice-net/blob/master/steps/deploy-ppa.yml

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.