[HowTo] Hacking dependencies with DEBIAN/control

OSS specific Linux discussion (x86/amd64)

Moderators: hannu, dev, cesium

igorzwx
Known Member
Posts: 1256
Joined: Sun Jun 28, 2009 9:31 pm

[HowTo] Hacking dependencies with DEBIAN/control

Postby igorzwx » Tue Jan 19, 2016 9:14 pm

WARNING: The blind and the stupid are not supposed to hack dependencies.

The stupid may misunderstand something. The blind may not notice some warnings.
Since deafness correlates with stupidity, Ubuntu users may not need to hack any dependencies.
They might be perfectly happy with ALSA and PulseAudio.

DISCLAIMER: This "howto" is useless and harmful for Ubuntu newbies. If they want to read something about "secret esoteric knowledge", they may better try a sort of "official documentation", for example: _http://www.debian.org/doc/debian-policy/ch-relationships.html#s7.6.2

EXPERIMENT 1: Replacing deb-packages, forcing their removal

To demonstrate the technique, we can create three simple deb-packages:
1. mumu,
2. mumu-client,
3. anti-mumu

The package "mumu-client" depends on "mumu".
The package "anti-mumu" is a replacement for "mumu".

The packages "mumu" and "mumu-client" will be installed with Debian package manager (dpkg).
Then, the package "mumu" will be replaced with "anti-mumu" without breaking dependencies.

Install "build-essential":

Code: Select all

$ sudo apt-get install build-essential


Create a folder for experiments:

Code: Select all

$ mkdir exp-mumu
$ cd exp-mumu



1. Package "mumu"

Create a simple script with a text editor of your choice:

Code: Select all

#!/bin/sh

echo Mumu

exit 0


Save it as "mumu.sh" and make it executable:

Code: Select all

$ chmod +x mumu.sh


Code: Select all

$ ls
mumu.sh


Code: Select all

$ ./mumu.sh
Mumu


Now we can create a Debian package "mumu"

Code: Select all

$ mkdir mumu
$ cd mumu
$ mkdir DEBIAN


We have to create a "control" file inside "DEBIAN" folder.
You can use a text editor of your choice (e.g. pluma, gedit, kate, leafpad, mousepad, etc.)

Code: Select all

$ pluma DEBIAN/control


This command will open the "pluma" text editor. Type there the package info (and save):

Code: Select all

Package: mumu
Version: 1.0
Architecture: all
Maintainer: mumu.org
Description: Print "Mumu" on the terminal


Create "usr/bin" folder inside "mumu"

Code: Select all

$ mkdir -p usr/bin/


Copy the script "mumu.sh" into "mumu/usr/bin/"

Code: Select all

$ cp ../mumu.sh usr/bin/


File list of the folder "mumu":

Code: Select all

$ tree -ifFC ../mumu
../mumu
../mumu/DEBIAN/
../mumu/DEBIAN/control
../mumu/usr/
../mumu/usr/bin/
../mumu/usr/bin/mumu.sh*

3 directories, 2 files


Code: Select all

$ tree -FC ../mumu
../mumu
├── DEBIAN/
│   └── control
└── usr/
    └── bin/
        └── mumu.sh*

3 directories, 2 files


Now we can build a debian package:

Code: Select all

$ cd ..
$ ls
mumu


Code: Select all

$ dpkg-deb --build mumu
dpkg-deb: building package `mumu' in `mumu.deb'.


Code: Select all

$ ls -1
mumu
mumu.deb


Code: Select all

$ dpkg-deb --info mumu.deb
 new debian package, version 2.0.
 size 602 bytes: control archive=224 bytes.
     108 bytes,     5 lines      control             
 Package: mumu
 Version: 1.0
 Architecture: all
 Maintainer: mumu.org
 Description: Print "Mumu" on the terminal


Now we can install "mumu.deb"

Code: Select all

$ sudo dpkg -i mumu.deb


This will install "mumu.sh" into /usr/bin

Code: Select all

$ ls /usr/bin | grep mumu
mumu.sh


You can run it from terminal:

Code: Select all

$ mumu.sh
Mumu


Now you can open the list of installed packages with a text editor of your choice, for example:

Code: Select all

$ pluma /var/lib/dpkg/status


and find there new package "mumu":

Code: Select all

$ cat /var/lib/dpkg/status | grep -A4 mumu
Package: mumu
Status: install ok installed
Maintainer: mumu.org
Architecture: all
Version: 1.0
Description: Print "Mumu" on the terminal


Notice that the file /var/lib/dpkg/status can also be hacked (you can edit dependencies, for example).

NOTE: mumu.deb can be easily deinstalled with "dpkg":

Code: Select all

$ sudo dpkg --purge mumu


2. Package "mumu-client"

Create a simple script with a text editor of your choice:

Code: Select all

#!/bin/sh

echo Mumu-Client

exit 0


Save it as "mumu-client.sh" and make it executable:

Code: Select all

$ chmod +x mumu-client.sh


Code: Select all

$ ls -1
mumu
mumu-client.sh
mumu.deb
mumu.sh


Code: Select all

$ ./mumu-client.sh
Mumu-Client


Now we can create a Debian package "mumu-client"

Code: Select all

$ mkdir mumu-client
$ cd mumu-client
$ mkdir DEBIAN


Create the "DEBIAN/control" with a text editor of your choice:

Code: Select all

$ pluma DEBIAN/control


Code: Select all

Package: mumu-client
Version: 1.0
Architecture: all
Maintainer: mumu.org
Depends: mumu
Description: Print "Mumu-Client" on the terminal


Create "usr/bin" folder inside "mumu-client"

Code: Select all

$ mkdir -p usr/bin/


Copy the script "mumu-client.sh" into "mumu-client/usr/bin/"

Code: Select all

$ cp ../mumu-client.sh usr/bin/


File list of the folder "mumu-client":

Code: Select all

$ tree -ifFC ../mumu-client
../mumu-client
../mumu-client/DEBIAN/
../mumu-client/DEBIAN/control
../mumu-client/usr/
../mumu-client/usr/bin/
../mumu-client/usr/bin/mumu-client.sh*

3 directories, 2 files


Code: Select all

$ tree -FC ../mumu-client
../mumu-client
├── DEBIAN/
│   └── control
└── usr/
    └── bin/
        └── mumu-client.sh*

3 directories, 2 files


Now we can build a debian package "mumu-client":

Code: Select all

$ cd ..
$ ls -1
mumu
mumu-client
mumu-client.sh
mumu.deb
mumu.sh


Code: Select all

$ dpkg-deb --build mumu-client
dpkg-deb: building package `mumu-client' in `mumu-client.deb'.


Code: Select all

$ ls -1
mumu
mumu-client
mumu-client.deb
mumu-client.sh
mumu.deb
mumu.sh


Code: Select all

$ dpkg-deb --info mumu-client.deb
 new debian package, version 2.0.
 size 632 bytes: control archive=243 bytes.
     137 bytes,     7 lines      control             
 Package: mumu-client
 Version: 1.0
 Architecture: all
 Maintainer: mumu.org
 Depends: mumu
 Description: Print "Mumu-Client" on the terminal


Now we can install "mumu-client.deb"

Code: Select all

$ sudo dpkg -i mumu-client.deb


This will install "mumu-client.sh" into /usr/bin

Code: Select all

$ ls /usr/bin | grep mumu-client
mumu-client.sh


You can run it from terminal:

Code: Select all

$ mumu-client.sh
Mumu-Client


Code: Select all

$ cat /var/lib/dpkg/status | grep -A7 mumu-client
Package: mumu-client
Status: install ok installed
Maintainer: mumu.org
Architecture: all
Version: 1.0
Depends: mumu
Description: Print "Mumu-Client" on the terminal


NOTE: mumu-client.deb can be easily deinstalled with "dpkg":

Code: Select all

$ sudo dpkg --purge mumu-client


3. Package "anti-mumu"

Create a simple script with a text editor of your choice:

Code: Select all

#!/bin/sh

echo Anti-Mumu

exit 0


Save it as "anti-mumu.sh" and make it executable:

Code: Select all

$ chmod +x anti-mumu.sh


Code: Select all

$ ls -1
anti-mumu.sh
mumu
mumu-client
mumu-client.deb
mumu-client.sh
mumu.deb
mumu.sh


Code: Select all

$ ./anti-mumu.sh
Anti-Mumu


Now we can create a Debian package "anti-mumu"

Code: Select all

$ mkdir anti-mumu
$ cd anti-mumu
$ mkdir DEBIAN


Create the "DEBIAN/control" with a text editor of your choice:

Code: Select all

$ pluma DEBIAN/control


Code: Select all

Package: anti-mumu
Version: 1.0
Architecture: all
Maintainer: mumu.org
Conflicts: mumu
Replaces: mumu
Provides: mumu
Description: Print "Anti-Mumu" on the terminal


This means that the package "anti-mumu" is a replacement for "mumu".

Create "usr/bin" folder inside "anti-mumu"

Code: Select all

$ mkdir -p usr/bin/


Copy the script "anti-mumu.sh" into "anti-mumu/usr/bin/"

Code: Select all

$ cp ../anti-mumu.sh usr/bin/


File list of the folder "mumu":

Code: Select all

$ tree -ifFC ../anti-mumu
../anti-mumu
../anti-mumu/DEBIAN/
../anti-mumu/DEBIAN/control
../anti-mumu/usr/
../anti-mumu/usr/bin/
../anti-mumu/usr/bin/anti-mumu.sh*

3 directories, 2 files


Code: Select all

$ tree -FC ../anti-mumu
../anti-mumu
├── DEBIAN/
│   └── control
└── usr/
    └── bin/
        └── anti-mumu.sh*

3 directories, 2 files


Now we can build a debian package "anti-mumu":

Code: Select all

$ cd ..
$ ls -1
anti-mumu
anti-mumu.sh
mumu
mumu-client
mumu-client.deb
mumu-client.sh
mumu.deb
mumu.sh


Code: Select all

$ dpkg-deb --build anti-mumu
dpkg-deb: building package `anti-mumu' in `anti-mumu.deb'.


Code: Select all

$ ls -1
anti-mumu
anti-mumu.deb
anti-mumu.sh
mumu
mumu-client
mumu-client.deb
mumu-client.sh
mumu.deb
mumu.sh


Code: Select all

$ dpkg-deb --info anti-mumu.deb
 new debian package, version 2.0.
 size 644 bytes: control archive=257 bytes.
     165 bytes,     9 lines      control             
 Package: anti-mumu
 Version: 1.0
 Architecture: all
 Maintainer: mumu.org
 Conflicts: mumu
 Replaces: mumu
 Provides: mumu
 Description: Print "Anti-Mumu" on the terminal


WARNING: The blind and the stupid are not supposed to install such packages.

If you believe that you are not blind and stupid, you may try to install "anti-mumu.deb"

Code: Select all

$ sudo dpkg -i anti-mumu.deb
Selecting previously unselected package anti-mumu.
dpkg: considering removing mumu in favour of anti-mumu ...
dpkg: yes, will remove mumu in favour of anti-mumu
(Reading database ... 271727 files and directories currently installed.)
Unpacking anti-mumu (from anti-mumu.deb) ...
Setting up anti-mumu (1.0) ...


"anti-mumu.deb" was installed,
"mumu.deb" was removed

In other words, "mumu.deb" was replaced with "anti-mumu.deb".

Code: Select all

$ ls -1 /usr/bin | grep mumu
anti-mumu.sh
mumu-client.sh


Code: Select all

$ anti-mumu.sh
Anti-Mumu
$ mumu-client.sh
Mumu-Client
$ mumu.sh
mumu.sh: command not found


Code: Select all

$ cat /var/lib/dpkg/status | grep -A9 anti-mumu
Package: anti-mumu
Status: install ok installed
Maintainer: mumu.org
Architecture: all
Version: 1.0
Replaces: mumu
Provides: mumu
Conflicts: mumu
Description: Print "Anti-Mumu" on the terminal


________________________________________

Now we can re-install "mumu.deb"

Code: Select all

$ sudo dpkg --force-conflicts -i mumu.deb
dpkg: regarding mumu.deb containing mumu:
 anti-mumu conflicts with mumu
  mumu (version 1.0) is to be installed.

dpkg: warning: ignoring conflict, may proceed anyway!
(Reading database ... 271727 files and directories currently installed.)
Unpacking mumu (from mumu.deb) ...
Setting up mumu (1.0) ...


Code: Select all

$ ls -1 /usr/bin | grep mumu
anti-mumu.sh
mumu-client.sh
mumu.sh


Code: Select all

$ sudo dpkg --purge anti-mumu
(Reading database ... 271727 files and directories currently installed.)
Removing anti-mumu ...


Code: Select all

$ ls -1 /usr/bin | grep mumu
mumu-client.sh
mumu.sh


Code: Select all

$ cat /var/lib/dpkg/status | grep -A3 mumu
Package: mumu
Status: install ok installed
Maintainer: mumu.org
Architecture: all
Version: 1.0
Description: Print "Mumu" on the terminal
--
Package: mumu-client
Status: install ok installed
Maintainer: mumu.org
Architecture: all
Version: 1.0
Depends: mumu
Description: Print "Mumu-Client" on the terminal


"mumu.deb" was re-installed
"anti-mumu.deb" was removed
"mumu-client" remains installed

If, for some strange reason, such experiments cause troubles, you may try a magic command:

Code: Select all

$ sudo apt-get -f install


See also:

Code: Select all

$ man apt-get | grep -A12 "fix-broken"
       -f, --fix-broken
           Fix; attempt to correct a system with broken dependencies in place.
           This option, when used with install/remove, can omit any packages
           to permit APT to deduce a likely solution. If packages are
           specified, these have to completely correct the problem. The option
           is sometimes necessary when running APT for the first time; APT
           itself does not allow broken package dependencies to exist on a
           system. It is possible that a system's dependency structure can be
           so corrupt as to require manual intervention (which usually means
           using dselect(1) or dpkg --remove to eliminate some of the
           offending packages). Use of this option together with -m may
           produce an error in some situations. Configuration Item:
           APT::Get::Fix-Broken.

igorzwx
Known Member
Posts: 1256
Joined: Sun Jun 28, 2009 9:31 pm

Re: [HowTo] Hacking dependencies with DEBIAN/control

Postby igorzwx » Tue Jan 19, 2016 9:36 pm

EXPERIMENT 2: A dummy package "anti-jackd2"

WARNING: The blind and the stupid are not supposed to try such experiments.

Step 1: Create a folder for dummy deb-package

Code: Select all

$ mkdir anti-jackd2
$ cd anti-jackd2
$ mkdir DEBIAN


Step 2: Create the "DEBIAN/control" with a text editor of your choice:

Code: Select all

$ pluma DEBIAN/control


Code: Select all

Package: anti-jackd2
Version: 1.0
Architecture: any
Maintainer: mumu.org
Conflicts: jackd2, jack-daemon, jackd (<< 3)
Replaces: jackd2, jack-daemon, jackd (<< 3), libjack0 (<= 1.9.5~dfsg-13)
Provides: jackd2, jack-daemon
Section: sound
Priority: optional
Description: JACK Audio Mumu


Thus, "anti-jackd2" is a replacement for "jackd2".

