Skip to content

PR etiquette & feature proposals #2

@mihai-stancu

Description

@mihai-stancu

Hi,

I'd like to contribute to this project, ar you open to accepting some PRs?

Here are the features I had on my mind:

A) Post-install scripts

Syntax:

key howdy https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x8CEBC97F3E9E1D58
source howdy <<<"http://ppa.launchpad.net/boltgolt/howdy/ubuntu $VERSION_CODENAME main"
package howdy
post-install howdy <<<EOF
   pip install --upgrade numpy==1.26.4
   sed -iE 's@device_path = [^\n]+@device_path = /dev/video0@' /lib/security/howdy/config.ini
EOF

Use-cases: configuring the app you just installed.

B) Pre-install scripts

Currently the implementation already allows scripting because the entire Debfile is executed as a bash file.
For symmetry with post-install I could implement the pre-install logic as well.

C) Explicit ordering between remote deb package vs repository packages

Use-cases:

  • deb package is provided only to setup the repository (ex.: MySQL had this, DisplayLink driver) which requires ordering https://example.com/some/package.deb, then apt install
  • deb package has some prerequisites it doesn't install itself so they need to be installed beforehand (Dropbox on Ubuntu 22.04 has this issue) which requires ordering apt install, then example.com/some/package.deb

Because the above cases are in conflict I'd like to implement an optional ordering mechanism to allow the user to choose when each package needs to be installed.

Example syntax (WIP):

package :before https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb # sets up repo
package :after powershell # installs powershell

package :before libpango1.0-0 # prerequisite of dropbox
package :after https://www.dropbox.com/download?dl=packages/ubuntu/dropbox_2020.03.04_amd64.deb # fails install without libpango

D) apt-bundle https://example.org/some/Debfile

Fetching Debfiles from remote sources.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions