"don't know how to make .gitignore" - makefile

We are trying to install openvpn 2.3.5 on freeBSD. Build collapses with : "don't know how to make .gitignore".
There's very little I could find on the subject.
The relevant lines that reference the file name are here:
Line 458:
dist_noinst_DATA = .gitignore .gitattributes config-version.h.in PORTS \
README.IPv6 TODO.IPv6 README.polarssl openvpn.sln msvc-env.bat \
msvc-dev.bat msvc-build.bat $(am__append_2)
and
Line 191
am__dist_noinst_DATA_DIST = .gitignore .gitattributes \
config-version.h.in PORTS README.IPv6 TODO.IPv6 \
README.polarssl openvpn.sln msvc-env.bat msvc-dev.bat \
msvc-build.bat INSTALL-win32.txt
Anybody out there have this issue? What might be the cause?

Are you installing OpenVPN from source?
The intended way to install from source is to compile a port (make -C /usr/ports/security/openvpn install clean).
Or you can just install a binary package: pkg install openvpn.
More information on installing software on FreeBSD: https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ports.html

Related

How to install unison from source on macOS

I was wondering whether somebody managed to install unison's latest version from source, on its macOS machine (Here I am trying with Catalina). I followed the steps here :
I verified that I had XCode installed (otherwise forget about compiling anything :)
I cloned the official Git repository by running
git clone https://github.com/bcpierce00/unison.git
I moved to the newly created directory unison
cd unison
As mentionned in the documentation I then ran the make command telling it to build the text UI:
make UISTYLE=text
Result should have been an executable file called unisonbut instead of this I got the following error :
Blablabla$ make UISTYLE=text
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C src UISTYLE=text
UISTYLE = text
Building for Unix
NATIVE = true
THREADS = false
STATIC = false
OSTYPE =
OSARCH = osx
ocamlopt: ubase/rx.mli ---> ubase/rx.cmi
ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -ccopt -mmacosx-version-min=10.6 -c /Users/Shared/unison/src/ubase/rx.mli
make[1]: ocamlopt: No such file or directory
make[1]: *** [ubase/rx.cmi] Error 1
make: *** [text] Error 2
I then wondered whether XCode might not carry with him an OCaml compiler. So I installed the official one using MacPort therefore running:
sudo port install ocaml
sudo port install opam
I then rerun the same make command
make UISTYLE=text
This time the result looked better and ended with:
/Applications/Xcode.app/Contents/Developer/usr/bin/make tags
if [ -f "`which etags`" ]; then \
etags *.mli */*.mli *.ml */*.ml */*.m *.c */*.c *.txt \
*Makefile* \
; fi
However, still no unison file visible anywhere.
Question is ... since there is no error message, where is this executable?
Re-hello people from the Internet,
I managed to help myself here and got a nice and fresh unison executable on my macOS Catalina computer.
Basically, the base make tries to move the compilation product into /Users/<your_user>/bin/. which makes sense I guess, but is rarely used by us macOS users. So here is what I did to fix the issue :
Create the bin directory into your home
mkdir ~/bin
Re run the make by doing
make UISTYLE=text
Verify you have the executable by asking its version:
~/bin/unison -version
Happy me, I got the expected message back from my terminal:
unison version 2.51.3 (ocaml 4.08.1)
Hope it can help somebody.

Bash on Ubuntu on Windows can't use `sudo apt-get install <packagename>`

I was excited to use bash on windows but quickly ran into an issue. I am trying to install build-essential, but I get a dependency issue. Upon trying to resolve with sudo apt-get install -f, I run into another error that doesn't make much sense. I've tried update and upgrade, but that didn't work either. F
barzevp#UK-LT-8356:~$ sudo apt-get install build-essential
Reading package lists... Done
Building dependency tree
Reading state information... Done
build-essential is already the newest version.
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies.
libc6-dev : Depends: linux-libc-dev but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
barzevp#UK-LT-8356:~$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
libfreetype6 os-prober
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
linux-libc-dev
The following NEW packages will be installed
linux-libc-dev
0 to upgrade, 1 to newly install, 0 to remove and 43 not to upgrade.
5 not fully installed or removed.
Need to get 0 B/767 kB of archives.
After this operation, 3,946 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
(Reading database ... 28660 files and directories currently installed.)
Preparing to unpack .../linux-libc-dev_3.13.0-123.172_amd64.deb ...
Unpacking linux-libc-dev:amd64 (3.13.0-123.172) ...
dpkg: error processing archive /var/cache/apt/archives/linux-libc-dev_3.13.0-123.172_amd64.deb (--unpack):
unable to install new version of /usr/include/linux/netfilter_ipv6/ip6t_hl.h': File exists
E: Sub-process /usr/bin/dpkg returned an error code (1)
Full log of what led to the error in Bash on Ubuntu on Windows terminal is here:
https://pastebin.com/dq2D2Gtz
I don't have a solution, but I see the root of the problem. It seems to have to do with case sensitivity on the filesystem. The package for linux-libc-dev puts two copies of a file in /usr/include/linux/netfilter_ipv6 with only a difference in case; ip6t_HL.h, and ip6t_hl.h. After placing ip6t_HL.h, it attempts to rename ip6t_hl.h.dpkg-new to ip6t_hl.h. The system call to rename the file fails, claiming that ip6t_hl.h already exists
On a "real" linux system, ip6t_HL.h and ip6t_hl.h would clearly be different files. Under WSL they probably had some strange incompatibilities to work out between NTFS's default case insensitive FS and unix's default case sensitivity.
You can duplicate the problem by hand e.g., with
echo hi > foo.H
echo hi > foo.h-new
mv foo.h-new foo.h
mv: cannot move 'foo.h-new' to 'foo.h': File exists
strace output:
rename("/usr/include/linux/netfilter_ipv6/ip6t_HL.h.dpkg-new", "/usr/include/linux/netfilter_ipv6/ip6t_HL.h") = 0
open("/usr/include/linux/netfilter_ipv6/ip6t_hl.h.dpkg-new", O_WRONLY) = 10
fsync(10) = 0
close(10) = 0
rename("/usr/include/linux/netfilter_ipv6/ip6t_hl.h.dpkg-new", "/usr/include/linux/netfilter_ipv6/ip6t_hl.h") = -1 EEXIST (File exists)
write(2, "dpkg: error processing archive /"..., 199dpkg: error processing archive /var/cache/apt/archives/linux-libc-dev_4.4.0-98.121_amd64.deb (--install):
unable to install new version of '/usr/include/linux/netfilter_ipv6/ip6t_hl.h': File exists
) = 199
I had the same problem. Like #dmattp I found that it this is because, unfortunately, the package contains some (header) files with names that are distinct only by letter case, and that the wonderful WSL file system has an inconsistency regarding case sensitiveness.
Here is a workaround, assuming that the package has name linux-libc-dev_3.13.0-123.172_amd64.deb:
cd any-temp-dir
apt-get download linux-libc-dev
ar x linux-libc-dev_3.13.0-123.172_amd64.deb
tar xJf data.tar.xz # ignore all erors like ./usr/include/linux/netfilter_ipv4/ipt_ttl.h: Cannot open: Input/output error
tar cJf data.tar.xz ./usr
ar rcs linux-libc-dev_3.13.0-123.172_amd64-patched.deb debian-binary control.tar.gz data.tar.xz
sudo dpkg -i linux-libc-dev_3.13.0-123.172_amd64-patched.deb
It says dependencies aren't being installed, so try:
sudo apt-get install linux-libc-dev
If that doesn't work try:
sudo apt-get install --reinstall build-essential
This will reinstall build-essential. Hope this helps, cheers!

Properly Removing .deb Files

I installed LibreOffice on a server with a shell script using the following
sudo -S dpkg -r LibreOffice_5.1.1.3_Linux_x86-64_deb/DEBS/*.deb
Now I would like to change to a different version and am attempting to uninstall the previous version by using:
sudo -S dpkg -i LibreOffice_5.0.6.3_Linux_x86-64_deb/DEBS/*.deb
which yields the error
dpkg: error: you must specify packages by their own names, not by
quoting the names of the files they come in
After doing some research I found this thread and it seems I will need to call the dpkg with the name of the actual debian files, but doing dpkg -r libreoffice results in the error
dpkg: warning: ignoring request to remove libreoffice which isn't
installed
I have also tried using sudo apt-get remove libreoffice-core, which does not seem to be successful. Is there an automated way to remove all of the installed .deb files so that I can safely install the new version?
For reference the following files are shown in the DEBS folder
libobasis5.1-base_5.1.1.3-3_amd64.deb
libobasis5.1-filter-data_5.1.1.3-3_amd64.deb
libobasis5.1-xsltfilter_5.1.1.3-3_amd64.deb
libobasis5.1-calc_5.1.1.3-3_amd64.deb
libobasis5.1-gnome-integration_5.1.1.3-3_amd64.deb
libreoffice5.1_5.1.1.3-3_amd64.deb
libobasis5.1-core_5.1.1.3-3_amd64.deb
libobasis5.1-graphicfilter_5.1.1.3-3_amd64.deb
libreoffice5.1-base_5.1.1.3-3_amd64.deb
libobasis5.1-draw_5.1.1.3-3_amd64.deb
libobasis5.1-images_5.1.1.3-3_amd64.deb
libreoffice5.1-calc_5.1.1.3-3_amd64.deb
libobasis5.1-en-us_5.1.1.3-3_amd64.deb
libobasis5.1-impress_5.1.1.3-3_amd64.deb
libreoffice5.1-debian-menus_5.1.1-3_all.deb
libobasis5.1-en-us-base_5.1.1.3-3_amd64.deb
libobasis5.1-kde-integration_5.1.1.3-3_amd64.deb
libreoffice5.1-dict-en_5.1.1.3-3_amd64.deb
libobasis5.1-en-us-calc_5.1.1.3-3_amd64.deb
libobasis5.1-librelogo_5.1.1.3-3_amd64.deb
libreoffice5.1-dict-es_5.1.1.3-3_amd64.deb
libobasis5.1-en-us-math_5.1.1.3-3_amd64.deb
libobasis5.1-math_5.1.1.3-3_amd64.deb
libreoffice5.1-dict-fr_5.1.1.3-3_amd64.deb
libobasis5.1-en-us-res_5.1.1.3-3_amd64.deb
libobasis5.1-ogltrans_5.1.1.3-3_amd64.deb
libreoffice5.1-draw_5.1.1.3-3_amd64.deb
libobasis5.1-en-us-writer_5.1.1.3-3_amd64.deb
libobasis5.1-onlineupdate_5.1.1.3-3_amd64.deb
libreoffice5.1-en-us_5.1.1.3-3_amd64.deb
libobasis5.1-extension-beanshell-script-provider_5.1.1.3-3_amd64.deb
libobasis5.1-ooofonts_5.1.1.3-3_amd64.deb
libreoffice5.1-impress_5.1.1.3-3_amd64.deb
libobasis5.1-extension-javascript-script-provider_5.1.1.3-3_amd64.deb
libobasis5.1-ooolinguistic_5.1.1.3-3_amd64.deb
libreoffice5.1-math_5.1.1.3-3_amd64.deb
libobasis5.1-extension-mediawiki-publisher_5.1.1.3-3_amd64.deb
libobasis5.1-postgresql-sdbc_5.1.1.3-3_amd64.deb
libreoffice5.1-ure_5.1.1.3-3_amd64.deb
libobasis5.1-extension-nlpsolver_5.1.1.3-3_amd64.deb
libobasis5.1-python-script-provider_5.1.1.3-3_amd64.deb
libreoffice5.1-writer_5.1.1.3-3_amd64.deb
libobasis5.1-extension-pdf-import_5.1.1.3-3_amd64.deb
libobasis5.1-pyuno_5.1.1.3-3_amd64.deb
libobasis5.1-extension-report-builder_5.1.1.3-3_amd64.deb
libobasis5.1-writer_5.1.1.3-3_amd64.deb
Use dpkg-query -l to get a list of installed packages. You can also search the list with dpkg-query -l 'libre*' for everything beginning with 'libre'.
You can then use the displayed package name to remove or purge them with dpkg.
Using dpkg --remove PackageNameHere will let configuration files untouched and delete only the binaries.
With dpkg --purge AgainYourPackageNameHere you would delete everything regarding the package.
we can also use dpkg-query - W to list the installed packages.
For example to search for installed sqlectron
$>dpkg-query -W 'sqlec**'
sqlectron 1.37.1
then you can delete the package using dpkg -r|--remove 'package-name' or dpkg -P|--purge 'package-name' command.

dpkg error: contains ununderstood data member

I'm trying to install a jailbreak tweak using make package install but I'm receiving this error from dpkg:
dpkg-deb: file `/tmp/_theos_install.deb' contains ununderstood data member data.tar.xz , giving up
dpkg: error processing /tmp/_theos_install.deb (--install):
subprocess dpkg-deb --fsys-tarfile returned error exit status 2
Errors were encountered while processing:
/tmp/_theos_install.deb
make: *** [internal-install] Error 1
So as far as I can tell it isn't able to understand the .xz extension, but I'm not sure why that file is being created. Thanks for the help.
I found out how to fix it. In $THEOS/makefiles/package/deb.mk replace this line:
$(ECHO_NOTHING)COPYFILE_DISABLE=1 $(FAKEROOT) -r dpkg-deb -b "$(THEOS_STAGING_DIR)" "$(_THEOS_DEB_PACKAGE_FILENAME)" $(STDERR_NULL_REDIRECT)$(ECHO_END)
with this line:
$(ECHO_NOTHING)COPYFILE_DISABLE=1 $(FAKEROOT) -r dpkg-deb -Zgzip -b "$(THEOS_STAGING_DIR)" "$(_THEOS_DEB_PACKAGE_FILENAME)" $(STDERR_NULL_REDIRECT)$(ECHO_END)
The .deb file is created because you told Theos build system to do that. The package install rule of the Makefile is creating the Debian package using xz compression. Now, this kind of compression is supported by versions of dpkg equal or higher than 1.15.6.
So, in order to solve your problem, you should update dpkg to a newer version or install Theos without packaging support. Probably a simple make install will do it.
In case that updating dpkg isn't possible and you don't want to install the program without package management support, the other (more painful) method is to change the algorithm in which the package is compressed. Here you have good information about how to do this.
In my case I was building a package on Ubuntu 18.04 and trying to install that package on Debian 7 (airgapped). I had to change the line in the Makefile that read:
dpkg --build $(DESTDIR)
..to:
dpkg-deb --build -Zgzip $(DESTDIR)
Thanks Connor!
Other option that you can try is to unpack the .deb that you where triying to install and repack with no XZ compression.
Unpack:
mkdir package/ && dpkg -x package.deb package/
Pack:
dpkg-deb --build -Zgzip package/
You can rename the resulting package with:
dpkg-name -o package.deb
Or simply name the package dir with the name of your package.
Important: In orther to perform this, you need to install dpkg-dev package:
sudo apt update
sudo apt install dpkg-dev

best way to work on / debug Xorg server modules

I want to work on an Xorg server module and I am wondering how I can reload the module at runtime.
Also, maybe someone can give me some good tips about doing this (because I never have worked with Xorg server code before).
Esp. I am running the Ubuntu version of Xorg 7.5 (if that matters much -- does it?).
What I want to do specifically is to implement mouse wheel acceleration in XInput.
I thought about adding a new option for this which can be set somewhere (I think xorg.conf is not anymore the place where you do the XInput configuration; where is it now and what would be the best way to introduce a new setting, i.e. MouseWheelAccel or sth like this?).
And then of course to implement the actual acceleration. As mouse wheel events are just like button press events, I thought of just increasing the rate of firing such events. How to implement this is actually really the minor problem. (I am actually thinking about it as being trivial. Let's see if the Xorg code allows it to be so simple...)
So far, I have done this:
Reports:
at Launchpad/(K)Ubuntu
at Ubuntu Brainstorm
at Ubuntu forums
at KDE
at Freedesktop/Xorg
Check out Xorg via Git, prepare for compiling, and get the XServer code. Basically this:
...
git clone git://anongit.freedesktop.org/git/xorg/util/macros
...
sudo apt-get install xserver-xorg-dev
sudo apt-get install x11proto-gl-dev x11proto-xf86dri-dev x11proto-fixes-dev x11proto-damage-dev x11proto-xcmisc-dev x11proto-bigreqs-dev x11proto-composite-dev x11proto-scrnsaver-dev x11proto-resource-dev x11proto-xinerama-dev x11proto-xf86dga-dev x11proto-record-dev x11proto-xf86vidmode-dev
sudo apt-get install libxfont-dev libudev-dev
git clone git://anongit.freedesktop.org/git/mesa/mesa
git clone git://anongit.freedesktop.org/xorg/xserver
cd xserver
git checkout -b server-1.7-branch origin/server-1.7-branch -t
# apply a bunch of Debian patches (apt-get source xserver-xorg-core && ls xorg-server-1.7.6/debian/patches)
# esp., apply the config-libudev-backend and config-xorg-conf-d
./autogen.sh --prefix=/opt/xorg --enable-xorg --disable-dmx --disable-xvfb --disable-xnes \
--disable-xwin --disable-xprint --with-mesa-source=../mesa \
--enable-dga --enable-glx --enable-aiglx --enable-glx-tls \
--enable-dri --enable-dri2 \
--enable-config-udev --enable-registry --enable-composite --enable-record \
--enable-xv --enable-xvmc --enable-dga --enable-screensaver \
--enable-xdmcp --enable-xdm-auth-1 --enable-xfree86-utils \
--with-xkb-bin-directory=/usr/bin --with-xkb-path=/usr/share/X11/xkb --with-xkb-output=/var/lib/xkb \
--with-dri-driver-path=/usr/lib/dri \
--with-default-font-path="/usr/share/fonts/X11/misc,/usr/share/fonts/X11/cyrillic,/usr/share/fonts/X11/100dpi/:unscaled,/usr/share/fonts/X11/75dpi/:unscaled,/usr/share/fonts/X11/Type1,/usr/share/fonts/X11/100dpi,/usr/share/fonts/X11/75dpi,/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType,built-ins"
sudo chmod o+w /var/lib/xkb # just to be able to proceed as user
... # work on it
sudo /opt/xorg/bin/Xorg :1 vt8 # for testing
sudo cp /opt/xorg/bin/* /usr/bin # temporarily install it as main Xserver

Resources