File list of the folder "anti-jackd2":

Code: Select all

$ tree -ifFC ../anti-jackd2
../anti-jackd2
../anti-jackd2/DEBIAN/
../anti-jackd2/DEBIAN/control

1 directory, 1 file


Code: Select all

$ tree -FC ../anti-jackd2
../anti-jackd2
└── DEBIAN/
    └── control

1 directory, 1 file


Now we can build a debian package "anti-jackd2":

Code: Select all

$ cd ..
$ ls -1
anti-jackd2
anti-mumu
anti-mumu.deb
anti-mumu.sh
mumu
mumu-client
mumu-client.deb
mumu-client.sh
mumu.deb
mumu.sh


Step 3: Create the dummy deb-package "anti-jackd2"

Code: Select all

$ dpkg-deb --build anti-jackd2
dpkg-deb: building package `anti-jackd2' in `anti-jackd2.deb'.


Code: Select all

$ ls -1
anti-jackd2
anti-jackd2.deb
anti-mumu
anti-mumu.deb
anti-mumu.sh
mumu
mumu-client
mumu-client.deb
mumu-client.sh
mumu.deb
mumu.sh


Check the "info":

Code: Select all

$ dpkg-deb --info anti-jackd2.deb
 new debian package, version 2.0.
 size 616 bytes: control archive=317 bytes.
     285 bytes,    11 lines      control             
 Package: anti-jackd2
 Version: 1.0
 Architecture: any
 Maintainer: mumu.org
 Conflicts: jackd2, jack-daemon, jackd (<< 3)
 Replaces: jackd2, jack-daemon, jackd (<< 3), libjack0 (<= 1.9.5~dfsg-13)
 Provides: jackd2, jack-daemon
 Section: sound
 Priority: optional
 Description: JACK Audio Mumu


This package is designed to replace "jackd2" with "nothing".
"jackd2" will be removed.
The dummy package "anti-jackd2" will be installed.
All dependencies will be satisfied, but those apps, which need jackd2, may fail to work.

USAGE: You can install such dummy package to fix dependencies. Then you can try your "testing" packages for jackd2-oss.

WARNING: Do not install such packages, if you do not know how to remove them.

If you need a dummy package, you may better try something else, for example:
_http://eric.lubow.org/2010/system-administration/creating-dummy-packages-on-debian/

Code: Select all

$ apt-cache search equivs
devscripts - scripts to make the life of a Debian Package maintainer easier
equivs - Circumvent Debian package dependencies
$ sudo apt-get install equivs

igorzwx
Known Member
Posts: 1256
Joined: Sun Jun 28, 2009 9:31 pm

Re: [HowTo] Hacking dependencies with DEBIAN/control

Postby igorzwx » Tue Jan 19, 2016 9:44 pm

EXPERIMENT 3: Hacking jackd2.deb

WARNING: The blind and the stupid are not supposed to hack Ubuntu packages.

There are two types of dependencies:

1. real dependencies (e.g., apps may really need some libs to be able to work).

2. imaginary dependencies (they are defined in a text file inside a deb-package).

Since "imaginary dependencies" of deb-packages are not real, they can be changed through the help of a text editor.
No recompilation is required.

Download a deb-package for jackd2. You may find it here: _http://packages.ubuntu.com/

Code: Select all

$ ls
jackd2_1.9.10+20140719git3eb0ae6a~dfsg-3ubuntu1_i386.deb


Code: Select all

