Homebrew package can't be build because of file permissions issues - makefile

I want to submit a PR to Homebrew #20409 that should update libp11 from version 0.2.8 to 0.4.7 however I have some problems running the installation locally.
I am pulling my patch 20409 and to an interactive installation.
brew pull https://github.com/Homebrew/homebrew-core/pull/20409
brew install --interactive libp11
after
./configure
make
make install
Make install complains about cannot create regular file ... Operation not permitted
It seems that sudo rights are needed, but I am not sure if its the correct way to do so.
make install
Making install in src
/usr/local/bin/gmkdir -p '/usr/local/Cellar/openssl/1.0.2m/lib/engines'
/usr/local/bin/gmkdir -p '/usr/local/lib'
/usr/local/bin/gmkdir -p '/usr/local/include'
/bin/sh ../libtool --mode=install /usr/local/bin/ginstall -c libp11.la '/usr/local/lib'
/bin/sh ../libtool --mode=install /usr/local/bin/ginstall -c pkcs11.la '/usr/local/Cellar/openssl/1.0.2m/lib/engines'
/usr/local/bin/gmkdir -p '/usr/local/lib/pkgconfig'
/usr/local/bin/ginstall -c -m 644 libp11.h p11_err.h '/usr/local/include'
/usr/local/bin/ginstall -c -m 644 libp11.pc '/usr/local/lib/pkgconfig'
ginstall: cannot create regular file '/usr/local/include/libp11.h': Operation not permitted
ginstall: cannot create regular file '/usr/local/include/p11_err.h': Operation not permitted
make[2]: *** [install-includeHEADERS] Error 1
make[2]: *** Waiting for unfinished jobs....
ginstall: cannot create regular file '/usr/local/lib/pkgconfig/libp11.pc': Operation not permitted
make[2]: *** [install-pkgconfigDATA] Error 1
libtool: install: /usr/local/bin/ginstall -c .libs/libp11.2.dylib /usr/local/lib/libp11.2.dylib
libtool: install: /usr/local/bin/ginstall -c .libs/pkcs11.dylib /usr/local/Cellar/openssl/1.0.2m/lib/engines/pkcs11.dylib
ginstall: cannot create regular file '/usr/local/lib/libp11.2.dylib': Operation not permitted
ginstall: cannot create regular file '/usr/local/Cellar/openssl/1.0.2m/lib/engines/pkcs11.dylib': Operation not permitted
make[2]: *** [install-libLTLIBRARIES] Error 1
make[2]: *** [install-enginesexecLTLIBRARIES] Error 1
make[1]: *** [install-am] Error 2
make: *** [install-recursive] Error 1
Usually I would call sudo make install however this is not permitted operation not permitted: sudo with Homebrew.
I am running the tests on MAC OS Sierra and not Hight Sierra, so this issues does not apply

I know you said you're running Sierra, but this still just looks like a file permissions problem. For Sierra, you should be able to do this:
sudo chown -R $(whoami) $(brew --prefix)
That other article you linked said that /usr/local cannot be chown'd (good to know, I'll hit that soon.....) so the "fix" was just to chown everything underneath there:
sudo chown -R $(whoami) $(brew --prefix)/*
which would work fine if the directories you need to write to are already created.

Related

github.com/golang/protobuf/protoc-gen-go has no package path for golang version 1.18

we are trying to build an application, but unable to generate the code using protoc-gen-go
$ make
go version go1.18 linux/amd64
/usr/local/go/bin/go
make -C go_source all
make[1]: Entering directory '/home/593m/team_name/zk/internal-pkg/go_source'
cd /home/593m/team_name/zk/internal-pkg/go_source//src/nexus.com/vendor/github.com/golang/protobuf/protoc-gen-go; go install
without -mod=vendor, directory /home/593m/team_name/zk/internal-pkg/go_source/src/appnexus.com/vendor/github.com/golang/protobuf/protoc-gen-go has no package path
Makefile:72: recipe for target '/home/593m/team_name/zk/internal-pkg/go_source/bin/protoc-gen-go' failed
make[1]: *** [/home/593m/team_name/zk/internal-pkg/go_source/bin/protoc-gen-go] Error 1
make[1]: Leaving directory '/home/593m/team_name/zk/internal-pkg/go_source''
Makefile:26: recipe for target 'all' failed
make: *** [all] Error 2
Make file :
$(REPOROOT)/bin/protoc-gen-go: $(REPOROOT)/src/nexus.com/vendor/github.com/golang/protobuf/protoc-gen-go/*.go
cd $(REPOROOT)/src/nexus.com/vendor/github.com/golang/protobuf/protoc-gen-go; $(GOINSTALL)
$(REPOROOT)/bin/generate_proto: $(REPOROOT)/bin/protoc-gen-go $(REPOROOT)/resources/proto/*
mkdir -p $(REPOROOT)/src/nexus.com/odc/odcproto #######ODCPROTO gets generated in this step
Try to change the code from make file to this code
CURRENT_DIR=$(shell pwd)
build:
CGO_ENABLED=0 GOOS=linux go build -mod=vendor -a -installsuffix cgo -o ${CURRENT_DIR}/bin/${APP} ${APP_CMD_DIR}/main.go
proto-gen:
./scripts/gen-proto.sh ${CURRENT_DIR}
ls genproto/*.pb.go | xargs -n1 -IX bash -c "sed -e '/bool/ s/,omitempty//' X > X.tmp && mv X{.tmp,}"

Problems packaging on buster

I'm trying to build some packages from source, and I'm facing trouble that I don't understand despite lots of googling. This happens with some packages, while others compile and get packed normally. One of the softwares that fail to package is libva.
When I use;
export DH_VERBOSE=1 && dpkg-buildpackage -uc -us -j4 -d --build=full --host-arch=amd64 --target-arch=amd64
I get this error;
checking build system type... Invalid configuration `./autogen.sh': machine `./autogen.sh' not recognized
configure: error: /bin/bash ./config.sub ./autogen.sh failed
find ! -ipath "./debian/*" -a ! \( -path '*/.git/*' -o -path '*/.hg/*' -o -path '*/.bzr/*' -o -path '*/.svn/*' -o -path '*/CVS/*' \) -a -type f -exec md5sum {} + -o -type l -printf "symlink %p
" > debian/autoreconf.after
dh_autoreconf: ./autogen.sh ./autogen.sh returned exit code 1
make[1]: *** [debian/rules:12: override_dh_autoreconf] Error 2
make[1]: Leaving directory '/media/deyaa/BBuffer/buildfolder/intel/libva/libva-2.14.0'
make: *** [debian/rules:9: binary] Error 2
dpkg-buildpackage: error: fakeroot debian/rules binary subprocess returned exit status 2
I also have the architecture set up in the control file.
However when I run;
autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu --enable-drm --enable-x11 --enable-glx --enable-wayland --enable-va-messaging
it compiles normally, but I face another problem trying to install it to the same folder under fakeroot.
$ fakeroot make install
Making install in va
make[1]: Entering directory '/media/deyaa/BBuffer/buildfolder/intel/libva/build/va'
Making install in drm
make[2]: Entering directory '/media/deyaa/BBuffer/buildfolder/intel/libva/build/va/drm'
make[3]: Entering directory '/media/deyaa/BBuffer/buildfolder/intel/libva/build/va/drm'
make[3]: Nothing to be done for 'install-exec-am'.
/usr/bin/mkdir -p '/usr/include/va'
/usr/bin/install -c -m 644 ../../../libva/va/drm/va_drm.h '/usr/include/va'
/usr/bin/install: cannot remove '/usr/include/va/va_drm.h': Permission denied
make[3]: *** [Makefile:502: install-libva_drmincludeHEADERS] Error 1
make[3]: Leaving directory '/media/deyaa/BBuffer/buildfolder/intel/libva/build/va/drm'
make[2]: *** [Makefile:620: install-am] Error 2
make[2]: Leaving directory '/media/deyaa/BBuffer/buildfolder/intel/libva/build/va/drm'
make[1]: *** [Makefile:755: install-recursive] Error 1
make[1]: Leaving directory '/media/deyaa/BBuffer/buildfolder/intel/libva/build/va'
make: *** [Makefile:459: install-recursive] Error 1
I get similar errors while building other packages, like aria2, and intel-media.
I compile on debian buster, with stock gcc, glibc, and libtool.
Could you offer any help or pointers?

How can build GNU Parallel to executable file on Windows

I try to build GNU Parallel to an executable file on Windows. When I build it by using code below:
wget https://git.savannah.gnu.org/cgit/parallel.git/plain/10seconds_install
bash 10seconds_install
I didn't get any executable file. Further detail, you can see below:
C:\Users\nexleuser\Desktop\tmp>bash 10seconds_install
GnuPG (gpg) is not installed so the signature cannot be checked.
This means that if the code has been changed by criminals, you will not discover that!
Continue anyway? (y/n)
y
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether ln -s works... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating config.h
make all-recursive
make[1]: Entering directory '/cygdrive/c/Users/nexleuser/Desktop/tmp/parallel-20190922'
Making all in src
make[2]: Entering directory '/cygdrive/c/Users/nexleuser/Desktop/tmp/parallel-20190922/src'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/cygdrive/c/Users/nexleuser/Desktop/tmp/parallel-20190922/src'
make[2]: Entering directory '/cygdrive/c/Users/nexleuser/Desktop/tmp/parallel-20190922'
make[2]: Leaving directory '/cygdrive/c/Users/nexleuser/Desktop/tmp/parallel-20190922'
make[1]: Leaving directory '/cygdrive/c/Users/nexleuser/Desktop/tmp/parallel-20190922'
Making install in src
make[1]: Entering directory '/cygdrive/c/Users/nexleuser/Desktop/tmp/parallel-20190922/src'
make[2]: Entering directory '/cygdrive/c/Users/nexleuser/Desktop/tmp/parallel-20190922/src'
/usr/bin/mkdir -p '/usr/local/bin'
/usr/bin/install -c parallel sql niceload parcat parset env_parallel env_parallel.ash env_parallel.bash env_parallel.csh env_parallel.dash env_parallel.fish env_parallel.ksh env_parallel.mksh env_parallel.pdksh env_parallel.sh env_parallel.tcsh env_parallel.zsh '/usr/local/bin'
make install-exec-hook
make[3]: Entering directory '/cygdrive/c/Users/nexleuser/Desktop/tmp/parallel-20190922/src'
rm /usr/local/bin/sem || true
ln -s parallel /usr/local/bin/sem
make[3]: Leaving directory '/cygdrive/c/Users/nexleuser/Desktop/tmp/parallel-20190922/src'
/usr/bin/mkdir -p '/usr/local/share/doc/parallel'
/usr/bin/install -c -m 644 parallel.html env_parallel.html sem.html sql.html niceload.html parallel_tutorial.html parallel_book.html parallel_design.html parallel_alternatives.html parcat.html parset.html parallel.texi env_parallel.texi sem.texi sql.texi niceload.texi parallel_tutorial.texi parallel_book.texi parallel_design.texi parallel_alternatives.texi parcat.texi parset.texi parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf parallel_alternatives.pdf parcat.pdf parset.pdf parallel_cheat.pdf '/usr/local/share/doc/parallel'
/usr/bin/mkdir -p '/usr/local/share/man/man1'
/usr/bin/install -c -m 644 parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 parcat.1 parset.1 '/usr/local/share/man/man1'
/usr/bin/mkdir -p '/usr/local/share/man/man7'
/usr/bin/install -c -m 644 parallel_tutorial.7 parallel_book.7 parallel_design.7 parallel_alternatives.7 '/usr/local/share/man/man7'
make[2]: Leaving directory '/cygdrive/c/Users/nexleuser/Desktop/tmp/parallel-20190922/src'
make[1]: Leaving directory '/cygdrive/c/Users/nexleuser/Desktop/tmp/parallel-20190922/src'
make[1]: Entering directory '/cygdrive/c/Users/nexleuser/Desktop/tmp/parallel-20190922'
make[2]: Entering directory '/cygdrive/c/Users/nexleuser/Desktop/tmp/parallel-20190922'
make[2]: Nothing to be done for 'install-exec-am'.
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/cygdrive/c/Users/nexleuser/Desktop/tmp/parallel-20190922'
make[1]: Leaving directory '/cygdrive/c/Users/nexleuser/Desktop/tmp/parallel-20190922'
installed globally22
I have a question: How can we build GNU Parallel to an executable file on windows? Is it possible?
Do I need to install more packages to build GNU Parallel to an executable file?
Thanks for your support.
From your output this command succeeds:
/usr/bin/install -c parallel sql niceload parcat parset env_parallel env_parallel.ash env_parallel.bash env_parallel.csh env_parallel.dash env_parallel.fish env_parallel.ksh env_parallel.mksh env_parallel.pdksh env_parallel.sh env_parallel.tcsh env_parallel.zsh '/usr/local/bin'
It installs parallel (and friends) in /usr/local/bin.
So you should be able to do:
/usr/local/bin/parallel --version
And if you add /usr/local/bin to $PATH then parallel should work.
export PATH=/usr/local/bin:$PATH
parallel --version
(But there is something wrong going on: $latest in your script does not simply contain 'parallel-20190922', but probably 'parallel-20190922\r'. How the '\r' comes in there I can only guess. Maybe you for some reason calls Windows sort instead of GNU sort and maybe that inserts '\r' for each line. Could you try replacing sort in 10seconds_install with perl -e 'print sort <>' and see if the last line in the output changes? It should say: 'GNU parallel-20190922 installed globally')

Installing ECL on OSX

I need to try embeddable common lisp on my OSX. Unfortunately I think a ran into problems installing and have no idea why. I installed ecl-13.5.1 and followed the instructions on http://ecls.sourceforge.net/new-manual/pr01s06.html but ran into problems during the make command. Here's some of the messages:
haukurs-mbp:ecl-13.5.1 Haukur$ make
cd build; /Applications/Xcode.app/Contents/Developer/usr/bin/make
if (echo c gmp gc libffi atomic | grep gmp); then \
cd gmp && /Applications/Xcode.app/Contents/Developer/usr/bin/make install && \
cd .. && mv include/gmp.h ecl/ && rmdir include && \
mv ./libgmp.a ./libeclgmp.a; \
fi
c gmp gc libffi atomic
gcc -fPIC -fno-common `test -f 'gen-fac_ui_.c' || echo '/Users/Haukur/ecl-13.5.1/src/gmp/'`gen-fac_ui_.c -o gen-fac_ui
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [gen-fac_ui] Error 1
make[1]: *** [libeclgmp.a] Error 2
make: *** [all] Error 2
and the make install message:
haukurs-mbp:ecl-13.5.1 Haukur$ make install
cd build; /Applications/Xcode.app/Contents/Developer/usr/bin/make install
# Here we would use the option -s but the install program in sourceforge-solaris
# is broken.
/bin/sh /Users/Haukur/ecl-13.5.1/src/gc/mkinstalldirs /usr/local/bin/ /usr/local/lib/ \
/usr/local/lib/ecl-13.5.1/ /usr/local/include/ /usr/local/include//ecl
mkdir -p -- /usr/local/lib/ecl-13.5.1/ /usr/local/include/ /usr/local/include//ecl
I just don't understand the errorcodes so I don't know what went wrong. Now the website says to use OS X Tiger but I have Maverick 10.9.3. Maybe this is the error and ecl won't build with this operating system. If not,can I fix it? Unfortunately my searches have come up empty so any help greatly appreciated.

Compiling libgdiplus-2.10.9 on Centos5 for Mono

Fresh install of Centos5 32 & 64 on vmware vps...
yum install gcc glib2-devel bison libX11-devel freetype-devel fontconfig-devel gcc-c++ libpng-devel
wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.9.tar.bz2
tar jxfv libgdiplus-2.10.9.tar.bz2
cd libgdiplus-2.10.9
./configure --prefix=/opt/mono
make && make install
Here is the output:
[root#localhost libgdiplus-2.10.9]# make
make all-recursive
make[1]: Entering directory `/usr/local/src/libgdiplus-2.10.9'
Making all in pixman
make[2]: Entering directory `/usr/local/src/libgdiplus-2.10.9/pixman'
make all-recursive
make[3]: Entering directory `/usr/local/src/libgdiplus-2.10.9/pixman'
Making all in pixman
make[4]: Entering directory `/usr/local/src/libgdiplus-2.10.9/pixman/pixman'
source='pixman-access.c' object='pixman-access.lo' libtool=yes \
DEPDIR=.deps depmode=none /bin/sh ../depcomp \
/bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -Wall -fvisibility=hidden -c -o pixman-access.lo pixman-access.c
../libtool: line 852: X--tag=CC: command not found
../libtool: line 885: libtool: ignoring unknown tag : command not found
../libtool: line 852: X--mode=compile: command not found
../libtool: line 1018: *** Warning: inferring the mode of operation is deprecated.: command not found
../libtool: line 1019: *** Future versions of Libtool will require --mode=MODE be specified.: command not found
../libtool: line 1162: Xgcc: command not found
../libtool: line 1162: X-DHAVE_CONFIG_H: command not found
../libtool: line 1162: X-I.: command not found
../libtool: line 1162: X-I..: command not found
../libtool: line 1162: X-g: command not found
../libtool: line 1162: X-O2: command not found
../libtool: line 1162: X-Wall: command not found
../libtool: line 1162: X-fvisibility=hidden: command not found
../libtool: line 1162: X-c: command not found
../libtool: line 1214: Xpixman-access.lo: command not found
../libtool: line 1219: libtool: compile: cannot determine name of library object from `': command not found
make[4]: *** [pixman-access.lo] Error 1
make[4]: Leaving directory `/usr/local/src/libgdiplus-2.10.9/pixman/pixman'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/usr/local/src/libgdiplus-2.10.9/pixman'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/usr/local/src/libgdiplus-2.10.9/pixman'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/libgdiplus-2.10.9'
make: *** [all] Error 2
[root#localhost libgdiplus-2.10.9]#
export echo=echo
From this nabble:
For some reason the libtool script being generated by autogen contains lines referring to "$echo message" instead of "echo message".
exporting echo=echo worked, despite being totally wierd.
This is my solution:
[root#oscar libgdiplus-2.10.9]# pwd
/root/libgdi/libgdiplus-2.10.9
[root#oscar libgdiplus-2.10.9]# ls -la libtool
-rwxr-xr-x 1 root root 292559 Jul 8 14:12 libtool
[root#oscar libgdiplus-2.10.9]# ls -la pixman/libtool
-rwxr-xr-x 1 root root 211592 Jul 8 14:12 pixman/libtool
You can see that the two files "libtool" are different:
mv pixman/libtool pixman/libtool.old
cp libtool pixman/libtool
It works!!!
Try install autoconf >= 2.68 and use
yum install autoconf-2.68 gcc glib2-devel bison libX11-devel freetype-devel fontconfig-devel gcc-c++ libpng-devel
wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.9.tar.bz2
tar jxfv libgdiplus-2.10.9.tar.bz2
cd libgdiplus-2.10.9
autoreconf -fiv
./configure --prefix=/opt/mono
make && make install
I just compiled libgdiplus-2.10.9 on RHEL 4 !!! Used both fixes:
export echo=echo
and
mv pixman/libtool pixman/libtool.old
cp libtool pixman/libtool
Thanks guys for all this. You saved me some days:)
I ran into the same problem and found a solution in a forum. Please try to run autoconfig fi from the shell in the source directory (for example '/usr/local/src/libgdiplus-2.10.9').
As far as i understand this is an issue with 'libtool', libgdiplus should compile after running this command.
I have succeeded compiling libgdiplus-2.10.9 on CentOS 5 (x86-64) after installing required packages. It was essential to have autoconf, automake and libtool in order to update configure scripts.
yum install autoconf.noarch automake libtool.x86_64
yum install fontconfig-devel.x86_64 freetype-devel.x86_64 glib2-devel.x86_64
autoreconf -fiv
./configure --prefix=/usr/local/mono
make
make install

Resources