$ dpkg-deb --info jack*.*deb
 new debian package, version 2.0.
 size 447626 bytes: control archive=8833 bytes.
     146 bytes,    11 lines   *  config               #!/bin/sh
    1195 bytes,    20 lines      control             
    4808 bytes,    75 lines      md5sums             
     933 bytes,    36 lines   *  postinst             #!/bin/sh
     893 bytes,    36 lines   *  postrm               #!/bin/sh
     198 bytes,     5 lines   *  preinst              #!/bin/sh
     198 bytes,     5 lines   *  prerm                #!/bin/sh
      23 bytes,     1 lines      shlibs               
   11210 bytes,    77 lines      templates           
 Package: jackd2
 Version: 1.9.10+20140719git3eb0ae6a~dfsg-3ubuntu1
 Architecture: i386
 Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
 Installed-Size: 1740
 Depends: libasound2 (>= 1.0.18), libc6 (>= 2.17), libdbus-1-3 (>= 1.1.4), libexpat1 (>= 2.0.1), libgcc1 (>= 1:4.1.1), libjack-jackd2-0 (= 1.9.10+20140719git3eb0ae6a~dfsg-3ubuntu1), libreadline6 (>= 6.0), libsamplerate0 (>= 0.1.7), libsndfile1 (>= 1.0.20), libstdc++6 (>= 5.2), debconf (>= 0.5) | debconf-2.0, python:any, coreutils (>= 4.0), python-dbus
 Recommends: qjackctl, libpam-modules, jackd2-firewire
 Suggests: jack-tools, meterbridge
 Conflicts: jack-daemon, jackd (<< 3)
 Replaces: jack-daemon, jackd (<< 3), libjack0 (<= 1.9.5~dfsg-13)
 Provides: jack-daemon
 Section: sound
 Priority: optional
 Homepage: http://jackaudio.org/
 Description: JACK Audio Connection Kit (server and example clients)
  JACK is a low-latency sound server, allowing multiple applications to
  connect to one audio device, and to share audio between themselves.
  .
  This package contains the daemon jackd as well as some example clients.
 Original-Maintainer: Debian Multimedia Maintainers <pkg-multimedia-maintainers@lists.alioth.debian.org>



Extract the jackd2*ubuntu*.deb into a folder:

Code: Select all

$ dpkg-deb -R jackd2*ubuntu*.deb jackd2-mumu


Code: Select all

$ ls -1
jackd2-mumu
jackd2_1.9.10+20140719git3eb0ae6a~dfsg-3ubuntu1_i386.deb


Code: Select all

$ tree -FC jackd2-mumu
jack2-mumu
├── DEBIAN/
│   ├── config*
│   ├── control
│   ├── md5sums
│   ├── postinst*
│   ├── postrm*
│   ├── preinst*
│   ├── prerm*
│   ├── shlibs
│   └── templates
└── usr/
    ├── bin/
    │   ├── alsa_in*
    │   ├── alsa_out*
    │   ├── jack_alias*
    │   ├── jack_bufsize*
    │   ├── jack_connect*
    │   ├── jack_control*
    │   ├── jack_cpu*
    │   ├── jack_cpu_load*
    │   ├── jackd*
    │   ├── jackdbus*
    │   ├── jack_disconnect -> jack_connect*
    │   ├── jack_evmon*
    │   ├── jack_freewheel*
    │   ├── jack_iodelay*
    │   ├── jack_latent_client*
    │   ├── jack_load*
    │   ├── jack_lsp*
    │   ├── jack_metro*
    │   ├── jack_midi_dump*
    │   ├── jack_midi_latency_test*
    │   ├── jack_midiseq*
    │   ├── jack_midisine*
    │   ├── jack_monitor_client*
    │   ├── jack_multiple_metro*
    │   ├── jack_net_master*
    │   ├── jack_net_slave*
    │   ├── jack_netsource*
    │   ├── jack_rec*
    │   ├── jack_samplerate*
    │   ├── jack_server_control*
    │   ├── jack_session_notify*
    │   ├── jack_showtime*
    │   ├── jack_simple_client*
    │   ├── jack_simple_session_client*
    │   ├── jack_test*
    │   ├── jack_thru*
    │   ├── jack_transport*
    │   ├── jack_unload*
    │   ├── jack_wait*
    │   └── jack_zombie*
    ├── lib/
    │   └── i386-linux-gnu/
    │       ├── jack/
    │       │   ├── audioadapter.so
    │       │   ├── inprocess.so
    │       │   ├── jack_alsarawmidi.so
    │       │   ├── jack_alsa.so
    │       │   ├── jack_dummy.so
    │       │   ├── jack_loopback.so
    │       │   ├── jack_netone.so
    │       │   ├── jack_net.so
    │       │   ├── netadapter.so
    │       │   ├── netmanager.so
    │       │   └── profiler.so
    │       ├── libjackserver.so.0 -> libjackserver.so.0.1.0
    │       └── libjackserver.so.0.1.0
    └── share/
        ├── bash-completion/
        │   └── completions/
        │       └── jackd
        ├── dbus-1/
        │   └── services/
        │       └── org.jackaudio.service
        ├── doc/
        │   └── jackd2/
        │       ├── changelog.Debian.gz -> ../libjack-jackd2-0/changelog.Debian.gz
        │       ├── copyright
        │       ├── examples/
        │       │   └── asound.rc
        │       ├── README.gz -> ../libjack-jackd2-0/README.gz
        │       └── TODO -> ../libjack-jackd2-0/TODO
        ├── jackd/
        │   └── audio.conf
        └── man/
            └── man1/
                ├── alsa_in.1.gz
                ├── alsa_out.1.gz -> alsa_in.1.gz
                ├── jack_bufsize.1.gz
                ├── jack_connect.1.gz
                ├── jackd.1.gz
                ├── jack_disconnect.1.gz -> jack_connect.1.gz
                ├── jack_freewheel.1.gz
                ├── jack_impulse_grabber.1.gz
                ├── jack_iodelay.1.gz
                ├── jack_load.1.gz
                ├── jack_lsp.1.gz
                ├── jack_metro.1.gz
                ├── jack_monitor_client.1.gz
                ├── jack_netsource.1.gz
                ├── jackrec.1.gz
                ├── jack_samplerate.1.gz
                ├── jack_showtime.1.gz
                ├── jack_simple_client.1.gz
                ├── jack_transport.1.gz
                ├── jack_unload.1.gz
                └── jack_wait.1.gz

17 directories, 91 files


Code: Select all

$ ls -1 jackd2-mumu/DEBIAN
config
control
md5sums
postinst
postrm
preinst
prerm
shlibs
templates


You can hack jackd2-mumu how you want. For example: you can edit "DEBIAN/control", replace some files in "usr/bin" and/or in other folders (or remove them completely), etc.

Then you can build a new debian package "jackd2-mumu":

Code: Select all

$ dpkg-deb --build jackd2-mumu


and check the package "info":

Code: Select all

$ dpkg-deb --info jackd2-mumu.deb


WARNING: Do not install such packages, if you do not know how remove them.

The theory is here:
7.6.2 Replacing whole packages, forcing their removal
_http://www.debian.org/doc/debian-policy/ch-relationships.html#s7.6.2

ossuserr
Known Member
Posts: 272
Joined: Thu Jan 08, 2015 12:01 am
Sound Card: audigy 2 zs platinum, esi juli
OS: gentu riced to bo0st
Location: Earth

Re: [HowTo] Hacking dependencies with DEBIAN/control

Postby ossuserr » Wed Jan 20, 2016 6:18 pm

If your theory of direct correlation of non-deafness and cleverness is right it means that alsa developers are less deaf than oss developers since they seem to be more clever because their driver is still being developed, not to additionally mention that they develop a lot of other software for linux. While you provide some simple scripts here for linux beginners which you call "esoteric knowledge" and consider yourself to have some golden unique hearing and vision. You kind of spoil the image of the forum by such trolling like posts. I think i quit here ...
Your supernatural jews are running from the western europe which they flooded with arabs. Nice approach: shitted and then flee to make others pay for their sins.


Return to “Linux”

Who is online

Users browsing this forum: No registered users and 2 guests